X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6be108db01439d3463342689446e457a315d6705..dd82b939699fb0b298ccbfd66b84ef0d7a78a53b:/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h diff --git a/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h b/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h index b49d102..546a241 100644 --- a/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h +++ b/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h @@ -11,12 +11,18 @@ #define CurrentEL __sr_encode(3, 0, 4, 2, 2) #define ELR_E1 __sr_encode(3, 0, 4, 0, 1) #define SPSel __sr_encode(3, 0, 4, 2, 0) + #define SPSR_EL1 __sr_encode(3, 0, 4, 0, 0) +#define SPSR_EL2 __sr_encode(3, 4, 4, 0, 0) +#define SPSR_EL3 __sr_encode(3, 6, 4, 0, 0) + #define DAIF_EL1 __sr_encode(3, 3, 4, 2, 1) #define ALLINT_EL1 __sr_encode(3, 0, 4, 3, 0) #define SP_EL0 __sr_encode(3, 0, 4, 1, 0) #define SP_EL1 __sr_encode(3, 4, 4, 1, 0) +#define ID_AA64PFR0_EL1 __sr_encode(3, 0, 0, 4, 0) + #ifndef __ASM__ #define read_sysreg(reg) \ ({ unsigned long _x; \ @@ -41,5 +47,14 @@ #define SCTRL_A (1UL << 1) #define SCTRL_M (1UL << 0) +#define sysreg_flagging(reg, set, unset) \ + ({ \ + unsigned long _x; \ + _x = read_sysreg(reg); \ + _x = (_x & ~(unset)) | (set); \ + set_sysreg(reg, _x); \ + _x; \ + }) + #endif #endif /* __LUNAIX_AA64_MSRS_H */