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_JBD_H 13 #define _LINUX_JBD_H 14 15 #include "jfs_compat.h" 16 #define JFS_DEBUG 17 #define jfs_debug jbd_debug 18 19 #define journal_oom_retry 1 20 21 #undef JBD_PARANOID_IOFAIL 22 23 #define JBD_DEFAULT_MAX_COMMIT_AGE 5 24 25 #define jbd_debug(f, a...) 26 27 #define jbd_kmalloc(size, flags) __jbd_kmalloc(__FUNCTION__, (size), (flags), journal_oom_retry) 28 #define jbd_rep_kmalloc(size, flags) __jbd_kmalloc(__FUNCTION__, (size), (flags), 1) 29 30 #define JFS_MIN_JOURNAL_BLOCKS 1024 31 32 #define JFS_MAGIC_NUMBER 0xc03b3998U 33 34 #define JFS_DESCRIPTOR_BLOCK 1 35 #define JFS_COMMIT_BLOCK 2 36 #define JFS_SUPERBLOCK_V1 3 37 #define JFS_SUPERBLOCK_V2 4 38 #define JFS_REVOKE_BLOCK 5 39 40 typedef struct journal_header_s 41 { 42 __be32 h_magic; 43 __be32 h_blocktype; 44 __be32 h_sequence; 45 } journal_header_t; 46 47 typedef struct journal_block_tag_s 48 { 49 __be32 t_blocknr; 50 __be32 t_flags; 51 } journal_block_tag_t; 52 53 typedef struct journal_revoke_header_s 54 { 55 journal_header_t r_header; 56 __be32 r_count; 57 } journal_revoke_header_t; 58 59 #define JFS_FLAG_ESCAPE 1 60 #define JFS_FLAG_SAME_UUID 2 61 #define JFS_FLAG_DELETED 4 62 #define JFS_FLAG_LAST_TAG 8 63 64 typedef struct journal_superblock_s 65 { 66 67 journal_header_t s_header; 68 69 __be32 s_blocksize; 70 __be32 s_maxlen; 71 __be32 s_first; 72 73 __be32 s_sequence; 74 __be32 s_start; 75 76 __be32 s_errno; 77 78 __be32 s_feature_compat; 79 __be32 s_feature_incompat; 80 __be32 s_feature_ro_compat; 81 82 __u8 s_uuid[16]; 83 84 __be32 s_nr_users; 85 86 __be32 s_dynsuper; 87 88 __be32 s_max_transaction; 89 __be32 s_max_trans_data; 90 91 __u32 s_padding[44]; 92 93 __u8 s_users[16*48]; 94 95 } journal_superblock_t; 96 97 #define JFS_HAS_COMPAT_FEATURE(j,mask) ((j)->j_format_version >= 2 && ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask)))) 98 #define JFS_HAS_RO_COMPAT_FEATURE(j,mask) ((j)->j_format_version >= 2 && ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask)))) 99 #define JFS_HAS_INCOMPAT_FEATURE(j,mask) ((j)->j_format_version >= 2 && ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask)))) 100 101 #define JFS_FEATURE_INCOMPAT_REVOKE 0x00000001 102 103 #define JFS_KNOWN_COMPAT_FEATURES 0 104 #define JFS_KNOWN_ROCOMPAT_FEATURES 0 105 #define JFS_KNOWN_INCOMPAT_FEATURES JFS_FEATURE_INCOMPAT_REVOKE 106 107 #define BJ_None 0 108 #define BJ_SyncData 1 109 #define BJ_Metadata 2 110 #define BJ_Forget 3 111 #define BJ_IO 4 112 #define BJ_Shadow 5 113 #define BJ_LogCtl 6 114 #define BJ_Reserved 7 115 #define BJ_Locked 8 116 #define BJ_Types 9 117 118 #endif 119