diff --git a/include/arch/riscv/arch/machine/registerset.h b/include/arch/riscv/arch/machine/registerset.h index a6cd5ec5e..f7b68a4a4 100644 --- a/include/arch/riscv/arch/machine/registerset.h +++ b/include/arch/riscv/arch/machine/registerset.h @@ -38,6 +38,9 @@ enum _register { TLS_BASE = tp, t0 = 4, +#ifdef CONFIG_KERNEL_MCS + nbsendRecvDest = 4, +#endif t1 = 5, t2 = 6, s0 = 7, @@ -51,8 +54,10 @@ enum _register { a4 = 13, a5 = 14, a6 = 15, +#ifdef CONFIG_KERNEL_MCS + replyRegister = 15, +#endif a7 = 16, - s2 = 17, s3 = 18, s4 = 19, diff --git a/src/arch/riscv/machine/registerset.c b/src/arch/riscv/machine/registerset.c index 82ef05d61..8ca1518bc 100644 --- a/src/arch/riscv/machine/registerset.c +++ b/src/arch/riscv/machine/registerset.c @@ -45,3 +45,10 @@ compile_assert( consistent_gp_registers, sizeof(gpRegisters) / sizeof(gpRegisters[0]) == n_gpRegisters ); + +#ifdef CONFIG_KERNEL_MCS +word_t getNBSendRecvDest(void) +{ + return getRegister(NODE_STATE(ksCurThread), nbsendRecvDest); +} +#endif