00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __CORE_MACROS_H_
00025 #define __CORE_MACROS_H_
00026
00027
00028
00029 #if __GNUC__ >= 3
00030 # ifndef __inline
00031 # define __inline inline __attribute__ ((__always_inline__))
00032 # endif
00033 # ifndef __pure
00034 # define __pure __attribute__ ((__pure__))
00035 # endif
00036 # define __const_ __attribute__ ((__const__))
00037 # define __noreturn __attribute__ ((__noreturn__))
00038 # define __malloc __attribute__ ((__malloc__))
00039 # define __must_check __attribute__ ((__warn_unused_result__))
00040 # define __deprecated __attribute__ ((__deprecated__))
00041 # ifndef __used
00042 # define __used __attribute__ ((__used__))
00043 # endif
00044 # ifndef __unused
00045 # define __unused __attribute__ ((__unused__))
00046 # endif
00047 # ifndef __packed
00048 # define __packed __attribute__ ((__packed__))
00049 # endif
00050 # ifndef __aligned
00051 # define __aligned(x) __attribute__ ((__aligned__ (x)))
00052 # endif
00053 # define likely(x) __builtin_expect (!!(x), 1)
00054 # define unlikely(x) __builtin_expect (!!(x), 0)
00055 #else
00056 # ifndef __inline
00057 # define __inline
00058 # endif
00059 # ifndef __pure
00060 # define __pure
00061 # endif
00062 # define __const_
00063 # define __noreturn
00064 # define __malloc
00065 # define __must_check
00066 # define __deprecated
00067 # ifndef __used
00068 # define __used
00069 # endif
00070 # ifndef __unused
00071 # define __unused
00072 # endif
00073 # ifndef __packed
00074 # define __packed
00075 # endif
00076 # ifndef __aligned
00077 # define __aligned(x)
00078 # endif
00079 # define likely(x) (x)
00080 # define unlikely(x) (x)
00081 #endif
00082
00083 #endif