munmap_device_memory()

Размапировать область памяти устройства

Прототип:

#include <sys/mman.h>
int munmap_device_memory( void *addr,
size_t len );

Аргументы:

addr
Начало диапазона адресов, который необходимо размапировать.
len
Размер диапазона адресов в байтах.

Библиотека:

libc

Описание:

Функция munmap_device_memory() в целом подобна функции munmap(). Она отменяет любые мапирования для страниц в диапазоне адресов начиная с addr, длиной len байт, округлённых до следующего значения, кратного размеру страницы. Последующие обращения к этим страницам вызывают установку сигнала SIGSEGV для процесса.

Если область в данном диапазоне адресов не замапирована, вызов функции munmap() не внесёт никаких изменений.

Эта функция дополняет функцию mmap_device_memory().

Возвращаемое значение:

-1
Возникла ошибка. Код ошибки записан в errno.
≠-1
Успешное завершение.

Коды ошибок:

EINVAL
Адрес в пределах заданного диапазона выходит за границы разрешенного диапазона адресного пространства процесса.
ENOSYS
Функция munmap() не поддерживается в текущей реализации.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

mmap_device_memory(), munmap(), munmap_device_io()




Предыдущий раздел: Описание API системной библиотеки