1 #ifndef _PRIV_FILESYSTEM_MANAGER_H_
2 #define _PRIV_FILESYSTEM_MANAGER_H_
10 #define MAX_OPEN_FILES 0x10000000
11 #define MAX_OPEN_DIRS 0x10000000
13 #define EXTRACT_ID(n) (n & 0xFFFFFFFF)
17 typedef struct Filesystem_Driver_T
19 uint32_t(*_H_Initialize)(FileDescriptor *desc);
20 uint32_t(*_H_Filesystem_OpenFile)(FileDescriptor *desc,
const char *filename,
int flags,
int perms);
21 uint8_t(*_H_Filesystem_ReadFile)(FileDescriptor *desc,
UID id, uint8_t *buffer,
size_t size);
22 uint64_t(*_H_Filesystem_SeekFile)(FileDescriptor *desc, uint32_t
fd, uint64_t offset,
int whence);
23 uint8_t(*_H_Filesystem_CloseFile)(FileDescriptor *desc, uint32_t
fd);
24 uint8_t(*_H_Filesystem_DeleteFile)(FileDescriptor *desc,
const char *file);
25 uint8_t(*_H_Filesystem_RenameFile)(FileDescriptor *desc,
const char *orig_name,
const char *new_name);
27 uint32_t(*_H_Filesystem_OpenDir)(FileDescriptor *desc,
const char *filename);
29 uint8_t(*_H_Filesystem_CloseDir)(FileDescriptor *desc, uint32_t
fd);
30 uint8_t(*_H_Filesystem_MakeDir)(FileDescriptor *desc,
const char *path);
31 uint8_t(*_H_Filesystem_DeleteDir)(FileDescriptor *desc,
const char *path);
34 struct Filesystem_Driver_T *
next;
Definition: filesystem.h:36
FileDescriptor * next
Definition: priv_filesystem.h:45
UID id
Definition: priv_filesystem.h:44
Definition: priv_filesystem.h:17
WriteFunc write
Definition: priv_filesystem.h:41
uint64_t UID
Definition: types.h:8
ReadFunc read
Definition: priv_filesystem.h:40
uint8_t(* ReadFunc)(uint64_t, uint32_t, uint16_t *)
Definition: filesystem.h:10
EXT2_FD * fd
Definition: ext2.c:6
struct Filesystem_Driver_T * next
Definition: priv_filesystem.h:34
SupportedFilesystems
Definition: filesystem.h:15
void * data
Definition: priv_filesystem.h:43
uint8_t(* WriteFunc)(uint64_t, uint32_t, uint16_t *)
Definition: filesystem.h:13
SupportedFilesystems filesystem
Definition: priv_filesystem.h:33
Definition: priv_filesystem.h:37
char * path
Definition: priv_filesystem.h:39
Filesystem_Driver * driver
Definition: priv_filesystem.h:42