/** * \fn cmdHndlr_ClearQueue * \brief Clear commands queue * * Dequeue and free all queued commands. * * \note * \param hCmdHndlr - The object * \return void * \sa */ void cmdHndlr_ClearQueue (TI_HANDLE hCmdHndlr) { TCmdHndlrObj *pCmdHndlr = (TCmdHndlrObj *)hCmdHndlr; TConfigCommand *pCurrCmd; /* Dequeue and free all queued commands */ do { context_EnterCriticalSection (pCmdHndlr->hContext); pCurrCmd = (TConfigCommand *)que_Dequeue(pCmdHndlr->hCmdQueue); context_LeaveCriticalSection (pCmdHndlr->hContext); if (pCurrCmd != NULL) { /* Just release the semaphore. The command is freed subsequently. */ os_SignalObjectSet (pCmdHndlr->hOs, pCurrCmd->pSignalObject); } } while (pCurrCmd != NULL); }
/** * \fn wlanDrvIf_CommandDone * \brief Free current command semaphore. * * This routine is called whenever a command has finished executing and Free current command semaphore. * * \note * \param hOs - The driver object handle * \param pSignalObject - handle to complete mechanism per OS * \param CmdResp_p - respond structure (TCmdRespUnion) for OSE OS only * \return 0 - OK, else - failure * \sa wlanDrvIf_Destroy */ void wlanDrvIf_CommandDone (TI_HANDLE hOs, void *pSignalObject, TI_UINT8 *CmdResp_p) { /* Free semaphore */ os_SignalObjectSet (hOs, pSignalObject); }