exec_initd()
{
int errno = 0;
+ const char* argv[] = { "/mnt/lunaix-os/usr/bin/init", 0 };
+ const char* envp[] = { 0 };
- if ((errno = exec_kexecve("/mnt/lunaix-os/usr/bin/init", NULL, NULL))) {
+ if ((errno = exec_kexecve(argv[0], argv, envp))) {
goto fail;
}
static void
lunad_do_usr() {
// No, these are not preemptive
- cpu_disable_interrupt();
-
+ no_preemption();
+
if (!mount_bootmedium() || !exec_initd()) {
fail("failed to initd");
}
thread (which is preemptive!)
*/
- cpu_enable_interrupt();
+ set_preemption();
while (1)
{
cleanup_detached_threads();
- sched_pass();
+ yield_current();
}
}