]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blobdiff - db/field.h
xfs_db: btdump should avoid eval for push and pop of cursor
[thirdparty/xfsprogs-dev.git] / db / field.h
index 5b4648b9314a44d24322cbc20d8e4cb97c0d5004..a8df29bce0ff53189f543812e617db75272a8700 100644 (file)
@@ -1,33 +1,19 @@
 /*
- * Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
- * 
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
+ * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
+ * All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
  * published by the Free Software Foundation.
- * 
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * 
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- * 
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc., 59
- * Temple Place - Suite 330, Boston MA 02111-1307, USA.
- * 
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- * 
- * http://www.sgi.com 
- * 
- * For further information regarding this notice, see: 
- * 
- * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+ *
+ * This program is distributed in the hope that it would be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write the Free Software Foundation,
+ * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 typedef enum fldt      {
@@ -36,10 +22,13 @@ typedef enum fldt   {
        FLDT_AGBLOCKNZ,
        FLDT_AGF,
        FLDT_AGFL,
+       FLDT_AGFL_CRC,
        FLDT_AGI,
        FLDT_AGINO,
        FLDT_AGINONN,
        FLDT_AGNUMBER,
+
+       /* attr fields */
        FLDT_ATTR,
        FLDT_ATTR_BLKINFO,
        FLDT_ATTR_LEAF_ENTRY,
