diff options
| author | Ada Christine <adachristine18@gmail.com> | 2024-02-11 23:48:04 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2024-02-11 23:48:04 +0000 |
| commit | 3f9278b48ff4bc0d2cf1604034b3bba548572f04 (patch) | |
| tree | dbdabed3ff580079d2e21045d2cbc5b274c2e418 /api/kjarna/interface.h | |
| parent | 9fbfc6e951e565ef98c49c1dcfc4b6a39514f17d (diff) | |
kjarna initial impl
Diffstat (limited to 'api/kjarna/interface.h')
| -rw-r--r-- | api/kjarna/interface.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/api/kjarna/interface.h b/api/kjarna/interface.h new file mode 100644 index 0000000..e0c491a --- /dev/null +++ b/api/kjarna/interface.h @@ -0,0 +1,29 @@ +#pragma once + +#include <stddef.h> +#include <posix/sys/types.h> + +#define SYSV_ABI __attribute__((sysv_abi)) + +struct kjarna_interface +{ + int (SYSV_ABI *open)(const char *, int, int); + int (SYSV_ABI *close)(int); + off_t (SYSV_ABI *lseek)(int, off_t, int); + ssize_t (SYSV_ABI *read)(int, void *, size_t); + ssize_t (SYSV_ABI *write)(int, const void *, size_t); + + void *(SYSV_ABI *mmap)(void *, size_t, int, int, int, off_t); + int (SYSV_ABI *munmap)(void *, size_t); +}; + +struct kjarna_entry_params +{ + struct kjarna_interface *interface; + int argc; + char **argv; + char **envp; +}; + +typedef int (SYSV_ABI kjarna_runtime_entry_func)(struct kjarna_entry_params *); + |
