waitdefs.h
上传用户:xiejiait
上传日期:2007-01-06
资源大小:881k
文件大小:2k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. /* @(#)waitdefs.h 1.7 99/11/14 Copyright 1995 J. Schilling */
  2. /*
  3.  * Definitions to deal with various kinds of wait flavour
  4.  *
  5.  * Copyright (c) 1995 J. Schilling
  6.  */
  7. /*
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2, or (at your option)
  11.  * any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; see the file COPYING.  If not, write to
  20.  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22. #ifndef _WAITDEFS_H
  23. #define _WAITDEFS_H
  24. #ifndef _MCONFIG_H
  25. #include <mconfig.h>
  26. #endif
  27. #if defined(HAVE_WAIT_H)
  28. # include <wait.h>
  29. #else
  30. /*
  31.  * K&R Compiler doesn't like #elif
  32.  */
  33. # if defined(HAVE_SYS_WAIT_H) /* POSIX.1 compat sys/wait.h */
  34. # undef HAVE_UNION_WAIT /* POSIX.1 doesn't use U_W   */
  35. # include <sys/wait.h>
  36. # endif
  37. #endif
  38. #ifdef HAVE_UNION_WAIT
  39. # define WAIT_T union wait
  40. # ifndef WTERMSIG
  41. # define WTERMSIG(status) ((status).w_termsig)
  42. # endif
  43. # ifndef WCOREDUMP
  44. # define WCOREDUMP(status) ((status).w_coredump)
  45. # endif
  46. # ifndef WEXITSTATUS
  47. # define WEXITSTATUS(status) ((status).w_retcode)
  48. # endif
  49. # ifndef WSTOPSIG
  50. # define WSTOPSIG(status) ((status).w_stopsig)
  51. # endif
  52. #else
  53. # define WAIT_T int
  54. # ifndef WTERMSIG
  55. # define WTERMSIG(status) ((status) & 0x7F)
  56. # endif
  57. # ifndef WCOREDUMP
  58. # define WCOREDUMP(status) ((status) & 0x80)
  59. # endif
  60. # ifndef WEXITSTATUS
  61. # define WEXITSTATUS(status) (((status) >> 8) & 0xFF)
  62. # endif
  63. # ifndef WSTOPSIG
  64. # define WSTOPSIG(status) (((status) >> 8) & 0xFF)
  65. # endif
  66. #endif
  67. #ifndef WIFSTOPPED
  68. # define WIFSTOPPED(status) (((status) & 0xFF) == 0x7F)
  69. #endif
  70. #ifndef WIFSIGNALED
  71. # define WIFSIGNALED(status) (((status) & 0xFF) != 0x7F && 
  72. WTERMSIG(status) != 0)
  73. #endif
  74. #ifndef WIFEXITED
  75. # define WIFEXITED(status) (((status) & 0xFF) == 0)
  76. #endif
  77. #ifndef WCOREFLG
  78. #define WCOREFLG 0x80
  79. #endif
  80. #ifndef WSTOPFLG
  81. #define WSTOPFLG 0x7F
  82. #endif
  83. #ifndef WCONTFLG
  84. #define WCONTFLG 0xFFFF
  85. #endif
  86. #endif /* _WAITDEFS_H */