@@ -52,11 +41,21 @@ typedef enum fldt   {
        FLDT_ATTR_SF_HDR,
        FLDT_ATTRBLOCK,
        FLDT_ATTRSHORT,
+
+       /* attr 3 specific fields */
+       FLDT_ATTR3,
+       FLDT_ATTR3_BLKINFO,
+       FLDT_ATTR3_LEAF_HDR,
+       FLDT_ATTR3_NODE_HDR,
+       FLDT_ATTR3_REMOTE_HDR,
+
        FLDT_BMAPBTA,
+       FLDT_BMAPBTA_CRC,
        FLDT_BMAPBTAKEY,
        FLDT_BMAPBTAPTR,
        FLDT_BMAPBTAREC,
        FLDT_BMAPBTD,
+       FLDT_BMAPBTD_CRC,
        FLDT_BMAPBTDKEY,
        FLDT_BMAPBTDPTR,
        FLDT_BMAPBTDREC,
@@ -67,6 +66,7 @@ typedef enum fldt     {
        FLDT_BMROOTDKEY,
        FLDT_BMROOTDPTR,
        FLDT_BNOBT,
+       FLDT_BNOBT_CRC,
        FLDT_BNOBTKEY,
        FLDT_BNOBTPTR,
        FLDT_BNOBTREC,
@@ -77,10 +77,30 @@ typedef enum fldt   {
        FLDT_CFSBLOCK,
        FLDT_CHARNS,
        FLDT_CHARS,
+       FLDT_REXTLEN,
+       FLDT_RFILEOFFD,
+       FLDT_REXTFLG,
+       FLDT_RATTRFORKFLG,
+       FLDT_RBMBTFLG,
+       FLDT_CAGBLOCK,
+       FLDT_CCOWFLG,
        FLDT_CNTBT,
+       FLDT_CNTBT_CRC,
        FLDT_CNTBTKEY,
        FLDT_CNTBTPTR,
        FLDT_CNTBTREC,
+       FLDT_RMAPBT_CRC,
+       FLDT_RMAPBTKEY,
+       FLDT_RMAPBTPTR,
+       FLDT_RMAPBTREC,
+       FLDT_REFCBT_CRC,
+       FLDT_REFCBTKEY,
+       FLDT_REFCBTPTR,
+       FLDT_REFCBTREC,
+
+       /* CRC field type */
+       FLDT_CRC,
+
        FLDT_DEV,
        FLDT_DFILOFFA,
        FLDT_DFILOFFD,
@@ -89,7 +109,9 @@ typedef enum fldt    {
        FLDT_DINODE_CORE,
        FLDT_DINODE_FMT,
        FLDT_DINODE_U,
-       FLDT_DIR,
+       FLDT_DINODE_V3,
+
+       /* dir v2 fields */
        FLDT_DIR2,
        FLDT_DIR2_BLOCK_TAIL,
        FLDT_DIR2_DATA_FREE,
@@ -108,18 +130,25 @@ typedef enum fldt {
        FLDT_DIR2_SF_HDR,
        FLDT_DIR2_SF_OFF,
        FLDT_DIR2SF,
-       FLDT_DIR_BLKINFO,
-       FLDT_DIR_INO,
-       FLDT_DIR_LEAF_ENTRY,
-       FLDT_DIR_LEAF_HDR,
-       FLDT_DIR_LEAF_MAP,
-       FLDT_DIR_LEAF_NAME,
-       FLDT_DIR_NODE_ENTRY,
-       FLDT_DIR_NODE_HDR,
-       FLDT_DIR_SF_ENTRY,
-       FLDT_DIR_SF_HDR,
+
+       /* dir v3 fields */
+       FLDT_DIR3,
+       FLDT_DIR3_BLKHDR,
+       FLDT_DIR3_DATA_HDR,
+       FLDT_DIR3_FREE_HDR,
+       FLDT_DIR3_LEAF_HDR,
+       FLDT_DIR3_DATA_UNION,
+       FLDT_DIR3_SF_ENTRY,
+       FLDT_DIR3SF,
+
+       /* dir v2/3 node fields */
+       FLDT_DA_BLKINFO,
+       FLDT_DA_NODE_ENTRY,
+       FLDT_DA_NODE_HDR,
+       FLDT_DA3_BLKINFO,
+       FLDT_DA3_NODE_HDR,
+
        FLDT_DIRBLOCK,
-       FLDT_DIRSHORT,
        FLDT_DISK_DQUOT,
        FLDT_DQBLK,
        FLDT_DQID,
@@ -130,10 +159,14 @@ typedef enum fldt {
        FLDT_FSIZE,
        FLDT_INO,
        FLDT_INOBT,
+       FLDT_INOBT_CRC,
+       FLDT_INOBT_SPCRC,
        FLDT_INOBTKEY,
        FLDT_INOBTPTR,
        FLDT_INOBTREC,
+       FLDT_INOBTSPREC,
        FLDT_INODE,
+       FLDT_INODE_CRC,
        FLDT_INOFREE,
        FLDT_INT16D,
        FLDT_INT32D,
@@ -143,6 +176,10 @@ typedef enum fldt  {
        FLDT_QCNT,
        FLDT_QWARNCNT,
        FLDT_SB,
+
+       /* CRC enabled symlink */
+       FLDT_SYMLINK_CRC,
+
        FLDT_TIME,
        FLDT_TIMESTAMP,
        FLDT_UINT1,
@@ -163,10 +200,10 @@ typedef enum fldt {
 } fldt_t;
 
 typedef int (*offset_fnc_t)(void *obj, int startoff, int idx);
-#define        OI(o)   ((offset_fnc_t)(__psint_t)(o))
+#define        OI(o)   ((offset_fnc_t)(intptr_t)(o))
 
 typedef int (*count_fnc_t)(void *obj, int startoff);
-#define        CI(c)   ((count_fnc_t)(__psint_t)(c))
+#define        CI(c)   ((count_fnc_t)(intptr_t)(c))
 #define        C1      CI(1)
 
 typedef struct field
@@ -189,7 +226,7 @@ typedef struct field
 #define        FLD_COUNT       16      /* count value is a function pointer */
 
 typedef int (*size_fnc_t)(void *obj, int startoff, int idx);
-#define        SI(s)   ((size_fnc_t)(__psint_t)(s))
+#define        SI(s)   ((size_fnc_t)(intptr_t)(s))
 
 typedef struct ftattr
 {
@@ -219,6 +256,6 @@ extern int          bitoffset(const field_t *f, void *obj, int startoff,
                                  int idx);
 extern int             fcount(const field_t *f, void *obj, int startoff);
 extern const field_t   *findfield(char *name, const field_t *fields,
-                                  void *obj, int startoff);
+                                 void *obj, int startoff);
 extern int             fsize(const field_t *f, void *obj, int startoff,
-                                 int idx);
+                                 int idx);