1 /** 2 C Configuration 3 4 Copyright: 5 Copyright © 2005-2009, Sean Kelly. 6 Copyright © 2025, Kitsunebi Games 7 Copyright © 2025, Inochi2D Project 8 9 License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 10 Authors: Sean Kelly, Alex Rønne Petersen, Luna Nielsen 11 */ 12 module nulib.posix.ccfg; 13 14 version(GNU) { 15 import gcc.builtins; 16 17 alias c_long = __builtin_clong; 18 alias c_ulong = __builtin_culong; 19 20 enum __c_long : __builtin_clong; 21 enum __c_ulong : __builtin_culong; 22 23 alias cpp_long = __c_long; 24 alias cpp_ulong = __c_ulong; 25 26 enum __c_longlong : __builtin_clonglong; 27 enum __c_ulonglong : __builtin_culonglong; 28 29 alias cpp_longlong = __c_longlong; 30 alias cpp_ulonglong = __c_ulonglong; 31 } else version(Windows) { 32 enum __c_long : int; 33 enum __c_ulong : uint; 34 35 alias c_long = int; 36 alias c_ulong = uint; 37 38 alias cpp_long = __c_long; 39 alias cpp_ulong = __c_ulong; 40 41 alias cpp_longlong = long; 42 alias cpp_ulonglong = ulong; 43 } else version(Posix) { 44 static if ((void*).sizeof > int.sizeof) { 45 enum __c_longlong : long; 46 enum __c_ulonglong : ulong; 47 48 alias c_long = long; 49 alias c_ulong = ulong; 50 51 alias cpp_long = long; 52 alias cpp_ulong = ulong; 53 54 alias cpp_longlong = __c_longlong; 55 alias cpp_ulonglong = __c_ulonglong; 56 } else { 57 enum __c_long : int; 58 enum __c_ulong : uint; 59 60 alias c_long = int; 61 alias c_ulong = uint; 62 63 alias cpp_long = __c_long; 64 alias cpp_ulong = __c_ulong; 65 66 alias cpp_longlong = long; 67 alias cpp_ulonglong = ulong; 68 } 69 } else version (WASI) { 70 static if ((void*).sizeof > int.sizeof) { 71 enum __c_longlong : long; 72 enum __c_ulonglong : ulong; 73 74 alias c_long = long; 75 alias c_ulong = ulong; 76 77 alias cpp_long = long; 78 alias cpp_ulong = ulong; 79 80 alias cpp_longlong = __c_longlong; 81 alias cpp_ulonglong = __c_ulonglong; 82 } else { 83 enum __c_long : int; 84 enum __c_ulong : uint; 85 86 alias c_long = int; 87 alias c_ulong = uint; 88 89 alias cpp_long = __c_long; 90 alias cpp_ulong = __c_ulong; 91 92 alias cpp_longlong = long; 93 alias cpp_ulonglong = ulong; 94 } 95 }