11 #include "portability.h"
13 #include <../src/lib/elk/ext/jse_function.h>
15 void __out_limit(
char* pr,
char* str,
size_t count){
16 char* buf = kcalloc(1, count+1);
18 printf(
"%s: '%s'\n",pr, buf);
23 size_t fs_iso9660_read(
const char Disk,
const char* Path,
size_t Offset,
size_t Size,
void* Buffer){
27 size_t fs_iso9660_write(
const char Disk,
const char* Path,
size_t Offset,
size_t Size,
void* Buffer){
31 FSM_FILE fs_iso9660_info(
const char Disk,
const char* Path){
35 FSM_DIR* fs_iso9660_dir(
const char Disk,
const char* Path){
39 int fs_iso9660_create(
const char Disk,
const char* Path,
int Mode){
43 int fs_iso9660_delete(
const char Disk,
const char* Path,
int Mode){
47 void fs_iso9660_label(
const char Disk,
char* Label){
48 char* l = kcalloc(1, 33);
49 int buf_read =
dpm_read(Disk, 0, 0x8028, 32, l);
51 memcpy(Label,
"Unsupported disk",
strlen(
"Unsupported disk"));
60 int fs_iso9660_detect(
const char Disk){
72 qemu_err(
"[ISO9660] %c | No passed test!",Disk);
78 qemu_warn(
"--------------------------------");
79 qemu_warn(
"| Label Disk %c | READ: %d", Disk, buf_read);
80 qemu_warn(
"| Zero | %x | %d ", pvd->
Zero, pvd->
Zero);
81 __out_limit(
"ID", pvd->
ID, 5);
83 __out_limit(
"SystemName", pvd->
SystemName, 32);
84 __out_limit(
"Label", pvd->
Label, 32);
109 qemu_warn(
"--------------------------------");
size_t dpm_read(char Letter, uint64_t high_offset, uint64_t low_offset, size_t Size, void *Buffer)
[DPM] Считывание данных с диска
size_t strlen(const char *str)
Возращает длину строки
void * memcpy(void *restrict destination, const void *restrict source, size_t n)
Копирование непересекающихся массивов используя SSE.
char CopyrightFileID[37]
[702] Имя файла в корневом каталоге, который содержит информацию об авторских правах для этого набора...
int32_t LocOfOpti_M_PathTable
[152] Местоположение LBA дополнительной таблицы путей. Таблица путей, на которую указывает,...
char DataPreparerID[128]
[446] Идентификатор лица(ов), подготовившего данные для этого тома. Для расширенной информации о подг...
char VolumeExpirationDate[17]
[847] Дата и время, после которых этот том считается устаревшим. Если не указано, том никогда не счит...
char VolumeSetID[128]
[190] Идентификатор набора томов, членом которого является этот том.
int32_t LocOfOpti_L_PathTable
[144] Местоположение LBA дополнительной таблицы путей. Таблица путей, на которую указывает,...
char VolumeCreationDate[17]
[813] Дата и время создания тома.
int32_t VolumeSequenceNumber
[124] Номер этого диска в наборе томов.
char ID[5]
[1+5] ОЕМ-идентификатор (Всегда CD001)
uint8_t Version
[6+1] Версия файловой системы
char DirectoryEntry[34]
[156] Обратите внимание, что это не адрес LBA, а фактическая запись каталога, которая содержит одноба...
uint8_t Zero
[0+1] Указывает на загрузочную запись?
int32_t VolumeSpaceSize[2]
[80] Количество логических блоков, в которых записан том.
char VolumeEffectiveDate[17]
[864] Дата и время, после которых том можно будет использовать. Если не указано иное,...
int8_t FileStructureVersion
[881] Записи каталога и версия таблицы путей (всегда 0x01).
char Label[32]
[40+32] Метка диска
char ApplicationID[128]
[574] Определяет, как данные записываются на этот том. Для расширенной информации первый байт должен ...
int32_t LocOfType_M_PathTable
[148] Расположение LBA таблицы путей. Таблица путей, на которую указывает, содержит только значения с...
char SystemName[32]
[8+32] Имя системы, которая может работать с секторами 0x00–0x0F тома.
char PublisherID[128]
[318] Издательство тома. Для расширенной информации об издателе первый байт должен быть 0x5F,...
int32_t VolumeSetSize
[120] Количество логических блоков, в которых записан том.
int32_t LogicalBlockSize
[128] Размер логического блока в байтах. NB: Это означает, что логический блок на компакт-диске может...
int32_t PathTableSize[2]
[132] Размер таблицы путей в байтах.
char VolumeModificationDate[17]
[830] Дата и время изменения тома.
int32_t LocOfType_L_PathTable
[140] Расположение LBA таблицы путей. Таблица путей, на которую указывает, содержит только значения с...
char AbstractFileID[37]
[739] Имя файла в корневом каталоге, который содержит абстрактную информацию для этого набора томов....
char BibliographicFileID[37]
[776] Имя файла в корневом каталоге, содержащего библиографическую информацию для этого набора томов....