;
;* crtdll.def
;* This file has no copyright assigned and is placed in the Public Domain.
;* This file is part of the mingw-runtime package.
;* No warranty is given; refer to the file DISCLAIMER.PD within the package.
;
; Exports from crtdll.dll from Windows 95 SYSTEM directory.  Matches also
; crtdll.dll provided with Windows 98, Windows Me and Windows NT 3.50.
; It is compatible also with new Windows NT versions (e.g. Windows 10).
;
; Windows NT 3.1 misses following symbols:
; _set_new_handler __dllonexit _heapchk _heapmin _heapset _heapwalk _ismb*
; _mb* (except _mbstrlen) _strdec _strinc _strncnt _strnextc _strninc _strspnp
; _wtoi _wtol
;
; Win32s 1.30c on Windows 3.1 misses following symbols:
; __argc_dll __argv_dll _environ_dll _pgmptr_dll
;
; Windows NT 3.1, NT 3.5 and Win9x miss following symbols:
; _itow _ltow _ultow
;
; NOTE: The crtdll is OBSOLETE and msvcrt should be used instead.  The msvcrt
; is available for free download from Microsoft Corporation and will work on
; Windows 95.  Support for the crtdll is deprecated and this file may be
; deleted in future versions.
;
; These are symbols for which I have not yet written prototypes or
; otherwise set up (they are still included below though unlike those
; first three).
;
;    _CIacos
;    _CIasin
;    _CIatan
;    _CIatan2
;    _CIcos
;    _CIcosh
;    _CIexp
;    _CIfmod
;    _CIlog
;    _CIlog10
;    _CIpow
;    _CIsin
;    _CIsinh
;    _CIsqrt
;    _CItan
;    _CItanh
;    __dllonexit
;    _acmdln_dll
;    _aexit_rtn_dll
;    _amsg_exit
;    _commode_dll
;    _cpumode_dll
;    _ctype
;    _fileinfo_dll
;    _fmode_dll
;    _ftol
;    _initterm
;    _osversion_dll
;    _purecall
;    _strdec
;    _strinc
;    _strncnt
;    _strnextc
;    _strninc
;    _strspnp
;
LIBRARY "CRTDLL.dll"
EXPORTS

