| 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<"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<"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<"log1pf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, |
| |
| FunctionSpec<"log2f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, |
| |
| 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<"expf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, |
| FunctionSpec<"exp2f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, |
| 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<"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<"atanhf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, |
| ] |
| >; |
| |
| 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< |
| "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< |
| "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">, |
| ] |
| >; |
| |
| 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>] |
| >, |
| ] |
| >; |
| |
| let Headers = [ |
| Assert, |
| CType, |
| Errno, |
| Fenv, |
| Math, |
| String, |
| StdIO, |
| StdLib, |
| IntTypes, |
| SetJmp, |
| Signal, |
| Threads, |
| Time, |
| ]; |
| } |