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). |