|
IBNOS
|
#include <memory/physmem.h>#include <memory/paging.h>#include <console/console.h>#include <util/util.h>
Go to the source code of this file.
Classes | |
| struct | physMemExtraInfo |
Macros | |
| #define | PHYSMEMEXTRA_SIZE 0x1000 /* must match PAGE_SIZE for now */ |
| #define | PHYSMEMEXTRA_MASK 0x3FF |
| #define | PHYSMEMEXTRA_BITS 10 |
| #define | PHYSMEMEXTRA_COUNT 0x400 |
| #define | LINKER_KERNEL_BEGIN ((uint32_t)&__kernelBegin) |
| #define | LINKER_KERNEL_SIZE ((uint32_t)&__kernelEnd - (uint32_t)&__kernelBegin) |
Functions | |
| struct physMemExtraInfo | __attribute__ ((packed)) |
| uint32_t | __getCR0 () |
| asm (".text\align 4\ "__getCR0:\" " movl %cr0, %eax\" " ret\") | |
| void | physMemInit (multiboot_info_t *bootInfo) |
| Initializes the physical memory management. More... | |
| uint32_t | physMemRAMSize () |
| Query RAM size. More... | |
| uint32_t | physMemUsableMemory () |
| Query usable RAM size. More... | |
| void | physMemClearMemoryBits (bool reserved) |
| Marks the full memory range as reserved or free. More... | |
| void | physMemProtectBootEntry (uint32_t addr, uint32_t length) |
| Marks all pages within a memory range as reserved and adds them to the boot map. More... | |
| void | physMemReserveMemory (uint32_t addr, uint32_t length) |
| Marks all pages within a memory range as reserved. More... | |
| void | physMemFreeMemory (uint32_t addr, uint32_t length) |
| Marks all pages fully contained within the memory range as free. More... | |
| void | physMemSetMemoryBits (uint32_t startIndex, uint32_t length, bool reserved) |
| Marks a specific range of pages as reserved or free. More... | |
| uint32_t | physMemAllocPage (bool lowmem) |
| Allocates a page of physical memory. More... | |
| uint32_t | physMemReleasePage (uint32_t index) |
| Releases a page of physical memory. More... | |
| uint32_t | physMemAddRefPage (uint32_t index) |
| Increment the refcounter of a physical page. More... | |
| uint32_t | physMemMarkUnpageable (uint32_t index) |
| Marks a physical page as unpageable. More... | |
| bool | physMemIsLastRef (uint32_t index) |
| Checks if a physical page is only referenced exactly one time. More... | |
| void | physMemPageOut (UNUSED uint32_t length) |
| Pages out some memory to the hard drive. More... | |
| uint32_t | physMemPageIn (UNUSED uint32_t hdd_index) |
| Pages in some data from the hard drive. More... | |
| void | physMemDumpMemInfo () |
| Dumps information about the physical memory usage. More... | |
Variables | |
| uint32_t | ramSize = 0 |
| uint32_t | ramUsableSize = 0 |
| union { | |
| struct { | |
| uint32_t present: 1 | |
| uint32_t ref: 7 | |
| uint32_t unpageable: 1 | |
| uint32_t avail: 23 | |
| } | |
| uint32_t value | |
| }; | |
| uint32_t | __kernelBegin |
| uint32_t | __kernelEnd |
| union { ... } |
1.8.13