1#ifndef RUNTIME_PLATFORM_H
2#define RUNTIME_PLATFORM_H
34#if defined(__MWERKS__) && defined(__PPCGEKKO__)
38#ifndef ATTRIBUTE_ALIGN
39#if defined(__MWERKS__) || defined(__GNUC__)
40#define ATTRIBUTE_ALIGN(num) __attribute__((aligned(num)))
41#elif defined(_MSC_VER)
42#define ATTRIBUTE_ALIGN(num)
44#error unknown compiler
49#if defined(__MWERKS__) && !defined(M2CTX)
50#define SECTION_INIT __declspec(section ".init")
57#if defined(__MWERKS__) && !defined(M2CTX)
58#define SECTION_CTORS __declspec(section ".ctors")
65#if defined(__MWERKS__) && !defined(M2CTX)
66#define SECTION_DTORS __declspec(section ".dtors")
72#ifndef ATTRIBUTE_NORETURN
73#if defined(__clang__) || defined(__GNUC__)
74#define ATTRIBUTE_NORETURN __attribute__((noreturn))
76#define ATTRIBUTE_NORETURN
80#ifndef ATTRIBUTE_RESTRICT
81#if defined(__MWERKS__) && !defined(M2CTX)
82#define ATTRIBUTE_RESTRICT __restrict
84#define ATTRIBUTE_RESTRICT
89#define AT_ADDRESS(x) = FIXEDADDR(x)
90#elif defined(__MWERKS__) && !defined(M2CTX)
91#define AT_ADDRESS(x) : (x)
108#define U16_MAX 0xFFFF
109#define U32_MAX 0xFFFFFFFF
111#define S16_MAX 0x7FFF
112#define S32_MAX 0x7FFFFFFF
113#define F32_MAX 3.4028235e38f
115#define SQ(x) ((x) * (x))
116#define MIN(a, b) (((a) < (b)) ? (a) : (b))
117#define MAX(a, b) (((a) > (b)) ? (a) : (b))
120#ifndef _Static_assert
121#define _Static_assert static_assert
125#define STATIC_ASSERT(cond)
126#elif defined(__MWERKS__)
127#define STATIC_ASSERT(cond) \
129 int x[1 - 2 * !(cond)]; \
132#define STATIC_ASSERT(cond) _Static_assert((cond), "(" #cond ") failed")
135#define RETURN_IF(cond) \
142#if defined(__MWERKS__) && !defined(M2CTX)
143#define SDATA __declspec(section ".sdata")
144#define DATA __declspec(section ".data")
145#define WEAK __declspec(weak)
int bool
A signed integer used to contain boolean values.
Definition stdbool.h:8