/* 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 = Int64;

alias __uint64_t = UInt64;

alias __darwin_intptr_t = CLong;

alias __darwin_natural_t = UInt;

alias __darwin_ct_rune_t = Int;

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

alias __mbstate_t = Union_Unnamed1;

alias __darwin_mbstate_t = __mbstate_t;

alias __darwin_ptrdiff_t = CLong;

alias __darwin_size_t = CULong;

alias __darwin_va_list = __builtin_va_list;

alias __darwin_wchar_t = Int;

alias __darwin_rune_t = __darwin_wchar_t;

alias __darwin_wint_t = Int;

alias __darwin_clock_t = CULong;

alias __darwin_socklen_t = __uint32_t;

alias __darwin_ssize_t = CLong;

alias __darwin_time_t = CLong;

record Struct___darwin_pthread_handler_rec (
    __routine : CCodePointer[[OpaquePointer],[]],
    __arg : OpaquePointer,
    __next : Pointer[Struct___darwin_pthread_handler_rec],
);

record Struct__opaque_pthread_attr_t (
    __sig : CLong,
    __opaque : Array[CChar, 56],
);

record Struct__opaque_pthread_cond_t (
    __sig : CLong,
    __opaque : Array[CChar, 40],
);

record Struct__opaque_pthread_condattr_t (
    __sig : CLong,
    __opaque : Array[CChar, 8],
);

record Struct__opaque_pthread_mutex_t (
    __sig : CLong,
    __opaque : Array[CChar, 56],
);

record Struct__opaque_pthread_mutexattr_t (
    __sig : CLong,
    __opaque : Array[CChar, 8],
);

record Struct__opaque_pthread_once_t (
    __sig : CLong,
    __opaque : Array[CChar, 8],
);

record Struct__opaque_pthread_rwlock_t (
    __sig : CLong,
    __opaque : Array[CChar, 192],
);

record Struct__opaque_pthread_rwlockattr_t (
    __sig : CLong,
    __opaque : Array[CChar, 16],
);

record Struct__opaque_pthread_t (
    __sig : CLong,
    __cleanup_stack : Pointer[Struct___darwin_pthread_handler_rec],
    __opaque : Array[CChar, 1168],
);

alias __darwin_blkcnt_t = __int64_t;

alias __darwin_blksize_t = __int32_t;

alias __darwin_dev_t = __int32_t;

alias __darwin_fsblkcnt_t = UInt;

alias __darwin_fsfilcnt_t = UInt;

alias __darwin_gid_t = __uint32_t;

alias __darwin_id_t = __uint32_t;

alias __darwin_ino64_t = __uint64_t;

alias __darwin_ino_t = __darwin_ino64_t;

alias __darwin_mach_port_name_t = __darwin_natural_t;

alias __darwin_mach_port_t = __darwin_mach_port_name_t;

alias __darwin_mode_t = __uint16_t;

alias __darwin_off_t = __int64_t;

alias __darwin_pid_t = __int32_t;

alias __darwin_pthread_attr_t = Struct__opaque_pthread_attr_t;

alias __darwin_pthread_cond_t = Struct__opaque_pthread_cond_t;

alias __darwin_pthread_condattr_t = Struct__opaque_pthread_condattr_t;

alias __darwin_pthread_key_t = CULong;

alias __darwin_pthread_mutex_t = Struct__opaque_pthread_mutex_t;

alias __darwin_pthread_mutexattr_t = Struct__opaque_pthread_mutexattr_t;

alias __darwin_pthread_once_t = Struct__opaque_pthread_once_t;

alias __darwin_pthread_rwlock_t = Struct__opaque_pthread_rwlock_t;

alias __darwin_pthread_rwlockattr_t = Struct__opaque_pthread_rwlockattr_t;

alias __darwin_pthread_t = Pointer[Struct__opaque_pthread_t];

alias __darwin_sigset_t = __uint32_t;

alias __darwin_suseconds_t = __int32_t;

alias __darwin_uid_t = __uint32_t;

alias __darwin_useconds_t = __uint32_t;

alias __darwin_uuid_t = Array[CUChar, 16];

alias __darwin_uuid_string_t = Array[CChar, 37];

alias __darwin_nl_item = Int;

alias __darwin_wctrans_t = Int;

alias __darwin_wctype_t = __uint32_t;

alias va_list = __darwin_va_list;

alias size_t = __darwin_size_t;

alias fpos_t = __darwin_off_t;

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

alias Struct___sFILEX = Opaque;

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,
    _extra : Pointer[Struct___sFILEX],
    _ur : Int,
    _ubuf : Array[CUChar, 3],
    _nbuf : Array[CUChar, 1],
    _lb : Struct___sbuf,
    _blksize : Int,
    _offset : fpos_t,
);

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") 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") 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") 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") 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) ctermid(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl, "_fdopen") 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") popen(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[FILE];

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

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

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

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

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

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

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) getw(arg0:Pointer[FILE]) : Int;

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

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

alias off_t = __darwin_off_t;

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

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

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;

alias ssize_t = __darwin_ssize_t;

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

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

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

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

external sys_nerr : Int;

external sys_errlist : Opaque /* unknown NoDeclFound  */;

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

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

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 (cdecl) zopen(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Int) : Pointer[FILE];

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) __sprintf_chk(arg0:Pointer[CChar], arg1:Int, arg2:size_t, arg3:Pointer[CChar], ..) : Int;

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

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

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

