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

VxWorks

开发平台:

C/C++

  1. /* iosShow.c - I/O system show routines */
  2. /* Copyright 1984-1993 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01d,10oct95,jdi  doc: added .tG Shell to SEE ALSOs.
  8. 01c,02feb93,jdi  documentation tweaks.
  9. 01b,02oct92,jdi  documentation cleanup.
  10. 01a,23aug92,jcf  extracted from iosLib.c.
  11. */
  12. /*
  13. DESCRIPTION
  14. This library contains I/O system information display routines.
  15. The routine iosShowInit() links the I/O system information show
  16. facility into the VxWorks system.  It is called automatically when
  17. %INCLUDE_SHOW_ROUTINES is defined in configAll.h.
  18. SEE ALSO: intLib, ioLib,
  19. .pG "I/O System,"
  20. windsh,
  21. .tG "Shell"
  22. */
  23. #include "vxWorks.h"
  24. #include "dllLib.h"
  25. #include "fioLib.h"
  26. #include "stdio.h"
  27. #include "private/iosLibP.h"
  28. /******************************************************************************
  29. *
  30. * iosShowInit - initialize the I/O system show facility
  31. *
  32. * This routine links the I/O system show facility into the VxWorks system.
  33. * It is called automatically when %INCLUDE_SHOW_ROUTINES is defined in
  34. * configAll.h.
  35. *
  36. * RETURNS: N/A
  37. */
  38. void iosShowInit (void)
  39.     {
  40.     }
  41. /*******************************************************************************
  42. *
  43. * iosDrvShow - display a list of system drivers
  44. *
  45. * This routine displays a list of all drivers in the driver list.
  46. *
  47. * RETURNS: N/A
  48. *
  49. * SEE ALSO:
  50. * .pG "I/O System,"
  51. * windsh,
  52. * .tG "Shell"
  53. */
  54. void iosDrvShow (void)
  55.     {
  56.     FAST int i;
  57.     printf ("%3s %9s  %9s  %9s  %9s  %9s  %9s  %9sn",
  58. "drv", "create", "delete", "open", "close", "read", "write", "ioctl");
  59.     for (i = 1; i < maxDrivers; i++)
  60. {
  61. if (drvTable[i].de_inuse)
  62.     {
  63.     printf ("%3d %9x  %9x  %9x  %9x  %9x  %9x  %9xn", i,
  64. drvTable[i].de_create, drvTable[i].de_delete,
  65. drvTable[i].de_open, drvTable[i].de_close,
  66. drvTable[i].de_read, drvTable[i].de_write,
  67. drvTable[i].de_ioctl);
  68.     }
  69. }
  70.     }
  71. /*******************************************************************************
  72. *
  73. * iosDevShow - display the list of devices in the system
  74. *
  75. * This routine displays a list of all devices in the device list.
  76. *
  77. * RETURNS: N/A
  78. *
  79. * SEE ALSO: devs(),
  80. * .pG "I/O System,"
  81. * windsh,
  82. * .tG "Shell"
  83. */
  84. void iosDevShow (void)
  85.     {
  86.     FAST DEV_HDR *pDevHdr;
  87.     printf ("%3s %-20sn", "drv", "name");
  88.     for (pDevHdr = (DEV_HDR *) DLL_FIRST (&iosDvList); pDevHdr != NULL;
  89. pDevHdr = (DEV_HDR *) DLL_NEXT (&pDevHdr->node))
  90. printf ("%3d %-20sn", pDevHdr->drvNum, pDevHdr->name);
  91.     }
  92. /*******************************************************************************
  93. *
  94. * iosFdShow - display a list of file descriptor names in the system
  95. *
  96. * This routine displays a list of all file descriptors in the system.
  97. *
  98. * RETURNS: N/A
  99. *
  100. * SEE ALSO: ioctl(),
  101. * .pG "I/O System,"
  102. * windsh,
  103. * .tG "Shell"
  104. */
  105. void iosFdShow (void)
  106.     {
  107.     char *stin;
  108.     char *stout;
  109.     char *sterr;
  110.     FD_ENTRY *pFdEntry;
  111.     int fd;
  112.     int xfd;
  113.     printf ("%3s %-20s %3sn", "fd", "name", "drv");
  114.     for (fd = 0; fd < maxFiles; fd++)
  115. {
  116. pFdEntry = &fdTable [fd];
  117. if (pFdEntry->inuse)
  118.     {
  119.     xfd = STD_FIX(fd);
  120.     stin  = (xfd == ioGlobalStdGet (STD_IN))  ? "in"  : "";
  121.     stout = (xfd == ioGlobalStdGet (STD_OUT)) ? "out" : "";
  122.     sterr = (xfd == ioGlobalStdGet (STD_ERR)) ? "err" : "";
  123.     printf ("%3d %-20s %3d %s %s %sn",
  124.     xfd,
  125.     (pFdEntry->name == NULL) ? "(unknown)" : pFdEntry->name,
  126.     pFdEntry->pDevHdr->drvNum, stin, stout, sterr);
  127.     }
  128. }
  129.     }