/* automatically generated by clay-bindgen */

alias __int128_t = Int128;

alias __uint128_t = UInt128;

record Struct___va_list_tag (
    gp_offset : UInt,
    fp_offset : UInt,
    overflow_arg_area : OpaquePointer,
    reg_save_area : OpaquePointer,
);

alias __va_list_tag = Struct___va_list_tag;

alias __builtin_va_list = Array[__va_list_tag, 1];

alias __int8_t = CChar;

alias __uint8_t = CUChar;

alias __int16_t = Short;

alias __uint16_t = UShort;

alias __int32_t = Int;

alias __uint32_t = UInt;

alias __int64_t = CLong;

alias __uint64_t = CULong;

alias __clock_t = __int32_t;

alias __cpumask_t = UInt;

alias __critical_t = __int64_t;

alias __double_t = Double;

alias __float_t = Float;

alias __intfptr_t = __int64_t;

alias __intmax_t = __int64_t;

alias __intptr_t = __int64_t;

alias __int_fast8_t = __int32_t;

alias __int_fast16_t = __int32_t;

alias __int_fast32_t = __int32_t;

alias __int_fast64_t = __int64_t;

alias __int_least8_t = __int8_t;

alias __int_least16_t = __int16_t;

alias __int_least32_t = __int32_t;

alias __int_least64_t = __int64_t;

alias __ptrdiff_t = __int64_t;

alias __register_t = __int64_t;

alias __segsz_t = __int64_t;

alias __size_t = __uint64_t;

alias __ssize_t = __int64_t;

alias __time_t = __int64_t;

alias __uintfptr_t = __uint64_t;

alias __uintmax_t = __uint64_t;

alias __uintptr_t = __uint64_t;

alias __uint_fast8_t = __uint32_t;

alias __uint_fast16_t = __uint32_t;

alias __uint_fast32_t = __uint32_t;

alias __uint_fast64_t = __uint64_t;

alias __uint_least8_t = __uint8_t;

alias __uint_least16_t = __uint16_t;

alias __uint_least32_t = __uint32_t;

alias __uint_least64_t = __uint64_t;

alias __u_register_t = __uint64_t;

alias __vm_offset_t = __uint64_t;

alias __vm_ooffset_t = __int64_t;

alias __vm_paddr_t = __uint64_t;

alias __vm_pindex_t = __uint64_t;

alias __vm_size_t = __uint64_t;

alias __va_list = __builtin_va_list;

alias __gnuc_va_list = __va_list;

alias __blksize_t = __uint32_t;

alias __blkcnt_t = __int64_t;

alias __clockid_t = __int32_t;

alias __fflags_t = __uint32_t;

alias __fsblkcnt_t = __uint64_t;

alias __fsfilcnt_t = __uint64_t;

alias __gid_t = __uint32_t;

alias __id_t = __int64_t;

alias __ino_t = __uint32_t;

alias __key_t = CLong;

alias __lwpid_t = __int32_t;

alias __mode_t = __uint16_t;

alias __accmode_t = Int;

alias __nl_item = Int;

alias __nlink_t = __uint16_t;

alias __off_t = __int64_t;

alias __pid_t = __int32_t;

alias __rlim_t = __int64_t;

alias __sa_family_t = __uint8_t;

alias __socklen_t = __uint32_t;

alias __suseconds_t = CLong;

alias Struct___timer = Opaque;

alias __timer_t = Pointer[Struct___timer];

alias Struct___mq = Opaque;

alias __mqd_t = Pointer[Struct___mq];

alias __uid_t = __uint32_t;

alias __useconds_t = UInt;

alias __cpuwhich_t = Int;

alias __cpulevel_t = Int;

alias __cpusetid_t = Int;

alias __ct_rune_t = Int;

alias __rune_t = __ct_rune_t;

alias __wchar_t = __ct_rune_t;

alias __wint_t = __ct_rune_t;

alias __dev_t = __uint32_t;

alias __fixpt_t = __uint32_t;

alias Union_Unnamed1 = Union[
    /* __mbstate8 */ Array[CChar, 128],
    /* _mbstateL */ __int64_t,
];

alias __mbstate_t = Union_Unnamed1;

alias fpos_t = __off_t;

alias size_t = __size_t;

alias off_t = __off_t;

alias ssize_t = __ssize_t;

alias va_list = __va_list;

record Struct___sbuf (
    _base : Pointer[CUChar],
    _size : Int,
);

record Struct___sFILE (
    _p : Pointer[CUChar],
    _r : Int,
    _w : Int,
    _flags : Short,
    _file : Short,
    _bf : Struct___sbuf,
    _lbfsize : Int,
    _cookie : OpaquePointer,
    _close : CCodePointer[[OpaquePointer],[Int]],
    _read : CCodePointer[[OpaquePointer, Pointer[CChar], Int],[Int]],
    _seek : CCodePointer[[OpaquePointer, fpos_t, Int],[fpos_t]],
    _write : CCodePointer[[OpaquePointer, Pointer[CChar], Int],[Int]],
    _ub : Struct___sbuf,
    _up : Pointer[CUChar],
    _ur : Int,
    _ubuf : Array[CUChar, 3],
    _nbuf : Array[CUChar, 1],
    _lb : Struct___sbuf,
    _blksize : Int,
    _offset : fpos_t,
    _fl_mutex : Pointer[Struct_pthread_mutex],
    _fl_owner : Pointer[Struct_pthread],
    _fl_count : Int,
    _orientation : Int,
    _mbstate : __mbstate_t,
);