alias Enum_Unnamed2 = UInt;
alias P_ALL = 0;
alias P_PID = 1;
alias P_PGID = 2;

alias idtype_t = Opaque /* unknown EnumDecl  */;

alias pid_t = __darwin_pid_t;

alias id_t = __darwin_id_t;

alias sig_atomic_t = Int;

record Struct___darwin_i386_thread_state (
    __eax : UInt,
    __ebx : UInt,
    __ecx : UInt,
    __edx : UInt,
    __edi : UInt,
    __esi : UInt,
    __ebp : UInt,
    __esp : UInt,
    __ss : UInt,
    __eflags : UInt,
    __eip : UInt,
    __cs : UInt,
    __ds : UInt,
    __es : UInt,
    __fs : UInt,
    __gs : UInt,
);

record Struct___darwin_fp_control (
    __invalid : UShort,
    __denorm : UShort,
    __zdiv : UShort,
    __ovrfl : UShort,
    __undfl : UShort,
    __precis : UShort,
    ?padding0 : UShort,
    __pc : UShort,
    __rc : UShort,
    ?padding1 : UShort,
    ?padding2 : UShort,
);

alias __darwin_fp_control_t = Struct___darwin_fp_control;

record Struct___darwin_fp_status (
    __invalid : UShort,
    __denorm : UShort,
    __zdiv : UShort,
    __ovrfl : UShort,
    __undfl : UShort,
    __precis : UShort,
    __stkflt : UShort,
    __errsumm : UShort,
    __c0 : UShort,
    __c1 : UShort,
    __c2 : UShort,
    __tos : UShort,
    __c3 : UShort,
    __busy : UShort,
);

alias __darwin_fp_status_t = Struct___darwin_fp_status;

record Struct___darwin_mmst_reg (
    __mmst_reg : Array[CChar, 10],
    __mmst_rsrv : Array[CChar, 6],
);

record Struct___darwin_xmm_reg (
    __xmm_reg : Array[CChar, 16],
);

