]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blobdiff - db/field.h
libxfs: refactor manage_zones()
[thirdparty/xfsprogs-dev.git] / db / field.h
index 6962d69f62d38274fe224cb261c8877f7ba1c723..15065373de39799b349c126414460fb1d577aa40 100644 (file)
@@ -1,19 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * 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.  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      {
@@ -22,10 +10,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,
@@ -38,11 +29,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,
@@ -53,6 +54,7 @@ typedef enum fldt     {
        FLDT_BMROOTDKEY,
        FLDT_BMROOTDPTR,
        FLDT_BNOBT,
+       FLDT_BNOBT_CRC,
        FLDT_BNOBTKEY,
        FLDT_BNOBTPTR,
        FLDT_BNOBTREC,
@@ -63,10 +65,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,
@@ -75,7 +97,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,
@@ -94,18 +118,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,
@@ -116,10 +147,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,
@@ -129,6 +164,10 @@ typedef enum fldt  {
        FLDT_QCNT,
        FLDT_QWARNCNT,
        FLDT_SB,
+
+       /* CRC enabled symlink */
+       FLDT_SYMLINK_CRC,
+
        FLDT_TIME,
        FLDT_TIMESTAMP,
        FLDT_UINT1,
@@ -149,10 +188,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
@@ -175,7 +214,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
 {