home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / include / wait.h < prev   
Encoding:
C/C++ Source or Header  |  1998-04-30  |  1.7 KB  |  64 lines

  1. /* Define how to access the int that the wait system call stores.
  2.    This has been compatible in all Unix systems since time immemorial,
  3.    but various well-meaning people have defined various different
  4.    words for the same old bits in the same old int (sometimes claimed
  5.    to be a struct).  We just know it's an int and we use these macros
  6.    to access the bits.  */
  7.  
  8. /* The following macros are defined equivalently to their definitions
  9.    in POSIX.1.  We fail to define WNOHANG and WUNTRACED, which POSIX.1
  10.    <sys/wait.h> defines, since our code does not use waitpid().  We
  11.    also fail to declare wait() and waitpid().  */   
  12.  
  13. #ifndef    WIFEXITED
  14. #define WIFEXITED(w)    (((w)&0377) == 0)
  15. #endif
  16.  
  17. #ifndef    WIFSIGNALED
  18. #define WIFSIGNALED(w)    (((w)&0377) != 0177 && ((w)&~0377) == 0)
  19. #endif
  20.  
  21. #ifndef    WIFSTOPPED
  22. #ifdef IBM6000
  23.  
  24. /* Unfortunately, the above comment (about being compatible in all Unix 
  25.    systems) is not quite correct for AIX, sigh.  And AIX 3.2 can generate
  26.    status words like 0x57c (sigtrap received after load), and gdb would
  27.    choke on it. */
  28.  
  29. #define WIFSTOPPED(w)    ((w)&0x40)
  30.  
  31. #else
  32. #define WIFSTOPPED(w)    (((w)&0377) == 0177)
  33. #endif
  34. #endif
  35.  
  36. #ifndef    WEXITSTATUS
  37. #define WEXITSTATUS(w)    (((w) >> 8) & 0377) /* same as WRETCODE */
  38. #endif
  39.  
  40. #ifndef    WTERMSIG
  41. #define WTERMSIG(w)    ((w) & 0177)
  42. #endif
  43.  
  44. #ifndef    WSTOPSIG
  45. #define WSTOPSIG    WEXITSTATUS
  46. #endif
  47.  
  48. /* These are not defined in POSIX, but are used by our programs.  */
  49.  
  50. #define WAITTYPE    int
  51.  
  52. #ifndef    WCOREDUMP
  53. #define WCOREDUMP(w)    (((w)&0200) != 0)
  54. #endif
  55.  
  56. #ifndef    WSETEXIT
  57. #define WSETEXIT(w,status) ((w) = (0 | ((status) << 8)))
  58. #endif
  59.  
  60. #ifndef    WSETSTOP
  61. #define WSETSTOP(w,sig)       ((w) = (0177 | ((sig) << 8)))
  62. #endif
  63.  
  64.