977 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			977 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| Extended 2 filesystem structure definitions for ext2ed.
 | |
| 
 | |
| Most of this file is just copied from the ext2 main include file.
 | |
| 
 | |
| My parser is very primitive - It only searches for the struct keywords,
 | |
| and uses the variables in there. The rest of the file is just ignored.
 | |
| 
 | |
| You will find at the end a few additional types which are not available in
 | |
| the original include file, such as the types "file" and "dir". They have
 | |
| no variables, but are necessary due to the way ext2ed binds C commands
 | |
| to specific types.
 | |
| 
 | |
| Gadi Oxman, 7/95
 | |
| 
 | |
| Here is the original copyright:
 | |
| 
 | |
| /*
 | |
|  *  linux/include/linux/ext2_fs.h
 | |
|  *
 | |
|  *  Copyright (C) 1992, 1993, 1994  Remy Card (card@masi.ibp.fr)
 | |
|  *                                  Laboratoire MASI - Institut Blaise Pascal
 | |
|  *                                  Universite Pierre et Marie Curie (Paris VI)
 | |
|  *
 | |
|  *  from
 | |
|  *
 | |
|  *  linux/include/linux/minix_fs.h
 | |
|  *
 | |
|  *  Copyright (C) 1991, 1992  Linus Torvalds
 | |
|  */
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * ACL structures
 | |
|  */
 | |
| struct ext2_acl_header	/* Header of Access Control Lists */
 | |
| {
 | |
| 	unsigned long aclh_size;
 | |
| 	unsigned long aclh_file_count;
 | |
| 	unsigned long aclh_acle_count;
 | |
| 	unsigned long aclh_first_acle;
 | |
| };
 | |
| 
 | |
| struct ext2_acl_entry	/* Access Control List Entry */
 | |
