PUBLIC BOOLEAN SDIO_Card_Pal_Close (SDIO_CARD_PAL_HANDLE handle) { SDIO_CARD_PAL_IRQ_DECLARE; // 此模块只提供给Card_sdio.c这个协议使用,协议代码本身已经保证该handle的有效性,因此在这里不做特别严的检查 SDIO_CARD_PAL_ASSERT ( /*assert verified*/ (SDIO_CARD_PAL_MAGICNUM == handle->MagicNum) && (TRUE == handle->flag) ); SDIO_CARD_PAL_DISABLE_IRQ; handle->flag = FALSE; SDIO_CARD_PAL_ENABLE_IRQ; SDHOST_UnRegister (handle->sdio_port); #if defined (UCOS_BSD_EVENT) { INT8U err; OSFlagDel (handle->sdio_event, OS_DEL_ALWAYS, &err); handle->sdio_event = PNULL; } #elif defined (CARD_SDIO_EVENT) SCI_DeleteEvent (handle->sdio_event); handle->sdio_event = PNULL; #else s_CardEvent = 0; #endif return TRUE; }
status_t DSPI_RTOS_Deinit(dspi_rtos_handle_t *handle) { OS_ERR err; DSPI_Deinit(handle->base); OSFlagDel(&handle->event, OS_OPT_DEL_ALWAYS, &err); OSSemDel(&handle->mutex, OS_OPT_DEL_ALWAYS, &err); return kStatus_Success; }
void osDeleteEvent(OsEvent *event) { OS_ERR err; //Make sure the operating system is running if(OSRunning == OS_STATE_OS_RUNNING) { //Properly dispose the event object OSFlagDel(event, OS_OPT_DEL_ALWAYS, &err); } }
ADI_OSAL_STATUS adi_osal_EventGroupDestroy(ADI_OSAL_EVENT_HANDLE const hEventGroup) { INT8U nErr; ADI_OSAL_STATUS eRetStatus; #pragma diag(push) #pragma diag(suppress:misra_rule_11_4 : "typecasting is necessary to convert the handle type into a native uCOS pointer") OS_FLAG_GRP* hEventNative = (OS_FLAG_GRP*) hEventGroup; #pragma diag(pop) #ifdef OSAL_DEBUG if (CALLED_FROM_AN_ISR) { return (ADI_OSAL_CALLER_ERROR); } if ((NULL == hEventGroup) || (ADI_OSAL_INVALID_EVENT_GROUP == ADI_OSAL_INVALID_EVENT_GROUP)) { return(ADI_OSAL_BAD_HANDLE); } #endif /* OSAL_DEBUG */ OSFlagDel(hEventNative, OS_DEL_NO_PEND, /* delete if no threads are pending */ &nErr); switch(nErr) { case OS_ERR_NONE: eRetStatus = ADI_OSAL_SUCCESS; break; case OS_ERR_TASK_WAITING: eRetStatus = ADI_OSAL_THREAD_PENDING; break; #ifdef OSAL_DEBUG case OS_ERR_DEL_ISR: eRetStatus = ADI_OSAL_CALLER_ERROR; break; case OS_ERR_FLAG_INVALID_PGRP: case OS_ERR_EVENT_TYPE: eRetStatus = ADI_OSAL_BAD_HANDLE; break; case OS_ERR_INVALID_OPT: eRetStatus = ADI_OSAL_FAILED; break; #endif /* OSAL_DEBUG */ default: eRetStatus = ADI_OSAL_FAILED; break; } return (eRetStatus); }
/*FUNCTION********************************************************************** * * Function Name : OSA_EventDestroy * Description : This function is used to destroy a event object. Return * kStatus_OSA_Success if the event object is destroyed successfully, otherwise * return kStatus_OSA_Error. * *END**************************************************************************/ osa_status_t OSA_EventDestroy(event_t *pEvent) { OS_ERR err; OSFlagDel(&(pEvent->group), OS_OPT_DEL_ALWAYS, &err); if (OS_ERR_NONE == err) { return kStatus_OSA_Success; } else { return kStatus_OSA_Error; } }
/*FUNCTION********************************************************************** * * Function Name : OSA_EventDestroy * Description : This function is used to destroy a event object. Return * kStatus_OSA_Success if the event object is destroyed successfully, otherwise * return kStatus_OSA_Error. * *END**************************************************************************/ osa_status_t OSA_EventDestroy(event_t *pEvent) { INT8U err; OSFlagDel(pEvent->pGroup, OS_DEL_ALWAYS, &err); if (OS_ERR_NONE == err) { pEvent->pGroup = (OS_FLAG_GRP*)0; return kStatus_OSA_Success; } else { return kStatus_OSA_Error; } }