VSF Documented
Data Structures | Macros | Typedefs | Functions
vsf_fatfs.c File Reference
#include "../../vsf_fs_cfg.h"
#include "utilities/vsf_utilities.h"
#include "../../vsf_fs.h"

Data Structures

struct  fatfs_bpb_t
 
struct  fatfs_ebpb_t
 
struct  fatfs_dbr_t
 
struct  fatfs_dentry_t
 
struct  vk_fatfs_rw_local
 
struct  vk_fatfs_setsize_local
 
struct  vk_fatfs_lookup_local
 
struct  vk_fatfs_setpos_local
 

Macros

#define __VSF_FS_CLASS_INHERIT__
 
#define __VSF_MALFS_CLASS_INHERIT__
 
#define __VSF_FATFS_CLASS_IMPLEMENT
 
#define VSF_FATFS_CFG_MAX_FILENAME   (31 * 13 + 1)
 
#define FAT_ATTR_LFN   0x0F
 
#define FAT_ATTR_READ_ONLY   0x01
 
#define FAT_ATTR_HIDDEN   0x02
 
#define FAT_ATTR_SYSTEM   0x04
 
#define FAT_ATTR_VOLUME_ID   0x08
 
#define FAT_ATTR_DIRECTORY   0x10
 
#define FAT_ATTR_ARCHIVE   0x20
 
#define EXFAT_ET_BITMAP   0x81
 
#define EXFAT_ET_UPCASE   0x82
 
#define EXFAT_ET_VOLUME_LABEL   0x83
 
#define EXFAT_ET_FILE_DIR   0x85
 
#define EXFAT_ET_STREAM   0xC0
 
#define EXFAT_ET_FILENAME   0xC1
 

Typedefs

typedef struct fatfs_bpb_t fatfs_bpb_t
 
typedef struct fatfs_ebpb_t fatfs_ebpb_t
 
typedef struct fatfs_dbr_t fatfs_dbr_t
 
typedef struct fatfs_dentry_t fatfs_dentry_t
 
typedef struct vk_fatfs_rw_local vk_fatfs_rw_local
 
typedef struct vk_fatfs_setsize_local vk_fatfs_setsize_local
 
typedef struct vk_fatfs_lookup_local vk_fatfs_lookup_local
 
typedef struct vk_fatfs_setpos_local vk_fatfs_setpos_local
 

