/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright (c) 2016-2019, Linaro Limited
 */

#ifndef __ATOMIC_H
#define __ATOMIC_H

#include <compiler.h>
#include <types_ext.h>

uint32_t atomic_inc32(volatile uint32_t *v);
uint32_t atomic_dec32(volatile uint32_t *v);

static inline bool atomic_cas_uint(unsigned int *p, unsigned int *oval,
				   unsigned int nval)
{
	return __compiler_compare_and_swap(p, oval, nval);
}

static inline bool atomic_cas_u32(uint32_t *p, uint32_t *oval, uint32_t nval)
{
	return __compiler_compare_and_swap(p, oval, nval);
}

static inline int atomic_load_int(int *p)
{
	return __compiler_atomic_load(p);
}

static inline unsigned int atomic_load_uint(unsigned int *p)
{
	return __compiler_atomic_load(p);
}

static inline unsigned int atomic_load_u32(unsigned int *p)
{
	return __compiler_atomic_load(p);
}

static inline void atomic_store_int(int *p, int val)
{
	__compiler_atomic_store(p, val);
}

static inline void atomic_store_uint(unsigned int *p, unsigned int val)
{
	__compiler_atomic_store(p, val);
}

static inline void atomic_store_u32(uint32_t *p, uint32_t val)
{
	__compiler_atomic_store(p, val);
}

#endif /*__ATOMIC_H*/
