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;
20  int32_t LogicalBlockSize;
21  int32_t PathTableSize[2];
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];
39  int8_t UnUsed03;
40  char ApplicationUsed[512];
41  char Reserved[653];
42 } ISO9660_PVD;
43 
44 typedef struct {
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;
54  int8_t ID;
55  char* FileID;
56 
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
Основные определения ядра
int8_t LengthDirectoryRecord
[0] Длина записи каталога.
Definition: iso9660.h:45
int8_t Interval
[27] Размер интервала чередования для файлов, записанных в режиме чередования, в противном случае — н...
Definition: iso9660.h:52
int8_t ExtendedAttributeRecord
[1] Длина расширенной записи атрибутов.
Definition: iso9660.h:46
uint32_t VolumeSequenceNumber
[28] Порядковый номер тома — том, на котором записан этот экстент, в 16-битном формате с прямым поряд...
Definition: iso9660.h:53
int8_t Flags
[25] Флаги файлов.
Definition: iso9660.h:50
char * FileID
[33] Идентификатор файла.
Definition: iso9660.h:55
int8_t Mode
[26] Размер файловой единицы для файлов, записанных в чередующемся режиме, в противном случае — ноль.
Definition: iso9660.h:51
int8_t ID
[32] Длина идентификатора файла (имя файла). Это заканчивается знаком ';' символ, за которым следует ...
Definition: iso9660.h:54
int32_t LocOfOpti_M_PathTable
[152] Местоположение LBA дополнительной таблицы путей. Таблица путей, на которую указывает,...
Definition: iso9660.h:25
int32_t LocOfOpti_L_PathTable
[144] Местоположение LBA дополнительной таблицы путей. Таблица путей, на которую указывает,...
Definition: iso9660.h:23
int32_t VolumeSequenceNumber
[124] Номер этого диска в наборе томов.
Definition: iso9660.h:19
uint8_t Version
[6+1] Версия файловой системы
Definition: iso9660.h:11
int8_t UnUsed03
[882] [!] Всегда 0x00.
Definition: iso9660.h:39
uint8_t Zero
[0+1] Указывает на загрузочную запись?
Definition: iso9660.h:9
int8_t FileStructureVersion
[881] Записи каталога и версия таблицы путей (всегда 0x01).
Definition: iso9660.h:38
int32_t LocOfType_M_PathTable
[148] Расположение LBA таблицы путей. Таблица путей, на которую указывает, содержит только значения с...
Definition: iso9660.h:24
uint8_t UnUsed00
[7+1] [!] Все нули
Definition: iso9660.h:12
int32_t VolumeSetSize
[120] Количество логических блоков, в которых записан том.
Definition: iso9660.h:18
int32_t LogicalBlockSize
[128] Размер логического блока в байтах. NB: Это означает, что логический блок на компакт-диске может...
Definition: iso9660.h:20
int32_t LocOfType_L_PathTable
[140] Расположение LBA таблицы путей. Таблица путей, на которую указывает, содержит только значения с...
Definition: iso9660.h:22