]> Zhao Yanbai Git Server - kernel.git/commitdiff
内核创建进程默认开中断
authoracevest <zhaoyanbai@126.com>
Mon, 23 Sep 2024 08:55:28 +0000 (16:55 +0800)
committeracevest <zhaoyanbai@126.com>
Mon, 23 Sep 2024 08:55:28 +0000 (16:55 +0800)
kernel/task_init.c
kernel/task_root.c

index 141f98c5a06c0914f2b5f4fd495dcc46b6d4fb96..dace90f9d1a263ab243c6fc98aa3d301a9b2403c 100644 (file)
@@ -13,7 +13,6 @@
 int sysc_wait(int ticks);
 void kernel_task(char *name, void *entry, void *arg);
 
-
 // 测试用的代码
 // 这里存的是下标对应的每个扇区的最后2个字节
 // hexdump -C HD.IMG | less 看的,如果镜像文件有变动需要更新这里
@@ -125,7 +124,6 @@ void taskC_entry() {
     }
 }
 
-
 void init_task_entry() {
     current->priority = 10;
 
@@ -139,7 +137,6 @@ void init_task_entry() {
     inb(0x60);
 #endif
 
-
 #if 1
     extern __attribute__((regparm(0))) long sysc_mkdir(const char *path, int mode);
     sysc_mkdir("/root", 0777);
index 63572b20ca527298fbe65f8478bf24a2bbbba46b..95d54770f76a5b86514908be8c366bd62c70e738 100644 (file)
@@ -49,7 +49,11 @@ void kernel_task(char *name, void *entry, void *arg) {
     regs.ss = SELECTOR_KRNL_DS;
     regs.fs = SELECTOR_KRNL_DS;
     regs.gs = SELECTOR_KRNL_DS;
+#if 0
     get_eflags(regs.eflags);
+#else
+    regs.eflags = 0x200;
+#endif
 
     int pid = do_fork(&regs, FORK_KRNL);
 
@@ -70,12 +74,11 @@ void root_task_entry() {
     }
 #endif
 
-
-    sti();
+    // sti();
 
     kernel_task("init", init_task_entry, NULL);
 
-    schedule();
+    sti();
 
     current->priority = 1;
     while (1) {