diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f75814..db75e9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,7 @@ endif () file(COPY src/pi9.h src/pi9_string.h DESTINATION include/pi9) file(COPY src/chck/buffer/buffer.h src/chck/buffer/endianess.h DESTINATION include/chck/buffer) +file(COPY src/chck/macro.h DESTINATION include/chck) file(COPY src/chck/overflow/overflow.h DESTINATION include/chck/overflow) if ("${CMAKE_PROJECT_NAME}" STREQUAL "${PROJECT_NAME}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 27bb0f1..de6f0ef 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(pi9 pi9.c pi9_string.c chck/buffer/buffer.c chck/buffer/buffer.h chck/buffer/endianess.h chck/overflow.h) +add_library(pi9 pi9.c pi9_string.c chck/buffer/buffer.c chck/buffer/buffer.h chck/buffer/endianess.h chck/overflow/overflow.h chck/macro.h) target_link_libraries(pi9 PRIVATE ${CHCK_LIBRARIES}) # Parse soversion version diff --git a/src/chck/macros.h b/src/chck/macros.h new file mode 100644 index 0000000..88762e7 --- /dev/null +++ b/src/chck/macros.h @@ -0,0 +1,20 @@ +#ifndef __chck_macros_h__ +#define __chck_macros_h__ + +#if __GNUC__ +# if !defined(likely) && !defined(unlikely) +# define likely(x) __builtin_expect(!!(x), 1) +# define unlikely(x) __builtin_expect(!!(x), 0) +# endif +# define CHCK_FORMAT(f, x, y) __attribute__((format(f, x, y))) +# define CHCK_MALLOC __attribute__((malloc)) +#else +# if !defined(likely) && !defined(unlikely) +# define likely(x) !!(x) +# define unlikely(x) !!(x) +# endif +# define CHCK_FORMAT(f, x, y) +# define CHCK_MALLOC +#endif + +#endif /* __chck_macros_h__ */