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