; This is list of symbols available in all Windows versions (Win32s since Win32s 1.1; Win9x since Windows 95; WinNT since Windows NT 3.1)
; void *__cdecl operator new(unsigned int)
??2@YAPAXI@Z
; void __cdecl operator delete(void *)
??3@YAXPAX@Z
_CIacos
_CIasin
_CIatan
_CIatan2
_CIcos
_CIcosh
_CIexp
_CIfmod
_CIlog
_CIlog10
_CIpow
_CIsin
_CIsinh
_CIsqrt
_CItan
_CItanh
_HUGE_dll DATA
_HUGE DATA == _HUGE_dll
__msvcrt_XcptFilter == _XcptFilter ; rename _XcptFilter as it does not handle SSE floating point exceptions, real _XcptFilter provided by emu
__GetMainArgs
__doserrno
__fpecode
__isascii
__iscsym
__iscsymf
__mb_cur_max_dll DATA
__mb_cur_max DATA == __mb_cur_max_dll
__pxcptinfoptrs
__threadhandle
__threadid
__toascii
_abnormal_termination
_access
_acmdln_dll DATA
_acmdln DATA == _acmdln_dll
_aexit_rtn_dll DATA
_aexit_rtn DATA == _aexit_rtn_dll
_amsg_exit
_assert
_basemajor_dll DATA
_baseminor_dll DATA
_baseversion_dll DATA
_beep
__msvcrt_beginthread == _beginthread ; rename _beginthread as it does not handle SSE floating point exceptions, real _beginthread provided by emu
_c_exit
_cabs DATA
_cexit
_cgets
_chdir
_chdrive
_chgsign
_chmod
_chsize
_clearfp
_close
_commit
_commode_dll DATA
_commode DATA == _commode_dll
_control87
_controlfp
_copysign
_cprintf
_cpumode_dll DATA
_cputs
_creat
_cscanf
_ctype DATA
_cwait
_daylight_dll DATA
_daylight DATA == _daylight_dll
_dup
_dup2
_ecvt
_endthread
_eof
_errno
_except_handler2
_execl
_execle
_execlp
_execlpe
_execv
_execve
_execvp
_execvpe
_exit
_expand
_fcloseall
_fcvt
_fdopen
_fgetchar
_fgetwchar
_filbuf
_fileinfo_dll DATA
_fileinfo DATA == _fileinfo_dll
_filelength
_fileno
_findclose
_findfirst
_findnext
_finite
_flsbuf
_flushall
_fmode_dll DATA
_fmode DATA == _fmode_dll
_fpclass
_fpieee_flt
_fpreset DATA
_fputchar
_fputwchar
_fsopen
__crtdll_fstat == _fstat ; crtdll.dll's _fstat is incompatible with mingw-w64's _fstat, real _fstat provided by emu
_ftime
_ftol
_fullpath
_futime
_gcvt
_get_osfhandle
_getch
_getche
_getcwd
_getdcwd
_getdiskfree
_getdllprocaddr
_getdrive
_getdrives
_getpid
_getsystime
_getw
_global_unwind2
_hypot
_initterm
_isatty
_isctype
_isnan
_itoa
_j0
_j1
_jn
_kbhit
_lfind
_loaddll
_local_unwind2
_locking
_logb
_lrotl
_lrotr
_lsearch
_lseek
_ltoa
_makepath
_matherr
_mbstrlen
_memccpy
_memicmp
_mkdir
_mktemp
_msize
_nextafter
; _onexit ; disable _onexit for compatibility with DLL builds, real _onexit function provided by mingw-w64
_open
_open_osfhandle
_osmajor_dll DATA
_osminor_dll DATA
_osmode_dll DATA
_osver_dll DATA
_osver DATA == _osver_dll
_osversion_dll DATA
_pclose
_pctype_dll DATA
_pctype DATA == _pctype_dll
_pipe
_popen
_purecall
_putch
_putenv
_putw
_pwctype_dll DATA
_pwctype DATA == _pwctype_dll
_read
_rmdir
_rmtmp
_rotl
_rotr
_scalb
_searchenv
_seterrormode
_setjmp
_setmode
_setsystime
_sleep
_snprintf
_snwprintf
_sopen
_spawnl
_spawnle
_spawnlp
_spawnlpe
_spawnv
_spawnve
_spawnvp
_spawnvpe
_splitpath
__crtdll_stat == _stat ; crtdll.dll's _stat is incompatible with mingw-w64's _stat, real _stat provided by emu
_statusfp
_strcmpi
_strdate
_strdup
_strerror
_stricmp
_stricoll
_strlwr
_strnicmp
_strnset
_strrev
_strset
_strtime
_strupr
_swab
_sys_errlist DATA
_sys_nerr_dll DATA
_sys_nerr DATA == _sys_nerr_dll
_tell
_tempnam
_timezone_dll DATA
_timezone DATA == _timezone_dll
_tolower
_toupper
_tzname DATA
_tzset
_ultoa
_umask
_ungetch
_unlink
_unloaddll
_utime
_vsnprintf
_vsnwprintf
_wcsdup
_wcsicmp
_wcsicoll
_wcslwr
_wcsnicmp
_wcsnset
_wcsrev
_wcsset
_wcsupr
_winmajor_dll DATA
_winmajor DATA == _winmajor_dll
_winminor_dll DATA
_winminor DATA == _winminor_dll
_winver_dll DATA
_winver DATA == _winver_dll
_write
_y0
_y1
_yn
abort
abs
acos
asctime
asin DATA
atan DATA
atan2 DATA
_crt_atexit == atexit ; rename atexit to _crt_atexit for compatibility with UCRT, real atexit function provided by mingw-w64
atof
atoi
atol
bsearch
calloc
ceil
clearerr
clock
cos DATA
cosh
ctime
difftime
div
__msvcrt_exit DATA == exit ; mingw-w64 provides exit() function as wrapper around renamed __msvcrt_exit symbol
exp DATA
fabs DATA
fclose
feof
ferror
fflush
fgetc
fgetpos32 == fgetpos ; rename fgetpos as it is not 64-bit
fgets
fgetwc
floor
fmod
fopen
fprintf
fputc
fputs
fputwc
fread
free
freopen
frexp
fscanf
fseek
fsetpos32 == fsetpos ; rename fsetpos as it is not 64-bit
ftell
fwprintf
fwrite
fwscanf
getc
getchar
getenv
gets
gmtime
is_wctype
isalnum
isalpha
iscntrl
isdigit
isgraph
isleadbyte
islower
; isprint ; replaced by emu, CRT version mishandles TAB character
ispunct
isspace
isupper
iswalnum
iswalpha
iswascii
iswcntrl
__msvcrt_iswctype DATA == iswctype ; mingw-w64 provides real iswctype as a wrapper around renamed __msvcrt_iswctype
iswdigit
iswgraph
iswlower
; iswprint ; replaced by emu, CRT version mishandles TAB character
iswpunct
iswspace
iswupper
iswxdigit
isxdigit
labs
ldexp DATA
ldiv
localeconv
localtime
log
log10
longjmp
malloc
mblen
mbstowcs
mbtowc
memchr
memcmp
memcpy
memmove
memset
mktime
modf
perror
pow
printf
putc
putchar
puts
qsort
raise
rand
realloc
remove
rename
rewind
scanf
setbuf
setlocale
setvbuf
signal
sin
sinh
sprintf
sqrt
srand
sscanf
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strftime
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtod
strtok
strtol
strtoul
strxfrm
_swprintf == swprintf ; rename swprintf to _swprintf for compatibility with msvcr80+, real C95+ compatible swprintf provided by mingw-w64
swscanf
system
tan
tanh
time
; tmpfile replaced by emu, CRT version may not use writable temporary directory
tmpnam
tolower
toupper
towlower
towupper
ungetc
ungetwc
vfprintf
vfwprintf
vprintf
vsprintf
_vswprintf == vswprintf ; rename vswprintf to _vswprintf for compatibility with msvcr80+, real C95+ compatible vswprintf provided by mingw-w64
vwprintf
wcscat
wcschr
wcscmp
wcscoll
wcscpy
wcscspn
wcsftime
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsspn
wcsstr
wcstod
_wcstok == wcstok ; provide nonstandard function "wcstok" in the DLL, under the name "_wcstok" to match UCRT, the C95+ compatible "wcstok" is provided by mingw-w64
wcstol
wcstombs
wcstoul
wcsxfrm
wctomb
wprintf
wscanf

