#include int32_t getpid() { return (int32_t)syscall(0); } size_t uart_read(char buf[], size_t size) { return (size_t)syscall(1, buf, size); } size_t uart_write(const char buf[], size_t size) { return (size_t)syscall(2, buf, size); } int32_t exec(const char *name, char *const argv[]) { return (int32_t)syscall(3, name, argv); } int32_t fork(void) { return (int32_t)syscall(4); } void exit(int32_t status) { syscall(5); __builtin_unreachable(); } int32_t mbox_call(uint8_t ch, uint32_t *mbox) { return (int32_t)syscall(6, ch, mbox); } void kill(int32_t pid) { syscall(7, pid); }