selectLib.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* selectLib.h - select header file */
  2. /* Copyright 1984-2001 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 02d,18sep01,aeg  added selWakeupListTerm(); moved private definitions to
  7.  private/selectLibP.h; added S_selectLib_NO_SELECT_CONTEXT
  8.  and S_selectLib_WIDTH_OUT_OF_RANGE error codes.
  9. 02c,22sep92,rrr  added support for c++
  10. 02b,19aug92,smb  changed systime.h to sys/times.h
  11. 02a,04jul92,jcf  cleaned up.
  12. 01k,26may92,rrr  the tree shuffle
  13. 01j,04oct91,rrr  passed through the ansification filter
  14.   -removed comma from end of enum
  15.   -changed includes to have absolute path from h/
  16.   -changed VOID to void
  17.   -changed copyright notice
  18. 01i,25oct90,dnw  changed utime.h to systime.h.
  19. 01h,19oct90,shl  added #include of "utime.h".
  20. 01g,05oct90,shl  added ANSI function prototypes.
  21.                  made #endif ANSI style.
  22.                  added copyright notice.
  23. 01f,07aug90,shl  added function declarations comment.
  24. 01e,01aug90,jcf  clean up.
  25. 01d,13jul90,rdc  added original read and write fd_sets to wakeup node struct.
  26. 01c,30apr90,gae  added HIDDEN comments to internal data structures.
  27. 01b,20mar90,jcf  cleanup.
  28. 01a,26jan90,rdc  written
  29. */
  30. #ifndef __INCselectLibh
  31. #define __INCselectLibh
  32. #ifdef __cplusplus
  33. extern "C" {
  34. #endif
  35. #include "sys/types.h"
  36. #include "sys/times.h"
  37. /* error codes */
  38. #define S_selectLib_NO_SELECT_SUPPORT_IN_DRIVER  (M_selectLib | 1)
  39. #define S_selectLib_NO_SELECT_CONTEXT  (M_selectLib | 2)
  40. #define S_selectLib_WIDTH_OUT_OF_RANGE  (M_selectLib | 3)
  41. typedef enum
  42.     {
  43.     SELREAD,
  44.     SELWRITE
  45.     } SELECT_TYPE;
  46. #include "private/selectLibP.h"
  47. /* function declarations */
  48. #if defined(__STDC__) || defined(__cplusplus)
  49. extern SELECT_TYPE  selWakeupType  (SEL_WAKEUP_NODE *pWakeupNode);
  50. extern STATUS      selNodeAdd         (SEL_WAKEUP_LIST *pWakeupList,
  51.       SEL_WAKEUP_NODE *pWakeupNode);
  52. extern STATUS      selNodeDelete  (SEL_WAKEUP_LIST *pWakeupList,
  53.          SEL_WAKEUP_NODE *pWakeupNode);
  54. extern int      selWakeupListLen  (SEL_WAKEUP_LIST *pWakeupList);
  55. extern void      selWakeup  (SEL_WAKEUP_NODE *pWakeupNode);
  56. extern void      selWakeupAll  (SEL_WAKEUP_LIST *pWakeupList, 
  57.  SELECT_TYPE type);
  58. extern void      selWakeupListInit  (SEL_WAKEUP_LIST *pWakeupList);
  59. extern void      selWakeupListTerm  (SEL_WAKEUP_LIST *pWakeupList);
  60. extern int     select  (int width, fd_set *pReadFds, 
  61.  fd_set *pWriteFds, fd_set *pExceptFds,
  62.  struct timeval *pTimeOut);
  63. #else /* __STDC__ */
  64. extern SELECT_TYPE  selWakeupType  ();
  65. extern STATUS      selNodeAdd         ();
  66. extern STATUS      selNodeDelete  ();
  67. extern int      selWakeupListLen  ();
  68. extern void      selWakeup  ();
  69. extern void      selWakeupAll  ();
  70. extern void      selWakeupListInit  ();
  71. extern void      selWakeupListTerm  ();
  72. extern int     select  ();
  73. #endif /* __STDC__ */
  74. #ifdef __cplusplus
  75. }
  76. #endif
  77. #endif /* __INCselectLibh */