Go to the documentation of this file.
18 #include <FreeNOS/System.h>
35 #define PAGE2_NONE (0)
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_DEVICE_SHARED
Memory Mapped Device (Shared)
#define PAGEMASK
Mask to find the page.
MemoryContext::Result access(Address virt, Memory::Access *access) const
Get Access flags for a virtual address.
unsigned long Address
A memory address.
MemoryContext::Result unmap(Address virt)
Remove virtual address mapping.
ARMv6 cache management implementation.
unsigned int u32
Unsigned 32-bit number.
virtual Result cleanData(Address addr)
Clean one data page.
#define PAGE2_UNCACHED
Disable all caching.
Access
Memory access flags.
u32 m_pages[256]
Array of second level page table entries.
MemoryContext::Result translate(Address virt, Address *phys) const
Translate virtual address to physical address.
#define PAGE2_NOEXEC
No-execute bit flag.
#define TABENTRY(vaddr)
Entry inside the page table of a given virtual address.
u32 flags(Memory::Access access) const
Convert MemoryAccess to page table flags.
MemoryContext::Result map(Address virt, Address phys, Memory::Access)
Map a virtual address to a physical address.
#define PAGE2_CACHE_WRITEBACK
Outer and Inner Write-Back.