Updated: April 19, 2023 |
Array of structures describing different sections of the system memory map (e.g., RAM, SRAM, flash, I/O ranges)
Each array entry describes the attributes of one address space section on the machine. The memory map has a tree format; that is, an address range can have a parent. The information in the asinfo structures can be hard-coded from the system memory map, or read in from the memory controller.
When procnto is managing virtual memory for process address spaces, it uses the information in asinfo to know from where in RAM it can allocate memory.
The asinfo section contains trees describing address spaces (where RAM, ROM, flash, etc. are located).
/memory/memclass/...or:
/io/memclass/...or:
/memory/io/memclass/...
The memory or io indicates if this entry describes something in the memory or the I/O address space. The third form (/memory/io/memclass/...) is used on machines without separate in/out instructions and where everything is memory-mapped.
The memclass is something like ram, rom, flash, etc. Below memclass are further classifications, allowing the process manager to provide typed memory support.
A brief examination of the following sample output from pidin syspage=asinfo (see pidin) may help you understand better the information stored in the in the syspage asinfo array of structures:
Header size=0x00000108, Total Size=0x00000eb8, #Cpu=16, Type=256 Section:asinfo offset:0x00000818 size:0x00000420 elsize:0x00000020 0000) 0000000000000000-000000000000ffff o:ffff a:0000 p:100 c:0 n:/io 0020) 0000000000000000-000fffffffffffff o:ffff a:0010 p:100 c:0 n:/memory 0040) 0000000000000000-00000000ffffffff o:0020 a:0010 p:100 c:0 n:/memory/below4G 0060) 0000000000000000-0000000000ffffff o:0020 a:0010 p:100 c:0 n:/memory/isa 0080) 0000000006000000-00000000ffefffff o:0020 a:0013 p:100 c:0 n:/memory/device 00a0) 00000000fff00000-00000000ffffffff o:0020 a:0005 p:100 c:0 n:/memory/rom 00c0) 0000000000000000-000000000009ffff o:0060 a:0017 p:100 c:0 n:/memory/isa/ram 00e0) 0000000000100000-0000000000ffffff o:0060 a:0037 p:100 c:0 n:/memory/isa/ram 0100) 0000000001000000-0000000005ffffff o:0040 a:0037 p:100 c:0 n:/memory/below4G/ram 0120) 0000000006000000-00000000772cafff o:0080 a:0017 p:100 c:0 n:/memory/device/ram 0140) 00000000772db000-000000007d5e4fff o:0080 a:0017 p:100 c:0 n:/memory/device/ram 0160) 000000007e0c2000-000000007f7fffff o:0080 a:0017 p:100 c:0 n:/memory/device/ram 0180) 0000000100000000-000000027fffffff o:0020 a:0017 p:100 c:0 n:/memory/ram 01a0) 000000007e0f8000-000000007e0f8023 o:0020 a:0007 p:100 c:0 n:/memory/acpi_rsdp 01c0) 00000000fee00000-00000000fee003ef o:0020 a:0003 p:100 c:0 n:/memory/lapic 01e0) 000000000142b308-0000000002c1caaf o:0020 a:0005 p:100 c:0 n:/memory/imagefs 0200) 0000000001400200-000000000142b307 o:0020 a:0007 p:100 c:0 n:/memory/startup 0220) 000000000142b308-0000000002c1caaf o:0020 a:0007 p:100 c:0 n:/memory/bootram 0240) 0000000000000000-00000000ffffffff o:ffff a:0010 p:100 c:0 n:/virtual 0260) ffff800000002000-ffff8000000f3590 o:0240 a:0000 p:100 c:0 n:/virtual/vboot 0280) 0000000000001000-000000000003efff o:00c0 a:0007 p:100 c:0 n:/memory/isa/ram/sysram 02a0) 0000000000040000-000000000009ffff o:00c0 a:0007 p:100 c:0 n:/memory/isa/ram/sysram 02c0) 0000000000100000-0000000000107fff o:00e0 a:0007 p:100 c:0 n:/memory/isa/ram/sysram 02e0) 000000000010e000-0000000000112fff o:00e0 a:0007 p:100 c:0 n:/memory/isa/ram/sysram 0300) 0000000000119000-0000000000243fff o:00e0 a:0007 p:100 c:0 n:/memory/isa/ram/sysram 0320) 0000000000245000-0000000000ffffff o:00e0 a:0027 p:100 c:0 n:/memory/isa/ram/sysram 0340) 0000000001000000-000000000142afff o:0100 a:0007 p:100 c:0 n:/memory/below4G/ram/sysram 0360) 0000000002c1d000-0000000005ffffff o:0100 a:0027 p:100 c:0 n:/memory/below4G/ram/sysram 0380) 0000000006000000-00000000772cafff o:0120 a:0007 p:100 c:0 n:/memory/device/ram/sysram 03a0) 00000000772db000-000000007d5e4fff o:0140 a:0007 p:100 c:0 n:/memory/device/ram/sysram 03c0) 000000007e0c2000-000000007e0f7fff o:0160 a:0007 p:100 c:0 n:/memory/device/ram/sysram 03e0) 000000007f240000-000000007f7fffff o:0160 a:0007 p:100 c:0 n:/memory/device/ram/sysram 0400) 0000000100000000-0000000279fc3fff o:0180 a:0007 p:100 c:0 n:/memory/ram/sysram
The following is information about the system page entry:
Header size=0x00000108, Total Size=0x00000eb8, #Cpu=16, Type=256 Section:asinfo offset:0x00000818 size:0x00000420 elsize:0x00000020
where the first line describes the system page (see size, total_size, num_cpu, and type under System Page); and the second line describes the asinfo structure array:
The above information is followed by a list of the asinfo elements, each one describing a section of memory on the system. Notice that the number in the first column increments by the size of the element (0x20).
If we parse this line and refer to the description of asinfo above:
0360) 0000000002c1d000-0000000005ffffff o:0100 a:0027 p:100 c:0 n:/memory/below4G/ram/sysram
we learn the following:
For more information about: