X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6be108db01439d3463342689446e457a315d6705..ec98d05af80e6e68c889dac10b8478ce92bd5161:/lunaix-os/arch/aarch64/includes/asm/hart.h?ds=sidebyside diff --git a/lunaix-os/arch/aarch64/includes/asm/hart.h b/lunaix-os/arch/aarch64/includes/asm/hart.h index 89a2e9a..fa1f4bf 100644 --- a/lunaix-os/arch/aarch64/includes/asm/hart.h +++ b/lunaix-os/arch/aarch64/includes/asm/hart.h @@ -6,7 +6,7 @@ #include #include -#define SYNDROME_ETYPE BITS(63, 56) +#define SYNDROME_ETYPE BITFIELD(63, 56) struct hart_state; @@ -15,7 +15,7 @@ struct regcontext union { reg_t x[31]; struct { - reg_t x[29]; + reg_t x_[29]; reg_t fp; reg_t lr; }; @@ -29,7 +29,7 @@ struct exec_param reg_t link; struct { reg_t sp_el0; - reg_t sp_el1; + reg_t rsvd; }; reg_t syndrome; @@ -73,10 +73,7 @@ hart_pc(struct hart_state* hstate) static inline ptr_t hart_sp(struct hart_state* hstate) { - if (spsr_from_el0(hstate->execp.spsr)) { - return hstate->execp.sp_el0; - } - return hstate->execp.sp_el1; + return __ptr(&hstate[-1]); } static inline bool