⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbtcdnet2280initexit.c

📁 This the compressed USB driver source code for vxworks5.6. It has device controller driver and other
💻 C
📖 第 1 页 / 共 2 页
字号:
        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,        "usbTcdNET2280FncDetach exiting: Bad Parameter received",        USB_TCD_NET2280_WV_FILTER);        USB_NET2280_ERROR ("usbTcdNET2280FncDetach : Bad Parameters...\n",        0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_BAD_PARAM);        }    pTarget =  (pUSB_TCD_NET2280_TARGET) pHeader->handle;    /* Disable the interrupts by reset in PCI Interrupt Enable of PCIIRQENB1 */    data32 = NET2280_CFG_READ (pTarget, NET2280_PCIIRQENB1_REG);    data32 &= ~NET2280_XIRQENB1_INTEN;    NET2280_CFG_WRITE (pTarget, NET2280_PCIIRQENB1_REG, data32);    /* flush all the FIFO */    data32 = NET2280_CFG_READ (pTarget, NET2280_DEVINIT_REG);    data32 |= NET2280_DEVINIT_FIFO_RESET;    NET2280_CFG_WRITE (pTarget, NET2280_DEVINIT_REG, data32);    /* Reset the USBCTL regsiter */    NET2280_CFG_WRITE (pTarget, NET2280_USBCTL_REG,0);    /* Un-hook the ISR */    usbPciIntRestore ((INT_HANDLER_PROTOTYPE)usbTcdNET2280Isr, (pVOID)pTarget,                       pTarget->irq);    /* Release the USB_TCD_NET2280_TARGET */    OSS_FREE (pTarget);    USB_NET2280_DEBUG ("usbTcdNET2280FncDetach : Exiting...\n",0,0,0,0,0,0);    return OK;    }/******************************************************************************** usbTcdNET2280FncEnable - implements TCD_FNC_ENABLE** The purpose of this function is to enable the Target Controller** RETURNS: OK or ERROR, if not able to enable the target controller.** ERRNO:* \is* \i S_usbTcdLib_BAD_PARAM* Bad Parameter is passed.* \ie** \NOMANUAL*/LOCAL STATUS usbTcdNET2280FncEnable    (    pTRB_ENABLE_DISABLE	pTrb			/* TRB to be executed */    )    {    pTRB_HEADER	pHeader = (pTRB_HEADER) pTrb;	/* TRB_HEADER */    pUSB_TCD_NET2280_TARGET	pTarget = NULL;	/* USB_TCD_ISP1582_TARGET */    UINT32	data32 = 0;			/* temporary variable */    /* WindView Instrumentation */    USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,    "usbTcdNET2280FncEnable entered ...", USB_TCD_NET2280_WV_FILTER);    USB_NET2280_DEBUG ("usbTcdNET2280FncEnable : Entered...\n",0,0,0,0,0,0);    /* Validate parameters */    if (pHeader == NULL || pHeader->trbLength < sizeof (TRB_HEADER) ||        (pHeader->handle == NULL))        {        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_ISP1582_INIT_EXIT,        "usbTcdNET2280FncEnable exiting: Bad Parameter received",        USB_TCD_NET2280_WV_FILTER);        USB_NET2280_ERROR ("usbTcdNET2280FncEnable : Bad Parameters...\n",        0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_BAD_PARAM);        }    pTarget =  (pUSB_TCD_NET2280_TARGET) pHeader->handle;    /* Set the USB DETECT ENABLE bit of USBCTL register */    data32 = NET2280_CFG_READ (pTarget, NET2280_USBCTL_REG);    data32 |= NET2280_USBCTL_REG_USBDE;    NET2280_CFG_WRITE (pTarget, NET2280_USBCTL_REG, data32);    return OK;    }/******************************************************************************** usbTcdNET2280FncDisable - implements TCD_FNC_DISBLE** The purpose of this function is to enable the Target Controller** RETURNS: OK or ERROR, if not able to enable the target controller.** ERRNO:* \is* \i S_usbTcdLib_BAD_PARAM* Bad Parameter is passed.* \ie** \NOMANUAL*/LOCAL STATUS usbTcdNET2280FncDisable    (    pTRB_ENABLE_DISABLE	pTrb			/* TRB to be executed */    )    {    pTRB_HEADER	pHeader = (pTRB_HEADER) pTrb;	/* TRB_HEADER */    pUSB_TCD_NET2280_TARGET	pTarget = NULL;	/* USB_TCD_ISP1582_TARGET */    UINT32	data32 = 0;			/* temporary variable */    /* WindView Instrumentation */    USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,    "usbTcdNET2280FncDisable entered ...", USB_TCD_NET2280_WV_FILTER);    USB_NET2280_DEBUG ("usbTcdNET2280FncDisable : Entered...\n",0,0,0,0,0,0);    /* Validate parameters */    if (pHeader == NULL || pHeader->trbLength < sizeof (TRB_HEADER) ||        (pHeader->handle == NULL))        {        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_ISP1582_INIT_EXIT,        "usbTcdNET2280FncDisable exiting: Bad Parameter received",        USB_TCD_NET2280_WV_FILTER);        USB_NET2280_ERROR ("usbTcdNET2280FncDisable : Bad Parameters...\n",        0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_BAD_PARAM);        }    pTarget =  (pUSB_TCD_NET2280_TARGET) pHeader->handle;    /* Reset the USB DETECT ENABLE bit of USBCTL register */    data32 = NET2280_CFG_READ (pTarget, NET2280_USBCTL_REG);    data32 &= ~NET2280_USBCTL_REG_USBDE;    NET2280_CFG_WRITE (pTarget, NET2280_USBCTL_REG, data32);    return OK;    }/******************************************************************************** usbTcdNET2280Exec - single Entry Point for NETCHIP 2280 TCD** This is the single entry point for the NETCHIP 2280* USB TCD (Target Controller Driver).  The function qualifies the TRB passed* by the caller and fans out to the appropriate TCD function handler.** RETURNS: OK or ERROR if failed to execute TRB passed by caller.** ERRNO:* \is* \i S_usbTcdLib_BAD_PARAM* Bad parameter is passed.* \ie*/STATUS usbTcdNET2280Exec    (    pVOID	pTrb			/* TRB to be executed */    )    {    pTRB_HEADER	pHeader = (pTRB_HEADER) pTrb;	/* TRB_HEADER */    pUSB_TCD_NET2280_TARGET	pTarget = NULL;	/* USB_TCD_NET2280_TARGET */    UINT32	status = OK;    /* WindView Instrumentation */     USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,    "usbTcdNET2280Exec entered ...", USB_TCD_ISP582_WV_FILTER);    USB_NET2280_DEBUG ("usbTcdNET2280Exec : Entered...\n",0,0,0,0,0,0);    /* Validate parameters */    if (pHeader == NULL || pHeader->trbLength < sizeof (TRB_HEADER))        {        /* WindView Instrumentation */        USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,        "usbTcdNET2280Exec exiting: Bad Paramters Received  ...",        USB_TCD_ISP582_WV_FILTER);        USB_NET2280_ERROR ("usbTcdNET2280Exec : Bad Parameters...\n",        0,0,0,0,0,0);        return ossStatus (S_usbTcdLib_BAD_PARAM);        }    if (pHeader->function != TCD_FNC_ATTACH)        {        if ((pTarget = (pUSB_TCD_NET2280_TARGET) pHeader->handle) == NULL)           {           /* WindView Instrumentation */           USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,           "usbTcdNET2280Exec exiting: Handle value is NULL...",           USB_TCD_ISP582_WV_FILTER);           USB_NET2280_ERROR ("usbTcdNET2280Exec : Bad Parameters...\n",           0,0,0,0,0,0);           return ossStatus (S_usbTcdLib_BAD_PARAM);           }        }    USB_NET2280_DEBUG ("usbTcdNET2280Exec : Fucntion Code is %d...\n",    pHeader->function,0,0,0,0,0);    /* Fan-out to appropriate function processor */    switch (pHeader->function)        {        /* Following functions codes are not implemented by ISP 1582 */        case TCD_FNC_HANDLE_SUSPEND_INTERRUPT    :        case TCD_FNC_HANDLE_RESUME_INTERRUPT :  break;        /* initialization and uninitialization function codes */        case TCD_FNC_ATTACH :            status = usbTcdNET2280FncAttach((pTRB_ATTACH) pHeader);    	    break;        case TCD_FNC_DETACH:    	    status = usbTcdNET2280FncDetach((pTRB_DETACH) pHeader);            break;        case TCD_FNC_ENABLE:    	    status = usbTcdNET2280FncEnable((pTRB_ENABLE_DISABLE) pHeader);            break;        case TCD_FNC_DISABLE:    	    status = usbTcdNET2280FncDisable((pTRB_ENABLE_DISABLE) pHeader);            break;        /* device control and status function codes */        case TCD_FNC_ADDRESS_SET:            status = usbTcdNET2280FncAddressSet((pTRB_ADDRESS_SET) pHeader);            break;        case TCD_FNC_SIGNAL_RESUME:    	    status = usbTcdNET2280FncSignalResume((pTRB_SIGNAL_RESUME)pHeader);            break;        case TCD_FNC_CURRENT_FRAME_GET:            status = usbTcdNET2280FncCurrentFrameGet(                      (pTRB_CURRENT_FRAME_GET)pHeader);            break;        case TCD_FNC_DEVICE_FEATURE_SET:            status = usbTcdNET2280FncDeviceFeatureSet(                      (pTRB_DEVICE_FEATURE_SET_CLEAR)pHeader);            break;        case TCD_FNC_DEVICE_FEATURE_CLEAR :            status = usbTcdNET2280FncDeviceFeatureClear(                      (pTRB_DEVICE_FEATURE_SET_CLEAR) pHeader);            break;        /* endpoint related function codes */        case TCD_FNC_ENDPOINT_ASSIGN:            status = usbTcdNET2280FncEndpointAssign(                      (pTRB_ENDPOINT_ASSIGN) pHeader);            break;        case TCD_FNC_ENDPOINT_RELEASE:            status = usbTcdNET2280FncEndpointRelease(                      (pTRB_ENDPOINT_RELEASE) pHeader);            break;        case TCD_FNC_ENDPOINT_STATE_SET:            status = usbTcdNET2280FncEndpointStateSet(                      (pTRB_ENDPOINT_STATE_SET)pHeader);            break;        case TCD_FNC_ENDPOINT_STATUS_GET:            status = usbTcdNET2280FncEndpointStatusGet(                      (pTRB_ENDPOINT_STATUS_GET)pHeader);            break;        case TCD_FNC_IS_BUFFER_EMPTY:            status = usbTcdNET2280FncIsBufferEmpty(                      (pTRB_IS_BUFFER_EMPTY) pHeader);            break;        case TCD_FNC_COPY_DATA_FROM_EPBUF:	        status = usbTcdNET2280FncCopyDataFromEpBuf(                      (pTRB_COPY_DATA_FROM_EPBUF) pHeader);	        break;        case TCD_FNC_COPY_DATA_TO_EPBUF:            status = usbTcdNET2280FncCopyDataToEpBuf(                      (pTRB_COPY_DATA_TO_EPBUF) pHeader);            break;        /* interrupt related function codes */        case TCD_FNC_ENDPOINT_INTERRUPT_STATUS_GET:            status = usbTcdNET2280FncEndpointIntStatusGet(                     (pTRB_ENDPOINT_INTERRUPT_STATUS_GET) pHeader);            break;        case TCD_FNC_ENDPOINT_INTERRUPT_STATUS_CLEAR:            status = usbTcdNET2280FncEndpointIntStatusClear(                      (pTRB_ENDPOINT_INTERRUPT_STATUS_CLEAR) pHeader);            break;        case TCD_FNC_INTERRUPT_STATUS_GET:            status = usbTcdNET2280FncInterruptStatusGet(                      (pTRB_INTERRUPT_STATUS_GET_CLEAR) pHeader);            break;        case TCD_FNC_INTERRUPT_STATUS_CLEAR:            status = usbTcdNET2280FncInterruptStatusClear(                      (pTRB_INTERRUPT_STATUS_GET_CLEAR) pHeader);            break;        case TCD_FNC_HANDLE_RESET_INTERRUPT :            status = usbTcdNET2280FncHandleResetInterrupt(                      (pTRB_HANDLE_RESET_INTERRUPT) pHeader);            break;        case TCD_FNC_HANDLE_DISCONNECT_INTERRUPT :            status = usbTcdNET2280FncHandleDisconnectInterrupt(                      (pTRB_HANDLE_DISCONNECT_INTERRUPT) pHeader);            break;        default:            /* WindView Instrumentation */            USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,            "usbTcdNET2280Exec exiting: Wrong Function Code  ...",            USB_TCD_ISP582_WV_FILTER);            USB_NET2280_ERROR ("usbTcdNET2280Exec : Bad Parameters...\n",            0,0,0,0,0,0);            status = ossStatus (S_usbTcdLib_BAD_PARAM);        }    /* WindView Instrumentation */    USB_TCD_LOG_EVENT(USB_TCD_NET2280_INIT_EXIT,    "usbTcdNET2280Exec exiting ...", USB_TCD_ISP582_WV_FILTER);    USB_NET2280_DEBUG ("usbTcdNET2280Exec : Exiting...\n",0,0,0,0,0,0);    /* Return status */    return status;    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -