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

VxWorks

开发平台:

C/C++

  1. /* trgShow.c - trigger show routine */
  2. /* Copyright 1984-1997 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01e,04mar99,dgp  replace INCLUDE_SHOW_ROUTINES with INCLUDE_TRIGGER_SHOW
  8. 01d,07sep98,pr   replaced LIST_MAX_LENGTH with TRG_MAX_REQUESTS
  9. 01c,28aug98,dgp  FCS man page edit
  10. 01b,07may98,dgp  clean up man pages for WV 2.0 beta release
  11. 01a,10feb98,pr   extracted from trgLib.c (based upon semShow.c).
  12. */
  13. /*
  14. DESCRIPTION
  15. This library provides routines to show event triggering information, such as
  16. list of triggers, associated actions, trigger states, and so on.
  17. The routine trgShowInit() links the triggering show facility into the VxWorks
  18. system.  It is called automatically when INCLUDE_TRIGGER_SHOW is defined.
  19. SEE ALSO: trgLib
  20. */
  21. #include "vxWorks.h"
  22. #include "stdlib.h"
  23. #include "stdio.h"
  24. #include "string.h"
  25. #include "errno.h"
  26. #include "private/trgLibP.h"
  27. /* global */
  28. extern TRIGGER_ID  * trgList;
  29. extern CLASS_ID  trgClassId;     /* trg class ID */
  30. /******************************************************************************
  31. *
  32. * trgShowInit - initialize the trigger show facility
  33. *
  34. * This routine links the trigger show facility into the VxWorks system.
  35. * These routines are included automatically when INCLUDE_TRIGGER_SHOW is
  36. * defined.
  37. *
  38. * RETURNS: N/A
  39. */
  40. void trgShowInit (void)
  41.     {
  42.     classShowConnect (trgClassId, (FUNCPTR)trgShow);
  43.     }
  44. /*******************************************************************************
  45. *
  46. * trgShow - show trigger information 
  47. *
  48. * This routine displays trigger information. If <trgId> is passed, only the
  49. * summary for that trigger is displayed.  If no parameter is passed, the list 
  50. * of existing triggers is displayed with a summary of their state.  For
  51. * example:
  52. *
  53. * .CS
  54. *    trgID      Status  EvtID    ActType Action     Dis    Chain
  55. *    -----------------------------------------------------------
  56. *    0xffedfc   disabled  101          3 0x14e7a4     Y 0xffe088
  57. *    0xffe088   enabled    55          1 0x10db58     Y      0x0
  58. * .CE
  59. *
  60. * If <level> is 1, then more detailed information is displayed.
  61. *
  62. * EXAMPLE
  63. * .CS
  64. *     -> trgShow trgId, 1
  65. * .CE
  66. *
  67. * RETURNS: OK.
  68. *
  69. * SEE ALSO: trgLib
  70. *
  71. */
  72. STATUS trgShow
  73.     (
  74.     TRIGGER_ID trgId,
  75.     int        level
  76.     )
  77.     {
  78.     TRIGGER_ID  pTrg;
  79.     int index;
  80.     if (trgId == NULL)
  81. {
  82.         printf ("trgID      Status  EvtID    ActType Action     Dis Chainn");
  83.         printf ("--------------------------------------------------------n");
  84.         for (index = 0; index < TRG_MAX_REQUESTS ; index ++)
  85.     {
  86.     pTrg = trgList[index];
  87.     while (pTrg != NULL )
  88. {
  89.         if ( OBJ_VERIFY (pTrg, trgClassId) == OK)
  90.     {
  91.             printf ("%-10p %-7s %-8hd %-7d %-10p %-3s %-10pn", 
  92.     pTrg, (pTrg->status? "enabled": "disabled"), 
  93.     pTrg->eventId, pTrg->actionType, 
  94.     pTrg->actionFunc, (pTrg->disable? "Y":"N"), 
  95.     pTrg->chain);
  96.             }
  97. pTrg = pTrg->next;
  98. }
  99.     }
  100. }
  101.     else
  102. {
  103. pTrg = trgId;
  104.         if ( OBJ_VERIFY (pTrg, trgClassId) == OK)
  105.     {
  106.             if (level == 1)
  107.         {
  108.                 printf(" event Id           = %hd n", pTrg->eventId);
  109.                 printf(" initial status     = %sn", (pTrg->status? "enabled": "disabled"));
  110.                 printf(" number if hits     = %d n", pTrg->hitCnt);
  111.                 printf(" contextType        = %d n", pTrg->contextType);
  112.                 printf(" contextId          = %pn", (int *)pTrg->contextId);
  113.                 printf(" objId              = %pn", pTrg->objId);
  114.                 printf(" conditional?       = %sn", (pTrg->conditional? "TRUE": "FALSE"));
  115.                 printf(" condType           = %s n", (pTrg->condType? "var":"func"));
  116.                 printf(" condEx1            = %pn", pTrg->condEx1);
  117.                 printf(" condOp             = %pn", (int *)pTrg->condOp);
  118.                 printf(" condEx2            = %pn", (int *)pTrg->condEx2);
  119.                 printf(" disable trigger    = %sn", (pTrg->disable? "Y":"N"));
  120.                 printf(" chained trigger    = %pn", pTrg->chain);
  121.                 printf(" actionType         = %dn", pTrg->actionType);
  122.                 printf(" actionFunc         = %pn", pTrg->actionFunc);
  123.                 printf(" actionDef          = %dn", pTrg->actionDef);
  124.                 printf(" action parameter   = %pn", (int *)pTrg->actionArg);
  125.                 printf(" next trigger       = %pn", pTrg->next);
  126.         }
  127.             else
  128.         { 
  129.                 printf ("trgID      Status  EvtID    ActType Action     Dis Chainn");
  130.                 printf ("--------------------------------------------------------n");
  131.         printf ("%-10p %-7s %-8hd %-7d %-10p %-3s %-10pn", 
  132.              pTrg, (pTrg->status? "enabled": "disabled"), 
  133.         pTrg->eventId, pTrg->actionType, 
  134.         pTrg->actionFunc, (pTrg->disable? "Y":"N"), 
  135.         pTrg->chain);
  136.         } 
  137.     }
  138. }
  139.     printf ("nn");
  140.     return(OK);
  141.     }