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

VxWorks

开发平台:

C/C++

  1. /* eventLibP.h - private VxWorks events library header file */
  2. /* Copyright 2001 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,15jan02,bwa  Created list of events reserved for system use.
  7. 01c,06nov01,aeg  added eventRsrcShow() and eventTaskShow() prototypes.
  8. 01b,17oct01,bwa  Added eventRsrcSend() prototype.
  9. 01a,20sep01,bwa  Created
  10. */
  11. #ifndef __INCeventLibPh
  12. #define __INCeventLibPh
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #ifndef _ASMLANGUAGE
  17. #include "vxWorks.h"
  18. #if CPU_FAMILY==I960
  19. #pragma align 1 /* tell gcc960 not to optimize alignments */
  20. #endif /* CPU_FAMILY==I960 */
  21. extern VOIDFUNCPTR eventEvtRtn; /* windview - level 1 event logging */
  22. /* event structure needed in TCB */
  23. typedef struct eventsCb
  24.     {
  25.     UINT32 wanted; /* 0x00: events wanted */
  26.     volatile UINT32 received; /* 0x04: all events received */
  27.     UINT8  options; /* 0x08: user options */
  28.     UINT8  sysflags; /* 0x09: flags used by internal code only */
  29.     UINT8  pad[2]; /* 0x0a: alignment on 32bit, possible extension */
  30.     } EVENTS; /* 0x0c: total size */
  31. /* EVENTS.options masks */
  32. #define EVENTS_WAIT_MASK 0x01
  33. /* EVENTS system flags */
  34. #define EVENTS_SYSFLAGS_WAITING   0x01 /* task is waiting for events  */
  35. #define EVENTS_SYSFLAGS_UNUSED   0xfe /* unused, for future extension */
  36. /* event structure needed in resource (semaphores, msg queues) structures */
  37. typedef struct eventsResourceCb
  38.     {
  39.     UINT32 registered; /* 0x00: events registered for that resource */
  40.     int    taskId; /* 0x04: task registered for that resource */
  41.     UINT8  options; /* 0x08: user options */
  42.     UINT8  pad[3]; /* 0x09: alignment on 32bit, possible extension */
  43.     } EVENTS_RSRC; /* 0x0c: total size */
  44. #if CPU_FAMILY==I960
  45. #pragma align 0 /* tell gcc960 not to optimize alignments */
  46. #endif /* CPU_FAMILY==I960 */
  47. /* These events are for system use only. */
  48. #define VXEV25 0x01000000
  49. #define VXEV26 0x02000000
  50. #define VXEV27 0x04000000
  51. #define VXEV28 0x08000000
  52. #define VXEV29 0x10000000
  53. #define VXEV30 0x20000000
  54. #define VXEV31 0x40000000
  55. #define VXEV32 0x80000000
  56. #define VXEV_RESERVED 0xff000000
  57. #if defined(__STDC__) || defined(__cplusplus)
  58. extern void  eventLibInit (void);
  59. extern void  eventInit (EVENTS_RSRC * pEvRsrc);
  60. extern void  eventTerminate  (const EVENTS_RSRC * pEvRsrc);
  61. extern void  semEvLibInit (void);
  62. extern void  msgQEvLibInit (void);
  63. extern STATUS  eventStart (OBJ_ID objId, EVENTS_RSRC * pEvRsrc,
  64.  FUNCPTR isRsrcFree, UINT32 events,
  65.  UINT8 options);
  66. extern STATUS eventRsrcSend (int taskId, UINT32 events);
  67. extern STATUS eventRsrcShow (EVENTS_RSRC * pEvRsrc);
  68. extern STATUS   eventTaskShow (EVENTS * pEvents);
  69. #else /* __STDC__ */
  70. extern void  eventLibInit    ();
  71. extern void  eventInit ();
  72. extern void  eventTerminate  ();
  73. extern void  semEvLibInit ();
  74. extern void  msgQEvLibInit ();
  75. extern STATUS  eventStart ();
  76. extern STATUS eventRsrcSend ();
  77. extern STATUS eventRsrcShow ();
  78. extern STATUS   eventTaskShow ();
  79. #endif /* __STDC */
  80. #else /* _ASMLANGUAGE */
  81. #define EVENTS_RSRC_REGISTERED 0x0
  82. #define EVENTS_RSRC_TASKID 0x4
  83. #define EVENTS_RSRC_OPTIONS 0x8
  84. #endif /* _ASMLANGUAGE */
  85. #ifdef __cplusplus
  86. }
  87. #endif
  88. #endif /* __INCeventLibPh */