diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-07-07 21:47:14 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-07-07 21:47:14 +0300 |
| commit | 219c27d420fe0abe5515cefc2513c6fe60aafdf9 (patch) | |
| tree | 5cd0c38a971245c91fd7bc3539b4a37c8a08a7f1 /arch/riscv64 | |
| parent | fe4c623cb9320226866829317cea8ba0c49e7dbc (diff) | |
| download | kmi-219c27d420fe0abe5515cefc2513c6fe60aafdf9.tar.gz kmi-219c27d420fe0abe5515cefc2513c6fe60aafdf9.zip | |
add req_page back in as I realized it's useful
+ Can be used to pass contiguous memory regions to things like virtio
block devices for implementing disk drivers etc.
Diffstat (limited to 'arch/riscv64')
| -rwxr-xr-x | arch/riscv64/conf/init | bin | 3960 -> 3968 bytes | |||
| -rw-r--r-- | arch/riscv64/conf/init.c | 14 | ||||
| -rw-r--r-- | arch/riscv64/conf/initrd | bin | 4608 -> 4608 bytes | |||
| -rw-r--r-- | arch/riscv64/kernel/proc.c | 2 |
4 files changed, 8 insertions, 8 deletions
diff --git a/arch/riscv64/conf/init b/arch/riscv64/conf/init Binary files differindex 5248f8f..b378582 100755 --- a/arch/riscv64/conf/init +++ b/arch/riscv64/conf/init diff --git a/arch/riscv64/conf/init.c b/arch/riscv64/conf/init.c index c3e8334..c4e8064 100644 --- a/arch/riscv64/conf/init.c +++ b/arch/riscv64/conf/init.c @@ -277,12 +277,12 @@ static void sys_sleep() #define CSR_CYCLE "0xc00" -static void handle_kernel(long a0, long a1, long d0, long d1, long d2, long d3) +static void handle_kernel(long pid, long tid, long d0, long d1, long d2, + long d3) { - if (a1 != SYS_USER_BOOTED) + if (d0 != SYS_USER_BOOTED) return; - long tid = d0; if (tid != 1) { puts("Woo, more cores!\n"); while (1) @@ -311,11 +311,11 @@ static void handle_kernel(long a0, long a1, long d0, long d1, long d2, long d3) print_value("Executed cycles per second", cend - cstart); puts("Starting fork():\n"); - long pid = sys_fork(); - if (pid != 0) { - print_value("Child pid", pid); + long cid = sys_fork(); + if (cid != 0) { + print_value("Child pid", cid); puts("Swapping to child...\n"); - while(1) sys_swap(pid); + while(1) sys_swap(cid); } puts("Hello from child!\n"); diff --git a/arch/riscv64/conf/initrd b/arch/riscv64/conf/initrd Binary files differindex bc0858e..4647812 100644 --- a/arch/riscv64/conf/initrd +++ b/arch/riscv64/conf/initrd diff --git a/arch/riscv64/kernel/proc.c b/arch/riscv64/kernel/proc.c index 413c078..f21ce5c 100644 --- a/arch/riscv64/kernel/proc.c +++ b/arch/riscv64/kernel/proc.c @@ -35,7 +35,7 @@ void run_init(struct tcb *t, vm_t fdt, vm_t initrd) "li a2, %3\n" "mv a3, %4\n" "mv a4, %5\n" - "li a5, %6\n" + "li a5, %6\n" "sret\n" : : "r" (stack_top), |
