Go to the documentation of this file.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 _ink_apidefs_h_
00025 #define _ink_apidefs_h_
00026
00027 #define inkliapi
00028 #define inkcoreapi
00029 #define ink_undoc_liapi
00030 #define ink_undoc_coreapi inkcoreapi
00031
00032 #if defined(__GNUC__) || defined(__clang__)
00033 #ifndef likely
00034 #define likely(x) __builtin_expect (!!(x), 1)
00035 #endif
00036 #ifndef unlikely
00037 #define unlikely(x) __builtin_expect (!!(x), 0)
00038 #endif
00039 #else
00040 #ifndef likely
00041 #define likely(x) (x)
00042 #endif
00043 #ifndef unlikely
00044 #define unlikely(x) (x)
00045 #endif
00046 #endif
00047
00048 #if !defined(TS_NORETURN)
00049 #if defined(__GNUC__) || defined(__clang__)
00050 #define TS_NORETURN __attribute__((noreturn))
00051 #else
00052 #define TS_NORETURN
00053 #endif
00054 #endif
00055
00056
00057
00058 #if !defined(TS_PRINTFLIKE)
00059 #if defined(__GNUC__) || defined(__clang__)
00060 #define TS_PRINTFLIKE(fmt, arg) __attribute__((format(printf, fmt, arg)))
00061 #else
00062 #define TS_PRINTFLIKE(fmt, arg)
00063 #endif
00064 #endif
00065
00066 #if !defined(TS_NONNULL)
00067 #if defined(__GNUC__) || defined(__clang__)
00068 #define TS_NONNULL(...) __attribute__((nonnull (__VA_ARGS__)))
00069 #else
00070 #define TS_NONNULL(...)
00071 #endif
00072 #endif
00073
00074 #if !defined(TS_INLINE)
00075 #define TS_INLINE inline
00076 #endif
00077
00078 #endif