Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Основные принципы системной разработки > Запуск системы, быстрая активация устройств > Построение встраиваемых систем > API библиотек libipl и libstartup > callout_memory_map(), callout_memory_map32(), callout_memory_map64(), callout_memory_map_indirect()



callout_memory_map(), callout_memory_map32(), callout_memory_map64(), callout_memory_map_indirect()

Предоставляют доступ к области памяти

Прототип:

#include <sys/startup.h>
void * callout_memory_map( unsigned size,
paddr_t phys,
unsigned prot_flags );
void * callout_memory_map32( unsigned size,
paddr32_t phys,
unsigned prot_flags );
void * callout_memory_map64( unsigned size,
paddr64_t phys,
unsigned prot_flags );
void * callout_memory_map_indirect( unsigned size,
paddr_t *phys,
unsigned prot_flags );

Аргументы:

size
Размер мапируемой памяти.
phys
Физический адрес мапируемой памяти.
prot_flags
См. параметр prot на странице mmap_device_memory().

Библиотека:

libstartup

Описание:

Эта функция идентична функции mmap_device_memory() системной библиотеки и предоставляет доступ к устройству, которое отображено в память. Возвращаемое значение доступно любым callout-ам ядра (они сохраняются после завершения модуля startup-* и выполняются во время работы операционной системы).

Различие между callout_memory_map() и callout_memory_map_indirect() заключается во втором аргументе: callout_memory_map() принимает значение типа paddr_t, а callout_memory_map_indirect() — указатель на paddr_t. Косвенная адресация облегчает использование 32- и 64-разрядных адресов.

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

адрес
Возвращает адрес смапированной области памяти.

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

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

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

callout_io_map(), callout_io_map32(), callout_io_map64(), callout_io_map_indirect(), mmap_device_memory(), struct syspage_entry

Построение встраиваемых систем




Предыдущий раздел: перейти