#ifndef _INTS_H #define _INTS_H #ifdef __cplusplus extern "C" { #endif #include #include #include #define IFUNC_IMPL(name, ver) _impl__ ## name ## __ ## ver #define IFUNC_RESOLVER(name) (*_ifun__ ## name (void)) #define IFUNC_DEF(name, params) name params __attribute__((__ifunc__("_ifun__" #name))) #define _export(kind) __attribute__((visibility(#kind))) #define v_internal _export(internal) #define v_protected _export(protected) #define v_hidden _export(hidden) #define _rng_internal v_internal #define DEF(s, n) typedef s ## int ## n ## _t s ## n #define DEFINT(n) typedef uint ## n ## _t u ## n; \ typedef int ## n ## _t i ## n DEFINT(8); DEFINT(16); DEFINT(32); DEFINT(64); #ifdef __cplusplus #else #include #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" typedef signed __int128 i128; typedef unsigned __int128 u128; #pragma GCC diagnostic pop #endif typedef float f32; typedef double f64; typedef size_t usize; typedef ssize_t isize; typedef bool u1; typedef bool i1; typedef uintptr_t ptr_t; #undef DEFINT #undef DEF #ifdef __cplusplus #define restrict __restrict__ } #endif #endif /* _INTS_H */