Home | History | Annotate | Download | only in ext2ed
      1 Extended 2 filesystem structure definitions for ext2ed.
      2 
      3 Most of this file is just copied from the ext2 main include file.
      4 
      5 My parser is very primitive - It only searches for the struct keywords,
      6 and uses the variables in there. The rest of the file is just ignored.
      7 
      8 You will find at the end a few additional types which are not aviable in
      9 the original include file, such as the types "file" and "dir". They have
     10 no variables, but are necessary due to the way ext2ed binds C commands
     11 to specific types.
     12 
     13 Gadi Oxman, 7/95
     14 
     15 Here is the original copyright:
     16 
     17 /*
     18  *  linux/include/linux/ext2_fs.h
     19  *
     20  *  Copyright (C) 1992, 1993, 1994  Remy Card (card (a] masi.ibp.fr)
     21  *                                  Laboratoire MASI - Institut Blaise Pascal
     22  *                                  Universite Pierre et Marie Curie (Paris VI)
     23  *
     24  *  from
     25  *
     26  *  linux/include/linux/minix_fs.h
     27  *
     28  *  Copyright (C) 1991, 1992  Linus Torvalds
     29  */
     30 
     31 
     32 /*
     33  * ACL structures
     34  */
     35 struct ext2_acl_header	/* Header of Access Control Lists */
     36 {
     37 	unsigned long aclh_size;
     38 	unsigned long aclh_file_count;
     39 	unsigned long aclh_acle_count;
     40 	unsigned long aclh_first_acle;
     41 };
     42 
     43 struct ext2_acl_entry	/* Access Control List Entry */
     44 {
     45 	unsigned long  acle_size;
     46 	unsigned short acle_perms;	/* Access permissions */
     47 	unsigned short acle_type;	/* Type of entry */
     48 	unsigned short acle_tag;	/* User or group identity */
     49 	unsigned short acle_pad1;
     50 	unsigned long  acle_next;	/* Pointer on next entry for the */
     51 					/* same inode or on next free entry */
     52 };
     53 
     54 /*
     55  * Structure of a blocks group descriptor
     56  */
     57 
     58 struct ext2_group_desc
     59 {
     60 	__u32	bg_block_bitmap;		/* Blocks bitmap block */
     61 	__u32	bg_inode_bitmap;		/* Inodes bitmap block */
     62 	__u32	bg_inode_table;		/* Inodes table block */
     63 	__u16	bg_free_blocks_count;	/* Free blocks count */
     64 	__u16	bg_free_inodes_count;	/* Free inodes count */
     65 	__u16	bg_used_dirs_count;	/* Directories count */
     66 	__u16	bg_pad;
     67 	__u32   bg_reserved[0];
     68 	__u32   bg_reserved[1];
     69 	__u32   bg_reserved[2];
     70 };
     71 
     72 /*
     73  * Structure of an inode on the disk
     74  */
     75 struct ext2_inode {
     76 	__u16 i_mode;		/* File mode */
     77 	__u16 i_uid;		/* Owner Uid */
     78 	__u32  i_size;		/* Size in bytes */
     79 	__u32  i_atime;		/* Access time */
     80 	__u32  i_ctime;		/* Creation time */
     81 	__u32  i_mtime;		/* Modification time */
     82 	__u32  i_dtime;		/* Deletion Time */
     83 	__u16  i_gid;		/* Group Id */
     84 	__u16  i_links_count;	/* Links count */
     85 	__u32  i_blocks;	/* Blocks count */
     86 	__u32  i_flags;		/* File flags */
     87 	__u32  l_i_reserved1;
     88 	__u32  i_block[0]; /* Pointers to blocks */
     89 	__u32  i_block[1]; /* Pointers to blocks */
     90 	__u32  i_block[2]; /* Pointers to blocks */
     91 	__u32  i_block[3]; /* Pointers to blocks */
     92 	__u32  i_block[4]; /* Pointers to blocks */
     93 	__u32  i_block[5]; /* Pointers to blocks */
     94 	__u32  i_block[6]; /* Pointers to blocks */
     95 	__u32  i_block[7]; /* Pointers to blocks */
     96 	__u32  i_block[8]; /* Pointers to blocks */
     97 	__u32  i_block[9]; /* Pointers to blocks */
     98 	__u32  i_block[10]; /* Pointers to blocks */
     99 	__u32  i_block[11]; /* Pointers to blocks */
    100 	__u32  i_block[12]; /* Pointers to blocks */
    101 	__u32  i_block[13]; /* Pointers to blocks */
    102 	__u32  i_block[14]; /* Pointers to blocks */
    103 	__u32  i_version;	/* File version (for NFS) */
    104 	__u32  i_file_acl;	/* File ACL */
    105 	__u32  i_dir_acl;	/* Directory ACL */
    106 	__u32  i_faddr;		/* Fragment address */
    107 	__u8   l_i_frag;	/* Fragment number */
    108 	__u8   l_i_fsize;	/* Fragment size */
    109 	__u16  i_pad1;
    110 	__u16	l_i_uid_high;	/* these 2 fields    */
    111 	__u16	l_i_gid_high;	/* were reserved2[0] */
    112 	__u32  l_i_reserved2;
    113 };
    114 
    115 /*
    116  * Structure of the super block
    117  */
    118 struct ext2_super_block {
    119 	__u32	s_inodes_count;		/* Inodes count */
    120 	__u32	s_blocks_count;		/* Blocks count */
    121 	__u32	s_r_blocks_count;	/* Reserved blocks count */
    122 	__u32	s_free_blocks_count;	/* Free blocks count */
    123 	__u32	s_free_inodes_count;	/* Free inodes count */
    124 	__u32	s_first_data_block;	/* First Data Block */
    125 	__u32	s_log_block_size;	/* Block size */
    126 	__s32	s_log_frag_size;	/* Fragment size */
    127 	__u32	s_blocks_per_group;	/* # Blocks per group */
    128 	__u32	s_frags_per_group;	/* # Fragments per group */
    129 	__u32	s_inodes_per_group;	/* # Inodes per group */
    130 	__u32	s_mtime;		/* Mount time */
    131 	__u32	s_wtime;		/* Write time */
    132 	__u16	s_mnt_count;		/* Mount count */
    133 	__s16	s_max_mnt_count;	/* Maximal mount count */
    134 	__u16	s_magic;		/* Magic signature */
    135 	__u16	s_state;		/* File system state */
    136 	__u16	s_errors;		/* Behaviour when detecting errors */
    137 	__u16	s_minor_rev_level; 	/* minor revision level */
    138 	__u32	s_lastcheck;		/* time of last check */
    139 	__u32	s_checkinterval;	/* max. time between checks */
    140 	__u32	s_creator_os;		/* OS */
    141 	__u32	s_rev_level;		/* Revision level */
    142 	__u16	s_def_resuid;		/* Default uid for reserved blocks */
    143 	__u16	s_def_resgid;		/* Default gid for reserved blocks */
    144 	__u32	s_first_ino; 		/* First non-reserved inode */
    145 	__u16   s_inode_size; 		/* size of inode structure */
    146 	__u16	s_block_group_nr; 	/* block group # of this superblock */
    147 	__u32	s_feature_compat; 	/* compatible feature set */
    148 	__u32	s_feature_incompat; 	/* incompatible feature set */
    149 	__u32	s_feature_ro_compat; 	/* readonly-compatible feature set */
    150 	char[16] s_uuid;		/* 128-bit uuid for volume */
    151 	char[16] s_volume_name; 	/* volume name */
    152 	char[64] s_last_mounted; 	/* directory where last mounted */
    153 	__u32	s_algorithm_usage_bitmap; /* For compression */
    154 	/*
    155 	 * Performance hints.  Directory preallocation should only
    156 	 * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
    157 	 */
    158 	__u8	s_prealloc_blocks;	/* Nr of blocks to try to preallocate*/
    159 	__u8	s_prealloc_dir_blocks;	/* Nr to preallocate for dirs */
    160 	__u16	s_padding1;
    161 	/* 
    162 	 * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
    163 	 */
    164 	char[16] s_journal_uuid;	/* uuid of journal superblock */
    165 	__u32	s_journal_inum;		/* inode number of journal file */
    166 	__u32	s_journal_dev;		/* device number of journal file */
    167 	__u32	s_last_orphan;		/* start of list of inodes to delete */
    168 
    169 
    170 	__u32  s_reserved[0];	/* Padding to the end of the block */
    171 	__u32  s_reserved[1];
    172 	__u32  s_reserved[2];
    173 	__u32  s_reserved[3];
    174 	__u32  s_reserved[4];
    175 	__u32  s_reserved[5];
    176 	__u32  s_reserved[6];
    177 	__u32  s_reserved[7];
    178 	__u32  s_reserved[8];
    179 	__u32  s_reserved[9];
    180 	__u32  s_reserved[10];
    181 	__u32  s_reserved[11];
    182 	__u32  s_reserved[12];
    183 	__u32  s_reserved[13];
    184 	__u32  s_reserved[14];
    185 	__u32  s_reserved[15];
    186 	__u32  s_reserved[16];
    187 	__u32  s_reserved[17];
    188 	__u32  s_reserved[18];
    189 	__u32  s_reserved[19];
    190 	__u32  s_reserved[20];
    191 	__u32  s_reserved[21];
    192 	__u32  s_reserved[22];
    193 	__u32  s_reserved[23];
    194 	__u32  s_reserved[24];
    195 	__u32  s_reserved[25];
    196 	__u32  s_reserved[26];
    197 	__u32  s_reserved[27];
    198 	__u32  s_reserved[28];
    199 	__u32  s_reserved[29];
    200 	__u32  s_reserved[30];
    201 	__u32  s_reserved[31];
    202 	__u32  s_reserved[32];
    203 	__u32  s_reserved[33];
    204 	__u32  s_reserved[34];
    205 	__u32  s_reserved[35];
    206 	__u32  s_reserved[36];
    207 	__u32  s_reserved[37];
    208 	__u32  s_reserved[38];
    209 	__u32  s_reserved[39];
    210 	__u32  s_reserved[40];
    211 	__u32  s_reserved[41];
    212 	__u32  s_reserved[42];
    213 	__u32  s_reserved[43];
    214 	__u32  s_reserved[44];
    215 	__u32  s_reserved[45];
    216 	__u32  s_reserved[46];
    217 	__u32  s_reserved[47];
    218 	__u32  s_reserved[48];
    219 	__u32  s_reserved[49];
    220 	__u32  s_reserved[50];
    221 	__u32  s_reserved[51];
    222 	__u32  s_reserved[52];
    223 	__u32  s_reserved[53];
    224 	__u32  s_reserved[54];
    225 	__u32  s_reserved[55];
    226 	__u32  s_reserved[56];
    227 	__u32  s_reserved[57];
    228 	__u32  s_reserved[58];
    229 	__u32  s_reserved[59];
    230 	__u32  s_reserved[60];
    231 	__u32  s_reserved[61];
    232 	__u32  s_reserved[62];
    233 	__u32  s_reserved[63];
    234 	__u32  s_reserved[64];
    235 	__u32  s_reserved[65];
    236 	__u32  s_reserved[66];
    237 	__u32  s_reserved[67];
    238 	__u32  s_reserved[68];
    239 	__u32  s_reserved[69];
    240 	__u32  s_reserved[70];
    241 	__u32  s_reserved[71];
    242 	__u32  s_reserved[72];
    243 	__u32  s_reserved[73];
    244 	__u32  s_reserved[74];
    245 	__u32  s_reserved[75];
    246 	__u32  s_reserved[76];
    247 	__u32  s_reserved[77];
    248 	__u32  s_reserved[78];
    249 	__u32  s_reserved[79];
    250 	__u32  s_reserved[80];
    251 	__u32  s_reserved[81];
    252 	__u32  s_reserved[82];
    253 	__u32  s_reserved[83];
    254 	__u32  s_reserved[84];
    255 	__u32  s_reserved[85];
    256 	__u32  s_reserved[86];
    257 	__u32  s_reserved[87];
    258 	__u32  s_reserved[88];
    259 	__u32  s_reserved[89];
    260 	__u32  s_reserved[90];
    261 	__u32  s_reserved[91];
    262 	__u32  s_reserved[92];
    263 	__u32  s_reserved[93];
    264 	__u32  s_reserved[94];
    265 	__u32  s_reserved[95];
    266 	__u32  s_reserved[96];
    267 	__u32  s_reserved[97];
    268 	__u32  s_reserved[98];
    269 	__u32  s_reserved[99];
    270 	__u32  s_reserved[100];
    271 	__u32  s_reserved[101];
    272 	__u32  s_reserved[102];
    273 	__u32  s_reserved[103];
    274 	__u32  s_reserved[104];
    275 	__u32  s_reserved[105];
    276 	__u32  s_reserved[106];
    277 	__u32  s_reserved[107];
    278 	__u32  s_reserved[108];
    279 	__u32  s_reserved[109];
    280 	__u32  s_reserved[110];
    281 	__u32  s_reserved[111];
    282 	__u32  s_reserved[112];
    283 	__u32  s_reserved[113];
    284 	__u32  s_reserved[114];
    285 	__u32  s_reserved[115];
    286 	__u32  s_reserved[116];
    287 	__u32  s_reserved[117];
    288 	__u32  s_reserved[118];
    289 	__u32  s_reserved[119];
    290 	__u32  s_reserved[120];
    291 	__u32  s_reserved[121];
    292 	__u32  s_reserved[122];
    293 	__u32  s_reserved[123];
    294 	__u32  s_reserved[124];
    295 	__u32  s_reserved[125];
    296 	__u32  s_reserved[126];
    297 	__u32  s_reserved[127];
    298 	__u32  s_reserved[128];
    299 	__u32  s_reserved[129];
    300 	__u32  s_reserved[130];
    301 	__u32  s_reserved[131];
    302 	__u32  s_reserved[132];
    303 	__u32  s_reserved[133];
    304 	__u32  s_reserved[134];
    305 	__u32  s_reserved[135];
    306 	__u32  s_reserved[136];
    307 	__u32  s_reserved[137];
    308 	__u32  s_reserved[138];
    309 	__u32  s_reserved[139];
    310 	__u32  s_reserved[140];
    311 	__u32  s_reserved[141];
    312 	__u32  s_reserved[142];
    313 	__u32  s_reserved[143];
    314 	__u32  s_reserved[144];
    315 	__u32  s_reserved[145];
    316 	__u32  s_reserved[146];
    317 	__u32  s_reserved[147];
    318 	__u32  s_reserved[148];
    319 	__u32  s_reserved[149];
    320 	__u32  s_reserved[150];
    321 	__u32  s_reserved[151];
    322 	__u32  s_reserved[152];
    323 	__u32  s_reserved[153];
    324 	__u32  s_reserved[154];
    325 	__u32  s_reserved[155];
    326 	__u32  s_reserved[156];
    327 	__u32  s_reserved[157];
    328 	__u32  s_reserved[158];
    329 	__u32  s_reserved[159];
    330 	__u32  s_reserved[160];
    331 	__u32  s_reserved[161];
    332 	__u32  s_reserved[162];
    333 	__u32  s_reserved[163];
    334 	__u32  s_reserved[164];
    335 	__u32  s_reserved[165];
    336 	__u32  s_reserved[166];
    337 	__u32  s_reserved[167];
    338 	__u32  s_reserved[168];
    339 	__u32  s_reserved[169];
    340 	__u32  s_reserved[170];
    341 	__u32  s_reserved[171];
    342 	__u32  s_reserved[172];
    343 	__u32  s_reserved[173];
    344 	__u32  s_reserved[174];
    345 	__u32  s_reserved[175];
    346 	__u32  s_reserved[176];
    347 	__u32  s_reserved[177];
    348 	__u32  s_reserved[178];
    349 	__u32  s_reserved[179];
    350 	__u32  s_reserved[180];
    351 	__u32  s_reserved[181];
    352 	__u32  s_reserved[182];
    353 	__u32  s_reserved[183];
    354 	__u32  s_reserved[184];
    355 	__u32  s_reserved[185];
    356 	__u32  s_reserved[186];
    357 	__u32  s_reserved[187];
    358 	__u32  s_reserved[188];
    359 	__u32  s_reserved[189];
    360 	__u32  s_reserved[190];
    361 	__u32  s_reserved[191];
    362 	__u32  s_reserved[192];
    363 	__u32  s_reserved[193];
    364 	__u32  s_reserved[194];
    365 	__u32  s_reserved[195];
    366 	__u32  s_reserved[196];
    367 };
    368 
    369 The following is actually not used, due to the variable length of the
    370 name field. EXT2ED handles directories through the type "dir" below.
    371 
    372 /*
    373  * Structure of a directory entry
    374  */
    375 
    376 /* struct ext2_dir_entry { */
    377 /*
    378 	__u32  inode;			/* Inode number */
    379 	__u16 rec_len;			/* Directory entry length */
    380 	__u16 name_len;		/* Name length */
    381 	char           name[EXT2_NAME_LEN];	/* File name */
    382 };
    383 */
    384 
    385 struct file {
    386 };
    387 
    388 struct dir {
    389 };
    390 
    391 struct block_bitmap {
    392 };
    393 
    394 struct inode_bitmap {
    395 };
    396 
    397 struct ext2_dx_root_node {
    398 	__u32 dot_inode;
    399 	__u16 dot_rec_len;
    400 	__u8 dot_name_len;
    401 	__u8 dot_file_type;
    402 	char[4] dot_name;
    403 	__u32 dot_dot_inode;
    404 	__u16 dot_dot_rec_len;
    405 	__u8 dot_dot_name_len;
    406 	__u8 dot_dot_file_type;
    407 	char[4] dot_dot_name;
    408 	__u32 reserved_zero;
    409 	__u8 hash_version; /* 0 now, 1 at release */
    410 	__u8 info_length; /* 8 */
    411 	__u8 indirect_levels;
    412 	__u8 unused_flags;
    413 	__u16 limit;
    414 	__u16 count;
    415 	__u32 block[0];
    416 	__u32 hash[1];
    417 	__u32 block[1];
    418 	__u32 hash[2];
    419 	__u32 block[2];
    420 	__u32 hash[3];
    421 	__u32 block[3];
    422 	__u32 hash[4];
    423 	__u32 block[4];
    424 	__u32 hash[5];
    425 	__u32 block[5];
    426 	__u32 hash[6];
    427 	__u32 block[6];
    428 	__u32 hash[7];
    429 	__u32 block[7];
    430 	__u32 hash[8];
    431 	__u32 block[8];
    432 	__u32 hash[9];
    433 	__u32 block[9];
    434 	__u32 hash[10];
    435 	__u32 block[10];
    436 	__u32 hash[11];
    437 	__u32 block[11];
    438 	__u32 hash[12];
    439 	__u32 block[12];
    440 	__u32 hash[13];
    441 	__u32 block[13];
    442 	__u32 hash[14];
    443 	__u32 block[14];
    444 	__u32 hash[15];
    445 	__u32 block[15];
    446 	__u32 hash[16];
    447 	__u32 block[16];
    448 	__u32 hash[17];
    449 	__u32 block[17];
    450 	__u32 hash[18];
    451 	__u32 block[18];
    452 	__u32 hash[19];
    453 	__u32 block[19];
    454 	__u32 hash[20];
    455 	__u32 block[20];
    456 	__u32 hash[21];
    457 	__u32 block[21];
    458 	__u32 hash[22];
    459 	__u32 block[22];
    460 	__u32 hash[23];
    461 	__u32 block[23];
    462 	__u32 hash[24];
    463 	__u32 block[24];
    464 	__u32 hash[25];
    465 	__u32 block[25];
    466 	__u32 hash[26];
    467 	__u32 block[26];
    468 	__u32 hash[27];
    469 	__u32 block[27];
    470 	__u32 hash[28];
    471 	__u32 block[28];
    472 	__u32 hash[29];
    473 	__u32 block[29];
    474 	__u32 hash[30];
    475 	__u32 block[30];
    476 	__u32 hash[31];
    477 	__u32 block[31];
    478 	__u32 hash[32];
    479 	__u32 block[32];
    480 	__u32 hash[33];
    481 	__u32 block[33];
    482 	__u32 hash[34];
    483 	__u32 block[34];
    484 	__u32 hash[35];
    485 	__u32 block[35];
    486 	__u32 hash[36];
    487 	__u32 block[36];
    488 	__u32 hash[37];
    489 	__u32 block[37];
    490 	__u32 hash[38];
    491 	__u32 block[38];
    492 	__u32 hash[39];
    493 	__u32 block[39];
    494 	__u32 hash[40];
    495 	__u32 block[40];
    496 	__u32 hash[41];
    497 	__u32 block[41];
    498 	__u32 hash[42];
    499 	__u32 block[42];
    500 	__u32 hash[43];
    501 	__u32 block[43];
    502 	__u32 hash[44];
    503 	__u32 block[44];
    504 	__u32 hash[45];
    505 	__u32 block[45];
    506 	__u32 hash[46];
    507 	__u32 block[46];
    508 	__u32 hash[47];
    509 	__u32 block[47];
    510 	__u32 hash[48];
    511 	__u32 block[48];
    512 	__u32 hash[49];
    513 	__u32 block[49];
    514 	__u32 hash[50];
    515 	__u32 block[50];
    516 	__u32 hash[51];
    517 	__u32 block[51];
    518 	__u32 hash[52];
    519 	__u32 block[52];
    520 	__u32 hash[53];
    521 	__u32 block[53];
    522 	__u32 hash[54];
    523 	__u32 block[54];
    524 	__u32 hash[55];
    525 	__u32 block[55];
    526 	__u32 hash[56];
    527 	__u32 block[56];
    528 	__u32 hash[57];
    529 	__u32 block[57];
    530 	__u32 hash[58];
    531 	__u32 block[58];
    532 	__u32 hash[59];
    533 	__u32 block[59];
    534 	__u32 hash[60];
    535 	__u32 block[60];
    536 	__u32 hash[61];
    537 	__u32 block[61];
    538 	__u32 hash[62];
    539 	__u32 block[62];
    540 	__u32 hash[63];
    541 	__u32 block[63];
    542 	__u32 hash[64];
    543 	__u32 block[64];
    544 	__u32 hash[65];
    545 	__u32 block[65];
    546 	__u32 hash[66];
    547 	__u32 block[66];
    548 	__u32 hash[67];
    549 	__u32 block[67];
    550 	__u32 hash[68];
    551 	__u32 block[68];
    552 	__u32 hash[69];
    553 	__u32 block[69];
    554 	__u32 hash[70];
    555 	__u32 block[70];
    556 	__u32 hash[71];
    557 	__u32 block[71];
    558 	__u32 hash[72];
    559 	__u32 block[72];
    560 	__u32 hash[73];
    561 	__u32 block[73];
    562 	__u32 hash[74];
    563 	__u32 block[74];
    564 	__u32 hash[75];
    565 	__u32 block[75];
    566 	__u32 hash[76];
    567 	__u32 block[76];
    568 	__u32 hash[77];
    569 	__u32 block[77];
    570 	__u32 hash[78];
    571 	__u32 block[78];
    572 	__u32 hash[79];
    573 	__u32 block[79];
    574 	__u32 hash[80];
    575 	__u32 block[80];
    576 	__u32 hash[81];
    577 	__u32 block[81];
    578 	__u32 hash[82];
    579 	__u32 block[82];
    580 	__u32 hash[83];
    581 	__u32 block[83];
    582 	__u32 hash[84];
    583 	__u32 block[84];
    584 	__u32 hash[85];
    585 	__u32 block[85];
    586 	__u32 hash[86];
    587 	__u32 block[86];
    588 	__u32 hash[87];
    589 	__u32 block[87];
    590 	__u32 hash[88];
    591 	__u32 block[88];
    592 	__u32 hash[89];
    593 	__u32 block[89];
    594 	__u32 hash[80];
    595 	__u32 block[80];
    596 	__u32 hash[81];
    597 	__u32 block[81];
    598 	__u32 hash[82];
    599 	__u32 block[82];
    600 	__u32 hash[83];
    601 	__u32 block[83];
    602 	__u32 hash[84];
    603 	__u32 block[84];
    604 	__u32 hash[85];
    605 	__u32 block[85];
    606 	__u32 hash[86];
    607 	__u32 block[86];
    608 	__u32 hash[87];
    609 	__u32 block[87];
    610 	__u32 hash[88];
    611 	__u32 block[88];
    612 	__u32 hash[89];
    613 	__u32 block[89];
    614 	__u32 hash[90];
    615 	__u32 block[90];
    616 	__u32 hash[91];
    617 	__u32 block[91];
    618 	__u32 hash[92];
    619 	__u32 block[92];
    620 	__u32 hash[93];
    621 	__u32 block[93];
    622 	__u32 hash[94];
    623 	__u32 block[94];
    624 	__u32 hash[95];
    625 	__u32 block[95];
    626 	__u32 hash[96];
    627 	__u32 block[96];
    628 	__u32 hash[97];
    629 	__u32 block[97];
    630 	__u32 hash[98];
    631 	__u32 block[98];
    632 	__u32 hash[99];
    633 	__u32 block[99];
    634 	__u32 hash[100];
    635 	__u32 block[100];
    636 	__u32 hash[101];
    637 	__u32 block[101];
    638 	__u32 hash[102];
    639 	__u32 block[102];
    640 	__u32 hash[103];
    641 	__u32 block[103];
    642 	__u32 hash[104];
    643 	__u32 block[104];
    644 	__u32 hash[105];
    645 	__u32 block[105];
    646 	__u32 hash[106];
    647 	__u32 block[106];
    648 	__u32 hash[107];
    649 	__u32 block[107];
    650 	__u32 hash[108];
    651 	__u32 block[108];
    652 	__u32 hash[109];
    653 	__u32 block[109];
    654 	__u32 hash[110];
    655 	__u32 block[110];
    656 	__u32 hash[111];
    657 	__u32 block[111];
    658 	__u32 hash[112];
    659 	__u32 block[112];
    660 	__u32 hash[113];
    661 	__u32 block[113];
    662 	__u32 hash[114];
    663 	__u32 block[114];
    664 	__u32 hash[115];
    665 	__u32 block[115];
    666 	__u32 hash[116];
    667 	__u32 block[116];
    668 	__u32 hash[117];
    669 	__u32 block[117];
    670 	__u32 hash[118];
    671 	__u32 block[118];
    672 	__u32 hash[119];
    673 	__u32 block[119];
    674 	__u32 hash[120];
    675 	__u32 block[120];
    676 	__u32 hash[121];
    677 	__u32 block[121];
    678 	__u32 hash[122];
    679 	__u32 block[122];
    680 	__u32 hash[123];
    681 	__u32 block[123];
    682 	__u32 hash[124];
    683 	__u32 block[124];
    684 	__u32 hash[125];
    685 	__u32 block[125];
    686 	__u32 hash[126];
    687 	__u32 block[126];
    688 	__u32 hash[127];
    689 	__u32 block[127];
    690 };
    691 
    692 struct ext2_dx_int_node {
    693 	__u32 fake_inode;
    694 	__u16 fake_rec_len;
    695 	__u8 fake_name_len;
    696 	__u8 fake_file_type;
    697 	__u16 limit;
    698 	__u16 count;
    699 	__u32 block[0];
    700 	__u32 hash[1];
    701 	__u32 block[1];
    702 	__u32 hash[2];
    703 	__u32 block[2];
    704 	__u32 hash[3];
    705 	__u32 block[3];
    706 	__u32 hash[4];
    707 	__u32 block[4];
    708 	__u32 hash[5];
    709 	__u32 block[5];
    710 	__u32 hash[6];
    711 	__u32 block[6];
    712 	__u32 hash[7];
    713 	__u32 block[7];
    714 	__u32 hash[8];
    715 	__u32 block[8];
    716 	__u32 hash[9];
    717 	__u32 block[9];
    718 	__u32 hash[10];
    719 	__u32 block[10];
    720 	__u32 hash[11];
    721 	__u32 block[11];
    722 	__u32 hash[12];
    723 	__u32 block[12];
    724 	__u32 hash[13];
    725 	__u32 block[13];
    726 	__u32 hash[14];
    727 	__u32 block[14];
    728 	__u32 hash[15];
    729 	__u32 block[15];
    730 	__u32 hash[16];
    731 	__u32 block[16];
    732 	__u32 hash[17];
    733 	__u32 block[17];
    734 	__u32 hash[18];
    735 	__u32 block[18];
    736 	__u32 hash[19];
    737 	__u32 block[19];
    738 	__u32 hash[20];
    739 	__u32 block[20];
    740 	__u32 hash[21];
    741 	__u32 block[21];
    742 	__u32 hash[22];
    743 	__u32 block[22];
    744 	__u32 hash[23];
    745 	__u32 block[23];
    746 	__u32 hash[24];
    747 	__u32 block[24];
    748 	__u32 hash[25];
    749 	__u32 block[25];
    750 	__u32 hash[26];
    751 	__u32 block[26];
    752 	__u32 hash[27];
    753 	__u32 block[27];
    754 	__u32 hash[28];
    755 	__u32 block[28];
    756 	__u32 hash[29];
    757 	__u32 block[29];
    758 	__u32 hash[30];
    759 	__u32 block[30];
    760 	__u32 hash[31];
    761 	__u32 block[31];
    762 	__u32 hash[32];
    763 	__u32 block[32];
    764 	__u32 hash[33];
    765 	__u32 block[33];
    766 	__u32 hash[34];
    767 	__u32 block[34];
    768 	__u32 hash[35];
    769 	__u32 block[35];
    770 	__u32 hash[36];
    771 	__u32 block[36];
    772 	__u32 hash[37];
    773 	__u32 block[37];
    774 	__u32 hash[38];
    775 	__u32 block[38];
    776 	__u32 hash[39];
    777 	__u32 block[39];
    778 	__u32 hash[40];
    779 	__u32 block[40];
    780 	__u32 hash[41];
    781 	__u32 block[41];
    782 	__u32 hash[42];
    783 	__u32 block[42];
    784 	__u32 hash[43];
    785 	__u32 block[43];
    786 	__u32 hash[44];
    787 	__u32 block[44];
    788 	__u32 hash[45];
    789 	__u32 block[45];
    790 	__u32 hash[46];
    791 	__u32 block[46];
    792 	__u32 hash[47];
    793 	__u32 block[47];
    794 	__u32 hash[48];
    795 	__u32 block[48];
    796 	__u32 hash[49];
    797 	__u32 block[49];
    798 	__u32 hash[50];
    799 	__u32 block[50];
    800 	__u32 hash[51];
    801 	__u32 block[51];
    802 	__u32 hash[52];
    803 	__u32 block[52];
    804 	__u32 hash[53];
    805 	__u32 block[53];
    806 	__u32 hash[54];
    807 	__u32 block[54];
    808 	__u32 hash[55];
    809 	__u32 block[55];
    810 	__u32 hash[56];
    811 	__u32 block[56];
    812 	__u32 hash[57];
    813 	__u32 block[57];
    814 	__u32 hash[58];
    815 	__u32 block[58];
    816 	__u32 hash[59];
    817 	__u32 block[59];
    818 	__u32 hash[60];
    819 	__u32 block[60];
    820 	__u32 hash[61];
    821 	__u32 block[61];
    822 	__u32 hash[62];
    823 	__u32 block[62];
    824 	__u32 hash[63];
    825 	__u32 block[63];
    826 	__u32 hash[64];
    827 	__u32 block[64];
    828 	__u32 hash[65];
    829 	__u32 block[65];
    830 	__u32 hash[66];
    831 	__u32 block[66];
    832 	__u32 hash[67];
    833 	__u32 block[67];
    834 	__u32 hash[68];
    835 	__u32 block[68];
    836 	__u32 hash[69];
    837 	__u32 block[69];
    838 	__u32 hash[70];
    839 	__u32 block[70];
    840 	__u32 hash[71];
    841 	__u32 block[71];
    842 	__u32 hash[72];
    843 	__u32 block[72];
    844 	__u32 hash[73];
    845 	__u32 block[73];
    846 	__u32 hash[74];
    847 	__u32 block[74];
    848 	__u32 hash[75];
    849 	__u32 block[75];
    850 	__u32 hash[76];
    851 	__u32 block[76];
    852 	__u32 hash[77];
    853 	__u32 block[77];
    854 	__u32 hash[78];
    855 	__u32 block[78];
    856 	__u32 hash[79];
    857 	__u32 block[79];
    858 	__u32 hash[80];
    859 	__u32 block[80];
    860 	__u32 hash[81];
    861 	__u32 block[81];
    862 	__u32 hash[82];
    863 	__u32 block[82];
    864 	__u32 hash[83];
    865 	__u32 block[83];
    866 	__u32 hash[84];
    867 	__u32 block[84];
    868 	__u32 hash[85];
    869 	__u32 block[85];
    870 	__u32 hash[86];
    871 	__u32 block[86];
    872 	__u32 hash[87];
    873 	__u32 block[87];
    874 	__u32 hash[88];
    875 	__u32 block[88];
    876 	__u32 hash[89];
    877 	__u32 block[89];
    878 	__u32 hash[80];
    879 	__u32 block[80];
    880 	__u32 hash[81];
    881 	__u32 block[81];
    882 	__u32 hash[82];
    883 	__u32 block[82];
    884 	__u32 hash[83];
    885 	__u32 block[83];
    886 	__u32 hash[84];
    887 	__u32 block[84];
    888 	__u32 hash[85];
    889 	__u32 block[85];
    890 	__u32 hash[86];
    891 	__u32 block[86];
    892 	__u32 hash[87];
    893 	__u32 block[87];
    894 	__u32 hash[88];
    895 	__u32 block[88];
    896 	__u32 hash[89];
    897 	__u32 block[89];
    898 	__u32 hash[90];
    899 	__u32 block[90];
    900 	__u32 hash[91];
    901 	__u32 block[91];
    902 	__u32 hash[92];
    903 	__u32 block[92];
    904 	__u32 hash[93];
    905 	__u32 block[93];
    906 	__u32 hash[94];
    907 	__u32 block[94];
    908 	__u32 hash[95];
    909 	__u32 block[95];
    910 	__u32 hash[96];
    911 	__u32 block[96];
    912 	__u32 hash[97];
    913 	__u32 block[97];
    914 	__u32 hash[98];
    915 	__u32 block[98];
    916 	__u32 hash[99];
    917 	__u32 block[99];
    918 	__u32 hash[100];
    919 	__u32 block[100];
    920 	__u32 hash[101];
    921 	__u32 block[101];
    922 	__u32 hash[102];
    923 	__u32 block[102];
    924 	__u32 hash[103];
    925 	__u32 block[103];
    926 	__u32 hash[104];
    927 	__u32 block[104];
    928 	__u32 hash[105];
    929 	__u32 block[105];
    930 	__u32 hash[106];
    931 	__u32 block[106];
    932 	__u32 hash[107];
    933 	__u32 block[107];
    934 	__u32 hash[108];
    935 	__u32 block[108];
    936 	__u32 hash[109];
    937 	__u32 block[109];
    938 	__u32 hash[110];
    939 	__u32 block[110];
    940 	__u32 hash[111];
    941 	__u32 block[111];
    942 	__u32 hash[112];
    943 	__u32 block[112];
    944 	__u32 hash[113];
    945 	__u32 block[113];
    946 	__u32 hash[114];
    947 	__u32 block[114];
    948 	__u32 hash[115];
    949 	__u32 block[115];
    950 	__u32 hash[116];
    951 	__u32 block[116];
    952 	__u32 hash[117];
    953 	__u32 block[117];
    954 	__u32 hash[118];
    955 	__u32 block[118];
    956 	__u32 hash[119];
    957 	__u32 block[119];
    958 	__u32 hash[120];
    959 	__u32 block[120];
    960 	__u32 hash[121];
    961 	__u32 block[121];
    962 	__u32 hash[122];
    963 	__u32 block[122];
    964 	__u32 hash[123];
    965 	__u32 block[123];
    966 	__u32 hash[124];
    967 	__u32 block[124];
    968 	__u32 hash[125];
    969 	__u32 block[125];
    970 	__u32 hash[126];
    971 	__u32 block[126];
    972 	__u32 hash[127];
    973 	__u32 block[127];
    974 };
    975 
    976 
    977