6 #define FS_DIRECTORY 0x01
7 #define FS_INVALID 0x02
8 #define FS_CHARDEVICE 0x03
9 #define FS_BLOCKDEVICE 0x04
11 #define FS_SYMLINK 0x06
12 #define FS_MOUNTPOINT 0x08
14 #define VFS_TYPE_MOUNT_SEFS 0x0000
15 #define VFS_TYPE_MOUNT_NATSUKI 0xCAFE
17 typedef char* (*readChar_type_t)(uint32_t);
18 typedef uint32_t (*read_type_t)(uint32_t,size_t,size_t,
void *);
19 typedef struct dirent* (*list_type_t)(
const char* path);
20 typedef uint32_t (*write_type_t)(uint32_t,size_t,size_t,
const void *);
21 typedef int32_t (*findFile_type_t)(
const char*);
22 typedef uint32_t (*countElemFolder_type_t)(
char*);
23 typedef char* (*charData_type_t)(
char*);
24 typedef char* (*charintData_type_t)(int);
25 typedef size_t (*getLengthFile_type_t)(int);
26 typedef int (*getOffsetFile_type_t)(int);
27 typedef size_t (*getDeviceSize_type_t)(int);
28 typedef struct dirent* (*dirlist_type_t)(
const char*);
29 typedef struct fs_node (*getFileInfo_type_t)(
struct fs_node*,
char*);
30 typedef void (*open_type_t)(
struct fs_node*);
31 typedef void (*close_type_t)(
struct fs_node*);
33 typedef struct dirent * (*readdir_type_t)(
struct fs_node*, uint32_t);
36 typedef void (*dirfree_type_t)(
struct dirent*);
63 dirfree_type_t unlistElem;
97 void vfs_getPath(
int node,
const char* path,
char* buf);
98 int vfs_foundMount(
const char* path);
99 void vfs_reg(
size_t location,
size_t end,
size_t type);
100 int vfs_write(
int node,
int elem,
size_t offset,
size_t size,
const void *buf);
101 int vfs_findFile(
const char* filename);
102 bool vfs_exists(
const char* filename);
103 int vfs_read(
int node,
int elem,
size_t offset,
size_t size,
void *buf);
104 char* vfs_readChar(
int node,
int elem);
105 size_t vfs_findDir(
char* path);
106 ssize_t vfs_getLengthFilePath(
const char* filename);
107 size_t vfs_getLengthFile(
int node,
int elem);
108 int vfs_getOffsetFile(
int node,
int elem);
109 size_t vfs_getDiskSize(
int node);
110 size_t vfs_getDiskSpace(
int node);
111 size_t vfs_getDiskUsed(
int node);
112 char* vfs_getName(
int node);
113 size_t vfs_getCountElemDir(
char* path);
114 struct dirent* vfs_getListFolder(
char* path);
115 void vfs_createFile();
116 void vfs_createDir();
118 void vfs_deleteFile();
120 void vfs_getMountPoint();
Основные определения ядра
Согласно POSIX, один из них возвращается вызовом readdir.
uint8_t next
Следующая позиция
uint32_t ino
Номер inode. Требеся для POSIX.
size_t length
Размер файла
getDeviceSize_type_t diskSpace
Сколько свободно места
read_type_t read
Функция FS - Чтение файла с указанием параметров
getLengthFile_type_t getOffsetFile
Функция FS - Функция для получения позиции файла (отступ)
struct fs_node * ptr
Используется для точек монтирования и символических ссылок.
dirlist_type_t getListElem
Функция FS - Функция для получения списка файлов
charintData_type_t getDevName
Функция для получения имени устройства
write_type_t write
Функция FS - Запись в файл
readChar_type_t readChar
Функция FS - Полное чтение файла
countElemFolder_type_t getCountElemFolder
Функция FS - Функция для получения количества файлов в папке
uint32_t uid
Пользователь, владеющий файлом.
open_type_t open
Функция FS - Функция для открытия файла (не исп)
getLengthFile_type_t getLengthFile
Функция FS - Функция для получения размера файла
getDeviceSize_type_t diskUsed
Сколько использовано места
uint32_t impl
Номер, зависящий от реализации.
uint32_t flags
Включает тип нода. Смотрите определение #defines, приведенное выше.
uint32_t inode
Зависит от устройства, позволяет файловой системе идентифицировать файлы.
findFile_type_t findDir
Функция FS - Функция для поиска файла
uint32_t gid
Группа, владеющая файлом.
close_type_t close
Функция FS - Функция для закрытия файла (не исп)
char devName[512]
Имя устройства
findFile_type_t findFile
Функция FS - Функция для поиска файла
char path[512]
Полный путь
readdir_type_t readDir
Функция FS - Функция для чтение папки (не исп)
uint32_t mask
Маска прав доступа.
getDeviceSize_type_t diskSize
Размер диска
getFileInfo_type_t getFileInfo
Функция FS - Функция для получения информации о файле (не исп) (старое)
uint32_t length
Размер файла в байтах.
uint32_t root
Индекс папки