alias Struct_pthread_mutex = Opaque;

alias Struct_pthread = Opaque;

alias FILE = Struct___sFILE;

external __stdinp : Pointer[FILE];

external __stdoutp : Pointer[FILE];

external __stderrp : Pointer[FILE];

external (cdecl) clearerr(arg0:Pointer[FILE]) : ;

external (cdecl) fclose(arg0:Pointer[FILE]) : Int;

external (cdecl) feof(arg0:Pointer[FILE]) : Int;

external (cdecl) ferror(arg0:Pointer[FILE]) : Int;

external (cdecl) fflush(arg0:Pointer[FILE]) : Int;

external (cdecl) fgetc(arg0:Pointer[FILE]) : Int;

external (cdecl) fgetpos(arg0:Pointer[FILE], arg1:Pointer[fpos_t]) : Int;

external (cdecl) fgets(arg0:Pointer[CChar], arg1:Int, arg2:Pointer[FILE]) : Pointer[CChar];

external (cdecl) fopen(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) fprintf(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) fputc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) fputs(arg0:Pointer[CChar], arg1:Pointer[FILE]) : Int;

external (cdecl) fread(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) freopen(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[FILE]) : Pointer[FILE];

external (cdecl) fscanf(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) fseek(arg0:Pointer[FILE], arg1:CLong, arg2:Int) : Int;

external (cdecl) fsetpos(arg0:Pointer[FILE], arg1:Pointer[fpos_t]) : Int;

external (cdecl) ftell(arg0:Pointer[FILE]) : CLong;

external (cdecl) fwrite(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) getc(arg0:Pointer[FILE]) : Int;

external (cdecl) getchar() : Int;

external (cdecl) gets(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) perror(arg0:Pointer[CChar]) : ;

external (cdecl) printf(arg0:Pointer[CChar], ..) : Int;

external (cdecl) putc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) putchar(arg0:Int) : Int;

external (cdecl) puts(arg0:Pointer[CChar]) : Int;

external (cdecl) remove(arg0:Pointer[CChar]) : Int;

external (cdecl) rename(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) rewind(arg0:Pointer[FILE]) : ;

external (cdecl) scanf(arg0:Pointer[CChar], ..) : Int;

external (cdecl) setbuf(arg0:Pointer[FILE], arg1:Pointer[CChar]) : ;

external (cdecl) setvbuf(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:Int, arg3:size_t) : Int;

external (cdecl) sprintf(arg0:Pointer[CChar], arg1:Pointer[CChar], ..) : Int;

external (cdecl) sscanf(arg0:Pointer[CChar], arg1:Pointer[CChar], ..) : Int;

external (cdecl) tmpfile() : Pointer[FILE];

external (cdecl) tmpnam(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) ungetc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) vfprintf(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:Pointer[__va_list_tag]) : Int;

external (cdecl) vprintf(arg0:Pointer[CChar], arg1:Pointer[__va_list_tag]) : Int;

external (cdecl) vsprintf(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[__va_list_tag]) : Int;

external (cdecl) snprintf(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], ..) : Int;

external (cdecl) vfscanf(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:Pointer[__va_list_tag]) : Int;

external (cdecl) vscanf(arg0:Pointer[CChar], arg1:Pointer[__va_list_tag]) : Int;

external (cdecl) vsnprintf(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:Pointer[__va_list_tag]) : Int;

external (cdecl) vsscanf(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[__va_list_tag]) : Int;

external (cdecl) ctermid(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) fdopen(arg0:Int, arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) fileno(arg0:Pointer[FILE]) : Int;

external (cdecl) pclose(arg0:Pointer[FILE]) : Int;

external (cdecl) popen(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) ftrylockfile(arg0:Pointer[FILE]) : Int;

external (cdecl) flockfile(arg0:Pointer[FILE]) : ;

external (cdecl) funlockfile(arg0:Pointer[FILE]) : ;

external (cdecl) getc_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) getchar_unlocked() : Int;

external (cdecl) putc_unlocked(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) putchar_unlocked(arg0:Int) : Int;

external (cdecl) clearerr_unlocked(arg0:Pointer[FILE]) : ;

external (cdecl) feof_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) ferror_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) fileno_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) fseeko(arg0:Pointer[FILE], arg1:__off_t, arg2:Int) : Int;

external (cdecl) ftello(arg0:Pointer[FILE]) : __off_t;

external (cdecl) getw(arg0:Pointer[FILE]) : Int;

external (cdecl) putw(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) tempnam(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) getdelim(arg0:Pointer[Pointer[CChar]], arg1:Pointer[size_t], arg2:Int, arg3:Pointer[FILE]) : ssize_t;

external (cdecl) renameat(arg0:Int, arg1:Pointer[CChar], arg2:Int, arg3:Pointer[CChar]) : Int;

external (cdecl) vdprintf(arg0:Int, arg1:Pointer[CChar], arg2:Pointer[__va_list_tag]) : Int;

external (cdecl) asprintf(arg0:Pointer[Pointer[CChar]], arg1:Pointer[CChar], ..) : Int;

external (cdecl) ctermid_r(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) fcloseall() : ;

external (cdecl) fgetln(arg0:Pointer[FILE], arg1:Pointer[size_t]) : Pointer[CChar];

