Фрагменты памяти, размеченные модулями IPL и startup
#include <sys/startup.h>struct startup_info_mem {struct startup_info_hdr hdr;unsigned int addr;unsigned int size;};/** Структура используется для памяти, выше 4Гб. Структура также* характеризуется типом STARTUP_INFO_MEM, реальная структура может* быть идентифицирована по полю size.*/struct startup_info_mem_extended {struct startup_info_mem mem;unsigned int addr_hi;unsigned int size_hi;};
libstartup
Эти структуры содержат пары адрес / размер фрагментов памяти, добавляемых в пул свободной памяти модуля procnto-*.
Поля структур:
struct startup_info_mem_extended
struct startup_info_mem
следующим образом: ((paddr64_t)addr_hi << 32) | mem.addr;((paddr64_t)size_hi << 32) | mem.size;
В системах, где свободная память фрагментирована и находится в различных частях адресного пространства, могут присутствовать несколько структур startup_info_mem
и startup_info_mem_extended
.
![]() | Обе структуры идентифицируются полем type STARTUP_INFO_MEM структуры struct startup_info_hdr; для их различения следует использовать поле size заголовка. |
ЗОСРВ «Нейтрино», startup
struct startup_info_hdr, struct startup_info_skip, struct startup_info_disk, struct startup_info_time, struct startup_info_box
Построение встраиваемых систем
Предыдущий раздел: перейти