Фрагмент системной страницы, характеризующий сведения о процессорной архитектуре ARMv6/7
#include <arm/syspage.h>
struct arm_syspage_entry {
syspage_entry_info boxinfo;
uint32_t L1_vaddr;
union {
uint32_t L2_vaddr;
uint32_t L1_paddr;
};
uint32_t startup_base;
unsigned startup_size;
syspage_entry_info cpu;
};
Структура содержит информацию системной страницы, характеризующую сведения о процессорной архитектуре ARMv6/7 и включает следующие поля:
- boxinfo
- Поле устарело.
- L1_vaddr
- Виртуальный адрес таблицы страниц блока управления памятью 1-го уровня, которая используется для отображения ядра.
- L2_vaddr
- L1_paddr
- Физический адрес таблицы страниц блока управления памятью 1-го уровня, которая используется для отображения ядра.
- startup_base
- Виртуальный адрес отображения виртуальной памяти в физическую по принципу «один к одному», используемого кодом запуска, который включает блок управления памятью. Это отображение виртуальной памяти удаляется после инициализации ядра.
- startup_size
- Размер отображения, адрес которого указан в поле startup_base.
- cpu
- Структура
struct arm_cpu_entry
, которая содержит операции и данные, специфичные для ядра ARM. В настоящее время она содержит следующие поля: - page_flush
- Процедура, которая выполняет процессорно-зависимый сброс кеш-памяти/TLB, когда администратор памяти аннулирует отображение или изменяет ограничения прав доступа к виртуальной памяти страницы. Администратор виртуальной памяти вызывает эту процедуру для каждой страницы изменяемого диапазона.
- page_flush_deferred
- Эта процедура выполняет операции, которые могут быть отложены при вызове page_flush. Например, на процессоре SA-1110 сброс Icache откладывается до тех пор, пока не внесены изменения во все используемые страницы.
ЗОСРВ «Нейтрино»
struct syspage_entry
Руководство по разработке модуля startup
Предыдущий раздел: Описание API системной библиотеки