1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * Copied from the kernel sources to tools/perf/: 4 * 5 * Generic barrier definitions. 6 * 7 * It should be possible to use these on really simple architectures, 8 * but it serves more as a starting point for new ports. 9 * 10 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 11 * Written by David Howells (dhowells@redhat.com) 12 */ 13 #ifndef __TOOLS_LINUX_ASM_GENERIC_BARRIER_H 14 #define __TOOLS_LINUX_ASM_GENERIC_BARRIER_H 15 16 #ifndef __ASSEMBLY__ 17 18 #include <linux/compiler.h> 19 20 /* 21 * Force strict CPU ordering. And yes, this is required on UP too when we're 22 * talking to devices. 23 * 24 * Fall back to compiler barriers if nothing better is provided. 25 */ 26 27 #ifndef mb 28 #define mb() barrier() 29 #endif 30 31 #ifndef rmb 32 #define rmb() mb() 33 #endif 34 35 #ifndef wmb 36 #define wmb() mb() 37 #endif 38 39 #endif /* !__ASSEMBLY__ */ 40 #endif /* __TOOLS_LINUX_ASM_GENERIC_BARRIER_H */ 41