UbixOS  2.0
fat_misc.h
Go to the documentation of this file.
1 #ifndef __FAT_MISC_H__
2 #define __FAT_MISC_H__
3 
4 #include "fat_defs.h"
5 #include "fat_opts.h"
6 
7 //-----------------------------------------------------------------------------
8 // Defines
9 //-----------------------------------------------------------------------------
10 #define MAX_LONGFILENAME_ENTRIES 20
11 #define MAX_LFN_ENTRY_LENGTH 13
12 
13 //-----------------------------------------------------------------------------
14 // Macros
15 //-----------------------------------------------------------------------------
16 #define GET_32BIT_WORD(buffer, location) ( ((uint32)buffer[location+3]<<24) + ((uint32)buffer[location+2]<<16) + ((uint32)buffer[location+1]<<8) + (uint32)buffer[location+0] )
17 #define GET_16BIT_WORD(buffer, location) ( ((uint16)buffer[location+1]<<8) + (uint16)buffer[location+0] )
18 
19 #define SET_32BIT_WORD(buffer, location, value) { buffer[location+0] = (uint8)((value)&0xFF); \
20  buffer[location+1] = (uint8)((value>>8)&0xFF); \
21  buffer[location+2] = (uint8)((value>>16)&0xFF); \
22  buffer[location+3] = (uint8)((value>>24)&0xFF); }
23 
24 #define SET_16BIT_WORD(buffer, location, value) { buffer[location+0] = (uint8)((value)&0xFF); \
25  buffer[location+1] = (uint8)((value>>8)&0xFF); }
26 
27 //-----------------------------------------------------------------------------
28 // Structures
29 //-----------------------------------------------------------------------------
30 struct lfn_cache
31 {
32 #if FATFS_INC_LFN_SUPPORT
33  // Long File Name Structure (max 260 LFN length)
36 #endif
38 };
39 
40 //-----------------------------------------------------------------------------
41 // Prototypes
42 //-----------------------------------------------------------------------------
43 void fatfs_lfn_cache_init(struct lfn_cache *lfn, int wipeTable);
44 void fatfs_lfn_cache_entry(struct lfn_cache *lfn, uint8 *entryBuffer);
45 char* fatfs_lfn_cache_get(struct lfn_cache *lfn);
46 int fatfs_entry_lfn_text(struct fat_dir_entry *entry);
47 int fatfs_entry_lfn_invalid(struct fat_dir_entry *entry);
48 int fatfs_entry_lfn_exists(struct lfn_cache *lfn, struct fat_dir_entry *entry);
49 int fatfs_entry_sfn_only(struct fat_dir_entry *entry);
50 int fatfs_entry_is_dir(struct fat_dir_entry *entry);
51 int fatfs_entry_is_file(struct fat_dir_entry *entry);
52 int fatfs_lfn_entries_required(char *filename);
53 void fatfs_filename_to_lfn(char *filename, uint8 *buffer, int entry, uint8 sfnChk);
54 void fatfs_sfn_create_entry(char *shortfilename, uint32 size, uint32 startCluster, struct fat_dir_entry *entry, int dir);
55 int fatfs_lfn_create_sfn(char *sfn_output, char *filename);
56 int fatfs_lfn_generate_tail(char *sfn_output, char *sfn_input, uint32 tailNum);
57 void fatfs_convert_from_fat_time(uint16 fat_time, int *hours, int *minutes, int *seconds);
58 void fatfs_convert_from_fat_date(uint16 fat_date, int *day, int *month, int *year);
59 uint16 fatfs_convert_to_fat_time(int hours, int minutes, int seconds);
60 uint16 fatfs_convert_to_fat_date(int day, int month, int year);
61 void fatfs_print_sector(uint32 sector, uint8 *data);
62 
63 #endif
fatfs_sfn_create_entry
void fatfs_sfn_create_entry(char *shortfilename, uint32 size, uint32 startCluster, struct fat_dir_entry *entry, int dir)
Definition: fat_misc.c:226
fatfs_lfn_entries_required
int fatfs_lfn_entries_required(char *filename)
Definition: fat_misc.c:173
fatfs_entry_is_dir
int fatfs_entry_is_dir(struct fat_dir_entry *entry)
Definition: fat_misc.c:152
buffer
char * buffer
Definition: shell.c:47
uint8
unsigned char uint8
Definition: fat_types.h:15
fatfs_print_sector
void fatfs_print_sector(uint32 sector, uint8 *data)
fatfs_convert_to_fat_time
uint16 fatfs_convert_to_fat_time(int hours, int minutes, int seconds)
fatfs_entry_is_file
int fatfs_entry_is_file(struct fat_dir_entry *entry)
Definition: fat_misc.c:161
fatfs_lfn_generate_tail
int fatfs_lfn_generate_tail(char *sfn_output, char *sfn_input, uint32 tailNum)
Definition: fat_misc.c:346
fatfs_convert_to_fat_date
uint16 fatfs_convert_to_fat_date(int day, int month, int year)
fatfs_lfn_cache_get
char * fatfs_lfn_cache_get(struct lfn_cache *lfn)
Definition: fat_misc.c:94
fat_defs.h
fatfs_lfn_cache_entry
void fatfs_lfn_cache_entry(struct lfn_cache *lfn, uint8 *entryBuffer)
Definition: fat_misc.c:56
fatfs_filename_to_lfn
void fatfs_filename_to_lfn(char *filename, uint8 *buffer, int entry, uint8 sfnChk)
Definition: fat_misc.c:186
MAX_LONGFILENAME_ENTRIES
#define MAX_LONGFILENAME_ENTRIES
Definition: fat_misc.h:10
MAX_LFN_ENTRY_LENGTH
#define MAX_LFN_ENTRY_LENGTH
Definition: fat_misc.h:11
fatfs_convert_from_fat_time
void fatfs_convert_from_fat_time(uint16 fat_time, int *hours, int *minutes, int *seconds)
lfn_cache::no_of_strings
uint8 no_of_strings
Definition: fat_misc.h:37
lfn_cache
Definition: fat_misc.h:30
fatfs_entry_lfn_invalid
int fatfs_entry_lfn_invalid(struct fat_dir_entry *entry)
Definition: fat_misc.c:121
fat_dir_entry
Definition: fat_defs.h:112
fat_opts.h
lfn_cache::Null
uint8 Null
Definition: fat_misc.h:35
fatfs_lfn_cache_init
void fatfs_lfn_cache_init(struct lfn_cache *lfn, int wipeTable)
Definition: fat_misc.c:38
fatfs_entry_lfn_exists
int fatfs_entry_lfn_exists(struct lfn_cache *lfn, struct fat_dir_entry *entry)
Definition: fat_misc.c:132
fatfs_entry_lfn_text
int fatfs_entry_lfn_text(struct fat_dir_entry *entry)
Definition: fat_misc.c:110
lfn_cache::String
uint8 String[20][13]
Definition: fat_misc.h:34
fatfs_lfn_create_sfn
int fatfs_lfn_create_sfn(char *sfn_output, char *filename)
Definition: fat_misc.c:260
fatfs_entry_sfn_only
int fatfs_entry_sfn_only(struct fat_dir_entry *entry)
Definition: fat_misc.c:142
uint16
unsigned short uint16
Definition: fat_types.h:16
uint32
unsigned long uint32
Definition: fat_types.h:23
fatfs_convert_from_fat_date
void fatfs_convert_from_fat_date(uint16 fat_date, int *day, int *month, int *year)