llvm-capstone/libc/spec/stdc.td
2024-01-19 12:04:34 -05:00

1174 lines
38 KiB
TableGen

def StdC : StandardSpec<"stdc"> {
NamedType StructTmType = NamedType<"struct tm">;
PtrType StructTmPtr = PtrType<StructTmType>;
PtrType TimeTTypePtr = PtrType<TimeTType>;
NamedType ClockT = NamedType<"clock_t">;
NamedType DivTType = NamedType<"div_t">;
NamedType LDivTType = NamedType<"ldiv_t">;
NamedType LLDivTType = NamedType<"lldiv_t">;
NamedType JmpBuf = NamedType<"jmp_buf">;
NamedType TssTType = NamedType<"tss_t">;
PtrType TssTPtr = PtrType<TssTType>;
NamedType TssDtorTType = NamedType<"tss_dtor_t">;
HeaderSpec Assert = HeaderSpec<
"assert.h",
[
Macro<"static_assert">,
Macro<"assert">,
],
[], // Types
[], // Enumerations
[]
>;
HeaderSpec CType = HeaderSpec<
"ctype.h",
[], // Macros
[], // Types
[], // Enumerations
[
FunctionSpec<
"isalnum",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"isalpha",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"isblank",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"iscntrl",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"isdigit",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"isgraph",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"islower",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"isprint",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"ispunct",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"isspace",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"isupper",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"isxdigit",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"tolower",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"toupper",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
]
>;
NamedType FEnvT = NamedType<"fenv_t">;
PtrType FEnvTPtr = PtrType<FEnvT>;
ConstType ConstFEnvTPtr = ConstType<FEnvTPtr>;
NamedType FExceptT = NamedType<"fexcept_t">;
PtrType FExceptTPtr = PtrType<FExceptT>;
ConstType ConstFExceptTPtr = ConstType<FExceptTPtr>;
HeaderSpec Fenv = HeaderSpec<
"fenv.h",
[
Macro<"FE_DIVBYZERO">,
Macro<"FE_INEXACT">,
Macro<"FE_INVALID">,
Macro<"FE_OVERFLOW">,
Macro<"FE_UNDERFLOW">,
Macro<"FE_ALL_EXCEPT">,
Macro<"FE_DOWNWARD">,
Macro<"FE_TONEAREST">,
Macro<"FE_TOWARDZERO">,
Macro<"FE_UPWARD">,
Macro<"FE_DFL_ENV">
],
[
NamedType<"fenv_t">,
NamedType<"fexcept_t">,
], // Types
[], // Enumerations
[
FunctionSpec<
"feclearexcept",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"fetestexcept",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"feraiseexcept",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"fesetround",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"fegetround",
RetValSpec<IntType>,
[]
>,
FunctionSpec<
"fegetenv",
RetValSpec<IntType>,
[ArgSpec<FEnvTPtr>]
>,
FunctionSpec<
"fesetenv",
RetValSpec<IntType>,
[ArgSpec<ConstFEnvTPtr>]
>,
FunctionSpec<
"fegetexceptflag",
RetValSpec<IntType>,
[ArgSpec<FExceptTPtr>, ArgSpec<IntType>]
>,
FunctionSpec<
"fesetexceptflag",
RetValSpec<IntType>,
[ArgSpec<ConstFExceptTPtr>, ArgSpec<IntType>]
>,
FunctionSpec<
"feholdexcept",
RetValSpec<IntType>,
[ArgSpec<FEnvTPtr>]
>,
FunctionSpec<
"feupdateenv",
RetValSpec<IntType>,
[ArgSpec<ConstFEnvTPtr>]
>,
]
>;
HeaderSpec String = HeaderSpec<
"string.h",
[
Macro<"NULL">,
],
[
SizeTType,
],
[], // Enumerations
[
FunctionSpec<
"memcpy",
RetValSpec<VoidPtr>,
[ArgSpec<VoidRestrictedPtr>,
ArgSpec<ConstVoidRestrictedPtr>,
ArgSpec<SizeTType>]
>,
FunctionSpec<
"memmove",
RetValSpec<VoidPtr>,
[ArgSpec<VoidPtr>, ArgSpec<ConstVoidPtr>, ArgSpec<SizeTType>]
>,
FunctionSpec<
"memcmp",
RetValSpec<IntType>,
[ArgSpec<ConstVoidPtr>, ArgSpec<ConstVoidPtr>, ArgSpec<SizeTType>]
>,
FunctionSpec<
"memchr",
RetValSpec<VoidPtr>,
[ArgSpec<ConstVoidPtr>, ArgSpec<IntType>, ArgSpec<SizeTType>]
>,
FunctionSpec<
"memset",
RetValSpec<VoidPtr>,
[ArgSpec<VoidPtr>, ArgSpec<IntType>, ArgSpec<SizeTType>]
>,
FunctionSpec<
"strcpy",
RetValSpec<CharPtr>,
[ArgSpec<CharRestrictedPtr>, ArgSpec<ConstCharRestrictedPtr>]
>,
FunctionSpec<
"strncpy",
RetValSpec<CharPtr>,
[ArgSpec<CharRestrictedPtr>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<SizeTType>]
>,
FunctionSpec<
"strcat",
RetValSpec<CharPtr>,
[ArgSpec<CharRestrictedPtr>, ArgSpec<ConstCharRestrictedPtr>]
>,
FunctionSpec<
"strncat",
RetValSpec<CharPtr>,
[ArgSpec<CharPtr>, ArgSpec<ConstCharPtr>, ArgSpec<SizeTType>]
>,
FunctionSpec<
"strcmp",
RetValSpec<IntType>,
[ArgSpec<ConstCharPtr>, ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"strcoll",
RetValSpec<IntType>,
[ArgSpec<ConstCharPtr>, ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"strncmp",
RetValSpec<IntType>,
[ArgSpec<ConstCharPtr>, ArgSpec<ConstCharPtr>, ArgSpec<SizeTType>]
>,
FunctionSpec<
"strxfrm",
RetValSpec<SizeTType>,
[ArgSpec<CharRestrictedPtr>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<SizeTType>]
>,
FunctionSpec<
"strchr",
RetValSpec<CharPtr>,
[ArgSpec<ConstCharPtr>, ArgSpec<IntType>]
>,
FunctionSpec<
"strcspn",
RetValSpec<SizeTType>,
[ArgSpec<ConstCharPtr>, ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"strdup",
RetValSpec<CharPtr>,
[ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"strndup",
RetValSpec<CharPtr>,
[ArgSpec<ConstCharPtr>,ArgSpec<SizeTType>]
>,
FunctionSpec<
"strpbrk",
RetValSpec<CharPtr>,
[ArgSpec<ConstCharPtr>, ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"strrchr",
RetValSpec<CharPtr>,
[ArgSpec<ConstCharPtr>, ArgSpec<IntType>]
>,
FunctionSpec<
"strspn",
RetValSpec<SizeTType>,
[ArgSpec<ConstCharPtr>, ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"strstr",
RetValSpec<CharPtr>,
[ArgSpec<ConstCharPtr>, ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"strtok",
RetValSpec<CharPtr>,
[ArgSpec<CharRestrictedPtr>, ArgSpec<ConstCharRestrictedPtr>]
>,
FunctionSpec<
"strerror",
RetValSpec<CharPtr>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"strlen",
RetValSpec<SizeTType>,
[ArgSpec<ConstCharPtr>]
>,
]
>;
HeaderSpec Math = HeaderSpec<
"math.h",
[
Macro<"MATH_ERRNO">,
Macro<"MATH_ERREXCEPT">,
Macro<"math_errhandling">,
Macro<"HUGE_VAL">,
Macro<"INFINITY">,
Macro<"NAN">,
Macro<"FP_ILOGB0">,
Macro<"FP_ILOGBNAN">,
Macro<"isfinite">,
Macro<"isinf">,
Macro<"isnan">,
],
[
NamedType<"float_t">,
NamedType<"double_t">,
],
[], // Enumerations
[
FunctionSpec<"copysign", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"copysignf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"copysignl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"copysignf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>]>,
FunctionSpec<"ceil", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"ceilf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"ceill", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"fabs", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"fabsf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"fabsl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"fabsf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>]>,
FunctionSpec<"fdim", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"fdimf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"fdiml", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"floor", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"floorf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"floorl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"fmin", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"fminf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"fminl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"fmax", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"fmaxf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"fmaxl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"fma", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"fmaf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"fmod", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"fmodf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"frexp", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<IntPtr>]>,
FunctionSpec<"frexpf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<IntPtr>]>,
FunctionSpec<"frexpl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<IntPtr>]>,
FunctionSpec<"hypot", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"hypotf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"ilogb", RetValSpec<IntType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"ilogbf", RetValSpec<IntType>, [ArgSpec<FloatType>]>,
FunctionSpec<"ilogbl", RetValSpec<IntType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"ldexp", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<IntType>]>,
FunctionSpec<"ldexpf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<IntType>]>,
FunctionSpec<"ldexpl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<IntType>]>,
FunctionSpec<"log10", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"log10f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"log1p", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"log1pf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"log2", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"log2f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"log", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"logf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"logb", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"logbf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"logbl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"modf", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoublePtr>]>,
FunctionSpec<"modff", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatPtr>]>,
FunctionSpec<"modfl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoublePtr>]>,
FunctionSpec<"cos", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"cosf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"sin", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"sinf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"tan", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"tanf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"erff", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"exp", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"expf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"exp2", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"exp2f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"expm1", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"expm1f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"remainderf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"remainder", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"remainderl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"remquof", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>, ArgSpec<IntPtr>]>,
FunctionSpec<"remquo", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>, ArgSpec<IntPtr>]>,
FunctionSpec<"remquol", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>, ArgSpec<IntPtr>]>,
FunctionSpec<"round", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"roundf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"roundl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"lround", RetValSpec<LongType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"lroundf", RetValSpec<LongType>, [ArgSpec<FloatType>]>,
FunctionSpec<"lroundl", RetValSpec<LongType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"llround", RetValSpec<LongLongType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"llroundf", RetValSpec<LongLongType>, [ArgSpec<FloatType>]>,
FunctionSpec<"llroundl", RetValSpec<LongLongType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"rint", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"rintf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"rintl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"lrint", RetValSpec<LongType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"lrintf", RetValSpec<LongType>, [ArgSpec<FloatType>]>,
FunctionSpec<"lrintl", RetValSpec<LongType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"llrint", RetValSpec<LongLongType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"llrintf", RetValSpec<LongLongType>, [ArgSpec<FloatType>]>,
FunctionSpec<"llrintl", RetValSpec<LongLongType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"sqrt", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"sqrtf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"sqrtl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"trunc", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"truncf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"truncl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"nearbyint", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"nearbyintf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"nearbyintl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
FunctionSpec<"nextafterf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"nextafter", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"nextafterl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"nexttowardf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"nexttoward", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"nexttowardl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>,
FunctionSpec<"powf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
FunctionSpec<"pow", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"coshf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"sinhf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"tanhf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"acosf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"asinf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"asin", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"atanf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"acoshf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"asinhf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"atanhf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"scalbn", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<IntType>]>,
FunctionSpec<"scalbnf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<IntType>]>,
FunctionSpec<"scalbnl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<IntType>]>,
FunctionSpec<"nanf", RetValSpec<FloatType>, [ArgSpec<ConstCharPtr>]>,
FunctionSpec<"nan", RetValSpec<DoubleType>, [ArgSpec<ConstCharPtr>]>,
FunctionSpec<"nanl", RetValSpec<LongDoubleType>, [ArgSpec<ConstCharPtr>]>,
]
>;
HeaderSpec StdIO = HeaderSpec<
"stdio.h",
[
Macro<"stdin">,
Macro<"stderr">,
Macro<"stdout">,
Macro<"_IOFBF">,
Macro<"_IOLBF">,
Macro<"_IONBF">,
Macro<"EOF">,
], // Macros
[ // Types
SizeTType,
FILE,
],
[], // Enumerations
[
FunctionSpec<
"clearerr",
RetValSpec<VoidType>,
[ArgSpec<FILEPtr>]
>,
FunctionSpec<
"fclose",
RetValSpec<IntType>,
[ArgSpec<FILEPtr>]
>,
FunctionSpec<
"feof",
RetValSpec<IntType>,
[ArgSpec<FILEPtr>]
>,
FunctionSpec<
"ferror",
RetValSpec<IntType>,
[ArgSpec<FILEPtr>]
>,
FunctionSpec<
"fgetc",
RetValSpec<IntType>,
[ArgSpec<FILEPtr>]
>,
FunctionSpec<
"fgets",
RetValSpec<CharPtr>,
[
ArgSpec<CharRestrictedPtr>,
ArgSpec<IntType>,
ArgSpec<FILERestrictedPtr>,
]
>,
FunctionSpec<
"fflush",
RetValSpec<IntType>,
[ArgSpec<FILEPtr>]
>,
FunctionSpec<
"fopen",
RetValSpec<FILEPtr>,
[ArgSpec<ConstCharPtr>,
ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"fputc",
RetValSpec<IntType>,
[ArgSpec<IntType>,
ArgSpec<FILEPtr>]
>,
FunctionSpec<
"ftell",
RetValSpec<LongType>,
[ArgSpec<FILEPtr>]
>,
FunctionSpec<
"getc",
RetValSpec<IntType>,
[ArgSpec<FILEPtr>]
>,
FunctionSpec<
"getchar",
RetValSpec<IntType>,
[ArgSpec<VoidType>]
>,
FunctionSpec<
"putc",
RetValSpec<IntType>,
[ArgSpec<IntType>,
ArgSpec<FILEPtr>]
>,
FunctionSpec<
"putchar",
RetValSpec<IntType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"fputs",
RetValSpec<IntType>,
[ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<FILERestrictedPtr>]
>,
FunctionSpec<
"puts",
RetValSpec<IntType>,
[ArgSpec<ConstCharRestrictedPtr>]
>,
FunctionSpec<
"fread",
RetValSpec<SizeTType>,
[ArgSpec<VoidRestrictedPtr>,
ArgSpec<SizeTType>,
ArgSpec<SizeTType>,
ArgSpec<FILERestrictedPtr>]
>,
FunctionSpec<
"fseek",
RetValSpec<IntType>,
[ArgSpec<FILEPtr>,
ArgSpec<LongType>,
ArgSpec<IntType>]
>,
FunctionSpec<
"fwrite",
RetValSpec<SizeTType>,
[ArgSpec<ConstVoidRestrictedPtr>,
ArgSpec<SizeTType>,
ArgSpec<SizeTType>,
ArgSpec<FILERestrictedPtr>]
>,
FunctionSpec<
"remove",
RetValSpec<IntType>,
[ArgSpec<ConstCharPtr>]
>,
FunctionSpec<
"setbuf",
RetValSpec<VoidType>,
[ArgSpec<FILERestrictedPtr>, ArgSpec<CharRestrictedPtr>]
>,
FunctionSpec<
"setvbuf",
RetValSpec<IntType>,
[ArgSpec<FILERestrictedPtr>, ArgSpec<CharRestrictedPtr>, ArgSpec<IntType>, ArgSpec<SizeTType>]
>,
FunctionSpec<
"sscanf",
RetValSpec<IntType>,
[ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VarArgType>]
>,
FunctionSpec<
"scanf",
RetValSpec<IntType>,
[ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VarArgType>]
>,
FunctionSpec<
"fscanf",
RetValSpec<IntType>,
[ArgSpec<FILERestrictedPtr>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VarArgType>]
>,
FunctionSpec<
"sprintf",
RetValSpec<IntType>,
[ArgSpec<CharRestrictedPtr>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VarArgType>]
>,
FunctionSpec<
"snprintf",
RetValSpec<IntType>,
[ArgSpec<CharRestrictedPtr>,
ArgSpec<SizeTType>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VarArgType>]
>,
FunctionSpec<
"printf",
RetValSpec<IntType>,
[ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VarArgType>]
>,
FunctionSpec<
"fprintf",
RetValSpec<IntType>,
[ArgSpec<FILERestrictedPtr>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VarArgType>]
>,
FunctionSpec<
"vsprintf",
RetValSpec<IntType>,
[ArgSpec<CharRestrictedPtr>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VaListType>]
>,
FunctionSpec<
"vsnprintf",
RetValSpec<IntType>,
[ArgSpec<CharRestrictedPtr>,
ArgSpec<SizeTType>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VaListType>]
>,
FunctionSpec<
"vprintf",
RetValSpec<IntType>,
[ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VaListType>]
>,
FunctionSpec<
"vfprintf",
RetValSpec<IntType>,
[ArgSpec<FILERestrictedPtr>,
ArgSpec<ConstCharRestrictedPtr>,
ArgSpec<VaListType>]
>,
FunctionSpec<
"ungetc",
RetValSpec<IntType>,
[ArgSpec<IntType>, ArgSpec<FILEPtr>]
>,
],
[
ObjectSpec<
"stdin",
"FILE *"
>,
ObjectSpec<
"stdout",
"FILE *"
>,
ObjectSpec<
"stderr",
"FILE *"
>,
]
>;
HeaderSpec StdLib = HeaderSpec<
"stdlib.h",
[], // Macros
[
DivTType,
LDivTType,
LLDivTType,
SizeTType,
BSearchCompareT,
QSortCompareT,
AtexitHandlerT,
], // Types
[], // Enumerations
[
FunctionSpec<"abort", RetValSpec<NoReturn>, [ArgSpec<VoidType>]>,
FunctionSpec<"bsearch", RetValSpec<VoidPtr>, [ArgSpec<ConstVoidPtr>, ArgSpec<ConstVoidPtr>, ArgSpec<SizeTType>, ArgSpec<SizeTType>, ArgSpec<BSearchCompareT>]>,
FunctionSpec<"abs", RetValSpec<IntType>, [ArgSpec<IntType>]>,
FunctionSpec<"labs", RetValSpec<LongType>, [ArgSpec<LongType>]>,
FunctionSpec<"llabs", RetValSpec<LongLongType>, [ArgSpec<LongLongType>]>,
FunctionSpec<"atof", RetValSpec<DoubleType>, [ArgSpec<ConstCharRestrictedPtr>]>,
FunctionSpec<"atoi", RetValSpec<IntType>, [ArgSpec<ConstCharPtr>]>,
FunctionSpec<"atol", RetValSpec<LongType>, [ArgSpec<ConstCharPtr>]>,
FunctionSpec<"atoll", RetValSpec<LongLongType>, [ArgSpec<ConstCharPtr>]>,
FunctionSpec<"div", RetValSpec<DivTType>, [ArgSpec<IntType>, ArgSpec<IntType>]>,
FunctionSpec<"ldiv", RetValSpec<LDivTType>, [ArgSpec<LongType>, ArgSpec<LongType>]>,
FunctionSpec<"lldiv", RetValSpec<LLDivTType>, [ArgSpec<LongLongType>, ArgSpec<LongLongType>]>,
FunctionSpec<"qsort", RetValSpec<VoidType>, [ArgSpec<VoidPtr>, ArgSpec<SizeTType>, ArgSpec<SizeTType>, ArgSpec<QSortCompareT>]>,
FunctionSpec<"rand", RetValSpec<IntType>, [ArgSpec<VoidType>]>,
FunctionSpec<"srand", RetValSpec<VoidType>, [ArgSpec<UnsignedIntType>]>,
FunctionSpec<"strtof", RetValSpec<FloatType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>]>,
FunctionSpec<"strtod", RetValSpec<DoubleType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>]>,
FunctionSpec<"strtold", RetValSpec<LongDoubleType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>]>,
FunctionSpec<"strtol", RetValSpec<LongType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>, ArgSpec<IntType>]>,
FunctionSpec<"strtoll", RetValSpec<LongLongType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>, ArgSpec<IntType>]>,
FunctionSpec<"strtoul", RetValSpec<UnsignedLongType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>, ArgSpec<IntType>]>,
FunctionSpec<"strtoull", RetValSpec<UnsignedLongLongType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>, ArgSpec<IntType>]>,
FunctionSpec<"malloc", RetValSpec<VoidPtr>, [ArgSpec<SizeTType>]>,
FunctionSpec<"calloc", RetValSpec<VoidPtr>, [ArgSpec<SizeTType>, ArgSpec<SizeTType>]>,
FunctionSpec<"realloc", RetValSpec<VoidPtr>, [ArgSpec<VoidPtr>, ArgSpec<SizeTType>]>,
FunctionSpec<"aligned_alloc", RetValSpec<VoidPtr>, [ArgSpec<SizeTType>, ArgSpec<SizeTType>]>,
FunctionSpec<"free", RetValSpec<VoidType>, [ArgSpec<VoidPtr>]>,
FunctionSpec<"_Exit", RetValSpec<NoReturn>, [ArgSpec<IntType>]>,
FunctionSpec<"exit", RetValSpec<NoReturn>, [ArgSpec<IntType>]>,
FunctionSpec<"atexit", RetValSpec<IntType>, [ArgSpec<AtexitHandlerT>]>,
]
>;
NamedType IMaxDivTType = NamedType<"imaxdiv_t">;
HeaderSpec IntTypes = HeaderSpec<
"inttypes.h",
[], // Macros
[
IMaxDivTType,
], // Types
[], // Enumerations
[
FunctionSpec<"imaxabs", RetValSpec<IntMaxTType>, [ArgSpec<IntMaxTType>]>,
FunctionSpec<"imaxdiv", RetValSpec<IMaxDivTType>, [ArgSpec<IntMaxTType>, ArgSpec<IntMaxTType>]>,
FunctionSpec<"strtoimax", RetValSpec<IntMaxTType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>, ArgSpec<IntType>]>,
FunctionSpec<"strtoumax", RetValSpec<UIntMaxTType>, [ArgSpec<ConstCharRestrictedPtr>, ArgSpec<CharRestrictedPtrPtr>, ArgSpec<IntType>]>,
]
>;
HeaderSpec Errno = HeaderSpec<
"errno.h",
[
Macro<"errno">,
Macro<"EDOM">,
Macro<"EILSEQ">,
Macro<"ERANGE">,
]
>;
HeaderSpec Float = HeaderSpec<
"float.h",
[
Macro<"FLT_MANT_DIG">,
Macro<"DBL_MANT_DIG">,
Macro<"LDBL_MANT_DIG">,
]
>;
NamedType SigAtomicT = NamedType<"sig_atomic_t">;
HeaderSpec Signal = HeaderSpec<
"signal.h",
[
Macro<"SIG_BLOCK">,
Macro<"SIG_UNBLOCK">,
Macro<"SIG_SETMASK">,
Macro<"SIGABRT">,
Macro<"SIGFPE">,
Macro<"SIGILL">,
Macro<"SIGINT">,
Macro<"SIGSEGV">,
Macro<"SIGTERM">
],
[
SizeTType,
SigAtomicT,
SigHandlerT,
],
[], // Enumerations
[
FunctionSpec<"raise", RetValSpec<IntType>, [ArgSpec<IntType>]>,
FunctionSpec<
"signal",
RetValSpec<SigHandlerT>,
[ArgSpec<IntType>, ArgSpec<SigHandlerT>]
>,
]
>;
HeaderSpec Threads = HeaderSpec<
"threads.h",
[
Macro<"ONCE_FLAG_INIT">,
],
[
OnceFlagType,
CallOnceFuncType,
CndTType,
MtxTType,
ThrdStartTType,
ThrdTType,
TssTType,
TssDtorTType,
],
[
EnumeratedNameValue<"mtx_plain">,
EnumeratedNameValue<"mtx_recursive">,
EnumeratedNameValue<"mtx_timed">,
EnumeratedNameValue<"thrd_timedout">,
EnumeratedNameValue<"thrd_success">,
EnumeratedNameValue<"thrd_busy">,
EnumeratedNameValue<"thrd_error">,
EnumeratedNameValue<"thrd_nomem">,
],
[
FunctionSpec<
"call_once",
RetValSpec<VoidType>,
[
ArgSpec<OnceFlagTypePtr>,
ArgSpec<CallOnceFuncType>,
]
>,
FunctionSpec<
"cnd_broadcast",
RetValSpec<IntType>,
[
ArgSpec<CndTTypePtr>,
]
>,
FunctionSpec<
"cnd_destroy",
RetValSpec<VoidType>,
[
ArgSpec<CndTTypePtr>,
]
>,
FunctionSpec<
"cnd_init",
RetValSpec<IntType>,
[
ArgSpec<CndTTypePtr>,
]
>,
FunctionSpec<
"cnd_signal",
RetValSpec<IntType>,
[
ArgSpec<CndTTypePtr>,
]
>,
FunctionSpec<
"cnd_wait",
RetValSpec<IntType>,
[
ArgSpec<CndTTypePtr>,
ArgSpec<MtxTTypePtr>,
]
>,
FunctionSpec<
"mtx_init",
RetValSpec<IntType>,
[
ArgSpec<MtxTTypePtr>,
ArgSpec<IntType>,
]
>,
FunctionSpec<
"mtx_destroy",
RetValSpec<IntType>,
[
ArgSpec<VoidType>,
]
>,
FunctionSpec<
"mtx_lock",
RetValSpec<IntType>,
[
ArgSpec<MtxTTypePtr>,
]
>,
FunctionSpec<
"mtx_unlock",
RetValSpec<IntType>,
[
ArgSpec<MtxTTypePtr>,
]
>,
FunctionSpec<
"thrd_create",
RetValSpec<IntType>,
[
ArgSpec<ThrdTTypePtr>,
ArgSpec<ThrdStartTType>,
ArgSpec<VoidPtr>,
]
>,
FunctionSpec<
"thrd_join",
RetValSpec<IntType>,
[
ArgSpec<ThrdTType>,
ArgSpec<IntPtr>,
]
>,
FunctionSpec<
"thrd_detach",
RetValSpec<IntType>,
[ArgSpec<ThrdTType>]
>,
FunctionSpec<
"thrd_current",
RetValSpec<ThrdTType>,
[ArgSpec<VoidType>]
>,
FunctionSpec<
"thrd_equal",
RetValSpec<IntType>,
[ArgSpec<ThrdTType>, ArgSpec<ThrdTType>]
>,
FunctionSpec<
"thrd_exit",
RetValSpec<VoidType>,
[ArgSpec<IntType>]
>,
FunctionSpec<
"tss_create",
RetValSpec<IntType>,
[ArgSpec<TssTPtr>, ArgSpec<TssDtorTType>]
>,
FunctionSpec<
"tss_delete",
RetValSpec<IntType>,
[ArgSpec<TssTType>]
>,
FunctionSpec<
"tss_get",
RetValSpec<VoidPtr>,
[ArgSpec<TssTType>]
>,
FunctionSpec<
"tss_set",
RetValSpec<IntType>,
[ArgSpec<TssTType>, ArgSpec<VoidPtr>]
>,
]
>;
HeaderSpec Time = HeaderSpec<
"time.h",
[], // Macros
[ // Types
ClockT,
StructTmType,
TimeTType,
],
[], // Enumerations
[
FunctionSpec<
"asctime",
RetValSpec<CharPtr>,
[ArgSpec<StructTmPtr>]
>,
FunctionSpec<
"asctime_r",
RetValSpec<CharPtr>,
[
ArgSpec<StructTmPtr>,
ArgSpec<CharPtr>,
]
>,
FunctionSpec<
"clock",
RetValSpec<ClockT>,
[ArgSpec<VoidType>]
>,
FunctionSpec<
"difftime",
RetValSpec<DoubleType>,
[
ArgSpec<TimeTType>,
ArgSpec<TimeTType>,
]
>,
FunctionSpec<
"gmtime",
RetValSpec<StructTmPtr>,
[ArgSpec<TimeTTypePtr>]
>,
FunctionSpec<
"gmtime_r",
RetValSpec<StructTmPtr>,
[
ArgSpec<TimeTTypePtr>,
ArgSpec<StructTmPtr>,
]
>,
FunctionSpec<
"mktime",
RetValSpec<TimeTType>,
[ArgSpec<StructTmPtr>]
>,
FunctionSpec<
"time",
RetValSpec<TimeTType>,
[ArgSpec<TimeTTypePtr>]
>,
]
>;
HeaderSpec SetJmp = HeaderSpec<
"setjmp.h",
[], // Macros
[JmpBuf],
[], // Enumerations
[
FunctionSpec<
"longjmp",
RetValSpec<NoReturn>,
[ArgSpec<JmpBuf>, ArgSpec<IntType>]
>,
FunctionSpec<
"setjmp",
RetValSpec<IntType>,
[ArgSpec<JmpBuf>]
>,
FunctionSpec<
"longjmp",
RetValSpec<VoidType>,
[ArgSpec<JmpBuf>, ArgSpec<IntType>]
>,
]
>;
HeaderSpec WChar = HeaderSpec<
"wchar.h",
[ // Macros
Macro<"WEOF">,
],
[ //Types
SizeTType,
WIntType,
WCharType,
],
[], // Enumerations
[
FunctionSpec<
"wctob",
RetValSpec<IntType>,
[ArgSpec<WIntType>]
>,
]
>;
let Headers = [
Assert,
CType,
Errno,
Fenv,
Float,
Math,
String,
StdIO,
StdLib,
IntTypes,
SetJmp,
Signal,
Threads,
Time,
WChar,
];
}