blob: 1011fced92ff0c58bde220b6a94a46df3d147d3d [file] [log] [blame]
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
#ifndef TEE_L2CC_MUTEX_H
#define TEE_L2CC_MUTEX_H
#include <inttypes.h>
#include <tee_api_types.h>
#include <tee_api_defines.h>
#include <compiler.h>
#if defined(CFG_PL310)
TEE_Result tee_enable_l2cc_mutex(void);
TEE_Result tee_disable_l2cc_mutex(void);
TEE_Result tee_get_l2cc_mutex(paddr_t *mutex);
TEE_Result tee_set_l2cc_mutex(paddr_t *mutex);
void tee_l2cc_mutex_lock(void);
void tee_l2cc_mutex_unlock(void);
/*
* Store the pa of a mutex used for l2cc
* It is allocated from the boot
*/
void tee_l2cc_store_mutex_boot_pa(uint32_t pa);
#else
static TEE_Result tee_enable_l2cc_mutex(void);
static TEE_Result tee_disable_l2cc_mutex(void);
static TEE_Result tee_get_l2cc_mutex(paddr_t *mutex);
static TEE_Result tee_set_l2cc_mutex(paddr_t *mutex);
static inline TEE_Result tee_enable_l2cc_mutex(void)
{
return TEE_ERROR_NOT_SUPPORTED;
}
static inline TEE_Result tee_disable_l2cc_mutex(void)
{
return TEE_ERROR_NOT_SUPPORTED;
}
static inline TEE_Result tee_get_l2cc_mutex(paddr_t *mutex __unused)
{
return TEE_ERROR_NOT_SUPPORTED;
}
static inline TEE_Result tee_set_l2cc_mutex(paddr_t *mutex __unused)
{
return TEE_ERROR_NOT_SUPPORTED;
}
#endif
#endif /* TEE_L2CC_MUTEX_H */