Toby Jaffey
e07eeab043
Make yield a regular syscall taking an argument.
...
Allows "wait for interrupt"/"wait for event" type operation where VM code blocks until the host has something for it.
2025-12-10 10:35:18 +00:00
Toby Jaffey
9baedb42e8
Add a stack canary, setup on boot
2025-12-10 01:00:36 +00:00
Toby Jaffey
76fba39a21
Rework syscall ABI.
...
Syscalls now accept two parameters, allowing for things like "int count = read(buf, len)"
Rather than providing safe signatures for syscalls, the user is now given helper functions to safely parse incoming values, c-strings and slices.
2025-12-09 21:51:35 +00:00
Toby Jaffey
3cdc9ae0ca
Default behaviour is to run to end of main
2025-12-09 01:19:09 +00:00
Toby Jaffey
d7673eb0b9
Add common typedefs
2025-12-08 23:48:32 +00:00
Toby Jaffey
41a94d0629
Fix putc()
2025-12-08 20:45:39 +00:00
Toby Jaffey
6735b159ac
Make syscall names closer to libc
2025-12-08 16:28:00 +00:00
Toby Jaffey
9d6e6790e1
Cleanup syscall numbers
2025-12-08 12:53:33 +00:00
Toby Jaffey
61fe0e8647
Rename ioreq to syscall
2025-12-08 12:26:47 +00:00
Toby Jaffey
f6cd790fcb
ABI info
2025-12-08 07:31:21 +00:00
Toby Jaffey
751f068486
Rework host/target interface to use ecall and proper syscalls instead of CSRs
2025-12-08 02:44:38 +00:00
Toby Jaffey
9e6f6c5a67
Added IOREQ_MILLIS and IOREQ_GETC to get current time and poll keyboard.
...
IOREQ_GETC implemented inefficiently, but is fine for demo purposes.
2025-12-07 20:29:10 +00:00
Toby Jaffey
c9d30b6d28
uvm32 initial version
2025-12-06 16:44:23 +00:00