SayoriOS 0.3.3

smfs.h
1 #pragma once
2
3 #include <common.h>
4
5 enum SMFS_PACKAGE_STATUS {
6 SMFS_PACKAGE_UNKNOWN = 0,
7 SMFS_PACKAGE_READY = 1,
8 SMFS_PACKAGE_FREE = 2,
9 };
10
11 enum SMFS_ELEM_TYPE {
12 SMFS_TYPE_UNKNOWN = 0,
13 SMFS_TYPE_FILE = 1,
14 SMFS_TYPE_DIR = 2,
15 SMFS_TYPE_DELETE = 3,
16 };
17
18 typedef struct {
19 uint16_t magic1;
20 uint16_t magic2;
21 char oem_name[8];
22 uint32_t MaximumElems;
23 uint32_t MaxPackage;
24 char volume_label[11];
25 char fsid[8];
26 } __attribute__((__packed__)) SMFS_BOOT_SECTOR;
27
28 typedef struct {
29 uint32_t Index;
30 uint8_t Attr;
31 uint32_t Size;
32 uint16_t TimeCreateHIS;
33 uint16_t TimeCreateDate;
34 uint16_t TimeAccess;
35 uint32_t Point;
36 uint32_t Dir;
37 char Name[32];
38 } __attribute__((__packed__)) SMFS_Elements;
39
40 typedef struct {
41 uint8_t Status;
42 uint8_t Length;
43 char Data[9];
44 uint32_t Next;
45 } __attribute__((__packed__)) SMFS_PACKAGE; // Получится 15 байт
46
47 typedef struct {
48 uint8_t Status;
49 uint8_t Length;
50 char Data[33];
51 uint32_t Next;
52 } __attribute__((__packed__)) SMFS_PACKAGE_BIG; // Получится 39 байт
53
54
55 int fs_smfs_format(const char Disk);
56
57 size_t fs_smfs_read(const char Disk,const char* Path,size_t Offset,size_t Size,void* Buffer);
58 size_t fs_smfs_write(const char Disk,const char* Path,size_t Offset,size_t Size,void* Buffer);
59 FSM_FILE fs_smfs_info(const char Disk,const char* Path);
60 int fs_smfs_create(const char Disk,const char* Path,int Mode);
61 int fs_smfs_delete(const char Disk,const char* Path,int Mode);
62
63 TarFS_ROOT* fs_smfs_init(uint32_t in, uint32_t size, int Mode);
64 FSM_DIR* fs_smfs_dir(const char Disk,const char* Path);
65
66 int fs_smfs_detect(const char Disk);
67 void fs_smfs_label(const char Disk, char* Label);
common.h
Основные определения ядра
__attribute__
struct registers __attribute__((packed))
Структура данных пакета от мыши
Definition: psf.h:19
__attribute__::Size
uint32_t Size
Размер элемента
Definition: smfs.h:31
__attribute__::Length
uint8_t Length
Длина пакета
Definition: smfs.h:42
__attribute__::TimeAccess
uint16_t TimeAccess
Дата последнего доступа. Тот же формат, что и дата создания. всегда равно нулю.
Definition: smfs.h:34
__attribute__::Next
uint32_t Next
Следующий пакет данных
Definition: smfs.h:44
__attribute__::magic2
uint16_t magic2
Подпись загрузочного раздела
Definition: smfs.h:20
__attribute__::Attr
uint8_t Attr
Атрибуты элемента
Definition: smfs.h:30
__attribute__::Status
uint8_t Status
Статус пакета
Definition: smfs.h:41
__attribute__::TimeCreateHIS
uint16_t TimeCreateHIS
Время создания файла. Умножьте секунды на 2. (Часы 5 / Минуты 6 / Секунды 5)
Definition: smfs.h:32
__attribute__::Dir
uint32_t Dir
Папка
Definition: smfs.h:36
__attribute__::MaxPackage
uint32_t MaxPackage
Количество пакетов
Definition: smfs.h:23
__attribute__::magic1
uint16_t magic1
Подпись загрузочного раздела
Definition: smfs.h:19
__attribute__::Point
uint32_t Point
Точка входа
Definition: smfs.h:35
__attribute__::MaximumElems
uint32_t MaximumElems
Максимальное колво элементов
Definition: smfs.h:22
__attribute__::TimeCreateDate
uint16_t TimeCreateDate
Дата создания файла (Год 7 / Месяц 4 / День 5)
Definition: smfs.h:33
__attribute__::Index
uint32_t Index
Индекс элемента
Definition: smfs.h:29