kern: add KPageTableBase members

This commit is contained in:
Michael Scire 2020-02-09 18:10:13 -08:00
parent 50b8189e7f
commit fdd7b1db15
7 changed files with 101 additions and 13 deletions

View file

@ -277,6 +277,16 @@ namespace ams::kern::arm64::cpu {
}
};
MESOSPHERE_CPU_SYSREG_ACCESSOR_CLASS(SystemControl) {
public:
MESOSPHERE_CPU_SYSREG_ACCESSOR_CLASS_FUNCTIONS(SystemControl, sctlr_el1)
constexpr ALWAYS_INLINE decltype(auto) SetWxn(bool en) {
this->SetBit(19, en);
return *this;
}
};
/* Accessors for timer registers. */
MESOSPHERE_CPU_SYSREG_ACCESSOR_CLASS(CounterTimerKernelControl) {
public:

View file

@ -34,7 +34,7 @@ namespace ams::kern::arm64 {
static NOINLINE void Initialize(s32 core_id);
Result InitializeForKernel(void *table, KVirtualAddress start, KVirtualAddress end);
NOINLINE Result InitializeForKernel(void *table, KVirtualAddress start, KVirtualAddress end);
Result Finalize();
};

View file

@ -34,7 +34,7 @@ namespace ams::kern::arm64 {
public:
constexpr KPageTableImpl() : table(), is_kernel(), num_entries() { /* ... */ }
void InitializeForKernel(void *tb, KVirtualAddress start, KVirtualAddress end);
NOINLINE void InitializeForKernel(void *tb, KVirtualAddress start, KVirtualAddress end);
u64 *Finalize();
};

View file

@ -27,7 +27,7 @@ namespace ams::kern::arm64 {
public:
constexpr KSupervisorPageTable() : page_table(), ttbr0() { /* ... */ }
void Initialize(s32 core_id);
NOINLINE void Initialize(s32 core_id);
void Finalize(s32 core_id);
};