浏览代码

LibC: Move wait-related stuff to <sys/wait.h>. #POSIX

Andreas Kling 6 年之前
父节点
当前提交
07c3cc01ec
共有 4 个文件被更改,包括 33 次插入26 次删除
  1. 13 12
      LibC/stdlib.cpp
  2. 10 0
      LibC/sys/wait.h
  3. 0 5
      LibC/unistd.h
  4. 10 9
      Shell/main.cpp

+ 13 - 12
LibC/stdlib.cpp

@@ -1,19 +1,20 @@
-#include <stdlib.h>
-#include <sys/mman.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
+#include <AK/AKString.h>
+#include <AK/Assertions.h>
+#include <AK/HashMap.h>
+#include <AK/StdLibExtras.h>
+#include <AK/Types.h>
+#include <Kernel/Syscall.h>
 #include <alloca.h>
 #include <assert.h>
-#include <errno.h>
 #include <ctype.h>
+#include <errno.h>
 #include <signal.h>
-#include <AK/Assertions.h>
-#include <AK/Types.h>
-#include <Kernel/Syscall.h>
-#include <AK/StdLibExtras.h>
-#include <AK/HashMap.h>
-#include <AK/AKString.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <unistd.h>
 
 extern "C" {
 

+ 10 - 0
LibC/sys/wait.h

@@ -5,7 +5,17 @@
 
 __BEGIN_DECLS
 
+#define WEXITSTATUS(status) (((status)&0xff00) >> 8)
+#define WTERMSIG(status) ((status)&0x7f)
+#define WIFEXITED(status) (WTERMSIG(status) == 0)
+#define WIFSIGNALED(status) (((char)(((status)&0x7f) + 1) >> 1) > 0)
+
 #define WNOHANG 1
+#define WUNTRACED 2
+#define WSTOPPED WUNTRACED
+#define WEXITED 4
+#define WCONTINUED 8
+
 pid_t wait(int* wstatus);
 
 __END_DECLS

+ 0 - 5
LibC/unistd.h

@@ -95,11 +95,6 @@ enum
     _PC_NAME_MAX,
 };
 
-#define WEXITSTATUS(status) (((status)&0xff00) >> 8)
-#define WTERMSIG(status) ((status)&0x7f)
-#define WIFEXITED(status) (WTERMSIG(status) == 0)
-#define WIFSIGNALED(status) (((char)(((status)&0x7f) + 1) >> 1) > 0)
-
 #define HOST_NAME_MAX 64
 
 #define R_OK 4

+ 10 - 9
Shell/main.cpp

@@ -1,21 +1,22 @@
+#include "GlobalState.h"
+#include "LineEditor.h"
+#include "Parser.h"
+#include <AK/FileSystemPath.h>
+#include <LibCore/CDirIterator.h>
+#include <LibCore/CElapsedTimer.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <pwd.h>
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <termios.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <sys/utsname.h>
-#include <AK/FileSystemPath.h>
-#include <LibCore/CElapsedTimer.h>
-#include <LibCore/CDirIterator.h>
-#include "GlobalState.h"
-#include "Parser.h"
-#include "LineEditor.h"
+#include <sys/wait.h>
+#include <termios.h>
+#include <unistd.h>
 
 //#define SH_DEBUG