/** * \brief Registers TWD Module Callbacks * * \param hTWD - TWD module object handle * \param uCallBackID - Registered Callback ID * \param fCb - Pointer to Input Registered CB function * \param hCb - Handle to Input Registered CB parameters * \return void * * \par Description * Static CB function * This CB Registers TWD CB functions for future use: * CB which handles failure to the CMD Queue, MAC Service and TwIf * CB which handles Command Complete for the CMD Queue * Called by TWD_RegisterCb * * \sa TWD_RegisterCb */ static void TWD_RegisterOwnCb (TI_HANDLE hTWD, TI_UINT32 uCallBackID, void *fCb, TI_HANDLE hCb) { TTwd *pTWD = (TTwd *)hTWD; switch (uCallBackID) { case TWD_INT_EVENT_FAILURE: /* Save Health-Moitor callback */ pTWD->fFailureEventCb = (TFailureEventCb)fCb; pTWD->hFailureEventCb = hCb; /* Register For Error Of Mailbox in case of timeout */ cmdQueue_RegisterForErrorCb (pTWD->hCmdQueue, (void *)TWD_CheckMailboxCb, hTWD); /* Forward the Health-Moitor callback to the MAC-Services modules */ MacServices_registerFailureEventCB(pTWD->hMacServices, fCb, hCb); /* Forward the Health-Moitor callback to the TwIf for bus errors */ twIf_RegisterErrCb (pTWD->hTwIf, fCb, hCb); /* Forward the Health-Moitor callback to the RxXfer for Rx packet errors */ rxXfer_RegisterErrCb (pTWD->hRxXfer, fCb, hCb); break; case TWD_INT_COMMAND_COMPLETE: cmdQueue_RegisterCmdCompleteGenericCb (pTWD->hCmdQueue, fCb, hCb); break; default: {} } }
/* TNETW_Driver_Register_CB() **************************************************************************** * DESCRIPTION: Register the MAC Services and the HAL modules callbacks * * INPUTS: * * OUTPUT: * * RETURNS: ****************************************************************************/ void TnetwDrv_Register_CB (TI_HANDLE hTnetwDrv,tiUINT32 EventID,void *CBFunc, void *pData) { TnetwDrv_t * pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG, ("TnetwDrv_Register_CB (Value = 0x%x)\n", EventID)); /* First detect which module is the owner */ switch((tiUINT16)(EventID & TNETW_DRIVER_CB_MODULE_OWNER_MASK)) { case TNETW_DRIVER_TX_XFER_OWNER: EventID &= TNETW_DRIVER_CB_TYPE_MASK; WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB: TNETW_DRIVER_TX_XFER_OWNER\n")); txXfer_RegisterCB(pTnetwDrv->hTxXfer, EventID, CBFunc, pData); break; case TNETW_DRIVER_TX_RESULT_OWNER: EventID &= TNETW_DRIVER_CB_TYPE_MASK; WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB: TNETW_DRIVER_TX_RESULT_OWNER\n")); txResult_RegisterCB(pTnetwDrv->hTxResult, EventID, CBFunc, pData); break; case TNETW_DRIVER_RX_XFER_OWNER: EventID &= TNETW_DRIVER_CB_TYPE_MASK; WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB: TNETW_DRIVER_RX_XFER_OWNER\n")); rxXfer_Register_CB(pTnetwDrv->hRxXfer, EventID,CBFunc,pData); break; case TNETW_DRIVER_HAL_CTRL_OWNER: EventID &= TNETW_DRIVER_CB_TYPE_MASK; whalCtrl_Register_CB(pTnetwDrv->hHalCtrl, EventID,CBFunc,pData); break; case TNETW_DRIVER_MAC_SERVICES_OWNER: switch (EventID & TNETW_DRIVER_CB_TYPE_MASK) { case HAL_EVENT_SCAN_CMPLT: MacServices_scanSRV_registerScanCompleteCB(pTnetwDrv->hMacServices, (scan_srvCompleteCB_t)CBFunc, pData); break; default: WLAN_REPORT_WARNING(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TNETW_DRIVER_MAC_SERVICES_OWNER - Illegal value\n")); } break; case TNETW_DRIVER_TWD_OWNER: WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB: TNETW_DRIVER_TWD_OWNER\n")); pTnetwDrv->fConfigureCmplteteCB = (TnetDrv_callback_t)CBFunc; pTnetwDrv->hConfigureCompleteOBj = (TI_HANDLE)pData; break; default: if (EventID == HAL_INTERNAL_EVENT_FAILURE) { /* register the Hal failure event callback including the RX in the Hal Cttl the errors are : MBOX_FAILURE, BUS_ERROR, DEVICE_ERROR, DISCONNECT_TIMEOUT,*/ EventID &= TNETW_DRIVER_CB_TYPE_MASK; whalCtrl_Register_CB(pTnetwDrv->hHalCtrl, EventID,CBFunc,pData); /* register the Elp controller failure event callback to the TNET interface HW_AWAKE_FAILURE*/ TNETWIF_RegisterFailureEventCB(pTnetwDrv->hTNETWIF,CBFunc,pData); /* register the Mac services failure events callbacks POWER_SAVE_FAILURE, MEASUREMENT_FAILURE, NO_SCAN_COMPLETE_FAILURE,*/ MacServices_registerFailureEventCB(pTnetwDrv->hMacServices, CBFunc, pData); /* register the TX failure call back in the Xfer TX_STUCK,*/ txXfer_RegisterFailureEventCB(pTnetwDrv->hTxXfer, CBFunc, pData); } else WLAN_REPORT_WARNING(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB - Illegal value\n")); } return; }