Фрагмент системной страницы, необходимый операционной системе на этапе загрузки
#include <sys/syspage.h>
struct system_private_entry {
struct cpupage_entry user_cpupageptr;
struct syspage_entry user_syspageptr;
struct cpupage_entry kern_cpupageptr;
struct syspage_entry kern_syspageptr;
struct kdebug_info kdebug_info;
struct kdebug_callback kdebug_call;
struct {
uint32_t base;
uint32_t entry;
} boot_pgm[4];
uint32_t boot_idx;
uint32_t cpupage_spacing;
uint32_t private_flags;
uint32_t pagesize;
uint32_t ramsize;
struct tracebuf tracebuf;
uint32_t kdump_info;
uint32_t spare[3];
union kernel_entry {
struct x86_kernel_entry x86;
struct ppc_kernel_entry ppc;
struct mips_kernel_entry mips;
struct arm_kernel_entry arm;
struct e2k_kernel_entry e2k;
struct sparc_kernel_entry sparc;
struct aarch64_kernel_entry aarch64;
} kercall;
};
Структура содержит информацию системной страницы, необходимую операционной системе на этапе загрузки и включает следующие поля:
- user_cpupageptr
- Адрес в пользовательском пространстве (только чтение) для указателя cpupage
- user_syspageptr
- Адрес в пользовательском пространстве (только чтение) для указателя syspage
- kern_cpupageptr
- Адрес в пространстве ядра (чтение/запись) для указателя cpupage
- kern_syspageptr
- Адрес в пространстве ядра (чтение/запись) для указателя syspage
- kdebug_info
- kdebug_call
- Отладочные интерфейсы ядра.
- boot_pgm
- boot_idx
- Таблица памяти, доступной на этапе загрузки.
- cpupage_spacing
- Смещение между указателями cpupage для разных процессоров.
- private_flags
- Приватные флаги системной страницы:
- SYSTEM_PRIVATE_FLAG_ABNORMAL_REBOOT
- Флаг, используемый модулем startup-* при указании стандартной опции -A.
- SYSTEM_PRIVATE_FLAG_EALREADY_NEW
- Флаг, используемый модулем procnto-* при указании стандартной опции -en.
- SYSTEM_PRIVATE_FLAG_TRACE_ACTIVE
- Флаг, характеризующий активность системного трассировщика.
- pagesize
- Размер страницы памяти, которую выделяет ОС (как правило, 16 в физическом режиме и 4096 — в виртуальном).
- ramsize
- Устаревшее поле, необходимо ориентироваться на asinfo.
- tracebuf
- Дескриптор буфера трассировки ядра.
- kdump_info
- Устаревшее поле.
- kercall
- Дескриптор системного вызова.
ЗОСРВ «Нейтрино»
struct syspage_entry
Руководство по разработке модуля startup
Предыдущий раздел: Описание API системной библиотеки