瀏覽代碼

fix(init): send kernel address to get exit code

greatbridf 2 年之前
父節點
當前提交
cd69b19fe7
共有 2 個文件被更改,包括 6 次插入5 次删除
  1. 2 2
      user-space-program/basic-lib.h
  2. 4 3
      user-space-program/init.c

+ 2 - 2
user-space-program/basic-lib.h

@@ -56,7 +56,7 @@ static inline void NORETURN exit(int exit_code)
 {
     syscall_noreturn(0x05, exit_code, 0);
 }
-static inline uint32_t wait(void)
+static inline uint32_t wait(int* return_value)
 {
-    return syscall(0x06, 0, 0);
+    return syscall(0x06, (uint32_t)return_value, 0);
 }

+ 4 - 3
user-space-program/init.c

@@ -16,9 +16,10 @@ int main(int argc, char** argv)
     }
 
     for (;;) {
-        int code = wait();
-        (void)code;
-        code += 1000;
+        int ret;
+        pid_t pid = wait(&ret);
+        (void)pid;
+        pid += 1000;
     }
     return 0;
 }