#ifndef FUNC_DEF_IN
#define FUNC_DEF_IN

// F32         - function available on all 32 bit architectures
// F64         - function available on all 64 bit architectures
// F_X86_ANY   - function available on i386 and x86_64
// F_I386      - function available only on i386
// F_X64       - function available only on x86_64
// F_ARM32     - function available only on arm32
// F_ARM64     - function available only on arm64
// F_ARM_ANY   - function available on 32 and 64 bit arm
// F_NON_I386  - function available on everything but i386
// F_NON_X64   - function available on everything but x86_64
// F_NON_ARM64 - function available on everything but arm64
#if defined(__x86_64__)
#define F64(x) x
#define F_X64(x) x
#define F_X86_ANY(x) x
#define F_X86_NATIVE(x) x
#define F_NON_I386(x) x
#define F_NON_ARM64(x) x
#if defined(__arm64ec__)
#define F_ARM_ANY(x) x
#undef F_X86_NATIVE
#endif
#elif defined(__i386__)
#define F32(x) x
#define F_I386(x) x
#define F_X86_ANY(x) x
#define F_X86_NATIVE(x) x
#define F_NON_X64(x) x
#define F_NON_ARM64(x) x
#elif defined(__arm__)
#define F32(x) x
#define F_ARM32(x) x
#define F_ARM_NATIVE(x) x
#define F_NON_I386(x) x
#define F_NON_X64(x) x
#define F_NON_ARM64(x) x
#elif defined(__aarch64__)
#define F64(x) x
#define F_ARM64(x) x
#define F_ARM_NATIVE(x) x
#define F_NON_I386(x) x
#define F_NON_X64(x) x
#else
#error Unrecognized architecture
#endif

#ifndef F32
#define F32(x)
#endif
#ifndef F64
#define F64(x)
#endif
#ifndef F_X86_ANY
#define F_X86_ANY(x)
#endif
#ifndef F_X86_NATIVE(x)
#define F_X86_NATIVE(x)
#endif
#ifndef F_I386
#define F_I386(x)
#endif
#ifndef F_X64
#define F_X64(x)
#endif
#ifndef F_ARM_NATIVE
#define F_ARM_NATIVE(x)
#endif
#ifndef F_ARM_ANY
#define F_ARM_ANY(x) F_ARM_NATIVE(x)
#endif
#ifndef F_ARM32
#define F_ARM32(x)
#endif
#ifndef F_ARM64
#define F_ARM64(x)
#endif
#ifndef F_NON_I386
#define F_NON_I386(x)
#endif
#ifndef F_NON_X64
#define F_NON_X64(x)
#endif
#ifndef F_NON_ARM64
#define F_NON_ARM64(x)
#endif

#if defined(__i386__)
#define STDCALL_DECORATED_EXPORT(symbol) symbol == _ ## symbol
#define FASTCALL_DECORATED_EXPORT(symbol) symbol == symbol
#endif

#if __SIZEOF_LONG_DOUBLE__ == __SIZEOF_DOUBLE__
#define F_LD64(x) x
#define F_LD80(x)
#else
#define F_LD64(x)
#define F_LD80(x) x
#endif

#endif // FUNC_DEF_IN
