Книга: Разработка ядра Linux
Постоянное отображение
Постоянное отображение
Для того чтобы отобразить заданную структуру page
в адресное пространство ядра, необходимо использовать следующую функцию.
void *kmap(struct page *page);
Эта функция работает как со страницами нижней, так и верхней памяти. Если структура page
соответствует странице нижней памяти, то просто возвращается виртуальный адрес. Если страница расположена в верхней памяти, то создается постоянное отображение этой страницы памяти и возвращается полученный логический адрес. Функция kmap()
может переводить процесс в состояние ожидания, поэтому ее можно вызывать только в контексте процесса.
Поскольку количество постоянных отображений ограничено (если бы это было не так, то мы бы не мучились, а просто отобразили всю необходимую память), то отображение страниц верхней памяти должно быть отменено, если оно больше не нужно. Это можно сделать с помощью вызова следующей функции.
void kunmap(struct page *page);
Данная функция отменяет отображение страницы памяти, связанной с параметром page
.
- Отображение
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- 6.1.6. Отображение файлов
- 7.3.4. Сервисное постоянное представительство в Модельной Конвенции ООН
- Листинг 7.4. (print-environment.c) Отображение переменных среды процесса
- 7.12. Отображение структур и преобразование деревьев
- 4.4.2.1. Отображение переменных FILE* на дескрипторы файлов
- Отображение портов
- Отображение пользовательских имен
- Отображение верхней памяти
- Временное отображение
- Для успешной кампании необходимо постоянное руководство