exfat_raw.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  boot_sector_t
 
struct  exfat_dentry_t
 

Macros

#define BOOT_SIGNATURE   0xAA55
 
#define EXBOOT_SIGNATURE   0xAA550000
 
#define STR_EXFAT   "EXFAT " /* size should be 8 */
 
#define EXFAT_MAX_FILE_LEN   255
 
#define VOLUME_DIRTY   0x0002
 
#define MEDIA_FAILURE   0x0004
 
#define EXFAT_EOF_CLUSTER   0xFFFFFFFFu
 
#define EXFAT_BAD_CLUSTER   0xFFFFFFF7u
 
#define EXFAT_FREE_CLUSTER   0
 
#define EXFAT_RESERVED_CLUSTERS   2
 
#define EXFAT_FIRST_CLUSTER   2
 
#define EXFAT_DATA_CLUSTER_COUNT(sbi)   ((sbi)->num_clusters - EXFAT_RESERVED_CLUSTERS)
 
#define ALLOC_FAT_CHAIN   0x01
 
#define ALLOC_NO_FAT_CHAIN   0x03
 
#define DENTRY_SIZE   32 /* directory entry size */
 
#define DENTRY_SIZE_BITS   5
 
#define MAX_EXFAT_DENTRIES   8388608
 
#define EXFAT_UNUSED   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 */
 
#define EXFAT_BITMAP   0x81 /* allocation bitmap */
 
#define EXFAT_UPCASE   0x82 /* upcase table */
 
#define EXFAT_VOLUME   0x83 /* volume label */
 
#define EXFAT_FILE   0x85 /* file or dir */
 
#define EXFAT_GUID   0xA0
 
#define EXFAT_PADDING   0xA1
 
#define EXFAT_ACLTAB   0xA2
 
#define EXFAT_STREAM   0xC0 /* stream entry */
 
#define EXFAT_NAME   0xC1 /* file name entry */
 
#define EXFAT_ACL   0xC2 /* stream entry */
 
#define IS_EXFAT_CRITICAL_PRI(x)   (x < 0xA0)
 
#define IS_EXFAT_BENIGN_PRI(x)   (x < 0xC0)
 
#define IS_EXFAT_CRITICAL_SEC(x)   (x < 0xE0)
 
#define CS_DIR_ENTRY   0
 
#define CS_BOOT_SECTOR   1
 
#define CS_DEFAULT   2
 
#define ATTR_READONLY   0x0001
 
#define ATTR_HIDDEN   0x0002
 
#define ATTR_SYSTEM   0x0004
 
#define ATTR_VOLUME   0x0008
 
#define ATTR_SUBDIR   0x0010
 
#define ATTR_ARCHIVE   0x0020
 
#define ATTR_RWMASK   (ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME | ATTR_SUBDIR | ATTR_ARCHIVE)
 
#define BOOTSEC_JUMP_BOOT_LEN   3
 
#define BOOTSEC_OLDBPB_LEN   53
 
#define EXFAT_FILE_NAME_LEN   15
 
#define EXFAT_MIN_SECT_SIZE_BITS   9
 
#define EXFAT_MAX_SECT_SIZE_BITS   12
 
#define EXFAT_MAX_SECT_PER_CLUS_BITS(x)   (25 - (x)->sect_size_bits)
 
#define EXFAT_TZ_VALID   (1 << 7)
 
#define EXFAT_MIN_TIMESTAMP_SECS   315532800LL
 
#define EXFAT_MAX_TIMESTAMP_SECS   4354819199LL
 

Macro Definition Documentation

◆ ALLOC_FAT_CHAIN

#define ALLOC_FAT_CHAIN   0x01

◆ ALLOC_NO_FAT_CHAIN

#define ALLOC_NO_FAT_CHAIN   0x03

◆ ATTR_ARCHIVE

#define ATTR_ARCHIVE   0x0020

◆ ATTR_HIDDEN

#define ATTR_HIDDEN   0x0002

◆ ATTR_READONLY

#define ATTR_READONLY   0x0001

◆ ATTR_RWMASK

#define ATTR_RWMASK   (ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME | ATTR_SUBDIR | ATTR_ARCHIVE)

◆ ATTR_SUBDIR

#define ATTR_SUBDIR   0x0010

◆ ATTR_SYSTEM

#define ATTR_SYSTEM   0x0004

◆ ATTR_VOLUME

#define ATTR_VOLUME   0x0008

◆ BOOT_SIGNATURE

#define BOOT_SIGNATURE   0xAA55

◆ BOOTSEC_JUMP_BOOT_LEN

#define BOOTSEC_JUMP_BOOT_LEN   3

◆ BOOTSEC_OLDBPB_LEN

