Files
2025-11-08 13:26:19 +08:00

63 lines
1.0 KiB
C

/*
* atomic.h
*
* Copyright (c) 2020 Semidrive Semiconductor.
* All rights reserved.
*
* Description: ARM atomic interface.
*
* Revision History:
* -----------------
*/
#ifndef INCLUDE_ARCH_ATOMIC_H
#define INCLUDE_ARCH_ATOMIC_H
#ifndef ASSEMBLY
#include <compiler.h>
__BEGIN_CDECLS
/*
* atomic swap.
*
* @ptr address of data A.
* @val value of data B.
* @return old value of data A.
*/
int arch_atomic_swap(int *ptr, int val);
/*
* atomic add.
*
* @ptr address of data A.
* @val value of data B.
* @return old value of data A.
*/
int arch_atomic_add(int *ptr, int val);
/*
* atomic and.
*
* @ptr address of data A.
* @val value of data B.
* @return old value of data A.
*/
int arch_atomic_and(int *ptr, int val);
/*
* atomic or.
*
* @ptr address of data A.
* @val value of data B.
* @return old value of data A.
*/
int arch_atomic_or(int *ptr, int val);
__END_CDECLS
#endif
#endif