1 // SPDX-FileCopyrightText: 2009 Paul E. McKenney, IBM Corporation.
2 // SPDX-FileCopyrightText: 2009 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
4 // SPDX-License-Identifier: LGPL-2.1-or-later
6 #ifndef _URCU_ARCH_SPARC64_H
7 #define _URCU_ARCH_SPARC64_H
10 * arch_sparc64.h: trivial definitions for the Sparc64 architecture.
13 #include <urcu/compiler.h>
14 #include <urcu/config.h>
15 #include <urcu/syscall-compat.h>
22 * On Linux, define the membarrier system call number if not yet available in
25 #if (defined(__linux__) && !defined(__NR_membarrier))
26 #define __NR_membarrier 351
29 #define CAA_CACHE_LINE_SIZE 256
32 * Inspired from the Linux kernel. Workaround Spitfire bug #51.
34 #define membar_safe(type) \
35 __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \
40 #define cmm_mb() membar_safe("#LoadLoad | #LoadStore | #StoreStore | #StoreLoad")
41 #define cmm_rmb() membar_safe("#LoadLoad")
42 #define cmm_wmb() membar_safe("#StoreStore")
48 #include <urcu/arch/generic.h>
50 #endif /* _URCU_ARCH_SPARC64_H */
This page took 0.03044 seconds and 4 git commands to generate.