···5151 u8 n_rootdir_entries[2];5252 u8 n_sectors_s[2];5353 u8 media_byte;5454- u16 sectors_per_fat;5555- u16 sectors_per_track;5656- u16 heads_per_cyl;5757- u32 n_hidden_sectors;5858- u32 n_sectors_l; /* size of partition */5454+ __le16 sectors_per_fat;5555+ __le16 sectors_per_track;5656+ __le16 heads_per_cyl;5757+ __le32 n_hidden_sectors;5858+ __le32 n_sectors_l; /* size of partition */5959 u8 drive_number;6060 u8 mbz;6161 u8 sig_28h; /* 28h */···6363 u8 vol_label[11];6464 u8 sig_hpfs[8]; /* "HPFS " */6565 u8 pad[448];6666- u16 magic; /* aa55 */6666+ __le16 magic; /* aa55 */6767};68686969···75757676struct hpfs_super_block7777{7878- u32 magic; /* f995 e849 */7979- u32 magic1; /* fa53 e9c5, more magic? */7878+ __le32 magic; /* f995 e849 */7979+ __le32 magic1; /* fa53 e9c5, more magic? */8080 u8 version; /* version of a filesystem usually 2 */8181 u8 funcversion; /* functional version - oldest version8282 of filesystem that can understand8383 this disk */8484- u16 zero; /* 0 */8585- fnode_secno root; /* fnode of root directory */8686- secno n_sectors; /* size of filesystem */8787- u32 n_badblocks; /* number of bad blocks */8888- secno bitmaps; /* pointers to free space bit maps */8989- u32 zero1; /* 0 */9090- secno badblocks; /* bad block list */9191- u32 zero3; /* 0 */9292- time32_t last_chkdsk; /* date last checked, 0 if never */9393- time32_t last_optimize; /* date last optimized, 0 if never */9494- secno n_dir_band; /* number of sectors in dir band */9595- secno dir_band_start; /* first sector in dir band */9696- secno dir_band_end; /* last sector in dir band */9797- secno dir_band_bitmap; /* free space map, 1 dnode per bit */8484+ __le16 zero; /* 0 */8585+ __le32 root; /* fnode of root directory */8686+ __le32 n_sectors; /* size of filesystem */8787+ __le32 n_badblocks; /* number of bad blocks */8888+ __le32 bitmaps; /* pointers to free space bit maps */8989+ __le32 zero1; /* 0 */9090+ __le32 badblocks; /* bad block list */9191+ __le32 zero3; /* 0 */9292+ __le32 last_chkdsk; /* date last checked, 0 if never */9393+ __le32 last_optimize; /* date last optimized, 0 if never */9494+ __le32 n_dir_band; /* number of sectors in dir band */9595+ __le32 dir_band_start; /* first sector in dir band */9696+ __le32 dir_band_end; /* last sector in dir band */9797+ __le32 dir_band_bitmap; /* free space map, 1 dnode per bit */9898 u8 volume_name[32]; /* not used */9999- secno user_id_table; /* 8 preallocated sectors - user id */9999+ __le32 user_id_table; /* 8 preallocated sectors - user id */100100 u32 zero6[103]; /* 0 */101101};102102···109109110110struct hpfs_spare_block111111{112112- u32 magic; /* f991 1849 */113113- u32 magic1; /* fa52 29c5, more magic? */112112+ __le32 magic; /* f991 1849 */113113+ __le32 magic1; /* fa52 29c5, more magic? */114114115115#ifdef __LITTLE_ENDIAN116116 u8 dirty: 1; /* 0 clean, 1 "improperly stopped" */···153153 u8 mm_contlgulty;154154 u8 unused;155155156156- secno hotfix_map; /* info about remapped bad sectors */157157- u32 n_spares_used; /* number of hotfixes */158158- u32 n_spares; /* number of spares in hotfix map */159159- u32 n_dnode_spares_free; /* spare dnodes unused */160160- u32 n_dnode_spares; /* length of spare_dnodes[] list,156156+ __le32 hotfix_map; /* info about remapped bad sectors */157157+ __le32 n_spares_used; /* number of hotfixes */158158+ __le32 n_spares; /* number of spares in hotfix map */159159+ __le32 n_dnode_spares_free; /* spare dnodes unused */160160+ __le32 n_dnode_spares; /* length of spare_dnodes[] list,161161 follows in this block*/162162- secno code_page_dir; /* code page directory block */163163- u32 n_code_pages; /* number of code pages */164164- u32 super_crc; /* on HPFS386 and LAN Server this is162162+ __le32 code_page_dir; /* code page directory block */163163+ __le32 n_code_pages; /* number of code pages */164164+ __le32 super_crc; /* on HPFS386 and LAN Server this is165165 checksum of superblock, on normal166166 OS/2 unused */167167- u32 spare_crc; /* on HPFS386 checksum of spareblock */168168- u32 zero1[15]; /* unused */169169- dnode_secno spare_dnodes[100]; /* emergency free dnode list */170170- u32 zero2[1]; /* room for more? */167167+ __le32 spare_crc; /* on HPFS386 checksum of spareblock */168168+ __le32 zero1[15]; /* unused */169169+ __le32 spare_dnodes[100]; /* emergency free dnode list */170170+ __le32 zero2[1]; /* room for more? */171171};172172173173/* The bad block list is 4 sectors long. The first word must be zero,···202202203203struct code_page_directory204204{205205- u32 magic; /* 4945 21f7 */206206- u32 n_code_pages; /* number of pointers following */207207- u32 zero1[2];205205+ __le32 magic; /* 4945 21f7 */206206+ __le32 n_code_pages; /* number of pointers following */207207+ __le32 zero1[2];208208 struct {209209- u16 ix; /* index */210210- u16 code_page_number; /* code page number */211211- u32 bounds; /* matches corresponding word209209+ __le16 ix; /* index */210210+ __le16 code_page_number; /* code page number */211211+ __le32 bounds; /* matches corresponding word212212 in data block */213213- secno code_page_data; /* sector number of a code_page_data213213+ __le32 code_page_data; /* sector number of a code_page_data214214 containing c.p. array */215215- u16 index; /* index in c.p. array in that sector*/216216- u16 unknown; /* some unknown value; usually 0;215215+ __le16 index; /* index in c.p. array in that sector*/216216+ __le16 unknown; /* some unknown value; usually 0;217217 2 in Japanese version */218218 } array[31]; /* unknown length */219219};···224224225225struct code_page_data226226{227227- u32 magic; /* 8945 21f7 */228228- u32 n_used; /* # elements used in c_p_data[] */229229- u32 bounds[3]; /* looks a bit like227227+ __le32 magic; /* 8945 21f7 */228228+ __le32 n_used; /* # elements used in c_p_data[] */229229+ __le32 bounds[3]; /* looks a bit like230230 (beg1,end1), (beg2,end2)231231 one byte each */232232- u16 offs[3]; /* offsets from start of sector232232+ __le16 offs[3]; /* offsets from start of sector233233 to start of c_p_data[ix] */234234 struct {235235- u16 ix; /* index */236236- u16 code_page_number; /* code page number */237237- u16 unknown; /* the same as in cp directory */235235+ __le16 ix; /* index */236236+ __le16 code_page_number; /* code page number */237237+ __le16 unknown; /* the same as in cp directory */238238 u8 map[128]; /* upcase table for chars 80..ff */239239- u16 zero2;239239+ __le16 zero2;240240 } code_page[3];241241 u8 incognita[78];242242};