This commit is contained in:
2026-04-16 22:29:08 +08:00
parent 2d843a100e
commit 589a83cb07
29 changed files with 1397 additions and 49 deletions

View File

@@ -5,11 +5,27 @@
void clks_exec_init(void);
clks_bool clks_exec_run_path(const char *path, u64 *out_status);
clks_bool clks_exec_run_pathv(const char *path, const char *argv_line, const char *env_line, u64 *out_status);
clks_bool clks_exec_spawn_path(const char *path, u64 *out_pid);
clks_bool clks_exec_spawn_pathv(const char *path, const char *argv_line, const char *env_line, u64 *out_pid);
u64 clks_exec_wait_pid(u64 pid, u64 *out_status);
clks_bool clks_exec_request_exit(u64 status);
u64 clks_exec_current_pid(void);
u32 clks_exec_current_tty(void);
u64 clks_exec_current_argc(void);
clks_bool clks_exec_copy_current_argv(u64 index, char *out_value, usize out_size);
u64 clks_exec_current_envc(void);
clks_bool clks_exec_copy_current_env(u64 index, char *out_value, usize out_size);
u64 clks_exec_current_signal(void);
u64 clks_exec_current_fault_vector(void);
u64 clks_exec_current_fault_error(void);
u64 clks_exec_current_fault_rip(void);
clks_bool clks_exec_handle_exception(u64 vector,
u64 error_code,
u64 rip,
u64 *io_rip,
u64 *io_rdi,
u64 *io_rsi);
u64 clks_exec_sleep_ticks(u64 ticks);
u64 clks_exec_yield(void);
void clks_exec_tick(u64 tick);

View File

@@ -54,9 +54,19 @@
#define CLKS_SYSCALL_AUDIO_AVAILABLE 48ULL
#define CLKS_SYSCALL_AUDIO_PLAY_TONE 49ULL
#define CLKS_SYSCALL_AUDIO_STOP 50ULL
#define CLKS_SYSCALL_EXEC_PATHV 51ULL
#define CLKS_SYSCALL_SPAWN_PATHV 52ULL
#define CLKS_SYSCALL_PROC_ARGC 53ULL
#define CLKS_SYSCALL_PROC_ARGV 54ULL
#define CLKS_SYSCALL_PROC_ENVC 55ULL
#define CLKS_SYSCALL_PROC_ENV 56ULL
#define CLKS_SYSCALL_PROC_LAST_SIGNAL 57ULL
#define CLKS_SYSCALL_PROC_FAULT_VECTOR 58ULL
#define CLKS_SYSCALL_PROC_FAULT_ERROR 59ULL
#define CLKS_SYSCALL_PROC_FAULT_RIP 60ULL
void clks_syscall_init(void);
u64 clks_syscall_dispatch(void *frame_ptr);
u64 clks_syscall_invoke_kernel(u64 id, u64 arg0, u64 arg1, u64 arg2);
#endif
#endif