20 #ifndef KERNEL_PROCESSOR_ARM926E_VIRTUALADDRESSSPACE_H 21 #define KERNEL_PROCESSOR_ARM926E_VIRTUALADDRESSSPACE_H 23 #include "pedigree/kernel/processor/VirtualAddressSpace.h" 24 #include "pedigree/kernel/processor/types.h" 44 virtual bool isMapped(
void *virtualAddress);
51 virtual void setFlags(
void *virtualAddress,
size_t newFlags);
52 virtual void unmap(
void *virtualAddress);
54 virtual void freeStack(
void *pStack);
69 physical_uintptr_t
physicalAddress,
void *virtualAddress,
size_t flags);
94 uint32_t entries[4096];
106 uint32_t entries[256];
112 uint32_t entries[1024];
124 uint32_t size_validity_1 : 1;
125 uint32_t size_validity_2 : 1;
136 uint32_t size_validity_1 : 1;
137 uint32_t size_validity_2 : 1;
138 uint32_t always0_1 : 1;
139 uint32_t always0_2 : 2;
140 uint32_t always1 : 1;
141 uint32_t domainctl : 3;
142 uint32_t always0_3 : 1;
143 uint32_t coarse_table_addr : 21;
153 uint32_t size_validity_1 : 1;
154 uint32_t size_validity_2 : 1;
156 uint32_t always1 : 1;
157 uint32_t domainctl : 3;
158 uint32_t always0 : 1;
160 uint32_t always0_2 : 7;
161 uint32_t section_address : 11;
170 uint32_t size_validity_1 : 1;
171 uint32_t size_validity_2 : 1;
172 uint32_t always0_1 : 1;
173 uint32_t always0_2 : 2;
174 uint32_t always1 : 1;
175 uint32_t domainctl : 3;
176 uint32_t always0_3 : 3;
177 uint32_t coarse_table_addr : 19;
187 void *Heap, physical_uintptr_t PhysicalPageDirectory,
188 void *VirtualPageDirectory,
void *VirtualPageTables);
212 uint32_t
toFlags(
size_t flags);
virtual void revertToKernelAddressSpace()
Arm926EVirtualAddressSpace & operator=(const Arm926EVirtualAddressSpace &)
static Arm926EVirtualAddressSpace m_KernelSpace
uint32_t toFlags(size_t flags)
virtual VirtualAddressSpace * clone()
virtual bool isAddressValid(void *virtualAddress)
virtual void * allocateStack()
void * m_VirtualPageTables
static EXPORTED_PUBLIC VirtualAddressSpace & getKernelAddressSpace()
bool getPageTableEntry(void *virtualAddress, uint32_t *&pageTableEntry)
uintptr_t physicalAddress(physical_uintptr_t address) PURE
virtual bool isMapped(void *virtualAddress)
The exception was caused by a hardware task switch.
virtual void setFlags(void *virtualAddress, size_t newFlags)
Arm926EVirtualAddressSpace()
size_t fromFlags(uint32_t Flags)
physical_uintptr_t m_PhysicalPageDirectory
virtual ~Arm926EVirtualAddressSpace()
void * m_VirtualPageDirectory
bool mapPageStructures(physical_uintptr_t physicalAddress, void *virtualAddress, size_t flags)
virtual void getMapping(void *virtualAddress, physical_uintptr_t &physicalAddress, size_t &flags)
virtual void unmap(void *virtualAddress)
virtual bool map(physical_uintptr_t physicalAddress, void *virtualAddress, size_t flags)