record Struct___darwin_i386_float_state (
    __fpu_reserved : Array[Int, 2],
    __fpu_fcw : Struct___darwin_fp_control,
    __fpu_fsw : Struct___darwin_fp_status,
    __fpu_ftw : __uint8_t,
    __fpu_rsrv1 : __uint8_t,
    __fpu_fop : __uint16_t,
    __fpu_ip : __uint32_t,
    __fpu_cs : __uint16_t,
    __fpu_rsrv2 : __uint16_t,
    __fpu_dp : __uint32_t,
    __fpu_ds : __uint16_t,
    __fpu_rsrv3 : __uint16_t,
    __fpu_mxcsr : __uint32_t,
    __fpu_mxcsrmask : __uint32_t,
    __fpu_stmm0 : Struct___darwin_mmst_reg,
    __fpu_stmm1 : Struct___darwin_mmst_reg,
    __fpu_stmm2 : Struct___darwin_mmst_reg,
    __fpu_stmm3 : Struct___darwin_mmst_reg,
    __fpu_stmm4 : Struct___darwin_mmst_reg,
    __fpu_stmm5 : Struct___darwin_mmst_reg,
    __fpu_stmm6 : Struct___darwin_mmst_reg,
    __fpu_stmm7 : Struct___darwin_mmst_reg,
    __fpu_xmm0 : Struct___darwin_xmm_reg,
    __fpu_xmm1 : Struct___darwin_xmm_reg,
    __fpu_xmm2 : Struct___darwin_xmm_reg,
    __fpu_xmm3 : Struct___darwin_xmm_reg,
    __fpu_xmm4 : Struct___darwin_xmm_reg,
    __fpu_xmm5 : Struct___darwin_xmm_reg,
    __fpu_xmm6 : Struct___darwin_xmm_reg,
    __fpu_xmm7 : Struct___darwin_xmm_reg,
    __fpu_rsrv4 : Array[CChar, 224],
    __fpu_reserved1 : Int,
);

record Struct___darwin_i386_avx_state (
    __fpu_reserved : Array[Int, 2],
    __fpu_fcw : Struct___darwin_fp_control,
    __fpu_fsw : Struct___darwin_fp_status,
    __fpu_ftw : __uint8_t,
    __fpu_rsrv1 : __uint8_t,
    __fpu_fop : __uint16_t,
    __fpu_ip : __uint32_t,
    __fpu_cs : __uint16_t,
    __fpu_rsrv2 : __uint16_t,
    __fpu_dp : __uint32_t,
    __fpu_ds : __uint16_t,
    __fpu_rsrv3 : __uint16_t,
    __fpu_mxcsr : __uint32_t,
    __fpu_mxcsrmask : __uint32_t,
    __fpu_stmm0 : Struct___darwin_mmst_reg,
    __fpu_stmm1 : Struct___darwin_mmst_reg,
    __fpu_stmm2 : Struct___darwin_mmst_reg,
    __fpu_stmm3 : Struct___darwin_mmst_reg,
    __fpu_stmm4 : Struct___darwin_mmst_reg,
    __fpu_stmm5 : Struct___darwin_mmst_reg,
    __fpu_stmm6 : Struct___darwin_mmst_reg,
    __fpu_stmm7 : Struct___darwin_mmst_reg,
    __fpu_xmm0 : Struct___darwin_xmm_reg,
    __fpu_xmm1 : Struct___darwin_xmm_reg,
    __fpu_xmm2 : Struct___darwin_xmm_reg,
    __fpu_xmm3 : Struct___darwin_xmm_reg,
    __fpu_xmm4 : Struct___darwin_xmm_reg,
    __fpu_xmm5 : Struct___darwin_xmm_reg,
    __fpu_xmm6 : Struct___darwin_xmm_reg,
    __fpu_xmm7 : Struct___darwin_xmm_reg,
    __fpu_rsrv4 : Array[CChar, 224],
    __fpu_reserved1 : Int,
    __avx_reserved1 : Array[CChar, 64],
    __fpu_ymmh0 : Struct___darwin_xmm_reg,
    __fpu_ymmh1 : Struct___darwin_xmm_reg,
    __fpu_ymmh2 : Struct___darwin_xmm_reg,
    __fpu_ymmh3 : Struct___darwin_xmm_reg,
    __fpu_ymmh4 : Struct___darwin_xmm_reg,
    __fpu_ymmh5 : Struct___darwin_xmm_reg,
    __fpu_ymmh6 : Struct___darwin_xmm_reg,
    __fpu_ymmh7 : Struct___darwin_xmm_reg,
);

