ApertureOS
filesystem.h
Go to the documentation of this file.
1 #ifndef _FILESYSTEM_MANAGER_H_
2 #define _FILESYSTEM_MANAGER_H_
3 
4 #include "types.h"
5 #include "managers.h"
6 #include "drivers.h"
7 #include "kmalloc.h"
8 
9 //Pointer to function to read from the hard drive
10 typedef uint8_t(*ReadFunc)(uint64_t, uint32_t, uint16_t*);
11 
12 //Pointer to function to write to the hard drive
13 typedef uint8_t(*WriteFunc)(uint64_t, uint32_t, uint16_t*);
14 
15 typedef enum
16 {
17  NONE = 0,
18  EXT2 = 1
20 
21 typedef enum
22 {
23  O_RDONLY = 0,
24  O_RD_WR = 1,
25  O_APPED = 2,
26  O_CREAT = 4
28 
29 typedef enum
30 {
31  SEEK_SET = 0,
32  SEEK_CUR = 1,
35 
36 typedef struct
37 {
38  char dir_name[256];
39  uint8_t name_len;
40  uint8_t type;
42 
43 void Filesystem_Setup();
44 
45 UID Filesystem_OpenFile(const char *filename, int flags, int perms);
46 uint8_t Filesystem_CloseFile(UID fd);
47 uint64_t Filesystem_SeekFile(UID fd, uint64_t offset, int whence);
48 uint8_t Filesystem_DeleteFile(const char *file);
49 uint8_t Filesystem_RenameFile(const char *orig_name, const char *new_name);
50 
51 UID Filesystem_OpenDir(const char *filename);
53 uint8_t Filesystem_CloseDir(UID fd);
54 uint8_t Filesystem_MakeDir(const char *path);
55 uint8_t Filesystem_DeleteDir(const char *path);
56 
57 void* Filesystem_FindDescriptorFromPath(const char *path);
59 
60 uint8_t Filesystem_Close(UID fd);
61 
63  const char *target,
64  ReadFunc *read,
65  WriteFunc *write,
67 
69 
70 #endif
uint8_t name_len
Definition: filesystem.h:39
Definition: filesystem.h:36
void Filesystem_Setup()
Definition: filesystem.c:18
uint8_t Filesystem_DeleteFile(const char *file)
Definition: filesystem.c:120
uint8_t Filesystem_RenameFile(const char *orig_name, const char *new_name)
Definition: filesystem.c:130
UID Filesystem_OpenFile(const char *filename, int flags, int perms)
Definition: filesystem.c:75
uint8_t Filesystem_MakeDir(const char *path)
Definition: filesystem.c:171
Definition: filesystem.h:18
uint64_t UID
Definition: types.h:8
Definition: filesystem.h:17
uint8_t Filesystem_Close(UID fd)
Definition: filesystem.c:192
uint64_t Filesystem_SeekFile(UID fd, uint64_t offset, int whence)
Definition: filesystem.c:109
uint8_t(* ReadFunc)(uint64_t, uint32_t, uint16_t *)
Definition: filesystem.h:10
void * Filesystem_FindDescriptorFromPath(const char *path)
Definition: filesystem.c:275
EXT2_FD * fd
Definition: ext2.c:6
FILE_IO_FLAGS
Definition: filesystem.h:21
Definition: filesystem.h:32
Definition: filesystem.h:31
uint8_t Filesystem_DeleteDir(const char *path)
Definition: filesystem.c:181
uint8_t Filesystem_ReadDir(UID dd, Filesystem_DirEntry *dir)
Definition: filesystem.c:152
SupportedFilesystems
Definition: filesystem.h:15
uint8_t Filesystem_CloseDir(UID fd)
Definition: filesystem.c:162
uint8_t type
Definition: filesystem.h:40
uint8_t Filesystem_UnregisterDescriptor(UID id)
Definition: filesystem.c:247
uint8_t(* WriteFunc)(uint64_t, uint32_t, uint16_t *)
Definition: filesystem.h:13
Definition: filesystem.h:33
UID Filesystem_OpenDir(const char *filename)
Definition: filesystem.c:141
void * Filesystem_FindDescriptorFromUID(const UID id)
Definition: filesystem.c:297
Definition: filesystem.h:24
UID Filesystem_RegisterDescriptor(const char *target, ReadFunc *read, WriteFunc *write, SupportedFilesystems fs)
Definition: filesystem.c:198
uint8_t Filesystem_CloseFile(UID fd)
Definition: filesystem.c:100
Definition: filesystem.h:26
FILE_IO_WHENCE
Definition: filesystem.h:29
Definition: filesystem.h:25
Definition: filesystem.h:23