diff options
author | Jon Santmyer <jon@jonsantmyer.com> | 2024-05-22 13:00:41 -0400 |
---|---|---|
committer | Jon Santmyer <jon@jonsantmyer.com> | 2024-05-22 13:00:41 -0400 |
commit | ace65b453151845bc361f21f3e5b651c35f9f126 (patch) | |
tree | 262ebd29b0ca1d8584f0b6f1efa7a00d9f4f3e43 /include/api | |
parent | f004c1ade8d617a82cea2fe249434cccb47a2358 (diff) | |
download | jove-kernel-master.tar.gz jove-kernel-master.tar.bz2 jove-kernel-master.zip |
Diffstat (limited to 'include/api')
-rw-r--r-- | include/api/errno.h | 9 | ||||
-rw-r--r-- | include/api/syscall.h | 39 |
2 files changed, 48 insertions, 0 deletions
diff --git a/include/api/errno.h b/include/api/errno.h new file mode 100644 index 0000000..51921d2 --- /dev/null +++ b/include/api/errno.h @@ -0,0 +1,9 @@ +#ifndef _JOVE_ERRNO_H +#define _JOVE_ERRNO_H 1 + +enum { + EFAIL = 1, + EACCESS +}; + +#endif diff --git a/include/api/syscall.h b/include/api/syscall.h new file mode 100644 index 0000000..eb4235d --- /dev/null +++ b/include/api/syscall.h @@ -0,0 +1,39 @@ +#ifndef _JOVE_API_SYSCALL_H +#define _JOVE_API_SYSCALL_H 1 + +#include <stdint.h> +#include <stddef.h> + +typedef intmax_t syscall_id_t; + +static int __syscall(void *data) +{ + intmax_t r; + __asm__ volatile(" \ + movq %1, %%rdi; \ + syscall; \ + movq %%rax, %0" + : "=r"(r) + : "r"(data)); + return r; +} + +enum { + SC_DBG_LOGF = 0, + SC_EXIT +}; + +struct sc_dbg_log +{ + syscall_id_t id; + size_t w; + const char *s; +}; + +struct sc_exit +{ + syscall_id_t id; + int exit_code; +}; + +#endif |