B_ALWAYS_INLINE
static B_ALWAYS_INLINE uint64 VirtAdrPte(uint64 physAdr, uint32 level)
static B_ALWAYS_INLINE uint64 VirtAdrOfs(uint64 physAdr)
static B_ALWAYS_INLINE uint64 Name() { \
static B_ALWAYS_INLINE void Set##Name(uint64 x) { \
static B_ALWAYS_INLINE void SetBits##Name(uint64 x) { \
static B_ALWAYS_INLINE void ClearBits##Name(uint64 x) { \
static B_ALWAYS_INLINE uint64 GetAndSetBits##Name(uint64 x) { \
static B_ALWAYS_INLINE uint64 GetAndClearBits##Name(uint64 x) { \
static B_ALWAYS_INLINE void FlushTlbAll() {
static B_ALWAYS_INLINE void FlushTlbPage(uint64 x) {
static B_ALWAYS_INLINE void FlushTlbAllAsid(uint64 asid) {
static B_ALWAYS_INLINE void FlushTlbPageAsid(uint64 page, uint64 asid) {
static B_ALWAYS_INLINE void FenceI() {
static B_ALWAYS_INLINE uint64 Sp() {
static B_ALWAYS_INLINE void SetSp(uint64 x) {
static B_ALWAYS_INLINE uint64 Fp() {
static B_ALWAYS_INLINE void SetFp(uint64 x) {
static B_ALWAYS_INLINE uint64 Tp() {
static B_ALWAYS_INLINE void SetTp(uint64 x) {
static B_ALWAYS_INLINE uint64 Ra() {
static B_ALWAYS_INLINE void SetRa(uint64 x) {
static B_ALWAYS_INLINE void Ecall() {asm volatile("ecall");}
static B_ALWAYS_INLINE void Wfi() {asm volatile("wfi");}
static B_ALWAYS_INLINE void Mret() {asm volatile("mret");}
static B_ALWAYS_INLINE void Sret() {asm volatile("sret");}