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

VxWorks

开发平台:

C/C++

  1. /* usrUsbNC1080EndInit.c - Initialization of the NC1080 End driver */
  2. /* Copyright 1999-2001 Wind River Systems, Inc. */
  3. /*
  4. Modification history
  5. --------------------
  6. 01b,10jun01,wef  moved end attach functionality to src/test/usb/usbNC1080Test.c
  7. 01a,20feb01,wef  Created
  8. */
  9. /*
  10. DESCRIPTION
  11. This configlette initializes the USB NC1080 driver.  This assumes the
  12. USB host stack has already been initialized and has a host controller
  13. driver attached.   
  14. */
  15. /* includes */
  16. #include "vxWorks.h"
  17. #include "end.h"
  18. #include "pingLib.h"
  19. #include "usb/usbQueueLib.h"
  20. #include "drv/usb/usbNC1080End.h"
  21. /* defines */
  22. #define VX_UNBREAKABLE 0x0002
  23. #define INCLUDE_NETCHIP_TEST 0
  24. /* externals */
  25. /* locals */
  26. LOCAL QUEUE_HANDLE  callbackQueue;
  27. LOCAL THREAD_HANDLE callbackHandle;
  28. LOCAL USB_MESSAGE   msg;
  29. /*****************************************************************************
  30. *
  31. * usbNC1080AttachCallback - 
  32. *
  33. *
  34. *
  35. * RETURNS: Nothing 
  36. */
  37. VOID usbNC1080AttachCallback
  38.     (
  39.     pVOID arg,     /* caller-defined argument */
  40.     USB_NC1080_DEV* pDev,             /* pointer to NETCHIP Device  */
  41.     UINT16 attachCode     /* attach code */
  42.     )
  43.     {
  44.          usbQueuePut (callbackQueue, 
  45.       (UINT16)pDev->nodeId, 
  46.       attachCode, 
  47.       (UINT32)pDev, 
  48.       5000); 
  49.     }
  50. /***************************************************************************
  51. *
  52. * netChipClientThread- TODO
  53. *
  54. * This function initiates transmission on the ethernet.
  55. *
  56. * RETURNS: OK or ERROR
  57. */
  58. void netChipClientThread(void)
  59.     {
  60.     char *    pAddrString;      /* enet address */
  61.     char *    pNetRoute;   /* netroute   */    
  62.     int       unitNum ;           /* unit number */
  63.     int       netmask=0xff000000;           /* netmask */
  64.     static int index;
  65.     USB_NC1080_DEV* pDev;
  66.     while (1)
  67.         {
  68.         usbQueueGet (callbackQueue, &msg, OSS_BLOCK);
  69. #if INCLUDE_NETCHIP_TEST  
  70. pNetRoute = "90.0.0.3";
  71. netmask = 0xff000000;
  72. unitNum = 0;
  73. pAddrString = "90.0.0.53";
  74. #endif
  75. logMsg ("Brinco Flash-Link adapter....n", 0, 0, 0, 0, 0, 0);
  76.         if (msg.wParam == USB_NETCHIP_ATTACH)
  77.     {
  78.             logMsg ("Wait...Loading Netchip Device!n", 0, 0, 0, 0, 0, 0); 
  79.     if (usbNC1080DevLock ((USBD_NODE_ID)msg.msg) != OK)
  80.         logMsg ("usbNetChipDevLock() returned ERRORn", 
  81. 0, 0, 0, 0, 0, 0);
  82.     else
  83. {
  84. /* 
  85. * This is where the stack has become aware of the device 
  86. * being plugged in.  Here you may call code to further act 
  87. * on a device.  
  88.                 * The sample code called here can be found in:
  89.                 * target/src/test/usb/usbNC1080Test.c
  90. */
  91. #if INCLUDE_NETCHIP_TEST  
  92.  if(loadNetChip(unitNum,pDev) == OK)
  93.                    {
  94.                     taskDelay(sysClkRateGet() * 1);
  95.             /* Attach IP address*/
  96.     test(unitNum,pAddrString,netmask);
  97.     } 
  98. #endif
  99.  }
  100.     }
  101.         else if (msg.wParam == USB_NETCHIP_REMOVE)
  102.     {
  103.         logMsg (" Wait... NetChip Device Unload in progress!n", 
  104. 0, 0, 0, 0, 0, 0);
  105.     if (usbNC1080DevUnlock ((USBD_NODE_ID)msg.msg) != OK)
  106.                logMsg ("usbNetChipDevUnlock() returned ERROR!n",
  107. 0, 0, 0, 0, 0, 0);
  108.     /* 
  109.     * This is where the stack has become aware of the device 
  110.     * being removed in.  Here you may call code to further handle
  111.     * a device being removed from the system
  112.     */
  113. #if INCLUDE_NETCHIP_TEST  
  114.     if (routeDelete(pNetRoute,pAddrString)!=OK)
  115.        logMsg (" RouteDeletion failed!  n", 0, 0, 0, 0, 0, 0);
  116.     if (muxDevUnload("netChip",unitNum)!=OK)
  117.        logMsg ("  muxDevUnload failed!n", 0, 0, 0, 0, 0, 0);
  118. #endif
  119.        logMsg (" NetChip Device Unloaded sucessfully!!!n",
  120. 0, 0, 0, 0, 0, 0);
  121.     }
  122. }
  123.     }
  124. /*****************************************************************************
  125. *
  126. * usrUsbNC1080EndInit - initialize the USB Netchip 1080 driver
  127. *
  128. * This function initializes the USB Netchip 1080 driver
  129. *
  130. * RETURNS: Nothing 
  131. */
  132. STATUS usrUsbNC1080EndInit (void) 
  133.     {
  134.     int taskId;
  135.     if (usbNC1080DrvInit () == OK)
  136.         logMsg ("usbNC1080DrvInit () returned OKn", 0, 0, 0, 0, 0, 0);
  137.     else
  138. {
  139.         logMsg ("usbNC1080DrvInit () returned ERRORn", 0, 0, 0, 0, 0, 0);
  140. return ERROR;
  141. }
  142.     if (usbQueueCreate (128, &callbackQueue)!=OK)
  143. logMsg ("NetChip callbackqueue creation errorn ", 0, 0, 0, 0, 0, 0);
  144.     if((taskId = taskSpawn ( "tNetchipClnt", 
  145.      5, 
  146.      VX_UNBREAKABLE, 
  147.      20000, 
  148.      (FUNCPTR) netChipClientThread, 
  149.      0, 0, 0, 0, 0, 0, 0, 0, 0, 0 )) 
  150.  ==ERROR)
  151. logMsg (" TaskSpawn Error...!n", 0, 0, 0, 0, 0, 0);
  152.     if (usbNC1080DynamicAttachRegister (usbNC1080AttachCallback, NULL) != OK)
  153. logMsg ("usbNetChipDynamicAttachRegister() returned ERRORn", 
  154. 0, 0, 0, 0, 0, 0);
  155.     
  156.     }