record Struct___darwin_i386_exception_state (
    __trapno : __uint16_t,
    __cpu : __uint16_t,
    __err : __uint32_t,
    __faultvaddr : __uint32_t,
);

record Struct___darwin_x86_debug_state32 (
    __dr0 : UInt,
    __dr1 : UInt,
    __dr2 : UInt,
    __dr3 : UInt,
    __dr4 : UInt,
    __dr5 : UInt,
    __dr6 : UInt,
    __dr7 : UInt,
);

record Struct___darwin_x86_thread_state64 (
    __rax : __uint64_t,
    __rbx : __uint64_t,
    __rcx : __uint64_t,
    __rdx : __uint64_t,
    __rdi : __uint64_t,
    __rsi : __uint64_t,
    __rbp : __uint64_t,
    __rsp : __uint64_t,
    __r8 : __uint64_t,
    __r9 : __uint64_t,
    __r10 : __uint64_t,
    __r11 : __uint64_t,
    __r12 : __uint64_t,
    __r13 : __uint64_t,
    __r14 : __uint64_t,
    __r15 : __uint64_t,
    __rip : __uint64_t,
    __rflags : __uint64_t,
    __cs : __uint64_t,
    __fs : __uint64_t,
    __gs : __uint64_t,
);

record Struct___darwin_x86_float_state64 (
    __fpu_reserved : Array[Int, 2],
    __fpu_fcw : Struct___darwin_fp_control,
    __fpu_fsw : Struct___darwin_fp_status,
    __fpu_ftw : __uint8_t,
    __fpu_rsrv1 : __uint8_t,
    __fpu_fop : __uint16_t,
    __fpu_ip : __uint32_t,
    __fpu_cs : __uint16_t,
    __fpu_rsrv2 : __uint16_t,
    __fpu_dp : __uint32_t,
    __fpu_ds : __uint16_t,
    __fpu_rsrv3 : __uint16_t,
    __fpu_mxcsr : __uint32_t,
    __fpu_mxcsrmask : __uint32_t,
    __fpu_stmm0 : Struct___darwin_mmst_reg,
    __fpu_stmm1 : Struct___darwin_mmst_reg,
    __fpu_stmm2 : Struct___darwin_mmst_reg,
    __fpu_stmm3 : Struct___darwin_mmst_reg,
    __fpu_stmm4 : Struct___darwin_mmst_reg,
    __fpu_stmm5 : Struct___darwin_mmst_reg,
    __fpu_stmm6 : Struct___darwin_mmst_reg,
    __fpu_stmm7 : Struct___darwin_mmst_reg,
    __fpu_xmm0 : Struct___darwin_xmm_reg,
    __fpu_xmm1 : Struct___darwin_xmm_reg,
    __fpu_xmm2 : Struct___darwin_xmm_reg,
    __fpu_xmm3 : Struct___darwin_xmm_reg,
    __fpu_xmm4 : Struct___darwin_xmm_reg,
    __fpu_xmm5 : Struct___darwin_xmm_reg,
    __fpu_xmm6 : Struct___darwin_xmm_reg,
    __fpu_xmm7 : Struct___darwin_xmm_reg,
    __fpu_xmm8 : Struct___darwin_xmm_reg,
    __fpu_xmm9 : Struct___darwin_xmm_reg,
    __fpu_xmm10 : Struct___darwin_xmm_reg,
    __fpu_xmm11 : Struct___darwin_xmm_reg,
    __fpu_xmm12 : Struct___darwin_xmm_reg,
    __fpu_xmm13 : Struct___darwin_xmm_reg,
    __fpu_xmm14 : Struct___darwin_xmm_reg,
    __fpu_xmm15 : Struct___darwin_xmm_reg,
    __fpu_rsrv4 : Array[CChar, 96],
    __fpu_reserved1 : Int,
);

