next up previous
Next: Przydzielanie i zwalnianie pamięci Up: Tablice stron procesu Previous: Tablice stron procesu

Obsługa tablic stron

Wyżej opisana organizacja przestrzeni adresowej umożliwia wygodną i efektywną obsługę tablic stron.

Dla uproszczenia zapisu: niech xxx oznacza jeden z następujących napisów: pgd, pmd, pte.

By zwiększyć przejrzystość, zarówno funkcje jak i makrodefinicje opisuję za pomocą składni deklaracji funkcji w C. Podane przez mnie typy zmiennych i wartości zwracanych mogą się różnić od istniejących w rzeczywistości, bowiem wiele z opisanych tu obiektów to makra, które nie są typowane, a ich konstukcja pozwala na poprawne wykonanie przy różnych typach argumentów. Zostały one tak dobrane, by jak najlepiej obrazować to, czym jest argument, czy zwracana wartość. Poniższy opis przedstawia raczej ideę niż konkretną realizację (realizacje różnią się w szczegółach w zależności od platformy).

PTRS_PER_XXX stała oznaczająca ilość pozycji w tablicy XXX
xxx_t oznacza typ danych przechwywanych w polu tablicy xxx
unsigned long xxx_val(xxx_t xxx) rzutuje xxx na liczbę całkowitą bez znaku
xxx_t __xxx(unsigned long xxx) rzutuje liczbę xxx na typ xxx_t
pgprot_t typ danych reprezentujący flagi ochrony danej pozycji.
pgprot_val(), __pgprot() jego makra konwerujące.
Pozostałe funkcje opiszę na przykładzie przydzielania i zwalniania pamięci.



Wojciech Jaworski 2001-12-16