eventShow.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:4k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* eventShow.c - VxWorks events show routines */
  2. /* Copyright 2001 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01a,06nov01,aeg  written
  8. */
  9. /*
  10. DESCRIPTION
  11. This library provides routines to show VxWorks events information.  
  12. The routine eventTaskShow() displays the contents of the EVENTS structure
  13. embedded in a task's control block (WIND_TCB).  The show routine taskShow()
  14. utilizes eventTaskShow().
  15. The routine eventRsrcShow() displays the contents of the EVENTS_RSRC
  16. structure embedded in event resources, e.g. the semaphore (SEMAPHORE)
  17. and message queue structures (MSG_Q).  The show routines semShow() and
  18. msgQShow() utilize eventRsrcShow().
  19. The module eventShow.o will be automatically configured into VxWorks when
  20. INCLUDE_SHOW_ROUTINES is defined in config.h, or if the Tornado project
  21. facility is used, when the INCLUDE_SEM_SHOW, INCLUDE_MSG_Q_SHOW, or 
  22. INCLUDE_TASK_SHOW components are selected.
  23. INCLUDE FILES: eventLibP.h
  24. SEE ALSO: semLib, msgQLib, eventLib
  25. .pG "Basic OS"
  26. */
  27. #include "vxWorks.h"
  28. #include "taskLib.h"
  29. #include "stdio.h"
  30. #include "string.h"
  31. #include "eventLib.h"
  32. #include "private/eventLibP.h"
  33. /*******************************************************************************
  34. *
  35. * eventTaskShow - show a task's VxWorks events information
  36. *
  37. * This routine displays the contents of the EVENTS structure embedded in
  38. * a task's control block (WIND_TCB).  The show routine taskShow()
  39. * utilizes eventTaskShow().
  40. *
  41. * The VxWorks events related information is displayed as follows:
  42. * .CS
  43. *     VxWorks Events
  44. *     --------------
  45. *     Events Pended on   : 0x7f
  46. *     Received Events    : 0x7e
  47. *     Options            : 0x3        EVENTS_WAIT_ANY
  48. *            EVENTS_RETURN_ALL
  49. * .CE
  50. *
  51. * RETURNS: OK always.
  52. *
  53. * SEE ALSO:
  54. * .pG "Target Shell,"
  55. * windsh,
  56. * .tG "Shell"
  57. *
  58. * NOMANUAL
  59. */
  60. STATUS eventTaskShow
  61.     (
  62.     EVENTS *pEvents /* VxWorks events pointer */
  63.     )
  64.     {
  65.     printf ("nVxWorks Eventsn--------------n");
  66.     if ((pEvents->sysflags & EVENTS_SYSFLAGS_WAITING) == 0)
  67. {
  68. printf ("Events Pended on    : Not Pendedn"
  69. "Received Events     : 0x%xn"
  70. "Options             : N/An", pEvents->received);
  71. }
  72.     else
  73. {
  74. printf ("Events Pended on    : 0x%xn"
  75. "Received Events     : 0x%xn"
  76. "Options             : 0x%xt", pEvents->wanted, 
  77. pEvents->received, 
  78. pEvents->options);
  79. /* dump options string after hex representation */
  80. if ((pEvents->options & EVENTS_WAIT_MASK) == EVENTS_WAIT_ALL)
  81.     printf ("EVENTS_WAIT_ALLn");
  82. else
  83.     printf ("EVENTS_WAIT_ANYn");
  84. if ((pEvents->options & EVENTS_RETURN_ALL) != 0)
  85.     printf ("ttttEVENTS_RETURN_ALLn");
  86. }
  87.     return (OK);
  88.     }
  89. /*******************************************************************************
  90. *
  91. * eventRsrcShow - show a resource's VxWorks events information
  92. *
  93. * This routine displays the contents of the EVENTS_RSRC structure embedded
  94. * in the semaphore (SEMAPHORE) and message queue structures (MSG_Q).  The
  95. * show routines semShow() and msgQShow() utilize eventRsrcShow().
  96. *
  97. * The VxWorks events related information is displayed as follows:
  98. * .CS
  99. *     VxWorks Events
  100. *     --------------
  101. *     Registered Task     : 0x594f0 (t1)
  102. *     Event(s) to Send    : 0x1
  103. *     Options             : 0x7       EVENTS_SEND_ONCE
  104. *                                     EVENTS_ALLOW_OVERWRITE
  105. *                                     EVENTS_SEND_IF_FREE
  106. * .CE
  107. *
  108. * RETURNS: OK always.
  109. *
  110. * SEE ALSO:
  111. * .pG "Target Shell,"
  112. * windsh,
  113. * .tG "Shell"
  114. *
  115. * NOMANUAL
  116. */
  117. STATUS eventRsrcShow
  118.     (
  119.     EVENTS_RSRC *pEvRsrc /* VxWorks events resource pointer */
  120.     )
  121.     {
  122.     char * pTaskName;
  123.     printf ("nVxWorks Eventsn--------------n");
  124.     if (pEvRsrc->taskId == (int) NULL)
  125. {
  126. printf ("Registered Task     : NONEn"
  127. "Event(s) to Send    : N/An"
  128. "Options             : N/An");
  129. }
  130.     else
  131. {
  132. pTaskName = taskName (pEvRsrc->taskId);
  133. printf ("Registered Task     : 0x%xt(%s)n"
  134. "Event(s) to Send    : 0x%xn"
  135. "Options             : 0x%xt", 
  136. pEvRsrc->taskId,
  137. pTaskName == NULL ? "Deleted!" : pTaskName,
  138.     pEvRsrc->registered,
  139.     pEvRsrc->options);
  140. if (pEvRsrc->options == EVENTS_OPTIONS_NONE)
  141.     printf ("EVENTS_OPTIONS_NONEn");
  142. else
  143.     {
  144.     if ((pEvRsrc->options & EVENTS_SEND_ONCE) != 0)
  145. printf ("EVENTS_SEND_ONCEntttt");
  146.     if ((pEvRsrc->options & EVENTS_ALLOW_OVERWRITE) != 0)
  147. printf ("EVENTS_ALLOW_OVERWRITEntttt");
  148.     if ((pEvRsrc->options & EVENTS_SEND_IF_FREE) != 0)
  149. printf ("EVENTS_SEND_IF_FREEn");
  150.     }
  151.         }
  152.     return (OK);
  153.     }