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