Do spisu treści systemu plików
Opis niektórych struktur danych dotyczących systemu plików FAT
Na stronie tej opisane są następujące struktury:
- struct fat_pre
struct fat_pre
Struktura ta używana jest przez funkcje "fat_file_read()" oraz
"fat_prefetch" do przekazywania listy nagłówków buforów wczytywanych
z dysku. Funkcja "fat_file_read()" ustawia wartość pola
"file_sector", wskazując na numer pierwszego sektora (logicznie,
w ramach pliku) do wczytania oraz przekazuje wskaźnik na tę
strukturę oraz liczbę sektorów, które chce otrzymać, funkcji
"fat_prefetch()". Ta ostatnia mapuje kolejne logiczne numery sektorów
należących do pliku na fizyczne numery dyskowe i ściąga je
do buforów, które dynamicznie tworzy. Nagłówki tych buforów
zapisuje na liście "bhlist" zaś ich ilość w "nblist". Takiej listy
używa potem funkcja "fat_file_read()". Parametru "nolist" używa
tylko funkcja "fat_file_read()" do pamiętania numeru bufora na
liście, który aktualnie przetwarza. Funkcja "fat_prefetch()" nie
rusza tego pola. Nowe bufory funkcja "fat_prefetch()" dopisuje
na koniec listy, za pierwszymi "nblist", które się na liście
znajdują. Podsumowując, struktura ta służy jednocześnie jako
pole do przekazywania argumentów i wyników pomiędzy wymienionymi
wyżej funkcjami i jednocześnie jako roboczy obszar dla funkcji
odczytu plików. Żadne inne funkcje z niej nie korzystają.
struct fat_pre {
Następny sektor do wczytania
int file_sector;
Lista nagłówków buforów
struct buffer_head *bhlist[MSDOS_PREFETCH];
Liczba nagłówków buforów na liście
int nblist;
Indeks (na liście) bufora aktualnie zczytywanego do pamięci
int nolist;
};
Autor: Krzysztof Ostrowski