SayoriOS 0.3.3

iso9660.h
1 #ifndef SAYORI_ISO9660_H
2 #define SAYORI_ISO9660_H
3
4 #include <common.h>
5 #include <io/ports.h>
6 #include <fs/fsm.h>
7
8 typedef struct {
9 uint8_t Zero;
10 char ID[5];
11 uint8_t Version;
12 uint8_t UnUsed00;
13 char SystemName[32];
14 char Label[32];
15 char UnUsed01[8];
16 int32_t VolumeSpaceSize[2];
17 char UnUsed02[32];
18 int32_t VolumeSetSize;
19 int32_t VolumeSequenceNumber;
20 int32_t LogicalBlockSize;
21 int32_t PathTableSize[2];
22 int32_t LocOfType_L_PathTable;
23 int32_t LocOfOpti_L_PathTable;
24 int32_t LocOfType_M_PathTable;
25 int32_t LocOfOpti_M_PathTable;
26 char DirectoryEntry[34];
27 char VolumeSetID[128];
28 char PublisherID[128];
29 char DataPreparerID[128];
30 char ApplicationID[128];
31 char CopyrightFileID[37];
32 char AbstractFileID[37];
33 char BibliographicFileID[37];
34 char VolumeCreationDate[17];
35 char VolumeModificationDate[17];
36 char VolumeExpirationDate[17];
37 char VolumeEffectiveDate[17];
38 int8_t FileStructureVersion;
39 int8_t UnUsed03;
40 char ApplicationUsed[512];
41 char Reserved[653];
42 } ISO9660_PVD;
43
44 typedef struct {
45 int8_t LengthDirectoryRecord;
46 int8_t ExtendedAttributeRecord;
47 uint32_t LBA[2];
48 uint32_t Lenght[2];
49 char Date[7];
50 int8_t Flags;
51 int8_t Mode;
52 int8_t Interval;
53 uint32_t VolumeSequenceNumber;
54 int8_t ID;
55 char* FileID;
56
57 } ISO9660_Entity;
58
59 size_t fs_iso9660_read(char Disk,const char* Path, size_t Offset, size_t Size,void* Buffer);
60 size_t fs_iso9660_write(char Disk,const char* Path,size_t Offset,size_t Size,void* Buffer);
61 FSM_FILE fs_iso9660_info(char Disk,const char* Path);
62 FSM_DIR* fs_iso9660_dir(char Disk,const char* Path);
63 int fs_iso9660_create(char Disk,const char* Path,int Mode);
64 int fs_iso9660_delete(char Disk,const char* Path,int Mode);
65 void fs_iso9660_label(char Disk, char* Label);
66 int fs_iso9660_detect(char Disk);
67 #endif //SAYORI_ISO9660_H
common.h
Основные определения ядра
ISO9660_Entity
Definition: iso9660.h:44
ISO9660_Entity::LengthDirectoryRecord
int8_t LengthDirectoryRecord
[0] Длина записи каталога.
Definition: iso9660.h:45
ISO9660_Entity::Interval
int8_t Interval
[27] Размер интервала чередования для файлов, записанных в режиме чередования, в противном случае — н...
Definition: iso9660.h:52
ISO9660_Entity::ExtendedAttributeRecord
int8_t ExtendedAttributeRecord
[1] Длина расширенной записи атрибутов.
Definition: iso9660.h:46
ISO9660_Entity::VolumeSequenceNumber
uint32_t VolumeSequenceNumber
[28] Порядковый номер тома — том, на котором записан этот экстент, в 16-битном формате с прямым поряд...
Definition: iso9660.h:53
ISO9660_Entity::Flags
int8_t Flags
[25] Флаги файлов.
Definition: iso9660.h:50
ISO9660_Entity::FileID
char * FileID
[33] Идентификатор файла.
Definition: iso9660.h:55
ISO9660_Entity::Mode
int8_t Mode
[26] Размер файловой единицы для файлов, записанных в чередующемся режиме, в противном случае — ноль.
Definition: iso9660.h:51
ISO9660_Entity::ID
int8_t ID
[32] Длина идентификатора файла (имя файла). Это заканчивается знаком ';' символ, за которым следует ...
Definition: iso9660.h:54
ISO9660_PVD
Definition: iso9660.h:8
ISO9660_PVD::LocOfOpti_M_PathTable
int32_t LocOfOpti_M_PathTable
[152] Местоположение LBA дополнительной таблицы путей. Таблица путей, на которую указывает,...
Definition: iso9660.h:25
ISO9660_PVD::LocOfOpti_L_PathTable
int32_t LocOfOpti_L_PathTable
[144] Местоположение LBA дополнительной таблицы путей. Таблица путей, на которую указывает,...
Definition: iso9660.h:23
ISO9660_PVD::VolumeSequenceNumber
int32_t VolumeSequenceNumber
[124] Номер этого диска в наборе томов.
Definition: iso9660.h:19
ISO9660_PVD::Version
uint8_t Version
[6+1] Версия файловой системы
Definition: iso9660.h:11
ISO9660_PVD::UnUsed03
int8_t UnUsed03
[882] [!] Всегда 0x00.
Definition: iso9660.h:39
ISO9660_PVD::Zero
uint8_t Zero
[0+1] Указывает на загрузочную запись?
Definition: iso9660.h:9
ISO9660_PVD::FileStructureVersion
int8_t FileStructureVersion
[881] Записи каталога и версия таблицы путей (всегда 0x01).
Definition: iso9660.h:38
ISO9660_PVD::LocOfType_M_PathTable
int32_t LocOfType_M_PathTable
[148] Расположение LBA таблицы путей. Таблица путей, на которую указывает, содержит только значения с...
Definition: iso9660.h:24
ISO9660_PVD::UnUsed00
uint8_t UnUsed00
[7+1] [!] Все нули
Definition: iso9660.h:12
ISO9660_PVD::VolumeSetSize
int32_t VolumeSetSize
[120] Количество логических блоков, в которых записан том.
Definition: iso9660.h:18
ISO9660_PVD::LogicalBlockSize
int32_t LogicalBlockSize
[128] Размер логического блока в байтах. NB: Это означает, что логический блок на компакт-диске может...
Definition: iso9660.h:20
ISO9660_PVD::LocOfType_L_PathTable
int32_t LocOfType_L_PathTable
[140] Расположение LBA таблицы путей. Таблица путей, на которую указывает, содержит только значения с...
Definition: iso9660.h:22