KolibriOS kernel
FAT Struct Reference

Internal data for every FAT partition. More...

Public Attributes

db fs_type
 
db fat_change
 
db createOption
 
MUTEX Lock
 
dd SECTORS_PER_FAT
 
dd NUMBER_OF_FATS
 
dd SECTORS_PER_CLUSTER
 
dd BYTES_PER_SECTOR
 
dd ROOT_CLUSTER
 
dd FAT_START
 
dd ROOT_START
 
dd ROOT_SECTORS
 
dd DATA_START
 
dd LAST_CLUSTER
 
dd ADR_FSINFO
 
dd fatRESERVED
 
dd fatBAD
 
dd fatEND
 
dd fatMASK
 
dd fatStartScan
 
dd cluster_tmp
 
dd longname_sec1
 
dd longname_sec2
 
dd fat_in_cache
 
dd fat_cache_ptr
 
dd fat12_unpacked_ptr
 
rb volumeLabel
 
rb buffer
 
rb fsinfo_buffer
 

Detailed Description

Internal data for every FAT partition.

Source
fs/fat.inc:47

Member Data Documentation

◆ ADR_FSINFO

dd FAT::ADR_FSINFO

used only by fat32

◆ buffer

rb FAT::buffer

◆ BYTES_PER_SECTOR

dd FAT::BYTES_PER_SECTOR

Note: if BPS <> 512 need lots of changes

◆ cluster_tmp

dd FAT::cluster_tmp

used by analyze_directory and analyze_directory_to_write

◆ createOption

db FAT::createOption

◆ DATA_START

dd FAT::DATA_START

start of data area (=first cluster 2)

◆ fat12_unpacked_ptr

dd FAT::fat12_unpacked_ptr

◆ fat_cache_ptr

dd FAT::fat_cache_ptr

For FAT16/FAT32, this points to 512-byte buffer for the current sector of FAT. For FAT12, the entire FAT structure is read and unpacked from 12bit per cluster to word per cluster. Note: work with unpacked copy of FAT12 means additional memory and additional code for packing/unpacking. I'm not sure that the economy justifies the cost, but anyway, there is how work was done before my edits, and I'm just keeping the principle.

◆ fat_change

db FAT::fat_change

1=fat has changed

◆ fat_in_cache

dd FAT::fat_in_cache

◆ FAT_START

dd FAT::FAT_START

start of fat table

◆ fatBAD

dd FAT::fatBAD

◆ fatEND

dd FAT::fatEND

◆ fatMASK

dd FAT::fatMASK

◆ fatRESERVED

dd FAT::fatRESERVED

◆ fatStartScan

dd FAT::fatStartScan

◆ fs_type

db FAT::fs_type

◆ fsinfo_buffer

rb FAT::fsinfo_buffer

◆ LAST_CLUSTER

dd FAT::LAST_CLUSTER

last availabe cluster

◆ Lock

MUTEX FAT::Lock

currently operations with one partition

◆ longname_sec1

dd FAT::longname_sec1

used by analyze_directory to save 2 previous

◆ longname_sec2

dd FAT::longname_sec2

directory sectors for delete long filename

◆ NUMBER_OF_FATS

dd FAT::NUMBER_OF_FATS

◆ ROOT_CLUSTER

dd FAT::ROOT_CLUSTER

first rootdir cluster

◆ ROOT_SECTORS

dd FAT::ROOT_SECTORS

count of rootdir sectors (only fat16)

◆ ROOT_START

dd FAT::ROOT_START

start of rootdir (only fat16)

◆ SECTORS_PER_CLUSTER

dd FAT::SECTORS_PER_CLUSTER

◆ SECTORS_PER_FAT

dd FAT::SECTORS_PER_FAT

can not be executed in parallel since the legacy code is not ready

◆ volumeLabel

rb FAT::volumeLabel

The documentation for this struct was generated from the following file: