X-Git-Url: https://git.sven.stormbind.net/?p=sven%2Fexfat-utils.git;a=blobdiff_plain;f=libexfat%2Fexfatfs.h;h=b7b6cac5559b81a52bec4385098f42ba5a3271e2;hp=fbec79f602b90977b7c0b25f14422929915f6414;hb=131f1e366cc229964e2ef8036b60229ea1f56af9;hpb=fafa077eddb099165e156853d3d25662fcf5bf30 diff --git a/libexfat/exfatfs.h b/libexfat/exfatfs.h index fbec79f..b7b6cac 100644 --- a/libexfat/exfatfs.h +++ b/libexfat/exfatfs.h @@ -3,7 +3,7 @@ Definitions of structures and constants used in exFAT file system. Free exFAT implementation. - Copyright (C) 2010-2014 Andrew Nayenko + Copyright (C) 2010-2018 Andrew Nayenko This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,6 +24,7 @@ #define EXFATFS_H_INCLUDED #include "byteorder.h" +#include "compiler.h" typedef uint32_t cluster_t; /* cluster number */ @@ -69,6 +70,7 @@ STATIC_ASSERT(sizeof(struct exfat_super_block) == 512); #define EXFAT_ENTRY_VALID 0x80 #define EXFAT_ENTRY_CONTINUED 0x40 +#define EXFAT_ENTRY_OPTIONAL 0x20 #define EXFAT_ENTRY_BITMAP (0x01 | EXFAT_ENTRY_VALID) #define EXFAT_ENTRY_UPCASE (0x02 | EXFAT_ENTRY_VALID) @@ -76,6 +78,9 @@ STATIC_ASSERT(sizeof(struct exfat_super_block) == 512); #define EXFAT_ENTRY_FILE (0x05 | EXFAT_ENTRY_VALID) #define EXFAT_ENTRY_FILE_INFO (0x00 | EXFAT_ENTRY_VALID | EXFAT_ENTRY_CONTINUED) #define EXFAT_ENTRY_FILE_NAME (0x01 | EXFAT_ENTRY_VALID | EXFAT_ENTRY_CONTINUED) +#define EXFAT_ENTRY_FILE_TAIL (0x00 | EXFAT_ENTRY_VALID \ + | EXFAT_ENTRY_CONTINUED \ + | EXFAT_ENTRY_OPTIONAL) struct exfat_entry /* common container for all entries */ { @@ -97,6 +102,8 @@ struct exfat_entry_bitmap /* allocated clusters bitmap */ PACKED; STATIC_ASSERT(sizeof(struct exfat_entry_bitmap) == 32); +#define EXFAT_UPCASE_CHARS 0x10000 + struct exfat_entry_upcase /* upper case translation table */ { uint8_t type; /* EXFAT_ENTRY_UPCASE */