Provided by: libzycore-doc_1.5.2-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.2.0 include/Zycore/Defines.h(3)