record Struct___darwin_x86_avx_state64 (
    __fpu_reserved : Array[Int, 2],
    __fpu_fcw : Struct___darwin_fp_control,
    __fpu_fsw : Struct___darwin_fp_status,
    __fpu_ftw : __uint8_t,
    __fpu_rsrv1 : __uint8_t,
    __fpu_fop : __uint16_t,
    __fpu_ip : __uint32_t,
    __fpu_cs : __uint16_t,
    __fpu_rsrv2 : __uint16_t,
    __fpu_dp : __uint32_t,
    __fpu_ds : __uint16_t,
    __fpu_rsrv3 : __uint16_t,
    __fpu_mxcsr : __uint32_t,
    __fpu_mxcsrmask : __uint32_t,
    __fpu_stmm0 : Struct___darwin_mmst_reg,
    __fpu_stmm1 : Struct___darwin_mmst_reg,
    __fpu_stmm2 : Struct___darwin_mmst_reg,
    __fpu_stmm3 : Struct___darwin_mmst_reg,
    __fpu_stmm4 : Struct___darwin_mmst_reg,
    __fpu_stmm5 : Struct___darwin_mmst_reg,
    __fpu_stmm6 : Struct___darwin_mmst_reg,
    __fpu_stmm7 : Struct___darwin_mmst_reg,
    __fpu_xmm0 : Struct___darwin_xmm_reg,
    __fpu_xmm1 : Struct___darwin_xmm_reg,
    __fpu_xmm2 : Struct___darwin_xmm_reg,
    __fpu_xmm3 : Struct___darwin_xmm_reg,
    __fpu_xmm4 : Struct___darwin_xmm_reg,
    __fpu_xmm5 : Struct___darwin_xmm_reg,
    __fpu_xmm6 : Struct___darwin_xmm_reg,
    __fpu_xmm7 : Struct___darwin_xmm_reg,
    __fpu_xmm8 : Struct___darwin_xmm_reg,
    __fpu_xmm9 : Struct___darwin_xmm_reg,
    __fpu_xmm10 : Struct___darwin_xmm_reg,
    __fpu_xmm11 : Struct___darwin_xmm_reg,
    __fpu_xmm12 : Struct___darwin_xmm_reg,
    __fpu_xmm13 : Struct___darwin_xmm_reg,
    __fpu_xmm14 : Struct___darwin_xmm_reg,
    __fpu_xmm15 : Struct___darwin_xmm_reg,
    __fpu_rsrv4 : Array[CChar, 96],
    __fpu_reserved1 : Int,
    __avx_reserved1 : Array[CChar, 64],
    __fpu_ymmh0 : Struct___darwin_xmm_reg,
    __fpu_ymmh1 : Struct___darwin_xmm_reg,
    __fpu_ymmh2 : Struct___darwin_xmm_reg,
    __fpu_ymmh3 : Struct___darwin_xmm_reg,
    __fpu_ymmh4 : Struct___darwin_xmm_reg,
    __fpu_ymmh5 : Struct___darwin_xmm_reg,
    __fpu_ymmh6 : Struct___darwin_xmm_reg,
    __fpu_ymmh7 : Struct___darwin_xmm_reg,
    __fpu_ymmh8 : Struct___darwin_xmm_reg,
    __fpu_ymmh9 : Struct___darwin_xmm_reg,
    __fpu_ymmh10 : Struct___darwin_xmm_reg,
    __fpu_ymmh11 : Struct___darwin_xmm_reg,
    __fpu_ymmh12 : Struct___darwin_xmm_reg,
    __fpu_ymmh13 : Struct___darwin_xmm_reg,
    __fpu_ymmh14 : Struct___darwin_xmm_reg,
    __fpu_ymmh15 : Struct___darwin_xmm_reg,
);

record Struct___darwin_x86_exception_state64 (
    __trapno : __uint16_t,
    __cpu : __uint16_t,
    __err : __uint32_t,
    __faultvaddr : __uint64_t,
);

