]> git.sven.stormbind.net Git - sven/exfatprogs.git/blobdiff - include/exfat_ondisk.h
releasing package exfatprogs version 1.2.3-1
[sven/exfatprogs.git] / include / exfat_ondisk.h
index d1786bf05f3dc19dac5067207d472ad63522dd9e..21372266a3382f5da409dc7e09d076481a6a29a1 100644 (file)
@@ -40,6 +40,8 @@
 /* exFAT allows 8388608(256MB) directory entries */
 #define MAX_EXFAT_DENTRIES     8388608
 #define MIN_FILE_DENTRIES      3
+#define MAX_NAME_DENTRIES      17
+#define MAX_EXT_DENTRIES       0xFF
 
 /* dentry types */
 #define MSDOS_DELETED          0xE5    /* deleted mark */
@@ -59,6 +61,8 @@
 #define EXFAT_STREAM           0xC0    /* stream entry */
 #define EXFAT_NAME             0xC1    /* file name entry */
 #define EXFAT_ACL              0xC2    /* stream entry */
+#define EXFAT_VENDOR_EXT       0xE0
+#define EXFAT_VENDOR_ALLOC     0xE1
 
 /* checksum types */
 #define CS_DIR_ENTRY           0
@@ -133,6 +137,7 @@ struct pbr {
 };
 
 #define VOLUME_LABEL_MAX_LEN   11
+#define EXFAT_GUID_LEN         16
 #define ENTRY_NAME_MAX         15
 
 struct exfat_dentry {
@@ -190,6 +195,26 @@ 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[EXFAT_GUID_LEN];
+                       __u8 reserved[10];
+               } __attribute__((packed)) guid; /* volume GUID directory entry */
+               struct {
+                       __u8 flags;
+                       __u8 guid[EXFAT_GUID_LEN];
+                       __u8 vendor_defined[14];
+               } __attribute__((packed)) vendor_ext ; /* vendor extension entry */
+               struct {
+                       __u8 flags;
+                       __u8 guid[EXFAT_GUID_LEN];
+                       __u8 vendor_defined[2];
+                       __le32 start_clu;
+                       __le64 size;
+               } __attribute__((packed)) vendor_alloc; /* vendor allocation entry */
+
        } __attribute__((packed)) dentry;
 } __attribute__((packed));