diff options
Diffstat (limited to 'arch/riscv64/kernel/vmem.c')
| -rw-r--r-- | arch/riscv64/kernel/vmem.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/riscv64/kernel/vmem.c b/arch/riscv64/kernel/vmem.c index 68ccbd3..a3903f1 100644 --- a/arch/riscv64/kernel/vmem.c +++ b/arch/riscv64/kernel/vmem.c @@ -345,11 +345,16 @@ vm_t setup_kernel_io(struct vmem *b, vm_t paddr) } #endif +struct uvmem_map { + struct vmem *leaf[CSTACK_PAGE - 1]; +}; + stat_t clone_uvmem(struct vmem *r, struct vmem *b) { /** \todo error checking? */ - for (size_t i = 0; i < CSTACK_PAGE; ++i) - b->leaf[i] = r->leaf[i]; + struct uvmem_map *rm = (struct uvmem_map *)(r); + struct uvmem_map *bm = (struct uvmem_map *)(b); + *bm = *rm; return OK; } |
