refactor: elf parsing utility and exec related
[lunaix-os.git] / lunaix-os / kernel / process / signal.c
index 9933682a047e49c8c303370c7bbd571ed07c4472..e8683a1b80f46ced290f989a8e60dc8c65712276 100644 (file)
@@ -17,9 +17,10 @@ default_sighandler_term(int signum)
 
 void* default_handlers[_SIG_NUM] = {
     // TODO: 添加默认handler
 
 void* default_handlers[_SIG_NUM] = {
     // TODO: 添加默认handler
-    [_SIGINT] = default_sighandler_term,  [_SIGTERM] = default_sighandler_term,
-    [_SIGKILL] = default_sighandler_term, [_SIGSEGV] = default_sighandler_term,
     [_SIGINT] = default_sighandler_term,
     [_SIGINT] = default_sighandler_term,
+    [_SIGTERM] = default_sighandler_term,
+    [_SIGKILL] = default_sighandler_term,
+    [_SIGSEGV] = default_sighandler_term,
 };
 
 // Referenced in kernel/asm/x86/interrupt.S
 };
 
 // Referenced in kernel/asm/x86/interrupt.S
@@ -42,6 +43,10 @@ signal_dispatch()
         return 0;
     }
 
         return 0;
     }
 
+    // TODO: SIG{INT|TERM|KILL|SEGV} should have highest priority.
+    //       Terminate the process right here if any of unmaskable signal is
+    //       set.
+
     if (!__current->sig_handler[sig_selected] &&
         !default_handlers[sig_selected]) {
         // 如果该信号没有handler,则忽略
     if (!__current->sig_handler[sig_selected] &&
         !default_handlers[sig_selected]) {
         // 如果该信号没有handler,则忽略