Use __packed to prevent alignment from taking place, which otherwise may
change the on-disk format in an incompatible way. Without this change, msdosfs created on FreeBSD/arm would not be mountable. PR: bin/162486 Submitted by: Ian Lepore <freebsd damnhippie dyndns org> Reported by: Mattia Rossi <mrossi at swin.edu.au> MFC after: 3 days
This commit is contained in:
parent
804d7f5520
commit
658029e0d8
@ -99,7 +99,7 @@ static const char rcsid[] =
|
||||
struct bs {
|
||||
u_int8_t bsJump[3]; /* bootstrap entry point */
|
||||
u_int8_t bsOemName[8]; /* OEM name and version */
|
||||
};
|
||||
} __packed;
|
||||
|
||||
struct bsbpb {
|
||||
u_int8_t bpbBytesPerSec[2]; /* bytes per sector */
|
||||
@ -114,7 +114,7 @@ struct bsbpb {
|
||||
u_int8_t bpbHeads[2]; /* drive heads */
|
||||
u_int8_t bpbHiddenSecs[4]; /* hidden sectors */
|
||||
u_int8_t bpbHugeSectors[4]; /* big total sectors */
|
||||
};
|
||||
} __packed;
|
||||
|
||||
struct bsxbpb {
|
||||
u_int8_t bpbBigFATsecs[4]; /* big sectors per FAT */
|
||||
@ -124,7 +124,7 @@ struct bsxbpb {
|
||||
u_int8_t bpbFSInfo[2]; /* file system info sector */
|
||||
u_int8_t bpbBackup[2]; /* backup boot sector */
|
||||
u_int8_t bpbReserved[12]; /* reserved */
|
||||
};
|
||||
} __packed;
|
||||
|
||||
struct bsx {
|
||||
u_int8_t exDriveNumber; /* drive number */
|
||||
@ -133,7 +133,7 @@ struct bsx {
|
||||
u_int8_t exVolumeID[4]; /* volume ID number */
|
||||
u_int8_t exVolumeLabel[11]; /* volume label */
|
||||
u_int8_t exFileSysType[8]; /* file system type */
|
||||
};
|
||||
} __packed;
|
||||
|
||||
struct de {
|
||||
u_int8_t deName[11]; /* name and extension */
|
||||
@ -143,7 +143,7 @@ struct de {
|
||||
u_int8_t deMDate[2]; /* creation date */
|
||||
u_int8_t deStartCluster[2]; /* starting cluster */
|
||||
u_int8_t deFileSize[4]; /* size */
|
||||
};
|
||||
} __packed;
|
||||
|
||||
struct bpb {
|
||||
u_int bpbBytesPerSec; /* bytes per sector */
|
||||
|
Loading…
Reference in New Issue
Block a user