MOS Source Code
Loading...
Searching...
No Matches
pmm.h File Reference
#include <mos/lib/structures/list.h>
#include <mos/mos_global.h>
#include <mos/types.h>
+ Include dependency graph for pmm.h:
+ This graph shows which files directly or indirectly include this file:

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_tpmm_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_tpmm_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_tphyframes
 
size_t pmm_total_frames
 
size_t pmm_allocated_frames
 
size_t pmm_reserved_frames