Предоставляют доступ к области памяти
#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 );
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
Построение встраиваемых систем
Предыдущий раздел: перейти