From 9c9f4a9fd767dd4d430d54bc59a2c7efab84545a Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Mon, 25 Jan 2010 22:01:02 +0000 Subject: [PATCH] Revert r45245 - r45247 Although the idea of using mingw-w64's routines is good, we can't because it's using x87. We need SSE2. svn path=/branches/ros-amd64-bringup/; revision=45255 --- reactos/dll/win32/gdiplus/gdiplus.rbuild | 3 + reactos/dll/win32/msvcrt/dllmain.c | 2 +- reactos/dll/win32/msvcrt/msvcrt-amd64.def | 850 +++++++++++++++++ reactos/dll/win32/msvcrt/msvcrt-i386.def | 860 ++++++++++++++++++ reactos/dll/win32/msvcrt/msvcrt.rbuild | 2 +- reactos/dll/win32/msvcrt/msvcrt.spec | 839 ----------------- reactos/include/crt/math.h | 25 +- reactos/lib/sdk/crt/crt.rbuild | 98 +- reactos/lib/sdk/crt/except/cppexcept.c | 8 - reactos/lib/sdk/crt/except/i386/unwind.c | 18 +- reactos/lib/sdk/crt/libcntpr.rbuild | 43 +- reactos/lib/sdk/crt/math/acosf.c | 29 - reactos/lib/sdk/crt/math/amd64/atan.S | 21 + reactos/lib/sdk/crt/math/amd64/atan2.S | 21 + reactos/lib/sdk/crt/math/amd64/ceil.S | 21 + reactos/lib/sdk/crt/math/amd64/ceilf.S | 40 + reactos/lib/sdk/crt/math/amd64/cos.S | 21 + reactos/lib/sdk/crt/math/amd64/exp.S | 21 + reactos/lib/sdk/crt/math/amd64/fabs.S | 21 + reactos/lib/sdk/crt/math/amd64/floor.S | 21 + reactos/lib/sdk/crt/math/amd64/floorf.S | 40 + reactos/lib/sdk/crt/math/amd64/fmod.S | 21 + reactos/lib/sdk/crt/math/amd64/fmodf.S | 21 + reactos/lib/sdk/crt/math/amd64/ldexp.S | 21 + reactos/lib/sdk/crt/math/amd64/log.S | 21 + reactos/lib/sdk/crt/math/amd64/log10.S | 21 + reactos/lib/sdk/crt/math/amd64/sin.S | 21 + reactos/lib/sdk/crt/math/amd64/sqrt.S | 21 + reactos/lib/sdk/crt/math/amd64/sqrtf.S | 20 + reactos/lib/sdk/crt/math/amd64/tan.S | 21 + reactos/lib/sdk/crt/math/asinf.c | 27 - reactos/lib/sdk/crt/math/atan.c | 18 - reactos/lib/sdk/crt/math/atan2.c | 16 - reactos/lib/sdk/crt/math/atan2f.c | 22 - reactos/lib/sdk/crt/math/atanf.c | 23 - reactos/lib/sdk/crt/math/copysign.c | 21 - reactos/lib/sdk/crt/math/copysignf.c | 19 - reactos/lib/sdk/crt/math/cosf.c | 11 - reactos/lib/sdk/crt/math/exp.c | 55 -- reactos/lib/sdk/crt/math/expf.c | 10 - reactos/lib/sdk/crt/math/fabs.c | 16 - reactos/lib/sdk/crt/math/fmod.c | 21 - reactos/lib/sdk/crt/math/fmodf.c | 29 - reactos/lib/sdk/crt/math/hypotf.c | 12 - reactos/lib/sdk/crt/math/i386/atan_asm.s | 50 + reactos/lib/sdk/crt/math/i386/ceil.S | 54 -- reactos/lib/sdk/crt/math/i386/ceil_asm.s | 57 ++ reactos/lib/sdk/crt/math/i386/ceilf.S | 54 -- reactos/lib/sdk/crt/math/i386/cos.S | 53 -- reactos/lib/sdk/crt/math/i386/cos_asm.s | 49 + reactos/lib/sdk/crt/math/i386/fabs_asm.s | 49 + reactos/lib/sdk/crt/math/i386/floor.S | 62 -- reactos/lib/sdk/crt/math/i386/floorf.S | 61 -- reactos/lib/sdk/crt/math/i386/log.S | 65 -- reactos/lib/sdk/crt/math/i386/log10.S | 92 -- reactos/lib/sdk/crt/math/i386/log10_asm.s | 27 + reactos/lib/sdk/crt/math/i386/log_asm.s | 51 ++ reactos/lib/sdk/crt/math/i386/sin.S | 57 -- reactos/lib/sdk/crt/math/i386/sin_asm.s | 49 + reactos/lib/sdk/crt/math/i386/sqrt_asm.s | 49 + reactos/lib/sdk/crt/math/i386/tan.S | 61 -- reactos/lib/sdk/crt/math/i386/tan_asm.s | 52 ++ reactos/lib/sdk/crt/math/j0_y0.c | 30 + reactos/lib/sdk/crt/math/j1_y1.c | 30 + reactos/lib/sdk/crt/math/jn_yn.c | 30 + reactos/lib/sdk/crt/math/log10f.c | 11 - reactos/lib/sdk/crt/math/logb.c | 23 - reactos/lib/sdk/crt/math/logbf.c | 23 - reactos/lib/sdk/crt/math/logf.c | 11 - reactos/lib/sdk/crt/math/modff.c | 27 - reactos/lib/sdk/crt/math/nextafter.c | 66 -- reactos/lib/sdk/crt/math/nextafterf.c | 32 - .../lib/sdk/crt/math/{ldexp.c => pow_asm.c} | 23 +- reactos/lib/sdk/crt/math/powf.c | 10 - reactos/lib/sdk/crt/math/sinf.c | 11 - reactos/lib/sdk/crt/math/sinhf.c | 10 - reactos/lib/sdk/crt/math/sqrt.c | 25 - reactos/lib/sdk/crt/math/sqrtf.c | 23 - reactos/lib/sdk/crt/math/tanf.c | 11 - reactos/lib/sdk/crt/math/tanhf.c | 10 - reactos/lib/sdk/crt/stdio/file.c | 11 +- reactos/lib/sdk/crt/string/ctype.c | 8 +- reactos/lib/sdk/crt/time/asctime.c | 1 - reactos/lib/sdk/crt/time/ctime.c | 2 +- reactos/lib/sdk/crt/time/utime.c | 2 +- 85 files changed, 2786 insertions(+), 2128 deletions(-) create mode 100644 reactos/dll/win32/msvcrt/msvcrt-amd64.def create mode 100644 reactos/dll/win32/msvcrt/msvcrt-i386.def delete mode 100644 reactos/dll/win32/msvcrt/msvcrt.spec delete mode 100644 reactos/lib/sdk/crt/math/acosf.c create mode 100644 reactos/lib/sdk/crt/math/amd64/atan.S create mode 100644 reactos/lib/sdk/crt/math/amd64/atan2.S create mode 100644 reactos/lib/sdk/crt/math/amd64/ceil.S create mode 100644 reactos/lib/sdk/crt/math/amd64/ceilf.S create mode 100644 reactos/lib/sdk/crt/math/amd64/cos.S create mode 100644 reactos/lib/sdk/crt/math/amd64/exp.S create mode 100644 reactos/lib/sdk/crt/math/amd64/fabs.S create mode 100644 reactos/lib/sdk/crt/math/amd64/floor.S create mode 100644 reactos/lib/sdk/crt/math/amd64/floorf.S create mode 100644 reactos/lib/sdk/crt/math/amd64/fmod.S create mode 100644 reactos/lib/sdk/crt/math/amd64/fmodf.S create mode 100644 reactos/lib/sdk/crt/math/amd64/ldexp.S create mode 100644 reactos/lib/sdk/crt/math/amd64/log.S create mode 100644 reactos/lib/sdk/crt/math/amd64/log10.S create mode 100644 reactos/lib/sdk/crt/math/amd64/sin.S create mode 100644 reactos/lib/sdk/crt/math/amd64/sqrt.S create mode 100644 reactos/lib/sdk/crt/math/amd64/sqrtf.S create mode 100644 reactos/lib/sdk/crt/math/amd64/tan.S delete mode 100644 reactos/lib/sdk/crt/math/asinf.c delete mode 100644 reactos/lib/sdk/crt/math/atan.c delete mode 100644 reactos/lib/sdk/crt/math/atan2.c delete mode 100644 reactos/lib/sdk/crt/math/atan2f.c delete mode 100644 reactos/lib/sdk/crt/math/atanf.c delete mode 100644 reactos/lib/sdk/crt/math/copysign.c delete mode 100644 reactos/lib/sdk/crt/math/copysignf.c delete mode 100644 reactos/lib/sdk/crt/math/cosf.c delete mode 100644 reactos/lib/sdk/crt/math/exp.c delete mode 100644 reactos/lib/sdk/crt/math/expf.c delete mode 100644 reactos/lib/sdk/crt/math/fabs.c delete mode 100644 reactos/lib/sdk/crt/math/fmod.c delete mode 100644 reactos/lib/sdk/crt/math/fmodf.c delete mode 100644 reactos/lib/sdk/crt/math/hypotf.c create mode 100644 reactos/lib/sdk/crt/math/i386/atan_asm.s delete mode 100644 reactos/lib/sdk/crt/math/i386/ceil.S create mode 100644 reactos/lib/sdk/crt/math/i386/ceil_asm.s delete mode 100644 reactos/lib/sdk/crt/math/i386/ceilf.S delete mode 100644 reactos/lib/sdk/crt/math/i386/cos.S create mode 100644 reactos/lib/sdk/crt/math/i386/cos_asm.s create mode 100644 reactos/lib/sdk/crt/math/i386/fabs_asm.s delete mode 100644 reactos/lib/sdk/crt/math/i386/floor.S delete mode 100644 reactos/lib/sdk/crt/math/i386/floorf.S delete mode 100644 reactos/lib/sdk/crt/math/i386/log.S delete mode 100644 reactos/lib/sdk/crt/math/i386/log10.S create mode 100644 reactos/lib/sdk/crt/math/i386/log10_asm.s create mode 100644 reactos/lib/sdk/crt/math/i386/log_asm.s delete mode 100644 reactos/lib/sdk/crt/math/i386/sin.S create mode 100644 reactos/lib/sdk/crt/math/i386/sin_asm.s create mode 100644 reactos/lib/sdk/crt/math/i386/sqrt_asm.s delete mode 100644 reactos/lib/sdk/crt/math/i386/tan.S create mode 100644 reactos/lib/sdk/crt/math/i386/tan_asm.s create mode 100644 reactos/lib/sdk/crt/math/j0_y0.c create mode 100644 reactos/lib/sdk/crt/math/j1_y1.c create mode 100644 reactos/lib/sdk/crt/math/jn_yn.c delete mode 100644 reactos/lib/sdk/crt/math/log10f.c delete mode 100644 reactos/lib/sdk/crt/math/logb.c delete mode 100644 reactos/lib/sdk/crt/math/logbf.c delete mode 100644 reactos/lib/sdk/crt/math/logf.c delete mode 100644 reactos/lib/sdk/crt/math/modff.c delete mode 100644 reactos/lib/sdk/crt/math/nextafter.c delete mode 100644 reactos/lib/sdk/crt/math/nextafterf.c rename reactos/lib/sdk/crt/math/{ldexp.c => pow_asm.c} (73%) delete mode 100644 reactos/lib/sdk/crt/math/powf.c delete mode 100644 reactos/lib/sdk/crt/math/sinf.c delete mode 100644 reactos/lib/sdk/crt/math/sinhf.c delete mode 100644 reactos/lib/sdk/crt/math/sqrt.c delete mode 100644 reactos/lib/sdk/crt/math/sqrtf.c delete mode 100644 reactos/lib/sdk/crt/math/tanf.c delete mode 100644 reactos/lib/sdk/crt/math/tanhf.c diff --git a/reactos/dll/win32/gdiplus/gdiplus.rbuild b/reactos/dll/win32/gdiplus/gdiplus.rbuild index d6daa4d7b7b..cc07c8c5d35 100644 --- a/reactos/dll/win32/gdiplus/gdiplus.rbuild +++ b/reactos/dll/win32/gdiplus/gdiplus.rbuild @@ -28,5 +28,8 @@ gdi32 windowscodecs ntdll + + crt + diff --git a/reactos/dll/win32/msvcrt/dllmain.c b/reactos/dll/win32/msvcrt/dllmain.c index caca7c1fb86..99822fc46a7 100644 --- a/reactos/dll/win32/msvcrt/dllmain.c +++ b/reactos/dll/win32/msvcrt/dllmain.c @@ -19,7 +19,7 @@ * $Date$ * */ -#define _CRTBLD + #include #include #include diff --git a/reactos/dll/win32/msvcrt/msvcrt-amd64.def b/reactos/dll/win32/msvcrt/msvcrt-amd64.def new file mode 100644 index 00000000000..61b42844390 --- /dev/null +++ b/reactos/dll/win32/msvcrt/msvcrt-amd64.def @@ -0,0 +1,850 @@ +; +; ReactOS MSVCRT Library +; +LIBRARY msvcrt.dll + +EXPORTS + $I10_OUTPUT=MSVCRT_I10_OUTPUT @57 + ??0__non_rtti_object@@QAE@ABV0@@Z=MSVCRT___non_rtti_object_copy_ctor @1 + ??0__non_rtti_object@@QAE@PBD@Z=MSVCRT___non_rtti_object_ctor @2 +; ??0bad_cast@@AAE@PBQBD@Z @3 + ??0bad_cast@@QAE@ABQBD@Z=MSVCRT_bad_cast_ctor @4 + ??0bad_cast@@QAE@ABV0@@Z=MSVCRT_bad_cast_copy_ctor @5 +; ??0bad_cast@@QAE@PBD@Z @6 + ??0bad_typeid@@QAE@ABV0@@Z=MSVCRT_bad_typeid_copy_ctor @7 + ??0bad_typeid@@QAE@PBD@Z=MSVCRT_bad_typeid_ctor @8 + ??0exception@@QAE@ABQBD@Z=MSVCRT_exception_ctor @9 +; ??0exception@@QAE@ABQBDH@Z @10 + ??0exception@@QAE@ABV0@@Z=MSVCRT_exception_copy_ctor @11 + ??0exception@@QAE@XZ=MSVCRT_exception_default_ctor @12 + ??1__non_rtti_object@@UAE@XZ=MSVCRT___non_rtti_object_dtor @13 + ??1bad_cast@@UAE@XZ=MSVCRT_bad_cast_dtor @14 + ??1bad_typeid@@UAE@XZ=MSVCRT_bad_typeid_dtor @15 + ??1exception@@UAE@XZ=MSVCRT_exception_dtor @16 + ??1type_info@@UAE@XZ=MSVCRT_type_info_dtor @17 + ??2@YAPAXI@Z=MSVCRT_operator_new @18 + ??3@YAXPAX@Z=MSVCRT_operator_delete @19 + ??4__non_rtti_object@@QAEAAV0@ABV0@@Z=MSVCRT___non_rtti_object_opequals @20 + ??4bad_cast@@QAEAAV0@ABV0@@Z=MSVCRT_bad_cast_opequals @21 + ??4bad_typeid@@QAEAAV0@ABV0@@Z=MSVCRT_bad_typeid_opequals @22 + ??4exception@@QAEAAV0@ABV0@@Z=MSVCRT_exception_opequals @23 + ??8type_info@@QBEHABV0@@Z=MSVCRT_type_info_opequals_equals @24 + ??9type_info@@QBEHABV0@@Z=MSVCRT_type_info_opnot_equals @25 + ??_7__non_rtti_object@@6B@=MSVCRT___non_rtti_object_vtable@@6B@ @26 DATA + ??_7bad_cast@@6B@=MSVCRT_bad_cast_vtable @27 DATA + ??_7bad_typeid@@6B@=MSVCRT_bad_typeid_vtable @28 DATA + ??_7exception@@6B@=MSVCRT_exception_vtable @29 DATA + ??_E__non_rtti_object@@UAEPAXI@Z=MSVCRT___non_rtti_object_vector_dtor @30 + ??_Ebad_cast@@UAEPAXI@Z=MSVCRT_bad_cast_vector_dtor @31 + ??_Ebad_typeid@@UAEPAXI@Z=MSVCRT_bad_typeid_vector_dtor @32 + ??_Eexception@@UAEPAXI@Z=MSVCRT_exception_vector_dtor @33 +; ??_Fbad_cast@@QAEXXZ @34 +; ??_Fbad_typeid@@QAEXXZ @35 + ??_G__non_rtti_object@@UAEPAXI@Z=MSVCRT___non_rtti_object_scalar_dtor @36 + ??_Gbad_cast@@UAEPAXI@Z=MSVCRT_bad_cast_scalar_dtor @37 + ??_Gbad_typeid@@UAEPAXI@Z=MSVCRT_bad_typeid_scalar_dtor @38 + ??_Gexception@@UAEPAXI@Z=MSVCRT_exception_scalar_dtor @39 + ??_U@YAPAXI@Z=MSVCRT_operator_new @40 + ??_V@YAXPAX@Z=MSVCRT_operator_delete @41 + ?_query_new_handler@@YAP6AHI@ZXZ=MSVCRT__query_new_handler @43 + ?_query_new_mode@@YAHXZ=MSVCRT__query_new_mode @44 + ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z=MSVCRT__set_new_handler @45 + ?_set_new_mode@@YAHH@Z=MSVCRT__set_new_mode @46 + ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z=MSVCRT__set_se_translator @47 + ?before@type_info@@QBEHABV1@@Z=MSVCRT_type_info_before @48 + ?name@type_info@@QBEPBDXZ=MSVCRT_type_info_name @49 + ?raw_name@type_info@@QBEPBDXZ=MSVCRT_type_info_raw_name @50 + ?set_new_handler@@YAP6AXXZP6AXXZ@Z=MSVCRT__set_new_handler @51 + ?set_terminate@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_terminate @52 + ?set_unexpected@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_unexpected @53 + ?terminate@@YAXXZ=MSVCRT_terminate @54 + ?unexpected@@YAXXZ=MSVCRT_unexpected @55 + ?what@exception@@UBEPBDXZ=MSVCRT_what_exception @56 + _CIacos @58 + _CIasin @59 + _CIatan @60 + _CIatan2 @61 + _CIcos @62 + _CIcosh @63 + _CIexp @64 + _CIfmod @65 + _CIlog @66 + _CIlog10 @67 + _CIpow @68 + _CIsin @69 + _CIsinh @70 + _CIsqrt @71 + _CItan @72 + _CItanh @73 + _CxxThrowException @74 +; _EH_prolog @75 ??? + _Getdays @76 + _Getmonths @77 + _Gettnames @78 + _HUGE @79 DATA + _Strftime @80 + _XcptFilter @81 + __CppXcptFilter @82 +; __CxxCallUnwindDtor @83 +; __CxxCallUnwindVecDtor @84 + __CxxDetectRethrow @85 +; __CxxExceptionFilter @86 +; __CxxFrameHandler @87 ??? +; __CxxFrameHandler2 @88 +; __CxxLongjmpUnwind @89 ??? + __CxxQueryExceptionSize @90 +; __CxxRegisterExceptionObject @91 +; __CxxUnregisterExceptionObject @92 +; __DestructExceptionObject @93 + __RTCastToVoid=MSVCRT___RTCastToVoid @94 + __RTDynamicCast=MSVCRT___RTDynamicCast @95 + __RTtypeid=MSVCRT___RTtypeid @96 + __STRINGTOLD @97 +; ___lc_codepage_func @98 +; ___lc_collate_cp_func @99 +; ___lc_handle_func @100 +; ___mb_cur_max_func @101 + ___setlc_active_func @102 + ___unguarded_readlc_active_add_func @103 + __argc @104 DATA + __argv @105 DATA + __badioinfo @106 DATA + __crtCompareStringA=kernel32.CompareStringA @107 + __crtCompareStringW=kernel32.CompareStringW @108 + __crtGetLocaleInfoW=kernel32.GetLocaleInfo @109 + __crtGetStringTypeW=kernel32.GetStringTypeW @110 + __crtLCMapStringA @111 +; __crtLCMapStringW @112 + __dllonexit @113 + __doserrno @114 + __fpecode @115 + __getmainargs @116 + __initenv @117 + __iob_func=__p__iob @118 + __isascii @119 + __iscsym @120 + __iscsymf @121 + __lc_codepage @122 DATA + __lc_collate_cp @123 DATA + __lc_handle @124 DATA + __lconv_init @125 + __mb_cur_max @126 DATA + __p___argc @127 + __p___argv @128 + __p___initenv @129 + __p___mb_cur_max @130 + __p___wargv @131 + __p___winitenv @132 + __p__acmdln @133 + __p__amblksiz @134 + __p__commode @135 + __p__daylight @136 + __p__dstbias @137 + __p__environ @138 +; __p__fileinfo @139 + __p__fmode @140 + __p__iob @141 +; __p__mbcasemap @142 + __p__mbctype @143 + __p__osver @144 + __p__pctype @145 + __p__pgmptr @146 + __p__pwctype @147 + __p__timezone @148 + __p__tzname @149 + __p__wcmdln @150 + __p__wenviron @151 + __p__winmajor @152 + __p__winminor @153 + __p__winver @154 + __p__wpgmptr @155 +; __pctype_func @156 + __pioinfo @157 DATA +; __pwctype_func @158 + __pxcptinfoptrs @159 + __set_app_type @160 + __setlc_active @161 DATA + __setusermatherr @162 + __threadhandle @163 + __threadid @164 + __toascii @165 + __unDName @166 + __unDNameEx @167 +; __uncaught_exception @42 + __unguarded_readlc_active @168 DATA + __wargv @169 DATA +; __wcserror @170 + __wgetmainargs @171 + __winitenv @172 DATA + _abnormal_termination @173 +; _abs64 @174 + _access @175 + _acmdln @176 DATA + _adj_fdiv_m16i @177 + _adj_fdiv_m32 @178 + _adj_fdiv_m32i @179 + _adj_fdiv_m64 @180 + _adj_fdiv_r @181 + _adj_fdivr_m16i @182 + _adj_fdivr_m32 @183 + _adj_fdivr_m32i @184 + _adj_fdivr_m64 @185 + _adj_fpatan @186 + _adj_fprem @187 + _adj_fprem1 @188 + _adj_fptan @189 + _adjust_fdiv @190 DATA + _aexit_rtn @191 + _aligned_free @192 + _aligned_malloc @193 + _aligned_offset_malloc @194 + _aligned_offset_realloc @195 + _aligned_realloc @196 + _amsg_exit @197 + _assert @198 +; _atodbl @199 + _atoi64 @200 + _atoldbl @201 + _beep @202 + _beginthread @203 + _beginthreadex @204 + _c_exit @205 + _cabs @206 + _callnewh @207 + _cexit @208 + _cgets @209 +; _cgetws @210 + _chdir @211 + _chdrive @212 + _chgsign @213 + _chkesp @214 + _chmod @215 + _chsize @216 + _clearfp @217 + _close @218 + _commit @219 + _commode @220 DATA + _control87 @221 + _controlfp @222 + _copysign @223 + _cprintf @224 + _cputs @225 +; _cputws @226 + _creat @227 + _cscanf @228 + _ctime64 @229 + _ctype @230 DATA + _cwait @231 +; _cwprintf @232 +; _cwscanf @233 + _daylight @234 DATA + _dstbias @235 DATA + _dup @236 + _dup2 @237 + _ecvt @238 + _endthread @239 + _endthreadex @240 + _environ @241 DATA + _eof @242 + _errno @243 + _except_handler2 @244 + _except_handler3 @245 + _execl @246 + _execle @247 + _execlp @248 + _execlpe @249 + _execv @250 + _execve @251 + _execvp @252 + _execvpe @253 + _exit @254 + _expand @255 + _fcloseall @256 + _fcvt @257 + _fdopen @258 + _fgetchar @259 + _fgetwchar @260 + _filbuf @261 +; _fileinfo @262 + _filelength @263 + _filelengthi64 @264 + _fileno @265 + _findclose @266 + _findfirst @267 + _findfirst64 @268 + _findfirsti64 @269 + _findnext @270 + _findnext64 @271 + _findnexti64 @272 + _finite @273 + _flsbuf @274 + _flushall @275 + _fmode @276 DATA + _fpclass @277 + _fpieee_flt @278 + _fpreset @279 + _fputchar @280 + _fputwchar @281 + _fsopen @282 + _fstat @283 + _fstat64 @284 + _fstati64 @285 + _ftime @286 +; _ftime64 @287 ??? +; _ftol @288 ??? + _fullpath @289 + _futime @290 +; _futime64 @291 + _gcvt @292 +; _get_heap_handle @293 + _get_osfhandle @294 + _get_sbh_threshold @295 + _getch @296 + _getche @297 + _getcwd @298 + _getdcwd @299 + _getdiskfree @300 + _getdllprocaddr @301 + _getdrive @302 + _getdrives=kernel32.GetLogicalDrives @303 + _getmaxstdio @304 + _getmbcp @305 + _getpid=kernel32.GetCurrentProcessId @306 + _getsystime @307 + _getw @308 +; _getwch @309 +; _getwche @310 + _getws @311 + _global_unwind2 @312 + _gmtime64=gmtime @313 + _heapadd @314 + _heapchk @315 + _heapmin @316 + _heapset @317 +; _heapused @318 + _heapwalk @319 + _hypot @320 + _i64toa @321 + _i64tow @322 + _initterm @323 +; _inp @324 +; _inpd @325 +; _inpw @326 + _iob @327 DATA + _isatty @328 + _isctype @329 + _ismbbalnum @330 + _ismbbalpha @331 + _ismbbgraph @332 + _ismbbkalnum @333 + _ismbbkana @334 +; _ismbbkprint @335 + _ismbbkpunct @336 + _ismbblead @337 + _ismbbprint @338 + _ismbbpunct @339 + _ismbbtrail @340 + _ismbcalnum @341 + _ismbcalpha @342 + _ismbcdigit @343 + _ismbcgraph @344 + _ismbchira @345 + _ismbckata @346 + _ismbcl0 @347 + _ismbcl1 @348 + _ismbcl2 @349 + _ismbclegal @350 + _ismbclower @351 + _ismbcprint @352 + _ismbcpunct @353 + _ismbcspace @354 + _ismbcsymbol @355 + _ismbcupper @356 + _ismbslead @357 + _ismbstrail @358 + _isnan @359 + _itoa @360 + _itow @361 +; FIXME: these aren't actually implemented in CRT +; _j0 @362 +; _j1 @363 +; _jn @364 + _kbhit @365 + _lfind @366 + _loaddll @367 + _local_unwind2 @368 + _localtime64 @369 + _lock @370 + _locking @371 + _logb @372 + _longjmpex=longjmp @373 + _lrotl @374 + _lrotr @375 + _lsearch @376 + _lseek @377 + _lseeki64 @378 + _ltoa @379 + _ltow @380 + _makepath @381 + _mbbtombc @382 + _mbbtype @383 +; _mbcasemap @384 + _mbccpy @385 + _mbcjistojms @386 + _mbcjmstojis @387 + _mbclen @388 + _mbctohira @389 + _mbctokata @390 + _mbctolower @391 + _mbctombb @392 + _mbctoupper @393 + _mbctype @394 DATA + _mbsbtype @395 + _mbscat @396 + _mbschr @397 + _mbscmp @398 + _mbscoll @399 + _mbscpy @400 + _mbscspn @401 + _mbsdec @402 + _mbsdup @403 + _mbsicmp @404 + _mbsicoll @405 + _mbsinc @406 + _mbslen @407 + _mbslwr @408 + _mbsnbcat @409 + _mbsnbcmp @410 + _mbsnbcnt @411 + _mbsnbcoll @412 + _mbsnbcpy @413 + _mbsnbicmp @414 + _mbsnbicoll @415 + _mbsnbset @416 + _mbsncat @417 + _mbsnccnt @418 + _mbsncmp @419 + _mbsncoll @420 + _mbsncpy @421 + _mbsnextc @422 + _mbsnicmp @423 + _mbsnicoll @424 + _mbsninc @425 + _mbsnset @426 + _mbspbrk @427 + _mbsrchr @428 + _mbsrev @429 + _mbsset @430 + _mbsspn @431 + _mbsspnp @432 + _mbsstr @433 + _mbstok @434 + _mbstrlen @435 + _mbsupr @436 + _memccpy @437 + _memicmp @438 + _mkdir @439 + _mkgmtime @440 + _mkgmtime64 @441 + _mktemp @442 + _mktime64 @443 + _msize @444 + _nextafter @445 + _onexit @446 + _open @447 + _open_osfhandle @448 +; _osplatform @449 + _osver @450 DATA +; _outp @451 +; _outpd @452 +; _outpw @453 + _pclose @454 + _pctype @455 DATA + _pgmptr @456 DATA + _pipe @457 + _popen @458 + _purecall @459 + _putch @460 + _putenv @461 + _putw @462 +; _putwch @463 + _putws @464 + _pwctype @465 + _read @466 +; _resetstkoflw @467 + _rmdir @468 + _rmtmp @469 + _rotl @470 +; _rotl64 @471 + _rotr @472 +; _rotr64 @473 + _safe_fdiv @474 + _safe_fdivr @475 + _safe_fprem @476 + _safe_fprem1 @477 + _scalb @478 +; _scprintf @479 +; _scwprintf @480 + _searchenv @481 +; _seh_longjmp_unwind @482 ??? +; _set_SSE2_enable @483 + _set_error_mode @484 + _set_sbh_threshold @485 + _seterrormode @486 + _setjmp @487 + _setjmpex @488 + _setmaxstdio @489 + _setmbcp @490 + _setmode @491 + _setsystime @492 + _sleep @493 + _snprintf @494 +; _snscanf @495 + _snwprintf @496 +; _snwscanf @497 + _sopen @498 + _spawnl @499 + _spawnle @500 + _spawnlp @501 + _spawnlpe @502 + _spawnv @503 + _spawnve @504 + _spawnvp @505 + _spawnvpe @506 + _splitpath @507 + _stat @508 + _stat64 @509 + _stati64 @510 + _statusfp @511 + _strcmpi @512 + _strdate @513 + _strdup @514 + _strerror @515 + _stricmp @516 + _stricoll @517 + _strlwr @518 + _strncoll @519 + _strnicmp @520 + _strnicoll @521 + _strnset @522 + _strrev @523 + _strset @524 + _strtime @525 +; _strtoi64 @526 + _strtoui64=strtoull @527 + _strupr @528 + _swab @529 + _sys_errlist @530 DATA + _sys_nerr @531 DATA + _tell @532 + _telli64 @533 + _tempnam @534 + _time64 @535 + _timezone @536 DATA + _tolower @537 + _toupper @538 + _tzname @539 DATA + _tzset @540 + _ui64toa @541 + _ui64tow @542 + _ultoa @543 + _ultow @544 + _umask @545 + _ungetch @546 +; _ungetwch @547 + _unlink @548 + _unloaddll @549 + _unlock @550 + _utime @551 +; _utime64 @552 +; _vscprintf @553 +; _vscwprintf @554 + _vsnprintf @555 + _vsnwprintf @556 + _waccess @557 + _wasctime @558 + _wchdir @559 + _wchmod @560 + _wcmdln @561 + _wcreat @562 + _wcsdup @563 +; _wcserror @564 + _wcsicmp @565 + _wcsicoll @566 + _wcslwr @567 + _wcsncoll @568 + _wcsnicmp @569 + _wcsnicoll @570 + _wcsnset @571 + _wcsrev @572 + _wcsset @573 +; _wcstoi64 @574 +; _wcstoui64 @575 + _wcsupr @576 + _wctime @577 +; _wctime64 @578 +; _wctype @579 + _wenviron @580 DATA + _wexecl @581 + _wexecle @582 + _wexeclp @583 + _wexeclpe @584 + _wexecv @585 + _wexecve @586 + _wexecvp @587 + _wexecvpe @588 + _wfdopen @589 + _wfindfirst @590 +; _wfindfirst64 @591 + _wfindfirsti64 @592 + _wfindnext @593 +; _wfindnext64 @594 + _wfindnexti64 @595 + _wfopen @596 + _wfreopen @597 + _wfsopen @598 + _wfullpath @599 + _wgetcwd @600 + _wgetdcwd @601 + _wgetenv @602 + _winmajor @603 DATA + _winminor @604 DATA + _winver @605 DATA + _wmakepath @606 + _wmkdir @607 + _wmktemp @608 + _wopen @609 + _wperror @610 + _wpgmptr @611 DATA + _wpopen @612 + _wputenv @613 + _wremove @614 + _wrename @615 + _write @616 + _wrmdir @617 + _wsearchenv @618 + _wsetlocale @619 + _wsopen @620 + _wspawnl @621 + _wspawnle @622 + _wspawnlp @623 + _wspawnlpe @624 + _wspawnv @625 + _wspawnve @626 + _wspawnvp @627 + _wspawnvpe @628 + _wsplitpath @629 + _wstat @630 + _wstat64 @631 + _wstati64 @632 + _wstrdate @633 + _wstrtime @634 + _wsystem @635 + _wtempnam @636 + _wtmpnam @637 +; _wtof @638 + _wtoi @639 + _wtoi64 @640 + _wtol @641 + _wunlink @642 + _wutime @643 +; _wutime64 @644 +; FIXME: these aren't actually implemented in CRT +; _y0 @645 +; _y1 @646 +; _yn @647 + abort @648 + abs @649 + acos @650 + asctime @651 + asin @652 + atan @653 + atan2 @654 + atexit @655 + atof @656 + atoi @657 + atol @658 + bsearch @659 + calloc @660 + ceil @661 + clearerr @662 + clock @663 + cos @664 + cosh @665 + ctime @666 + difftime @667 + div @668 + exit @669 + exp @670 + fabs @671 + fclose @672 + feof @673 + ferror @674 + fflush @675 + fgetc @676 + fgetpos @677 + fgets @678 + fgetwc @679 + fgetws @680 + floor @681 + fmod @682 + fopen @683 + fprintf @684 + fputc @685 + fputs @686 + fputwc @687 + fputws @688 + fread @689 + free @690 + freopen @691 + frexp @692 + fscanf @693 + fseek @694 + fsetpos @695 + ftell @696 + fwprintf @697 + fwrite @698 + fwscanf @699 + getc @700 + getchar @701 + getenv @702 + gets @703 + getwc @704 + getwchar @705 + gmtime @706 + is_wctype @707 + isalnum @708 + isalpha @709 + iscntrl @710 + isdigit @711 + isgraph @712 + isleadbyte @713 + islower @714 + isprint @715 + ispunct @716 + isspace @717 + isupper @718 + iswalnum @719 + iswalpha @720 + iswascii @721 + iswcntrl @722 + iswctype @723 + iswdigit @724 + iswgraph @725 + iswlower @726 + iswprint @727 + iswpunct @728 + iswspace @729 + iswupper @730 + iswxdigit @731 + isxdigit @732 + labs @733 + ldexp @734 + ldiv @735 + localeconv @736 +; localtime @737 ??? + log @738 + log10 @739 + longjmp @740 + malloc @741 + mblen @742 + mbstowcs @743 + mbtowc @744 + memchr @745 + memcmp @746 + memcpy=memmove @747 + memmove @748 + memset @749 + mktime @750 + modf @751 + perror @752 + pow @753 + printf @754 + putc @755 + putchar @756 + puts @757 + putwc=fputwc @758 + putwchar=_fputwchar @759 + qsort @760 + raise @761 + rand @762 + realloc @763 + remove @764 + rename @765 + rewind @766 + scanf @767 + setbuf @768 + setlocale @769 + setvbuf @770 + signal @771 + sin @772 + sinh @773 + sprintf @774 + sqrt @775 + srand @776 + sscanf @777 + strcat @778 + strchr @779 + strcmp @780 + strcoll @781 + strcpy @782 + strcspn @783 + strerror @784 + strftime @785 + strlen @786 + strncat @787 + strncmp @788 + strncpy @789 + strpbrk @790 + strrchr @791 + strspn @792 + strstr @793 + strtod @794 + strtok @795 + strtol @796 + strtoul @797 + strxfrm @798 + swprintf @799 + swscanf @800 + system @801 + tan @802 + tanh @803 + time @804 + tmpfile @805 + tmpnam @806 + tolower @807 + toupper @808 + towlower @809 + towupper @810 + ungetc @811 + ungetwc @812 + vfprintf @813 + vfwprintf @814 + vprintf @815 + vsprintf @816 + vswprintf @817 + vwprintf @818 + wcscat @819 + wcschr @820 + wcscmp @821 + wcscoll @822 + wcscpy @823 + wcscspn @824 + wcsftime @825 + wcslen @826 + wcsncat @827 + wcsncmp @828 + wcsncpy @829 + wcspbrk @830 + wcsrchr @831 + wcsspn @832 + wcsstr @833 + wcstod @834 + wcstok @835 + wcstol @836 + wcstombs @837 + wcstoul @838 + wcsxfrm @839 + wctomb @840 + wprintf @841 + wscanf @842 diff --git a/reactos/dll/win32/msvcrt/msvcrt-i386.def b/reactos/dll/win32/msvcrt/msvcrt-i386.def new file mode 100644 index 00000000000..bcf3fe378c8 --- /dev/null +++ b/reactos/dll/win32/msvcrt/msvcrt-i386.def @@ -0,0 +1,860 @@ +; +; ReactOS MSVCRT Library +; +LIBRARY msvcrt.dll + +EXPORTS + $I10_OUTPUT=MSVCRT_I10_OUTPUT @57 + ??0__non_rtti_object@@QAE@ABV0@@Z=__thiscall_MSVCRT___non_rtti_object_copy_ctor @1 + ??0__non_rtti_object@@QAE@PBD@Z=__thiscall_MSVCRT___non_rtti_object_ctor @2 +; ??0bad_cast@@AAE@PBQBD@Z @3 + ??0bad_cast@@QAE@ABQBD@Z=__thiscall_MSVCRT_bad_cast_ctor @4 + ??0bad_cast@@QAE@ABV0@@Z=__thiscall_MSVCRT_bad_cast_copy_ctor @5 +; ??0bad_cast@@QAE@PBD@Z @6 + ??0bad_typeid@@QAE@ABV0@@Z=__thiscall_MSVCRT_bad_typeid_copy_ctor @7 + ??0bad_typeid@@QAE@PBD@Z=__thiscall_MSVCRT_bad_typeid_ctor @8 + ??0exception@@QAE@ABQBD@Z=__thiscall_MSVCRT_exception_ctor @9 +; ??0exception@@QAE@ABQBDH@Z @10 + ??0exception@@QAE@ABV0@@Z=__thiscall_MSVCRT_exception_copy_ctor @11 + ??0exception@@QAE@XZ=__thiscall_MSVCRT_exception_default_ctor @12 + ??1__non_rtti_object@@UAE@XZ=__thiscall_MSVCRT___non_rtti_object_dtor @13 + ??1bad_cast@@UAE@XZ=__thiscall_MSVCRT_bad_cast_dtor @14 + ??1bad_typeid@@UAE@XZ=__thiscall_MSVCRT_bad_typeid_dtor @15 + ??1exception@@UAE@XZ=__thiscall_MSVCRT_exception_dtor @16 + ??1type_info@@UAE@XZ=__thiscall_MSVCRT_type_info_dtor @17 + ??2@YAPAXI@Z=MSVCRT_operator_new @18 + ??3@YAXPAX@Z=MSVCRT_operator_delete @19 + ??4__non_rtti_object@@QAEAAV0@ABV0@@Z=__thiscall_MSVCRT___non_rtti_object_opequals @20 + ??4bad_cast@@QAEAAV0@ABV0@@Z=__thiscall_MSVCRT_bad_cast_opequals @21 + ??4bad_typeid@@QAEAAV0@ABV0@@Z=__thiscall_MSVCRT_bad_typeid_opequals @22 + ??4exception@@QAEAAV0@ABV0@@Z=__thiscall_MSVCRT_exception_opequals @23 + ??8type_info@@QBEHABV0@@Z=__thiscall_MSVCRT_type_info_opequals_equals @24 + ??9type_info@@QBEHABV0@@Z=__thiscall_MSVCRT_type_info_opnot_equals @25 + ??_7__non_rtti_object@@6B@=MSVCRT___non_rtti_object_vtable@@6B@ @26 DATA + ??_7bad_cast@@6B@=MSVCRT_bad_cast_vtable @27 DATA + ??_7bad_typeid@@6B@=MSVCRT_bad_typeid_vtable @28 DATA + ??_7exception@@6B@=MSVCRT_exception_vtable @29 DATA + ??_E__non_rtti_object@@UAEPAXI@Z=__thiscall_MSVCRT___non_rtti_object_vector_dtor @30 + ??_Ebad_cast@@UAEPAXI@Z=__thiscall_MSVCRT_bad_cast_vector_dtor @31 + ??_Ebad_typeid@@UAEPAXI@Z=__thiscall_MSVCRT_bad_typeid_vector_dtor @32 + ??_Eexception@@UAEPAXI@Z=__thiscall_MSVCRT_exception_vector_dtor @33 +; ??_Fbad_cast@@QAEXXZ @34 +; ??_Fbad_typeid@@QAEXXZ @35 + ??_G__non_rtti_object@@UAEPAXI@Z=__thiscall_MSVCRT___non_rtti_object_scalar_dtor @36 + ??_Gbad_cast@@UAEPAXI@Z=__thiscall_MSVCRT_bad_cast_scalar_dtor @37 + ??_Gbad_typeid@@UAEPAXI@Z=__thiscall_MSVCRT_bad_typeid_scalar_dtor @38 + ??_Gexception@@UAEPAXI@Z=__thiscall_MSVCRT_exception_scalar_dtor @39 + ??_U@YAPAXI@Z=MSVCRT_operator_new @40 + ??_V@YAXPAX@Z=MSVCRT_operator_delete @41 + ?_query_new_handler@@YAP6AHI@ZXZ=MSVCRT__query_new_handler @43 + ?_query_new_mode@@YAHXZ=MSVCRT__query_new_mode @44 + ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z=MSVCRT__set_new_handler @45 + ?_set_new_mode@@YAHH@Z=MSVCRT__set_new_mode @46 + ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z=MSVCRT__set_se_translator @47 + ?before@type_info@@QBEHABV1@@Z=__thiscall_MSVCRT_type_info_before @48 + ?name@type_info@@QBEPBDXZ=__thiscall_MSVCRT_type_info_name @49 + ?raw_name@type_info@@QBEPBDXZ=__thiscall_MSVCRT_type_info_raw_name @50 + ?set_new_handler@@YAP6AXXZP6AXXZ@Z=MSVCRT__set_new_handler @51 + ?set_terminate@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_terminate @52 + ?set_unexpected@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_unexpected @53 + ?terminate@@YAXXZ=MSVCRT_terminate @54 + ?unexpected@@YAXXZ=MSVCRT_unexpected @55 + ?what@exception@@UBEPBDXZ=__thiscall_MSVCRT_what_exception @56 + _CIacos @58 + _CIasin @59 + _CIatan @60 + _CIatan2 @61 + _CIcos @62 + _CIcosh @63 + _CIexp @64 + _CIfmod @65 + _CIlog @66 + _CIlog10 @67 + _CIpow @68 + _CIsin @69 + _CIsinh @70 + _CIsqrt @71 + _CItan @72 + _CItanh @73 + _CxxThrowException @74 + _EH_prolog @75 + _Getdays @76 + _Getmonths @77 + _Gettnames @78 + _HUGE @79 DATA + _Strftime @80 + _XcptFilter @81 + __CppXcptFilter @82 +; __CxxCallUnwindDtor @83 +; __CxxCallUnwindVecDtor @84 + __CxxDetectRethrow @85 +; __CxxExceptionFilter @86 + __CxxFrameHandler @87 +; __CxxFrameHandler2 @88 + __CxxLongjmpUnwind @89 + __CxxQueryExceptionSize @90 +; __CxxRegisterExceptionObject @91 +; __CxxUnregisterExceptionObject @92 +; __DestructExceptionObject @93 + __RTCastToVoid=MSVCRT___RTCastToVoid @94 + __RTDynamicCast=MSVCRT___RTDynamicCast @95 + __RTtypeid=MSVCRT___RTtypeid @96 + __STRINGTOLD @97 +; ___lc_codepage_func @98 +; ___lc_collate_cp_func @99 +; ___lc_handle_func @100 +; ___mb_cur_max_func @101 + ___setlc_active_func @102 + ___unguarded_readlc_active_add_func @103 + __argc @104 DATA + __argv @105 DATA + __badioinfo @106 DATA + __crtCompareStringA=kernel32.CompareStringA @107 + __crtCompareStringW=kernel32.CompareStringW @108 + __crtGetLocaleInfoW=kernel32.GetLocaleInfo @109 + __crtGetStringTypeW=kernel32.GetStringTypeW @110 + __crtLCMapStringA @111 +; __crtLCMapStringW @112 + __dllonexit @113 + __doserrno @114 + __fpecode @115 + __getmainargs @116 + __initenv @117 + __iob_func=__p__iob @118 + __isascii @119 + __iscsym @120 + __iscsymf @121 + __lc_codepage @122 DATA + __lc_collate_cp @123 DATA + __lc_handle @124 DATA + __lconv_init @125 + __mb_cur_max @126 DATA + __p___argc @127 + __p___argv @128 + __p___initenv @129 + __p___mb_cur_max @130 + __p___wargv @131 + __p___winitenv @132 + __p__acmdln @133 + __p__amblksiz @134 + __p__commode @135 + __p__daylight @136 + __p__dstbias @137 + __p__environ @138 +; __p__fileinfo @139 + __p__fmode @140 + __p__iob @141 +; __p__mbcasemap @142 + __p__mbctype @143 + __p__osver @144 + __p__pctype @145 + __p__pgmptr @146 + __p__pwctype @147 + __p__timezone @148 + __p__tzname @149 + __p__wcmdln @150 + __p__wenviron @151 + __p__winmajor @152 + __p__winminor @153 + __p__winver @154 + __p__wpgmptr @155 +; __pctype_func @156 + __pioinfo @157 DATA +; __pwctype_func @158 + __pxcptinfoptrs @159 + __set_app_type @160 + __setlc_active @161 DATA + __setusermatherr @162 + __threadhandle @163 + __threadid @164 + __toascii @165 + __unDName @166 + __unDNameEx @167 +; __uncaught_exception @42 + __unguarded_readlc_active @168 DATA + __wargv @169 DATA +; __wcserror @170 + __wgetmainargs @171 + __winitenv @172 DATA + _abnormal_termination @173 +; _abs64 @174 + _access @175 + _acmdln @176 DATA + _adj_fdiv_m16i @177 + _adj_fdiv_m32 @178 + _adj_fdiv_m32i @179 + _adj_fdiv_m64 @180 + _adj_fdiv_r @181 + _adj_fdivr_m16i @182 + _adj_fdivr_m32 @183 + _adj_fdivr_m32i @184 + _adj_fdivr_m64 @185 + _adj_fpatan @186 + _adj_fprem @187 + _adj_fprem1 @188 + _adj_fptan @189 + _adjust_fdiv @190 DATA + _aexit_rtn @191 + _aligned_free @192 + _aligned_malloc @193 + _aligned_offset_malloc @194 + _aligned_offset_realloc @195 + _aligned_realloc @196 + _amsg_exit @197 + _assert @198 +; _atodbl @199 + _atoi64 @200 + _atoldbl @201 + _beep @202 + _beginthread @203 + _beginthreadex @204 + _c_exit @205 + _cabs @206 + _callnewh @207 + _cexit @208 + _cgets @209 +; _cgetws @210 + _chdir @211 + _chdrive @212 + _chgsign @213 + _chkesp @214 + _chmod @215 + _chsize @216 + _clearfp @217 + _close @218 + _commit @219 + _commode @220 DATA + _control87 @221 + _controlfp @222 + _copysign @223 + _cprintf @224 + _cputs @225 +; _cputws @226 + _creat @227 + _cscanf @228 +; _ctime64 @229 + _ctype @230 DATA + _cwait @231 +; _cwprintf @232 +; _cwscanf @233 + _daylight @234 DATA + _dstbias @235 DATA + _dup @236 + _dup2 @237 + _ecvt @238 + _endthread @239 + _endthreadex @240 + _environ @241 DATA + _eof @242 + _errno @243 + _except_handler2 @244 + _except_handler3 @245 + _execl @246 + _execle @247 + _execlp @248 + _execlpe @249 + _execv @250 + _execve @251 + _execvp @252 + _execvpe @253 + _exit @254 + _expand @255 + _fcloseall @256 + _fcvt @257 + _fdopen @258 + _fgetchar @259 + _fgetwchar @260 + _filbuf @261 +; _fileinfo @262 + _filelength @263 + _filelengthi64 @264 + _fileno @265 + _findclose @266 + _findfirst @267 + _findfirst64 @268 + _findfirsti64 @269 + _findnext @270 + _findnext64 @271 + _findnexti64 @272 + _finite @273 + _flsbuf @274 + _flushall @275 + _fmode @276 DATA + _fpclass @277 + _fpieee_flt @278 + _fpreset @279 + _fputchar @280 + _fputwchar @281 + _fsopen @282 + _fstat @283 + _fstat64 @284 + _fstati64 @285 + _ftime @286 +; _ftime64 @287 + _ftol @288 + _fullpath @289 + _futime @290 +; _futime64 @291 + _gcvt @292 +; _get_heap_handle @293 + _get_osfhandle @294 + _get_sbh_threshold @295 + _getch @296 + _getche @297 + _getcwd @298 + _getdcwd @299 + _getdiskfree @300 + _getdllprocaddr @301 + _getdrive @302 + _getdrives=kernel32.GetLogicalDrives @303 + _getmaxstdio @304 + _getmbcp @305 + _getpid=kernel32.GetCurrentProcessId @306 + _getsystime @307 + _getw @308 +; _getwch @309 +; _getwche @310 + _getws @311 + _global_unwind2 @312 +; _gmtime64 @313 + _heapadd @314 + _heapchk @315 + _heapmin @316 + _heapset @317 +; _heapused @318 + _heapwalk @319 + _hypot @320 + _i64toa @321 + _i64tow @322 + _initterm @323 +; _inp @324 +; _inpd @325 +; _inpw @326 + _iob @327 DATA + _isatty @328 + _isctype @329 + _ismbbalnum @330 + _ismbbalpha @331 + _ismbbgraph @332 + _ismbbkalnum @333 + _ismbbkana @334 +; _ismbbkprint @335 + _ismbbkpunct @336 + _ismbblead @337 + _ismbbprint @338 + _ismbbpunct @339 + _ismbbtrail @340 + _ismbcalnum @341 + _ismbcalpha @342 + _ismbcdigit @343 + _ismbcgraph @344 + _ismbchira @345 + _ismbckata @346 + _ismbcl0 @347 + _ismbcl1 @348 + _ismbcl2 @349 + _ismbclegal @350 + _ismbclower @351 + _ismbcprint @352 + _ismbcpunct @353 + _ismbcspace @354 + _ismbcsymbol @355 + _ismbcupper @356 + _ismbslead @357 + _ismbstrail @358 + _isnan @359 + _itoa @360 + _itow @361 +; FIXME: these aren't actually implemented in CRT +; _j0 @362 +; _j1 @363 +; _jn @364 + _kbhit @365 + _lfind @366 + _loaddll @367 + _local_unwind2 @368 +; _localtime64 @369 + _lock @370 + _locking @371 + _logb @372 + _longjmpex=longjmp @373 + _lrotl @374 + _lrotr @375 + _lsearch @376 + _lseek @377 + _lseeki64 @378 + _ltoa @379 + _ltow @380 + _makepath @381 + _mbbtombc @382 + _mbbtype @383 +; _mbcasemap @384 + _mbccpy @385 + _mbcjistojms @386 + _mbcjmstojis @387 + _mbclen @388 + _mbctohira @389 + _mbctokata @390 + _mbctolower @391 + _mbctombb @392 + _mbctoupper @393 + _mbctype @394 DATA + _mbsbtype @395 + _mbscat @396 + _mbschr @397 + _mbscmp @398 + _mbscoll @399 + _mbscpy @400 + _mbscspn @401 + _mbsdec @402 + _mbsdup @403 + _mbsicmp @404 + _mbsicoll @405 + _mbsinc @406 + _mbslen @407 + _mbslwr @408 + _mbsnbcat @409 + _mbsnbcmp @410 + _mbsnbcnt @411 + _mbsnbcoll @412 + _mbsnbcpy @413 + _mbsnbicmp @414 + _mbsnbicoll @415 + _mbsnbset @416 + _mbsncat @417 + _mbsnccnt @418 + _mbsncmp @419 + _mbsncoll @420 + _mbsncpy @421 + _mbsnextc @422 + _mbsnicmp @423 + _mbsnicoll @424 + _mbsninc @425 + _mbsnset @426 + _mbspbrk @427 + _mbsrchr @428 + _mbsrev @429 + _mbsset @430 + _mbsspn @431 + _mbsspnp @432 + _mbsstr @433 + _mbstok @434 + _mbstrlen @435 + _mbsupr @436 + _memccpy @437 + _memicmp @438 + _mkdir @439 +; _mkgmtime @440 +; _mkgmtime64 @441 + _mktemp @442 +; _mktime64 @443 + _msize @444 + _nextafter @445 + _onexit @446 + _open @447 + _open_osfhandle @448 +; _osplatform @449 + _osver @450 DATA +; _outp @451 +; _outpd @452 +; _outpw @453 + _pclose @454 + _pctype @455 DATA + _pgmptr @456 DATA + _pipe @457 + _popen @458 + _purecall @459 + _putch @460 + _putenv @461 + _putw @462 +; _putwch @463 + _putws @464 + _pwctype @465 + _read @466 +; _resetstkoflw @467 + _rmdir @468 + _rmtmp @469 + _rotl @470 +; _rotl64 @471 + _rotr @472 +; _rotr64 @473 + _safe_fdiv @474 + _safe_fdivr @475 + _safe_fprem @476 + _safe_fprem1 @477 + _scalb @478 +; _scprintf @479 +; _scwprintf @480 + _searchenv @481 + _seh_longjmp_unwind=_seh_longjmp_unwind@4 @482 +; _set_SSE2_enable @483 + _set_error_mode @484 + _set_sbh_threshold @485 + _seterrormode @486 + _setjmp @487 + _setjmp3 @488 + _setmaxstdio @489 + _setmbcp @490 + _setmode @491 + _setsystime @492 + _sleep @493 + _snprintf @494 +; _snscanf @495 + _snwprintf @496 +; _snwscanf @497 + _sopen @498 + _spawnl @499 + _spawnle @500 + _spawnlp @501 + _spawnlpe @502 + _spawnv @503 + _spawnve @504 + _spawnvp @505 + _spawnvpe @506 + _splitpath @507 + _stat @508 + _stat64 @509 + _stati64 @510 + _statusfp @511 + _strcmpi @512 + _strdate @513 + _strdup @514 + _strerror @515 + _stricmp @516 + _stricoll @517 + _strlwr @518 + _strncoll @519 + _strnicmp @520 + _strnicoll @521 + _strnset @522 + _strrev @523 + _strset @524 + _strtime @525 + _strtoi64 @526 + _strtoui64=strtoull @527 + _strupr @528 + _swab @529 + _sys_errlist @530 DATA + _sys_nerr @531 DATA + _tell @532 + _telli64 @533 + _tempnam @534 +; _time64 @535 + _timezone @536 DATA + _tolower @537 + _toupper @538 + _tzname @539 DATA + _tzset @540 + _ui64toa @541 + _ui64tow @542 + _ultoa @543 + _ultow @544 + _umask @545 + _ungetch @546 +; _ungetwch @547 + _unlink @548 + _unloaddll @549 + _unlock @550 + _utime @551 +; _utime64 @552 +; _vscprintf @553 +; _vscwprintf @554 + _vsnprintf @555 + _vsnwprintf @556 + _waccess @557 + _wasctime @558 + _wchdir @559 + _wchmod @560 + _wcmdln @561 + _wcreat @562 + _wcsdup @563 +; _wcserror @564 + _wcsicmp @565 + _wcsicoll @566 + _wcslwr @567 + _wcsncoll @568 + _wcsnicmp @569 + _wcsnicoll @570 + _wcsnset @571 + _wcsrev @572 + _wcsset @573 + _wcstoi64 @574 + _wcstoui64 @575 + _wcsupr @576 + _wctime @577 +; _wctime64 @578 +; _wctype @579 + _wenviron @580 DATA + _wexecl @581 + _wexecle @582 + _wexeclp @583 + _wexeclpe @584 + _wexecv @585 + _wexecve @586 + _wexecvp @587 + _wexecvpe @588 + _wfdopen @589 + _wfindfirst @590 + _wfindfirst64 @591 + _wfindfirsti64 @592 + _wfindnext @593 + _wfindnext64 @594 + _wfindnexti64 @595 + _wfopen @596 + _wfreopen @597 + _wfsopen @598 + _wfullpath @599 + _wgetcwd @600 + _wgetdcwd @601 + _wgetenv @602 + _winmajor @603 DATA + _winminor @604 DATA + _winver @605 DATA + _wmakepath @606 + _wmkdir @607 + _wmktemp @608 + _wopen @609 + _wperror @610 + _wpgmptr @611 DATA + _wpopen @612 + _wputenv @613 + _wremove @614 + _wrename @615 + _write @616 + _wrmdir @617 + _wsearchenv @618 + _wsetlocale @619 + _wsopen @620 + _wspawnl @621 + _wspawnle @622 + _wspawnlp @623 + _wspawnlpe @624 + _wspawnv @625 + _wspawnve @626 + _wspawnvp @627 + _wspawnvpe @628 + _wsplitpath @629 + _wstat @630 + _wstat64 @631 + _wstati64 @632 + _wstrdate @633 + _wstrtime @634 + _wsystem @635 + _wtempnam @636 + _wtmpnam @637 +; _wtof @638 + _wtoi @639 + _wtoi64 @640 + _wtol @641 + _wunlink @642 + _wutime @643 +; _wutime64 @644 +; FIXME: these aren't actually implemented in CRT +; _y0 @645 +; _y1 @646 +; _yn @647 + abort @648 + abs @649 + acos @650 + asctime @651 + asin @652 + atan @653 + atan2 @654 + atexit @655 + atof @656 + atoi @657 + atol @658 + bsearch @659 + calloc @660 + ceil @661 + clearerr @662 + clock @663 + cos @664 + cosh @665 + ctime @666 + difftime @667 + div @668 + exit @669 + exp @670 + fabs @671 + fclose @672 + feof @673 + ferror @674 + fflush @675 + fgetc @676 + fgetpos @677 + fgets @678 + fgetwc @679 + fgetws @680 + floor @681 + fmod @682 + fopen @683 + fprintf @684 + fputc @685 + fputs @686 + fputwc @687 + fputws @688 + fread @689 + free @690 + freopen @691 + frexp @692 + fscanf @693 + fseek @694 + fsetpos @695 + ftell @696 + fwprintf @697 + fwrite @698 + fwscanf @699 + getc @700 + getchar @701 + getenv @702 + gets @703 + getwc @704 + getwchar @705 + gmtime @706 + is_wctype @707 + isalnum @708 + isalpha @709 + iscntrl @710 + isdigit @711 + isgraph @712 + isleadbyte @713 + islower @714 + isprint @715 + ispunct @716 + isspace @717 + isupper @718 + iswalnum @719 + iswalpha @720 + iswascii @721 + iswcntrl @722 + iswctype @723 + iswdigit @724 + iswgraph @725 + iswlower @726 + iswprint @727 + iswpunct @728 + iswspace @729 + iswupper @730 + iswxdigit @731 + isxdigit @732 + labs @733 + ldexp @734 + ldiv @735 + localeconv @736 + localtime @737 + log @738 + log10 @739 + longjmp @740 + malloc @741 + mblen @742 + mbstowcs @743 + mbtowc @744 + memchr @745 + memcmp @746 + memcpy @747 + memmove @748 + memset @749 + mktime @750 + modf @751 + perror @752 + pow @753 + printf @754 + putc @755 + putchar @756 + puts @757 + putwc=fputwc @758 + putwchar=_fputwchar @759 + qsort @760 + raise @761 + rand @762 + realloc @763 + remove @764 + rename @765 + rewind @766 + scanf @767 + setbuf @768 + setlocale @769 + setvbuf @770 + signal @771 + sin @772 + sinh @773 + sprintf @774 + sqrt @775 + srand @776 + sscanf @777 + strcat @778 + strchr @779 + strcmp @780 + strcoll @781 + strcpy @782 + strcspn @783 + strerror @784 + strftime @785 + strlen @786 + strncat @787 + strncmp @788 + strncpy @789 + strpbrk @790 + strrchr @791 + strspn @792 + strstr @793 + strtod @794 + strtok @795 + strtol @796 + strtoul @797 + strxfrm @798 + swprintf @799 + swscanf @800 + system @801 + tan @802 + tanh @803 + time @804 + tmpfile @805 + tmpnam @806 + tolower @807 + toupper @808 + towlower @809 + towupper @810 + ungetc @811 + ungetwc @812 + vfprintf @813 + vfwprintf @814 + vprintf @815 + vsprintf @816 + vswprintf @817 + vwprintf @818 + wcscat @819 + wcschr @820 + wcscmp @821 + wcscoll @822 + wcscpy @823 + wcscspn @824 + wcsftime @825 + wcslen @826 + wcsncat @827 + wcsncmp @828 + wcsncpy @829 + wcspbrk @830 + wcsrchr @831 + wcsspn @832 + wcsstr @833 + wcstod @834 + wcstok @835 + wcstol @836 + wcstombs @837 + wcstoul @838 + wcsxfrm @839 + wctomb @840 + wprintf @841 + wscanf @842 + + _mbsnbcpy_s + wcscpy_s + wcsncpy_s + _ftol2=_ftol + _ftol2_sse=_ftol + strcat_s + strcpy_s + + _swprintf=swprintf diff --git a/reactos/dll/win32/msvcrt/msvcrt.rbuild b/reactos/dll/win32/msvcrt/msvcrt.rbuild index 59ec3a1da0e..3e4a5d93f2a 100644 --- a/reactos/dll/win32/msvcrt/msvcrt.rbuild +++ b/reactos/dll/win32/msvcrt/msvcrt.rbuild @@ -1,5 +1,5 @@ - + . include diff --git a/reactos/dll/win32/msvcrt/msvcrt.spec b/reactos/dll/win32/msvcrt/msvcrt.spec deleted file mode 100644 index f44a90f609c..00000000000 --- a/reactos/dll/win32/msvcrt/msvcrt.spec +++ /dev/null @@ -1,839 +0,0 @@ -# msvcrt.dll - MS VC++ Run Time Library - -@ cdecl $I10_OUTPUT() MSVCRT_I10_OUTPUT -@ cdecl -i386 -norelay ??0__non_rtti_object@@QAE@ABV0@@Z(ptr) __thiscall_MSVCRT___non_rtti_object_copy_ctor -@ cdecl -i386 -norelay ??0__non_rtti_object@@QAE@PBD@Z(ptr) __thiscall_MSVCRT___non_rtti_object_ctor -@ cdecl -i386 -norelay ??0bad_cast@@QAE@ABQBD@Z(ptr) __thiscall_MSVCRT_bad_cast_ctor -@ cdecl -i386 -norelay ??0bad_cast@@QAE@ABV0@@Z(ptr) __thiscall_MSVCRT_bad_cast_copy_ctor -@ cdecl -i386 -norelay ??0bad_typeid@@QAE@ABV0@@Z(ptr) __thiscall_MSVCRT_bad_typeid_copy_ctor -@ cdecl -i386 -norelay ??0bad_typeid@@QAE@PBD@Z(ptr) __thiscall_MSVCRT_bad_typeid_ctor -@ cdecl -i386 -norelay ??0exception@@QAE@ABQBD@Z(ptr) __thiscall_MSVCRT_exception_ctor -@ cdecl -i386 -norelay ??0exception@@QAE@ABV0@@Z(ptr) __thiscall_MSVCRT_exception_copy_ctor -@ cdecl -i386 -norelay ??0exception@@QAE@XZ() __thiscall_MSVCRT_exception_default_ctor -@ cdecl -i386 -norelay ??1__non_rtti_object@@UAE@XZ() __thiscall_MSVCRT___non_rtti_object_dtor -@ cdecl -i386 -norelay ??1bad_cast@@UAE@XZ() __thiscall_MSVCRT_bad_cast_dtor -@ cdecl -i386 -norelay ??1bad_typeid@@UAE@XZ() __thiscall_MSVCRT_bad_typeid_dtor -@ cdecl -i386 -norelay ??1exception@@UAE@XZ() __thiscall_MSVCRT_exception_dtor -@ cdecl -i386 -norelay ??1type_info@@UAE@XZ() __thiscall_MSVCRT_type_info_dtor -@ cdecl ??2@YAPAXI@Z(long) MSVCRT_operator_new -@ cdecl ??_U@YAPAXI@Z(long) MSVCRT_operator_new -@ cdecl ??3@YAXPAX@Z(ptr) MSVCRT_operator_delete -@ cdecl ??_V@YAXPAX@Z(ptr) MSVCRT_operator_delete -@ cdecl -i386 -norelay ??4__non_rtti_object@@QAEAAV0@ABV0@@Z(ptr) __thiscall_MSVCRT___non_rtti_object_opequals -@ cdecl -i386 -norelay ??4bad_cast@@QAEAAV0@ABV0@@Z(ptr) __thiscall_MSVCRT_bad_cast_opequals -@ cdecl -i386 -norelay ??4bad_typeid@@QAEAAV0@ABV0@@Z(ptr) __thiscall_MSVCRT_bad_typeid_opequals -@ cdecl -i386 -norelay ??4exception@@QAEAAV0@ABV0@@Z(ptr) __thiscall_MSVCRT_exception_opequals -@ cdecl -i386 -norelay ??8type_info@@QBEHABV0@@Z(ptr) __thiscall_MSVCRT_type_info_opequals_equals -@ cdecl -i386 -norelay ??9type_info@@QBEHABV0@@Z(ptr) __thiscall_MSVCRT_type_info_opnot_equals -@ extern -i386 ??_7__non_rtti_object@@6B@ MSVCRT___non_rtti_object_vtable -@ extern -i386 ??_7bad_cast@@6B@ MSVCRT_bad_cast_vtable -@ extern -i386 ??_7bad_typeid@@6B@ MSVCRT_bad_typeid_vtable -@ extern -i386 ??_7exception@@6B@ MSVCRT_exception_vtable -@ cdecl -i386 -norelay ??_E__non_rtti_object@@UAEPAXI@Z(long) __thiscall_MSVCRT___non_rtti_object_vector_dtor -@ cdecl -i386 -norelay ??_Ebad_cast@@UAEPAXI@Z(long) __thiscall_MSVCRT_bad_cast_vector_dtor -@ cdecl -i386 -norelay ??_Ebad_typeid@@UAEPAXI@Z(long) __thiscall_MSVCRT_bad_typeid_vector_dtor -@ cdecl -i386 -norelay ??_Eexception@@UAEPAXI@Z(long) __thiscall_MSVCRT_exception_vector_dtor -@ cdecl -i386 -norelay ??_G__non_rtti_object@@UAEPAXI@Z(long) __thiscall_MSVCRT___non_rtti_object_scalar_dtor -@ cdecl -i386 -norelay ??_Gbad_cast@@UAEPAXI@Z(long) __thiscall_MSVCRT_bad_cast_scalar_dtor -@ cdecl -i386 -norelay ??_Gbad_typeid@@UAEPAXI@Z(long) __thiscall_MSVCRT_bad_typeid_scalar_dtor -@ cdecl -i386 -norelay ??_Gexception@@UAEPAXI@Z(long) __thiscall_MSVCRT_exception_scalar_dtor -@ cdecl ?_query_new_handler@@YAP6AHI@ZXZ() MSVCRT__query_new_handler -@ cdecl ?_query_new_mode@@YAHXZ() MSVCRT__query_new_mode -@ cdecl ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z(ptr) MSVCRT__set_new_handler -@ cdecl ?_set_new_mode@@YAHH@Z(long) MSVCRT__set_new_mode -@ cdecl ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z(ptr) MSVCRT__set_se_translator -@ cdecl -i386 -norelay ?before@type_info@@QBEHABV1@@Z(ptr) __thiscall_MSVCRT_type_info_before -@ cdecl -i386 -norelay ?name@type_info@@QBEPBDXZ() __thiscall_MSVCRT_type_info_name -@ cdecl -i386 -norelay ?raw_name@type_info@@QBEPBDXZ() __thiscall_MSVCRT_type_info_raw_name -@ cdecl ?set_new_handler@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_new_handler -@ cdecl ?set_terminate@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_terminate -@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_unexpected -@ cdecl ?terminate@@YAXXZ() MSVCRT_terminate -@ cdecl ?unexpected@@YAXXZ() MSVCRT_unexpected -@ cdecl -i386 -norelay ?what@exception@@UBEPBDXZ() __thiscall_MSVCRT_what_exception -@ cdecl -arch=i386 _CIacos() -@ cdecl -arch=i386 _CIasin() -@ cdecl -arch=i386 _CIatan() -@ cdecl -arch=i386 _CIatan2() -@ cdecl -arch=i386 _CIcos() -@ cdecl -arch=i386 _CIcosh() -@ cdecl -arch=i386 _CIexp() -@ cdecl -arch=i386 _CIfmod() -@ cdecl -arch=i386 _CIlog() -@ cdecl -arch=i386 _CIlog10() -@ cdecl -arch=i386 _CIpow() -@ cdecl -arch=i386 _CIsin() -@ cdecl -arch=i386 _CIsinh() -@ cdecl -arch=i386 _CIsqrt() -@ cdecl -arch=i386 _CItan() -@ cdecl -arch=i386 _CItanh() -@ cdecl _CxxThrowException(long long) -@ cdecl -i386 -norelay _EH_prolog() -@ cdecl _Getdays() -@ cdecl _Getmonths() -@ cdecl _Gettnames() -@ extern _HUGE -@ cdecl _Strftime(str long str ptr ptr) -@ cdecl _XcptFilter(long ptr) -@ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr) ntdll.__C_specific_handler -@ cdecl __CppXcptFilter(long ptr) -@ cdecl __CxxDetectRethrow(ptr) -@ cdecl -i386 -norelay __CxxFrameHandler(ptr ptr ptr ptr) -# 88 56 0002AE4C __CxxFrameHandler2 -# 89 57 0002ADC8 __CxxFrameHandler3 -# 90 58 00029794 __DestructExceptionObject -@ stdcall -i386 __CxxLongjmpUnwind(ptr) -@ cdecl __CxxQueryExceptionSize() -@ cdecl __RTCastToVoid(ptr) MSVCRT___RTCastToVoid -@ cdecl __RTDynamicCast(ptr long ptr ptr long) MSVCRT___RTDynamicCast -@ cdecl __RTtypeid(ptr) MSVCRT___RTtypeid -@ cdecl __STRINGTOLD(ptr ptr str long) -#@ cdecl ___lc_codepage_func() -#@ cdecl ___lc_collate_cp_func() -#@ cdecl ___lc_handle_func() -#@ cdecl ___mb_cur_max_func() -@ cdecl ___setlc_active_func() -@ cdecl ___unguarded_readlc_active_add_func() -@ extern __argc -@ extern __argv -@ extern __badioinfo -@ cdecl __crtCompareStringA(long long str long str long) kernel32.CompareStringA -@ cdecl __crtCompareStringW(long long wstr long wstr long) kernel32.CompareStringW -@ cdecl __crtGetLocaleInfoW(long long ptr long)kernel32.GetLocaleInfo -@ cdecl __crtGetStringTypeW(long wstr long ptr) kernel32.GetStringTypeW -@ cdecl __crtLCMapStringA(long long str long ptr long long long) -# 109 6B 000414E0 __crtLCMapStringW -# 110 6C 00068CC4 __daylight -@ cdecl __dllonexit(ptr ptr ptr) -@ cdecl __doserrno() -@ cdecl __fpecode() -@ stub __get_app_type -@ cdecl __getmainargs(ptr ptr ptr long ptr) -@ extern __initenv -@ cdecl __iob_func() -@ cdecl __isascii(long) -@ cdecl __iscsym(long) -@ cdecl __iscsymf(long) -@ extern __lc_codepage -@ stub __lc_collate -@ extern __lc_collate_cp -@ extern __lc_handle -@ cdecl __lconv_init() -@ extern __mb_cur_max -@ cdecl -arch=i386 __p___argc() -@ cdecl -arch=i386 __p___argv() -@ cdecl -arch=i386 __p___initenv() -#@ cdecl -arch=i386 __p___mb_cur_max() ___mb_cur_max_func -@ cdecl -arch=i386 __p___wargv() -@ cdecl -arch=i386 __p___winitenv() -@ cdecl -arch=i386 __p__acmdln() -@ cdecl -arch=i386 __p__amblksiz() -@ cdecl -arch=i386 __p__commode() -@ cdecl -arch=i386 __p__daylight() -@ cdecl -arch=i386 __p__dstbias() -@ cdecl -arch=i386 __p__environ() -@ stub -arch=i386 __p__fileinfo #() -@ cdecl -arch=i386 __p__fmode() -@ cdecl -arch=i386 __p__iob() __iob_func -@ stub -arch=i386 __p__mbcasemap #() -@ cdecl -arch=i386 __p__mbctype() -@ cdecl -arch=i386 __p__osver() -@ cdecl -arch=i386 __p__pctype() __pctype_func -@ cdecl -arch=i386 __p__pgmptr() -@ stub -arch=i386 __p__pwctype #() -@ cdecl -arch=i386 __p__timezone() __p__timezone -@ cdecl -arch=i386 __p__tzname() -@ cdecl -arch=i386 __p__wcmdln() -@ cdecl -arch=i386 __p__wenviron() -@ cdecl -arch=i386 __p__winmajor() -@ cdecl -arch=i386 __p__winminor() -@ cdecl -arch=i386 __p__winver() -@ cdecl -arch=i386 __p__wpgmptr() -@ cdecl __pctype_func() __pctype_func -@ extern __pioinfo -@ stub __pxcptinfoptrs #() -@ cdecl __set_app_type(long) -@ extern __setlc_active -@ cdecl __setusermatherr(ptr) -@ cdecl __threadhandle() kernel32.GetCurrentThread -@ cdecl __threadid() kernel32.GetCurrentThreadId -@ cdecl __toascii(long) -@ cdecl __uncaught_exception() -@ cdecl __unDName(ptr str long ptr ptr long) -@ cdecl __unDNameEx(ptr str long ptr ptr ptr long) -@ extern __unguarded_readlc_active -@ extern __wargv -@ cdecl __wgetmainargs(ptr ptr ptr long ptr) -@ extern __winitenv -@ cdecl _abnormal_termination() -@ cdecl _access(str long) -@ extern _acmdln -@ stdcall -arch=i386 _adj_fdiv_m16i(long) -@ stdcall -arch=i386 _adj_fdiv_m32(long) -@ stdcall -arch=i386 _adj_fdiv_m32i(long) -@ stdcall -arch=i386 _adj_fdiv_m64(double) -@ cdecl -arch=i386 _adj_fdiv_r() -@ stdcall -arch=i386 _adj_fdivr_m16i(long) -@ stdcall -arch=i386 _adj_fdivr_m32(long) -@ stdcall -arch=i386 _adj_fdivr_m32i(long) -@ stdcall -arch=i386 _adj_fdivr_m64(double) -@ cdecl -arch=i386 _adj_fpatan() -@ cdecl -arch=i386 _adj_fprem() -@ cdecl -arch=i386 _adj_fprem1() -@ cdecl -arch=i386 _adj_fptan() -@ extern -arch=i386 _adjust_fdiv -# extern _aexit_rtn -@ cdecl _aligned_free(ptr) -@ cdecl _aligned_malloc(long long) -@ cdecl _aligned_offset_malloc(long long long) -@ cdecl _aligned_offset_realloc(ptr long long long) -@ cdecl _aligned_realloc(ptr long long) -@ cdecl _amsg_exit(long) -@ cdecl _assert(str str long) -@ stub _atodbl #(ptr str) -@ cdecl -ret64 _atoi64(str) ntdll._atoi64 -@ cdecl _atoldbl(ptr str) -@ cdecl _beep(long long) -@ cdecl _beginthread (ptr long ptr) -@ cdecl _beginthreadex (ptr long ptr ptr long ptr) -@ cdecl _c_exit() -@ cdecl _cabs(long) -@ cdecl _callnewh(long) -@ cdecl _cexit() -@ cdecl _cgets(str) -@ cdecl _chdir(str) -@ cdecl _chdrive(long) -@ cdecl _chgsign( double ) -@ cdecl -i386 -norelay _chkesp() -@ cdecl _chmod(str long) -@ cdecl _chsize (long long) -@ cdecl _clearfp() -@ cdecl _close(long) -@ cdecl _commit(long) -@ extern _commode -@ cdecl _control87(long long) -@ cdecl _controlfp(long long) -@ cdecl _copysign( double double ) -@ varargs _cprintf(str) -@ cdecl _cputs(str) -@ cdecl _creat(str long) -@ varargs _cscanf(str) -@ cdecl _ctime32(ptr) -@ cdecl _ctime64(ptr) -@ extern _ctype -@ cdecl _cwait(ptr long long) -@ extern _daylight -@ cdecl _difftime32(long long) -@ cdecl _difftime64(long long) -@ extern _dstbias -@ cdecl _dup (long) -@ cdecl _dup2 (long long) -@ cdecl _ecvt(double long ptr ptr) -@ cdecl _endthread () -@ cdecl _endthreadex(long) -@ extern _environ -@ cdecl _eof(long) -@ cdecl _errno() -@ cdecl _except_handler2(ptr ptr ptr ptr) -@ cdecl _except_handler3(ptr ptr ptr ptr) -@ varargs _execl(str str) -@ varargs _execle(str str) -@ varargs _execlp(str str) -@ varargs _execlpe(str str) -@ cdecl _execv(str ptr) -@ cdecl _execve(str ptr ptr) -@ cdecl _execvp(str ptr) -@ cdecl _execvpe(str ptr ptr) -@ cdecl _exit(long) -@ cdecl _expand(ptr long) -@ cdecl _fcloseall() -@ cdecl _fcvt(double long ptr ptr) -@ cdecl _fdopen(long str) -@ cdecl _fgetchar() -@ cdecl _fgetwchar() -@ cdecl _filbuf(ptr) -# extern _fileinfo -@ cdecl _filelength(long) -@ cdecl -ret64 _filelengthi64(long) -@ cdecl _fileno(ptr) -@ cdecl _findclose(long) -@ cdecl _findfirst(str ptr) -@ cdecl _findfirsti64(str ptr) -@ cdecl _findnext(long ptr) -@ cdecl _findnexti64(long ptr) -@ cdecl _finite( double ) -@ cdecl _flsbuf(long ptr) -@ cdecl _flushall() -@ extern _fmode -@ cdecl _fpclass(double) -@ stub _fpieee_flt #(long ptr ptr) -@ cdecl _fpreset() -@ cdecl _fputchar(long) -@ cdecl _fputwchar(long) -@ cdecl _fsopen(str str long) -@ cdecl _fstat(long ptr) -@ cdecl _fstat64(long ptr) -@ cdecl _fstati64(long ptr) -@ cdecl _ftime(ptr) -@ cdecl _ftime32(ptr) -@ cdecl _ftime64(ptr) -@ cdecl -ret64 _ftol() ntdll._ftol -@ cdecl -ret64 _ftol2_sse() ntdll._ftol #FIXME: SSE variant should be implemented -@ cdecl _fullpath(ptr str long) -@ cdecl _futime(long ptr) -@ cdecl _futime32(long ptr) -@ cdecl _futime64(long ptr) -@ cdecl _gcvt(double long str) -@ cdecl _get_osfhandle(long) -@ cdecl _get_sbh_threshold() -@ stub _get_terminate -@ stub _get_unexpected -@ cdecl _getch() -@ cdecl _getche() -@ cdecl _getcwd(str long) -@ cdecl _getdcwd(long str long) -@ cdecl _getdiskfree(long ptr) -@ cdecl _getdllprocaddr(long str long) -@ cdecl _getdrive() -@ cdecl _getdrives() kernel32.GetLogicalDrives -@ cdecl _getmaxstdio() -@ cdecl _getmbcp() -@ cdecl _getpid() kernel32.GetCurrentProcessId -@ stub _getsystime #(ptr) -@ cdecl _getw(ptr) -@ cdecl _getws(ptr) -@ cdecl _global_unwind2(ptr) -@ cdecl _gmtime32(ptr) -@ cdecl _gmtime64(ptr) -@ cdecl _heapadd (ptr long) -@ cdecl _heapchk() -@ cdecl _heapmin() -@ cdecl _heapset(long) -@ stub _heapused #(ptr ptr) -@ cdecl _heapwalk(ptr) -@ cdecl _hypot(double double) -@ cdecl _i64toa(long long ptr long) ntdll._i64toa -@ cdecl _i64tow(long long ptr long) ntdll._i64tow -@ cdecl _initterm(ptr ptr) -@ stub _inp #(long) -i386 -@ stub _inpd #(long) -i386 -@ stub _inpw #(long) -i386 -@ extern _iob -@ cdecl _isatty(long) -@ cdecl _isctype(long long) -@ stub _ismbbalnum #(long) -@ stub _ismbbalpha #(long) -@ stub _ismbbgraph #(long) -@ stub _ismbbkalnum #(long) -@ cdecl _ismbbkana(long) -@ stub _ismbbkprint #(long) -@ stub _ismbbkpunct #(long) -@ cdecl _ismbblead(long) -@ stub _ismbbprint #(long) -@ stub _ismbbpunct #(long) -@ cdecl _ismbbtrail(long) -@ cdecl _ismbcalnum(long) -@ cdecl _ismbcalpha(long) -@ cdecl _ismbcdigit(long) -@ cdecl _ismbcgraph(long) -@ cdecl _ismbchira(long) -@ cdecl _ismbckata(long) -@ stub _ismbcl0 #(long) -@ stub _ismbcl1 #(long) -@ stub _ismbcl2 #(long) -@ stub _ismbclegal #(long) -@ cdecl _ismbclower(long) -@ cdecl _ismbcprint(long) -@ cdecl _ismbcpunct(long) -@ cdecl _ismbcspace(long) -@ cdecl _ismbcsymbol(long) -@ cdecl _ismbcupper(long) -@ cdecl _ismbslead(ptr ptr) -@ cdecl _ismbstrail(ptr ptr) -@ cdecl _isnan( double ) -@ cdecl _itoa(long ptr long) ntdll._itoa -@ cdecl _itow(long ptr long) ntdll._itow -#@ cdecl _j0(double) -#@ cdecl _j1(double) -#@ cdecl _jn(long double) -@ cdecl _kbhit() -@ cdecl _lfind(ptr ptr ptr long ptr) -@ cdecl _loaddll(str) -@ cdecl -i386 _local_unwind2(ptr long) -@ cdecl _localtime32(ptr) -@ cdecl _localtime64(ptr) -@ cdecl _lock(long) -@ cdecl _locking(long long long) -@ cdecl _logb( double ) -@ cdecl -i386 _longjmpex(ptr long) longjmp -@ cdecl _lrotl(long long) -@ cdecl _lrotr(long long) -@ cdecl _lsearch(ptr ptr long long ptr) -@ cdecl _lseek(long long long) -@ cdecl -ret64 _lseeki64(long double long) -@ cdecl _ltoa(long ptr long) ntdll._ltoa -@ cdecl _ltow(long ptr long) ntdll._ltow -@ cdecl _makepath(ptr str str str str) -@ cdecl _matherr(ptr) -@ cdecl _mbbtombc(long) -@ cdecl _mbbtype(long long) -# extern _mbcasemap -@ cdecl _mbccpy (str str) -@ cdecl _mbcjistojms (long) -@ cdecl _mbcjmstojis (long) -@ cdecl _mbclen(ptr) -@ cdecl _mbctohira (long) -@ cdecl _mbctokata (long) -@ cdecl _mbctolower(long) -@ cdecl _mbctombb (long) -@ cdecl _mbctoupper(long) -@ extern _mbctype _mbctype -@ cdecl _mbsbtype(str long) -@ cdecl _mbscat(str str) -@ cdecl _mbschr(str long) -@ cdecl _mbscmp(str str) -@ cdecl _mbscoll(str str) -@ cdecl _mbscpy(ptr str) -@ cdecl _mbscspn (str str) -@ cdecl _mbsdec(ptr ptr) -@ cdecl _mbsdup(str) _strdup -@ cdecl _mbsicmp(str str) -@ cdecl _mbsicoll(str str) -@ cdecl _mbsinc(str) -@ cdecl _mbslen(str) -@ cdecl _mbslwr(str) -@ cdecl _mbsnbcat (str str long) -@ cdecl _mbsnbcmp(str str long) -@ cdecl _mbsnbcnt(ptr long) -@ cdecl _mbsnbcoll (str str long) -@ cdecl _mbsnbcpy(ptr str long) -@ cdecl _mbsnbcpy_s(ptr long str long) -@ cdecl _mbsnbicmp(str str long) -@ cdecl _mbsnbicoll (str str long) -@ cdecl _mbsnbset(str long long) -@ cdecl _mbsncat(str str long) -@ cdecl _mbsnccnt(str long) -@ cdecl _mbsncmp(str str long) -@ cdecl _mbsncoll (str str long) -@ cdecl _mbsncpy(str str long) -@ cdecl _mbsnextc(str) -@ cdecl _mbsnicmp(str str long) -@ cdecl _mbsnicoll (str str long) -@ cdecl _mbsninc(str long) -@ cdecl _mbsnset(str long long) -@ cdecl _mbspbrk(str str) -@ cdecl _mbsrchr(str long) -@ cdecl _mbsrev(str) -@ cdecl _mbsset(str long) -@ cdecl _mbsspn(str str) -@ cdecl _mbsspnp(str str) -@ cdecl _mbsstr(str str) -@ cdecl _mbstok(str str) -@ cdecl _mbstrlen(str) -@ cdecl _mbsupr(str) -@ cdecl _memccpy(ptr ptr long long) ntdll._memccpy -@ cdecl _memicmp(str str long) ntdll._memicmp -@ cdecl _mkdir(str) -@ cdecl _mktemp(str) -@ cdecl _mktime32(ptr) -@ cdecl _mktime64(ptr) -@ cdecl _msize(ptr) -@ cdecl _nextafter(double double) -@ cdecl _onexit(ptr) -@ varargs _open(str long) -@ cdecl _open_osfhandle(long long) -@ extern _osver -@ stub _outp #(long long) -@ stub _outpd #(long long) -@ stub _outpw #(long long) -@ cdecl _pclose (ptr) -@ extern _pctype -@ extern _pgmptr -@ cdecl _pipe (ptr long long) -@ cdecl _popen (str str) -@ cdecl _purecall() -@ cdecl _putch(long) -@ cdecl _putenv(str) -@ cdecl _putw(long ptr) -@ cdecl _putws(wstr) -# extern _pwctype -@ cdecl _read(long ptr long) -@ cdecl _rmdir(str) -@ cdecl _rmtmp() -@ cdecl _rotl(long long) -@ cdecl _rotr(long long) -@ cdecl -arch=i386 _safe_fdiv() -@ cdecl -arch=i386 _safe_fdivr() -@ cdecl -arch=i386 _safe_fprem() -@ cdecl -arch=i386 _safe_fprem1() -@ cdecl _scalb( double long) -@ cdecl _searchenv(str str ptr) -@ stdcall -i386 _seh_longjmp_unwind(ptr) -@ cdecl _set_error_mode(long) -@ cdecl _set_sbh_threshold(long) -@ cdecl _seterrormode(long) -@ cdecl -norelay _setjmp(ptr) -@ cdecl -i386 -norelay _setjmp3(ptr long) -@ cdecl _setmaxstdio(long) -@ cdecl _setmbcp(long) -@ cdecl _setmode(long long) -@ stub _setsystime #(ptr long) -@ cdecl _sleep(long) -@ varargs _snprintf(ptr long str) -@ varargs _snwprintf(ptr long wstr) -@ varargs _sopen(str long long) -@ varargs _spawnl(long str str) -@ varargs _spawnle(long str str) -@ varargs _spawnlp(long str str) -@ varargs _spawnlpe(long str str) -@ cdecl _spawnv(long str ptr) -@ cdecl _spawnve(long str ptr ptr) -@ cdecl _spawnvp(long str ptr) -@ cdecl _spawnvpe(long str ptr ptr) -@ cdecl _splitpath(str ptr ptr ptr ptr) ntdll._splitpath -@ cdecl _stat(str ptr) -@ cdecl _stat64(str ptr) -@ cdecl _stati64(str ptr) -@ cdecl _statusfp() -@ cdecl _strcmpi(str str) ntdll._strcmpi -@ cdecl _strdate(ptr) -@ cdecl _strdup(str) -@ cdecl _strerror(long) -@ cdecl _stricmp(str str) ntdll._stricmp -@ cdecl _stricoll(str str) -@ cdecl _strlwr(str) ntdll._strlwr -@ cdecl _strncoll (str str long) -@ cdecl _strnicmp(str str long) ntdll._strnicmp -@ cdecl _strnicoll (str str long) -@ cdecl _strnset(str long long) -@ cdecl _strrev(str) -@ cdecl _strset(str long) -@ cdecl _strtime(ptr) -@ cdecl _strtoui64(ptr ptr long) strtoull -@ cdecl _strupr(str) ntdll._strupr -@ cdecl _swab(str str long) -@ extern _sys_errlist -@ extern _sys_nerr -@ cdecl _tell(long) -@ cdecl -ret64 _telli64(long) -@ cdecl _tempnam(str str) -@ cdecl _time32(ptr) -@ cdecl _time64(ptr) -@ extern _timezone -@ cdecl _tolower(long) -@ cdecl _toupper(long) -@ extern _tzname -@ cdecl _tzset() -@ cdecl _ui64toa(long long ptr long) ntdll._ui64toa -@ cdecl _ui64tow(long long ptr long) ntdll._ui64tow -@ cdecl _ultoa(long ptr long) ntdll._ultoa -@ cdecl _ultow(long ptr long) ntdll._ultow -@ cdecl _umask(long) -@ cdecl _ungetch(long) -@ cdecl _unlink(str) -@ cdecl _unloaddll(long) -@ cdecl _unlock(long) -@ cdecl _utime32(str ptr) -@ cdecl _utime64(str ptr) -@ cdecl _utime(str ptr) -#@ cdecl _vscprintf(str ptr) -#@ cdecl _vscwprintf(wstr ptr) -@ cdecl _vsnprintf(ptr long str ptr) -@ cdecl _vsnwprintf(ptr long wstr ptr) -@ cdecl _waccess(wstr long) -@ cdecl _wasctime(ptr) -@ cdecl _wchdir(wstr) -@ cdecl _wchmod(wstr long) -@ extern _wcmdln -@ cdecl _wcreat(wstr long) -@ cdecl _wcsdup(wstr) -@ cdecl _wcsicmp(wstr wstr) ntdll._wcsicmp -@ cdecl _wcsicoll(wstr wstr) -@ cdecl _wcslwr(wstr) ntdll._wcslwr -@ cdecl _wcsncoll (wstr wstr long) -@ cdecl _wcsnicmp(wstr wstr long) ntdll._wcsnicmp -@ cdecl _wcsnicoll (wstr wstr long) -@ cdecl _wcsnset(wstr long long) -@ cdecl _wcsrev(wstr) -@ cdecl _wcsset(wstr long) -@ cdecl _wcsupr(wstr) ntdll._wcsupr -@ cdecl _wcsupr_s(wstr long) -@ cdecl _wctime(ptr) -@ cdecl _wctime32(ptr) -@ cdecl _wctime64(ptr) -@ extern _wenviron -@ varargs _wexecl(wstr wstr) -@ varargs _wexecle(wstr wstr) -@ varargs _wexeclp(wstr wstr) -@ varargs _wexeclpe(wstr wstr) -@ cdecl _wexecv(wstr ptr) -@ cdecl _wexecve(wstr ptr ptr) -@ cdecl _wexecvp(wstr ptr) -@ cdecl _wexecvpe(wstr ptr ptr) -@ cdecl _wfdopen(long wstr) -@ cdecl _wfindfirst(wstr ptr) -@ cdecl _wfindfirsti64(wstr ptr) -@ cdecl _wfindnext(long ptr) -@ cdecl _wfindnexti64(long ptr) -@ cdecl _wfopen(wstr wstr) -@ cdecl _wfreopen(wstr wstr ptr) -@ cdecl _wfsopen(wstr wstr long) -@ cdecl _wfullpath(ptr wstr long) -@ cdecl _wgetcwd(wstr long) -@ cdecl _wgetdcwd(long wstr long) -@ cdecl _wgetenv(wstr) -@ extern _winmajor -@ extern _winminor -@ extern _winver -@ cdecl _wmakepath(wstr wstr wstr wstr wstr) -@ cdecl _wmkdir(wstr) -@ cdecl _wmktemp(wstr) -@ varargs _wopen(wstr long) -@ stub _wperror #(wstr) -@ extern _wpgmptr -@ cdecl _wpopen (wstr wstr) -@ cdecl _wputenv(wstr) -@ cdecl _wremove(wstr) -@ cdecl _wrename(wstr wstr) -@ cdecl _write(long ptr long) -@ cdecl _wrmdir(wstr) -@ cdecl _wsearchenv(wstr wstr ptr) -@ cdecl _wsetlocale(long wstr) -@ varargs _wsopen (wstr long long) -@ varargs _wspawnl(long wstr wstr) -@ varargs _wspawnle(long wstr wstr) -@ varargs _wspawnlp(long wstr wstr) -@ varargs _wspawnlpe(long wstr wstr) -@ cdecl _wspawnv(long wstr ptr) -@ cdecl _wspawnve(long wstr ptr ptr) -@ cdecl _wspawnvp(long wstr ptr) -@ cdecl _wspawnvpe(long wstr ptr ptr) -@ cdecl _wsplitpath(wstr ptr ptr ptr ptr) -#@ cdecl _wsplitpath_s(wstr ptr long ptr long ptr long ptr long) -@ cdecl _wstat(wstr ptr) -@ cdecl _wstati64(wstr ptr) -@ cdecl _wstat64(wstr ptr) -@ cdecl _wstrdate(ptr) -@ cdecl _wstrtime(ptr) -@ cdecl _wsystem(wstr) -@ cdecl _wtempnam(wstr wstr) -@ stub _wtmpnam #(ptr) -@ cdecl _wtoi(wstr) ntdll._wtoi -@ cdecl _wtoi64(wstr) ntdll._wtoi64 -@ cdecl _wtol(wstr) ntdll._wtol -@ cdecl _wunlink(wstr) -@ cdecl _wutime(wstr ptr) -@ cdecl _wutime32(wstr ptr) -@ cdecl _wutime64(wstr ptr) -#@ cdecl _y0(double) -#@ cdecl _y1(double) -#@ cdecl _yn(long double ) -@ cdecl abort() -@ cdecl abs(long) ntdll.abs -@ cdecl acos(double) -@ cdecl asctime(ptr) -@ cdecl asin(double) -@ cdecl atan(double) -@ cdecl atan2(double double) -@ cdecl atexit(ptr) -@ cdecl atof(str) -@ cdecl atoi(str) ntdll.atoi -@ cdecl atol(str) ntdll.atol -@ cdecl bsearch(ptr ptr long long ptr) ntdll.bsearch -@ cdecl calloc(long long) -@ cdecl ceil(double) -@ cdecl ceilf(double) -@ cdecl clearerr(ptr) -@ cdecl clock() -@ cdecl cos(double) -@ cdecl cosh(double) -@ cdecl cosf(double) -@ cdecl ctime(ptr) -@ cdecl difftime(long long) -@ cdecl div(long long) -@ cdecl exit(long) -@ cdecl exp(double) -@ cdecl fabs(double) -@ cdecl fclose(ptr) -@ cdecl feof(ptr) -@ cdecl ferror(ptr) -@ cdecl fflush(ptr) -@ cdecl fgetc(ptr) -@ cdecl fgetpos(ptr ptr) -@ cdecl fgets(ptr long ptr) -@ cdecl fgetwc(ptr) -@ cdecl fgetws(ptr long ptr) -@ cdecl floor(double) -@ cdecl fmod(double double) -@ cdecl fmodf(double double) -@ cdecl fopen(str str) -@ varargs fprintf(ptr str) -@ cdecl fputc(long ptr) -@ cdecl fputs(str ptr) -@ cdecl fputwc(long ptr) -@ cdecl fputws(wstr ptr) -@ cdecl fread(ptr long long ptr) -@ cdecl free(ptr) -@ cdecl freopen(str str ptr) -@ cdecl frexp(double ptr) -@ varargs fscanf(ptr str) -@ cdecl fseek(ptr long long) -@ cdecl fsetpos(ptr ptr) -@ cdecl ftell(ptr) -@ varargs fwprintf(ptr wstr) -@ cdecl fwrite(ptr long long ptr) -@ varargs fwscanf(ptr wstr) -@ cdecl getc(ptr) -@ cdecl getchar() -@ cdecl getenv(str) -@ cdecl gets(str) -@ cdecl getwc(ptr) -@ cdecl getwchar() -@ cdecl gmtime(ptr) -@ cdecl is_wctype(long long) ntdll.iswctype -@ cdecl isalnum(long) -@ cdecl isalpha(long) -@ cdecl iscntrl(long) -@ cdecl isdigit(long) -@ cdecl isgraph(long) -@ cdecl isleadbyte(long) -@ cdecl islower(long) -@ cdecl isprint(long) -@ cdecl ispunct(long) -@ cdecl isspace(long) -@ cdecl isupper(long) -@ cdecl iswalnum(long) -@ cdecl iswalpha(long) ntdll.iswalpha -@ cdecl iswascii(long) -@ cdecl iswcntrl(long) -@ cdecl iswctype(long long) ntdll.iswctype -@ cdecl iswdigit(long) -@ cdecl iswgraph(long) -@ cdecl iswlower(long) -@ cdecl iswprint(long) -@ cdecl iswpunct(long) -@ cdecl iswspace(long) -@ cdecl iswupper(long) -@ cdecl iswxdigit(long) -@ cdecl isxdigit(long) -@ cdecl labs(long) ntdll.labs -@ cdecl ldexp( double long) -@ cdecl ldiv(long long) -@ cdecl localeconv() -@ cdecl localtime(ptr) -@ cdecl log(double) -@ cdecl logf(double) -@ cdecl log10(double) -@ cdecl longjmp(ptr long) -@ cdecl malloc(long) -@ cdecl mblen(ptr long) -@ cdecl mbstowcs(ptr str long) ntdll.mbstowcs -@ cdecl mbtowc(wstr str long) -@ cdecl memchr(ptr long long) ntdll.memchr -@ cdecl memcmp(ptr ptr long) ntdll.memcmp -@ cdecl memcpy(ptr ptr long) ntdll.memcpy -@ cdecl memmove(ptr ptr long) ntdll.memmove -@ cdecl memset(ptr long long) ntdll.memset -@ cdecl mktime(ptr) -@ cdecl modf(double ptr) -@ cdecl perror(str) -@ cdecl pow(double double) -@ varargs printf(str) -@ cdecl putc(long ptr) -@ cdecl putchar(long) -@ cdecl puts(str) -@ cdecl putwc(long ptr) fputwc #redirection is hack -@ cdecl putwchar(long) _fputwchar #redirection is hack -@ cdecl qsort(ptr long long ptr) ntdll.qsort -@ cdecl raise(long) -@ cdecl rand() -#@ cdecl rand_s(ptr) -@ cdecl realloc(ptr long) -@ cdecl remove(str) -@ cdecl rename(str str) -@ cdecl rewind(ptr) -@ varargs scanf(str) -@ cdecl setbuf(ptr ptr) -@ cdecl setlocale(long str) -@ cdecl setvbuf(ptr str long long) -@ cdecl signal(long long) -@ cdecl sin(double) -@ cdecl sinh(double) -@ varargs sprintf(ptr str) -#@ varargs sprintf_s(ptr long str) -@ cdecl sqrt(double) -@ cdecl sqrtf(double) -@ cdecl srand(long) -@ varargs sscanf(str str) -@ cdecl strcat(str str) ntdll.strcat -@ cdecl strcat_s(str long str) -@ cdecl strchr(str long) ntdll.strchr -@ cdecl strcmp(str str) ntdll.strcmp -@ cdecl strcoll(str str) -@ cdecl strcpy(ptr str) ntdll.strcpy -@ cdecl strcpy_s(ptr long str) -@ cdecl strcspn(str str) ntdll.strcspn -@ cdecl strerror(long) -@ cdecl strftime(str long str ptr) -@ cdecl strlen(str) ntdll.strlen -@ cdecl strncat(str str long) ntdll.strncat -@ cdecl strncmp(str str long) ntdll.strncmp -@ cdecl strncpy(ptr str long) ntdll.strncpy -@ cdecl strpbrk(str str) ntdll.strpbrk -@ cdecl strrchr(str long) ntdll.strrchr -@ cdecl strspn(str str) ntdll.strspn -@ cdecl strstr(str str) ntdll.strstr -@ cdecl strtod(str ptr) -@ cdecl strtok(str str) -@ cdecl strtol(str ptr long) -@ cdecl strtoul(str ptr long) -@ cdecl strxfrm(ptr str long) -@ varargs swprintf(ptr wstr) -@ varargs swscanf(wstr wstr) -@ cdecl system(str) -@ cdecl tan(double) -@ cdecl tanh(double) -@ cdecl time(ptr) -@ cdecl tmpfile() -@ cdecl tmpnam(ptr) -@ cdecl tolower(long) ntdll.tolower -@ cdecl toupper(long) ntdll.toupper -@ cdecl towlower(long) ntdll.towlower -@ cdecl towupper(long) ntdll.towupper -@ cdecl ungetc(long ptr) -@ cdecl ungetwc(long ptr) -@ cdecl vfprintf(ptr str ptr) -@ cdecl vfwprintf(ptr wstr ptr) -@ cdecl vprintf(str ptr) -@ cdecl vsprintf(ptr str ptr) -#@ cdecl vsprintf_s(ptr long str ptr) -@ cdecl vswprintf(ptr wstr ptr) -#@ cdecl vswprintf_s(ptr long wstr ptr) -@ cdecl vwprintf(wstr ptr) -@ cdecl wcscat(wstr wstr) ntdll.wcscat -#@ cdecl wcscat_s(wstr long wstr) -@ cdecl wcschr(wstr long) ntdll.wcschr -@ cdecl wcscmp(wstr wstr) ntdll.wcscmp -@ cdecl wcscoll(wstr wstr) -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy -@ cdecl wcscpy_s(ptr long wstr) -@ cdecl wcscspn(wstr wstr) ntdll.wcscspn -@ cdecl wcsftime(ptr long wstr ptr) -@ cdecl wcslen(wstr) ntdll.wcslen -@ cdecl wcsncat(wstr wstr long) ntdll.wcsncat -@ cdecl wcsncmp(wstr wstr long) ntdll.wcsncmp -@ cdecl wcsncpy(ptr wstr long) ntdll.wcsncpy -@ cdecl wcsncpy_s(ptr long wstr long) -@ cdecl wcspbrk(wstr wstr) -@ cdecl wcsrchr(wstr long) ntdll.wcsrchr -@ cdecl wcsspn(wstr wstr) ntdll.wcsspn -@ cdecl wcsstr(wstr wstr) ntdll.wcsstr -@ cdecl wcstod(wstr ptr) -@ cdecl wcstok(wstr wstr) -@ cdecl wcstol(wstr ptr long) ntdll.wcstol -@ cdecl wcstombs(ptr ptr long) ntdll.wcstombs -@ cdecl wcstoul(wstr ptr long) ntdll.wcstoul -@ stub wcsxfrm #(ptr wstr long) -@ cdecl wctomb(ptr long) -@ varargs wprintf(wstr) -@ varargs wscanf(wstr) diff --git a/reactos/include/crt/math.h b/reactos/include/crt/math.h index 670b607d329..a5761848f57 100644 --- a/reactos/include/crt/math.h +++ b/reactos/include/crt/math.h @@ -187,8 +187,31 @@ extern "C" { return (_Df); } - //missing in msvcrt but needed by gdiplus +#if !defined(__x86_64) && !defined(_M_AMD64) + __CRT_INLINE float acosf(float _X) { return ((float)acos((double)_X)); } + __CRT_INLINE float asinf(float _X) { return ((float)asin((double)_X)); } + __CRT_INLINE float atanf(float _X) { return ((float)atan((double)_X)); } + __CRT_INLINE float atan2f(float _X,float _Y) { return ((float)atan2((double)_X,(double)_Y)); } + __CRT_INLINE float ceilf(float _X) { return ((float)ceil((double)_X)); } + __CRT_INLINE float cosf(float _X) { return ((float)cos((double)_X)); } + __CRT_INLINE float coshf(float _X) { return ((float)cosh((double)_X)); } + __CRT_INLINE float expf(float _X) { return ((float)exp((double)_X)); } __CRT_INLINE float floorf(float _X) { return ((float)floor((double)_X)); } + __CRT_INLINE float fmodf(float _X,float _Y) { return ((float)fmod((double)_X,(double)_Y)); } + __CRT_INLINE float logf(float _X) { return ((float)log((double)_X)); } + __CRT_INLINE float log10f(float _X) { return ((float)log10((double)_X)); } + __CRT_INLINE float modff(float _X,float *_Y) { + double _Di,_Df = modf((double)_X,&_Di); + *_Y = (float)_Di; + return ((float)_Df); + } + __CRT_INLINE float powf(float _X,float _Y) { return ((float)pow((double)_X,(double)_Y)); } + __CRT_INLINE float sinf(float _X) { return ((float)sin((double)_X)); } + __CRT_INLINE float sinhf(float _X) { return ((float)sinh((double)_X)); } + __CRT_INLINE float sqrtf(float _X) { return ((float)sqrt((double)_X)); } + __CRT_INLINE float tanf(float _X) { return ((float)tan((double)_X)); } + __CRT_INLINE float tanhf(float _X) { return ((float)tanh((double)_X)); } +#endif #ifndef NO_OLDNAMES #define DOMAIN _DOMAIN diff --git a/reactos/lib/sdk/crt/crt.rbuild b/reactos/lib/sdk/crt/crt.rbuild index 2539f2b7079..6e7ed0d16ff 100644 --- a/reactos/lib/sdk/crt/crt.rbuild +++ b/reactos/lib/sdk/crt/crt.rbuild @@ -22,7 +22,6 @@ extern - @@ -107,84 +106,87 @@ locale.c - abs.c acos.c - acosf.c adjust.c asin.c - asinf.c - atan.c - atan2.c - atan2f.c - atanf.c cabs.c - copysign.c - copysignf.c - cosf.c cosh.c div.c - exp.c - expf.c - fabs.c fdivbug.c - fmod.c - fmodf.c frexp.c huge_val.c hypot.c - hypotf.c - ldexp.c ldiv.c - log10f.c - logb.c - logbf.c - logf.c modf.c - modff.c - nextafter.c - nextafterf.c - powf.c rand.c s_modf.c - sinf.c sinh.c - sinhf.c - sqrt.c - sqrtf.c - tanf.c tanh.c - tanhf.c + pow_asm.c + - ceil.S - ceilf.S - cos.S - floor.S - floorf.S - log.S - log10.S - sin.S - tan.S - ci.c + alldiv_asm.s + alldvrm_asm.s + allmul_asm.s + allrem_asm.s + allshl_asm.s + allshr_asm.s + atan_asm.s + aulldiv_asm.s + aulldvrm_asm.s + aullrem_asm.s + aullshr_asm.s + ceil_asm.s + cos_asm.s + fabs_asm.s + floor_asm.s + ftol_asm.s + log_asm.s + log10_asm.s pow_asm.s + sin_asm.s + sqrt_asm.s + tan_asm.s + + atan2.c + ci.c + exp.c + fmod.c + ldexp.c + + - + + alldiv.S + atan.S + atan2.S ceil.S ceilf.S cos.S + exp.S + fabs.S floor.S floorf.S + fmod.S + fmodf.S + ldexp.S log.S log10.S - sin.S - tan.S - ci.c - - pow.S + sin.S + sqrt.S + sqrtf.S + tan.S + + stubs.c diff --git a/reactos/lib/sdk/crt/except/cppexcept.c b/reactos/lib/sdk/crt/except/cppexcept.c index ba75ce87daf..34d14a7c15d 100644 --- a/reactos/lib/sdk/crt/except/cppexcept.c +++ b/reactos/lib/sdk/crt/except/cppexcept.c @@ -491,11 +491,3 @@ unsigned int CDECL __CxxQueryExceptionSize(void) { return sizeof(cxx_exception_type); } - -/****************************************************************** - * MSVCRT___uncaught_exception - */ -BOOL CDECL __uncaught_exception(void) -{ - return FALSE; -} diff --git a/reactos/lib/sdk/crt/except/i386/unwind.c b/reactos/lib/sdk/crt/except/i386/unwind.c index 3807174270e..bb2c302a3b6 100644 --- a/reactos/lib/sdk/crt/except/i386/unwind.c +++ b/reactos/lib/sdk/crt/except/i386/unwind.c @@ -1,7 +1,6 @@ #define WIN32_NO_STATUS #include #include -#include #define NTOS_MODE_USER #include #include @@ -26,6 +25,23 @@ typedef struct _MSVCRT_EXCEPTION_FRAME PEXCEPTION_POINTERS xpointers; } MSVCRT_EXCEPTION_FRAME; + +typedef struct __JUMP_BUFFER +{ + unsigned long Ebp; + unsigned long Ebx; + unsigned long Edi; + unsigned long Esi; + unsigned long Esp; + unsigned long Eip; + unsigned long Registration; + unsigned long TryLevel; + /* Start of new struct members */ + unsigned long Cookie; + unsigned long UnwindFunc; + unsigned long UnwindData[6]; +} _JUMP_BUFFER; + void _local_unwind2(MSVCRT_EXCEPTION_FRAME *RegistrationFrame, LONG TryLevel); diff --git a/reactos/lib/sdk/crt/libcntpr.rbuild b/reactos/lib/sdk/crt/libcntpr.rbuild index b3714aade69..5011ae07ce9 100644 --- a/reactos/lib/sdk/crt/libcntpr.rbuild +++ b/reactos/lib/sdk/crt/libcntpr.rbuild @@ -6,7 +6,6 @@ - "extern __attribute__ ((dllexport))" @@ -41,44 +40,48 @@ allrem_asm.s allshl_asm.s allshr_asm.s + atan_asm.s aulldiv_asm.s aulldvrm_asm.s aullrem_asm.s aullshr_asm.s ci.c + ceil_asm.s + cos_asm.s + fabs_asm.s floor_asm.s ftol_asm.s + log_asm.s pow_asm.s - ceil.S - cos.S - log.S - log10.S - sin.S - tan.S + sin_asm.s + sqrt_asm.s + tan_asm.s - - ceil.S - cos.S - floor.S - log.S - log10.S - sin.S - tan.S - alldiv.S + atan.S + atan2.S + ceil.S + cos.S + exp.S + fabs.S + floor.S + fmod.S + ldexp.S + log.S + log10.S pow.S + sin.S + sqrt.S + tan.S abs.c - atan.c - fabs.c div.c labs.c rand_nt.c - sqrt.c @@ -204,4 +207,4 @@ wcsspn.c wcsstr.c - \ No newline at end of file + diff --git a/reactos/lib/sdk/crt/math/acosf.c b/reactos/lib/sdk/crt/math/acosf.c deleted file mode 100644 index 316479220f6..00000000000 --- a/reactos/lib/sdk/crt/math/acosf.c +++ /dev/null @@ -1,29 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - * Written by J.T. Conklin . - * Public domain. - */ - -#include - -float -acosf (float x) -{ - float res = 0.0F; -#ifdef __GNUC__ - /* acosl = atanl (sqrtl(1 - x^2) / x) */ - asm ( "fld %%st\n\t" - "fmul %%st(0)\n\t" /* x^2 */ - "fld1\n\t" - "fsubp\n\t" /* 1 - x^2 */ - "fsqrt\n\t" /* sqrtl (1 - x^2) */ - "fxch %%st(1)\n\t" - "fpatan" - : "=t" (res) : "0" (x) : "st(1)"); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/amd64/atan.S b/reactos/lib/sdk/crt/math/amd64/atan.S new file mode 100644 index 00000000000..ef871c356fb --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/atan.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of atan + * FILE: lib/sdk/crt/math/amd64/atan.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc atan + UNIMPLEMENTED atan + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/atan2.S b/reactos/lib/sdk/crt/math/amd64/atan2.S new file mode 100644 index 00000000000..15ac4b8422c --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/atan2.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of atan2 + * FILE: lib/sdk/crt/math/amd64/atan2.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc atan2 + UNIMPLEMENTED atan2 + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/ceil.S b/reactos/lib/sdk/crt/math/amd64/ceil.S new file mode 100644 index 00000000000..1948364686e --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/ceil.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of ceil + * FILE: lib/sdk/crt/math/amd64/ceil.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc ceil + UNIMPLEMENTED ceil + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/ceilf.S b/reactos/lib/sdk/crt/math/amd64/ceilf.S new file mode 100644 index 00000000000..9c887798d71 --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/ceilf.S @@ -0,0 +1,40 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of tan + * FILE: lib/sdk/crt/math/amd64/ceilf.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc ceilf + /* Put parameter on the stack */ + movss [rsp - 0x10], xmm0 + fld dword ptr [rsp] + + /* Change fpu control word to round up */ + fstcw [rsp - 0x10] + mov eax, [rsp - 0x10] + or eax, 0x00800 + and eax, 0x0fbff + mov [rsp - 0x08], eax + fldcw [rsp - 0x08] + + /* Round to integer */ + frndint + + /* Restore fpu control word */ + fldcw [rsp - 0x10] + + fstp dword ptr [rsp - 0x10] + movss xmm0, [rsp - 0x10] + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/cos.S b/reactos/lib/sdk/crt/math/amd64/cos.S new file mode 100644 index 00000000000..5d2e0fe787b --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/cos.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of cos + * FILE: lib/sdk/crt/math/amd64/cos.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc cos + UNIMPLEMENTED cos + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/exp.S b/reactos/lib/sdk/crt/math/amd64/exp.S new file mode 100644 index 00000000000..bd4a8d0e69b --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/exp.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of exp + * FILE: lib/sdk/crt/math/amd64/exp.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc exp + UNIMPLEMENTED exp + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/fabs.S b/reactos/lib/sdk/crt/math/amd64/fabs.S new file mode 100644 index 00000000000..2282de1488d --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/fabs.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of fabs + * FILE: lib/sdk/crt/math/amd64/fabs.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc fabs + UNIMPLEMENTED fabs + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/floor.S b/reactos/lib/sdk/crt/math/amd64/floor.S new file mode 100644 index 00000000000..a08e4fc84ed --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/floor.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of floor + * FILE: lib/sdk/crt/math/amd64/floor.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc floor + UNIMPLEMENTED floor + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/floorf.S b/reactos/lib/sdk/crt/math/amd64/floorf.S new file mode 100644 index 00000000000..900f8e62024 --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/floorf.S @@ -0,0 +1,40 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of tan + * FILE: lib/sdk/crt/math/amd64/floorf.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc floorf + /* Put parameter on the stack */ + movss [rsp - 0x10], xmm0 + fld dword ptr [rsp] + + /* Change fpu control word to round down */ + fstcw [rsp - 0x10] + mov eax, [rsp - 0x10] + or eax, 0x00400 + and eax, 0x0f7ff + mov [rsp - 0x08], eax + fldcw [rsp - 0x08] + + /* Round to integer */ + frndint + + /* Restore fpu control word */ + fldcw [rsp - 0x10] + + fstp dword ptr [rsp - 0x10] + movss xmm0, [rsp - 0x10] + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/fmod.S b/reactos/lib/sdk/crt/math/amd64/fmod.S new file mode 100644 index 00000000000..1ad26d93511 --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/fmod.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of fmod + * FILE: lib/sdk/crt/math/amd64/fmod.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc fmod + UNIMPLEMENTED fmod + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/fmodf.S b/reactos/lib/sdk/crt/math/amd64/fmodf.S new file mode 100644 index 00000000000..966ceffec40 --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/fmodf.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of fmodf + * FILE: lib/sdk/crt/math/amd64/fmodf.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc fmodf + UNIMPLEMENTED fmodf + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/ldexp.S b/reactos/lib/sdk/crt/math/amd64/ldexp.S new file mode 100644 index 00000000000..9d4649c66eb --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/ldexp.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of ldexp + * FILE: lib/sdk/crt/math/amd64/ldexp.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc ldexp + UNIMPLEMENTED ldexp + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/log.S b/reactos/lib/sdk/crt/math/amd64/log.S new file mode 100644 index 00000000000..f4190d3e286 --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/log.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of log + * FILE: lib/sdk/crt/math/amd64/log.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc log + UNIMPLEMENTED log + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/log10.S b/reactos/lib/sdk/crt/math/amd64/log10.S new file mode 100644 index 00000000000..1f9c77aaf5f --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/log10.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of log10 + * FILE: lib/sdk/crt/math/amd64/log10.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc log10 + UNIMPLEMENTED log10 + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/sin.S b/reactos/lib/sdk/crt/math/amd64/sin.S new file mode 100644 index 00000000000..683eedcd647 --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/sin.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of sin + * FILE: lib/sdk/crt/math/amd64/sin.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc sin + UNIMPLEMENTED sin + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/sqrt.S b/reactos/lib/sdk/crt/math/amd64/sqrt.S new file mode 100644 index 00000000000..48db2fde91e --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/sqrt.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of sqrt + * FILE: lib/sdk/crt/math/amd64/sqrt.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc sqrt + UNIMPLEMENTED sqrt + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/sqrtf.S b/reactos/lib/sdk/crt/math/amd64/sqrtf.S new file mode 100644 index 00000000000..50ea81033ac --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/sqrtf.S @@ -0,0 +1,20 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of tan + * FILE: lib/sdk/crt/math/amd64/sqrtf.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc sqrtf + sqrtss xmm0, xmm0 + ret +.endproc diff --git a/reactos/lib/sdk/crt/math/amd64/tan.S b/reactos/lib/sdk/crt/math/amd64/tan.S new file mode 100644 index 00000000000..225c3acc66a --- /dev/null +++ b/reactos/lib/sdk/crt/math/amd64/tan.S @@ -0,0 +1,21 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Implementation of tan + * FILE: lib/sdk/crt/math/amd64/tan.S + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include +#include + +.intel_syntax noprefix + + +.proc tan + UNIMPLEMENTED tan + ret + +.endproc diff --git a/reactos/lib/sdk/crt/math/asinf.c b/reactos/lib/sdk/crt/math/asinf.c deleted file mode 100644 index a7a6cd79675..00000000000 --- a/reactos/lib/sdk/crt/math/asinf.c +++ /dev/null @@ -1,27 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - * Written by J.T. Conklin . - * Public domain. - */ - -/* asin = atan (x / sqrt(1 - x^2)) */ - -float asinf (float x); - -float asinf (float x) -{ - float res = 0.0F; - - asm ( "fld %%st\n\t" - "fmul %%st(0)\n\t" /* x^2 */ - "fld1\n\t" - "fsubp\n\t" /* 1 - x^2 */ - "fsqrt\n\t" /* sqrt (1 - x^2) */ - "fpatan" - : "=t" (res) : "0" (x) : "st(1)"); - return res; -} diff --git a/reactos/lib/sdk/crt/math/atan.c b/reactos/lib/sdk/crt/math/atan.c deleted file mode 100644 index 83ac89e7466..00000000000 --- a/reactos/lib/sdk/crt/math/atan.c +++ /dev/null @@ -1,18 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -double -atan (double x) -{ - double res = 0.0L; -#if defined(__GNUC__) - asm ("fld1\n\t" - "fpatan" - : "=t" (res) : "0" (x)); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/atan2.c b/reactos/lib/sdk/crt/math/atan2.c deleted file mode 100644 index bb2f5f3518b..00000000000 --- a/reactos/lib/sdk/crt/math/atan2.c +++ /dev/null @@ -1,16 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -double -atan2 (double y, double x) -{ - long double res = 0.0L; -#ifdef __GNUC__ - asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)"); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/atan2f.c b/reactos/lib/sdk/crt/math/atan2f.c deleted file mode 100644 index f7d1d943c66..00000000000 --- a/reactos/lib/sdk/crt/math/atan2f.c +++ /dev/null @@ -1,22 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - * Written by J.T. Conklin . - * Public domain. - * - */ - -#include - -float -atan2f (float y, float x) -{ - float res = 0.0F; -#ifdef __GNUC__ - asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)"); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/atanf.c b/reactos/lib/sdk/crt/math/atanf.c deleted file mode 100644 index 06868695a9d..00000000000 --- a/reactos/lib/sdk/crt/math/atanf.c +++ /dev/null @@ -1,23 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - * Written by J.T. Conklin . - * Public domain. - * - */ - -#include - -float -atanf (float x) -{ - float res = 0.0F; -#ifdef __GNUC__ - asm ("fld1\n\t" - "fpatan" : "=t" (res) : "0" (x)); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/copysign.c b/reactos/lib/sdk/crt/math/copysign.c deleted file mode 100644 index d81c2de6063..00000000000 --- a/reactos/lib/sdk/crt/math/copysign.c +++ /dev/null @@ -1,21 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -typedef union U -{ - unsigned int u[2]; - double d; -} U; - -double copysign(double x, double y) -{ - U h,j; - h.d = x; - j.d = y; - h.u[1] = (h.u[1] & 0x7fffffff) | (j.u[1] & 0x80000000); - return h.d; -} diff --git a/reactos/lib/sdk/crt/math/copysignf.c b/reactos/lib/sdk/crt/math/copysignf.c deleted file mode 100644 index ca3cc399ea3..00000000000 --- a/reactos/lib/sdk/crt/math/copysignf.c +++ /dev/null @@ -1,19 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -typedef union ui_f { - float f; - unsigned int ui; -} ui_f; - -float copysignf(float aX, float aY) -{ - ui_f x,y; - x.f=aX; y.f=aY; - x.ui= (x.ui & 0x7fffffff) | (y.ui & 0x80000000); - return x.f; -} diff --git a/reactos/lib/sdk/crt/math/cosf.c b/reactos/lib/sdk/crt/math/cosf.c deleted file mode 100644 index d2329c7f254..00000000000 --- a/reactos/lib/sdk/crt/math/cosf.c +++ /dev/null @@ -1,11 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float cosf(float _X) -{ - return ((float)cos((double)_X)); -} diff --git a/reactos/lib/sdk/crt/math/exp.c b/reactos/lib/sdk/crt/math/exp.c deleted file mode 100644 index 0759a28c10c..00000000000 --- a/reactos/lib/sdk/crt/math/exp.c +++ /dev/null @@ -1,55 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#define MAXLOG 7.09782712893383996843E2 -#define MINLOG -7.08396418532264106224E2 - -static double c0 = 1.44268798828125L; -static double c1 = 7.05260771340735992468e-6L; - -static double -__exp(double x) -{ - double res = 0.0L; -#ifdef __GNUC__ - asm ("fldl2e\n\t" /* 1 log2(e) */ - "fmul %%st(1),%%st\n\t" /* 1 x log2(e) */ - "frndint\n\t" /* 1 i */ - "fld %%st(1)\n\t" /* 2 x */ - "frndint\n\t" /* 2 xi */ - "fld %%st(1)\n\t" /* 3 i */ - "fldt %2\n\t" /* 4 c0 */ - "fld %%st(2)\n\t" /* 5 xi */ - "fmul %%st(1),%%st\n\t" /* 5 c0 xi */ - "fsubp %%st,%%st(2)\n\t" /* 4 f = c0 xi - i */ - "fld %%st(4)\n\t" /* 5 x */ - "fsub %%st(3),%%st\n\t" /* 5 xf = x - xi */ - "fmulp %%st,%%st(1)\n\t" /* 4 c0 xf */ - "faddp %%st,%%st(1)\n\t" /* 3 f = f + c0 xf */ - "fldt %3\n\t" /* 4 */ - "fmul %%st(4),%%st\n\t" /* 4 c1 * x */ - "faddp %%st,%%st(1)\n\t" /* 3 f = f + c1 * x */ - "f2xm1\n\t" /* 3 2^(fract(x * log2(e))) - 1 */ - "fld1\n\t" /* 4 1.0 */ - "faddp\n\t" /* 3 2^(fract(x * log2(e))) */ - "fstp %%st(1)\n\t" /* 2 */ - "fscale\n\t" /* 2 scale factor is st(1); e^x */ - "fstp %%st(1)\n\t" /* 1 */ - "fstp %%st(1)\n\t" /* 0 */ - : "=t" (res) : "0" (x), "m" (c0), "m" (c1) : "ax", "dx"); -#endif - return res; -} - -double exp (double x) -{ - if (x > MAXLOG) - return INFINITY; - else if (x < MINLOG) - return 0.0L; - else - return __exp (x); -} diff --git a/reactos/lib/sdk/crt/math/expf.c b/reactos/lib/sdk/crt/math/expf.c deleted file mode 100644 index fa09f2523f5..00000000000 --- a/reactos/lib/sdk/crt/math/expf.c +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -float expf (float x) -{ - return (float) exp (x); -} diff --git a/reactos/lib/sdk/crt/math/fabs.c b/reactos/lib/sdk/crt/math/fabs.c deleted file mode 100644 index 9be2ae8b743..00000000000 --- a/reactos/lib/sdk/crt/math/fabs.c +++ /dev/null @@ -1,16 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -double -fabs (double x) -{ - double res = 0.0; -#ifdef __GNUC__ - asm ("fabs;" : "=t" (res) : "0" (x)); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/fmod.c b/reactos/lib/sdk/crt/math/fmod.c deleted file mode 100644 index de48b81c504..00000000000 --- a/reactos/lib/sdk/crt/math/fmod.c +++ /dev/null @@ -1,21 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -double -fmod (double x, double y) -{ - double res = 0.0L; -#ifdef __GNUC__ - asm ("1:\tfprem\n\t" - "fstsw %%ax\n\t" - "sahf\n\t" - "jp 1b\n\t" - "fstp %%st(1)" - : "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)"); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/fmodf.c b/reactos/lib/sdk/crt/math/fmodf.c deleted file mode 100644 index aa7bca4a0a7..00000000000 --- a/reactos/lib/sdk/crt/math/fmodf.c +++ /dev/null @@ -1,29 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - * Written by J.T. Conklin . - * Public domain. - * - * Adapted for float type by Danny Smith - * . - */ - -#include - -float -fmodf (float x, float y) -{ - float res = 0.0F; -#ifdef __GNUC__ - asm ("1:\tfprem\n\t" - "fstsw %%ax\n\t" - "sahf\n\t" - "jp 1b\n\t" - "fstp %%st(1)" - : "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)"); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/hypotf.c b/reactos/lib/sdk/crt/math/hypotf.c deleted file mode 100644 index 34367fc4df1..00000000000 --- a/reactos/lib/sdk/crt/math/hypotf.c +++ /dev/null @@ -1,12 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float hypotf (float x, float y) -{ - return (float) _hypot (x, y); -} - diff --git a/reactos/lib/sdk/crt/math/i386/atan_asm.s b/reactos/lib/sdk/crt/math/i386/atan_asm.s new file mode 100644 index 00000000000..37554c940ae --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/atan_asm.s @@ -0,0 +1,50 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: Run-Time Library + * FILE: lib/rtl/i386/atan.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + * + * Copyright (C) 2002 Michael Ringgaard. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +.globl _atan + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_atan: + push ebp + mov ebp,esp + fld qword ptr [ebp+8] // Load real from stack + fld1 // Load constant 1 + fpatan // Take the arctangent + pop ebp + ret diff --git a/reactos/lib/sdk/crt/math/i386/ceil.S b/reactos/lib/sdk/crt/math/i386/ceil.S deleted file mode 100644 index 198a4a28d3f..00000000000 --- a/reactos/lib/sdk/crt/math/i386/ceil.S +++ /dev/null @@ -1,54 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - - .file "ceil.S" - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -.globl _ceil - .def _ceil; .scl 2; .type 32; .endef -_ceil: -#ifdef _WIN64 - fldt (%rdx) - subq $24,%rsp - - fstcw 8(%rsp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x0800,%edx /* round towards +oo */ - orl 8(%rsp),%edx - andl $0xfbff,%edx - movl %edx,(%rsp) - fldcw (%rsp) /* load modified control word */ - - frndint /* round */ - - fldcw 8(%rsp) /* restore original control word */ - - addq $24,%rsp - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -#else - fldt 4(%esp) - subl $8,%esp - fstcw 4(%esp) - movl $0x0800,%edx - orl 4(%esp),%edx - andl $0xfbff,%edx - movl %edx,(%esp) - fldcw (%esp) - frndint - fldcw 4(%esp) - addl $8,%esp - ret -#endif diff --git a/reactos/lib/sdk/crt/math/i386/ceil_asm.s b/reactos/lib/sdk/crt/math/i386/ceil_asm.s new file mode 100644 index 00000000000..aad69114f5a --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/ceil_asm.s @@ -0,0 +1,57 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: Run-Time Library + * FILE: lib/rtl/i386/ceil.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + * + * Copyright (C) 2002 Michael Ringgaard. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +.globl _ceil + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_ceil: + push ebp + mov ebp,esp + sub esp,4 // Allocate temporary space + fld qword ptr [ebp+8] // Load real from stack + fstcw [ebp-2] // Save control word + fclex // Clear exceptions + mov word ptr [ebp-4],0xb63 // Rounding control word + fldcw [ebp-4] // Set new rounding control + frndint // Round to integer + fclex // Clear exceptions + fldcw [ebp-2] // Restore control word + mov esp,ebp // Deallocate temporary space + pop ebp + ret diff --git a/reactos/lib/sdk/crt/math/i386/ceilf.S b/reactos/lib/sdk/crt/math/i386/ceilf.S deleted file mode 100644 index 6321ca0c558..00000000000 --- a/reactos/lib/sdk/crt/math/i386/ceilf.S +++ /dev/null @@ -1,54 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - - .file "ceilf.S" - .text - .align 4 -.globl _ceilf - .def _ceilf; .scl 2; .type 32; .endef -_ceilf: -#ifdef _WIN64 - subq $24,%rsp - movss %xmm0,8(%rsp) - flds 8(%rsp) - - fstcw 4(%rsp) /* store fpu control word */ - - movl $0x0800,%edx /* round towards +oo */ - orl 4(%rsp),%edx - andl $0xfbff,%edx - movl %edx,(%rsp) - fldcw (%rsp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%rsp) /* restore original control word */ - fstps 8(%rsp) - movss 8(%rsp),%xmm0 - addq $24,%rsp - ret -#else - flds 4(%esp) - subl $8,%esp - - fstcw 4(%esp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x0800,%edx /* round towards +oo */ - orl 4(%esp),%edx - andl $0xfbff,%edx - movl %edx,(%esp) - fldcw (%esp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%esp) /* restore original control word */ - - addl $8,%esp - ret -#endif diff --git a/reactos/lib/sdk/crt/math/i386/cos.S b/reactos/lib/sdk/crt/math/i386/cos.S deleted file mode 100644 index 8dc0854958f..00000000000 --- a/reactos/lib/sdk/crt/math/i386/cos.S +++ /dev/null @@ -1,53 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - .file "cos.S" - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -.globl _cos - .def _cos; .scl 2; .type 32; .endef -_cos: -#ifdef _WIN64 - fldt (%rdx) - fcos - fnstsw %ax - testl $0x400,%eax - jz 1f - fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fnstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fcos -1: movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -#else - fldt 4(%esp) - fcos - fnstsw %ax - testl $0x400,%eax - jnz 1f - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fnstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fcos - ret -#endif - diff --git a/reactos/lib/sdk/crt/math/i386/cos_asm.s b/reactos/lib/sdk/crt/math/i386/cos_asm.s new file mode 100644 index 00000000000..b1c6ada49b2 --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/cos_asm.s @@ -0,0 +1,49 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: Run-Time Library + * FILE: lib/rtl/i386/cos.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + * + * Copyright (C) 2002 Michael Ringgaard. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +.globl _cos + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_cos: + push ebp + mov ebp,esp // Point to the stack frame + fld qword ptr [ebp+8] // Load real from stack + fcos // Take the cosine + pop ebp + ret diff --git a/reactos/lib/sdk/crt/math/i386/fabs_asm.s b/reactos/lib/sdk/crt/math/i386/fabs_asm.s new file mode 100644 index 00000000000..5c6ce9214ef --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/fabs_asm.s @@ -0,0 +1,49 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: Run-Time Library + * FILE: lib/rtl/i386/fabs.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + * + * Copyright (C) 2002 Michael Ringgaard. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +.globl _fabs + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_fabs: + push ebp + mov ebp,esp + fld qword ptr [ebp+8] // Load real from stack + fabs // Take the absolute value + pop ebp + ret diff --git a/reactos/lib/sdk/crt/math/i386/floor.S b/reactos/lib/sdk/crt/math/i386/floor.S deleted file mode 100644 index f70b70d0db1..00000000000 --- a/reactos/lib/sdk/crt/math/i386/floor.S +++ /dev/null @@ -1,62 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - - .file "floor.S" - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -.globl _floor - .def _floor; .scl 2; .type 32; .endef -_floor: -#ifdef _WIN64 - fldt (%rdx) - subq $24,%rsp - - fstcw 8(%rsp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x400,%edx /* round towards -oo */ - orl 8(%rsp),%edx - andl $0xf7ff,%edx - movl %edx,(%rsp) - fldcw (%rsp) /* load modified control word */ - - frndint /* round */ - - fldcw 8(%rsp) /* restore original control word */ - - addq $24,%rsp - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -#else - fldt 4(%esp) - subl $8,%esp - - fstcw 4(%esp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x400,%edx /* round towards -oo */ - orl 4(%esp),%edx - andl $0xf7ff,%edx - movl %edx,(%esp) - fldcw (%esp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%esp) /* restore original control word */ - - addl $8,%esp - ret -#endif diff --git a/reactos/lib/sdk/crt/math/i386/floorf.S b/reactos/lib/sdk/crt/math/i386/floorf.S deleted file mode 100644 index 5c83106b6e3..00000000000 --- a/reactos/lib/sdk/crt/math/i386/floorf.S +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Written by J.T. Conklin . - * Public domain. - * - * Changes for long double by Ulrich Drepper - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith - */ - .file "floorf.S" - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -.globl _floorf - .def _floorf; .scl 2; .type 32; .endef -_floorf: -#ifdef _WIN64 - subq $24,%rsp - movss %xmm0,8(%rsp) - flds 8(%rsp) - - fstcw 4(%rsp) /* store fpu control word */ - movl $0x400,%edx /* round towards -oo */ - orl 4(%rsp),%edx - andl $0xf7ff,%edx - movl %edx,(%rsp) - fldcw (%rsp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%rsp) /* restore original control word */ - - fstps 8(%rsp) - movss 8(%rsp),%xmm0 - addq $24,%rsp - ret -#else - flds 4(%esp) - subl $8,%esp - - fstcw 4(%esp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x400,%edx /* round towards -oo */ - orl 4(%esp),%edx - andl $0xf7ff,%edx - movl %edx,(%esp) - fldcw (%esp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%esp) /* restore original control word */ - - addl $8,%esp - ret -#endif diff --git a/reactos/lib/sdk/crt/math/i386/log.S b/reactos/lib/sdk/crt/math/i386/log.S deleted file mode 100644 index 30129c78798..00000000000 --- a/reactos/lib/sdk/crt/math/i386/log.S +++ /dev/null @@ -1,65 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - - .file "log.S" - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - -.globl _log - .def _log; .scl 2; .type 32; .endef -_log: -#ifdef _WIN64 - fldln2 // log(2) - fldt (%rdx) // x : log(2) - fld %st // x : x : log(2) - fsubl one // x-1 : x : log(2) - fld %st // x-1 : x-1 : x : log(2) - fabs // |x-1| : x-1 : x : log(2) - fcompl limit // x-1 : x : log(2) - fnstsw // x-1 : x : log(2) - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : log(2) - fyl2xp1 // log(x) - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret - -2: fstp %st(0) // x : log(2) - fyl2x // log(x) - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -#else - fldln2 // log(2) - fldt 4(%esp) // x : log(2) - fld %st // x : x : log(2) - fsubl one // x-1 : x : log(2) - fld %st // x-1 : x-1 : x : log(2) - fabs // |x-1| : x-1 : x : log(2) - fcompl limit // x-1 : x : log(2) - fnstsw // x-1 : x : log(2) - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : log(2) - fyl2xp1 // log(x) - ret - -2: fstp %st(0) // x : log(2) - fyl2x // log(x) - ret -#endif diff --git a/reactos/lib/sdk/crt/math/i386/log10.S b/reactos/lib/sdk/crt/math/i386/log10.S deleted file mode 100644 index 45712a68fa6..00000000000 --- a/reactos/lib/sdk/crt/math/i386/log10.S +++ /dev/null @@ -1,92 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - - .file "log10.S" - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -.globl _log10 - .def _log10; .scl 2; .type 32; .endef -_log10: -#ifdef _WIN64 - fldlg2 // log10(2) - fldt (%rdx) // x : log10(2) - fxam - fnstsw - fld %st // x : x : log10(2) - sahf - jc 3f // in case x is NaN or ħInf -4: fsubl one // x-1 : x : log10(2) - fld %st // x-1 : x-1 : x : log10(2) - fabs // |x-1| : x-1 : x : log10(2) - fcompl limit // x-1 : x : log10(2) - fnstsw // x-1 : x : log10(2) - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : log10(2) - fyl2xp1 // log10(x) - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret - -2: fstp %st(0) // x : log10(2) - fyl2x // log10(x) - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret - -3: jp 4b // in case x is ħInf - fstp %st(1) - fstp %st(1) - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -#else - fldlg2 // log10(2) - fldt 4(%esp) // x : log10(2) - fxam - fnstsw - fld %st // x : x : log10(2) - sahf - jc 3f // in case x is NaN or ħInf -4: fsubl one // x-1 : x : log10(2) - fld %st // x-1 : x-1 : x : log10(2) - fabs // |x-1| : x-1 : x : log10(2) - fcompl limit // x-1 : x : log10(2) - fnstsw // x-1 : x : log10(2) - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : log10(2) - fyl2xp1 // log10(x) - ret - -2: fstp %st(0) // x : log10(2) - fyl2x // log10(x) - ret - -3: jp 4b // in case x is ħInf - fstp %st(1) - fstp %st(1) - ret -#endif diff --git a/reactos/lib/sdk/crt/math/i386/log10_asm.s b/reactos/lib/sdk/crt/math/i386/log10_asm.s new file mode 100644 index 00000000000..71731816429 --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/log10_asm.s @@ -0,0 +1,27 @@ + + /* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: + * FILE: + * PROGRAMER: Magnus Olsen (magnus@greatlord.com) + * + */ + +.globl _log10 + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_log10: + + push ebp + mov ebp,esp + fld qword ptr [ebp+8] // Load real from stack + fldlg2 // Load log base 10 of 2 + fxch st(1) // Exchange st, st(1) + fyl2x // Compute the log base 10(x) + pop ebp + ret + diff --git a/reactos/lib/sdk/crt/math/i386/log_asm.s b/reactos/lib/sdk/crt/math/i386/log_asm.s new file mode 100644 index 00000000000..0d98279ed41 --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/log_asm.s @@ -0,0 +1,51 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: Run-Time Library + * FILE: lib/rtl/i386/log.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + * + * Copyright (C) 2002 Michael Ringgaard. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +.globl _log + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_log: + push ebp + mov ebp,esp + fld qword ptr [ebp+8] // Load real from stack + fldln2 // Load log base e of 2 + fxch st(1) // Exchange st, st(1) + fyl2x // Compute the natural log(x) + pop ebp + ret diff --git a/reactos/lib/sdk/crt/math/i386/sin.S b/reactos/lib/sdk/crt/math/i386/sin.S deleted file mode 100644 index 13407dfbb61..00000000000 --- a/reactos/lib/sdk/crt/math/i386/sin.S +++ /dev/null @@ -1,57 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - - .file "sin.S" - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -.globl _sin - .def _sin; .scl 2; .type 32; .endef -_sin: -#ifdef _WIN64 - fldt (%rdx) - fsin - fnstsw %ax - testl $0x400,%eax - jnz 1f - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fnstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fsin - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -#else - fldt 4(%esp) - fsin - fnstsw %ax - testl $0x400,%eax - jnz 1f - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fnstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fsin - ret -#endif diff --git a/reactos/lib/sdk/crt/math/i386/sin_asm.s b/reactos/lib/sdk/crt/math/i386/sin_asm.s new file mode 100644 index 00000000000..39791a3e989 --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/sin_asm.s @@ -0,0 +1,49 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: Run-Time Library + * FILE: lib/rtl/i386/sin.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + * + * Copyright (C) 2002 Michael Ringgaard. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +.globl _sin + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_sin: + push ebp // Save register bp + mov ebp,esp // Point to the stack frame + fld qword ptr [ebp+8] // Load real from stack + fsin // Take the sine + pop ebp // Restore register bp + ret diff --git a/reactos/lib/sdk/crt/math/i386/sqrt_asm.s b/reactos/lib/sdk/crt/math/i386/sqrt_asm.s new file mode 100644 index 00000000000..c953a0350e9 --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/sqrt_asm.s @@ -0,0 +1,49 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: Run-Time Library + * FILE: lib/rtl/i386/sqrt.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + * + * Copyright (C) 2002 Michael Ringgaard. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +.globl _sqrt + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_sqrt: + push ebp + mov ebp,esp + fld qword ptr [ebp+8] // Load real from stack + fsqrt // Take the square root + pop ebp + ret diff --git a/reactos/lib/sdk/crt/math/i386/tan.S b/reactos/lib/sdk/crt/math/i386/tan.S deleted file mode 100644 index c8c76d52d4b..00000000000 --- a/reactos/lib/sdk/crt/math/i386/tan.S +++ /dev/null @@ -1,61 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - - .file "tan.S" - .text -#ifdef _WIN64 - .align 8 -#else - .align 4 -#endif -.globl _tan - .def _tan; .scl 2; .type 32; .endef -_tan: -#ifdef _WIN64 - fldt (%rdx) - fptan - fnstsw %ax - testl $0x400,%eax - jnz 1f - fstp %st(0) - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fptan - fstp %st(0) - movq %rcx,%rax - movq $0,8(%rcx) - fstpt (%rcx) - ret -#else - fldt 4(%esp) - fptan - fnstsw %ax - testl $0x400,%eax - jnz 1f - fstp %st(0) - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fptan - fstp %st(0) - ret -#endif diff --git a/reactos/lib/sdk/crt/math/i386/tan_asm.s b/reactos/lib/sdk/crt/math/i386/tan_asm.s new file mode 100644 index 00000000000..34af2614f89 --- /dev/null +++ b/reactos/lib/sdk/crt/math/i386/tan_asm.s @@ -0,0 +1,52 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * PURPOSE: Run-Time Library + * FILE: lib/rtl/i386/tan.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + * + * Copyright (C) 2002 Michael Ringgaard. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES// LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +.globl _tan + +.intel_syntax noprefix + +/* FUNCTIONS ***************************************************************/ + +_tan: + push ebp + mov ebp,esp + sub esp,4 // Allocate temporary space + fld qword ptr [ebp+8] // Load real from stack + fptan // Take the tangent + fstp dword ptr [ebp-4] // Throw away the constant 1 + mov esp,ebp // Deallocate temporary space + pop ebp + ret diff --git a/reactos/lib/sdk/crt/math/j0_y0.c b/reactos/lib/sdk/crt/math/j0_y0.c new file mode 100644 index 00000000000..d6787deeb28 --- /dev/null +++ b/reactos/lib/sdk/crt/math/j0_y0.c @@ -0,0 +1,30 @@ +#include + +typedef int fpclass_t; +fpclass_t _fpclass(double __d); +int *_errno(void); + +/* + * @unimplemented + */ +double _j0(double num) +{ + /* FIXME: errno handling */ + return j0(num); +} + +/* + * @implemented + */ +double _y0(double num) +{ + double retval; + if (!isfinite(num)) *_errno() = EDOM; + retval = y0(num); + if (_fpclass(retval) == _FPCLASS_NINF) + { + *_errno() = EDOM; + retval = sqrt(-1); + } + return retval; +} diff --git a/reactos/lib/sdk/crt/math/j1_y1.c b/reactos/lib/sdk/crt/math/j1_y1.c new file mode 100644 index 00000000000..b050889d7ae --- /dev/null +++ b/reactos/lib/sdk/crt/math/j1_y1.c @@ -0,0 +1,30 @@ +#include + +typedef int fpclass_t; +fpclass_t _fpclass(double __d); +int *_errno(void); + +/* + * @unimplemented + */ +double _j1(double num) +{ + /* FIXME: errno handling */ + return j1(num); +} + +/* + * @implemented + */ +double _y1(double num) +{ + double retval; + if (!isfinite(num)) *_errno() = EDOM; + retval = y1(num); + if (_fpclass(retval) == _FPCLASS_NINF) + { + *_errno() = EDOM; + retval = sqrt(-1); + } + return retval; +} diff --git a/reactos/lib/sdk/crt/math/jn_yn.c b/reactos/lib/sdk/crt/math/jn_yn.c new file mode 100644 index 00000000000..34f2dee7a4d --- /dev/null +++ b/reactos/lib/sdk/crt/math/jn_yn.c @@ -0,0 +1,30 @@ +#include + +typedef int fpclass_t; +fpclass_t _fpclass(double __d); +int *_errno(void); + +/* + * @unimplemented + */ +double _jn(int n, double num) +{ + /* FIXME: errno handling */ + return jn(n, num); +} + +/* + * @implemented + */ +double _yn(int order, double num) +{ + double retval; + if (!isfinite(num)) *_errno() = EDOM; + retval = yn(order,num); + if (_fpclass(retval) == _FPCLASS_NINF) + { + *_errno() = EDOM; + retval = sqrt(-1); + } + return retval; +} diff --git a/reactos/lib/sdk/crt/math/log10f.c b/reactos/lib/sdk/crt/math/log10f.c deleted file mode 100644 index 2a295a4582b..00000000000 --- a/reactos/lib/sdk/crt/math/log10f.c +++ /dev/null @@ -1,11 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float log10f(float _X) -{ - return ((float)log10((double)_X)); -} diff --git a/reactos/lib/sdk/crt/math/logb.c b/reactos/lib/sdk/crt/math/logb.c deleted file mode 100644 index 640572651de..00000000000 --- a/reactos/lib/sdk/crt/math/logb.c +++ /dev/null @@ -1,23 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - * Written by J.T. Conklin . - * Changes for long double by Ulrich Drepper - * Public domain. - */ - -#include - -double -logb (double x) -{ - double res = 0.0; -#ifdef __GNUC__ - asm ("fxtract\n\t" - "fstp %%st" : "=t" (res) : "0" (x)); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/logbf.c b/reactos/lib/sdk/crt/math/logbf.c deleted file mode 100644 index 384533f946e..00000000000 --- a/reactos/lib/sdk/crt/math/logbf.c +++ /dev/null @@ -1,23 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - * Written by J.T. Conklin . - * Changes for long double by Ulrich Drepper - * Public domain. - */ - -#include - -float -logbf (float x) -{ - float res = 0.0F; -#ifndef __GNUC__ - asm ("fxtract\n\t" - "fstp %%st" : "=t" (res) : "0" (x)); -#endif - return res; -} diff --git a/reactos/lib/sdk/crt/math/logf.c b/reactos/lib/sdk/crt/math/logf.c deleted file mode 100644 index 0da1dae909f..00000000000 --- a/reactos/lib/sdk/crt/math/logf.c +++ /dev/null @@ -1,11 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float logf(float _X) -{ - return ((float)log((double)_X)); -} diff --git a/reactos/lib/sdk/crt/math/modff.c b/reactos/lib/sdk/crt/math/modff.c deleted file mode 100644 index 53b65ebe5b5..00000000000 --- a/reactos/lib/sdk/crt/math/modff.c +++ /dev/null @@ -1,27 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include -#define FE_ROUNDING_MASK \ - (FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - -float -modff (float value, float* iptr) -{ - float int_part = 0.0F; - unsigned short saved_cw; - unsigned short tmp_cw; - /* truncate */ - asm ("fnstcw %0;" : "=m" (saved_cw)); /* save control word */ - tmp_cw = (saved_cw & ~FE_ROUNDING_MASK) | FE_TOWARDZERO; - asm ("fldcw %0;" : : "m" (tmp_cw)); - asm ("frndint;" : "=t" (int_part) : "0" (value)); /* round */ - asm ("fldcw %0;" : : "m" (saved_cw)); /* restore saved cw */ - if (iptr) - *iptr = int_part; - return (isinf (value) ? 0.0F : value - int_part); -} diff --git a/reactos/lib/sdk/crt/math/nextafter.c b/reactos/lib/sdk/crt/math/nextafter.c deleted file mode 100644 index 7aca439b407..00000000000 --- a/reactos/lib/sdk/crt/math/nextafter.c +++ /dev/null @@ -1,66 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - nextafterl.c - Contributed by Danny Smith - No copyright claimed, absolutely no warranties. - - 2005-05-09 -*/ - -#include - -double -nextafter (double x, double y) -{ - union { - long double ld; - struct { - /* packed attribute is unnecessary on x86/x64 for these three variables */ - unsigned long long mantissa; - unsigned short expn; - unsigned short pad; - } parts; - } u; - - /* The normal bit is explicit for long doubles, unlike - float and double. */ - static const unsigned long long normal_bit = 0x8000000000000000ull; - u.ld = 0.0L; - if (isnan (y) || isnan (x)) - return x + y; - - if (x == y ) - /* nextafter (0.0, -O.0) should return -0.0. */ - return y; - - u.ld = x; - if (x == 0.0L) - { - u.parts.mantissa = 1ull; - return y > 0.0L ? u.ld : -u.ld; - } - - if (((x > 0.0L) ^ (y > x)) == 0) - { - u.parts.mantissa++; - if ((u.parts.mantissa & ~normal_bit) == 0ull) - u.parts.expn++; - } - else - { - if ((u.parts.mantissa & ~normal_bit) == 0ull) - u.parts.expn--; - u.parts.mantissa--; - } - - /* If we have updated the expn of a normal number, - or moved from denormal to normal, [re]set the normal bit. */ - if (u.parts.expn & 0x7fff) - u.parts.mantissa |= normal_bit; - - return u.ld; -} diff --git a/reactos/lib/sdk/crt/math/nextafterf.c b/reactos/lib/sdk/crt/math/nextafterf.c deleted file mode 100644 index ac12ac4ed7f..00000000000 --- a/reactos/lib/sdk/crt/math/nextafterf.c +++ /dev/null @@ -1,32 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float -nextafterf (float x, float y) -{ - union - { - float f; - unsigned int i; - } u; - if (isnan (y) || isnan (x)) - return x + y; - if (x == y ) - /* nextafter (0.0, -O.0) should return -0.0. */ - return y; - u.f = x; - if (x == 0.0F) - { - u.i = 1; - return y > 0.0F ? u.f : -u.f; - } - if (((x > 0.0F) ^ (y > x)) == 0) - u.i++; - else - u.i--; - return u.f; -} diff --git a/reactos/lib/sdk/crt/math/ldexp.c b/reactos/lib/sdk/crt/math/pow_asm.c similarity index 73% rename from reactos/lib/sdk/crt/math/ldexp.c rename to reactos/lib/sdk/crt/math/pow_asm.c index b240275ef95..2b5877b67f6 100644 --- a/reactos/lib/sdk/crt/math/ldexp.c +++ b/reactos/lib/sdk/crt/math/pow_asm.c @@ -21,24 +21,11 @@ #include -double ldexp (double __x, int __y); +/* + * @implemented + */ -double ldexp (double __x, int __y) +long double powl (long double __x,long double __y) { - register double __val; -#ifdef __GNUC__ - __asm __volatile__ - ("fscale" - : "=t" (__val) : "0" (__x), "u" ((double) __y)); -#else - register double __dy = (double)__y; - __asm - { - fld __dy - fld __x - fscale - fstp __val - } -#endif /*__GNUC__*/ - return __val; + return pow(__x,__y/2)*pow(__x,__y/2); } diff --git a/reactos/lib/sdk/crt/math/powf.c b/reactos/lib/sdk/crt/math/powf.c deleted file mode 100644 index 046ba12f837..00000000000 --- a/reactos/lib/sdk/crt/math/powf.c +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -float powf (float x, float y) -{ - return (float) pow ((double) x, (double) y); -} diff --git a/reactos/lib/sdk/crt/math/sinf.c b/reactos/lib/sdk/crt/math/sinf.c deleted file mode 100644 index 1069dcf18b7..00000000000 --- a/reactos/lib/sdk/crt/math/sinf.c +++ /dev/null @@ -1,11 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float sinf(float _X) -{ - return ((float) sin ((double) _X)); -} diff --git a/reactos/lib/sdk/crt/math/sinhf.c b/reactos/lib/sdk/crt/math/sinhf.c deleted file mode 100644 index f5fab441db6..00000000000 --- a/reactos/lib/sdk/crt/math/sinhf.c +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -float sinhf (float x) -{ - return (float) sinh (x); -} diff --git a/reactos/lib/sdk/crt/math/sqrt.c b/reactos/lib/sdk/crt/math/sqrt.c deleted file mode 100644 index 3b08e853d12..00000000000 --- a/reactos/lib/sdk/crt/math/sqrt.c +++ /dev/null @@ -1,25 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include - -double -sqrt (double x) -{ - if (x < 0.0L ) - { -#ifndef _LIBCNT_ - errno = EDOM; -#endif - return NAN; - } - else - { - long double res = 0.0L; - asm ("fsqrt" : "=t" (res) : "0" (x)); - return res; - } -} diff --git a/reactos/lib/sdk/crt/math/sqrtf.c b/reactos/lib/sdk/crt/math/sqrtf.c deleted file mode 100644 index 567c1ecae65..00000000000 --- a/reactos/lib/sdk/crt/math/sqrtf.c +++ /dev/null @@ -1,23 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include - -float -sqrtf (float x) -{ - if (x < 0.0F ) - { - errno = EDOM; - return NAN; - } - else - { - float res = 0.0F; - asm ("fsqrt" : "=t" (res) : "0" (x)); - return res; - } -} diff --git a/reactos/lib/sdk/crt/math/tanf.c b/reactos/lib/sdk/crt/math/tanf.c deleted file mode 100644 index f4074032d6b..00000000000 --- a/reactos/lib/sdk/crt/math/tanf.c +++ /dev/null @@ -1,11 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float tanf(float _X) -{ - return ((float)tan((double)_X)); -} diff --git a/reactos/lib/sdk/crt/math/tanhf.c b/reactos/lib/sdk/crt/math/tanhf.c deleted file mode 100644 index c7e25490a91..00000000000 --- a/reactos/lib/sdk/crt/math/tanhf.c +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -float tanhf (float x) -{ - return (float) tanh (x); -} diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 1980e94f2ad..ed28d63be8f 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -117,6 +117,11 @@ static CRITICAL_SECTION FILE_cs; #define LOCK_FILES() do { EnterCriticalSection(&FILE_cs); } while (0) #define UNLOCK_FILES() do { LeaveCriticalSection(&FILE_cs); } while (0) +FILE *__cdecl __iob_func() +{ + return _iob; +} + static inline BOOL is_valid_fd(int fd) { return fd >= 0 && fd < fdend && (fdesc[fd].wxflag & WX_OPEN); @@ -447,11 +452,11 @@ static void int_to_base32(int num, char *str) } /********************************************************************* - * __iob_func(MSVCRT.@) + * __p__iob(MSVCRT.@) */ -FILE * CDECL __iob_func(void) +FILE * CDECL __p__iob(void) { - return &_iob[0]; + return _iob; } /********************************************************************* diff --git a/reactos/lib/sdk/crt/string/ctype.c b/reactos/lib/sdk/crt/string/ctype.c index 484ed1acf14..a4873cebdd4 100644 --- a/reactos/lib/sdk/crt/string/ctype.c +++ b/reactos/lib/sdk/crt/string/ctype.c @@ -292,12 +292,12 @@ const unsigned short _ctype[] = { const unsigned short *_pctype = _ctype + 1; const unsigned short *_pwctype = _ctype + 1; -/********************************************************************* - * __pctype_func (MSVCRT.@) +/* + * @implemented */ -const unsigned short* __cdecl __pctype_func(void) +const unsigned short **__p__pctype(void) { - return _pctype; + return &_pctype; } /* diff --git a/reactos/lib/sdk/crt/time/asctime.c b/reactos/lib/sdk/crt/time/asctime.c index 71e3ca66746..84e059186d2 100644 --- a/reactos/lib/sdk/crt/time/asctime.c +++ b/reactos/lib/sdk/crt/time/asctime.c @@ -5,7 +5,6 @@ * PURPOSE: Implementation of asctime(), _asctime_s() * PROGRAMERS: Timo Kreuzer */ -#define MINGW_HAS_SECURE_API #include #include #include diff --git a/reactos/lib/sdk/crt/time/ctime.c b/reactos/lib/sdk/crt/time/ctime.c index 3911b2f94b7..b6d1bfb6cd1 100644 --- a/reactos/lib/sdk/crt/time/ctime.c +++ b/reactos/lib/sdk/crt/time/ctime.c @@ -5,7 +5,7 @@ * PURPOSE: Implementation of ctime, _ctime_s * PROGRAMERS: Timo Kreuzer */ -#define MINGW_HAS_SECURE_API +#define MINGW_HAS_SECURE_API 1 #include #include diff --git a/reactos/lib/sdk/crt/time/utime.c b/reactos/lib/sdk/crt/time/utime.c index 3c0168da2fc..130e5a400ba 100644 --- a/reactos/lib/sdk/crt/time/utime.c +++ b/reactos/lib/sdk/crt/time/utime.c @@ -10,7 +10,7 @@ #include #include "bitsfixup.h" -int __cdecl +int _tutime(const _TCHAR* path, struct _utimbuf *t) { int fd = _topen(path, _O_WRONLY | _O_BINARY);