Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.8-rc4 50 lines 1.4 kB view raw
1/* Generic barrier definitions, based on MN10300 definitions. 2 * 3 * It should be possible to use these on really simple architectures, 4 * but it serves more as a starting point for new ports. 5 * 6 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 7 * Written by David Howells (dhowells@redhat.com) 8 * 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public Licence 11 * as published by the Free Software Foundation; either version 12 * 2 of the Licence, or (at your option) any later version. 13 */ 14#ifndef __ASM_GENERIC_BARRIER_H 15#define __ASM_GENERIC_BARRIER_H 16 17#ifndef __ASSEMBLY__ 18 19#define nop() asm volatile ("nop") 20 21/* 22 * Force strict CPU ordering. 23 * And yes, this is required on UP too when we're talking 24 * to devices. 25 * 26 * This implementation only contains a compiler barrier. 27 */ 28 29#define mb() asm volatile ("": : :"memory") 30#define rmb() mb() 31#define wmb() asm volatile ("": : :"memory") 32 33#ifdef CONFIG_SMP 34#define smp_mb() mb() 35#define smp_rmb() rmb() 36#define smp_wmb() wmb() 37#else 38#define smp_mb() barrier() 39#define smp_rmb() barrier() 40#define smp_wmb() barrier() 41#endif 42 43#define set_mb(var, value) do { var = value; mb(); } while (0) 44#define set_wmb(var, value) do { var = value; wmb(); } while (0) 45 46#define read_barrier_depends() do {} while (0) 47#define smp_read_barrier_depends() do {} while (0) 48 49#endif /* !__ASSEMBLY__ */ 50#endif /* __ASM_GENERIC_BARRIER_H */