20 #ifndef KERNEL_PROCESSOR_ARMV7_PHYSICALMEMORYMANAGER_H 21 #define KERNEL_PROCESSOR_ARMV7_PHYSICALMEMORYMANAGER_H 23 #include "pedigree/kernel/BootstrapInfo.h" 24 #include "pedigree/kernel/Spinlock.h" 25 #include "pedigree/kernel/processor/PhysicalMemoryManager.h" 26 #include "pedigree/kernel/utilities/RangeList.h" 47 virtual void freePage(physical_uintptr_t page);
49 virtual void pin(physical_uintptr_t page){};
51 MemoryRegion &Region,
size_t cPages,
size_t pageConstraints,
52 size_t Flags, physical_uintptr_t start = -1);
89 physical_uintptr_t
allocate(
size_t constraints);
ArmV7PhysicalMemoryManager()
Bootstrap structure passed to the kernel entry point.
#define INITIALISATION_ONLY
The Stack of pages (below4GB, below64GB, no constraint).
PageStack() INITIALISATION_ONLY
virtual void pin(physical_uintptr_t page)
void free(physical_uintptr_t physicalAddress)
static ArmV7PhysicalMemoryManager m_Instance
virtual ~ArmV7PhysicalMemoryManager()
virtual physical_uintptr_t allocatePage()
physical_uintptr_t m_Stack[1]
virtual bool allocateRegion(MemoryRegion &Region, size_t cPages, size_t pageConstraints, size_t Flags, physical_uintptr_t start=-1)
uintptr_t physicalAddress(physical_uintptr_t address) PURE
Special memory entity in the kernel's virtual address space.
RangeList< physical_uintptr_t > m_NonRAMRanges
ArmV7PhysicalMemoryManager & operator=(const ArmV7PhysicalMemoryManager &)
virtual void freePage(physical_uintptr_t page)
Implementation of the PhysicalMemoryManager for common arm.
virtual void unmapRegion(MemoryRegion *pRegion)
RangeList< physical_uintptr_t > m_PhysicalRanges
virtual void freePageUnlocked(physical_uintptr_t page)
static ArmV7PhysicalMemoryManager & instance()
physical_uintptr_t allocate(size_t constraints)
PageStack & operator=(const PageStack &)
RangeList< uintptr_t > m_VirtualMemoryRegions