]> git.sven.stormbind.net Git - sven/exfatprogs.git/blobdiff - include/exfat_ondisk.h
Add CVE ID to debian changelog
[sven/exfatprogs.git] / include / exfat_ondisk.h
index 70546a321fd8cc066d0a37ac21e9429b794247d2..42cdadfbf37ae6f225d6f5097f847b44c45a9780 100644 (file)
 #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));