; This is list of symbols added in Win32s 1.15, available in all Win9x versions and since Windows NT 3.5
; int(__cdecl *)(unsigned int)__cdecl _set_new_handler(int(__cdecl *)(unsigned int))
?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z
__dllonexit

; This is list of symbols added in Win32s 1.20, available in all Win9x versions and since Windows NT 3.5
_ismbbalnum
_ismbbalpha
_ismbbgraph
_ismbbkalnum
_ismbbkana
_ismbbkpunct
_ismbblead
_ismbbprint
_ismbbpunct
_ismbbtrail
_ismbcalpha
_ismbcdigit
_ismbchira
_ismbckata
_ismbcl0
_ismbcl1
_ismbcl2
_ismbclegal
_ismbclower
_ismbcprint
_ismbcspace
_ismbcsymbol
_ismbcupper
_ismbslead
_ismbstrail
_mbbtombc
_mbbtype
_mbccpy
_mbcjistojms
_mbcjmstojis
_mbclen
_mbctohira
_mbctokata
_mbctolower
_mbctombb
_mbctoupper
_mbsbtype
_mbscat
_mbschr
_mbscmp
_mbscpy
_mbscspn
_mbsdec
_mbsdup
_mbsicmp
_mbsinc
_mbslen
_mbslwr
_mbsnbcat
_mbsnbcmp
_mbsnbcnt
_mbsnbcpy
_mbsnbicmp
_mbsnbset
_mbsncat
_mbsnccnt
_mbsncmp
_mbsncpy
_mbsnextc
_mbsnicmp
_mbsninc
_mbsnset
_mbspbrk
_mbsrchr
_mbsrev
_mbsset
_mbsspn
_mbsspnp
_mbsstr
_mbstok
_mbsupr
_strdec
_strinc
_strncnt
_strnextc
_strninc
_strspnp

; This is list of symbols added in Win32s 1.25, available in all Win9x versions and since Windows NT 3.1
_iob DATA

; This is list of symbols added in Win32s 1.30, available in all Win9x versions and since Windows NT 3.5
_heapchk
_heapmin
_heapset
_heapwalk
_mbctype DATA
_wtoi
_wtol

; This is list of symbols added in Win32s 1.30, available since Windows NT 3.51, but not available in Win9x
_itow
_ltow
_ultow

; This is list of symbols available in all WinNT and Win9x versions, but not available in Win32s
__argc_dll DATA
__argc DATA == __argc_dll
__argv_dll DATA
__argv DATA == __argv_dll
_environ_dll DATA
_environ DATA == _environ_dll
_pgmptr_dll DATA
_pgmptr DATA == _pgmptr_dll

; include symbol aliases for compatibility with msvcrt.dll
#define CRTDLL
#define FIXED_SIZE_SYMBOLS
#define NO_WIDE_FIXED_SIZE
#define NO_I64_FIXED_SIZE
#define NO_FPOS64_ALIASES
#define NO_TMPFILE_ALIAS
#define NO_STRCMPI_ALIAS
#define WITH_NEXTAFTER_ALIAS
#define WITH_GET_PUT_WCHAR_ALIASES
#define WITH_SETJMP3_ALIAS
#include "crt-aliases.def.in"