| {
 | |
| 	unsigned long  acle_size;
 | |
| 	unsigned short acle_perms;	/* Access permissions */
 | |
| 	unsigned short acle_type;	/* Type of entry */
 | |
| 	unsigned short acle_tag;	/* User or group identity */
 | |
| 	unsigned short acle_pad1;
 | |
| 	unsigned long  acle_next;	/* Pointer on next entry for the */
 | |
| 					/* same inode or on next free entry */
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * Structure of a blocks group descriptor
 | |
|  */
 | |
| 
 | |
| struct ext2_group_desc
 | |
| {
 | |
| 	__u32	bg_block_bitmap;		/* Blocks bitmap block */
 | |
| 	__u32	bg_inode_bitmap;		/* Inodes bitmap block */
 | |
| 	__u32	bg_inode_table;		/* Inodes table block */
 | |
| 	__u16	bg_free_blocks_count;	/* Free blocks count */
 | |
| 	__u16	bg_free_inodes_count;	/* Free inodes count */
 | |
| 	__u16	bg_used_dirs_count;	/* Directories count */
 | |
| 	__u16	bg_pad;
 | |
| 	__u32   bg_reserved[0];
 | |
| 	__u32   bg_reserved[1];
 | |
| 	__u32   bg_reserved[2];
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * Structure of an inode on the disk
 | |
|  */
 | |
| struct ext2_inode {
 | |
| 	__u16 i_mode;		/* File mode */
 | |
| 	__u16 i_uid;		/* Owner Uid */
 | |
| 	__u32  i_size;		/* Size in bytes */
 | |
| 	__u32  i_atime;		/* Access time */
 | |
| 	__u32  i_ctime;		/* Creation time */
 | |
| 	__u32  i_mtime;		/* Modification time */
 | |
| 	__u32  i_dtime;		/* Deletion Time */
 | |
| 	__u16  i_gid;		/* Group Id */
 | |
| 	__u16  i_links_count;	/* Links count */
 | |
| 	__u32  i_blocks;	/* Blocks count */
 | |
| 	__u32  i_flags;		/* File flags */
 | |
| 	__u32  l_i_reserved1;
 | |
| 	__u32  i_block[0]; /* Pointers to blocks */
 | |
| 	__u32  i_block[1]; /* Pointers to blocks */
 | |
| 	__u32  i_block[2]; /* Pointers to blocks */
 | |
| 	__u32  i_block[3]; /* Pointers to blocks */
 | |
| 	__u32  i_block[4]; /* Pointers to blocks */
 | |
| 	__u32  i_block[5]; /* Pointers to blocks */
 | |
| 	__u32  i_block[6]; /* Pointers to blocks */
 | |
| 	__u32  i_block[7]; /* Pointers to blocks */
 | |
| 	__u32  i_block[8]; /* Pointers to blocks */
 | |
| 	__u32  i_block[9]; /* Pointers to blocks */
 | |
| 	__u32  i_block[10]; /* Pointers to blocks */
 | |
| 	__u32  i_block[11]; /* Pointers to blocks */
 | |
| 	__u32  i_block[12]; /* Pointers to blocks */
 | |
| 	__u32  i_block[13]; /* Pointers to blocks */
 | |
| 	__u32  i_block[14]; /* Pointers to blocks */
 | |
| 	__u32  i_version;	/* File version (for NFS) */
 | |
| 	__u32  i_file_acl;	/* File ACL */
 | |
| 	__u32  i_size_high;	/* High 32bits of size */
 | |
| 	__u32  i_faddr;		/* Fragment address */
 | |
| 	__u8   l_i_frag;	/* Fragment number */
 | |
| 	__u8   l_i_fsize;	/* Fragment size */
 | |
| 	__u16  i_pad1;
 | |
| 	__u16	l_i_uid_high;	/* these 2 fields    */
 | |
| 	__u16	l_i_gid_high;	/* were reserved2[0] */
 | |
| 	__u32  l_i_reserved2;
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * Structure of the super block
 | |
|  */
 | |
| struct ext2_super_block {
 | |
| 	__u32	s_inodes_count;		/* Inodes count */
 | |
| 	__u32	s_blocks_count;		/* Blocks count */
 | |
| 	__u32	s_r_blocks_count;	/* Reserved blocks count */
 | |
| 	__u32	s_free_blocks_count;	/* Free blocks count */
 | |
| 	__u32	s_free_inodes_count;	/* Free inodes count */
 | |
| 	__u32	s_first_data_block;	/* First Data Block */
 | |
| 	__u32	s_log_block_size;	/* Block size */
 | |
| 	__s32	s_log_frag_size;	/* Fragment size */
 | |
| 	__u32	s_blocks_per_group;	/* # Blocks per group */
 | |
| 	__u32	s_frags_per_group;	/* # Fragments per group */
 | |
| 	__u32	s_inodes_per_group;	/* # Inodes per group */
 | |
| 	__u32	s_mtime;		/* Mount time */
 | |
| 	__u32	s_wtime;		/* Write time */
 | |
| 	__u16	s_mnt_count;		/* Mount count */
 | |
| 	__s16	s_max_mnt_count;	/* Maximal mount count */
 | |
| 	__u16	s_magic;		/* Magic signature */
 | |
| 	__u16	s_state;		/* File system state */
 | |
| 	__u16	s_errors;		/* Behaviour when detecting errors */
 | |
| 	__u16	s_minor_rev_level; 	/* minor revision level */
 | |
| 	__u32	s_lastcheck;		/* time of last check */
 | |
| 	__u32	s_checkinterval;	/* max. time between checks */
 | |
| 	__u32	s_creator_os;		/* OS */
 | |
| 	__u32	s_rev_level;		/* Revision level */
 | |
| 	__u16	s_def_resuid;		/* Default uid for reserved blocks */
 | |
| 	__u16	s_def_resgid;		/* Default gid for reserved blocks */
 | |
| 	__u32	s_first_ino; 		/* First non-reserved inode */
 | |
| 	__u16   s_inode_size; 		/* size of inode structure */
 | |
| 	__u16	s_block_group_nr; 	/* block group # of this superblock */
 | |
| 	__u32	s_feature_compat; 	/* compatible feature set */
 | |
| 	__u32	s_feature_incompat; 	/* incompatible feature set */
 | |
| 	__u32	s_feature_ro_compat; 	/* readonly-compatible feature set */
 | |
| 	char[16] s_uuid;		/* 128-bit uuid for volume */
 | |
| 	char[16] s_volume_name; 	/* volume name */
 | |
| 	char[64] s_last_mounted; 	/* directory where last mounted */
 | |
| 	__u32	s_algorithm_usage_bitmap; /* For compression */
 | |
| 	/*
 | |
| 	 * Performance hints.  Directory preallocation should only
 | |
| 	 * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
 | |
| 	 */
 | |
| 	__u8	s_prealloc_blocks;	/* Nr of blocks to try to preallocate*/
 | |
| 	__u8	s_prealloc_dir_blocks;	/* Nr to preallocate for dirs */
 | |
| 	__u16	s_padding1;
 | |
| 	/* 
 | |
| 	 * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
 | |
| 	 */
 | |
| 	char[16] s_journal_uuid;	/* uuid of journal superblock */
 | |
| 	__u32	s_journal_inum;		/* inode number of journal file */
 | |
| 	__u32	s_journal_dev;		/* device number of journal file */
 | |
| 	__u32	s_last_orphan;		/* start of list of inodes to delete */
 | |
| 
 | |
| 
 | |
| 	__u32  s_reserved[0];	/* Padding to the end of the block */
 | |
| 	__u32  s_reserved[1];
 | |
| 	__u32  s_reserved[2];
 | |
| 	__u32  s_reserved[3];
 | |
| 	__u32  s_reserved[4];
 | |
| 	__u32  s_reserved[5];
 | |
| 	__u32  s_reserved[6];
 | |
| 	__u32  s_reserved[7];
 | |
| 	__u32  s_reserved[8];
 | |
| 	__u32  s_reserved[9];
 | |
| 	__u32  s_reserved[10];
 | |
| 	__u32  s_reserved[11];
 | |
| 	__u32  s_reserved[12];
 | |
| 	__u32  s_reserved[13];
 | |
| 	__u32  s_reserved[14];
 | |
| 	__u32  s_reserved[15];
 | |
| 	__u32  s_reserved[16];
 | |
| 	__u32  s_reserved[17];
 | |
| 	__u32  s_reserved[18];
 | |
| 	__u32  s_reserved[19];
 | |
| 	__u32  s_reserved[20];
 | |
| 	__u32  s_reserved[21];
 | |
| 	__u32  s_reserved[22];
 | |
| 	__u32  s_reserved[23];
 | |
| 	__u32  s_reserved[24];
 | |
| 	__u32  s_reserved[25];
 | |
| 	__u32  s_reserved[26];
 | |
| 	__u32  s_reserved[27];
 | |
| 	__u32  s_reserved[28];
 | |
| 	__u32  s_reserved[29];
 | |
| 	__u32  s_reserved[30];
 | |
| 	__u32  s_reserved[31];
 | |
| 	__u32  s_reserved[32];
 | |
| 	__u32  s_reserved[33];
 | |
| 	__u32  s_reserved[34];
 | |
| 	__u32  s_reserved[35];
 | |
| 	__u32  s_reserved[36];
 | |
| 	__u32  s_reserved[37];
 | |
| 	__u32  s_reserved[38];
 | |
| 	__u32  s_reserved[39];
 | |
| 	__u32  s_reserved[40];
 | |
| 	__u32  s_reserved[41];
 | |
| 	__u32  s_reserved[42];
 | |
| 	__u32  s_reserved[43];
 | |
| 	__u32  s_reserved[44];
 | |
| 	__u32  s_reserved[45];
 | |
| 	__u32  s_reserved[46];
 | |
| 	__u32  s_reserved[47];
 | |
| 	__u32  s_reserved[48];
 | |
| 	__u32  s_reserved[49];
 | |
| 	__u32  s_reserved[50];
 | |
| 	__u32  s_reserved[51];
 | |
| 	__u32  s_reserved[52];
 | |
| 	__u32  s_reserved[53];
 | |
| 	__u32  s_reserved[54];
 | |
| 	__u32  s_reserved[55];
 | |
| 	__u32  s_reserved[56];
 | |
| 	__u32  s_reserved[57];
 | |
| 	__u32  s_reserved[58];
 | |
| 	__u32  s_reserved[59];
 | |
| 	__u32  s_reserved[60];
 | |
| 	__u32  s_reserved[61];
 | |
| 	__u32  s_reserved[62];
 | |
| 	__u32  s_reserved[63];
 | |
| 	__u32  s_reserved[64];
 | |
| 	__u32  s_reserved[65];
 | |
| 	__u32  s_reserved[66];
 | |
| 	__u32  s_reserved[67];
 | |
| 	__u32  s_reserved[68];
 | |
| 	__u32  s_reserved[69];
 | |
| 	__u32  s_reserved[70];
 | |
| 	__u32  s_reserved[71];
 | |
| 	__u32  s_reserved[72];
 | |
| 	__u32  s_reserved[73];
 | |
| 	__u32  s_reserved[74];
 | |
| 	__u32  s_reserved[75];
 | |
| 	__u32  s_reserved[76];
 | |
| 	__u32  s_reserved[77];
 | |
| 	__u32  s_reserved[78];
 | |
| 	__u32  s_reserved[79];
 | |
| 	__u32  s_reserved[80];
 | |
| 	__u32  s_reserved[81];
 | |
| 	__u32  s_reserved[82];
 | |
| 	__u32  s_reserved[83];
 | |
| 	__u32  s_reserved[84];
 | |
| 	__u32  s_reserved[85];
 | |
| 	__u32  s_reserved[86];
 | |
| 	__u32  s_reserved[87];
 | |
| 	__u32  s_reserved[88];
 | |
| 	__u32  s_reserved[89];
 | |
| 	__u32  s_reserved[90];
 | |
| 	__u32  s_reserved[91];
 | |
| 	__u32  s_reserved[92];
 | |
| 	__u32  s_reserved[93];
 | |
| 	__u32  s_reserved[94];
 | |
| 	__u32  s_reserved[95];
 | |
| 	__u32  s_reserved[96];
 | |
| 	__u32  s_reserved[97];
 | |
| 	__u32  s_reserved[98];
 | |
| 	__u32  s_reserved[99];
 | |
| 	__u32  s_reserved[100];
 | |
| 	__u32  s_reserved[101];
 | |
| 	__u32  s_reserved[102];
 | |
| 	__u32  s_reserved[103];
 | |
| 	__u32  s_reserved[104];
 | |
| 	__u32  s_reserved[105];
 | |
| 	__u32  s_reserved[106];
 | |
| 	__u32  s_reserved[107];
 | |
| 	__u32  s_reserved[108];
 | |
| 	__u32  s_reserved[109];
 | |
| 	__u32  s_reserved[110];
 | |
| 	__u32  s_reserved[111];
 | |
| 	__u32  s_reserved[112];
 | |
| 	__u32  s_reserved[113];
 | |
| 	__u32  s_reserved[114];
 | |
| 	__u32  s_reserved[115];
 | |
| 	__u32  s_reserved[116];
 | |
| 	__u32  s_reserved[117];
 | |
| 	__u32  s_reserved[118];
 | |
| 	__u32  s_reserved[119];
 | |
| 	__u32  s_reserved[120];
 | |
| 	__u32  s_reserved[121];
 | |
| 	__u32  s_reserved[122];
 | |
| 	__u32  s_reserved[123];
 | |
| 	__u32  s_reserved[124];
 | |
| 	__u32  s_reserved[125];
 | |
| 	__u32  s_reserved[126];
 | |
| 	__u32  s_reserved[127];
 | |
| 	__u32  s_reserved[128];
 | |
| 	__u32  s_reserved[129];
 | |
| 	__u32  s_reserved[130];
 | |
| 	__u32  s_reserved[131];
 | |
| 	__u32  s_reserved[132];
 | |
| 	__u32  s_reserved[133];
 | |
| 	__u32  s_reserved[134];
 | |
| 	__u32  s_reserved[135];
 | |
| 	__u32  s_reserved[136];
 | |
| 	__u32  s_reserved[137];
 | |
| 	__u32  s_reserved[138];
 | |
| 	__u32  s_reserved[139];
 | |
| 	__u32  s_reserved[140];
 | |
| 	__u32  s_reserved[141];
 | |
| 	__u32  s_reserved[142];
 | |
| 	__u32  s_reserved[143];
 | |
| 	__u32  s_reserved[144];
 | |
| 	__u32  s_reserved[145];
 | |
| 	__u32  s_reserved[146];
 | |
| 	__u32  s_reserved[147];
 | |
| 	__u32  s_reserved[148];
 | |
| 	__u32  s_reserved[149];
 | |
| 	__u32  s_reserved[150];
 | |
| 	__u32  s_reserved[151];
 | |
| 	__u32  s_reserved[152];
 | |
| 	__u32  s_reserved[153];
 | |
| 	__u32  s_reserved[154];
 | |
| 	__u32  s_reserved[155];
 | |
| 	__u32  s_reserved[156];
 | |
| 	__u32  s_reserved[157];
 | |
| 	__u32  s_reserved[158];
 | |
| 	__u32  s_reserved[159];
 | |
| 	__u32  s_reserved[160];
 | |
| 	__u32  s_reserved[161];
 | |
| 	__u32  s_reserved[162];
 | |
| 	__u32  s_reserved[163];
 | |
| 	__u32  s_reserved[164];
 | |
| 	__u32  s_reserved[165];
 | |
| 	__u32  s_reserved[166];
 | |
| 	__u32  s_reserved[167];
 | |
| 	__u32  s_reserved[168];
 | |
| 	__u32  s_reserved[169];
 | |
| 	__u32  s_reserved[170];
 | |
| 	__u32  s_reserved[171];
 | |
| 	__u32  s_reserved[172];
 | |
| 	__u32  s_reserved[173];
 | |
| 	__u32  s_reserved[174];
 | |
| 	__u32  s_reserved[175];
 | |
| 	__u32  s_reserved[176];
 | |
| 	__u32  s_reserved[177];
 | |
| 	__u32  s_reserved[178];
 | |
| 	__u32  s_reserved[179];
 | |
| 	__u32  s_reserved[180];
 | |
| 	__u32  s_reserved[181];
 | |
| 	__u32  s_reserved[182];
 | |
| 	__u32  s_reserved[183];
 | |
| 	__u32  s_reserved[184];
 | |
| 	__u32  s_reserved[185];
 | |
| 	__u32  s_reserved[186];
 | |
| 	__u32  s_reserved[187];
 | |
| 	__u32  s_reserved[188];
 | |
| 	__u32  s_reserved[189];
 | |
| 	__u32  s_reserved[190];
 | |
| 	__u32  s_reserved[191];
 | |
| 	__u32  s_reserved[192];
 | |
| 	__u32  s_reserved[193];
 | |
| 	__u32  s_reserved[194];
 | |
| 	__u32  s_reserved[195];
 | |
| 	__u32  s_reserved[196];
 | |
| };
 | |
| 
 | |
| The following is actually not used, due to the variable length of the
 | |
| name field. EXT2ED handles directories through the type "dir" below.
 | |
| 
 | |
| /*
 | |
|  * Structure of a directory entry
 | |
|  */
 | |
| 
 | |
| /* struct ext2_dir_entry { */
 | |
| /*
 | |
| 	__u32  inode;			/* Inode number */
 | |
| 	__u16 rec_len;			/* Directory entry length */
 | |
| 	__u16 name_len;		/* Name length */
 | |
| 	char           name[EXT2_NAME_LEN];	/* File name */
 | |
| };
 | |
| */
 | |
| 
 | |
| struct file {
 | |
| };
 | |
| 
 | |
| struct dir {
 | |
| };
 | |
| 
 | |
| struct block_bitmap {
 | |
| };
 | |
| 
 | |
| struct inode_bitmap {
 | |
| };
 | |
| 
 | |
| struct ext2_dx_root_node {
 | |
| 	__u32 dot_inode;
 | |
| 	__u16 dot_rec_len;
 | |
| 	__u8 dot_name_len;
 | |
| 	__u8 dot_file_type;
 | |
| 	char[4] dot_name;
 | |
| 	__u32 dot_dot_inode;
 | |
| 	__u16 dot_dot_rec_len;
 | |
| 	__u8 dot_dot_name_len;
 | |
| 	__u8 dot_dot_file_type;
 | |
| 	char[4] dot_dot_name;
 | |
| 	__u32 reserved_zero;
 | |
| 	__u8 hash_version; /* 0 now, 1 at release */
 | |
| 	__u8 info_length; /* 8 */
 | |
| 	__u8 indirect_levels;
 | |
| 	__u8 unused_flags;
 | |
| 	__u16 limit;
 | |
| 	__u16 count;
 | |
| 	__u32 block[0];
 | |
| 	__u32 hash[1];
 | |
| 	__u32 block[1];
 | |
| 	__u32 hash[2];
 | |
| 	__u32 block[2];
 | |
| 	__u32 hash[3];
 | |
| 	__u32 block[3];
 | |
| 	__u32 hash[4];
 | |
| 	__u32 block[4];
 | |
| 	__u32 hash[5];
 | |
| 	__u32 block[5];
 | |
| 	__u32 hash[6];
 | |
| 	__u32 block[6];
 | |
| 	__u32 hash[7];
 | |
| 	__u32 block[7];
 | |
| 	__u32 hash[8];
 | |
| 	__u32 block[8];
 | |
| 	__u32 hash[9];
 | |
| 	__u32 block[9];
 | |
| 	__u32 hash[10];
 | |
| 	__u32 block[10];
 | |
| 	__u32 hash[11];
 | |
| 	__u32 block[11];
 | |
| 	__u32 hash[12];
 | |
| 	__u32 block[12];
 | |
| 	__u32 hash[13];
 | |
| 	__u32 block[13];
 | |
| 	__u32 hash[14];
 | |
| 	__u32 block[14];
 | |
| 	__u32 hash[15];
 | |
| 	__u32 block[15];
 | |
| 	__u32 hash[16];
 | |
| 	__u32 block[16];
 | |
| 	__u32 hash[17];
 | |
| 	__u32 block[17];
 | |
| 	__u32 hash[18];
 | |
| 	__u32 block[18];
 | |
| 	__u32 hash[19];
 | |
| 	__u32 block[19];
 | |
| 	__u32 hash[20];
 | |
| 	__u32 block[20];
 | |
| 	__u32 hash[21];
 | |
| 	__u32 block[21];
 | |
| 	__u32 hash[22];
 | |
| 	__u32 block[22];
 | |
| 	__u32 hash[23];
 | |
| 	__u32 block[23];
 | |
| 	__u32 hash[24];
 | |
| 	__u32 block[24];
 | |
| 	__u32 hash[25];
 | |
| 	__u32 block[25];
 | |
| 	__u32 hash[26];
 | |
| 	__u32 block[26];
 | |
| 	__u32 hash[27];
 | |
| 	__u32 block[27];
 | |
| 	__u32 hash[28];
 | |
| 	__u32 block[28];
 | |
| 	__u32 hash[29];
 | |
| 	__u32 block[29];
 | |
| 	__u32 hash[30];
 | |
| 	__u32 block[30];
 | |
| 	__u32 hash[31];
 | |
| 	__u32 block[31];
 | |
| 	__u32 hash[32];
 | |
| 	__u32 block[32];
 | |
| 	__u32 hash[33];
 | |
| 	__u32 block[33];
 | |
| 	__u32 hash[34];
 | |
| 	__u32 block[34];
 | |
| 	__u32 hash[35];
 | |
| 	__u32 block[35];
 | |
| 	__u32 hash[36];
 | |
| 	__u32 block[36];
 | |
| 	__u32 hash[37];
 | |
| 	__u32 block[37];
 | |
| 	__u32 hash[38];
 | |
| 	__u32 block[38];
 | |
| 	__u32 hash[39];
 | |
| 	__u32 block[39];
 | |
| 	__u32 hash[40];
 | |
| 	__u32 block[40];
 | |
| 	__u32 hash[41];
 | |
| 	__u32 block[41];
 | |
| 	__u32 hash[42];
 | |
| 	__u32 block[42];
 | |
| 	__u32 hash[43];
 | |
| 	__u32 block[43];
 | |
| 	__u32 hash[44];
 | |
| 	__u32 block[44];
 | |
| 	__u32 hash[45];
 | |
| 	__u32 block[45];
 | |
| 	__u32 hash[46];
 | |
| 	__u32 block[46];
 | |
| 	__u32 hash[47];
 | |
| 	__u32 block[47];
 | |
| 	__u32 hash[48];
 | |
| 	__u32 block[48];
 | |
| 	__u32 hash[49];
 | |
| 	__u32 block[49];
 | |
| 	__u32 hash[50];
 | |
| 	__u32 block[50];
 | |
| 	__u32 hash[51];
 | |
| 	__u32 block[51];
 | |
| 	__u32 hash[52];
 | |
| 	__u32 block[52];
 | |
| 	__u32 hash[53];
 | |
| 	__u32 block[53];
 | |
| 	__u32 hash[54];
 | |
| 	__u32 block[54];
 | |
| 	__u32 hash[55];
 | |
| 	__u32 block[55];
 | |
| 	__u32 hash[56];
 | |
| 	__u32 block[56];
 | |
| 	__u32 hash[57];
 | |
| 	__u32 block[57];
 | |
| 	__u32 hash[58];
 | |
| 	__u32 block[58];
 | |
| 	__u32 hash[59];
 | |
| 	__u32 block[59];
 | |
| 	__u32 hash[60];
 | |
| 	__u32 block[60];
 | |
| 	__u32 hash[61];
 | |
| 	__u32 block[61];
 | |
| 	__u32 hash[62];
 | |
| 	__u32 block[62];
 | |
| 	__u32 hash[63];
 | |
| 	__u32 block[63];
 | |
| 	__u32 hash[64];
 | |
| 	__u32 block[64];
 | |
| 	__u32 hash[65];
 | |
| 	__u32 block[65];
 | |
| 	__u32 hash[66];
 | |
| 	__u32 block[66];
 | |
| 	__u32 hash[67];
 | |
| 	__u32 block[67];
 | |
| 	__u32 hash[68];
 | |
| 	__u32 block[68];
 | |
| 	__u32 hash[69];
 | |
| 	__u32 block[69];
 | |
| 	__u32 hash[70];
 | |
| 	__u32 block[70];
 | |
| 	__u32 hash[71];
 | |
| 	__u32 block[71];
 | |
| 	__u32 hash[72];
 | |
| 	__u32 block[72];
 | |
| 	__u32 hash[73];
 | |
| 	__u32 block[73];
 | |
| 	__u32 hash[74];
 | |
| 	__u32 block[74];
 | |
| 	__u32 hash[75];
 | |
| 	__u32 block[75];
 | |
| 	__u32 hash[76];
 | |
| 	__u32 block[76];
 | |
| 	__u32 hash[77];
 | |
| 	__u32 block[77];
 | |
| 	__u32 hash[78];
 | |
| 	__u32 block[78];
 | |
| 	__u32 hash[79];
 | |
| 	__u32 block[79];
 | |
| 	__u32 hash[80];
 | |
| 	__u32 block[80];
 | |
| 	__u32 hash[81];
 | |
| 	__u32 block[81];
 | |
| 	__u32 hash[82];
 | |
| 	__u32 block[82];
 | |
| 	__u32 hash[83];
 | |
| 	__u32 block[83];
 | |
| 	__u32 hash[84];
 | |
| 	__u32 block[84];
 | |
| 	__u32 hash[85];
 | |
| 	__u32 block[85];
 | |
| 	__u32 hash[86];
 | |
| 	__u32 block[86];
 | |
| 	__u32 hash[87];
 | |
| 	__u32 block[87];
 | |
| 	__u32 hash[88];
 | |
| 	__u32 block[88];
 | |
| 	__u32 hash[89];
 | |
| 	__u32 block[89];
 | |
| 	__u32 hash[80];
 | |
| 	__u32 block[80];
 | |
| 	__u32 hash[81];
 | |
| 	__u32 block[81];
 | |
| 	__u32 hash[82];
 | |
| 	__u32 block[82];
 | |
| 	__u32 hash[83];
 | |
| 	__u32 block[83];
 | |
| 	__u32 hash[84];
 | |
| 	__u32 block[84];
 | |
| 	__u32 hash[85];
 | |
| 	__u32 block[85];
 | |
| 	__u32 hash[86];
 | |
| 	__u32 block[86];
 | |
| 	__u32 hash[87];
 | |
| 	__u32 block[87];
 | |
| 	__u32 hash[88];
 | |
| 	__u32 block[88];
 | |
| 	__u32 hash[89];
 | |
| 	__u32 block[89];
 | |
| 	__u32 hash[90];
 | |
| 	__u32 block[90];
 | |
| 	__u32 hash[91];
 | |
| 	__u32 block[91];
 | |
| 	__u32 hash[92];
 | |
| 	__u32 block[92];
 | |
| 	__u32 hash[93];
 | |
| 	__u32 block[93];
 | |
| 	__u32 hash[94];
 | |
| 	__u32 block[94];
 | |
| 	__u32 hash[95];
 | |
| 	__u32 block[95];
 | |
| 	__u32 hash[96];
 | |
| 	__u32 block[96];
 | |
| 	__u32 hash[97];
 | |
| 	__u32 block[97];
 | |
| 	__u32 hash[98];
 | |
| 	__u32 block[98];
 | |
| 	__u32 hash[99];
 | |
| 	__u32 block[99];
 | |
| 	__u32 hash[100];
 | |
| 	__u32 block[100];
 | |
| 	__u32 hash[101];
 | |
| 	__u32 block[101];
 | |
| 	__u32 hash[102];
 | |
| 	__u32 block[102];
 | |
| 	__u32 hash[103];
 | |
| 	__u32 block[103];
 | |
| 	__u32 hash[104];
 | |
| 	__u32 block[104];
 | |
| 	__u32 hash[105];
 | |
| 	__u32 block[105];
 | |
| 	__u32 hash[106];
 | |
| 	__u32 block[106];
 | |
| 	__u32 hash[107];
 | |
| 	__u32 block[107];
 | |
| 	__u32 hash[108];
 | |
| 	__u32 block[108];
 | |
| 	__u32 hash[109];
 | |
| 	__u32 block[109];
 | |
| 	__u32 hash[110];
 | |
| 	__u32 block[110];
 | |
| 	__u32 hash[111];
 | |
| 	__u32 block[111];
 | |
| 	__u32 hash[112];
 | |
| 	__u32 block[112];
 | |
| 	__u32 hash[113];
 | |
| 	__u32 block[113];
 | |
| 	__u32 hash[114];
 | |
| 	__u32 block[114];
 | |
| 	__u32 hash[115];
 | |
| 	__u32 block[115];
 | |
| 	__u32 hash[116];
 | |
| 	__u32 block[116];
 | |
| 	__u32 hash[117];
 | |
| 	__u32 block[117];
 | |
| 	__u32 hash[118];
 | |
| 	__u32 block[118];
 | |
| 	__u32 hash[119];
 | |
| 	__u32 block[119];
 | |
| 	__u32 hash[120];
 | |
| 	__u32 block[120];
 | |
| 	__u32 hash[121];
 | |
| 	__u32 block[121];
 | |
| 	__u32 hash[122];
 | |
| 	__u32 block[122];
 | |
| 	__u32 hash[123];
 | |
| 	__u32 block[123];
 | |
| 	__u32 hash[124];
 | |
| 	__u32 block[124];
 | |
| 	__u32 hash[125];
 | |
| 	__u32 block[125];
 | |
| 	__u32 hash[126];
 | |
| 	__u32 block[126];
 | |
| 	__u32 hash[127];
 | |
| 	__u32 block[127];
 | |
| };
 | |
| 
 | |
| struct ext2_dx_int_node {
 | |
| 	__u32 fake_inode;
 | |
| 	__u16 fake_rec_len;
 | |
| 	__u8 fake_name_len;
 | |
| 	__u8 fake_file_type;
 | |
| 	__u16 limit;
 | |
| 	__u16 count;
 | |
| 	__u32 block[0];
 | |
| 	__u32 hash[1];
 | |
| 	__u32 block[1];
 | |
| 	__u32 hash[2];
 | |
| 	__u32 block[2];
 | |
| 	__u32 hash[3];
 | |
| 	__u32 block[3];
 | |
| 	__u32 hash[4];
 | |
| 	__u32 block[4];
 | |
| 	__u32 hash[5];
 | |
| 	__u32 block[5];
 | |
| 	__u32 hash[6];
 | |
| 	__u32 block[6];
 | |
| 	__u32 hash[7];
 | |
| 	__u32 block[7];
 | |
| 	__u32 hash[8];
 | |
| 	__u32 block[8];
 | |
| 	__u32 hash[9];
 | |
| 	__u32 block[9];
 | |
| 	__u32 hash[10];
 | |
| 	__u32 block[10];
 | |
| 	__u32 hash[11];
 | |
| 	__u32 block[11];
 | |
| 	__u32 hash[12];
 | |
| 	__u32 block[12];
 | |
| 	__u32 hash[13];
 | |
| 	__u32 block[13];
 | |
| 	__u32 hash[14];
 | |
| 	__u32 block[14];
 | |
| 	__u32 hash[15];
 | |
| 	__u32 block[15];
 | |
| 	__u32 hash[16];
 | |
| 	__u32 block[16];
 | |
| 	__u32 hash[17];
 | |
| 	__u32 block[17];
 | |
| 	__u32 hash[18];
 | |
| 	__u32 block[18];
 | |
| 	__u32 hash[19];
 | |
| 	__u32 block[19];
 | |
| 	__u32 hash[20];
 | |
| 	__u32 block[20];
 | |
| 	__u32 hash[21];
 | |
| 	__u32 block[21];
 | |
| 	__u32 hash[22];
 | |
| 	__u32 block[22];
 | |
| 	__u32 hash[23];
 | |
| 	__u32 block[23];
 | |
| 	__u32 hash[24];
 | |
| 	__u32 block[24];
 | |
| 	__u32 hash[25];
 | |
| 	__u32 block[25];
 | |
| 	__u32 hash[26];
 | |
| 	__u32 block[26];
 | |
| 	__u32 hash[27];
 | |
| 	__u32 block[27];
 | |
| 	__u32 hash[28];
 | |
| 	__u32 block[28];
 | |
| 	__u32 hash[29];
 | |
| 	__u32 block[29];
 | |
| 	__u32 hash[30];
 | |
| 	__u32 block[30];
 | |
| 	__u32 hash[31];
 | |
| 	__u32 block[31];
 | |
| 	__u32 hash[32];
 | |
| 	__u32 block[32];
 | |
| 	__u32 hash[33];
 | |
| 	__u32 block[33];
 | |
| 	__u32 hash[34];
 | |
| 	__u32 block[34];
 | |
| 	__u32 hash[35];
 | |
| 	__u32 block[35];
 | |
| 	__u32 hash[36];
 | |
| 	__u32 block[36];
 | |
| 	__u32 hash[37];
 | |
| 	__u32 block[37];
 | |
| 	__u32 hash[38];
 | |
| 	__u32 block[38];
 | |
| 	__u32 hash[39];
 | |
| 	__u32 block[39];
 | |
| 	__u32 hash[40];
 | |
| 	__u32 block[40];
 | |
| 	__u32 hash[41];
 | |
| 	__u32 block[41];
 | |
| 	__u32 hash[42];
 | |
| 	__u32 block[42];
 | |
| 	__u32 hash[43];
 | |
| 	__u32 block[43];
 | |
| 	__u32 hash[44];
 | |
| 	__u32 block[44];
 | |
| 	__u32 hash[45];
 | |
| 	__u32 block[45];
 | |
| 	__u32 hash[46];
 | |
| 	__u32 block[46];
 | |
| 	__u32 hash[47];
 | |
| 	__u32 block[47];
 | |
| 	__u32 hash[48];
 | |
| 	__u32 block[48];
 | |
| 	__u32 hash[49];
 | |
| 	__u32 block[49];
 | |
| 	__u32 hash[50];
 | |
| 	__u32 block[50];
 | |
| 	__u32 hash[51];
 | |
| 	__u32 block[51];
 | |
| 	__u32 hash[52];
 | |
| 	__u32 block[52];
 | |
| 	__u32 hash[53];
 | |
| 	__u32 block[53];
 | |
| 	__u32 hash[54];
 | |
| 	__u32 block[54];
 | |
| 	__u32 hash[55];
 | |
| 	__u32 block[55];
 | |
| 	__u32 hash[56];
 | |
| 	__u32 block[56];
 | |
| 	__u32 hash[57];
 | |
| 	__u32 block[57];
 | |
| 	__u32 hash[58];
 | |
| 	__u32 block[58];
 | |
| 	__u32 hash[59];
 | |
| 	__u32 block[59];
 | |
| 	__u32 hash[60];
 | |
| 	__u32 block[60];
 | |
| 	__u32 hash[61];
 | |
| 	__u32 block[61];
 | |
| 	__u32 hash[62];
 | |
| 	__u32 block[62];
 | |
| 	__u32 hash[63];
 | |
| 	__u32 block[63];
 | |
| 	__u32 hash[64];
 | |
| 	__u32 block[64];
 | |
| 	__u32 hash[65];
 | |
| 	__u32 block[65];
 | |
| 	__u32 hash[66];
 | |
| 	__u32 block[66];
 | |
| 	__u32 hash[67];
 | |
| 	__u32 block[67];
 | |
| 	__u32 hash[68];
 | |
| 	__u32 block[68];
 | |
| 	__u32 hash[69];
 | |
| 	__u32 block[69];
 | |
| 	__u32 hash[70];
 | |
| 	__u32 block[70];
 | |
| 	__u32 hash[71];
 | |
| 	__u32 block[71];
 | |
| 	__u32 hash[72];
 | |
| 	__u32 block[72];
 | |
| 	__u32 hash[73];
 | |
| 	__u32 block[73];
 | |
| 	__u32 hash[74];
 | |
| 	__u32 block[74];
 | |
| 	__u32 hash[75];
 | |
| 	__u32 block[75];
 | |
| 	__u32 hash[76];
 | |
| 	__u32 block[76];
 | |
| 	__u32 hash[77];
 | |
| 	__u32 block[77];
 | |
| 	__u32 hash[78];
 | |
| 	__u32 block[78];
 | |
| 	__u32 hash[79];
 | |
| 	__u32 block[79];
 | |
| 	__u32 hash[80];
 | |
| 	__u32 block[80];
 | |
| 	__u32 hash[81];
 | |
| 	__u32 block[81];
 | |
| 	__u32 hash[82];
 | |
| 	__u32 block[82];
 | |
| 	__u32 hash[83];
 | |
| 	__u32 block[83];
 | |
| 	__u32 hash[84];
 | |
| 	__u32 block[84];
 | |
| 	__u32 hash[85];
 | |
| 	__u32 block[85];
 | |
| 	__u32 hash[86];
 | |
| 	__u32 block[86];
 | |
| 	__u32 hash[87];
 | |
| 	__u32 block[87];
 | |
| 	__u32 hash[88];
 | |
| 	__u32 block[88];
 | |
| 	__u32 hash[89];
 | |
| 	__u32 block[89];
 | |
| 	__u32 hash[80];
 | |
| 	__u32 block[80];
 | |
| 	__u32 hash[81];
 | |
| 	__u32 block[81];
 | |
| 	__u32 hash[82];
 | |
| 	__u32 block[82];
 | |
| 	__u32 hash[83];
 | |
| 	__u32 block[83];
 | |
| 	__u32 hash[84];
 | |
| 	__u32 block[84];
 | |
| 	__u32 hash[85];
 | |
| 	__u32 block[85];
 | |
| 	__u32 hash[86];
 | |
| 	__u32 block[86];
 | |
| 	__u32 hash[87];
 | |
| 	__u32 block[87];
 | |
| 	__u32 hash[88];
 | |
| 	__u32 block[88];
 | |
| 	__u32 hash[89];
 | |
| 	__u32 block[89];
 | |
| 	__u32 hash[90];
 | |
| 	__u32 block[90];
 | |
| 	__u32 hash[91];
 | |
| 	__u32 block[91];
 | |
| 	__u32 hash[92];
 | |
| 	__u32 block[92];
 | |
| 	__u32 hash[93];
 | |
| 	__u32 block[93];
 | |
| 	__u32 hash[94];
 | |
| 	__u32 block[94];
 | |
| 	__u32 hash[95];
 | |
| 	__u32 block[95];
 | |
| 	__u32 hash[96];
 | |
| 	__u32 block[96];
 | |
| 	__u32 hash[97];
 | |
| 	__u32 block[97];
 | |
| 	__u32 hash[98];
 | |
| 	__u32 block[98];
 | |
| 	__u32 hash[99];
 | |
| 	__u32 block[99];
 | |
| 	__u32 hash[100];
 | |
| 	__u32 block[100];
 | |
| 	__u32 hash[101];
 | |
| 	__u32 block[101];
 | |
| 	__u32 hash[102];
 | |
| 	__u32 block[102];
 | |
| 	__u32 hash[103];
 | |
| 	__u32 block[103];
 | |
| 	__u32 hash[104];
 | |
| 	__u32 block[104];
 | |
| 	__u32 hash[105];
 | |
| 	__u32 block[105];
 | |
| 	__u32 hash[106];
 | |
| 	__u32 block[106];
 | |
| 	__u32 hash[107];
 | |
| 	__u32 block[107];
 | |
| 	__u32 hash[108];
 | |
| 	__u32 block[108];
 | |
| 	__u32 hash[109];
 | |
| 	__u32 block[109];
 | |
| 	__u32 hash[110];
 | |
| 	__u32 block[110];
 | |
| 	__u32 hash[111];
 | |
| 	__u32 block[111];
 | |
| 	__u32 hash[112];
 | |
| 	__u32 block[112];
 | |
| 	__u32 hash[113];
 | |
| 	__u32 block[113];
 | |
| 	__u32 hash[114];
 | |
| 	__u32 block[114];
 | |
| 	__u32 hash[115];
 | |
| 	__u32 block[115];
 | |
| 	__u32 hash[116];
 | |
| 	__u32 block[116];
 | |
| 	__u32 hash[117];
 | |
| 	__u32 block[117];
 | |
| 	__u32 hash[118];
 | |
| 	__u32 block[118];
 | |
| 	__u32 hash[119];
 | |
| 	__u32 block[119];
 | |
| 	__u32 hash[120];
 | |
| 	__u32 block[120];
 | |
| 	__u32 hash[121];
 | |
| 	__u32 block[121];
 | |
| 	__u32 hash[122];
 | |
| 	__u32 block[122];
 | |
| 	__u32 hash[123];
 | |
| 	__u32 block[123];
 | |
| 	__u32 hash[124];
 | |
| 	__u32 block[124];
 | |
| 	__u32 hash[125];
 | |
| 	__u32 block[125];
 | |
| 	__u32 hash[126];
 | |
| 	__u32 block[126];
 | |
| 	__u32 hash[127];
 | |
| 	__u32 block[127];
 | |
| };
 | |
| 
 | |
| 
 |