external (cdecl) fmtcheck(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) fpurge(arg0:Pointer[FILE]) : Int;

external (cdecl) setbuffer(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:Int) : ;

external (cdecl) setlinebuf(arg0:Pointer[FILE]) : Int;

external (cdecl) vasprintf(arg0:Pointer[Pointer[CChar]], arg1:Pointer[CChar], arg2:Pointer[__va_list_tag]) : Int;

external sys_nerr : Int;

external sys_errlist : Opaque /* unknown NoDeclFound  */;

external (cdecl) funopen(arg0:OpaquePointer, arg1:CCodePointer[[OpaquePointer, Pointer[CChar], Int],[Int]], arg2:CCodePointer[[OpaquePointer, Pointer[CChar], Int],[Int]], arg3:CCodePointer[[OpaquePointer, fpos_t, Int],[fpos_t]], arg4:CCodePointer[[OpaquePointer],[Int]]) : Pointer[FILE];

external (cdecl) ftruncate(arg0:Int, arg1:__off_t) : Int;

external (cdecl) lseek(arg0:Int, arg1:__off_t, arg2:Int) : __off_t;

external (cdecl) mmap(arg0:OpaquePointer, arg1:size_t, arg2:Int, arg3:Int, arg4:Int, arg5:__off_t) : OpaquePointer;

external (cdecl) truncate(arg0:Pointer[CChar], arg1:__off_t) : Int;

external (cdecl) __srget(arg0:Pointer[FILE]) : Int;

external (cdecl) __swbuf(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) __sputc(arg0:Int, arg1:Pointer[FILE]) : Int;

external __isthreaded : Int;

alias rune_t = __rune_t;

alias wchar_t = __wchar_t;

record Struct_Unnamed2 (
    quot : Int,
    rem : Int,
);

alias div_t = Struct_Unnamed2;

record Struct_Unnamed3 (
    quot : CLong,
    rem : CLong,
);

alias ldiv_t = Struct_Unnamed3;

external __mb_cur_max : Int;

external (cdecl) abort() : ;

external (cdecl) abs(arg0:Int) : Int;

external (cdecl) atexit(arg0:CCodePointer[[],[]]) : Int;

external (cdecl) atof(arg0:Pointer[CChar]) : Double;

external (cdecl) atoi(arg0:Pointer[CChar]) : Int;

external (cdecl) atol(arg0:Pointer[CChar]) : CLong;

external (cdecl) bsearch(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t, arg3:size_t, arg4:CCodePointer[[OpaquePointer, OpaquePointer],[Int]]) : OpaquePointer;

external (cdecl) calloc(arg0:size_t, arg1:size_t) : OpaquePointer;

external (cdecl) div(arg0:Int, arg1:Int) : div_t;

external (cdecl) exit(arg0:Int) : ;

external (cdecl) free(arg0:OpaquePointer) : ;

external (cdecl) getenv(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) labs(arg0:CLong) : CLong;

external (cdecl) ldiv(arg0:CLong, arg1:CLong) : ldiv_t;

external (cdecl) malloc(arg0:size_t) : OpaquePointer;

external (cdecl) mblen(arg0:Pointer[CChar], arg1:size_t) : Int;

external (cdecl) mbstowcs(arg0:Pointer[wchar_t], arg1:Pointer[CChar], arg2:size_t) : size_t;

external (cdecl) mbtowc(arg0:Pointer[wchar_t], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) qsort(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:CCodePointer[[OpaquePointer, OpaquePointer],[Int]]) : ;

external (cdecl) rand() : Int;

external (cdecl) realloc(arg0:OpaquePointer, arg1:size_t) : OpaquePointer;

external (cdecl) srand(arg0:UInt) : ;

external (cdecl) strtod(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]]) : Double;

external (cdecl) strtof(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]]) : Float;

external (cdecl) strtol(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : CLong;

external (cdecl) strtold(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]]) : LongDouble;

