MOS Source Code
|
Go to the source code of this file.
Classes | |
struct | phyframe_t |
struct | pmm_region_t |
Macros | |
#define | phyframe_pfn(frame) |
#define | pfn_phyframe(pfn) |
#define | pmm_reserve_address(paddr) |
#define | pmm_reserve_addresses(paddr, npages) |
#define | pmm_ref(thing, npages) |
#define | pmm_unref(thing, npages) |
#define | pmm_ref_one(thing) |
#define | pmm_unref_one(thing) |
Typedefs | |
typedef struct phyframe | phyframe_t |
Enumerations | |
enum | pmm_allocation_flags_t { PMM_ALLOC_NORMAL = 0 } |
Functions | |
MOS_STATIC_ASSERT (sizeof(phyframe_t)==32, "update phyframe_t struct size") | |
void | pmm_dump_lists (void) |
Dump the physical memory manager's state, (i.e. the free list and the allocated list). | |
void | pmm_init () |
phyframe_t * | pmm_allocate_frames (size_t n_frames, pmm_allocation_flags_t flags) |
Allocate n_frames of contiguous physical memory. | |
void | pmm_free_frames (phyframe_t *start_frame, size_t n_pages) |
pfn_t | pmm_reserve_frames (pfn_t pfn, size_t npages) |
Mark a range of physical memory as reserved. | |
pmm_region_t * | pmm_find_reserved_region (ptr_t needle) |
Find a region in the physical memory manager. | |
phyframe_t * | _pmm_ref_phyframes (phyframe_t *frame, size_t npages) |
void | _pmm_unref_phyframes (phyframe_t *frame, size_t npages) |
should_inline pfn_t | _pmm_ref_pfn_range (pfn_t pfn_start, size_t npages) |
should_inline void | _pmm_unref_pfn_range (pfn_t pfn_start, size_t npages) |
Variables | |
phyframe_t * | phyframes |
size_t | pmm_total_frames |
size_t | pmm_allocated_frames |
size_t | pmm_reserved_frames |