18#include <FreeNOS/System.h>
36#define PAGE2_PRESENT (1 << 1)
53#define PAGE2_UNCACHED (PAGE2_TEX)
56#define PAGE2_CACHE_WRITEBACK (PAGE2_TEX | PAGE2_CACHE | PAGE2_BUFFER)
59#define PAGE2_CACHE_WRITETHROUGH (PAGE2_CACHE)
62#define PAGE2_DEVICE_PRIV ((1 << 7))
65#define PAGE2_DEVICE_SHARED (PAGE2_BUFFER)
67#define PAGE2_TEX (1 << 6)
68#define PAGE2_CACHE (1 << 3)
69#define PAGE2_BUFFER (1 << 2)
70#define PAGE2_SHARED (1 << 10)
82#define PAGE2_NOEXEC (1 << 0)
85#define PAGE2_APX (1 << 9)
88#define PAGE2_AP_USER (1 << 5)
91#define PAGE2_AP_SYS (1 << 4)
104#define TABENTRY(vaddr) \
105 (((vaddr) >> PAGESHIFT) & 0xff)
#define PAGE2_NOEXEC
No-execute bit flag.
#define PAGE2_UNCACHED
Disable all caching.
#define TABENTRY(vaddr)
Entry inside the page table of a given virtual address.
#define PAGE2_DEVICE_SHARED
Memory Mapped Device (Shared)
#define PAGE2_CACHE_WRITEBACK
Outer and Inner Write-Back.
ARMv6 cache management implementation.
MemoryContext::Result map(Address virt, Address phys, Memory::Access)
Map a virtual address to a physical address.
u32 flags(Memory::Access access) const
Convert MemoryAccess to page table flags.
MemoryContext::Result access(Address virt, Memory::Access *access) const
Get Access flags for a virtual address.
MemoryContext::Result translate(Address virt, Address *phys) const
Translate virtual address to physical address.
MemoryContext::Result unmap(Address virt)
Remove virtual address mapping.
u32 m_pages[256]
Array of second level page table entries.
virtual Result cleanData(Address addr)
Clean one data page.
#define PAGEMASK
Mask to find the page.
unsigned int u32
Unsigned 32-bit number.
unsigned long Address
A memory address.
Access
Memory access flags.