#define BOOTSEC_OLDBPB_LEN   53

◆ CS_BOOT_SECTOR

#define CS_BOOT_SECTOR   1

◆ CS_DEFAULT

#define CS_DEFAULT   2

◆ CS_DIR_ENTRY

#define CS_DIR_ENTRY   0

◆ DENTRY_SIZE

#define DENTRY_SIZE   32 /* directory entry size */

◆ DENTRY_SIZE_BITS

#define DENTRY_SIZE_BITS   5

◆ EXBOOT_SIGNATURE

#define EXBOOT_SIGNATURE   0xAA550000

◆ EXFAT_ACL

#define EXFAT_ACL   0xC2 /* stream entry */

◆ EXFAT_ACLTAB

#define EXFAT_ACLTAB   0xA2

◆ EXFAT_BAD_CLUSTER

#define EXFAT_BAD_CLUSTER   0xFFFFFFF7u

◆ EXFAT_BITMAP

#define EXFAT_BITMAP   0x81 /* allocation bitmap */

◆ EXFAT_DATA_CLUSTER_COUNT

#define EXFAT_DATA_CLUSTER_COUNT (   sbi)    ((sbi)->num_clusters - EXFAT_RESERVED_CLUSTERS)

◆ EXFAT_DELETE

#define EXFAT_DELETE   (~0x80)

◆ EXFAT_EOF_CLUSTER

#define EXFAT_EOF_CLUSTER   0xFFFFFFFFu

◆ EXFAT_FILE

#define EXFAT_FILE   0x85 /* file or dir */

◆ EXFAT_FILE_NAME_LEN

#define EXFAT_FILE_NAME_LEN   15

◆ EXFAT_FIRST_CLUSTER

#define EXFAT_FIRST_CLUSTER   2

◆ EXFAT_FREE_CLUSTER

#define EXFAT_FREE_CLUSTER   0

◆ EXFAT_GUID

#define EXFAT_GUID   0xA0

◆ EXFAT_INVAL

#define EXFAT_INVAL   0x80 /* invalid value */

◆ EXFAT_MAX_FILE_LEN

#define EXFAT_MAX_FILE_LEN   255

◆ EXFAT_MAX_SECT_PER_CLUS_BITS

#define EXFAT_MAX_SECT_PER_CLUS_BITS (   x)    (25 - (x)->sect_size_bits)

◆ EXFAT_MAX_SECT_SIZE_BITS

#define EXFAT_MAX_SECT_SIZE_BITS   12

◆ EXFAT_MAX_TIMESTAMP_SECS

#define EXFAT_MAX_TIMESTAMP_SECS   4354819199LL

◆ EXFAT_MIN_SECT_SIZE_BITS

#define EXFAT_MIN_SECT_SIZE_BITS   9

◆ EXFAT_MIN_TIMESTAMP_SECS

#define EXFAT_MIN_TIMESTAMP_SECS   315532800LL

◆ EXFAT_NAME

#define EXFAT_NAME   0xC1 /* file name entry */

◆ EXFAT_PADDING

#define EXFAT_PADDING   0xA1

◆ EXFAT_RESERVED_CLUSTERS

#define EXFAT_RESERVED_CLUSTERS   2

◆ EXFAT_STREAM

#define EXFAT_STREAM   0xC0 /* stream entry */

◆ EXFAT_TZ_VALID

#define EXFAT_TZ_VALID   (1 << 7)

◆ EXFAT_UNUSED

#define EXFAT_UNUSED   0x00 /* end of directory */

◆ EXFAT_UPCASE

#define EXFAT_UPCASE   0x82 /* upcase table */

◆ EXFAT_VOLUME

#define EXFAT_VOLUME   0x83 /* volume label */

◆ IS_EXFAT_BENIGN_PRI

#define IS_EXFAT_BENIGN_PRI (   x)    (x < 0xC0)

◆ IS_EXFAT_CRITICAL_PRI

#define IS_EXFAT_CRITICAL_PRI (   x)    (x < 0xA0)

◆ IS_EXFAT_CRITICAL_SEC

#define IS_EXFAT_CRITICAL_SEC (   x)    (x < 0xE0)

◆ IS_EXFAT_DELETED

#define IS_EXFAT_DELETED (   x)    ((x) < 0x80) /* deleted file (0x01~0x7F) */

◆ MAX_EXFAT_DENTRIES

#define MAX_EXFAT_DENTRIES   8388608

◆ MEDIA_FAILURE

#define MEDIA_FAILURE   0x0004

◆ STR_EXFAT

#define STR_EXFAT   "EXFAT " /* size should be 8 */

◆ VOLUME_DIRTY

#define VOLUME_DIRTY   0x0002