2024-03-26 16:15:02 +00:00
|
|
|
// Enable more performant GPUs on laptops. Does this work into a dll?
|
|
|
|
// int NvOptimusEnablement = 1;
|
|
|
|
// int AmdPowerXpressRequestHighPerformance = 1;
|
|
|
|
|
|
|
|
#if is(linux) && is(tcc) // fixes `tcc: error: undefined symbol '__dso_handle'`
|
|
|
|
int __dso_handle; // compiled with: `tcc demo.c v4k.c -D__STDC_NO_VLA__ -lX11`
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if is(win32) && is(tcc) // fixes `tcc: error: undefined symbol '_InterlockedExchangeAdd'` when compiling with `-m64` flag
|
|
|
|
__CRT_INLINE LONG _InterlockedExchangeAdd(LONG volatile *add, LONG val) {
|
|
|
|
LONG old;
|
|
|
|
do old = *add; while( InterlockedCompareExchange(add, old + val, old) != old );
|
|
|
|
return old;
|
|
|
|
}
|
|
|
|
__CRT_INLINE LONGLONG _InterlockedExchangeAdd64(LONGLONG volatile *add, LONGLONG val) { // 64bit version, for completeness
|
|
|
|
LONGLONG old;
|
|
|
|
do old = *add; while( InterlockedCompareExchange64(add, old + val, old) != old );
|
|
|
|
return old;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ZIG_CC
|
|
|
|
static int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0xffff)); }
|
|
|
|
const struct in6_addr in6addr_any; // = IN6ADDR_ANY_INIT;
|
|
|
|
//static const struct in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
ifdef(retail, AUTORUN {
|
|
|
|
fclose(stderr);
|
|
|
|
fclose(stdout);
|
|
|
|
|
|
|
|
const char* null_stream = ifdef(win32, "nul:", "/dev/null");
|
|
|
|
|
|
|
|
if (!freopen(null_stream, "a", stdout)) PANIC("cannot recreate standard streams");
|
|
|
|
if (!freopen(null_stream, "a", stderr)) PANIC("cannot recreate standard streams");
|
|
|
|
} )
|