|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Cached parse of one mounted FAT volume. More...
#include <ra8_fs_types.h>
Data Fields | |
| ra8_fs_backend_t | backend |
| Block-device backend. | |
| ra8_fs_type_t | type |
| FAT12 / FAT16 / FAT32. | |
| uint32_t | bytes_per_sector |
| Sector size (BPB / VBR == backend). | |
| uint32_t | sectors_per_cluster |
| BPB BPB_SecPerClus. | |
| uint32_t | reserved_sectors |
| BPB BPB_RsvdSecCnt. | |
| uint32_t | num_fats |
| BPB BPB_NumFATs. | |
| uint32_t | root_entries |
| BPB BPB_RootEntCnt (FAT12/16). | |
| uint64_t | total_sectors |
| BPB TotSec / exFAT VolumeLength. | |
| uint32_t | fat_size_sectors |
| BPB BPB_FATSz16 / BPB_FATSz32. | |
| uint32_t | root_cluster |
| BPB BPB_RootClus (FAT32 only). | |
| uint64_t | first_fat_lba |
| Computed: first FAT sector. | |
| uint64_t | first_root_lba |
| FAT12/16 fixed root-dir start. | |
| uint64_t | first_data_lba |
| First sector of the data region. | |
| uint32_t | count_of_clusters |
| Per MS spec: data_sectors / SPC. | |
| uint64_t | partition_base_lba |
| MBR/GPT partition start (0 = superfloppy). | |
| uint8_t | in_use |
| 0 = slot free, 1 = mounted. | |
| uint8_t | exfat_upcase_ok |
| exFAT: volume's up-case table is ours. | |
Cached parse of one mounted FAT volume.
Populated by ra8_fs_mount() from the on-disk BPB. The struct is intentionally exposed so callers can statically allocate it; treat the fields as read-only.
Definition at line 244 of file ra8_fs_types.h.
| ra8_fs_backend_t ra8_fs_mount_t::backend |
Block-device backend.
Definition at line 245 of file ra8_fs_types.h.
Referenced by internal_probe_locked(), priv_read_sector(), and priv_write_sector().
| uint32_t ra8_fs_mount_t::bytes_per_sector |
Sector size (BPB / VBR == backend).
Definition at line 247 of file ra8_fs_types.h.
Referenced by internal_exfat_parse(), internal_mount_probe_bps(), priv_bps(), priv_cluster_bytes(), priv_dir_eps(), and priv_parse_bpb_into_mount().
| uint32_t ra8_fs_mount_t::count_of_clusters |
Per MS spec: data_sectors / SPC.
Definition at line 258 of file ra8_fs_types.h.
Referenced by internal_alloc_start(), internal_compute_geometry(), internal_exfat_bitmap_window(), internal_exfat_dir_survey(), internal_exfat_parse(), internal_exfat_pick_cluster(), internal_exfat_survey_alloc(), internal_space_exfat_free(), internal_space_fat_free(), priv_alloc_cluster(), priv_dir_walk_next_sector(), priv_exfat_bitmap_scan(), priv_exfat_free_clusters(), priv_free_chain(), priv_free_count_cache(), priv_free_count_gave(), and priv_fsinfo_seed().
| uint8_t ra8_fs_mount_t::exfat_upcase_ok |
exFAT: volume's up-case table is ours.
Definition at line 261 of file ra8_fs_types.h.
Referenced by priv_exfat_name_to_units(), and priv_exfat_upcase_verify().
| uint32_t ra8_fs_mount_t::fat_size_sectors |
BPB BPB_FATSz16 / BPB_FATSz32.
Definition at line 253 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_exfat_parse(), internal_lba_is_cacheable(), priv_fat_set(), and priv_parse_bpb_into_mount().
| uint64_t ra8_fs_mount_t::first_data_lba |
First sector of the data region.
Definition at line 257 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_exfat_parse(), and priv_cluster_to_lba().
| uint64_t ra8_fs_mount_t::first_fat_lba |
Computed: first FAT sector.
Definition at line 255 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_exfat_parse(), internal_lba_is_cacheable(), priv_fat_get(), and priv_fat_set().
| uint64_t ra8_fs_mount_t::first_root_lba |
FAT12/16 fixed root-dir start.
Definition at line 256 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_dir_walk_init_root(), internal_exfat_parse(), and internal_fat_scan_fixed_root().
| uint8_t ra8_fs_mount_t::in_use |
0 = slot free, 1 = mounted.
Definition at line 260 of file ra8_fs_types.h.
Referenced by fw_fs_ra8_vfs_init(), and priv_open_locked().
| uint32_t ra8_fs_mount_t::num_fats |
BPB BPB_NumFATs.
Definition at line 250 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_exfat_parse(), priv_fat_set(), and priv_parse_bpb_into_mount().
| uint64_t ra8_fs_mount_t::partition_base_lba |
MBR/GPT partition start (0 = superfloppy).
Definition at line 259 of file ra8_fs_types.h.
Referenced by internal_read_boot_sector(), priv_read_sector(), and priv_write_sector().
| uint32_t ra8_fs_mount_t::reserved_sectors |
BPB BPB_RsvdSecCnt.
Definition at line 249 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_exfat_parse(), internal_fat_fsinfo(), internal_fsinfo_locate(), and priv_parse_bpb_into_mount().
| uint32_t ra8_fs_mount_t::root_cluster |
BPB BPB_RootClus (FAT32 only).
Definition at line 254 of file ra8_fs_types.h.
Referenced by internal_dir_walk_init_root(), internal_exfat_parse(), internal_fat_tree(), internal_stat_root(), priv_exfat_dir_root(), priv_exfat_upcase_verify(), and priv_parse_bpb_into_mount().
| uint32_t ra8_fs_mount_t::root_entries |
BPB BPB_RootEntCnt (FAT12/16).
Definition at line 251 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_dir_walk_init_root(), internal_exfat_parse(), internal_fat_scan_fixed_root(), and priv_parse_bpb_into_mount().
| uint32_t ra8_fs_mount_t::sectors_per_cluster |
BPB BPB_SecPerClus.
Definition at line 248 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_dir_cluster_init(), internal_dir_grow(), internal_exfat_parse(), internal_fat_scan_cluster_dir(), priv_cluster_bytes(), priv_cluster_to_lba(), priv_dir_walk_next_sector(), priv_exfat_seal_cluster(), priv_exfat_zero_cluster(), and priv_parse_bpb_into_mount().
| uint64_t ra8_fs_mount_t::total_sectors |
BPB TotSec / exFAT VolumeLength.
Definition at line 252 of file ra8_fs_types.h.
Referenced by internal_compute_geometry(), internal_exfat_parse(), and priv_parse_bpb_into_mount().
| ra8_fs_type_t ra8_fs_mount_t::type |
FAT12 / FAT16 / FAT32.
Definition at line 246 of file ra8_fs_types.h.
Referenced by fs_fmt_run_exfat(), fs_fmt_run_one_type(), internal_capabilities(), internal_close_stamp(), internal_compute_geometry(), internal_dir_grow(), internal_dir_walk_init_root(), internal_exfat_parse(), internal_fat_bad_marker(), internal_fat_boot_label_off(), internal_fat_entry_byte_offset(), internal_fat_fsinfo(), internal_fat_tree(), internal_space_free_clusters(), priv_eoc_write(), priv_fat_get(), priv_fat_set(), priv_fsinfo_seed(), priv_is_eoc(), priv_open_locked(), and ra8_io_vfs_mount().