• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Extended 2 filesystem structure definitions for ext2ed.
2
3Most of this file is just copied from the ext2 main include file.
4
5My parser is very primitive - It only searches for the struct keywords,
6and uses the variables in there. The rest of the file is just ignored.
7
8You will find at the end a few additional types which are not available in
9the original include file, such as the types "file" and "dir". They have
10no variables, but are necessary due to the way ext2ed binds C commands
11to specific types.
12
13Gadi Oxman, 7/95
14
15Here is the original copyright:
16
17/*
18 *  linux/include/linux/ext2_fs.h
19 *
20 *  Copyright (C) 1992, 1993, 1994  Remy Card (card@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 */
35struct 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
43struct 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
58struct 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 */
75struct 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_size_high;	/* High 32bits of size */
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 */
118struct 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
369The following is actually not used, due to the variable length of the
370name 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
385struct file {
386};
387
388struct dir {
389};
390
391struct block_bitmap {
392};
393
394struct inode_bitmap {
395};
396
397struct 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
692struct 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