/** * @file hv_mw_UrgentTask.c * @brief urgent task source file * @details This file provides the following functions: \n * (1) event dispatch \n * (2) task handle \n * (3) Feed functions \n * * @author HiView SoC Software Team * @version 1.0.0 * @date 2022-08-25 * @copyright Copyright(c),2022-8, Hiview Software. All rights reserved. * @par History: * *
Author Date Change Description *
Hiview SoC Software Team 2022-08-25 init *
*/ #include "hv_comm_Assert.h" #include "hv_comm_Event.h" #include "hv_vos_Comm.h" #include "hv_mw_UrgentTask.h" #include "hv_mw_Hdcp.h" #include "hv_mw_SystemManager.h" static VOID UrgentEventDispatch(const UrgentEvent *pstUrgentEvent) { switch (pstUrgentEvent->enEventType) { case URGENT_REV_EVENT_TYPE_HDCP_HDMI: { Hv_Mw_Hdcp_ProcHdmiHdcpMessage(pstUrgentEvent); break; } case URGENT_REV_EVENT_TYPE_HDCP_DP: { Hv_Mw_Hdcp_ProcDpHdcpMessage(pstUrgentEvent); break; } case URGENT_REV_EVENT_TYPE_CONTRAST: { break; } case URGENT_REV_EVENT_TYPE_LDC: { break; } default: { break; } } return; } VOID Hv_Mw_Urgent_TaskHandle( VOID *arg ) { HV_VOS_QUEUE_S* ptUrgentQueue = Hv_Mw_System_GetUrgentQueue(); HV_ASSERT_VALID_PTR_VOID(ptUrgentQueue); UrgentEvent stUrgentEvent = {0}; for (;;) { #ifdef SW_DUMMY_DEBUG HV_WT32(SW_DUMMY_URGENT_TASK, (HV_RD32(SW_DUMMY_URGENT_TASK)+1)); #endif if (Hv_Vos_QueueRecv(ptUrgentQueue, ((VOID*)&stUrgentEvent))) { UrgentEventDispatch(&stUrgentEvent); } } return; }