DOKK / manpages / debian 13 / libzycore-doc / Defines.h.3.en
include/Zycore/Defines.h(3) Library Functions Manual include/Zycore/Defines.h(3)

include/Zycore/Defines.h

#include <assert.h>


#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)

General helper and platform detection macros.

Returns the absolute value of a.

Parameters

a The value.

Returns

The absolute value of a.

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.

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.

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.

Runtime debug assertion.

Declares a bitfield.

Parameters

x The size (in bits) of the bitfield.

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) \
)

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.

Intentional fallthrough.

Checks, if the given value is properly aligned.

Note that this macro only works for powers of 2.

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.

Concatenates two values using the stringify operator (##).

Parameters

x The first value.
y The second value.

Returns

The combined string of the given values.

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.

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.

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.

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.

Marks functions that require libc (cannot be used with ZYAN_NO_LIBC).

Compiler-time assertion.

Marks the current code path as unreachable.

Marks the specified parameter as unused.

Parameters

x The name of the unused parameter.

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.

Symbol is exported in shared library builds.

Symbol is not exported and for internal use only.

Generated automatically by Doxygen for Zycore from the source code.

Version 1.5.2.0 Zycore