Functions

 dcl_vsf_peda_methods (dcl_vsf_peda_methods(static, __vk_fatfs_mount)
 
bool vk_fatfs_is_lfn (char *name)
 
bool vk_fatfs_parse_dentry_exfat (vk_fatfs_dentry_parser_t *parser)
 
bool vk_fatfs_parse_dentry_fat (vk_fatfs_dentry_parser_t *parser)
 
 __vsf_component_peda_ifs_entry (__vk_fatfs_unmount, vk_fs_unmount)
 
 __vsf_component_peda_ifs_entry (__vk_fatfs_mount, vk_fs_mount, uint8_t state;)
 
 __vsf_component_peda_private_entry (__vk_fatfs_get_fat_entry,, uint32_t cluster;uint32_t *entry;, uint32_t entry_tmp;uint32_t cur_fat_bit;uint8_t state;)
 
 __vsf_component_peda_private_entry (__vk_fatfs_set_fat_entry,, uint32_t cluster;uint32_t next_cluster;, uint32_t cur_fat_idx;uint32_t cur_fat_bit;uint32_t cur_fat_sector_offset;uint32_t cur_fat_bit_offset_in_sector;uint32_t cur_next_cluster;uint8_t state;)
 
 __vsf_component_peda_private_entry (__vk_fatfs_append_fat_entry,, uint32_t cluster;uint32_t *entry;, uint32_t cur_fat_bit;uint32_t cur_cluster;union { struct { uint32_t cur_fat_sector;uint32_t entry_tmp;};struct { uint32_t cur_bitmap_sector;uint32_t bitmap_remain_size;};};uint8_t state;)
 
 __vsf_component_peda_private_entry (__vk_exfatfs_update_entry_checksum,, vk_fat_sector_type_t sector;uint8_t entry_num;uint8_t state;uint16_t checksum;)
 
 __vsf_component_peda_private_entry (__vk_fatfs_dentry_setsize,, uint64_t size;bool need_update_checksum;uint8_t state;)
 
 __vsf_component_peda_ifs_entry (__vk_fatfs_setpos, vk_file_setpos, vk_fatfs_setpos_local)
 
 __vsf_component_peda_ifs_entry (__vk_fatfs_setsize, vk_file_setsize, vk_fatfs_setsize_local)
 
 __vsf_component_peda_ifs_entry (__vk_fatfs_lookup, vk_file_lookup, vk_fatfs_lookup_local)
 
 __vsf_component_peda_ifs_entry (__vk_fatfs_close, vk_file_close)
 
 __vsf_component_peda_ifs_entry (__vk_fatfs_read, vk_file_read, vk_fatfs_rw_local)
 
 __vsf_component_peda_ifs_entry (__vk_fatfs_write, vk_file_write, vk_fatfs_rw_local)
 

Macro Definition Documentation

◆ __VSF_FS_CLASS_INHERIT__

#define __VSF_FS_CLASS_INHERIT__

◆ __VSF_MALFS_CLASS_INHERIT__

#define __VSF_MALFS_CLASS_INHERIT__

◆ __VSF_FATFS_CLASS_IMPLEMENT

#define __VSF_FATFS_CLASS_IMPLEMENT

◆ VSF_FATFS_CFG_MAX_FILENAME

#define VSF_FATFS_CFG_MAX_FILENAME   (31 * 13 + 1)

◆ FAT_ATTR_LFN

#define FAT_ATTR_LFN   0x0F

◆ FAT_ATTR_READ_ONLY

#define FAT_ATTR_READ_ONLY   0x01

◆ FAT_ATTR_HIDDEN

#define FAT_ATTR_HIDDEN   0x02

◆ FAT_ATTR_SYSTEM

#define FAT_ATTR_SYSTEM   0x04

◆ FAT_ATTR_VOLUME_ID

#define FAT_ATTR_VOLUME_ID   0x08

◆ FAT_ATTR_DIRECTORY

#define FAT_ATTR_DIRECTORY   0x10

◆ FAT_ATTR_ARCHIVE

#define FAT_ATTR_ARCHIVE   0x20

◆ EXFAT_ET_BITMAP

#define EXFAT_ET_BITMAP   0x81

◆ EXFAT_ET_UPCASE

#define EXFAT_ET_UPCASE   0x82

◆ EXFAT_ET_VOLUME_LABEL

#define EXFAT_ET_VOLUME_LABEL   0x83

◆ EXFAT_ET_FILE_DIR

#define EXFAT_ET_FILE_DIR   0x85

◆ EXFAT_ET_STREAM

#define EXFAT_ET_STREAM   0xC0

◆ EXFAT_ET_FILENAME

#define EXFAT_ET_FILENAME   0xC1

Typedef Documentation

◆ fatfs_bpb_t

typedef struct fatfs_bpb_t fatfs_bpb_t

◆ fatfs_ebpb_t

typedef struct fatfs_ebpb_t fatfs_ebpb_t

◆ fatfs_dbr_t

typedef struct fatfs_dbr_t fatfs_dbr_t

◆ fatfs_dentry_t

◆ vk_fatfs_rw_local

◆ vk_fatfs_setsize_local

◆ vk_fatfs_lookup_local

◆ vk_fatfs_setpos_local

Function Documentation

◆ dcl_vsf_peda_methods()

dcl_vsf_peda_methods ( dcl_vsf_peda_methods(  static,
__vk_fatfs_mount   
)

◆ vk_fatfs_is_lfn()

bool vk_fatfs_is_lfn ( char *  name)

◆ vk_fatfs_parse_dentry_exfat()

bool vk_fatfs_parse_dentry_exfat ( vk_fatfs_dentry_parser_t parser)

◆ vk_fatfs_parse_dentry_fat()

bool vk_fatfs_parse_dentry_fat ( vk_fatfs_dentry_parser_t parser)

◆ __vsf_component_peda_ifs_entry() [1/8]

__vsf_component_peda_ifs_entry ( __vk_fatfs_unmount  ,
vk_fs_unmount   
)

◆ __vsf_component_peda_ifs_entry() [2/8]

__vsf_component_peda_ifs_entry ( __vk_fatfs_mount  ,
vk_fs_mount  ,
uint8_t state  
)

◆ __vsf_component_peda_private_entry() [1/5]

__vsf_component_peda_private_entry ( __vk_fatfs_get_fat_entry  ,
uint32_t cluster;uint32_t *entry;  ,
uint32_t entry_tmp;uint32_t cur_fat_bit;uint8_t state  
)

◆ __vsf_component_peda_private_entry() [2/5]

__vsf_component_peda_private_entry ( __vk_fatfs_set_fat_entry  ,
uint32_t cluster;uint32_t next_cluster;  ,
uint32_t cur_fat_idx;uint32_t cur_fat_bit;uint32_t cur_fat_sector_offset;uint32_t cur_fat_bit_offset_in_sector;uint32_t cur_next_cluster;uint8_t state  
)

◆ __vsf_component_peda_private_entry() [3/5]

__vsf_component_peda_private_entry ( __vk_fatfs_append_fat_entry  ,
uint32_t cluster;uint32_t *entry;  ,
uint32_t cur_fat_bit;uint32_t cur_cluster;union { struct { uint32_t cur_fat_sector;uint32_t entry_tmp;};struct { uint32_t cur_bitmap_sector;uint32_t bitmap_remain_size;};};uint8_t state  
)

◆ __vsf_component_peda_private_entry() [4/5]

__vsf_component_peda_private_entry ( __vk_exfatfs_update_entry_checksum  ,
vk_fat_sector_type_t sector;uint8_t entry_num;uint8_t state;uint16_t checksum;   
)

◆ __vsf_component_peda_private_entry() [5/5]

__vsf_component_peda_private_entry ( __vk_fatfs_dentry_setsize  ,
uint64_t size;bool need_update_checksum;uint8_t state  
)

◆ __vsf_component_peda_ifs_entry() [3/8]

__vsf_component_peda_ifs_entry ( __vk_fatfs_setpos  ,
vk_file_setpos  ,
vk_fatfs_setpos_local   
)

◆ __vsf_component_peda_ifs_entry() [4/8]

__vsf_component_peda_ifs_entry ( __vk_fatfs_setsize  ,
vk_file_setsize  ,
vk_fatfs_setsize_local   
)

◆ __vsf_component_peda_ifs_entry() [5/8]

__vsf_component_peda_ifs_entry ( __vk_fatfs_lookup  ,
vk_file_lookup  ,
vk_fatfs_lookup_local   
)

◆ __vsf_component_peda_ifs_entry() [6/8]

__vsf_component_peda_ifs_entry ( __vk_fatfs_close  ,
vk_file_close   
)

◆ __vsf_component_peda_ifs_entry() [7/8]

__vsf_component_peda_ifs_entry ( __vk_fatfs_read  ,
vk_file_read  ,
vk_fatfs_rw_local   
)

◆ __vsf_component_peda_ifs_entry() [8/8]

__vsf_component_peda_ifs_entry ( __vk_fatfs_write  ,
vk_file_write  ,
vk_fatfs_rw_local   
)