1 // SPDX-FileCopyrightText: 2009 Novell, Inc.
3 // SPDX-License-Identifier: MIT
5 #ifndef _URCU_ARCH_S390_H
6 #define _URCU_ARCH_S390_H
9 * Trivial definitions for the S390 architecture based on information from the
10 * Principles of Operation "CPU Serialization" (5-91), "BRANCH ON CONDITION"
11 * (7-25) and "STORE CLOCK" (7-169).
13 * Author: Jan Blunck <jblunck@suse.de>
16 #include <urcu/compiler.h>
17 #include <urcu/config.h>
18 #include <urcu/syscall-compat.h>
25 #define CAA_CACHE_LINE_SIZE 128
27 #define cmm_mb() __asm__ __volatile__("bcr 15,0" : : : "memory")
29 #define HAS_CAA_GET_CYCLES
31 typedef uint64_t caa_cycles_t
;
33 static inline caa_cycles_t
caa_get_cycles (void)
37 __asm__
__volatile__("stck %0" : "=m" (cycles
) : : "cc", "memory" );
43 * On Linux, define the membarrier system call number if not yet available in
46 #if (defined(__linux__) && !defined(__NR_membarrier))
47 #define __NR_membarrier 356
54 #include <urcu/arch/generic.h>
56 #endif /* _URCU_ARCH_S390_H */
This page took 0.031416 seconds and 4 git commands to generate.