/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2019. All rights reserved. * Description: adec lock function * Author: audio * Create: 2019-12-30 */ #include #include "adec_common.h" #include "drv_ioctl_adec.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ static pthread_mutex_t g_adec_mpi_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t g_adec_api_mutex[ADEC_INSTANCE_MAXNUM] = { [0 ... (ADEC_INSTANCE_MAXNUM - 1)] = PTHREAD_MUTEX_INITIALIZER }; static pthread_mutex_t g_adec_data_mutex[ADEC_INSTANCE_MAXNUM] = { [0 ... (ADEC_INSTANCE_MAXNUM - 1)] = PTHREAD_MUTEX_INITIALIZER }; static pthread_mutex_t g_adec_io_mutex[ADEC_INSTANCE_MAXNUM] = { [0 ... (ADEC_INSTANCE_MAXNUM - 1)] = PTHREAD_MUTEX_INITIALIZER }; td_void adec_mpi_lock(td_void) { adec_mutex_lock(&g_adec_mpi_mutex); } td_void adec_mpi_unlock(td_void) { adec_mutex_unlock(&g_adec_mpi_mutex); } td_void adec_api_lock(td_u32 adec_id) { if (adec_id >= ADEC_INSTANCE_MAXNUM) { return; } adec_mutex_lock(&g_adec_api_mutex[adec_id]); } td_void adec_api_unlock(td_u32 adec_id) { if (adec_id >= ADEC_INSTANCE_MAXNUM) { return; } adec_mutex_unlock(&g_adec_api_mutex[adec_id]); } td_void adec_data_lock(td_u32 adec_id) { if (adec_id >= ADEC_INSTANCE_MAXNUM) { return; } adec_mutex_lock(&g_adec_data_mutex[adec_id]); } td_void adec_data_unlock(td_u32 adec_id) { if (adec_id >= ADEC_INSTANCE_MAXNUM) { return; } adec_mutex_unlock(&g_adec_data_mutex[adec_id]); } td_void adec_io_lock(td_u32 adec_id) { if (adec_id >= ADEC_INSTANCE_MAXNUM) { return; } adec_mutex_lock(&g_adec_io_mutex[adec_id]); } td_void adec_io_unlock(td_u32 adec_id) { if (adec_id >= ADEC_INSTANCE_MAXNUM) { return; } adec_mutex_unlock(&g_adec_io_mutex[adec_id]); } #ifdef __cplusplus } #endif /* __cplusplus */