|
FreeNOS
|
Go to the source code of this file.
Data Structures | |
| struct | CPUState |
| Contains all the CPU registers. More... | |
Namespaces | |
| namespace | ARM64Control |
| ARM64 System Control Coprocessor (CP15). | |
| namespace | SystemControlFlags |
| System Control flags. | |
Macros | |
| #define | PA_RANGE(r) ((r)&0xF) |
| #define | TGRAN4(r) (((r)>>28)&0xF) |
| #define | tlb_invalidate(virt) |
| #define | isb() { asm volatile ("isb" ::: "memory"); } |
| Instruction Synchronisation Barrier (ARMv7 and above) | |
| #define | dsb(type) { asm volatile ("dsb "#type ::: "memory"); } |
| Data Memory Barrier. | |
| #define | dmb() { asm volatile ("dmb sy" ::: "memory"); } |
| Data Memory Barrier. | |
| #define | enable_interrupt() { asm volatile ("msr daifclr, #2") ; } |
| #define | disable_interrupt() { asm volatile ("msr daifset, #2") ; } |
| #define | timestamp() 0 |
| Reads the CPU's timestamp counter. | |
| #define | cpu_reboot() |
| Reboot the system. | |
| #define | cpu_shutdown() |
| Shutdown the machine via ACPI. | |
| #define | idle() asm volatile ("wfi") |
| Puts the CPU in a lower power consuming state. | |
| #define | exception_code(esr) (((esr)>>26)&0x3f) |
Functions | |
| u64 | ARM64Control::read (Register reg) |
| Read a register from the CP15. | |
| void | ARM64Control::write (Register reg, u64 value) |
| Write register to the CP15. | |
| void | ARM64Control::set (AuxControlFlags flags) |
| Set auxillary flags in CP15. | |
| void | ARM64Control::set (DomainControlFlags flags) |
| Set domain control flags in CP15. | |
| struct CPUState | ALIGN (8) CPUState |
| Contains all the CPU registers. | |
Variables | |
| enum ARM64Control::Register | ARM64Control::ALIGN |
| u64 | x0 |
| u64 | x1 |
| u64 | x2 |
| u64 | x3 |
| u64 | x4 |
| u64 | x5 |
| u64 | x6 |
| u64 | x7 |
| u64 | x8 |
| u64 | x9 |
| u64 | x10 |
| u64 | x11 |
| u64 | x12 |
| u64 | x13 |
| u64 | x14 |
| u64 | x15 |
| u64 | x16 |
| u64 | x17 |
| u64 | x18 |
| u64 | fp |
| u64 | lr |
| u64 | sp |
| u64 | esr |
| u64 | far |
| u64 | cpsr |
| u64 | pc |
| #define cpu_reboot | ( | ) |
Reboot the system.
Definition at line 199 of file ARM64Control.h.
| #define cpu_shutdown | ( | ) |
Shutdown the machine via ACPI.
Definition at line 207 of file ARM64Control.h.
| #define disable_interrupt | ( | ) | { asm volatile ("msr daifset, #2") ; } |
Definition at line 187 of file ARM64Control.h.
| #define dmb | ( | ) | { asm volatile ("dmb sy" ::: "memory"); } |
Data Memory Barrier.
Ensures that all memory transactions are complete when the next instruction runs. If the next instruction is not a memory instruction, it is allowed to run out of order. The DMB provides slightly looser memory barrier than DSB on ARM.
Definition at line 184 of file ARM64Control.h.
| #define dsb | ( | type | ) | { asm volatile ("dsb "#type ::: "memory"); } |
Data Memory Barrier.
Ensures that all memory transactions are complete when the next instruction runs. If the next instruction is not a memory instruction, it is allowed to run out of order. The DMB provides slightly looser memory barrier than DSB on ARM.
Definition at line 173 of file ARM64Control.h.
| #define enable_interrupt | ( | ) | { asm volatile ("msr daifclr, #2") ; } |
Definition at line 186 of file ARM64Control.h.
Definition at line 245 of file ARM64Control.h.
| #define idle | ( | ) | asm volatile ("wfi") |
Puts the CPU in a lower power consuming state.
Definition at line 212 of file ARM64Control.h.
| #define isb | ( | ) | { asm volatile ("isb" ::: "memory"); } |
Instruction Synchronisation Barrier (ARMv7 and above)
Definition at line 163 of file ARM64Control.h.
| #define PA_RANGE | ( | r | ) | ((r)&0xF) |
Definition at line 149 of file ARM64Control.h.
| #define TGRAN4 | ( | r | ) | (((r)>>28)&0xF) |
Definition at line 150 of file ARM64Control.h.
| #define timestamp | ( | ) | 0 |
Reads the CPU's timestamp counter.
Definition at line 194 of file ARM64Control.h.
| #define tlb_invalidate | ( | virt | ) |
Definition at line 152 of file ARM64Control.h.
| struct CPUState ALIGN | ( | 8 | ) |
Contains all the CPU registers.
| u64 cpsr |
Definition at line 4 of file ARM64Control.h.
| u64 esr |
Definition at line 4 of file ARM64Control.h.
| u64 far |
Definition at line 4 of file ARM64Control.h.
| u64 fp |
Definition at line 3 of file ARM64Control.h.
Referenced by BootImageCreate::exec(), Shell::exec(), main(), MpiHost::parseHostsFile(), BufferedFile::read(), BootImageCreate::readBootSymbols(), BufferedFile::write(), and LinnCreate::writeImage().
| u64 lr |
Definition at line 3 of file ARM64Control.h.
| u64 pc |
Definition at line 4 of file ARM64Control.h.
| u64 sp |
Definition at line 3 of file ARM64Control.h.
| u64 x0 |
Definition at line 0 of file ARM64Control.h.
| u64 x1 |
Definition at line 0 of file ARM64Control.h.
| u64 x10 |
Definition at line 1 of file ARM64Control.h.
| u64 x11 |
Definition at line 1 of file ARM64Control.h.
| u64 x12 |
Definition at line 2 of file ARM64Control.h.
| u64 x13 |
Definition at line 2 of file ARM64Control.h.
| u64 x14 |
Definition at line 2 of file ARM64Control.h.
| u64 x15 |
Definition at line 2 of file ARM64Control.h.
| u64 x16 |
Definition at line 2 of file ARM64Control.h.
| u64 x17 |
Definition at line 3 of file ARM64Control.h.
| u64 x18 |
Definition at line 3 of file ARM64Control.h.
| u64 x2 |
Definition at line 0 of file ARM64Control.h.
| u64 x3 |
Definition at line 0 of file ARM64Control.h.
| u64 x4 |
Definition at line 0 of file ARM64Control.h.
| u64 x5 |
Definition at line 0 of file ARM64Control.h.
| u64 x6 |
Definition at line 1 of file ARM64Control.h.
| u64 x7 |
Definition at line 1 of file ARM64Control.h.
| u64 x8 |
Definition at line 1 of file ARM64Control.h.
| u64 x9 |
Definition at line 1 of file ARM64Control.h.