record Struct___darwin_x86_debug_state64 (
    __dr0 : __uint64_t,
    __dr1 : __uint64_t,
    __dr2 : __uint64_t,
    __dr3 : __uint64_t,
    __dr4 : __uint64_t,
    __dr5 : __uint64_t,
    __dr6 : __uint64_t,
    __dr7 : __uint64_t,
);

record Struct___darwin_mcontext32 (
    __es : Struct___darwin_i386_exception_state,
    __ss : Struct___darwin_i386_thread_state,
    __fs : Struct___darwin_i386_float_state,
);

record Struct___darwin_mcontext_avx32 (
    __es : Struct___darwin_i386_exception_state,
    __ss : Struct___darwin_i386_thread_state,
    __fs : Struct___darwin_i386_avx_state,
);

record Struct___darwin_mcontext64 (
    __es : Struct___darwin_x86_exception_state64,
    __ss : Struct___darwin_x86_thread_state64,
    __fs : Struct___darwin_x86_float_state64,
);

record Struct___darwin_mcontext_avx64 (
    __es : Struct___darwin_x86_exception_state64,
    __ss : Struct___darwin_x86_thread_state64,
    __fs : Struct___darwin_x86_avx_state64,
);

alias mcontext_t = Pointer[Struct___darwin_mcontext64];

record Struct___darwin_sigaltstack (
    ss_sp : OpaquePointer,
    ss_size : __darwin_size_t,
    ss_flags : Int,
);

record Struct___darwin_ucontext (
    uc_onstack : Int,
    uc_sigmask : __darwin_sigset_t,
    uc_stack : Struct___darwin_sigaltstack,
    uc_link : Pointer[Struct___darwin_ucontext],
    uc_mcsize : __darwin_size_t,
    uc_mcontext : Pointer[Struct___darwin_mcontext64],
);

alias stack_t = Struct___darwin_sigaltstack;

alias ucontext_t = Struct___darwin_ucontext;

alias pthread_attr_t = __darwin_pthread_attr_t;

alias sigset_t = __darwin_sigset_t;

alias uid_t = __darwin_uid_t;

alias Union_sigval = Union[
    /* sival_int */ Int,
    /* sival_ptr */ OpaquePointer,
];

record Struct_sigevent (
    sigev_notify : Int,
    sigev_signo : Int,
    sigev_value : Union_sigval,
    sigev_notify_function : CCodePointer[[Union_sigval],[]],
    sigev_notify_attributes : Pointer[pthread_attr_t],
);

record Struct___siginfo (
    si_signo : Int,
    si_errno : Int,
    si_code : Int,
    si_pid : pid_t,
    si_uid : uid_t,
    si_status : Int,
    si_addr : OpaquePointer,
    si_value : Union_sigval,
    si_band : CLong,
    __pad : Array[CULong, 7],
);

alias siginfo_t = Struct___siginfo;

alias Union___sigaction_u = Union[
    /* __sa_handler */ CCodePointer[[Int],[]],
    /* __sa_sigaction */ CCodePointer[[Int, Pointer[Struct___siginfo], OpaquePointer],[]],
];

record Struct___sigaction (
    __sigaction_u : Union___sigaction_u,
    sa_tramp : CCodePointer[[OpaquePointer, Int, Int, Pointer[siginfo_t], OpaquePointer],[]],
    sa_mask : sigset_t,
    sa_flags : Int,
);

record Struct_sigaction (
    __sigaction_u : Union___sigaction_u,
    sa_mask : sigset_t,
    sa_flags : Int,
);

alias sig_t = CCodePointer[[Int],[]];

record Struct_sigvec (
    sv_handler : CCodePointer[[Int],[]],
    sv_mask : Int,
    sv_flags : Int,
);

record Struct_sigstack (
    ss_sp : Pointer[CChar],
    ss_onstack : Int,
);

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

record Struct_timeval (
    tv_sec : __darwin_time_t,
    tv_usec : __darwin_suseconds_t,
);

alias rlim_t = __uint64_t;

