From 7e7271cd1158ef16f99bfcd68b12e246d227d4b9 Mon Sep 17 00:00:00 2001 From: Leonmmcoset Date: Mon, 13 Apr 2026 22:41:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A9syscall=E6=97=A5=E5=BF=97=E4=BB=85?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=B2=E5=8F=A3=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clks/kernel/syscall.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/clks/kernel/syscall.c b/clks/kernel/syscall.c index 9f60dcc..b267a8a 100644 --- a/clks/kernel/syscall.c +++ b/clks/kernel/syscall.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -378,6 +379,16 @@ static u64 clks_syscall_log_journal_read(u64 arg0, u64 arg1, u64 arg2) { return 1ULL; } +static void clks_syscall_serial_write_hex64(u64 value) { + i32 nibble; + + for (nibble = 15; nibble >= 0; nibble--) { + u64 current = (value >> (u64)(nibble * 4)) & 0x0FULL; + char ch = (current < 10ULL) ? (char)('0' + current) : (char)('A' + (current - 10ULL)); + clks_serial_write_char(ch); + } +} + 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) @@ -386,7 +397,7 @@ static void clks_syscall_trace_user_program(u64 id) { if (user_program_running == CLKS_FALSE) { if (clks_syscall_user_trace_active == CLKS_TRUE) { - clks_log(CLKS_LOG_DEBUG, "SYSCALL", "USER_TRACE_END"); + clks_serial_write("[DEBUG][SYSCALL] USER_TRACE_END\n"); } clks_syscall_user_trace_active = CLKS_FALSE; @@ -397,16 +408,20 @@ static void clks_syscall_trace_user_program(u64 id) { if (clks_syscall_user_trace_active == CLKS_FALSE) { clks_syscall_user_trace_active = CLKS_TRUE; clks_syscall_user_trace_budget = CLKS_SYSCALL_USER_TRACE_BUDGET; - clks_log(CLKS_LOG_DEBUG, "SYSCALL", "USER_TRACE_BEGIN"); - clks_log_hex(CLKS_LOG_DEBUG, "SYSCALL", "PID", clks_exec_current_pid()); + clks_serial_write("[DEBUG][SYSCALL] USER_TRACE_BEGIN\n"); + clks_serial_write("[DEBUG][SYSCALL] PID: 0X"); + clks_syscall_serial_write_hex64(clks_exec_current_pid()); + clks_serial_write("\n"); } if (clks_syscall_user_trace_budget > 0ULL) { - clks_log_hex(CLKS_LOG_DEBUG, "SYSCALL", "USER_ID", id); + clks_serial_write("[DEBUG][SYSCALL] USER_ID: 0X"); + clks_syscall_serial_write_hex64(id); + clks_serial_write("\n"); clks_syscall_user_trace_budget--; if (clks_syscall_user_trace_budget == 0ULL) { - clks_log(CLKS_LOG_DEBUG, "SYSCALL", "USER_TRACE_BUDGET_EXHAUSTED"); + clks_serial_write("[DEBUG][SYSCALL] USER_TRACE_BUDGET_EXHAUSTED\n"); } } }