aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv64/kernel')
-rw-r--r--arch/riscv64/kernel/proc.c6
-rw-r--r--arch/riscv64/kernel/vmem.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/arch/riscv64/kernel/proc.c b/arch/riscv64/kernel/proc.c
index 2ccc5bc..3c2ea59 100644
--- a/arch/riscv64/kernel/proc.c
+++ b/arch/riscv64/kernel/proc.c
@@ -56,6 +56,12 @@ void set_thread(struct tcb *t)
r->tp = (long)t->thread_storage;
}
+vm_t get_stack(struct tcb *t)
+{
+ struct riscv_regs *r = (struct riscv_regs *)(t) - 1;
+ return r->sp;
+}
+
void save_regs(struct tcb *t, void *p)
{
struct riscv_regs *r = (struct riscv_regs *)(t) - 1;
diff --git a/arch/riscv64/kernel/vmem.c b/arch/riscv64/kernel/vmem.c
index 8954ee3..d12015c 100644
--- a/arch/riscv64/kernel/vmem.c
+++ b/arch/riscv64/kernel/vmem.c
@@ -316,7 +316,7 @@ vm_t setup_kernel_io(struct vmem *b, vm_t paddr)
stat_t clone_uvmem(struct vmem *r, struct vmem *b)
{
/** \todo error checking? */
- for (size_t i = 0; i <= CSTACK_PAGE; ++i)
+ for (size_t i = 0; i < CSTACK_PAGE; ++i)
b->leaf[i] = r->leaf[i];
return OK;