discoverpixy
filesystem.h
Go to the documentation of this file.
1 #ifndef FILESYSTEM_H
2 #define FILESYSTEM_H
3 
4 #include <stdbool.h>
5 #include <stdint.h>
6 
7 typedef enum {
8  F_DIR=1,
9  F_RDO=2,
10  F_HID=4,
11  F_SYS=8,
12  F_ARC=16
14 
15 
16 typedef struct {
17  unsigned year : 7; //year from 1980 (0..127)
18  unsigned month: 4; //month (1..12)
19  unsigned day: 5; //day (1..31)
21 
22 
23 typedef struct {
24  unsigned hour : 5; //hour (0..23)
25  unsigned min: 6; //minute (0..59
26  unsigned sec: 5; //second/2 (0..29)
28 
29 
30 typedef struct {
31  uint32_t fsize; /* File size */
32  FILE_DATE_STRUCT fdate; /* Last modified date */
33  FILE_TIME_STRUCT ftime; /* Last modified time */
34  uint8_t fattrib; /* Attribute */
35  char* fname; /* File name */
36 } FILE_STRUCT;
37 
38 typedef struct {
39  const char* path;
40  uint16_t num_files;
43 
44 typedef struct {
45  const char* fname;
46  uint32_t fpos;
47  uint32_t fsize;
48 } FILE_HANDLE;
49 
50 typedef enum {
56 } FILE_STATUS;
57 
58 
59 bool filesystem_init();
60 
61 DIRECTORY_STRUCT* filesystem_dir_open(const char* path);
63 FILE_HANDLE* filesystem_file_open(const char* filename);
65 FILE_STATUS filesystem_file_seek(FILE_HANDLE* handle, uint32_t offset);
66 FILE_STATUS filesystem_file_read(FILE_HANDLE* handle, uint8_t* buf, uint32_t size);
67 FILE_STATUS filesystem_file_write(FILE_HANDLE* handle, uint8_t* buf, uint32_t size);
68 
69 
70 #endif /* FILESYSTEM_H */
71 
Definition: filesystem.h:52
Definition: filesystem.h:10
uint32_t fsize
Definition: filesystem.h:47
void filesystem_file_close(FILE_HANDLE *handle)
Definition: filesystem.c:20
Definition: filesystem.h:23
FILE_DATE_STRUCT fdate
Definition: filesystem.h:32
Definition: filesystem.h:12
uint8_t fattrib
Definition: filesystem.h:34
FILE_STATUS filesystem_file_seek(FILE_HANDLE *handle, uint32_t offset)
Definition: filesystem.c:24
Definition: filesystem.h:44
Definition: filesystem.h:53
void filesystem_dir_close(DIRECTORY_STRUCT *dir)
Definition: filesystem.c:12
Definition: filesystem.h:54
FILE_STATUS
Definition: filesystem.h:50
FILE_ATTRIBUTES
Definition: filesystem.h:7
Definition: filesystem.h:11
bool filesystem_init()
Definition: filesystem.c:4
char * fname
Definition: filesystem.h:35
DIRECTORY_STRUCT * filesystem_dir_open(const char *path)
Definition: filesystem.c:8
uint16_t num_files
Definition: filesystem.h:40
Definition: filesystem.h:55
Definition: filesystem.h:38
uint32_t fpos
Definition: filesystem.h:46
Definition: filesystem.h:9
const char * path
Definition: filesystem.h:39
FILE_STRUCT * files
Definition: filesystem.h:41
Definition: filesystem.h:30
Definition: filesystem.h:8
FILE_STATUS filesystem_file_read(FILE_HANDLE *handle, uint8_t *buf, uint32_t size)
Definition: filesystem.c:28
Definition: filesystem.h:16
FILE_STATUS filesystem_file_write(FILE_HANDLE *handle, uint8_t *buf, uint32_t size)
Definition: filesystem.c:32
const char * fname
Definition: filesystem.h:45
FILE_HANDLE * filesystem_file_open(const char *filename)
Definition: filesystem.c:16
FILE_TIME_STRUCT ftime
Definition: filesystem.h:33
uint32_t fsize
Definition: filesystem.h:31
Definition: filesystem.h:51