The asinfo section consists of an array of the following structure. Each entry describes the attributes of one section of address space on the machine.
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;
};
| Member | Description |
|---|---|
| start | Gives the first physical address of the range being described. |
| end | Gives the last physical address of the range being described. Note that this is the actual last byte, not one beyond the end. |
| owner | An offset from the start of the section giving the owner of this entry (its "parent" in the tree). It's set to AS_NULL_OFF if the entry doesn't have an owner (it's at the "root" of the address space tree). |
| name | An offset from the start of the strings section of the system page giving the string name of this entry. |
| attr | Contains several bits affecting the address range (see below). |
| priority | Indicates the speed of the memory in the address range. Lower numbers mean slower memory. The macro AS_PRIORITY_DEFAULT is defined to use a default value for this field (currently defined as 100). |