X-Git-Url: https://git.sven.stormbind.net/?p=sven%2Fexfatprogs.git;a=blobdiff_plain;f=include%2Fexfat_ondisk.h;h=b3fc1fe4d13a3c1bbc2fea65154d16baf6a25ab7;hp=70546a321fd8cc066d0a37ac21e9429b794247d2;hb=HEAD;hpb=f7feb8f190bd23ec253bf9fe705738049d9cedd7 diff --git a/include/exfat_ondisk.h b/include/exfat_ondisk.h index 70546a3..42cdadf 100644 --- a/include/exfat_ondisk.h +++ b/include/exfat_ondisk.h @@ -39,12 +39,14 @@ #define DENTRY_SIZE_BITS 5 /* exFAT allows 8388608(256MB) directory entries */ #define MAX_EXFAT_DENTRIES 8388608 +#define MIN_FILE_DENTRIES 3 +#define MAX_NAME_DENTRIES 17 /* dentry types */ #define MSDOS_DELETED 0xE5 /* deleted mark */ #define MSDOS_UNUSED 0x00 /* end of directory */ -#define EXFAT_UNUSED 0x00 /* end of directory */ +#define EXFAT_LAST 0x00 /* end of directory */ #define EXFAT_DELETE ~(0x80) #define IS_EXFAT_DELETED(x) ((x) < 0x80) /* deleted file (0x01~0x7F) */ #define EXFAT_INVAL 0x80 /* invalid value */ @@ -93,7 +95,7 @@ #define EXFAT_BAD_CLUSTER (0xFFFFFFF7U) #define EXFAT_FREE_CLUSTER (0) #define EXFAT_FIRST_CLUSTER (2) -#define EXFAT_REVERVED_CLUSTERS (2) +#define EXFAT_RESERVED_CLUSTERS (2) /* EXFAT BIOS parameter block (64 bytes) */ @@ -131,18 +133,8 @@ struct pbr { __le16 signature; }; -/* Extended Boot Sector */ -struct exbs { - __u8 zero[510]; - __le16 signature; -}; - -/* Extended Boot Record (8 sectors) */ -struct expbr { - struct exbs eb[8]; -}; - #define VOLUME_LABEL_MAX_LEN 11 +#define VOLUME_GUID_LEN 16 #define ENTRY_NAME_MAX 15 struct exfat_dentry { @@ -167,8 +159,10 @@ struct exfat_dentry { __le16 access_date; __u8 create_time_ms; __u8 modify_time_ms; - __u8 access_time_ms; - __u8 reserved2[9]; + __u8 create_tz; + __u8 modify_tz; + __u8 access_tz; + __u8 reserved2[7]; } __attribute__((packed)) file; /* file directory entry */ struct { __u8 flags; @@ -198,6 +192,13 @@ struct exfat_dentry { __le32 start_clu; __le64 size; } __attribute__((packed)) upcase; /* up-case table directory entry */ + struct { + __u8 num_ext; + __le16 checksum; + __u16 flags; + __u8 guid[VOLUME_GUID_LEN]; + __u8 reserved[10]; + } __attribute__((packed)) guid; /* volume GUID directory entry */ } __attribute__((packed)) dentry; } __attribute__((packed));