1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 **************************************************************************** 11 ****************************************************************************/ 12 #ifndef _I386_BITOPS_H 13 #define _I386_BITOPS_H 14 15 #ifndef _LINUX_BITOPS_H 16 #error only <linux/bitops.h> can be included directly 17 #endif 18 19 #include <linux/compiler.h> 20 #include <asm/alternative.h> 21 22 #define ADDR (*(volatile long *) addr) 23 24 #define smp_mb__before_clear_bit() barrier() 25 #define smp_mb__after_clear_bit() barrier() 26 #define test_bit(nr,addr) (__builtin_constant_p(nr) ? constant_test_bit((nr),(addr)) : variable_test_bit((nr),(addr))) 27 #undef ADDR 28 29 #include <asm-generic/bitops/fls64.h> 30 #endif 31