uatomic/x86: Remove redundant memory barriers
[urcu.git] / include / urcu / arch / hppa.h
1 // SPDX-FileCopyrightText: 2014 Helge Deller <deller@gmx.de>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4
5 #ifndef _URCU_ARCH_HPPA_H
6 #define _URCU_ARCH_HPPA_H
7
8 /*
9 * arch/hppa.h: definitions for hppa architecture
10 */
11
12 #include <urcu/compiler.h>
13 #include <urcu/config.h>
14 #include <urcu/syscall-compat.h>
15
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19
20 #include <stdlib.h>
21 #include <sys/time.h>
22
23 /*
24 * On Linux, define the membarrier system call number if not yet available in
25 * the system headers.
26 */
27 #if (defined(__linux__) && !defined(__NR_membarrier))
28 #define __NR_membarrier 343
29 #endif
30
31 #define HAS_CAA_GET_CYCLES
32 typedef unsigned long caa_cycles_t;
33
34 static inline caa_cycles_t caa_get_cycles(void)
35 {
36 caa_cycles_t cycles;
37
38 asm volatile("mfctl 16, %0" : "=r" (cycles));
39 return cycles;
40 }
41
42 #ifdef __cplusplus
43 }
44 #endif
45
46 #include <urcu/arch/generic.h>
47
48 #endif /* _URCU_ARCH_HPPA_H */
This page took 0.030838 seconds and 5 git commands to generate.