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

SCSI/ASPI

开发平台:

MultiPlatform

  1. /* @(#)waitdefs.h 1.6 99/05/02 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. #if defined(HAVE_WAIT_H)
  25. # include <wait.h>
  26. #else
  27. /*
  28.  * K&R Compiler doesn't like #elif
  29.  */
  30. # if defined(HAVE_SYS_WAIT_H) /* POSIX.1 compat sys/wait.h */
  31. # undef HAVE_UNION_WAIT /* POSIX.1 doesn't use U_W   */
  32. # include <sys/wait.h>
  33. # endif
  34. #endif
  35. #ifdef HAVE_UNION_WAIT
  36. # define WAIT_T union wait
  37. # ifndef WTERMSIG
  38. # define WTERMSIG(status) ((status).w_termsig)
  39. # endif
  40. # ifndef WCOREDUMP
  41. # define WCOREDUMP(status) ((status).w_coredump)
  42. # endif
  43. # ifndef WEXITSTATUS
  44. # define WEXITSTATUS(status) ((status).w_retcode)
  45. # endif
  46. # ifndef WSTOPSIG
  47. # define WSTOPSIG(status) ((status).w_stopsig)
  48. # endif
  49. #else
  50. # define WAIT_T int
  51. # ifndef WTERMSIG
  52. # define WTERMSIG(status) ((status) & 0x7F)
  53. # endif
  54. # ifndef WCOREDUMP
  55. # define WCOREDUMP(status) ((status) & 0x80)
  56. # endif
  57. # ifndef WEXITSTATUS
  58. # define WEXITSTATUS(status) (((status) >> 8) & 0xFF)
  59. # endif
  60. # ifndef WSTOPSIG
  61. # define WSTOPSIG(status) (((status) >> 8) & 0xFF)
  62. # endif
  63. #endif
  64. #ifndef WIFSTOPPED
  65. # define WIFSTOPPED(status) (((status) & 0xFF) == 0x7F)
  66. #endif
  67. #ifndef WIFSIGNALED
  68. # define WIFSIGNALED(status) (((status) & 0xFF) != 0x7F && 
  69. WTERMSIG(status) != 0)
  70. #endif
  71. #ifndef WIFEXITED
  72. # define WIFEXITED(status) (((status) & 0xFF) == 0)
  73. #endif
  74. #ifndef WCOREFLG
  75. #define WCOREFLG 0x80
  76. #endif
  77. #ifndef WSTOPFLG
  78. #define WSTOPFLG 0x7F
  79. #endif
  80. #ifndef WCONTFLG
  81. #define WCONTFLG 0xFFFF
  82. #endif
  83. #endif /* _WAITDEFS_H */