Home | History | Annotate | Download | only in ext4_utils
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef _LINUX_JBD2_H
     13 #define _LINUX_JBD2_H
     14 
     15 #define JBD2_DEBUG
     16 #define jfs_debug jbd_debug
     17 
     18 #define journal_oom_retry 1
     19 
     20 #undef JBD2_PARANOID_IOFAIL
     21 
     22 #define JBD2_DEFAULT_MAX_COMMIT_AGE 5
     23 
     24 #define jbd_debug(f, a...)
     25 
     26 #define JBD2_MIN_JOURNAL_BLOCKS 1024
     27 
     28 #define JBD2_MAGIC_NUMBER 0xc03b3998U
     29 
     30 #define JBD2_DESCRIPTOR_BLOCK 1
     31 #define JBD2_COMMIT_BLOCK 2
     32 #define JBD2_SUPERBLOCK_V1 3
     33 #define JBD2_SUPERBLOCK_V2 4
     34 #define JBD2_REVOKE_BLOCK 5
     35 
     36 typedef struct journal_header_s
     37 {
     38  __be32 h_magic;
     39  __be32 h_blocktype;
     40  __be32 h_sequence;
     41 } journal_header_t;
     42 
     43 #define JBD2_CRC32_CHKSUM 1
     44 #define JBD2_MD5_CHKSUM 2
     45 #define JBD2_SHA1_CHKSUM 3
     46 
     47 #define JBD2_CRC32_CHKSUM_SIZE 4
     48 
     49 #define JBD2_CHECKSUM_BYTES (32 / sizeof(u32))
     50 
     51 struct commit_header {
     52  __be32 h_magic;
     53  __be32 h_blocktype;
     54  __be32 h_sequence;
     55  unsigned char h_chksum_type;
     56  unsigned char h_chksum_size;
     57  unsigned char h_padding[2];
     58  __be32 h_chksum[JBD2_CHECKSUM_BYTES];
     59  __be64 h_commit_sec;
     60  __be32 h_commit_nsec;
     61 };
     62 
     63 typedef struct journal_block_tag_s
     64 {
     65  __be32 t_blocknr;
     66  __be32 t_flags;
     67  __be32 t_blocknr_high;
     68 } journal_block_tag_t;
     69 
     70 #define JBD2_TAG_SIZE32 (offsetof(journal_block_tag_t, t_blocknr_high))
     71 #define JBD2_TAG_SIZE64 (sizeof(journal_block_tag_t))
     72 
     73 typedef struct jbd2_journal_revoke_header_s
     74 {
     75  journal_header_t r_header;
     76  __be32 r_count;
     77 } jbd2_journal_revoke_header_t;
     78 
     79 #define JBD2_FLAG_ESCAPE 1
     80 #define JBD2_FLAG_SAME_UUID 2
     81 #define JBD2_FLAG_DELETED 4
     82 #define JBD2_FLAG_LAST_TAG 8
     83 
     84 typedef struct journal_superblock_s
     85 {
     86 
     87  journal_header_t s_header;
     88 
     89  __be32 s_blocksize;
     90  __be32 s_maxlen;
     91  __be32 s_first;
     92 
     93  __be32 s_sequence;
     94  __be32 s_start;
     95 
     96  __be32 s_errno;
     97 
     98  __be32 s_feature_compat;
     99  __be32 s_feature_incompat;
    100  __be32 s_feature_ro_compat;
    101 
    102  __u8 s_uuid[16];
    103 
    104  __be32 s_nr_users;
    105 
    106  __be32 s_dynsuper;
    107 
    108  __be32 s_max_transaction;
    109  __be32 s_max_trans_data;
    110 
    111  __u32 s_padding[44];
    112 
    113  __u8 s_users[16*48];
    114 
    115 } journal_superblock_t;
    116 
    117 #define JBD2_HAS_COMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask))))
    118 #define JBD2_HAS_RO_COMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask))))
    119 #define JBD2_HAS_INCOMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
    120 
    121 #define JBD2_FEATURE_COMPAT_CHECKSUM 0x00000001
    122 
    123 #define JBD2_FEATURE_INCOMPAT_REVOKE 0x00000001
    124 #define JBD2_FEATURE_INCOMPAT_64BIT 0x00000002
    125 #define JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT 0x00000004
    126 
    127 #define JBD2_KNOWN_COMPAT_FEATURES JBD2_FEATURE_COMPAT_CHECKSUM
    128 #define JBD2_KNOWN_ROCOMPAT_FEATURES 0
    129 #define JBD2_KNOWN_INCOMPAT_FEATURES (JBD2_FEATURE_INCOMPAT_REVOKE |   JBD2_FEATURE_INCOMPAT_64BIT |   JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)
    130 
    131 #define BJ_None 0
    132 #define BJ_Metadata 1
    133 #define BJ_Forget 2
    134 #define BJ_IO 3
    135 #define BJ_Shadow 4
    136 #define BJ_LogCtl 5
    137 #define BJ_Reserved 6
    138 #define BJ_Types 7
    139 
    140 #endif
    141 
    142