1/* 2 * Copied from the kernel sources to tools/perf/: 3 * 4 * Generic barrier definitions, originally based on MN10300 definitions. 5 * 6 * It should be possible to use these on really simple architectures, 7 * but it serves more as a starting point for new ports. 8 * 9 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 10 * Written by David Howells (dhowells@redhat.com) 11 * 12 * This program is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU General Public Licence 14 * as published by the Free Software Foundation; either version 15 * 2 of the Licence, or (at your option) any later version. 16 */ 17#ifndef __TOOLS_LINUX_ASM_GENERIC_BARRIER_H 18#define __TOOLS_LINUX_ASM_GENERIC_BARRIER_H 19 20#ifndef __ASSEMBLY__ 21 22#include <linux/compiler.h> 23 24/* 25 * Force strict CPU ordering. And yes, this is required on UP too when we're 26 * talking to devices. 27 * 28 * Fall back to compiler barriers if nothing better is provided. 29 */ 30 31#ifndef mb 32#define mb() barrier() 33#endif 34 35#ifndef rmb 36#define rmb() mb() 37#endif 38 39#ifndef wmb 40#define wmb() mb() 41#endif 42 43#endif /* !__ASSEMBLY__ */ 44#endif /* __TOOLS_LINUX_ASM_GENERIC_BARRIER_H */ 45