mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 18:44:01 +00:00
Stage 13
This commit is contained in:
@@ -63,7 +63,7 @@ static void clks_task_usrd(u64 tick) {
|
||||
clks_userland_tick(tick);
|
||||
}
|
||||
|
||||
static void clks_stage12_syscall_probe(void) {
|
||||
static void clks_stage13_syscall_probe(void) {
|
||||
char child_name[96];
|
||||
char read_buf[160];
|
||||
u64 root_children;
|
||||
@@ -162,7 +162,7 @@ void clks_kernel_main(void) {
|
||||
clks_tty_init();
|
||||
}
|
||||
|
||||
clks_log(CLKS_LOG_INFO, "BOOT", "CLEONOS STAGE12 START");
|
||||
clks_log(CLKS_LOG_INFO, "BOOT", "CLEONOS STAGE13 START");
|
||||
|
||||
if (boot_fb == CLKS_NULL) {
|
||||
clks_log(CLKS_LOG_WARN, "VIDEO", "NO FRAMEBUFFER FROM LIMINE");
|
||||
@@ -271,7 +271,7 @@ void clks_kernel_main(void) {
|
||||
syscall_ticks = clks_syscall_invoke_kernel(CLKS_SYSCALL_TIMER_TICKS, 0ULL, 0ULL, 0ULL);
|
||||
clks_log_hex(CLKS_LOG_INFO, "SYSCALL", "TICKS", syscall_ticks);
|
||||
|
||||
clks_stage12_syscall_probe();
|
||||
clks_stage13_syscall_probe();
|
||||
|
||||
clks_log(CLKS_LOG_INFO, "TTY", "VIRTUAL TTY0 READY");
|
||||
clks_log(CLKS_LOG_DEBUG, "KERNEL", "IDLE LOOP ENTER");
|
||||
@@ -279,3 +279,4 @@ void clks_kernel_main(void) {
|
||||
clks_cpu_halt_forever();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -39,6 +39,21 @@ static clks_bool clks_userland_probe_elf(const char *path, const char *tag) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static void clks_userland_probe_init_script(void) {
|
||||
const void *data;
|
||||
u64 size = 0ULL;
|
||||
|
||||
data = clks_fs_read_all("/shell/init.cmd", &size);
|
||||
|
||||
if (data == CLKS_NULL || size == 0ULL) {
|
||||
clks_log(CLKS_LOG_WARN, "USER", "INIT SCRIPT NOT FOUND /SHELL/INIT.CMD");
|
||||
return;
|
||||
}
|
||||
|
||||
clks_log(CLKS_LOG_INFO, "USER", "INIT SCRIPT READY /SHELL/INIT.CMD");
|
||||
clks_log_hex(CLKS_LOG_INFO, "USER", "INIT_SCRIPT_SIZE", size);
|
||||
}
|
||||
|
||||
static clks_bool clks_userland_request_shell_exec(void) {
|
||||
u64 status = (u64)-1;
|
||||
|
||||
@@ -78,6 +93,7 @@ clks_bool clks_userland_init(void) {
|
||||
|
||||
clks_user_shell_ready = CLKS_TRUE;
|
||||
clks_log(CLKS_LOG_INFO, "USER", "SHELL COMMAND ABI READY");
|
||||
clks_userland_probe_init_script();
|
||||
|
||||
if (clks_userland_probe_elf("/system/elfrunner.elf", "ELFRUNNER ELF READY") == CLKS_FALSE) {
|
||||
return CLKS_FALSE;
|
||||
|
||||
Reference in New Issue
Block a user