fs/adfs: dir: modernise on-disk directory structures
Use __u8 and pack the structures for on-disk directories. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
deed1bfd15
commit
ae5df41390
|
@ -13,9 +13,9 @@
|
||||||
* Directory header
|
* Directory header
|
||||||
*/
|
*/
|
||||||
struct adfs_dirheader {
|
struct adfs_dirheader {
|
||||||
unsigned char startmasseq;
|
__u8 startmasseq;
|
||||||
unsigned char startname[4];
|
__u8 startname[4];
|
||||||
};
|
} __attribute__((packed));
|
||||||
|
|
||||||
#define ADFS_NEWDIR_SIZE 2048
|
#define ADFS_NEWDIR_SIZE 2048
|
||||||
#define ADFS_NUM_DIR_ENTRIES 77
|
#define ADFS_NUM_DIR_ENTRIES 77
|
||||||
|
@ -31,32 +31,36 @@ struct adfs_direntry {
|
||||||
__u8 dirlen[4];
|
__u8 dirlen[4];
|
||||||
__u8 dirinddiscadd[3];
|
__u8 dirinddiscadd[3];
|
||||||
__u8 newdiratts;
|
__u8 newdiratts;
|
||||||
};
|
} __attribute__((packed));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Directory tail
|
* Directory tail
|
||||||
*/
|
*/
|
||||||
|
struct adfs_olddirtail {
|
||||||
|
__u8 dirlastmask;
|
||||||
|
char dirname[10];
|
||||||
|
__u8 dirparent[3];
|
||||||
|
char dirtitle[19];
|
||||||
|
__u8 reserved[14];
|
||||||
|
__u8 endmasseq;
|
||||||
|
__u8 endname[4];
|
||||||
|
__u8 dircheckbyte;
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct adfs_newdirtail {
|
||||||
|
__u8 dirlastmask;
|
||||||
|
__u8 reserved[2];
|
||||||
|
__u8 dirparent[3];
|
||||||
|
char dirtitle[19];
|
||||||
|
char dirname[10];
|
||||||
|
__u8 endmasseq;
|
||||||
|
__u8 endname[4];
|
||||||
|
__u8 dircheckbyte;
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
union adfs_dirtail {
|
union adfs_dirtail {
|
||||||
struct {
|
struct adfs_olddirtail old;
|
||||||
unsigned char dirlastmask;
|
struct adfs_newdirtail new;
|
||||||
char dirname[10];
|
|
||||||
unsigned char dirparent[3];
|
|
||||||
char dirtitle[19];
|
|
||||||
unsigned char reserved[14];
|
|
||||||
unsigned char endmasseq;
|
|
||||||
unsigned char endname[4];
|
|
||||||
unsigned char dircheckbyte;
|
|
||||||
} old;
|
|
||||||
struct {
|
|
||||||
unsigned char dirlastmask;
|
|
||||||
unsigned char reserved[2];
|
|
||||||
unsigned char dirparent[3];
|
|
||||||
char dirtitle[19];
|
|
||||||
char dirname[10];
|
|
||||||
unsigned char endmasseq;
|
|
||||||
unsigned char endname[4];
|
|
||||||
unsigned char dircheckbyte;
|
|
||||||
} new;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,7 +22,7 @@ struct adfs_bigdirheader {
|
||||||
__le32 bigdirnamesize;
|
__le32 bigdirnamesize;
|
||||||
__le32 bigdirparent;
|
__le32 bigdirparent;
|
||||||
char bigdirname[1];
|
char bigdirname[1];
|
||||||
};
|
} __attribute__((packed, aligned(4)));
|
||||||
|
|
||||||
struct adfs_bigdirentry {
|
struct adfs_bigdirentry {
|
||||||
__le32 bigdirload;
|
__le32 bigdirload;
|
||||||
|
@ -32,11 +32,11 @@ struct adfs_bigdirentry {
|
||||||
__le32 bigdirattr;
|
__le32 bigdirattr;
|
||||||
__le32 bigdirobnamelen;
|
__le32 bigdirobnamelen;
|
||||||
__le32 bigdirobnameptr;
|
__le32 bigdirobnameptr;
|
||||||
};
|
} __attribute__((packed, aligned(4)));
|
||||||
|
|
||||||
struct adfs_bigdirtail {
|
struct adfs_bigdirtail {
|
||||||
__le32 bigdirendname;
|
__le32 bigdirendname;
|
||||||
__u8 bigdirendmasseq;
|
__u8 bigdirendmasseq;
|
||||||
__u8 reserved[2];
|
__u8 reserved[2];
|
||||||
__u8 bigdircheckbyte;
|
__u8 bigdircheckbyte;
|
||||||
};
|
} __attribute__((packed, aligned(4)));
|
||||||
|
|
Loading…
Reference in New Issue