Provided by: libzycore-doc_1.5.1-1_all 

NAME
include/Zycore/Defines.h
SYNOPSIS
#include <assert.h> Macros #define ZYAN_MACRO_CONCAT(x, y) x ## y #define ZYAN_MACRO_CONCAT_EXPAND(x, y) ZYAN_MACRO_CONCAT(x, y) #define ZYAN_UNKNOWN_COMPILER #define ZYAN_UNKNOWN_PLATFORM #define ZYAN_USER #define ZYAN_RELEASE #define ZYAN_DEPRECATED #define ZYAN_DLLEXPORT #define ZYAN_DLLIMPORT #define ZYCORE_EXPORT ZYAN_DLLIMPORT #define ZYCORE_NO_EXPORT #define ZYAN_NO_SANITIZE(what) #define ZYAN_INLINE static inline #define ZYAN_NOINLINE #define ZYAN_ASSERT(condition) assert(condition) #define ZYAN_STATIC_ASSERT(x) typedef int ZYAN_MACRO_CONCAT_EXPAND(ZYAN_SASSERT_, __COUNTER__) [(x) ? 1 : -1] #define ZYAN_UNREACHABLE for(;;) #define ZYAN_UNUSED(x) (void)(x) #define ZYAN_FALLTHROUGH #define ZYAN_BITFIELD(x) : x #define ZYAN_REQUIRES_LIBC #define ZYAN_PRINTF_ATTR(format_index, first_to_check) #define ZYAN_WPRINTF_ATTR(format_index, first_to_check) #define ZYAN_ARRAY_LENGTH(a) (sizeof(a) / sizeof((a)[0])) #define ZYAN_MIN(a, b) (((a) < (b)) ? (a) : (b)) #define ZYAN_MAX(a, b) (((a) > (b)) ? (a) : (b)) #define ZYAN_ABS(a) (((a) < 0) ? -(a) : (a)) #define ZYAN_IS_POWER_OF_2(x) (((x) & ((x) - 1)) == 0) #define ZYAN_IS_ALIGNED_TO(x, align) (((x) & ((align) - 1)) == 0) #define ZYAN_ALIGN_UP(x, align) (((x) + (align) - 1) & ~((align) - 1)) #define ZYAN_ALIGN_DOWN(x, align) (((x) - 1) & ~((align) - 1)) #define ZYAN_DIV64(n, divisor) (n /= divisor) #define ZYAN_NEEDS_BIT(n, b) (((unsigned long)(n) >> (b)) > 0) #define ZYAN_BITS_TO_REPRESENT(n)
Detailed Description
General helper and platform detection macros.
Macro Definition Documentation
#define ZYAN_ABS(a) (((a) < 0) ? -(a) : (a)) Returns the absolute value of a. Parameters a The value. Returns The absolute value of a. #define ZYAN_ALIGN_DOWN(x, align) (((x) - 1) & ~((align) - 1)) Aligns the value to the nearest given alignment boundary (by rounding it down). Parameters x The value. align The desired alignment. Returns The aligned value. Note that this macro only works for powers of 2. #define ZYAN_ALIGN_UP(x, align) (((x) + (align) - 1) & ~((align) - 1)) Aligns the value to the nearest given alignment boundary (by rounding it up). Parameters x The value. align The desired alignment. Returns The aligned value. Note that this macro only works for powers of 2. #define ZYAN_ARRAY_LENGTH(a) (sizeof(a) / sizeof((a)[0])) Returns the length (number of elements) of an array. Parameters a The name of the array. Returns The number of elements of the given array. #define ZYAN_ASSERT(condition) assert(condition) Runtime debug assertion. #define ZYAN_BITFIELD(x) : x Declares a bitfield. Parameters x The size (in bits) of the bitfield. #define ZYAN_BITS_TO_REPRESENT(n) Value:.PP ( \ ZYAN_NEEDS_BIT(n, 0) + ZYAN_NEEDS_BIT(n, 1) + \ ZYAN_NEEDS_BIT(n, 2) + ZYAN_NEEDS_BIT(n, 3) + \ ZYAN_NEEDS_BIT(n, 4) + ZYAN_NEEDS_BIT(n, 5) + \ ZYAN_NEEDS_BIT(n, 6) + ZYAN_NEEDS_BIT(n, 7) + \ ZYAN_NEEDS_BIT(n, 8) + ZYAN_NEEDS_BIT(n, 9) + \ ZYAN_NEEDS_BIT(n, 10) + ZYAN_NEEDS_BIT(n, 11) + \ ZYAN_NEEDS_BIT(n, 12) + ZYAN_NEEDS_BIT(n, 13) + \ ZYAN_NEEDS_BIT(n, 14) + ZYAN_NEEDS_BIT(n, 15) + \ ZYAN_NEEDS_BIT(n, 16) + ZYAN_NEEDS_BIT(n, 17) + \ ZYAN_NEEDS_BIT(n, 18) + ZYAN_NEEDS_BIT(n, 19) + \ ZYAN_NEEDS_BIT(n, 20) + ZYAN_NEEDS_BIT(n, 21) + \ ZYAN_NEEDS_BIT(n, 22) + ZYAN_NEEDS_BIT(n, 23) + \ ZYAN_NEEDS_BIT(n, 24) + ZYAN_NEEDS_BIT(n, 25) + \ ZYAN_NEEDS_BIT(n, 26) + ZYAN_NEEDS_BIT(n, 27) + \ ZYAN_NEEDS_BIT(n, 28) + ZYAN_NEEDS_BIT(n, 29) + \ ZYAN_NEEDS_BIT(n, 30) + ZYAN_NEEDS_BIT(n, 31) \ ) #define ZYAN_DIV64(n, divisor) (n /= divisor) Divide the 64bit integer value by the given divisor. Parameters n Variable containing the dividend that will be updated with the result of the division. divisor The divisor. #define ZYAN_FALLTHROUGH Intentional fallthrough. #define ZYAN_IS_ALIGNED_TO(x, align) (((x) & ((align) - 1)) == 0) Checks, if the given value is properly aligned. Note that this macro only works for powers of 2. #define ZYAN_IS_POWER_OF_2(x) (((x) & ((x) - 1)) == 0) Checks, if the given value is a power of 2. Parameters x The value. Returns ZYAN_TRUE, if the given value is a power of 2 or ZYAN_FALSE, if not. Note that this macro always returns ZYAN_TRUE for x == 0. #define ZYAN_MACRO_CONCAT(x, y) x ## y Concatenates two values using the stringify operator (##). Parameters x The first value. y The second value. Returns The combined string of the given values. #define ZYAN_MACRO_CONCAT_EXPAND(x, y) ZYAN_MACRO_CONCAT(x, y) Concatenates two values using the stringify operator (##) and expands the value to be used in another macro. Parameters x The first value. y The second value. Returns The combined string of the given values. #define ZYAN_MAX(a, b) (((a) > (b)) ? (a) : (b)) Returns the bigger value of a or b. Parameters a The first value. b The second value. Returns The bigger value of a or b. #define ZYAN_MIN(a, b) (((a) < (b)) ? (a) : (b)) Returns the smaller value of a or b. Parameters a The first value. b The second value. Returns The smaller value of a or b. #define ZYAN_PRINTF_ATTR(format_index, first_to_check) Decorator for printf-style functions. Parameters format_index The 1-based index of the format string parameter. first_to_check The 1-based index of the format arguments parameter. #define ZYAN_REQUIRES_LIBC Marks functions that require libc (cannot be used with ZYAN_NO_LIBC). #define ZYAN_STATIC_ASSERT(x) typedef int ZYAN_MACRO_CONCAT_EXPAND(ZYAN_SASSERT_, __COUNTER__) [(x) ? 1 : -1] Compiler-time assertion. #define ZYAN_UNREACHABLE for(;;) Marks the current code path as unreachable. #define ZYAN_UNUSED(x) (void)(x) Marks the specified parameter as unused. Parameters x The name of the unused parameter. #define ZYAN_WPRINTF_ATTR(format_index, first_to_check) Decorator for wprintf-style functions. Parameters format_index The 1-based index of the format string parameter. first_to_check The 1-based index of the format arguments parameter. #define ZYCORE_EXPORT ZYAN_DLLIMPORT Symbol is exported in shared library builds. #define ZYCORE_NO_EXPORT Symbol is not exported and for internal use only.
Author
Generated automatically by Doxygen for Zycore from the source code. Zycore Version 1.5.1.0 include/Zycore/Defines.h(3)