Do tematu: Struktury danych
extern mem_map_t *mem_map.
Służy do trzymania informacji o każdej ramce fizycznej pamięci oprócz
tej, ktora została wykorzystana przy inicjowaniu systemu.
| Typ | Nazwa | Opis |
| atomic_t | count | mówi nam czy dana ramka jest wolna (
count == 0) czy też nie (count == liczba procesów odwołujących się do tej ramki +1 jeżeli ma zaalokowane bufory) |
| unsigned | dirty:16,
age:8 |
mówi czy ramka była modyfikowana;
służy do trzymania wieku ramki |
| unsigned | flags | różne flagi |
| struct wait_queue * | wait | kolejka procesów czekających na zakończenie operacji I/O na ramce. |
| struct page * | next | 1.jeżeli ramka jest wolna to pole sluży do zarządzania
wolnymi ramkami ( patrz struct free_area_struct
) tworząc dwukierunkową listę cykliczną wraz z polem prev.
2. jeżeli jest to ramka z mapowania i-węzła to z polem prev tworzą dwukierunkową listę stron tego i-węzła. |
| struct page * | next_hash | wraz z polem prev_hash tworzą kolejkę haszującą do wyszukiwania stron z mapowania i_węzłów przez jądro w tablicy haszujacej. |
| unsigned long | offset | offset w pliku |
| struct i_node * | inode | i_węzeł z mapowania, z którego ta strona pochodzi, jeżeli nie to NULL. |
| struct page * | prev | patrz struct page ->next |
| struct page * | prev_hash | patrz pole struct page->next_hash |
| struct buffer_head * | buffers | gdy ramka ma zaalokowane bufory to wówczas page->buffers tworzy cykliczną listę tych buforów. |
| unsigned long | swap_unlock_entry | |
| unsigned long | map_nr | offset w tablicy stron mem_map (page->map_nr == page -mem_map ) |