aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/kernel/vmem.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-07-06 20:50:36 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-07-06 20:50:36 +0300
commit9c0f26d26366ff7def20d5be6aff5e0f93976ad6 (patch)
tree3872c5a1018a232e51da3f774ca54ae2e9967427 /arch/riscv64/kernel/vmem.c
parente9da1d29939a74e186afc39f2fce8e085764fea0 (diff)
downloadkmi-9c0f26d26366ff7def20d5be6aff5e0f93976ad6.tar.gz
kmi-9c0f26d26366ff7def20d5be6aff5e0f93976ad6.zip
adjust stack handling
Diffstat (limited to 'arch/riscv64/kernel/vmem.c')
-rw-r--r--arch/riscv64/kernel/vmem.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/riscv64/kernel/vmem.c b/arch/riscv64/kernel/vmem.c
index f717771..00752c1 100644
--- a/arch/riscv64/kernel/vmem.c
+++ b/arch/riscv64/kernel/vmem.c
@@ -551,11 +551,18 @@ void destroy_rpc_stack(struct tcb *t)
}
}
+void reset_rpc_stack(struct tcb *t)
+{
+ t->rpc_stack = RPC_STACK_BASE + (BASE_PAGE_SIZE * rpc_pages);
+ t->arch.rpc_idx = rpc_pages;
+}
+
bool rpc_stack_empty(pm_t addr)
{
return addr == RPC_STACK_BASE + (BASE_PAGE_SIZE * rpc_pages);
}
+
vm_t rpc_position(struct tcb *t)
{
/** @todo we assume rpc_idx is updated on every segfault of the rpc stack */