* Copyright (c) 2022 Huawei Technologies Co.,Ltd.
*
* DSS is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* -------------------------------------------------------------------------
*
* dss_latch.c
*
*
* IDENTIFICATION
* src/common/dss_latch.c
*
* -------------------------------------------------------------------------
*/
#include "dss_latch.h"
#include "dss_shm.h"
#include "cm_utils.h"
latch_statis_t g_latch_stat[LATCH_STAT_TYPE_COUNT] = {0};
void dss_latch_s(latch_t *latch)
{
cm_latch_s(latch, DSS_DEFAULT_SESSIONID, CM_FALSE, NULL);
}
bool32 dss_latch_timed_s(latch_t *latch, uint32 wait_ticks)
{
return cm_latch_timed_s(latch, wait_ticks, CM_FALSE, NULL);
}
void dss_latch_x(latch_t *latch)
{
cm_latch_x(latch, DSS_DEFAULT_SESSIONID, NULL);
}
bool32 dss_latch_timed_x(latch_t *latch, uint32 wait_ticks)
{
return cm_latch_timed_x(latch, DSS_DEFAULT_SESSIONID, wait_ticks, NULL);
}
void dss_unlatch(latch_t *latch)
{
cm_unlatch(latch, NULL);
}
void dss_latch_x2(latch_t *latch, uint32 sid)
{
cm_latch_x(latch, sid, NULL);
}
void dss_latch_s2(latch_t *latch, uint32 sid, bool32 is_force, latch_statis_t *stat)
{
cm_latch_s(latch, sid, is_force, stat);
}
void dss_latch_x2ix(latch_t *latch, uint32 sid, latch_statis_t *stat)
{
(void)cm_latch_x2ix(latch, sid, stat);
}
void dss_latch_ix2x(latch_t *latch, uint32 sid, latch_statis_t *stat)
{
cm_latch_ix2x(latch, sid, stat);
}
void dss_latch_degrade(latch_t *latch, uint32 sid, latch_statis_t *stat)
{
cm_latch_degrade(latch, sid, stat);
}
void dss_set_latch_extent(dss_latch_extent_t *latch_extent, uint16 stat, uint16 shared_count)
{
latch_extent->stat_bak = stat;
latch_extent->shared_count_bak = shared_count;
latch_extent->shared_sid_count_bak = latch_extent->shared_sid_count;
}