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

VxWorks

开发平台:

C/C++

  1. /* pccardShow.c - PC CARD show library */
  2. /* Copyright 1984-1996 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01d,11dec97,hdn  added TFFS support for flash PC card.
  8. 01c,08nov96,dgp  doc: final formatting
  9. 01b,22feb96,hdn  cleaned up
  10. 01a,10oct95,hdn  written.
  11. */
  12. /*
  13. DESCRIPTION
  14. This library provides generic facilities for showing PC CARD status.
  15. */
  16. /* LINTLIBRARY */
  17. #include "drv/pcmcia/pcmciaLib.h"
  18. #include "drv/pcmcia/pccardLib.h"
  19. #include "drv/pcmcia/sramDrv.h"
  20. #include "drv/hdisk/ataDrv.h"
  21. #include "net/if.h"
  22. #include "netinet/if_ether.h"
  23. #include "drv/netif/if_elt.h"
  24. #include "tffs/tffsDrv.h"
  25. /* externs */
  26. IMPORT PCMCIA_CTRL pcmciaCtrl;
  27. IMPORT char pcDriveNo [];
  28. /* globals */
  29. /* locals */
  30. /* forward declarations */
  31. #ifdef  INCLUDE_SHOW_ROUTINES
  32. LOCAL STATUS pccardShow (int sock);
  33. LOCAL STATUS pccardSramShow (int sock);
  34. LOCAL STATUS pccardAtaShow (int sock);
  35. LOCAL STATUS pccardEltShow (int sock);
  36. LOCAL STATUS pccardTffsShow (int sock);
  37. #endif  /* INCLUDE_SHOW_ROUTINES */
  38. /*******************************************************************************
  39. *
  40. * pccardShowInit - initialize all show routines related to PC CARD drivers
  41. *
  42. * This routine initializes all show routines related to PC CARD drivers.
  43. *
  44. * RETURNS: N/A
  45. */
  46. void pccardShowInit (void)
  47.     {
  48. #ifdef  INCLUDE_SHOW_ROUTINES
  49.     int ix;
  50.     PCCARD_ENABLER *pEnabler;
  51.     for (ix = 0; ix < pccardEnablerNumEnt; ix++)
  52. {
  53. pEnabler = &pccardEnabler [ix];
  54. #ifdef INCLUDE_ATA
  55. if (pEnabler->type == PCCARD_ATA)
  56.     pEnabler->showRtn = (FUNCPTR)pccardAtaShow;
  57. #endif /* INCLUDE_ATA */
  58. #ifdef INCLUDE_SRAM
  59. if (pEnabler->type == PCCARD_SRAM)
  60.     pEnabler->showRtn = (FUNCPTR)pccardSramShow;
  61. #endif /* INCLUDE_SRAM */
  62. #ifdef INCLUDE_ELT
  63. if (pEnabler->type == PCCARD_LAN_ELT)
  64.     pEnabler->showRtn = (FUNCPTR)pccardEltShow;
  65. #endif /* INCLUDE_ELT */
  66. #ifdef INCLUDE_TFFS
  67. if (pEnabler->type == PCCARD_FLASH)
  68.     pEnabler->showRtn = (FUNCPTR)pccardTffsShow;
  69. #endif /* INCLUDE_TFFS */
  70. }
  71. #endif  /* INCLUDE_SHOW_ROUTINES */
  72.     }
  73. #ifdef  INCLUDE_SHOW_ROUTINES
  74. /*******************************************************************************
  75. *
  76. * pccardShow - show PC card generic status
  77. *
  78. * Show PC card generic status
  79. *
  80. * RETURNS: OK (always).
  81. */
  82. LOCAL STATUS pccardShow
  83.     (
  84.     int sock /* socket no. */
  85.     )
  86.     {
  87.     PCMCIA_CTRL *pCtrl = &pcmciaCtrl;
  88.     PCMCIA_CARD *pCard = &pCtrl->card[sock];
  89.     PCCARD_RESOURCE *pResource = pCard->pResource;
  90.     /* info from PCMCIA_CARD */
  91.     printf ("  ctrl       = 0x%-8xn", pCard->ctrl);
  92.     printf ("  installed  = %-10s  changed    = %-10sn",
  93.          pCard->installed ? "TRUE" : "FALSE",
  94.          pCard->changed   ? "TRUE" : "FALSE");
  95.     printf ("  cardStatus = 0x%-8x  initStatus = 0x%-8xn",
  96.             pCard->cardStatus, pCard->initStatus);
  97.     printf ("  pBlockDev  = 0x%-8x  pNetIf     = 0x%-8xn",
  98.             (u_int)pCard->pBlkDev, (u_int)pCard->pNetIf);
  99.     /* info from PCCARD_RESOURCE */
  100.     printf ("  Vcc        = 0x%-8x  Vpp        = 0x%-8xn",
  101.     pResource->vcc, pResource->vpp);
  102.     printf ("  ioStart[0] = 0x%-8x  ioStop[0]  = 0x%-8xn",
  103.             pResource->ioStart[0], pResource->ioStop[0]);
  104.     printf ("  ioStart[1] = 0x%-8x  ioStop[1]  = 0x%-8xn",
  105.             pResource->ioStart[1], pResource->ioStop[1]);
  106.     printf ("  ioExtraws  = %-8dn",
  107.             pResource->ioExtraws);
  108.     printf ("  memStart   = 0x%-8x  memStop    = 0x%-8xn",
  109.     pResource->memStart, pResource->memStop);
  110.     printf ("  memLength  = 0x%-8x  memOffset  = 0x%-8xn",
  111.     pResource->memLength, pResource->memOffset);
  112.     printf ("  memExtraws = 0x%-8xn",
  113.     pResource->memExtraws);
  114.     return (OK);
  115.     }
  116. #ifdef INCLUDE_SRAM
  117. /*******************************************************************************
  118. *
  119. * pccardSramShow - show SRAM status
  120. *
  121. * Show SRAM status
  122. *
  123. * RETURNS: OK, or ERROR if the driver is not installed.
  124. */
  125. LOCAL STATUS pccardSramShow
  126.     (
  127.     int sock /* socket no. */
  128.     )
  129.     {
  130.     PCMCIA_CTRL *pCtrl = &pcmciaCtrl;
  131.     PCMCIA_CARD *pCard = &pCtrl->card[sock];
  132.     PCCARD_RESOURCE *pResource = pCard->pResource;
  133.     if (!pCard->detected)
  134. {
  135. printf ("Socket %d is Emptyn", sock);
  136. return (ERROR);
  137. }
  138.     
  139.     if (pResource == NULL)
  140. {
  141. printf ("Socket %d is Unknown PC cardn", sock);
  142. return (ERROR);
  143. }
  144.     
  145.     printf ("Socket %d is SRAMn", sock);
  146.     pccardShow (sock);
  147.     return (OK);
  148.     }
  149. #endif /* INCLUDE_SRAM */
  150. #ifdef INCLUDE_ATA
  151. /*******************************************************************************
  152. *
  153. * pccardAtaShow - show ATA (PCMCIA) status
  154. *
  155. * Show ATA (PCMCIA) status
  156. *
  157. * RETURNS: OK, or ERROR if the driver is not installed.
  158. *
  159. * NOMANUAL
  160. */
  161. LOCAL STATUS pccardAtaShow
  162.     (
  163.     int sock /* socket no. */
  164.     )
  165.     {
  166.     PCMCIA_CTRL *pCtrl = &pcmciaCtrl;
  167.     PCMCIA_CARD *pCard = &pCtrl->card[sock];
  168.     PCCARD_RESOURCE *pResource = pCard->pResource;
  169.     ATA_RESOURCE *pAta = (ATA_RESOURCE *)pResource;
  170.     if (!pCard->detected)
  171. {
  172. printf ("Socket %d is Emptyn", sock);
  173. return (ERROR);
  174. }
  175.     
  176.     if (pResource == NULL)
  177. {
  178. printf ("Socket %d is Unknown PC cardn", sock);
  179. return (ERROR);
  180. }
  181.     
  182.     printf ("Socket %d is ATAn", sock);
  183.     pccardShow (sock);
  184.     printf ("  intVector  = 0x%-8x  intLevel   = 0x%-8xn",
  185.     pAta->intVector, pAta->intLevel);
  186.     printf ("  drives     = 0x%-8x  configType = 0x%-8xn",
  187.     pAta->drives, pAta->configType);
  188.     printf ("  twins      = 0x%-8x  pwrdown    = 0x%-8xn",
  189.             pAta->sockTwin, pAta->pwrdown);
  190.     return (OK);
  191.     }
  192. #endif /* INCLUDE_ATA */
  193. #ifdef INCLUDE_ELT
  194. /*******************************************************************************
  195. *
  196. * pccardEltShow - show ELT (PCMCIA) status
  197. *
  198. * Show ELT (PCMCIA) status
  199. *
  200. * RETURNS: OK, or ERROR if the card is not installed.
  201. *
  202. * NOMANUAL
  203. */
  204. LOCAL STATUS pccardEltShow
  205.     (
  206.     int sock /* socket no. */
  207.     )
  208.     {
  209.     PCMCIA_CTRL *pCtrl = &pcmciaCtrl;
  210.     PCMCIA_CARD *pCard = &pCtrl->card[sock];
  211.     PCCARD_RESOURCE *pResource = pCard->pResource;
  212.     ELT_RESOURCE *pElt = (ELT_RESOURCE *)pResource;
  213.     if (!pCard->detected)
  214. {
  215. printf ("Socket %d is Emptyn", sock);
  216. return (ERROR);
  217. }
  218.     
  219.     if (pResource == NULL)
  220. {
  221. printf ("Socket %d is Unknown PC cardn", sock);
  222. return (ERROR);
  223. }
  224.     
  225.     printf ("Socket %d is ELTn", sock);
  226.     pccardShow (sock);
  227.     printf ("  intVector  = 0x%-8x  intLevel   = 0x%-8xn",
  228.     pElt->intVector, pElt->intLevel);
  229.     printf ("  rxFrames   = 0x%-8x  connector  = 0x%-8xn",
  230.             pElt->rxFrames, pElt->connector);
  231.     return (OK);
  232.     }
  233. #endif /* INCLUDE_ELT */
  234. #ifdef INCLUDE_TFFS
  235. /*******************************************************************************
  236. *
  237. * pccardTffsShow - show TFFS (PCMCIA) status
  238. *
  239. * Show TFFS (PCMCIA) status
  240. *
  241. * RETURNS: OK, or ERROR if the card is not installed.
  242. *
  243. * NOMANUAL
  244. */
  245. LOCAL STATUS pccardTffsShow
  246.     (
  247.     int sock /* socket no. */
  248.     )
  249.     {
  250.     PCMCIA_CTRL *pCtrl = &pcmciaCtrl;
  251.     PCMCIA_CARD *pCard = &pCtrl->card[sock];
  252.     PCCARD_RESOURCE *pResource = pCard->pResource;
  253.     if (!pCard->detected)
  254. {
  255. printf ("Socket %d is Emptyn", sock);
  256. return (ERROR);
  257. }
  258.     
  259.     if (pResource == NULL)
  260. {
  261. printf ("Socket %d is Unknown PC cardn", sock);
  262. return (ERROR);
  263. }
  264.     
  265.     printf ("Socket %d is Flashn", sock);
  266.     pccardShow (sock);
  267.     if (pcDriveNo[sock] != NONE)
  268. tffsShow (pcDriveNo [sock]);
  269.     return (OK);
  270.     }
  271. #endif /* INCLUDE_ELT */
  272. #endif  /* INCLUDE_SHOW_ROUTINES */