; Exports of file msvcrt.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY "msvcrt.dll"
EXPORTS

iscsymf == __iscsymf
iscsym == __iscsym
isascii == __isascii
toascii == __toascii

wcscmpi == _wcsicmp
strcasecmp == _stricmp
strncasecmp == _strnicmp

access == _access
chdir == _chdir
chmod == _chmod
chsize == _chsize
close == _close
creat == _creat
cwait == _cwait
dup == _dup
dup2 == _dup2
ecvt == _ecvt
eof == _eof
execl == _execl
execle == _execle
execlp == _execlp
execlpe == _execlpe
execv == _execv
execve == _execve
execvp == _execvp
execvpe == _execvpe
fcvt == _fcvt
fdopen == _fdopen
fgetchar == _fgetchar
fgetwchar == _fgetwchar
filelength == _filelength
fileno == _fileno
; fpreset)
fputchar == _fputchar
fputwchar == _fputwchar
;fstat)
;ftime)
gcvt == _gcvt
getch == _getch
getche == _getche
getcwd == _getcwd
getpid == _getpid
getw == _getw
heapwalk == _heapwalk
isatty == _isatty
itoa == _itoa
kbhit == _kbhit
lfind == _lfind
lsearch == _lsearch
lseek == _lseek
ltoa == _ltoa
memccpy == _memccpy
memicmp == _memicmp
mkdir == _mkdir
mktemp == _mktemp
open == _open
pclose == _pclose
popen == _popen
putch == _putch
putenv == _putenv
putw == _putw
read == _read
rmdir == _rmdir
rmtmp == _rmtmp
searchenv == _searchenv
setmode == _setmode
sopen == _sopen
spawnl == _spawnl
spawnle == _spawnle
spawnlp == _spawnlp
spawnlpe == _spawnlpe
spawnv == _spawnv
spawnve == _spawnve
spawnvp == _spawnvp
spawnvpe == _spawnvpe
;stat)
strcmpi == _strcmpi
strdup == _strdup
stricmp == _stricmp
stricoll == _stricoll
strlwr == _strlwr
strnicmp == _strnicmp
strnset == _strnset
strrev == _strrev
strset == _strset
strupr == _strupr
swab == _swab
tell == _tell
tempnam == _tempnam
tzset == _tzset
umask == _umask
ungetch == _ungetch
unlink == _unlink
utime == _utime
wcsdup == _wcsdup
wcsicmp == _wcsicmp
wcsicoll == _wcsicoll
wcslwr == _wcslwr
wcsnicmp == _wcsnicmp
wcsnset == _wcsnset
wcsrev == _wcsrev
wcsset == _wcsset
wcsupr == _wcsupr
wpopen == _wpopen
write == _write
; non-ANSI functions declared in math.h
j0 == _j0
j1 == _j1
jn == _jn
y0 == _y0
y1 == _y1
yn == _yn
chgsign == _chgsign
;scalb
finite == _finite
fpclass == _fpclass
; C99 functions
;cabs
hypot == _hypot
;logb
nextafter == _nextafter

_daylight DATA
_timezone DATA
_tzname DATA
daylight == _daylight
timezone == _timezone
tzname == _tzname

longjmp DATA
# 10 "msvcrt.def" 2

$I10_OUTPUT
; public: __attribute__((__cdecl__)) __non_rtti_object::__non_rtti_object(class __non_rtti_object const & __ptr64) __ptr64
; GCC = __ZN17__non_rtti_objectC2ERKS_
??0__non_rtti_object@@QEAA@AEBV0@@Z
; public: __attribute__((__cdecl__)) __non_rtti_object::__non_rtti_object(char const * __ptr64) __ptr64
; GCC = __ZN17__non_rtti_objectC1ERKS_
??0__non_rtti_object@@QEAA@PEBD@Z
; private: __attribute__((__cdecl__)) bad_cast::bad_cast(char const * __ptr64 const * __ptr64) __ptr64
??0bad_cast@@AEAA@PEBQEBD@Z
; public: __attribute__((__cdecl__)) bad_cast::bad_cast(char const * __ptr64 const & __ptr64) __ptr64
??0bad_cast@@QEAA@AEBQEBD@Z
; public: __attribute__((__cdecl__)) bad_cast::bad_cast(class bad_cast const & __ptr64) __ptr64
??0bad_cast@@QEAA@AEBV0@@Z
; public: __attribute__((__cdecl__)) bad_cast::bad_cast(char const * __ptr64) __ptr64
??0bad_cast@@QEAA@PEBD@Z
; public: __attribute__((__cdecl__)) bad_typeid::bad_typeid(class bad_typeid const & __ptr64) __ptr64
??0bad_typeid@@QEAA@AEBV0@@Z
; public: __attribute__((__cdecl__)) bad_typeid::bad_typeid(char const * __ptr64) __ptr64
??0bad_typeid@@QEAA@PEBD@Z
; public: __attribute__((__cdecl__)) exception::exception(char const * __ptr64 const & __ptr64) __ptr64
??0exception@@QEAA@AEBQEBD@Z
; public: __attribute__((__cdecl__)) exception::exception(char const * __ptr64 const & __ptr64,int) __ptr64
??0exception@@QEAA@AEBQEBDH@Z
; public: __attribute__((__cdecl__)) exception::exception(class exception const & __ptr64) __ptr64
??0exception@@QEAA@AEBV0@@Z
; public: __attribute__((__cdecl__)) exception::exception(void) __ptr64
??0exception@@QEAA@XZ
; public: virtual __attribute__((__cdecl__)) __non_rtti_object::~__non_rtti_object(void) __ptr64
??1__non_rtti_object@@UEAA@XZ
; public: virtual __attribute__((__cdecl__)) bad_cast::~bad_cast(void) __ptr64
??1bad_cast@@UEAA@XZ
; public: virtual __attribute__((__cdecl__)) bad_typeid::~bad_typeid(void) __ptr64
??1bad_typeid@@UEAA@XZ
; public: virtual __attribute__((__cdecl__)) exception::~exception(void) __ptr64
??1exception@@UEAA@XZ
; public: virtual __attribute__((__cdecl__)) type_info::~type_info(void) __ptr64
??1type_info@@UEAA@XZ
; void * __ptr64 __attribute__((__cdecl__)) operator new(unsigned __int64)
; GCC = __Znwy
??2@YAPEAX_K@Z
; void __attribute__((__cdecl__)) operator delete(void * __ptr64)
; GCC = __ZdlPv
??3@YAXPEAX@Z
; public: class __non_rtti_object & __ptr64 __attribute__((__cdecl__)) __non_rtti_object::operator=(class __non_rtti_object const & __ptr64) __ptr64
??4__non_rtti_object@@QEAAAEAV0@AEBV0@@Z
; public: class bad_cast & __ptr64 __attribute__((__cdecl__)) bad_cast::operator=(class bad_cast const & __ptr64) __ptr64
??4bad_cast@@QEAAAEAV0@AEBV0@@Z
; public: class bad_typeid & __ptr64 __attribute__((__cdecl__)) bad_typeid::operator=(class bad_typeid const & __ptr64) __ptr64
??4bad_typeid@@QEAAAEAV0@AEBV0@@Z
; public: class exception & __ptr64 __attribute__((__cdecl__)) exception::operator=(class exception const & __ptr64) __ptr64
??4exception@@QEAAAEAV0@AEBV0@@Z
; public: int __attribute__((__cdecl__)) type_info::operator==(class type_info const & __ptr64)const __ptr64
??8type_info@@QEBAHAEBV0@@Z
; public: int __attribute__((__cdecl__)) type_info::operator!=(class type_info const & __ptr64)const __ptr64
??9type_info@@QEBAHAEBV0@@Z
; const __non_rtti_object::`vftable'
??_7__non_rtti_object@@6B@
; const bad_cast::`vftable'
??_7bad_cast@@6B@
; const bad_typeid::`vftable'
??_7bad_typeid@@6B@
; const exception::`vftable'
??_7exception@@6B@
; public: void __attribute__((__cdecl__)) bad_cast::`default constructor closure'(void) __ptr64
??_Fbad_cast@@QEAAXXZ
; public: void __attribute__((__cdecl__)) bad_typeid::`default constructor closure'(void) __ptr64
??_Fbad_typeid@@QEAAXXZ
; void * __ptr64 __attribute__((__cdecl__)) operator new[](unsigned __int64)
; GNU = __Znay
??_U@YAPEAX_K@Z
; void __attribute__((__cdecl__)) operator delete[](void * __ptr64)
; GNU = __ZdaPv
??_V@YAXPEAX@Z
__uncaught_exception
; int (__attribute__((__cdecl__))*__attribute__((__cdecl__)) _query_new_handler(void))(unsigned __int64)
; GNU = __Z18_query_new_handlerv
?_query_new_handler@@YAP6AH_K@ZXZ
; int __attribute__((__cdecl__)) _query_new_mode(void)
; GNU = __Z15_query_new_modev
?_query_new_mode@@YAHXZ
; int (__attribute__((__cdecl__))*__attribute__((__cdecl__)) _set_new_handler(int (__attribute__((__cdecl__))*)(unsigned __int64)))(unsigned __int64)
; GNU = __Z16_set_new_handlerPFiyE
?_set_new_handler@@YAP6AH_K@ZP6AH0@Z@Z
; int __attribute__((__cdecl__)) _set_new_mode(int)
; GNU = __Z13_set_new_modei
?_set_new_mode@@YAHH@Z
; void (__attribute__((__cdecl__))*__attribute__((__cdecl__)) _set_se_translator(void (__attribute__((__cdecl__))*)(unsigned int,struct _EXCEPTION_POINTERS * __ptr64)))(unsigned int,struct _EXCEPTION_POINTERS * __ptr64)
; GNU = __Z18_set_se_translatorPFvjP19_EXCEPTION_POINTERSE
?_set_se_translator@@YAP6AXIPEAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z
; public: int __attribute__((__cdecl__)) type_info::before(class type_info const & __ptr64)const __ptr64
?before@type_info@@QEBAHAEBV1@@Z
; public: char const * __ptr64 __attribute__((__cdecl__)) type_info::name(void)const __ptr64
?name@type_info@@QEBAPEBDXZ
; public: char const * __ptr64 __attribute__((__cdecl__)) type_info::raw_name(void)const __ptr64
?raw_name@type_info@@QEBAPEBDXZ
; void (__attribute__((__cdecl__))*__attribute__((__cdecl__)) set_new_handler(void (__attribute__((__cdecl__))*)(void)))(void)
; GNU = __Z15set_new_handlerPFvvE
?set_new_handler@@YAP6AXXZP6AXXZ@Z
; void (__attribute__((__cdecl__))*__attribute__((__cdecl__)) set_terminate(void (__attribute__((__cdecl__))*)(void)))(void)
; GNU = __Z13set_terminatePFvvE
?set_terminate@@YAP6AXXZP6AXXZ@Z
; void (__attribute__((__cdecl__))*__attribute__((__cdecl__)) set_unexpected(void (__attribute__((__cdecl__))*)(void)))(void)
; GNU = __Z14set_unexpectedPFvvE
?set_unexpected@@YAP6AXXZP6AXXZ@Z
; void __attribute__((__cdecl__)) terminate(void)
; GNU = __Z9terminatev
?terminate@@YAXXZ
; void __attribute__((__cdecl__)) unexpected(void)
; GNU = __Z10unexpectedv
?unexpected@@YAXXZ
; public: virtual char const * __ptr64 __attribute__((__cdecl__)) exception::what(void)const __ptr64
?what@exception@@UEBAPEBDXZ
_CxxThrowException
_Getdays
_Getmonths
_Gettnames
_HUGE DATA
_Strftime
_XcptFilter
__C_specific_handler
__CppXcptFilter
__CxxFrameHandler
__DestructExceptionObject
__RTCastToVoid
__RTDynamicCast
__RTtypeid
__STRINGTOLD
___lc_codepage_func
___lc_collate_cp_func
___lc_handle_func
___mb_cur_max_func
___setlc_active_func
___unguarded_readlc_active_add_func
__argc DATA
__argv DATA
__badioinfo DATA
__crtCompareStringA
__crtCompareStringW
__crtGetLocaleInfoW
__crtGetStringTypeW
__crtLCMapStringA
__crtLCMapStringW
__dllonexit
__doserrno
__fpecode
__getmainargs
__initenv DATA
__iob_func
__isascii
__iscsym
__iscsymf
__lc_codepage DATA
__lc_collate_cp DATA
__lc_handle DATA
__lconv_init
__mb_cur_max DATA
__pctype_func
__pioinfo DATA
__pwctype_func
__pxcptinfoptrs
__set_app_type
__setlc_active DATA
__setusermatherr
__threadhandle
__threadid
__toascii
__unDName
__unDNameEx
__unguarded_readlc_active DATA
__wargv DATA
__wcserror
__wcserror_s
__wgetmainargs
__winitenv DATA
_abs64
_access
; _access_s Replaced by emu
_acmdln DATA
_aexit_rtn DATA
_aligned_free
_aligned_malloc
_aligned_offset_malloc
_aligned_offset_realloc
_aligned_realloc
_amsg_exit
_assert DATA
_atodbl
_atodbl_l
_atof_l
_atoflt_l
_atoi64
_atoi64_l
_atoi_l
_atol_l
_atoldbl
_atoldbl_l
_beep
_beginthread
_beginthreadex
_c_exit
_cabs DATA
_callnewh
_cexit
_cgets
; _cgets_s replaced by emu
_cgetws
; _cgetws_s replaced by emu
_chdir
_chdrive
_chgsign
_chgsignf
_chmod
_chsize
; _chsize_s replaced by emu
_clearfp
_close
_commit
_commode DATA
_control87
_controlfp
; _controlfp_s replaced by emu
_copysign
_copysignf
_cprintf
_cprintf_l
_cprintf_p
_cprintf_p_l
; _cprintf_s Replaced by emu
; _cprintf_s_l likewise.
_cputs
_cputws
_creat
_cscanf
_cscanf_l
_cscanf_s
_cscanf_s_l
; _ctime32_s replaced by emu
_ctime64
; _ctime64_s replaced by emu
_ctype
_cwait
_cwprintf
_cwprintf_l
_cwprintf_p
_cwprintf_p_l
; _cwprintf_s Replaced by emu
; _cwprintf_s_l Likewise.
_cwscanf
_cwscanf_l
_cwscanf_s
_cwscanf_s_l
_dstbias DATA
_dup
_dup2
_ecvt
_ecvt_s
_endthread
_endthreadex
_environ DATA
_eof
_errno
_execl
_execle
_execlp
_execlpe
_execv
_execve
_execvp
_execvpe
_exit
_expand
_fcloseall
_fcvt
_fcvt_s
_fdopen
_fgetchar
_fgetwchar
_filbuf
_fileinfo DATA
_filelength
_filelengthi64
_fileno
_findclose
_findfirst
_findfirst64
_findfirsti64
_findfirst64i32 == _findfirst
_findnext
_findnext64
_findnexti64
_findnext64i32 == _findnext
_finite
_finitef
_flsbuf
_flushall
_fmode DATA
_fpclass
_fpclassf
_fpreset DATA
_fprintf_l
_fprintf_p
_fprintf_p_l
_fprintf_s_l
_fputchar
_fputwchar
_fscanf_l
_fscanf_s_l
_fsopen
_fstat
_fstat64
_fstati64
_fstat64i32 == _fstat
_ftime
_ftime32_s
_ftime64
_ftime64_s
_ftime_s == _ftime64_s
_fullpath
_futime
_futime64
_fwprintf_l
_fwprintf_p
_fwprintf_p_l
_fwprintf_s_l
_fwscanf_l
_fwscanf_s_l
_gcvt
_gcvt_s
_get_heap_handle
_get_osfhandle
;_get_output_format provided by emu
_get_sbh_threshold
_getch
_getche
_getcwd
_getdcwd
_getdiskfree
_getdllprocaddr
_getdrive
_getdrives
_getmaxstdio
_getmbcp
_getpid
_getsystime
_getw
_getwch
_getwche
_getws
_gmtime32
; _gmtime32_s replaced by emu
_gmtime64
; _gmtime64_s replaced by emu
_heapadd
_heapchk
_heapmin
_heapset
_heapused
_heapwalk
_hypot
_hypotf
_i64toa
_i64toa_s
_i64tow
_i64tow_s
_initterm
_iob DATA
_isalnum_l
_isalpha_l
_isatty
_iscntrl_l
_isctype
_isctype_l
_isdigit_l
_isgraph_l
_isleadbyte_l
_islower_l
_ismbbalnum
_ismbbalnum_l
_ismbbalpha
_ismbbalpha_l
_ismbbgraph
_ismbbgraph_l
_ismbbkalnum
_ismbbkalnum_l
_ismbbkana
_ismbbkana_l
_ismbbkprint
_ismbbkprint_l
_ismbbkpunct
_ismbbkpunct_l
_ismbblead
_ismbblead_l
_ismbbprint
_ismbbprint_l
_ismbbpunct
_ismbbpunct_l
_ismbbtrail
_ismbbtrail_l
_ismbcalnum
_ismbcalnum_l
_ismbcalpha
_ismbcalpha_l
_ismbcdigit
_ismbcdigit_l
_ismbcgraph
_ismbcgraph_l
_ismbchira
_ismbchira_l
_ismbckata
_ismbckata_l
_ismbcl0
_ismbcl0_l
_ismbcl1
_ismbcl1_l
_ismbcl2
_ismbcl2_l
_ismbclegal
_ismbclegal_l
_ismbclower
_ismbclower_l
_ismbcprint
_ismbcprint_l
_ismbcpunct
_ismbcpunct_l
_ismbcspace
_ismbcspace_l
_ismbcsymbol
_ismbcsymbol_l
_ismbcupper
_ismbcupper_l
_ismbslead
_ismbslead_l
_ismbstrail
_ismbstrail_l
_isnan
_isnanf
_isprint_l
_isspace_l
_isupper_l
_iswalnum_l
_iswalpha_l
_iswcntrl_l
_iswctype_l
_iswdigit_l
_iswgraph_l
_iswlower_l
_iswprint_l
_iswpunct_l
_iswspace_l
_iswupper_l
_iswxdigit_l
_isxdigit_l
_itoa
_itoa_s
_itow
_itow_s
_j0
_j1
_jn
_kbhit
_lfind
_loaddll
_lfind_s
_local_unwind
_localtime32
; _localtime32_s replaced by emu
_localtime64
; _localtime64_s replaced by emu
_lock
_locking
_logb
_logbf
_lrotl
_lrotr
_lsearch
_lsearch_s
_lseek
_lseeki64
_ltoa
_ltoa_s
_ltow
_ltow_s
_makepath
_makepath_s
_mbbtombc
_mbbtombc_l
_mbbtype
_mbcasemap DATA
_mbccpy
_mbccpy_l
_mbccpy_s
_mbccpy_s_l
_mbcjistojms
_mbcjistojms_l
_mbcjmstojis
_mbcjmstojis_l
_mbclen
_mbclen_l
_mbctohira
_mbctohira_l
_mbctokata
_mbctokata_l
_mbctolower
_mbctolower_l
_mbctombb
_mbctombb_l
_mbctoupper
_mbctoupper_l
_mbctype DATA
_mblen_l
_mbsbtype
_mbsbtype_l
_mbscat
_mbscat_s
_mbscat_s_l
_mbschr
_mbschr_l
_mbscmp
_mbscmp_l
_mbscoll
_mbscoll_l
_mbscpy
_mbscpy_s
_mbscpy_s_l
_mbscspn
_mbscspn_l
_mbsdec
_mbsdec_l
_mbsdup
_mbsicmp
_mbsicmp_l
_mbsicoll
_mbsicoll_l
_mbsinc
_mbsinc_l
_mbslen
_mbslen_l
_mbslwr
_mbslwr_l
_mbslwr_s
_mbslwr_s_l
_mbsnbcat
_mbsnbcat_l
_mbsnbcat_s
_mbsnbcat_s_l
_mbsnbcmp
_mbsnbcmp_l
_mbsnbcnt
_mbsnbcnt_l
_mbsnbcoll
_mbsnbcoll_l
_mbsnbcpy
_mbsnbcpy_l
_mbsnbcpy_s
_mbsnbcpy_s_l
_mbsnbicmp
_mbsnbicmp_l
_mbsnbicoll
_mbsnbicoll_l
_mbsnbset
_mbsnbset_l
_mbsnbset_s
_mbsnbset_s_l
_mbsncat
_mbsncat_l
_mbsncat_s
_mbsncat_s_l
_mbsnccnt
_mbsnccnt_l
_mbsncmp
_mbsncmp_l
_mbsncoll
_mbsncoll_l
_mbsncpy
_mbsncpy_l
_mbsncpy_s
_mbsncpy_s_l
_mbsnextc
_mbsnextc_l
_mbsnicmp
_mbsnicmp_l
_mbsnicoll
_mbsnicoll_l
_mbsninc
_mbsninc_l
_mbsnlen
_mbsnlen_l
_mbsnset
_mbsnset_l
_mbsnset_s
_mbsnset_s_l
_mbspbrk
_mbspbrk_l
_mbsrchr
_mbsrchr_l
_mbsrev
_mbsrev_l
_mbsset
_mbsset_l
_mbsset_s
_mbsset_s_l
_mbsspn
_mbsspn_l
_mbsspnp
_mbsspnp_l
_mbsstr
_mbsstr_l
_mbstok
_mbstok_l
_mbstok_s
_mbstok_s_l
_mbstowcs_l
_mbstowcs_s_l
_mbstrlen
_mbstrlen_l
_mbstrnlen
_mbstrnlen_l
_mbsupr
_mbsupr_l
_mbsupr_s
_mbsupr_s_l
_mbtowc_l
_memccpy
_memicmp
_memicmp_l
_mkdir
_mkgmtime
_mkgmtime64
_mktemp
; _mktemp_s replaced by emu
_mktime64
_msize
_nextafter
_nextafterf
_onexit
_open
_open_osfhandle
_osplatform DATA
_osver DATA
_pclose
_pctype DATA
_pgmptr DATA
_pipe
_popen
_printf_l
_printf_p
_printf_p_l
_printf_s_l
_purecall
_putch
_putenv
_putenv_s
_putw
_putwch
_putws
_pwctype DATA
_read
_resetstkoflw
_rmdir
_rmtmp
_rotl
_rotl64
_rotr
_rotr64
_scalb
_scalbf
_scanf_l
_scanf_s_l
_scprintf
_scprintf_l
_scprintf_p_l
_scwprintf
_scwprintf_l
_scwprintf_p_l
_searchenv
_searchenv_s
_set_error_mode
_set_sbh_threshold
; _set_output_format provided by emu
_seterrormode
_setjmp
_setjmpex
_setmaxstdio
_setmbcp
_setmode
_setsystime
_sleep
_snprintf
_snprintf_c
_snprintf_c_l
_snprintf_l
_snprintf_s
_snprintf_s_l
_snscanf
_snscanf_l
_snscanf_s
_snscanf_s_l
_snwprintf
snwprintf == _snwprintf
_snwprintf_l
_snwprintf_s
_snwprintf_s_l
_snwscanf
_snwscanf_l
_snwscanf_s
_snwscanf_s_l
_sopen
_sopen_s
_spawnl
_spawnle
_spawnlp
_spawnlpe
_spawnv
_spawnve
_spawnvp
_spawnvpe
_splitpath
_splitpath_s
_sprintf_l
_sprintf_p_l
_sprintf_s_l
_sscanf_l
_sscanf_s_l
_stat
_stat64
_stati64
_stat64i32 == _stat
_statusfp
_strcmpi
_strcoll_l
_strdate
; _strdate_s replaced by emu
_strdup
_strerror
_strerror_s
_stricmp
_stricmp_l
_stricoll
_stricoll_l
_strlwr
_strlwr_l
_strlwr_s
_strlwr_s_l
_strncoll
_strncoll_l
_strnicmp
_strnicmp_l
_strnicoll
_strnicoll_l
_strnset
_strnset_s
_strrev
_strset
_strset_s
_strtime
; _strtime_s replaced by emu
_strtod_l
_strtoi64
_strtoi64_l
_strtol_l
_strtoui64
_strtoui64_l
_strtoul_l
_strupr
_strupr_l
_strupr_s
_strupr_s_l
_strxfrm_l
_swab
_swprintf == swprintf
_swprintf_c
_swprintf_c_l
_swprintf_p_l
_swprintf_s_l
_swscanf_l
_swscanf_s_l
_sys_errlist DATA
_sys_nerr DATA
_tell
_telli64
_tempnam
_time64
_tolower
_tolower_l
_toupper
_toupper_l
_towlower_l
_towupper_l
_tzset
_ui64toa
_ui64toa_s
_ui64tow
_ui64tow_s
_ultoa
_ultoa_s
_ultow
_ultow_s
_umask
; _umask_s replaced by emu
_ungetch
_ungetwch
_unlink
_unloaddll
_unlock
_utime
_utime64
_vcprintf
_vcprintf_l
_vcprintf_p
_vcprintf_p_l
; _vcprintf_s Replaced by emu
; _vcprintf_s_l Likewise.
_vcwprintf
_vcwprintf_l
_vcwprintf_p
_vcwprintf_p_l
; _vcwprintf_s Replaced by emu
; _vcwprintf_s_l Likewise.
_vfprintf_l
_vfprintf_p
_vfprintf_p_l
_vfprintf_s_l
_vfwprintf_l
_vfwprintf_p
_vfwprintf_p_l
_vfwprintf_s_l
_vprintf_l
_vprintf_p
_vprintf_p_l
_vprintf_s_l
_vscprintf
_vscprintf_l
_vscprintf_p_l
_vscwprintf
_vscwprintf_l
_vscwprintf_p_l
_vsnprintf
_vsnprintf_c
_vsnprintf_c_l
_vsnprintf_l
_vsnprintf_s
_vsnprintf_s_l
_vsnwprintf
vsnwprintf == _vsnwprintf
_vsnwprintf_l
_vsnwprintf_s
_vsnwprintf_s_l
_vsprintf_l
_vsprintf_p
_vsprintf_p_l
_vsprintf_s_l
_vswprintf
_vswprintf_c
_vswprintf_c_l
_vswprintf_l
_vswprintf_p_l
_vswprintf_s_l
_vwprintf_l
_vwprintf_p
_vwprintf_p_l
_vwprintf_s_l
_waccess
; _waccess_s Replaced by emu
_wasctime
; _wasctime_s Replaced by emu
_wchdir
_wchmod
_wcmdln DATA
_wcreat
_wcscoll_l
_wcsdup
_wcserror
_wcserror_s
_wcsftime_l
_wcsicmp
_wcsicmp_l
_wcsicoll
_wcsicoll_l
_wcslwr
_wcslwr_l
_wcslwr_s
_wcslwr_s_l
_wcsncoll
_wcsncoll_l
_wcsnicmp
_wcsnicmp_l
_wcsnicoll
_wcsnicoll_l
_wcsnset
_wcsnset_s
_wcsrev
_wcsset
_wcsset_s
_wcstoi64
_wcstoi64_l
_wcstol_l
_wcstombs_l
_wcstombs_s_l
_wcstoui64
_wcstoui64_l
_wcstoul_l
_wcsupr
_wcsupr_l
_wcsupr_s
_wcsupr_s_l
_wcsxfrm_l
_wctime
; _wctime32_s replaced by emu
_wctime64
; _wctime64_s replaced by emu
_wctomb_l
_wctomb_s_l
_wctype
_wenviron DATA
_wexecl
_wexecle
_wexeclp
_wexeclpe
_wexecv
_wexecve
_wexecvp
_wexecvpe
_wfdopen
_wfindfirst
_wfindfirst64
_wfindfirsti64
_wfindfirst64i32 == _wfindfirst
_wfindnext
_wfindnext64
_wfindnexti64
_wfindnext64i32 == _wfindnext
_wfopen
_wfopen_s
_wfreopen
_wfreopen_s
_wfsopen
_wfullpath
_wgetcwd
_wgetdcwd
_wgetenv
_wgetenv_s
_winmajor DATA
_winminor DATA
_winput_s
_winver DATA
_wmakepath
_wmakepath_s
_wmkdir
_wmktemp
; _wmktemp_s replaced by emu
_wopen
_woutput_s
_wperror
_wpgmptr DATA
_wpopen
_wprintf_l
_wprintf_p
_wprintf_p_l
_wprintf_s_l
_wputenv
_wputenv_s
_wremove
_wrename
_write
_wrmdir
_wscanf_l
_wscanf_s_l
_wsearchenv
_wsearchenv_s
_wsetlocale
_wsopen
_wsopen_s
_wspawnl
_wspawnle
_wspawnlp
_wspawnlpe
_wspawnv
_wspawnve
_wspawnvp
_wspawnvpe
_wsplitpath
_wsplitpath_s
_wstat
_wstat64
_wstati64
_wstat64i32 == _wstat
_wstrdate
; _wstrdate_s replaced by emu
_wstrtime
; _wstrtime_s replaced by emu
_wsystem
_wtempnam
_wtmpnam
_wtmpnam_s
_wtof
_wtof_l
_wtoi
_wtoi64
_wtoi64_l
_wtoi_l
_wtol
_wtol_l
_wunlink
_wutime
_wutime64
_y0
_y1
_yn
abort
abs
acos
acosf DATA
asctime
; asctime_s replaced by emu
asin
asinf DATA
atan
atan2 DATA
atan2f DATA
atanf DATA
atexit DATA
atof
atoi
atol
bsearch
bsearch_s
calloc
ceil DATA
ceilf DATA
clearerr
clearerr_s
clock
cos DATA
cosf DATA
cosh
coshf DATA
ctime
difftime
div
exit
exp DATA
expf DATA
fabs DATA
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
fgetwc
fgetws
floor DATA
floorf DATA
fmod DATA
fmodf DATA
fopen
fopen_s
fprintf
fprintf_s
fputc
fputs
fputwc
fputws
fread
free
freopen
freopen_s
; If we implement frexp, we can set it to DATA only.
frexp
fscanf
fscanf_s
fseek
fsetpos
ftell
fwprintf
fwprintf_s
fwrite
fwscanf
fwscanf_s
getc
getchar
getenv
getenv_s
gets
getwc
getwchar
gmtime
is_wctype
isalnum
isalpha
iscntrl
isdigit
isgraph
isleadbyte
islower
isprint
ispunct
isspace
isupper
iswalnum
iswalpha
iswascii
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
isxdigit
labs
ldexp DATA
ldiv
localeconv
localtime
log DATA
log10
log10f DATA
logf DATA
malloc
mblen
mbsrtowcs_s
mbstowcs
mbstowcs_s
mbtowc
memchr
memcmp
memcpy
; memcpy_s replaced by emu
memmove
; memmove_s replaced by emu
memset
mktime
modf DATA
modff DATA
perror
pow DATA
powf DATA
printf
printf_s
putc
putchar
puts
putwc
putwchar
qsort
qsort_s
raise
rand
; rand_s replaced by emu
realloc
remove
rename
rewind
scanf
scanf_s
setbuf
setjmp
setlocale
setvbuf
signal
sin DATA
sinf DATA
; if we implement sinh, we can set it DATA only.
sinh
sinhf DATA
sprintf
; sprintf_s replaced by emu
sqrt DATA
sqrtf DATA
srand
sscanf
sscanf_s
strcat
strcat_s
strchr
strcmp
strcoll
strcpy
strcpy_s
strcspn
strerror
; strerror_s replaced by emu
strftime
strlen
strncat
strncat_s
strncmp
strncpy
strncpy_s
; strnlen replaced by emu
strpbrk
strrchr
strspn
strstr
strtod
strtok
strtok_s
strtol
strtoul
strxfrm
swprintf
swprintf_s
swscanf
swscanf_s
system
tan
tanf DATA
; if we implement tanh, we can set it to DATA only.
tanh
time == _time64
tmpfile
tmpfile_s
tmpnam
tmpnam_s
tolower
toupper
towlower
towupper
ungetc
ungetwc
vfprintf
vfprintf_s
vfwprintf
vfwprintf_s
vprintf
vprintf_s
vsprintf
; vsprintf_s replaced by emu
vswprintf
vswprintf_s
vwprintf
vwprintf_s
wcrtomb_s
wcscat
wcscat_s
wcschr
wcscmp
wcscoll
wcscpy
wcscpy_s
wcscspn
wcsftime
wcslen
wcsncat
wcsncat_s
wcsncmp
wcsncpy
wcsncpy_s
; We provide replacement implementation in libmingwex
wcsnlen DATA
wcspbrk
wcsrchr
wcsrtombs_s
wcsspn
wcsstr
wcstod
wcstok
wcstok_s
wcstol
wcstombs
wcstombs_s
wcstoul
wcsxfrm
wctomb
wctomb_s
wprintf
wprintf_s
wscanf
wscanf_s
