SayoriOS 0.3.3

fsm.h
1 #pragma once
2
3 #include <common.h>
4
5 #define FSM_CHMOD_EXEC 0x01
6 #define FSM_CHMOD_WRITE 0x02
7 #define FSM_CHMOD_READ 0x04
8 #define FSM_CHMOD_SYS 0x08
9
10 typedef struct {
11 uint16_t year;
12 uint8_t month;
13 uint8_t day;
14 uint8_t hour;
15 uint8_t minute;
16 uint8_t second;
17 } __attribute__((packed)) FSM_TIME;
18
19 typedef struct {
20 int Ready;
21 char Name[1024];
22 char Path[1024];
23 int Mode;
24 size_t Size;
25 FSM_TIME LastTime;
26 int Type;
27 uint8_t CHMOD;
28 } __attribute__((packed)) FSM_FILE;
29
30 typedef struct {
31 int Ready;
32 size_t Count;
33 size_t CountFiles;
34 size_t CountDir;
35 size_t CountOther;
36 FSM_FILE* Files;
37 } __attribute__((packed)) FSM_DIR;
38
40 typedef size_t (*fsm_cmd_read_t)(const char,const char*,size_t,size_t,void*);
41
43 typedef size_t (*fsm_cmd_write_t)(const char,const char*,size_t,size_t,void*);
44
46 typedef FSM_FILE (*fsm_cmd_info_t)(const char,const char*);
47
49 typedef FSM_DIR* (*fsm_cmd_dir_t)(const char,const char*);
50
52 typedef int (*fsm_cmd_create_t)(const char,const char*,int);
53
55 typedef int (*fsm_cmd_delete_t)(const char,const char*,int);
56
58 typedef void (*fsm_cmd_label_t)(const char,char*);
59
60
62 typedef int (*fsm_cmd_detect_t)(const char);
63
64 typedef struct {
65 int Ready;
66 char Name[64];
67 int Splash;
68 fsm_cmd_read_t Read;
69 fsm_cmd_write_t Write;
70 fsm_cmd_info_t Info;
71 fsm_cmd_dir_t Dir;
72 fsm_cmd_create_t Create;
73 fsm_cmd_delete_t Delete;
74
75 fsm_cmd_label_t Label;
76 fsm_cmd_detect_t Detect;
77 void* Reserved;
78 } __attribute__((packed)) FSM;
79
80
81 int fsm_getIDbyName(const char* Name);
82 size_t fsm_read(int FIndex, char DIndex, const char* Name, size_t Offset, size_t Count, void* Buffer);
83 size_t fsm_write(int FIndex, char DIndex, const char* Name, size_t Offset, size_t Count, void* Buffer);
84 FSM_FILE fsm_info(int FIndex, char DIndex, const char* Name);
85 void fsm_reg(const char* Name,int Splash,fsm_cmd_read_t Read, fsm_cmd_write_t Write, fsm_cmd_info_t Info, fsm_cmd_create_t Create, fsm_cmd_delete_t Delete, fsm_cmd_dir_t Dir, fsm_cmd_label_t Label, fsm_cmd_detect_t Detect);
86 int fsm_delete(int FIndex, char DIndex, const char* Name, int Mode);
87 int fsm_create(int FIndex, char DIndex, const char* Name, int Mode);
88 void fsm_dump(FSM_FILE file);
89 int fsm_getMode(int FIndex);
90 FSM_DIR* fsm_dir(int FIndex, char DIndex, const char* Name);
91 void fsm_convertUnix(uint32_t unix_time, FSM_TIME* time);
92 int fsm_isPathToFile(const char* Path,const char* Name);
93 char* fsm_timePrintable(FSM_TIME time);
94 void fsm_dpm_update(char Letter);
95 size_t fsm_DateConvertToUnix(FSM_TIME time);
common.h
Основные определения ядра
__attribute__
struct registers __attribute__((packed))
Структура данных пакета от мыши
Definition: psf.h:19
__attribute__::Ready
int Ready
Существует ли файл?
Definition: fsm.h:20
__attribute__::Mode
int Mode
Режим файла
Definition: fsm.h:23
__attribute__::CHMOD
uint8_t CHMOD
CHMOD файла
Definition: fsm.h:27
__attribute__::month
uint8_t month
Месяц
Definition: fsm.h:12
__attribute__::Files
FSM_FILE * Files
Файлы и папки
Definition: fsm.h:36
__attribute__::Delete
fsm_cmd_delete_t Delete
Команда для удаления файла или папка
Definition: fsm.h:73
__attribute__::Label
fsm_cmd_label_t Label
Команда для получения имени диска
Definition: fsm.h:75
__attribute__::year
uint16_t year
Год
Definition: fsm.h:11
__attribute__::Read
fsm_cmd_read_t Read
Команда для чтения
Definition: fsm.h:68
__attribute__::day
uint8_t day
День
Definition: fsm.h:13
__attribute__::Count
size_t Count
Количество всего
Definition: fsm.h:32
__attribute__::second
uint8_t second
Секунды
Definition: fsm.h:16
__attribute__::Dir
fsm_cmd_dir_t Dir
Команда для получения информации о папке
Definition: fsm.h:71
__attribute__::minute
uint8_t minute
Минуты
Definition: fsm.h:15
__attribute__::Write
fsm_cmd_write_t Write
Команда для записи
Definition: fsm.h:69
__attribute__::LastTime
FSM_TIME LastTime
Время последнего изменения файла
Definition: fsm.h:25
__attribute__::Splash
int Splash
В какую сторону кинута палка?
Definition: fsm.h:67
__attribute__::CountFiles
size_t CountFiles
Количество файлов
Definition: fsm.h:33
__attribute__::CountOther
size_t CountOther
Количество неизвестного типа файлов
Definition: fsm.h:35
__attribute__::Info
fsm_cmd_info_t Info
Команда для получения информации
Definition: fsm.h:70
__attribute__::Create
fsm_cmd_create_t Create
Команда для создания файла или папка
Definition: fsm.h:72
__attribute__::Detect
fsm_cmd_detect_t Detect
Команда для определения, предналежит ли диск к фс
Definition: fsm.h:76
__attribute__::CountDir
size_t CountDir
Количество папок
Definition: fsm.h:34
__attribute__::Type
int Type
Тип элемента
Definition: fsm.h:26
__attribute__::hour
uint8_t hour
Час
Definition: fsm.h:14