Provided by: libzycore-doc_1.5.1-1_all bug

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)