/* * Copied from the kernel sources to tools/: * * Memory barrier definitions. This is based on information published * in the Processor Abstraction Layer and the System Abstraction Layer * manual. * * Copyright (C) 1998-2003 Hewlett-Packard Co * David Mosberger-Tang <davidm@hpl.hp.com> * Copyright (C) 1999 Asit Mallick <asit.k.mallick@intel.com> * Copyright (C) 1999 Don Dugger <don.dugger@intel.com> */ #ifndef _TOOLS_LINUX_ASM_IA64_BARRIER_H #define _TOOLS_LINUX_ASM_IA64_BARRIER_H #include <linux/compiler.h> /* * Macros to force memory ordering. In these descriptions, "previous" * and "subsequent" refer to program order; "visible" means that all * architecturally visible effects of a memory access have occurred * (at a minimum, this means the memory has been read or written). * * wmb(): Guarantees that all preceding stores to memory- * like regions are visible before any subsequent * stores and that all following stores will be * visible only after all previous stores. * rmb(): Like wmb(), but for reads. * mb(): wmb()/rmb() combo, i.e., all previous memory * accesses are visible before all subsequent * accesses and vice versa. This is also known as * a "fence." * * Note: "mb()" and its variants cannot be used as a fence to order * accesses to memory mapped I/O registers. For that, mf.a needs to * be used. However, we don't want to always use mf.a because (a) * it's (presumably) much slower than mf and (b) mf.a is supported for * sequential memory pages only. */ /* XXX From arch/ia64/include/uapi/asm/gcc_intrin.h */ #define ia64_mf() asm volatile ("mf" ::: "memory") #define mb() ia64_mf() #define rmb() mb() #define wmb() mb() #endif /* _TOOLS_LINUX_ASM_IA64_BARRIER_H */ /net/wireless/genregdb.awk?id=15c2e102412d95af4fe88e5b28b3eba124545bbf'>tree</a><a href='/cgit.cgi/linux/net-next.git/commit/net/wireless/genregdb.awk?id=15c2e102412d95af4fe88e5b28b3eba124545bbf'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/net/wireless/genregdb.awk?id=15c2e102412d95af4fe88e5b28b3eba124545bbf'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/net/wireless/genregdb.awk'> <input type='hidden' name='id' value='15c2e102412d95af4fe88e5b28b3eba124545bbf'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/?id=15c2e102412d95af4fe88e5b28b3eba124545bbf'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/net?id=15c2e102412d95af4fe88e5b28b3eba124545bbf'>net</a>/<a href='/cgit.cgi/linux/net-next.git/log/net/wireless?id=15c2e102412d95af4fe88e5b28b3eba124545bbf'>wireless</a>/<a href='/cgit.cgi/linux/net-next.git/log/net/wireless/genregdb.awk?id=15c2e102412d95af4fe88e5b28b3eba124545bbf'>genregdb.awk</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/net/wireless/genregdb.awk?id=15c2e102412d95af4fe88e5b28b3eba124545bbf&showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>