external (cdecl) strtoul(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : CULong;

external (cdecl) system(arg0:Pointer[CChar]) : Int;

external (cdecl) wctomb(arg0:Pointer[CChar], arg1:wchar_t) : Int;

external (cdecl) wcstombs(arg0:Pointer[CChar], arg1:Pointer[wchar_t], arg2:size_t) : size_t;

record Struct_Unnamed4 (
    quot : Int64,
    rem : Int64,
);

alias lldiv_t = Struct_Unnamed4;

external (cdecl) atoll(arg0:Pointer[CChar]) : Int64;

external (cdecl) llabs(arg0:Int64) : Int64;

external (cdecl) lldiv(arg0:Int64, arg1:Int64) : lldiv_t;

external (cdecl) strtoll(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : Int64;

external (cdecl) strtoull(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : UInt64;

external (cdecl) _Exit(arg0:Int) : ;

external (cdecl) posix_memalign(arg0:Pointer[OpaquePointer], arg1:size_t, arg2:size_t) : Int;

external (cdecl) rand_r(arg0:Pointer[UInt]) : Int;

external (cdecl) realpath(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) setenv(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Int) : Int;

external (cdecl) unsetenv(arg0:Pointer[CChar]) : Int;

external (cdecl) getsubopt(arg0:Pointer[Pointer[CChar]], arg1:Pointer[Pointer[CChar]], arg2:Pointer[Pointer[CChar]]) : Int;

external (cdecl) mkdtemp(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) mkstemp(arg0:Pointer[CChar]) : Int;

external (cdecl) a64l(arg0:Pointer[CChar]) : CLong;

external (cdecl) drand48() : Double;

external (cdecl) erand48(arg0:Pointer[UShort]) : Double;

external (cdecl) grantpt(arg0:Int) : Int;

external (cdecl) initstate(arg0:CULong, arg1:Pointer[CChar], arg2:CLong) : Pointer[CChar];

external (cdecl) jrand48(arg0:Pointer[UShort]) : CLong;

external (cdecl) l64a(arg0:CLong) : Pointer[CChar];

external (cdecl) lcong48(arg0:Pointer[UShort]) : ;

external (cdecl) lrand48() : CLong;

external (cdecl) mktemp(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) mrand48() : CLong;

external (cdecl) nrand48(arg0:Pointer[UShort]) : CLong;

external (cdecl) posix_openpt(arg0:Int) : Int;

external (cdecl) ptsname(arg0:Int) : Pointer[CChar];

external (cdecl) putenv(arg0:Pointer[CChar]) : Int;

external (cdecl) random() : CLong;

external (cdecl) seed48(arg0:Pointer[UShort]) : Pointer[UShort];

external (cdecl) setkey(arg0:Pointer[CChar]) : Int;

external (cdecl) setstate(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) srand48(arg0:CLong) : ;

external (cdecl) srandom(arg0:CULong) : ;

external (cdecl) unlockpt(arg0:Int) : Int;

external _malloc_options : Pointer[CChar];

external _malloc_message : CCodePointer[[Pointer[CChar], Pointer[CChar], Pointer[CChar], Pointer[CChar]],[]];

external (cdecl) abort2(arg0:Pointer[CChar], arg1:Int, arg2:Pointer[OpaquePointer]) : ;

external (cdecl) arc4random() : __uint32_t;

external (cdecl) arc4random_addrandom(arg0:Pointer[CUChar], arg1:Int) : ;

external (cdecl) arc4random_buf(arg0:OpaquePointer, arg1:size_t) : ;

external (cdecl) arc4random_stir() : ;

external (cdecl) arc4random_uniform(arg0:__uint32_t) : __uint32_t;

external (cdecl) getbsize(arg0:Pointer[Int], arg1:Pointer[CLong]) : Pointer[CChar];

external (cdecl) cgetcap(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) cgetclose() : Int;

external (cdecl) cgetent(arg0:Pointer[Pointer[CChar]], arg1:Pointer[Pointer[CChar]], arg2:Pointer[CChar]) : Int;

external (cdecl) cgetfirst(arg0:Pointer[Pointer[CChar]], arg1:Pointer[Pointer[CChar]]) : Int;

external (cdecl) cgetmatch(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) cgetnext(arg0:Pointer[Pointer[CChar]], arg1:Pointer[Pointer[CChar]]) : Int;

external (cdecl) cgetnum(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[CLong]) : Int;

external (cdecl) cgetset(arg0:Pointer[CChar]) : Int;

external (cdecl) cgetstr(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[Pointer[CChar]]) : Int;

external (cdecl) cgetustr(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[Pointer[CChar]]) : Int;

external (cdecl) daemon(arg0:Int, arg1:Int) : Int;

external (cdecl) devname(arg0:__dev_t, arg1:__mode_t) : Pointer[CChar];

external (cdecl) devname_r(arg0:__dev_t, arg1:__mode_t, arg2:Pointer[CChar], arg3:Int) : Pointer[CChar];

external (cdecl) fdevname(arg0:Int) : Pointer[CChar];

external (cdecl) fdevname_r(arg0:Int, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) getloadavg(arg0:Pointer[Double], arg1:Int) : Int;

external (cdecl) getprogname() : Pointer[CChar];

external (cdecl) heapsort(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:CCodePointer[[OpaquePointer, OpaquePointer],[Int]]) : Int;

external (cdecl) l64a_r(arg0:CLong, arg1:Pointer[CChar], arg2:Int) : Int;

external (cdecl) mergesort(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:CCodePointer[[OpaquePointer, OpaquePointer],[Int]]) : Int;

external (cdecl) qsort_r(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:OpaquePointer, arg4:CCodePointer[[OpaquePointer, OpaquePointer, OpaquePointer],[Int]]) : ;

external (cdecl) radixsort(arg0:Pointer[Pointer[CUChar]], arg1:Int, arg2:Pointer[CUChar], arg3:UInt) : Int;

external (cdecl) reallocf(arg0:OpaquePointer, arg1:size_t) : OpaquePointer;

external (cdecl) rpmatch(arg0:Pointer[CChar]) : Int;

external (cdecl) setprogname(arg0:Pointer[CChar]) : ;

external (cdecl) sradixsort(arg0:Pointer[Pointer[CUChar]], arg1:Int, arg2:Pointer[CUChar], arg3:UInt) : Int;

external (cdecl) sranddev() : ;

external (cdecl) srandomdev() : ;

external (cdecl) strtonum(arg0:Pointer[CChar], arg1:Int64, arg2:Int64, arg3:Pointer[Pointer[CChar]]) : Int64;

external (cdecl) strtoq(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : __int64_t;

external (cdecl) strtouq(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : __uint64_t;

external suboptarg : Pointer[CChar];

external (cdecl) bcmp(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : Int;

external (cdecl) bcopy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : ;

external (cdecl) bzero(arg0:OpaquePointer, arg1:size_t) : ;

external (cdecl) ffs(arg0:Int) : Int;

external (cdecl) ffsl(arg0:CLong) : Int;

external (cdecl) ffsll(arg0:Int64) : Int;

external (cdecl) fls(arg0:Int) : Int;

external (cdecl) flsl(arg0:CLong) : Int;

external (cdecl) flsll(arg0:Int64) : Int;

external (cdecl) index(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) rindex(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) strcasecmp(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) strncasecmp(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) memccpy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:Int, arg3:size_t) : OpaquePointer;

external (cdecl) memchr(arg0:OpaquePointer, arg1:Int, arg2:size_t) : OpaquePointer;

external (cdecl) memrchr(arg0:OpaquePointer, arg1:Int, arg2:size_t) : OpaquePointer;

external (cdecl) memcmp(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : Int;

external (cdecl) memcpy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : OpaquePointer;

external (cdecl) memmem(arg0:OpaquePointer, arg1:size_t, arg2:OpaquePointer, arg3:size_t) : OpaquePointer;

external (cdecl) memmove(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : OpaquePointer;

external (cdecl) memset(arg0:OpaquePointer, arg1:Int, arg2:size_t) : OpaquePointer;

external (cdecl) stpcpy(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) stpncpy(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) strcasestr(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strcat(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strchr(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) strcmp(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) strcoll(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) strcpy(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strcspn(arg0:Pointer[CChar], arg1:Pointer[CChar]) : size_t;

external (cdecl) strdup(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strerror(arg0:Int) : Pointer[CChar];

external (cdecl) strerror_r(arg0:Int, arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) strlcat(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : size_t;

external (cdecl) strlcpy(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : size_t;

external (cdecl) strlen(arg0:Pointer[CChar]) : size_t;

external (cdecl) strmode(arg0:Int, arg1:Pointer[CChar]) : ;

external (cdecl) strncat(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) strncmp(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) strncpy(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) strndup(arg0:Pointer[CChar], arg1:size_t) : Pointer[CChar];

external (cdecl) strnlen(arg0:Pointer[CChar], arg1:size_t) : size_t;

external (cdecl) strnstr(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) strpbrk(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strrchr(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) strsep(arg0:Pointer[Pointer[CChar]], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strsignal(arg0:Int) : Pointer[CChar];

external (cdecl) strspn(arg0:Pointer[CChar], arg1:Pointer[CChar]) : size_t;

external (cdecl) strstr(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strtok(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strtok_r(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[Pointer[CChar]]) : Pointer[CChar];

external (cdecl) strxfrm(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : size_t;

external (cdecl) swab(arg0:OpaquePointer, arg1:OpaquePointer, arg2:ssize_t) : ;

external (cdecl) cabs(arg0:Complex64) : Double;

external (cdecl) cabsf(arg0:Complex32) : Float;

external (cdecl) cabsl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) carg(arg0:Complex64) : Double;

external (cdecl) cargf(arg0:Complex32) : Float;

external (cdecl) cargl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) cimag(arg0:Complex64) : Double;

external (cdecl) cimagf(arg0:Complex32) : Float;

external (cdecl) cimagl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) conj(arg0:Complex64) : Complex64;

external (cdecl) conjf(arg0:Complex32) : Complex32;

external (cdecl) conjl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) cprojf(arg0:Complex32) : Complex32;

external (cdecl) cproj(arg0:Complex64) : Complex64;

external (cdecl) cprojl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) creal(arg0:Complex64) : Double;

external (cdecl) crealf(arg0:Complex32) : Float;

external (cdecl) creall(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) csqrt(arg0:Complex64) : Complex64;

external (cdecl) csqrtf(arg0:Complex32) : Complex32;

external (cdecl) csqrtl(arg0:ComplexLongDouble) : ComplexLongDouble;

alias Union___infinity_un = Union[
    /* __uc */ Array[CUChar, 8],
    /* __ud */ Double,
];

external __infinity : Union___infinity_un;

alias Union___nan_un = Union[
    /* __uc */ Array[CUChar, 4],
    /* __uf */ Float,
];

external __nan : Union___nan_un;

alias double_t = __double_t;

alias float_t = __float_t;

external signgam : Int;

external (cdecl) __fpclassifyd(arg0:Double) : Int;

external (cdecl) __fpclassifyf(arg0:Float) : Int;

external (cdecl) __fpclassifyl(arg0:LongDouble) : Int;

external (cdecl) __isfinitef(arg0:Float) : Int;

external (cdecl) __isfinite(arg0:Double) : Int;

external (cdecl) __isfinitel(arg0:LongDouble) : Int;

external (cdecl) __isinff(arg0:Float) : Int;

external (cdecl) __isinfl(arg0:LongDouble) : Int;

external (cdecl) __isnanl(arg0:LongDouble) : Int;

external (cdecl) __isnormalf(arg0:Float) : Int;

external (cdecl) __isnormal(arg0:Double) : Int;

external (cdecl) __isnormall(arg0:LongDouble) : Int;

external (cdecl) __signbit(arg0:Double) : Int;

external (cdecl) __signbitf(arg0:Float) : Int;

external (cdecl) __signbitl(arg0:LongDouble) : Int;

external (cdecl) acos(arg0:Double) : Double;

external (cdecl) asin(arg0:Double) : Double;

external (cdecl) atan(arg0:Double) : Double;

external (cdecl) atan2(arg0:Double, arg1:Double) : Double;

external (cdecl) cos(arg0:Double) : Double;

external (cdecl) sin(arg0:Double) : Double;

external (cdecl) tan(arg0:Double) : Double;

external (cdecl) cosh(arg0:Double) : Double;

external (cdecl) sinh(arg0:Double) : Double;

external (cdecl) tanh(arg0:Double) : Double;

external (cdecl) exp(arg0:Double) : Double;

external (cdecl) frexp(arg0:Double, arg1:Pointer[Int]) : Double;

external (cdecl) ldexp(arg0:Double, arg1:Int) : Double;

external (cdecl) log(arg0:Double) : Double;

external (cdecl) log10(arg0:Double) : Double;

external (cdecl) modf(arg0:Double, arg1:Pointer[Double]) : Double;

external (cdecl) pow(arg0:Double, arg1:Double) : Double;

external (cdecl) sqrt(arg0:Double) : Double;

external (cdecl) ceil(arg0:Double) : Double;

external (cdecl) fabs(arg0:Double) : Double;

external (cdecl) floor(arg0:Double) : Double;

external (cdecl) fmod(arg0:Double, arg1:Double) : Double;

external (cdecl) acosh(arg0:Double) : Double;

external (cdecl) asinh(arg0:Double) : Double;

external (cdecl) atanh(arg0:Double) : Double;

external (cdecl) cbrt(arg0:Double) : Double;

external (cdecl) erf(arg0:Double) : Double;

external (cdecl) erfc(arg0:Double) : Double;

external (cdecl) exp2(arg0:Double) : Double;

external (cdecl) expm1(arg0:Double) : Double;

external (cdecl) fma(arg0:Double, arg1:Double, arg2:Double) : Double;

external (cdecl) hypot(arg0:Double, arg1:Double) : Double;

external (cdecl) ilogb(arg0:Double) : Int;

external (cdecl) isinf(arg0:Double) : Int;

external (cdecl) isnan(arg0:Double) : Int;

external (cdecl) lgamma(arg0:Double) : Double;

external (cdecl) llrint(arg0:Double) : Int64;

external (cdecl) llround(arg0:Double) : Int64;

external (cdecl) log1p(arg0:Double) : Double;

external (cdecl) logb(arg0:Double) : Double;

external (cdecl) lrint(arg0:Double) : CLong;

external (cdecl) lround(arg0:Double) : CLong;

external (cdecl) nan(arg0:Pointer[CChar]) : Double;

external (cdecl) nextafter(arg0:Double, arg1:Double) : Double;

external (cdecl) remainder(arg0:Double, arg1:Double) : Double;

external (cdecl) remquo(arg0:Double, arg1:Double, arg2:Pointer[Int]) : Double;

external (cdecl) rint(arg0:Double) : Double;

external (cdecl) j0(arg0:Double) : Double;

external (cdecl) j1(arg0:Double) : Double;

external (cdecl) jn(arg0:Int, arg1:Double) : Double;

external (cdecl) y0(arg0:Double) : Double;

external (cdecl) y1(arg0:Double) : Double;

external (cdecl) yn(arg0:Int, arg1:Double) : Double;

external (cdecl) gamma(arg0:Double) : Double;

external (cdecl) scalb(arg0:Double, arg1:Double) : Double;

external (cdecl) copysign(arg0:Double, arg1:Double) : Double;

external (cdecl) fdim(arg0:Double, arg1:Double) : Double;

external (cdecl) fmax(arg0:Double, arg1:Double) : Double;

external (cdecl) fmin(arg0:Double, arg1:Double) : Double;

external (cdecl) nearbyint(arg0:Double) : Double;

external (cdecl) round(arg0:Double) : Double;

external (cdecl) scalbln(arg0:Double, arg1:CLong) : Double;

external (cdecl) scalbn(arg0:Double, arg1:Int) : Double;

external (cdecl) tgamma(arg0:Double) : Double;

external (cdecl) trunc(arg0:Double) : Double;

external (cdecl) drem(arg0:Double, arg1:Double) : Double;

external (cdecl) finite(arg0:Double) : Int;

external (cdecl) isnanf(arg0:Float) : Int;

external (cdecl) gamma_r(arg0:Double, arg1:Pointer[Int]) : Double;

external (cdecl) lgamma_r(arg0:Double, arg1:Pointer[Int]) : Double;

external (cdecl) significand(arg0:Double) : Double;

external (cdecl) acosf(arg0:Float) : Float;

external (cdecl) asinf(arg0:Float) : Float;

external (cdecl) atanf(arg0:Float) : Float;

external (cdecl) atan2f(arg0:Float, arg1:Float) : Float;

external (cdecl) cosf(arg0:Float) : Float;

external (cdecl) sinf(arg0:Float) : Float;

external (cdecl) tanf(arg0:Float) : Float;

external (cdecl) coshf(arg0:Float) : Float;

external (cdecl) sinhf(arg0:Float) : Float;

external (cdecl) tanhf(arg0:Float) : Float;

external (cdecl) exp2f(arg0:Float) : Float;

external (cdecl) expf(arg0:Float) : Float;

external (cdecl) expm1f(arg0:Float) : Float;

external (cdecl) frexpf(arg0:Float, arg1:Pointer[Int]) : Float;

external (cdecl) ilogbf(arg0:Float) : Int;

external (cdecl) ldexpf(arg0:Float, arg1:Int) : Float;

external (cdecl) log10f(arg0:Float) : Float;

external (cdecl) log1pf(arg0:Float) : Float;

external (cdecl) logf(arg0:Float) : Float;

external (cdecl) modff(arg0:Float, arg1:Pointer[Float]) : Float;

external (cdecl) powf(arg0:Float, arg1:Float) : Float;

external (cdecl) sqrtf(arg0:Float) : Float;

external (cdecl) ceilf(arg0:Float) : Float;

external (cdecl) fabsf(arg0:Float) : Float;

external (cdecl) floorf(arg0:Float) : Float;

external (cdecl) fmodf(arg0:Float, arg1:Float) : Float;

external (cdecl) roundf(arg0:Float) : Float;

external (cdecl) erff(arg0:Float) : Float;

external (cdecl) erfcf(arg0:Float) : Float;

external (cdecl) hypotf(arg0:Float, arg1:Float) : Float;

external (cdecl) lgammaf(arg0:Float) : Float;

external (cdecl) tgammaf(arg0:Float) : Float;

external (cdecl) acoshf(arg0:Float) : Float;

external (cdecl) asinhf(arg0:Float) : Float;

external (cdecl) atanhf(arg0:Float) : Float;

external (cdecl) cbrtf(arg0:Float) : Float;

external (cdecl) logbf(arg0:Float) : Float;

external (cdecl) copysignf(arg0:Float, arg1:Float) : Float;

external (cdecl) llrintf(arg0:Float) : Int64;

external (cdecl) llroundf(arg0:Float) : Int64;

external (cdecl) lrintf(arg0:Float) : CLong;

external (cdecl) lroundf(arg0:Float) : CLong;

external (cdecl) nanf(arg0:Pointer[CChar]) : Float;

external (cdecl) nearbyintf(arg0:Float) : Float;

external (cdecl) nextafterf(arg0:Float, arg1:Float) : Float;

external (cdecl) remainderf(arg0:Float, arg1:Float) : Float;

external (cdecl) remquof(arg0:Float, arg1:Float, arg2:Pointer[Int]) : Float;

external (cdecl) rintf(arg0:Float) : Float;

external (cdecl) scalblnf(arg0:Float, arg1:CLong) : Float;

external (cdecl) scalbnf(arg0:Float, arg1:Int) : Float;

external (cdecl) truncf(arg0:Float) : Float;

external (cdecl) fdimf(arg0:Float, arg1:Float) : Float;

external (cdecl) fmaf(arg0:Float, arg1:Float, arg2:Float) : Float;

external (cdecl) fmaxf(arg0:Float, arg1:Float) : Float;

external (cdecl) fminf(arg0:Float, arg1:Float) : Float;

external (cdecl) dremf(arg0:Float, arg1:Float) : Float;

external (cdecl) finitef(arg0:Float) : Int;

external (cdecl) gammaf(arg0:Float) : Float;

external (cdecl) j0f(arg0:Float) : Float;

external (cdecl) j1f(arg0:Float) : Float;

external (cdecl) jnf(arg0:Int, arg1:Float) : Float;

external (cdecl) scalbf(arg0:Float, arg1:Float) : Float;

external (cdecl) y0f(arg0:Float) : Float;

external (cdecl) y1f(arg0:Float) : Float;

external (cdecl) ynf(arg0:Int, arg1:Float) : Float;

external (cdecl) gammaf_r(arg0:Float, arg1:Pointer[Int]) : Float;

external (cdecl) lgammaf_r(arg0:Float, arg1:Pointer[Int]) : Float;

external (cdecl) significandf(arg0:Float) : Float;

external (cdecl) acosl(arg0:LongDouble) : LongDouble;

external (cdecl) asinl(arg0:LongDouble) : LongDouble;

external (cdecl) atan2l(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) atanl(arg0:LongDouble) : LongDouble;

external (cdecl) ceill(arg0:LongDouble) : LongDouble;

external (cdecl) copysignl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) cosl(arg0:LongDouble) : LongDouble;

external (cdecl) exp2l(arg0:LongDouble) : LongDouble;

external (cdecl) fabsl(arg0:LongDouble) : LongDouble;

external (cdecl) fdiml(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) floorl(arg0:LongDouble) : LongDouble;

external (cdecl) fmal(arg0:LongDouble, arg1:LongDouble, arg2:LongDouble) : LongDouble;

external (cdecl) fmaxl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) fminl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) fmodl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) frexpl(arg0:LongDouble, arg1:Pointer[Int]) : LongDouble;

external (cdecl) hypotl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) ilogbl(arg0:LongDouble) : Int;

external (cdecl) ldexpl(arg0:LongDouble, arg1:Int) : LongDouble;

external (cdecl) llrintl(arg0:LongDouble) : Int64;

external (cdecl) llroundl(arg0:LongDouble) : Int64;

external (cdecl) logbl(arg0:LongDouble) : LongDouble;

external (cdecl) lrintl(arg0:LongDouble) : CLong;

external (cdecl) lroundl(arg0:LongDouble) : CLong;

external (cdecl) modfl(arg0:LongDouble, arg1:Pointer[LongDouble]) : LongDouble;

external (cdecl) nanl(arg0:Pointer[CChar]) : LongDouble;

external (cdecl) nearbyintl(arg0:LongDouble) : LongDouble;

external (cdecl) nextafterl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) nexttoward(arg0:Double, arg1:LongDouble) : Double;

external (cdecl) nexttowardf(arg0:Float, arg1:LongDouble) : Float;

external (cdecl) nexttowardl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) remainderl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) remquol(arg0:LongDouble, arg1:LongDouble, arg2:Pointer[Int]) : LongDouble;

external (cdecl) rintl(arg0:LongDouble) : LongDouble;

external (cdecl) roundl(arg0:LongDouble) : LongDouble;

external (cdecl) scalblnl(arg0:LongDouble, arg1:CLong) : LongDouble;

external (cdecl) scalbnl(arg0:LongDouble, arg1:Int) : LongDouble;

external (cdecl) sinl(arg0:LongDouble) : LongDouble;

external (cdecl) sqrtl(arg0:LongDouble) : LongDouble;

external (cdecl) tanl(arg0:LongDouble) : LongDouble;

external (cdecl) truncl(arg0:LongDouble) : LongDouble;

record Struct__sigjmp_buf (
    _sjb : Array[CLong, 12],
);

alias sigjmp_buf = Array[Struct__sigjmp_buf, 1];

record Struct__jmp_buf (
    _jb : Array[CLong, 12],
);

alias jmp_buf = Array[Struct__jmp_buf, 1];

external (cdecl) _longjmp(arg0:Pointer[Struct__jmp_buf], arg1:Int) : ;

external (cdecl) _setjmp(arg0:Pointer[Struct__jmp_buf]) : Int;

external (cdecl) longjmp(arg0:Pointer[Struct__jmp_buf], arg1:Int) : ;

external (cdecl) longjmperror() : ;

external (cdecl) setjmp(arg0:Pointer[Struct__jmp_buf]) : Int;

external (cdecl) siglongjmp(arg0:Pointer[Struct__sigjmp_buf], arg1:Int) : ;

external (cdecl) sigsetjmp(arg0:Pointer[Struct__sigjmp_buf], arg1:Int) : Int;

alias clock_t = __clock_t;

alias time_t = __time_t;

alias clockid_t = __clockid_t;

alias timer_t = __timer_t;

record Struct_timespec (
    tv_sec : time_t,
    tv_nsec : CLong,
);

record Struct_itimerspec (
    it_interval : Struct_timespec,
    it_value : Struct_timespec,
);

record Struct_tm (
    tm_sec : Int,
    tm_min : Int,
    tm_hour : Int,
    tm_mday : Int,
    tm_mon : Int,
    tm_year : Int,
    tm_wday : Int,
    tm_yday : Int,
    tm_isdst : Int,
    tm_gmtoff : CLong,
    tm_zone : Pointer[CChar],
);

external tzname : Opaque /* unknown NoDeclFound  */;

external (cdecl) asctime(arg0:Pointer[Struct_tm]) : Pointer[CChar];

external (cdecl) clock() : clock_t;

external (cdecl) ctime(arg0:Pointer[time_t]) : Pointer[CChar];

external (cdecl) difftime(arg0:time_t, arg1:time_t) : Double;

external (cdecl) gmtime(arg0:Pointer[time_t]) : Pointer[Struct_tm];

external (cdecl) localtime(arg0:Pointer[time_t]) : Pointer[Struct_tm];

external (cdecl) mktime(arg0:Pointer[Struct_tm]) : time_t;

external (cdecl) strftime(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:Pointer[Struct_tm]) : size_t;

external (cdecl) time(arg0:Pointer[time_t]) : time_t;

alias Struct_sigevent = Opaque;

external (cdecl) timer_create(arg0:clockid_t, arg1:Pointer[Struct_sigevent], arg2:Pointer[timer_t]) : Int;

external (cdecl) timer_delete(arg0:timer_t) : Int;

external (cdecl) timer_gettime(arg0:timer_t, arg1:Pointer[Struct_itimerspec]) : Int;

external (cdecl) timer_getoverrun(arg0:timer_t) : Int;

external (cdecl) timer_settime(arg0:timer_t, arg1:Int, arg2:Pointer[Struct_itimerspec], arg3:Pointer[Struct_itimerspec]) : Int;

external (cdecl) tzset() : ;

external (cdecl) clock_getres(arg0:clockid_t, arg1:Pointer[Struct_timespec]) : Int;

external (cdecl) clock_gettime(arg0:clockid_t, arg1:Pointer[Struct_timespec]) : Int;

external (cdecl) clock_settime(arg0:clockid_t, arg1:Pointer[Struct_timespec]) : Int;

external (cdecl) nanosleep(arg0:Pointer[Struct_timespec], arg1:Pointer[Struct_timespec]) : Int;

external (cdecl) asctime_r(arg0:Pointer[Struct_tm], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) ctime_r(arg0:Pointer[time_t], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) gmtime_r(arg0:Pointer[time_t], arg1:Pointer[Struct_tm]) : Pointer[Struct_tm];

external (cdecl) localtime_r(arg0:Pointer[time_t], arg1:Pointer[Struct_tm]) : Pointer[Struct_tm];

external (cdecl) strptime(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[Struct_tm]) : Pointer[CChar];

external (cdecl) timezone(arg0:Int, arg1:Int) : Pointer[CChar];

external (cdecl) tzsetwall() : ;

external (cdecl) timelocal(arg0:Pointer[Struct_tm]) : time_t;

external (cdecl) timegm(arg0:Pointer[Struct_tm]) : time_t;

