FreeNOS
Macros
ARMSecondTable.cpp File Reference
#include <FreeNOS/System.h>
#include "ARMCore.h"
#include "ARMConstant.h"
#include "ARMSecondTable.h"

Go to the source code of this file.

Macros

#define PAGE2_NONE   (0)
 
#define PAGE2_PRESENT   (1 << 1)
 
#define TABENTRY(vaddr)   (((vaddr) >> PAGESHIFT) & 0xff)
 Entry inside the page table of a given virtual address. More...
 
Second Level Memory Types

Inner cache: local L1 cache for one core.

Outer cache: shared L2 cache for a subset of multiple cores. Write-Back cache: sync cache data later, let host continue immediately (faster). Write-Through cache: sync cache and RAM simulatously (slower). Allocate-On-Write: Each write claims a cache entry. No-Allocate-On-Write: Write do no claim a cache entry, only write the RAM directly.

See also
https://en.wikipedia.org/wiki/Cache_(computing)
#define PAGE2_UNCACHED   (PAGE2_TEX)
 Disable all caching. More...
 
#define PAGE2_CACHE_WRITEBACK   (PAGE2_TEX | PAGE2_CACHE | PAGE2_BUFFER)
 Outer and Inner Write-Back. More...
 
#define PAGE2_CACHE_WRITETHROUGH   (PAGE2_CACHE)
 Outer and Inner Write-Through. More...
 
#define PAGE2_DEVICE_PRIV   ((1 << 7))
 Memory Mapped Device (Private) More...
 
#define PAGE2_DEVICE_SHARED   (PAGE2_BUFFER)
 Memory Mapped Device (Shared) More...
 
#define PAGE2_TEX   (1 << 6)
 
#define PAGE2_CACHE   (1 << 3)
 
#define PAGE2_BUFFER   (1 << 2)
 
#define PAGE2_SHARED   (1 << 10)
 
Access permission flags
#define PAGE2_NOEXEC   (1 << 0)
 No-execute bit flag. More...
 
#define PAGE2_APX   (1 << 9)
 
#define PAGE2_AP_USER   (1 << 5)
 
#define PAGE2_AP_SYS   (1 << 4)
 

Macro Definition Documentation

◆ PAGE2_AP_SYS

#define PAGE2_AP_SYS   (1 << 4)

Definition at line 91 of file ARMSecondTable.cpp.

◆ PAGE2_AP_USER

#define PAGE2_AP_USER   (1 << 5)

Definition at line 88 of file ARMSecondTable.cpp.

◆ PAGE2_APX

#define PAGE2_APX   (1 << 9)

Definition at line 85 of file ARMSecondTable.cpp.

◆ PAGE2_BUFFER

#define PAGE2_BUFFER   (1 << 2)

Definition at line 69 of file ARMSecondTable.cpp.

◆ PAGE2_CACHE

#define PAGE2_CACHE   (1 << 3)

Definition at line 68 of file ARMSecondTable.cpp.

◆ PAGE2_CACHE_WRITEBACK

#define PAGE2_CACHE_WRITEBACK   (PAGE2_TEX | PAGE2_CACHE | PAGE2_BUFFER)

Outer and Inner Write-Back.

Allocate on write.

Definition at line 56 of file ARMSecondTable.cpp.

◆ PAGE2_CACHE_WRITETHROUGH

#define PAGE2_CACHE_WRITETHROUGH   (PAGE2_CACHE)

Outer and Inner Write-Through.

No allocate on write.

Definition at line 59 of file ARMSecondTable.cpp.

◆ PAGE2_DEVICE_PRIV

#define PAGE2_DEVICE_PRIV   ((1 << 7))

Memory Mapped Device (Private)

Definition at line 62 of file ARMSecondTable.cpp.

◆ PAGE2_DEVICE_SHARED

#define PAGE2_DEVICE_SHARED   (PAGE2_BUFFER)

Memory Mapped Device (Shared)

Definition at line 65 of file ARMSecondTable.cpp.

◆ PAGE2_NOEXEC

#define PAGE2_NOEXEC   (1 << 0)

No-execute bit flag.

Definition at line 82 of file ARMSecondTable.cpp.

◆ PAGE2_NONE

#define PAGE2_NONE   (0)

Definition at line 35 of file ARMSecondTable.cpp.

◆ PAGE2_PRESENT

#define PAGE2_PRESENT   (1 << 1)

Definition at line 36 of file ARMSecondTable.cpp.

◆ PAGE2_SHARED

#define PAGE2_SHARED   (1 << 10)

Definition at line 70 of file ARMSecondTable.cpp.

◆ PAGE2_TEX

#define PAGE2_TEX   (1 << 6)

Definition at line 67 of file ARMSecondTable.cpp.

◆ PAGE2_UNCACHED

#define PAGE2_UNCACHED   (PAGE2_TEX)

Disable all caching.

Definition at line 53 of file ARMSecondTable.cpp.

◆ TABENTRY

#define TABENTRY (   vaddr)    (((vaddr) >> PAGESHIFT) & 0xff)

Entry inside the page table of a given virtual address.

Parameters
vaddrVirtual Address.
Returns
Index of the corresponding page table entry.

Definition at line 104 of file ARMSecondTable.cpp.