Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Программные интерфейсы общего назначения > Системные библиотеки > Системные библиотеки > Системная библиотека > A > struct asinfo_entry



struct asinfo_entry

Фрагмент системной страницы, характеризующий атрибуты областей адресного пространства системы

Прототип:

#include <sys/syspage.h>
struct asinfo_entry {
uint64_t start;
uint64_t end;
uint16_t owner;
uint16_t name;
uint16_t attr;
uint16_t priority;
int (*alloc_checker)( struct syspage_entry *__sp,
uint64_t *__base,
uint64_t *__len,
size_t __size,
size_t __align );
uint32_t spare;
};

Описание:

Структура содержит информацию системной страницы, характеризующую атрибуты областей адресного пространства системы и включает следующие поля:

start
Начальный физический адрес описываемой области.
end
Конечный физический адрес описываемой области (последний байт, а не следующий за ним).
owner
Смещение относительно начала раздела, которое определяет родительскую область («владельца») описываемой области. Если у области отсутствует владелец (она является корнем адресного пространства), в этом поле указывается значение AS_NULL_OFF.
name
Смещение относительно начала раздела strings системной страницы, которое определяет строку с именем описываемой области.
attr
Содержит несколько бит, которые влияют на диапазон адресов. В поле можно устанавливать следующие биты:
AS_ATTR_READABLE
Диапазон адресов доступен для чтения.
AS_ATTR_WRITABLE
Диапазон адресов доступен для записи.
AS_ATTR_CACHABLE
Диапазон адресов кешируется (следует сбрасывать этот бит, если память относится к устройству).
AS_ATTR_VISIBLE
Устаревшее поле.
AS_ATTR_KIDS
Указывает, что эта область является родительской по отношению к другим областям. Библиотека устанавливает этот бит автоматически; не нужно устанавливать его при создании раздела.
AS_ATTR_CONTINUED
Указывает, что один «логический» диапазон адресов состоит из нескольких описываемых областей. Этот бит устанавливается для всех областей, кроме последней. Библиотека libstartup задает и использует его автоматически; не нужно устанавливать его при создании раздела.
priority
Задает скорость памяти в диапазоне адресов. Чем меньше значение этого поля, тем медленнее память. Макрос AS_PRIORITY_DEFAULT задает значение поля по умолчанию (на текущий момент 100).
alloc_checker
Поле в настоящее время не используется, однако в будущем позволит более гибко управлять распределением памяти системы (например, размещать память ISA, которая обслуживается контроллером прямого доступа к памяти, в границах 64 Кбайт).

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

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

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

struct syspage_entry

Руководство по разработке модуля startup




Предыдущий раздел: Описание API системной библиотеки