record Struct_rusage (
    ru_utime : Struct_timeval,
    ru_stime : Struct_timeval,
    ru_maxrss : CLong,
    ru_ixrss : CLong,
    ru_idrss : CLong,
    ru_isrss : CLong,
    ru_minflt : CLong,
    ru_majflt : CLong,
    ru_nswap : CLong,
    ru_inblock : CLong,
    ru_oublock : CLong,
    ru_msgsnd : CLong,
    ru_msgrcv : CLong,
    ru_nsignals : CLong,
    ru_nvcsw : CLong,
    ru_nivcsw : CLong,
);

record Struct_rlimit (
    rlim_cur : rlim_t,
    rlim_max : rlim_t,
);

external (cdecl) getpriority(arg0:Int, arg1:id_t) : Int;

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

external (cdecl, "_getrlimit") getrlimit(arg0:Int, arg1:Pointer[Struct_rlimit]) : Int;

external (cdecl) getrusage(arg0:Int, arg1:Pointer[Struct_rusage]) : Int;

external (cdecl) setpriority(arg0:Int, arg1:id_t, arg2:Int) : Int;

external (cdecl) setiopolicy_np(arg0:Int, arg1:Int, arg2:Int) : Int;

external (cdecl, "_setrlimit") setrlimit(arg0:Int, arg1:Pointer[Struct_rlimit]) : Int;

external (cdecl) _OSSwapInt16(arg0:__uint16_t) : __uint16_t;

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

external (cdecl) _OSSwapInt64(arg0:__uint64_t) : __uint64_t;

alias Union_wait = Union[
    /* w_status */ Int,
    /* w_T */ Struct_Unnamed3,
    /* w_S */ Struct_Unnamed4,
];

external (cdecl, "_wait") wait(arg0:Pointer[Int]) : pid_t;

external (cdecl, "_waitpid") waitpid(arg0:pid_t, arg1:Pointer[Int], arg2:Int) : pid_t;

external (cdecl, "_waitid") waitid(arg0:idtype_t, arg1:id_t, arg2:Pointer[siginfo_t], arg3:Int) : Int;

external (cdecl) wait3(arg0:Pointer[Int], arg1:Int, arg2:Pointer[Struct_rusage]) : pid_t;

external (cdecl) wait4(arg0:pid_t, arg1:Pointer[Int], arg2:Int, arg3:Pointer[Struct_rusage]) : pid_t;

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

alias ct_rune_t = __darwin_ct_rune_t;

alias rune_t = __darwin_rune_t;

alias wchar_t = __darwin_wchar_t;

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

alias div_t = Struct_Unnamed5;

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

alias ldiv_t = Struct_Unnamed6;

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

alias lldiv_t = Struct_Unnamed7;

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) atoll(arg0:Pointer[CChar]) : Int64;

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) llabs(arg0:Int64) : Int64;

external (cdecl) lldiv(arg0:Int64, arg1:Int64) : lldiv_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) posix_memalign(arg0:Pointer[OpaquePointer], arg1:size_t, 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") strtod(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]]) : Double;

external (cdecl, "_strtof") 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) strtoll(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : Int64;

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

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

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

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

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

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

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

external (cdecl) drand48() : Double;

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

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

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

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

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

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

external (cdecl) initstate(arg0:UInt, arg1:Pointer[CChar], arg2:size_t) : 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) mkstemp(arg0:Pointer[CChar]) : Int;

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") putenv(arg0:Pointer[CChar]) : Int;

external (cdecl) random() : CLong;

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

