1#ifndef __LINUX_COMPILER_H 2#define __LINUX_COMPILER_H 3 4/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented 5 a mechanism by which the user can annotate likely branch directions and 6 expect the blocks to be reordered appropriately. Define __builtin_expect 7 to nothing for earlier compilers. */ 8 9#if __GNUC__ == 2 && __GNUC_MINOR__ < 96 10#define __builtin_expect(x, expected_value) (x) 11#endif 12 13#define likely(x) __builtin_expect((x),1) 14#define unlikely(x) __builtin_expect((x),0) 15 16#if __GNUC__ > 3 17#define __attribute_used__ __attribute((__used__)) 18#elif __GNUC__ == 3 19#if __GNUC_MINOR__ >= 3 20# define __attribute_used__ __attribute__((__used__)) 21#else 22# define __attribute_used__ __attribute__((__unused__)) 23#endif /* __GNUC_MINOR__ >= 3 */ 24#elif __GNUC__ == 2 25#define __attribute_used__ __attribute__((__unused__)) 26#else 27#define __attribute_used__ /* not implemented */ 28#endif /* __GNUC__ */ 29 30#endif /* __LINUX_COMPILER_H */ 31

