5 #define DPM_ERROR_NO_MOUNT (-1)
6 #define DPM_ERROR_NOT_READY (-2)
7 #define DPM_ERROR_NO_READ (-3)
11 typedef size_t (*dpm_disk_rw_cmd)(size_t,uint64_t,uint64_t,size_t,
void*);
40 enum dpm_disk_type type;
43 void* dpm_metadata_read(
char Letter);
44 void dpm_metadata_write(
char Letter, uint32_t Addr);
45 size_t dpm_read(
char Letter, uint64_t high_offset, uint64_t low_offset,
size_t Size,
void *Buffer);
46 size_t dpm_write(
char Letter, uint64_t high_offset, uint64_t low_offset,
size_t Size,
char* Buffer);
47 int dpm_reg(
char Letter,
char* Name,
char* FS,
int Status,
size_t Size,
size_t Sectors,
size_t SectorSize,
int AddrMode,
char* Serial,
void *Point);
48 DPM_Disk dpm_info(
char Letter);
49 int dpm_unmount(
char Letter,
bool FreeReserved);
51 void dpm_fnc_write(
char Letter, dpm_disk_rw_cmd Read, dpm_disk_rw_cmd Write);
52 int dpm_searchFreeIndex(
int Index);
Основные определения ядра
struct registers __attribute__((packed))
Структура данных пакета от мыши
size_t dpm_write(char Letter, uint64_t high_offset, uint64_t low_offset, size_t Size, char *Buffer)
[DPM] Запись данных на диск
void dpm_LabelUpdate(char Letter, char *Label)
int dpm_reg(char Letter, char *Name, char *FS, int Status, size_t Size, size_t Sectors, size_t SectorSize, int AddrMode, char *Serial, void *Point)
[DPM] Регистрация дискового раздела
size_t dpm_read(char Letter, uint64_t high_offset, uint64_t low_offset, size_t Size, void *Buffer)
[DPM] Считывание данных с диска
size_t Sectors
Кол-во секторов
bool Ready
Устройство подключено? (1 - да | 0 - нет)
dpm_disk_rw_cmd Read
Команда для чтения данных
void * Point
Точка входа в оперативной памяти
size_t Size
Размер диска (в байтах)
void * Reserved
Можно в ОЗУ дописать доп.данные если требуется.
int Status
Режим устройства (0 - не обслуживает | 1 - Чтение/Запись | 2 - Только чтение)
size_t SectorSize
Размер секторов
int AddrMode
Метод адрессации (0 - CHS | 1 - LBA | 2 - RAM | 3 - RW for FNC)
dpm_disk_rw_cmd Write
Команда для записи данных