Adafruit WaveHC Arduino Library
Classes | Macros | Typedefs
FatStructs.h File Reference

Go to the source code of this file.

Classes

struct  partitionTable
 MBR partition table entry. More...
 
struct  masterBootRecord
 Master Boot Record. More...
 
struct  biosParmBlock
 BIOS parameter block. More...
 
struct  fat32BootSector
 Boot sector for a FAT16 or FAT32 volume. More...
 
struct  directoryEntry
 FAT short directory entry. More...
 

Macros

#define BOOTSIG0   0X55
 
#define BOOTSIG1   0XAA
 
#define FAT16EOC_MIN   0XFFF8
 
#define FAT32EOC_MIN   0X0FFFFFF8
 
#define FAT16EOC   0XFFFF
 
#define FAT32EOC   0X0FFFFFFF
 
#define FAT32MASK   0X0FFFFFFF
 
#define DIR_NAME_0XE5   0X05
 
#define DIR_NAME_DELETED   0XE5
 
#define DIR_NAME_FREE   0X00
 
#define DIR_ATT_READ_ONLY   0X01
 
#define DIR_ATT_HIDDEN   0X02
 
#define DIR_ATT_SYSTEM   0X04
 
#define DIR_ATT_VOLUME_ID   0X08
 
#define DIR_ATT_DIRECTORY   0X10
 
#define DIR_ATT_ARCHIVE   0X20
 
#define DIR_ATT_LONG_NAME   0X0F
 
#define DIR_ATT_LONG_NAME_MASK   0X3F
 
#define DIR_ATT_DEFINED_BITS   0X3F
 
#define DIR_IS_LONG_NAME(dir)   (((dir).attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME)
 
#define DIR_ATT_FILE_TYPE_MASK   (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY)
 
#define DIR_IS_FILE(dir)   (((dir).attributes & DIR_ATT_FILE_TYPE_MASK) == 0)
 
#define DIR_IS_SUBDIR(dir)   (((dir).attributes & DIR_ATT_FILE_TYPE_MASK) == DIR_ATT_DIRECTORY)
 
#define DIR_IS_FILE_OR_SUBDIR(dir)   (((dir).attributes & DIR_ATT_VOLUME_ID) == 0)
 

Typedefs

typedef struct partitionTable part_t
 
typedef struct masterBootRecord mbr_t
 
typedef struct biosParmBlock bpb_t
 
typedef struct fat32BootSector fbs_t
 
typedef struct directoryEntry dir_t
 

Detailed Description

FAT file structures

Macro Definition Documentation

◆ BOOTSIG0

#define BOOTSIG0   0X55

Value for byte 510 of boot block or MBR

◆ BOOTSIG1

#define BOOTSIG1   0XAA

Value for byte 511 of boot block or MBR

◆ FAT16EOC_MIN

#define FAT16EOC_MIN   0XFFF8

Minimum value for FAT16 EOC. Use to test for EOC.

◆ FAT32EOC_MIN

#define FAT32EOC_MIN   0X0FFFFFF8

Minimum value for FAT32 EOC. Use to test for EOC.

◆ FAT16EOC

#define FAT16EOC   0XFFFF

FAT16 end of chain value used by Microsoft.

◆ FAT32EOC

#define FAT32EOC   0X0FFFFFFF

FAT32 end of chain value used by Microsoft.

◆ FAT32MASK

#define FAT32MASK   0X0FFFFFFF

Mask a for FAT32 entry. Entries are 28 bits.

◆ DIR_NAME_0XE5

#define DIR_NAME_0XE5   0X05

escape for name[0] = 0XE5

◆ DIR_NAME_DELETED

#define DIR_NAME_DELETED   0XE5

name[0] value for entry that is free after being "deleted"

◆ DIR_NAME_FREE

#define DIR_NAME_FREE   0X00

name[0] value for entry that is free and no allocated entries follow

◆ DIR_ATT_READ_ONLY

#define DIR_ATT_READ_ONLY   0X01

file is read-only

◆ DIR_ATT_HIDDEN

#define DIR_ATT_HIDDEN   0X02

File should hidden in directory listings

◆ DIR_ATT_SYSTEM

#define DIR_ATT_SYSTEM   0X04

Entry is for a system file

◆ DIR_ATT_VOLUME_ID

#define DIR_ATT_VOLUME_ID   0X08

Directory entry contains the volume label

◆ DIR_ATT_DIRECTORY

#define DIR_ATT_DIRECTORY   0X10

Entry is for a directory

◆ DIR_ATT_ARCHIVE

#define DIR_ATT_ARCHIVE   0X20

Old DOS archive bit for backup support

◆ DIR_ATT_LONG_NAME

#define DIR_ATT_LONG_NAME   0X0F

Test value for long name entry. Test is d->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME.

◆ DIR_ATT_LONG_NAME_MASK

#define DIR_ATT_LONG_NAME_MASK   0X3F

Test mask for long name entry

◆ DIR_ATT_DEFINED_BITS

#define DIR_ATT_DEFINED_BITS   0X3F

defined attribute bits

◆ DIR_IS_LONG_NAME

#define DIR_IS_LONG_NAME (   dir)    (((dir).attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME)

Directory entry is part of a long name

◆ DIR_ATT_FILE_TYPE_MASK

#define DIR_ATT_FILE_TYPE_MASK   (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY)

Mask for file/subdirectory tests

◆ DIR_IS_FILE

#define DIR_IS_FILE (   dir)    (((dir).attributes & DIR_ATT_FILE_TYPE_MASK) == 0)

Directory entry is for a file

◆ DIR_IS_SUBDIR

#define DIR_IS_SUBDIR (   dir)    (((dir).attributes & DIR_ATT_FILE_TYPE_MASK) == DIR_ATT_DIRECTORY)

Directory entry is for a subdirectory

◆ DIR_IS_FILE_OR_SUBDIR

#define DIR_IS_FILE_OR_SUBDIR (   dir)    (((dir).attributes & DIR_ATT_VOLUME_ID) == 0)

Directory entry is for a file or subdirectory

Typedef Documentation

◆ part_t

typedef struct partitionTable part_t

Type name for partitionTable

◆ mbr_t

typedef struct masterBootRecord mbr_t

Type name for masterBootRecord

◆ bpb_t

typedef struct biosParmBlock bpb_t

Type name for biosParmBlock

◆ fbs_t

typedef struct fat32BootSector fbs_t

Type name for fat32BootSector

◆ dir_t

typedef struct directoryEntry dir_t

Type name for directoryEntry