Книга: Разработка ядра Linux
Системный вызов mmap()
Системный вызов mmap()
Возможности функции do_mmap()
экспортируются в пространство пользователя с помощью системного вызова mmap()
, который определен следующим образом.
void *mmap2(void *start,
size_t length, int prot, int flags, int fd, off_t pgoff);
Этот системный вызов имеет имя mmap2()
, т.е. второй вариант функции mmap()
. Первоначальный вариант mmap()
требовал в качестве последнего параметра смещение в байтах, а текущий вариант, mmap2()
, — смещение в единицах размера страницы памяти. Это позволяет отображать файлы большего размера с большим значением смещения. Первоначальный вариант функции mmap()
, который соответствует стандарту POSIX, доступен через библиотеку функций языка С, как функция mmap()
, но в ядре уже не реализован. Новый вариант библиотечной функции называется mmap2()
. Обе эти библиотечные функции используют системный вызов mmap2()
. При этом библиотечная функция mmap()
переводит значение смещения из байтов в количество страниц памяти.
- Функции mmap() и do_mmap(): создание интервала адресов
- Системный вызов munmap()
- Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC
- Системные вызовы и драйверы устройств
- Определение необходимого системного вызова
- Системные вызовы управления процессорной привязкой
- Вызовы функций
- 2.4. АНАЛИЗ ТРЕБОВАНИЙ К СИСТЕМЕ (СИСТЕМНЫЙ АНАЛИЗ) И ФОРМУЛИРОВКА ЦЕЛЕЙ
- Другие системные вызовы для управления файлами
- Вызов pipe
- Вызов справки из приложений
- 21.4 Вызовы socket