1 /* Copyright 2019 SiFive, Inc */
2 /* SPDX-License-Identifier: Apache-2.0 */
4 #include <metal/atomic.h>
6 extern __inline__ int32_t metal_atomic_available(void);
7 extern __inline__ int32_t metal_atomic_add(metal_atomic_t *a,
9 extern __inline__ int32_t metal_atomic_and(metal_atomic_t *a, int32_t mask);
10 extern __inline__ int32_t metal_atomic_or(metal_atomic_t *a, int32_t mask);
11 extern __inline__ int32_t metal_atomic_swap(metal_atomic_t *a,
13 extern __inline__ int32_t metal_atomic_xor(metal_atomic_t *a, int32_t mask);
14 extern __inline__ int32_t metal_atomic_max(metal_atomic_t *a, int32_t compare);
15 extern __inline__ uint32_t metal_atomic_max_u(metal_atomic_t *a,
17 extern __inline__ int32_t metal_atomic_min(metal_atomic_t *a, int32_t compare);
18 extern __inline__ uint32_t metal_atomic_min_u(metal_atomic_t *a,