5 #define SECTOR_SIZE 512
6 #define FAT_DELETED_MAGIC ((char)0xE5)
7 #define ENTRY_AVAILABLE 0x00
8 #define ENTRY_ERASED 0xe5
9 #define offsetof(t,d) __builtin_offsetof(t, d)
10 typedef uint32_t addr_t;
30 char volume_label[11];
32 uint8_t boot_code[448];
66 uint8_t is_archived: 1;
67 uint8_t is_readonly: 1;
70 uint8_t is_directory: 1;
79 FAT_BOOT_SECTOR super;
82 uint32_t root_sectors;
83 uint32_t cluster2_pos;
Основные определения ядра
struct registers __attribute__((packed))
Структура данных пакета от мыши
uint16_t logical_sectors16
Общее количество секторов в логическом томе. Если это значение равно 0, это означает,...
uint16_t root_dir_capacity
Количество записей корневого каталога (должно быть установлено так, чтобы корневой каталог занимал це...
uint8_t media_type
Этот байт указывает тип дескриптора носителя .
uint8_t fat_count
Количество таблиц размещения файлов (FAT) на носителе. Часто это значение равно 2.
uint32_t serial_number
VolumeID 'Серийный' номер. Используется для отслеживания томов между компьютерами....
uint8_t chs_head
Флаги в Windows NT. В противном случае зарезервировано.
uint16_t magic
Подпись загрузочного раздела 0xAA55.
uint8_t sectors_per_cluster
Количество секторов в кластере.
uint16_t bytes_per_sector
Количество байтов на сектор
uint16_t chs_sectors_per_track
Количество секторов на дорожке.
uint16_t reserved_sectors
Количество зарезервированных секторов. Сектора загрузочной записи включены в это значение.
uint32_t logical_sectors32
Большое количество секторов. Это поле устанавливается, если в томе более 65535 секторов,...
uint8_t ext_bpb_signature
Подпись (должна быть 0x28 или 0x29).
uint32_t hidden_sectors
Количество скрытых секторов. (т.е. LBA начала раздела.)
uint8_t media_id
Номер привода. Значение здесь должно быть идентично значению, возвращаемому прерыванием BIOS 0x13 или...
uint16_t chs_tracks_per_cylinder
Количество головок или сторон на носителе.
uint16_t sectors_per_fat
Количество секторов на FAT. Только FAT12/FAT16.
uint8_t Reser
Зарезервировано для использования Windows NT.
uint32_t Size
Размер файла в байтах.
uint16_t TimeEditHIS
Время последней модификации. Тот же формат, что и время создания.
uint16_t TimeAccess
Дата последнего доступа. Тот же формат, что и дата создания.
fat_attributes Attr
Атрибуты файла
uint16_t TimeEditDate
Дата последней модификации. Тот же формат, что и дата создания.
uint16_t TimeCreateHIS
Время создания файла. Умножьте секунды на 2. (Часы 5 / Минуты 6 / Секунды 5)
uint8_t TimeMS
Время создания в десятых долях секунды.
uint16_t FCHB
Старшие 16 бит первого номера кластера этой записи. Для FAT 12 и FAT 16 это значение всегда равно нул...
uint16_t FCLB
Младшие 16 бит первого номера кластера этой записи. Используйте этот номер, чтобы найти первый класте...
uint16_t TimeCreateDate
Дата создания файла (Год 7 / Месяц 4 / День 5)
Структура файла. Требуется для работы с VFS.