14 #include "../../src/lib/libvector/include/vector.h"
16 #define FAT32_LINEAR_OPTIMIZATION 1
21 uint16_t bytes_per_sector;
22 uint8_t sectors_per_cluster;
23 uint16_t reserved_sectors;
25 uint16_t root_entries;
26 uint16_t small_sectors_number;
28 uint16_t sectors_per_fat;
29 uint16_t sectors_per_track;
31 uint32_t hidden_sectors;
32 uint32_t sectors_in_partition;
33 uint32_t fat_size_in_sectors;
36 uint32_t root_directory_offset_in_clusters;
37 uint16_t fsinfo_sector;
42 uint8_t extended_boot_signature;
43 uint32_t volume_serial_number;
44 char volume_label[11];
49 char short_file_name[11];
51 uint8_t register_sign;
53 uint8_t create_millis;
56 uint16_t last_access_date;
58 uint16_t first_cluster_high;
59 uint16_t last_modif_time;
60 uint16_t last_modif_date;
61 uint16_t first_cluster_low;
62 uint32_t file_size_in_bytes;
67 uint16_t first_name_chunk[5];
71 uint16_t second_name_chunk[6];
73 uint16_t third_name_chunk[2];
79 uint32_t cluster_size;
82 uint32_t reserved_fat_offset;
83 uint32_t root_directory_offset;
88 #define LFN_LAST_ENTRY 0x40
89 #define ATTR_READ_ONLY 0x01
90 #define ATTR_HIDDEN 0x02
91 #define ATTR_SYSTEM 0x04
92 #define ATTR_VOLUME_ID 0x08
93 #define ATTR_DIRECTORY 0x10
94 #define ATTR_ARCHIVE 0x20
95 #define ATTR_LONG_FILE_NAME 0x0F
101 size_t starting_cluster;
103 fat_object_info_t advanced_info;
108 size_t fs_fat32_read(
char Disk,
const char* Path,
size_t Offset,
size_t Size,
void* Buffer);
109 size_t fs_fat32_write(
char Disk,
const char* Path,
size_t Offset,
size_t Size,
void* Buffer);
110 FSM_FILE fs_fat32_info(
char Disk,
const char* Path);
111 FSM_DIR* fs_fat32_dir(
char Disk,
const char* Path);
112 int fs_fat32_create(
char Disk,
const char* Path,
int Mode);
113 int fs_fat32_delete(
char Disk,
const char* Path,
int Mode);
114 void fs_fat32_label(
char Disk,
char* Label);
115 int fs_fat32_detect(
char Disk);
116 vector_t* fs_fat32_get_clusters(
char Disk,
size_t cluster_number);
117 size_t fs_fat32_get_cluster_count(
char Disk,
size_t cluster_number);
118 void fs_fat32_read_clusters_to_memory(
char Disk,
size_t cluster_number,
void* buffer);
120 void fs_fat32_read_entire_fat(
char Disk);
121 fat_file_info_t fs_fat32_get_object_info(
char Disk,
const char* filename,
size_t directory_cluster);
122 size_t fs_fat32_evaluate(
char Disk,
const char* path,
bool error_on_file);
123 void fs_fat32_read_file_from_dir(
char Disk,
size_t directory_cluster,
size_t byte_offset,
size_t length,
char *filename,
Основные определения ядра
struct registers __attribute__((packed))
Структура данных пакета от мыши