diff --git a/cleonos/c/apps/ansi_main.c b/cleonos/c/apps/ansi_main.c index ff4bdd6..29346f7 100644 --- a/cleonos/c/apps/ansi_main.c +++ b/cleonos/c/apps/ansi_main.c @@ -3,12 +3,13 @@ static int ush_cmd_ansi(void) { ush_writeln("\x1B[1;36mansi color demo\x1B[0m"); ush_writeln(" \x1B[30mblack\x1B[0m \x1B[31mred\x1B[0m \x1B[32mgreen\x1B[0m \x1B[33myellow\x1B[0m"); ush_writeln(" \x1B[34mblue\x1B[0m \x1B[35mmagenta\x1B[0m \x1B[36mcyan\x1B[0m \x1B[37mwhite\x1B[0m"); - ush_writeln(" \x1B[90mbright-black\x1B[0m \x1B[91mbright-red\x1B[0m \x1B[92mbright-green\x1B[0m \x1B[93mbright-yellow\x1B[0m"); - ush_writeln(" \x1B[94mbright-blue\x1B[0m \x1B[95mbright-magenta\x1B[0m \x1B[96mbright-cyan\x1B[0m \x1B[97mbright-white\x1B[0m"); + ush_writeln(" \x1B[90mbright-black\x1B[0m \x1B[91mbright-red\x1B[0m \x1B[92mbright-green\x1B[0m " + "\x1B[93mbright-yellow\x1B[0m"); + ush_writeln(" \x1B[94mbright-blue\x1B[0m \x1B[95mbright-magenta\x1B[0m \x1B[96mbright-cyan\x1B[0m " + "\x1B[97mbright-white\x1B[0m"); return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -50,4 +51,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/ansitest_main.c b/cleonos/c/apps/ansitest_main.c index c2b3507..363de4e 100644 --- a/cleonos/c/apps/ansitest_main.c +++ b/cleonos/c/apps/ansitest_main.c @@ -3,8 +3,10 @@ static int ush_cmd_ansi(void) { ush_writeln("\x1B[1;36mansi color demo\x1B[0m"); ush_writeln(" \x1B[30mblack\x1B[0m \x1B[31mred\x1B[0m \x1B[32mgreen\x1B[0m \x1B[33myellow\x1B[0m"); ush_writeln(" \x1B[34mblue\x1B[0m \x1B[35mmagenta\x1B[0m \x1B[36mcyan\x1B[0m \x1B[37mwhite\x1B[0m"); - ush_writeln(" \x1B[90mbright-black\x1B[0m \x1B[91mbright-red\x1B[0m \x1B[92mbright-green\x1B[0m \x1B[93mbright-yellow\x1B[0m"); - ush_writeln(" \x1B[94mbright-blue\x1B[0m \x1B[95mbright-magenta\x1B[0m \x1B[96mbright-cyan\x1B[0m \x1B[97mbright-white\x1B[0m"); + ush_writeln(" \x1B[90mbright-black\x1B[0m \x1B[91mbright-red\x1B[0m \x1B[92mbright-green\x1B[0m " + "\x1B[93mbright-yellow\x1B[0m"); + ush_writeln(" \x1B[94mbright-blue\x1B[0m \x1B[95mbright-magenta\x1B[0m \x1B[96mbright-cyan\x1B[0m " + "\x1B[97mbright-white\x1B[0m"); return 1; } @@ -107,7 +109,8 @@ static int ush_cmd_ansitest(void) { ush_write_char('\n'); ush_writeln("truecolor demo:"); - ush_writeln(" \x1B[38;2;255;64;64mRGB(255,64,64)\x1B[0m \x1B[38;2;64;255;64mRGB(64,255,64)\x1B[0m \x1B[38;2;64;128;255mRGB(64,128,255)\x1B[0m"); + ush_writeln(" \x1B[38;2;255;64;64mRGB(255,64,64)\x1B[0m \x1B[38;2;64;255;64mRGB(64,255,64)\x1B[0m " + "\x1B[38;2;64;128;255mRGB(64,128,255)\x1B[0m"); ush_writeln("cursor control demo:"); ush_write(" 0123456789"); @@ -131,7 +134,6 @@ static int ush_cmd_ansitest(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -173,4 +175,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/append_main.c b/cleonos/c/apps/append_main.c index 614e13d..6f116c1 100644 --- a/cleonos/c/apps/append_main.c +++ b/cleonos/c/apps/append_main.c @@ -44,7 +44,6 @@ static int ush_cmd_append(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -88,4 +87,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/cat_main.c b/cleonos/c/apps/cat_main.c index a031c94..6f1b095 100644 --- a/cleonos/c/apps/cat_main.c +++ b/cleonos/c/apps/cat_main.c @@ -61,7 +61,6 @@ static int ush_cmd_cat(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -105,4 +104,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/cd_main.c b/cleonos/c/apps/cd_main.c index ce21f7a..805eacf 100644 --- a/cleonos/c/apps/cd_main.c +++ b/cleonos/c/apps/cd_main.c @@ -21,7 +21,6 @@ static int ush_cmd_cd(ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -65,4 +64,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/clear_main.c b/cleonos/c/apps/clear_main.c index 82a4568..cf3ecd4 100644 --- a/cleonos/c/apps/clear_main.c +++ b/cleonos/c/apps/clear_main.c @@ -4,7 +4,6 @@ static int ush_cmd_clear(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -46,4 +45,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/cmd_runtime.c b/cleonos/c/apps/cmd_runtime.c index a16c6ab..a8f03a2 100644 --- a/cleonos/c/apps/cmd_runtime.c +++ b/cleonos/c/apps/cmd_runtime.c @@ -526,17 +526,12 @@ int ush_split_first_and_rest(const char *arg, char *out_first, u64 out_first_siz return 1; } -int ush_split_two_args(const char *arg, - char *out_first, - u64 out_first_size, - char *out_second, - u64 out_second_size) { +int ush_split_two_args(const char *arg, char *out_first, u64 out_first_size, char *out_second, u64 out_second_size) { u64 i = 0ULL; u64 p = 0ULL; - if (arg == (const char *)0 || - out_first == (char *)0 || out_first_size == 0ULL || - out_second == (char *)0 || out_second_size == 0ULL) { + if (arg == (const char *)0 || out_first == (char *)0 || out_first_size == 0ULL || out_second == (char *)0 || + out_second_size == 0ULL) { return 0; } diff --git a/cleonos/c/apps/cmd_runtime.h b/cleonos/c/apps/cmd_runtime.h index daa3f97..97e4927 100644 --- a/cleonos/c/apps/cmd_runtime.h +++ b/cleonos/c/apps/cmd_runtime.h @@ -9,21 +9,21 @@ typedef long long i64; -#define USH_CMD_MAX 32ULL -#define USH_ARG_MAX 160ULL -#define USH_LINE_MAX 192ULL -#define USH_PATH_MAX 192ULL -#define USH_CAT_MAX 512ULL -#define USH_SCRIPT_MAX 1024ULL -#define USH_CLEAR_LINES 56ULL -#define USH_HISTORY_MAX 16ULL -#define USH_DMESG_DEFAULT 64ULL -#define USH_DMESG_LINE_MAX 256ULL -#define USH_COPY_MAX 65536U +#define USH_CMD_MAX 32ULL +#define USH_ARG_MAX 160ULL +#define USH_LINE_MAX 192ULL +#define USH_PATH_MAX 192ULL +#define USH_CAT_MAX 512ULL +#define USH_SCRIPT_MAX 1024ULL +#define USH_CLEAR_LINES 56ULL +#define USH_HISTORY_MAX 16ULL +#define USH_DMESG_DEFAULT 64ULL +#define USH_DMESG_LINE_MAX 256ULL +#define USH_COPY_MAX 65536U #define USH_CMD_CTX_PATH "/temp/.ush_cmd_ctx.bin" #define USH_CMD_RET_PATH "/temp/.ush_cmd_ret.bin" -#define USH_CMD_RET_FLAG_CWD 0x1ULL +#define USH_CMD_RET_FLAG_CWD 0x1ULL #define USH_CMD_RET_FLAG_EXIT 0x2ULL typedef struct ush_state { @@ -90,11 +90,7 @@ int ush_path_is_under_system(const char *path); int ush_path_is_under_temp(const char *path); int ush_split_first_and_rest(const char *arg, char *out_first, u64 out_first_size, const char **out_rest); -int ush_split_two_args(const char *arg, - char *out_first, - u64 out_first_size, - char *out_second, - u64 out_second_size); +int ush_split_two_args(const char *arg, char *out_first, u64 out_first_size, char *out_second, u64 out_second_size); int ush_command_ctx_read(ush_cmd_ctx *out_ctx); int ush_command_ret_write(const ush_cmd_ret *ret); diff --git a/cleonos/c/apps/cp_main.c b/cleonos/c/apps/cp_main.c index 120787f..9c88a3b 100644 --- a/cleonos/c/apps/cp_main.c +++ b/cleonos/c/apps/cp_main.c @@ -39,9 +39,7 @@ static int ush_copy_file(const char *src_path, const char *dst_path) { { u64 written_total = 0ULL; while (written_total < got) { - u64 written = cleonos_sys_fd_write(dst_fd, - copy_buf + written_total, - got - written_total); + u64 written = cleonos_sys_fd_write(dst_fd, copy_buf + written_total, got - written_total); if (written == (u64)-1 || written == 0ULL) { (void)cleonos_sys_fd_close(dst_fd); (void)cleonos_sys_fd_close(src_fd); @@ -88,7 +86,6 @@ static int ush_cmd_cp(const ush_state *sh, const char *arg) { return ush_copy_file(src_path, dst_path); } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -132,4 +129,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/cut_main.c b/cleonos/c/apps/cut_main.c index 59f0e7c..9d010e3 100644 --- a/cleonos/c/apps/cut_main.c +++ b/cleonos/c/apps/cut_main.c @@ -18,11 +18,7 @@ static int ush_cut_parse_delim(const char *token, char *out_delim) { return 1; } -static int ush_cut_parse_args(const char *arg, - char *out_delim, - u64 *out_field, - char *out_file, - u64 out_file_size) { +static int ush_cut_parse_args(const char *arg, char *out_delim, u64 *out_field, char *out_file, u64 out_file_size) { char token[USH_PATH_MAX]; char value[USH_PATH_MAX]; const char *cursor = arg; @@ -223,7 +219,6 @@ static int ush_cmd_cut(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; diff --git a/cleonos/c/apps/dmesg_main.c b/cleonos/c/apps/dmesg_main.c index 2d5987b..d6bd31d 100644 --- a/cleonos/c/apps/dmesg_main.c +++ b/cleonos/c/apps/dmesg_main.c @@ -34,7 +34,6 @@ static int ush_cmd_dmesg(const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -78,4 +77,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/exec_main.c b/cleonos/c/apps/exec_main.c index cfe2967..d5ef008 100644 --- a/cleonos/c/apps/exec_main.c +++ b/cleonos/c/apps/exec_main.c @@ -61,7 +61,6 @@ static int ush_cmd_exec(const ush_state *sh, const char *arg) { return 0; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -105,4 +104,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/exit_main.c b/cleonos/c/apps/exit_main.c index 18d5dd9..56b1f34 100644 --- a/cleonos/c/apps/exit_main.c +++ b/cleonos/c/apps/exit_main.c @@ -20,7 +20,6 @@ static int ush_cmd_exit(ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -64,4 +63,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/fastfetch_main.c b/cleonos/c/apps/fastfetch_main.c index 1069804..9db73d2 100644 --- a/cleonos/c/apps/fastfetch_main.c +++ b/cleonos/c/apps/fastfetch_main.c @@ -166,7 +166,6 @@ static int ush_cmd_fastfetch(const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -210,4 +209,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/fg_main.c b/cleonos/c/apps/fg_main.c index 4b263a1..d4bbfed 100644 --- a/cleonos/c/apps/fg_main.c +++ b/cleonos/c/apps/fg_main.c @@ -52,8 +52,7 @@ static int ush_fg_pick_latest_job(u64 *out_pid) { continue; } - if (snap.state != CLEONOS_PROC_STATE_PENDING && - snap.state != CLEONOS_PROC_STATE_RUNNING && + if (snap.state != CLEONOS_PROC_STATE_PENDING && snap.state != CLEONOS_PROC_STATE_RUNNING && snap.state != CLEONOS_PROC_STATE_STOPPED) { continue; } diff --git a/cleonos/c/apps/fsstat_main.c b/cleonos/c/apps/fsstat_main.c index 75040e3..c958807 100644 --- a/cleonos/c/apps/fsstat_main.c +++ b/cleonos/c/apps/fsstat_main.c @@ -11,7 +11,6 @@ static int ush_cmd_fsstat(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -53,4 +52,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/grep_main.c b/cleonos/c/apps/grep_main.c index 1afbd86..0a411a2 100644 --- a/cleonos/c/apps/grep_main.c +++ b/cleonos/c/apps/grep_main.c @@ -203,7 +203,6 @@ static int ush_cmd_grep(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -247,4 +246,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/head_main.c b/cleonos/c/apps/head_main.c index d0e0450..32ae818 100644 --- a/cleonos/c/apps/head_main.c +++ b/cleonos/c/apps/head_main.c @@ -165,7 +165,6 @@ static int ush_cmd_head(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; diff --git a/cleonos/c/apps/help_main.c b/cleonos/c/apps/help_main.c index bfa9b68..c78cad7 100644 --- a/cleonos/c/apps/help_main.c +++ b/cleonos/c/apps/help_main.c @@ -45,7 +45,6 @@ static int ush_cmd_help(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; diff --git a/cleonos/c/apps/kbdstat_main.c b/cleonos/c/apps/kbdstat_main.c index 8026850..62c4997 100644 --- a/cleonos/c/apps/kbdstat_main.c +++ b/cleonos/c/apps/kbdstat_main.c @@ -9,7 +9,6 @@ static int ush_cmd_kbdstat(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -51,4 +50,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/kdbg_main.c b/cleonos/c/apps/kdbg_main.c index 47b78d8..ec2fe59 100644 --- a/cleonos/c/apps/kdbg_main.c +++ b/cleonos/c/apps/kdbg_main.c @@ -167,8 +167,7 @@ static int ush_cmd_kdbg(const char *arg) { if (ush_streq(subcmd, "bt") != 0) { if (ush_kdbg_next_token(&cursor, tok0, (u64)sizeof(tok0)) == 0 || - ush_kdbg_next_token(&cursor, tok1, (u64)sizeof(tok1)) == 0 || - ush_kdbg_has_more_tokens(cursor) != 0) { + ush_kdbg_next_token(&cursor, tok1, (u64)sizeof(tok1)) == 0 || ush_kdbg_has_more_tokens(cursor) != 0) { ush_kdbg_usage(); return 0; } diff --git a/cleonos/c/apps/libctest_main.c b/cleonos/c/apps/libctest_main.c index e9c5572..d504849 100644 --- a/cleonos/c/apps/libctest_main.c +++ b/cleonos/c/apps/libctest_main.c @@ -23,12 +23,12 @@ static void test_fail(const char *group, int line, const char *expr) { (void)printf("[libctest][FAIL] %s:%d %s\n", group, line, expr); } -#define TEST_ASSERT(group, expr) \ - do { \ - g_total++; \ - if (!(expr)) { \ - test_fail((group), __LINE__, #expr); \ - } \ +#define TEST_ASSERT(group, expr) \ + do { \ + g_total++; \ + if (!(expr)) { \ + test_fail((group), __LINE__, #expr); \ + } \ } while (0) static void test_string_lib(void) { diff --git a/cleonos/c/apps/ls_main.c b/cleonos/c/apps/ls_main.c index 71744c7..8605923 100644 --- a/cleonos/c/apps/ls_main.c +++ b/cleonos/c/apps/ls_main.c @@ -125,19 +125,13 @@ static void ush_ls_print_one(const char *name, u64 type, u64 size, int long_mode clio_write_char('\n'); } -static int ush_ls_parse_args(const char *arg, - int *out_long_mode, - int *out_recursive, - char *out_target, +static int ush_ls_parse_args(const char *arg, int *out_long_mode, int *out_recursive, char *out_target, u64 out_target_size) { char token[USH_PATH_MAX]; u64 i = 0ULL; int path_set = 0; - if (out_long_mode == (int *)0 || - out_recursive == (int *)0 || - out_target == (char *)0 || - out_target_size == 0ULL) { + if (out_long_mode == (int *)0 || out_recursive == (int *)0 || out_target == (char *)0 || out_target_size == 0ULL) { return 0; } @@ -196,11 +190,7 @@ static int ush_ls_parse_args(const char *arg, return 1; } -static int ush_ls_dir(const char *path, - int long_mode, - int recursive, - int print_header, - u64 depth) { +static int ush_ls_dir(const char *path, int long_mode, int recursive, int print_header, u64 depth) { u64 count; u64 i; @@ -309,7 +299,6 @@ static int ush_cmd_ls(const ush_state *sh, const char *arg) { return ush_ls_dir(path, long_mode, recursive, recursive, 0ULL); } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -353,4 +342,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/memstat_main.c b/cleonos/c/apps/memstat_main.c index 8824e00..23e840a 100644 --- a/cleonos/c/apps/memstat_main.c +++ b/cleonos/c/apps/memstat_main.c @@ -8,7 +8,6 @@ static int ush_cmd_memstat(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -50,4 +49,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/mkdir_main.c b/cleonos/c/apps/mkdir_main.c index 377833d..79411ac 100644 --- a/cleonos/c/apps/mkdir_main.c +++ b/cleonos/c/apps/mkdir_main.c @@ -25,7 +25,6 @@ static int ush_cmd_mkdir(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -69,4 +68,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/mv_main.c b/cleonos/c/apps/mv_main.c index 8968712..24c9629 100644 --- a/cleonos/c/apps/mv_main.c +++ b/cleonos/c/apps/mv_main.c @@ -82,7 +82,6 @@ static int ush_cmd_mv(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -126,4 +125,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/pid_main.c b/cleonos/c/apps/pid_main.c index 1a9f17b..1854ab3 100644 --- a/cleonos/c/apps/pid_main.c +++ b/cleonos/c/apps/pid_main.c @@ -4,7 +4,6 @@ static int ush_cmd_pid(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -46,4 +45,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/pwd_main.c b/cleonos/c/apps/pwd_main.c index e51db1d..89c86e6 100644 --- a/cleonos/c/apps/pwd_main.c +++ b/cleonos/c/apps/pwd_main.c @@ -4,7 +4,6 @@ static int ush_cmd_pwd(const ush_state *sh) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -46,4 +45,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/restart_main.c b/cleonos/c/apps/restart_main.c index 07e6ce3..9c74847 100644 --- a/cleonos/c/apps/restart_main.c +++ b/cleonos/c/apps/restart_main.c @@ -5,7 +5,6 @@ static int ush_cmd_restart(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -47,4 +46,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/rm_main.c b/cleonos/c/apps/rm_main.c index 66509c7..b5cb6a3 100644 --- a/cleonos/c/apps/rm_main.c +++ b/cleonos/c/apps/rm_main.c @@ -25,7 +25,6 @@ static int ush_cmd_rm(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -69,4 +68,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/shell/shell_cmd.c b/cleonos/c/apps/shell/shell_cmd.c index 226ceed..4e3d93f 100644 --- a/cleonos/c/apps/shell/shell_cmd.c +++ b/cleonos/c/apps/shell/shell_cmd.c @@ -1,10 +1,10 @@ #include "shell_internal.h" -#define USH_DMESG_DEFAULT 64ULL +#define USH_DMESG_DEFAULT 64ULL #define USH_DMESG_LINE_MAX 256ULL -#define USH_COPY_MAX 65536U +#define USH_COPY_MAX 65536U #define USH_PIPELINE_MAX_STAGES 8ULL -#define USH_PIPE_CAPTURE_MAX USH_COPY_MAX +#define USH_PIPE_CAPTURE_MAX USH_COPY_MAX #define USH_PIPE_TMP_A "/temp/.ush_pipe_a.bin" #define USH_PIPE_TMP_B "/temp/.ush_pipe_b.bin" #define USH_SORT_MAX_LINES 4096ULL @@ -22,7 +22,6 @@ static u64 ush_pipeline_stdin_len = 0ULL; static char ush_pipeline_capture_a[USH_PIPE_CAPTURE_MAX + 1U]; static char ush_pipeline_capture_b[USH_PIPE_CAPTURE_MAX + 1U]; - static int ush_path_is_under_temp(const char *path) { if (path == (const char *)0) { return 0; @@ -71,17 +70,13 @@ static int ush_split_first_and_rest(const char *arg, char *out_first, u64 out_fi return 1; } -static int ush_split_two_args(const char *arg, - char *out_first, - u64 out_first_size, - char *out_second, +static int ush_split_two_args(const char *arg, char *out_first, u64 out_first_size, char *out_second, u64 out_second_size) { u64 i = 0ULL; u64 p = 0ULL; - if (arg == (const char *)0 || - out_first == (char *)0 || out_first_size == 0ULL || - out_second == (char *)0 || out_second_size == 0ULL) { + if (arg == (const char *)0 || out_first == (char *)0 || out_first_size == 0ULL || out_second == (char *)0 || + out_second_size == 0ULL) { return 0; } @@ -278,19 +273,13 @@ static void ush_ls_print_one(const char *name, u64 type, u64 size, int long_mode ush_write_char('\n'); } -static int ush_ls_parse_args(const char *arg, - int *out_long_mode, - int *out_recursive, - char *out_target, +static int ush_ls_parse_args(const char *arg, int *out_long_mode, int *out_recursive, char *out_target, u64 out_target_size) { char token[USH_PATH_MAX]; u64 i = 0ULL; int path_set = 0; - if (out_long_mode == (int *)0 || - out_recursive == (int *)0 || - out_target == (char *)0 || - out_target_size == 0ULL) { + if (out_long_mode == (int *)0 || out_recursive == (int *)0 || out_target == (char *)0 || out_target_size == 0ULL) { return 0; } @@ -349,11 +338,7 @@ static int ush_ls_parse_args(const char *arg, return 1; } -static int ush_ls_dir(const char *path, - int long_mode, - int recursive, - int print_header, - u64 depth) { +static int ush_ls_dir(const char *path, int long_mode, int recursive, int print_header, u64 depth) { u64 count; u64 i; @@ -756,19 +741,14 @@ static int ush_text_parse_optional_file(const char *arg, char *out_file, u64 out return 1; } -static int ush_text_load_input(const ush_state *sh, - const char *cmd, - const char *file_arg, - const char **out_input, +static int ush_text_load_input(const ush_state *sh, const char *cmd, const char *file_arg, const char **out_input, u64 *out_input_len) { static char file_buf[USH_COPY_MAX + 1U]; char path[USH_PATH_MAX]; u64 size; u64 got; - if (sh == (const ush_state *)0 || - cmd == (const char *)0 || - out_input == (const char **)0 || + if (sh == (const ush_state *)0 || cmd == (const char *)0 || out_input == (const char **)0 || out_input_len == (u64 *)0) { return 0; } @@ -1126,11 +1106,7 @@ static int ush_cut_parse_delim(const char *token, char *out_delim) { return 1; } -static int ush_cut_parse_args(const char *arg, - char *out_delim, - u64 *out_field, - char *out_file, - u64 out_file_size) { +static int ush_cut_parse_args(const char *arg, char *out_delim, u64 *out_field, char *out_file, u64 out_file_size) { char token[USH_PATH_MAX]; char value[USH_PATH_MAX]; const char *cursor = arg; @@ -1711,8 +1687,10 @@ static int ush_cmd_ansi(void) { ush_writeln("\x1B[1;36mansi color demo\x1B[0m"); ush_writeln(" \x1B[30mblack\x1B[0m \x1B[31mred\x1B[0m \x1B[32mgreen\x1B[0m \x1B[33myellow\x1B[0m"); ush_writeln(" \x1B[34mblue\x1B[0m \x1B[35mmagenta\x1B[0m \x1B[36mcyan\x1B[0m \x1B[37mwhite\x1B[0m"); - ush_writeln(" \x1B[90mbright-black\x1B[0m \x1B[91mbright-red\x1B[0m \x1B[92mbright-green\x1B[0m \x1B[93mbright-yellow\x1B[0m"); - ush_writeln(" \x1B[94mbright-blue\x1B[0m \x1B[95mbright-magenta\x1B[0m \x1B[96mbright-cyan\x1B[0m \x1B[97mbright-white\x1B[0m"); + ush_writeln(" \x1B[90mbright-black\x1B[0m \x1B[91mbright-red\x1B[0m \x1B[92mbright-green\x1B[0m " + "\x1B[93mbright-yellow\x1B[0m"); + ush_writeln(" \x1B[94mbright-blue\x1B[0m \x1B[95mbright-magenta\x1B[0m \x1B[96mbright-cyan\x1B[0m " + "\x1B[97mbright-white\x1B[0m"); return 1; } @@ -1815,7 +1793,8 @@ static int ush_cmd_ansitest(void) { ush_write_char('\n'); ush_writeln("truecolor demo:"); - ush_writeln(" \x1B[38;2;255;64;64mRGB(255,64,64)\x1B[0m \x1B[38;2;64;255;64mRGB(64,255,64)\x1B[0m \x1B[38;2;64;128;255mRGB(64,128,255)\x1B[0m"); + ush_writeln(" \x1B[38;2;255;64;64mRGB(255,64,64)\x1B[0m \x1B[38;2;64;255;64mRGB(64,255,64)\x1B[0m " + "\x1B[38;2;64;128;255mRGB(64,128,255)\x1B[0m"); ush_writeln("cursor control demo:"); ush_write(" 0123456789"); @@ -2456,12 +2435,8 @@ static void ush_report_external_not_found(const char *cmd) { ush_writeln(cmd); } -static int ush_execute_single_command(ush_state *sh, - const char *cmd, - const char *arg, - int allow_external, - int *out_known, - int *out_success) { +static int ush_execute_single_command(ush_state *sh, const char *cmd, const char *arg, int allow_external, + int *out_known, int *out_success) { int known = 1; int success = 0; @@ -2708,16 +2683,14 @@ static int ush_pipeline_parse_stage(ush_pipeline_stage *stage, const char *segme return 1; } -static int ush_pipeline_parse(const char *line, - ush_pipeline_stage *stages, - u64 max_stages, - u64 *out_stage_count) { +static int ush_pipeline_parse(const char *line, ush_pipeline_stage *stages, u64 max_stages, u64 *out_stage_count) { char segment[USH_LINE_MAX]; u64 i = 0ULL; u64 seg_pos = 0ULL; u64 stage_count = 0ULL; - if (line == (const char *)0 || stages == (ush_pipeline_stage *)0 || max_stages == 0ULL || out_stage_count == (u64 *)0) { + if (line == (const char *)0 || stages == (ush_pipeline_stage *)0 || max_stages == 0ULL || + out_stage_count == (u64 *)0) { return 0; } @@ -2888,10 +2861,7 @@ static int ush_pipeline_open_redirect_fd(const ush_state *sh, const ush_pipeline return 1; } -static int ush_execute_pipeline(ush_state *sh, - const char *line, - int *out_known, - int *out_success) { +static int ush_execute_pipeline(ush_state *sh, const char *line, int *out_known, int *out_success) { ush_pipeline_stage stages[USH_PIPELINE_MAX_STAGES]; u64 stage_count = 0ULL; u64 i; @@ -2950,8 +2920,7 @@ static int ush_execute_pipeline(ush_state *sh, if (i + 1ULL < stage_count) { stage_pipe_out = (pipe_output_toggle_external == 0) ? USH_PIPE_TMP_A : USH_PIPE_TMP_B; - if (ush_pipeline_open_write_fd(stage_pipe_out, - CLEONOS_O_WRONLY | CLEONOS_O_CREAT | CLEONOS_O_TRUNC, + if (ush_pipeline_open_write_fd(stage_pipe_out, CLEONOS_O_WRONLY | CLEONOS_O_CREAT | CLEONOS_O_TRUNC, &opened_out_fd) == 0) { ush_writeln("pipe: failed to open temp stream"); @@ -2977,13 +2946,8 @@ static int ush_execute_pipeline(ush_state *sh, stage_stdout_fd = opened_out_fd; } - stage_known = ush_try_exec_external_with_fds(sh, - stages[i].cmd, - stages[i].arg, - stage_stdin_fd, - stage_stdout_fd, - CLEONOS_FD_INHERIT, - &stage_success); + stage_known = ush_try_exec_external_with_fds(sh, stages[i].cmd, stages[i].arg, stage_stdin_fd, + stage_stdout_fd, CLEONOS_FD_INHERIT, &stage_success); if (opened_in_fd != (u64)-1) { (void)cleonos_sys_fd_close(opened_in_fd); @@ -3040,9 +3004,7 @@ static int ush_execute_pipeline(ush_state *sh, } if (pipe_input_path != (const char *)0) { - if (ush_pipeline_read_path_into_buffer(pipe_input_path, - pipe_input_buffer, - (u64)USH_PIPE_CAPTURE_MAX + 1ULL, + if (ush_pipeline_read_path_into_buffer(pipe_input_path, pipe_input_buffer, (u64)USH_PIPE_CAPTURE_MAX + 1ULL, &pipe_input_len) == 0) { ush_writeln("pipe: failed to read stage input"); success = 0; @@ -3057,8 +3019,7 @@ static int ush_execute_pipeline(ush_state *sh, if (i + 1ULL < stage_count) { stage_pipe_out = (pipe_output_toggle == 0) ? USH_PIPE_TMP_A : USH_PIPE_TMP_B; - if (ush_pipeline_open_write_fd(stage_pipe_out, - CLEONOS_O_WRONLY | CLEONOS_O_CREAT | CLEONOS_O_TRUNC, + if (ush_pipeline_open_write_fd(stage_pipe_out, CLEONOS_O_WRONLY | CLEONOS_O_CREAT | CLEONOS_O_TRUNC, &stage_fd) == 0) { ush_writeln("pipe: failed to open temp stream"); success = 0; @@ -3097,8 +3058,8 @@ static int ush_execute_pipeline(ush_state *sh, if (i + 1ULL < stage_count) { pipe_input_path = stage_pipe_out; - pipe_input_buffer = (pipe_input_buffer == ush_pipeline_capture_a) ? ush_pipeline_capture_b - : ush_pipeline_capture_a; + pipe_input_buffer = + (pipe_input_buffer == ush_pipeline_capture_a) ? ush_pipeline_capture_b : ush_pipeline_capture_a; pipe_output_toggle = (pipe_output_toggle == 0) ? 1 : 0; } } @@ -3165,6 +3126,3 @@ void ush_execute_line(ush_state *sh, const char *line) { sh->cmd_unknown++; } } - - - diff --git a/cleonos/c/apps/shell/shell_external.c b/cleonos/c/apps/shell/shell_external.c index 51546e6..2400d11 100644 --- a/cleonos/c/apps/shell/shell_external.c +++ b/cleonos/c/apps/shell/shell_external.c @@ -137,13 +137,8 @@ int ush_command_ret_read(ush_cmd_ret *out_ret) { return (got == (u64)sizeof(*out_ret)) ? 1 : 0; } -int ush_try_exec_external_with_fds(ush_state *sh, - const char *cmd, - const char *arg, - u64 stdin_fd, - u64 stdout_fd, - u64 stderr_fd, - int *out_success) { +int ush_try_exec_external_with_fds(ush_state *sh, const char *cmd, const char *arg, u64 stdin_fd, u64 stdout_fd, + u64 stderr_fd, int *out_success) { const char *canonical; char path[USH_PATH_MAX]; char env_line[USH_PATH_MAX + USH_CMD_MAX + 96ULL]; @@ -230,11 +225,6 @@ int ush_try_exec_external_with_fds(ush_state *sh, } int ush_try_exec_external(ush_state *sh, const char *cmd, const char *arg, int *out_success) { - return ush_try_exec_external_with_fds(sh, - cmd, - arg, - CLEONOS_FD_INHERIT, - CLEONOS_FD_INHERIT, - CLEONOS_FD_INHERIT, + return ush_try_exec_external_with_fds(sh, cmd, arg, CLEONOS_FD_INHERIT, CLEONOS_FD_INHERIT, CLEONOS_FD_INHERIT, out_success); } diff --git a/cleonos/c/apps/shell/shell_input.c b/cleonos/c/apps/shell/shell_input.c index 4deeda7..319fa58 100644 --- a/cleonos/c/apps/shell/shell_input.c +++ b/cleonos/c/apps/shell/shell_input.c @@ -712,4 +712,3 @@ void ush_read_line(ush_state *sh, char *out_line, u64 out_size) { } } } - diff --git a/cleonos/c/apps/shell/shell_internal.h b/cleonos/c/apps/shell/shell_internal.h index 4cfd25b..de49f74 100644 --- a/cleonos/c/apps/shell/shell_internal.h +++ b/cleonos/c/apps/shell/shell_internal.h @@ -9,33 +9,33 @@ typedef long long i64; -#define USH_CMD_MAX 32ULL -#define USH_ARG_MAX 160ULL -#define USH_LINE_MAX 192ULL -#define USH_PATH_MAX 192ULL -#define USH_CAT_MAX 512ULL -#define USH_SCRIPT_MAX 1024ULL -#define USH_CLEAR_LINES 56ULL -#define USH_HISTORY_MAX 16ULL +#define USH_CMD_MAX 32ULL +#define USH_ARG_MAX 160ULL +#define USH_LINE_MAX 192ULL +#define USH_PATH_MAX 192ULL +#define USH_CAT_MAX 512ULL +#define USH_SCRIPT_MAX 1024ULL +#define USH_CLEAR_LINES 56ULL +#define USH_HISTORY_MAX 16ULL -#define USH_KEY_LEFT ((char)0x01) -#define USH_KEY_RIGHT ((char)0x02) -#define USH_KEY_UP ((char)0x03) -#define USH_KEY_DOWN ((char)0x04) -#define USH_KEY_HOME ((char)0x05) -#define USH_KEY_END ((char)0x06) -#define USH_KEY_DELETE ((char)0x07) +#define USH_KEY_LEFT ((char)0x01) +#define USH_KEY_RIGHT ((char)0x02) +#define USH_KEY_UP ((char)0x03) +#define USH_KEY_DOWN ((char)0x04) +#define USH_KEY_HOME ((char)0x05) +#define USH_KEY_END ((char)0x06) +#define USH_KEY_DELETE ((char)0x07) #define USH_KEY_SELECT_ALL ((char)0x10) -#define USH_KEY_COPY ((char)0x11) -#define USH_KEY_PASTE ((char)0x12) +#define USH_KEY_COPY ((char)0x11) +#define USH_KEY_PASTE ((char)0x12) #define USH_KEY_SHIFT_LEFT ((char)0x13) #define USH_KEY_SHIFT_RIGHT ((char)0x14) #define USH_KEY_SHIFT_HOME ((char)0x15) -#define USH_KEY_SHIFT_END ((char)0x16) +#define USH_KEY_SHIFT_END ((char)0x16) #define USH_CMD_CTX_PATH "/temp/.ush_cmd_ctx.bin" #define USH_CMD_RET_PATH "/temp/.ush_cmd_ret.bin" -#define USH_CMD_RET_FLAG_CWD 0x1ULL +#define USH_CMD_RET_FLAG_CWD 0x1ULL #define USH_CMD_RET_FLAG_EXIT 0x2ULL typedef struct ush_state { @@ -112,13 +112,7 @@ void ush_command_ret_reset(void); int ush_command_ret_write(const ush_cmd_ret *ret); int ush_command_ret_read(ush_cmd_ret *out_ret); int ush_try_exec_external(ush_state *sh, const char *cmd, const char *arg, int *out_success); -int ush_try_exec_external_with_fds(ush_state *sh, - const char *cmd, - const char *arg, - u64 stdin_fd, - u64 stdout_fd, - u64 stderr_fd, - int *out_success); +int ush_try_exec_external_with_fds(ush_state *sh, const char *cmd, const char *arg, u64 stdin_fd, u64 stdout_fd, + u64 stderr_fd, int *out_success); #endif - diff --git a/cleonos/c/apps/shell/shell_path.c b/cleonos/c/apps/shell/shell_path.c index 20dfbda..2610586 100644 --- a/cleonos/c/apps/shell/shell_path.c +++ b/cleonos/c/apps/shell/shell_path.c @@ -194,7 +194,8 @@ int ush_path_is_under_system(const char *path) { return 0; } - if (path[0] != '/' || path[1] != 's' || path[2] != 'y' || path[3] != 's' || path[4] != 't' || path[5] != 'e' || path[6] != 'm') { + if (path[0] != '/' || path[1] != 's' || path[2] != 'y' || path[3] != 's' || path[4] != 't' || path[5] != 'e' || + path[6] != 'm') { return 0; } diff --git a/cleonos/c/apps/shell_main.c b/cleonos/c/apps/shell_main.c index 5d21e71..9ba9908 100644 --- a/cleonos/c/apps/shell_main.c +++ b/cleonos/c/apps/shell_main.c @@ -7,8 +7,7 @@ int cleonos_app_main(void) { ush_init_state(&sh); ush_writeln("\x1B[92m[USER][SHELL]\x1B[0m interactive framework online"); - if (ush_run_script_file(&sh, "/shell/init.cmd") == 0 && - ush_run_script_file(&sh, "/shell/INIT.CMD") == 0 && + if (ush_run_script_file(&sh, "/shell/init.cmd") == 0 && ush_run_script_file(&sh, "/shell/INIT.CMD") == 0 && ush_run_script_file(&sh, "/SHELL/INIT.CMD") == 0) { ush_writeln("\x1B[33m[USER][SHELL]\x1B[0m init script not found, continue interactive mode"); } diff --git a/cleonos/c/apps/shstat_main.c b/cleonos/c/apps/shstat_main.c index 8bc53bf..538b21d 100644 --- a/cleonos/c/apps/shstat_main.c +++ b/cleonos/c/apps/shstat_main.c @@ -10,7 +10,6 @@ static int ush_cmd_shstat(const ush_state *sh) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -52,4 +51,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/shutdown_main.c b/cleonos/c/apps/shutdown_main.c index 92d3592..690c2ea 100644 --- a/cleonos/c/apps/shutdown_main.c +++ b/cleonos/c/apps/shutdown_main.c @@ -5,7 +5,6 @@ static int ush_cmd_shutdown(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -47,4 +46,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/sleep_main.c b/cleonos/c/apps/sleep_main.c index 309105c..79fb189 100644 --- a/cleonos/c/apps/sleep_main.c +++ b/cleonos/c/apps/sleep_main.c @@ -18,7 +18,6 @@ static int ush_cmd_sleep(const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -62,4 +61,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/sort_main.c b/cleonos/c/apps/sort_main.c index 223cac0..d6c3d3e 100644 --- a/cleonos/c/apps/sort_main.c +++ b/cleonos/c/apps/sort_main.c @@ -28,7 +28,8 @@ static int ush_sort_parse_args(const char *arg, char *out_file, u64 out_file_siz return 1; } -static int ush_sort_load_input(const ush_state *sh, const char *file_arg, char *out_buf, u64 out_buf_size, u64 *out_len) { +static int ush_sort_load_input(const ush_state *sh, const char *file_arg, char *out_buf, u64 out_buf_size, + u64 *out_len) { char path[USH_PATH_MAX]; u64 size; u64 got; @@ -221,7 +222,6 @@ static int ush_cmd_sort(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; diff --git a/cleonos/c/apps/spawn_main.c b/cleonos/c/apps/spawn_main.c index f254e8d..a01fd57 100644 --- a/cleonos/c/apps/spawn_main.c +++ b/cleonos/c/apps/spawn_main.c @@ -48,7 +48,6 @@ static int ush_cmd_spawn(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -92,4 +91,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/spin_main.c b/cleonos/c/apps/spin_main.c index c7060b6..0f5a81c 100644 --- a/cleonos/c/apps/spin_main.c +++ b/cleonos/c/apps/spin_main.c @@ -1,8 +1,7 @@ #include int cleonos_app_main(void) { - static const char banner[] = - "spin: busy loop started (test Alt+Ctrl+C force stop)\n"; + static const char banner[] = "spin: busy loop started (test Alt+Ctrl+C force stop)\n"; volatile unsigned long long noise = 0xC1E0C1E0ULL; (void)fputs(banner, 1); diff --git a/cleonos/c/apps/stats_main.c b/cleonos/c/apps/stats_main.c index 8c5cbd3..1832be4 100644 --- a/cleonos/c/apps/stats_main.c +++ b/cleonos/c/apps/stats_main.c @@ -74,7 +74,6 @@ static int ush_cmd_stats(const ush_state *sh) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -116,4 +115,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/sysstat_main.c b/cleonos/c/apps/sysstat_main.c index 6704623..0d03b4f 100644 --- a/cleonos/c/apps/sysstat_main.c +++ b/cleonos/c/apps/sysstat_main.c @@ -12,79 +12,152 @@ typedef struct ush_sysstat_entry { static const char *ush_sysstat_name_for_id(u64 id) { switch (id) { - case CLEONOS_SYSCALL_LOG_WRITE: return "LOG_WRITE"; - case CLEONOS_SYSCALL_TIMER_TICKS: return "TIMER_TICKS"; - case CLEONOS_SYSCALL_TASK_COUNT: return "TASK_COUNT"; - case CLEONOS_SYSCALL_CUR_TASK: return "CUR_TASK"; - case CLEONOS_SYSCALL_SERVICE_COUNT: return "SERVICE_COUNT"; - case CLEONOS_SYSCALL_SERVICE_READY_COUNT: return "SERVICE_READY"; - case CLEONOS_SYSCALL_CONTEXT_SWITCHES: return "CONTEXT_SWITCH"; - case CLEONOS_SYSCALL_KELF_COUNT: return "KELF_COUNT"; - case CLEONOS_SYSCALL_KELF_RUNS: return "KELF_RUNS"; - case CLEONOS_SYSCALL_FS_NODE_COUNT: return "FS_NODE_COUNT"; - case CLEONOS_SYSCALL_FS_CHILD_COUNT: return "FS_CHILD_COUNT"; - case CLEONOS_SYSCALL_FS_GET_CHILD_NAME: return "FS_CHILD_NAME"; - case CLEONOS_SYSCALL_FS_READ: return "FS_READ"; - case CLEONOS_SYSCALL_EXEC_PATH: return "EXEC_PATH"; - case CLEONOS_SYSCALL_EXEC_REQUESTS: return "EXEC_REQUESTS"; - case CLEONOS_SYSCALL_EXEC_SUCCESS: return "EXEC_SUCCESS"; - case CLEONOS_SYSCALL_USER_SHELL_READY: return "USER_SHELL_READY"; - case CLEONOS_SYSCALL_USER_EXEC_REQUESTED: return "USER_EXEC_REQ"; - case CLEONOS_SYSCALL_USER_LAUNCH_TRIES: return "USER_LAUNCH_TRY"; - case CLEONOS_SYSCALL_USER_LAUNCH_OK: return "USER_LAUNCH_OK"; - case CLEONOS_SYSCALL_USER_LAUNCH_FAIL: return "USER_LAUNCH_FAIL"; - case CLEONOS_SYSCALL_TTY_COUNT: return "TTY_COUNT"; - case CLEONOS_SYSCALL_TTY_ACTIVE: return "TTY_ACTIVE"; - case CLEONOS_SYSCALL_TTY_SWITCH: return "TTY_SWITCH"; - case CLEONOS_SYSCALL_TTY_WRITE: return "TTY_WRITE"; - case CLEONOS_SYSCALL_TTY_WRITE_CHAR: return "TTY_WRITE_CHAR"; - case CLEONOS_SYSCALL_KBD_GET_CHAR: return "KBD_GET_CHAR"; - case CLEONOS_SYSCALL_FS_STAT_TYPE: return "FS_STAT_TYPE"; - case CLEONOS_SYSCALL_FS_STAT_SIZE: return "FS_STAT_SIZE"; - case CLEONOS_SYSCALL_FS_MKDIR: return "FS_MKDIR"; - case CLEONOS_SYSCALL_FS_WRITE: return "FS_WRITE"; - case CLEONOS_SYSCALL_FS_APPEND: return "FS_APPEND"; - case CLEONOS_SYSCALL_FS_REMOVE: return "FS_REMOVE"; - case CLEONOS_SYSCALL_LOG_JOURNAL_COUNT: return "LOG_JCOUNT"; - case CLEONOS_SYSCALL_LOG_JOURNAL_READ: return "LOG_JREAD"; - case CLEONOS_SYSCALL_KBD_BUFFERED: return "KBD_BUFFERED"; - case CLEONOS_SYSCALL_KBD_PUSHED: return "KBD_PUSHED"; - case CLEONOS_SYSCALL_KBD_POPPED: return "KBD_POPPED"; - case CLEONOS_SYSCALL_KBD_DROPPED: return "KBD_DROPPED"; - case CLEONOS_SYSCALL_KBD_HOTKEY_SWITCHES: return "KBD_HOTKEYS"; - case CLEONOS_SYSCALL_GETPID: return "GETPID"; - case CLEONOS_SYSCALL_SPAWN_PATH: return "SPAWN_PATH"; - case CLEONOS_SYSCALL_WAITPID: return "WAITPID"; - case CLEONOS_SYSCALL_EXIT: return "EXIT"; - case CLEONOS_SYSCALL_SLEEP_TICKS: return "SLEEP_TICKS"; - case CLEONOS_SYSCALL_YIELD: return "YIELD"; - case CLEONOS_SYSCALL_SHUTDOWN: return "SHUTDOWN"; - case CLEONOS_SYSCALL_RESTART: return "RESTART"; - case CLEONOS_SYSCALL_AUDIO_AVAILABLE: return "AUDIO_AVAIL"; - case CLEONOS_SYSCALL_AUDIO_PLAY_TONE: return "AUDIO_TONE"; - case CLEONOS_SYSCALL_AUDIO_STOP: return "AUDIO_STOP"; - case CLEONOS_SYSCALL_EXEC_PATHV: return "EXEC_PATHV"; - case CLEONOS_SYSCALL_SPAWN_PATHV: return "SPAWN_PATHV"; - case CLEONOS_SYSCALL_PROC_ARGC: return "PROC_ARGC"; - case CLEONOS_SYSCALL_PROC_ARGV: return "PROC_ARGV"; - case CLEONOS_SYSCALL_PROC_ENVC: return "PROC_ENVC"; - case CLEONOS_SYSCALL_PROC_ENV: return "PROC_ENV"; - case CLEONOS_SYSCALL_PROC_LAST_SIGNAL: return "PROC_LAST_SIG"; - case CLEONOS_SYSCALL_PROC_FAULT_VECTOR: return "PROC_FAULT_VEC"; - case CLEONOS_SYSCALL_PROC_FAULT_ERROR: return "PROC_FAULT_ERR"; - case CLEONOS_SYSCALL_PROC_FAULT_RIP: return "PROC_FAULT_RIP"; - case CLEONOS_SYSCALL_PROC_COUNT: return "PROC_COUNT"; - case CLEONOS_SYSCALL_PROC_PID_AT: return "PROC_PID_AT"; - case CLEONOS_SYSCALL_PROC_SNAPSHOT: return "PROC_SNAPSHOT"; - case CLEONOS_SYSCALL_PROC_KILL: return "PROC_KILL"; - case CLEONOS_SYSCALL_KDBG_SYM: return "KDBG_SYM"; - case CLEONOS_SYSCALL_KDBG_BT: return "KDBG_BT"; - case CLEONOS_SYSCALL_KDBG_REGS: return "KDBG_REGS"; - case CLEONOS_SYSCALL_STATS_TOTAL: return "STATS_TOTAL"; - case CLEONOS_SYSCALL_STATS_ID_COUNT: return "STATS_ID_COUNT"; - case CLEONOS_SYSCALL_STATS_RECENT_WINDOW: return "STATS_RECENT_WIN"; - case CLEONOS_SYSCALL_STATS_RECENT_ID: return "STATS_RECENT_ID"; - default: return "UNKNOWN"; + case CLEONOS_SYSCALL_LOG_WRITE: + return "LOG_WRITE"; + case CLEONOS_SYSCALL_TIMER_TICKS: + return "TIMER_TICKS"; + case CLEONOS_SYSCALL_TASK_COUNT: + return "TASK_COUNT"; + case CLEONOS_SYSCALL_CUR_TASK: + return "CUR_TASK"; + case CLEONOS_SYSCALL_SERVICE_COUNT: + return "SERVICE_COUNT"; + case CLEONOS_SYSCALL_SERVICE_READY_COUNT: + return "SERVICE_READY"; + case CLEONOS_SYSCALL_CONTEXT_SWITCHES: + return "CONTEXT_SWITCH"; + case CLEONOS_SYSCALL_KELF_COUNT: + return "KELF_COUNT"; + case CLEONOS_SYSCALL_KELF_RUNS: + return "KELF_RUNS"; + case CLEONOS_SYSCALL_FS_NODE_COUNT: + return "FS_NODE_COUNT"; + case CLEONOS_SYSCALL_FS_CHILD_COUNT: + return "FS_CHILD_COUNT"; + case CLEONOS_SYSCALL_FS_GET_CHILD_NAME: + return "FS_CHILD_NAME"; + case CLEONOS_SYSCALL_FS_READ: + return "FS_READ"; + case CLEONOS_SYSCALL_EXEC_PATH: + return "EXEC_PATH"; + case CLEONOS_SYSCALL_EXEC_REQUESTS: + return "EXEC_REQUESTS"; + case CLEONOS_SYSCALL_EXEC_SUCCESS: + return "EXEC_SUCCESS"; + case CLEONOS_SYSCALL_USER_SHELL_READY: + return "USER_SHELL_READY"; + case CLEONOS_SYSCALL_USER_EXEC_REQUESTED: + return "USER_EXEC_REQ"; + case CLEONOS_SYSCALL_USER_LAUNCH_TRIES: + return "USER_LAUNCH_TRY"; + case CLEONOS_SYSCALL_USER_LAUNCH_OK: + return "USER_LAUNCH_OK"; + case CLEONOS_SYSCALL_USER_LAUNCH_FAIL: + return "USER_LAUNCH_FAIL"; + case CLEONOS_SYSCALL_TTY_COUNT: + return "TTY_COUNT"; + case CLEONOS_SYSCALL_TTY_ACTIVE: + return "TTY_ACTIVE"; + case CLEONOS_SYSCALL_TTY_SWITCH: + return "TTY_SWITCH"; + case CLEONOS_SYSCALL_TTY_WRITE: + return "TTY_WRITE"; + case CLEONOS_SYSCALL_TTY_WRITE_CHAR: + return "TTY_WRITE_CHAR"; + case CLEONOS_SYSCALL_KBD_GET_CHAR: + return "KBD_GET_CHAR"; + case CLEONOS_SYSCALL_FS_STAT_TYPE: + return "FS_STAT_TYPE"; + case CLEONOS_SYSCALL_FS_STAT_SIZE: + return "FS_STAT_SIZE"; + case CLEONOS_SYSCALL_FS_MKDIR: + return "FS_MKDIR"; + case CLEONOS_SYSCALL_FS_WRITE: + return "FS_WRITE"; + case CLEONOS_SYSCALL_FS_APPEND: + return "FS_APPEND"; + case CLEONOS_SYSCALL_FS_REMOVE: + return "FS_REMOVE"; + case CLEONOS_SYSCALL_LOG_JOURNAL_COUNT: + return "LOG_JCOUNT"; + case CLEONOS_SYSCALL_LOG_JOURNAL_READ: + return "LOG_JREAD"; + case CLEONOS_SYSCALL_KBD_BUFFERED: + return "KBD_BUFFERED"; + case CLEONOS_SYSCALL_KBD_PUSHED: + return "KBD_PUSHED"; + case CLEONOS_SYSCALL_KBD_POPPED: + return "KBD_POPPED"; + case CLEONOS_SYSCALL_KBD_DROPPED: + return "KBD_DROPPED"; + case CLEONOS_SYSCALL_KBD_HOTKEY_SWITCHES: + return "KBD_HOTKEYS"; + case CLEONOS_SYSCALL_GETPID: + return "GETPID"; + case CLEONOS_SYSCALL_SPAWN_PATH: + return "SPAWN_PATH"; + case CLEONOS_SYSCALL_WAITPID: + return "WAITPID"; + case CLEONOS_SYSCALL_EXIT: + return "EXIT"; + case CLEONOS_SYSCALL_SLEEP_TICKS: + return "SLEEP_TICKS"; + case CLEONOS_SYSCALL_YIELD: + return "YIELD"; + case CLEONOS_SYSCALL_SHUTDOWN: + return "SHUTDOWN"; + case CLEONOS_SYSCALL_RESTART: + return "RESTART"; + case CLEONOS_SYSCALL_AUDIO_AVAILABLE: + return "AUDIO_AVAIL"; + case CLEONOS_SYSCALL_AUDIO_PLAY_TONE: + return "AUDIO_TONE"; + case CLEONOS_SYSCALL_AUDIO_STOP: + return "AUDIO_STOP"; + case CLEONOS_SYSCALL_EXEC_PATHV: + return "EXEC_PATHV"; + case CLEONOS_SYSCALL_SPAWN_PATHV: + return "SPAWN_PATHV"; + case CLEONOS_SYSCALL_PROC_ARGC: + return "PROC_ARGC"; + case CLEONOS_SYSCALL_PROC_ARGV: + return "PROC_ARGV"; + case CLEONOS_SYSCALL_PROC_ENVC: + return "PROC_ENVC"; + case CLEONOS_SYSCALL_PROC_ENV: + return "PROC_ENV"; + case CLEONOS_SYSCALL_PROC_LAST_SIGNAL: + return "PROC_LAST_SIG"; + case CLEONOS_SYSCALL_PROC_FAULT_VECTOR: + return "PROC_FAULT_VEC"; + case CLEONOS_SYSCALL_PROC_FAULT_ERROR: + return "PROC_FAULT_ERR"; + case CLEONOS_SYSCALL_PROC_FAULT_RIP: + return "PROC_FAULT_RIP"; + case CLEONOS_SYSCALL_PROC_COUNT: + return "PROC_COUNT"; + case CLEONOS_SYSCALL_PROC_PID_AT: + return "PROC_PID_AT"; + case CLEONOS_SYSCALL_PROC_SNAPSHOT: + return "PROC_SNAPSHOT"; + case CLEONOS_SYSCALL_PROC_KILL: + return "PROC_KILL"; + case CLEONOS_SYSCALL_KDBG_SYM: + return "KDBG_SYM"; + case CLEONOS_SYSCALL_KDBG_BT: + return "KDBG_BT"; + case CLEONOS_SYSCALL_KDBG_REGS: + return "KDBG_REGS"; + case CLEONOS_SYSCALL_STATS_TOTAL: + return "STATS_TOTAL"; + case CLEONOS_SYSCALL_STATS_ID_COUNT: + return "STATS_ID_COUNT"; + case CLEONOS_SYSCALL_STATS_RECENT_WINDOW: + return "STATS_RECENT_WIN"; + case CLEONOS_SYSCALL_STATS_RECENT_ID: + return "STATS_RECENT_ID"; + default: + return "UNKNOWN"; } } @@ -141,7 +214,8 @@ static int ush_sysstat_parse_args(const char *arg, int *out_show_all, u64 *out_l } if (ush_streq(token, "-n") != 0 || ush_streq(token, "--top") != 0) { - if (ush_sysstat_next_token(&cursor, token, (u64)sizeof(token)) == 0 || ush_parse_u64_dec(token, &limit) == 0) { + if (ush_sysstat_next_token(&cursor, token, (u64)sizeof(token)) == 0 || + ush_parse_u64_dec(token, &limit) == 0) { return 0; } continue; diff --git a/cleonos/c/apps/tail_main.c b/cleonos/c/apps/tail_main.c index 43957d2..15ceba9 100644 --- a/cleonos/c/apps/tail_main.c +++ b/cleonos/c/apps/tail_main.c @@ -198,7 +198,6 @@ static int ush_cmd_tail(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; diff --git a/cleonos/c/apps/taskstat_main.c b/cleonos/c/apps/taskstat_main.c index 93bcd61..ee4e4be 100644 --- a/cleonos/c/apps/taskstat_main.c +++ b/cleonos/c/apps/taskstat_main.c @@ -8,7 +8,6 @@ static int ush_cmd_taskstat(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -50,4 +49,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/top_main.c b/cleonos/c/apps/top_main.c index 1df3388..88b30c7 100644 --- a/cleonos/c/apps/top_main.c +++ b/cleonos/c/apps/top_main.c @@ -117,8 +117,7 @@ static void ush_top_render_frame(u64 frame_index, u64 delay_ticks) { continue; } - if (snap.state != CLEONOS_PROC_STATE_PENDING && - snap.state != CLEONOS_PROC_STATE_RUNNING && + if (snap.state != CLEONOS_PROC_STATE_PENDING && snap.state != CLEONOS_PROC_STATE_RUNNING && snap.state != CLEONOS_PROC_STATE_STOPPED) { continue; } diff --git a/cleonos/c/apps/touch_main.c b/cleonos/c/apps/touch_main.c index 75c9a53..056b476 100644 --- a/cleonos/c/apps/touch_main.c +++ b/cleonos/c/apps/touch_main.c @@ -26,7 +26,6 @@ static int ush_cmd_touch(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -70,4 +69,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/tty_main.c b/cleonos/c/apps/tty_main.c index fd13d38..0c94d78 100644 --- a/cleonos/c/apps/tty_main.c +++ b/cleonos/c/apps/tty_main.c @@ -33,7 +33,6 @@ static int ush_cmd_tty(const char *arg) { } } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -77,4 +76,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/uniq_main.c b/cleonos/c/apps/uniq_main.c index 78f980e..71f3380 100644 --- a/cleonos/c/apps/uniq_main.c +++ b/cleonos/c/apps/uniq_main.c @@ -169,7 +169,6 @@ static int ush_cmd_uniq(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; diff --git a/cleonos/c/apps/userstat_main.c b/cleonos/c/apps/userstat_main.c index a922af7..e29227d 100644 --- a/cleonos/c/apps/userstat_main.c +++ b/cleonos/c/apps/userstat_main.c @@ -13,7 +13,6 @@ static int ush_cmd_userstat(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -55,4 +54,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/wait_main.c b/cleonos/c/apps/wait_main.c index b5b5983..fac1d52 100644 --- a/cleonos/c/apps/wait_main.c +++ b/cleonos/c/apps/wait_main.c @@ -37,7 +37,6 @@ static int ush_cmd_wait(const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -81,4 +80,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/wavplay_main.c b/cleonos/c/apps/wavplay_main.c index 7a9a424..7333449 100644 --- a/cleonos/c/apps/wavplay_main.c +++ b/cleonos/c/apps/wavplay_main.c @@ -1,10 +1,10 @@ #include "cmd_runtime.h" -#define USH_WAVPLAY_DEFAULT_STEPS 256ULL -#define USH_WAVPLAY_MAX_STEPS 4096ULL -#define USH_WAVPLAY_DEFAULT_TICKS 1ULL -#define USH_WAVPLAY_MAX_TICKS 64ULL -#define USH_WAVPLAY_RUN_TICK_MAX 512ULL +#define USH_WAVPLAY_DEFAULT_STEPS 256ULL +#define USH_WAVPLAY_MAX_STEPS 4096ULL +#define USH_WAVPLAY_DEFAULT_TICKS 1ULL +#define USH_WAVPLAY_MAX_TICKS 64ULL +#define USH_WAVPLAY_RUN_TICK_MAX 512ULL typedef struct ush_wav_info { u64 data_size; @@ -20,9 +20,7 @@ static unsigned int ush_wav_le16(const unsigned char *ptr) { } static unsigned int ush_wav_le32(const unsigned char *ptr) { - return (unsigned int)ptr[0] | - ((unsigned int)ptr[1] << 8U) | - ((unsigned int)ptr[2] << 16U) | + return (unsigned int)ptr[0] | ((unsigned int)ptr[1] << 8U) | ((unsigned int)ptr[2] << 16U) | ((unsigned int)ptr[3] << 24U); } @@ -31,9 +29,7 @@ static int ush_wav_tag_eq(const unsigned char *tag, const char *lit4) { return 0; } - return (tag[0] == (unsigned char)lit4[0] && - tag[1] == (unsigned char)lit4[1] && - tag[2] == (unsigned char)lit4[2] && + return (tag[0] == (unsigned char)lit4[0] && tag[1] == (unsigned char)lit4[1] && tag[2] == (unsigned char)lit4[2] && tag[3] == (unsigned char)lit4[3]) ? 1 : 0; @@ -278,11 +274,7 @@ static u64 ush_wav_frame_deviation(const ush_wav_info *info, const unsigned char return 0ULL; } -static int ush_wavplay_parse_args(const char *arg, - char *out_path, - u64 out_path_size, - u64 *out_steps, - u64 *out_ticks, +static int ush_wavplay_parse_args(const char *arg, char *out_path, u64 out_path_size, u64 *out_steps, u64 *out_ticks, int *out_stop) { char first[USH_PATH_MAX]; char second[32]; diff --git a/cleonos/c/apps/wc_main.c b/cleonos/c/apps/wc_main.c index 9f962c0..a1357b3 100644 --- a/cleonos/c/apps/wc_main.c +++ b/cleonos/c/apps/wc_main.c @@ -163,7 +163,6 @@ static int ush_cmd_wc(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; diff --git a/cleonos/c/apps/write_main.c b/cleonos/c/apps/write_main.c index 4e07b95..d4e368f 100644 --- a/cleonos/c/apps/write_main.c +++ b/cleonos/c/apps/write_main.c @@ -44,7 +44,6 @@ static int ush_cmd_write(const ush_state *sh, const char *arg) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -88,4 +87,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/yield_main.c b/cleonos/c/apps/yield_main.c index 69b7e89..303c61c 100644 --- a/cleonos/c/apps/yield_main.c +++ b/cleonos/c/apps/yield_main.c @@ -4,7 +4,6 @@ static int ush_cmd_yield(void) { return 1; } - int cleonos_app_main(void) { ush_cmd_ctx ctx; ush_cmd_ret ret; @@ -46,4 +45,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/include/cleonos_syscall.h b/cleonos/c/include/cleonos_syscall.h index fc31c3e..4a393e7 100644 --- a/cleonos/c/include/cleonos_syscall.h +++ b/cleonos/c/include/cleonos_syscall.h @@ -7,24 +7,24 @@ typedef unsigned long long usize; #define CLEONOS_FS_NAME_MAX 96ULL #define CLEONOS_PROC_PATH_MAX 192ULL -#define CLEONOS_PROC_STATE_UNUSED 0ULL +#define CLEONOS_PROC_STATE_UNUSED 0ULL #define CLEONOS_PROC_STATE_PENDING 1ULL #define CLEONOS_PROC_STATE_RUNNING 2ULL -#define CLEONOS_PROC_STATE_EXITED 3ULL +#define CLEONOS_PROC_STATE_EXITED 3ULL #define CLEONOS_PROC_STATE_STOPPED 4ULL -#define CLEONOS_SIGKILL 9ULL +#define CLEONOS_SIGKILL 9ULL #define CLEONOS_SIGTERM 15ULL #define CLEONOS_SIGCONT 18ULL #define CLEONOS_SIGSTOP 19ULL #define CLEONOS_O_RDONLY 0x0000ULL #define CLEONOS_O_WRONLY 0x0001ULL -#define CLEONOS_O_RDWR 0x0002ULL -#define CLEONOS_O_CREAT 0x0040ULL -#define CLEONOS_O_TRUNC 0x0200ULL +#define CLEONOS_O_RDWR 0x0002ULL +#define CLEONOS_O_CREAT 0x0040ULL +#define CLEONOS_O_TRUNC 0x0200ULL #define CLEONOS_O_APPEND 0x0400ULL -#define CLEONOS_FD_INHERIT ((u64)-1) +#define CLEONOS_FD_INHERIT ((u64) - 1) typedef struct cleonos_proc_snapshot { u64 pid; @@ -43,87 +43,87 @@ typedef struct cleonos_proc_snapshot { char path[CLEONOS_PROC_PATH_MAX]; } cleonos_proc_snapshot; -#define CLEONOS_SYSCALL_LOG_WRITE 0ULL -#define CLEONOS_SYSCALL_TIMER_TICKS 1ULL -#define CLEONOS_SYSCALL_TASK_COUNT 2ULL -#define CLEONOS_SYSCALL_CUR_TASK 3ULL -#define CLEONOS_SYSCALL_SERVICE_COUNT 4ULL +#define CLEONOS_SYSCALL_LOG_WRITE 0ULL +#define CLEONOS_SYSCALL_TIMER_TICKS 1ULL +#define CLEONOS_SYSCALL_TASK_COUNT 2ULL +#define CLEONOS_SYSCALL_CUR_TASK 3ULL +#define CLEONOS_SYSCALL_SERVICE_COUNT 4ULL #define CLEONOS_SYSCALL_SERVICE_READY_COUNT 5ULL -#define CLEONOS_SYSCALL_CONTEXT_SWITCHES 6ULL -#define CLEONOS_SYSCALL_KELF_COUNT 7ULL -#define CLEONOS_SYSCALL_KELF_RUNS 8ULL -#define CLEONOS_SYSCALL_FS_NODE_COUNT 9ULL -#define CLEONOS_SYSCALL_FS_CHILD_COUNT 10ULL -#define CLEONOS_SYSCALL_FS_GET_CHILD_NAME 11ULL -#define CLEONOS_SYSCALL_FS_READ 12ULL -#define CLEONOS_SYSCALL_EXEC_PATH 13ULL -#define CLEONOS_SYSCALL_EXEC_REQUESTS 14ULL -#define CLEONOS_SYSCALL_EXEC_SUCCESS 15ULL -#define CLEONOS_SYSCALL_USER_SHELL_READY 16ULL +#define CLEONOS_SYSCALL_CONTEXT_SWITCHES 6ULL +#define CLEONOS_SYSCALL_KELF_COUNT 7ULL +#define CLEONOS_SYSCALL_KELF_RUNS 8ULL +#define CLEONOS_SYSCALL_FS_NODE_COUNT 9ULL +#define CLEONOS_SYSCALL_FS_CHILD_COUNT 10ULL +#define CLEONOS_SYSCALL_FS_GET_CHILD_NAME 11ULL +#define CLEONOS_SYSCALL_FS_READ 12ULL +#define CLEONOS_SYSCALL_EXEC_PATH 13ULL +#define CLEONOS_SYSCALL_EXEC_REQUESTS 14ULL +#define CLEONOS_SYSCALL_EXEC_SUCCESS 15ULL +#define CLEONOS_SYSCALL_USER_SHELL_READY 16ULL #define CLEONOS_SYSCALL_USER_EXEC_REQUESTED 17ULL -#define CLEONOS_SYSCALL_USER_LAUNCH_TRIES 18ULL -#define CLEONOS_SYSCALL_USER_LAUNCH_OK 19ULL -#define CLEONOS_SYSCALL_USER_LAUNCH_FAIL 20ULL -#define CLEONOS_SYSCALL_TTY_COUNT 21ULL -#define CLEONOS_SYSCALL_TTY_ACTIVE 22ULL -#define CLEONOS_SYSCALL_TTY_SWITCH 23ULL -#define CLEONOS_SYSCALL_TTY_WRITE 24ULL -#define CLEONOS_SYSCALL_TTY_WRITE_CHAR 25ULL -#define CLEONOS_SYSCALL_KBD_GET_CHAR 26ULL -#define CLEONOS_SYSCALL_FS_STAT_TYPE 27ULL -#define CLEONOS_SYSCALL_FS_STAT_SIZE 28ULL -#define CLEONOS_SYSCALL_FS_MKDIR 29ULL -#define CLEONOS_SYSCALL_FS_WRITE 30ULL -#define CLEONOS_SYSCALL_FS_APPEND 31ULL -#define CLEONOS_SYSCALL_FS_REMOVE 32ULL -#define CLEONOS_SYSCALL_LOG_JOURNAL_COUNT 33ULL -#define CLEONOS_SYSCALL_LOG_JOURNAL_READ 34ULL -#define CLEONOS_SYSCALL_KBD_BUFFERED 35ULL -#define CLEONOS_SYSCALL_KBD_PUSHED 36ULL -#define CLEONOS_SYSCALL_KBD_POPPED 37ULL -#define CLEONOS_SYSCALL_KBD_DROPPED 38ULL +#define CLEONOS_SYSCALL_USER_LAUNCH_TRIES 18ULL +#define CLEONOS_SYSCALL_USER_LAUNCH_OK 19ULL +#define CLEONOS_SYSCALL_USER_LAUNCH_FAIL 20ULL +#define CLEONOS_SYSCALL_TTY_COUNT 21ULL +#define CLEONOS_SYSCALL_TTY_ACTIVE 22ULL +#define CLEONOS_SYSCALL_TTY_SWITCH 23ULL +#define CLEONOS_SYSCALL_TTY_WRITE 24ULL +#define CLEONOS_SYSCALL_TTY_WRITE_CHAR 25ULL +#define CLEONOS_SYSCALL_KBD_GET_CHAR 26ULL +#define CLEONOS_SYSCALL_FS_STAT_TYPE 27ULL +#define CLEONOS_SYSCALL_FS_STAT_SIZE 28ULL +#define CLEONOS_SYSCALL_FS_MKDIR 29ULL +#define CLEONOS_SYSCALL_FS_WRITE 30ULL +#define CLEONOS_SYSCALL_FS_APPEND 31ULL +#define CLEONOS_SYSCALL_FS_REMOVE 32ULL +#define CLEONOS_SYSCALL_LOG_JOURNAL_COUNT 33ULL +#define CLEONOS_SYSCALL_LOG_JOURNAL_READ 34ULL +#define CLEONOS_SYSCALL_KBD_BUFFERED 35ULL +#define CLEONOS_SYSCALL_KBD_PUSHED 36ULL +#define CLEONOS_SYSCALL_KBD_POPPED 37ULL +#define CLEONOS_SYSCALL_KBD_DROPPED 38ULL #define CLEONOS_SYSCALL_KBD_HOTKEY_SWITCHES 39ULL -#define CLEONOS_SYSCALL_GETPID 40ULL -#define CLEONOS_SYSCALL_SPAWN_PATH 41ULL -#define CLEONOS_SYSCALL_WAITPID 42ULL -#define CLEONOS_SYSCALL_EXIT 43ULL -#define CLEONOS_SYSCALL_SLEEP_TICKS 44ULL -#define CLEONOS_SYSCALL_YIELD 45ULL -#define CLEONOS_SYSCALL_SHUTDOWN 46ULL -#define CLEONOS_SYSCALL_RESTART 47ULL -#define CLEONOS_SYSCALL_AUDIO_AVAILABLE 48ULL -#define CLEONOS_SYSCALL_AUDIO_PLAY_TONE 49ULL -#define CLEONOS_SYSCALL_AUDIO_STOP 50ULL -#define CLEONOS_SYSCALL_EXEC_PATHV 51ULL -#define CLEONOS_SYSCALL_SPAWN_PATHV 52ULL -#define CLEONOS_SYSCALL_PROC_ARGC 53ULL -#define CLEONOS_SYSCALL_PROC_ARGV 54ULL -#define CLEONOS_SYSCALL_PROC_ENVC 55ULL -#define CLEONOS_SYSCALL_PROC_ENV 56ULL -#define CLEONOS_SYSCALL_PROC_LAST_SIGNAL 57ULL -#define CLEONOS_SYSCALL_PROC_FAULT_VECTOR 58ULL -#define CLEONOS_SYSCALL_PROC_FAULT_ERROR 59ULL -#define CLEONOS_SYSCALL_PROC_FAULT_RIP 60ULL -#define CLEONOS_SYSCALL_PROC_COUNT 61ULL -#define CLEONOS_SYSCALL_PROC_PID_AT 62ULL -#define CLEONOS_SYSCALL_PROC_SNAPSHOT 63ULL -#define CLEONOS_SYSCALL_PROC_KILL 64ULL -#define CLEONOS_SYSCALL_KDBG_SYM 65ULL -#define CLEONOS_SYSCALL_KDBG_BT 66ULL -#define CLEONOS_SYSCALL_KDBG_REGS 67ULL -#define CLEONOS_SYSCALL_STATS_TOTAL 68ULL -#define CLEONOS_SYSCALL_STATS_ID_COUNT 69ULL +#define CLEONOS_SYSCALL_GETPID 40ULL +#define CLEONOS_SYSCALL_SPAWN_PATH 41ULL +#define CLEONOS_SYSCALL_WAITPID 42ULL +#define CLEONOS_SYSCALL_EXIT 43ULL +#define CLEONOS_SYSCALL_SLEEP_TICKS 44ULL +#define CLEONOS_SYSCALL_YIELD 45ULL +#define CLEONOS_SYSCALL_SHUTDOWN 46ULL +#define CLEONOS_SYSCALL_RESTART 47ULL +#define CLEONOS_SYSCALL_AUDIO_AVAILABLE 48ULL +#define CLEONOS_SYSCALL_AUDIO_PLAY_TONE 49ULL +#define CLEONOS_SYSCALL_AUDIO_STOP 50ULL +#define CLEONOS_SYSCALL_EXEC_PATHV 51ULL +#define CLEONOS_SYSCALL_SPAWN_PATHV 52ULL +#define CLEONOS_SYSCALL_PROC_ARGC 53ULL +#define CLEONOS_SYSCALL_PROC_ARGV 54ULL +#define CLEONOS_SYSCALL_PROC_ENVC 55ULL +#define CLEONOS_SYSCALL_PROC_ENV 56ULL +#define CLEONOS_SYSCALL_PROC_LAST_SIGNAL 57ULL +#define CLEONOS_SYSCALL_PROC_FAULT_VECTOR 58ULL +#define CLEONOS_SYSCALL_PROC_FAULT_ERROR 59ULL +#define CLEONOS_SYSCALL_PROC_FAULT_RIP 60ULL +#define CLEONOS_SYSCALL_PROC_COUNT 61ULL +#define CLEONOS_SYSCALL_PROC_PID_AT 62ULL +#define CLEONOS_SYSCALL_PROC_SNAPSHOT 63ULL +#define CLEONOS_SYSCALL_PROC_KILL 64ULL +#define CLEONOS_SYSCALL_KDBG_SYM 65ULL +#define CLEONOS_SYSCALL_KDBG_BT 66ULL +#define CLEONOS_SYSCALL_KDBG_REGS 67ULL +#define CLEONOS_SYSCALL_STATS_TOTAL 68ULL +#define CLEONOS_SYSCALL_STATS_ID_COUNT 69ULL #define CLEONOS_SYSCALL_STATS_RECENT_WINDOW 70ULL -#define CLEONOS_SYSCALL_STATS_RECENT_ID 71ULL -#define CLEONOS_SYSCALL_FD_OPEN 72ULL -#define CLEONOS_SYSCALL_FD_READ 73ULL -#define CLEONOS_SYSCALL_FD_WRITE 74ULL -#define CLEONOS_SYSCALL_FD_CLOSE 75ULL -#define CLEONOS_SYSCALL_FD_DUP 76ULL -#define CLEONOS_SYSCALL_DL_OPEN 77ULL -#define CLEONOS_SYSCALL_DL_CLOSE 78ULL -#define CLEONOS_SYSCALL_DL_SYM 79ULL -#define CLEONOS_SYSCALL_EXEC_PATHV_IO 80ULL +#define CLEONOS_SYSCALL_STATS_RECENT_ID 71ULL +#define CLEONOS_SYSCALL_FD_OPEN 72ULL +#define CLEONOS_SYSCALL_FD_READ 73ULL +#define CLEONOS_SYSCALL_FD_WRITE 74ULL +#define CLEONOS_SYSCALL_FD_CLOSE 75ULL +#define CLEONOS_SYSCALL_FD_DUP 76ULL +#define CLEONOS_SYSCALL_DL_OPEN 77ULL +#define CLEONOS_SYSCALL_DL_CLOSE 78ULL +#define CLEONOS_SYSCALL_DL_SYM 79ULL +#define CLEONOS_SYSCALL_EXEC_PATHV_IO 80ULL u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2); u64 cleonos_sys_log_write(const char *message, u64 length); @@ -140,12 +140,8 @@ u64 cleonos_sys_fs_get_child_name(const char *dir_path, u64 index, char *out_nam u64 cleonos_sys_fs_read(const char *path, char *out_buffer, u64 buffer_size); u64 cleonos_sys_exec_path(const char *path); u64 cleonos_sys_exec_pathv(const char *path, const char *argv_line, const char *env_line); -u64 cleonos_sys_exec_pathv_io(const char *path, - const char *argv_line, - const char *env_line, - u64 stdin_fd, - u64 stdout_fd, - u64 stderr_fd); +u64 cleonos_sys_exec_pathv_io(const char *path, const char *argv_line, const char *env_line, u64 stdin_fd, + u64 stdout_fd, u64 stderr_fd); u64 cleonos_sys_exec_request_count(void); u64 cleonos_sys_exec_success_count(void); u64 cleonos_sys_user_shell_ready(void); diff --git a/cleonos/c/src/stdio.c b/cleonos/c/src/stdio.c index 9997baa..6ac2e51 100644 --- a/cleonos/c/src/stdio.c +++ b/cleonos/c/src/stdio.c @@ -4,7 +4,7 @@ typedef unsigned long clio_size_t; -#define CLIO_SINK_FD 1 +#define CLIO_SINK_FD 1 #define CLIO_SINK_BUF 2 struct clio_sink { @@ -126,10 +126,7 @@ static int clio_sink_emit(struct clio_sink *sink, const char *text, clio_size_t return 1; } -static clio_size_t clio_u64_to_base(unsigned long long value, - unsigned int base, - int uppercase, - char *out, +static clio_size_t clio_u64_to_base(unsigned long long value, unsigned int base, int uppercase, char *out, clio_size_t out_size) { char tmp[64]; clio_size_t pos = 0UL; diff --git a/cleonos/c/src/syscall.c b/cleonos/c/src/syscall.c index da8a43c..5f5cc94 100644 --- a/cleonos/c/src/syscall.c +++ b/cleonos/c/src/syscall.c @@ -3,12 +3,7 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2) { u64 ret; - __asm__ volatile( - "int $0x80" - : "=a"(ret) - : "a"(id), "b"(arg0), "c"(arg1), "d"(arg2) - : "memory" - ); + __asm__ volatile("int $0x80" : "=a"(ret) : "a"(id), "b"(arg0), "c"(arg1), "d"(arg2) : "memory"); return ret; } @@ -76,12 +71,8 @@ struct cleonos_exec_pathv_io_req { u64 stderr_fd; }; -u64 cleonos_sys_exec_pathv_io(const char *path, - const char *argv_line, - const char *env_line, - u64 stdin_fd, - u64 stdout_fd, - u64 stderr_fd) { +u64 cleonos_sys_exec_pathv_io(const char *path, const char *argv_line, const char *env_line, u64 stdin_fd, + u64 stdout_fd, u64 stderr_fd) { struct cleonos_exec_pathv_io_req req; req.env_line_ptr = (u64)env_line; @@ -231,7 +222,6 @@ u64 cleonos_sys_restart(void) { return cleonos_syscall(CLEONOS_SYSCALL_RESTART, 0ULL, 0ULL, 0ULL); } - u64 cleonos_sys_audio_available(void) { return cleonos_syscall(CLEONOS_SYSCALL_AUDIO_AVAILABLE, 0ULL, 0ULL, 0ULL); } diff --git a/clks/drivers/audio/pcspeaker.c b/clks/drivers/audio/pcspeaker.c index c1aab78..90ac465 100644 --- a/clks/drivers/audio/pcspeaker.c +++ b/clks/drivers/audio/pcspeaker.c @@ -4,9 +4,9 @@ #include #define CLKS_AUDIO_PIT_BASE_HZ 1193182ULL -#define CLKS_AUDIO_FREQ_MIN 20ULL -#define CLKS_AUDIO_FREQ_MAX 20000ULL -#define CLKS_AUDIO_TICKS_MAX 2048ULL +#define CLKS_AUDIO_FREQ_MIN 20ULL +#define CLKS_AUDIO_FREQ_MAX 20000ULL +#define CLKS_AUDIO_TICKS_MAX 2048ULL static clks_bool clks_audio_ready = CLKS_FALSE; static u64 clks_audio_played_count = 0ULL; diff --git a/clks/drivers/serial/serial.c b/clks/drivers/serial/serial.c index 38b3696..d8e3de2 100644 --- a/clks/drivers/serial/serial.c +++ b/clks/drivers/serial/serial.c @@ -36,12 +36,11 @@ void clks_serial_write_char(char ch) { #elif defined(CLKS_ARCH_AARCH64) #define CLKS_PL011_BASE 0x09000000ULL -#define CLKS_PL011_DR (*(volatile u32 *)(CLKS_PL011_BASE + 0x00)) -#define CLKS_PL011_FR (*(volatile u32 *)(CLKS_PL011_BASE + 0x18)) +#define CLKS_PL011_DR (*(volatile u32 *)(CLKS_PL011_BASE + 0x00)) +#define CLKS_PL011_FR (*(volatile u32 *)(CLKS_PL011_BASE + 0x18)) #define CLKS_PL011_TXFF (1U << 5) -void clks_serial_init(void) { -} +void clks_serial_init(void) {} void clks_serial_write_char(char ch) { while ((CLKS_PL011_FR & CLKS_PL011_TXFF) != 0) { diff --git a/clks/drivers/video/font8x8.c b/clks/drivers/video/font8x8.c index 010d0c3..de3c171 100644 --- a/clks/drivers/video/font8x8.c +++ b/clks/drivers/video/font8x8.c @@ -8,50 +8,28 @@ struct clks_glyph8x8 { }; static const struct clks_glyph8x8 clks_font_table[] = { - {' ', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {'[', {0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00}}, - {']', {0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x78, 0x00}}, - {':', {0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}}, - {'.', {0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00}}, - {'-', {0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00}}, - {'/', {0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00}}, - {'_', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00}}, - {'?', {0x3C, 0x42, 0x02, 0x0C, 0x10, 0x00, 0x10, 0x00}}, - {'0', {0x3C, 0x42, 0x46, 0x4A, 0x52, 0x62, 0x3C, 0x00}}, - {'1', {0x18, 0x28, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00}}, - {'2', {0x3C, 0x42, 0x02, 0x0C, 0x30, 0x40, 0x7E, 0x00}}, - {'3', {0x3C, 0x42, 0x02, 0x1C, 0x02, 0x42, 0x3C, 0x00}}, - {'4', {0x0C, 0x14, 0x24, 0x44, 0x7E, 0x04, 0x04, 0x00}}, - {'5', {0x7E, 0x40, 0x7C, 0x02, 0x02, 0x42, 0x3C, 0x00}}, - {'6', {0x1C, 0x20, 0x40, 0x7C, 0x42, 0x42, 0x3C, 0x00}}, - {'7', {0x7E, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00}}, - {'8', {0x3C, 0x42, 0x42, 0x3C, 0x42, 0x42, 0x3C, 0x00}}, - {'9', {0x3C, 0x42, 0x42, 0x3E, 0x02, 0x04, 0x38, 0x00}}, - {'A', {0x18, 0x24, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00}}, - {'B', {0x7C, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x00}}, - {'C', {0x3C, 0x42, 0x40, 0x40, 0x40, 0x42, 0x3C, 0x00}}, - {'D', {0x78, 0x44, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00}}, - {'E', {0x7E, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x7E, 0x00}}, - {'F', {0x7E, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x00}}, - {'G', {0x3C, 0x42, 0x40, 0x4E, 0x42, 0x42, 0x3C, 0x00}}, - {'H', {0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00}}, - {'I', {0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00}}, - {'J', {0x1E, 0x04, 0x04, 0x04, 0x44, 0x44, 0x38, 0x00}}, - {'K', {0x42, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x00}}, - {'L', {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00}}, - {'M', {0x42, 0x66, 0x5A, 0x5A, 0x42, 0x42, 0x42, 0x00}}, - {'N', {0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x42, 0x00}}, - {'O', {0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00}}, - {'P', {0x7C, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x00}}, - {'Q', {0x3C, 0x42, 0x42, 0x42, 0x4A, 0x44, 0x3A, 0x00}}, - {'R', {0x7C, 0x42, 0x42, 0x7C, 0x48, 0x44, 0x42, 0x00}}, - {'S', {0x3C, 0x42, 0x40, 0x3C, 0x02, 0x42, 0x3C, 0x00}}, - {'T', {0x7F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00}}, - {'U', {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00}}, - {'V', {0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00}}, - {'W', {0x42, 0x42, 0x42, 0x5A, 0x5A, 0x66, 0x42, 0x00}}, - {'X', {0x42, 0x42, 0x24, 0x18, 0x24, 0x42, 0x42, 0x00}}, - {'Y', {0x42, 0x42, 0x24, 0x18, 0x08, 0x08, 0x08, 0x00}}, + {' ', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, {'[', {0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00}}, + {']', {0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x78, 0x00}}, {':', {0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}}, + {'.', {0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00}}, {'-', {0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00}}, + {'/', {0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00}}, {'_', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00}}, + {'?', {0x3C, 0x42, 0x02, 0x0C, 0x10, 0x00, 0x10, 0x00}}, {'0', {0x3C, 0x42, 0x46, 0x4A, 0x52, 0x62, 0x3C, 0x00}}, + {'1', {0x18, 0x28, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00}}, {'2', {0x3C, 0x42, 0x02, 0x0C, 0x30, 0x40, 0x7E, 0x00}}, + {'3', {0x3C, 0x42, 0x02, 0x1C, 0x02, 0x42, 0x3C, 0x00}}, {'4', {0x0C, 0x14, 0x24, 0x44, 0x7E, 0x04, 0x04, 0x00}}, + {'5', {0x7E, 0x40, 0x7C, 0x02, 0x02, 0x42, 0x3C, 0x00}}, {'6', {0x1C, 0x20, 0x40, 0x7C, 0x42, 0x42, 0x3C, 0x00}}, + {'7', {0x7E, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00}}, {'8', {0x3C, 0x42, 0x42, 0x3C, 0x42, 0x42, 0x3C, 0x00}}, + {'9', {0x3C, 0x42, 0x42, 0x3E, 0x02, 0x04, 0x38, 0x00}}, {'A', {0x18, 0x24, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00}}, + {'B', {0x7C, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x00}}, {'C', {0x3C, 0x42, 0x40, 0x40, 0x40, 0x42, 0x3C, 0x00}}, + {'D', {0x78, 0x44, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00}}, {'E', {0x7E, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x7E, 0x00}}, + {'F', {0x7E, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x00}}, {'G', {0x3C, 0x42, 0x40, 0x4E, 0x42, 0x42, 0x3C, 0x00}}, + {'H', {0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00}}, {'I', {0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00}}, + {'J', {0x1E, 0x04, 0x04, 0x04, 0x44, 0x44, 0x38, 0x00}}, {'K', {0x42, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x00}}, + {'L', {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00}}, {'M', {0x42, 0x66, 0x5A, 0x5A, 0x42, 0x42, 0x42, 0x00}}, + {'N', {0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x42, 0x00}}, {'O', {0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00}}, + {'P', {0x7C, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x00}}, {'Q', {0x3C, 0x42, 0x42, 0x42, 0x4A, 0x44, 0x3A, 0x00}}, + {'R', {0x7C, 0x42, 0x42, 0x7C, 0x48, 0x44, 0x42, 0x00}}, {'S', {0x3C, 0x42, 0x40, 0x3C, 0x02, 0x42, 0x3C, 0x00}}, + {'T', {0x7F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00}}, {'U', {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00}}, + {'V', {0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00}}, {'W', {0x42, 0x42, 0x42, 0x5A, 0x5A, 0x66, 0x42, 0x00}}, + {'X', {0x42, 0x42, 0x24, 0x18, 0x24, 0x42, 0x42, 0x00}}, {'Y', {0x42, 0x42, 0x24, 0x18, 0x08, 0x08, 0x08, 0x00}}, {'Z', {0x7E, 0x02, 0x04, 0x18, 0x20, 0x40, 0x7E, 0x00}}, }; diff --git a/clks/drivers/video/framebuffer.c b/clks/drivers/video/framebuffer.c index 4279f54..46f7337 100644 --- a/clks/drivers/video/framebuffer.c +++ b/clks/drivers/video/framebuffer.c @@ -181,11 +181,8 @@ void clks_fb_scroll_up(u32 pixel_rows, u32 fill_rgb) { row_bytes = (usize)clks_fb.info.pitch; move_bytes = (usize)(clks_fb.info.height - pixel_rows) * row_bytes; - clks_memmove( - (void *)clks_fb.address, - (const void *)(clks_fb.address + ((usize)pixel_rows * row_bytes)), - move_bytes - ); + clks_memmove((void *)clks_fb.address, (const void *)(clks_fb.address + ((usize)pixel_rows * row_bytes)), + move_bytes); for (y = clks_fb.info.height - pixel_rows; y < clks_fb.info.height; y++) { volatile u32 *row_ptr = (volatile u32 *)(clks_fb.address + ((usize)y * row_bytes)); @@ -265,9 +262,8 @@ void clks_fb_draw_char_styled(u32 x, u32 y, char ch, u32 fg_rgb, u32 bg_rgb, u32 for (row = 0U; row < draw_rows; row++) { const u8 *row_bits = glyph + ((usize)row * (usize)row_stride); - volatile u32 *dst_row = (volatile u32 *)( - clks_fb.address + ((usize)(y + row) * (usize)clks_fb.info.pitch) + ((usize)x * 4U) - ); + volatile u32 *dst_row = + (volatile u32 *)(clks_fb.address + ((usize)(y + row) * (usize)clks_fb.info.pitch) + ((usize)x * 4U)); for (col = 0U; col < draw_cols; col++) { u8 bits = row_bits[col >> 3U]; @@ -317,4 +313,3 @@ u32 clks_fb_cell_width(void) { u32 clks_fb_cell_height(void) { return clks_fb.glyph_height == 0U ? 8U : clks_fb.glyph_height; } - diff --git a/clks/drivers/video/psf_font.c b/clks/drivers/video/psf_font.c index 1bfb629..86bb570 100644 --- a/clks/drivers/video/psf_font.c +++ b/clks/drivers/video/psf_font.c @@ -35,55 +35,31 @@ struct clks_psf_seed_glyph { u8 rows[CLKS_PSF1_GLYPH_BYTES]; }; -static const u8 clks_psf_unknown[CLKS_PSF1_GLYPH_BYTES] = { - 0x3C, 0x42, 0x02, 0x0C, 0x10, 0x00, 0x10, 0x00 -}; +static const u8 clks_psf_unknown[CLKS_PSF1_GLYPH_BYTES] = {0x3C, 0x42, 0x02, 0x0C, 0x10, 0x00, 0x10, 0x00}; static const struct clks_psf_seed_glyph clks_psf_seed_table[] = { - {' ', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {'[', {0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00}}, - {']', {0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x78, 0x00}}, - {':', {0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}}, - {'.', {0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00}}, - {'-', {0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00}}, - {'/', {0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00}}, - {'_', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00}}, - {'?', {0x3C, 0x42, 0x02, 0x0C, 0x10, 0x00, 0x10, 0x00}}, - {'0', {0x3C, 0x42, 0x46, 0x4A, 0x52, 0x62, 0x3C, 0x00}}, - {'1', {0x18, 0x28, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00}}, - {'2', {0x3C, 0x42, 0x02, 0x0C, 0x30, 0x40, 0x7E, 0x00}}, - {'3', {0x3C, 0x42, 0x02, 0x1C, 0x02, 0x42, 0x3C, 0x00}}, - {'4', {0x0C, 0x14, 0x24, 0x44, 0x7E, 0x04, 0x04, 0x00}}, - {'5', {0x7E, 0x40, 0x7C, 0x02, 0x02, 0x42, 0x3C, 0x00}}, - {'6', {0x1C, 0x20, 0x40, 0x7C, 0x42, 0x42, 0x3C, 0x00}}, - {'7', {0x7E, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00}}, - {'8', {0x3C, 0x42, 0x42, 0x3C, 0x42, 0x42, 0x3C, 0x00}}, - {'9', {0x3C, 0x42, 0x42, 0x3E, 0x02, 0x04, 0x38, 0x00}}, - {'A', {0x18, 0x24, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00}}, - {'B', {0x7C, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x00}}, - {'C', {0x3C, 0x42, 0x40, 0x40, 0x40, 0x42, 0x3C, 0x00}}, - {'D', {0x78, 0x44, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00}}, - {'E', {0x7E, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x7E, 0x00}}, - {'F', {0x7E, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x00}}, - {'G', {0x3C, 0x42, 0x40, 0x4E, 0x42, 0x42, 0x3C, 0x00}}, - {'H', {0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00}}, - {'I', {0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00}}, - {'J', {0x1E, 0x04, 0x04, 0x04, 0x44, 0x44, 0x38, 0x00}}, - {'K', {0x42, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x00}}, - {'L', {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00}}, - {'M', {0x42, 0x66, 0x5A, 0x5A, 0x42, 0x42, 0x42, 0x00}}, - {'N', {0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x42, 0x00}}, - {'O', {0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00}}, - {'P', {0x7C, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x00}}, - {'Q', {0x3C, 0x42, 0x42, 0x42, 0x4A, 0x44, 0x3A, 0x00}}, - {'R', {0x7C, 0x42, 0x42, 0x7C, 0x48, 0x44, 0x42, 0x00}}, - {'S', {0x3C, 0x42, 0x40, 0x3C, 0x02, 0x42, 0x3C, 0x00}}, - {'T', {0x7F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00}}, - {'U', {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00}}, - {'V', {0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00}}, - {'W', {0x42, 0x42, 0x42, 0x5A, 0x5A, 0x66, 0x42, 0x00}}, - {'X', {0x42, 0x42, 0x24, 0x18, 0x24, 0x42, 0x42, 0x00}}, - {'Y', {0x42, 0x42, 0x24, 0x18, 0x08, 0x08, 0x08, 0x00}}, + {' ', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, {'[', {0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00}}, + {']', {0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x78, 0x00}}, {':', {0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}}, + {'.', {0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00}}, {'-', {0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00}}, + {'/', {0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00}}, {'_', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00}}, + {'?', {0x3C, 0x42, 0x02, 0x0C, 0x10, 0x00, 0x10, 0x00}}, {'0', {0x3C, 0x42, 0x46, 0x4A, 0x52, 0x62, 0x3C, 0x00}}, + {'1', {0x18, 0x28, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00}}, {'2', {0x3C, 0x42, 0x02, 0x0C, 0x30, 0x40, 0x7E, 0x00}}, + {'3', {0x3C, 0x42, 0x02, 0x1C, 0x02, 0x42, 0x3C, 0x00}}, {'4', {0x0C, 0x14, 0x24, 0x44, 0x7E, 0x04, 0x04, 0x00}}, + {'5', {0x7E, 0x40, 0x7C, 0x02, 0x02, 0x42, 0x3C, 0x00}}, {'6', {0x1C, 0x20, 0x40, 0x7C, 0x42, 0x42, 0x3C, 0x00}}, + {'7', {0x7E, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00}}, {'8', {0x3C, 0x42, 0x42, 0x3C, 0x42, 0x42, 0x3C, 0x00}}, + {'9', {0x3C, 0x42, 0x42, 0x3E, 0x02, 0x04, 0x38, 0x00}}, {'A', {0x18, 0x24, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00}}, + {'B', {0x7C, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x00}}, {'C', {0x3C, 0x42, 0x40, 0x40, 0x40, 0x42, 0x3C, 0x00}}, + {'D', {0x78, 0x44, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00}}, {'E', {0x7E, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x7E, 0x00}}, + {'F', {0x7E, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x00}}, {'G', {0x3C, 0x42, 0x40, 0x4E, 0x42, 0x42, 0x3C, 0x00}}, + {'H', {0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00}}, {'I', {0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00}}, + {'J', {0x1E, 0x04, 0x04, 0x04, 0x44, 0x44, 0x38, 0x00}}, {'K', {0x42, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x00}}, + {'L', {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00}}, {'M', {0x42, 0x66, 0x5A, 0x5A, 0x42, 0x42, 0x42, 0x00}}, + {'N', {0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x42, 0x00}}, {'O', {0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00}}, + {'P', {0x7C, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x40, 0x00}}, {'Q', {0x3C, 0x42, 0x42, 0x42, 0x4A, 0x44, 0x3A, 0x00}}, + {'R', {0x7C, 0x42, 0x42, 0x7C, 0x48, 0x44, 0x42, 0x00}}, {'S', {0x3C, 0x42, 0x40, 0x3C, 0x02, 0x42, 0x3C, 0x00}}, + {'T', {0x7F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00}}, {'U', {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00}}, + {'V', {0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00}}, {'W', {0x42, 0x42, 0x42, 0x5A, 0x5A, 0x66, 0x42, 0x00}}, + {'X', {0x42, 0x42, 0x24, 0x18, 0x24, 0x42, 0x42, 0x00}}, {'Y', {0x42, 0x42, 0x24, 0x18, 0x08, 0x08, 0x08, 0x00}}, {'Z', {0x7E, 0x02, 0x04, 0x18, 0x20, 0x40, 0x7E, 0x00}}, }; @@ -226,7 +202,8 @@ const struct clks_psf_font *clks_psf_default_font(void) { if (clks_psf_default_ready == CLKS_FALSE) { clks_psf_seed_default_blob(); - if (clks_psf_parse_psf1(clks_psf_default_blob, sizeof(clks_psf_default_blob), &clks_psf_default) == CLKS_FALSE) { + if (clks_psf_parse_psf1(clks_psf_default_blob, sizeof(clks_psf_default_blob), &clks_psf_default) == + CLKS_FALSE) { clks_psf_default.width = 8U; clks_psf_default.height = 8U; clks_psf_default.glyph_count = 1U; @@ -270,11 +247,7 @@ clks_bool clks_psf_parse_font(const void *blob, u64 blob_size, struct clks_psf_f bytes = (const u8 *)blob; if (blob_size >= 4ULL) { - magic32 = - ((u32)bytes[0]) | - (((u32)bytes[1]) << 8U) | - (((u32)bytes[2]) << 16U) | - (((u32)bytes[3]) << 24U); + magic32 = ((u32)bytes[0]) | (((u32)bytes[1]) << 8U) | (((u32)bytes[2]) << 16U) | (((u32)bytes[3]) << 24U); if (magic32 == CLKS_PSF2_MAGIC) { return clks_psf_parse_psf2(bytes, (usize)blob_size, out_font); diff --git a/clks/include/clks/exec.h b/clks/include/clks/exec.h index 432d3b9..da847ef 100644 --- a/clks/include/clks/exec.h +++ b/clks/include/clks/exec.h @@ -5,13 +5,13 @@ #define CLKS_EXEC_PROC_PATH_MAX 192U -#define CLKS_EXEC_PROC_STATE_UNUSED 0ULL +#define CLKS_EXEC_PROC_STATE_UNUSED 0ULL #define CLKS_EXEC_PROC_STATE_PENDING 1ULL #define CLKS_EXEC_PROC_STATE_RUNNING 2ULL -#define CLKS_EXEC_PROC_STATE_EXITED 3ULL +#define CLKS_EXEC_PROC_STATE_EXITED 3ULL #define CLKS_EXEC_PROC_STATE_STOPPED 4ULL -#define CLKS_EXEC_SIGNAL_KILL 9ULL +#define CLKS_EXEC_SIGNAL_KILL 9ULL #define CLKS_EXEC_SIGNAL_TERM 15ULL #define CLKS_EXEC_SIGNAL_CONT 18ULL #define CLKS_EXEC_SIGNAL_STOP 19ULL @@ -36,13 +36,8 @@ struct clks_exec_proc_snapshot { 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_run_pathv_io(const char *path, - const char *argv_line, - const char *env_line, - u64 stdin_fd, - u64 stdout_fd, - u64 stderr_fd, - u64 *out_status); +clks_bool clks_exec_run_pathv_io(const char *path, const char *argv_line, const char *env_line, u64 stdin_fd, + u64 stdout_fd, u64 stderr_fd, 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); @@ -71,12 +66,7 @@ clks_bool clks_exec_proc_snapshot(u64 pid, struct clks_exec_proc_snapshot *out_s u64 clks_exec_proc_kill(u64 pid, u64 signal); u64 clks_exec_force_stop_tty_running_process(u32 tty_index, u64 *out_pid); clks_bool clks_exec_try_unwind_signaled_process(u64 interrupted_rip, u64 *io_rip, u64 *io_rdi, u64 *io_rsi); -clks_bool clks_exec_handle_exception(u64 vector, - u64 error_code, - u64 rip, - u64 *io_rip, - u64 *io_rdi, - u64 *io_rsi); +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); diff --git a/clks/include/clks/keyboard.h b/clks/include/clks/keyboard.h index f6d5f2e..7e1546d 100644 --- a/clks/include/clks/keyboard.h +++ b/clks/include/clks/keyboard.h @@ -3,20 +3,20 @@ #include -#define CLKS_KEY_LEFT ((char)0x01) -#define CLKS_KEY_RIGHT ((char)0x02) -#define CLKS_KEY_UP ((char)0x03) -#define CLKS_KEY_DOWN ((char)0x04) -#define CLKS_KEY_HOME ((char)0x05) -#define CLKS_KEY_END ((char)0x06) -#define CLKS_KEY_DELETE ((char)0x07) +#define CLKS_KEY_LEFT ((char)0x01) +#define CLKS_KEY_RIGHT ((char)0x02) +#define CLKS_KEY_UP ((char)0x03) +#define CLKS_KEY_DOWN ((char)0x04) +#define CLKS_KEY_HOME ((char)0x05) +#define CLKS_KEY_END ((char)0x06) +#define CLKS_KEY_DELETE ((char)0x07) #define CLKS_KEY_SELECT_ALL ((char)0x10) -#define CLKS_KEY_COPY ((char)0x11) -#define CLKS_KEY_PASTE ((char)0x12) +#define CLKS_KEY_COPY ((char)0x11) +#define CLKS_KEY_PASTE ((char)0x12) #define CLKS_KEY_SHIFT_LEFT ((char)0x13) #define CLKS_KEY_SHIFT_RIGHT ((char)0x14) #define CLKS_KEY_SHIFT_HOME ((char)0x15) -#define CLKS_KEY_SHIFT_END ((char)0x16) +#define CLKS_KEY_SHIFT_END ((char)0x16) void clks_keyboard_init(void); void clks_keyboard_handle_scancode(u8 scancode); @@ -29,4 +29,3 @@ u64 clks_keyboard_push_count(void); u64 clks_keyboard_pop_count(void); #endif - diff --git a/clks/include/clks/limine.h b/clks/include/clks/limine.h index fc8fa6b..833e512 100644 --- a/clks/include/clks/limine.h +++ b/clks/include/clks/limine.h @@ -6,56 +6,36 @@ #define LIMINE_COMMON_MAGIC 0xc7b1dd30df4c8b88ULL #define LIMINE_REQUEST_MAGIC 0x0a82e883a194f07bULL -#define LIMINE_REQUESTS_START_MARKER \ +#define LIMINE_REQUESTS_START_MARKER \ { 0xf6b8f4b39de7d1aeULL, 0xfab91a6940fcb9cfULL } -#define LIMINE_REQUESTS_END_MARKER \ +#define LIMINE_REQUESTS_END_MARKER \ { 0xadc0e0531bb10d03ULL, 0x9572709f31764c62ULL } -#define LIMINE_BASE_REVISION(N) \ +#define LIMINE_BASE_REVISION(N) \ { 0xf9562b2d5c95a6c8ULL, 0x6a7b384944536bdcULL, (N) } -#define LIMINE_FRAMEBUFFER_REQUEST \ - { \ - LIMINE_COMMON_MAGIC, \ - LIMINE_REQUEST_MAGIC, \ - 0x9d5827dcd881dd75ULL, \ - 0xa3148604f6fab11bULL \ - } +#define LIMINE_FRAMEBUFFER_REQUEST \ + { LIMINE_COMMON_MAGIC, LIMINE_REQUEST_MAGIC, 0x9d5827dcd881dd75ULL, 0xa3148604f6fab11bULL } -#define LIMINE_MEMMAP_REQUEST \ - { \ - LIMINE_COMMON_MAGIC, \ - LIMINE_REQUEST_MAGIC, \ - 0x67cf3d9d378a806fULL, \ - 0xe304acdfc50c3c62ULL \ - } +#define LIMINE_MEMMAP_REQUEST \ + { LIMINE_COMMON_MAGIC, LIMINE_REQUEST_MAGIC, 0x67cf3d9d378a806fULL, 0xe304acdfc50c3c62ULL } -#define LIMINE_EXECUTABLE_FILE_REQUEST \ - { \ - LIMINE_COMMON_MAGIC, \ - LIMINE_REQUEST_MAGIC, \ - 0xad97e90e83f1ed67ULL, \ - 0x31eb5d1c5ff23b69ULL \ - } +#define LIMINE_EXECUTABLE_FILE_REQUEST \ + { LIMINE_COMMON_MAGIC, LIMINE_REQUEST_MAGIC, 0xad97e90e83f1ed67ULL, 0x31eb5d1c5ff23b69ULL } -#define LIMINE_MODULE_REQUEST \ - { \ - LIMINE_COMMON_MAGIC, \ - LIMINE_REQUEST_MAGIC, \ - 0x3e7e279702be32afULL, \ - 0xca1c4f3bd1280ceeULL \ - } +#define LIMINE_MODULE_REQUEST \ + { LIMINE_COMMON_MAGIC, LIMINE_REQUEST_MAGIC, 0x3e7e279702be32afULL, 0xca1c4f3bd1280ceeULL } -#define LIMINE_MEMMAP_USABLE 0ULL -#define LIMINE_MEMMAP_RESERVED 1ULL -#define LIMINE_MEMMAP_ACPI_RECLAIMABLE 2ULL -#define LIMINE_MEMMAP_ACPI_NVS 3ULL -#define LIMINE_MEMMAP_BAD_MEMORY 4ULL +#define LIMINE_MEMMAP_USABLE 0ULL +#define LIMINE_MEMMAP_RESERVED 1ULL +#define LIMINE_MEMMAP_ACPI_RECLAIMABLE 2ULL +#define LIMINE_MEMMAP_ACPI_NVS 3ULL +#define LIMINE_MEMMAP_BAD_MEMORY 4ULL #define LIMINE_MEMMAP_BOOTLOADER_RECLAIMABLE 5ULL #define LIMINE_MEMMAP_EXECUTABLE_AND_MODULES 6ULL -#define LIMINE_MEMMAP_FRAMEBUFFER 7ULL -#define LIMINE_MEMMAP_RESERVED_MAPPED 8ULL +#define LIMINE_MEMMAP_FRAMEBUFFER 7ULL +#define LIMINE_MEMMAP_RESERVED_MAPPED 8ULL struct limine_uuid { u32 a; diff --git a/clks/include/clks/mouse.h b/clks/include/clks/mouse.h index e8d045b..c1263ae 100644 --- a/clks/include/clks/mouse.h +++ b/clks/include/clks/mouse.h @@ -3,8 +3,8 @@ #include -#define CLKS_MOUSE_BTN_LEFT 0x01U -#define CLKS_MOUSE_BTN_RIGHT 0x02U +#define CLKS_MOUSE_BTN_LEFT 0x01U +#define CLKS_MOUSE_BTN_RIGHT 0x02U #define CLKS_MOUSE_BTN_MIDDLE 0x04U struct clks_mouse_state { diff --git a/clks/include/clks/panic.h b/clks/include/clks/panic.h index c1e1b55..494ab41 100644 --- a/clks/include/clks/panic.h +++ b/clks/include/clks/panic.h @@ -5,11 +5,6 @@ #include CLKS_NORETURN void clks_panic(const char *reason); -CLKS_NORETURN void clks_panic_exception(const char *name, - u64 vector, - u64 error_code, - u64 rip, - u64 rbp, - u64 rsp); +CLKS_NORETURN void clks_panic_exception(const char *name, u64 vector, u64 error_code, u64 rip, u64 rbp, u64 rsp); #endif diff --git a/clks/include/clks/syscall.h b/clks/include/clks/syscall.h index b18a7d4..8b29501 100644 --- a/clks/include/clks/syscall.h +++ b/clks/include/clks/syscall.h @@ -3,87 +3,87 @@ #include -#define CLKS_SYSCALL_LOG_WRITE 0ULL -#define CLKS_SYSCALL_TIMER_TICKS 1ULL -#define CLKS_SYSCALL_TASK_COUNT 2ULL -#define CLKS_SYSCALL_CURRENT_TASK_ID 3ULL -#define CLKS_SYSCALL_SERVICE_COUNT 4ULL +#define CLKS_SYSCALL_LOG_WRITE 0ULL +#define CLKS_SYSCALL_TIMER_TICKS 1ULL +#define CLKS_SYSCALL_TASK_COUNT 2ULL +#define CLKS_SYSCALL_CURRENT_TASK_ID 3ULL +#define CLKS_SYSCALL_SERVICE_COUNT 4ULL #define CLKS_SYSCALL_SERVICE_READY_COUNT 5ULL -#define CLKS_SYSCALL_CONTEXT_SWITCHES 6ULL -#define CLKS_SYSCALL_KELF_COUNT 7ULL -#define CLKS_SYSCALL_KELF_RUNS 8ULL -#define CLKS_SYSCALL_FS_NODE_COUNT 9ULL -#define CLKS_SYSCALL_FS_CHILD_COUNT 10ULL -#define CLKS_SYSCALL_FS_GET_CHILD_NAME 11ULL -#define CLKS_SYSCALL_FS_READ 12ULL -#define CLKS_SYSCALL_EXEC_PATH 13ULL -#define CLKS_SYSCALL_EXEC_REQUESTS 14ULL -#define CLKS_SYSCALL_EXEC_SUCCESS 15ULL -#define CLKS_SYSCALL_USER_SHELL_READY 16ULL +#define CLKS_SYSCALL_CONTEXT_SWITCHES 6ULL +#define CLKS_SYSCALL_KELF_COUNT 7ULL +#define CLKS_SYSCALL_KELF_RUNS 8ULL +#define CLKS_SYSCALL_FS_NODE_COUNT 9ULL +#define CLKS_SYSCALL_FS_CHILD_COUNT 10ULL +#define CLKS_SYSCALL_FS_GET_CHILD_NAME 11ULL +#define CLKS_SYSCALL_FS_READ 12ULL +#define CLKS_SYSCALL_EXEC_PATH 13ULL +#define CLKS_SYSCALL_EXEC_REQUESTS 14ULL +#define CLKS_SYSCALL_EXEC_SUCCESS 15ULL +#define CLKS_SYSCALL_USER_SHELL_READY 16ULL #define CLKS_SYSCALL_USER_EXEC_REQUESTED 17ULL -#define CLKS_SYSCALL_USER_LAUNCH_TRIES 18ULL -#define CLKS_SYSCALL_USER_LAUNCH_OK 19ULL -#define CLKS_SYSCALL_USER_LAUNCH_FAIL 20ULL -#define CLKS_SYSCALL_TTY_COUNT 21ULL -#define CLKS_SYSCALL_TTY_ACTIVE 22ULL -#define CLKS_SYSCALL_TTY_SWITCH 23ULL -#define CLKS_SYSCALL_TTY_WRITE 24ULL -#define CLKS_SYSCALL_TTY_WRITE_CHAR 25ULL -#define CLKS_SYSCALL_KBD_GET_CHAR 26ULL -#define CLKS_SYSCALL_FS_STAT_TYPE 27ULL -#define CLKS_SYSCALL_FS_STAT_SIZE 28ULL -#define CLKS_SYSCALL_FS_MKDIR 29ULL -#define CLKS_SYSCALL_FS_WRITE 30ULL -#define CLKS_SYSCALL_FS_APPEND 31ULL -#define CLKS_SYSCALL_FS_REMOVE 32ULL -#define CLKS_SYSCALL_LOG_JOURNAL_COUNT 33ULL -#define CLKS_SYSCALL_LOG_JOURNAL_READ 34ULL -#define CLKS_SYSCALL_KBD_BUFFERED 35ULL -#define CLKS_SYSCALL_KBD_PUSHED 36ULL -#define CLKS_SYSCALL_KBD_POPPED 37ULL -#define CLKS_SYSCALL_KBD_DROPPED 38ULL +#define CLKS_SYSCALL_USER_LAUNCH_TRIES 18ULL +#define CLKS_SYSCALL_USER_LAUNCH_OK 19ULL +#define CLKS_SYSCALL_USER_LAUNCH_FAIL 20ULL +#define CLKS_SYSCALL_TTY_COUNT 21ULL +#define CLKS_SYSCALL_TTY_ACTIVE 22ULL +#define CLKS_SYSCALL_TTY_SWITCH 23ULL +#define CLKS_SYSCALL_TTY_WRITE 24ULL +#define CLKS_SYSCALL_TTY_WRITE_CHAR 25ULL +#define CLKS_SYSCALL_KBD_GET_CHAR 26ULL +#define CLKS_SYSCALL_FS_STAT_TYPE 27ULL +#define CLKS_SYSCALL_FS_STAT_SIZE 28ULL +#define CLKS_SYSCALL_FS_MKDIR 29ULL +#define CLKS_SYSCALL_FS_WRITE 30ULL +#define CLKS_SYSCALL_FS_APPEND 31ULL +#define CLKS_SYSCALL_FS_REMOVE 32ULL +#define CLKS_SYSCALL_LOG_JOURNAL_COUNT 33ULL +#define CLKS_SYSCALL_LOG_JOURNAL_READ 34ULL +#define CLKS_SYSCALL_KBD_BUFFERED 35ULL +#define CLKS_SYSCALL_KBD_PUSHED 36ULL +#define CLKS_SYSCALL_KBD_POPPED 37ULL +#define CLKS_SYSCALL_KBD_DROPPED 38ULL #define CLKS_SYSCALL_KBD_HOTKEY_SWITCHES 39ULL -#define CLKS_SYSCALL_GETPID 40ULL -#define CLKS_SYSCALL_SPAWN_PATH 41ULL -#define CLKS_SYSCALL_WAITPID 42ULL -#define CLKS_SYSCALL_EXIT 43ULL -#define CLKS_SYSCALL_SLEEP_TICKS 44ULL -#define CLKS_SYSCALL_YIELD 45ULL -#define CLKS_SYSCALL_SHUTDOWN 46ULL -#define CLKS_SYSCALL_RESTART 47ULL -#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 -#define CLKS_SYSCALL_PROC_COUNT 61ULL -#define CLKS_SYSCALL_PROC_PID_AT 62ULL -#define CLKS_SYSCALL_PROC_SNAPSHOT 63ULL -#define CLKS_SYSCALL_PROC_KILL 64ULL -#define CLKS_SYSCALL_KDBG_SYM 65ULL -#define CLKS_SYSCALL_KDBG_BT 66ULL -#define CLKS_SYSCALL_KDBG_REGS 67ULL -#define CLKS_SYSCALL_STATS_TOTAL 68ULL -#define CLKS_SYSCALL_STATS_ID_COUNT 69ULL +#define CLKS_SYSCALL_GETPID 40ULL +#define CLKS_SYSCALL_SPAWN_PATH 41ULL +#define CLKS_SYSCALL_WAITPID 42ULL +#define CLKS_SYSCALL_EXIT 43ULL +#define CLKS_SYSCALL_SLEEP_TICKS 44ULL +#define CLKS_SYSCALL_YIELD 45ULL +#define CLKS_SYSCALL_SHUTDOWN 46ULL +#define CLKS_SYSCALL_RESTART 47ULL +#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 +#define CLKS_SYSCALL_PROC_COUNT 61ULL +#define CLKS_SYSCALL_PROC_PID_AT 62ULL +#define CLKS_SYSCALL_PROC_SNAPSHOT 63ULL +#define CLKS_SYSCALL_PROC_KILL 64ULL +#define CLKS_SYSCALL_KDBG_SYM 65ULL +#define CLKS_SYSCALL_KDBG_BT 66ULL +#define CLKS_SYSCALL_KDBG_REGS 67ULL +#define CLKS_SYSCALL_STATS_TOTAL 68ULL +#define CLKS_SYSCALL_STATS_ID_COUNT 69ULL #define CLKS_SYSCALL_STATS_RECENT_WINDOW 70ULL -#define CLKS_SYSCALL_STATS_RECENT_ID 71ULL -#define CLKS_SYSCALL_FD_OPEN 72ULL -#define CLKS_SYSCALL_FD_READ 73ULL -#define CLKS_SYSCALL_FD_WRITE 74ULL -#define CLKS_SYSCALL_FD_CLOSE 75ULL -#define CLKS_SYSCALL_FD_DUP 76ULL -#define CLKS_SYSCALL_DL_OPEN 77ULL -#define CLKS_SYSCALL_DL_CLOSE 78ULL -#define CLKS_SYSCALL_DL_SYM 79ULL -#define CLKS_SYSCALL_EXEC_PATHV_IO 80ULL +#define CLKS_SYSCALL_STATS_RECENT_ID 71ULL +#define CLKS_SYSCALL_FD_OPEN 72ULL +#define CLKS_SYSCALL_FD_READ 73ULL +#define CLKS_SYSCALL_FD_WRITE 74ULL +#define CLKS_SYSCALL_FD_CLOSE 75ULL +#define CLKS_SYSCALL_FD_DUP 76ULL +#define CLKS_SYSCALL_DL_OPEN 77ULL +#define CLKS_SYSCALL_DL_CLOSE 78ULL +#define CLKS_SYSCALL_DL_SYM 79ULL +#define CLKS_SYSCALL_EXEC_PATHV_IO 80ULL void clks_syscall_init(void); u64 clks_syscall_dispatch(void *frame_ptr); diff --git a/clks/include/clks/task.h b/clks/include/clks/task.h index e9f87d9..1ae3921 100644 --- a/clks/include/clks/task.h +++ b/clks/include/clks/task.h @@ -7,12 +7,7 @@ typedef void (*clks_task_entry_fn)(u64 tick); -enum clks_task_state { - CLKS_TASK_UNUSED = 0, - CLKS_TASK_READY = 1, - CLKS_TASK_RUNNING = 2, - CLKS_TASK_BLOCKED = 3 -}; +enum clks_task_state { CLKS_TASK_UNUSED = 0, CLKS_TASK_READY = 1, CLKS_TASK_RUNNING = 2, CLKS_TASK_BLOCKED = 3 }; struct clks_task_descriptor { u32 id; diff --git a/clks/include/clks/types.h b/clks/include/clks/types.h index 624bbab..4320254 100644 --- a/clks/include/clks/types.h +++ b/clks/include/clks/types.h @@ -13,10 +13,7 @@ typedef signed long long i64; typedef u64 usize; -typedef enum clks_bool { - CLKS_FALSE = 0, - CLKS_TRUE = 1 -} clks_bool; +typedef enum clks_bool { CLKS_FALSE = 0, CLKS_TRUE = 1 } clks_bool; #define CLKS_NULL ((void *)0) diff --git a/clks/kernel/desktop.c b/clks/kernel/desktop.c index cba1ede..2ac89e2 100644 --- a/clks/kernel/desktop.c +++ b/clks/kernel/desktop.c @@ -5,21 +5,21 @@ #include #include -#define CLKS_DESKTOP_TTY_INDEX 1U +#define CLKS_DESKTOP_TTY_INDEX 1U -#define CLKS_DESKTOP_BG_COLOR 0x001B2430U -#define CLKS_DESKTOP_TOPBAR_COLOR 0x00293447U -#define CLKS_DESKTOP_DOCK_COLOR 0x00232C3AU -#define CLKS_DESKTOP_WINDOW_COLOR 0x00313E52U -#define CLKS_DESKTOP_TITLE_COLOR 0x003B4A61U -#define CLKS_DESKTOP_TEXT_FG 0x00E6EDF7U -#define CLKS_DESKTOP_TEXT_BG 0x003B4A61U +#define CLKS_DESKTOP_BG_COLOR 0x001B2430U +#define CLKS_DESKTOP_TOPBAR_COLOR 0x00293447U +#define CLKS_DESKTOP_DOCK_COLOR 0x00232C3AU +#define CLKS_DESKTOP_WINDOW_COLOR 0x00313E52U +#define CLKS_DESKTOP_TITLE_COLOR 0x003B4A61U +#define CLKS_DESKTOP_TEXT_FG 0x00E6EDF7U +#define CLKS_DESKTOP_TEXT_BG 0x003B4A61U -#define CLKS_DESKTOP_CURSOR_FILL 0x00F5F8FFU -#define CLKS_DESKTOP_CURSOR_OUTLINE 0x00101010U -#define CLKS_DESKTOP_CURSOR_ACTIVE 0x00FFCE6EU -#define CLKS_DESKTOP_CURSOR_W 16U -#define CLKS_DESKTOP_CURSOR_H 16U +#define CLKS_DESKTOP_CURSOR_FILL 0x00F5F8FFU +#define CLKS_DESKTOP_CURSOR_OUTLINE 0x00101010U +#define CLKS_DESKTOP_CURSOR_ACTIVE 0x00FFCE6EU +#define CLKS_DESKTOP_CURSOR_W 16U +#define CLKS_DESKTOP_CURSOR_H 16U struct clks_desktop_layout { u32 width; @@ -207,8 +207,8 @@ static void clks_desktop_draw_static_scene(const struct clks_mouse_state *mouse) } if (clks_desktop.height > clks_desktop.topbar_h) { - clks_fb_fill_rect(0U, clks_desktop.topbar_h, clks_desktop.dock_w, - clks_desktop.height - clks_desktop.topbar_h, CLKS_DESKTOP_DOCK_COLOR); + clks_fb_fill_rect(0U, clks_desktop.topbar_h, clks_desktop.dock_w, clks_desktop.height - clks_desktop.topbar_h, + CLKS_DESKTOP_DOCK_COLOR); } clks_fb_fill_rect(clks_desktop.win_x, clks_desktop.win_y, clks_desktop.win_w, clks_desktop.win_h, @@ -217,8 +217,8 @@ static void clks_desktop_draw_static_scene(const struct clks_mouse_state *mouse) CLKS_DESKTOP_TITLE_COLOR); clks_desktop_draw_text(12U, 6U, "CLeonOS Desktop TTY2", CLKS_DESKTOP_TEXT_FG, CLKS_DESKTOP_TOPBAR_COLOR); - clks_desktop_draw_text(clks_desktop.win_x + 12U, clks_desktop.win_y + 6U, "Mouse Input Ready", - CLKS_DESKTOP_TEXT_FG, CLKS_DESKTOP_TITLE_COLOR); + clks_desktop_draw_text(clks_desktop.win_x + 12U, clks_desktop.win_y + 6U, "Mouse Input Ready", CLKS_DESKTOP_TEXT_FG, + CLKS_DESKTOP_TITLE_COLOR); clks_desktop_draw_text(clks_desktop.win_x + 16U, clks_desktop.win_y + clks_desktop.win_title_h + 16U, "Stage25: Alt+F2 desktop, Alt+F1 shell", CLKS_DESKTOP_TEXT_FG, CLKS_DESKTOP_WINDOW_COLOR); diff --git a/clks/kernel/driver.c b/clks/kernel/driver.c index 047d99a..2f59136 100644 --- a/clks/kernel/driver.c +++ b/clks/kernel/driver.c @@ -48,10 +48,9 @@ static clks_bool clks_driver_has_elf_suffix(const char *name) { return CLKS_FALSE; } - return (name[len - 4U] == '.' && - name[len - 3U] == 'e' && - name[len - 2U] == 'l' && - name[len - 1U] == 'f') ? CLKS_TRUE : CLKS_FALSE; + return (name[len - 4U] == '.' && name[len - 3U] == 'e' && name[len - 2U] == 'l' && name[len - 1U] == 'f') + ? CLKS_TRUE + : CLKS_FALSE; } static clks_bool clks_driver_build_path(const char *child_name, char *out_path, usize out_size) { @@ -75,12 +74,8 @@ static clks_bool clks_driver_build_path(const char *child_name, char *out_path, return CLKS_TRUE; } -static clks_bool clks_driver_push(const char *name, - enum clks_driver_kind kind, - enum clks_driver_state state, - clks_bool from_elf, - u64 image_size, - u64 elf_entry) { +static clks_bool clks_driver_push(const char *name, enum clks_driver_kind kind, enum clks_driver_state state, + clks_bool from_elf, u64 image_size, u64 elf_entry) { struct clks_driver_info *slot; if (clks_driver_table_count >= CLKS_DRIVER_MAX) { @@ -110,10 +105,12 @@ static void clks_driver_register_builtins(void) { clks_driver_push("serial", CLKS_DRIVER_KIND_BUILTIN_CHAR, CLKS_DRIVER_STATE_READY, CLKS_FALSE, 0ULL, 0ULL); if (clks_fb_ready() == CLKS_TRUE) { - clks_driver_push("framebuffer", CLKS_DRIVER_KIND_BUILTIN_VIDEO, CLKS_DRIVER_STATE_READY, CLKS_FALSE, 0ULL, 0ULL); + clks_driver_push("framebuffer", CLKS_DRIVER_KIND_BUILTIN_VIDEO, CLKS_DRIVER_STATE_READY, CLKS_FALSE, 0ULL, + 0ULL); clks_driver_push("tty", CLKS_DRIVER_KIND_BUILTIN_TTY, CLKS_DRIVER_STATE_READY, CLKS_FALSE, 0ULL, 0ULL); } else { - clks_driver_push("framebuffer", CLKS_DRIVER_KIND_BUILTIN_VIDEO, CLKS_DRIVER_STATE_FAILED, CLKS_FALSE, 0ULL, 0ULL); + clks_driver_push("framebuffer", CLKS_DRIVER_KIND_BUILTIN_VIDEO, CLKS_DRIVER_STATE_FAILED, CLKS_FALSE, 0ULL, + 0ULL); clks_driver_push("tty", CLKS_DRIVER_KIND_BUILTIN_TTY, CLKS_DRIVER_STATE_FAILED, CLKS_FALSE, 0ULL, 0ULL); } diff --git a/clks/kernel/elf64.c b/clks/kernel/elf64.c index c0aaa82..f3f9f9e 100644 --- a/clks/kernel/elf64.c +++ b/clks/kernel/elf64.c @@ -10,10 +10,10 @@ #define CLKS_ELF64_CLASS_64 2U #define CLKS_ELF64_DATA_LSB 1U -#define CLKS_ELF64_VERSION 1U +#define CLKS_ELF64_VERSION 1U #define CLKS_ELF64_ET_EXEC 2U -#define CLKS_ELF64_ET_DYN 3U +#define CLKS_ELF64_ET_DYN 3U #define CLKS_ELF64_EM_X86_64 62U @@ -46,10 +46,8 @@ struct clks_elf64_phdr { }; static clks_bool clks_elf64_header_ok(const struct clks_elf64_ehdr *eh) { - if (eh->e_ident[0] != CLKS_ELF64_MAGIC_0 || - eh->e_ident[1] != CLKS_ELF64_MAGIC_1 || - eh->e_ident[2] != CLKS_ELF64_MAGIC_2 || - eh->e_ident[3] != CLKS_ELF64_MAGIC_3) { + if (eh->e_ident[0] != CLKS_ELF64_MAGIC_0 || eh->e_ident[1] != CLKS_ELF64_MAGIC_1 || + eh->e_ident[2] != CLKS_ELF64_MAGIC_2 || eh->e_ident[3] != CLKS_ELF64_MAGIC_3) { return CLKS_FALSE; } diff --git a/clks/kernel/exec.c b/clks/kernel/exec.c index 1aa941b..fd3d71c 100644 --- a/clks/kernel/exec.c +++ b/clks/kernel/exec.c @@ -14,28 +14,28 @@ typedef u64 (*clks_exec_entry_fn)(void); #define CLKS_EXEC_RUN_STACK_BYTES (64ULL * 1024ULL) -#define CLKS_EXEC_MAX_PROCS 64U -#define CLKS_EXEC_MAX_DEPTH 16U -#define CLKS_EXEC_PATH_MAX 192U -#define CLKS_EXEC_ARG_LINE_MAX 256U -#define CLKS_EXEC_ENV_LINE_MAX 512U -#define CLKS_EXEC_FD_MAX 32U -#define CLKS_EXEC_MAX_ARGS 24U -#define CLKS_EXEC_MAX_ENVS 24U -#define CLKS_EXEC_ITEM_MAX 128U +#define CLKS_EXEC_MAX_PROCS 64U +#define CLKS_EXEC_MAX_DEPTH 16U +#define CLKS_EXEC_PATH_MAX 192U +#define CLKS_EXEC_ARG_LINE_MAX 256U +#define CLKS_EXEC_ENV_LINE_MAX 512U +#define CLKS_EXEC_FD_MAX 32U +#define CLKS_EXEC_MAX_ARGS 24U +#define CLKS_EXEC_MAX_ENVS 24U +#define CLKS_EXEC_ITEM_MAX 128U #define CLKS_EXEC_STATUS_SIGNAL_FLAG (1ULL << 63) #define CLKS_EXEC_DEFAULT_KILL_SIGNAL CLKS_EXEC_SIGNAL_TERM #define CLKS_EXEC_KERNEL_ADDR_BASE 0xFFFF800000000000ULL #define CLKS_EXEC_UNWIND_CTX_BYTES 56ULL #define CLKS_EXEC_FD_ACCESS_MASK 0x3ULL -#define CLKS_EXEC_O_RDONLY 0x0000ULL -#define CLKS_EXEC_O_WRONLY 0x0001ULL -#define CLKS_EXEC_O_RDWR 0x0002ULL -#define CLKS_EXEC_O_CREAT 0x0040ULL -#define CLKS_EXEC_O_TRUNC 0x0200ULL -#define CLKS_EXEC_O_APPEND 0x0400ULL -#define CLKS_EXEC_FD_INHERIT ((u64)-1) -#define CLKS_EXEC_DYNLIB_MAX 32U +#define CLKS_EXEC_O_RDONLY 0x0000ULL +#define CLKS_EXEC_O_WRONLY 0x0001ULL +#define CLKS_EXEC_O_RDWR 0x0002ULL +#define CLKS_EXEC_O_CREAT 0x0040ULL +#define CLKS_EXEC_O_TRUNC 0x0200ULL +#define CLKS_EXEC_O_APPEND 0x0400ULL +#define CLKS_EXEC_FD_INHERIT ((u64) - 1) +#define CLKS_EXEC_DYNLIB_MAX 32U #ifndef CLKS_CFG_EXEC_SERIAL_LOG #define CLKS_CFG_EXEC_SERIAL_LOG 1 @@ -53,7 +53,7 @@ typedef u64 (*clks_exec_entry_fn)(void); #define CLKS_EXEC_ELF64_SHT_DYNSYM 11U #define CLKS_EXEC_ELF64_SHN_UNDEF 0U #define CLKS_EXEC_ELF64_STT_NOTYPE 0U -#define CLKS_EXEC_ELF64_STT_FUNC 2U +#define CLKS_EXEC_ELF64_STT_FUNC 2U enum clks_exec_fd_kind { CLKS_EXEC_FD_KIND_NONE = 0, @@ -446,8 +446,7 @@ static void clks_exec_dynlib_release_owner(u64 owner_pid) { } for (i = 0U; i < CLKS_EXEC_DYNLIB_MAX; i++) { - if (clks_exec_dynlib_table[i].used == CLKS_TRUE && - clks_exec_dynlib_table[i].owner_pid == owner_pid) { + if (clks_exec_dynlib_table[i].used == CLKS_TRUE && clks_exec_dynlib_table[i].owner_pid == owner_pid) { clks_exec_dynlib_slot_reset(&clks_exec_dynlib_table[i]); } } @@ -458,10 +457,8 @@ static clks_bool clks_exec_dynlib_elf_header_ok(const struct clks_exec_elf64_ehd return CLKS_FALSE; } - if (eh->e_ident[0] != CLKS_EXEC_ELF64_MAGIC_0 || - eh->e_ident[1] != CLKS_EXEC_ELF64_MAGIC_1 || - eh->e_ident[2] != CLKS_EXEC_ELF64_MAGIC_2 || - eh->e_ident[3] != CLKS_EXEC_ELF64_MAGIC_3) { + if (eh->e_ident[0] != CLKS_EXEC_ELF64_MAGIC_0 || eh->e_ident[1] != CLKS_EXEC_ELF64_MAGIC_1 || + eh->e_ident[2] != CLKS_EXEC_ELF64_MAGIC_2 || eh->e_ident[3] != CLKS_EXEC_ELF64_MAGIC_3) { return CLKS_FALSE; } @@ -480,9 +477,7 @@ static clks_bool clks_exec_dynlib_elf_header_ok(const struct clks_exec_elf64_ehd return CLKS_TRUE; } -static clks_bool clks_exec_dynlib_symbol_name_ptr(const char *strtab, - u64 strtab_size, - u32 st_name, +static clks_bool clks_exec_dynlib_symbol_name_ptr(const char *strtab, u64 strtab_size, u32 st_name, const char **out_name) { u64 i; @@ -504,8 +499,7 @@ static clks_bool clks_exec_dynlib_symbol_name_ptr(const char *strtab, return CLKS_FALSE; } -static clks_bool clks_exec_dynlib_resolve_symbol(const struct clks_exec_dynlib_slot *slot, - const char *symbol, +static clks_bool clks_exec_dynlib_resolve_symbol(const struct clks_exec_dynlib_slot *slot, const char *symbol, u64 *out_addr) { const struct clks_exec_elf64_ehdr *eh; const struct clks_exec_elf64_shdr *shdrs; @@ -619,9 +613,7 @@ static void clks_exec_clear_items(char items[][CLKS_EXEC_ITEM_MAX], u32 max_coun } } -static u32 clks_exec_parse_whitespace_items(const char *line, - char items[][CLKS_EXEC_ITEM_MAX], - u32 max_count) { +static u32 clks_exec_parse_whitespace_items(const char *line, char items[][CLKS_EXEC_ITEM_MAX], u32 max_count) { u32 count = 0U; usize i = 0U; @@ -644,11 +636,7 @@ static u32 clks_exec_parse_whitespace_items(const char *line, break; } - while (line[i] != '\0' && - line[i] != ' ' && - line[i] != '\t' && - line[i] != '\r' && - line[i] != '\n') { + while (line[i] != '\0' && line[i] != ' ' && line[i] != '\t' && line[i] != '\r' && line[i] != '\n') { if (p + 1U < CLKS_EXEC_ITEM_MAX) { items[count][p++] = line[i]; } @@ -663,9 +651,7 @@ static u32 clks_exec_parse_whitespace_items(const char *line, return count; } -static u32 clks_exec_parse_env_items(const char *line, - char items[][CLKS_EXEC_ITEM_MAX], - u32 max_count) { +static u32 clks_exec_parse_env_items(const char *line, char items[][CLKS_EXEC_ITEM_MAX], u32 max_count) { u32 count = 0U; usize i = 0U; @@ -713,30 +699,28 @@ static u32 clks_exec_parse_env_items(const char *line, static u64 clks_exec_signal_from_vector(u64 vector) { switch (vector) { - case 0ULL: - case 16ULL: - case 19ULL: - return 8ULL; - case 6ULL: - return 4ULL; - case 3ULL: - return 5ULL; - case 14ULL: - case 13ULL: - case 12ULL: - case 11ULL: - case 10ULL: - case 17ULL: - return 11ULL; - default: - return 6ULL; + case 0ULL: + case 16ULL: + case 19ULL: + return 8ULL; + case 6ULL: + return 4ULL; + case 3ULL: + return 5ULL; + case 14ULL: + case 13ULL: + case 12ULL: + case 11ULL: + case 10ULL: + case 17ULL: + return 11ULL; + default: + return 6ULL; } } static u64 clks_exec_encode_signal_status(u64 signal, u64 vector, u64 error_code) { - return CLKS_EXEC_STATUS_SIGNAL_FLAG | - (signal & 0xFFULL) | - ((vector & 0xFFULL) << 8) | + return CLKS_EXEC_STATUS_SIGNAL_FLAG | (signal & 0xFFULL) | ((vector & 0xFFULL) << 8) | ((error_code & 0xFFFFULL) << 16); } @@ -802,7 +786,7 @@ static u64 clks_exec_alloc_pid(void) { static clks_bool clks_exec_fd_access_mode_valid(u64 flags) { u64 mode = flags & CLKS_EXEC_FD_ACCESS_MASK; return (mode == CLKS_EXEC_O_RDONLY || mode == CLKS_EXEC_O_WRONLY || mode == CLKS_EXEC_O_RDWR) ? CLKS_TRUE - : CLKS_FALSE; + : CLKS_FALSE; } static clks_bool clks_exec_fd_can_read(u64 flags) { @@ -877,11 +861,8 @@ static void clks_exec_fd_init_defaults(struct clks_exec_proc_record *proc) { } static clks_bool clks_exec_fd_copy_from_parent(struct clks_exec_proc_record *child, - const struct clks_exec_proc_record *parent, - u64 parent_fd, - u64 child_fd, - clks_bool require_read, - clks_bool require_write) { + const struct clks_exec_proc_record *parent, u64 parent_fd, u64 child_fd, + clks_bool require_read, clks_bool require_write) { const struct clks_exec_fd_entry *src; if (child == CLKS_NULL || parent == CLKS_NULL || parent_fd >= CLKS_EXEC_FD_MAX || child_fd >= CLKS_EXEC_FD_MAX) { @@ -907,10 +888,8 @@ static clks_bool clks_exec_fd_copy_from_parent(struct clks_exec_proc_record *chi } static clks_bool clks_exec_fd_apply_stdio_overrides(struct clks_exec_proc_record *child, - const struct clks_exec_proc_record *parent, - u64 stdin_fd, - u64 stdout_fd, - u64 stderr_fd) { + const struct clks_exec_proc_record *parent, u64 stdin_fd, + u64 stdout_fd, u64 stderr_fd) { if (child == CLKS_NULL) { return CLKS_FALSE; } @@ -1069,12 +1048,9 @@ static u64 clks_exec_fd_file_write(struct clks_exec_fd_entry *entry, const void return size; } -static struct clks_exec_proc_record *clks_exec_prepare_proc_record(i32 slot, - u64 pid, - const char *path, - const char *argv_line, - const char *env_line, - enum clks_exec_proc_state state) { +static struct clks_exec_proc_record *clks_exec_prepare_proc_record(i32 slot, u64 pid, const char *path, + const char *argv_line, const char *env_line, + enum clks_exec_proc_state state) { struct clks_exec_proc_record *proc; if (slot < 0 || path == CLKS_NULL) { @@ -1114,8 +1090,7 @@ static struct clks_exec_proc_record *clks_exec_prepare_proc_record(i32 slot, } if (proc->argv_line[0] != '\0' && proc->argc < CLKS_EXEC_MAX_ARGS) { - proc->argc += clks_exec_parse_whitespace_items(proc->argv_line, - &proc->argv_items[proc->argc], + proc->argc += clks_exec_parse_whitespace_items(proc->argv_line, &proc->argv_items[proc->argc], (u32)(CLKS_EXEC_MAX_ARGS - proc->argc)); } @@ -1421,8 +1396,7 @@ static clks_bool clks_exec_dispatch_pending_once(void) { } for (i = 0U; i < CLKS_EXEC_MAX_PROCS; i++) { - if (clks_exec_proc_table[i].used == CLKS_TRUE && - clks_exec_proc_table[i].state == CLKS_EXEC_PROC_PENDING) { + if (clks_exec_proc_table[i].used == CLKS_TRUE && clks_exec_proc_table[i].state == CLKS_EXEC_PROC_PENDING) { u64 ignored_status = (u64)-1; clks_exec_pending_dispatch_active = CLKS_TRUE; @@ -1435,13 +1409,8 @@ static clks_bool clks_exec_dispatch_pending_once(void) { return CLKS_FALSE; } -static clks_bool clks_exec_run_path_internal(const char *path, - const char *argv_line, - const char *env_line, - u64 stdin_fd, - u64 stdout_fd, - u64 stderr_fd, - u64 *out_status, +static clks_bool clks_exec_run_path_internal(const char *path, const char *argv_line, const char *env_line, + u64 stdin_fd, u64 stdout_fd, u64 stderr_fd, u64 *out_status, u64 *out_pid) { i32 slot; u64 pid; @@ -1522,35 +1491,19 @@ void clks_exec_init(void) { } clks_bool clks_exec_run_path(const char *path, u64 *out_status) { - return clks_exec_run_path_internal(path, - CLKS_NULL, - CLKS_NULL, - CLKS_EXEC_FD_INHERIT, - CLKS_EXEC_FD_INHERIT, - CLKS_EXEC_FD_INHERIT, - out_status, - CLKS_NULL); + return clks_exec_run_path_internal(path, CLKS_NULL, CLKS_NULL, CLKS_EXEC_FD_INHERIT, CLKS_EXEC_FD_INHERIT, + CLKS_EXEC_FD_INHERIT, out_status, CLKS_NULL); } clks_bool clks_exec_run_pathv(const char *path, const char *argv_line, const char *env_line, u64 *out_status) { - return clks_exec_run_path_internal(path, - argv_line, - env_line, - CLKS_EXEC_FD_INHERIT, - CLKS_EXEC_FD_INHERIT, - CLKS_EXEC_FD_INHERIT, - out_status, - CLKS_NULL); + return clks_exec_run_path_internal(path, argv_line, env_line, CLKS_EXEC_FD_INHERIT, CLKS_EXEC_FD_INHERIT, + CLKS_EXEC_FD_INHERIT, out_status, CLKS_NULL); } -clks_bool clks_exec_run_pathv_io(const char *path, - const char *argv_line, - const char *env_line, - u64 stdin_fd, - u64 stdout_fd, - u64 stderr_fd, - u64 *out_status) { - return clks_exec_run_path_internal(path, argv_line, env_line, stdin_fd, stdout_fd, stderr_fd, out_status, CLKS_NULL); +clks_bool clks_exec_run_pathv_io(const char *path, const char *argv_line, const char *env_line, u64 stdin_fd, + u64 stdout_fd, u64 stderr_fd, u64 *out_status) { + return clks_exec_run_path_internal(path, argv_line, env_line, stdin_fd, stdout_fd, stderr_fd, out_status, + CLKS_NULL); } clks_bool clks_exec_spawn_pathv(const char *path, const char *argv_line, const char *env_line, u64 *out_pid) { @@ -1622,8 +1575,7 @@ u64 clks_exec_wait_pid(u64 pid, u64 *out_status) { clks_exec_pending_dispatch_active = CLKS_FALSE; } - if (proc->state == CLKS_EXEC_PROC_PENDING || - proc->state == CLKS_EXEC_PROC_RUNNING || + if (proc->state == CLKS_EXEC_PROC_PENDING || proc->state == CLKS_EXEC_PROC_RUNNING || proc->state == CLKS_EXEC_PROC_STOPPED) { return 0ULL; } @@ -1695,8 +1647,7 @@ u64 clks_exec_fd_open(const char *path, u64 flags, u64 mode) { return (u64)fd_slot; } - if (clks_exec_path_is_dev_null(path) == CLKS_TRUE || - clks_exec_path_is_dev_zero(path) == CLKS_TRUE || + if (clks_exec_path_is_dev_null(path) == CLKS_TRUE || clks_exec_path_is_dev_zero(path) == CLKS_TRUE || clks_exec_path_is_dev_random(path) == CLKS_TRUE) { struct clks_exec_fd_entry *entry = &proc->fds[(u32)fd_slot]; @@ -1849,8 +1800,7 @@ u64 clks_exec_fd_write(u64 fd, const void *buffer, u64 size) { return size; } - if (entry->kind == CLKS_EXEC_FD_KIND_DEV_NULL || - entry->kind == CLKS_EXEC_FD_KIND_DEV_ZERO || + if (entry->kind == CLKS_EXEC_FD_KIND_DEV_NULL || entry->kind == CLKS_EXEC_FD_KIND_DEV_ZERO || entry->kind == CLKS_EXEC_FD_KIND_DEV_RANDOM) { entry->offset += size; return size; @@ -2159,9 +2109,7 @@ static u64 clks_exec_proc_runtime_ticks(const struct clks_exec_proc_record *proc runtime = proc->runtime_ticks_accum; - if (proc->state == CLKS_EXEC_PROC_RUNNING && - proc->run_started_tick != 0ULL && - now_tick > proc->run_started_tick) { + if (proc->state == CLKS_EXEC_PROC_RUNNING && proc->run_started_tick != 0ULL && now_tick > proc->run_started_tick) { runtime += (now_tick - proc->run_started_tick); } @@ -2374,9 +2322,7 @@ u64 clks_exec_force_stop_tty_running_process(u32 tty_index, u64 *out_pid) { if (slot >= 0) { const struct clks_exec_proc_record *proc = &clks_exec_proc_table[(u32)slot]; - if (proc->used == CLKS_TRUE && - proc->state == CLKS_EXEC_PROC_RUNNING && - proc->tty_index == tty_index && + if (proc->used == CLKS_TRUE && proc->state == CLKS_EXEC_PROC_RUNNING && proc->tty_index == tty_index && clks_exec_path_is_user_program(proc->path) == CLKS_TRUE) { u64 ret = clks_exec_proc_kill(current_pid, CLKS_EXEC_SIGNAL_STOP); @@ -2392,8 +2338,7 @@ u64 clks_exec_force_stop_tty_running_process(u32 tty_index, u64 *out_pid) { for (i = 0U; i < CLKS_EXEC_MAX_PROCS; i++) { u64 ret; - if (clks_exec_proc_table[i].used != CLKS_TRUE || - clks_exec_proc_table[i].state != CLKS_EXEC_PROC_RUNNING || + if (clks_exec_proc_table[i].used != CLKS_TRUE || clks_exec_proc_table[i].state != CLKS_EXEC_PROC_RUNNING || clks_exec_proc_table[i].tty_index != tty_index || clks_exec_path_is_user_program(clks_exec_proc_table[i].path) == CLKS_FALSE) { continue; @@ -2413,10 +2358,7 @@ u64 clks_exec_force_stop_tty_running_process(u32 tty_index, u64 *out_pid) { return 0ULL; } -clks_bool clks_exec_try_unwind_signaled_process(u64 interrupted_rip, - u64 *io_rip, - u64 *io_rdi, - u64 *io_rsi) { +clks_bool clks_exec_try_unwind_signaled_process(u64 interrupted_rip, u64 *io_rip, u64 *io_rdi, u64 *io_rsi) { i32 depth_index; if (io_rip == CLKS_NULL || io_rdi == CLKS_NULL || io_rsi == CLKS_NULL) { @@ -2456,12 +2398,7 @@ clks_bool clks_exec_try_unwind_signaled_process(u64 interrupted_rip, #endif } -clks_bool clks_exec_handle_exception(u64 vector, - u64 error_code, - u64 rip, - u64 *io_rip, - u64 *io_rdi, - u64 *io_rsi) { +clks_bool clks_exec_handle_exception(u64 vector, u64 error_code, u64 rip, u64 *io_rip, u64 *io_rdi, u64 *io_rsi) { i32 depth_index; struct clks_exec_proc_record *proc; u64 signal; @@ -2589,4 +2526,3 @@ clks_bool clks_exec_current_path_is_user(void) { proc = &clks_exec_proc_table[(u32)slot]; return clks_exec_path_is_user_program(proc->path); } - diff --git a/clks/kernel/fs.c b/clks/kernel/fs.c index 3d6806c..301a326 100644 --- a/clks/kernel/fs.c +++ b/clks/kernel/fs.c @@ -7,7 +7,7 @@ #include #define CLKS_FS_MAX_NODES 512U -#define CLKS_FS_PATH_MAX CLKS_RAMDISK_PATH_MAX +#define CLKS_FS_PATH_MAX CLKS_RAMDISK_PATH_MAX #define CLKS_FS_NODE_FLAG_HEAP_DATA 0x0001U @@ -103,10 +103,7 @@ static clks_bool clks_fs_internal_in_temp_tree(const char *internal_path) { return CLKS_FALSE; } - if (internal_path[0] != 't' || - internal_path[1] != 'e' || - internal_path[2] != 'm' || - internal_path[3] != 'p') { + if (internal_path[0] != 't' || internal_path[1] != 'e' || internal_path[2] != 'm' || internal_path[3] != 'p') { return CLKS_FALSE; } @@ -248,11 +245,8 @@ static i32 clks_fs_alloc_slot(void) { return (i32)(clks_fs_nodes_used - 1U); } -static i32 clks_fs_create_or_update_node(const char *internal_path, - enum clks_fs_node_type type, - u16 parent, - const void *data, - u64 size) { +static i32 clks_fs_create_or_update_node(const char *internal_path, enum clks_fs_node_type type, u16 parent, + const void *data, u64 size) { i32 existing; i32 slot; usize path_len; @@ -433,11 +427,8 @@ static clks_bool clks_fs_ramdisk_visit(const struct clks_ramdisk_entry *entry, v return CLKS_FALSE; } - if (clks_fs_create_or_update_node(entry->path, - CLKS_FS_NODE_FILE, - (u16)parent_index, - entry->data, - entry->size) < 0) { + if (clks_fs_create_or_update_node(entry->path, CLKS_FS_NODE_FILE, (u16)parent_index, entry->data, entry->size) < + 0) { return CLKS_FALSE; } @@ -448,9 +439,7 @@ static clks_bool clks_fs_ramdisk_visit(const struct clks_ramdisk_entry *entry, v return CLKS_TRUE; } -static clks_bool clks_fs_build_file_payload(const void *data, - u64 size, - const void **out_data, +static clks_bool clks_fs_build_file_payload(const void *data, u64 size, const void **out_data, clks_bool *out_heap_owned) { void *payload; @@ -764,13 +753,7 @@ clks_bool clks_fs_write_all(const char *path, const void *data, u64 size) { clks_fs_node_release_heap_data((u16)node_index); } - node_index = clks_fs_create_or_update_node( - internal, - CLKS_FS_NODE_FILE, - (u16)parent_index, - payload_data, - size - ); + node_index = clks_fs_create_or_update_node(internal, CLKS_FS_NODE_FILE, (u16)parent_index, payload_data, size); if (node_index < 0) { if (payload_heap_owned == CLKS_TRUE) { diff --git a/clks/kernel/heap.c b/clks/kernel/heap.c index 02ae290..735d2ce 100644 --- a/clks/kernel/heap.c +++ b/clks/kernel/heap.c @@ -3,8 +3,8 @@ #include #define CLKS_HEAP_ARENA_SIZE (1024ULL * 1024ULL) -#define CLKS_HEAP_ALIGN 16ULL -#define CLKS_HEAP_MAGIC 0x434C454F4E4F534FULL +#define CLKS_HEAP_ALIGN 16ULL +#define CLKS_HEAP_MAGIC 0x434C454F4E4F534FULL struct clks_heap_block { usize size; diff --git a/clks/kernel/interrupts.c b/clks/kernel/interrupts.c index 0c98224..8f92707 100644 --- a/clks/kernel/interrupts.c +++ b/clks/kernel/interrupts.c @@ -11,23 +11,23 @@ #include #define CLKS_IDT_ENTRY_COUNT 256U -#define CLKS_INTERRUPT_GATE 0x8EU -#define CLKS_USER_INT_GATE 0xEEU +#define CLKS_INTERRUPT_GATE 0x8EU +#define CLKS_USER_INT_GATE 0xEEU -#define CLKS_PIC1_CMD 0x20U -#define CLKS_PIC1_DATA 0x21U -#define CLKS_PIC2_CMD 0xA0U -#define CLKS_PIC2_DATA 0xA1U -#define CLKS_PIC_EOI 0x20U +#define CLKS_PIC1_CMD 0x20U +#define CLKS_PIC1_DATA 0x21U +#define CLKS_PIC2_CMD 0xA0U +#define CLKS_PIC2_DATA 0xA1U +#define CLKS_PIC_EOI 0x20U -#define CLKS_IRQ_BASE 32U -#define CLKS_IRQ_TIMER 32U +#define CLKS_IRQ_BASE 32U +#define CLKS_IRQ_TIMER 32U #define CLKS_IRQ_KEYBOARD 33U -#define CLKS_IRQ_MOUSE 44U -#define CLKS_IRQ_LAST 47U +#define CLKS_IRQ_MOUSE 44U +#define CLKS_IRQ_LAST 47U #define CLKS_SYSCALL_VECTOR 128U -#define CLKS_PS2_DATA_PORT 0x60U +#define CLKS_PS2_DATA_PORT 0x60U #define CLKS_PS2_STATUS_PORT 0x64U struct clks_idt_entry { @@ -125,40 +125,38 @@ static struct clks_idt_entry clks_idt[CLKS_IDT_ENTRY_COUNT]; static u16 clks_idt_code_selector = 0x08U; static u64 clks_timer_ticks = 0; -static const char *clks_exception_names[32] = { - "DE DIVIDE ERROR", - "DB DEBUG", - "NMI", - "BP BREAKPOINT", - "OF OVERFLOW", - "BR BOUND RANGE", - "UD INVALID OPCODE", - "NM DEVICE NOT AVAILABLE", - "DF DOUBLE FAULT", - "COPROCESSOR SEGMENT", - "TS INVALID TSS", - "NP SEGMENT NOT PRESENT", - "SS STACK SEGMENT", - "GP GENERAL PROTECTION", - "PF PAGE FAULT", - "RESERVED", - "MF X87 FLOAT", - "AC ALIGNMENT CHECK", - "MC MACHINE CHECK", - "XF SIMD FLOAT", - "VE VIRT EXCEPTION", - "CP CONTROL PROTECTION", - "RESERVED", - "RESERVED", - "RESERVED", - "RESERVED", - "RESERVED", - "RESERVED", - "HV HYPERVISOR", - "VC VMM COMM", - "SX SECURITY", - "RESERVED" -}; +static const char *clks_exception_names[32] = {"DE DIVIDE ERROR", + "DB DEBUG", + "NMI", + "BP BREAKPOINT", + "OF OVERFLOW", + "BR BOUND RANGE", + "UD INVALID OPCODE", + "NM DEVICE NOT AVAILABLE", + "DF DOUBLE FAULT", + "COPROCESSOR SEGMENT", + "TS INVALID TSS", + "NP SEGMENT NOT PRESENT", + "SS STACK SEGMENT", + "GP GENERAL PROTECTION", + "PF PAGE FAULT", + "RESERVED", + "MF X87 FLOAT", + "AC ALIGNMENT CHECK", + "MC MACHINE CHECK", + "XF SIMD FLOAT", + "VE VIRT EXCEPTION", + "CP CONTROL PROTECTION", + "RESERVED", + "RESERVED", + "RESERVED", + "RESERVED", + "RESERVED", + "RESERVED", + "HV HYPERVISOR", + "VC VMM COMM", + "SX SECURITY", + "RESERVED"}; static inline void clks_outb(u16 port, u8 value) { __asm__ volatile("outb %0, %1" : : "a"(value), "Nd"(port)); @@ -234,7 +232,6 @@ static void clks_load_idt(void) { __asm__ volatile("lidt %0" : : "m"(idtr)); } - static clks_bool clks_ps2_has_output(void) { return (clks_inb(CLKS_PS2_STATUS_PORT) & 0x01U) != 0U ? CLKS_TRUE : CLKS_FALSE; } @@ -251,20 +248,12 @@ void clks_interrupt_dispatch(struct clks_interrupt_frame *frame) { } if (vector < 32U) { - if (clks_exec_handle_exception(vector, - frame->error_code, - frame->rip, - &frame->rip, - &frame->rdi, - &frame->rsi) == CLKS_TRUE) { + if (clks_exec_handle_exception(vector, frame->error_code, frame->rip, &frame->rip, &frame->rdi, &frame->rsi) == + CLKS_TRUE) { return; } - clks_panic_exception(clks_exception_names[vector], - vector, - frame->error_code, - frame->rip, - frame->rbp, + clks_panic_exception(clks_exception_names[vector], vector, frame->error_code, frame->rip, frame->rbp, frame->rsp); } diff --git a/clks/kernel/kelf.c b/clks/kernel/kelf.c index ee56080..3b4b43c 100644 --- a/clks/kernel/kelf.c +++ b/clks/kernel/kelf.c @@ -69,10 +69,7 @@ static void clks_kelf_copy_name(char *dst, usize dst_size, const char *src) { dst[i] = '\0'; } -static clks_bool clks_kelf_load_runtime_image(const void *image, - u64 size, - void **out_runtime, - u64 *out_runtime_size, +static clks_bool clks_kelf_load_runtime_image(const void *image, u64 size, void **out_runtime, u64 *out_runtime_size, clks_kelf_entry_fn *out_entry) { const struct clks_elf64_ehdr *eh; u64 min_vaddr = 0xffffffffffffffffULL; @@ -143,9 +140,7 @@ static clks_bool clks_kelf_load_runtime_image(const void *image, continue; } - clks_memcpy(runtime + (usize)(ph->p_vaddr - min_vaddr), - (const u8 *)image + ph->p_offset, - (usize)ph->p_filesz); + clks_memcpy(runtime + (usize)(ph->p_vaddr - min_vaddr), (const u8 *)image + ph->p_offset, (usize)ph->p_filesz); } if (eh->e_entry < min_vaddr || eh->e_entry >= max_vaddr) { @@ -253,4 +248,3 @@ u64 clks_kelf_count(void) { u64 clks_kelf_total_runs(void) { return clks_kelf_total_runs_count; } - diff --git a/clks/kernel/keyboard.c b/clks/kernel/keyboard.c index f56e826..3119486 100644 --- a/clks/kernel/keyboard.c +++ b/clks/kernel/keyboard.c @@ -5,30 +5,30 @@ #include #include -#define CLKS_SC_ALT 0x38U -#define CLKS_SC_LSHIFT 0x2AU -#define CLKS_SC_RSHIFT 0x36U -#define CLKS_SC_CTRL 0x1DU -#define CLKS_SC_F1 0x3BU -#define CLKS_SC_F2 0x3CU -#define CLKS_SC_F3 0x3DU -#define CLKS_SC_F4 0x3EU -#define CLKS_SC_C 0x2EU -#define CLKS_SC_EXT_PREFIX 0xE0U +#define CLKS_SC_ALT 0x38U +#define CLKS_SC_LSHIFT 0x2AU +#define CLKS_SC_RSHIFT 0x36U +#define CLKS_SC_CTRL 0x1DU +#define CLKS_SC_F1 0x3BU +#define CLKS_SC_F2 0x3CU +#define CLKS_SC_F3 0x3DU +#define CLKS_SC_F4 0x3EU +#define CLKS_SC_C 0x2EU +#define CLKS_SC_EXT_PREFIX 0xE0U -#define CLKS_SC_EXT_HOME 0x47U -#define CLKS_SC_EXT_UP 0x48U -#define CLKS_SC_EXT_LEFT 0x4BU -#define CLKS_SC_EXT_RIGHT 0x4DU -#define CLKS_SC_EXT_END 0x4FU -#define CLKS_SC_EXT_DOWN 0x50U -#define CLKS_SC_EXT_PAGEUP 0x49U -#define CLKS_SC_EXT_PAGEDOWN 0x51U -#define CLKS_SC_EXT_DELETE 0x53U +#define CLKS_SC_EXT_HOME 0x47U +#define CLKS_SC_EXT_UP 0x48U +#define CLKS_SC_EXT_LEFT 0x4BU +#define CLKS_SC_EXT_RIGHT 0x4DU +#define CLKS_SC_EXT_END 0x4FU +#define CLKS_SC_EXT_DOWN 0x50U +#define CLKS_SC_EXT_PAGEUP 0x49U +#define CLKS_SC_EXT_PAGEDOWN 0x51U +#define CLKS_SC_EXT_DELETE 0x53U -#define CLKS_KBD_INPUT_CAP 256U -#define CLKS_KBD_TTY_MAX 8U -#define CLKS_KBD_DROP_LOG_EVERY 64ULL +#define CLKS_KBD_INPUT_CAP 256U +#define CLKS_KBD_TTY_MAX 8U +#define CLKS_KBD_DROP_LOG_EVERY 64ULL #ifndef CLKS_CFG_KBD_TTY_SWITCH_HOTKEY #define CLKS_CFG_KBD_TTY_SWITCH_HOTKEY 1 @@ -43,26 +43,20 @@ #endif static const char clks_kbd_map[128] = { - [2] = '1', [3] = '2', [4] = '3', [5] = '4', [6] = '5', [7] = '6', [8] = '7', [9] = '8', - [10] = '9', [11] = '0', [12] = '-', [13] = '=', [14] = '\b', [15] = '\t', - [16] = 'q', [17] = 'w', [18] = 'e', [19] = 'r', [20] = 't', [21] = 'y', [22] = 'u', [23] = 'i', - [24] = 'o', [25] = 'p', [26] = '[', [27] = ']', [28] = '\n', - [30] = 'a', [31] = 's', [32] = 'd', [33] = 'f', [34] = 'g', [35] = 'h', [36] = 'j', [37] = 'k', - [38] = 'l', [39] = ';', [40] = '\'', [41] = '`', [43] = '\\', - [44] = 'z', [45] = 'x', [46] = 'c', [47] = 'v', [48] = 'b', [49] = 'n', [50] = 'm', - [51] = ',', [52] = '.', [53] = '/', [57] = ' ' -}; + [2] = '1', [3] = '2', [4] = '3', [5] = '4', [6] = '5', [7] = '6', [8] = '7', [9] = '8', [10] = '9', + [11] = '0', [12] = '-', [13] = '=', [14] = '\b', [15] = '\t', [16] = 'q', [17] = 'w', [18] = 'e', [19] = 'r', + [20] = 't', [21] = 'y', [22] = 'u', [23] = 'i', [24] = 'o', [25] = 'p', [26] = '[', [27] = ']', [28] = '\n', + [30] = 'a', [31] = 's', [32] = 'd', [33] = 'f', [34] = 'g', [35] = 'h', [36] = 'j', [37] = 'k', [38] = 'l', + [39] = ';', [40] = '\'', [41] = '`', [43] = '\\', [44] = 'z', [45] = 'x', [46] = 'c', [47] = 'v', [48] = 'b', + [49] = 'n', [50] = 'm', [51] = ',', [52] = '.', [53] = '/', [57] = ' '}; static const char clks_kbd_shift_map[128] = { - [2] = '!', [3] = '@', [4] = '#', [5] = '$', [6] = '%', [7] = '^', [8] = '&', [9] = '*', - [10] = '(', [11] = ')', [12] = '_', [13] = '+', [14] = '\b', [15] = '\t', - [16] = 'Q', [17] = 'W', [18] = 'E', [19] = 'R', [20] = 'T', [21] = 'Y', [22] = 'U', [23] = 'I', - [24] = 'O', [25] = 'P', [26] = '{', [27] = '}', [28] = '\n', - [30] = 'A', [31] = 'S', [32] = 'D', [33] = 'F', [34] = 'G', [35] = 'H', [36] = 'J', [37] = 'K', - [38] = 'L', [39] = ':', [40] = '"', [41] = '~', [43] = '|', - [44] = 'Z', [45] = 'X', [46] = 'C', [47] = 'V', [48] = 'B', [49] = 'N', [50] = 'M', - [51] = '<', [52] = '>', [53] = '?', [57] = ' ' -}; + [2] = '!', [3] = '@', [4] = '#', [5] = '$', [6] = '%', [7] = '^', [8] = '&', [9] = '*', [10] = '(', + [11] = ')', [12] = '_', [13] = '+', [14] = '\b', [15] = '\t', [16] = 'Q', [17] = 'W', [18] = 'E', [19] = 'R', + [20] = 'T', [21] = 'Y', [22] = 'U', [23] = 'I', [24] = 'O', [25] = 'P', [26] = '{', [27] = '}', [28] = '\n', + [30] = 'A', [31] = 'S', [32] = 'D', [33] = 'F', [34] = 'G', [35] = 'H', [36] = 'J', [37] = 'K', [38] = 'L', + [39] = ':', [40] = '"', [41] = '~', [43] = '|', [44] = 'Z', [45] = 'X', [46] = 'C', [47] = 'V', [48] = 'B', + [49] = 'N', [50] = 'M', [51] = '<', [52] = '>', [53] = '?', [57] = ' '}; static char clks_kbd_input_queue[CLKS_KBD_TTY_MAX][CLKS_KBD_INPUT_CAP]; static u16 clks_kbd_input_head[CLKS_KBD_TTY_MAX]; @@ -114,22 +108,22 @@ static char clks_keyboard_translate_ext_scancode(u8 code) { clks_bool shift_active = clks_keyboard_shift_active(); switch (code) { - case CLKS_SC_EXT_LEFT: - return (shift_active == CLKS_TRUE) ? CLKS_KEY_SHIFT_LEFT : CLKS_KEY_LEFT; - case CLKS_SC_EXT_RIGHT: - return (shift_active == CLKS_TRUE) ? CLKS_KEY_SHIFT_RIGHT : CLKS_KEY_RIGHT; - case CLKS_SC_EXT_UP: - return CLKS_KEY_UP; - case CLKS_SC_EXT_DOWN: - return CLKS_KEY_DOWN; - case CLKS_SC_EXT_HOME: - return (shift_active == CLKS_TRUE) ? CLKS_KEY_SHIFT_HOME : CLKS_KEY_HOME; - case CLKS_SC_EXT_END: - return (shift_active == CLKS_TRUE) ? CLKS_KEY_SHIFT_END : CLKS_KEY_END; - case CLKS_SC_EXT_DELETE: - return CLKS_KEY_DELETE; - default: - return '\0'; + case CLKS_SC_EXT_LEFT: + return (shift_active == CLKS_TRUE) ? CLKS_KEY_SHIFT_LEFT : CLKS_KEY_LEFT; + case CLKS_SC_EXT_RIGHT: + return (shift_active == CLKS_TRUE) ? CLKS_KEY_SHIFT_RIGHT : CLKS_KEY_RIGHT; + case CLKS_SC_EXT_UP: + return CLKS_KEY_UP; + case CLKS_SC_EXT_DOWN: + return CLKS_KEY_DOWN; + case CLKS_SC_EXT_HOME: + return (shift_active == CLKS_TRUE) ? CLKS_KEY_SHIFT_HOME : CLKS_KEY_HOME; + case CLKS_SC_EXT_END: + return (shift_active == CLKS_TRUE) ? CLKS_KEY_SHIFT_END : CLKS_KEY_END; + case CLKS_SC_EXT_DELETE: + return CLKS_KEY_DELETE; + default: + return '\0'; } } @@ -172,9 +166,8 @@ static clks_bool clks_keyboard_should_pump_shell_now(void) { } static char clks_keyboard_translate_scancode(u8 code) { - clks_bool shift_active = (clks_kbd_lshift_down == CLKS_TRUE || clks_kbd_rshift_down == CLKS_TRUE) - ? CLKS_TRUE - : CLKS_FALSE; + clks_bool shift_active = + (clks_kbd_lshift_down == CLKS_TRUE || clks_kbd_rshift_down == CLKS_TRUE) ? CLKS_TRUE : CLKS_FALSE; if (shift_active == CLKS_TRUE) { return clks_kbd_shift_map[code]; @@ -199,17 +192,17 @@ static clks_bool clks_keyboard_try_emit_ctrl_shortcut(u8 code, u32 tty_index) { } switch (code) { - case 0x1EU: - shortcut = CLKS_KEY_SELECT_ALL; - break; - case 0x2EU: - shortcut = CLKS_KEY_COPY; - break; - case 0x2FU: - shortcut = CLKS_KEY_PASTE; - break; - default: - return CLKS_FALSE; + case 0x1EU: + shortcut = CLKS_KEY_SELECT_ALL; + break; + case 0x2EU: + shortcut = CLKS_KEY_COPY; + break; + case 0x2FU: + shortcut = CLKS_KEY_PASTE; + break; + default: + return CLKS_FALSE; } if (clks_keyboard_queue_push_for_tty(tty_index, shortcut) == CLKS_TRUE && @@ -383,9 +376,7 @@ void clks_keyboard_handle_scancode(u8 scancode) { return; } - if (CLKS_CFG_KBD_TTY_SWITCH_HOTKEY != 0 && - clks_kbd_alt_down == CLKS_TRUE && - code >= CLKS_SC_F1 && + if (CLKS_CFG_KBD_TTY_SWITCH_HOTKEY != 0 && clks_kbd_alt_down == CLKS_TRUE && code >= CLKS_SC_F1 && code <= CLKS_SC_F4) { u32 target = (u32)(code - CLKS_SC_F1); u32 before = clks_tty_active(); @@ -471,4 +462,3 @@ u64 clks_keyboard_push_count(void) { u64 clks_keyboard_pop_count(void) { return clks_kbd_pop_count; } - diff --git a/clks/kernel/kmain.c b/clks/kernel/kmain.c index 4e70ae6..6e7ad7f 100644 --- a/clks/kernel/kmain.c +++ b/clks/kernel/kmain.c @@ -142,18 +142,18 @@ static void clks_task_kworker(u64 tick) { clks_service_heartbeat(CLKS_SERVICE_SCHED, tick); switch (phase) { - case 0U: - clks_service_heartbeat(CLKS_SERVICE_MEM, tick); - break; - case 1U: - clks_service_heartbeat(CLKS_SERVICE_FS, tick); - break; - case 2U: - clks_service_heartbeat(CLKS_SERVICE_DRIVER, tick); - break; - default: - clks_service_heartbeat(CLKS_SERVICE_LOG, tick); - break; + case 0U: + clks_service_heartbeat(CLKS_SERVICE_MEM, tick); + break; + case 1U: + clks_service_heartbeat(CLKS_SERVICE_FS, tick); + break; + case 2U: + clks_service_heartbeat(CLKS_SERVICE_DRIVER, tick); + break; + default: + clks_service_heartbeat(CLKS_SERVICE_LOG, tick); + break; } phase = (phase + 1U) & 3U; diff --git a/clks/kernel/limine_requests.c b/clks/kernel/limine_requests.c index 92a5d7f..4f31bdb 100644 --- a/clks/kernel/limine_requests.c +++ b/clks/kernel/limine_requests.c @@ -1,42 +1,42 @@ #include #include -CLKS_USED static volatile u64 limine_requests_start[] - __attribute__((section(".limine_requests_start"))) = LIMINE_REQUESTS_START_MARKER; +CLKS_USED static volatile u64 limine_requests_start[] __attribute__((section(".limine_requests_start"))) = + LIMINE_REQUESTS_START_MARKER; -CLKS_USED static volatile u64 limine_base_revision[] - __attribute__((section(".limine_requests"))) = LIMINE_BASE_REVISION(3); +CLKS_USED static volatile u64 limine_base_revision[] __attribute__((section(".limine_requests"))) = + LIMINE_BASE_REVISION(3); CLKS_USED static volatile struct limine_framebuffer_request limine_framebuffer_request __attribute__((section(".limine_requests"))) = { .id = LIMINE_FRAMEBUFFER_REQUEST, .revision = 0, .response = CLKS_NULL, - }; +}; CLKS_USED static volatile struct limine_memmap_request limine_memmap_request __attribute__((section(".limine_requests"))) = { .id = LIMINE_MEMMAP_REQUEST, .revision = 0, .response = CLKS_NULL, - }; +}; CLKS_USED static volatile struct limine_executable_file_request limine_executable_file_request __attribute__((section(".limine_requests"))) = { .id = LIMINE_EXECUTABLE_FILE_REQUEST, .revision = 0, .response = CLKS_NULL, - }; +}; CLKS_USED static volatile struct limine_module_request limine_module_request __attribute__((section(".limine_requests"))) = { .id = LIMINE_MODULE_REQUEST, .revision = 0, .response = CLKS_NULL, - }; +}; -CLKS_USED static volatile u64 limine_requests_end[] - __attribute__((section(".limine_requests_end"))) = LIMINE_REQUESTS_END_MARKER; +CLKS_USED static volatile u64 limine_requests_end[] __attribute__((section(".limine_requests_end"))) = + LIMINE_REQUESTS_END_MARKER; clks_bool clks_boot_base_revision_supported(void) { return (limine_base_revision[2] == 0) ? CLKS_TRUE : CLKS_FALSE; diff --git a/clks/kernel/log.c b/clks/kernel/log.c index 36ae16d..7d16697 100644 --- a/clks/kernel/log.c +++ b/clks/kernel/log.c @@ -14,16 +14,16 @@ static u32 clks_log_journal_count_live = 0U; static const char *clks_log_level_name(enum clks_log_level level) { switch (level) { - case CLKS_LOG_DEBUG: - return "DEBUG"; - case CLKS_LOG_INFO: - return "INFO"; - case CLKS_LOG_WARN: - return "WARN"; - case CLKS_LOG_ERROR: - return "ERROR"; - default: - return "UNK"; + case CLKS_LOG_DEBUG: + return "DEBUG"; + case CLKS_LOG_INFO: + return "INFO"; + case CLKS_LOG_WARN: + return "WARN"; + case CLKS_LOG_ERROR: + return "ERROR"; + default: + return "UNK"; } } @@ -91,29 +91,23 @@ static void clks_log_journal_push(const char *line) { static const char *clks_log_level_ansi(enum clks_log_level level) { switch (level) { - case CLKS_LOG_DEBUG: - return "\x1B[38;5;110m"; - case CLKS_LOG_INFO: - return "\x1B[38;5;120m"; - case CLKS_LOG_WARN: - return "\x1B[1;38;5;220m"; - case CLKS_LOG_ERROR: - return "\x1B[1;38;5;203m"; - default: - return "\x1B[38;5;250m"; + case CLKS_LOG_DEBUG: + return "\x1B[38;5;110m"; + case CLKS_LOG_INFO: + return "\x1B[38;5;120m"; + case CLKS_LOG_WARN: + return "\x1B[1;38;5;220m"; + case CLKS_LOG_ERROR: + return "\x1B[1;38;5;203m"; + default: + return "\x1B[38;5;250m"; } } static const char *clks_log_tag_ansi(const char *tag) { static const char *palette[] = { - "\x1B[38;5;81m", - "\x1B[38;5;117m", - "\x1B[38;5;159m", - "\x1B[38;5;45m", - "\x1B[38;5;75m", - "\x1B[38;5;141m", - "\x1B[38;5;214m", - "\x1B[38;5;168m", + "\x1B[38;5;81m", "\x1B[38;5;117m", "\x1B[38;5;159m", "\x1B[38;5;45m", + "\x1B[38;5;75m", "\x1B[38;5;141m", "\x1B[38;5;214m", "\x1B[38;5;168m", }; u32 hash = 5381U; usize i = 0U; diff --git a/clks/kernel/mouse.c b/clks/kernel/mouse.c index 37fa92e..7816c20 100644 --- a/clks/kernel/mouse.c +++ b/clks/kernel/mouse.c @@ -3,26 +3,26 @@ #include #include -#define CLKS_PS2_DATA_PORT 0x60U -#define CLKS_PS2_STATUS_PORT 0x64U -#define CLKS_PS2_CMD_PORT 0x64U -#define CLKS_PS2_STATUS_OBF 0x01U -#define CLKS_PS2_STATUS_IBF 0x02U +#define CLKS_PS2_DATA_PORT 0x60U +#define CLKS_PS2_STATUS_PORT 0x64U +#define CLKS_PS2_CMD_PORT 0x64U +#define CLKS_PS2_STATUS_OBF 0x01U +#define CLKS_PS2_STATUS_IBF 0x02U #define CLKS_PS2_CMD_ENABLE_AUX 0xA8U -#define CLKS_PS2_CMD_READ_CFG 0x20U -#define CLKS_PS2_CMD_WRITE_CFG 0x60U -#define CLKS_PS2_CMD_WRITE_AUX 0xD4U +#define CLKS_PS2_CMD_READ_CFG 0x20U +#define CLKS_PS2_CMD_WRITE_CFG 0x60U +#define CLKS_PS2_CMD_WRITE_AUX 0xD4U #define CLKS_PS2_MOUSE_CMD_RESET_DEFAULTS 0xF6U -#define CLKS_PS2_MOUSE_CMD_ENABLE_STREAM 0xF4U -#define CLKS_PS2_MOUSE_ACK 0xFAU +#define CLKS_PS2_MOUSE_CMD_ENABLE_STREAM 0xF4U +#define CLKS_PS2_MOUSE_ACK 0xFAU -#define CLKS_MOUSE_IO_TIMEOUT 100000U -#define CLKS_MOUSE_DRAIN_MAX 64U -#define CLKS_MOUSE_SYNC_BIT 0x08U -#define CLKS_MOUSE_OVERFLOW_MASK 0xC0U -#define CLKS_MOUSE_BUTTON_MASK 0x07U +#define CLKS_MOUSE_IO_TIMEOUT 100000U +#define CLKS_MOUSE_DRAIN_MAX 64U +#define CLKS_MOUSE_SYNC_BIT 0x08U +#define CLKS_MOUSE_OVERFLOW_MASK 0xC0U +#define CLKS_MOUSE_BUTTON_MASK 0x07U struct clks_mouse_runtime { i32 x; @@ -193,8 +193,7 @@ void clks_mouse_init(void) { return; } - if (clks_mouse_write_cmd(CLKS_PS2_CMD_READ_CFG) == CLKS_FALSE || - clks_mouse_read_data(&config) == CLKS_FALSE) { + if (clks_mouse_write_cmd(CLKS_PS2_CMD_READ_CFG) == CLKS_FALSE || clks_mouse_read_data(&config) == CLKS_FALSE) { clks_log(CLKS_LOG_WARN, "MOUSE", "PS2 READ CFG FAILED"); return; } @@ -202,8 +201,7 @@ void clks_mouse_init(void) { config |= 0x02U; config &= (u8)~0x20U; - if (clks_mouse_write_cmd(CLKS_PS2_CMD_WRITE_CFG) == CLKS_FALSE || - clks_mouse_write_data(config) == CLKS_FALSE) { + if (clks_mouse_write_cmd(CLKS_PS2_CMD_WRITE_CFG) == CLKS_FALSE || clks_mouse_write_data(config) == CLKS_FALSE) { clks_log(CLKS_LOG_WARN, "MOUSE", "PS2 WRITE CFG FAILED"); return; } @@ -214,8 +212,7 @@ void clks_mouse_init(void) { return; } - if (clks_mouse_send_device_cmd(CLKS_PS2_MOUSE_CMD_ENABLE_STREAM, &ack) == CLKS_FALSE || - ack != CLKS_PS2_MOUSE_ACK) { + if (clks_mouse_send_device_cmd(CLKS_PS2_MOUSE_CMD_ENABLE_STREAM, &ack) == CLKS_FALSE || ack != CLKS_PS2_MOUSE_ACK) { clks_log(CLKS_LOG_WARN, "MOUSE", "PS2 ENABLE STREAM FAILED"); return; } diff --git a/clks/kernel/panic.c b/clks/kernel/panic.c index 3acaef6..c5a0089 100644 --- a/clks/kernel/panic.c +++ b/clks/kernel/panic.c @@ -9,10 +9,10 @@ #define CLKS_PANIC_BG 0x00200000U #define CLKS_PANIC_FG 0x00FFE0E0U -#define CLKS_PANIC_BACKTRACE_MAX 20U -#define CLKS_PANIC_STACK_WINDOW_BYTES (128ULL * 1024ULL) -#define CLKS_PANIC_SYMBOL_FILE "/system/kernel.sym" -#define CLKS_PANIC_KERNEL_ADDR_BASE 0xFFFF800000000000ULL +#define CLKS_PANIC_BACKTRACE_MAX 20U +#define CLKS_PANIC_STACK_WINDOW_BYTES (128ULL * 1024ULL) +#define CLKS_PANIC_SYMBOL_FILE "/system/kernel.sym" +#define CLKS_PANIC_KERNEL_ADDR_BASE 0xFFFF800000000000ULL struct clks_panic_console { u32 cols; @@ -225,13 +225,8 @@ static u8 clks_panic_hex_value(char ch) { return (u8)(10 + (ch - 'A')); } -static clks_bool clks_panic_parse_symbol_line(const char *line, - usize len, - u64 *out_addr, - const char **out_name, - usize *out_name_len, - const char **out_source, - usize *out_source_len) { +static clks_bool clks_panic_parse_symbol_line(const char *line, usize len, u64 *out_addr, const char **out_name, + usize *out_name_len, const char **out_source, usize *out_source_len) { usize i = 0U; u64 addr = 0ULL; u32 digits = 0U; @@ -328,12 +323,8 @@ static clks_bool clks_panic_symbols_ready(void) { return CLKS_TRUE; } -static clks_bool clks_panic_lookup_symbol(u64 addr, - const char **out_name, - usize *out_name_len, - u64 *out_base, - const char **out_source, - usize *out_source_len) { +static clks_bool clks_panic_lookup_symbol(u64 addr, const char **out_name, usize *out_name_len, u64 *out_base, + const char **out_source, usize *out_source_len) { const char *data; const char *end; const char *line; @@ -381,12 +372,7 @@ static clks_bool clks_panic_lookup_symbol(u64 addr, data++; } - if (clks_panic_parse_symbol_line(line, - line_len, - &line_addr, - &line_name, - &line_name_len, - &line_source, + if (clks_panic_parse_symbol_line(line, line_len, &line_addr, &line_name, &line_name_len, &line_source, &line_source_len) == CLKS_FALSE) { continue; } @@ -632,12 +618,7 @@ CLKS_NORETURN void clks_panic(const char *reason) { clks_panic_halt_loop(); } -CLKS_NORETURN void clks_panic_exception(const char *name, - u64 vector, - u64 error_code, - u64 rip, - u64 rbp, - u64 rsp) { +CLKS_NORETURN void clks_panic_exception(const char *name, u64 vector, u64 error_code, u64 rip, u64 rbp, u64 rsp) { struct clks_panic_console console; char hex_buf[19]; diff --git a/clks/kernel/pmm.c b/clks/kernel/pmm.c index 830ed65..d45a545 100644 --- a/clks/kernel/pmm.c +++ b/clks/kernel/pmm.c @@ -3,7 +3,7 @@ #include #define CLKS_PMM_MAX_TRACKED_PAGES 262144ULL -#define CLKS_PMM_MIN_USABLE_ADDR 0x100000ULL +#define CLKS_PMM_MIN_USABLE_ADDR 0x100000ULL static u64 clks_pmm_free_stack[CLKS_PMM_MAX_TRACKED_PAGES]; static u64 clks_pmm_free_top = 0; diff --git a/clks/kernel/service.c b/clks/kernel/service.c index 7079aab..fce3c69 100644 --- a/clks/kernel/service.c +++ b/clks/kernel/service.c @@ -70,24 +70,18 @@ void clks_service_init(void) { heap_stats = clks_heap_get_stats(); clks_service_register(CLKS_SERVICE_LOG, "log", CLKS_SERVICE_STATE_READY); - clks_service_register(CLKS_SERVICE_MEM, - "memory", + clks_service_register(CLKS_SERVICE_MEM, "memory", (heap_stats.total_bytes > 0U) ? CLKS_SERVICE_STATE_READY : CLKS_SERVICE_STATE_DEGRADED); - clks_service_register(CLKS_SERVICE_FS, - "filesystem", + clks_service_register(CLKS_SERVICE_FS, "filesystem", (clks_fs_is_ready() == CLKS_TRUE) ? CLKS_SERVICE_STATE_READY : CLKS_SERVICE_STATE_DEGRADED); - clks_service_register(CLKS_SERVICE_DRIVER, - "driver", + clks_service_register(CLKS_SERVICE_DRIVER, "driver", (clks_driver_count() > 0ULL) ? CLKS_SERVICE_STATE_READY : CLKS_SERVICE_STATE_DEGRADED); - clks_service_register(CLKS_SERVICE_SCHED, - "scheduler", - CLKS_SERVICE_STATE_READY); - clks_service_register(CLKS_SERVICE_KELF, - "kelf", + clks_service_register(CLKS_SERVICE_SCHED, "scheduler", CLKS_SERVICE_STATE_READY); + clks_service_register(CLKS_SERVICE_KELF, "kelf", (clks_kelf_count() > 0ULL) ? CLKS_SERVICE_STATE_READY : CLKS_SERVICE_STATE_DEGRADED); - clks_service_register(CLKS_SERVICE_USER, - "userland", - (clks_userland_shell_ready() == CLKS_TRUE) ? CLKS_SERVICE_STATE_READY : CLKS_SERVICE_STATE_DEGRADED); + clks_service_register(CLKS_SERVICE_USER, "userland", + (clks_userland_shell_ready() == CLKS_TRUE) ? CLKS_SERVICE_STATE_READY + : CLKS_SERVICE_STATE_DEGRADED); clks_log(CLKS_LOG_INFO, "SRV", "KERNEL SERVICES ONLINE"); clks_log_hex(CLKS_LOG_INFO, "SRV", "COUNT", clks_service_count()); diff --git a/clks/kernel/shell.c b/clks/kernel/shell.c index 49f0ddc..60a9490 100644 --- a/clks/kernel/shell.c +++ b/clks/kernel/shell.c @@ -12,17 +12,17 @@ #include #include -#define CLKS_SHELL_LINE_MAX 192U -#define CLKS_SHELL_CMD_MAX 32U -#define CLKS_SHELL_ARG_MAX 160U -#define CLKS_SHELL_NAME_MAX 96U -#define CLKS_SHELL_PATH_MAX 192U -#define CLKS_SHELL_CAT_LIMIT 512U -#define CLKS_SHELL_DMESG_LINE_MAX 256U -#define CLKS_SHELL_DMESG_DEFAULT 64ULL -#define CLKS_SHELL_INPUT_BUDGET 128U -#define CLKS_SHELL_CLEAR_LINES 56U -#define CLKS_SHELL_HISTORY_MAX 16U +#define CLKS_SHELL_LINE_MAX 192U +#define CLKS_SHELL_CMD_MAX 32U +#define CLKS_SHELL_ARG_MAX 160U +#define CLKS_SHELL_NAME_MAX 96U +#define CLKS_SHELL_PATH_MAX 192U +#define CLKS_SHELL_CAT_LIMIT 512U +#define CLKS_SHELL_DMESG_LINE_MAX 256U +#define CLKS_SHELL_DMESG_DEFAULT 64ULL +#define CLKS_SHELL_INPUT_BUDGET 128U +#define CLKS_SHELL_CLEAR_LINES 56U +#define CLKS_SHELL_HISTORY_MAX 16U #define CLKS_SHELL_PROMPT_TEXT "cleonos> " static clks_bool clks_shell_ready = CLKS_FALSE; @@ -173,35 +173,24 @@ static void clks_shell_history_push(const char *line) { return; } - if (clks_shell_history_count > 0U && - clks_strcmp(clks_shell_history[clks_shell_history_count - 1U], line) == 0) { + if (clks_shell_history_count > 0U && clks_strcmp(clks_shell_history[clks_shell_history_count - 1U], line) == 0) { clks_shell_history_cancel_nav(); return; } if (clks_shell_history_count < CLKS_SHELL_HISTORY_MAX) { - clks_shell_copy_line( - clks_shell_history[clks_shell_history_count], - sizeof(clks_shell_history[clks_shell_history_count]), - line - ); + clks_shell_copy_line(clks_shell_history[clks_shell_history_count], + sizeof(clks_shell_history[clks_shell_history_count]), line); clks_shell_history_count++; } else { u32 i; for (i = 1U; i < CLKS_SHELL_HISTORY_MAX; i++) { - clks_memcpy( - clks_shell_history[i - 1U], - clks_shell_history[i], - CLKS_SHELL_LINE_MAX - ); + clks_memcpy(clks_shell_history[i - 1U], clks_shell_history[i], CLKS_SHELL_LINE_MAX); } - clks_shell_copy_line( - clks_shell_history[CLKS_SHELL_HISTORY_MAX - 1U], - sizeof(clks_shell_history[CLKS_SHELL_HISTORY_MAX - 1U]), - line - ); + clks_shell_copy_line(clks_shell_history[CLKS_SHELL_HISTORY_MAX - 1U], + sizeof(clks_shell_history[CLKS_SHELL_HISTORY_MAX - 1U]), line); } clks_shell_history_cancel_nav(); @@ -287,10 +276,7 @@ static void clks_shell_trim(char *line) { } } -static void clks_shell_split_line(const char *line, - char *out_cmd, - usize out_cmd_size, - char *out_arg, +static void clks_shell_split_line(const char *line, char *out_cmd, usize out_cmd_size, char *out_arg, usize out_arg_size) { usize i = 0U; usize cmd_pos = 0U; @@ -407,7 +393,8 @@ static clks_bool clks_shell_resolve_exec_path(const char *arg, char *out_path, u return CLKS_TRUE; } -static clks_bool clks_shell_path_push_component(char *path, usize path_size, usize *io_len, const char *component, usize comp_len) { +static clks_bool clks_shell_path_push_component(char *path, usize path_size, usize *io_len, const char *component, + usize comp_len) { if (path == CLKS_NULL || io_len == CLKS_NULL || component == CLKS_NULL || comp_len == 0U) { return CLKS_FALSE; } @@ -528,9 +515,7 @@ static clks_bool clks_shell_resolve_path(const char *arg, char *out_path, usize return clks_shell_path_parse_into(arg, out_path, out_size, &len); } -static clks_bool clks_shell_split_first_and_rest(const char *arg, - char *out_first, - usize out_first_size, +static clks_bool clks_shell_split_first_and_rest(const char *arg, char *out_first, usize out_first_size, const char **out_rest) { usize i = 0U; usize p = 0U; @@ -567,17 +552,13 @@ static clks_bool clks_shell_split_first_and_rest(const char *arg, return CLKS_TRUE; } -static clks_bool clks_shell_split_two_args(const char *arg, - char *out_first, - usize out_first_size, - char *out_second, +static clks_bool clks_shell_split_two_args(const char *arg, char *out_first, usize out_first_size, char *out_second, usize out_second_size) { usize i = 0U; usize p = 0U; - if (arg == CLKS_NULL || - out_first == CLKS_NULL || out_first_size == 0U || - out_second == CLKS_NULL || out_second_size == 0U) { + if (arg == CLKS_NULL || out_first == CLKS_NULL || out_first_size == 0U || out_second == CLKS_NULL || + out_second_size == 0U) { return CLKS_FALSE; } @@ -1018,7 +999,8 @@ static clks_bool clks_shell_cmd_mv(const char *arg) { return CLKS_FALSE; } - if (clks_shell_path_is_under_temp(src_path) == CLKS_FALSE || clks_shell_path_is_under_temp(dst_path) == CLKS_FALSE) { + if (clks_shell_path_is_under_temp(src_path) == CLKS_FALSE || + clks_shell_path_is_under_temp(dst_path) == CLKS_FALSE) { clks_shell_writeln("mv: source and destination must be under /temp"); return CLKS_FALSE; } @@ -1563,4 +1545,3 @@ void clks_shell_tick(u64 tick) { clks_shell_drain_input(CLKS_SHELL_INPUT_BUDGET); clks_shell_process_pending_command(); } - diff --git a/clks/kernel/syscall.c b/clks/kernel/syscall.c index 8bb7015..d2072ca 100644 --- a/clks/kernel/syscall.c +++ b/clks/kernel/syscall.c @@ -16,24 +16,24 @@ #include #include -#define CLKS_SYSCALL_LOG_MAX_LEN 191U -#define CLKS_SYSCALL_PATH_MAX 192U -#define CLKS_SYSCALL_NAME_MAX 96U -#define CLKS_SYSCALL_TTY_MAX_LEN 2048U -#define CLKS_SYSCALL_FS_IO_CHUNK_LEN 65536U -#define CLKS_SYSCALL_JOURNAL_MAX_LEN 256U -#define CLKS_SYSCALL_ARG_LINE_MAX 256U -#define CLKS_SYSCALL_ENV_LINE_MAX 512U -#define CLKS_SYSCALL_ITEM_MAX 128U +#define CLKS_SYSCALL_LOG_MAX_LEN 191U +#define CLKS_SYSCALL_PATH_MAX 192U +#define CLKS_SYSCALL_NAME_MAX 96U +#define CLKS_SYSCALL_TTY_MAX_LEN 2048U +#define CLKS_SYSCALL_FS_IO_CHUNK_LEN 65536U +#define CLKS_SYSCALL_JOURNAL_MAX_LEN 256U +#define CLKS_SYSCALL_ARG_LINE_MAX 256U +#define CLKS_SYSCALL_ENV_LINE_MAX 512U +#define CLKS_SYSCALL_ITEM_MAX 128U #define CLKS_SYSCALL_PROCFS_TEXT_MAX 2048U #define CLKS_SYSCALL_USER_TRACE_BUDGET 128ULL -#define CLKS_SYSCALL_KDBG_TEXT_MAX 2048U +#define CLKS_SYSCALL_KDBG_TEXT_MAX 2048U #define CLKS_SYSCALL_KDBG_BT_MAX_FRAMES 16U #define CLKS_SYSCALL_KDBG_STACK_WINDOW_BYTES (128ULL * 1024ULL) #define CLKS_SYSCALL_KERNEL_SYMBOL_FILE "/system/kernel.sym" #define CLKS_SYSCALL_KERNEL_ADDR_BASE 0xFFFF800000000000ULL -#define CLKS_SYSCALL_STATS_MAX_ID CLKS_SYSCALL_EXEC_PATHV_IO -#define CLKS_SYSCALL_STATS_RING_SIZE 256U +#define CLKS_SYSCALL_STATS_MAX_ID CLKS_SYSCALL_EXEC_PATHV_IO +#define CLKS_SYSCALL_STATS_RING_SIZE 256U #ifndef CLKS_CFG_PROCFS #define CLKS_CFG_PROCFS 1 @@ -103,7 +103,6 @@ static inline void clks_syscall_outw(u16 port, u16 value) { } #endif - static clks_bool clks_syscall_copy_user_string(u64 src_addr, char *dst, usize dst_size) { const char *src = (const char *)src_addr; usize i = 0U; @@ -497,13 +496,8 @@ static u8 clks_syscall_hex_value(char ch) { return (u8)(10 + (ch - 'A')); } -static clks_bool clks_syscall_parse_symbol_line(const char *line, - usize len, - u64 *out_addr, - const char **out_name, - usize *out_name_len, - const char **out_source, - usize *out_source_len) { +static clks_bool clks_syscall_parse_symbol_line(const char *line, usize len, u64 *out_addr, const char **out_name, + usize *out_name_len, const char **out_source, usize *out_source_len) { usize i = 0U; u64 addr = 0ULL; u32 digits = 0U; @@ -600,12 +594,8 @@ static clks_bool clks_syscall_symbols_ready(void) { return CLKS_TRUE; } -static clks_bool clks_syscall_lookup_symbol(u64 addr, - const char **out_name, - usize *out_name_len, - u64 *out_base, - const char **out_source, - usize *out_source_len) { +static clks_bool clks_syscall_lookup_symbol(u64 addr, const char **out_name, usize *out_name_len, u64 *out_base, + const char **out_source, usize *out_source_len) { const char *data; const char *end; const char *line; @@ -653,12 +643,7 @@ static clks_bool clks_syscall_lookup_symbol(u64 addr, data++; } - if (clks_syscall_parse_symbol_line(line, - line_len, - &line_addr, - &line_name, - &line_name_len, - &line_source, + if (clks_syscall_parse_symbol_line(line, line_len, &line_addr, &line_name, &line_name_len, &line_source, &line_source_len) == CLKS_FALSE) { continue; } @@ -904,10 +889,8 @@ static u64 clks_syscall_kdbg_bt(u64 arg0) { current_rbp = next_rbp; } } else { - pos = clks_syscall_procfs_append_text(text, - sizeof(text), - pos, - "NOTE: stack walk skipped (rbp not in current kernel stack window)\n"); + pos = clks_syscall_procfs_append_text( + text, sizeof(text), pos, "NOTE: stack walk skipped (rbp not in current kernel stack window)\n"); } } #else @@ -941,8 +924,7 @@ static clks_bool clks_syscall_procfs_snapshot_for_path(const char *path, struct return CLKS_FALSE; } -static usize clks_syscall_procfs_render_snapshot(char *out, - usize out_size, +static usize clks_syscall_procfs_render_snapshot(char *out, usize out_size, const struct clks_exec_proc_snapshot *snap) { usize pos = 0U; @@ -1048,10 +1030,7 @@ static usize clks_syscall_procfs_render_list(char *out, usize out_size) { return pos; } -static clks_bool clks_syscall_procfs_render_file(const char *path, - char *out, - usize out_size, - usize *out_len) { +static clks_bool clks_syscall_procfs_render_file(const char *path, char *out, usize out_size, usize *out_len) { struct clks_exec_proc_snapshot snap; if (out_len != CLKS_NULL) { @@ -1093,8 +1072,7 @@ static u64 clks_syscall_fs_child_count(u64 arg0) { return (u64)-1; } - if (CLKS_CFG_PROCFS != 0 && - clks_syscall_fs_is_root(path) == CLKS_TRUE && + if (CLKS_CFG_PROCFS != 0 && clks_syscall_fs_is_root(path) == CLKS_TRUE && clks_syscall_fs_has_real_proc_dir() == CLKS_FALSE) { return base_count + 1ULL; } @@ -1148,8 +1126,7 @@ static u64 clks_syscall_fs_get_child_name(u64 arg0, u64 arg1, u64 arg2) { } } - if (CLKS_CFG_PROCFS != 0 && - clks_syscall_fs_is_root(path) == CLKS_TRUE && + if (CLKS_CFG_PROCFS != 0 && clks_syscall_fs_is_root(path) == CLKS_TRUE && clks_syscall_fs_has_real_proc_dir() == CLKS_FALSE) { if (arg1 == 0ULL) { clks_memset((void *)arg2, 0, CLKS_SYSCALL_NAME_MAX); @@ -1186,8 +1163,7 @@ static u64 clks_syscall_fs_read(u64 arg0, u64 arg1, u64 arg2) { } if (CLKS_CFG_PROCFS != 0 && - (clks_syscall_procfs_is_list(path) == CLKS_TRUE || - clks_syscall_procfs_is_self(path) == CLKS_TRUE || + (clks_syscall_procfs_is_list(path) == CLKS_TRUE || clks_syscall_procfs_is_self(path) == CLKS_TRUE || clks_syscall_procfs_parse_pid(path, &file_size) == CLKS_TRUE)) { char proc_text[CLKS_SYSCALL_PROCFS_TEXT_MAX]; usize proc_len = 0U; @@ -1282,7 +1258,8 @@ static u64 clks_syscall_exec_pathv_io(u64 arg0, u64 arg1, u64 arg2) { return (u64)-1; } - if (clks_exec_run_pathv_io(path, argv_line, env_line, req.stdin_fd, req.stdout_fd, req.stderr_fd, &status) == CLKS_FALSE) { + if (clks_exec_run_pathv_io(path, argv_line, env_line, req.stdin_fd, req.stdout_fd, req.stderr_fd, &status) == + CLKS_FALSE) { return (u64)-1; } @@ -1462,7 +1439,6 @@ static u64 clks_syscall_restart(void) { return 1ULL; } - static u64 clks_syscall_audio_available(void) { return (clks_audio_available() == CLKS_TRUE) ? 1ULL : 0ULL; } @@ -1736,9 +1712,7 @@ static u64 clks_syscall_stats_recent_id(u64 id) { static void clks_syscall_trace_user_program(u64 id) { clks_bool user_program_running = - (clks_exec_is_running() == CLKS_TRUE && clks_exec_current_path_is_user() == CLKS_TRUE) - ? CLKS_TRUE - : CLKS_FALSE; + (clks_exec_is_running() == CLKS_TRUE && clks_exec_current_path_is_user() == CLKS_TRUE) ? CLKS_TRUE : CLKS_FALSE; if (user_program_running == CLKS_FALSE) { if (clks_syscall_user_trace_active == CLKS_TRUE) { @@ -1800,189 +1774,184 @@ u64 clks_syscall_dispatch(void *frame_ptr) { clks_syscall_trace_user_program(id); switch (id) { - case CLKS_SYSCALL_LOG_WRITE: - return clks_syscall_log_write(frame->rbx, frame->rcx); - case CLKS_SYSCALL_TIMER_TICKS: - return clks_interrupts_timer_ticks(); - case CLKS_SYSCALL_TASK_COUNT: { - struct clks_scheduler_stats stats = clks_scheduler_get_stats(); - return stats.task_count; - } - case CLKS_SYSCALL_CURRENT_TASK_ID: { - struct clks_scheduler_stats stats = clks_scheduler_get_stats(); - return stats.current_task_id; - } - case CLKS_SYSCALL_SERVICE_COUNT: - return clks_service_count(); - case CLKS_SYSCALL_SERVICE_READY_COUNT: - return clks_service_ready_count(); - case CLKS_SYSCALL_CONTEXT_SWITCHES: { - struct clks_scheduler_stats stats = clks_scheduler_get_stats(); - return stats.context_switch_count; - } - case CLKS_SYSCALL_KELF_COUNT: - return clks_kelf_count(); - case CLKS_SYSCALL_KELF_RUNS: - return clks_kelf_total_runs(); - case CLKS_SYSCALL_FS_NODE_COUNT: - return clks_fs_node_count(); - case CLKS_SYSCALL_FS_CHILD_COUNT: - return clks_syscall_fs_child_count(frame->rbx); - case CLKS_SYSCALL_FS_GET_CHILD_NAME: - return clks_syscall_fs_get_child_name(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_FS_READ: - return clks_syscall_fs_read(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_EXEC_PATH: - return clks_syscall_exec_path(frame->rbx); - case CLKS_SYSCALL_EXEC_PATHV: - return clks_syscall_exec_pathv(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_EXEC_PATHV_IO: - return clks_syscall_exec_pathv_io(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_EXEC_REQUESTS: - return clks_exec_request_count(); - case CLKS_SYSCALL_EXEC_SUCCESS: - return clks_exec_success_count(); - case CLKS_SYSCALL_USER_SHELL_READY: - return (clks_userland_shell_ready() == CLKS_TRUE) ? 1ULL : 0ULL; - case CLKS_SYSCALL_USER_EXEC_REQUESTED: - return (clks_userland_shell_exec_requested() == CLKS_TRUE) ? 1ULL : 0ULL; - case CLKS_SYSCALL_USER_LAUNCH_TRIES: - return clks_userland_launch_attempts(); - case CLKS_SYSCALL_USER_LAUNCH_OK: - return clks_userland_launch_success(); - case CLKS_SYSCALL_USER_LAUNCH_FAIL: - return clks_userland_launch_failures(); - case CLKS_SYSCALL_TTY_COUNT: - return (u64)clks_tty_count(); - case CLKS_SYSCALL_TTY_ACTIVE: - return (u64)clks_tty_active(); - case CLKS_SYSCALL_TTY_SWITCH: - clks_tty_switch((u32)frame->rbx); - return (u64)clks_tty_active(); - case CLKS_SYSCALL_TTY_WRITE: - return clks_syscall_tty_write(frame->rbx, frame->rcx); - case CLKS_SYSCALL_TTY_WRITE_CHAR: - return clks_syscall_tty_write_char(frame->rbx); - case CLKS_SYSCALL_KBD_GET_CHAR: - return clks_syscall_kbd_get_char(); - case CLKS_SYSCALL_FS_STAT_TYPE: - return clks_syscall_fs_stat_type(frame->rbx); - case CLKS_SYSCALL_FS_STAT_SIZE: - return clks_syscall_fs_stat_size(frame->rbx); - case CLKS_SYSCALL_FS_MKDIR: - return clks_syscall_fs_mkdir(frame->rbx); - case CLKS_SYSCALL_FS_WRITE: - return clks_syscall_fs_write(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_FS_APPEND: - return clks_syscall_fs_append(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_FS_REMOVE: - return clks_syscall_fs_remove(frame->rbx); - case CLKS_SYSCALL_LOG_JOURNAL_COUNT: - return clks_syscall_log_journal_count(); - case CLKS_SYSCALL_LOG_JOURNAL_READ: - return clks_syscall_log_journal_read(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_KBD_BUFFERED: - return clks_keyboard_buffered_count(); - case CLKS_SYSCALL_KBD_PUSHED: - return clks_keyboard_push_count(); - case CLKS_SYSCALL_KBD_POPPED: - return clks_keyboard_pop_count(); - case CLKS_SYSCALL_KBD_DROPPED: - return clks_keyboard_drop_count(); - case CLKS_SYSCALL_KBD_HOTKEY_SWITCHES: - return clks_keyboard_hotkey_switch_count(); - case CLKS_SYSCALL_GETPID: - return clks_syscall_getpid(); - case CLKS_SYSCALL_SPAWN_PATH: - return clks_syscall_spawn_path(frame->rbx); - case CLKS_SYSCALL_SPAWN_PATHV: - return clks_syscall_spawn_pathv(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_WAITPID: - return clks_syscall_waitpid(frame->rbx, frame->rcx); - case CLKS_SYSCALL_PROC_ARGC: - return clks_syscall_proc_argc(); - case CLKS_SYSCALL_PROC_ARGV: - return clks_syscall_proc_argv(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_PROC_ENVC: - return clks_syscall_proc_envc(); - case CLKS_SYSCALL_PROC_ENV: - return clks_syscall_proc_env(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_PROC_LAST_SIGNAL: - return clks_syscall_proc_last_signal(); - case CLKS_SYSCALL_PROC_FAULT_VECTOR: - return clks_syscall_proc_fault_vector(); - case CLKS_SYSCALL_PROC_FAULT_ERROR: - return clks_syscall_proc_fault_error(); - case CLKS_SYSCALL_PROC_FAULT_RIP: - return clks_syscall_proc_fault_rip(); - case CLKS_SYSCALL_PROC_COUNT: - return clks_syscall_proc_count(); - case CLKS_SYSCALL_PROC_PID_AT: - return clks_syscall_proc_pid_at(frame->rbx, frame->rcx); - case CLKS_SYSCALL_PROC_SNAPSHOT: - return clks_syscall_proc_snapshot(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_PROC_KILL: - return clks_syscall_proc_kill(frame->rbx, frame->rcx); - case CLKS_SYSCALL_EXIT: - return clks_syscall_exit(frame->rbx); - case CLKS_SYSCALL_SLEEP_TICKS: - return clks_syscall_sleep_ticks(frame->rbx); - case CLKS_SYSCALL_YIELD: - return clks_syscall_yield(); - case CLKS_SYSCALL_SHUTDOWN: - return clks_syscall_shutdown(); - case CLKS_SYSCALL_RESTART: - return clks_syscall_restart(); - case CLKS_SYSCALL_AUDIO_AVAILABLE: - return clks_syscall_audio_available(); - case CLKS_SYSCALL_AUDIO_PLAY_TONE: - return clks_syscall_audio_play_tone(frame->rbx, frame->rcx); - case CLKS_SYSCALL_AUDIO_STOP: - return clks_syscall_audio_stop(); - case CLKS_SYSCALL_KDBG_SYM: - return clks_syscall_kdbg_sym(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_KDBG_BT: - return clks_syscall_kdbg_bt(frame->rbx); - case CLKS_SYSCALL_KDBG_REGS: - return clks_syscall_kdbg_regs(frame->rbx, frame->rcx); - case CLKS_SYSCALL_STATS_TOTAL: - return clks_syscall_stats_total_count(); - case CLKS_SYSCALL_STATS_ID_COUNT: - return clks_syscall_stats_id(frame->rbx); - case CLKS_SYSCALL_STATS_RECENT_WINDOW: - return clks_syscall_stats_recent_window(); - case CLKS_SYSCALL_STATS_RECENT_ID: - return clks_syscall_stats_recent_id(frame->rbx); - case CLKS_SYSCALL_FD_OPEN: - return clks_syscall_fd_open(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_FD_READ: - return clks_syscall_fd_read(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_FD_WRITE: - return clks_syscall_fd_write(frame->rbx, frame->rcx, frame->rdx); - case CLKS_SYSCALL_FD_CLOSE: - return clks_syscall_fd_close(frame->rbx); - case CLKS_SYSCALL_FD_DUP: - return clks_syscall_fd_dup(frame->rbx); - case CLKS_SYSCALL_DL_OPEN: - return clks_syscall_dl_open(frame->rbx); - case CLKS_SYSCALL_DL_CLOSE: - return clks_syscall_dl_close(frame->rbx); - case CLKS_SYSCALL_DL_SYM: - return clks_syscall_dl_sym(frame->rbx, frame->rcx); - default: - return (u64)-1; + case CLKS_SYSCALL_LOG_WRITE: + return clks_syscall_log_write(frame->rbx, frame->rcx); + case CLKS_SYSCALL_TIMER_TICKS: + return clks_interrupts_timer_ticks(); + case CLKS_SYSCALL_TASK_COUNT: { + struct clks_scheduler_stats stats = clks_scheduler_get_stats(); + return stats.task_count; + } + case CLKS_SYSCALL_CURRENT_TASK_ID: { + struct clks_scheduler_stats stats = clks_scheduler_get_stats(); + return stats.current_task_id; + } + case CLKS_SYSCALL_SERVICE_COUNT: + return clks_service_count(); + case CLKS_SYSCALL_SERVICE_READY_COUNT: + return clks_service_ready_count(); + case CLKS_SYSCALL_CONTEXT_SWITCHES: { + struct clks_scheduler_stats stats = clks_scheduler_get_stats(); + return stats.context_switch_count; + } + case CLKS_SYSCALL_KELF_COUNT: + return clks_kelf_count(); + case CLKS_SYSCALL_KELF_RUNS: + return clks_kelf_total_runs(); + case CLKS_SYSCALL_FS_NODE_COUNT: + return clks_fs_node_count(); + case CLKS_SYSCALL_FS_CHILD_COUNT: + return clks_syscall_fs_child_count(frame->rbx); + case CLKS_SYSCALL_FS_GET_CHILD_NAME: + return clks_syscall_fs_get_child_name(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_FS_READ: + return clks_syscall_fs_read(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_EXEC_PATH: + return clks_syscall_exec_path(frame->rbx); + case CLKS_SYSCALL_EXEC_PATHV: + return clks_syscall_exec_pathv(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_EXEC_PATHV_IO: + return clks_syscall_exec_pathv_io(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_EXEC_REQUESTS: + return clks_exec_request_count(); + case CLKS_SYSCALL_EXEC_SUCCESS: + return clks_exec_success_count(); + case CLKS_SYSCALL_USER_SHELL_READY: + return (clks_userland_shell_ready() == CLKS_TRUE) ? 1ULL : 0ULL; + case CLKS_SYSCALL_USER_EXEC_REQUESTED: + return (clks_userland_shell_exec_requested() == CLKS_TRUE) ? 1ULL : 0ULL; + case CLKS_SYSCALL_USER_LAUNCH_TRIES: + return clks_userland_launch_attempts(); + case CLKS_SYSCALL_USER_LAUNCH_OK: + return clks_userland_launch_success(); + case CLKS_SYSCALL_USER_LAUNCH_FAIL: + return clks_userland_launch_failures(); + case CLKS_SYSCALL_TTY_COUNT: + return (u64)clks_tty_count(); + case CLKS_SYSCALL_TTY_ACTIVE: + return (u64)clks_tty_active(); + case CLKS_SYSCALL_TTY_SWITCH: + clks_tty_switch((u32)frame->rbx); + return (u64)clks_tty_active(); + case CLKS_SYSCALL_TTY_WRITE: + return clks_syscall_tty_write(frame->rbx, frame->rcx); + case CLKS_SYSCALL_TTY_WRITE_CHAR: + return clks_syscall_tty_write_char(frame->rbx); + case CLKS_SYSCALL_KBD_GET_CHAR: + return clks_syscall_kbd_get_char(); + case CLKS_SYSCALL_FS_STAT_TYPE: + return clks_syscall_fs_stat_type(frame->rbx); + case CLKS_SYSCALL_FS_STAT_SIZE: + return clks_syscall_fs_stat_size(frame->rbx); + case CLKS_SYSCALL_FS_MKDIR: + return clks_syscall_fs_mkdir(frame->rbx); + case CLKS_SYSCALL_FS_WRITE: + return clks_syscall_fs_write(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_FS_APPEND: + return clks_syscall_fs_append(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_FS_REMOVE: + return clks_syscall_fs_remove(frame->rbx); + case CLKS_SYSCALL_LOG_JOURNAL_COUNT: + return clks_syscall_log_journal_count(); + case CLKS_SYSCALL_LOG_JOURNAL_READ: + return clks_syscall_log_journal_read(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_KBD_BUFFERED: + return clks_keyboard_buffered_count(); + case CLKS_SYSCALL_KBD_PUSHED: + return clks_keyboard_push_count(); + case CLKS_SYSCALL_KBD_POPPED: + return clks_keyboard_pop_count(); + case CLKS_SYSCALL_KBD_DROPPED: + return clks_keyboard_drop_count(); + case CLKS_SYSCALL_KBD_HOTKEY_SWITCHES: + return clks_keyboard_hotkey_switch_count(); + case CLKS_SYSCALL_GETPID: + return clks_syscall_getpid(); + case CLKS_SYSCALL_SPAWN_PATH: + return clks_syscall_spawn_path(frame->rbx); + case CLKS_SYSCALL_SPAWN_PATHV: + return clks_syscall_spawn_pathv(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_WAITPID: + return clks_syscall_waitpid(frame->rbx, frame->rcx); + case CLKS_SYSCALL_PROC_ARGC: + return clks_syscall_proc_argc(); + case CLKS_SYSCALL_PROC_ARGV: + return clks_syscall_proc_argv(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_PROC_ENVC: + return clks_syscall_proc_envc(); + case CLKS_SYSCALL_PROC_ENV: + return clks_syscall_proc_env(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_PROC_LAST_SIGNAL: + return clks_syscall_proc_last_signal(); + case CLKS_SYSCALL_PROC_FAULT_VECTOR: + return clks_syscall_proc_fault_vector(); + case CLKS_SYSCALL_PROC_FAULT_ERROR: + return clks_syscall_proc_fault_error(); + case CLKS_SYSCALL_PROC_FAULT_RIP: + return clks_syscall_proc_fault_rip(); + case CLKS_SYSCALL_PROC_COUNT: + return clks_syscall_proc_count(); + case CLKS_SYSCALL_PROC_PID_AT: + return clks_syscall_proc_pid_at(frame->rbx, frame->rcx); + case CLKS_SYSCALL_PROC_SNAPSHOT: + return clks_syscall_proc_snapshot(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_PROC_KILL: + return clks_syscall_proc_kill(frame->rbx, frame->rcx); + case CLKS_SYSCALL_EXIT: + return clks_syscall_exit(frame->rbx); + case CLKS_SYSCALL_SLEEP_TICKS: + return clks_syscall_sleep_ticks(frame->rbx); + case CLKS_SYSCALL_YIELD: + return clks_syscall_yield(); + case CLKS_SYSCALL_SHUTDOWN: + return clks_syscall_shutdown(); + case CLKS_SYSCALL_RESTART: + return clks_syscall_restart(); + case CLKS_SYSCALL_AUDIO_AVAILABLE: + return clks_syscall_audio_available(); + case CLKS_SYSCALL_AUDIO_PLAY_TONE: + return clks_syscall_audio_play_tone(frame->rbx, frame->rcx); + case CLKS_SYSCALL_AUDIO_STOP: + return clks_syscall_audio_stop(); + case CLKS_SYSCALL_KDBG_SYM: + return clks_syscall_kdbg_sym(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_KDBG_BT: + return clks_syscall_kdbg_bt(frame->rbx); + case CLKS_SYSCALL_KDBG_REGS: + return clks_syscall_kdbg_regs(frame->rbx, frame->rcx); + case CLKS_SYSCALL_STATS_TOTAL: + return clks_syscall_stats_total_count(); + case CLKS_SYSCALL_STATS_ID_COUNT: + return clks_syscall_stats_id(frame->rbx); + case CLKS_SYSCALL_STATS_RECENT_WINDOW: + return clks_syscall_stats_recent_window(); + case CLKS_SYSCALL_STATS_RECENT_ID: + return clks_syscall_stats_recent_id(frame->rbx); + case CLKS_SYSCALL_FD_OPEN: + return clks_syscall_fd_open(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_FD_READ: + return clks_syscall_fd_read(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_FD_WRITE: + return clks_syscall_fd_write(frame->rbx, frame->rcx, frame->rdx); + case CLKS_SYSCALL_FD_CLOSE: + return clks_syscall_fd_close(frame->rbx); + case CLKS_SYSCALL_FD_DUP: + return clks_syscall_fd_dup(frame->rbx); + case CLKS_SYSCALL_DL_OPEN: + return clks_syscall_dl_open(frame->rbx); + case CLKS_SYSCALL_DL_CLOSE: + return clks_syscall_dl_close(frame->rbx); + case CLKS_SYSCALL_DL_SYM: + return clks_syscall_dl_sym(frame->rbx, frame->rcx); + default: + return (u64)-1; } } u64 clks_syscall_invoke_kernel(u64 id, u64 arg0, u64 arg1, u64 arg2) { u64 ret; - __asm__ volatile( - "int $0x80" - : "=a"(ret) - : "a"(id), "b"(arg0), "c"(arg1), "d"(arg2) - : "memory" - ); + __asm__ volatile("int $0x80" : "=a"(ret) : "a"(id), "b"(arg0), "c"(arg1), "d"(arg2) : "memory"); return ret; } diff --git a/clks/kernel/tty.c b/clks/kernel/tty.c index b7946c2..b3f7ab1 100644 --- a/clks/kernel/tty.c +++ b/clks/kernel/tty.c @@ -69,12 +69,9 @@ static clks_bool clks_tty_scrollback_is_active(u32 tty_index); static void clks_tty_redraw_active(void); static u32 clks_tty_ansi_palette(u32 index) { - static const u32 palette[16] = { - 0x00000000U, 0x00CD3131U, 0x000DBC79U, 0x00E5E510U, - 0x002472C8U, 0x00BC3FBCU, 0x0011A8CDU, 0x00E5E5E5U, - 0x00666666U, 0x00F14C4CU, 0x0023D18BU, 0x00F5F543U, - 0x003B8EEAU, 0x00D670D6U, 0x0029B8DBU, 0x00FFFFFFU - }; + static const u32 palette[16] = {0x00000000U, 0x00CD3131U, 0x000DBC79U, 0x00E5E510U, 0x002472C8U, 0x00BC3FBCU, + 0x0011A8CDU, 0x00E5E5E5U, 0x00666666U, 0x00F14C4CU, 0x0023D18BU, 0x00F5F543U, + 0x003B8EEAU, 0x00D670D6U, 0x0029B8DBU, 0x00FFFFFFU}; if (index < 16U) { return palette[index]; @@ -88,25 +85,12 @@ static void clks_tty_reset_blink_timer(void) { } static void clks_tty_draw_cell_with_colors(u32 row, u32 col, char ch, u32 fg, u32 bg, u8 style) { - clks_fb_draw_char_styled( - col * clks_tty_cell_width, - row * clks_tty_cell_height, - ch, - fg, - bg, - (u32)style - ); + clks_fb_draw_char_styled(col * clks_tty_cell_width, row * clks_tty_cell_height, ch, fg, bg, (u32)style); } static void clks_tty_draw_cell(u32 tty_index, u32 row, u32 col) { - clks_tty_draw_cell_with_colors( - row, - col, - clks_tty_cells[tty_index][row][col], - clks_tty_cell_fg[tty_index][row][col], - clks_tty_cell_bg[tty_index][row][col], - clks_tty_cell_style[tty_index][row][col] - ); + clks_tty_draw_cell_with_colors(row, col, clks_tty_cells[tty_index][row][col], clks_tty_cell_fg[tty_index][row][col], + clks_tty_cell_bg[tty_index][row][col], clks_tty_cell_style[tty_index][row][col]); } static void clks_tty_dirty_reset(void) { @@ -189,21 +173,11 @@ static void clks_tty_scrollback_push_row(u32 tty_index, u32 row) { u32 slot = clks_tty_scrollback_head[tty_index]; clks_memcpy(clks_tty_scrollback_cells[tty_index][slot], clks_tty_cells[tty_index][row], clks_tty_cols); - clks_memcpy( - clks_tty_scrollback_fg[tty_index][slot], - clks_tty_cell_fg[tty_index][row], - (usize)clks_tty_cols * sizeof(u32) - ); - clks_memcpy( - clks_tty_scrollback_bg[tty_index][slot], - clks_tty_cell_bg[tty_index][row], - (usize)clks_tty_cols * sizeof(u32) - ); - clks_memcpy( - clks_tty_scrollback_style[tty_index][slot], - clks_tty_cell_style[tty_index][row], - clks_tty_cols - ); + clks_memcpy(clks_tty_scrollback_fg[tty_index][slot], clks_tty_cell_fg[tty_index][row], + (usize)clks_tty_cols * sizeof(u32)); + clks_memcpy(clks_tty_scrollback_bg[tty_index][slot], clks_tty_cell_bg[tty_index][row], + (usize)clks_tty_cols * sizeof(u32)); + clks_memcpy(clks_tty_scrollback_style[tty_index][slot], clks_tty_cell_style[tty_index][row], clks_tty_cols); clks_tty_scrollback_head[tty_index] = (slot + 1U) % CLKS_TTY_SCROLLBACK_LINES; @@ -338,14 +312,8 @@ static void clks_tty_draw_status_bar(void) { for (col = 0U; col < clks_tty_cols; col++) { char ch = (col < CLKS_TTY_MAX_COLS) ? line[col] : ' '; - clks_tty_draw_cell_with_colors( - status_row, - col, - ch, - CLKS_TTY_STATUS_FG, - CLKS_TTY_STATUS_BG, - CLKS_TTY_STATUS_STYLE - ); + clks_tty_draw_cell_with_colors(status_row, col, ch, CLKS_TTY_STATUS_FG, CLKS_TTY_STATUS_BG, + CLKS_TTY_STATUS_STYLE); } } @@ -470,14 +438,10 @@ static void clks_tty_redraw_active(void) { u32 phys = clks_tty_scrollback_logical_to_physical(tty_index, doc_index); for (col = 0; col < clks_tty_cols; col++) { - clks_tty_draw_cell_with_colors( - row, - col, - clks_tty_scrollback_cells[tty_index][phys][col], - clks_tty_scrollback_fg[tty_index][phys][col], - clks_tty_scrollback_bg[tty_index][phys][col], - clks_tty_scrollback_style[tty_index][phys][col] - ); + clks_tty_draw_cell_with_colors(row, col, clks_tty_scrollback_cells[tty_index][phys][col], + clks_tty_scrollback_fg[tty_index][phys][col], + clks_tty_scrollback_bg[tty_index][phys][col], + clks_tty_scrollback_style[tty_index][phys][col]); } continue; @@ -492,13 +456,8 @@ static void clks_tty_redraw_active(void) { for (col = 0; col < clks_tty_cols; col++) { clks_tty_draw_cell_with_colors( - row, - col, - clks_tty_cells[tty_index][src_row][col], - clks_tty_cell_fg[tty_index][src_row][col], - clks_tty_cell_bg[tty_index][src_row][col], - clks_tty_cell_style[tty_index][src_row][col] - ); + row, col, clks_tty_cells[tty_index][src_row][col], clks_tty_cell_fg[tty_index][src_row][col], + clks_tty_cell_bg[tty_index][src_row][col], clks_tty_cell_style[tty_index][src_row][col]); } } } @@ -516,21 +475,11 @@ static void clks_tty_scroll_up(u32 tty_index) { for (row = 1; row < clks_tty_content_rows(); row++) { clks_memcpy(clks_tty_cells[tty_index][row - 1U], clks_tty_cells[tty_index][row], clks_tty_cols); - clks_memcpy( - clks_tty_cell_fg[tty_index][row - 1U], - clks_tty_cell_fg[tty_index][row], - (usize)clks_tty_cols * sizeof(u32) - ); - clks_memcpy( - clks_tty_cell_bg[tty_index][row - 1U], - clks_tty_cell_bg[tty_index][row], - (usize)clks_tty_cols * sizeof(u32) - ); - clks_memcpy( - clks_tty_cell_style[tty_index][row - 1U], - clks_tty_cell_style[tty_index][row], - clks_tty_cols - ); + clks_memcpy(clks_tty_cell_fg[tty_index][row - 1U], clks_tty_cell_fg[tty_index][row], + (usize)clks_tty_cols * sizeof(u32)); + clks_memcpy(clks_tty_cell_bg[tty_index][row - 1U], clks_tty_cell_bg[tty_index][row], + (usize)clks_tty_cols * sizeof(u32)); + clks_memcpy(clks_tty_cell_style[tty_index][row - 1U], clks_tty_cell_style[tty_index][row], clks_tty_cols); } clks_tty_fill_row(tty_index, clks_tty_content_rows() - 1U, ' '); @@ -1462,7 +1411,6 @@ void clks_tty_scrollback_page_down(void) { } } - u32 clks_tty_active(void) { return clks_tty_active_index; } @@ -1474,4 +1422,3 @@ u32 clks_tty_count(void) { clks_bool clks_tty_ready(void) { return clks_tty_is_ready; } - diff --git a/clks/kernel/userland.c b/clks/kernel/userland.c index 1057245..d891088 100644 --- a/clks/kernel/userland.c +++ b/clks/kernel/userland.c @@ -136,8 +136,7 @@ clks_bool clks_userland_init(void) { } void clks_userland_tick(u64 tick) { - if (clks_user_shell_exec_enabled == CLKS_FALSE || - clks_user_shell_ready == CLKS_FALSE || + if (clks_user_shell_exec_enabled == CLKS_FALSE || clks_user_shell_ready == CLKS_FALSE || clks_user_shell_exec_requested_flag == CLKS_TRUE) { return; }