[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCHv3 2/5] arch/arm64: Define the size of callee-saved-registers for thread switch
Hi Justin, Thanks fort he patch. Please see my comments inline. On 31.07.19, 04:48, "Jia He" <justin.he@xxxxxxx> wrote: From: Wei Chen <wei.chen@xxxxxxx> In thread context switch, we will save the callee-saved registers (x19 ~ x28) and Frame Point Register and Link Register to prev's thread stack [1] [1] http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf Signed-off-by: Wei Chen <wei.chen@xxxxxxx> Signed-off-by: Jianyong Wu <jianyong.wu@xxxxxxx> Signed-off-by: Jia He <justin.he@xxxxxxx> --- arch/arm/arm64/include/uk/asm/lcpu.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm/arm64/include/uk/asm/lcpu.h b/arch/arm/arm64/include/uk/asm/lcpu.h index 9eea746..9d839a6 100644 --- a/arch/arm/arm64/include/uk/asm/lcpu.h +++ b/arch/arm/arm64/include/uk/asm/lcpu.h @@ -44,6 +44,15 @@ #define __TRAP_STACK_SIZE 288 #define __SP_OFFSET 272 #define __SP_EL0_OFFSET 280 + +/* + * In thread context switch, we will save the callee-saved registers + * (x19 ~ x28) and Frame Point Register and Link Register to prev's + * thread stack: + * http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf + */ +#define __CALLEE_SAVED_SIZE 96 + #else /* * Change this structure must update TRAP_STACK_SIZE at the same time. @@ -72,6 +81,21 @@ struct __regs { unsigned long sp_el0; }; +/* + * Change this structure must update __CALLEE_SAVED_SIZE at the + * same time. + */ +struct __callee_saved_regs { + /* Callee-saved registers, from x19 ~ x28 */ + unsigned long callee[10]; I would suggest to use uint64_t here. Not that unsigned long is not the correct type, just that it makes it very explicit that this is to save 64-bit registers. + + /* Frame Point Register (x29) */ + unsigned long fp; + + /* Link Register (x30) */ + unsigned long lr; +}; + /* * Instruction Synchronization Barrier flushes the pipeline in the * processor, so that all instructions following the ISB are fetched -- 2.17.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |