Kintsugi OS 0.4.0
x86 Monolithic OS
Loading...
Searching...
No Matches
fat12.h
Go to the documentation of this file.
1/*------------------------------------------------------------------------------
2 * Kintsugi OS FileSystems source code
3 * File: fs/fat12.h
4 * Title: Заголовочный файл fat12.h
5 * Last Change Date: 30 October 2023, 12:28 (UTC)
6 * Author: alexeev-prog
7 * License: GNU GPL v3
8 * ------------------------------------------------------------------------------
9 * Description: Заголовочный файл файловой системы Fat12
10 * ----------------------------------------------------------------------------*/
11
12#ifndef FS_FAT12_H
13#define FS_FAT12_H
14
15#include "../kklibc/ctypes.h"
16
21typedef struct {
22 u8 jmp[3];
23 char oem[8];
37 // расширенный BPB
42 char volume_label[11];
43 char fs_type[8];
44} __attribute__((packed)) fat12_boot_sector_t;
45
50typedef struct {
51 char filename[8];
52 char extension[3];
54 u8 reserved[10];
59} __attribute__((packed)) fat12_dir_entry_t;
60
75
80void fat12_init(void);
81
87int fat12_read_boot_sector(fat12_boot_sector_t* boot);
88
95int fat12_find_file(const char* filename, fat12_dir_entry_t* result);
96
101void fat12_list_root(void);
102
110int fat12_read_file(const char* filename, u8* buffer);
111
116void print_fat12_info(void);
117
122void fat12_cleanup(void);
123
124/* -------------------------------------------------------------------------- */
125/* НОВЫЕ ФУНКЦИИ ДЛЯ ЗАПИСИ */
126/* -------------------------------------------------------------------------- */
127
133int fat12_create_file(const char* filename);
134
140int fat12_delete_file(const char* filename);
141
150int fat12_write_file(const char* filename, u8* data, u32 size);
151
152#endif
unsigned int u32
Definition ctypes.h:11
unsigned short u16
Definition ctypes.h:13
unsigned char u8
Definition ctypes.h:15
int fat12_write_file(const char *filename, u8 *data, u32 size)
Запись данных в файл
Definition fat12.c:615
void fat12_list_root(void)
Вывод содержимого корневого каталога
Definition fat12.c:114
int fat12_find_file(const char *filename, fat12_dir_entry_t *result)
Поиск файла в корневом каталоге
Definition fat12.c:393
void fat12_init(void)
Инициализация подсистемы FAT12.
Definition fat12.c:50
int fat12_delete_file(const char *filename)
Удаление файла
Definition fat12.c:540
int fat12_create_file(const char *filename)
Создание пустого файла
Definition fat12.c:482
int fat12_read_boot_sector(fat12_boot_sector_t *boot)
Чтение загрузочного сектора FAT12.
void fat12_cleanup(void)
Очистка ресурсов подсистемы FAT12.
Definition fat12.c:38
void print_fat12_info(void)
Вывод информации о файловой системе FAT12.
Definition fat12.c:88
int fat12_read_file(const char *filename, u8 *buffer)
Чтение содержимого файла в буфер
Definition fat12.c:435
u32 size
Definition mem.h:0
Структура загрузочного сектора FAT12.
Definition idt.h:11
u16 head_count
Definition fat12.h:33
u16 first_cluster
Definition fat12.h:57
u32 file_size
Definition fat12.h:58
u8 media_type
Definition fat12.h:30
u16 root_entries
Definition fat12.h:28
u8 attributes
Definition fat12.h:53
u16 sectors_per_fat
Definition fat12.h:31
u32 volume_id
Definition fat12.h:41
u8 fat_count
Definition fat12.h:27
u32 hidden_sectors
Definition fat12.h:34
u8 reserved
Definition fat12.h:39
u8 drive_number
Definition fat12.h:38
u32 large_sector_count
Definition fat12.h:35
u16 reserved_sectors
Definition fat12.h:26
u8 boot_signature
Definition fat12.h:40
u16 total_sectors
Definition fat12.h:29
u8 sectors_per_cluster
Definition fat12.h:25
u16 bytes_per_sector
Definition fat12.h:24
u16 date_created
Definition fat12.h:56
u16 sectors_per_track
Definition fat12.h:32
u16 time_created
Definition fat12.h:55
Контекст работы с FAT12.
Definition fat12.h:65
u32 root_dir_size_sectors
Definition fat12.h:69
u32 root_dir_start_sector
Definition fat12.h:68
u8 * fat_buffer
Definition fat12.h:72
u32 total_clusters
Definition fat12.h:71
u32 fat_buffer_loaded
Definition fat12.h:73
u32 fat_size_sectors
Definition fat12.h:67
u32 data_start_sector
Definition fat12.h:70
u32 fat_start_sector
Definition fat12.h:66