Do tematu: System plików

Do tematu: Struktury danych

 buffer_head
 
Typ Nazwa Opis
kdev_t b_dev numer systemu plików, z którego dane znajdują się w buforze, bądź B_FREE jeśli bufor jest pusty
unsigned long b_blocknr gdy bufor niepusty zawiera logiczny adres bloku w systemie plików
kdev_t b_rdev numer urządzenia w systemie plików
unsigned long b_rsector numer sektora odpowiadającego buforowi
unsigned long b_state zawiera szczegółowe informacje o stanie bufora 
dalej opiszę kolejne bity tego pola
bit 0  BH_Uptodate  bufor zawiera aktualne dane z dysku
bit 1  BH_Dirty zawartość bufora trzeba zapisać, nastąpiła modyfikacja
bit 2  BH_Lock trwa operacja wejścia-wyjścia na buforze
bit 3 BH_Req zawiera zero jeśli dane w buforze zostały unieważnione
bit 4 BH_Touched zawiera jeden jeśli na buforze została wykonana jakaś operacja (został dotknięty)
bit 5 BH_Has_aged jeśli jeden to bufor zestarzał się i będzie mógł być wkrótce usunięty z pamięci
bit 6 BH_Protected zawiera jeden jeśli bufor jest chroniony
bit 7 BH_FreeONIO trzeba zwolnić bufor natychmiast po operacji wejścia-wyjścia
unsigned int b_count liczba procesów korzystających z bufora
struct wait_queue * b_wait kolejka procesów czekających na zwolnienie bufora
unsigned long b_flushtime informacja kiedy należy ponownie zapisać bufor na dysk, zero gdy nie trzeba
unsigned int b_list numer listy, na której znajduje się ten bufor
unsigned long b_size rozmiar bufora, jeden z pięciu możliwych od 512 do 8192 bajtów, tu przechowywany jest numer rozmiaru
char *  b_data wskaźnik do bloku danych
unsigned long b_lru_time czas ostatniego dostępu do bufora
struct buffer_head * b_next, 
b_prev
dowiązania do kolejki zawierającej wszystkie bufory
struct buffer_head * b_next_free, 
b_prev_free
dowiązania do kolejki buforów wolnych 
struct buffer_head * b_this_page dowiązanie do kolejki jednokierunkowej buforów na tej stronie pamięci
struct buffer_head*  b_reqnext wskaźnik do kolejki żądań
autor: Grzegorz Chojnacki