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
|
||||
*/
|
||||
struct adfs_dirheader {
|
||||
unsigned char startmasseq;
|
||||
unsigned char startname[4];
|
||||
};
|
||||
__u8 startmasseq;
|
||||
__u8 startname[4];
|
||||
} __attribute__((packed));
|
||||
|
||||
#define ADFS_NEWDIR_SIZE 2048
|
||||
#define ADFS_NUM_DIR_ENTRIES 77
|
||||
@ -31,32 +31,36 @@ struct adfs_direntry {
|
||||
__u8 dirlen[4];
|
||||
__u8 dirinddiscadd[3];
|
||||
__u8 newdiratts;
|
||||
};
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* 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 {
|
||||
struct {
|
||||
unsigned char dirlastmask;
|
||||
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;
|
||||
struct adfs_olddirtail old;
|
||||
struct adfs_newdirtail new;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -22,7 +22,7 @@ struct adfs_bigdirheader {
|
||||
__le32 bigdirnamesize;
|
||||
__le32 bigdirparent;
|
||||
char bigdirname[1];
|
||||
};
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
struct adfs_bigdirentry {
|
||||
__le32 bigdirload;
|
||||
@ -32,11 +32,11 @@ struct adfs_bigdirentry {
|
||||
__le32 bigdirattr;
|
||||
__le32 bigdirobnamelen;
|
||||
__le32 bigdirobnameptr;
|
||||
};
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
struct adfs_bigdirtail {
|
||||
__le32 bigdirendname;
|
||||
__u8 bigdirendmasseq;
|
||||
__u8 reserved[2];
|
||||
__u8 bigdircheckbyte;
|
||||
};
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
Loading…
Reference in New Issue
Block a user