external (cdecl, "_realpath\$DARWIN_EXTSN") realpath(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

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

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

external (cdecl, "_setkey") setkey(arg0:Pointer[CChar]) : ;

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

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

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

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

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

alias int8_t = CChar;

alias u_int8_t = CUChar;

alias int16_t = Short;

alias u_int16_t = UShort;

alias int32_t = Int;

alias u_int32_t = UInt;

alias int64_t = Int64;

alias u_int64_t = UInt64;

alias register_t = int64_t;

alias intptr_t = __darwin_intptr_t;

alias uintptr_t = CULong;

alias user_addr_t = u_int64_t;

alias user_size_t = u_int64_t;

alias user_ssize_t = int64_t;

alias user_long_t = int64_t;

alias user_ulong_t = u_int64_t;

alias user_time_t = int64_t;

alias user_off_t = int64_t;

alias syscall_arg_t = u_int64_t;

alias dev_t = __darwin_dev_t;

alias mode_t = __darwin_mode_t;

external (cdecl) arc4random() : u_int32_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:u_int32_t) : u_int32_t;

external (cdecl) atexit_b(arg0:/* unknown kind BlockPointer */ Opaque) : Int;

external (cdecl) bsearch_b(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t, arg3:size_t, arg4:/* unknown kind BlockPointer */ Opaque) : OpaquePointer;

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\$1050") 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) getbsize(arg0:Pointer[Int], arg1:Pointer[CLong]) : 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) heapsort_b(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:/* unknown kind BlockPointer */ Opaque) : Int;

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

external (cdecl) mergesort_b(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:/* unknown kind BlockPointer */ Opaque) : Int;

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

external (cdecl) psort_b(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:/* unknown kind BlockPointer */ Opaque) : ;

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

external (cdecl) qsort_b(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:/* unknown kind BlockPointer */ Opaque) : ;

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) 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) reallocf(arg0:OpaquePointer, arg1:size_t) : OpaquePointer;

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

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

external suboptarg : Pointer[CChar];

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

external (cdecl) memchr(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) memmove(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : OpaquePointer;

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

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, "_strerror") strerror(arg0:Int) : Pointer[CChar];

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

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) strpbrk(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strrchr(arg0:Pointer[CChar], arg1: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) strxfrm(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : size_t;

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

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

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

external (cdecl) memccpy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:Int, arg3: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) strndup(arg0:Pointer[CChar], arg1:size_t) : Pointer[CChar];

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

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

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

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

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

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

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

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

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) strmode(arg0:Int, arg1:Pointer[CChar]) : ;

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

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

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) index(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

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

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

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) ffsl(arg0:CLong) : Int;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

external (cdecl) cpow(arg0:Complex64, arg1:Complex64) : Complex64;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

external (cdecl) cpowl(arg0:ComplexLongDouble, arg1:ComplexLongDouble) : ComplexLongDouble;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

external (cdecl) cpowf(arg0:Complex32, arg1:Complex32) : Complex32;

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

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

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

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

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

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

alias float_t = Float;

alias double_t = Double;

external (cdecl) __math_errhandling() : Int;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

external (cdecl) fmodl(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) copysignl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) nanl(arg0:Pointer[CChar]) : 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) fdiml(arg0:LongDouble, arg1:LongDouble) : LongDouble;

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

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

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

external (cdecl) __inf() : Double;

external (cdecl) __inff() : Float;

external (cdecl) __infl() : LongDouble;

external (cdecl) __nan() : Float;

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) scalb(arg0:Double, arg1:Double) : Double;

external signgam : Int;

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

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

record Struct_exception (
    type : Int,
    name : Pointer[CChar],
    arg1 : Double,
    arg2 : Double,
    retval : Double,
);

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

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

external (cdecl) matherr(arg0:Pointer[Struct_exception]) : Int;

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

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

alias jmp_buf = Array[Int, 37];

alias sigjmp_buf = Array[Int, 38];

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

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

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

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

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

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

external (cdecl) longjmperror() : ;

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

alias clock_t = __darwin_clock_t;

alias time_t = __darwin_time_t;

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 getdate_err : Int;

external timezone : CLong;

external daylight : Int;

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

external (cdecl, "_clock") clock() : clock_t;

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

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

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

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

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

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

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

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

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

external (cdecl) tzset() : ;

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) posix2time(arg0:time_t) : time_t;

external (cdecl) tzsetwall() : ;

external (cdecl) time2posix(arg0:time_t) : time_t;

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

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

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

