git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Second Extended Filesystem (ext2) and other improvements (#33)
[lunaix-os.git]
/
lunaix-os
/
kernel
/
lunad.c
diff --git
a/lunaix-os/kernel/lunad.c
b/lunaix-os/kernel/lunad.c
index 1f2fb957742567471129e50ccad33319d36f716a..d9e138f3aa9db1f525d57d335ecc128a6f2e8203 100644
(file)
--- a/
lunaix-os/kernel/lunad.c
+++ b/
lunaix-os/kernel/lunad.c
@@
-41,8
+41,10
@@
int
exec_initd()
{
int errno = 0;
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;
}
goto fail;
}
@@
-56,7
+58,7
@@
fail:
static void
lunad_do_usr() {
// No, these are not preemptive
static void
lunad_do_usr() {
// No, these are not preemptive
-
cpu_disable_interrupt
();
+
no_preemption
();
if (!mount_bootmedium() || !exec_initd()) {
fail("failed to initd");
if (!mount_bootmedium() || !exec_initd()) {
fail("failed to initd");
@@
-87,11
+89,11
@@
lunad_main()
thread (which is preemptive!)
*/
thread (which is preemptive!)
*/
-
cpu_enable_interrupt
();
+
set_preemption
();
while (1)
{
cleanup_detached_threads();
while (1)
{
cleanup_detached_threads();
-
sched_pass
();
+
yield_current
();
}
}
}
}