diff --git a/lib/libc/mingw/cfguard/mingw_cfguard_support.c b/lib/libc/mingw/cfguard/mingw_cfguard_support.c new file mode 100644 index 0000000000..1e777ebfc0 --- /dev/null +++ b/lib/libc/mingw/cfguard/mingw_cfguard_support.c @@ -0,0 +1,59 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +// This source file defines the function pointers required to support Control +// Flow Guard. They shall be included even if CFGuard is disabled when building +// mingw-w64-crt itself, to allow linking to objects/libraries compiled with +// CFGuard. + +#if defined(__x86_64__) + +// The target address is passed as a parameter in an arch-specific manner, +// however it is not specified how on x86_64 because __guard_dispatch_icall_fptr +// is used instead. My guess would be that it's passed on %rcx, but it doesn't +// really matter here because this is a no-op anyway. +static void __guard_check_icall_dummy(void) {} + +// When CFGuard is not active, directly tail-call the target address, which +// is passed via %rax. +__asm__( + ".globl __guard_dispatch_icall_dummy\n" + "__guard_dispatch_icall_dummy:\n" + " jmp *%rax\n" +); + +// This is intentionally declared as _not_ a function pointer, so that the +// jmp instruction is not included as a valid call target for CFGuard. +extern void *__guard_dispatch_icall_dummy; + +#elif defined(__i386__) || defined(__aarch64__) || defined(__arm__) + +// The target address is passed via %ecx (x86), X15 (aarch64) or R0 (arm), +// but it doesn't really matter here because this is a no-op anyway. +static void __guard_check_icall_dummy(void) {} + +#else +# error "CFGuard support is unimplemented for the current architecture." +#endif + +// I am not sure about the `.00cfg` section. This is just an attempt to follow +// what VC runtime defines -- it places all the guard check function pointers +// inside this section. The MSVC linker appears to merge this section into +// `.rdata`, but LLD does not do this at the time of writing. +// This section should be readonly data. The only thing that modifies these +// pointers is the PE image loader. + +__asm__(".section .00cfg,\"dr\""); + +__attribute__(( section (".00cfg") )) +void *__guard_check_icall_fptr = &__guard_check_icall_dummy; + +#if defined(__x86_64__) + +__attribute__(( section (".00cfg") )) +void *__guard_dispatch_icall_fptr = &__guard_dispatch_icall_dummy; + +#endif diff --git a/lib/libc/mingw/lib-common/msvcrt.def.in b/lib/libc/mingw/lib-common/msvcrt.def.in deleted file mode 100644 index 1f8f95b175..0000000000 --- a/lib/libc/mingw/lib-common/msvcrt.def.in +++ /dev/null @@ -1,1628 +0,0 @@ -LIBRARY "msvcrt.dll" -EXPORTS - -#include "func.def.in" -#include "msvcrt-common.def.in" - -#ifdef DEF_I386 -_CIacos -_CIasin -_CIatan -_CIatan2 -_CIcos -_CIcosh -_CIexp -_CIfmod -_CIlog -_CIlog10 -_CIpow -_CIsin -_CIsinh -_CIsqrt -_CItan -_CItanh -#endif - -#ifdef DEF_X64 -$I10_OUTPUT -; public: __cdecl __non_rtti_object::__non_rtti_object(class __non_rtti_object const & __ptr64) __ptr64 -; GCC = __ZN17__non_rtti_objectC2ERKS_ -??0__non_rtti_object@@QEAA@AEBV0@@Z -; public: __cdecl __non_rtti_object::__non_rtti_object(char const * __ptr64) __ptr64 -; GCC = __ZN17__non_rtti_objectC1ERKS_ -??0__non_rtti_object@@QEAA@PEBD@Z -; private: __cdecl bad_cast::bad_cast(char const * __ptr64 const * __ptr64) __ptr64 -??0bad_cast@@AEAA@PEBQEBD@Z -; public: __cdecl bad_cast::bad_cast(char const * __ptr64 const & __ptr64) __ptr64 -??0bad_cast@@QEAA@AEBQEBD@Z -; public: __cdecl bad_cast::bad_cast(class bad_cast const & __ptr64) __ptr64 -??0bad_cast@@QEAA@AEBV0@@Z -; public: __cdecl bad_cast::bad_cast(char const * __ptr64) __ptr64 -??0bad_cast@@QEAA@PEBD@Z -; public: __cdecl bad_typeid::bad_typeid(class bad_typeid const & __ptr64) __ptr64 -??0bad_typeid@@QEAA@AEBV0@@Z -; public: __cdecl bad_typeid::bad_typeid(char const * __ptr64) __ptr64 -??0bad_typeid@@QEAA@PEBD@Z -; public: __cdecl exception::exception(char const * __ptr64 const & __ptr64) __ptr64 -??0exception@@QEAA@AEBQEBD@Z -; public: __cdecl exception::exception(char const * __ptr64 const & __ptr64,int) __ptr64 -??0exception@@QEAA@AEBQEBDH@Z -; public: __cdecl exception::exception(class exception const & __ptr64) __ptr64 -??0exception@@QEAA@AEBV0@@Z -; public: __cdecl exception::exception(void) __ptr64 -??0exception@@QEAA@XZ -; public: virtual __cdecl __non_rtti_object::~__non_rtti_object(void) __ptr64 -??1__non_rtti_object@@UEAA@XZ -; public: virtual __cdecl bad_cast::~bad_cast(void) __ptr64 -??1bad_cast@@UEAA@XZ -; public: virtual __cdecl bad_typeid::~bad_typeid(void) __ptr64 -??1bad_typeid@@UEAA@XZ -; public: virtual __cdecl exception::~exception(void) __ptr64 -??1exception@@UEAA@XZ -; public: virtual __cdecl type_info::~type_info(void) __ptr64 -??1type_info@@UEAA@XZ -; void * __ptr64 __cdecl operator new(unsigned __int64) -; GCC = __Znwy -??2@YAPEAX_K@Z -; void __cdecl operator delete(void * __ptr64) -; GCC = __ZdlPv -??3@YAXPEAX@Z -; public: class __non_rtti_object & __ptr64 __cdecl __non_rtti_object::operator=(class __non_rtti_object const & __ptr64) __ptr64 -??4__non_rtti_object@@QEAAAEAV0@AEBV0@@Z -; public: class bad_cast & __ptr64 __cdecl bad_cast::operator=(class bad_cast const & __ptr64) __ptr64 -??4bad_cast@@QEAAAEAV0@AEBV0@@Z -; public: class bad_typeid & __ptr64 __cdecl bad_typeid::operator=(class bad_typeid const & __ptr64) __ptr64 -??4bad_typeid@@QEAAAEAV0@AEBV0@@Z -; public: class exception & __ptr64 __cdecl exception::operator=(class exception const & __ptr64) __ptr64 -??4exception@@QEAAAEAV0@AEBV0@@Z -; public: int __cdecl type_info::operator==(class type_info const & __ptr64)const __ptr64 -??8type_info@@QEBAHAEBV0@@Z -; public: int __cdecl type_info::operator!=(class type_info const & __ptr64)const __ptr64 -??9type_info@@QEBAHAEBV0@@Z -; const __non_rtti_object::`vftable' -??_7__non_rtti_object@@6B@ -; const bad_cast::`vftable' -??_7bad_cast@@6B@ -; const bad_typeid::`vftable' -??_7bad_typeid@@6B@ -; const exception::`vftable' -??_7exception@@6B@ -; public: void __cdecl bad_cast::`default constructor closure'(void) __ptr64 -??_Fbad_cast@@QEAAXXZ -; public: void __cdecl bad_typeid::`default constructor closure'(void) __ptr64 -??_Fbad_typeid@@QEAAXXZ -; void * __ptr64 __cdecl operator new[](unsigned __int64) -; GNU = __Znay -??_U@YAPEAX_K@Z -; void __cdecl operator delete[](void * __ptr64) -; GNU = __ZdaPv -??_V@YAXPEAX@Z -; int (__cdecl*__cdecl _query_new_handler(void))(unsigned __int64) -; GNU = __Z18_query_new_handlerv -?_query_new_handler@@YAP6AH_K@ZXZ -; int __cdecl _query_new_mode(void) -; GNU = __Z15_query_new_modev -?_query_new_mode@@YAHXZ -; int (__cdecl*__cdecl _set_new_handler(int (__cdecl*)(unsigned __int64)))(unsigned __int64) -; GNU = __Z16_set_new_handlerPFiyE -?_set_new_handler@@YAP6AH_K@ZP6AH0@Z@Z -; int __cdecl _set_new_mode(int) -; GNU = __Z13_set_new_modei -?_set_new_mode@@YAHH@Z -; void (__cdecl*__cdecl _set_se_translator(void (__cdecl*)(unsigned int,struct _EXCEPTION_POINTERS * __ptr64)))(unsigned int,struct _EXCEPTION_POINTERS * __ptr64) -; GNU = __Z18_set_se_translatorPFvjP19_EXCEPTION_POINTERSE -?_set_se_translator@@YAP6AXIPEAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z -; public: int __cdecl type_info::before(class type_info const & __ptr64)const __ptr64 -?before@type_info@@QEBAHAEBV1@@Z -; public: char const * __ptr64 __cdecl type_info::name(void)const __ptr64 -?name@type_info@@QEBAPEBDXZ -; public: char const * __ptr64 __cdecl type_info::raw_name(void)const __ptr64 -?raw_name@type_info@@QEBAPEBDXZ -; void (__cdecl*__cdecl set_new_handler(void (__cdecl*)(void)))(void) -; GNU = __Z15set_new_handlerPFvvE -?set_new_handler@@YAP6AXXZP6AXXZ@Z -; void (__cdecl*__cdecl set_terminate(void (__cdecl*)(void)))(void) -; GNU = __Z13set_terminatePFvvE -?set_terminate@@YAP6AXXZP6AXXZ@Z -; void (__cdecl*__cdecl set_unexpected(void (__cdecl*)(void)))(void) -; GNU = __Z14set_unexpectedPFvvE -?set_unexpected@@YAP6AXXZP6AXXZ@Z -; void __cdecl terminate(void) -; GNU = __Z9terminatev -?terminate@@YAXXZ -; void __cdecl unexpected(void) -; GNU = __Z10unexpectedv -?unexpected@@YAXXZ -; public: virtual char const * __ptr64 __cdecl exception::what(void)const __ptr64 -?what@exception@@UEBAPEBDXZ -#endif - -#ifdef DEF_ARM32 -??0__non_rtti_object@@QAA@ABV0@@Z -??0__non_rtti_object@@QAA@PBD@Z -??0bad_cast@@AAA@PBQBD@Z -??0bad_cast@@QAA@ABV0@@Z -??0bad_cast@@QAA@PBD@Z -??0bad_typeid@@QAA@ABV0@@Z -??0bad_typeid@@QAA@PBD@Z -??0exception@@QAA@ABQBD@Z -??0exception@@QAA@ABQBDH@Z -??0exception@@QAA@ABV0@@Z -??0exception@@QAA@XZ -??1__non_rtti_object@@UAA@XZ -??1bad_cast@@UAA@XZ -??1bad_typeid@@UAA@XZ -??1exception@@UAA@XZ -??1type_info@@UAA@XZ -??2@YAPAXI@Z -??2@YAPAXIHPBDH@Z -??3@YAXPAX@Z -??4__non_rtti_object@@QAAAAV0@ABV0@@Z -??4bad_cast@@QAAAAV0@ABV0@@Z -??4bad_typeid@@QAAAAV0@ABV0@@Z -??4exception@@QAAAAV0@ABV0@@Z -??8type_info@@QBAHABV0@@Z -??9type_info@@QBAHABV0@@Z -??_7__non_rtti_object@@6B@ DATA -??_7bad_cast@@6B@ DATA -??_7bad_typeid@@6B@ DATA -??_7exception@@6B@ DATA -??_Fbad_cast@@QAAXXZ -??_Fbad_typeid@@QAAXXZ -??_U@YAPAXI@Z -??_U@YAPAXIHPBDH@Z -??_V@YAXPAX@Z -_CallMemberFunction0 -_CallMemberFunction1 -_CallMemberFunction2 -__ExceptionPtrAssign -__ExceptionPtrCompare -__ExceptionPtrCopy -__ExceptionPtrCopyException -__ExceptionPtrCreate -__ExceptionPtrCurrentException -__ExceptionPtrDestroy -__ExceptionPtrRethrow -__ExceptionPtrSwap -__ExceptionPtrToBool -?_query_new_handler@@YAP6AHI@ZXZ -?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z -?_set_new_mode@@YAHH@Z -?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z -?before@type_info@@QBAHABV1@@Z -?name@type_info@@QBAPBDXZ -?raw_name@type_info@@QBAPBDXZ -?set_terminate@@YAP6AXXZP6AXXZ@Z -?set_unexpected@@YAP6AXXZP6AXXZ@Z -?terminate@@YAXXZ -?unexpected@@YAXXZ -?what@exception@@UBAPBDXZ -#endif - -#ifdef DEF_ARM32 -_CrtCheckMemory -_CrtDbgBreak -_CrtDbgReport -_CrtDbgReportV -_CrtDbgReportW -_CrtDbgReportWV -_CrtDoForAllClientObjects -_CrtDumpMemoryLeaks -_CrtIsMemoryBlock -_CrtIsValidHeapPointer -_CrtIsValidPointer -_CrtMemCheckpoint -_CrtMemDifference -_CrtMemDumpAllObjectsSince -_CrtMemDumpStatistics -_CrtReportBlockType -_CrtSetAllocHook -_CrtSetBreakAlloc -_CrtSetDbgBlockType -_CrtSetDbgFlag -_CrtSetDumpClient -_CrtSetReportFile -_CrtSetReportHook -_CrtSetReportHook2 -_CrtSetReportMode -#endif -F_I386(_CxxThrowException@8) -F_NON_I386(_CxxThrowException) -F_I386(_EH_prolog) -_Getdays -_Getmonths -_Gettnames -_HUGE DATA -_Strftime -F_ARM_ANY(_W_Getdays) -F_ARM_ANY(_W_Getmonths) -F_ARM_ANY(_W_Gettnames) -F_ARM_ANY(_Wcsftime) -_XcptFilter -F_ARM_ANY(__AdjustPointer) -F_NON_I386(__C_specific_handler) -__CppXcptFilter -F_I386(__CxxCallUnwindDtor) -F_I386(__CxxCallUnwindVecDtor) -F_I386(__CxxDetectRethrow) -F_I386(__CxxExceptionFilter) -F_X86_ANY(__CxxFrameHandler) -F_ARM_ANY(__CxxFrameHandler3) -F_I386(__CxxLongjmpUnwind) -F_I386(__CxxQueryExceptionSize) -F_I386(__CxxRegisterExceptionObject) -F_I386(__CxxUnregisterExceptionObject) -__DestructExceptionObject -__RTCastToVoid -__RTDynamicCast -__RTtypeid -__STRINGTOLD -F_NON_I386(___lc_codepage_func) -___lc_collate_cp_func -___lc_handle_func -; ___mb_cur_max_func exists (on all archs) since XP. Earlier, this function -; was never used, but the __mb_cur_max data symbol was accessed instead. -; For i386 we provide this function as a statically linked helper, that uses -; __mb_cur_max, to avoid forcing a dependency on XP here. -F_NON_I386(___mb_cur_max_func) -F_X86_ANY(___setlc_active_func) -F_X86_ANY(___unguarded_readlc_active_add_func) -__argc DATA -__argv DATA -__badioinfo DATA -F_I386(__buffer_overrun) -__crtCompareStringA -__crtCompareStringW -__crtGetLocaleInfoW -__crtGetStringTypeW -__crtLCMapStringA -__crtLCMapStringW -F_ARM_ANY(__daylight) -__dllonexit -__doserrno -F_ARM_ANY(__dstbias) -__fpecode -__getmainargs -F_X86_ANY(__initenv DATA) -__iob_func -__isascii -__iscsym -__iscsymf -F_I386(__lc_clike) -F_X86_ANY(__lc_codepage DATA) -F_X86_ANY(__lc_collate_cp DATA) -__lc_handle DATA -__lconv_init -__mb_cur_max DATA -#ifdef DEF_I386 -__p___argc -__p___argv -__p___initenv -__p___mb_cur_max -__p___wargv -__p___winitenv -__p__acmdln -__p__amblksiz -__p__commode -__p__daylight -__p__dstbias -__p__environ -__p__fileinfo -__p__fmode -__p__iob -__p__mbcasemap -__p__mbctype -__p__osver -__p__pctype -__p__pgmptr -__p__pwctype -__p__timezone -__p__tzname -__p__wcmdln -__p__wenviron -__p__winmajor -__p__winminor -__p__winver -__p__wpgmptr -#endif -__pctype_func -__pioinfo DATA -__pwctype_func -__pxcptinfoptrs -F_I386(__security_error_handler) -__set_app_type -F_I386(__set_buffer_overrun_handler) -F_X86_ANY(__setlc_active DATA) -__setusermatherr -F_ARM_ANY(__strncnt) -F_X86_ANY(__threadhandle) -F_X86_ANY(__threadid) -__toascii -__uncaught_exception -__unDName -__unDNameEx -F_X86_ANY(__unguarded_readlc_active DATA) -__wargv DATA -__wcserror -F_NON_I386(__wcserror_s) -F_ARM_ANY(__wcsncnt) -__wgetmainargs -F_X86_ANY(__winitenv DATA) -F_I386(_abnormal_termination) -F_NON_I386(_abs64) -F_NON_I386(llabs == _abs64) -F_NON_I386(imaxabs == _abs64) -_access -; _access_s Replaced by emu -_acmdln DATA -#ifdef DEF_I386 -_adj_fdiv_m16i -_adj_fdiv_m32 -_adj_fdiv_m32i -_adj_fdiv_m64 -_adj_fdiv_r -_adj_fdivr_m16i -_adj_fdivr_m32 -_adj_fdivr_m32i -_adj_fdivr_m64 -_adj_fpatan -_adj_fprem -_adj_fprem1 -_adj_fptan -_adjust_fdiv DATA -#endif -_aexit_rtn DATA -_aligned_free -F_ARM_ANY(_aligned_free_dbg) -_aligned_malloc -F_ARM_ANY(_aligned_malloc_dbg) -_aligned_offset_malloc -F_ARM_ANY(_aligned_offset_malloc_dbg) -_aligned_offset_realloc -F_ARM_ANY(_aligned_offset_realloc_dbg) -_aligned_realloc -F_ARM_ANY(_aligned_realloc_dbg) -_amsg_exit -_assert -_atodbl -_atodbl_l -_atof_l -_atoflt_l -_atoi64 -atoll == _atoi64 -_atoi64_l -_atoll_l == _atoi64_l -_atoi_l -_atol_l -_atoldbl -F_NON_I386(_atoldbl_l) -F_X86_ANY(_beep) -_beginthread -_beginthreadex -_c_exit -_cabs DATA -_callnewh -F_ARM_ANY(_calloc_dbg) -_cexit -_cgets -; _cgets_s replaced by emu -_cgetws -; _cgetws_s replaced by emu -_chdir -_chdrive -_chgsign -F_NON_I386(_chgsignf) -_chmod -F_I386(_chkesp) -_chsize -; _chsize_s replaced by emu -F_ARM_ANY(_chvalidator) -F_ARM_ANY(_chvalidator_l) -_clearfp -_close -_commit -_commode DATA -_control87 -_controlfp -; _controlfp_s replaced by emu -_copysign -F_NON_I386(_copysignf) -_cprintf -_cprintf_l -_cprintf_p -_cprintf_p_l -; _cprintf_s Replaced by emu -; _cprintf_s_l likewise. -_cputs -_cputws -F_I386(_CRT_RTC_INIT) -_creat -F_ARM_ANY(_create_locale) -F_ARM32(_crtAssertBusy) -F_ARM32(_crtBreakAlloc) -F_ARM32(_crtDbgFlag) -_cscanf -_cscanf_l -_cscanf_s -_cscanf_s_l -F_ARM_ANY(_ctime32) -F_I386(_ctime32 == ctime) -; _ctime32_s replaced by emu -_ctime64 -; _ctime64_s replaced by emu -_ctype F_I386(DATA) -_cwait -_cwprintf -_cwprintf_l -_cwprintf_p -_cwprintf_p_l -; _cwprintf_s Replaced by emu -; _cwprintf_s_l Likewise. -_cwscanf -_cwscanf_l -_cwscanf_s -_cwscanf_s_l -F_X86_ANY(_dstbias DATA) -_daylight DATA -_difftime32 F_I386(== difftime) -_difftime64 -_dup -_dup2 -_ecvt -_ecvt_s -_endthread -_endthreadex -F_X86_ANY(_environ DATA) -_eof -_errno -F_I386(_except_handler2) -F_I386(_except_handler3) -_execl -_execle -_execlp -_execlpe -_execv -_execve -_execvp -_execvpe -_exit -_expand -F_ARM_ANY(_expand_dbg) -_fcloseall -_fcvt -_fcvt_s -_fdopen -_fgetchar -_fgetwchar -_filbuf -F_X86_ANY(_fileinfo DATA) -_filelength -_filelengthi64 -_fileno -_findclose -_findfirst -F32(_findfirst32 == _findfirst) -_findfirst64 -_findfirsti64 -F32(_findfirst32i64 == _findfirsti64) -F64(_findfirst64i32 == _findfirst) -_findnext -F32(_findnext32 == _findnext) -_findnext64 -_findnexti64 -F32(_findnext32i64 == _findnexti64) -F64(_findnext64i32 == _findnext) -_finite -F_NON_I386(_finitef) -_flsbuf -_flushall -_fmode DATA -_fpclass -F_X64(_fpclassf) -F_I386(_fpieee_flt) -F_ARM_ANY(_fpieee_flt) -_fpreset DATA -_fprintf_l -_fprintf_p -_fprintf_p_l -_fprintf_s_l -_fputchar -_fputwchar -F_ARM_ANY(_free_dbg) -F_ARM_ANY(_free_locale) -F_ARM_ANY(_freea) -F_NON_I386(_fscanf_l) -F_NON_I386(_fscanf_s_l) -F_ARM_ANY(_fseeki64) -_fsopen -_fstat -F32(_fstat32 == _fstat) -_fstat64 -_fstati64 -F64(_fstat64i32 == _fstat) -_ftime -F_I386(_ftime32 == _ftime) -F_NON_I386(_ftime32) -_ftime32_s -_ftime64 -_ftime64_s -F32(_ftime_s == _ftime32_s) -F64(_ftime_s == _ftime64_s) -F_I386(_ftol) -_fullpath -F_ARM_ANY(_fullpath_dbg) -_futime -F_I386(_futime32 == _futime) -F_NON_I386(_futime32) -_futime64 -_fwprintf_l -_fwprintf_p -_fwprintf_p_l -_fwprintf_s_l -_fwscanf_l -_fwscanf_s_l -_gcvt -_gcvt_s -F_ARM_ANY(_get_current_locale) -_get_doserrno -F_ARM_ANY(_get_environ) -F_ARM_ANY(_get_errno) -F_ARM_ANY(_get_fileinfo) -F_ARM_ANY(_get_fmode) -F_X86_ANY(_get_heap_handle) -_get_osfhandle -;_get_output_format provided by emu -F_X86_ANY(_get_sbh_threshold) -F_ARM_ANY(_get_wenviron) -_getch -_getche -_getcwd -_getdcwd -_getdiskfree -_getdllprocaddr -_getdrive -F_X86_ANY(_getdrives) -_getmaxstdio -_getmbcp -F_X86_ANY(_getpid) -F_X86_ANY(_getsystime) -_getw -_getwch -_getwche -F_X86_ANY(_getws) -F_I386(_global_unwind2) -_gmtime32 F_I386(== gmtime) -; _gmtime32_s replaced by emu -_gmtime64 -; _gmtime64_s replaced by emu -F_X86_ANY(_heapadd) -_heapchk -_heapmin -F_X86_ANY(_heapset) -F_X86_ANY(_heapused) -_heapwalk -_hypot -F_NON_I386(_hypotf) -_i64toa -_i64toa_s -_i64tow -_i64tow_s -_initterm -F_ARM_ANY(_initterm_e) -F_I386(_inp) -F_I386(_inpd) -F_I386(_inpw) -F_ARM_ANY(_invalid_parameter) -_iob DATA -_isalnum_l -_isalpha_l -_isatty -_iscntrl_l -_isctype -_isctype_l -_isdigit_l -_isgraph_l -_isleadbyte_l -_islower_l -_ismbbalnum -_ismbbalnum_l -_ismbbalpha -_ismbbalpha_l -_ismbbgraph -_ismbbgraph_l -_ismbbkalnum -_ismbbkalnum_l -_ismbbkana -_ismbbkana_l -_ismbbkprint -_ismbbkprint_l -_ismbbkpunct -_ismbbkpunct_l -_ismbblead -_ismbblead_l -_ismbbprint -_ismbbprint_l -_ismbbpunct -_ismbbpunct_l -_ismbbtrail -_ismbbtrail_l -_ismbcalnum -_ismbcalnum_l -_ismbcalpha -_ismbcalpha_l -_ismbcdigit -_ismbcdigit_l -_ismbcgraph -_ismbcgraph_l -_ismbchira -_ismbchira_l -_ismbckata -_ismbckata_l -_ismbcl0 -_ismbcl0_l -_ismbcl1 -_ismbcl1_l -_ismbcl2 -_ismbcl2_l -_ismbclegal -_ismbclegal_l -_ismbclower -_ismbclower_l -_ismbcprint -_ismbcprint_l -_ismbcpunct -_ismbcpunct_l -_ismbcspace -_ismbcspace_l -_ismbcsymbol -_ismbcsymbol_l -_ismbcupper -_ismbcupper_l -_ismbslead -_ismbslead_l -_ismbstrail -_ismbstrail_l -_isnan -F_X64(_isnanf) -_isprint_l -_isspace_l -_isupper_l -_iswalnum_l -_iswalpha_l -_iswcntrl_l -_iswctype_l -_iswdigit_l -_iswgraph_l -_iswlower_l -_iswprint_l -_iswpunct_l -_iswspace_l -_iswupper_l -_iswxdigit_l -_isxdigit_l -_itoa -_itoa_s -_itow -_itow_s -_j0 -_j1 -_jn -_kbhit -_lfind -F_X86_ANY(_loaddll) -F_NON_I386(_lfind_s) -F_X64(_local_unwind) -F_I386(_local_unwind2) -_localtime32 F_I386(== localtime) -; _localtime32_s replaced by emu -_localtime64 -; _localtime64_s replaced by emu -_lock -_locking -_logb -F_NON_I386(_logbf) -F_I386(_longjmpex) -_lrotl -_lrotr -_lsearch -F_NON_I386(_lsearch_s) -_lseek -_lseeki64 -_ltoa -F_NON_I386(_ltoa_s) -_ltow -F_NON_I386(_ltow_s) -_makepath -_makepath_s -F_ARM_ANY(_malloc_dbg) -_mbbtombc -_mbbtombc_l -_mbbtype -_mbcasemap F_NON_I386(DATA) -_mbccpy -_mbccpy_l -_mbccpy_s -_mbccpy_s_l -_mbcjistojms -_mbcjistojms_l -_mbcjmstojis -_mbcjmstojis_l -_mbclen -_mbclen_l -_mbctohira -_mbctohira_l -_mbctokata -_mbctokata_l -_mbctolower -_mbctolower_l -_mbctombb -_mbctombb_l -_mbctoupper -_mbctoupper_l -_mbctype DATA -_mblen_l -_mbsbtype -_mbsbtype_l -_mbscat -_mbscat_s -_mbscat_s_l -_mbschr -_mbschr_l -_mbscmp -_mbscmp_l -_mbscoll -_mbscoll_l -_mbscpy -_mbscpy_s -_mbscpy_s_l -_mbscspn -_mbscspn_l -_mbsdec -_mbsdec_l -_mbsdup -_mbsicmp -_mbsicmp_l -_mbsicoll -_mbsicoll_l -_mbsinc -_mbsinc_l -_mbslen -_mbslen_l -_mbslwr -_mbslwr_l -_mbslwr_s -_mbslwr_s_l -_mbsnbcat -_mbsnbcat_l -_mbsnbcat_s -_mbsnbcat_s_l -_mbsnbcmp -_mbsnbcmp_l -_mbsnbcnt -_mbsnbcnt_l -_mbsnbcoll -_mbsnbcoll_l -_mbsnbcpy -_mbsnbcpy_l -_mbsnbcpy_s -_mbsnbcpy_s_l -_mbsnbicmp -_mbsnbicmp_l -_mbsnbicoll -_mbsnbicoll_l -_mbsnbset -_mbsnbset_l -_mbsnbset_s -_mbsnbset_s_l -_mbsncat -_mbsncat_l -_mbsncat_s -_mbsncat_s_l -_mbsnccnt -_mbsnccnt_l -_mbsncmp -_mbsncmp_l -_mbsncoll -_mbsncoll_l -_mbsncpy -_mbsncpy_l -_mbsncpy_s -_mbsncpy_s_l -_mbsnextc -_mbsnextc_l -_mbsnicmp -_mbsnicmp_l -_mbsnicoll -_mbsnicoll_l -_mbsninc -_mbsninc_l -_mbsnlen -_mbsnlen_l -_mbsnset -_mbsnset_l -_mbsnset_s -_mbsnset_s_l -_mbspbrk -_mbspbrk_l -_mbsrchr -_mbsrchr_l -_mbsrev -_mbsrev_l -_mbsset -_mbsset_l -_mbsset_s -_mbsset_s_l -_mbsspn -_mbsspn_l -_mbsspnp -_mbsspnp_l -_mbsstr -_mbsstr_l -_mbstok -_mbstok_l -_mbstok_s -_mbstok_s_l -_mbstowcs_l -_mbstowcs_s_l -_mbstrlen -_mbstrlen_l -_mbstrnlen -_mbstrnlen_l -_mbsupr -_mbsupr_l -_mbsupr_s -_mbsupr_s_l -_mbtowc_l -_memccpy -F_ARM_ANY(_memcpy_strict_align) -_memicmp -_memicmp_l -_mkdir -_mkgmtime -_mkgmtime32 -_mkgmtime64 -_mktemp -; _mktemp_s replaced by emu -F_I386(_mktime32 == mktime) -F_ARM_ANY(_mktime32) -_mktime64 -_msize -F_ARM_ANY(_msize_dbg) -_nextafter -F_X64(_nextafterf) -_onexit -_open -_open_osfhandle -F_X86_ANY(_osplatform DATA) -_osver DATA -F_I386(_outp) -F_I386(_outpd) -F_I386(_outpw) -_pclose -_pctype DATA -_pgmptr DATA -_pipe -_popen -_printf_l -_printf_p -_printf_p_l -_printf_s_l -_purecall -_putch -_putenv -_putenv_s -_putw -_putwch -_putws -_pwctype DATA -_read -F_ARM_ANY(_realloc_dbg) -_resetstkoflw -_rmdir -_rmtmp -_rotl -F_NON_I386(_rotl64) -_rotr -F_NON_I386(_rotr64) -#ifdef DEF_I386 -_safe_fdiv -_safe_fdivr -_safe_fprem -_safe_fprem1 -#endif -_scalb -F_X64(_scalbf) -_scanf_l -_scanf_s_l -F_NON_I386(_scprintf) ; i386 _scprintf replaced by emu -_scprintf_l -_scprintf_p_l -_scwprintf -_scwprintf_l -_scwprintf_p_l -_searchenv -_searchenv_s -F_I386(_seh_longjmp_unwind) -_set_controlfp -_set_doserrno -F_ARM_ANY(_set_errno) -_set_error_mode -F_ARM_ANY(_set_fileinfo) -F_ARM_ANY(_set_fmode) -; Does not seem to present even on Win7 msvcrt -;_set_purecall_handler -F_X86_ANY(_set_sbh_threshold) -; _set_output_format provided by emu -F_I386(_set_SSE2_enable) -F_I386(_set_security_error_handler) -F_X86_ANY(_seterrormode) -_setjmp -F_I386(_setjmp3) -F_NON_I386(_setjmpex) -F_X86_ANY(_setmaxstdio) -_setmbcp -_setmode -F_X86_ANY(_setsystime) -F_X86_ANY(_sleep) -_snprintf -_snprintf_c -_snprintf_c_l -_snprintf_l -_snprintf_s -_snprintf_s_l -_snscanf -_snscanf_l -_snscanf_s -_snscanf_s_l -_snwprintf -snwprintf == _snwprintf -_snwprintf_l -_snwprintf_s -_snwprintf_s_l -_snwscanf -_snwscanf_l -_snwscanf_s -_snwscanf_s_l -_sopen -; _sopen_s replaced by emu -_spawnl -_spawnle -_spawnlp -_spawnlpe -_spawnv -_spawnve -_spawnvp -_spawnvpe -_splitpath -_splitpath_s -_sprintf_l -_sprintf_p_l -_sprintf_s_l -_sscanf_l -_sscanf_s_l -_stat -_stat64 -_stati64 -F32(_stat32 == _stat) -F64(_stat64i32 == _stat) -_statusfp -_strcmpi -_strcoll_l -_strdate -; _strdate_s replaced by emu -_strdup -F_ARM_ANY(_strdup_dbg) -_strerror -_strerror_s -_stricmp -_stricmp_l -_stricoll -_stricoll_l -_strlwr -strlwr == _strlwr -_strlwr_l -_strlwr_s -_strlwr_s_l -_strncoll -_strncoll_l -_strnicmp -_strnicmp_l -_strnicoll -_strnicoll_l -_strnset -_strnset_s -_strrev -_strset -_strset_s -_strtime -; _strtime_s replaced by emu -_strtod_l -_strtoi64 -strtoll == _strtoi64 -strtoimax == _strtoi64 -_strtoi64_l -_strtoll_l == _strtoi64_l -_strtoimax_l == _strtoi64_l -_strtol_l -_strtoui64 -strtoull == _strtoui64 -strtoumax == _strtoui64 -_strtoui64_l -_strtoull_l == _strtoui64_l -_strtoumax_l == _strtoui64_l -_strtoul_l -_strupr -_strupr_l -_strupr_s -_strupr_s_l -_strxfrm_l -_swab -_swprintf == swprintf -F_NON_I386(_swprintf_c) -_swprintf_c_l -_swprintf_p_l -_swprintf_s_l -_swscanf_l -_swscanf_s_l -_sys_errlist DATA -_sys_nerr DATA -_tell -_telli64 -_tempnam -F_ARM_ANY(_tempnam_dbg) -F_I386(_time32 == time) -F_ARM_ANY(_time32) -_time64 -_timezone DATA -_tolower -_tolower_l -_toupper -_toupper_l -_towlower_l -_towupper_l -_tzname DATA -_tzset -_ui64toa -_ui64toa_s -_ui64tow -_ui64tow_s -_ultoa -_ultoa_s -_ultow -_ultow_s -_umask -; _umask_s replaced by emu -_ungetch -_ungetwch -_unlink -F_X86_ANY(_unloaddll) -_unlock -_utime -F_I386(_utime32 == _utime) -F_NON_I386(_utime32) -_utime64 -_vcprintf -_vcprintf_l -_vcprintf_p -_vcprintf_p_l -; _vcprintf_s Replaced by emu -; _vcprintf_s_l Likewise. -_vcwprintf -_vcwprintf_l -_vcwprintf_p -_vcwprintf_p_l -; _vcwprintf_s Replaced by emu -; _vcwprintf_s_l Likewise. -_vfprintf_l -_vfprintf_p -_vfprintf_p_l -_vfprintf_s_l -_vfwprintf_l -_vfwprintf_p -_vfwprintf_p_l -_vfwprintf_s_l -_vprintf_l -_vprintf_p -_vprintf_p_l -_vprintf_s_l -F_NON_I386(_vscprintf) ; i386 _vscprintf replaced by emu -_vscprintf_l -_vscprintf_p_l -_vscwprintf -_vscwprintf_l -_vscwprintf_p_l -_vsnprintf -_vsnprintf_c -_vsnprintf_c_l -_vsnprintf_l -_vsnprintf_s -_vsnprintf_s_l -_vsnwprintf -vsnwprintf == _vsnwprintf -_vsnwprintf_l -_vsnwprintf_s -_vsnwprintf_s_l -_vsprintf_l -_vsprintf_p -_vsprintf_p_l -_vsprintf_s_l -_vswprintf F_I386(== vswprintf) -_vswprintf_c -_vswprintf_c_l -_vswprintf_l -_vswprintf_p_l -_vswprintf_s_l -_vwprintf_l -_vwprintf_p -_vwprintf_p_l -_vwprintf_s_l -_waccess -; _waccess_s Replaced by emu -_wasctime -; _wasctime_s Replaced by emu -F_NON_I386(_wassert) -_wchdir -_wchmod -_wcmdln DATA -_wcreat -_wcscoll_l -_wcsdup -F_ARM_ANY(_wcsdup_dbg) -_wcserror -_wcserror_s -_wcsftime_l -_wcsicmp -_wcsicmp_l -_wcsicoll -_wcsicoll_l -_wcslwr -wcslwr == _wcslwr -_wcslwr_l -_wcslwr_s -_wcslwr_s_l -_wcsncoll -_wcsncoll_l -_wcsnicmp -_wcsnicmp_l -_wcsnicoll -_wcsnicoll_l -_wcsnset -_wcsnset_s -_wcsrev -_wcsset -_wcsset_s -F_ARM_ANY(_wcstod_l) -_wcstoi64 -_wcstoi64_l -_wcstol_l -_wcstombs_l -_wcstombs_s_l -_wcstoui64 -_wcstoui64_l -_wcstoul_l -_wcsupr -_wcsupr_l -_wcsupr_s -_wcsupr_s_l -_wcsxfrm_l -_wctime -F_I386(_wctime32 == _wctime) -F_ARM_ANY(_wctime32) -; _wctime32_s replaced by emu -_wctime64 -; _wctime64_s replaced by emu -_wctomb_l -_wctomb_s_l -_wctype -F_X86_ANY(_wenviron DATA) -_wexecl -_wexecle -_wexeclp -_wexeclpe -_wexecv -_wexecve -_wexecvp -_wexecvpe -_wfdopen -_wfindfirst -F32(_wfindfirst32 == _wfindfirst) -_wfindfirst64 -_wfindfirsti64 -F32(_wfindfirst32i64 == _wfindfirsti64) -F64(_wfindfirst64i32 == _wfindfirst) -_wfindnext -F32(_wfindnext32 == _wfindnext) -_wfindnext64 -_wfindnexti64 -F32(_wfindnext32i64 == _wfindnexti64) -F64(_wfindnext64i32 == _wfindnext) -_wfopen -_wfopen_s -_wfreopen -_wfreopen_s -_wfsopen -_wfullpath -F_ARM_ANY(_wfullpath_dbg) -_wgetcwd -_wgetdcwd -_wgetenv -_wgetenv_s -_winmajor DATA -_winminor DATA -_winput_s -F_X86_ANY(_winver DATA) -_wmakepath -_wmakepath_s -_wmkdir -_wmktemp -; _wmktemp_s replaced by emu -_wopen -_woutput_s -_wperror -_wpgmptr DATA -_wpopen -_wprintf_l -_wprintf_p -_wprintf_p_l -_wprintf_s_l -_wputenv -_wputenv_s -_wremove -_wrename -_write -_wrmdir -_wscanf_l -_wscanf_s_l -_wsearchenv -_wsearchenv_s -_wsetlocale -_wsopen -_wsopen_s -_wspawnl -_wspawnle -_wspawnlp -_wspawnlpe -_wspawnv -_wspawnve -_wspawnvp -_wspawnvpe -_wsplitpath -_wsplitpath_s -_wstat -_wstat64 -_wstati64 -F32(_wstat32 == _wstat) -F64(_wstat64i32 == _wstat) -_wstrdate -; _wstrdate_s replaced by emu -_wstrtime -; _wstrtime_s replaced by emu -_wsystem -_wtempnam -F_ARM_ANY(_wtempnam_dbg) -_wtmpnam -_wtmpnam_s -_wtof -_wtof_l -_wtoi -_wtoi64 -_wtoi64_l -_wtoi_l -_wtol -_wtol_l -_wunlink -_wutime -F_I386(_wutime32 == _wutime) -F_NON_I386(_wutime32) -_wutime64 -_y0 -_y1 -_yn -abort -abs -acos -F_NON_I386(acosf F_X86_ANY(DATA)) -F_ARM_ANY(acosl == acos) -asctime -; asctime_s replaced by emu -asin -F_NON_I386(asinf F_X86_ANY(DATA)) -F_ARM_ANY(asinl == asin) -atan -atan2 F_X86_ANY(DATA) -F_NON_I386(atan2f F_X86_ANY(DATA)) -F_ARM_ANY(atan2l == atan2) -F_NON_I386(atanf F_X86_ANY(DATA)) -F_ARM_ANY(atanl == atan) -atexit DATA -atof -atoi -atol -bsearch -bsearch_s -F_ARM_ANY(btowc) -calloc -ceil F_X86_ANY(DATA) -F_NON_I386(ceilf F_X86_ANY(DATA)) -F_ARM_ANY(ceill == ceil) -clearerr -clearerr_s -clock -cos F_X86_ANY(DATA) -F_NON_I386(cosf F_X86_ANY(DATA)) -F_ARM_ANY(cosl == cos) -cosh -F_NON_I386(coshf DATA) -ctime -difftime -div -exit -exp F_X86_ANY(DATA) -F_NON_I386(expf F_X86_ANY(DATA)) -F_ARM_ANY(expl == exp) -fabs DATA -F_ARM_ANY(fabsf) -fclose -feof -ferror -fflush -fgetc -fgetpos -fgets -fgetwc -fgetws -floor F_X86_ANY(DATA) -F_NON_I386(floorf F_X86_ANY(DATA)) -F_ARM_ANY(floorl == floor) -fmod F_X86_ANY(DATA) -F_NON_I386(fmodf F_X86_ANY(DATA)) -F_ARM_ANY(fmodl == fmod) -fopen -fopen_s -fprintf -__ms_fprintf == fprintf -fprintf_s -fputc -fputs -fputwc -fputws -fread -free -freopen -freopen_s -frexp DATA -fscanf -__ms_fscanf == fscanf -fscanf_s -fseek -fsetpos -ftell -fwprintf -__ms_fwprintf == fwprintf -fwprintf_s -fwrite -fwscanf -__ms_fwscanf == fwscanf -fwscanf_s -getc -getchar -getenv -getenv_s -F_X86_ANY(gets) -getwc -getwchar -gmtime -is_wctype -isalnum -isalpha -iscntrl -isdigit -isgraph -isleadbyte -islower -isprint -ispunct -isspace -isupper -iswalnum -iswalpha -iswascii -iswcntrl -iswctype -iswdigit -iswgraph -iswlower -iswprint -iswpunct -iswspace -iswupper -iswxdigit -isxdigit -labs -ldexp F_X86_ANY(DATA) -ldiv -localeconv -localtime -log F_X86_ANY(DATA) -log10 -F_NON_I386(log10f F_X86_ANY(DATA)) -F_ARM_ANY(log10l == log10) -F_NON_I386(logf F_X86_ANY(DATA)) -F_ARM_ANY(logl == log) -longjmp -malloc -mblen -F_ARM_ANY(mbrlen) -F_ARM_ANY(mbrtowc) -F_ARM_ANY(mbsdup_dbg) -F_ARM_ANY(mbsrtowcs) -mbsrtowcs_s -mbstowcs -mbstowcs_s -mbtowc -memchr -memcmp -memcpy -; memcpy_s replaced by emu -memmove -; memmove_s replaced by emu -memset -mktime -modf DATA -F_NON_I386(modff DATA) -perror -pow DATA -F_NON_I386(powf DATA) -printf -__ms_printf == printf -printf_s -putc -putchar -puts -putwc -putwchar -qsort -qsort_s -raise -rand -; rand_s replaced by emu -realloc -remove -rename -rewind -scanf -__ms_scanf == scanf -scanf_s -setbuf -F_NON_I386(setjmp) -setlocale -setvbuf -signal -sin F_X86_ANY(DATA) -F_NON_I386(sinf F_X86_ANY(DATA)) -F_ARM_ANY(sinl == sin) -; if we implement sinh, we can set it DATA only. -sinh -F_NON_I386(sinhf DATA) -sprintf -__ms_sprintf == sprintf -; sprintf_s replaced by emu -sqrt DATA -F_NON_I386(sqrtf DATA) -srand -sscanf -__ms_sscanf == sscanf -sscanf_s -strcat -strcat_s -strchr -strcmp -strcoll -strcpy -strcpy_s -strcspn -strerror -; strerror_s replaced by emu -strftime -strlen -strncat -strncat_s -strncmp -strncpy -strncpy_s -; strnlen replaced by emu -strpbrk -strrchr -strspn -strstr -strtod -strtok -strtok_s -strtol -strtoul -strxfrm -swprintf -__ms_swprintf == swprintf -swprintf_s -swscanf -__ms_swscanf == swscanf -swscanf_s -system -tan -F_NON_I386(tanf F_X86_ANY(DATA)) -F_ARM_ANY(tanl == tan) -; if we implement tanh, we can set it to DATA only. -tanh -F_ARM_ANY(tanhf) -time F_NON_I386(== _time64) -tmpfile -tmpfile_s -tmpnam -tmpnam_s -tolower -toupper -towlower -towupper -ungetc -ungetwc -F_ARM_ANY(utime) -vfprintf -__ms_vfprintf == vfprintf -vfprintf_s -vfwprintf -__ms_vfwprintf == vfwprintf -vfwprintf_s -vprintf -__ms_vprintf == vprintf -vprintf_s -vsprintf -__ms_vsprintf == vsprintf -; vsprintf_s replaced by emu -vswprintf -__ms_vswprintf == vswprintf -vswprintf_s -vwprintf -__ms_vwprintf == vwprintf -vwprintf_s -F_ARM_ANY(wcrtomb) -wcrtomb_s -wcscat -wcscat_s -wcschr -wcscmp -wcscoll -wcscpy -wcscpy_s -wcscspn -wcsftime -wcslen -wcsncat -wcsncat_s -wcsncmp -wcsncpy -wcsncpy_s -; We provide replacement implementation in libmingwex -wcsnlen DATA -wcspbrk -wcsrchr -F_ARM_ANY(wcsrtombs) -wcsrtombs_s -wcsspn -wcsstr -wcstod -wcstok -wcstok_s -wcstol -wcstombs -wcstombs_s -wcstoul -wcsxfrm -F_ARM_ANY(wctob) -wctomb -wctomb_s -wprintf -__ms_wprintf == wprintf -wprintf_s -wscanf -__ms_wscanf == wscanf -wscanf_s diff --git a/lib/libc/mingw/lib32/crtdll.def.in b/lib/libc/mingw/lib32/crtdll.def.in deleted file mode 100644 index d8b5bd8211..0000000000 --- a/lib/libc/mingw/lib32/crtdll.def.in +++ /dev/null @@ -1,726 +0,0 @@ -; -;* crtdll.def -;* This file has no copyright assigned and is placed in the Public Domain. -;* This file is part of the mingw-runtime package. -;* No warranty is given; refer to the file DISCLAIMER.PD within the package. -; -; Exports from crtdll.dll from Windows 95 SYSTEM directory. Hopefully this -; should also work with the crtdll provided with Windows NT. -; -; NOTE: The crtdll is OBSOLETE and msvcrt should be used instead. The msvcrt -; is available for free download from Microsoft Corporation and will work on -; Windows 95. Support for the crtdll is deprecated and this file may be -; deleted in future versions. -; -; These three functions appear to be name mangled in some way, so GCC is -; probably not going to be able to use them in any case. -; -; ??2@YAPAXI@Z -; ??3@YAXPAX@Z -; ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z -; -; These are functions for which I have not yet written prototypes or -; otherwise set up (they are still included below though unlike those -; first three). -; -; _CIacos -; _CIasin -; _CIatan -; _CIatan2 -; _CIcos -; _CIcosh -; _CIexp -; _CIfmod -; _CIlog -; _CIlog10 -; _CIpow -; _CIsin -; _CIsinh -; _CIsqrt -; _CItan -; _CItanh -; __dllonexit -; __mb_cur_max_dll -; __threadhandle -; __threadid -; _abnormal_termination -; _acmdln_dll -; _aexit_rtn_dll -; _amsg_exit -; _commit -; _commode_dll -; _cpumode_dll -; _ctype -; _expand -; _fcloseall -; _filbuf -; _fileinfo_dll -; _flsbuf -; _flushall -; _fmode_dll -; _fpieee_flt -; _fsopen -; _ftol -; _getdiskfree -; _getdllprocaddr -; _getdrive -; _getdrives -; _getsystime -; _initterm -; _ismbbalnum -; _ismbbalpha -; _ismbbgraph -; _ismbbkalnum -; _ismbbkana -; _ismbbkpunct -; _ismbblead -; _ismbbprint -; _ismbbpunct -; _ismbbtrail -; _ismbcalpha -; _ismbcdigit -; _ismbchira -; _ismbckata -; _ismbcl0 -; _ismbcl1 -; _ismbcl2 -; _ismbclegal -; _ismbclower -; _ismbcprint -; _ismbcspace -; _ismbcsymbol -; _ismbcupper -; _ismbslead -; _ismbstrail -; _lfind -; _loaddll -; _lrotl -; _lrotr -; _lsearch -; _makepath -; _matherr -; _mbbtombc -; _mbbtype -; _mbccpy -; _mbcjistojms -; _mbcjmstojis -; _mbclen -; _mbctohira -; _mbctokata -; _mbctolower -; _mbctombb -; _mbctoupper -; _mbctype -; _mbsbtype -; _mbscat -; _mbscmp -; _mbscpy -; _mbscspn -; _mbsdec -; _mbsdup -; _mbsicmp -; _mbsinc -; _mbslen -; _mbslwr -; _mbsnbcat -; _mbsnbcmp -; _mbsnbcnt -; _mbsnbcpy -; _mbsnbicmp -; _mbsnbset -; _mbsnccnt -; _mbsncmp -; _mbsncpy -; _mbsnextc -; _mbsnicmp -; _mbsninc -; _mbsnset -; _mbspbrk -; _mbsrchr -; _mbsrev -; _mbsset -; _mbsspn -; _mbsspnp -; _mbsstr -; _mbstrlen -; _mbsupr -; _onexit -; _osversion_dll -; _pctype_dll -; _purecall -; _pwctype_dll -; _rmtmp -; _rotl -; _rotr -; _setsystime -; _snprintf -; _snwprintf -; _splitpath -; _strdate -; _strdec -; _strinc -; _strncnt -; _strnextc -; _strninc -; _strspnp -; _strtime -; _tempnam -; _ultoa -; _unloaddll -; _vsnprintf -; _vsnwprintf -; _wtoi -; _wtol -; -LIBRARY "crtdll.dll" -EXPORTS - -#include "msvcrt-common.def.in" - -_CIacos -_CIasin -_CIatan -_CIatan2 -_CIcos -_CIcosh -_CIexp -_CIfmod -_CIlog -_CIlog10 -_CIpow -_CIsin -_CIsinh -_CIsqrt -_CItan -_CItanh -_HUGE_dll DATA -_HUGE DATA == _HUGE_dll -_XcptFilter -__GetMainArgs -__argc_dll DATA -__argc DATA == __argc_dll -__argv_dll DATA -__argv DATA == __argv_dll -__dllonexit -__doserrno -__fpecode -__isascii -__iscsym -__iscsymf -__mb_cur_max_dll DATA -__mb_cur_max DATA == __mb_cur_max_dll -__pxcptinfoptrs -__threadhandle -__threadid -__toascii -_abnormal_termination -_access -_acmdln_dll DATA -_acmdln DATA == _acmdln_dll -_aexit_rtn_dll DATA -_aexit_rtn DATA == _aexit_rtn_dll -_amsg_exit -_assert -_basemajor_dll DATA -_baseminor_dll DATA -_baseversion_dll DATA -_beep -_beginthread -_c_exit -_cabs DATA -_cexit -_cgets -_chdir -_chdrive -_chgsign -_chmod -_chsize -_clearfp -_close -_commit -_commode_dll DATA -_commode DATA == _commode_dll -_control87 -_controlfp -_copysign -_cprintf -_cpumode_dll DATA -_cputs -_creat -_cscanf -_ctype DATA -_cwait -_daylight_dll DATA -_daylight DATA == _daylight_dll -_dup -_dup2 -_ecvt -_endthread -_environ_dll DATA -_environ DATA == _environ_dll -_eof -_errno -_except_handler2 -_execl -_execle -_execlp -_execlpe -_execv -_execve -_execvp -_execvpe -_exit -_expand -_fcloseall -_fcvt -_fdopen -_fgetchar -_fgetwchar -_filbuf -_fileinfo_dll DATA -_fileinfo DATA == _fileinfo_dll -_filelength -_fileno -_findclose -_findfirst -_findnext -_finite -_flsbuf -_flushall -_fmode_dll DATA -_fmode DATA == _fmode_dll -_fpclass -_fpieee_flt -_fpreset DATA -_fputchar -_fputwchar -_fsopen -_fstat -_ftime -_ftol -_fullpath -_futime -_gcvt -_get_osfhandle -_getch -_getche -_getcwd -_getdcwd -_getdiskfree -_getdllprocaddr -_getdrive -_getdrives -_getpid -_getsystime -_getw -_global_unwind2 -_heapchk -_heapmin -_heapset -_heapwalk -_hypot -_initterm -_iob DATA -_isatty -_isctype -_ismbbalnum -_ismbbalpha -_ismbbgraph -_ismbbkalnum -_ismbbkana -_ismbbkpunct -_ismbblead -_ismbbprint -_ismbbpunct -_ismbbtrail -_ismbcalpha -_ismbcdigit -_ismbchira -_ismbckata -_ismbcl0 -_ismbcl1 -_ismbcl2 -_ismbclegal -_ismbclower -_ismbcprint -_ismbcspace -_ismbcsymbol -_ismbcupper -_ismbslead -_ismbstrail -_isnan -_itoa -_j0 -_j1 -_jn -_kbhit -_lfind -_loaddll -_local_unwind2 -_locking -_logb -_lrotl -_lrotr -_lsearch -_lseek -_ltoa -_makepath -_matherr -_mbbtombc -_mbbtype -_mbccpy -_mbcjistojms -_mbcjmstojis -_mbclen -_mbctohira -_mbctokata -_mbctolower -_mbctombb -_mbctoupper -_mbctype DATA -_mbsbtype -_mbscat -_mbschr -_mbscmp -_mbscpy -_mbscspn -_mbsdec -_mbsdup -_mbsicmp -_mbsinc -_mbslen -_mbslwr -_mbsnbcat -_mbsnbcmp -_mbsnbcnt -_mbsnbcpy -_mbsnbicmp -_mbsnbset -_mbsncat -_mbsnccnt -_mbsncmp -_mbsncpy -_mbsnextc -_mbsnicmp -_mbsninc -_mbsnset -_mbspbrk -_mbsrchr -_mbsrev -_mbsset -_mbsspn -_mbsspnp -_mbsstr -_mbstok -_mbstrlen -_mbsupr -_memccpy -_memicmp -_mkdir -_mktemp -_msize -_nextafter -_onexit -_open -_open_osfhandle -_osmajor_dll DATA -_osminor_dll DATA -_osmode_dll DATA -_osver_dll DATA -_osver DATA == _osver_dll -_osversion_dll DATA -_pclose -_pctype_dll DATA -_pctype DATA == _pctype_dll -_pgmptr_dll DATA -_pgmptr DATA == _pgmptr_dll -_pipe -_popen -_purecall -_putch -_putenv -_putw -_pwctype_dll DATA -_pwctype DATA == _pwctype_dll -_read -_rmdir -_rmtmp -_rotl -_rotr -_scalb -_searchenv -_seterrormode -_setjmp -_setmode -_setsystime -_sleep -_snprintf -_snwprintf -_sopen -_spawnl -_spawnle -_spawnlp -_spawnlpe -_spawnv -_spawnve -_spawnvp -_spawnvpe -_splitpath -_stat -_statusfp -_strcmpi -_strdate -_strdec -_strdup -_strerror -_stricmp -_stricoll -_strinc -_strlwr -strlwr == _strlwr -_strncnt -_strnextc -_strnicmp -_strninc -_strnset -_strrev -_strset -_strspnp -_strtime -_strupr -_swab -_sys_errlist DATA -_sys_nerr_dll DATA -_sys_nerr DATA == _sys_nerr_dll -_tell -_tempnam -_timezone_dll DATA -_timezone DATA == _timezone_dll -_tolower -_toupper -_tzname DATA -_tzset -_ultoa -_umask -_ungetch -_unlink -_unloaddll -_utime -_vsnprintf -_vsnwprintf -_wcsdup -_wcsicmp -_wcsicoll -_wcslwr -wcslwr == _wcslwr -_wcsnicmp -_wcsnset -_wcsrev -_wcsset -_wcsupr -_winmajor_dll DATA -_winmajor DATA == _winmajor_dll -_winminor_dll DATA -_winminor DATA == _winminor_dll -_winver_dll DATA -_winver DATA == _winver_dll -_write -_wtoi -_wtol -_y0 -_y1 -_yn -abort -abs -acos -asctime -asin DATA -atan DATA -atan2 DATA -atexit DATA -atof -atoi -atol -bsearch -calloc -ceil -clearerr -clock -cos DATA -cosh -ctime DATA -;_ctime32 = ctime -difftime -div -exit -exp DATA -fabs DATA -fclose -feof -ferror -fflush -fgetc -fgetpos -fgets -fgetwc -floor -fmod -fopen -fprintf -fputc -fputs -fputwc -fread -free -freopen -frexp -fscanf -fseek -fsetpos -ftell -fwprintf -fwrite -fwscanf -getc -getchar -getenv -gets -gmtime DATA -;_gmtime32 = gmtime -is_wctype -isalnum -isalpha -iscntrl -isdigit -isgraph -isleadbyte -islower -isprint -ispunct -isspace -isupper -iswalnum -iswalpha -iswascii -iswcntrl -iswctype -iswdigit -iswgraph -iswlower -iswprint -iswpunct -iswspace -iswupper -iswxdigit -isxdigit -labs -ldexp DATA -ldiv -localeconv -localtime DATA -;_localtime32 = localtime -log -log10 -longjmp -malloc -mblen -mbstowcs -mbtowc -memchr -memcmp -memcpy -memmove -memset -mktime DATA -;_mktime32 = mktime -modf -perror -pow -printf -putc -putchar -puts -qsort -raise -rand -realloc -remove -rename -rewind -scanf -setbuf -setlocale -setvbuf -signal -sin -sinh -sprintf -sqrt -srand -sscanf -strcat -strchr -strcmp -strcoll -strcpy -strcspn -strerror -strftime -strlen -strncat -strncmp -strncpy -strpbrk -strrchr -strspn -strstr -strtod -strtok -strtol -strtoul -strxfrm -swprintf -swscanf -system -tan -tanh -time DATA -;_time32 = time -tmpfile -tmpnam -tolower -toupper -towlower -towupper -ungetc -ungetwc -vfprintf -vfwprintf -vprintf -vsprintf -vswprintf -vwprintf -wcscat -wcschr -wcscmp -wcscoll -wcscpy -wcscspn -wcsftime -wcslen -wcsncat -wcsncmp -wcsncpy -wcspbrk -wcsrchr -wcsspn -wcsstr -wcstod -wcstok -wcstol -wcstombs -wcstoul -wcsxfrm -wctomb -wprintf -wscanf diff --git a/lib/libc/mingw/lib32/msvcp60.def b/lib/libc/mingw/lib32/msvcp60.def deleted file mode 100644 index f6a5dc93f3..0000000000 --- a/lib/libc/mingw/lib32/msvcp60.def +++ /dev/null @@ -1,71 +0,0 @@ -;Submitted by: Danny Smith -;Only the C functions are listed. Most of these have been commented out since -;I don't know what they are and can't test them. Some look like data exports -;for C++ math functions (E.G.: _Xbig). -LIBRARY MSVCP60.DLL -EXPORTS -;_Cosh -;_Denorm -;_Dnorm -;_Dscale -;_Dtest -;_Eps -;_Exp -;_FCosh -;_FDenorm -;_FDnorm -;_FDscale -;_FDtest -;_FEps -;_FExp -;_FInf -;_FNan -;_FRteps -;_FSinh -;_FSnan -;_FXbig -;_Getcoll -;_Getctype -;_Getcvt -;_Hugeval -;_Inf -;_LCosh -;_LDenorm -;_LDscale -;_LDtest -;_LEps -;_LExp -;_LInf -;_LNan -;_LPoly -;_LRteps -;_LSinh -;_LSnan -;_LXbig -;_Mbrtowc -;_Nan -;_Poly -;_Rteps -;_Sinh -;_Snan -;_Stod -;_Stof -;_Stold -;_Strcoll -;_Strxfrm -;_Tolower -;_Toupper -;_Wcrtomb -;__Wcrtomb_lk -;_Xbig - -btowc -mbrlen -mbrtowc -mbsrtowcs -towctrans -wcrtomb -wcsrtombs -wctob -wctrans -wctype \ No newline at end of file diff --git a/lib/libc/mingw/libsrc/activeds-uuid.c b/lib/libc/mingw/libsrc/activeds-uuid.c new file mode 100644 index 0000000000..3417491827 --- /dev/null +++ b/lib/libc/mingw/libsrc/activeds-uuid.c @@ -0,0 +1,106 @@ +#define INITGUID +#include + +DEFINE_GUID(CLSID_AccessControlEntry, 0xB75AC000, 0x9BDD, 0x11D0, 0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(CLSID_AccessControlList, 0xB85EA052, 0x9BDD, 0x11D0, 0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(CLSID_ADsDSOObject, 0x549365D0, 0xEC26, 0x11CF, 0x83, 0x10, 0x00, 0xAA, 0x00, 0xB5, 0x05, 0xDB); +DEFINE_GUID(CLSID_ADsSecurityUtility, 0xF270C64A, 0xFFB8, 0x4AE4, 0x85, 0xFE, 0x3A, 0x75, 0xE5, 0x34, 0x79, 0x66); +DEFINE_GUID(CLSID_ADSystemInfo, 0x50B6327F, 0xAFD1, 0x11D2, 0x9C, 0xB9, 0x00, 0x00, 0xF8, 0x7A, 0x36, 0x9E); +DEFINE_GUID(CLSID_BackLink, 0xFCBF906F, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_CaseIgnoreList, 0x15F88A55, 0x4680, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_DNWithBinary, 0x7E99C0A3, 0xF935, 0x11D2, 0xBA, 0x96, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1); +DEFINE_GUID(CLSID_DNWithString, 0x334857CC, 0xF934, 0x11D2, 0xBA, 0x96, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1); +DEFINE_GUID(CLSID_Email, 0x8F92A857, 0x478E, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_FaxNumber, 0xA5062215, 0x4681, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_Hold, 0xB3AD3E13, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_LDAPConnectionObject, 0x7DA2A9C4, 0x0C46, 0x43BD, 0xB0, 0x4E, 0xD9, 0x2B, 0x1B, 0xE2, 0x7C, 0x45); +DEFINE_GUID(CLSID_LDAPObject, 0x05709878, 0x5195, 0x466C, 0x9E, 0x64, 0x48, 0x7C, 0xE3, 0xCA, 0x20, 0xBF); +DEFINE_GUID(CLSID_LargeInteger, 0x927971F5, 0x0939, 0x11D1, 0x8B, 0xE1, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(CLSID_NameTranslate, 0x274FAE1F, 0x3626, 0x11D1, 0xA3, 0xA4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_NetAddress, 0xB0B71247, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_OctetList, 0x1241400F, 0x4680, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_Path, 0xB2538919, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_Pathname, 0x080D0D78, 0xF421, 0x11D0, 0xA3, 0x6E, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_PostalAddress, 0x0A75AFCD, 0x4680, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_PropertyEntry, 0x72D3EDC2, 0xA4C4, 0x11D0, 0x85, 0x33, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(CLSID_PropertyValue, 0x7B9E38B0, 0xA97C, 0x11D0, 0x85, 0x34, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(CLSID_ReplicaPointer, 0xF5D1BADF, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_SecurityDescriptor, 0xB958F73C, 0x9BDD, 0x11D0, 0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(CLSID_Timestamp, 0xB2BED2EB, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_TypedName, 0xB33143CB, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(CLSID_UmiLDAPQueryObject, 0xCD5D4D76, 0xA818, 0x4F95, 0xB9, 0x58, 0x79, 0x70, 0xFD, 0x94, 0x12, 0xCA); +DEFINE_GUID(CLSID_WinNTConnectionObject, 0x7992C6EB, 0xD142, 0x4332, 0x83, 0x1E, 0x31, 0x54, 0xC5, 0x0A, 0x83, 0x16); +DEFINE_GUID(CLSID_WinNTObject, 0xB8324185, 0x4050, 0x4220, 0x98, 0x0A, 0xAB, 0x14, 0x62, 0x3E, 0x06, 0x3A); +DEFINE_GUID(CLSID_WinNTSystemInfo, 0x66182EC4, 0xAFD1, 0x11D2, 0x9C, 0xB9, 0x00, 0x00, 0xF8, 0x7A, 0x36, 0x9E); +DEFINE_GUID(DBGUID_LDAPDialect, 0xEFF65380, 0x9C98, 0x11CF, 0xB9, 0x63, 0x00, 0xAA, 0x00, 0x44, 0x77, 0x3D); +DEFINE_GUID(DBPROPSET_ADSIBIND, 0x6DA66DC8, 0xB7E8, 0x11D2, 0x9D, 0x60, 0x00, 0xC0, 0x4F, 0x68, 0x93, 0x45); +DEFINE_GUID(DBPROPSET_ADSISEARCH, 0xCFCFC928, 0x9AA2, 0x11D0, 0xA7, 0x9A, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8); +DEFINE_GUID(IID_IADs, 0xFD8256D0, 0xFD15, 0x11CE, 0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); +DEFINE_GUID(IID_IADsAccessControlEntry, 0xB4F3A14C, 0x9BDD, 0x11D0, 0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsAccessControlList, 0xB7EE91CC, 0x9BDD, 0x11D0, 0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsAcl, 0x8452D3AB, 0x0869, 0x11D1, 0xA3, 0x77, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsADSystemInfo, 0x5bb11929, 0xafd1, 0x11d2, 0x9c, 0xb9, 0x00, 0x00, 0xf8, 0x7a, 0x36, 0x9e); +DEFINE_GUID(IID_IADsAggregatee, 0x1346CE8C, 0x9039, 0x11D0, 0x85, 0x28, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsAggregator, 0x52DB5FB0, 0x941F, 0x11D0, 0x85, 0x29, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsBackLink, 0xFD1302BD, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsCaseIgnoreList, 0x7B66B533, 0x4680, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsClass, 0xC8F93DD0, 0x4AE0, 0x11CF, 0x9E, 0x73, 0x00, 0xAA, 0x00, 0x4A, 0x56, 0x91); +DEFINE_GUID(IID_IADsCollection, 0x72B945E0, 0x253B, 0x11CF, 0xA9, 0x88, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsComputer, 0xEFE3CC70, 0x1D9F, 0x11CF, 0xB1, 0xF3, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); +DEFINE_GUID(IID_IADsComputerOperations, 0xEF497680, 0x1D9F, 0x11CF, 0xB1, 0xF3, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); +DEFINE_GUID(IID_IADsContainer, 0x001677D0, 0xFD16, 0x11CE, 0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); +DEFINE_GUID(IID_IADsDeleteOps, 0xB2BD0902, 0x8878, 0x11D1, 0x8C, 0x21, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsDNWithBinary, 0x7E99C0A2, 0xF935, 0x11D2, 0xBA, 0x96, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1); +DEFINE_GUID(IID_IADsDNWithString, 0x370DF02E, 0xF934, 0x11D2, 0xBA, 0x96, 0x00, 0xC0, 0x4F, 0xB6, 0xD0, 0xD1); +DEFINE_GUID(IID_IADsDomain, 0x00E4C220, 0xFD16, 0x11CE, 0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); +DEFINE_GUID(IID_IADsEmail, 0x97AF011A, 0x478E, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsExtension, 0x3D35553C, 0xD2B0, 0x11D1, 0xB1, 0x7B, 0x00, 0x00, 0xF8, 0x75, 0x93, 0xA0); +DEFINE_GUID(IID_IADsFaxNumber, 0xA910DEA9, 0x4680, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsFileService, 0xA89D1900, 0x31CA, 0x11CF, 0xA9, 0x8A, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsFileServiceOperations, 0xA02DED10, 0x31CA, 0x11CF, 0xA9, 0x8A, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsFileShare, 0xEB6DCAF0, 0x4B83, 0x11CF, 0xA9, 0x95, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsGroup, 0x27636B00, 0x410F, 0x11CF, 0xB1, 0xFF, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); +DEFINE_GUID(IID_IADsHold, 0xB3EB3B37, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsLargeInteger, 0x9068270B, 0x0939, 0x11D1, 0x8B, 0xE1, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsLocality, 0xA05E03A2, 0xEFFE, 0x11CF, 0x8A, 0xBC, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsMembers, 0x451A0030, 0x72EC, 0x11CF, 0xB0, 0x3B, 0x00, 0xAA, 0x00, 0x6E, 0x09, 0x75); +DEFINE_GUID(IID_IADsNamespaces, 0x28B96BA0, 0xB330, 0x11CF, 0xA9, 0xAD, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsNameTranslate, 0xB1B272A3, 0x3625, 0x11D1, 0xA3, 0xA4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsNetAddress, 0xB21A50A9, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsO, 0xA1CD2DC6, 0xEFFE, 0x11CF, 0x8A, 0xBC, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsObjectOptions, 0x46F14FDA, 0x232B, 0x11D1, 0xA8, 0x08, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8); +DEFINE_GUID(IID_IADsOctetList, 0x7B28B80F, 0x4680, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsOpenDSObject, 0xDDF2891E, 0x0F9C, 0x11D0, 0x8A, 0xD4, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsOU, 0xA2F733B8, 0xEFFE, 0x11CF, 0x8A, 0xBC, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsPath, 0xB287FCD5, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsPathname, 0xD592AED4, 0xF420, 0x11D0, 0xA3, 0x6E, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsPostalAddress, 0x7ADECF29, 0x4680, 0x11D1, 0xA3, 0xB4, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsPrintJob, 0x32FB6780, 0x1ED0, 0x11CF, 0xA9, 0x88, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsPrintJobOperations, 0x9A52DB30, 0x1ECF, 0x11CF, 0xA9, 0x88, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsPrintQueue, 0xB15160D0, 0x1226, 0x11CF, 0xA9, 0x85, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsPrintQueueOperations, 0x124BE5C0, 0x156E, 0x11CF, 0xA9, 0x86, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsProperty, 0xC8F93DD3, 0x4AE0, 0x11CF, 0x9E, 0x73, 0x00, 0xAA, 0x00, 0x4A, 0x56, 0x91); +DEFINE_GUID(IID_IADsPropertyEntry, 0x05792C8E, 0x941F, 0x11D0, 0x85, 0x29, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsPropertyList, 0xC6F602B6, 0x8F69, 0x11D0, 0x85, 0x28, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsPropertyValue, 0x79FA9AD0, 0xA97C, 0x11D0, 0x85, 0x34, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsPropertyValue2, 0x306E831C, 0x5BC7, 0x11D1, 0xA3, 0xB8, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsReplicaPointer, 0xF60FB803, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsResource, 0x34A05B20, 0x4AAB, 0x11CF, 0xAE, 0x2C, 0x00, 0xAA, 0x00, 0x6E, 0xBF, 0xB9); +DEFINE_GUID(IID_IADsSecurityDescriptor, 0xB8C787CA, 0x9BDD, 0x11D0, 0x85, 0x2C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IADsSecurityUtility, 0xA63251B2, 0x5F21, 0x474B, 0xAB, 0x52, 0x4A, 0x8E, 0xFA, 0xD1, 0x08, 0x95); +DEFINE_GUID(IID_IADsSearch, 0xC69F7780, 0x4008, 0x11D0, 0xB9, 0x4C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8); +DEFINE_GUID(IID_IADsService, 0x68AF66E0, 0x31CA, 0x11CF, 0xA9, 0x8A, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsServiceOperations, 0x5D7B33F0, 0x31CA, 0x11CF, 0xA9, 0x8A, 0x00, 0xAA, 0x00, 0x6B, 0xC1, 0x49); +DEFINE_GUID(IID_IADsSession, 0x398B7DA0, 0x4AAB, 0x11CF, 0xAE, 0x2C, 0x00, 0xAA, 0x00, 0x6E, 0xBF, 0xB9); +DEFINE_GUID(IID_IADsSyntax, 0xC8F93DD2, 0x4AE0, 0x11CF, 0x9E, 0x73, 0x00, 0xAA, 0x00, 0x4A, 0x56, 0x91); +DEFINE_GUID(IID_IADsTimestamp, 0xB2F5A901, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsTypedName, 0xB371A349, 0x4080, 0x11D1, 0xA3, 0xAC, 0x00, 0xC0, 0x4F, 0xB9, 0x50, 0xDC); +DEFINE_GUID(IID_IADsUser, 0x3E37E320, 0x17E2, 0x11CF, 0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); +DEFINE_GUID(IID_IADsWinNTSystemInfo, 0x6C6D65DC, 0xAFD1, 0x11D2, 0x9C, 0xB9, 0x00, 0x00, 0xF8, 0x7A, 0x36, 0x9E); +DEFINE_GUID(IID_IDirectoryObject, 0xE798DE2C, 0x22E4, 0x11D0, 0x84, 0xFE, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IDirectorySchemaMgmt, 0x75DB3B9C, 0xA4D8, 0x11D0, 0xA7, 0x9C, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8); +DEFINE_GUID(IID_IDirectorySearch, 0x109BA8EC, 0x92F0, 0x11D0, 0xA7, 0x90, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0xA8); +DEFINE_GUID(IID_IPrivateDispatch, 0x86AB4BBE, 0x65F6, 0x11D1, 0x8C, 0x13, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(IID_IPrivateUnknown, 0x89126BAB, 0x6EAD, 0x11D1, 0x8C, 0x18, 0x00, 0xC0, 0x4F, 0xD8, 0xD5, 0x03); +DEFINE_GUID(LIBID_ActiveDs, 0x97D25DB0, 0x0363, 0x11CF, 0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); +DEFINE_GUID(LIBID_ADs, 0x97D25DB0, 0x0363, 0x11CF, 0xAB, 0xC4, 0x02, 0x60, 0x8C, 0x9E, 0x75, 0x53); diff --git a/lib/libc/mingw/libsrc/amstrmid.c b/lib/libc/mingw/libsrc/amstrmid.c new file mode 100644 index 0000000000..f013bd0852 --- /dev/null +++ b/lib/libc/mingw/libsrc/amstrmid.c @@ -0,0 +1,8 @@ +#include +#include +#include + +#include +#include +#include +#include diff --git a/lib/libc/mingw/libsrc/bits.c b/lib/libc/mingw/libsrc/bits.c new file mode 100644 index 0000000000..2858d15963 --- /dev/null +++ b/lib/libc/mingw/libsrc/bits.c @@ -0,0 +1,17 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +/* crt/libsrc/bits.c */ +/* Generate GUIDs for Background Intelligent Transfer Service (BITS) interfaces */ + +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/lib/libc/mingw/libsrc/ctxtcall-uuid.c b/lib/libc/mingw/libsrc/ctxtcall-uuid.c new file mode 100644 index 0000000000..0274b4868e --- /dev/null +++ b/lib/libc/mingw/libsrc/ctxtcall-uuid.c @@ -0,0 +1,18 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#define INITGUID +#include + +// These IIDs are used for IContextCallback::ContextCallback (ctxtcall.h) +// according to various sources. + +DEFINE_GUID(IID_IContextCallback,0x000001da,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(IID_ICallbackWithNoReentrancyToApplicationSTA,0x0a299774,0x3e4e,0xfc42,0x1d,0x9d,0x72,0xce,0xe1,0x05,0xca,0x57); +DEFINE_GUID(IID_IEnterActivityWithNoLock,0xd7174f82,0x36b8,0x4aa8,0x80,0x0a,0xe9,0x63,0xab,0x2d,0xfa,0xb9); + +// This CLSID is used to create IContextCallback. +DEFINE_GUID(CLSID_ContextSwitcher,0x0000034e,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); diff --git a/lib/libc/mingw/libsrc/dinput_joy.c b/lib/libc/mingw/libsrc/dinput_joy.c new file mode 100644 index 0000000000..e2a6f9fce0 --- /dev/null +++ b/lib/libc/mingw/libsrc/dinput_joy.c @@ -0,0 +1,63 @@ +/* + + dinput_joy.c - DirectInput Joystick DATAFORMAT + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#include "dinput_private.h" + +static DIOBJECTDATAFORMAT ATTRIBUTE_TEXT_SECTION c_rgodfDIJoy[] = +{ + {&GUID_XAxis,0x0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_YAxis,0x4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_ZAxis,0x8,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_RxAxis,0xc,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_RyAxis,0x10,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_RzAxis,0x14,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_Slider,0x18,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_Slider,0x1c,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_POV,0x20,DIDFT_POV|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {&GUID_POV,0x24,DIDFT_POV|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {&GUID_POV,0x28,DIDFT_POV|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {&GUID_POV,0x2c,DIDFT_POV|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x30,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x31,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x32,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x33,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x34,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x35,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x36,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x37,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x38,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x39,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x40,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x41,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x42,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x43,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x44,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x45,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x46,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x47,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x48,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x49,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0} +}; + +const DIDATAFORMAT c_dfDIJoystick = {sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_ABSAXIS,80,sizeof(c_rgodfDIJoy)/sizeof(c_rgodfDIJoy[0]),c_rgodfDIJoy}; diff --git a/lib/libc/mingw/libsrc/dinput_joy2.c b/lib/libc/mingw/libsrc/dinput_joy2.c new file mode 100644 index 0000000000..3c27abd331 --- /dev/null +++ b/lib/libc/mingw/libsrc/dinput_joy2.c @@ -0,0 +1,183 @@ +/* + + dinput_joy2.c - DirectInput Joystick 2 DATAFORMAT + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#include "dinput_private.h" + +static DIOBJECTDATAFORMAT ATTRIBUTE_TEXT_SECTION c_rgodfDIJoy2[] = +{ + {&GUID_XAxis,0x0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_YAxis,0x4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_ZAxis,0x8,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_RxAxis,0xc,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_RyAxis,0x10,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_RzAxis,0x14,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_Slider,0x18,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_Slider,0x1c,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTPOSITION}, + {&GUID_POV,0x20,DIDFT_POV|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {&GUID_POV,0x24,DIDFT_POV|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {&GUID_POV,0x28,DIDFT_POV|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {&GUID_POV,0x2c,DIDFT_POV|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x30,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x31,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x32,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x33,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x34,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x35,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x36,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x37,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x38,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x39,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x3f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x40,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x41,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x42,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x43,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x44,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x45,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x46,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x47,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x48,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x49,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x4f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x50,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x51,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x52,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x53,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x54,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x55,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x56,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x57,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x58,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x59,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x5a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x5b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x5c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x5d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x5e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x5f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x60,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x61,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x62,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x63,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x64,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x65,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x66,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x67,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x68,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x69,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x6a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x6b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x6c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x6d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x6e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x6f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x70,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x71,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x72,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x73,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x74,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x75,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x76,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x77,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x78,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x79,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x7a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x7b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x7c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x7d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x7e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x7f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x80,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x81,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x82,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x83,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x84,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x85,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x86,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x87,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x88,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x89,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x8a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x8b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x8c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x8d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x8e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x8f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x90,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x91,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x92,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x93,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x94,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x95,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x96,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x97,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x98,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x99,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x9a,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x9b,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x9c,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x9d,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x9e,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x9f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa0,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa1,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa2,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa3,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa4,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa5,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa6,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa7,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa8,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xa9,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xaa,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xab,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xac,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xad,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xae,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xaf,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {&GUID_XAxis,0xb0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTVELOCITY}, + {&GUID_YAxis,0xb4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTVELOCITY}, + {&GUID_ZAxis,0xb8,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTVELOCITY}, + {&GUID_RxAxis,0xbc,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTVELOCITY}, + {&GUID_RyAxis,0xc0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTVELOCITY}, + {&GUID_RzAxis,0xc4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTVELOCITY}, + {&GUID_Slider,0x18,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTVELOCITY}, + {&GUID_Slider,0x1c,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTVELOCITY}, + {&GUID_XAxis,0xd0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTACCEL}, + {&GUID_YAxis,0xd4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTACCEL}, + {&GUID_ZAxis,0xd8,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTACCEL}, + {&GUID_RxAxis,0xdc,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTACCEL}, + {&GUID_RyAxis,0xe0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTACCEL}, + {&GUID_RzAxis,0xe4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTACCEL}, + {&GUID_Slider,0x18,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTACCEL}, + {&GUID_Slider,0x1c,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTACCEL}, + {&GUID_XAxis,0xf0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTFORCE}, + {&GUID_YAxis,0xf4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTFORCE}, + {&GUID_ZAxis,0xf8,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTFORCE}, + {&GUID_RxAxis,0xfc,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTFORCE}, + {&GUID_RyAxis,0x100,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTFORCE}, + {&GUID_RzAxis,0x104,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTFORCE}, + {&GUID_Slider,0x18,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTFORCE}, + {&GUID_Slider,0x1c,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,DIDOI_ASPECTFORCE} +}; + +const DIDATAFORMAT c_dfDIJoystick2 = {sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_ABSAXIS,272,sizeof(c_rgodfDIJoy2)/sizeof(c_rgodfDIJoy2[0]),c_rgodfDIJoy2}; diff --git a/lib/libc/mingw/libsrc/dinput_kbd.c b/lib/libc/mingw/libsrc/dinput_kbd.c new file mode 100644 index 0000000000..88cac861c4 --- /dev/null +++ b/lib/libc/mingw/libsrc/dinput_kbd.c @@ -0,0 +1,275 @@ +/* + + dinput_kbd.c - DirectInput Keyboard DATAFORMAT + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#include "dinput_private.h" + +static DIOBJECTDATAFORMAT ATTRIBUTE_TEXT_SECTION c_rgodfDIKeyboard[] = +{ + {&GUID_Key,0x0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x0)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x10,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x10)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x11,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x11)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x12,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x12)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x13,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x13)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x14,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x14)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x15,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x15)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x16,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x16)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x17,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x17)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x18,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x18)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x19,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x19)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x1a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x1b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x1c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x1d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x1e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x1f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x20,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x20)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x21,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x21)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x22,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x22)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x23,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x23)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x24,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x24)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x25,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x25)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x26,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x26)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x27,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x27)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x28,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x28)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x29,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x29)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x2a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x2b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x2c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x2d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x2e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x2f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x30,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x30)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x31,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x31)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x32,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x32)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x33,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x33)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x34,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x34)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x35,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x35)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x36,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x36)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x37,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x37)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x38,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x38)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x39,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x39)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x3a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x3b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x3c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x3d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x3e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x3f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x40,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x40)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x41,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x41)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x42,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x42)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x43,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x43)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x44,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x44)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x45,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x45)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x46,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x46)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x47,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x47)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x48,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x48)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x49,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x49)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x4a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x4b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x4c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x4d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x4e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x4f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x50,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x50)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x51,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x51)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x52,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x52)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x53,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x53)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x54,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x54)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x55,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x55)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x56,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x56)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x57,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x57)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x58,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x58)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x59,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x59)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x5a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x5b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x5c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x5d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x5e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x5f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x60,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x60)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x61,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x61)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x62,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x62)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x63,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x63)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x64,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x64)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x65,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x65)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x66,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x66)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x67,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x67)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x68,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x68)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x69,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x69)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x6a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x6b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x6c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x6d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x6e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x6f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x70,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x70)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x71,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x71)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x72,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x72)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x73,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x73)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x74,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x74)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x75,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x75)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x76,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x76)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x77,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x77)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x78,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x78)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x79,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x79)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x7a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x7b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x7c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x7d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x7e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x7f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x80,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x80)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x81,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x81)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x82,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x82)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x83,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x83)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x84,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x84)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x85,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x85)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x86,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x86)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x87,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x87)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x88,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x88)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x89,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x89)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x8a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x8b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x8c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x8d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x8e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x8f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x90,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x90)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x91,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x91)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x92,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x92)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x93,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x93)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x94,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x94)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x95,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x95)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x96,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x96)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x97,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x97)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x98,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x98)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x99,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x99)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x9a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9a)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x9b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9b)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x9c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9c)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x9d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9d)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x9e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9e)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0x9f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9f)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa0)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa1)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa2)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa3)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa4)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa5)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa6)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa7)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa8)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xa9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa9)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xaa,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xaa)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xab,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xab)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xac,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xac)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xad,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xad)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xae,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xae)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xaf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xaf)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb0)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb1)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb2)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb3)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb4)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb5)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb6)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb7)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb8)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xb9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb9)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xba,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xba)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xbb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbb)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xbc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbc)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xbd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbd)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xbe,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbe)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xbf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbf)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc0)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc1)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc2)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc3)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc4)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc5)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc6)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc7)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc8)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xc9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc9)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xca,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xca)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xcb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xcb)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xcc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xcc)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xcd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xcd)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xce,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xce)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xcf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xcf)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd0)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd1)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd2)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd3)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd4)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd5)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd6)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd7)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd8)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xd9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd9)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xda,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xda)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xdb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xdb)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xdc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xdc)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xdd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xdd)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xde,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xde)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xdf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xdf)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe0)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe1)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe2)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe3)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe4)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe5)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe6)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe7)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe8)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xe9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe9)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xea,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xea)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xeb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xeb)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xec,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xec)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xed,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xed)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xee,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xee)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xef,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xef)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf0)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf1)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf2)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf3)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf4)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf5)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf6)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf7)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf8)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xf9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf9)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xfa,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfa)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xfb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfb)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xfc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfc)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xfd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfd)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xfe,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfe)|DIDFT_OPTIONAL,0x0}, + {&GUID_Key,0xff,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xff)|DIDFT_OPTIONAL,0x0} +}; + +const DIDATAFORMAT c_dfDIKeyboard = {sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,256,sizeof(c_rgodfDIKeyboard)/sizeof(c_rgodfDIKeyboard[0]),c_rgodfDIKeyboard}; diff --git a/lib/libc/mingw/libsrc/dinput_mouse.c b/lib/libc/mingw/libsrc/dinput_mouse.c new file mode 100644 index 0000000000..21e3e03806 --- /dev/null +++ b/lib/libc/mingw/libsrc/dinput_mouse.c @@ -0,0 +1,26 @@ +/* + + dinput_mouse.c - DirectInput Mouse DATAFORMAT + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#include "dinput_private.h" + +static DIOBJECTDATAFORMAT ATTRIBUTE_TEXT_SECTION c_rgodfDIMouse[] = +{ + {&GUID_XAxis,0x0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE,0x0}, + {&GUID_YAxis,0x4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE,0x0}, + {&GUID_ZAxis,0x8,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xc,DIDFT_BUTTON|DIDFT_ANYINSTANCE,0x0}, + {NULL,0xd,DIDFT_BUTTON|DIDFT_ANYINSTANCE,0x0}, + {NULL,0xe,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xf,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0} +}; + +const DIDATAFORMAT c_dfDIMouse = {sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,16,sizeof(c_rgodfDIMouse)/sizeof(c_rgodfDIMouse[0]),c_rgodfDIMouse}; diff --git a/lib/libc/mingw/libsrc/dinput_mouse2.c b/lib/libc/mingw/libsrc/dinput_mouse2.c new file mode 100644 index 0000000000..90f46c01bf --- /dev/null +++ b/lib/libc/mingw/libsrc/dinput_mouse2.c @@ -0,0 +1,30 @@ +/* + + dinput_mouse2.c - DirectInput Mouse DATAFORMAT + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#include "dinput_private.h" + +static DIOBJECTDATAFORMAT ATTRIBUTE_TEXT_SECTION c_rgodfDIMouse2[] = +{ + {&GUID_XAxis,0x0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE,0x0}, + {&GUID_YAxis,0x4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE,0x0}, + {&GUID_ZAxis,0x8,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xc,DIDFT_BUTTON|DIDFT_ANYINSTANCE,0x0}, + {NULL,0xd,DIDFT_BUTTON|DIDFT_ANYINSTANCE,0x0}, + {NULL,0xe,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0xf,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x10,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x11,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x12,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}, + {NULL,0x13,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0} +}; + +const DIDATAFORMAT c_dfDIMouse2 = {sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,20,sizeof(c_rgodfDIMouse2)/sizeof(c_rgodfDIMouse2[0]),c_rgodfDIMouse2}; diff --git a/lib/libc/mingw/libsrc/dinput_private.h b/lib/libc/mingw/libsrc/dinput_private.h new file mode 100644 index 0000000000..e1629134ac --- /dev/null +++ b/lib/libc/mingw/libsrc/dinput_private.h @@ -0,0 +1,81 @@ +/* + + directx/dinput_private.h - DirectInput DATAFORMATs Definitions + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#ifndef _DINPUT_PRIVATE_H +#define _DINPUT_PRIVATE_H + +#include + +#define DIDOI_FFACTUATOR 0x00000001 +#define DIDOI_FFEFFECTTRIGGER 0x00000002 +#define DIDOI_POLLED 0x00008000 +#define DIDOI_ASPECTPOSITION 0x00000100 +#define DIDOI_ASPECTVELOCITY 0x00000200 +#define DIDOI_ASPECTACCEL 0x00000300 +#define DIDOI_ASPECTFORCE 0x00000400 +#define DIDOI_ASPECTMASK 0x00000F00 +#define DIDOI_GUIDISUSAGE 0x00010000 +#define DIDF_ABSAXIS 0x00000001 +#define DIDF_RELAXIS 0x00000002 +#define DIDFT_RELAXIS 0x00000001 +#define DIDFT_ABSAXIS 0x00000002 +#define DIDFT_AXIS 0x00000003 +#define DIDFT_PSHBUTTON 0x00000004 +#define DIDFT_TGLBUTTON 0x00000008 +#define DIDFT_BUTTON 0x0000000C +#define DIDFT_POV 0x00000010 +#define DIDFT_COLLECTION 0x00000040 +#define DIDFT_NODATA 0x00000080 +#define DIDFT_ANYINSTANCE 0x00FFFF00 +#define DIDFT_FFACTUATOR 0x01000000 +#define DIDFT_FFEFFECTTRIGGER 0x02000000 +#define DIDFT_OUTPUT 0x10000000 +#define DIDFT_VENDORDEFINED 0x04000000 +#define DIDFT_ALIAS 0x08000000 +#define DIDFT_OPTIONAL 0x80000000 +#define DIDFT_MAKEINSTANCE(n) ((WORD)(n) << 8) + +typedef struct _DIOBJECTDATAFORMAT { + const GUID *pguid; + DWORD dwOfs; + DWORD dwType; + DWORD dwFlags; +} DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT; + +typedef struct _DIDATAFORMAT { + DWORD dwSize; + DWORD dwObjSize; + DWORD dwFlags; + DWORD dwDataSize; + DWORD dwNumObjs; + LPDIOBJECTDATAFORMAT rgodf; +} DIDATAFORMAT, *LPDIDATAFORMAT; + +extern GUID GUID_XAxis; +extern GUID GUID_YAxis; +extern GUID GUID_ZAxis; +extern GUID GUID_RxAxis; +extern GUID GUID_RyAxis; +extern GUID GUID_RzAxis; +extern GUID GUID_Slider; +extern GUID GUID_Key; +extern GUID GUID_POV; + +#if defined (__WATCOMC__) +#define ATTRIBUTE_TEXT_SECTION __based( __segname( "_CODE" ) ) +#elif defined (__GNUC__) +#define ATTRIBUTE_TEXT_SECTION __attribute__ ((section(".text"))) +#else +#define ATTRIBUTE_TEXT_SECTION +#endif + +#endif diff --git a/lib/libc/mingw/libsrc/dloadhelper.c b/lib/libc/mingw/libsrc/dloadhelper.c new file mode 100644 index 0000000000..85c1a11301 --- /dev/null +++ b/lib/libc/mingw/libsrc/dloadhelper.c @@ -0,0 +1,62 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + +/* XXX NTSTATUS is supposed to be a LONG, but there are a bunch of STATUS_ + * constants in winnt.h defined as ((DWORD)0x...), including + * STATUS_DLL_NOT_FOUND which we need, so using DWORD here to silence a warning + */ +typedef DWORD NTSTATUS; + +extern IMAGE_DOS_HEADER __ImageBase; + +/* this typedef is missing from the Windows SDK header, but is present in + * Wine's version. */ +typedef FARPROC (WINAPI *PDELAYLOAD_FAILURE_SYSTEM_ROUTINE)(LPCSTR pszDllName, LPCSTR pszProcName); + +/* these functions aren't in any Windows SDK header, but are documented at + * https://docs.microsoft.com/en-us/windows/win32/devnotes/delay-loaded-dlls */ +WINBASEAPI FARPROC WINAPI DelayLoadFailureHook(LPCSTR pszDllName, LPCSTR pszProcName); + +WINBASEAPI PVOID WINAPI ResolveDelayLoadedAPI( + PVOID ParentModuleBase, + PCIMAGE_DELAYLOAD_DESCRIPTOR DelayloadDescriptor, + PDELAYLOAD_FAILURE_DLL_CALLBACK FailureDllHook, + PDELAYLOAD_FAILURE_SYSTEM_ROUTINE FailureSystemHook, + PIMAGE_THUNK_DATA ThunkAddress, + ULONG Flags); + +WINBASEAPI NTSTATUS WINAPI ResolveDelayLoadsFromDll( + PVOID ParentBase, + LPCSTR TargetDllName, + ULONG Flags); + +/* These functions are defined here, part of the delayimp API */ +PVOID WINAPI __delayLoadHelper2( + PCIMAGE_DELAYLOAD_DESCRIPTOR DelayloadDescriptor, + PIMAGE_THUNK_DATA ThunkAddress); + +HRESULT WINAPI __HrLoadAllImportsForDll(LPCSTR szDll); + +PVOID WINAPI __delayLoadHelper2( + PCIMAGE_DELAYLOAD_DESCRIPTOR DelayloadDescriptor, + PIMAGE_THUNK_DATA ThunkAddress) +{ + return ResolveDelayLoadedAPI(&__ImageBase, DelayloadDescriptor, __pfnDliFailureHook2, DelayLoadFailureHook, ThunkAddress, 0); +} + +HRESULT WINAPI __HrLoadAllImportsForDll(LPCSTR szDll) +{ + NTSTATUS status = ResolveDelayLoadsFromDll(&__ImageBase, szDll, 0); + if (status == STATUS_DLL_NOT_FOUND) + return HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND); + else + return S_OK; +} diff --git a/lib/libc/mingw/libsrc/dmoguids.c b/lib/libc/mingw/libsrc/dmoguids.c new file mode 100644 index 0000000000..c9606b8a0d --- /dev/null +++ b/lib/libc/mingw/libsrc/dmoguids.c @@ -0,0 +1,40 @@ +/* + + dmoguids.c - DirectMedia Objects GUIDs + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#if defined(__LCC__) || defined(__GNUC__) +#define INITGUID 1 +#include +#else +#include +#endif + +DEFINE_GUID(CLSID_DMOFilterCategory,0xbcd5796c,0xbd52,0x4d30,0xab,0x76,0x70,0xf9,0x75,0xb8,0x91,0x99); +DEFINE_GUID(CLSID_DMOWrapperFilter,0x94297043,0xbd82,0x4dfd,0xb0,0xde,0x81,0x77,0x73,0x9c,0x6d,0x20); +DEFINE_GUID(DMOCATEGORY_ACOUSTIC_ECHO_CANCEL,0xbf963d80l,0xc559,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(DMOCATEGORY_AGC,0xe88c9ba0l,0xc557,0x11d0,0x8a,0x2b,0x0,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(DMOCATEGORY_AUDIO_CAPTURE_EFFECT,0xf665aaba,0x3e09,0x4920,0xaa,0x5f,0x21,0x98,0x11,0x14,0x8f,0x09); +DEFINE_GUID(DMOCATEGORY_AUDIO_DECODER,0x57f2db8b,0xe6bb,0x4513,0x9d,0x43,0xdc,0xd2,0xa6,0x59,0x31,0x25); +DEFINE_GUID(DMOCATEGORY_AUDIO_EFFECT,0xf3602b3f,0x0592,0x48df,0xa4,0xcd,0x67,0x47,0x21,0xe7,0xeb,0xeb); +DEFINE_GUID(DMOCATEGORY_AUDIO_ENCODER,0x33d9a761,0x90c8,0x11d0,0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86); +DEFINE_GUID(DMOCATEGORY_AUDIO_NOISE_SUPPRESS,0xe07f903f,0x62fd,0x4e60,0x8c,0xdd,0xde,0xa7,0x23,0x66,0x65,0xb5); +DEFINE_GUID(DMOCATEGORY_VIDEO_DECODER,0x4a69b442,0x28be,0x4991,0x96,0x9c,0xb5,0x00,0xad,0xf5,0xd8,0xa8); +DEFINE_GUID(DMOCATEGORY_VIDEO_EFFECT,0xd990ee14,0x776c,0x4723,0xbe,0x46,0x3d,0xa2,0xf5,0x6f,0x10,0xb9); +DEFINE_GUID(DMOCATEGORY_VIDEO_ENCODER,0x33d9a760,0x90c8,0x11d0,0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86); +DEFINE_GUID(IID_IDMOWrapperFilter,0x52d6f586,0x9f0f,0x4824,0x8f,0xc8,0xe3,0x2c,0xa0,0x49,0x30,0xc2); +DEFINE_GUID(IID_IMediaParamInfo,0x6d6cbb60,0xa223,0x44aa,0x84,0x2f,0xa2,0xf0,0x67,0x50,0xbe,0x6d); +DEFINE_GUID(IID_IMediaParams,0x6d6cbb61,0xa223,0x44aa,0x84,0x2f,0xa2,0xf0,0x67,0x50,0xbe,0x6e); +DEFINE_GUID(IID_IDMOQualityControl,0x65abea96,0xcf36,0x453f,0xaf,0x8a,0x70,0x5e,0x98,0xf1,0x62,0x60); +DEFINE_GUID(IID_IDMOVideoOutputOptimizations,0xbe8f4f4e,0x5b16,0x4d29,0xb3,0x50,0x7f,0x6b,0x5d,0x92,0x98,0xac); +DEFINE_GUID(IID_IEnumDMO,0x2c3cd98a,0x2bfa,0x4a53,0x9c,0x27,0x52,0x49,0xba,0x64,0xba,0x0f); +DEFINE_GUID(IID_IMediaBuffer,0x59eff8b9,0x938c,0x4a26,0x82,0xf2,0x95,0xcb,0x84,0xcd,0xc8,0x37); +DEFINE_GUID(IID_IMediaObject,0xd8ad0f58,0x5494,0x4102,0x97,0xc5,0xec,0x79,0x8e,0x59,0xbc,0xf4); +DEFINE_GUID(IID_IMediaObjectInPlace,0x651b9ad0,0x0fc7,0x4aa9,0x95,0x38,0xd8,0x99,0x31,0x01,0x07,0x41); diff --git a/lib/libc/mingw/libsrc/dxerr.c b/lib/libc/mingw/libsrc/dxerr.c new file mode 100644 index 0000000000..a328bcf1d4 --- /dev/null +++ b/lib/libc/mingw/libsrc/dxerr.c @@ -0,0 +1,776 @@ +/* + + dxerr.c - DirectX 8 & 9 Error Functions + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + NOTE: Do not use this file directly! + +*/ + +#include + +#ifndef DXERROR +#define DXERROR(v,n,d) {v, TEXT(n), TEXT(d)}, +#define DXERRORLAST(v,n,d) {v, TEXT(n), TEXT(d)} +#endif +#ifndef DXERROR8 +#define DXERROR8(v,n,d) +#define DXERROR8LAST(v,n,d) +#endif +#ifndef DXERROR9 +#define DXERROR9(v,n,d) +#define DXERROR9LAST(v,n,d) +#endif + +typedef struct { + unsigned long Value; + TCHAR *Name; + TCHAR *Description; +} Error; + +static Error Errors[] = { + DXERROR(0, "S_OK", "The function completed successfully") + DXERROR(0x1, "S_FALSE", "Call successful, but returned FALSE") + DXERROR(0x2, "DXERROR_FILE_NOT_FOUND", "The system cannot find the file specified.") + DXERROR(0x3, "DXERROR_PATH_NOT_FOUND", "The system cannot find the path specified.") + DXERROR(0x4, "DXERROR_TOO_MANY_OPEN_FILES", "The system cannot open the file.") + DXERROR(0x5, "DXERROR_ACCESS_DENIED", "Access is denied.") + DXERROR(0x6, "DXERROR_INVALID_HANDLE", "The handle is invalid.") + DXERROR(0x8, "DXERROR_NOT_ENOUGH_MEMORY", "Not enough storage is available to process this command.") + DXERROR(0x9, "DXERROR_INVALID_BLOCK", "The storage control block address is invalid.") + DXERROR(0xa, "DXERROR_BAD_ENVIRONMENT", "The environment is incorrect.") + DXERROR(0xb, "DXERROR_BAD_FORMAT", "An attempt was made to load a program with an incorrect format.") + DXERROR(0xe, "DXERROR_OUTOFMEMORY", "The system cannot find the drive specified.") + DXERROR9(0x40003, "Unknown", "End of stream. Sample not updated.") + DXERROR(0x40103, "VFW_S_NO_MORE_ITEMS", "The end of the list has been reached.") + DXERROR(0x4022d, "VFW_S_DUPLICATE_NAME", "An attempt to add a filter with a duplicate name succeeded with a modified name.") + DXERROR(0x40237, "VFW_S_STATE_INTERMEDIATE", "The state transition has not completed.") + DXERROR(0x40242, "VFW_S_PARTIAL_RENDER", "Some of the streams in this movie are in an unsupported format.") + DXERROR(0x40245, "VFW_S_SOME_DATA_IGNORED", "The file contained some property settings that were not used.") + DXERROR(0x40246, "VFW_S_CONNECTIONS_DEFERRED", "Some connections have failed and have been deferred.") + DXERROR(0x40250, "VFW_S_RESOURCE_NOT_NEEDED", "The resource specified is no longer needed.") + DXERROR(0x40254, "VFW_S_MEDIA_TYPE_IGNORED", "A connection could not be made with the media type in the persistent graph, but has been made with a negotiated media type.") + DXERROR(0x40257, "VFW_S_VIDEO_NOT_RENDERED", "Cannot play back the video stream: no suitable decompressor could be found.") + DXERROR(0x40258, "VFW_S_AUDIO_NOT_RENDERED", "Cannot play back the audio stream: no audio hardware is available.") + DXERROR(0x4025a, "VFW_S_RPZA", "Cannot play back the video stream: format 'RPZA' is not supported.") + DXERROR(0x40260, "VFW_S_ESTIMATED", "The value returned had to be estimated. It's accuracy can not be guaranteed.") + DXERROR(0x40263, "VFW_S_RESERVED", "This success code is reserved for internal purposes within ActiveMovie.") + DXERROR(0x40267, "VFW_S_STREAM_OFF", "The stream has been turned off.") + DXERROR(0x40268, "VFW_S_CANT_CUE", "The graph can't be cued because of lack of or corrupt data.") + DXERROR(0x40270, "VFW_S_NO_STOP_TIME", "The stop time for the sample was not set.") + DXERROR(0x4027e, "VFW_S_NOPREVIEWPIN", "There was no preview pin available, so the capture pin output is being split to provide both capture and preview.") + DXERROR(0x40280, "VFW_S_DVD_NON_ONE_SEQUENTIAL", "The current title was not a sequential set of chapters (PGC) and the returned timing information might not be continuous.") + DXERROR(0x4028c, "VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE", "The audio stream did not contain sufficient information to determine the contents of each channel.") + DXERROR(0x4028d, "VFW_S_DVD_NOT_ACCURATE", "The seek into the movie was not frame accurate.") + DXERROR9(0x150005, "DV_FULLDUPLEX", "Full duplex") + DXERROR9(0x15000a, "DV_HALFDUPLEX", "Half duplex") + DXERROR9(0x150010, "DV_PENDING", "Pending") + DXERROR9(0x876086f, "D3DOK_NOAUTOGEN", "The call succeeded but there won't be any mipmaps generated") + DXERROR(0x878000a, "DS_NO_VIRTUALIZATION", "The call succeeded, but we had to substitute the 3D algorithm") + DXERROR8(0x8780014, "DS_INCOMPLETE", "The call succeeded, but not all of the optional effects were obtained.") + DXERROR(0x8781091, "DMUS_S_PARTIALLOAD", "The object could only load partially. This can happen if some components are not registered properly, such as embedded tracks and tools. This can also happen if some content is missing. For example, if a segment uses a DLS collection that is not in the loader's current search directory.") + DXERROR(0x8781092, "DMUS_S_PARTIALDOWNLOAD", "Return value from IDirectMusicBand::Download() which indicates that some of the instruments safely downloaded, but others failed. This usually occurs when some instruments are on PChannels not supported by the performance or port.") + DXERROR(0x8781200, "DMUS_S_REQUEUE", "Return value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should cue the PMsg again automatically.") + DXERROR(0x8781201, "DMUS_S_FREE", "Return value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should free the PMsg automatically.") + DXERROR(0x8781202, "DMUS_S_END", "Return value from IDirectMusicTrack::Play() which indicates to the segment that the track has no more data after mtEnd.") + DXERROR(0x8781210, "DMUS_S_STRING_TRUNCATED", "Returned string has been truncated to fit the buffer size.") + DXERROR(0x8781211, "DMUS_S_LAST_TOOL", "Returned from IDirectMusicGraph::StampPMsg() this indicates that the PMsg is already stamped with the last tool in the graph. The returned PMsg's tool pointer is now NULL.") + DXERROR(0x8781212, "DMUS_S_OVER_CHORD", "Returned from IDirectMusicPerformance::MusicToMIDI() this indicates that no note has been calculated because the music value has the note at a position higher than the top note of the chord. This applies only to DMUS_PLAYMODE_NORMALCHORD play mode. This success code indicates that the caller should not do anything with the note. It is not meant to be played against this chord.") + DXERROR(0x8781213, "DMUS_S_UP_OCTAVE", "Returned from IDirectMusicPerformance::MIDIToMusic() and IDirectMusicPerformance::MusicToMIDI() this indicates that the note conversion generated a note value that is below 0, so it has been bumped up one or more octaves to be in the proper MIDI range of 0 through 127. Note that this is valid for MIDIToMusic() when using play modes DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of which store MIDI values in wMusicValue. With MusicToMIDI() it is valid for all play modes. Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code.") + DXERROR(0x8781214, "DMUS_S_DOWN_OCTAVE", "Returned from IDirectMusicPerformance::MIDIToMusic() and IDirectMusicPerformance::MusicToMIDI() this indicates that the note conversion generated a note value that is above 127, so it has been bumped down one or more octaves to be in the proper MIDI range of 0 through 127. Note that this is valid for MIDIToMusic() when using play modes DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of which store MIDI values in wMusicValue. With MusicToMIDI() it is valid for all play modes. Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code.") + DXERROR(0x8781215, "DMUS_S_NOBUFFERCONTROL", "Although the audio output from the port will be routed to the same device as the given DirectSound buffer, buffer controls such as pan and volume will not affect the output.") + DXERROR(0x8781216, "DMUS_S_GARBAGE_COLLECTED", "The requested operation was not performed because during CollectGarbage the loader determined that the object had been released.") + DXERROR(0x8000000a, "E_PENDING", "The data necessary to complete this operation is not yet available.") + DXERROR(0x80004001, "E_NOTIMPL", "The function called is not supported at this time") + DXERROR(0x80004002, "E_NOINTERFACE", "The requested COM interface is not available") + DXERROR(0x80004003, "E_POINTER", "Invalid pointer") + DXERROR(0x80004004, "E_ABORT", "Operation aborted") + DXERROR(0x80004005, "E_FAIL", "An undetermined error occurred") + DXERROR(0x8000ffff, "E_UNEXPECTED", "Catastrophic failure") + DXERROR8(0x80040110, "CLASS_E_NOAGGREGATION", "This object does not support aggregation") + DXERROR9(0x80040110, "CLASSFACTORY_E_FIRST", "This object does not support aggregation") + DXERROR(0x80040154, "REGDB_E_CLASSNOTREG", "Class not registered") + DXERROR(0x800401f0, "CO_E_NOTINITIALIZED", "CoInitialize has not been called.") + DXERROR(0x800401f1, "CO_E_ALREADYINITIALIZED", "CoInitialize has already been called.") + DXERROR(0x80040200, "DIERR_INSUFFICIENTPRIVS & VFW_E_INVALIDMEDIATYPE", "Unable to IDirectInputJoyConfig_Acquire because the user does not have sufficient privileges to change the joystick configuration. & An invalid media type was specified") + DXERROR8(0x80040201, "DIERR_DEVICEFULL & VFW_E_INVALIDSUBTYPE", "The device is full. & An invalid media subtype was specified.") + DXERROR8(0x80040202, "DIERR_MOREDATA & VFW_E_NEED_OWNER", "Not all the requested information fit into the buffer. & This object can only be created as an aggregated object.") + DXERROR8(0x80040203, "DIERR_NOTDOWNLOADED & VFW_E_ENUM_OUT_OF_SYNC", "The effect is not downloaded. & The enumerator has become invalid.") + DXERROR8(0x80040204, "DIERR_HASEFFECTS & VFW_E_ALREADY_CONNECTED", "The device cannot be reinitialized because there are still effects attached to it. & At least one of the pins involved in the operation is already connected.") + DXERROR8(0x80040205, "DIERR_NOTEXCLUSIVEACQUIRED & VFW_E_FILTER_ACTIVE", "The operation cannot be performed unless the device is acquired in DISCL_EXCLUSIVE mode. & This operation cannot be performed because the filter is active.") + DXERROR8(0x80040206, "DIERR_INCOMPLETEEFFECT & VFW_E_NO_TYPES", "The effect could not be downloaded because essential information is missing. For example, no axes have been associated with the effect, or no type-specific information has been created. & One of the specified pins supports no media types.") + DXERROR9(0x80040201, "DIERR_DEVICEFULL & VFW_E_INVALIDSUBTYPE & DMO_E_INVALIDSTREAMINDEX", "The device is full. & An invalid media subtype was specified.") + DXERROR9(0x80040202, "DIERR_MOREDATA & VFW_E_NEED_OWNER & DMO_E_INVALIDTYPE", "Not all the requested information fit into the buffer. & This object can only be created as an aggregated object.") + DXERROR9(0x80040203, "DIERR_NOTDOWNLOADED & VFW_E_ENUM_OUT_OF_SYNC & DMO_E_TYPE_NOT_SET", "The effect is not downloaded. & The enumerator has become invalid.") + DXERROR9(0x80040204, "DIERR_HASEFFECTS & VFW_E_ALREADY_CONNECTED & DMO_E_NOTACCEPTING", "The device cannot be reinitialized because there are still effects attached to it. & At least one of the pins involved in the operation is already connected.") + DXERROR9(0x80040205, "DIERR_NOTEXCLUSIVEACQUIRED & VFW_E_FILTER_ACTIVE & DMO_E_TYPE_NOT_ACCEPTED", "The operation cannot be performed unless the device is acquired in DISCL_EXCLUSIVE mode. & This operation cannot be performed because the filter is active.") + DXERROR9(0x80040206, "DIERR_INCOMPLETEEFFECT & VFW_E_NO_TYPES & DMO_E_NO_MORE_ITEMS", "The effect could not be downloaded because essential information is missing. For example, no axes have been associated with the effect, or no type-specific information has been created. & One of the specified pins supports no media types.") + DXERROR(0x80040207, "DIERR_NOTBUFFERED & VFW_E_NO_ACCEPTABLE_TYPES", "Attempted to read buffered device data from a device that is not buffered. & There is no common media type between these pins.") + DXERROR(0x80040208, "DIERR_EFFECTPLAYING & VFW_E_INVALID_DIRECTION", "An attempt was made to modify parameters of an effect while it is playing. Not all hardware devices support altering the parameters of an effect while it is playing. & Two pins of the same direction cannot be connected together.") + DXERROR(0x80040209, "DIERR_UNPLUGGED & VFW_E_NOT_CONNECTED", "The operation could not be completed because the device is not plugged in. & The operation cannot be performed because the pins are not connected.") + DXERROR(0x8004020a, "DIERR_REPORTFULL & VFW_E_NO_ALLOCATOR", "SendDeviceData failed because more information was requested to be sent than can be sent to the device. Some devices have restrictions on how much data can be sent to them. (For example, there might be a limit on the number of buttons that can be pressed at once.) & No sample buffer allocator is available.") + DXERROR(0x8004020b, "DIERR_MAPFILEFAIL & VFW_E_RUNTIME_DXERROR", "A mapper file function failed because reading or writing the user or IHV settings file failed. & A run-time error occurred.") + DXERROR(0x8004020c, "VFW_E_BUFFER_NOTSET", "No buffer space has been set") + DXERROR(0x8004020d, "VFW_E_BUFFER_OVERFLOW", "The buffer is not big enough.") + DXERROR(0x8004020e, "VFW_E_BADALIGN", "An invalid alignment was specified.") + DXERROR(0x8004020f, "VFW_E_ALREADY_COMMITTED", "Cannot change allocated memory while the filter is active.") + DXERROR(0x80040210, "VFW_E_BUFFERS_OUTSTANDING", "One or more buffers are still active.") + DXERROR(0x80040211, "VFW_E_NOT_COMMITTED", "Cannot allocate a sample when the allocator is not active.") + DXERROR(0x80040212, "VFW_E_SIZENOTSET", "Cannot allocate memory because no size has been set.") + DXERROR(0x80040213, "VFW_E_NO_CLOCK", "Cannot lock for synchronization because no clock has been defined.") + DXERROR(0x80040214, "VFW_E_NO_SINK", "Quality messages could not be sent because no quality sink has been defined.") + DXERROR(0x80040215, "VFW_E_NO_INTERFACE", "A required interface has not been implemented.") + DXERROR(0x80040216, "VFW_E_NOT_FOUND", "An object or name was not found.") + DXERROR(0x80040217, "VFW_E_CANNOT_CONNECT", "No combination of intermediate filters could be found to make the connection.") + DXERROR(0x80040218, "VFW_E_CANNOT_RENDER", "No combination of filters could be found to render the stream.") + DXERROR(0x80040219, "VFW_E_CHANGING_FORMAT", "Could not change formats dynamically.") + DXERROR(0x8004021a, "VFW_E_NO_COLOR_KEY_SET", "No color key has been set.") + DXERROR(0x8004021b, "VFW_E_NOT_OVERLAY_CONNECTION", "Current pin connection is not using the IOverlay transport.") + DXERROR(0x8004021c, "VFW_E_NOT_SAMPLE_CONNECTION", "Current pin connection is not using the IMemInputPin transport.") + DXERROR(0x8004021d, "VFW_E_PALETTE_SET", "Setting a color key would conflict with the palette already set.") + DXERROR(0x8004021e, "VFW_E_COLOR_KEY_SET", "Setting a palette would conflict with the color key already set.") + DXERROR(0x8004021f, "VFW_E_NO_COLOR_KEY_FOUND", "No matching color key is available.") + DXERROR(0x80040220, "VFW_E_NO_PALETTE_AVAILABLE", "No palette is available.") + DXERROR(0x80040221, "VFW_E_NO_DISPLAY_PALETTE", "Display does not use a palette.") + DXERROR(0x80040222, "VFW_E_TOO_MANY_COLORS", "Too many colors for the current display settings.") + DXERROR(0x80040223, "VFW_E_STATE_CHANGED", "The state changed while waiting to process the sample.") + DXERROR(0x80040224, "VFW_E_NOT_STOPPED", "The operation could not be performed because the filter is not stopped.") + DXERROR(0x80040225, "VFW_E_NOT_PAUSED", "The operation could not be performed because the filter is not paused.") + DXERROR(0x80040226, "VFW_E_NOT_RUNNING", "The operation could not be performed because the filter is not running.") + DXERROR(0x80040227, "VFW_E_WRONG_STATE", "The operation could not be performed because the filter is in the wrong state.") + DXERROR(0x80040228, "VFW_E_START_TIME_AFTER_END", "The sample start time is after the sample end time.") + DXERROR(0x80040229, "VFW_E_INVALID_RECT", "The supplied rectangle is invalid.") + DXERROR(0x8004022a, "VFW_E_TYPE_NOT_ACCEPTED", "This pin cannot use the supplied media type.") + DXERROR(0x8004022b, "VFW_E_SAMPLE_REJECTED", "This sample cannot be rendered.") + DXERROR(0x8004022c, "VFW_E_SAMPLE_REJECTED_EOS", "This sample cannot be rendered because the end of the stream has been reached.") + DXERROR(0x8004022d, "VFW_E_DUPLICATE_NAME", "An attempt to add a filter with a duplicate name failed.") + DXERROR(0x8004022e, "VFW_E_TIMEOUT", "A time-out has expired.") + DXERROR(0x8004022f, "VFW_E_INVALID_FILE_FORMAT", "The file format is invalid.") + DXERROR(0x80040230, "VFW_E_ENUM_OUT_OF_RANGE", "The list has already been exhausted.") + DXERROR(0x80040231, "VFW_E_CIRCULAR_GRAPH", "The filter graph is circular.") + DXERROR(0x80040232, "VFW_E_NOT_ALLOWED_TO_SAVE", "Updates are not allowed in this state.") + DXERROR(0x80040233, "VFW_E_TIME_ALREADY_PASSED", "An attempt was made to queue a command for a time in the past.") + DXERROR(0x80040234, "VFW_E_ALREADY_CANCELLED", "The queued command has already been canceled.") + DXERROR(0x80040235, "VFW_E_CORRUPT_GRAPH_FILE", "Cannot render the file because it is corrupt.") + DXERROR(0x80040236, "VFW_E_ADVISE_ALREADY_SET", "An overlay advise link already exists.") + DXERROR(0x80040238, "VFW_E_NO_MODEX_AVAILABLE", "No full-screen modes are available.") + DXERROR(0x80040239, "VFW_E_NO_ADVISE_SET", "This Advise cannot be canceled because it was not successfully set.") + DXERROR(0x8004023a, "VFW_E_NO_FULLSCREEN", "A full-screen mode is not available.") + DXERROR(0x8004023b, "VFW_E_IN_FULLSCREEN_MODE", "Cannot call IVideoWindow methods while in full-screen mode.") + DXERROR(0x80040240, "VFW_E_UNKNOWN_FILE_TYPE", "The media type of this file is not recognized.") + DXERROR(0x80040241, "VFW_E_CANNOT_LOAD_SOURCE_FILTER", "The source filter for this file could not be loaded.") + DXERROR(0x80040243, "VFW_E_FILE_TOO_SHORT", "A file appeared to be incomplete.") + DXERROR(0x80040244, "VFW_E_INVALID_FILE_VERSION", "The version number of the file is invalid.") + DXERROR(0x80040247, "VFW_E_INVALID_CLSID", "This file is corrupt: it contains an invalid class identifier.") + DXERROR(0x80040248, "VFW_E_INVALID_MEDIA_TYPE", "This file is corrupt: it contains an invalid media type.") + DXERROR(0x80040249, "VFW_E_SAMPLE_TIME_NOT_SET", "No time stamp has been set for this sample.") + DXERROR(0x80040251, "VFW_E_MEDIA_TIME_NOT_SET", "No media time stamp has been set for this sample.") + DXERROR(0x80040252, "VFW_E_NO_TIME_FORMAT_SET", "No media time format has been selected.") + DXERROR(0x80040253, "VFW_E_MONO_AUDIO_HW", "Cannot change balance because audio device is mono only.") + DXERROR(0x80040255, "VFW_E_NO_DECOMPRESSOR", "Cannot play back the video stream: no suitable decompressor could be found.") + DXERROR(0x80040256, "VFW_E_NO_AUDIO_HARDWARE", "Cannot play back the audio stream: no audio hardware is available, or the hardware is not responding.") + DXERROR(0x80040259, "VFW_E_RPZA", "Cannot play back the video stream: format 'RPZA' is not supported.") + DXERROR(0x8004025b, "VFW_E_PROCESSOR_NOT_SUITABLE", "ActiveMovie cannot play MPEG movies on this processor.") + DXERROR(0x8004025c, "VFW_E_UNSUPPORTED_AUDIO", "Cannot play back the audio stream: the audio format is not supported.") + DXERROR(0x8004025d, "VFW_E_UNSUPPORTED_VIDEO", "Cannot play back the video stream: the video format is not supported.") + DXERROR(0x8004025e, "VFW_E_MPEG_NOT_CONSTRAINED", "ActiveMovie cannot play this video stream because it falls outside the constrained standard.") + DXERROR(0x8004025f, "VFW_E_NOT_IN_GRAPH", "Cannot perform the requested function on an object that is not in the filter graph.") + DXERROR(0x80040261, "VFW_E_NO_TIME_FORMAT", "Cannot get or set time related information on an object that is using a time format of TIME_FORMAT_NONE.") + DXERROR(0x80040262, "VFW_E_READ_ONLY", "The connection cannot be made because the stream is read only and the filter alters the data.") + DXERROR(0x80040264, "VFW_E_BUFFER_UNDERFLOW", "The buffer is not full enough.") + DXERROR(0x80040265, "VFW_E_UNSUPPORTED_STREAM", "Cannot play back the file. The format is not supported.") + DXERROR(0x80040266, "VFW_E_NO_TRANSPORT", "Pins cannot connect due to not supporting the same transport.") + DXERROR(0x80040269, "VFW_E_BAD_VIDEOCD", "The Video CD can't be read correctly by the device or is the data is corrupt.") + DXERROR(0x80040271, "VFW_E_OUT_OF_VIDEO_MEMORY", "There is not enough Video Memory at this display resolution and number of colors. Reducing resolution might help.") + DXERROR(0x80040272, "VFW_E_VP_NEGOTIATION_FAILED", "The VideoPort connection negotiation process has failed.") + DXERROR(0x80040273, "VFW_E_DDRAW_CAPS_NOT_SUITABLE", "Either DirectDraw has not been installed or the Video Card capabilities are not suitable. Make sure the display is not in 16 color mode.") + DXERROR(0x80040274, "VFW_E_NO_VP_HARDWARE", "No VideoPort hardware is available, or the hardware is not responding.") + DXERROR(0x80040275, "VFW_E_NO_CAPTURE_HARDWARE", "No Capture hardware is available, or the hardware is not responding.") + DXERROR(0x80040276, "VFW_E_DVD_OPERATION_INHIBITED", "This User Operation is inhibited by DVD Content at this time.") + DXERROR(0x80040277, "VFW_E_DVD_INVALIDDOMAIN", "This Operation is not permitted in the current domain.") + DXERROR(0x80040278, "VFW_E_DVD_NO_BUTTON", "The specified button is invalid or is not present at the current time, or there is no button present at the specified location.") + DXERROR(0x80040279, "VFW_E_DVD_GRAPHNOTREADY", "DVD-Video playback graph has not been built yet.") + DXERROR(0x8004027a, "VFW_E_DVD_RENDERFAIL", "DVD-Video playback graph building failed.") + DXERROR(0x8004027b, "VFW_E_DVD_DECNOTENOUGH", "DVD-Video playback graph could not be built due to insufficient decoders.") + DXERROR(0x8004027c, "VFW_E_DDRAW_VERSION_NOT_SUITABLE", "Version number of DirectDraw not suitable. Make sure to install dx5 or higher version.") + DXERROR(0x8004027d, "VFW_E_COPYPROT_FAILED", "Copy protection cannot be enabled. Please make sure any other copy protected content is not being shown now.") + DXERROR(0x8004027f, "VFW_E_TIME_EXPIRED", "This object cannot be used anymore as its time has expired.") + DXERROR(0x80040281, "VFW_E_DVD_WRONG_SPEED", "The operation cannot be performed at the current playback speed.") + DXERROR(0x80040282, "VFW_E_DVD_MENU_DOES_NOT_EXIST", "The specified menu doesn't exist.") + DXERROR(0x80040283, "VFW_E_DVD_CMD_CANCELLED", "The specified command was either cancelled or no longer exists.") + DXERROR(0x80040284, "VFW_E_DVD_STATE_WRONG_VERSION", "The data did not contain a recognized version.") + DXERROR(0x80040285, "VFW_E_DVD_STATE_CORRUPT", "The state data was corrupt.") + DXERROR(0x80040286, "VFW_E_DVD_STATE_WRONG_DISC", "The state data is from a different disc.") + DXERROR(0x80040287, "VFW_E_DVD_INCOMPATIBLE_REGION", "The region was not compatible with the current drive.") + DXERROR(0x80040288, "VFW_E_DVD_NO_ATTRIBUTES", "The requested DVD stream attribute does not exist.") + DXERROR(0x80040289, "VFW_E_DVD_NO_GOUP_PGC", "Currently there is no GoUp (Annex J user function) program chain (PGC).") + DXERROR(0x8004028a, "VFW_E_DVD_LOW_PARENTAL_LEVEL", "The current parental level was too low.") + DXERROR(0x8004028b, "VFW_E_DVD_NOT_IN_KARAOKE_MODE", "The current audio is not karaoke content.") + DXERROR(0x8004028e, "VFW_E_FRAME_STEP_UNSUPPORTED", "Frame step is not supported on this configuration.") + DXERROR(0x8004028f, "VFW_E_DVD_STREAM_DISABLED", "The specified stream is disabled and cannot be selected.") + DXERROR(0x80040290, "VFW_E_DVD_TITLE_UNKNOWN", "The operation depends on the current title number, however the navigator has not yet entered the VTSM or the title domains, so the 'current' title index is unknown.") + DXERROR(0x80040291, "VFW_E_DVD_INVALID_DISC", "The specified path does not point to a valid DVD disc.") + DXERROR(0x80040292, "VFW_E_DVD_NO_RESUME_INFORMATION", "There is currently no resume information.") + DXERROR(0x80040293, "VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD", "This thread has already blocked this output pin. There is no need to call IPinFlowControl::Block() again.") + DXERROR(0x80040294, "VFW_E_PIN_ALREADY_BLOCKED", "IPinFlowControl::Block() has been called on another thread. The current thread cannot make any assumptions about this pin's block state.") + DXERROR(0x80040295, "VFW_E_CERTIFICATION_FAILURE", "An operation failed due to a certification failure.") + DXERROR(0x80040300, "DIERR_DRIVERFIRST", "Device driver-specific codes. Unless the specific driver has been precisely identified, no meaning should be attributed to these values other than that the driver originated the error.") + DXERROR(0x80040301, "DIERR_DRIVERFIRST+1", "DIERR_DRIVERFIRST+1") + DXERROR(0x80040302, "DIERR_DRIVERFIRST+2", "DIERR_DRIVERFIRST+2") + DXERROR(0x80040303, "DIERR_DRIVERFIRST+3", "DIERR_DRIVERFIRST+3") + DXERROR(0x80040304, "DIERR_DRIVERFIRST+4", "DIERR_DRIVERFIRST+4") + DXERROR(0x80040305, "DIERR_DRIVERFIRST+5", "DIERR_DRIVERFIRST+5") + DXERROR(0x800403f2, "VFW_E_BAD_KEY", "A registry entry is corrupt.") + DXERROR(0x800403ff, "DIERR_DRIVERLAST", "Device installer errors.") + DXERROR(0x80040400, "DIERR_INVALIDCLASSINSTALLER", "Registry entry or DLL for class installer invalid or class installer not found.") + DXERROR8(0x80040401, "DIERR_CANCELLED", "The user cancelled the install operation.") + DXERROR8(0x80040402, "DIERR_BADINF", "The INF file for the selected device could not be found or is invalid or is damaged.") + DXERROR8(0x80070002, "DIERR_NOTFOUND", "The requested object does not exist.") + DXERROR9(0x80040401, "DIERR_CANCELLED & MS_E_SAMPLEALLOC", "The user cancelled the install operation. & The stream already has allocated samples and the surface doesn't match the sample format.") + DXERROR9(0x80040402, "DIERR_BADINF & MS_E_PURPOSEID", "The INF file for the selected device could not be found or is invalid or is damaged. & The specified purpose ID can't be used for the call.") + DXERROR9(0x80040403, "MS_E_NOSTREAM", "No stream can be found with the specified attributes.") + DXERROR9(0x80040404, "MS_E_NOSEEKING", "Seeking not supported for this object.") + DXERROR9(0x80040405, "MS_E_INCOMPATIBLE", "The stream formats are not compatible.") + DXERROR9(0x80040406, "MS_E_BUSY", "The sample is busy.") + DXERROR9(0x80040407, "MS_E_NOTINIT", "The object can't accept the call because its initialize function or equivalent has not been called.") + DXERROR9(0x80040408, "MS_E_SOURCEALREADYDEFINED", "MS_E_SOURCEALREADYDEFINED") + DXERROR9(0x80040409, "MS_E_INVALIDSTREAMTYPE", "The stream type is not valid for this operation.") + DXERROR9(0x8004040a, "MS_E_NOTRUNNING", "The object is not in running state.") + DXERROR9(0x80070002, "DXERROR_FILE_NOT_FOUND", "The system cannot find the file specified.") + DXERROR9(0x80070003, "DXERROR_PATH_NOT_FOUND", "The system cannot find the path specified.") + DXERROR9(0x80070004, "DXERROR_TOO_MANY_OPEN_FILES", "The system cannot open the file.") + DXERROR(0x80070005, "E_ACCESSDENIED", "Access is denied") + DXERROR(0x80070006, "E_HANDLE", "Invalid handle") + DXERROR8(0x8007000c, "DIERR_NOTACQUIRED", "The operation cannot be performed unless the device is acquired.") + DXERROR9(0x80070008, "DXERROR_NOT_ENOUGH_MEMORY", "Not enough storage is available to process this command.") + DXERROR9(0x80070009, "DXERROR_INVALID_BLOCK", "The storage control block address is invalid.") + DXERROR9(0x8007000a, "DXERROR_BAD_ENVIRONMENT", "The environment is incorrect.") + DXERROR9(0x8007000b, "DXERROR_BAD_FORMAT", "An attempt was made to load a program with an incorrect format.") + DXERROR9(0x8007000c, "DXERROR_INVALID_ACCESS & DIERR_NOTACQUIRED", "The operation cannot be performed unless the device is acquired.") + DXERROR(0x8007000e, "E_OUTOFMEMORY", "Ran out of memory") + DXERROR8(0x80070015, "DIERR_NOTINITIALIZED", "This object has not been initialized") + DXERROR8(0x8007001e, "DIERR_INPUTLOST", "Access to the device has been lost. It must be re-acquired.") + DXERROR9(0x80070015, "DXERROR_NOT_READY & DIERR_NOTINITIALIZED", "This object has not been initialized") + DXERROR9(0x8007001e, "DXERROR_READ_FAULT & DIERR_INPUTLOST", "Access to the device has been lost. It must be re-acquired.") + DXERROR(0x80070057, "E_INVALIDARG", "An invalid parameter was passed to the returning function") + DXERROR8(0x80070077, "DIERR_BADDRIVERVER", "The object could not be created due to an incompatible driver version or mismatched or incomplete driver components.") + DXERROR8(0x800700aa, "DIERR_ACQUIRED", "The operation cannot be performed while the device is acquired.") + DXERROR8(0x80070103, "DIERR_NOMOREITEMS", "No more items.") + DXERROR8(0x8007047e, "DIERR_OLDDIRECTINPUTVERSION", "The application requires a newer version of DirectInput.") + DXERROR8(0x80070481, "DIERR_BETADIRECTINPUTVERSION", "The application was written for an unsupported prerelease version of DirectInput.") + DXERROR8(0x80070490, "E_PROP_ID_UNSUPPORTED", "The specified property ID is not supported for the specified property set.") + DXERROR8(0x80070492, "E_PROP_SET_UNSUPPORTED", "The Specified property set is not supported.") + DXERROR8(0x800704df, "DIERR_ALREADYINITIALIZED", "This object is already initialized") + DXERROR9(0x80070077, "DXERROR_BAD_DRIVER_LEVEL & DIERR_BADDRIVERVER", "The object could not be created due to an incompatible driver version or mismatched or incomplete driver components.") + DXERROR9(0x800700aa, "DXERROR_BUSY & DIERR_ACQUIRED", "The operation cannot be performed while the device is acquired.") + DXERROR9(0x80070103, "DXERROR_NO_MORE_ITEMS & DIERR_NOMOREITEMS", "No more items.") + DXERROR9(0x8007047e, "DXERROR_OLD_WIN_VERSION & DIERR_OLDDIRECTINPUTVERSION", "The application requires a newer version of DirectInput.") + DXERROR9(0x80070481, "DXERROR_RMODE_APP & DIERR_BETADIRECTINPUTVERSION", "The application was written for an unsupported prerelease version of DirectInput.") + DXERROR9(0x80070490, "DXERROR_NOT_FOUND & E_PROP_ID_UNSUPPORTED", "The specified property ID is not supported for the specified property set.") + DXERROR9(0x80070492, "DXERROR_SET_NOT_FOUND & E_PROP_SET_UNSUPPORTED", "The specified property set is not supported.") + DXERROR9(0x800704df, "DXERROR_ALREADY_INITIALIZED & DIERR_ALREADYINITIALIZED", "This object is already initialized") + DXERROR9(0x8015001e, "DVERR_BUFFERTOOSMALL", "Buffer too small") + DXERROR9(0x8015004a, "DVERR_EXCEPTION", "Exception") + DXERROR9(0x80150078, "DVERR_INVALIDFLAGS", "Invalid flags") + DXERROR9(0x80150082, "DVERR_INVALIDOBJECT", "Invalid object") + DXERROR9(0x80150087, "DVERR_INVALIDPLAYER", "Invalid player") + DXERROR9(0x80150091, "DVERR_INVALIDGROUP", "Invalid group") + DXERROR9(0x80150096, "DVERR_INVALIDHANDLE", "Invalid handle") + DXERROR9(0x8015012c, "DVERR_SESSIONLOST", "Session lost") + DXERROR9(0x8015012e, "DVERR_NOVOICESESSION", "No voice session") + DXERROR9(0x80150168, "DVERR_CONNECTIONLOST", "Connection lost") + DXERROR9(0x80150169, "DVERR_NOTINITIALIZED", "Not initialized") + DXERROR9(0x8015016a, "DVERR_CONNECTED", "Connected") + DXERROR9(0x8015016b, "DVERR_NOTCONNECTED", "Not connected") + DXERROR9(0x8015016e, "DVERR_CONNECTABORTING", "Connect aborting") + DXERROR9(0x8015016f, "DVERR_NOTALLOWED", "Not allowed") + DXERROR9(0x80150170, "DVERR_INVALIDTARGET", "Invalid target") + DXERROR9(0x80150171, "DVERR_TRANSPORTNOTHOST", "Transport not host") + DXERROR9(0x80150172, "DVERR_COMPRESSIONNOTSUPPORTED", "Compression not supported") + DXERROR9(0x80150173, "DVERR_ALREADYPENDING", "Already pending") + DXERROR9(0x80150174, "DVERR_SOUNDINITFAILURE", "Sound init failure") + DXERROR9(0x80150175, "DVERR_TIMEOUT", "Time out") + DXERROR9(0x80150176, "DVERR_CONNECTABORTED", "Connect aborted") + DXERROR9(0x80150177, "DVERR_NO3DSOUND", "No 3d sound") + DXERROR9(0x80150178, "DVERR_ALREADYBUFFERED", "Already buffered") + DXERROR9(0x80150179, "DVERR_NOTBUFFERED", "Not buffered") + DXERROR9(0x8015017a, "DVERR_HOSTING", "Hosting") + DXERROR9(0x8015017b, "DVERR_NOTHOSTING", "Not hosting") + DXERROR9(0x8015017c, "DVERR_INVALIDDEVICE", "Invalid device") + DXERROR9(0x8015017d, "DVERR_RECORDSYSTEMDXERROR", "Record system error") + DXERROR9(0x8015017e, "DVERR_PLAYBACKSYSTEMDXERROR", "Playback system error") + DXERROR9(0x8015017f, "DVERR_SENDDXERROR", "Send error") + DXERROR9(0x80150180, "DVERR_USERCANCEL", "User cancel") + DXERROR9(0x80150183, "DVERR_RUNSETUP", "Run setup") + DXERROR9(0x80150184, "DVERR_INCOMPATIBLEVERSION", "Incompatible version") + DXERROR9(0x80150187, "DVERR_INITIALIZED", "Initialized") + DXERROR9(0x80150188, "DVERR_NOTRANSPORT", "No transport") + DXERROR9(0x80150189, "DVERR_NOCALLBACK", "No callback") + DXERROR9(0x8015018a, "DVERR_TRANSPORTNOTINIT", "Transport not init") + DXERROR9(0x8015018b, "DVERR_TRANSPORTNOSESSION", "Transport no session") + DXERROR9(0x8015018c, "DVERR_TRANSPORTNOPLAYER", "Transport no player") + DXERROR9(0x8015018d, "DVERR_USERBACK", "User back") + DXERROR9(0x8015018e, "DVERR_NORECVOLAVAILABLE", "No rec vol available") + DXERROR9(0x8015018f, "DVERR_INVALIDBUFFER", "Invalid buffer") + DXERROR9(0x80150190, "DVERR_LOCKEDBUFFER", "Locked buffer") + DXERROR9(0x80158030, "DPNERR_ABORTED", "Aborted") + DXERROR9(0x80158040, "DPNERR_ADDRESSING", "Addressing") + DXERROR9(0x80158050, "DPNERR_ALREADYCLOSING", "Already closing") + DXERROR9(0x80158060, "DPNERR_ALREADYCONNECTED", "Already connected") + DXERROR9(0x80158070, "DPNERR_ALREADYDISCONNECTING", "Already disconnecting") + DXERROR9(0x80158080, "DPNERR_ALREADYINITIALIZED", "Already initialized") + DXERROR9(0x80158090, "DPNERR_ALREADYREGISTERED", "Already registered") + DXERROR9(0x80158100, "DPNERR_BUFFERTOOSMALL", "Buffer too small") + DXERROR9(0x80158110, "DPNERR_CANNOTCANCEL", "Can not cancel") + DXERROR9(0x80158120, "DPNERR_CANTCREATEGROUP", "Cant create group") + DXERROR9(0x80158130, "DPNERR_CANTCREATEPLAYER", "Cant create player") + DXERROR9(0x80158140, "DPNERR_CANTLAUNCHAPPLICATION", "Cant launch application") + DXERROR9(0x80158150, "DPNERR_CONNECTING", "Connecting") + DXERROR9(0x80158160, "DPNERR_CONNECTIONLOST", "Connection lost") + DXERROR9(0x80158170, "DPNERR_CONVERSION", "Conversion") + DXERROR9(0x80158175, "DPNERR_DATATOOLARGE", "Data too large") + DXERROR9(0x80158180, "DPNERR_DOESNOTEXIST", "Does not exist") + DXERROR9(0x80158185, "DPNERR_DPNSVRNOTAVAILABLE", "dpnsvr not available") + DXERROR9(0x80158190, "DPNERR_DUPLICATECOMMAND", "Duplicate command") + DXERROR9(0x80158200, "DPNERR_ENDPOINTNOTRECEIVING", "End point not receiving") + DXERROR9(0x80158210, "DPNERR_ENUMQUERYTOOLARGE", "Enum query too large") + DXERROR9(0x80158220, "DPNERR_ENUMRESPONSETOOLARGE", "Enum response too large") + DXERROR9(0x80158230, "DPNERR_EXCEPTION", "Exception") + DXERROR9(0x80158240, "DPNERR_GROUPNOTEMPTY", "Group not empty") + DXERROR9(0x80158250, "DPNERR_HOSTING", "Hosting") + DXERROR9(0x80158260, "DPNERR_HOSTREJECTEDCONNECTION", "Host rejected connection") + DXERROR9(0x80158270, "DPNERR_HOSTTERMINATEDSESSION", "Host terminated session") + DXERROR9(0x80158280, "DPNERR_INCOMPLETEADDRESS", "Incomplete address") + DXERROR9(0x80158290, "DPNERR_INVALIDADDRESSFORMAT", "Invalid address format") + DXERROR9(0x80158300, "DPNERR_INVALIDAPPLICATION", "Invalid application") + DXERROR9(0x80158310, "DPNERR_INVALIDCOMMAND", "Invalid command") + DXERROR9(0x80158320, "DPNERR_INVALIDDEVICEADDRESS", "Invalid device address") + DXERROR9(0x80158330, "DPNERR_INVALIDENDPOINT", "Invalid end point") + DXERROR9(0x80158340, "DPNERR_INVALIDFLAGS", "Invalid flags") + DXERROR9(0x80158350, "DPNERR_INVALIDGROUP", "Invalid group") + DXERROR9(0x80158360, "DPNERR_INVALIDHANDLE", "Invalid handle") + DXERROR9(0x80158370, "DPNERR_INVALIDHOSTADDRESS", "Invalid host address") + DXERROR9(0x80158380, "DPNERR_INVALIDINSTANCE", "Invalid instance") + DXERROR9(0x80158390, "DPNERR_INVALIDINTERFACE", "Invalid interface") + DXERROR9(0x80158400, "DPNERR_INVALIDOBJECT", "Invalid object") + DXERROR9(0x80158410, "DPNERR_INVALIDPASSWORD", "Invalid password") + DXERROR9(0x80158420, "DPNERR_INVALIDPLAYER", "Invalid player") + DXERROR9(0x80158430, "DPNERR_INVALIDPRIORITY", "Invalid priority") + DXERROR9(0x80158440, "DPNERR_INVALIDSTRING", "Invalid string") + DXERROR9(0x80158450, "DPNERR_INVALIDURL", "Invalid url") + DXERROR9(0x80158460, "DPNERR_INVALIDVERSION", "Invalid version") + DXERROR9(0x80158470, "DPNERR_NOCAPS", "No caps") + DXERROR9(0x80158480, "DPNERR_NOCONNECTION", "No connection") + DXERROR9(0x80158490, "DPNERR_NOHOSTPLAYER", "No host player") + DXERROR9(0x80158500, "DPNERR_NOMOREADDRESSCOMPONENTS", "No more address components") + DXERROR9(0x80158510, "DPNERR_NORESPONSE", "No response") + DXERROR9(0x80158520, "DPNERR_NOTALLOWED", "Not allowed") + DXERROR9(0x80158530, "DPNERR_NOTHOST", "Not host") + DXERROR9(0x80158540, "DPNERR_NOTREADY", "Not ready") + DXERROR9(0x80158550, "DPNERR_NOTREGISTERED", "Not registered") + DXERROR9(0x80158560, "DPNERR_PLAYERALREADYINGROUP", "Player already in group") + DXERROR9(0x80158570, "DPNERR_PLAYERLOST", "Player lost") + DXERROR9(0x80158580, "DPNERR_PLAYERNOTINGROUP", "Player not in group") + DXERROR9(0x80158590, "DPNERR_PLAYERNOTREACHABLE", "Player not reachable") + DXERROR9(0x80158600, "DPNERR_SENDTOOLARGE", "Send too large") + DXERROR9(0x80158610, "DPNERR_SESSIONFULL", "Session full") + DXERROR9(0x80158620, "DPNERR_TABLEFULL", "Table full") + DXERROR9(0x80158630, "DPNERR_TIMEDOUT", "Timed out") + DXERROR9(0x80158640, "DPNERR_UNINITIALIZED", "Uninitialized") + DXERROR9(0x80158650, "DPNERR_USERCANCEL", "User cancel") + DXERROR(0x88760005, "DDERR_ALREADYINITIALIZED", "This object is already initialized") + DXERROR(0x8876000a, "DDERR_CANNOTATTACHSURFACE", "This surface can not be attached to the requested surface.") + DXERROR(0x88760014, "DDERR_CANNOTDETACHSURFACE", "This surface can not be detached from the requested surface.") + DXERROR(0x88760028, "DDERR_CURRENTLYNOTAVAIL", "Support is currently not available.") + DXERROR(0x88760037, "DDERR_EXCEPTION", "An exception was encountered while performing the requested operation") + DXERROR(0x8876005a, "DDERR_HEIGHTALIGN", "Height of rectangle provided is not a multiple of reqd alignment") + DXERROR(0x8876005f, "DDERR_INCOMPATIBLEPRIMARY", "Unable to match primary surface creation request with existing primary surface.") + DXERROR(0x88760064, "DDERR_INVALIDCAPS", "One or more of the caps bits passed to the callback are incorrect.") + DXERROR(0x8876006e, "DDERR_INVALIDCLIPLIST", "DirectDraw does not support provided Cliplist.") + DXERROR(0x88760078, "DDERR_INVALIDMODE", "DirectDraw does not support the requested mode") + DXERROR(0x88760082, "DDERR_INVALIDOBJECT", "DirectDraw received a pointer that was an invalid DIRECTDRAW object.") + DXERROR(0x88760091, "DDERR_INVALIDPIXELFORMAT", "pixel format was invalid as specified") + DXERROR(0x88760096, "DDERR_INVALIDRECT", "Rectangle provided was invalid.") + DXERROR(0x887600a0, "DDERR_LOCKEDSURFACES", "Operation could not be carried out because one or more surfaces are locked") + DXERROR(0x887600aa, "DDERR_NO3D", "There is no 3D present.") + DXERROR(0x887600b4, "DDERR_NOALPHAHW", "Operation could not be carried out because there is no alpha accleration hardware present or available.") + DXERROR(0x887600b5, "DDERR_NOSTEREOHARDWARE", "Operation could not be carried out because there is no stereo hardware present or available.") + DXERROR(0x887600b6, "DDERR_NOSURFACELEFT", "Operation could not be carried out because there is no hardware present which supports stereo surfaces") + DXERROR(0x887600cd, "DDERR_NOCLIPLIST", "no clip list available") + DXERROR(0x887600d2, "DDERR_NOCOLORCONVHW", "Operation could not be carried out because there is no color conversion hardware present or available.") + DXERROR(0x887600d4, "DDERR_NOCOOPERATIVELEVELSET", "Create function called without DirectDraw object method SetCooperativeLevel being called.") + DXERROR(0x887600d7, "DDERR_NOCOLORKEY", "Surface doesn't currently have a color key") + DXERROR(0x887600dc, "DDERR_NOCOLORKEYHW", "Operation could not be carried out because there is no hardware support of the dest color key.") + DXERROR(0x887600de, "DDERR_NODIRECTDRAWSUPPORT", "No DirectDraw support possible with current display driver") + DXERROR(0x887600e1, "DDERR_NOEXCLUSIVEMODE", "Operation requires the application to have exclusive mode but the application does not have exclusive mode.") + DXERROR(0x887600e6, "DDERR_NOFLIPHW", "Flipping visible surfaces is not supported.") + DXERROR(0x887600f0, "DDERR_NOGDI", "There is no GDI present.") + DXERROR(0x887600fa, "DDERR_NOMIRRORHW", "Operation could not be carried out because there is no hardware present or available.") + DXERROR(0x887600ff, "DDERR_NOTFOUND", "Requested item was not found") + DXERROR(0x88760104, "DDERR_NOOVERLAYHW", "Operation could not be carried out because there is no overlay hardware present or available.") + DXERROR(0x8876010e, "DDERR_OVERLAPPINGRECTS", "Operation could not be carried out because the source and destination rectangles are on the same surface and overlap each other.") + DXERROR(0x88760118, "DDERR_NORASTEROPHW", "Operation could not be carried out because there is no appropriate raster op hardware present or available.") + DXERROR(0x88760122, "DDERR_NOROTATIONHW", "Operation could not be carried out because there is no rotation hardware present or available.") + DXERROR(0x88760136, "DDERR_NOSTRETCHHW", "Operation could not be carried out because there is no hardware support for stretching") + DXERROR(0x8876013c, "DDERR_NOT4BITCOLOR", "DirectDrawSurface is not in 4 bit color palette and the requested operation requires 4 bit color palette.") + DXERROR(0x8876013d, "DDERR_NOT4BITCOLORINDEX", "DirectDrawSurface is not in 4 bit color index palette and the requested operation requires 4 bit color index palette.") + DXERROR(0x88760140, "DDERR_NOT8BITCOLOR", "DirectDraw Surface is not in 8 bit color mode and the requested operation requires 8 bit color.") + DXERROR(0x8876014a, "DDERR_NOTEXTUREHW", "Operation could not be carried out because there is no texture mapping hardware present or available.") + DXERROR(0x8876014f, "DDERR_NOVSYNCHW", "Operation could not be carried out because there is no hardware support for vertical blank synchronized operations.") + DXERROR(0x88760154, "DDERR_NOZBUFFERHW", "Operation could not be carried out because there is no hardware support for zbuffer blting.") + DXERROR(0x8876015e, "DDERR_NOZOVERLAYHW", "Overlay surfaces could not be z layered based on their BltOrder because the hardware does not support z layering of overlays.") + DXERROR(0x88760168, "DDERR_OUTOFCAPS", "The hardware needed for the requested operation has already been allocated.") + DXERROR9(0x8876017c, "D3DERR_OUTOFVIDEOMEMORY", "Out of video memory") + DXERROR(0x8876017e, "DDERR_OVERLAYCANTCLIP", "hardware does not support clipped overlays") + DXERROR(0x88760180, "DDERR_OVERLAYCOLORKEYONLYONEACTIVE", "Can only have ony color key active at one time for overlays") + DXERROR(0x88760183, "DDERR_PALETTEBUSY", "Access to this palette is being refused because the palette is already locked by another thread.") + DXERROR(0x88760190, "DDERR_COLORKEYNOTSET", "No src color key specified for this operation.") + DXERROR(0x8876019a, "DDERR_SURFACEALREADYATTACHED", "This surface is already attached to the surface it is being attached to.") + DXERROR(0x887601a4, "DDERR_SURFACEALREADYDEPENDENT", "This surface is already a dependency of the surface it is being made a dependency of.") + DXERROR(0x887601ae, "DDERR_SURFACEBUSY", "Access to this surface is being refused because the surface is already locked by another thread.") + DXERROR(0x887601b3, "DDERR_CANTLOCKSURFACE", "Access to this surface is being refused because no driver exists which can supply a pointer to the surface. This is most likely to happen when attempting to lock the primary surface when no DCI provider is present. Will also happen on attempts to lock an optimized surface.") + DXERROR(0x887601b8, "DDERR_SURFACEISOBSCURED", "Access to Surface refused because Surface is obscured.") + DXERROR(0x887601c2, "DDERR_SURFACELOST", "Access to this surface is being refused because the surface is gone. The DIRECTDRAWSURFACE object representing this surface should have Restore called on it.") + DXERROR(0x887601cc, "DDERR_SURFACENOTATTACHED", "The requested surface is not attached.") + DXERROR(0x887601d6, "DDERR_TOOBIGHEIGHT", "Height requested by DirectDraw is too large.") + DXERROR(0x887601e0, "DDERR_TOOBIGSIZE", "Size requested by DirectDraw is too large -- The individual height and width are OK.") + DXERROR(0x887601ea, "DDERR_TOOBIGWIDTH", "Width requested by DirectDraw is too large.") + DXERROR(0x887601fe, "DDERR_UNSUPPORTEDFORMAT", "Pixel format requested is unsupported by DirectDraw") + DXERROR(0x88760208, "DDERR_UNSUPPORTEDMASK", "Bitmask in the pixel format requested is unsupported by DirectDraw") + DXERROR(0x88760209, "DDERR_INVALIDSTREAM", "The specified stream contains invalid data") + DXERROR(0x88760219, "DDERR_VERTICALBLANKINPROGRESS", "vertical blank is in progress") + DXERROR8(0x8876021c, "DDERR_WASSTILLDRAWING", "Informs DirectDraw that the previous Blt which is transfering information to or from this Surface is incomplete.") + DXERROR9(0x8876021c, "DDERR_WASSTILLDRAWING", "Was still drawing") + DXERROR(0x8876021e, "DDERR_DDSCAPSCOMPLEXREQUIRED", "The specified surface type requires specification of the COMPLEX flag") + DXERROR(0x88760230, "DDERR_XALIGN", "Rectangle provided was not horizontally aligned on reqd. boundary") + DXERROR(0x88760231, "DDERR_INVALIDDIRECTDRAWGUID", "The GUID passed to DirectDrawCreate is not a valid DirectDraw driver identifier.") + DXERROR(0x88760232, "DDERR_DIRECTDRAWALREADYCREATED", "A DirectDraw object representing this driver has already been created for this process.") + DXERROR(0x88760233, "DDERR_NODIRECTDRAWHW", "A hardware only DirectDraw object creation was attempted but the driver did not support any hardware.") + DXERROR(0x88760234, "DDERR_PRIMARYSURFACEALREADYEXISTS", "this process already has created a primary surface") + DXERROR(0x88760235, "DDERR_NOEMULATION", "software emulation not available.") + DXERROR(0x88760236, "DDERR_REGIONTOOSMALL", "region passed to Clipper::GetClipList is too small.") + DXERROR(0x88760237, "DDERR_CLIPPERISUSINGHWND", "an attempt was made to set a clip list for a clipper objec that is already monitoring an hwnd.") + DXERROR(0x88760238, "DDERR_NOCLIPPERATTACHED", "No clipper object attached to surface object") + DXERROR(0x88760239, "DDERR_NOHWND", "Clipper notification requires an HWND or no HWND has previously been set as the CooperativeLevel HWND.") + DXERROR(0x8876023a, "DDERR_HWNDSUBCLASSED", "HWND used by DirectDraw CooperativeLevel has been subclassed, this prevents DirectDraw from restoring state.") + DXERROR(0x8876023b, "DDERR_HWNDALREADYSET", "The CooperativeLevel HWND has already been set. It can not be reset while the process has surfaces or palettes created.") + DXERROR(0x8876023c, "DDERR_NOPALETTEATTACHED", "No palette object attached to this surface.") + DXERROR(0x8876023d, "DDERR_NOPALETTEHW", "No hardware support for 16 or 256 color palettes.") + DXERROR(0x8876023e, "DDERR_BLTFASTCANTCLIP", "If a clipper object is attached to the source surface passed into a BltFast call.") + DXERROR(0x8876023f, "DDERR_NOBLTHW", "No blter.") + DXERROR(0x88760240, "DDERR_NODDROPSHW", "No DirectDraw ROP hardware.") + DXERROR(0x88760241, "DDERR_OVERLAYNOTVISIBLE", "returned when GetOverlayPosition is called on a hidden overlay") + DXERROR(0x88760242, "DDERR_NOOVERLAYDEST", "returned when GetOverlayPosition is called on a overlay that UpdateOverlay has never been called on to establish a destionation.") + DXERROR(0x88760243, "DDERR_INVALIDPOSITION", "returned when the position of the overlay on the destionation is no longer legal for that destionation.") + DXERROR(0x88760244, "DDERR_NOTAOVERLAYSURFACE", "returned when an overlay member is called for a non-overlay surface") + DXERROR(0x88760245, "DDERR_EXCLUSIVEMODEALREADYSET", "An attempt was made to set the cooperative level when it was already set to exclusive.") + DXERROR(0x88760246, "DDERR_NOTFLIPPABLE", "An attempt has been made to flip a surface that is not flippable.") + DXERROR(0x88760247, "DDERR_CANTDUPLICATE", "Can't duplicate primary & 3D surfaces, or surfaces that are implicitly created.") + DXERROR(0x88760248, "DDERR_NOTLOCKED", "Surface was not locked. An attempt to unlock a surface that was not locked at all, or by this process, has been attempted.") + DXERROR(0x88760249, "DDERR_CANTCREATEDC", "Windows can not create any more DCs, or a DC was requested for a paltte-indexed surface when the surface had no palette AND the display mode was not palette-indexed (in this case DirectDraw cannot select a proper palette into the DC)") + DXERROR(0x8876024a, "DDERR_NODC", "No DC was ever created for this surface.") + DXERROR(0x8876024b, "DDERR_WRONGMODE", "This surface can not be restored because it was created in a different mode.") + DXERROR(0x8876024c, "DDERR_IMPLICITLYCREATED", "This surface can not be restored because it is an implicitly created surface.") + DXERROR(0x8876024d, "DDERR_NOTPALETTIZED", "The surface being used is not a palette-based surface") + DXERROR(0x8876024e, "DDERR_UNSUPPORTEDMODE", "The display is currently in an unsupported mode") + DXERROR(0x8876024f, "DDERR_NOMIPMAPHW", "Operation could not be carried out because there is no mip-map texture mapping hardware present or available.") + DXERROR(0x88760250, "DDERR_INVALIDSURFACETYPE", "The requested action could not be performed because the surface was of the wrong type.") + DXERROR(0x88760258, "DDERR_NOOPTIMIZEHW", "Device does not support optimized surfaces, therefore no video memory optimized surfaces") + DXERROR(0x88760259, "DDERR_NOTLOADED", "Surface is an optimized surface, but has not yet been allocated any memory") + DXERROR(0x8876025a, "DDERR_NOFOCUSWINDOW", "Attempt was made to create or set a device window without first setting the focus window") + DXERROR(0x8876025b, "DDERR_NOTONMIPMAPSUBLEVEL", "Attempt was made to set a palette on a mipmap sublevel") + DXERROR(0x8876026c, "DDERR_DCALREADYCREATED", "A DC has already been returned for this surface. Only one DC can be retrieved per surface.") + DXERROR(0x88760276, "DDERR_NONONLOCALVIDMEM", "An attempt was made to allocate non-local video memory from a device that does not support non-local video memory.") + DXERROR(0x88760280, "DDERR_CANTPAGELOCK", "The attempt to page lock a surface failed.") + DXERROR(0x88760294, "DDERR_CANTPAGEUNLOCK", "The attempt to page unlock a surface failed.") + DXERROR(0x887602a8, "DDERR_NOTPAGELOCKED", "An attempt was made to page unlock a surface with no outstanding page locks.") + DXERROR(0x887602b2, "DDERR_MOREDATA", "There is more data available than the specified buffer size could hold") + DXERROR(0x887602b3, "DDERR_EXPIRED", "The data has expired and is therefore no longer valid.") + DXERROR(0x887602b4, "DDERR_TESTFINISHED", "The mode test has finished executing.") + DXERROR(0x887602b5, "DDERR_NEWMODE", "The mode test has switched to a new mode.") + DXERROR(0x887602b6, "DDERR_D3DNOTINITIALIZED", "D3D has not yet been initialized.") + DXERROR(0x887602b7, "DDERR_VIDEONOTACTIVE", "The video port is not active") + DXERROR(0x887602b8, "DDERR_NOMONITORINFORMATION", "The monitor does not have EDID data.") + DXERROR(0x887602b9, "DDERR_NODRIVERSUPPORT", "The driver does not enumerate display mode refresh rates.") + DXERROR(0x887602bb, "DDERR_DEVICEDOESNTOWNSURFACE", "Surfaces created by one direct draw device cannot be used directly by another direct draw device.") + DXERROR9(0x88760352, "DXFILEERR_BADOBJECT", "Bad object") + DXERROR9(0x88760353, "DXFILEERR_BADVALUE", "Bad value") + DXERROR9(0x88760354, "DXFILEERR_BADTYPE", "Bad type") + DXERROR9(0x88760355, "DXFILEERR_BADSTREAMHANDLE", "Bad stream handle") + DXERROR9(0x88760356, "DXFILEERR_BADALLOC", "Bad alloc") + DXERROR9(0x88760357, "DXFILEERR_NOTFOUND", "Not found") + DXERROR9(0x88760358, "DXFILEERR_NOTDONEYET", "Not done yet") + DXERROR9(0x88760359, "DXFILEERR_FILENOTFOUND", "File not found") + DXERROR9(0x8876035a, "DXFILEERR_RESOURCENOTFOUND", "Resource not found") + DXERROR9(0x8876035b, "DXFILEERR_URLNOTFOUND", "Url not found") + DXERROR9(0x8876035c, "DXFILEERR_BADRESOURCE", "Bad resource") + DXERROR9(0x8876035d, "DXFILEERR_BADFILETYPE", "Bad file type") + DXERROR9(0x8876035e, "DXFILEERR_BADFILEVERSION", "Bad file version") + DXERROR9(0x8876035f, "DXFILEERR_BADFILEFLOATSIZE", "Bad file float size") + DXERROR9(0x88760360, "DXFILEERR_BADFILECOMPRESSIONTYPE", "Bad file compression type") + DXERROR9(0x88760361, "DXFILEERR_BADFILE", "Bad file") + DXERROR9(0x88760362, "DXFILEERR_PARSEDXERROR", "Parse error") + DXERROR9(0x88760363, "DXFILEERR_NOTEMPLATE", "No template") + DXERROR9(0x88760364, "DXFILEERR_BADARRAYSIZE", "Bad array size") + DXERROR9(0x88760365, "DXFILEERR_BADDATAREFERENCE", "Bad data reference") + DXERROR9(0x88760366, "DXFILEERR_INTERNALDXERROR", "Internal error") + DXERROR9(0x88760367, "DXFILEERR_NOMOREOBJECTS", "No more objects") + DXERROR9(0x88760368, "DXFILEERR_BADINTRINSICS", "Bad intrinsics") + DXERROR9(0x88760369, "DXFILEERR_NOMORESTREAMHANDLES", "No more stream handles") + DXERROR9(0x8876036a, "DXFILEERR_NOMOREDATA", "No more data") + DXERROR9(0x8876036b, "DXFILEERR_BADCACHEFILE", "Bad cache file") + DXERROR9(0x8876036c, "DXFILEERR_NOINTERNET", "No internet") + DXERROR9(0x88760818, "D3DERR_WRONGTEXTUREFORMAT", "Wrong texture format") + DXERROR9(0x88760819, "D3DERR_UNSUPPORTEDCOLOROPERATION", "Unsupported color operation") + DXERROR9(0x8876081a, "D3DERR_UNSUPPORTEDCOLORARG", "Unsupported color arg") + DXERROR9(0x8876081b, "D3DERR_UNSUPPORTEDALPHAOPERATION", "Unsupported alpha operation") + DXERROR9(0x8876081c, "D3DERR_UNSUPPORTEDALPHAARG", "Unsupported alpha arg") + DXERROR9(0x8876081d, "D3DERR_TOOMANYOPERATIONS", "Too many operations") + DXERROR9(0x8876081e, "D3DERR_CONFLICTINGTEXTUREFILTER", "Conflicting texture filter") + DXERROR9(0x8876081f, "D3DERR_UNSUPPORTEDFACTORVALUE", "Unsupported factor value") + DXERROR9(0x88760821, "D3DERR_CONFLICTINGRENDERSTATE", "Conflicting render state") + DXERROR9(0x88760822, "D3DERR_UNSUPPORTEDTEXTUREFILTER", "Unsupported texture filter") + DXERROR9(0x88760826, "D3DERR_CONFLICTINGTEXTUREPALETTE", "Conflicting texture palette") + DXERROR9(0x88760827, "D3DERR_DRIVERINTERNALDXERROR", "Driver internal error") + DXERROR9(0x88760866, "D3DERR_NOTFOUND", "Not found") + DXERROR9(0x88760867, "D3DERR_MOREDATA", "More data") + DXERROR9(0x88760868, "D3DERR_DEVICELOST", "Device lost") + DXERROR9(0x88760869, "D3DERR_DEVICENOTRESET", "Device not reset") + DXERROR9(0x8876086a, "D3DERR_NOTAVAILABLE", "Not available") + DXERROR9(0x8876086b, "D3DERR_INVALIDDEVICE", "Invalid device") + DXERROR9(0x8876086c, "D3DERR_INVALIDCALL", "Invalid call") + DXERROR9(0x8876086d, "D3DERR_DRIVERINVALIDCALL", "Driver invalid call") + DXERROR9(0x88760b54, "D3DXERR_CANNOTMODIFYINDEXBUFFER", "Can not modify index buffer") + DXERROR9(0x88760b55, "D3DXERR_INVALIDMESH", "Invalid mesh") + DXERROR9(0x88760b56, "D3DXERR_CANNOTATTRSORT", "Cannot attr sort") + DXERROR9(0x88760b57, "D3DXERR_SKINNINGNOTSUPPORTED", "Skinning not supported") + DXERROR9(0x88760b58, "D3DXERR_TOOMANYINFLUENCES", "Too many influences") + DXERROR9(0x88760b59, "D3DXERR_INVALIDDATA", "Invalid data") + DXERROR9(0x88760b5a, "D3DXERR_LOADEDMESHASNODATA", "Loaded mesh has no data") + DXERROR9(0x88760b5b, "D3DXERR_DUPLICATENAMEDFRAGMENT", "Duplicate named fragment") + DXERROR(0x8878000a, "DSERR_ALLOCATED", "The call failed because resources (such as a priority level) were already being used by another caller") + DXERROR(0x8878001e, "DSERR_CONTROLUNAVAIL", "The control (vol, pan, etc.) requested by the caller is not available") + DXERROR(0x88780032, "DSERR_INVALIDCALL", "This call is not valid for the current state of this object") + DXERROR(0x88780046, "DSERR_PRIOLEVELNEEDED", "The caller does not have the priority level required for the function to succeed") + DXERROR(0x88780064, "DSERR_BADFORMAT", "The specified WAVE format is not supported") + DXERROR(0x88780078, "DSERR_NODRIVER", "No sound driver is available for use") + DXERROR(0x88780082, "DSERR_ALREADYINITIALIZED", "This object is already initialized") + DXERROR(0x88780096, "DSERR_BUFFERLOST", "The buffer memory has been lost, and must be restored") + DXERROR(0x887800a0, "DSERR_OTHERAPPHASPRIO", "Another app has a higher priority level, preventing this call from succeeding") + DXERROR(0x887800aa, "DSERR_UNINITIALIZED", "This object has not been initialized") + DXERROR(0x887800b4, "DSERR_BUFFERTOOSMALL", "Tried to create a DSBCAPS_CTRLFX buffer shorter than DSBSIZE_FX_MIN milliseconds") + DXERROR(0x887800be, "DSERR_DS8_REQUIRED", "Attempt to use DirectSound 8 functionality on an older DirectSound object") + DXERROR(0x887800c8, "DSERR_SENDLOOP", "A circular loop of send effects was detected") + DXERROR(0x887800d2, "DSERR_BADSENDBUFFERGUID", "The GUID specified in an audiopath file does not match a valid MIXIN buffer") + DXERROR(0x88781101, "DMUS_E_DRIVER_FAILED", "An unexpected error was returned from a device driver, indicating possible failure of the driver or hardware.") + DXERROR(0x88781102, "DMUS_E_PORTS_OPEN", "The requested operation cannot be performed while there are instantiated ports in any process in the system.") + DXERROR(0x88781103, "DMUS_E_DEVICE_IN_USE", "The requested device is already in use (possibly by a non-DirectMusic client) and cannot be opened again.") + DXERROR(0x88781104, "DMUS_E_INSUFFICIENTBUFFER", "Buffer is not large enough for requested operation.") + DXERROR(0x88781105, "DMUS_E_BUFFERNOTSET", "No buffer was prepared for the download data.") + DXERROR(0x88781106, "DMUS_E_BUFFERNOTAVAILABLE", "Download failed due to inability to access or create download buffer.") + DXERROR(0x88781108, "DMUS_E_NOTADLSCOL", "Error parsing DLS collection. File is corrupt.") + DXERROR(0x88781109, "DMUS_E_INVALIDOFFSET", "Wave chunks in DLS collection file are at incorrect offsets.") + DXERROR(0x88781111, "DMUS_E_ALREADY_LOADED", "Second attempt to load a DLS collection that is currently open. ") + DXERROR(0x88781113, "DMUS_E_INVALIDPOS", "Error reading wave data from DLS collection. Indicates bad file.") + DXERROR(0x88781114, "DMUS_E_INVALIDPATCH", "There is no instrument in the collection that matches patch number.") + DXERROR(0x88781115, "DMUS_E_CANNOTSEEK", "The IStream* doesn't support Seek().") + DXERROR(0x88781116, "DMUS_E_CANNOTWRITE", "The IStream* doesn't support Write().") + DXERROR(0x88781117, "DMUS_E_CHUNKNOTFOUND", "The RIFF parser doesn't contain a required chunk while parsing file.") + DXERROR(0x88781119, "DMUS_E_INVALID_DOWNLOADID", "Invalid download id was used in the process of creating a download buffer.") + DXERROR(0x88781120, "DMUS_E_NOT_DOWNLOADED_TO_PORT", "Tried to unload an object that was not downloaded or previously unloaded.") + DXERROR(0x88781121, "DMUS_E_ALREADY_DOWNLOADED", "Buffer was already downloaded to synth.") + DXERROR(0x88781122, "DMUS_E_UNKNOWN_PROPERTY", "The specified property item was not recognized by the target object.") + DXERROR(0x88781123, "DMUS_E_SET_UNSUPPORTED", "The specified property item may not be set on the target object.") + DXERROR(0x88781124, "DMUS_E_GET_UNSUPPORTED", "* The specified property item may not be retrieved from the target object.") + DXERROR(0x88781125, "DMUS_E_NOTMONO", "Wave chunk has more than one interleaved channel. DLS format requires MONO.") + DXERROR(0x88781126, "DMUS_E_BADARTICULATION", "Invalid articulation chunk in DLS collection.") + DXERROR(0x88781127, "DMUS_E_BADINSTRUMENT", "Invalid instrument chunk in DLS collection.") + DXERROR(0x88781128, "DMUS_E_BADWAVELINK", "Wavelink chunk in DLS collection points to invalid wave.") + DXERROR(0x88781129, "DMUS_E_NOARTICULATION", "Articulation missing from instrument in DLS collection.") + DXERROR(0x8878112a, "DMUS_E_NOTPCM", "Downoaded DLS wave is not in PCM format. ") + DXERROR(0x8878112b, "DMUS_E_BADWAVE", "Bad wave chunk in DLS collection") + DXERROR(0x8878112c, "DMUS_E_BADOFFSETTABLE", "Offset Table for download buffer has errors. ") + DXERROR(0x8878112d, "DMUS_E_UNKNOWNDOWNLOAD", "Attempted to download unknown data type.") + DXERROR(0x8878112e, "DMUS_E_NOSYNTHSINK", "The operation could not be completed because no sink was connected to the synthesizer.") + DXERROR(0x8878112f, "DMUS_E_ALREADYOPEN", "An attempt was made to open the software synthesizer while it was already open.") + DXERROR(0x88781130, "DMUS_E_ALREADYCLOSED", "An attempt was made to close the software synthesizer while it was already open.") + DXERROR(0x88781131, "DMUS_E_SYNTHNOTCONFIGURED", "The operation could not be completed because the software synth has not yet been fully configured.") + DXERROR(0x88781132, "DMUS_E_SYNTHACTIVE", "The operation cannot be carried out while the synthesizer is active.") + DXERROR(0x88781133, "DMUS_E_CANNOTREAD", "An error occurred while attempting to read from the IStream* object.") + DXERROR(0x88781134, "DMUS_E_DMUSIC_RELEASED", "The operation cannot be performed because the final instance of the DirectMusic object was released. Ports cannot be used after final release of the DirectMusic object.") + DXERROR(0x88781135, "DMUS_E_BUFFER_EMPTY", "There was no data in the referenced buffer.") + DXERROR(0x88781136, "DMUS_E_BUFFER_FULL", "There is insufficient space to insert the given event into the buffer.") + DXERROR(0x88781137, "DMUS_E_PORT_NOT_CAPTURE", "The given operation could not be carried out because the port is a capture port.") + DXERROR(0x88781138, "DMUS_E_PORT_NOT_RENDER", "The given operation could not be carried out because the port is a render port.") + DXERROR(0x88781139, "DMUS_E_DSOUND_NOT_SET", "The port could not be created because no DirectSound has been specified. Specify a DirectSound interface via the IDirectMusic::SetDirectSound method; pass NULL to have DirectMusic manage usage of DirectSound.") + DXERROR(0x8878113a, "DMUS_E_ALREADY_ACTIVATED", "The operation cannot be carried out while the port is active.") + DXERROR(0x8878113b, "DMUS_E_INVALIDBUFFER", "Invalid DirectSound buffer was handed to port. ") + DXERROR(0x8878113c, "DMUS_E_WAVEFORMATNOTSUPPORTED", "Invalid buffer format was handed to the synth sink.") + DXERROR(0x8878113d, "DMUS_E_SYNTHINACTIVE", "The operation cannot be carried out while the synthesizer is inactive.") + DXERROR(0x8878113e, "DMUS_E_DSOUND_ALREADY_SET", "IDirectMusic::SetDirectSound has already been called. It may not be changed while in use.") + DXERROR(0x8878113f, "DMUS_E_INVALID_EVENT", "The given event is invalid (either it is not a valid MIDI message or it makes use of running status). The event cannot be packed into the buffer.") + DXERROR(0x88781150, "DMUS_E_UNSUPPORTED_STREAM", "The IStream* object does not contain data supported by the loading object.") + DXERROR(0x88781151, "DMUS_E_ALREADY_INITED", "The object has already been initialized.") + DXERROR(0x88781152, "DMUS_E_INVALID_BAND", "The file does not contain a valid band.") + DXERROR(0x88781155, "DMUS_E_TRACK_HDR_NOT_FIRST_CK", "The IStream* object's data does not have a track header as the first chunk, and therefore can not be read by the segment object.") + DXERROR(0x88781156, "DMUS_E_TOOL_HDR_NOT_FIRST_CK", "The IStream* object's data does not have a tool header as the first chunk, and therefore can not be read by the graph object.") + DXERROR(0x88781157, "DMUS_E_INVALID_TRACK_HDR", "The IStream* object's data contains an invalid track header (ckid is 0 and fccType is NULL,) and therefore can not be read by the segment object.") + DXERROR(0x88781158, "DMUS_E_INVALID_TOOL_HDR", "The IStream* object's data contains an invalid tool header (ckid is 0 and fccType is NULL,) and therefore can not be read by the graph object.") + DXERROR(0x88781159, "DMUS_E_ALL_TOOLS_FAILED", "The graph object was unable to load all tools from the IStream* object data. This may be due to errors in the stream, or the tools being incorrectly registered on the client.") + DXERROR(0x88781160, "DMUS_E_ALL_TRACKS_FAILED", "The segment object was unable to load all tracks from the IStream* object data. This may be due to errors in the stream, or the tracks being incorrectly registered on the client.") + DXERROR(0x88781161, "DSERR_OBJECTNOTFOUND", "The object requested was not found (numerically equal to DMUS_E_NOT_FOUND)") + DXERROR(0x88781162, "DMUS_E_NOT_INIT", "A required object is not initialized or failed to initialize.") + DXERROR(0x88781163, "DMUS_E_TYPE_DISABLED", "The requested parameter type is currently disabled. Parameter types may be enabled and disabled by certain calls to SetParam().") + DXERROR(0x88781164, "DMUS_E_TYPE_UNSUPPORTED", "The requested parameter type is not supported on the object.") + DXERROR(0x88781165, "DMUS_E_TIME_PAST", "The time is in the past, and the operation can not succeed.") + DXERROR(0x88781166, "DMUS_E_TRACK_NOT_FOUND", "The requested track is not contained by the segment.") + DXERROR(0x88781167, "DMUS_E_TRACK_NO_CLOCKTIME_SUPPORT", "The track does not support clock time playback or getparam.") + DXERROR(0x88781170, "DMUS_E_NO_MASTER_CLOCK", "There is no master clock in the performance. Be sure to call IDirectMusicPerformance::Init().") + DXERROR(0x88781180, "DMUS_E_LOADER_NOCLASSID", "The class id field is required and missing in the DMUS_OBJECTDESC.") + DXERROR(0x88781181, "DMUS_E_LOADER_BADPATH", "The requested file path is invalid.") + DXERROR(0x88781182, "DMUS_E_LOADER_FAILEDOPEN", "File open failed - either file doesn't exist or is locked.") + DXERROR(0x88781183, "DMUS_E_LOADER_FORMATNOTSUPPORTED", "Search data type is not supported.") + DXERROR(0x88781184, "DMUS_E_LOADER_FAILEDCREATE", "Unable to find or create object.") + DXERROR(0x88781185, "DMUS_E_LOADER_OBJECTNOTFOUND", "Object was not found.") + DXERROR(0x88781186, "DMUS_E_LOADER_NOFILENAME", "The file name is missing from the DMUS_OBJECTDESC.") + DXERROR(0x88781200, "DMUS_E_INVALIDFILE", "The file requested is not a valid file.") + DXERROR(0x88781201, "DMUS_E_ALREADY_EXISTS", "The tool is already contained in the graph. Create a new instance.") + DXERROR(0x88781202, "DMUS_E_OUT_OF_RANGE", "Value is out of range, for instance the requested length is longer than the segment.") + DXERROR(0x88781203, "DMUS_E_SEGMENT_INIT_FAILED", "Segment initialization failed, most likely due to a critical memory situation.") + DXERROR(0x88781204, "DMUS_E_ALREADY_SENT", "The DMUS_PMSG has already been sent to the performance object via IDirectMusicPerformance::SendPMsg().") + DXERROR(0x88781205, "DMUS_E_CANNOT_FREE", "The DMUS_PMSG was either not allocated by the performance via IDirectMusicPerformance::AllocPMsg() or it was already freed via IDirectMusicPerformance::FreePMsg().") + DXERROR(0x88781206, "DMUS_E_CANNOT_OPEN_PORT", "The default system port could not be opened.") + DXERROR(0x88781207, "DMUS_E_CANNOT_CONVERT", "A call to MIDIToMusic() or MusicToMIDI() resulted in an error because the requested conversion could not happen. This usually occurs when the provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern.") + DXERROR(0x88781210, "DMUS_E_DESCEND_CHUNK_FAIL", "DMUS_E_DESCEND_CHUNK_FAIL is returned when the end of the file was reached before the desired chunk was found.") + DXERROR(0x88781211, "DMUS_E_NOT_LOADED", "An attempt to use this object failed because it first needs to be loaded.") + DXERROR(0x88781213, "DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLE", "The activeX scripting engine for the script's language is not compatible with DirectMusic.") + DXERROR(0x88781214, "DMUS_E_SCRIPT_UNSUPPORTED_VARTYPE", "A varient was used that had a type that is not supported by DirectMusic.") + DXERROR(0x88781215, "DMUS_E_SCRIPT_DXERROR_IN_SCRIPT", "An error was encountered while parsing or executing the script. The pErrorInfo parameter (if supplied) was filled with information about the error.") + DXERROR(0x88781216, "DMUS_E_SCRIPT_CANTLOAD_OLEAUT32", "Loading of oleaut32.dll failed. VBScript and other activeX scripting languages require use of oleaut32.dll. On platforms where oleaut32.dll is not present, only the DirectMusicScript language, which doesn't require oleaut32.dll can be used.") + DXERROR(0x88781217, "DMUS_E_SCRIPT_LOADSCRIPT_DXERROR", "An error occured while parsing a script loaded using LoadScript. The script that was loaded contains an error.") + DXERROR(0x88781218, "DMUS_E_SCRIPT_INVALID_FILE", "The script file is invalid.") + DXERROR(0x88781219, "DMUS_E_INVALID_SCRIPTTRACK", "The file contains an invalid script track.") + DXERROR(0x8878121a, "DMUS_E_SCRIPT_VARIABLE_NOT_FOUND", "The script does not contain a variable with the specified name.") + DXERROR(0x8878121b, "DMUS_E_SCRIPT_ROUTINE_NOT_FOUND", "The script does not contain a routine with the specified name.") + DXERROR(0x8878121c, "DMUS_E_SCRIPT_CONTENT_READONLY", "Scripts variables for content referenced or embedded in a script cannot be set.") + DXERROR(0x8878121d, "DMUS_E_SCRIPT_NOT_A_REFERENCE", "Attempt was made to set a script's variable by reference to a value that was not an object type.") + DXERROR(0x8878121e, "DMUS_E_SCRIPT_VALUE_NOT_SUPPORTED", "Attempt was made to set a script's variable by value to an object that does not support a default value property.") + DXERROR(0x88781220, "DMUS_E_INVALID_SEGMENTTRIGGERTRACK", "The file contains an invalid segment trigger track.") + DXERROR(0x88781221, "DMUS_E_INVALID_LYRICSTRACK", "The file contains an invalid lyrics track.") + DXERROR(0x88781222, "DMUS_E_INVALID_PARAMCONTROLTRACK", "The file contains an invalid parameter control track.") + DXERROR(0x88781223, "DMUS_E_AUDIOVBSCRIPT_SYNTAXDXERROR", "A script written in AudioVBScript could not be read because it contained a statement that is not allowed by the AudioVBScript language.") + DXERROR(0x88781224, "DMUS_E_AUDIOVBSCRIPT_RUNTIMEDXERROR", "A script routine written in AudioVBScript failed because an invalid operation occurred. For example, adding the number 3 to a segment object would produce this error. So would attempting to call a routine that doesn't exist.") + DXERROR(0x88781225, "DMUS_E_AUDIOVBSCRIPT_OPERATIONFAILURE", "A script routine written in AudioVBScript failed because a function outside of a script failed to complete. For example, a call to PlaySegment that fails to play because of low memory would return this error.") + DXERROR(0x88781226, "DMUS_E_AUDIOPATHS_NOT_VALID", "The Performance has set up some PChannels using the AssignPChannel command, which makes it not capable of supporting audio paths.") + DXERROR(0x88781227, "DMUS_E_AUDIOPATHS_IN_USE", "This is the inverse of the previous error. The Performance has set up some audio paths, which makes is incompatible with the calls to allocate pchannels, etc. ") + DXERROR(0x88781228, "DMUS_E_NO_AUDIOPATH_CONFIG", "A segment or song was asked for its embedded audio path configuration, but there isn't any. ") + DXERROR(0x88781229, "DMUS_E_AUDIOPATH_INACTIVE", "An audiopath is inactive, perhaps because closedown was called.") + DXERROR(0x8878122a, "DMUS_E_AUDIOPATH_NOBUFFER", "An audiopath failed to create because a requested buffer could not be created.") + DXERROR(0x8878122b, "DMUS_E_AUDIOPATH_NOPORT", "An audiopath could not be used for playback because it lacked port assignments.") + DXERROR(0x8878122c, "DMUS_E_NO_AUDIOPATH", "Attempt was made to play segment in audiopath mode and there was no audiopath.") + DXERROR(0x8878122d, "DMUS_E_INVALIDCHUNK", "Invalid data was found in a RIFF file chunk.") + DXERROR(0x8878122e, "DMUS_E_AUDIOPATH_NOGLOBALFXBUFFER", "Attempt was made to create an audiopath that sends to a global effects buffer which did not exist.") + DXERRORLAST(0x8878122f, "DMUS_E_INVALID_CONTAINER_OBJECT", "The file does not contain a valid container object.") +}; + +static Error UnknownError = DXERRORLAST(0xffffffff, "Unknown", "n/a"); + +static Error *FindError(unsigned long hr) +{ + register Error *Base = &Errors[0]; + register int Limit; + register Error *Ptr; + + for (Limit = sizeof(Errors) / sizeof(Error); Limit != 0; Limit >>= 1) + { + Ptr = Base + (Limit >> 1); + if (hr == Ptr->Value) + return Ptr; + if (hr > Ptr->Value) + { + Base = Ptr + 1; + Limit--; + } + } + return &UnknownError; +} + +const TCHAR * __stdcall DXGetErrorString(unsigned long); +const TCHAR * __stdcall DXGetErrorString(unsigned long hr) +{ + return FindError(hr)->Name; +} + +const TCHAR * __stdcall DXGetErrorDescription(unsigned long); +const TCHAR * __stdcall DXGetErrorDescription(unsigned long hr) +{ + return FindError(hr)->Description; +} + +HRESULT __stdcall DXTrace(char *strFile, DWORD, HRESULT, TCHAR *, BOOL); +HRESULT __stdcall DXTrace(char *strFile, DWORD dwLine, HRESULT hr, + TCHAR *strMsg, BOOL bPopMsgBox) +{ +// FIXME: Decide which version to use? +// The first version uses dynamic memory allocation and is +// safer. Second version uses static arrays and that is why +// it can be better for debugging. +#if 0 + const TCHAR *ErrorName = DXGetErrorString9(hr); + TCHAR *DebugMessage; + + DebugMessage = (TCHAR *)malloc((strlen(strFile) + (strMsg ? _tcslen(strMsg) : 0) + _tcslen(ErrorName) + 48) * sizeof(TCHAR)); + if (DebugMessage == 0) + return hr; + wsprintf(DebugMessage, TEXT("%hs(%Lu): %s (hr=%s(0x%Lx))"), strFile, dwLine, (strMsg ? strMsg : TEXT("")) ErrorName, hr); + OutputDebugString(DebugMessage); + free(DebugMessage); + + if (bPopMsgBox) + { + int Result; + + DebugMessage = (TCHAR *)malloc((strlen(strFile) + (strMsg ? _tcslen(strMsg) : 0) + _tcslen(ErrorName) + 60) * sizeof(TCHAR)); + if (DebugMessage == 0) + return DXERROR_NOT_ENOUGH_MEMORY; + wsprintf(DebugMessage, + TEXT("File: %hs\nLine: %Lu\nError Code: %s(0x%Lx)\nCalling: %s\n" + "Do you want to debug the application?"), strFile, dwLine, + ErrorName, hr, (strMsg ? strMsg : TEXT(""))); + Result = MessageBox(0, DebugMessage, TEXT("Unexpected error encountred"), MB_YESNO | MB_ICONDXERROR); + if (Result == 0) + return hr; + if (Result == IDYES) + { + free(DebugMessage); + DebugBreak(); + } else + free(DebugMessage); + } + return hr; +#else + const TCHAR *ErrorName = DXGetErrorString(hr); + TCHAR DebugMessage[4096]; + + wsprintf(DebugMessage, TEXT("%hs(%Lu): %s (hr=%s(0x%Lx))"), strFile, dwLine, (strMsg ? strMsg : TEXT("")), ErrorName, hr); + OutputDebugString(DebugMessage); + if (bPopMsgBox) + { + int Result; + wsprintf(DebugMessage, + TEXT("File: %hs\nLine: %Lu\nError Code: %s(0x%Lx)\nCalling: %s\n" + "Do you want to debug the application?"), strFile, dwLine, + ErrorName, hr, (strMsg ? strMsg : TEXT(""))); + Result = MessageBox(0, DebugMessage, TEXT("Unexpected error encountred"), MB_YESNO | MB_ICONERROR); + if (Result == IDYES) + DebugBreak(); + } + return hr; +#endif +} + diff --git a/lib/libc/mingw/libsrc/dxerr8.c b/lib/libc/mingw/libsrc/dxerr8.c new file mode 100644 index 0000000000..6794e32d8f --- /dev/null +++ b/lib/libc/mingw/libsrc/dxerr8.c @@ -0,0 +1,18 @@ +/* + + dxerr8.c - DirectX 8 Error Functions + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#define DXGetErrorString DXGetErrorString8A +#define DXGetErrorDescription DXGetErrorDescription8A +#define DXTrace DXTraceA +#define DXERROR8(v,n,d) {v, n, d}, +#define DXERROR8LAST(v,n,d) {v, n, d} +#include "dxerr.c" diff --git a/lib/libc/mingw/libsrc/dxerr8w.c b/lib/libc/mingw/libsrc/dxerr8w.c new file mode 100644 index 0000000000..207bd884b3 --- /dev/null +++ b/lib/libc/mingw/libsrc/dxerr8w.c @@ -0,0 +1,21 @@ +/* + + dxerr8w.c - DirectX 8 Wide Character Error Functions + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#define UNICODE +#define _UNICODE +#define DXGetErrorString DXGetErrorString8W +#define DXGetErrorDescription DXGetErrorDescription8W +#define DXTrace DXTraceW +#define DXERROR8(v,n,d) {v, L##n, L##d}, +#define DXERROR8LAST(v,n,d) {v, L##n, L##d} +#include "dxerr.c" + diff --git a/lib/libc/mingw/libsrc/dxerr9.c b/lib/libc/mingw/libsrc/dxerr9.c new file mode 100644 index 0000000000..af2d859e03 --- /dev/null +++ b/lib/libc/mingw/libsrc/dxerr9.c @@ -0,0 +1,18 @@ +/* + + dxerr9.c - DirectX 9 Error Functions + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#define DXGetErrorString DXGetErrorString9A +#define DXGetErrorDescription DXGetErrorDescription9A +#define DXTrace DXTraceA +#define DXERROR9(v,n,d) {v, n, d}, +#define DXERROR9LAST(v,n,d) {v, n, d} +#include "dxerr.c" diff --git a/lib/libc/mingw/libsrc/dxerr9w.c b/lib/libc/mingw/libsrc/dxerr9w.c new file mode 100644 index 0000000000..9556598a04 --- /dev/null +++ b/lib/libc/mingw/libsrc/dxerr9w.c @@ -0,0 +1,21 @@ +/* + + dxerr9w.c - DirectX 9 Wide Character Error Functions + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#define UNICODE +#define _UNICODE +#define DXGetErrorString DXGetErrorString9W +#define DXGetErrorDescription DXGetErrorDescription9W +#define DXTrace DXTraceW +#define DXERROR9(v,n,d) {v, L##n, L##d}, +#define DXERROR9LAST(v,n,d) {v, L##n, L##d} +#include "dxerr.c" + diff --git a/lib/libc/mingw/libsrc/dxguid.c b/lib/libc/mingw/libsrc/dxguid.c new file mode 100644 index 0000000000..a56d6731c4 --- /dev/null +++ b/lib/libc/mingw/libsrc/dxguid.c @@ -0,0 +1,613 @@ +/* + + dxguid.c - DirectX GUIDs + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#if defined(__LCC__) || defined(__GNUC__) +#define INITGUID 1 +#include +#else +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +DEFINE_GUID(CLSID_CDirect3DRM,0x4516ec41,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_CDirect3DRMAnimation,0x4fa35698,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMAnimationSet,0x4fa35699,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMClippedVisual,0x5434e72d,0x6d66,0x11d1,0xbb,0xb,0x0,0x0,0xf8,0x75,0x86,0x5a); +DEFINE_GUID(CLSID_CDirect3DRMDevice,0x4fa3568e,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMFace,0x4fa35693,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMFrame,0x4fa35690,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator,0xde9eaa2,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_CDirect3DRMLight,0x4fa35694,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator,0xde9eaa6,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_CDirect3DRMMaterial,0x4fa35697,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator,0xde9eaa7,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_CDirect3DRMMesh,0x4fa35691,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder,0x4fa35692,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator,0xde9eaa3,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh,0x4516ec40,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_CDirect3DRMShadow,0x4fa3569b,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMTexture,0x4fa35695,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator,0xde9eaa8,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_CDirect3DRMUserVisual,0x4fa3569a,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMViewport,0x4fa3568f,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator,0xde9eaa1,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_CDirect3DRMWrap,0x4fa35696,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(CLSID_CDirectXFile,0x4516ec43,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(CLSID_DirectDraw,0xd7b70ee0,0x4340,0x11cf,0xb0,0x63,0x0,0x20,0xaf,0xc2,0xcd,0x35); +DEFINE_GUID(CLSID_DirectDraw7,0x3c305196,0x50db,0x11d3,0x9c,0xfe,0x00,0xc0,0x4f,0xd9,0x30,0xc5); +DEFINE_GUID(CLSID_DirectDrawClipper,0x593817a0,0x7db3,0x11cf,0xa2,0xde,0x0,0xaa,0x0,0xb9,0x33,0x56); +DEFINE_GUID(CLSID_DirectDrawFactory2,0xb9dc4790,0x4af1,0x11d1,0x8c,0x4c,0x0,0xc0,0x4f,0xd9,0x30,0xc5); +DEFINE_GUID(CLSID_DirectInput,0x25e609e0,0xb259,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x0,0x0); +DEFINE_GUID(CLSID_DirectInput8,0x25e609e4,0xb259,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(CLSID_DirectInputDevice,0x25e609e1,0xb259,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x0,0x0); +DEFINE_GUID(CLSID_DirectInputDevice8,0x25e609e5,0xb259,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(CLSID_DirectMusic,0x636b9f10,0xc7d,0x11d1,0x95,0xb2,0x0,0x20,0xaf,0xdc,0x74,0x21); +DEFINE_GUID(CLSID_DirectMusicAudioPathConfig,0xee0b9ca0,0xa81e,0x11d3,0x9b,0xd1,0x0,0x80,0xc7,0x15,0xa,0x74); +DEFINE_GUID(CLSID_DirectMusicBand,0x79ba9e00,0xb6ee,0x11d1,0x86,0xbe,0x0,0xc0,0x4f,0xbf,0x8f,0xef); +DEFINE_GUID(CLSID_DirectMusicBandTrack,0xd2ac2894,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicCollection,0x480ff4b0,0x28b2,0x11d1,0xbe,0xf7,0x0,0xc0,0x4f,0xbf,0x8f,0xef); +DEFINE_GUID(CLSID_DirectMusicCommandTrack,0xd2ac288c,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicComposer,0xd2ac2890,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicContainer,0x9301e380,0x1f22,0x11d3,0x82,0x26,0xd2,0xfa,0x76,0x25,0x5d,0x47); +DEFINE_GUID(CLSID_DirectMusicGraph,0xd2ac2884,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicChordMap,0xd2ac288f,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicChordMapTrack,0xd2ac2896,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicChordTrack,0xd2ac288b,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicLoader,0xd2ac2892,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicLyricsTrack,0x995c1cf5,0x54ff,0x11d3,0x8b,0xda,0x0,0x60,0x8,0x93,0xb1,0xb6); +DEFINE_GUID(CLSID_DirectMusicMarkerTrack,0x55a8fd00,0x4288,0x11d3,0x9b,0xd1,0x8a,0xd,0x61,0xc8,0x88,0x35); +DEFINE_GUID(CLSID_DirectMusicMelodyFormulationTrack,0xb0684266,0xb57f,0x11d2,0x97,0xf9,0x0,0xc0,0x4f,0xa3,0x6e,0x58); +DEFINE_GUID(CLSID_DirectMusicMotifTrack,0xd2ac288e,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicMuteTrack,0xd2ac2898,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicParamControlTrack,0x4be0537b,0x5c19,0x11d3,0x8b,0xdc,0x0,0x60,0x8,0x93,0xb1,0xb6); +DEFINE_GUID(CLSID_DirectMusicPatternTrack,0xd2ac2897,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicPerformance,0xd2ac2881,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicScript,0x810b5013,0xe88d,0x11d2,0x8b,0xc1,0x0,0x60,0x8,0x93,0xb1,0xb6); +DEFINE_GUID(CLSID_DirectMusicScriptTrack,0x4108fa85,0x3586,0x11d3,0x8b,0xd7,0x0,0x60,0x8,0x93,0xb1,0xb6); +DEFINE_GUID(CLSID_DirectMusicSegment,0xd2ac2882,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicSegmentState,0xd2ac2883,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicSegmentTriggerTrack,0xbae4d665,0x4ea1,0x11d3,0x8b,0xda,0x0,0x60,0x8,0x93,0xb1,0xb6); +DEFINE_GUID(CLSID_DirectMusicSeqTrack,0xd2ac2886,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicSignPostTrack,0xf17e8672,0xc3b4,0x11d1,0x87,0xb,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicSong,0xaed5f0a5,0xd972,0x483d,0xa3,0x84,0x64,0x9d,0xfe,0xb9,0xc1,0x81); +DEFINE_GUID(CLSID_DirectMusicStyle,0xd2ac288a,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicStyleTrack,0xd2ac288d,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicSynth,0x58c2b4d0,0x46e7,0x11d1,0x89,0xac,0x0,0xa0,0xc9,0x5,0x41,0x29); +DEFINE_GUID(CLSID_DirectMusicSysExTrack,0xd2ac2887,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicTempoTrack,0xd2ac2885,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicTimeSigTrack,0xd2ac2888,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(CLSID_DirectMusicWaveTrack,0xeed36461,0x9ea5,0x11d3,0x9b,0xd1,0x0,0x80,0xc7,0x15,0xa,0x74); +DEFINE_GUID(CLSID_DirectPlay,0xd1eb6d20,0x8923,0x11d0,0x9d,0x97,0x0,0xa0,0xc9,0xa,0x43,0xcb); +DEFINE_GUID(CLSID_DirectPlay8Address,0x934a9523,0xa3ca,0x4bc5,0xad,0xa0,0xd6,0xd9,0x5d,0x97,0x94,0x21); +DEFINE_GUID(CLSID_DirectPlay8Client,0x743f1dc6,0x5aba,0x429f,0x8b,0xdf,0xc5,0x4d,0x3,0x25,0x3d,0xc2); +DEFINE_GUID(CLSID_DirectPlay8LobbiedApplication,0x667955ad,0x6b3b,0x43ca,0xb9,0x49,0xbc,0x69,0xb5,0xba,0xff,0x7f); +DEFINE_GUID(CLSID_DirectPlay8LobbyClient,0x3b2b6775,0x70b6,0x45af,0x8d,0xea,0xa2,0x9,0xc6,0x95,0x59,0xf3); +DEFINE_GUID(CLSID_DirectPlay8ThreadPool,0xfc47060e,0x6153,0x4b34,0xb9,0x75,0x8e,0x41,0x21,0xeb,0x7f,0x3c); +DEFINE_GUID(CLSID_DirectPlay8NATResolver,0xe4c1d9a2,0xcbf7,0x48bd,0x9a,0x69,0x34,0xa5,0x5e,0xd,0x89,0x41); +DEFINE_GUID(CLSID_DirectPlay8Peer,0x286f484d,0x375e,0x4458,0xa2,0x72,0xb1,0x38,0xe2,0xf8,0xa,0x6a); +DEFINE_GUID(CLSID_DirectPlay8Server,0xda825e1b,0x6830,0x43d7,0x83,0x5d,0xb,0x5a,0xd8,0x29,0x56,0xa2); +DEFINE_GUID(CLSID_DirectPlayLobby,0x2fe8f810,0xb2a5,0x11d0,0xa7,0x87,0x0,0x0,0xf8,0x3,0xab,0xfc); +DEFINE_GUID(CLSID_DirectPlayVoiceClient,0xb9f3eb85,0xb781,0x4ac1,0x8d,0x90,0x93,0xa0,0x5e,0xe3,0x7d,0x7d); +DEFINE_GUID(CLSID_DirectPlayVoiceServer,0xd3f5b8e6,0x9b78,0x4a4c,0x94,0xea,0xca,0x23,0x97,0xb6,0x63,0xd3); +DEFINE_GUID(CLSID_DirectPlayVoiceTest,0xf0f094b,0xb01c,0x4091,0xa1,0x4d,0xdd,0xc,0xd8,0x7,0x71,0x1a); +DEFINE_GUID(CLSID_DirectSound,0x47d4d946,0x62e8,0x11cf,0x93,0xbc,0x44,0x45,0x53,0x54,0x0,0x0); +DEFINE_GUID(CLSID_DirectSound8,0x3901cc3f,0x84b5,0x4fa4,0xba,0x35,0xaa,0x81,0x72,0xb8,0xa0,0x9b); +DEFINE_GUID(CLSID_DirectSoundCapture,0xb0210780,0x89cd,0x11d0,0xaf,0x8,0x0,0xa0,0xc9,0x25,0xcd,0x16); +DEFINE_GUID(CLSID_DirectSoundCapture8,0xe4bcac13,0x7f99,0x4908,0x9a,0x8e,0x74,0xe3,0xbf,0x24,0xb6,0xe1); +DEFINE_GUID(CLSID_DirectSoundFullDuplex,0xfea4300c,0x7959,0x4147,0xb2,0x6a,0x23,0x77,0xb9,0xe7,0xa9,0x1d); +DEFINE_GUID(CLSID_DirectSoundWave,0x8a667154,0xf9cb,0x11d2,0xad,0x8a,0x0,0x60,0xb0,0x57,0x5a,0xbc); +DEFINE_GUID(CLSID_DirectSoundPrivate,0x11ab3ec0,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca); +DEFINE_GUID(DSPROPSETID_DirectSoundDevice,0x84624f82,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca); +DEFINE_GUID(CLSID_DP8SP_IPX,0x53934290,0x628d,0x11d2,0xae,0xf,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(CLSID_DP8SP_MODEM,0x6d4a3650,0x628d,0x11d2,0xae,0xf,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(CLSID_DP8SP_SERIAL,0x743b5d60,0x628d,0x11d2,0xae,0xf,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(CLSID_DP8SP_TCPIP,0xebfe7ba0,0x628d,0x11d2,0xae,0xf,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(CLSID_DP8SP_BLUETOOTH,0x995513af,0x3027,0x4b9a,0x95,0x6e,0xc7,0x72,0xb3,0xf7,0x80,0x6); +DEFINE_GUID(DDVPTYPE_BROOKTREE,0x1352a560l,0xda61,0x11cf,0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8); +DEFINE_GUID(DDVPTYPE_CCIR656,0xfca326a0l,0xda60,0x11cf,0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8); +DEFINE_GUID(DDVPTYPE_E_HREFH_VREFH,0x54f39980l,0xda60,0x11cf,0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8); +DEFINE_GUID(DDVPTYPE_E_HREFH_VREFL,0x92783220l,0xda60,0x11cf,0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8); +DEFINE_GUID(DDVPTYPE_E_HREFL_VREFH,0xa07a02e0l,0xda60,0x11cf,0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8); +DEFINE_GUID(DDVPTYPE_E_HREFL_VREFL,0xe09c77e0l,0xda60,0x11cf,0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8); +DEFINE_GUID(DDVPTYPE_PHILIPS,0x332cf160l,0xda61,0x11cf,0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8); +DEFINE_GUID(DPAID_ComPort,0xf2f0ce00,0xe0af,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPAID_INet,0xc4a54da0,0xe0af,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPAID_INetPort,0xe4524541,0x8ea5,0x11d1,0x8a,0x96,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(DPAID_INetW,0xe63232a0,0x9dbf,0x11d0,0x9c,0xc1,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPAID_LobbyProvider,0x59b95640,0x9667,0x11d0,0xa7,0x7d,0x0,0x0,0xf8,0x3,0xab,0xfc); +DEFINE_GUID(DPAID_Modem,0xf6dcc200,0xa2fe,0x11d0,0x9c,0x4f,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPAID_ModemW,0x1fd92e0,0xa2ff,0x11d0,0x9c,0x4f,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPAID_Phone,0x78ec89a0,0xe0af,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPAID_PhoneW,0xba5a7a70,0x9dbf,0x11d0,0x9c,0xc1,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPAID_ServiceProvider,0x7d916c0,0xe0af,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPAID_TotalSize,0x1318f560,0x912c,0x11d0,0x9d,0xaa,0x0,0xa0,0xc9,0xa,0x43,0xcb); +DEFINE_GUID(DPLPROPERTY_LobbyGuid,0xf56920a0,0xd218,0x11d0,0xba,0x39,0x0,0xc0,0x4f,0xd7,0xed,0x67); +DEFINE_GUID(DPLPROPERTY_MessagesSupported,0x762ccda1,0xd916,0x11d0,0xba,0x39,0x0,0xc0,0x4f,0xd7,0xed,0x67); +DEFINE_GUID(DPLPROPERTY_PlayerGuid,0xb4319322,0xd20d,0x11d0,0xba,0x39,0x0,0xc0,0x4f,0xd7,0xed,0x67); +DEFINE_GUID(DPLPROPERTY_PlayerScore,0x48784000,0xd219,0x11d0,0xba,0x39,0x0,0xc0,0x4f,0xd7,0xed,0x67); +DEFINE_GUID(DPSPGUID_IPX,0x685bc400,0x9d2c,0x11cf,0xa9,0xcd,0x0,0xaa,0x0,0x68,0x86,0xe3); +DEFINE_GUID(DPSPGUID_TCPIP,0x36e95ee0,0x8577,0x11cf,0x96,0xc,0x0,0x80,0xc7,0x53,0x4e,0x82); +DEFINE_GUID(DPSPGUID_SERIAL,0xf1d6860,0x88d9,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPSPGUID_MODEM,0x44eaa760,0xcb68,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(DPVCTGUID_ADPCM,0x699b52c1,0xa885,0x46a8,0xa3,0x8,0x97,0x17,0x24,0x19,0xad,0xc7); +DEFINE_GUID(DPVCTGUID_GSM,0x24768c60,0x5a0d,0x11d3,0x9b,0xe4,0x52,0x54,0x0,0xd9,0x85,0xe7); +DEFINE_GUID(DPVCTGUID_NONE,0x8de12fd4,0x7cb3,0x48ce,0xa7,0xe8,0x9c,0x47,0xa2,0x2e,0x8a,0xc5); +DEFINE_GUID(DPVCTGUID_SC03,0x7d82a29b,0x2242,0x4f82,0x8f,0x39,0x5d,0x11,0x53,0xdf,0x3e,0x41); +DEFINE_GUID(DPVCTGUID_SC06,0x53def900,0x7168,0x4633,0xb4,0x7f,0xd1,0x43,0x91,0x6a,0x13,0xc7); +DEFINE_GUID(DPVCTGUID_TRUESPEECH,0xd7954361,0x5a0b,0x11d3,0x9b,0xe4,0x52,0x54,0x0,0xd9,0x85,0xe7); +DEFINE_GUID(DPVCTGUID_VR12,0xfe44a9fe,0x8ed4,0x48bf,0x9d,0x66,0x1b,0x1a,0xdf,0xf9,0xff,0x6d); +DEFINE_GUID(DS3DALG_HRTF_FULL,0xc2413340,0x1c1b,0x11d2,0x94,0xf5,0x0,0xc0,0x4f,0xc2,0x8a,0xca); +DEFINE_GUID(DS3DALG_HRTF_LIGHT,0xc2413342,0x1c1b,0x11d2,0x94,0xf5,0x0,0xc0,0x4f,0xc2,0x8a,0xca); +DEFINE_GUID(DS3DALG_NO_VIRTUALIZATION,0xc241333f,0x1c1b,0x11d2,0x94,0xf5,0x0,0xc0,0x4f,0xc2,0x8a,0xca); +DEFINE_GUID(DSDEVID_DefaultCapture,0xdef00001,0x9c6d,0x47ed,0xaa,0xf1,0x4d,0xda,0x8f,0x2b,0x5c,0x03); +DEFINE_GUID(DSDEVID_DefaultPlayback,0xdef00000,0x9c6d,0x47ed,0xaa,0xf1,0x4d,0xda,0x8f,0x2b,0x5c,0x03); +DEFINE_GUID(DSDEVID_DefaultVoiceCapture,0xdef00003,0x9c6d,0x47ed,0xaa,0xf1,0x4d,0xda,0x8f,0x2b,0x5c,0x03); +DEFINE_GUID(DSDEVID_DefaultVoicePlayback,0xdef00002,0x9c6d,0x47ed,0xaa,0xf1,0x4d,0xda,0x8f,0x2b,0x5c,0x03); +DEFINE_GUID(GUID_All_Objects,0xaa114de5,0xc262,0x4169,0xa1,0xc8,0x23,0xd6,0x98,0xcc,0x73,0xb5); +DEFINE_GUID(GUID_BandParam,0x2bb1938,0xcb8b,0x11d2,0x8b,0xb9,0x0,0x60,0x8,0x93,0xb1,0xb6); +DEFINE_GUID(GUID_Buffer_3D_Dry,0x186cc546,0xdb29,0x11d3,0x9b,0xd1,0x0,0x80,0xc7,0x15,0xa,0x74); +DEFINE_GUID(GUID_Buffer_EnvReverb,0x186cc542,0xdb29,0x11d3,0x9b,0xd1,0x0,0x80,0xc7,0x15,0xa,0x74); +DEFINE_GUID(GUID_Buffer_Mono,0x186cc547,0xdb29,0x11d3,0x9b,0xd1,0x0,0x80,0xc7,0x15,0xa,0x74); +DEFINE_GUID(GUID_Buffer_Reverb,0x186cc541,0xdb29,0x11d3,0x9b,0xd1,0x0,0x80,0xc7,0x15,0xa,0x74); +DEFINE_GUID(GUID_Buffer_Stereo,0x186cc545,0xdb29,0x11d3,0x9b,0xd1,0x0,0x80,0xc7,0x15,0xa,0x74); +DEFINE_GUID(GUID_Button,0xa36d02f0,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_Clear_All_Bands,0xd2ac28ab,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_Clear_All_MelodyFragments,0x8509fee6,0xb617,0x11d2,0x97,0xfa,0x0,0xc0,0x4f,0xa3,0x6e,0x58); +DEFINE_GUID(GUID_ColorControlCallbacks,0xefd60cc2,0x49e7,0x11d0,0x88,0x9d,0x0,0xaa,0x0,0xbb,0xb7,0x6a); +DEFINE_GUID(GUID_CommandParam,0xd2ac289d,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_CommandParam2,0x28f97ef7,0x9538,0x11d2,0x97,0xa9,0x0,0xc0,0x4f,0xa3,0x6e,0x58); +DEFINE_GUID(GUID_CommandParamNext,0x472afe7a,0x281b,0x11d3,0x81,0x7d,0x0,0xc0,0x4f,0xa3,0x6e,0x58); +DEFINE_GUID(GUID_ConnectToDLSCollection,0x1db1ae6b,0xe92e,0x11d1,0xa8,0xc5,0x0,0xc0,0x4f,0xa3,0x72,0x6e); +DEFINE_GUID(GUID_ConstantForce,0x13541c20,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_CustomForce,0x13541c2b,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_D3DCallbacks2,0xba584e1,0x70b6,0x11d0,0x88,0x9d,0x0,0xaa,0x0,0xbb,0xb7,0x6a); +DEFINE_GUID(GUID_D3DCallbacks3,0xddf41230,0xec0a,0x11d0,0xa9,0xb6,0x0,0xaa,0x0,0xc0,0x99,0x3e); +DEFINE_GUID(GUID_D3DExtendedCaps,0x7de41f80,0x9d93,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); +DEFINE_GUID(GUID_D3DParseUnknownCommandCallback,0x2e04ffa0,0x98e4,0x11d1,0x8c,0xe1,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(GUID_Damper,0x13541c28,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_DDMoreCaps,0x880baf30,0xb030,0x11d0,0x8e,0xa7,0x0,0x60,0x97,0x97,0xea,0x5b); +DEFINE_GUID(GUID_DDMoreSurfaceCaps,0x3b8a0466,0xf269,0x11d1,0x88,0xb,0x0,0xc0,0x4f,0xd9,0x30,0xc5); +DEFINE_GUID(GUID_DDStereoMode,0xf828169c,0xa8e8,0x11d2,0xa1,0xf2,0x0,0xa0,0xc9,0x83,0xea,0xf6); +DEFINE_GUID(GUID_DefaultGMCollection,0xf17e8673,0xc3b4,0x11d1,0x87,0xb,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_DirectDrawPaletteStream,0x730c7ffc,0x5347,0x11d1,0x8c,0x4d,0x0,0xc0,0x4f,0xd9,0x30,0xc5); +DEFINE_GUID(GUID_DirectDrawSurfaceStream,0xe043bc46,0x5317,0x11d1,0x8c,0x4d,0x0,0xc0,0x4f,0xd9,0x30,0xc5); +DEFINE_GUID(GUID_DirectMusicAllTypes,0xd2ac2893,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_Disable_Auto_Download,0xd2ac28aa,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_DisableTempo,0x45fc707d,0x1db4,0x11d2,0xbc,0xac,0x0,0xa0,0xc9,0x22,0xe6,0xeb); +DEFINE_GUID(GUID_DisableTimeSig,0x45fc707b,0x1db4,0x11d2,0xbc,0xac,0x0,0xa0,0xc9,0x22,0xe6,0xeb); +DEFINE_GUID(GUID_DMUS_PROP_DLS1,0x178f2f27,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(GUID_DMUS_PROP_DLS2,0xf14599e5,0x4689,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(GUID_DMUS_PROP_Effects,0xcda8d611,0x684a,0x11d2,0x87,0x1e,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_DMUS_PROP_GM_Hardware,0x178f2f24,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(GUID_DMUS_PROP_GS_Capable,0x6496aba2,0x61b0,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(GUID_DMUS_PROP_GS_Hardware,0x178f2f25,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(GUID_DMUS_PROP_INSTRUMENT2,0x865fd372,0x9f67,0x11d2,0x87,0x2a,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_DMUS_PROP_LegacyCaps,0xcfa7cdc2,0x00a1,0x11d2,0xaa,0xd5,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(GUID_DMUS_PROP_MemorySize,0x178f2f28,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(GUID_DMUS_PROP_SampleMemorySize,0x178f2f28,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(GUID_DMUS_PROP_SamplePlaybackRate,0x2a91f713,0xa4bf,0x11d2,0xbb,0xdf,0x0,0x60,0x8,0x33,0xdb,0xd8); +DEFINE_GUID(GUID_DMUS_PROP_SynthSink_DSOUND,0xaa97844,0xc877,0x11d1,0x87,0xc,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_DMUS_PROP_SynthSink_WAVE,0xaa97845,0xc877,0x11d1,0x87,0xc,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_DMUS_PROP_Volume,0xfedfae25l,0xe46e,0x11d1,0xaa,0xce,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(GUID_DMUS_PROP_WavesReverb,0x4cb5622,0x32e5,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(GUID_DMUS_PROP_WriteLatency,0x268a0fa0,0x60f2,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(GUID_DMUS_PROP_WritePeriod,0x268a0fa1,0x60f2,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(GUID_DMUS_PROP_XG_Capable,0x6496aba1,0x61b0,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(GUID_DMUS_PROP_XG_Hardware,0x178f2f26,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(GUID_Download,0xd2ac28a7,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_DownloadToAudioPath,0x9f2c0341,0xc5c4,0x11d3,0x9b,0xd1,0x44,0x45,0x53,0x54,0x0,0x0); +DEFINE_GUID(GUID_DSCFX_CLASS_AEC,0xbf963d80l,0xc559,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(GUID_DSCFX_CLASS_NS,0xe07f903f,0x62fd,0x4e60,0x8c,0xdd,0xde,0xa7,0x23,0x66,0x65,0xb5); +DEFINE_GUID(GUID_DSCFX_MS_AEC,0xcdebb919,0x379a,0x488a,0x87,0x65,0xf5,0x3c,0xfd,0x36,0xde,0x40); +DEFINE_GUID(GUID_DSCFX_MS_NS,0x11c5c73b,0x66e9,0x4ba1,0xa0,0xba,0xe8,0x14,0xc6,0xee,0xd9,0x2d); +DEFINE_GUID(GUID_DSCFX_SYSTEM_AEC,0x1c22c56d,0x9879,0x4f5b,0xa3,0x89,0x27,0x99,0x6d,0xdc,0x28,0x10); +DEFINE_GUID(GUID_DSCFX_SYSTEM_NS,0x5ab0882e,0x7274,0x4516,0x87,0x7d,0x4e,0xee,0x99,0xba,0x4f,0xd0); +DEFINE_GUID(GUID_DSFX_STANDARD_COMPRESSOR,0xef011f79,0x4000,0x406d,0x87,0xaf,0xbf,0xfb,0x3f,0xc3,0x9d,0x57); +DEFINE_GUID(GUID_DSFX_STANDARD_DISTORTION,0xef114c90,0xcd1d,0x484e,0x96,0xe5,0x09,0xcf,0xaf,0x91,0x2a,0x21); +DEFINE_GUID(GUID_DSFX_STANDARD_ECHO,0xef3e932c,0xd40b,0x4f51,0x8c,0xcf,0x3f,0x98,0xf1,0xb2,0x9d,0x5d); +DEFINE_GUID(GUID_DSFX_STANDARD_FLANGER,0xefca3d92,0xdfd8,0x4672,0xa6,0x03,0x74,0x20,0x89,0x4b,0xad,0x98); +DEFINE_GUID(GUID_DSFX_STANDARD_GARGLE,0xdafd8210,0x5711,0x4b91,0x9f,0xe3,0xf7,0x5b,0x7a,0xe2,0x79,0xbf); +DEFINE_GUID(GUID_DSFX_STANDARD_CHORUS,0xefe6629c,0x81f7,0x4281,0xbd,0x91,0xc9,0xd6,0x04,0xa9,0x5a,0xf6); +DEFINE_GUID(GUID_DSFX_STANDARD_I3DL2REVERB,0xef985e71,0xd5c7,0x42d4,0xba,0x4d,0x2d,0x07,0x3e,0x2e,0x96,0xf4); +DEFINE_GUID(GUID_DSFX_STANDARD_PARAMEQ,0x120ced89,0x3bf4,0x4173,0xa1,0x32,0x3c,0xb4,0x06,0xcf,0x32,0x31); +DEFINE_GUID(GUID_DSFX_WAVES_REVERB,0x87fc0268,0x9a55,0x4360,0x95,0xaa,0x00,0x4a,0x1d,0x9d,0xe2,0x6c); +DEFINE_GUID(GUID_Enable_Auto_Download,0xd2ac28a9,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_EnableTempo,0x45fc707e,0x1db4,0x11d2,0xbc,0xac,0x0,0xa0,0xc9,0x22,0xe6,0xeb); +DEFINE_GUID(GUID_EnableTimeSig,0x45fc707c,0x1db4,0x11d2,0xbc,0xac,0x0,0xa0,0xc9,0x22,0xe6,0xeb); +DEFINE_GUID(GUID_Friction,0x13541c2a,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_HIDClass,0x745a17a0,0x74d3,0x11d0,0xb6,0xfe,0x00,0xa0,0xc9,0x0f,0x57,0xda); +DEFINE_GUID(GUID_ChordParam,0xd2ac289e,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_IDirectMusicBand,0xd2ac28ac,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_IDirectMusicChordMap,0xd2ac28ad,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_IDirectMusicStyle,0xd2ac28a1,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_Inertia,0x13541c29,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_Joystick,0x6f1d2b70,0xd5a0,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_KernelCallbacks,0x80863800,0x6b06,0x11d0,0x9b,0x6,0x0,0xa0,0xc9,0x3,0xa3,0xb8); +DEFINE_GUID(GUID_KernelCaps,0xffaa7540,0x7aa8,0x11d0,0x9b,0x6,0x0,0xa0,0xc9,0x3,0xa3,0xb8); +DEFINE_GUID(GUID_Key,0x55728220,0xd33c,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_KeyboardClass,0x4d36e96b,0xe325,0x11ce,0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18); +DEFINE_GUID(GUID_MediaClass,0x4d36e96c,0xe325,0x11ce,0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18); +DEFINE_GUID(GUID_MelodyFragment,0xb291c7f2,0xb616,0x11d2,0x97,0xfa,0x0,0xc0,0x4f,0xa3,0x6e,0x58); +DEFINE_GUID(GUID_Miscellaneous2Callbacks,0x406b2f00,0x3e5a,0x11d1,0xb6,0x40,0x0,0xaa,0x0,0xa1,0xf9,0x6a); +DEFINE_GUID(GUID_MiscellaneousCallbacks,0xefd60cc0,0x49e7,0x11d0,0x88,0x9d,0x0,0xaa,0x0,0xbb,0xb7,0x6a); +DEFINE_GUID(GUID_MotionCompCallbacks,0xb1122b40,0x5da5,0x11d1,0x8f,0xcf,0x0,0xc0,0x4f,0xc2,0x9b,0x4e); +DEFINE_GUID(GUID_MouseClass,0x4d36e96f,0xe325,0x11ce,0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18); +DEFINE_GUID(GUID_MuteParam,0xd2ac28af,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_NonLocalVidMemCaps,0x86c4fa80,0x8d84,0x11d0,0x94,0xe8,0x0,0xc0,0x4f,0xc3,0x41,0x37); +DEFINE_GUID(GUID_NOTIFICATION_COMMAND,0xd2ac289c,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_NOTIFICATION_CHORD,0xd2ac289b,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_NOTIFICATION_MEASUREANDBEAT,0xd2ac289a,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_NOTIFICATION_PERFORMANCE,0x81f75bc5,0x4e5d,0x11d2,0xbc,0xc7,0x0,0xa0,0xc9,0x22,0xe6,0xeb); +DEFINE_GUID(GUID_NOTIFICATION_RECOMPOSE,0xd348372b,0x945b,0x45ae,0xa5,0x22,0x45,0xf,0x12,0x5b,0x84,0xa5); +DEFINE_GUID(GUID_NOTIFICATION_SEGMENT,0xd2ac2899,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_NTCallbacks,0x6fe9ecde,0xdf89,0x11d1,0x9d,0xb0,0,0x60,0x8,0x27,0x71,0xba); +DEFINE_GUID(GUID_OptSurfaceKmodeInfo,0xe05c8472,0x51d4,0x11d1,0x8c,0xce,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(GUID_OptSurfaceUmodeInfo,0x9d792804,0x5fa8,0x11d1,0x8c,0xd0,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(GUID_PerfAutoDownload,0xfb09565b,0x3631,0x11d2,0xbc,0xb8,0x0,0xa0,0xc9,0x22,0xe6,0xeb); +DEFINE_GUID(GUID_PerfMasterGrooveLevel,0xd2ac28b2,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_PerfMasterTempo,0xd2ac28b0,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_PerfMasterVolume,0xd2ac28b1,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_Play_Marker,0xd8761a41,0x801a,0x11d3,0x9b,0xd1,0xda,0xf7,0xe1,0xc3,0xd8,0x34); +DEFINE_GUID(GUID_POV,0xa36d02f2,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_RampForce,0x13541c21,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_RhythmParam,0xd2ac289f,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_RxAxis,0xa36d02f4,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_RyAxis,0xa36d02f5,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_RzAxis,0xa36d02e3,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_SawtoothDown,0x13541c26,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_SawtoothUp,0x13541c25,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_SeedVariations,0x65b76fa5,0xff37,0x11d2,0x81,0x4e,0x0,0xc0,0x4f,0xa3,0x6e,0x58); +DEFINE_GUID(GUID_Sine,0x13541c23,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_Slider,0xa36d02e4,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_Spring,0x13541c27,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_Square,0x13541c22,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_StandardMIDIFile,0x6621075,0xe92e,0x11d1,0xa8,0xc5,0x0,0xc0,0x4f,0xa3,0x72,0x6e); +DEFINE_GUID(GUID_Synth_Default,0x26bb9432,0x45fe,0x48d3,0xa3,0x75,0x24,0x72,0xc5,0xe3,0xe7,0x86); +DEFINE_GUID(GUID_SysKeyboard,0x6f1d2b61,0xd5a0,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_SysKeyboardEm,0x6f1d2b82,0xd5a0,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_SysKeyboardEm2,0x6f1d2b83,0xd5a0,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_SysMouse,0x6f1d2b60,0xd5a0,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_SysMouseEm,0x6f1d2b80,0xd5a0,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_SysMouseEm2,0x6f1d2b81,0xd5a0,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_TempoParam,0xd2ac28a5,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_TimeSignature,0xd2ac28a4,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_Triangle,0x13541c24,0x8e33,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(GUID_Unknown,0xa36d02f3,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_Unload,0xd2ac28a8,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(GUID_UnloadFromAudioPath,0x9f2c0342,0xc5c4,0x11d3,0x9b,0xd1,0x44,0x45,0x53,0x54,0x0,0x0); +DEFINE_GUID(GUID_UserModeDriverInfo,0xf0b0e8e2,0x5f97,0x11d1,0x8c,0xd0,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(GUID_UserModeDriverPassword,0x97f861b6,0x60a1,0x11d1,0x8c,0xd0,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(GUID_Valid_Start_Time,0x7f6b1760,0x1fdb,0x11d3,0x82,0x26,0x44,0x45,0x53,0x54,0x0,0x0); +DEFINE_GUID(GUID_Variations,0x11f72cce,0x26e6,0x4ecd,0xaf,0x2e,0xd6,0x68,0xe6,0x67,0x7,0xd8); +DEFINE_GUID(GUID_VideoPortCallbacks,0xefd60cc1,0x49e7,0x11d0,0x88,0x9d,0x0,0xaa,0x0,0xbb,0xb7,0x6a); +DEFINE_GUID(GUID_VideoPortCaps,0xefd60cc3,0x49e7,0x11d0,0x88,0x9d,0x0,0xaa,0x0,0xbb,0xb7,0x6a); +DEFINE_GUID(GUID_XAxis,0xa36d02e0,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_YAxis,0xa36d02e1,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_ZAxis,0xa36d02e2,0xc9f3,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(GUID_ZPixelFormats,0x93869880,0x36cf,0x11d1,0x9b,0x1b,0x0,0xaa,0x0,0xbb,0xb8,0xae); +DEFINE_GUID(IID_ID3DXAnimationController,0x3a714d34,0xff61,0x421e,0x90,0x9f,0x63,0x9f,0x38,0x35,0x67,0x8); +DEFINE_GUID(IID_ID3DXAnimationMixer,0x5eec992b,0x1046,0x44f6,0x92,0x4b,0xd1,0x75,0x96,0xb0,0x48,0x3e); +DEFINE_GUID(IID_ID3DXAnimationSet,0x54b569ac,0xaef,0x473e,0x97,0x4,0x3f,0xef,0x31,0x7f,0x64,0xab); +DEFINE_GUID(IID_ID3DXBaseMesh,0x2a835771,0xbf4d,0x43f4,0x8e,0x14,0x82,0xa8,0x9,0xf1,0x7d,0x8a); +DEFINE_GUID(IID_ID3DXBuffer,0x932e6a7e,0xc68e,0x45dd,0xa7,0xbf,0x53,0xd1,0x9c,0x86,0xdb,0x1f); +DEFINE_GUID(IID_ID3DXEffect,0x648b1ceb,0x8d4e,0x4d66,0xb6,0xfa,0xe4,0x49,0x69,0xe8,0x2e,0x89); +DEFINE_GUID(IID_ID3DXEffectCompiler,0xf8ee90d3,0xfcc6,0x4f14,0x8a,0xe8,0x63,0x74,0xae,0x96,0x8e,0x33); +DEFINE_GUID(IID_ID3DXEffectPool,0x53ca7768,0xc0d0,0x4664,0x8e,0x79,0xd1,0x56,0xe4,0xf5,0xb7,0xe0); +DEFINE_GUID(IID_ID3DXInterpolator,0xade2c06d,0x3747,0x4b9f,0xa5,0x14,0x34,0x40,0xb8,0x28,0x49,0x80); +DEFINE_GUID(IID_ID3DXKeyFrameInterpolator,0x6caa71f8,0x972,0x4cdb,0xa5,0x5b,0x43,0xb9,0x68,0x99,0x75,0x15); +DEFINE_GUID(IID_ID3DXMatrixStack,0xe3357330,0xcc5e,0x11d2,0xa4,0x34,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(IID_ID3DXMesh,0xccae5c3b,0x4dd1,0x4d0f,0x99,0x7e,0x46,0x84,0xca,0x64,0x55,0x7f); +DEFINE_GUID(IID_ID3DXPMesh,0x19fbe386,0xc282,0x4659,0x97,0xbd,0xcb,0x86,0x9b,0x8,0x4a,0x6c); +DEFINE_GUID(IID_ID3DXSkinMesh,0x8db06ecc,0xebfc,0x408a,0x94,0x4,0x30,0x74,0xb4,0x77,0x35,0x15); +DEFINE_GUID(IID_ID3DXSPMesh,0x4e3ca05c,0xd4ff,0x4d11,0x8a,0x2,0x16,0x45,0x9e,0x8,0xf6,0xf4); +DEFINE_GUID(IID_ID3DXTechnique,0xa00f378d,0xaf79,0x4917,0x90,0x7e,0x4d,0x63,0x5e,0xe6,0x38,0x44); +DEFINE_GUID(IID_IDDVideoPortContainer,0x6c142760,0xa733,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirect3D,0x3bba0080,0x2421,0x11cf,0xa3,0x1a,0x00,0xaa,0x00,0xb9,0x33,0x56); +DEFINE_GUID(IID_IDirect3D2,0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a); +DEFINE_GUID(IID_IDirect3D3,0xbb223240,0xe72b,0x11d0,0xa9,0xb4,0x00,0xaa,0x00,0xc0,0x99,0x3e); +DEFINE_GUID(IID_IDirect3D7,0xf5049e77,0x4861,0x11d2,0xa4,0x7,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(IID_IDirect3D8,0x1dd9e8da,0x1c77,0x4d40,0xb0,0xcf,0x98,0xfe,0xfd,0xff,0x95,0x12); +DEFINE_GUID(IID_IDirect3DBaseTexture8,0xb4211cfa,0x51b9,0x4a9f,0xab,0x78,0xdb,0x99,0xb2,0xbb,0x67,0x8e); +DEFINE_GUID(IID_IDirect3DCubeTexture8,0x3ee5b968,0x2aca,0x4c34,0x8b,0xb5,0x7e,0x0c,0x3d,0x19,0xb7,0x50); +DEFINE_GUID(IID_IDirect3DDevice,0x64108800,0x957d,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29); +DEFINE_GUID(IID_IDirect3DDevice2,0x93281501,0x8cf8,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); +DEFINE_GUID(IID_IDirect3DDevice3,0xb0ab3b60,0x33d7,0x11d1,0xa9,0x81,0x0,0xc0,0x4f,0xd7,0xb1,0x74); +DEFINE_GUID(IID_IDirect3DDevice7,0xf5049e79,0x4861,0x11d2,0xa4,0x7,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(IID_IDirect3DDevice8,0x7385e5df,0x8fe8,0x41d5,0x86,0xb6,0xd7,0xb4,0x85,0x47,0xb6,0xcf); +DEFINE_GUID(IID_IDirect3DExecuteBuffer,0x4417c145,0x33ad,0x11cf,0x81,0x6f,0x00,0x00,0xc0,0x20,0x15,0x6e); +DEFINE_GUID(IID_IDirect3DHALDevice,0x84e63de0,0x46aa,0x11cf,0x81,0x6f,0x00,0x00,0xc0,0x20,0x15,0x6e); +DEFINE_GUID(IID_IDirect3DIndexBuffer8,0x0e689c9a,0x053d,0x44a0,0x9d,0x92,0xdb,0x0e,0x3d,0x75,0x0f,0x86); +DEFINE_GUID(IID_IDirect3DLight,0x4417c142,0x33ad,0x11cf,0x81,0x6f,0x00,0x00,0xc0,0x20,0x15,0x6e); +DEFINE_GUID(IID_IDirect3DMaterial,0x4417c144,0x33ad,0x11cf,0x81,0x6f,0x00,0x00,0xc0,0x20,0x15,0x6e); +DEFINE_GUID(IID_IDirect3DMaterial2,0x93281503,0x8cf8,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); +DEFINE_GUID(IID_IDirect3DMaterial3,0xca9c46f4,0xd3c5,0x11d1,0xb7,0x5a,0x0,0x60,0x8,0x52,0xb3,0x12); +DEFINE_GUID(IID_IDirect3DMMXDevice,0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29); +DEFINE_GUID(IID_IDirect3DNullDevice,0x8767df22,0xbacc,0x11d1,0x89,0x69,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(IID_IDirect3DRampDevice,0xf2086b20,0x259f,0x11cf,0xa3,0x1a,0x00,0xaa,0x00,0xb9,0x33,0x56); +DEFINE_GUID(IID_IDirect3DRefDevice,0x50936643,0x13e9,0x11d1,0x89,0xaa,0x0,0xa0,0xc9,0x5,0x41,0x29); +DEFINE_GUID(IID_IDirect3DResource8,0x1b36bb7b,0x9b7,0x410a,0xb4,0x45,0x7d,0x14,0x30,0xd7,0xb3,0x3f); +DEFINE_GUID(IID_IDirect3DRGBDevice,0xa4665c60,0x2673,0x11cf,0xa3,0x1a,0x00,0xaa,0x00,0xb9,0x33,0x56); +DEFINE_GUID(IID_IDirect3DRM,0x2bc49361,0x8327,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRM2,0x4516ecc8,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRM3,0x4516ec83,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMAnimation,0xeb16cb0d,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMAnimation2,0xff6b7f77,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); +DEFINE_GUID(IID_IDirect3DRMAnimationArray,0xd5f1cae0,0x4bd7,0x11d1,0xb9,0x74,0x0,0x60,0x8,0x3e,0x45,0xf3); +DEFINE_GUID(IID_IDirect3DRMAnimationSet,0xeb16cb0e,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMAnimationSet2,0xff6b7f79,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); +DEFINE_GUID(IID_IDirect3DRMClippedVisual,0x5434e733,0x6d66,0x11d1,0xbb,0xb,0x0,0x0,0xf8,0x75,0x86,0x5a); +DEFINE_GUID(IID_IDirect3DRMDevice,0xe9e19280,0x6e05,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMDevice2,0x4516ec78,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMDevice3,0x549f498b,0xbfeb,0x11d1,0x8e,0xd8,0x0,0xa0,0xc9,0x67,0xa4,0x82); +DEFINE_GUID(IID_IDirect3DRMDeviceArray,0xeb16cb10,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMFace,0xeb16cb07,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMFace2,0x4516ec81,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMFaceArray,0xeb16cb17,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMFrame,0xeb16cb03,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMFrame2,0xc3dfbd60,0x3988,0x11d0,0x9e,0xc2,0x0,0x0,0xc0,0x29,0x1a,0xc3); +DEFINE_GUID(IID_IDirect3DRMFrame3,0xff6b7f70,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); +DEFINE_GUID(IID_IDirect3DRMFrameArray,0xeb16cb12,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMInterpolator,0x242f6bc1,0x3849,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMLight,0xeb16cb08,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMLightArray,0xeb16cb14,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMMaterial,0xeb16cb0b,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMMaterial2,0xff6b7f75,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); +DEFINE_GUID(IID_IDirect3DRMMesh,0xa3a80d01,0x6e12,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMMeshBuilder,0xa3a80d02,0x6e12,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMMeshBuilder2,0x4516ec77,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMMeshBuilder3,0x4516ec82,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMObject,0xeb16cb00,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMObject2,0x4516ec7c,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMObjectArray,0x242f6bc2,0x3849,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMPicked2Array,0x4516ec7b,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMPickedArray,0xeb16cb16,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMProgressiveMesh,0x4516ec79,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); +DEFINE_GUID(IID_IDirect3DRMShadow,0xaf359780,0x6ba3,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMShadow2,0x86b44e25,0x9c82,0x11d1,0xbb,0xb,0x0,0xa0,0xc9,0x81,0xa0,0xa6); +DEFINE_GUID(IID_IDirect3DRMTexture,0xeb16cb09,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMTexture2,0x120f30c0,0x1629,0x11d0,0x94,0x1c,0x0,0x80,0xc8,0xc,0xfa,0x7b); +DEFINE_GUID(IID_IDirect3DRMTexture3,0xff6b7f73,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); +DEFINE_GUID(IID_IDirect3DRMUserVisual,0x59163de0,0x6d43,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMViewport,0xeb16cb02,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMViewport2,0x4a1b1be6,0xbfed,0x11d1,0x8e,0xd8,0x0,0xa0,0xc9,0x67,0xa4,0x82); +DEFINE_GUID(IID_IDirect3DRMViewportArray,0xeb16cb11,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMVisual,0xeb16cb04,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMVisualArray,0xeb16cb13,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMWinDevice,0xc5016cc0,0xd273,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DRMWrap,0xeb16cb0a,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); +DEFINE_GUID(IID_IDirect3DSurface8,0xb96eebca,0xb326,0x4ea5,0x88,0x2f,0x2f,0xf5,0xba,0xe0,0x21,0xdd); +DEFINE_GUID(IID_IDirect3DSwapChain8,0x928c088b,0x76b9,0x4c6b,0xa5,0x36,0xa5,0x90,0x85,0x38,0x76,0xcd); +DEFINE_GUID(IID_IDirect3DTexture,0x2cdcd9e0,0x25a0,0x11cf,0xa3,0x1a,0x00,0xaa,0x00,0xb9,0x33,0x56); +DEFINE_GUID(IID_IDirect3DTexture2,0x93281502,0x8cf8,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); +DEFINE_GUID(IID_IDirect3DTexture8,0xe4cdd575,0x2866,0x4f01,0xb1,0x2e,0x7e,0xec,0xe1,0xec,0x93,0x58); +DEFINE_GUID(IID_IDirect3DTnLHalDevice,0xf5049e78,0x4861,0x11d2,0xa4,0x7,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(IID_IDirect3DVertexBuffer,0x7a503555,0x4a83,0x11d1,0xa5,0xdb,0x0,0xa0,0xc9,0x3,0x67,0xf8); +DEFINE_GUID(IID_IDirect3DVertexBuffer7,0xf5049e7d,0x4861,0x11d2,0xa4,0x7,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(IID_IDirect3DVertexBuffer8,0x8aeeeac7,0x05f9,0x44d4,0xb5,0x91,0x00,0x0b,0x0d,0xf1,0xcb,0x95); +DEFINE_GUID(IID_IDirect3DViewport,0x4417c146,0x33ad,0x11cf,0x81,0x6f,0x00,0x00,0xc0,0x20,0x15,0x6e); +DEFINE_GUID(IID_IDirect3DViewport2,0x93281500,0x8cf8,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); +DEFINE_GUID(IID_IDirect3DViewport3,0xb0ab3b61,0x33d7,0x11d1,0xa9,0x81,0x0,0xc0,0x4f,0xd7,0xb1,0x74); +DEFINE_GUID(IID_IDirect3DVolume8,0xbd7349f5,0x14f1,0x42e4,0x9c,0x79,0x97,0x23,0x80,0xdb,0x40,0xc0); +DEFINE_GUID(IID_IDirect3DVolumeTexture8,0x4b8aaafa,0x140f,0x42ba,0x91,0x31,0x59,0x7e,0xaf,0xaa,0x2e,0xad); +DEFINE_GUID(IID_IDirectDraw,0x6c14db80,0xa733,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirectDraw2,0xb3a6f3e0,0x2b43,0x11cf,0xa2,0xde,0x00,0xaa,0x00,0xb9,0x33,0x56); +DEFINE_GUID(IID_IDirectDraw4,0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5); +DEFINE_GUID(IID_IDirectDraw7,0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b); +DEFINE_GUID(IID_IDirectDrawClipper,0x6c14db85,0xa733,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirectDrawColorControl,0x4b9f0ee0,0x0d7e,0x11d0,0x9b,0x06,0x00,0xa0,0xc9,0x03,0xa3,0xb8); +DEFINE_GUID(IID_IDirectDrawFactory2,0x89b2c488,0x4af4,0x11d1,0x8c,0x4c,0x0,0xc0,0x4f,0xd9,0x30,0xc5); +DEFINE_GUID(IID_IDirectDrawGammaControl,0x69c11c3e,0xb46b,0x11d1,0xad,0x7a,0x00,0xc0,0x4f,0xc2,0x9b,0x4e); +DEFINE_GUID(IID_IDirectDrawOptSurface,0x51191f1e,0x4f2b,0x11d1,0x8c,0xc3,0x0,0xa0,0xc9,0x6,0x29,0xa8); +DEFINE_GUID(IID_IDirectDrawPalette,0x6c14db84,0xa733,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirectDrawPalette2,0xc03c477e,0x6519,0x11d1,0x8c,0x52,0x0,0xc0,0x4f,0xd9,0x30,0xc5); +DEFINE_GUID(IID_IDirectDrawSurface,0x6c14db81,0xa733,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirectDrawSurface2,0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27); +DEFINE_GUID(IID_IDirectDrawSurface3,0xda044e00,0x69b2,0x11d0,0xa1,0xd5,0x00,0xaa,0x00,0xb8,0xdf,0xbb); +DEFINE_GUID(IID_IDirectDrawSurface4,0x0b2b8630,0xad35,0x11d0,0x8e,0xa6,0x00,0x60,0x97,0x97,0xea,0x5b); +DEFINE_GUID(IID_IDirectDrawSurface7,0x06675a80,0x3b9b,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b); +//IID_IDirectDrawSurfaceNew +DEFINE_GUID(IID_IDirectDrawVideoPort,0xb36d93e0,0x2b43,0x11cf,0xa2,0xde,0x00,0xaa,0x00,0xb9,0x33,0x56); +DEFINE_GUID(IID_IDirectDrawVideoPortNotify,0xa655fb94,0x0589,0x4e57,0xb3,0x33,0x56,0x7a,0x89,0x46,0x8c,0x88); +DEFINE_GUID(IID_IDirectInput2A,0x5944e662,0xaa8a,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectInput2W,0x5944e663,0xaa8a,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectInput7A,0x9a4cb684,0x236d,0x11d3,0x8e,0x9d,0x00,0xc0,0x4f,0x68,0x44,0xae); +DEFINE_GUID(IID_IDirectInput7W,0x9a4cb685,0x236d,0x11d3,0x8e,0x9d,0x00,0xc0,0x4f,0x68,0x44,0xae); +DEFINE_GUID(IID_IDirectInput8A,0xbf798030,0x483a,0x4da2,0xaa,0x99,0x5d,0x64,0xed,0x36,0x97,0x00); +DEFINE_GUID(IID_IDirectInput8W,0xbf798031,0x483a,0x4da2,0xaa,0x99,0x5d,0x64,0xed,0x36,0x97,0x00); +DEFINE_GUID(IID_IDirectInputA,0x89521360,0xaa8a,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectInputDevice2A,0x5944e682,0xc92e,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectInputDevice2W,0x5944e683,0xc92e,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectInputDevice7A,0x57d7c6bc,0x2356,0x11d3,0x8e,0x9d,0x00,0xc0,0x4f,0x68,0x44,0xae); +DEFINE_GUID(IID_IDirectInputDevice7W,0x57d7c6bd,0x2356,0x11d3,0x8e,0x9d,0x00,0xc0,0x4f,0x68,0x44,0xae); +DEFINE_GUID(IID_IDirectInputDevice8A,0x54d41080,0xdc15,0x4833,0xa4,0x1b,0x74,0x8f,0x73,0xa3,0x81,0x79); +DEFINE_GUID(IID_IDirectInputDevice8W,0x54d41081,0xdc15,0x4833,0xa4,0x1b,0x74,0x8f,0x73,0xa3,0x81,0x79); +DEFINE_GUID(IID_IDirectInputDeviceA,0x5944e680,0xc92e,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectInputDeviceW,0x5944e681,0xc92e,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectInputEffect,0xe7e1f7c0,0x88d2,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(IID_IDirectInputEffectDriver,0x02538130,0x898f,0x11d0,0x9a,0xd0,0x00,0xa0,0xc9,0xa0,0x6e,0x35); +DEFINE_GUID(IID_IDirectInputJoyConfig,0x1de12ab1,0xc9f5,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectInputJoyConfig8,0xeb0d7dfa,0x1990,0x4f27,0xb4,0xd6,0xed,0xf2,0xee,0xc4,0xa4,0x4c); +DEFINE_GUID(IID_IDirectInputPIDDriver,0xeec6993a,0xb3fd,0x11d2,0xa9,0x16,0x00,0xc0,0x4f,0xb9,0x86,0x38); +DEFINE_GUID(IID_IDirectInputW,0x89521361,0xaa8a,0x11cf,0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(IID_IDirectMusic,0x6536115a,0x7b2d,0x11d2,0xba,0x18,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(IID_IDirectMusic2,0x6fc2cae1, 0xbc78, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); +DEFINE_GUID(IID_IDirectMusic8,0x2d3629f7,0x813d,0x4939,0x85,0x08,0xf0,0x5c,0x6b,0x75,0xfd,0x97); +DEFINE_GUID(IID_IDirectMusicAudioPath,0xc87631f5, 0x23be, 0x4986, 0x88, 0x36, 0x5, 0x83, 0x2f, 0xcc, 0x48, 0xf9); +DEFINE_GUID(IID_IDirectMusicBand,0xd2ac28c0, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); +DEFINE_GUID(IID_IDirectMusicBuffer,0xd2ac2878, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); +DEFINE_GUID(IID_IDirectMusicCollection,0xd2ac287c, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); +DEFINE_GUID(IID_IDirectMusicComposer,0xd2ac28bf,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicContainer,0x9301e386,0x1f22,0x11d3,0x82,0x26,0xd2,0xfa,0x76,0x25,0x5d,0x47); +DEFINE_GUID(IID_IDirectMusicDownload,0xd2ac287b,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicDownloadedInstrument,0xd2ac287e,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicGetLoader,0x68a04844,0xd13d,0x11d1,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(IID_IDirectMusicGraph,0x2befc277,0x5497,0x11d2,0xbc,0xcb,0x0,0xa0,0xc9,0x22,0xe6,0xeb); +DEFINE_GUID(IID_IDirectMusicChordMap,0xd2ac28be,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicInstrument,0xd2ac287d,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicLoader,0x2ffaaca2,0x5dca,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(IID_IDirectMusicLoader8,0x19e7c08c,0xa44,0x4e6a,0xa1,0x16,0x59,0x5a,0x7c,0xd5,0xde,0x8c); +DEFINE_GUID(IID_IDirectMusicObject,0xd2ac28b5,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicPatternTrack,0x51c22e10,0xb49f,0x46fc,0xbe,0xc2,0xe6,0x28,0x8f,0xb9,0xed,0xe6); +DEFINE_GUID(IID_IDirectMusicPerformance,0x7d43d03,0x6523,0x11d2,0x87,0x1d,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicPerformance2,0x6fc2cae0,0xbc78,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); +DEFINE_GUID(IID_IDirectMusicPerformance8,0x679c4137,0xc62e,0x4147,0xb2,0xb4,0x9d,0x56,0x9a,0xcb,0x25,0x4c); +DEFINE_GUID(IID_IDirectMusicPort,0x08f2d8c9,0x37c2,0x11d2,0xb9,0xf9,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(IID_IDirectMusicPortDownload,0xd2ac287a,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicScript,0x2252373a,0x5814,0x489b,0x82,0x9,0x31,0xfe,0xde,0xba,0xf1,0x37);/*{2252373a-5814-489b-8209-31fedebaf137}*/ +DEFINE_GUID(IID_IDirectMusicSegment,0xf96029a2,0x4282,0x11d2,0x87,0x17,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicSegment2,0xd38894d1,0xc052,0x11d2,0x87,0x2f,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicSegment8,0xc6784488,0x41a3,0x418f,0xaa,0x15,0xb3,0x50,0x93,0xba,0x42,0xd4); +DEFINE_GUID(IID_IDirectMusicSegmentState,0xa3afdcc7,0xd3ee,0x11d1,0xbc,0x8d,0x0,0xa0,0xc9,0x22,0xe6,0xeb); +DEFINE_GUID(IID_IDirectMusicSegmentState8,0xa50e4730,0xae4,0x48a7,0x98,0x39,0xbc,0x4,0xbf,0xe0,0x77,0x72); +DEFINE_GUID(IID_IDirectMusicSong,0xa862b2ec,0x3676,0x4982,0x85,0xa,0x78,0x42,0x77,0x5e,0x1d,0x86); +DEFINE_GUID(IID_IDirectMusicStyle,0xd2ac28bd,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicStyle8,0xfd24ad8a,0xa260,0x453d,0xbf,0x50,0x6f,0x93,0x84,0xf7,0x9,0x85); +DEFINE_GUID(IID_IDirectMusicThru,0xced153e7,0x3606,0x11d2,0xb9,0xf9,0x00,0x00,0xf8,0x75,0xac,0x12); +DEFINE_GUID(IID_IDirectMusicTool,0xd2ac28ba,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicTrack,0xf96029a1,0x4282,0x11d2,0x87,0x17,0x0,0x60,0x8,0x93,0xb1,0xbd); +DEFINE_GUID(IID_IDirectMusicTool8,0xe674303,0x3b05,0x11d3,0x9b,0xd1,0xf9,0xe7,0xf0,0xa0,0x15,0x36); +DEFINE_GUID(IID_IDirectMusicTrack8,0xe674304,0x3b05,0x11d3,0x9b,0xd1,0xf9,0xe7,0xf0,0xa0,0x15,0x36); +DEFINE_GUID(IID_IDirectPlay,0x5454e9a0,0xdb65,0x11ce,0x92,0x1c,0x00,0xaa,0x00,0x6c,0x49,0x72); +DEFINE_GUID(IID_IDirectPlay2,0x2b74f7c0,0x9154,0x11cf,0xa9,0xcd,0x0,0xaa,0x0,0x68,0x86,0xe3); +DEFINE_GUID(IID_IDirectPlay2A,0x9d460580,0xa822,0x11cf,0x96,0xc,0x0,0x80,0xc7,0x53,0x4e,0x82); +DEFINE_GUID(IID_IDirectPlay3,0x133efe40,0x32dc,0x11d0,0x9c,0xfb,0x0,0xa0,0xc9,0xa,0x43,0xcb); +DEFINE_GUID(IID_IDirectPlay3A,0x133efe41,0x32dc,0x11d0,0x9c,0xfb,0x0,0xa0,0xc9,0xa,0x43,0xcb); +DEFINE_GUID(IID_IDirectPlay4,0xab1c530,0x4745,0x11d1,0xa7,0xa1,0x0,0x0,0xf8,0x3,0xab,0xfc); +DEFINE_GUID(IID_IDirectPlay4A,0xab1c531,0x4745,0x11d1,0xa7,0xa1,0x0,0x0,0xf8,0x3,0xab,0xfc); +DEFINE_GUID(IID_IDirectPlay8Address,0x83783300,0x4063,0x4c8a,0x9d,0xb3,0x82,0x83,0xa,0x7f,0xeb,0x31); +DEFINE_GUID(IID_IDirectPlay8AddressIP,0xe5a0e990,0x2bad,0x430b,0x87,0xda,0xa1,0x42,0xcf,0x75,0xde,0x58); +DEFINE_GUID(IID_IDirectPlay8Client,0x5102dacd,0x241b,0x11d3,0xae,0xa7,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(IID_IDirectPlay8LobbiedApplication,0x819074a3,0x16c,0x11d3,0xae,0x14,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(IID_IDirectPlay8LobbyClient,0x819074a2,0x16c,0x11d3,0xae,0x14,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(IID_IDirectPlay8NATResolver,0xa9e213f2,0x9a60,0x486f,0xbf,0x3b,0x53,0x40,0x8b,0x6d,0x1c,0xbb); +DEFINE_GUID(IID_IDirectPlay8Peer,0x5102dacf,0x241b,0x11d3,0xae,0xa7,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(IID_IDirectPlay8Server,0x5102dace,0x241b,0x11d3,0xae,0xa7,0x0,0x60,0x97,0xb0,0x14,0x11); +DEFINE_GUID(IID_IDirectPlay8ThreadPool,0xd22ee73,0x4a46,0x4a0d,0x89,0xb2,0x4,0x5b,0x4d,0x66,0x64,0x25); +DEFINE_GUID(IID_IDirectPlayLobby,0xaf465c71,0x9588,0x11cf,0xa0,0x20,0x0,0xaa,0x0,0x61,0x57,0xac); +DEFINE_GUID(IID_IDirectPlayLobby2,0x194c220,0xa303,0x11d0,0x9c,0x4f,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(IID_IDirectPlayLobby2A,0x1bb4af80,0xa303,0x11d0,0x9c,0x4f,0x0,0xa0,0xc9,0x5,0x42,0x5e); +DEFINE_GUID(IID_IDirectPlayLobby3,0x2db72490,0x652c,0x11d1,0xa7,0xa8,0x0,0x0,0xf8,0x3,0xab,0xfc); +DEFINE_GUID(IID_IDirectPlayLobby3A,0x2db72491,0x652c,0x11d1,0xa7,0xa8,0x0,0x0,0xf8,0x3,0xab,0xfc); +DEFINE_GUID(IID_IDirectPlayLobbyA,0x26c66a70,0xb367,0x11cf,0xa0,0x24,0x0,0xaa,0x0,0x61,0x57,0xac); +DEFINE_GUID(IID_IDirectPlayVoiceClient,0x1dfdc8ea,0xbcf7,0x41d6,0xb2,0x95,0xab,0x64,0xb3,0xb2,0x33,0x6); +DEFINE_GUID(IID_IDirectPlayVoiceServer,0xfaa1c173,0x468,0x43b6,0x8a,0x2a,0xea,0x8a,0x4f,0x20,0x76,0xc9); +DEFINE_GUID(IID_IDirectPlayVoiceTest,0xd26af734,0x208b,0x41da,0x82,0x24,0xe0,0xce,0x79,0x81,0xb,0xe1); +DEFINE_GUID(IID_IDirectSound,0x279afa83,0x4981,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirectSound3DBuffer,0x279afa86,0x4981,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirectSound3DListener,0x279afa84,0x4981,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirectSound8,0xc50a7e93,0xf395,0x4834,0x9e,0xf6,0x7f,0xa9,0x9d,0xe5,0x09,0x66); +DEFINE_GUID(IID_IDirectSoundBuffer,0x279afa85,0x4981,0x11ce,0xa5,0x21,0x00,0x20,0xaf,0x0b,0xe5,0x60); +DEFINE_GUID(IID_IDirectSoundBuffer8,0x6825a449,0x7524,0x4d82,0x92,0x0f,0x50,0xe3,0x6a,0xb3,0xab,0x1e); +DEFINE_GUID(IID_IDirectSoundCapture,0xb0210781,0x89cd,0x11d0,0xaf,0x8,0x0,0xa0,0xc9,0x25,0xcd,0x16); +DEFINE_GUID(IID_IDirectSoundCaptureBuffer,0xb0210782,0x89cd,0x11d0,0xaf,0x8,0x0,0xa0,0xc9,0x25,0xcd,0x16); +DEFINE_GUID(IID_IDirectSoundCaptureBuffer8,0x990df4,0xdbb,0x4872,0x83,0x3e,0x6d,0x30,0x3e,0x80,0xae,0xb6); +DEFINE_GUID(IID_IDirectSoundCaptureFXAec,0xad74143d,0x903d,0x4ab7,0x80,0x66,0x28,0xd3,0x63,0x03,0x6d,0x65); +DEFINE_GUID(IID_IDirectSoundCaptureFXNoiseSuppress,0xed311e41,0xfbae,0x4175,0x96,0x25,0xcd,0x8,0x54,0xf6,0x93,0xca); +DEFINE_GUID(IID_IDirectSoundFullDuplex,0xedcb4c7a,0xdaab,0x4216,0xa4,0x2e,0x6c,0x50,0x59,0x6d,0xdc,0x1d); +DEFINE_GUID(IID_IDirectSoundFXCompressor,0x4bbd1154,0x62f6,0x4e2c,0xa1,0x5c,0xd3,0xb6,0xc4,0x17,0xf7,0xa0); +DEFINE_GUID(IID_IDirectSoundFXDistortion,0x8ecf4326,0x455f,0x4d8b,0xbd,0xa9,0x8d,0x5d,0x3e,0x9e,0x3e,0x0b); +DEFINE_GUID(IID_IDirectSoundFXEcho,0x8bd28edf,0x50db,0x4e92,0xa2,0xbd,0x44,0x54,0x88,0xd1,0xed,0x42); +DEFINE_GUID(IID_IDirectSoundFXFlanger,0x903e9878,0x2c92,0x4072,0x9b,0x2c,0xea,0x68,0xf5,0x39,0x67,0x83); +DEFINE_GUID(IID_IDirectSoundFXGargle,0xd616f352,0xd622,0x11ce,0xaa,0xc5,0x00,0x20,0xaf,0x0b,0x99,0xa3); +DEFINE_GUID(IID_IDirectSoundFXChorus,0x880842e3,0x145f,0x43e6,0xa9,0x34,0xa7,0x18,0x06,0xe5,0x05,0x47); +DEFINE_GUID(IID_IDirectSoundFXI3DL2Reverb,0x4b166a6a,0x0d66,0x43f3,0x80,0xe3,0xee,0x62,0x80,0xde,0xe1,0xa4); +DEFINE_GUID(IID_IDirectSoundFXParamEq,0xc03ca9fe,0xfe90,0x4204,0x80,0x78,0x82,0x33,0x4c,0xd1,0x77,0xda); +DEFINE_GUID(IID_IDirectSoundFXWavesReverb,0x46858c3a,0x0dc6,0x45e3,0xb7,0x60,0xd4,0xee,0xf1,0x6c,0xb3,0x25); +DEFINE_GUID(IID_IDirectSoundNotify,0xb0210783,0x89cd,0x11d0,0xaf,0x8,0x0,0xa0,0xc9,0x25,0xcd,0x16); +DEFINE_GUID(IID_IDirectXFile,0x3d82ab40,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(IID_IDirectXFileBinary,0x3d82ab46,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(IID_IDirectXFileData,0x3d82ab44,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(IID_IDirectXFileDataReference,0x3d82ab45,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(IID_IDirectXFileEnumObject,0x3d82ab41,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(IID_IDirectXFileObject,0x3d82ab43,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(IID_IDirectXFileSaveObject,0x3d82ab42,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(IID_IKsControl,0x28f54685l,0x06fd,0x11d2,0xb2,0x7a,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(IID_IKsFastClock,0xc9902485,0xc180,0x11d2,0x84,0x73,0xd4,0x23,0x94,0x45,0x9e,0x5e); +DEFINE_GUID(IID_IKsPropertySet,0x31efac30,0x515c,0x11d0,0xa9,0xaa,0x00,0xaa,0x00,0x61,0xbe,0x93); +DEFINE_GUID(IID_IReferenceClock,0x56a86897,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_DIRECTMUSIC,0x1a82f8bc,0x3f8b,0x11d2,0xb7,0x74,0x00,0x60,0x08,0x33,0x16,0xc1); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MIDI,0x1d262760l,0xe957,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(TID_D3DRMAnimation,0x3d82ab4f,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMAnimationKey,0x10dd46a8,0x775b,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMAnimationOptions,0xe2bf56c0,0x840f,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMAnimationSet,0x3d82ab50,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMAppData,0xe5745280,0xb24f,0x11cf,0x9d,0xd5,0x0,0xaa,0x0,0xa7,0x1a,0x2f); +DEFINE_GUID(TID_D3DRMBoolean,0x537da6a0,0xca37,0x11d0,0x94,0x1c,0x0,0x80,0xc8,0xc,0xfa,0x7b); +DEFINE_GUID(TID_D3DRMBoolean2d,0x4885ae63,0x78e8,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMCamera,0x3d82ab51,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMColorRGB,0xd3e16e81,0x7835,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMColorRGBA,0x35ff44e0,0x6c7c,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMCoords2d,0xf6f23f44,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMExternalVisual,0x98116aa0,0xbdba,0x11d1,0x82,0xc0,0x00,0xa0,0xc9,0x69,0x72,0x71); +DEFINE_GUID(TID_D3DRMFloatKeys,0x10dd46a9,0x775b,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMFrame,0x3d82ab46,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMFramePosition,0xe2bf56c1,0x840f,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMFrameRotation,0xe2bf56c3,0x840f,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMFrameTransformMatrix,0xf6f23f41,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMFrameVelocity,0xe2bf56c2,0x840f,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMGuid,0xa42790e0,0x7810,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMIndexedColor,0x1630b820,0x7842,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMInfo,0x2b957100,0x9e9a,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMInlineData,0x3a23eea0,0x94b1,0x11d0,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMLight,0x3d82ab4a,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMLightAttenuation,0xa8a98ba0,0xc5e5,0x11cf,0xb9,0x41,0x0,0x80,0xc8,0xc,0xfa,0x7b); +DEFINE_GUID(TID_D3DRMLightPenumbra,0xaed22741,0xb31f,0x11cf,0x9d,0xd5,0x0,0xaa,0x0,0xa7,0x1a,0x2f); +DEFINE_GUID(TID_D3DRMLightRange,0xaed22742,0xb31f,0x11cf,0x9d,0xd5,0x0,0xaa,0x0,0xa7,0x1a,0x2f); +DEFINE_GUID(TID_D3DRMLightUmbra,0xaed22740,0xb31f,0x11cf,0x9d,0xd5,0x0,0xaa,0x0,0xa7,0x1a,0x2f); +DEFINE_GUID(TID_D3DRMMaterial,0x3d82ab4d,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMMaterialAmbientColor,0x01411840,0x7786,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMaterialArray,0x35ff44e1,0x6c7c,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMaterialDiffuseColor,0x01411841,0x7786,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMaterialEmissiveColor,0xd3e16e80,0x7835,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMaterialPower,0x01411843,0x7786,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMaterialSpecularColor,0x01411842,0x7786,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMaterialWrap,0x4885ae60,0x78e8,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMatrix4x4,0xf6f23f45,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMesh,0x3d82ab44,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMMeshFace,0x3d82ab5f,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMMeshFaceWraps,0xed1ec5c0,0xc0a8,0x11d0,0x94,0x1c,0x0,0x80,0xc8,0xc,0xfa,0x7b); +DEFINE_GUID(TID_D3DRMMeshMaterialList,0xf6f23f42,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMeshNormals,0xf6f23f43,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMeshTextureCoords,0xf6f23f40,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMMeshVertexColors,0x1630b821,0x7842,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMProgressiveMesh,0x8a63c360,0x997d,0x11d0,0x94,0x1c,0x0,0x80,0xc8,0x0c,0xfa,0x7b); +DEFINE_GUID(TID_D3DRMPropertyBag,0x7f0f21e1,0xbfe1,0x11d1,0x82,0xc0,0x0,0xa0,0xc9,0x69,0x72,0x71); +DEFINE_GUID(TID_D3DRMRightHanded,0x7f5d5ea0,0xd53a,0x11d1,0x82,0xc0,0x0,0xa0,0xc9,0x69,0x72,0x71); +DEFINE_GUID(TID_D3DRMStringProperty,0x7f0f21e0,0xbfe1,0x11d1,0x82,0xc0,0x0,0xa0,0xc9,0x69,0x72,0x71); +DEFINE_GUID(TID_D3DRMTextureFilename,0xa42790e1,0x7810,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMTextureReference,0xa42790e2,0x7810,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMTimedFloatKeys,0xf406b180,0x7b3b,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); +DEFINE_GUID(TID_D3DRMUrl,0x3a23eea1,0x94b1,0x11d0,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_D3DRMVector,0x3d82ab5e,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); +DEFINE_GUID(TID_DXFILEHeader,0x3d82ab43,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); diff --git a/lib/libc/mingw/libsrc/gdiplus.c b/lib/libc/mingw/libsrc/gdiplus.c new file mode 100644 index 0000000000..70c62f3c15 --- /dev/null +++ b/lib/libc/mingw/libsrc/gdiplus.c @@ -0,0 +1,66 @@ +/* + * Generate GUIDs for GDI+ + * + * The Image Format GUIDs were generated by loading example images of + * various types with GdipLoadImageFromFile and then extracting the + * image format with GdipGetImageRawFormat. + * + * The Encoder Parameter GUIDs were taken from this .NET MSDN page: + * http://msdn.microsoft.com/en-us/library/system.drawing.imaging.encoder.quality.aspx + * + * The Frame Dimension GUIDs were generated by loading example multi-frame + * images (multi-page TIFF; animated GIF) and querying the frame dimension list + * using GdipImageGetFrameDimensionsList. + */ + +/* TODO: find the remaining GUIDs */ + +#include + +void *_GdipFontFamilyCachedGenericMonospace = 0; +void *_GdipFontFamilyCachedGenericSansSerif = 0; +void *_GdipFontFamilyCachedGenericSerif = 0; +void *_GdipStringFormatCachedGenericDefault = 0; +void *_GdipStringFormatCachedGenericTypographic = 0; + +DEFINE_GUID(EncoderChrominanceTable,0xF2E455DC,0x09B3,0x4316,0x82,0x60,0x67,0x6A,0xDA,0x32,0x48,0x1C); +DEFINE_GUID(EncoderColorDepth,0x66087055,0xAD66,0x4C7C,0x9A,0x18,0x38,0xA2,0x31,0x0B,0x83,0x37); +/* EncoderColorSpace missing */ +DEFINE_GUID(EncoderCompression,0xE09D739D,0xCCD4,0x44EE,0x8E,0xBA,0x3F,0xBF,0x8B,0xE4,0xFC,0x58); +/* EncoderImageItems missing */ +DEFINE_GUID(EncoderLuminanceTable,0xEDB33BCE,0x0266,0x4A77,0xB9,0x04,0x27,0x21,0x60,0x99,0xE7,0x17); +DEFINE_GUID(EncoderQuality,0x1D5BE4B5,0xFA4A,0x452D,0x9C,0xDD,0x5D,0xB3,0x51,0x05,0xE7,0xEB); +DEFINE_GUID(EncoderRenderMethod,0x6D42C53A,0x229A,0x4825,0x8B,0xB7,0x5C,0x99,0xE2,0xB9,0xA8,0xB8); +/* EncoderSaveAsCMYK missing */ +DEFINE_GUID(EncoderSaveFlag,0x292266FC,0xAC40,0x47BF,0x8C,0xFC,0xA8,0x5B,0x89,0xA6,0x55,0xDE); +DEFINE_GUID(EncoderScanMethod,0x3A4E2661,0x3109,0x4E56,0x85,0x36,0x42,0xC1,0x56,0xE7,0xDC,0xFA); +DEFINE_GUID(EncoderTransformation,0x8D0EB2D1,0xA58E,0x4EA8,0xAA,0x14,0x10,0x80,0x74,0xB7,0xB6,0xF9); +DEFINE_GUID(EncoderVersion,0x24D18C76,0x814A,0x41A4,0xBF,0x53,0x1C,0x21,0x9C,0xCC,0xF7,0x97); + +DEFINE_GUID(ImageFormatBMP,0xB96B3CAB,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatEMF,0xB96B3CAC,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +/* ImageFormatEXIF missing */ +DEFINE_GUID(ImageFormatGIF,0xB96B3CB0,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatIcon,0xB96B3CB5,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatJPEG,0xB96B3CAE,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatMemoryBMP,0xB96B3CAA,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatPNG,0xB96B3CAF,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatTIFF,0xB96B3CB1,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +/* ImageFormatUndefined missing */ +DEFINE_GUID(ImageFormatWMF,0xB96B3CAD,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); + +DEFINE_GUID(FrameDimensionPage,0x7462DC86,0x6180,0x4C7E,0x8E,0x3F,0xEE,0x73,0x33,0xA7,0xA4,0x83); +/* FrameDimensionResolution missing */ +DEFINE_GUID(FrameDimensionTime,0x6AEDBD6D,0x3FB5,0x418A,0x83,0xA6,0x7F,0x45,0x22,0x9D,0xC8,0x72); + +/* BlurEffectGuid missing */ +/* BrightnessContrastEffectGuid missing */ +/* ColorBalanceEffectGuid missing */ +/* ColorCurveEffectGuid missing */ +/* ColorLUTEffectGuid missing */ +/* ColorMatrixEffectGuid missing */ +/* HueSaturationLightnessEffectGuid missing */ +/* LevelsEffectGuid missing */ +/* RedEyeCorrectionEffectGuid missing */ +/* SharpenEffectGuid missing */ +/* TintEffectGuid missing */ diff --git a/lib/libc/mingw/libsrc/ksuser.c b/lib/libc/mingw/libsrc/ksuser.c new file mode 100644 index 0000000000..b5e37fa7ce --- /dev/null +++ b/lib/libc/mingw/libsrc/ksuser.c @@ -0,0 +1,421 @@ +/* + + ksuser.c - Kernel Streaming GUIDs + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#if defined(__LCC__) || defined(__GNUC__) +#define INITGUID 1 +#include +#else +#include +#endif + +DEFINE_GUID(BUSID_SoftwareDeviceEnumerator,0x4747b320,0x62ce,0x11cf,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(CLSID_KsIBasicAudioInterfaceHandler,0xb9f8ac3e,0x0f71,0x11d2,0xb7,0x2c,0x00,0xc0,0x4f,0xb6,0xbd,0x3d); +DEFINE_GUID(CLSID_Proxy,0x17cca71b,0xecd7,0x11d0,0xb9,0x08,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(EVENTSETID_CROSSBAR,0x6a2e0641,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(EVENTSETID_TUNER,0x6a2e0606,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(EVENTSETID_VIDEODECODER,0x6a2e0621,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(GUID_BUS_INTERFACE_MEDIUMS,0x4ec35c3e,0x201b,0x11d2,0x87,0x45,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(IID_IKoInitializeParentDeviceObject,0x21b36996,0x8de3,0x11d1,0x8a,0xe0,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(IID_IKsAggregateControl,0x7f40eac0,0x3947,0x11d2,0x87,0x4e,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(IID_IKsAllocator,0x8da64899,0xc0d9,0x11d0,0x84,0x13,0x00,0x00,0xf8,0x22,0xfe,0x8a); +DEFINE_GUID(IID_IKsAllocatorEx,0x091bb63a,0x603f,0x11d1,0xb0,0x67,0x00,0xa0,0xc9,0x06,0x28,0x02); +DEFINE_GUID(IID_IKsClockPropertySet,0x5c5cbd84,0xe755,0x11d0,0xac,0x18,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(IID_IKsControl,0x28f54685,0x06fd,0x11d2,0xb2,0x7a,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(IID_IKsDataTypeCompletion,0x827d1a0e,0x0f73,0x11d2,0xb2,0x7a,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(IID_IKsDataTypeHandler,0x5ffbaa02,0x49a3,0x11d0,0x9f,0x36,0x00,0xaa,0x00,0xa2,0x16,0xa1); +DEFINE_GUID(IID_IKsInterfaceHandler,0xd3abc7e0,0x9a61,0x11d0,0xa4,0x0d,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(IID_IKsObject,0x423c13a2,0x2070,0x11d0,0x9e,0xf7,0x00,0xaa,0x00,0xa2,0x16,0xa1); +DEFINE_GUID(IID_IKsPin,0xb61178d1,0xa2d9,0x11cf,0x9e,0x53,0x00,0xaa,0x00,0xa2,0x16,0xa1); +DEFINE_GUID(IID_IKsPinEx,0x7bb38260,0xd19c,0x11d2,0xb3,0x8a,0x00,0xa0,0xc9,0x5e,0xc2,0x2e); +DEFINE_GUID(IID_IKsPinPipe,0xe539cd90,0xa8b4,0x11d1,0x81,0x89,0x00,0xa0,0xc9,0x06,0x28,0x02); +DEFINE_GUID(IID_IKsPropertySet,0x31efac30,0x515c,0x11d0,0xa9,0xaa,0x00,0xaa,0x00,0x61,0xbe,0x93); +DEFINE_GUID(IID_IKsTopology,0x28f54683,0x06fd,0x11d2,0xb2,0x7a,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KoCreateObject,0x72cf721c,0x525a,0x11d1,0x9a,0xa1,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL,0x1c22c56d,0x9879,0x4f5b,0xa3,0x89,0x27,0x99,0x6d,0xdc,0x28,0x10); +DEFINE_GUID(KSALGORITHMINSTANCE_SYSTEM_AGC,0x950e55b9,0x877c,0x4c67,0xbe,0x8,0xe4,0x7b,0x56,0x11,0x13,0xa); +DEFINE_GUID(KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR,0xb6f5a0a0,0x9e61,0x4f8c,0x91,0xe3,0x76,0xcf,0xf,0x3c,0x47,0x1f); +DEFINE_GUID(KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS,0x5ab0882e,0x7274,0x4516,0x87,0x7d,0x4e,0xee,0x99,0xba,0x4f,0xd0); +DEFINE_GUID(KSAUDFNAME_3D_CENTER,0x9f0670b4,0x991f,0x11d2,0xac,0x4d,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_3D_DEPTH,0x63ff5747,0x991f,0x11d2,0xac,0x4d,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_3D_STEREO,0x185fede2,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_ALTERNATE_MICROPHONE,0x2bc31d6b,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_AUX,0x185fedfe,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_AUX_MUTE,0x185fedfd,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_AUX_VOLUME,0x185fedfc,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_BASS,0x185fede0,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_CD_AUDIO,0x185fedfb,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_CD_IN_VOLUME,0x185fedf3,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_CD_MUTE,0x185fedea,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_CD_VOLUME,0x185fede9,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_LINE_IN,0x185fedf9,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_LINE_IN_VOLUME,0x185fedf4,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_LINE_MUTE,0x185fedec,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_LINE_VOLUME,0x185fedeb,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MASTER_MUTE,0x185fede4,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MASTER_VOLUME,0x185fede3,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MIC_IN_VOLUME,0x185fedf5,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MIC_MUTE,0x185fedee,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MIC_VOLUME,0x185feded,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MICROPHONE_BOOST,0x2bc31d6a,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_MIDI,0x185fedf8,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MIDI_IN_VOLUME,0x185fedf2,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MIDI_MUTE,0x185fede8,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MIDI_VOLUME,0x185fede7,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_MONO_MIX,0xdff078,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_MONO_MIX_MUTE,0x2bc31d69,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_MONO_MIX_VOLUME,0x22b0eafe,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_MONO_OUT,0xf9b41dc3,0x96e2,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_MONO_OUT_MUTE,0x1ad247ec,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_MONO_OUT_VOLUME,0x1ad247eb,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_PC_SPEAKER,0x185fedff,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_PC_SPEAKER_MUTE,0x185fedf1,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_PC_SPEAKER_VOLUME,0x185fedf0,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_PEAKMETER,0x57e24340,0xfc5b,0x4612,0xa5,0x62,0x72,0xb1,0x1a,0x29,0xdf,0xae); +DEFINE_GUID(KSAUDFNAME_RECORDING_CONTROL,0x185fedfa,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_RECORDING_SOURCE,0x185fedef,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_STEREO_MIX,0xdff077,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_STEREO_MIX_MUTE,0x22b0eafd,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_STEREO_MIX_VOLUME,0x1ad247ed,0x96e3,0x11d2,0xac,0x4c,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_TREBLE,0x185fede1,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_VIDEO,0x915daec4,0xa434,0x11d2,0xac,0x52,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_VIDEO_MUTE,0x9b46e709,0x992a,0x11d2,0xac,0x4d,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_VIDEO_VOLUME,0x9b46e708,0x992a,0x11d2,0xac,0x4d,0,0xc0,0x4f,0x8e,0xfb,0x68); +DEFINE_GUID(KSAUDFNAME_VOLUME_CONTROL,0x185fedf7,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_WAVE_IN_VOLUME,0x185fedf6,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_WAVE_MUTE,0x185fede6,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_WAVE_OUT_MIX,0x185fee00,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSAUDFNAME_WAVE_VOLUME,0x185fede5,0x9905,0x11d1,0x95,0xa9,0,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSCATEGORY_ACOUSTIC_ECHO_CANCEL,0xbf963d80,0xc559,0x11d0,0x8a,0x2b,0,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSCATEGORY_AUDIO,0x6994ad04,0x93ef,0x11d0,0xa3,0xcc,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_AUDIO_DEVICE,0xfbf6f530,0x7b9,0x11d2,0xa7,0x1e,0,0,0xf8,0,0x47,0x88); +DEFINE_GUID(KSCATEGORY_AUDIO_GFX,0x9baf9572,0x340c,0x11d3,0xab,0xdc,0,0xa0,0xc9,0xa,0xb1,0x6f); +DEFINE_GUID(KSCATEGORY_AUDIO_SPLITTER,0x9ea331fa,0xb91b,0x45f8,0x92,0x85,0xbd,0x2b,0xc7,0x7a,0xfc,0xde); +DEFINE_GUID(KSCATEGORY_BRIDGE,0x85aff00,0x62ce,0x11cf,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSCATEGORY_CAPTURE,0x65e8773d,0x8f56,0x11d0,0xa3,0xb9,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_CLOCK,0x53172480,0x4791,0x11d0,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSCATEGORY_COMMUNICATIONSTRANSFORM,0xcf1dda2c,0x9743,0x11d0,0xa3,0xee,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_CROSSBAR,0xa799a801,0xa46d,0x11d0,0xa1,0x8c,0,0xa0,0x24,0x1,0xdc,0xd4); +DEFINE_GUID(KSCATEGORY_DATACOMPRESSOR,0x1e84c900,0x7e70,0x11d0,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSCATEGORY_DATADECOMPRESSOR,0x2721ae20,0x7e70,0x11d0,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSCATEGORY_DATATRANSFORM,0x2eb07ea0,0x7e70,0x11d0,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSCATEGORY_ENCODER,0x19689bf6,0xc384,0x48fd,0xad,0x51,0x90,0xe5,0x8c,0x79,0xf7,0xb); +DEFINE_GUID(KSCATEGORY_ESCALANTE_PLATFORM_DRIVER,0x74f3aea8,0x9768,0x11d1,0x8e,0x7,0,0xa0,0xc9,0x5e,0xc2,0x2e); +DEFINE_GUID(KSCATEGORY_FILESYSTEM,0x760fed5e,0x9357,0x11d0,0xa3,0xcc,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_INTERFACETRANSFORM,0xcf1dda2d,0x9743,0x11d0,0xa3,0xee,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_MEDIUMTRANSFORM,0xcf1dda2e,0x9743,0x11d0,0xa3,0xee,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR,0x830a44f2,0xa32d,0x476b,0xbe,0x97,0x42,0x84,0x56,0x73,0xb3,0x5a); +DEFINE_GUID(KSCATEGORY_MIXER,0xad809c00,0x7b88,0x11d0,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSCATEGORY_NETWORK,0x67c9cc3c,0x69c4,0x11d2,0x87,0x59,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE,0xd6c50674,0x72c1,0x11d2,0x97,0x55,0,0,0xf8,0,0x47,0x88); +DEFINE_GUID(KSCATEGORY_PREFERRED_WAVEIN_DEVICE,0xd6c50671,0x72c1,0x11d2,0x97,0x55,0,0,0xf8,0,0x47,0x88); +DEFINE_GUID(KSCATEGORY_PREFERRED_WAVEOUT_DEVICE,0xd6c5066e,0x72c1,0x11d2,0x97,0x55,0,0,0xf8,0,0x47,0x88); +DEFINE_GUID(KSCATEGORY_PROXY,0x97ebaaca,0x95bd,0x11d0,0xa3,0xea,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_QUALITY,0x97ebaacb,0x95bd,0x11d0,0xa3,0xea,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_RENDER,0x65e8773e,0x8f56,0x11d0,0xa3,0xb9,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_SPLITTER,0xa4252a0,0x7e70,0x11d0,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSCATEGORY_SYSAUDIO,0xa7c7a5b1,0x5af3,0x11d1,0x9c,0xed,0,0xa0,0x24,0xbf,0x4,0x7); +DEFINE_GUID(KSCATEGORY_TEXT,0x6994ad06,0x93ef,0x11d0,0xa3,0xcc,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_TOPOLOGY,0xdda54a40,0x1e4c,0x11d1,0xa0,0x50,0x40,0x57,0x5,0xc1,0,0); +DEFINE_GUID(KSCATEGORY_TVAUDIO,0xa799a802,0xa46d,0x11d0,0xa1,0x8c,0,0xa0,0x24,0x1,0xdc,0xd4); +DEFINE_GUID(KSCATEGORY_TVTUNER,0xa799a800,0xa46d,0x11d0,0xa1,0x8c,0,0xa0,0x24,0x1,0xdc,0xd4); +DEFINE_GUID(KSCATEGORY_VBICODEC,0x7dad660,0x22f1,0x11d1,0xa9,0xf4,0,0xc0,0x4f,0xbb,0xde,0x8f); +DEFINE_GUID(KSCATEGORY_VIDEO,0x6994ad05,0x93ef,0x11d0,0xa3,0xcc,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_VIDEO_CAMERA,0xe5323777,0xf976,0x4f5b,0x9b,0x55,0xb9,0x46,0x99,0xc4,0x6e,0x44); +DEFINE_GUID(KSCATEGORY_VIRTUAL,0x3503eac4,0x1f26,0x11d1,0x8a,0xb0,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSCATEGORY_VPMUX,0xa799a803,0xa46d,0x11d0,0xa1,0x8c,0,0xa0,0x24,0x1,0xdc,0xd4); +DEFINE_GUID(KSCATEGORY_WDMAUD,0x3e227e76,0x690d,0x11d2,0x81,0x61,0,0,0xf8,0x77,0x5b,0xf1); +DEFINE_GUID(KSCATEGORY_WDMAUD_USE_PIN_NAME,0x47a4fa20,0xa251,0x11d1,0xa0,0x50,0,0,0xf8,0,0x47,0x88); +DEFINE_GUID(KSCOMPONENTID_USBAUDIO,0x8f1275f0,0x26e9,0x4264,0xba,0x4d,0x39,0xff,0xf0,0x1d,0x94,0xaa); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_AC3_AUDIO,0xe06d80e4,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_ANALOGVIDEO,0x482dde0,0x7817,0x11cf,0x8a,0x3,0,0xaa,0,0x6e,0xcb,0x65); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO,0x36523b35,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO,0x36523b32,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO,0x36523b31,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO,0x36523b34,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO,0x36523b33,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_DSOUND,0x518590a2,0xa184,0x11d0,0x85,0x22,0,0xc0,0x4f,0xd9,0xba,0xf3); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_FILEHANDLE,0x65e8773c,0x8f56,0x11d0,0xa3,0xb9,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_FILENAME,0xaa797b40,0xe974,0x11cf,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_LPCM_AUDIO,0xe06d80e6,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO,0x5589f82,0xc356,0x11ce,0xbf,0x1,0,0xaa,0,0x55,0x59,0x5a); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO,0xe06d80e5,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO,0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_NONE,0xf6417d6,0xc318,0x11d0,0xa4,0x3f,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_VBI,0xf72a76e0,0xeb0a,0x11d0,0xac,0xe4,0,0,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_VC_ID,0xad98d184,0xaac3,0x11d0,0xa4,0x1c,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_VIDEOINFO,0x5589f80,0xc356,0x11ce,0xbf,0x1,0,0xaa,0,0x55,0x59,0x5a); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_VIDEOINFO2,0xf72a76a0,0xeb0a,0x11d0,0xac,0xe4,0,0,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX,0x5589f81,0xc356,0x11ce,0xbf,0x1,0,0xaa,0,0x55,0x59,0x5a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_AC3_AUDIO,0xe06d802c,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_ADPCM,0x2,0,0x10,0x80,0,0,0xaa,0,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_ALAW,0x6,0,0x10,0x80,0,0,0xaa,0,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_ANALOG,0x6dba3190,0x67bd,0x11cf,0xa0,0xf7,0,0x20,0xaf,0xd1,0x56,0xe4); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_CC,0x33214cc1,0x11f,0x11d2,0xb4,0xb1,0,0xa0,0xd1,0x2,0xcf,0xbe); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_DRM,0x9,0,0x10,0x80,0,0,0xaa,0,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_DSS_AUDIO,0xa0af4f82,0xe163,0x11d0,0xba,0xd9,0,0x60,0x97,0x44,0x11,0x1a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_DSS_VIDEO,0xa0af4f81,0xe163,0x11d0,0xba,0xd9,0,0x60,0x97,0x44,0x11,0x1a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_DTS_AUDIO,0xe06d8033,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT,0x3,0,0x10,0x80,0,0,0xaa,0,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_Line21_BytePair,0x6e8d4a22,0x310c,0x11d0,0xb7,0x9a,0,0xaa,0,0x37,0x67,0xa7); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_Line21_GOPPacket,0x6e8d4a23,0x310c,0x11d0,0xb7,0x9a,0,0xaa,0,0x37,0x67,0xa7); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_LPCM_AUDIO,0xe06d8032,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MIDI,0x1d262760,0xe957,0x11cf,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MIDI_BUS,0x2ca15fa0,0x6cfe,0x11cf,0xa5,0xd6,0x28,0xdb,0x4,0xc1,0,0); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MPEG,0x50,0,0x10,0x80,0,0,0xaa,0,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MPEG1Packet,0xe436eb80,0x524f,0x11ce,0x9f,0x53,0,0x20,0xaf,0xb,0xa7,0x70); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MPEG1Payload,0xe436eb81,0x524f,0x11ce,0x9f,0x53,0,0x20,0xaf,0xb,0xa7,0x70); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MPEG1Video,0xe436eb86,0x524f,0x11ce,0x9f,0x53,0,0x20,0xaf,0xb,0xa7,0x70); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO,0xe06d802b,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO,0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MULAW,0x7,0,0x10,0x80,0,0,0xaa,0,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_NABTS,0xf72a76e2,0xeb0a,0x11d0,0xac,0xe4,0,0,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_NABTS_FEC,0xe757bca1,0x39ac,0x11d1,0xa9,0xf5,0,0xc0,0x4f,0xbb,0xde,0x8f); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_NONE,0xe436eb8e,0x524f,0x11ce,0x9f,0x53,0,0x20,0xaf,0xb,0xa7,0x70); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_OVERLAY,0xe436eb7f,0x524f,0x11ce,0x9f,0x53,0,0x20,0xaf,0xb,0xa7,0x70); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_PCM,0x1,0,0x10,0x80,0,0,0xaa,0,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_RAW8,0xca20d9a0,0x3e3e,0x11d1,0x9b,0xf9,0,0xc0,0x4f,0xbb,0xde,0xbf); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_RIFF,0x4995daee,0x9ee6,0x11d0,0xa4,0xe,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_RIFFMIDI,0x4995daf0,0x9ee6,0x11d0,0xa4,0xe,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_RIFFWAVE,0xe436eb8b,0x524f,0x11ce,0x9f,0x53,0,0x20,0xaf,0xb,0xa7,0x70); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_SDDS_AUDIO,0xe06d8034,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO,0x36523b25,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO,0x36523b22,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO,0x36523b21,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO,0x36523b24,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO,0x36523b23,0x8ee5,0x11d1,0x8c,0xa3,0,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_SUBPICTURE,0xe06d802d,0xdb46,0x11cf,0xb4,0xd1,0,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_TELETEXT,0xf72a76e3,0xeb0a,0x11d0,0xac,0xe4,0,0,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_VPVBI,0x5a9b6a41,0x1a22,0x11d1,0xba,0xd9,0,0x60,0x97,0x44,0x11,0x1a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_VPVideo,0x5a9b6a40,0x1a22,0x11d1,0xba,0xd9,0,0x60,0x97,0x44,0x11,0x1a); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX,0,0,0x10,0x80,0,0,0xaa,0,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_TYPE_ANALOGVIDEO,0x0482dde1,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65); +DEFINE_GUID(KSDATAFORMAT_TYPE_AUDIO,0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_TYPE_AUXLine21Data,0x670aea80,0x3a82,0x11d0,0xb7,0x9b,0x00,0xaa,0x00,0x37,0x67,0xa7); +DEFINE_GUID(KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK,0xed0b916a,0x044d,0x11d1,0xaa,0x78,0x00,0xc0,0x4f,0xc3,0x1d,0x60); +DEFINE_GUID(KSDATAFORMAT_TYPE_MIDI,0x7364696d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_TYPE_MPEG2_PES,0xe06d8020,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_TYPE_MPEG2_PROGRAM,0xe06d8022,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_TYPE_MPEG2_TRANSPORT,0xe06d8023,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea); +DEFINE_GUID(KSDATAFORMAT_TYPE_MUSIC,0xe725d360,0x62cc,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSDATAFORMAT_TYPE_NABTS,0xe757bca0,0x39ac,0x11d1,0xa9,0xf5,0x00,0xc0,0x4f,0xbb,0xde,0x8f); +DEFINE_GUID(KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM,0x36523b11,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER,0x36523b13,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_TYPE_STANDARD_PES_PACKET,0x36523b12,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a); +DEFINE_GUID(KSDATAFORMAT_TYPE_STREAM,0xe436eb83,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(KSDATAFORMAT_TYPE_TEXT,0x73747874,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); +DEFINE_GUID(KSDATAFORMAT_TYPE_VBI,0xf72a76e1,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(KSDATAFORMAT_TYPE_VIDEO,0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); +DEFINE_GUID(KSDEGRADESETID_Standard,0x9f564180,0x704c,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSEVENTSETID_AudioControlChange,0xe85e9698,0xfa2f,0x11d1,0x95,0xbd,0x00,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSEVENTSETID_Clock,0x364d8e20,0x62c7,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSEVENTSETID_Connection,0x7f4bcbe0,0x9ea5,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSEVENTSETID_Cyclic,0x142c1ac0,0x072a,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSEVENTSETID_LoopedStreaming,0x4682b940,0xc6ef,0x11d0,0x96,0xd8,0x00,0xaa,0x00,0x51,0xe5,0x1d); +DEFINE_GUID(KSEVENTSETID_StreamAllocator,0x75d95571,0x073c,0x11d0,0xa1,0x61,0x00,0x20,0xaf,0xd1,0x56,0xe4); +DEFINE_GUID(KSEVENTSETID_Sysaudio,0x04800320,0x4491,0x11d1,0xa0,0x50,0x40,0x57,0x05,0xc1,0x00,0x00); +DEFINE_GUID(KSEVENTSETID_VIDCAP_TVAUDIO,0x6a2e0651,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(KSEVENTSETID_VIDCAPTOSTI,0xdb47de20,0xf628,0x11d1,0xba,0x41,0x00,0xa0,0xc9,0x0d,0x2b,0x05); +DEFINE_GUID(KSEVENTSETID_VPNotify,0x20c5598e,0xd3c8,0x11d0,0x8d,0xfc,0x00,0xc0,0x4f,0xd7,0xc0,0x8b); +DEFINE_GUID(KSEVENTSETID_VPVBINotify,0xec529b01,0x1a1f,0x11d1,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a); +DEFINE_GUID(KSINTERFACESETID_FileIo,0x8c6f932c,0xe771,0x11d0,0xb8,0xff,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSINTERFACESETID_Media,0x3a13eb40,0x30a7,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSINTERFACESETID_Standard,0x1a8766a0,0x62ce,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSMEDIUMSETID_MidiBus,0x05908040,0x3246,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSMEDIUMSETID_Standard,0x4747b320,0x62ce,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSMEDIUMSETID_VPBus,0xa18c15ec,0xce43,0x11d0,0xab,0xe7,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSMEMORY_TYPE_DEVICE_UNKNOWN,0x091bb639,0x603f,0x11d1,0xb0,0x67,0x00,0xa0,0xc9,0x06,0x28,0x02); +DEFINE_GUID(KSMEMORY_TYPE_KERNEL_NONPAGED,0x4a6d5fc4,0x7895,0x11d1,0xb0,0x69,0x00,0xa0,0xc9,0x06,0x28,0x02); +DEFINE_GUID(KSMEMORY_TYPE_KERNEL_PAGED,0xd833f8f8,0x7894,0x11d1,0xb0,0x69,0x00,0xa0,0xc9,0x06,0x28,0x02); +DEFINE_GUID(KSMEMORY_TYPE_SYSTEM,0x091bb638,0x603f,0x11d1,0xb0,0x67,0x00,0xa0,0xc9,0x06,0x28,0x02); +DEFINE_GUID(KSMEMORY_TYPE_USER,0x8cb0fc28,0x7893,0x11d1,0xb0,0x69,0x00,0xa0,0xc9,0x06,0x28,0x02); +DEFINE_GUID(KSMETHODSETID_StreamAllocator,0xcf6e4341,0xec87,0x11cf,0xa1,0x30,0x00,0x20,0xaf,0xd1,0x56,0xe4); +DEFINE_GUID(KSMETHODSETID_StreamIo,0x65d003ca,0x1523,0x11d2,0xb2,0x7a,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSMETHODSETID_Wave_Queued,0x7432c160,0x8827,0x11cf,0xa1,0x02,0x00,0x20,0xaf,0xd1,0x56,0xe4); +DEFINE_GUID(KSMETHODSETID_Wavetable,0xdcef31eb,0xd907,0x11d0,0x95,0x83,0x00,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSMUSIC_TECHNOLOGY_FMSYNTH,0x252c5c80,0x62e9,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSMUSIC_TECHNOLOGY_PORT,0x86c92e60,0x62e8,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSMUSIC_TECHNOLOGY_SQSYNTH,0x0ecf4380,0x62e9,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSMUSIC_TECHNOLOGY_SWSYNTH,0x37407736,0x3620,0x11d1,0x85,0xd3,0x00,0x00,0xf8,0x75,0x43,0x80); +DEFINE_GUID(KSMUSIC_TECHNOLOGY_WAVETABLE,0x394ec7c0,0x62e9,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSNAME_Allocator,0x642f5d00,0x4791,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSNAME_Clock,0x53172480,0x4791,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSNAME_Filter,0x9b365890,0x165f,0x11d0,0xa1,0x95,0x00,0x20,0xaf,0xd1,0x56,0xe4); +DEFINE_GUID(KSNAME_Pin,0x146f1a80,0x4791,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSNAME_Server,0x3c0d501a,0x140b,0x11d1,0xb4,0xf,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNAME_TopologyNode,0x0621061a,0xee75,0x11d0,0xb9,0x15,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_1394_DA_STREAM,0xdff21fe6,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_1394_DV_STREAM_SOUNDTRACK,0xdff21fe7,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_3D_EFFECTS,0x55515860,0xc559,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_ADC,0x4d837fe0,0xc555,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_AGC,0xe88c9ba0,0xc557,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_ANALOG_CONNECTOR,0xdff21fe1,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_ANALOG_TAPE,0xdff220e7,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_CABLE_TUNER_AUDIO,0xdff220ee,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_CD_PLAYER,0xdff220e3,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_COMMUNICATION_SPEAKER,0xdff21ce6,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_DAC,0x507ae360,0xc554,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE,0xdff220e4,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE,0xdff220e5,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_DELAY,0x144981e0,0xc558,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_DEMUX,0xc0eb67d4,0xe807,0x11d0,0x95,0x8a,0x00,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSNODETYPE_DESKTOP_MICROPHONE,0xdff21be2,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_DESKTOP_SPEAKER,0xdff21ce4,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_DEV_SPECIFIC,0x941c7ac0,0xc559,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_DIGITAL_AUDIO_INTERFACE,0xdff21fe2,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_DOWN_LINE_PHONE,0xdff21ee3,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_DRM_DESCRAMBLE,0xffbb6e3f,0xccfe,0x4d84,0x90,0xd9,0x42,0x14,0x18,0xb0,0x3a,0x8e); +DEFINE_GUID(KSNODETYPE_DSS_AUDIO,0xdff220ef,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_DVD_AUDIO,0xdff220eb,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE,0xdff21de5,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE,0xdff21de3,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_EQUALIZATION_NOISE,0xdff220e2,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_EQUALIZER,0x9d41b4a0,0xc557,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_HANDSET,0xdff21de1,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO,0xdff21ce3,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_HEADPHONES,0xdff21ce2,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_HEADSET,0xdff21de2,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_CHORUS,0x20173f20,0xc559,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_LEGACY_AUDIO_CONNECTOR,0xdff21fe4,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE,0xdff220e1,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_LINE_CONNECTOR,0xdff21fe3,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_LOUDNESS,0x41887440,0xc558,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER,0xdff21ce7,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_MICROPHONE,0xdff21be1,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_MICROPHONE_ARRAY,0xdff21be5,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_MINIDISK,0xdff220e6,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_MULTITRACK_RECORDER,0xdff220f2,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_MUTE,0x02b223c0,0xc557,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_MUX,0x2ceaf780,0xc556,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_NOISE_SUPPRESS,0xe07f903f,0x62fd,0x4e60,0x8c,0xdd,0xde,0xa7,0x23,0x66,0x65,0xb5); +DEFINE_GUID(KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE,0xdff21be4,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_PEAKMETER,0xa085651e,0x5f0d,0x4b36,0xa8,0x69,0xd1,0x95,0xd6,0xab,0x4b,0x9e); +DEFINE_GUID(KSNODETYPE_PERSONAL_MICROPHONE,0xdff21be3,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_PHONE_LINE,0xdff21ee1,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_PHONOGRAPH,0xdff220e8,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_PROCESSING_MICROPHONE_ARRAY,0xdff21be6,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_PROLOGIC_DECODER,0x831c2c80,0xc558,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_RADIO_RECEIVER,0xdff220f0,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_RADIO_TRANSMITTER,0xdff220f1,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_REVERB,0xef0328e0,0xc558,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_ROOM_SPEAKER,0xdff21ce5,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_SATELLITE_RECEIVER_AUDIO,0xdff220ed,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_SPDIF_INTERFACE,0xdff21fe5,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_SPEAKER,0xdff21ce1,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION,0xdff21de3,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_SRC,0x9db7b9e0,0xc555,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_STEREO_ENHANCE,0xaf6878ac,0xe83f,0x11d0,0x95,0x8a,0x00,0xc0,0x4f,0xb9,0x25,0xd3); +DEFINE_GUID(KSNODETYPE_STEREO_WIDE,0xa9e69800,0xc558,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_SUM,0xda441a60,0xc556,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_SUPERMIX,0xe573adc0,0xc555,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_SURROUND_ENCODER,0x8074c5b2,0x3c66,0x11d2,0xb4,0x5a,0x30,0x78,0x30,0x2c,0x20,0x30); +DEFINE_GUID(KSNODETYPE_SWMIDI,0xcb9befa0,0xa251,0x11d1,0xa0,0x50,0x00,0x00,0xf8,0x00,0x47,0x88); +DEFINE_GUID(KSNODETYPE_SWSYNTH,0x423274a0,0x8b81,0x11d1,0xa0,0x50,0x00,0x00,0xf8,0x00,0x47,0x88); +DEFINE_GUID(KSNODETYPE_SYNTHESIZER,0xdff220f3,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_TELEPHONE,0xdff21ee2,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_TONE,0x7607e580,0xc557,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSNODETYPE_TV_TUNER_AUDIO,0xdff220ec,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_VCR_AUDIO,0xdff220e9,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_VIDEO_DISC_AUDIO,0xdff220ea,0xf70f,0x11d0,0xb9,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSNODETYPE_VOLUME,0x3a5acc00,0xc557,0x11d0,0x8a,0x2b,0x00,0xa0,0xc9,0x25,0x5a,0xc1); +DEFINE_GUID(KSPROPSETID_AC3,0xbfabe720,0x6e1f,0x11d0,0xbc,0xf2,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(KSPROPSETID_Acoustic_Echo_Cancel,0xd7a4af8b,0x3dc1,0x4902,0x91,0xea,0x8a,0x15,0xc9,0xe,0x5,0xb2); +DEFINE_GUID(KSPROPSETID_Audio,0x45ffaaa0,0x6e1b,0x11d0,0xbc,0xf2,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(KSPROPSETID_AudioDecoderOut,0x6ca6e020,0x43bd,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9); +DEFINE_GUID(KSPROPSETID_AudioGfx,0x79a9312e,0x59ae,0x43b0,0xa3,0x50,0x8b,0x5,0x28,0x4c,0xab,0x24); +DEFINE_GUID(KSPROPSETID_Bibliographic,0x07ba150e,0xe2b1,0x11d0,0xac,0x17,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSPROPSETID_Clock,0xdf12a4c0,0xac17,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSPROPSETID_Connection,0x1d58c920,0xac9b,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSPROPSETID_CopyProt,0x0e8a0a40,0x6aef,0x11d0,0x9e,0xd0,0x00,0xa0,0x24,0xca,0x19,0xb3); +DEFINE_GUID(KSPROPSETID_Cyclic,0x3ffeaea0,0x2bee,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSPROPSETID_DirectSound3DBuffer,0x437b3411,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3); +DEFINE_GUID(KSPROPSETID_DirectSound3DListener,0x437b3414,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3); +DEFINE_GUID(KSPROPSETID_DrmAudioStream,0x2f2c8ddd,0x4198,0x4fac,0xba,0x29,0x61,0xbb,0x05,0xb7,0xde,0x06); +DEFINE_GUID(KSPROPSETID_DvdSubPic,0xac390460,0x43af,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9); +DEFINE_GUID(KSPROPSETID_General,0x1464eda5,0x6a8f,0x11d1,0x9a,0xa7,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSPROPSETID_GM,0xaf627536,0xe719,0x11d2,0x8a,0x1d,0x00,0x60,0x97,0xd2,0xdf,0x5d); +DEFINE_GUID(KSPROPSETID_Hrtf3d,0xb66decb0,0xa083,0x11d0,0x85,0x1e,0x00,0xc0,0x4f,0xd9,0xba,0xf3); +DEFINE_GUID(KSPROPSETID_Itd3d,0x6429f090,0x9fd9,0x11d0,0xa7,0x5b,0x00,0xa0,0xc9,0x03,0x65,0xe3); +DEFINE_GUID(KSPROPSETID_Linear,0x5a2ffe80,0x16b9,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSPROPSETID_MediaSeeking,0xee904f0c,0xd09b,0x11d0,0xab,0xe9,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSPROPSETID_MemoryTransport,0xa3d1c5d,0x5243,0x4819,0x9e,0xd0,0xae,0xe8,0x4,0x4c,0xee,0x2b); +DEFINE_GUID(KSPROPSETID_Mpeg2Vid,0xc8e11b60,0x0cc9,0x11d0,0xbd,0x69,0x00,0x35,0x05,0xc1,0x03,0xa9); +DEFINE_GUID(KSPROPSETID_OverlayUpdate,0x490ea5cf,0x7681,0x11d1,0xa2,0x1c,0x00,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSPROPSETID_Pin,0x8c134960,0x51ad,0x11cf,0x87,0x8a,0x94,0xf8,0x01,0xc1,0x00,0x00); +DEFINE_GUID(KSPROPSETID_Quality,0xd16ad380,0xac1a,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSPROPSETID_RtAudio,0xa855a48c,0x2f78,0x4729,0x90,0x51,0x19,0x68,0x74,0x6b,0x9e,0xef); +DEFINE_GUID(KSPROPSETID_Service,0x3c0d501b,0x140b,0x11d1,0xb4,0xf,0,0xa0,0xc9,0x22,0x31,0x96); +DEFINE_GUID(KSPROPSETID_Stream,0x65aaba60,0x98ae,0x11cf,0xa1,0x0d,0x00,0x20,0xaf,0xd1,0x56,0xe4); +DEFINE_GUID(KSPROPSETID_StreamAllocator,0xcf6e4342,0xec87,0x11cf,0xa1,0x30,0x00,0x20,0xaf,0xd1,0x56,0xe4); +DEFINE_GUID(KSPROPSETID_StreamInterface,0x1fdd8ee1,0x9cd3,0x11d0,0x82,0xaa,0x00,0x00,0xf8,0x22,0xfe,0x8a); +DEFINE_GUID(KSPROPSETID_Sysaudio,0xcbe3faa0,0xcc75,0x11d0,0xb4,0x65,0x00,0x00,0x1a,0x18,0x18,0xe6); +DEFINE_GUID(KSPROPSETID_Sysaudio_Pin,0xa3a53220,0xc6e4,0x11d0,0xb4,0x65,0x00,0x00,0x1a,0x18,0x18,0xe6); +DEFINE_GUID(KSPROPSETID_Topology,0x45ffaaa1,0x6e1b,0x11d0,0xbc,0xf2,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(KSPROPSETID_TopologyNode,0x45ffaaa1,0x6e1b,0x11d0,0xbc,0xf2,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(KSPROPSETID_TSRateChange,0xa503c5c0,0x1d1d,0x11d1,0xad,0x80,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(KSPROPSETID_VBICAP_PROPERTIES,0xf162c607,0x7b35,0x496f,0xad,0x7f,0x2d,0xca,0x3b,0x46,0xb7,0x18); +DEFINE_GUID(KSPROPSETID_VBICodecFiltering,0xcafeb0ca,0x8715,0x11d0,0xbd,0x6a,0x00,0x35,0xc0,0xed,0xba,0xbe); +DEFINE_GUID(KSPROPSETID_VPConfig,0xbc29a660,0x30e3,0x11d0,0x9e,0x69,0x00,0xc0,0x4f,0xd7,0xc1,0x5b); +DEFINE_GUID(KSPROPSETID_VPVBIConfig,0xec529b00,0x1a1f,0x11d1,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a); +DEFINE_GUID(KSPROPSETID_VramCapture,0xe73face3L,0x2880,0x4902,0xb7,0x99,0x88,0xd0,0xcd,0x63,0x4e,0xf); +DEFINE_GUID(KSPROPSETID_Wave,0x924e54b0,0x630f,0x11cf,0xad,0xa7,0x08,0x00,0x3e,0x30,0x49,0x4a); +DEFINE_GUID(KSPROPSETID_Wave_Queued,0x16a15b10,0x16f0,0x11d0,0xa1,0x95,0x00,0x20,0xaf,0xd1,0x56,0xe4); +DEFINE_GUID(KSPROPSETID_WaveTable,0x8539e660,0x62e9,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSPROPTYPESETID_General,0x97e99ba0,0xbdea,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00); +DEFINE_GUID(KSTIME_FORMAT_BYTE,0x7b785571,0x8c82,0x11cf,0xbc,0x0c,0x00,0xaa,0x00,0xac,0x74,0xf6); +DEFINE_GUID(KSTIME_FORMAT_FIELD,0x7b785573,0x8c82,0x11cf,0xbc,0x0c,0x00,0xaa,0x00,0xac,0x74,0xf6); +DEFINE_GUID(KSTIME_FORMAT_FRAME,0x7b785570,0x8c82,0x11cf,0xbc,0x0c,0x00,0xaa,0x00,0xac,0x74,0xf6); +DEFINE_GUID(KSTIME_FORMAT_MEDIA_TIME,0x7b785574,0x8c82,0x11cf,0xbc,0x0c,0x00,0xaa,0x00,0xac,0x74,0xf6); +DEFINE_GUID(KSTIME_FORMAT_SAMPLE,0x7b785572,0x8c82,0x11cf,0xbc,0x0c,0x00,0xaa,0x00,0xac,0x74,0xf6); +DEFINE_GUID(PINNAME_VIDEO_ANALOGVIDEOIN,0xfb6c4283,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_CAPTURE,0xfb6c4281,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_CC,0xfb6c4289,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_CC_CAPTURE,0x1aad8061,0x012d,0x11d2,0xb4,0xb1,0x00,0xa0,0xd1,0x02,0xcf,0xbe); +DEFINE_GUID(PINNAME_VIDEO_EDS,0xfb6c4287,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_NABTS,0xfb6c4286,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_NABTS_CAPTURE,0x29703660,0x498a,0x11d2,0xb4,0xb1,0x00,0xa0,0xd1,0x02,0xcf,0xbe); +DEFINE_GUID(PINNAME_VIDEO_PREVIEW,0xfb6c4282,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_STILL,0xfb6c428a,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_TELETEXT,0xfb6c4288,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_TIMECODE,0xfb6c428b,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_VBI,0xfb6c4284,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_VIDEOPORT,0xfb6c4285,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PINNAME_VIDEO_VIDEOPORT_VBI,0xfb6c428c,0x0353,0x11d1,0x90,0x5f,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PROPSETID_ALLOCATOR_CONTROL,0x53171960,0x148e,0x11d2,0x99,0x79,0x00,0x00,0xc0,0xcc,0x16,0xba); +DEFINE_GUID(PROPSETID_TUNER,0x6a2e0605,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_CAMERACONTROL,0xc6e13370,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_CROSSBAR,0x6a2e0640,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_DROPPEDFRAMES,0xc6e13344,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_TVAUDIO,0x6a2e0650,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_VIDEOCOMPRESSION,0xc6e13343,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_VIDEOCONTROL,0x6a2e0670,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_VIDEODECODER,0xc6e13350,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_VIDEOENCODER,0x6a2e0610,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(PROPSETID_VIDCAP_VIDEOPROCAMP,0xc6e13360,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(KSPROPSETID_BdaTopology, 0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0); +DEFINE_GUID(KSMETHODSETID_BdaDeviceConfiguration, 0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0); +DEFINE_GUID(KSPROPSETID_BdaPinControl, 0xded49d5, 0xa8b7, 0x4d5d, 0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d); +DEFINE_GUID(KSMETHODSETID_BdaChangeSync, 0xfd0a5af3, 0xb41d, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0); +DEFINE_GUID(KSPROPSETID_BdaFrequencyFilter, 0x71985f47, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0); +DEFINE_GUID(KSPROPSETID_BdaDigitalDemodulator, 0xef30f379, 0x985b, 0x4d10, 0xb6, 0x40, 0xa7, 0x9d, 0x5e, 0x4, 0xe1, 0xe0); +DEFINE_GUID(KSPROPSETID_BdaLNBInfo, 0x992cf102, 0x49f9, 0x4719, 0xa6, 0x64, 0xc4, 0xf2, 0x3e, 0x24, 0x8, 0xf4); +DEFINE_GUID(KSPROPSETID_BdaSignalStats, 0x1347d106, 0xcf3a, 0x428a, 0xa5, 0xcb, 0xac, 0xd, 0x9a, 0x2a, 0x43, 0x38); +DEFINE_GUID(KSDATAFORMAT_TYPE_BDA_ANTENNA, 0x71985f41, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT, 0xf4aeb342, 0x0329, 0x4fdd, 0xa8, 0xfd, 0x4a, 0xff, 0x49, 0x26, 0xc9, 0x78); +DEFINE_GUID(KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT, 0x8deda6fd, 0xac5f, 0x4334, 0x8e, 0xcf, 0xa4, 0xba, 0x8f, 0xa7, 0xd0, 0xf0); +DEFINE_GUID(KSDATAFORMAT_TYPE_BDA_IF_SIGNAL, 0x61be0b47, 0xa5eb, 0x499b, 0x9a, 0x85, 0x5b, 0x16, 0xc0, 0x7f, 0x12, 0x58); +DEFINE_GUID(KSDATAFORMAT_TYPE_MPEG2_SECTIONS, 0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_ATSC_SI, 0xb3c7397c, 0xd303, 0x414d, 0xb3, 0x3c, 0x4e, 0xd2, 0xc9, 0xd2, 0x97, 0x33); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_DVB_SI, 0xe9dd31a3, 0x221d, 0x4adb, 0x85, 0x32, 0x9a, 0xf3, 0x9, 0xc1, 0xa4, 0x8); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP, 0x762e3f66, 0x336f, 0x48d1, 0xbf, 0x83, 0x2b, 0x0, 0x35, 0x2c, 0x11, 0xf0); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP, 0x951727db, 0xd2ce, 0x4528, 0x96, 0xf6, 0x33, 0x1, 0xfa, 0xbb, 0x2d, 0xe0); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_ISDB_SI, 0x4a2eeb99, 0x6458, 0x4538, 0xb1, 0x87, 0x04, 0x01, 0x7c, 0x41, 0x41, 0x3f); +DEFINE_GUID(KSDATAFORMAT_SUBTYPE_PBDA_TRANSPORT_RAW, 0x0d7aed42, 0xcb9a, 0x11db, 0x97, 0x05, 0x00, 0x50, 0x56, 0xc0, 0x00, 0x08); diff --git a/lib/libc/mingw/libsrc/locationapi.c b/lib/libc/mingw/libsrc/locationapi.c new file mode 100644 index 0000000000..e2c87c29f0 --- /dev/null +++ b/lib/libc/mingw/libsrc/locationapi.c @@ -0,0 +1,5 @@ + +#include + +#include +#include diff --git a/lib/libc/mingw/libsrc/mfuuid.c b/lib/libc/mingw/libsrc/mfuuid.c new file mode 100644 index 0000000000..1daef2bc18 --- /dev/null +++ b/lib/libc/mingw/libsrc/mfuuid.c @@ -0,0 +1,12 @@ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include diff --git a/lib/libc/mingw/math/arm-common/log1p.c b/lib/libc/mingw/libsrc/msxml2.c similarity index 75% rename from lib/libc/mingw/math/arm-common/log1p.c rename to lib/libc/mingw/libsrc/msxml2.c index ea75d75b5d..0776d045b5 100644 --- a/lib/libc/mingw/math/arm-common/log1p.c +++ b/lib/libc/mingw/libsrc/msxml2.c @@ -4,9 +4,6 @@ * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -#include - -double log1p(double x) -{ - return log(x + 1.0); -} +#include +#include +#include diff --git a/lib/libc/mingw/math/arm-common/expm1.c b/lib/libc/mingw/libsrc/msxml6.c similarity index 75% rename from lib/libc/mingw/math/arm-common/expm1.c rename to lib/libc/mingw/libsrc/msxml6.c index 578bb446aa..e67ba73ddb 100644 --- a/lib/libc/mingw/math/arm-common/expm1.c +++ b/lib/libc/mingw/libsrc/msxml6.c @@ -4,9 +4,6 @@ * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -#include - -double expm1(double x) -{ - return exp(x) - 1.0; -} +#include +#include +#include diff --git a/lib/libc/mingw/libsrc/portabledeviceguids.c b/lib/libc/mingw/libsrc/portabledeviceguids.c new file mode 100644 index 0000000000..528bb9b061 --- /dev/null +++ b/lib/libc/mingw/libsrc/portabledeviceguids.c @@ -0,0 +1,4 @@ +#include + +#include +#include diff --git a/lib/libc/mingw/libsrc/sapi.c b/lib/libc/mingw/libsrc/sapi.c new file mode 100644 index 0000000000..ccca156dfc --- /dev/null +++ b/lib/libc/mingw/libsrc/sapi.c @@ -0,0 +1,7 @@ + +#include +#include +#include + +#include +#include diff --git a/lib/libc/mingw/libsrc/sensorsapi.c b/lib/libc/mingw/libsrc/sensorsapi.c new file mode 100644 index 0000000000..6ea2fd8ef9 --- /dev/null +++ b/lib/libc/mingw/libsrc/sensorsapi.c @@ -0,0 +1,6 @@ + +#include + +#include +#include +#include diff --git a/lib/libc/mingw/libsrc/shell32.c b/lib/libc/mingw/libsrc/shell32.c new file mode 100644 index 0000000000..2929f43bcb --- /dev/null +++ b/lib/libc/mingw/libsrc/shell32.c @@ -0,0 +1,23 @@ +#define INITGUID +#include +#define DEFINE_SHLGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46) + +DEFINE_SHLGUID(CLSID_ShellLink,0x00021401L,0,0); +DEFINE_GUID(LIBID_SHDocVw,0xEAB22AC0,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); +DEFINE_GUID(IID_IShellExplorer,0xEAB22AC1,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); +DEFINE_GUID(DIID_DShellExplorerEvents,0xEAB22AC2,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); +DEFINE_GUID(CLSID_ShellExplorer,0xEAB22AC3,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); +DEFINE_GUID(IID_ISHItemOC,0xEAB22AC4,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); +DEFINE_GUID(DIID_DSHItemOCEvents,0xEAB22AC5,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); +DEFINE_GUID(CLSID_SHItemOC,0xEAB22AC6,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); +DEFINE_GUID(IID_DHyperLink,0x0002DF07,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(IID_DIExplorer,0x0002DF05,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(DIID_DExplorerEvents,0x0002DF06,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_InternetExplorer,0x0002DF01,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_StdHyperLink,0x0002DF09,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(IID_IAutoComplete,0x00bb2762,0x6a77,0x11d0,0xa5,0x35,0x00,0xc0,0x4f,0xd7,0xd0,0x62); +DEFINE_GUID(IID_IAutoComplete2,0xeac04bc0,0x3791,0x11d2,0xbb,0x95,0x00,0x60,0x97,0x7b,0x46,0x4c); +DEFINE_GUID(CLSID_TaskbarList,0x56FDF344L,0xFD6D,0x11D0,0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90); +DEFINE_GUID(CLSID_ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1); +DEFINE_GUID(IID_IApplicationAssociationRegistrationUI, 0x1f76a169,0xf994,0x40ac, 0x8f,0xc8,0x09,0x59,0xe8,0x87,0x47,0x10); +DEFINE_GUID(IID_ITaskList3,0xEA1AFB91L,0x9E28,0x4B86,0x90,0xE9,0x9E,0x9F,0x8A,0x5E,0xEF,0xAF); diff --git a/lib/libc/mingw/libsrc/strmiids.c b/lib/libc/mingw/libsrc/strmiids.c new file mode 100644 index 0000000000..3764eeda7f --- /dev/null +++ b/lib/libc/mingw/libsrc/strmiids.c @@ -0,0 +1,510 @@ +/* + + strmiids.c - DirectShow GUIDs + + Written by Filip Navara + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#if defined(__LCC__) || defined(__GNUC__) +#define INITGUID 1 +#include +#else +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +DEFINE_GUID(CLSID_AMovie,0x5f2759c0,0x7685,0x11cf,0x8b,0x23,0x00,0x80,0x5f,0x6c,0xef,0x60); +DEFINE_GUID(CLSID_AMTimelineComp,0x74d2ec80,0x6233,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(CLSID_AMTimelineEffect,0x74d2ec82,0x6233,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(CLSID_AMTimelineGroup,0xf6d371e1,0xb8a6,0x11d2,0x80,0x23,0x00,0xc0,0xdf,0x10,0xd4,0x34); +DEFINE_GUID(CLSID_AMTimelineObj,0x78530b78,0x61f9,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(CLSID_AMTimelineSrc,0x78530b7a,0x61f9,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(CLSID_AMTimelineTrack,0x8f6c3c50,0x897b,0x11d2,0x8c,0xfb,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(CLSID_AMTimelineTrans,0x74d2ec81,0x6233,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(CLSID_AnalogRadioTuningSpace,0x8a674b4c,0x1f63,0x11d3,0xb6,0x4c,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_AnalogTVTuningSpace,0x8a674b4d,0x1f63,0x11d3,0xb6,0x4c,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_ATSCComponentType,0xa8dcf3d5,0x0780,0x4ef4,0x8a,0x83,0x2c,0xff,0xaa,0xcb,0x8a,0xce); +DEFINE_GUID(CLSID_ATSCChannelTuneRequest,0x0369b4e6,0x45b6,0x11d3,0xb6,0x50,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_ATSCLocator,0x8872ff1b,0x98fa,0x4d7a,0x8d,0x93,0xc9,0xf1,0x05,0x5f,0x85,0xbb); +DEFINE_GUID(CLSID_ATSCTuningSpace,0xa2e30750,0x6c3d,0x11d3,0xb6,0x53,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_AudMixer,0x036a9790,0xc153,0x11d2,0x9e,0xf7,0x00,0x60,0x08,0x03,0x9e,0x37); +DEFINE_GUID(CLSID_AuxInTuningSpace,0xf9769a06,0x7aca,0x4e39,0x9c,0xfb,0x97,0xbb,0x35,0xf0,0xe7,0x7e); +DEFINE_GUID(CLSID_BroadcastEventService,0x0b3ffb92,0x0919,0x4934,0x9d,0x5b,0x61,0x9c,0x71,0x9d,0x02,0x02); +DEFINE_GUID(CLSID_CADefaultDlg,0x11166990,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(CLSID_CADenials,0x11166540,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(CLSID_CAManager,0x11166100,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(CLSID_CAManagerProxy,0x11166101,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(CLSID_CAOffer,0x11166550,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(CLSID_CAResDenialTree,0x11166998,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(CLSID_ColorSource,0x0cfdd070,0x581a,0x11d2,0x9e,0xe6,0x00,0x60,0x08,0x03,0x9e,0x37); +DEFINE_GUID(CLSID_Component,0x59dc47a8,0x116c,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(CLSID_Components,0x809b6661,0x94c4,0x49e6,0xb6,0xec,0x3f,0x0f,0x86,0x22,0x15,0xaa); +DEFINE_GUID(CLSID_ComponentType,0x823535a0,0x0318,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(CLSID_ComponentTypes,0xa1a2b1c4,0x0e3a,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(CLSID_CreatePropBagOnRegKey,0x8a674b49,0x1f63,0x11d3,0xb6,0x4c,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_DTFilter,0xc4c4c4f2,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(CLSID_DVBCLocator,0xc531d9fd,0x9685,0x4028,0x8b,0x68,0x6e,0x12,0x32,0x07,0x9f,0x1e); +DEFINE_GUID(CLSID_DVBSLocator,0x1df7d126,0x4050,0x47f0,0xa7,0xcf,0x4c,0x4c,0xa9,0x24,0x13,0x33); +DEFINE_GUID(CLSID_DVBSTuningSpace,0xb64016f3,0xc9a2,0x4066,0x96,0xf0,0xbd,0x95,0x63,0x31,0x47,0x26); +DEFINE_GUID(CLSID_DVBTLocator,0x9cd64701,0xbdf3,0x4d14,0x8e,0x03,0xf1,0x29,0x83,0xd8,0x66,0x64); +DEFINE_GUID(CLSID_DVBTuneRequest,0x15d6504a,0x5494,0x499c,0x88,0x6c,0x97,0x3c,0x9e,0x53,0xb9,0xf1); +DEFINE_GUID(CLSID_DVBTuningSpace,0xc6b14b32,0x76aa,0x4a86,0xa7,0xac,0x5c,0x79,0xaa,0xf5,0x8d,0xa7); +DEFINE_GUID(CLSID_DxtAlphaSetter,0x506d89ae,0x909a,0x44f7,0x94,0x44,0xab,0xd5,0x75,0x89,0x6e,0x35); +DEFINE_GUID(CLSID_DxtCompositor,0xbb44391d,0x6abd,0x422f,0x9e,0x2e,0x38,0x5c,0x9d,0xff,0x51,0xfc); +DEFINE_GUID(CLSID_DxtJpeg,0xde75d012,0x7a65,0x11d2,0x8c,0xea,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(CLSID_DxtKey,0xc5b19592,0x145e,0x11d3,0x9f,0x04,0x00,0x60,0x08,0x03,0x9e,0x37); +DEFINE_GUID(CLSID_ETFilter,0xc4c4c4f1,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(CLSID_EvalRat,0xc5c5c5f1,0x3abc,0x11d6,0xb2,0x5b,0,0xc0,0x4f,0xa0,0xc0,0x26); +DEFINE_GUID(CLSID_FilgraphManager,0xe436ebb3,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(CLSID_ChannelTuneRequest,0x0369b4e5,0x45b6,0x11d3,0xb6,0x50,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_LanguageComponentType,0x1be49f30,0x0e1b,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(CLSID_Locator,0x0888c883,0xac4f,0x4943,0xb5,0x16,0x2c,0x38,0xd9,0xb3,0x45,0x62); +DEFINE_GUID(CLSID_MediaLocator,0xcc1101f2,0x79dc,0x11d2,0x8c,0xe6,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(CLSID_MPEG2Component,0x055cb2d7,0x2969,0x45cd,0x91,0x4b,0x76,0x89,0x07,0x22,0xf1,0x12); +DEFINE_GUID(CLSID_MPEG2ComponentType,0x418008f3,0xcf67,0x4668,0x96,0x28,0x10,0xdc,0x52,0xbe,0x1d,0x08); +DEFINE_GUID(CLSID_MPEG2TuneRequest,0x0955ac62,0xbf2e,0x4cba,0xa2,0xb9,0xa6,0x3f,0x77,0x2d,0x46,0xcf); +DEFINE_GUID(CLSID_MPEG2TuneRequestFactory,0x2c63e4eb,0x4cea,0x41b8,0x91,0x9c,0xe9,0x47,0xea,0x19,0xa7,0x7c); +DEFINE_GUID(CLSID_MSEventBinder,0x577faa18,0x4518,0x445e,0x8f,0x70,0x14,0x73,0xf8,0xcf,0x4b,0xa4); +DEFINE_GUID(CLSID_MSVidAnalogCaptureToDataServices,0xc5702cd6,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidAnalogCaptureToOverlayMixer,0xe18af75a,0x08af,0x11d3,0xb6,0x4a,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidAnalogCaptureToStreamBufferSink,0x9f50e8b1,0x9530,0x4ddc,0x82,0x5e,0x1a,0xf8,0x1d,0x47,0xae,0xd6); +DEFINE_GUID(CLSID_MSVidAnalogCaptureToXDS,0x3540d440,0x5b1d,0x49cb,0x82,0x1a,0xe8,0x4b,0x8c,0xf0,0x65,0xa7); +DEFINE_GUID(CLSID_MSVidAnalogTunerDevice,0x1c15d484,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidAnalogTVToEncoder,0x28953661,0x231,0x41db,0x89,0x86,0x21,0xff,0x43,0x88,0xee,0x9b); +DEFINE_GUID(CLSID_MSVidAudioRenderer,0x37b03544,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidAudioRendererDevices,0xc5702ccf,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidBDATunerDevice,0xa2e3074e,0x6c3d,0x11d3,0xb6,0x53,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidCAGSeg,0x1600f101,0x6666,0x4f66,0xb1,0xe2,0xbf,0x3c,0x9f,0xbb,0x9b,0xa6); +DEFINE_GUID(CLSID_MSVidClosedCaptioning,0x7f9cb14d,0x48e4,0x43b6,0x93,0x46,0x1a,0xeb,0xc3,0x9c,0x64,0xd3); +DEFINE_GUID(CLSID_MSVidCtl,0xb0edf163,0x910a,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidDataServices,0x334125c0,0x77e5,0x11d3,0xb6,0x53,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidDataServicesToStreamBufferSink,0x38f03426,0xe83b,0x4e68,0xb6,0x5b,0xdc,0xae,0x73,0x30,0x48,0x38); +DEFINE_GUID(CLSID_MSVidDataServicesToXDS,0x429ec6e,0x1144,0x4bed,0xb8,0x8b,0x2f,0xb9,0x89,0x9a,0x4a,0x3d); +DEFINE_GUID(CLSID_MSVidDevice,0x6e40476f,0x9c49,0x4c3e,0x8b,0xb9,0x85,0x87,0x95,0x8e,0xff,0x74); +DEFINE_GUID(CLSID_MSVidDigitalCaptureToStreamBufferSink,0xabe40035,0x27c3,0x4a2f,0x81,0x53,0x66,0x24,0x47,0x16,0x8,0xaf); +DEFINE_GUID(CLSID_MSVidEncoder,0xbb530c63,0xd9df,0x4b49,0x94,0x39,0x63,0x45,0x39,0x62,0xe5,0x98); +DEFINE_GUID(CLSID_MSVidEncoderToStreamBufferSink,0xa0b9b497,0xafbc,0x45ad,0xa8,0xa6,0x9b,0x7,0x7c,0x40,0xd4,0xf2); +DEFINE_GUID(CLSID_MSVidFeature,0x7748530b,0xc08a,0x47ea,0xb2,0x4c,0xbe,0x86,0x95,0xff,0x40,0x5f); +DEFINE_GUID(CLSID_MSVidFeatures,0xc5702cd0,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidFilePlaybackDevice,0x37b0353c,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidFilePlaybackToAudioRenderer,0xcc23f537,0x18d4,0x4ece,0x93,0xbd,0x20,0x7a,0x84,0x72,0x69,0x79); +DEFINE_GUID(CLSID_MSVidFilePlaybackToVideoRenderer,0xb401c5eb,0x8457,0x427f,0x84,0xea,0xa4,0xd2,0x36,0x33,0x64,0xb0); +DEFINE_GUID(CLSID_MSVidGenericComposite,0x2764bce5,0xcc39,0x11d2,0xb6,0x39,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidInputDevice,0xac1972f2,0x138a,0x4ca3,0x90,0xda,0xae,0x51,0x11,0x2e,0xda,0x28); +DEFINE_GUID(CLSID_MSVidInputDevices,0xc5702ccc,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidMPEG2DecoderToClosedCaptioning,0x6ad28ee1,0x5002,0x4e71,0xaa,0xf7,0xbd,0x07,0x79,0x07,0xb1,0xa4); +DEFINE_GUID(CLSID_MSVidOutput,0x87eb890d,0x03ad,0x4e9d,0x98,0x66,0x37,0x6e,0x5e,0xc5,0x72,0xed); +DEFINE_GUID(CLSID_MSVidOutputDevices,0xc5702ccd,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidRect,0xcb4276e6,0x7d5f,0x4cf1,0x97,0x27,0x62,0x9c,0x5e,0x6d,0xb6,0xae); +DEFINE_GUID(CLSID_MSVidRenderFactory,0x11973c25,0x3529,0x40e4,0x9a,0xb1,0xdd,0xc1,0x64,0xcb,0xef,0x49); +DEFINE_GUID(CLSID_MSVidSBESourceToCC,0x9193a8f9,0xcba,0x400e,0xaa,0x97,0xeb,0x47,0x9,0x16,0x45,0x76); +DEFINE_GUID(CLSID_MSVidStreamBufferRecordingControl,0xcaafdd83,0xcefc,0x4e3d,0xba,0x3,0x17,0x5f,0x17,0xa2,0x4f,0x91); +DEFINE_GUID(CLSID_MSVidStreamBufferSink,0x9e77aac4,0x35e5,0x42a1,0xbd,0xc2,0x8f,0x3f,0xf3,0x99,0x84,0x7c); +DEFINE_GUID(CLSID_MSVidStreamBufferSource,0xad8e510d,0x217f,0x409b,0x80,0x76,0x29,0xc5,0xe7,0x3b,0x98,0xe8); +DEFINE_GUID(CLSID_MSVidStreamBufferSourceToVideoRenderer,0x3c4708dc,0xb181,0x46a8,0x8d,0xa8,0x4a,0xb0,0x37,0x17,0x58,0xcd); +DEFINE_GUID(CLSID_MSVidTVEGSeg,0x1600f001,0x6666,0x4f66,0xb1,0xe2,0xbf,0x3c,0x9f,0xbb,0x9b,0xa6); +DEFINE_GUID(CLSID_MSVidVideoInputDevice,0x95f4820b,0xbb3a,0x4e2d,0xbc,0x64,0x5b,0x81,0x7b,0xc2,0xc3,0x0e); +DEFINE_GUID(CLSID_MSVidVideoPlaybackDevice,0x1990d634,0x1a5e,0x4071,0xa3,0x4a,0x53,0xaa,0xff,0xce,0x9f,0x36); +DEFINE_GUID(CLSID_MSVidVideoRenderer,0x37b03543,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidVideoRendererDevices,0xc5702cce,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(CLSID_MSVidWebDVD,0x011b3619,0xfe63,0x4814,0x8a,0x84,0x15,0xa1,0x94,0xce,0x9c,0xe3); +DEFINE_GUID(CLSID_MSVidWebDVDAdm,0xfa7c375b,0x66a7,0x4280,0x87,0x9d,0xfd,0x45,0x9c,0x84,0xbb,0x02); +DEFINE_GUID(CLSID_MSVidWebDVDToAudioRenderer,0x8d04238e,0x9fd1,0x41c6,0x8d,0xe3,0x9e,0x1e,0xe3,0x9,0xe9,0x35); +DEFINE_GUID(CLSID_MSVidWebDVDToVideoRenderer,0x267db0b3,0x55e3,0x4902,0x94,0x9b,0xdf,0x8f,0x5c,0xec,0x01,0x91); +DEFINE_GUID(CLSID_MSVidXDS,0x149eedf,0xd08f,0x4142,0x8d,0x73,0xd2,0x39,0x3,0xd2,0x1e,0x90); +DEFINE_GUID(CLSID_NullRenderer,0xc1f400a4,0x3f08,0x11d3,0x9f,0x0b,0x00,0x60,0x08,0x03,0x9e,0x37); +DEFINE_GUID(CLSID_PropertySetter,0xadf95821,0xded7,0x11d2,0xac,0xbe,0x00,0x80,0xc7,0x5e,0x24,0x6e); +DEFINE_GUID(CLSID_RenderEngine,0x64d8a8e0,0x80a2,0x11d2,0x8c,0xf3,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(CLSID_SmartRenderEngine,0x498b0949,0xbbe9,0x4072,0x98,0xbe,0x6c,0xca,0xeb,0x79,0xdc,0x6f); +DEFINE_GUID(CLSID_SystemTuningSpaces,0xd02aac50,0x027e,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(CLSID_TIFLoad,0x14eb8748,0x1753,0x4393,0x95,0xae,0x4f,0x7e,0x7a,0x87,0xaa,0xd6); +DEFINE_GUID(CLSID_TuneRequest,0xb46e0d38,0xab35,0x4a06,0xa1,0x37,0x70,0x57,0x6b,0x01,0xb3,0x9f); +DEFINE_GUID(CLSID_TuningSpace,0x5ffdc5e6,0xb83a,0x4b55,0xb6,0xe8,0xc6,0x9e,0x76,0x5f,0xe9,0xdb); +DEFINE_GUID(CLSID_TVEAttrMap,0x05500021,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEAttrTimeQ,0x05500022,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVECBAnnc,0x05500041,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVECBDummy,0x05500049,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVECBFile,0x05500043,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVECBTrig,0x05500042,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEEnhancement,0x05500004,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEEnhancements,0x05500014,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEFeature,0x05500025,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEFile,0x05500050,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEFilter,0x05500080,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEMCast,0x05500030,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEMCastCallback,0x05500040,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEMCastManager,0x05500032,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEMCasts,0x05500031,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVENavAid,0x05500070,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEService,0x05500005,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEServices,0x05500015,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVESupervisor,0x05500006,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVETrack,0x05500002,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVETrigger,0x05500001,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVETriggerCtrl,0x05500090,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_TVEVariation,0x05500003,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(CLSID_XDSCodec,0xc4c4c4f3,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(CLSID_XDSToRat,0xc5c5c5f0,0x3abc,0x11d6,0xb2,0x5b,0,0xc0,0x4f,0xa0,0xc0,0x26); +DEFINE_GUID(CLSID_Xml2Dex,0x18c628ee,0x962a,0x11d2,0x8d,0x08,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(DIID__ICAComponentsEvents,0x11166260,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__ICADefaultDlgEvents,0x11166991,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__ICADenialsEvents,0x11166240,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__ICAManagerEvents,0x11166200,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__ICAOffersEvents,0x11166250,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__ICAPoliciesEvents,0x11166220,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__ICARequestEvents,0x11166210,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__ICAResDenialTreeEvents,0x11166298,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__ICATollsEvents,0x11166230,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(DIID__IMSVidCtlEvents,0xb0edf164,0x910a,0x11d2,0xb6,0x32,0,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(DIID__ITVEEvents,0x05500000,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(DIID__ITVETriggerCtrlEvents,0x05500091,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(DIID_IDTFilterEvents,0xc4c4c4c2,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(DIID_IETFilterEvents,0xc4c4c4c1,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(DIID_IXDSCodecEvents,0xc4c4c4c3,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(IID_IAMAnalogVideoDecoder,0xc6e13350,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(IID_IAMAnalogVideoEncoder,0xc6e133b0,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56); +DEFINE_GUID(IID_IAMAudioInputMixer,0x54c39221,0x8380,0x11d0,0xb3,0xf0,0x00,0xaa,0x00,0x37,0x61,0xc5); +DEFINE_GUID(IID_IAMAudioRendererStats,0x22320cb2,0xd41a,0x11d2,0xbf,0x7c,0xd7,0xcb,0x9d,0xf0,0xbf,0x93); +DEFINE_GUID(IID_IAMClockAdjust,0x4d5466b0,0xa49c,0x11d1,0xab,0xe8,0x00,0xa0,0xc9,0x05,0xf3,0x75); +DEFINE_GUID(IID_IAMCollection,0x56a868b9,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IAMDecoderCaps,0xc0dff467,0xd499,0x4986,0x97,0x2b,0xe1,0xd9,0x09,0x0f,0xa9,0x41); +DEFINE_GUID(IID_IAMDeviceRemoval,0xf90a6130,0xb658,0x11d2,0xae,0x49,0x00,0x00,0xf8,0x75,0x4b,0x99); +DEFINE_GUID(IID_IAMDevMemoryAllocator,0xc6545bf0,0xe76b,0x11d0,0xbd,0x52,0x00,0xa0,0xc9,0x11,0xce,0x86); +DEFINE_GUID(IID_IAMDevMemoryControl,0xc6545bf1,0xe76b,0x11d0,0xbd,0x52,0x00,0xa0,0xc9,0x11,0xce,0x86); +DEFINE_GUID(IID_IAMExtDevice,0xb5730a90,0x1a2c,0x11cf,0x8c,0x23,0x00,0xaa,0x00,0x6b,0x68,0x14); +DEFINE_GUID(IID_IAMExtTransport,0xa03cd5f0,0x3045,0x11cf,0x8c,0x44,0x00,0xaa,0x00,0x6b,0x68,0x14); +DEFINE_GUID(IID_IAMGraphStreams,0x632105fa,0x072e,0x11d3,0x8a,0xf9,0x00,0xc0,0x4f,0xb6,0xbd,0x3d); +DEFINE_GUID(IID_IAMOpenProgress,0x8e1c39a1,0xde53,0x11cf,0xaa,0x63,0x00,0x80,0xc7,0x44,0x52,0x8d); +DEFINE_GUID(IID_IAMOverlayFX,0x62fae250,0x7e65,0x4460,0xbf,0xc9,0x63,0x98,0xb3,0x22,0x07,0x3c); +DEFINE_GUID(IID_IAMovie,0x359ace10,0x7688,0x11cf,0x8b,0x23,0x00,0x80,0x5f,0x6c,0xef,0x60); +DEFINE_GUID(IID_IAMPhysicalPinInfo,0xf938c991,0x3029,0x11cf,0x8c,0x44,0x00,0xaa,0x00,0x6b,0x68,0x14); +DEFINE_GUID(IID_IAMResourceControl,0x8389d2d0,0x77d7,0x11d1,0xab,0xe6,0x00,0xa0,0xc9,0x05,0xf3,0x75); +DEFINE_GUID(IID_IAMStats,0xbc9bcf80,0xdcd2,0x11d2,0xab,0xf6,0x00,0xa0,0xc9,0x05,0xf3,0x75); +DEFINE_GUID(IID_IAMStreamSelect,0xc1960960,0x17f5,0x11d1,0xab,0xe1,0x00,0xa0,0xc9,0x05,0xf3,0x75); +DEFINE_GUID(IID_IAMTimecodeDisplay,0x9b496ce2,0x811b,0x11cf,0x8c,0x77,0x00,0xaa,0x00,0x6b,0x68,0x14); +DEFINE_GUID(IID_IAMTimecodeGenerator,0x9b496ce0,0x811b,0x11cf,0x8c,0x77,0x00,0xaa,0x00,0x6b,0x68,0x14); +DEFINE_GUID(IID_IAMTimecodeReader,0x9b496ce1,0x811b,0x11cf,0x8c,0x77,0x00,0xaa,0x00,0x6b,0x68,0x14); +DEFINE_GUID(IID_IAMTimelineComp,0xeae58536,0x622e,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(IID_IAMTimelineEffect,0xbce0c264,0x622d,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(IID_IAMTimelineEffectable,0xeae58537,0x622e,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(IID_IAMTimelineSplittable,0xa0f840a0,0xd590,0x11d2,0x8d,0x55,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(IID_IAMTimelineTrack,0xeae58538,0x622e,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(IID_IAMTimelineTrans,0xbce0c265,0x622d,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(IID_IAMTimelineTransable,0x378fa386,0x622e,0x11d2,0x8c,0xad,0x00,0xa0,0x24,0x58,0x09,0x02); +DEFINE_GUID(IID_IAMTimelineVirtualTrack,0xa8ed5f80,0xc2c7,0x11d2,0x8d,0x39,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(IID_IAMTVAudio,0x83ec1c30,0x23d1,0x11d1,0x99,0xe6,0x00,0xa0,0xc9,0x56,0x02,0x66); +DEFINE_GUID(IID_IAMTVAudioNotification,0x83ec1c33,0x23d1,0x11d1,0x99,0xe6,0x00,0xa0,0xc9,0x56,0x02,0x66); +DEFINE_GUID(IID_IAMVfwCompressDialogs,0xd8d715a3,0x6e5e,0x11d0,0xb3,0xf0,0x00,0xaa,0x00,0x37,0x61,0xc5); +DEFINE_GUID(IID_IAMVideoAccelerator,0x256a6a22,0xfbad,0x11d1,0x82,0xbf,0x00,0xa0,0xc9,0x69,0x6c,0x8f); +DEFINE_GUID(IID_IAMVideoAcceleratorNotify,0x256a6a21,0xfbad,0x11d1,0x82,0xbf,0x00,0xa0,0xc9,0x69,0x6c,0x8f); +DEFINE_GUID(IID_IAMVideoDecimationProperties,0x60d32930,0x13da,0x11d3,0x9e,0xc6,0xc4,0xfc,0xae,0xf5,0xc7,0xbe); +DEFINE_GUID(IID_IAnalogRadioTuningSpace,0x2a6e293b,0x2595,0x11d3,0xb6,0x4c,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IAnalogTVTuningSpace,0x2a6e293c,0x2595,0x11d3,0xb6,0x4c,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IATSCComponentType,0xfc189e4d,0x7bd4,0x4125,0xb3,0xb3,0x3a,0x76,0xa3,0x32,0xcc,0x96); +DEFINE_GUID(IID_IATSCChannelTuneRequest,0x0369b4e1,0x45b6,0x11d3,0xb6,0x50,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IATSCLocator,0xbf8d986f,0x8c2b,0x4131,0x94,0xd7,0x4d,0x3d,0x9f,0xcc,0x21,0xef); +DEFINE_GUID(IID_IATSCTuningSpace,0x0369b4e2,0x45b6,0x11d3,0xb6,0x50,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IAuxInTuningSpace,0xe48244b8,0x7e17,0x4f76,0xa7,0x63,0x50,0x90,0xff,0x1e,0x2f,0x30); +DEFINE_GUID(IID_IBasicAudio,0x56a868b3,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IBasicVideo,0x56a868b5,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IBasicVideo2,0x329bb360,0xf6ea,0x11d1,0x90,0x38,0x00,0xa0,0xc9,0x69,0x72,0x98); +DEFINE_GUID(IID_IBDA_AutoDemodulate,0xddf15b12,0xbd25,0x11d2,0x9c,0xa0,0x00,0xc0,0x4f,0x79,0x71,0xe0); +DEFINE_GUID(IID_IBDA_DeviceControl,0xfd0a5af3,0xb41d,0x11d2,0x9c,0x95,0x00,0xc0,0x4f,0x79,0x71,0xe0); +DEFINE_GUID(IID_IBDA_DigitalDemodulator,0xef30f379,0x985b,0x4d10,0xb6,0x40,0xa7,0x9d,0x5e,0x04,0xe1,0xe0); +DEFINE_GUID(IID_IBDA_EthernetFilter,0x71985f43,0x1ca1,0x11d3,0x9c,0xc8,0x00,0xc0,0x4f,0x79,0x71,0xe0); +DEFINE_GUID(IID_IBDA_FrequencyFilter,0x71985f47,0x1ca1,0x11d3,0x9c,0xc8,0x00,0xc0,0x4f,0x79,0x71,0xe0); +DEFINE_GUID(IID_IBDA_IPSinkControl,0x3f4dc8e2,0x4050,0x11d3,0x8f,0x4b,0x00,0xc0,0x4f,0x79,0x71,0xe2); +DEFINE_GUID(IID_IBDA_IPSinkInfo,0xa750108f,0x492e,0x4d51,0x95,0xf7,0x64,0x9b,0x23,0xff,0x7a,0xd7); +DEFINE_GUID(IID_IBDA_IPV4Filter,0x71985f44,0x1ca1,0x11d3,0x9c,0xc8,0x00,0xc0,0x4f,0x79,0x71,0xe0); +DEFINE_GUID(IID_IBDA_IPV6Filter,0xe1785a74,0x2a23,0x4fb3,0x92,0x45,0xa8,0xf8,0x80,0x17,0xef,0x33); +DEFINE_GUID(IID_IBDA_LNBInfo,0x992cf102,0x49f9,0x4719,0xa6,0x64,0xc4,0xf2,0x3e,0x24,0x08,0xf4); +DEFINE_GUID(IID_IBDA_NetworkProvider,0xfd501041,0x8ebe,0x11ce,0x81,0x83,0x00,0xaa,0x00,0x57,0x7d,0xa2); +DEFINE_GUID(IID_IBDA_NullTransform,0xddf15b0d,0xbd25,0x11d2,0x9c,0xa0,0x00,0xc0,0x4f,0x79,0x71,0xe0); +DEFINE_GUID(IID_IBDA_PinControl,0x0ded49d5,0xa8b7,0x4d5d,0x97,0xa1,0x12,0xb0,0xc1,0x95,0x87,0x4d); +DEFINE_GUID(IID_IBDA_SignalProperties,0xd2f1644b,0xb409,0x11d2,0xbc,0x69,0x00,0xa0,0xc9,0xee,0x9e,0x16); +DEFINE_GUID(IID_IBDA_SignalStatistics,0x1347d106,0xcf3a,0x428a,0xa5,0xcb,0xac,0x0d,0x9a,0x2a,0x43,0x38); +DEFINE_GUID(IID_IBDA_TIF_REGISTRATION,0xdfef4a68,0xee61,0x415f,0x9c,0xcb,0xcd,0x95,0xf2,0xf9,0x8a,0x3a); +DEFINE_GUID(IID_IBDA_Topology,0xa14ee835,0x0a23,0x11d3,0x9c,0xc7,0x00,0xc0,0x4f,0x79,0x71,0xe0); +DEFINE_GUID(IID_IBDA_VoidTransform,0x71985f46,0x1ca1,0x11d3,0x9c,0xc8,0x00,0xc0,0x4f,0x79,0x71,0xe0); +DEFINE_GUID(IID_IBPCSatelliteTuner,0x211a8765,0x03ac,0x11d1,0x8d,0x13,0x00,0xaa,0x00,0xbd,0x83,0x39); +DEFINE_GUID(IID_IBroadcastEvent,0x3b21263f,0x26e8,0x489d,0xaa,0xc4,0x92,0x4f,0x7e,0xfd,0x95,0x11); +DEFINE_GUID(IID_ICAComponent,0x11166360,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAComponentInternal,0x11166361,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAComponents,0x11166470,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICADefaultDlg,0x860a3fe2,0xded1,0x40e2,0x89,0x6c,0x05,0x76,0x81,0xa8,0xa1,0xa8); +DEFINE_GUID(IID_ICADenial,0x11166340,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICADenials,0x11166440,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICADenialsInternal,0x11166441,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAManager,0x11166300,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAManagerInternal,0x11166301,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAOffer,0x11166350,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAOffers,0x11166450,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAPolicies,0x11166420,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAPoliciesInternal,0x11166421,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAPolicy,0x11166320,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICARequest,0x11166310,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAResDenialTree,0x11166898,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICAToll,0x11166330,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICATolls,0x11166430,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICATollsInternal,0x11166431,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(IID_ICodecAPI,0x901db4c7,0x31ce,0x41a2,0x85,0xdc,0x8f,0xa0,0xbf,0x41,0xb8,0xda); +DEFINE_GUID(IID_IComponent,0x1a5576fc,0x0e19,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_IComponents,0xfcd01846,0x0e19,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_IComponentType,0x6a340dc0,0x0311,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_IComponentTypes,0x0dc13d4a,0x0313,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ICreatePropBagOnRegKey,0x8a674b48,0x1f63,0x11d3,0xb6,0x4c,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IDDrawExclModeVideo,0x153acc21,0xd83b,0x11d1,0x82,0xbf,0x00,0xa0,0xc9,0x69,0x6c,0x8f); +DEFINE_GUID(IID_IDDrawExclModeVideoCallback,0x913c24a0,0x20ab,0x11d2,0x90,0x38,0x00,0xa0,0xc9,0x69,0x72,0x98); +DEFINE_GUID(IID_IDecimateVideoImage,0x2e5ea3e0,0xe924,0x11d2,0xb6,0xda,0x00,0xa0,0xc9,0x95,0xe8,0xdf); +DEFINE_GUID(IID_IDeferredCommand,0x56a868b8,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IDistributorNotify,0x56a868af,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IDrawVideoImage,0x48efb120,0xab49,0x11d2,0xae,0xd2,0x00,0xa0,0xc9,0x95,0xe8,0xd5); +DEFINE_GUID(IID_IDTFilter,0xc4c4c4b2,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(IID_IDTFilterConfig,0xc4c4c4d2,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(IID_IDVBCLocator,0x6e42f36e,0x1dd2,0x43c4,0x9f,0x78,0x69,0xd2,0x5a,0xe3,0x90,0x34); +DEFINE_GUID(IID_IDVBSLocator,0x3d7c353c,0x0d04,0x45f1,0xa7,0x42,0xf9,0x7c,0xc1,0x18,0x8d,0xc8); +DEFINE_GUID(IID_IDVBSTuningSpace,0xcdf7be60,0xd954,0x42fd,0xa9,0x72,0x78,0x97,0x19,0x58,0xe4,0x70); +DEFINE_GUID(IID_IDVBTLocator,0x8664da16,0xdda2,0x42ac,0x92,0x6a,0xc1,0x8f,0x91,0x27,0xc3,0x02); +DEFINE_GUID(IID_IDVBTuneRequest,0x0d6f567e,0xa636,0x42bb,0x83,0xba,0xce,0x4c,0x17,0x04,0xaf,0xa2); +DEFINE_GUID(IID_IDVBTuningSpace,0xada0b268,0x3b19,0x4e5b,0xac,0xc4,0x49,0xf8,0x52,0xbe,0x13,0xba); +DEFINE_GUID(IID_IDVBTuningSpace2,0x843188b4,0xce62,0x43db,0x96,0x6b,0x81,0x45,0xa0,0x94,0xe0,0x40); +DEFINE_GUID(IID_IDvdCmd,0x5a4a97e4,0x94ee,0x4a55,0x97,0x51,0x74,0xb5,0x64,0x3a,0xa2,0x7d); +DEFINE_GUID(IID_IDvdControl,0xa70efe61,0xe2a3,0x11d0,0xa9,0xbe,0x00,0xaa,0x00,0x61,0xbe,0x93); +DEFINE_GUID(IID_IDvdControl2,0x33bc7430,0xeec0,0x11d2,0x82,0x01,0x00,0xa0,0xc9,0xd7,0x48,0x42); +DEFINE_GUID(IID_IDvdGraphBuilder,0xfcc152b6,0xf372,0x11d0,0x8e,0x00,0x00,0xc0,0x4f,0xd7,0xc0,0x8b); +DEFINE_GUID(IID_IDvdInfo,0xa70efe60,0xe2a3,0x11d0,0xa9,0xbe,0x00,0xaa,0x00,0x61,0xbe,0x93); +DEFINE_GUID(IID_IDvdInfo2,0x34151510,0xeec0,0x11d2,0x82,0x01,0x00,0xa0,0xc9,0xd7,0x48,0x42); +DEFINE_GUID(IID_IDvdState,0x86303d6d,0x1c4a,0x4087,0xab,0x42,0xf7,0x11,0x16,0x70,0x48,0xef); +DEFINE_GUID(IID_IDVEnc,0xd18e17a0,0xaacb,0x11d0,0xaf,0xb0,0x00,0xaa,0x00,0xb6,0x7a,0x42); +DEFINE_GUID(IID_IDVRGB219,0x58473a19,0x2bc8,0x4663,0x80,0x12,0x25,0xf8,0x1b,0xab,0xdd,0xd1); +DEFINE_GUID(IID_IDVSplitter,0x92a3a302,0xda7c,0x4a1f,0xba,0x7e,0x18,0x02,0xbb,0x5d,0x2d,0x02); +DEFINE_GUID(IID_IDxtAlphaSetter,0x4ee9ead9,0xda4d,0x43d0,0x93,0x83,0x06,0xb9,0x0c,0x08,0xb1,0x2b); +DEFINE_GUID(IID_IDxtCompositor,0xbb44391e,0x6abd,0x422f,0x9e,0x2e,0x38,0x5c,0x9d,0xff,0x51,0xfc); +DEFINE_GUID(IID_IDxtJpeg,0xde75d011,0x7a65,0x11d2,0x8c,0xea,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(IID_IDxtKey,0x3255de56,0x38fb,0x4901,0xb9,0x80,0x94,0xb4,0x38,0x01,0x0d,0x7b); +DEFINE_GUID(IID_IEncoderAPI,0x70423839,0x6acc,0x4b23,0xb0,0x79,0x21,0xdb,0xf0,0x81,0x56,0xa5); +DEFINE_GUID(IID_IEnumComponents,0x2a6e2939,0x2595,0x11d3,0xb6,0x4c,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IEnumComponentTypes,0x8a674b4a,0x1f63,0x11d3,0xb6,0x4c,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IEnumGuideDataProperties,0xae44423b,0x4571,0x475c,0xad,0x2c,0xf4,0xa,0x77,0x1d,0x80,0xef); +DEFINE_GUID(IID_IEnumMSVidGraphSegment,0x3dd2903e,0xe0aa,0x11d2,0xb6,0x3a,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IEnumPIDMap,0xafb6c2a2,0x2c41,0x11d3,0x8a,0x60,0x00,0x00,0xf8,0x1e,0x0e,0x4a); +DEFINE_GUID(IID_IEnumStreamBufferRecordingAttrib,0xc18a9162,0x1e82,0x4142,0x8c,0x73,0x56,0x90,0xfa,0x62,0xfe,0x33); +DEFINE_GUID(IID_IEnumStreamIdMap,0x945c1566,0x6202,0x46fc,0x96,0xc7,0xd8,0x7f,0x28,0x9c,0x65,0x34); +DEFINE_GUID(IID_IEnumTuneRequests,0x1993299c,0xced6,0x4788,0x87,0xa3,0x42,0,0x67,0xdc,0xe0,0xc7); +DEFINE_GUID(IID_IEnumTuningSpaces,0x8b8eb248,0xfc2b,0x11d2,0x9d,0x8c,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_IETFilter,0xc4c4c4b1,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(IID_IETFilterConfig,0xc4c4c4d1,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(IID_IEvalRat,0xc5c5c5b1,0x3abc,0x11d6,0xb2,0x5b,0,0xc0,0x4f,0xa0,0xc0,0x26); +DEFINE_GUID(IID_IFilterChain,0xdcfbdcf6,0x0dc2,0x45f5,0x9a,0xb2,0x7c,0x33,0x0e,0xa0,0x9c,0x29); +DEFINE_GUID(IID_IFilterInfo,0x56a868ba,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IFindCompressorCB,0xf03fa8de,0x879a,0x4d59,0x9b,0x2c,0x26,0xbb,0x1c,0xf8,0x34,0x61); +DEFINE_GUID(IID_IFrequencyMap,0x6fb45c1,0x693c,0x4ea7,0xb7,0x9f,0x7a,0x6a,0x54,0xd8,0xde,0xf2); +DEFINE_GUID(IID_IGetCapabilitiesKey,0xa8809222,0x7bb,0x48ea,0x95,0x1c,0x33,0x15,0x81,0,0x62,0x5b); +DEFINE_GUID(IID_IGraphConfig,0x03a1eb8e,0x32bf,0x4245,0x85,0x02,0x11,0x4d,0x08,0xa9,0xcb,0x88); +DEFINE_GUID(IID_IGraphConfigCallback,0xade0fd60,0xd19d,0x11d2,0xab,0xf6,0x00,0xa0,0xc9,0x05,0xf3,0x75); +DEFINE_GUID(IID_IGrfCache,0xae9472be,0xb0c3,0x11d2,0x8d,0x24,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(IID_IGuideData,0x61571138,0x5b01,0x43cd,0xae,0xaf,0x60,0xb7,0x84,0xa0,0xbf,0x93); +DEFINE_GUID(IID_IGuideDataEvent,0xefda0c80,0xf395,0x42c3,0x9b,0x3c,0x56,0xb3,0x7d,0xec,0x7b,0xb7); +DEFINE_GUID(IID_IGuideDataLoader,0x4764ff7c,0xfa95,0x4525,0xaf,0x4d,0xd3,0x22,0x36,0xdb,0x9e,0x38); +DEFINE_GUID(IID_IGuideDataProperty,0x88ec5e58,0xbb73,0x41d6,0x99,0xce,0x66,0xc5,0x24,0xb8,0xb5,0x91); +DEFINE_GUID(IID_IChannelTuneRequest,0x0369b4e0,0x45b6,0x11d3,0xb6,0x50,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IIPDVDec,0xb8e8bd60,0x0bfe,0x11d0,0xaf,0x91,0x00,0xaa,0x00,0xb6,0x7a,0x42); +DEFINE_GUID(IID_ILanguageComponentType,0xb874c8ba,0x0fa2,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ILocator,0x286d7f89,0x760c,0x4f89,0x80,0xc4,0x66,0x84,0x1d,0x25,0x07,0xaa); +DEFINE_GUID(IID_IMediaControl,0x56a868b1,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IMediaEvent,0x56a868b6,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IMediaEventEx,0x56a868c0,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IMediaPosition,0x56a868b2,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IMediaTypeInfo,0x56a868bc,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IMixerOCX,0x81a3bd32,0xdee1,0x11d1,0x85,0x8,0,0xa0,0xc9,0x1f,0x9c,0xa0); +DEFINE_GUID(IID_IMixerOCXNotify,0x81a3bd31,0xdee1,0x11d1,0x85,0x8,0,0xa0,0xc9,0x1f,0x9c,0xa0); +DEFINE_GUID(IID_IMPEG2_TIF_CONTROL,0xf9bac2f9,0x4149,0x4916,0xb2,0xef,0xfa,0xa2,0x2,0x32,0x68,0x62); +DEFINE_GUID(IID_IMPEG2Component,0x1493e353,0x1eb6,0x473c,0x80,0x2d,0x8e,0x6b,0x8e,0xc9,0xd2,0xa9); +DEFINE_GUID(IID_IMPEG2ComponentType,0x2c073d84,0xb51c,0x48c9,0xaa,0x9f,0x68,0x97,0x1e,0x1f,0x6e,0x38); +DEFINE_GUID(IID_IMpeg2Demultiplexer,0x436eee9c,0x264f,0x4242,0x90,0xe1,0x4e,0x33,0x0c,0x10,0x75,0x12); +DEFINE_GUID(IID_IMPEG2PIDMap,0xafb6c2a1,0x2c41,0x11d3,0x8a,0x60,0x00,0x00,0xf8,0x1e,0x0e,0x4a); +DEFINE_GUID(IID_IMPEG2StreamIdMap,0xd0e04c47,0x25b8,0x4369,0x92,0x5a,0x36,0x2a,0x01,0xd9,0x54,0x44); +DEFINE_GUID(IID_IMPEG2TuneRequest,0xeb7d987f,0x8a01,0x42ad,0xb8,0xae,0x57,0x4d,0xee,0xe4,0x4d,0x1a); +DEFINE_GUID(IID_IMPEG2TuneRequestFactory,0x14e11abd,0xee37,0x4893,0x9e,0xa1,0x69,0x64,0xde,0x93,0x3e,0x39); +DEFINE_GUID(IID_IMPEG2TuneRequestSupport,0x1b9d5fc3,0x5bbc,0x4b6c,0xbb,0x18,0xb9,0xd1,0x0e,0x3e,0xee,0xbf); +DEFINE_GUID(IID_IMSEventBinder,0xc3a9f406,0x2222,0x436d,0x86,0xd5,0xba,0x32,0x29,0x27,0x9e,0xfb); +DEFINE_GUID(IID_IMSVidAnalogTuner,0x1c15d47e,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidAnalogTunerEvent,0x1c15d486,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidAudioRenderer,0x37b0353f,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidAudioRendererDevices,0xc5702cd4,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidAudioRendererEvent,0x37b03541,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidCAGSeg,0x1600d101,0x6666,0x4f66,0xb1,0xe2,0xbf,0x3c,0x9f,0xbb,0x9b,0xa6); +DEFINE_GUID(IID_IMSVidClosedCaptioning,0x99652ea1,0xc1f7,0x414f,0xbb,0x7b,0x1c,0x96,0x7d,0xe7,0x59,0x83); +DEFINE_GUID(IID_IMSVidClosedCaptioning2,0xe00cb864,0xa029,0x4310,0x99,0x87,0xa8,0x73,0xf5,0x88,0x7d,0x97); +DEFINE_GUID(IID_IMSVidCompositionSegment,0x1c15d483,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidCtl,0xb0edf162,0x910a,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidDataServices,0x334125c1,0x77e5,0x11d3,0xb6,0x53,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidDataServicesEvent,0x334125c2,0x77e5,0x11d3,0xb6,0x53,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidDevice,0x1c15d47c,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidDeviceEvent,0x1c15d480,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidEncoder,0xc0020fd4,0xbee7,0x43d9,0xa4,0x95,0x9f,0x21,0x31,0x17,0x10,0x3d); +DEFINE_GUID(IID_IMSVidFeature,0x37b03547,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidFeatureEvent,0x3dd2903c,0xe0aa,0x11d2,0xb6,0x3a,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidFeatures,0xc5702cd5,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidFilePlayback,0x37b03539,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidFilePlaybackEvent,0x37b0353a,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidGraphSegment,0x1c15d482,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidGraphSegmentContainer,0x3dd2903d,0xe0aa,0x11d2,0xb6,0x3a,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidGraphSegmentUserInput,0x301c060e,0x20d9,0x4587,0x9b,0x03,0xf8,0x2e,0xd9,0xa9,0x94,0x3c); +DEFINE_GUID(IID_IMSVidInputDevice,0x37b0353d,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidInputDeviceEvent,0x37b0353e,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidInputDevices,0xc5702cd1,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidOutputDevice,0x37b03546,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidOutputDeviceEvent,0x2e6a14e2,0x571c,0x11d3,0xb6,0x52,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidOutputDevices,0xc5702cd2,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidPlayback,0x37b03538,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidPlaybackEvent,0x37b0353b,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidRect,0x7f5000a6,0xa440,0x47ca,0x8a,0xcc,0xc0,0xe7,0x55,0x31,0xa2,0xc2); +DEFINE_GUID(IID_IMSVidStreamBufferRecordingControl,0x160621aa,0xbbbc,0x4326,0xa8,0x24,0xc3,0x95,0xae,0xbc,0x6e,0x74); +DEFINE_GUID(IID_IMSVidStreamBufferSink,0x159dbb45,0xcd1b,0x4dab,0x83,0xea,0x5c,0xb1,0xf4,0xf2,0x1d,0x7); +DEFINE_GUID(IID_IMSVidStreamBufferSinkEvent,0xf798a36b,0xb05b,0x4bbe,0x97,0x3,0xea,0xea,0x7d,0x61,0xcd,0x51); +DEFINE_GUID(IID_IMSVidStreamBufferSource,0xeb0c8cf9,0x6950,0x4772,0x87,0xb1,0x47,0xd1,0x1c,0xf3,0xa0,0x2f); +DEFINE_GUID(IID_IMSVidStreamBufferSourceEvent,0x50ce8a7d,0x9c28,0x4da8,0x90,0x42,0xcd,0xfa,0x71,0x16,0xf9,0x79); +DEFINE_GUID(IID_IMSVidTuner,0x1c15d47d,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidTunerEvent,0x1c15d485,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidTVEGSeg,0x1600d001,0x6666,0x4f66,0xb1,0xe2,0xbf,0x3c,0x9f,0xbb,0x9b,0xa6); +DEFINE_GUID(IID_IMSVidVideoInputDevice,0x1c15d47f,0x911d,0x11d2,0xb6,0x32,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidVideoRenderer,0x37b03540,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidVideoRenderer2,0x6bdd5c1e,0x2810,0x4159,0x94,0xbc,0x5,0x51,0x1a,0xe8,0x54,0x9b); +DEFINE_GUID(IID_IMSVidVideoRendererDevices,0xc5702cd3,0x9b79,0x11d3,0xb6,0x54,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidVideoRendererEvent,0x37b03545,0xa4c8,0x11d2,0xb6,0x34,0x00,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(IID_IMSVidVideoRendererEvent2,0x7145ed66,0x4730,0x4fdb,0x8a,0x53,0xfd,0xe7,0x50,0x8d,0x3e,0x5e); +DEFINE_GUID(IID_IMSVidVRGraphSegment,0xdd47de3f,0x9874,0x4f7b,0x8b,0x22,0x7c,0xb2,0x68,0x84,0x61,0xe7); +DEFINE_GUID(IID_IMSVidWebDVD,0xcf45f88b,0xac56,0x4ee2,0xa7,0x3a,0xed,0x04,0xe2,0x88,0x5d,0x3c); +DEFINE_GUID(IID_IMSVidWebDVDAdm,0xb8be681a,0xeb2c,0x47f0,0xb4,0x15,0x94,0xd5,0x45,0x2f,0x0e,0x05); +DEFINE_GUID(IID_IMSVidWebDVDEvent,0xb4f7a674,0x9b83,0x49cb,0xa3,0x57,0xc6,0x3b,0x87,0x1b,0xe9,0x58); +DEFINE_GUID(IID_IMSVidXDS,0x11ebc158,0xe712,0x4d1f,0x8b,0xb3,0x1,0xed,0x52,0x74,0xc4,0xce); +DEFINE_GUID(IID_IPinConnection,0x4a9a62d3,0x27d4,0x403d,0x91,0xe9,0x89,0xf5,0x40,0xe5,0x55,0x34); +DEFINE_GUID(IID_IPinFlowControl,0xc56e9858,0xdbf3,0x4f6b,0x81,0x19,0x38,0x4a,0xf2,0x06,0x0d,0xeb); +DEFINE_GUID(IID_IPinInfo,0x56a868bd,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IQueueCommand,0x56a868b7,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IRegFilterInfo,0x56a868bb,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IRegisterServiceProvider,0x7b3a2f01,0x0751,0x48dd,0xb5,0x56,0x00,0x47,0x85,0x17,0x1c,0x54); +DEFINE_GUID(IID_IRenderEngine,0x6bee3a81,0x66c9,0x11d2,0x91,0x8f,0x00,0xc0,0xdf,0x10,0xd4,0x34); +DEFINE_GUID(IID_IRenderEngine2,0x6bee3a82,0x66c9,0x11d2,0x91,0x8f,0,0xc0,0xdf,0x10,0xd4,0x34); +DEFINE_GUID(IID_IResize,0x4ada63a0,0x72d5,0x11d2,0x95,0x2a,0,0x60,0x8,0x18,0x40,0xbc); +DEFINE_GUID(IID_IScanningTuner,0x1dfd0a5c,0x0284,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ISignalEvents,0x85e2439e,0x0e23,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ISmartRenderEngine,0xf03fa8ce,0x879a,0x4d59,0x9b,0x2c,0x26,0xbb,0x1c,0xf8,0x34,0x61); +DEFINE_GUID(IID_IStreamBufferConfigure,0xce14dfae,0x4098,0x4af7,0xbb,0xf7,0xd6,0x51,0x1f,0x83,0x54,0x14); +DEFINE_GUID(IID_IStreamBufferInitialize,0x9ce50f2d,0x6ba7,0x40fb,0xa0,0x34,0x50,0xb1,0xa6,0x74,0xec,0x78); +DEFINE_GUID(IID_IStreamBufferMediaSeeking,0xf61f5c26,0x863d,0x4afa,0xb0,0xba,0x2f,0x81,0xdc,0x97,0x85,0x96); +DEFINE_GUID(IID_IStreamBufferRecComp,0x9e259a9b,0x8815,0x42ae,0xb0,0x9f,0x22,0x19,0x70,0xb1,0x54,0xfd); +DEFINE_GUID(IID_IStreamBufferRecordControl,0xba9b6c99,0xf3c7,0x4ff2,0x92,0xdb,0xcf,0xdd,0x48,0x51,0xbf,0x31); +DEFINE_GUID(IID_IStreamBufferRecordingAttribute,0x16ca4e03,0xfe69,0x4705,0xbd,0x41,0x5b,0x7d,0xfc,0xc,0x95,0xf3); +DEFINE_GUID(IID_IStreamBufferSink,0xafd1f242,0x7efd,0x45ee,0xba,0x4e,0x40,0x7a,0x25,0xc9,0xa7,0x7a); +DEFINE_GUID(IID_IStreamBufferSource,0x1c5bd776,0x6ced,0x4f44,0x81,0x64,0x5e,0xab,0xe,0x98,0xdb,0x12); +DEFINE_GUID(IID_ITuner,0x28c52640,0x018a,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ITuneRequest,0x07ddc146,0xfc3d,0x11d2,0x9d,0x8c,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ITuneRequestInfo,0xa3b152df,0x7a90,0x4218,0xac,0x54,0x98,0x30,0xbe,0xe8,0xc0,0xb6); +DEFINE_GUID(IID_ITunerEvents,0x68481420,0x0280,0x11d3,0x9d,0x8e,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ITuningSpace,0x061c6e30,0xe622,0x11d2,0x94,0x93,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ITuningSpaceContainer,0x5b692e84,0xe2f1,0x11d2,0x94,0x93,0x00,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(IID_ITuningSpaces,0x901284e4,0x33fe,0x4b69,0x8d,0x63,0x63,0x4a,0x59,0x6f,0x37,0x56); +DEFINE_GUID(IID_ITVEAttrMap,0x05500121,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEAttrTimeQ,0x05500122,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVECBAnnc,0x05500141,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVECBDummy,0x05500144,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVECBFile,0x05500143,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVECBTrig,0x05500142,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEEnhancement,0x05500104,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEEnhancement_Helper,0x05500204,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEEnhancements,0x05500114,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEFeature,0x05500305,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEFile,0x05500151,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEFilter,0x05500180,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEFilter_Helper,0x05500280,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEMCast,0x05500130,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEMCastCallback,0x05500133,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEMCastManager,0x05500132,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEMCastManager_Helper,0x05500232,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEMCasts,0x05500131,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVENavAid,0x05500160,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVENavAid_Helper,0x05500260,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVENavAid_NoVidCtl,0x05500360,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEService,0x05500105,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEService_Helper,0x05500205,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEServices,0x05500115,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVESupervisor,0x05500106,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVESupervisor_Helper,0x05500206,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVESupervisorGITProxy,0x05500306,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVETrack,0x05500102,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVETrack_Helper,0x05500202,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVETracks,0x05500112,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVETrigger,0x05500101,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVETrigger_Helper,0x05500201,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVETriggerCtrl,0x05500190,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVETriggerCtrl_Helper,0x05500191,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEVariation,0x05500103,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEVariation_Helper,0x05500203,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_ITVEVariations,0x05500113,0xfaa5,0x4df9,0x82,0x46,0xbf,0xc2,0x3a,0xc5,0xce,0xa8); +DEFINE_GUID(IID_IVideoEncoder,0x2997c3b,0x8e1b,0x460e,0x92,0x70,0x54,0x5e,0xd,0xe9,0x56,0x3e); +DEFINE_GUID(IID_IVideoWindow,0x56a868b4,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); +DEFINE_GUID(IID_IVMRAspectRatioControl,0xede80b5c,0xbad6,0x4623,0xb5,0x37,0x65,0x58,0x6c,0x9f,0x8d,0xfd); +DEFINE_GUID(IID_IVMRAspectRatioControl9,0xd96c29,0xbbde,0x4efc,0x99,0x1,0xbb,0x50,0x36,0x39,0x21,0x46); +DEFINE_GUID(IID_IVMRDeinterlaceControl,0xbb057577,0xdb8,0x4e6a,0x87,0xa7,0x1a,0x8c,0x9a,0x50,0x5a,0xf); +DEFINE_GUID(IID_IVMRDeinterlaceControl9,0xa215fb8d,0x13c2,0x4f7f,0x99,0x3c,0,0x3d,0x62,0x71,0xa4,0x59); +DEFINE_GUID(IID_IVMRFilterConfig,0x9e5530c5,0x7034,0x48b4,0xbb,0x46,0x0b,0x8a,0x6e,0xfc,0x8e,0x36); +DEFINE_GUID(IID_IVMRFilterConfig9,0x5a804648,0x4f66,0x4867,0x9c,0x43,0x4f,0x5c,0x82,0x2c,0xf1,0xb8); +DEFINE_GUID(IID_IVMRImageCompositor,0x7a4fb5af,0x479f,0x4074,0xbb,0x40,0xce,0x67,0x22,0xe4,0x3c,0x82); +DEFINE_GUID(IID_IVMRImageCompositor9,0x4a5c89eb,0xdf51,0x4654,0xac,0x2a,0xe4,0x8e,0x2,0xbb,0xab,0xf6); +DEFINE_GUID(IID_IVMRImagePresenter,0xce704fe7,0xe71e,0x41fb,0xba,0xa2,0xc4,0x40,0x3e,0x11,0x82,0xf5); +DEFINE_GUID(IID_IVMRImagePresenter9,0x69188c61,0x12a3,0x40f0,0x8f,0xfc,0x34,0x2e,0x7b,0x43,0x3f,0xd7); +DEFINE_GUID(IID_IVMRImagePresenterConfig,0x9f3a1c85,0x8555,0x49ba,0x93,0x5f,0xbe,0x5b,0x5b,0x29,0xd1,0x78); +DEFINE_GUID(IID_IVMRImagePresenterConfig9,0x45c15cab,0x6e22,0x420a,0x80,0x43,0xae,0x1f,0xa,0xc0,0x2c,0x7d); +DEFINE_GUID(IID_IVMRImagePresenterExclModeConfig,0xe6f7ce40,0x4673,0x44f1,0x8f,0x77,0x54,0x99,0xd6,0x8c,0xb4,0xea); +DEFINE_GUID(IID_IVMRMixerBitmap,0x1e673275,0x0257,0x40aa,0xaf,0x20,0x7c,0x60,0x8d,0x4a,0x04,0x28); +DEFINE_GUID(IID_IVMRMixerBitmap9,0xced175e5,0x1935,0x4820,0x81,0xbd,0xff,0x6a,0xd0,0xc,0x91,0x8); +DEFINE_GUID(IID_IVMRMixerControl,0x1c1a17b0,0xbed0,0x415d,0x97,0x4b,0xdc,0x66,0x96,0x13,0x15,0x99); +DEFINE_GUID(IID_IVMRMixerControl9,0x1a777eaa,0x47c8,0x4930,0xb2,0xc9,0x8f,0xee,0x1c,0x1b,0xf,0x3b); +DEFINE_GUID(IID_IVMRMonitorConfig,0x9cf0b1b6,0xfbaa,0x4b7f,0x88,0xcf,0xcf,0x1f,0x13,0x0a,0x0d,0xce); +DEFINE_GUID(IID_IVMRMonitorConfig9,0x46c2e457,0x8ba0,0x4eef,0xb8,0xb,0x6,0x80,0xf0,0x97,0x87,0x49); +DEFINE_GUID(IID_IVMRSurface,0xa9849bbe,0x9ec8,0x4263,0xb7,0x64,0x62,0x73,0x0f,0x0d,0x15,0xd0); +DEFINE_GUID(IID_IVMRSurface9,0xdfc581a1,0x6e1f,0x4c3a,0x8d,0xa,0x5e,0x97,0x92,0xea,0x2a,0xfc); +DEFINE_GUID(IID_IVMRSurfaceAllocator,0x31ce832e,0x4484,0x458b,0x8c,0xca,0xf4,0xd7,0xe3,0xdb,0x0b,0x52); +DEFINE_GUID(IID_IVMRSurfaceAllocator9,0x8d5148ea,0x3f5d,0x46cf,0x9d,0xf1,0xd1,0xb8,0x96,0xee,0xdb,0x1f); +DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify,0xaada05a8,0x5a4e,0x4729,0xaf,0x0b,0xce,0xa2,0x7a,0xed,0x51,0xe2); +DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify9,0xdca3f5df,0xbb3a,0x4d03,0xbd,0x81,0x84,0x61,0x4b,0xfb,0xfa,0xc); +DEFINE_GUID(IID_IVMRVideoStreamControl,0x058d1f11,0x2a54,0x4bef,0xbd,0x54,0xdf,0x70,0x66,0x26,0xb7,0x27); +DEFINE_GUID(IID_IVMRVideoStreamControl9,0xd0cfe38b,0x93e7,0x4772,0x89,0x57,0x4,0,0xc4,0x9a,0x44,0x85); +DEFINE_GUID(IID_IVMRWindowlessControl,0x0eb1088c,0x4dcd,0x46f0,0x87,0x8f,0x39,0xda,0xe8,0x6a,0x51,0xb7); +DEFINE_GUID(IID_IVMRWindowlessControl9,0x8f537d09,0xf85e,0x4414,0xb2,0x3b,0x50,0x2e,0x54,0xc7,0x99,0x27); +DEFINE_GUID(IID_IVPManager,0xaac18c18,0xe186,0x46d2,0x82,0x5d,0xa1,0xf8,0xdc,0x8e,0x39,0x5a); +DEFINE_GUID(IID_IXDSCodec,0xc4c4c4b3,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(IID_IXDSCodecConfig,0xc4c4c4d3,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(IID_IXDSToRat,0xc5c5c5b0,0x3abc,0x11d6,0xb2,0x5b,0,0xc0,0x4f,0xa0,0xc0,0x26); +DEFINE_GUID(IID_IXml2Dex,0x18c628ed,0x962a,0x11d2,0x8d,0x08,0x00,0xa0,0xc9,0x44,0x1e,0x20); +DEFINE_GUID(LIBID_DexterLib,0x78530b68,0x61f9,0x11d2,0x8c,0xad,0,0xa0,0x24,0x58,0x9,0x2); +DEFINE_GUID(LIBID_DirectShowStreamLib,0x4e6cde29,0xc0c4,0x11d0,0x8f,0xf1,0,0xc0,0x4f,0xd9,0x18,0x9d); +DEFINE_GUID(LIBID_EncDec,0xc4c4c400,0x49,0x4e2b,0x98,0xfb,0x95,0x37,0xf6,0xce,0x51,0x6d); +DEFINE_GUID(LIBID_MSTvCALib,0x11166000,0xdf8a,0x463a,0xb6,0x20,0x7b,0xec,0x23,0x54,0x20,0x10); +DEFINE_GUID(LIBID_MSTvELib,0x1700c001,0x6666,0x4f66,0xb1,0xe2,0xbf,0x3c,0x9f,0xbb,0x9b,0xa6); +DEFINE_GUID(LIBID_MSVidCtlLib,0xb0edf154,0x910a,0x11d2,0xb6,0x32,0,0xc0,0x4f,0x79,0x49,0x8e); +DEFINE_GUID(LIBID_PSISLOADLib,0x8224a083,0x7f8c,0x432d,0xb8,0x3e,0x3c,0x5e,0x9b,0xde,0x35,0x28); +DEFINE_GUID(LIBID_QuartzTypeLib,0x56a868b0,0xad4,0x11ce,0xb0,0x3a,0,0x20,0xaf,0xb,0xa7,0x70); +DEFINE_GUID(LIBID_TunerLib,0x9b085638,0x18e,0x11d3,0x9d,0x8e,0,0xc0,0x4f,0x72,0xd9,0x80); +DEFINE_GUID(LIBID_TVRATINGSLib,0xc5c5c500,0x3abc,0x11d6,0xb2,0x5b,0,0xc0,0x4f,0xa0,0xc0,0x26); +DEFINE_GUID(MEDIASUBTYPE_I420,0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); +DEFINE_GUID(MR_VIDEO_RENDER_SERVICE,0x1092a86c,0xab1a,0x459a,0xa3,0x36,0x83,0x1f,0xbc,0x4d,0x11,0xff); +DEFINE_GUID(MR_VIDEO_MIXER_SERVICE,0x73cd2fc,0x6cf4,0x40b7,0x88,0x59,0xe8,0x95,0x52,0xc8,0x41,0xf8); +DEFINE_GUID(MR_VIDEO_ACCELERATION_SERVICE,0xefef5175,0x5c7d,0x4ce2,0xbb,0xbd,0x34,0xff,0x8b,0xca,0x65,0x54); +DEFINE_GUID(MR_BUFFER_SERVICE,0xa562248c,0x9ac6,0x4ffc,0x9f,0xba,0x3a,0xf8,0xf8,0xad,0x1a,0x4d); +DEFINE_GUID(VIDEO_ZOOM_RECT,0x7aaa1638,0x1b7f,0x4c93,0xbd,0x89,0x5b,0x9c,0x9f,0xb6,0xfc,0xf0); diff --git a/lib/libc/mingw/libsrc/taskschd.c b/lib/libc/mingw/libsrc/taskschd.c new file mode 100644 index 0000000000..77002f859a --- /dev/null +++ b/lib/libc/mingw/libsrc/taskschd.c @@ -0,0 +1,8 @@ +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/lib/libc/mingw/libsrc/vss-uuid.c b/lib/libc/mingw/libsrc/vss-uuid.c new file mode 100644 index 0000000000..feb01f8ecc --- /dev/null +++ b/lib/libc/mingw/libsrc/vss-uuid.c @@ -0,0 +1,17 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +/* crt/libsrc/vss-uuid.c */ +/* Generate GUIDs for Volume Shadow Copy Service interfaces */ + +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/lib/libc/mingw/libsrc/wbemuuid.c b/lib/libc/mingw/libsrc/wbemuuid.c new file mode 100644 index 0000000000..469463b2e6 --- /dev/null +++ b/lib/libc/mingw/libsrc/wbemuuid.c @@ -0,0 +1,17 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +/* crt/libsrc/wbemuuid.c */ +/* Generate GUIDs for Windows Management Instrumentation (WMI) Provider interfaces */ + +#define INITGUID +#include +#include +#include +#include +#include +#include +#include diff --git a/lib/libc/mingw/libsrc/windowscodecs.c b/lib/libc/mingw/libsrc/windowscodecs.c new file mode 100644 index 0000000000..9078083ff6 --- /dev/null +++ b/lib/libc/mingw/libsrc/windowscodecs.c @@ -0,0 +1,7 @@ + +#include +#include + +#include +#include +#include diff --git a/lib/libc/mingw/libsrc/wmcodecdspuuid.c b/lib/libc/mingw/libsrc/wmcodecdspuuid.c new file mode 100644 index 0000000000..fb5ab11fb2 --- /dev/null +++ b/lib/libc/mingw/libsrc/wmcodecdspuuid.c @@ -0,0 +1,8 @@ + +#include +#include +#include +#include + +#include +#include diff --git a/lib/libc/mingw/libsrc/ws2_32.c b/lib/libc/mingw/libsrc/ws2_32.c new file mode 100644 index 0000000000..34d880c908 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2_32.c @@ -0,0 +1,6 @@ +#include +#include + +/* IPv6 constants for use in structure assignments (RFC 2553). */ +const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT; +const struct in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT; diff --git a/lib/libc/mingw/libsrc/ws2tcpip/gai_strerrorA.c b/lib/libc/mingw/libsrc/ws2tcpip/gai_strerrorA.c new file mode 100644 index 0000000000..9023f939de --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/gai_strerrorA.c @@ -0,0 +1,15 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include +#include + +char *gai_strerrorA(int ecode) +{ + static char buff[GAI_STRERROR_BUFFER_SIZE + 1]; + wcstombs(buff, gai_strerrorW(ecode), GAI_STRERROR_BUFFER_SIZE + 1); + return buff; +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/gai_strerrorW.c b/lib/libc/mingw/libsrc/ws2tcpip/gai_strerrorW.c new file mode 100644 index 0000000000..33200f7a4a --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/gai_strerrorW.c @@ -0,0 +1,17 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +WCHAR *gai_strerrorW(int ecode) +{ + DWORD dwMsgLen __attribute__((unused)); + static WCHAR buff[GAI_STRERROR_BUFFER_SIZE + 1]; + dwMsgLen = FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS|FORMAT_MESSAGE_MAX_WIDTH_MASK, + NULL, ecode, MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT), (LPWSTR)buff, + GAI_STRERROR_BUFFER_SIZE, NULL); + return buff; +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_addr_equal.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_addr_equal.c new file mode 100644 index 0000000000..a062d586e3 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_addr_equal.c @@ -0,0 +1,12 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int IN6_ADDR_EQUAL(const struct in6_addr *a,const struct in6_addr *b) +{ + return (memcmp(a, b, sizeof(struct in6_addr)) == 0); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_linklocal.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_linklocal.c new file mode 100644 index 0000000000..c4f7018bae --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_linklocal.c @@ -0,0 +1,13 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *a) +{ + return ((a->s6_bytes[0] == 0xfe) && + ((a->s6_bytes[1] & 0xc0) == 0x80)); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_loopback.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_loopback.c new file mode 100644 index 0000000000..cbf8287dd3 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_loopback.c @@ -0,0 +1,19 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *a) +{ + return ((a->s6_words[0] == 0) && + (a->s6_words[1] == 0) && + (a->s6_words[2] == 0) && + (a->s6_words[3] == 0) && + (a->s6_words[4] == 0) && + (a->s6_words[5] == 0) && + (a->s6_words[6] == 0) && + (a->s6_words[7] == 0x0100)); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_global.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_global.c new file mode 100644 index 0000000000..9597d6295b --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_global.c @@ -0,0 +1,16 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_IS_ADDR_MULTICAST +#define IN6_IS_ADDR_MULTICAST(a) ( (a)->s6_bytes[0] == 0xff ) + +int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *a) +{ + return IN6_IS_ADDR_MULTICAST(a) && + ((a->s6_bytes[1] & 0xf) == 0xe); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_linklocal.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_linklocal.c new file mode 100644 index 0000000000..d274c88ec9 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_linklocal.c @@ -0,0 +1,16 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_IS_ADDR_MULTICAST +#define IN6_IS_ADDR_MULTICAST(a) ( (a)->s6_bytes[0] == 0xff ) + +int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *a) +{ + return IN6_IS_ADDR_MULTICAST(a) && + ((a->s6_bytes[1] & 0xf) == 2); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_nodelocal.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_nodelocal.c new file mode 100644 index 0000000000..09f995cf6b --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_nodelocal.c @@ -0,0 +1,16 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_IS_ADDR_MULTICAST +#define IN6_IS_ADDR_MULTICAST(a) ( (a)->s6_bytes[0] == 0xff ) + +int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *a) +{ + return IN6_IS_ADDR_MULTICAST(a) && + ((a->s6_bytes[1] & 0xf) == 1); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_orglocal.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_orglocal.c new file mode 100644 index 0000000000..40c1daab1f --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_orglocal.c @@ -0,0 +1,16 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_IS_ADDR_MULTICAST +#define IN6_IS_ADDR_MULTICAST(a) ( (a)->s6_bytes[0] == 0xff ) + +int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *a) +{ + return IN6_IS_ADDR_MULTICAST(a) && + ((a->s6_bytes[1] & 0xf) == 8); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_sitelocal.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_sitelocal.c new file mode 100644 index 0000000000..0fc4fe0992 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_mc_sitelocal.c @@ -0,0 +1,16 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_IS_ADDR_MULTICAST +#define IN6_IS_ADDR_MULTICAST(a) ( (a)->s6_bytes[0] == 0xff ) + +int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *a) +{ + return IN6_IS_ADDR_MULTICAST(a) && + ((a->s6_bytes[1] & 0xf) == 5); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_multicast.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_multicast.c new file mode 100644 index 0000000000..5878de8a9e --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_multicast.c @@ -0,0 +1,12 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int IN6_IS_ADDR_MULTICAST(const struct in6_addr *a) +{ + return (a->s6_bytes[0] == 0xff); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_sitelocal.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_sitelocal.c new file mode 100644 index 0000000000..5d10bc1c5c --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_sitelocal.c @@ -0,0 +1,13 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *a) +{ + return ((a->s6_bytes[0] == 0xfe) && + ((a->s6_bytes[1] & 0xc0) == 0xc0)); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_unspecified.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_unspecified.c new file mode 100644 index 0000000000..66b9343d09 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_unspecified.c @@ -0,0 +1,19 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *a) +{ + return ((a->s6_words[0] == 0) && + (a->s6_words[1] == 0) && + (a->s6_words[2] == 0) && + (a->s6_words[3] == 0) && + (a->s6_words[4] == 0) && + (a->s6_words[5] == 0) && + (a->s6_words[6] == 0) && + (a->s6_words[7] == 0)); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_v4compat.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_v4compat.c new file mode 100644 index 0000000000..51640d3b47 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_v4compat.c @@ -0,0 +1,21 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *a) +{ + return ((a->s6_words[0] == 0) && + (a->s6_words[1] == 0) && + (a->s6_words[2] == 0) && + (a->s6_words[3] == 0) && + (a->s6_words[4] == 0) && + (a->s6_words[5] == 0) && + !((a->s6_words[6] == 0) && + (a->s6_addr[14] == 0) && + ((a->s6_addr[15] == 0) || + (a->s6_addr[15] == 1)) ) ); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_v4mapped.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_v4mapped.c new file mode 100644 index 0000000000..1dd3e437bd --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_is_addr_v4mapped.c @@ -0,0 +1,17 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *a) +{ + return ((a->s6_words[0] == 0) && + (a->s6_words[1] == 0) && + (a->s6_words[2] == 0) && + (a->s6_words[3] == 0) && + (a->s6_words[4] == 0) && + (a->s6_words[5] == 0xffff)); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_set_addr_loopback.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_set_addr_loopback.c new file mode 100644 index 0000000000..8548ae742d --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_set_addr_loopback.c @@ -0,0 +1,13 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +void IN6_SET_ADDR_LOOPBACK(struct in6_addr *a) +{ + memset(a->s6_bytes, 0, sizeof(struct in6_addr)); + a->s6_bytes[15] = 1; +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6_set_addr_unspecified.c b/lib/libc/mingw/libsrc/ws2tcpip/in6_set_addr_unspecified.c new file mode 100644 index 0000000000..c15ff9302e --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6_set_addr_unspecified.c @@ -0,0 +1,12 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +void IN6_SET_ADDR_UNSPECIFIED(struct in6_addr *a) +{ + memset(a->s6_bytes, 0, sizeof(struct in6_addr)); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6addr_isany.c b/lib/libc/mingw/libsrc/ws2tcpip/in6addr_isany.c new file mode 100644 index 0000000000..6a3c5a6235 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6addr_isany.c @@ -0,0 +1,23 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_IS_ADDR_UNSPECIFIED +#define IN6_IS_ADDR_UNSPECIFIED(a) ( ((a)->s6_words[0] == 0) && \ + ((a)->s6_words[1] == 0) && \ + ((a)->s6_words[2] == 0) && \ + ((a)->s6_words[3] == 0) && \ + ((a)->s6_words[4] == 0) && \ + ((a)->s6_words[5] == 0) && \ + ((a)->s6_words[6] == 0) && \ + ((a)->s6_words[7] == 0) ) + +int IN6ADDR_ISANY(const struct sockaddr_in6 *a) +{ + return ((a->sin6_family == AF_INET6) && + IN6_IS_ADDR_UNSPECIFIED(&a->sin6_addr)); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6addr_isloopback.c b/lib/libc/mingw/libsrc/ws2tcpip/in6addr_isloopback.c new file mode 100644 index 0000000000..8e0568e2fb --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6addr_isloopback.c @@ -0,0 +1,23 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_IS_ADDR_LOOPBACK +#define IN6_IS_ADDR_LOOPBACK(a) ( ((a)->s6_words[0] == 0) && \ + ((a)->s6_words[1] == 0) && \ + ((a)->s6_words[2] == 0) && \ + ((a)->s6_words[3] == 0) && \ + ((a)->s6_words[4] == 0) && \ + ((a)->s6_words[5] == 0) && \ + ((a)->s6_words[6] == 0) && \ + ((a)->s6_words[7] == 0x0100) ) + +int IN6ADDR_ISLOOPBACK(const struct sockaddr_in6 *a) +{ + return ((a->sin6_family==AF_INET6) && + IN6_IS_ADDR_LOOPBACK(&a->sin6_addr)); +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6addr_setany.c b/lib/libc/mingw/libsrc/ws2tcpip/in6addr_setany.c new file mode 100644 index 0000000000..6b401676b9 --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6addr_setany.c @@ -0,0 +1,19 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_SET_ADDR_UNSPECIFIED +#define IN6_SET_ADDR_UNSPECIFIED(a) memset((a)->s6_bytes,0,sizeof(struct in6_addr)) + +void IN6ADDR_SETANY(struct sockaddr_in6 *a) +{ + a->sin6_family = AF_INET6; + a->sin6_port = 0; + a->sin6_flowinfo = 0; + IN6_SET_ADDR_UNSPECIFIED(&a->sin6_addr); + a->sin6_scope_id = 0; +} diff --git a/lib/libc/mingw/libsrc/ws2tcpip/in6addr_setloopback.c b/lib/libc/mingw/libsrc/ws2tcpip/in6addr_setloopback.c new file mode 100644 index 0000000000..9693a00b2c --- /dev/null +++ b/lib/libc/mingw/libsrc/ws2tcpip/in6addr_setloopback.c @@ -0,0 +1,23 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +#undef IN6_SET_ADDR_LOOPBACK +#define IN6_SET_ADDR_LOOPBACK(a) \ + do { \ + memset((a)->s6_bytes,0,sizeof(struct in6_addr));\ + (a)->s6_bytes[15] = 1; \ + } while (0) + +void IN6ADDR_SETLOOPBACK(struct sockaddr_in6 *a) +{ + a->sin6_family = AF_INET6; + a->sin6_port = 0; + a->sin6_flowinfo = 0; + IN6_SET_ADDR_LOOPBACK(&a->sin6_addr); + a->sin6_scope_id = 0; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiClone.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiClone.c new file mode 100644 index 0000000000..a29335e9f9 --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiClone.c @@ -0,0 +1,28 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int WINAPI +WspiapiClone (WORD wPort, struct addrinfo *ptResult) +{ + struct addrinfo *p = NULL; + struct addrinfo *n = NULL; + + for (p = ptResult; p != NULL;) + { + n = WspiapiNewAddrInfo (SOCK_DGRAM, p->ai_protocol, wPort, + ((struct sockaddr_in *) p->ai_addr)->sin_addr.s_addr); + if (!n) + break; + n->ai_next = p->ai_next; + p->ai_next = n; + p = n->ai_next; + } + if (p != NULL) + return EAI_MEMORY; + return 0; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiFreeAddrInfo.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiFreeAddrInfo.c new file mode 100644 index 0000000000..8ac6135677 --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiFreeAddrInfo.c @@ -0,0 +1,17 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +void WINAPI +WspiapiFreeAddrInfo (struct addrinfo *ai) +{ + static WSPIAPI_PFREEADDRINFO pfFreeAddrInfo = NULL; + + if (!pfFreeAddrInfo) + pfFreeAddrInfo = (WSPIAPI_PFREEADDRINFO) WspiapiLoad(2); + (*pfFreeAddrInfo) (ai); +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiGetAddrInfo.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiGetAddrInfo.c new file mode 100644 index 0000000000..445c42a47c --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiGetAddrInfo.c @@ -0,0 +1,21 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int WINAPI +WspiapiGetAddrInfo(const char *nodename, const char *servname, + const struct addrinfo *hints, struct addrinfo **res) +{ + static WSPIAPI_PGETADDRINFO pfGetAddrInfo = NULL; + int err; + + if (!pfGetAddrInfo) + pfGetAddrInfo = (WSPIAPI_PGETADDRINFO) WspiapiLoad (0); + err = (*pfGetAddrInfo) (nodename, servname, hints, res); + WSASetLastError (err); + return err; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiGetNameInfo.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiGetNameInfo.c new file mode 100644 index 0000000000..ab805956f7 --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiGetNameInfo.c @@ -0,0 +1,22 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int WINAPI +WspiapiGetNameInfo (const struct sockaddr *sa, socklen_t salen, + char *host, size_t hostlen, + char *serv, size_t servlen, int flags) +{ + static WSPIAPI_PGETNAMEINFO pfGetNameInfo = NULL; + int err; + + if (!pfGetNameInfo) + pfGetNameInfo = (WSPIAPI_PGETNAMEINFO) WspiapiLoad(1); + err = (*pfGetNameInfo) (sa, salen, host, hostlen, serv, servlen, flags); + WSASetLastError (err); + return err; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyFreeAddrInfo.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyFreeAddrInfo.c new file mode 100644 index 0000000000..1b3f661400 --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyFreeAddrInfo.c @@ -0,0 +1,23 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +void WINAPI +WspiapiLegacyFreeAddrInfo (struct addrinfo *ptHead) +{ + struct addrinfo *p; + + for (p = ptHead; p != NULL; p = ptHead) + { + if (p->ai_canonname) + WspiapiFree (p->ai_canonname); + if (p->ai_addr) + WspiapiFree (p->ai_addr); + ptHead = p->ai_next; + WspiapiFree (p); + } +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyGetAddrInfo.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyGetAddrInfo.c new file mode 100644 index 0000000000..b5aa39244c --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyGetAddrInfo.c @@ -0,0 +1,112 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int WINAPI +WspiapiLegacyGetAddrInfo(const char *pszNodeName, + const char *pszServiceName, + const struct addrinfo *ptHints, + struct addrinfo **pptResult) +{ + int err = 0, iFlags = 0, iFamily = PF_UNSPEC, iSocketType = 0, iProtocol = 0; + struct in_addr inAddress; + struct servent *svc = NULL; + char *pc = NULL; + WINBOOL isCloned = FALSE; + WORD tcpPort = 0, udpPort = 0, port = 0; + + *pptResult = NULL; + if (!pszNodeName && !pszServiceName) + return EAI_NONAME; + if (ptHints) + { + if (ptHints->ai_addrlen != 0 || ptHints->ai_canonname != NULL + || ptHints->ai_addr!=NULL || ptHints->ai_next != NULL) + return EAI_FAIL; + iFlags = ptHints->ai_flags; + if ((iFlags & AI_CANONNAME) != 0 && !pszNodeName) + return EAI_BADFLAGS; + iFamily = ptHints->ai_family; + if (iFamily != PF_UNSPEC && iFamily != PF_INET) + return EAI_FAMILY; + iSocketType = ptHints->ai_socktype; + if (iSocketType != 0 && iSocketType != SOCK_STREAM && iSocketType != SOCK_DGRAM + && iSocketType != SOCK_RAW) + return EAI_SOCKTYPE; + iProtocol = ptHints->ai_protocol; + } + + if (pszServiceName) + { + port = (WORD) strtoul (pszServiceName, &pc, 10); + if(*pc == 0) + { + port = tcpPort = udpPort = htons (port); + if (iSocketType == 0) + { + isCloned = TRUE; + iSocketType = SOCK_STREAM; + } + } + else + { + if (iSocketType == 0 || iSocketType == SOCK_DGRAM) + { + svc = getservbyname(pszServiceName, "udp"); + if (svc) + port = udpPort = svc->s_port; + } + if (iSocketType == 0 || iSocketType == SOCK_STREAM) + { + svc = getservbyname(pszServiceName, "tcp"); + if (svc) + port = tcpPort = svc->s_port; + } + if (port == 0) + return (iSocketType ? EAI_SERVICE : EAI_NONAME); + if (iSocketType==0) + { + iSocketType = (tcpPort) ? SOCK_STREAM : SOCK_DGRAM; + isCloned = (tcpPort && udpPort); + } + } + } + if (!pszNodeName || WspiapiParseV4Address(pszNodeName,&inAddress.s_addr)) + { + if (!pszNodeName) + { + inAddress.s_addr = htonl ((iFlags & AI_PASSIVE) ? INADDR_ANY : INADDR_LOOPBACK); + } + *pptResult = WspiapiNewAddrInfo(iSocketType, iProtocol, port, inAddress.s_addr); + if (!(*pptResult)) + err = EAI_MEMORY; + if (!err && pszNodeName) + { + (*pptResult)->ai_flags |= AI_NUMERICHOST; + if (iFlags & AI_CANONNAME) + { + (*pptResult)->ai_canonname = + WspiapiStrdup (inet_ntoa (inAddress)); + if (!(*pptResult)->ai_canonname) + err = EAI_MEMORY; + } + } + } + else if (iFlags & AI_NUMERICHOST) + err = EAI_NONAME; + else + err = WspiapiLookupNode (pszNodeName, iSocketType, iProtocol, port, + (iFlags & AI_CANONNAME), pptResult); + if (!err && isCloned) + err = WspiapiClone(udpPort, *pptResult); + if (err) + { + WspiapiLegacyFreeAddrInfo (*pptResult); + *pptResult = NULL; + } + return err; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyGetNameInfo.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyGetNameInfo.c new file mode 100644 index 0000000000..96728cc4d4 --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiLegacyGetNameInfo.c @@ -0,0 +1,88 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int WINAPI +WspiapiLegacyGetNameInfo (const struct sockaddr *ptSocketAddress, + socklen_t tSocketLength, + char *pszNodeName, size_t tNodeLength, + char *pszServiceName, size_t tServiceLength, + int iFlags) +{ + struct servent *svc; + WORD port; + char str[] = "65535"; + char *pstr = str; + struct hostent *phost; + struct in_addr l_inaddr; + char *pnode = NULL, *pc = NULL; + + if (!ptSocketAddress || tSocketLength < (int) sizeof (struct sockaddr)) + return EAI_FAIL; + if (ptSocketAddress->sa_family != AF_INET) + return EAI_FAMILY; + if (tSocketLength < (int) sizeof (struct sockaddr_in)) + return EAI_FAIL; + if (!(pszNodeName && tNodeLength) && !(pszServiceName && tServiceLength)) + return EAI_NONAME; + if ((iFlags & NI_NUMERICHOST) != 0 && (iFlags & NI_NAMEREQD) != 0) + return EAI_BADFLAGS; + if (pszServiceName && tServiceLength) + { + port = ((struct sockaddr_in *) ptSocketAddress)->sin_port; + if (iFlags & NI_NUMERICSERV) + sprintf (str, "%u", ntohs (port)); + else + { + svc = getservbyport(port, (iFlags & NI_DGRAM) ? "udp" : NULL); + if (svc && svc->s_name) + pstr = svc->s_name; + else + sprintf (str, "%u", ntohs (port)); + } + if (tServiceLength > strlen (pstr)) + strcpy (pszServiceName, pstr); + else + return EAI_FAIL; + } + if (pszNodeName && tNodeLength) + { + l_inaddr = ((struct sockaddr_in *) ptSocketAddress)->sin_addr; + if (iFlags & NI_NUMERICHOST) + pnode = inet_ntoa (l_inaddr); + else + { + phost = gethostbyaddr ((char *) &l_inaddr, sizeof (struct in_addr), AF_INET); + if (phost && phost->h_name) + { + pnode = phost->h_name; + if ((iFlags & NI_NOFQDN) != 0 && ((pc = strchr (pnode,'.')) != NULL)) + *pc = 0; + } + else + { + if ((iFlags & NI_NAMEREQD) != 0) + { + switch(WSAGetLastError()) + { + case WSAHOST_NOT_FOUND: return EAI_NONAME; + case WSATRY_AGAIN: return EAI_AGAIN; + case WSANO_RECOVERY: return EAI_FAIL; + default: return EAI_NONAME; + } + } + else + pnode = inet_ntoa (l_inaddr); + } + } + if (tNodeLength > strlen (pnode)) + strcpy (pszNodeName, pnode); + else + return EAI_FAIL; + } + return 0; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiLoad.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiLoad.c new file mode 100644 index 0000000000..ea7a7a4c52 --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiLoad.c @@ -0,0 +1,75 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +FARPROC WINAPI +WspiapiLoad (WORD wFunction) +{ + static WINBOOL isinit = FALSE; + static WSPIAPI_FUNCTION rgtGlobal[] = WSPIAPI_FUNCTION_ARRAY; + static const int iNumGlobal = (sizeof(rgtGlobal) / sizeof(WSPIAPI_FUNCTION)); + HMODULE hlib = NULL; + WSPIAPI_FUNCTION rgtLocal[] = WSPIAPI_FUNCTION_ARRAY; + FARPROC fScratch = NULL; + int i = 0; + + if (isinit) + return rgtGlobal[wFunction].pfAddress; + + for (;;) + { + CHAR systemdir[MAX_PATH + 1], path[MAX_PATH + 8]; + + if (GetSystemDirectoryA (systemdir, MAX_PATH) == 0) + break; + strcpy (path, systemdir); + strcat (path, "\\ws2_32"); + hlib = LoadLibraryA (path); + if(hlib != NULL) + { + fScratch = GetProcAddress (hlib, "getaddrinfo"); + if (!fScratch) + { + FreeLibrary (hlib); + hlib = NULL; + } + } + if (hlib != NULL) + break; + strcpy (path, systemdir); + strcat (path, "\\wship6"); + hlib = LoadLibraryA (path); + if (hlib != NULL) + { + if ((fScratch = GetProcAddress (hlib, "getaddrinfo")) == NULL) + { + FreeLibrary (hlib); + hlib = NULL; + } + } + break; + } + if (hlib != NULL) + { + for (i = 0; i < iNumGlobal; i++) + { + if ((rgtLocal[i].pfAddress = GetProcAddress (hlib, rgtLocal[i].pszName)) == NULL) + { + FreeLibrary (hlib); + hlib = NULL; + break; + } + } + if (hlib != NULL) + { + for (i = 0; i < iNumGlobal; i++) + rgtGlobal[i].pfAddress = rgtLocal[i].pfAddress; + } + } + isinit = TRUE; + return rgtGlobal[wFunction].pfAddress; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiLookupNode.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiLookupNode.c new file mode 100644 index 0000000000..3269ff6ece --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiLookupNode.c @@ -0,0 +1,44 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int WINAPI +WspiapiLookupNode (const char *pszNodeName, + int iSocketType, int iProtocol, + WORD wPort, WINBOOL bAI_CANONNAME, + struct addrinfo **pptResult) +{ + int err = 0, cntAlias = 0; + char name[NI_MAXHOST] = ""; + char alias[NI_MAXHOST] = ""; + char *pname = name, *palias = alias, *tmp = NULL; + + strncpy (pname, pszNodeName, NI_MAXHOST - 1); + pname[NI_MAXHOST - 1] = 0; + for (;;) + { + err = WspiapiQueryDNS (pszNodeName, iSocketType, iProtocol, wPort, palias, pptResult); + if (err) + break; + if (*pptResult) + break; + ++cntAlias; + if (strlen (palias) == 0 || !strcmp (pname, palias) || cntAlias == 16) + { + err = EAI_FAIL; + break; + } + WspiapiSwap(pname, palias, tmp); + } + if (!err && bAI_CANONNAME) + { + (*pptResult)->ai_canonname = WspiapiStrdup (palias); + if (!(*pptResult)->ai_canonname) + err = EAI_MEMORY; + } + return err; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiNewAddrInfo.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiNewAddrInfo.c new file mode 100644 index 0000000000..892d9abb72 --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiNewAddrInfo.c @@ -0,0 +1,31 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +struct addrinfo * WINAPI +WspiapiNewAddrInfo (int iSocketType, int iProtocol, WORD wPort, DWORD dwAddress) +{ + struct addrinfo *n; + struct sockaddr_in *pa; + + if ((n = (struct addrinfo *) WspiapiMalloc (sizeof (struct addrinfo))) == NULL) + return NULL; + if ((pa = (struct sockaddr_in *) WspiapiMalloc (sizeof(struct sockaddr_in))) == NULL) + { + WspiapiFree(n); + return NULL; + } + pa->sin_family = AF_INET; + pa->sin_port = wPort; + pa->sin_addr.s_addr = dwAddress; + n->ai_family = PF_INET; + n->ai_socktype = iSocketType; + n->ai_protocol = iProtocol; + n->ai_addrlen = sizeof (struct sockaddr_in); + n->ai_addr = (struct sockaddr *) pa; + return n; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiParseV4Address.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiParseV4Address.c new file mode 100644 index 0000000000..18e4ff9b1d --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiParseV4Address.c @@ -0,0 +1,26 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +WINBOOL WINAPI +WspiapiParseV4Address (const char *pszAddress, PDWORD pdwAddress) +{ + DWORD dwAddress = 0; + const char *h = NULL; + int cnt; + + for (cnt = 0,h = pszAddress; *h != 0; h++) + if (h[0] == '.') + cnt++; + if (cnt != 3) + return FALSE; + dwAddress = inet_addr (pszAddress); + if (dwAddress == INADDR_NONE) + return FALSE; + *pdwAddress = dwAddress; + return TRUE; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiQueryDNS.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiQueryDNS.c new file mode 100644 index 0000000000..6e4bb08d6c --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiQueryDNS.c @@ -0,0 +1,48 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +int WINAPI +WspiapiQueryDNS(const char *pszNodeName, + int iSocketType, int iProtocol, + WORD wPort, char pszAlias[NI_MAXHOST], + struct addrinfo **pptResult) +{ + struct addrinfo **paddrinfo = pptResult; + struct hostent *phost = NULL; + char **h; + + *paddrinfo = NULL; + pszAlias[0] = 0; + phost = gethostbyname (pszNodeName); + if (phost) + { + if (phost->h_addrtype == AF_INET && phost->h_length == sizeof(struct in_addr)) + { + for (h = phost->h_addr_list; *h != NULL; h++) + { + *paddrinfo = WspiapiNewAddrInfo (iSocketType, iProtocol, wPort, + ((struct in_addr *) *h)->s_addr); + if (!*paddrinfo) + return EAI_MEMORY; + paddrinfo = &((*paddrinfo)->ai_next); + } + } + strncpy (pszAlias, phost->h_name, NI_MAXHOST - 1); + pszAlias[NI_MAXHOST - 1] = 0; + return 0; + } + switch(WSAGetLastError()) + { + case WSAHOST_NOT_FOUND: break; + case WSATRY_AGAIN: return EAI_AGAIN; + case WSANO_RECOVERY: return EAI_FAIL; + case WSANO_DATA: return EAI_NODATA; + default: break; + } + return EAI_NONAME; +} diff --git a/lib/libc/mingw/libsrc/wspiapi/WspiapiStrdup.c b/lib/libc/mingw/libsrc/wspiapi/WspiapiStrdup.c new file mode 100644 index 0000000000..220de872d6 --- /dev/null +++ b/lib/libc/mingw/libsrc/wspiapi/WspiapiStrdup.c @@ -0,0 +1,23 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#undef __CRT__NO_INLINE +#define __CRT__NO_INLINE +#include +#include + +char * WINAPI +WspiapiStrdup (const char *pszString) +{ + char *rstr; + size_t szlen; + + if(!pszString) + return NULL; + szlen = strlen(pszString) + 1; + rstr = (char *) WspiapiMalloc (szlen); + if (!rstr) + return NULL; + strcpy (rstr, pszString); + return rstr; +} diff --git a/lib/libc/mingw/math/_huge.c b/lib/libc/mingw/math/_huge.c new file mode 100644 index 0000000000..dd43f841a8 --- /dev/null +++ b/lib/libc/mingw/math/_huge.c @@ -0,0 +1,2 @@ +/* For UCRT, positive infinity */ +double const _HUGE = __builtin_huge_val(); diff --git a/lib/libc/mingw/math/arm-common/acosh.c b/lib/libc/mingw/math/arm-common/acosh.c deleted file mode 100644 index a26840d862..0000000000 --- a/lib/libc/mingw/math/arm-common/acosh.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -double acosh(double x) -{ - if (x < 1.0) - return NAN; - if (isinf(x*x)) - return log(2) + log(x); - return log(x + sqrt(x*x - 1)); -} diff --git a/lib/libc/mingw/math/arm-common/acoshf.c b/lib/libc/mingw/math/arm-common/acoshf.c deleted file mode 100644 index d02e94da62..0000000000 --- a/lib/libc/mingw/math/arm-common/acoshf.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -float acoshf(float x) -{ - if (x < 1.0) - return NAN; - if (isinf(x*x)) - return logf(2) + logf(x); - return logf(x + sqrtf(x*x - 1)); -} diff --git a/lib/libc/mingw/math/arm-common/acoshl.c b/lib/libc/mingw/math/arm-common/acoshl.c deleted file mode 100644 index c2157bebc9..0000000000 --- a/lib/libc/mingw/math/arm-common/acoshl.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -long double acoshl(long double x) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return acosh(x); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/asinh.c b/lib/libc/mingw/math/arm-common/asinh.c deleted file mode 100644 index a5a8da7ba5..0000000000 --- a/lib/libc/mingw/math/arm-common/asinh.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -double asinh(double x) -{ - if (isinf(x*x + 1)) { - if (x > 0) - return log(2) + log(x); - else - return -log(2) - log(-x); - } - return log(x + sqrt(x*x + 1)); -} diff --git a/lib/libc/mingw/math/arm-common/asinhl.c b/lib/libc/mingw/math/arm-common/asinhl.c deleted file mode 100644 index 556b3c4f51..0000000000 --- a/lib/libc/mingw/math/arm-common/asinhl.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -long double asinhl(long double x) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return asinh(x); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/atanh.c b/lib/libc/mingw/math/arm-common/atanh.c deleted file mode 100644 index 08302c0e2e..0000000000 --- a/lib/libc/mingw/math/arm-common/atanh.c +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -double atanh(double x) -{ - if (x > 1 || x < -1) - return NAN; - if (-1e-6 < x && x < 1e-6) - return x + x*x*x/3; - else - return (log(1 + x) - log(1 - x)) / 2; -} diff --git a/lib/libc/mingw/math/arm-common/atanhf.c b/lib/libc/mingw/math/arm-common/atanhf.c deleted file mode 100644 index a29492305e..0000000000 --- a/lib/libc/mingw/math/arm-common/atanhf.c +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -float atanhf(float x) -{ - if (x > 1 || x < -1) - return NAN; - if (-1e-6 < x && x < 1e-6) - return x + x*x*x/3; - else - return (logf(1 + x) - logf(1 - x)) / 2; -} diff --git a/lib/libc/mingw/math/arm-common/atanhl.c b/lib/libc/mingw/math/arm-common/atanhl.c deleted file mode 100644 index c4d124b9f4..0000000000 --- a/lib/libc/mingw/math/arm-common/atanhl.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -long double atanhl(long double x) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return atanh(x); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/expm1f.c b/lib/libc/mingw/math/arm-common/expm1f.c deleted file mode 100644 index a810b71862..0000000000 --- a/lib/libc/mingw/math/arm-common/expm1f.c +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -float expm1f(float x) -{ - // Intentionally using double version of exp() here in the float version of - // expm1, to preserve as much accuracy as possible in the intermediate - // result. - return exp(x) - 1.0; -} diff --git a/lib/libc/mingw/math/arm-common/expm1l.c b/lib/libc/mingw/math/arm-common/expm1l.c deleted file mode 100644 index baf4da23af..0000000000 --- a/lib/libc/mingw/math/arm-common/expm1l.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -long double expm1l(long double x) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return expm1(x); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/ilogb.c b/lib/libc/mingw/math/arm-common/ilogb.c deleted file mode 100644 index 546db42437..0000000000 --- a/lib/libc/mingw/math/arm-common/ilogb.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -int ilogb(double x) -{ - if (x == 0.0) - return FP_ILOGB0; - if (isinf(x)) - return INT_MAX; - if (isnan(x)) - return FP_ILOGBNAN; - return (int) logb(x); -} diff --git a/lib/libc/mingw/math/arm-common/ilogbf.c b/lib/libc/mingw/math/arm-common/ilogbf.c deleted file mode 100644 index 3df38411ec..0000000000 --- a/lib/libc/mingw/math/arm-common/ilogbf.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -int ilogbf(float x) -{ - if (x == 0.0) - return FP_ILOGB0; - if (isinf(x)) - return INT_MAX; - if (isnan(x)) - return FP_ILOGBNAN; - return (int) logbf(x); -} diff --git a/lib/libc/mingw/math/arm-common/ilogbl.c b/lib/libc/mingw/math/arm-common/ilogbl.c deleted file mode 100644 index 1a6865d46e..0000000000 --- a/lib/libc/mingw/math/arm-common/ilogbl.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -int ilogbl(long double x) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return ilogb(x); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/log1pf.c b/lib/libc/mingw/math/arm-common/log1pf.c deleted file mode 100644 index e947131260..0000000000 --- a/lib/libc/mingw/math/arm-common/log1pf.c +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -float log1pf(float x) -{ - // Intentionally using double version of log() here in the float version of - // log1p, to preserve as much accuracy as possible in the intermediate - // parameter. - return log(x + 1.0); -} diff --git a/lib/libc/mingw/math/arm-common/log1pl.c b/lib/libc/mingw/math/arm-common/log1pl.c deleted file mode 100644 index c2b321a26d..0000000000 --- a/lib/libc/mingw/math/arm-common/log1pl.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -long double log1pl(long double x) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return log1p(x); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/log2.c b/lib/libc/mingw/math/arm-common/log2.c deleted file mode 100644 index 42ae3eeeb7..0000000000 --- a/lib/libc/mingw/math/arm-common/log2.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -typedef union ieee754_double_ { - struct __attribute__((__packed__)) { - uint64_t f52 : 52; - uint64_t exp : 11; - uint64_t sgn : 1; - }; - double f; -} ieee754_double; - -typedef union ieee754_float_ { - struct __attribute__((__packed__)) { - uint32_t f23 : 23; - uint32_t exp : 8; - uint32_t sgn : 1; - }; - float f; -} ieee754_float; - -double log2(double x) -{ - ieee754_double u = { .f = x }; - if (u.sgn == 0 && u.f52 == 0 && u.exp > 0 && u.exp < 0x7ff) { - // Handle exact powers of two exactly - return (int)u.exp - 1023; - } - return log(x) / 0.69314718246459960938; -} - -float log2f(float x) -{ - ieee754_float u = { .f = x }; - if (u.sgn == 0 && u.f23 == 0 && u.exp > 0 && u.exp < 0xff) { - // Handle exact powers of two exactly - return (int)u.exp - 127; - } - return logf(x) / 0.69314718246459960938f; -} - -long double log2l(long double x) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return log2(x); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/logb.c b/lib/libc/mingw/math/arm-common/logb.c deleted file mode 100644 index 105a44c09f..0000000000 --- a/lib/libc/mingw/math/arm-common/logb.c +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -extern double (* __MINGW_IMP_SYMBOL(_logb))(double); - -double logb(double x) -{ - if (isinf(x)) - return INFINITY; - return __MINGW_IMP_SYMBOL(_logb)(x); -} diff --git a/lib/libc/mingw/math/arm-common/logbf.c b/lib/libc/mingw/math/arm-common/logbf.c deleted file mode 100644 index 565b66aebb..0000000000 --- a/lib/libc/mingw/math/arm-common/logbf.c +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -extern float (* __MINGW_IMP_SYMBOL(_logbf))(float); - -float logbf(float x) -{ - if (isinf(x)) - return INFINITY; - return __MINGW_IMP_SYMBOL(_logbf)(x); -} diff --git a/lib/libc/mingw/math/arm-common/logbl.c b/lib/libc/mingw/math/arm-common/logbl.c deleted file mode 100644 index fca06754df..0000000000 --- a/lib/libc/mingw/math/arm-common/logbl.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -long double logbl(long double x) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return logb(x); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/powf.c b/lib/libc/mingw/math/arm-common/powf.c deleted file mode 100644 index 4d518fe9bb..0000000000 --- a/lib/libc/mingw/math/arm-common/powf.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -extern float (* __MINGW_IMP_SYMBOL(powf))(float, float); - -float powf(float x, float y) -{ - if (x == 1.0f) - return 1.0f; - if (y == 0.0f) - return 1.0f; - if (x == -1.0f && isinf(y)) - return 1.0f; - return __MINGW_IMP_SYMBOL(powf)(x, y); -} diff --git a/lib/libc/mingw/math/arm-common/powl.c b/lib/libc/mingw/math/arm-common/powl.c deleted file mode 100644 index 46e6b2d459..0000000000 --- a/lib/libc/mingw/math/arm-common/powl.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -long double powl(long double x, long double y) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return pow(x, y); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/remainder.c b/lib/libc/mingw/math/arm-common/remainder.c deleted file mode 100644 index b97ccf1339..0000000000 --- a/lib/libc/mingw/math/arm-common/remainder.c +++ /dev/null @@ -1,14 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -double remainder(double x, double y) -{ - int iret; - return remquo(x, y, &iret); -} diff --git a/lib/libc/mingw/math/arm-common/remainderf.c b/lib/libc/mingw/math/arm-common/remainderf.c deleted file mode 100644 index 1e2946c8b3..0000000000 --- a/lib/libc/mingw/math/arm-common/remainderf.c +++ /dev/null @@ -1,14 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -float remainderf(float x, float y) -{ - int iret; - return remquof(x, y, &iret); -} diff --git a/lib/libc/mingw/math/arm-common/remainderl.c b/lib/libc/mingw/math/arm-common/remainderl.c deleted file mode 100644 index 16fef94651..0000000000 --- a/lib/libc/mingw/math/arm-common/remainderl.c +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -long double remainderl(long double x, long double y) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return remainder(x, y); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/remquol.c b/lib/libc/mingw/math/arm-common/remquol.c deleted file mode 100644 index c9fb1cbb53..0000000000 --- a/lib/libc/mingw/math/arm-common/remquol.c +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -long double remquol(long double x, long double y, int *quo) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return remquo(x, y, quo); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm-common/s_remquo.c b/lib/libc/mingw/math/arm-common/s_remquo.c deleted file mode 100644 index 48b73177a4..0000000000 --- a/lib/libc/mingw/math/arm-common/s_remquo.c +++ /dev/null @@ -1,154 +0,0 @@ -/* @(#)e_fmod.c 1.3 95/01/18 */ -/*- - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunSoft, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#include - -#include - -#include -#include "../bsd_private_base.h" - -static const double Zero[] = {0.0, -0.0,}; - -/* - * Return the IEEE remainder and set *quo to the last n bits of the - * quotient, rounded to the nearest integer. We choose n=31 because - * we wind up computing all the integer bits of the quotient anyway as - * a side-effect of computing the remainder by the shift and subtract - * method. In practice, this is far more bits than are needed to use - * remquo in reduction algorithms. - */ -double -remquo(double x, double y, int *quo) -{ - int32_t n,hx,hy,hz,ix,iy,sx,i; - u_int32_t lx,ly,lz,q,sxy; - - EXTRACT_WORDS(hx,lx,x); - EXTRACT_WORDS(hy,ly,y); - sxy = (hx ^ hy) & 0x80000000; - sx = hx&0x80000000; /* sign of x */ - hx ^=sx; /* |x| */ - hy &= 0x7fffffff; /* |y| */ - - /* purge off exception values */ - if((hy|ly)==0||(hx>=0x7ff00000)|| /* y=0,or x not finite */ - ((hy|((ly|-ly)>>31))>0x7ff00000)) /* or y is NaN */ - return nan_mix_op(x, y, *)/nan_mix_op(x, y, *); - if(hx<=hy) { - if((hx>31]; /* |x|=|y| return x*0*/ - } - } - - /* determine ix = ilogb(x) */ - if(hx<0x00100000) { /* subnormal x */ - if(hx==0) { - for (ix = -1043, i=lx; i>0; i<<=1) ix -=1; - } else { - for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1; - } - } else ix = (hx>>20)-1023; - - /* determine iy = ilogb(y) */ - if(hy<0x00100000) { /* subnormal y */ - if(hy==0) { - for (iy = -1043, i=ly; i>0; i<<=1) iy -=1; - } else { - for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1; - } - } else iy = (hy>>20)-1023; - - /* set up {hx,lx}, {hy,ly} and align y to x */ - if(ix >= -1022) - hx = 0x00100000|(0x000fffff&hx); - else { /* subnormal x, shift x to normal */ - n = -1022-ix; - if(n<=31) { - hx = (hx<>(32-n)); - lx <<= n; - } else { - hx = lx<<(n-32); - lx = 0; - } - } - if(iy >= -1022) - hy = 0x00100000|(0x000fffff&hy); - else { /* subnormal y, shift y to normal */ - n = -1022-iy; - if(n<=31) { - hy = (hy<>(32-n)); - ly <<= n; - } else { - hy = ly<<(n-32); - ly = 0; - } - } - - /* fix point fmod */ - n = ix - iy; - q = 0; - while(n--) { - hz=hx-hy;lz=lx-ly; if(lx>31); lx = lx+lx;} - else {hx = hz+hz+(lz>>31); lx = lz+lz; q++;} - q <<= 1; - } - hz=hx-hy;lz=lx-ly; if(lx=0) {hx=hz;lx=lz;q++;} - - /* convert back to floating value and restore the sign */ - if((hx|lx)==0) { /* return sign(x)*0 */ - q &= 0x7fffffff; - *quo = (sxy ? -q : q); - return Zero[(u_int32_t)sx>>31]; - } - while(hx<0x00100000) { /* normalize x */ - hx = hx+hx+(lx>>31); lx = lx+lx; - iy -= 1; - } - if(iy>= -1022) { /* normalize output */ - hx = ((hx-0x00100000)|((iy+1023)<<20)); - } else { /* subnormal output */ - n = -1022 - iy; - if(n<=20) { - lx = (lx>>n)|((u_int32_t)hx<<(32-n)); - hx >>= n; - } else if (n<=31) { - lx = (hx<<(32-n))|(lx>>n); hx = 0; - } else { - lx = hx>>(n-32); hx = 0; - } - } -fixup: - INSERT_WORDS(x,hx,lx); - y = fabs(y); - if (y < 0x1p-1021) { - if (x+x>y || (x+x==y && (q & 1))) { - q++; - x-=y; - } - } else if (x>0.5*y || (x==0.5*y && (q & 1))) { - q++; - x-=y; - } - GET_HIGH_WORD(hx,x); - SET_HIGH_WORD(x,hx^sx); - q &= 0x7fffffff; - *quo = (sxy ? -q : q); - return x; -} diff --git a/lib/libc/mingw/math/arm-common/s_remquof.c b/lib/libc/mingw/math/arm-common/s_remquof.c deleted file mode 100644 index f2a4e0d081..0000000000 --- a/lib/libc/mingw/math/arm-common/s_remquof.c +++ /dev/null @@ -1,121 +0,0 @@ -/* @(#)e_fmod.c 1.3 95/01/18 */ -/*- - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunSoft, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#include - -#include -#include "../bsd_private_base.h" - -static const float Zero[] = {0.0, -0.0,}; - -/* - * Return the IEEE remainder and set *quo to the last n bits of the - * quotient, rounded to the nearest integer. We choose n=31 because - * we wind up computing all the integer bits of the quotient anyway as - * a side-effect of computing the remainder by the shift and subtract - * method. In practice, this is far more bits than are needed to use - * remquo in reduction algorithms. - */ -float -remquof(float x, float y, int *quo) -{ - int32_t n,hx,hy,hz,ix,iy,sx,i; - u_int32_t q,sxy; - - GET_FLOAT_WORD(hx,x); - GET_FLOAT_WORD(hy,y); - sxy = (hx ^ hy) & 0x80000000; - sx = hx&0x80000000; /* sign of x */ - hx ^=sx; /* |x| */ - hy &= 0x7fffffff; /* |y| */ - - /* purge off exception values */ - if(hy==0||hx>=0x7f800000||hy>0x7f800000) /* y=0,NaN;or x not finite */ - return nan_mix_op(x, y, *)/nan_mix_op(x, y, *); - if(hx>31]; /* |x|=|y| return x*0*/ - } - - /* determine ix = ilogb(x) */ - if(hx<0x00800000) { /* subnormal x */ - for (ix = -126,i=(hx<<8); i>0; i<<=1) ix -=1; - } else ix = (hx>>23)-127; - - /* determine iy = ilogb(y) */ - if(hy<0x00800000) { /* subnormal y */ - for (iy = -126,i=(hy<<8); i>0; i<<=1) iy -=1; - } else iy = (hy>>23)-127; - - /* set up {hx,lx}, {hy,ly} and align y to x */ - if(ix >= -126) - hx = 0x00800000|(0x007fffff&hx); - else { /* subnormal x, shift x to normal */ - n = -126-ix; - hx <<= n; - } - if(iy >= -126) - hy = 0x00800000|(0x007fffff&hy); - else { /* subnormal y, shift y to normal */ - n = -126-iy; - hy <<= n; - } - - /* fix point fmod */ - n = ix - iy; - q = 0; - while(n--) { - hz=hx-hy; - if(hz<0) hx = hx << 1; - else {hx = hz << 1; q++;} - q <<= 1; - } - hz=hx-hy; - if(hz>=0) {hx=hz;q++;} - - /* convert back to floating value and restore the sign */ - if(hx==0) { /* return sign(x)*0 */ - q &= 0x7fffffff; - *quo = (sxy ? -q : q); - return Zero[(u_int32_t)sx>>31]; - } - while(hx<0x00800000) { /* normalize x */ - hx <<= 1; - iy -= 1; - } - if(iy>= -126) { /* normalize output */ - hx = ((hx-0x00800000)|((iy+127)<<23)); - } else { /* subnormal output */ - n = -126 - iy; - hx >>= n; - } -fixup: - SET_FLOAT_WORD(x,hx); - y = fabsf(y); - if (y < 0x1p-125f) { - if (x+x>y || (x+x==y && (q & 1))) { - q++; - x-=y; - } - } else if (x>0.5f*y || (x==0.5f*y && (q & 1))) { - q++; - x-=y; - } - GET_FLOAT_WORD(hx,x); - SET_FLOAT_WORD(x,hx^sx); - q &= 0x7fffffff; - *quo = (sxy ? -q : q); - return x; -} diff --git a/lib/libc/mingw/math/arm-common/scalbn.c b/lib/libc/mingw/math/arm-common/scalbn.c deleted file mode 100644 index 0e2f14ab7c..0000000000 --- a/lib/libc/mingw/math/arm-common/scalbn.c +++ /dev/null @@ -1,45 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -double scalbn(double x, int exp) -{ - return x * exp2(exp); -} - -float scalbnf(float x, int exp) -{ - return x * exp2f(exp); -} - -long double scalbnl(long double x, int exp) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return scalbn(x, exp); -#else -#error Not supported on your platform yet -#endif -} - -double scalbln(double x, long exp) -{ - return x * exp2(exp); -} - -float scalblnf(float x, long exp) -{ - return x * exp2f(exp); -} - -long double scalblnl(long double x, long exp) -{ -#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return scalbln(x, exp); -#else -#error Not supported on your platform yet -#endif -} diff --git a/lib/libc/mingw/math/arm/exp2.S b/lib/libc/mingw/math/arm/exp2.S deleted file mode 100644 index 6918ce19dc..0000000000 --- a/lib/libc/mingw/math/arm/exp2.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "exp2.S" - .text - .align 2 - .globl __MINGW_USYMBOL(exp2) - .globl __MINGW_USYMBOL(exp2l) - .def __MINGW_USYMBOL(exp2); .scl 2; .type 32; .endef - .def __MINGW_USYMBOL(exp2l); .scl 2; .type 32; .endef -__MINGW_USYMBOL(exp2): -__MINGW_USYMBOL(exp2l): - vmov.f64 d1, d0 - vmov.f64 d0, #2.0 - b pow diff --git a/lib/libc/mingw/math/arm/exp2f.S b/lib/libc/mingw/math/arm/exp2f.S deleted file mode 100644 index 452cd9a951..0000000000 --- a/lib/libc/mingw/math/arm/exp2f.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "exp2f.S" - .text - .align 2 - .globl __MINGW_USYMBOL(exp2f) - .def __MINGW_USYMBOL(exp2f); .scl 2; .type 32; .endef -__MINGW_USYMBOL(exp2f): - vmov s1, s0 - vmov.f32 s0, #2.0 - b powf diff --git a/lib/libc/mingw/math/arm/nearbyint.S b/lib/libc/mingw/math/arm/nearbyint.S deleted file mode 100644 index 4754d9d66f..0000000000 --- a/lib/libc/mingw/math/arm/nearbyint.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "nearbyint.S" - .text - .align 4 - .globl __MINGW_USYMBOL(nearbyint) - .def __MINGW_USYMBOL(nearbyint); .scl 2; .type 32; .endef -__MINGW_USYMBOL(nearbyint): - push {r4, lr} - vmrs r4, fpscr - bl rint - vmsr fpscr, r4 - pop {r4, pc} diff --git a/lib/libc/mingw/math/arm/nearbyintf.S b/lib/libc/mingw/math/arm/nearbyintf.S deleted file mode 100644 index 00236cedc9..0000000000 --- a/lib/libc/mingw/math/arm/nearbyintf.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "nearbyintf.S" - .text - .align 4 - .globl __MINGW_USYMBOL(nearbyintf) - .def __MINGW_USYMBOL(nearbyintf); .scl 2; .type 32; .endef -__MINGW_USYMBOL(nearbyintf): - push {r4, lr} - vmrs r4, fpscr - bl rintf - vmsr fpscr, r4 - pop {r4, pc} diff --git a/lib/libc/mingw/math/arm/nearbyintl.S b/lib/libc/mingw/math/arm/nearbyintl.S deleted file mode 100644 index a552d14e18..0000000000 --- a/lib/libc/mingw/math/arm/nearbyintl.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "nearbyintl.S" - .text - .align 4 - .globl __MINGW_USYMBOL(nearbyintl) - .def __MINGW_USYMBOL(nearbyintl); .scl 2; .type 32; .endef -__MINGW_USYMBOL(nearbyintl): - push {r4, lr} - vmrs r4, fpscr - bl rintl - vmsr fpscr, r4 - pop {r4, pc} diff --git a/lib/libc/mingw/math/arm/s_trunc.c b/lib/libc/mingw/math/arm/s_trunc.c deleted file mode 100644 index a7798df9c7..0000000000 --- a/lib/libc/mingw/math/arm/s_trunc.c +++ /dev/null @@ -1,61 +0,0 @@ -/* @(#)s_floor.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#include - -/* - * trunc(x) - * Return x rounded toward 0 to integral value - * Method: - * Bit twiddling. - * Exception: - * Inexact flag raised if x not equal to trunc(x). - */ - -#include - -#include "../bsd_private_base.h" - -static const double huge = 1.0e300; - -double -trunc(double x) -{ - int32_t i0,i1,j0; - u_int32_t i; - EXTRACT_WORDS(i0,i1,x); - j0 = ((i0>>20)&0x7ff)-0x3ff; - if(j0<20) { - if(j0<0) { /* raise inexact if x != 0 */ - if(huge+x>0.0) {/* |x|<1, so return 0*sign(x) */ - i0 &= 0x80000000U; - i1 = 0; - } - } else { - i = (0x000fffff)>>j0; - if(((i0&i)|i1)==0) return x; /* x is integral */ - if(huge+x>0.0) { /* raise inexact flag */ - i0 &= (~i); i1=0; - } - } - } else if (j0>51) { - if(j0==0x400) return x+x; /* inf or NaN */ - else return x; /* x is integral */ - } else { - i = ((u_int32_t)(0xffffffff))>>(j0-20); - if((i1&i)==0) return x; /* x is integral */ - if(huge+x>0.0) /* raise inexact flag */ - i1 &= (~i); - } - INSERT_WORDS(x,i0,i1); - return x; -} diff --git a/lib/libc/mingw/math/arm/s_truncf.c b/lib/libc/mingw/math/arm/s_truncf.c deleted file mode 100644 index 8d66c5fbfa..0000000000 --- a/lib/libc/mingw/math/arm/s_truncf.c +++ /dev/null @@ -1,51 +0,0 @@ -/* @(#)s_floor.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#include - -/* - * truncf(x) - * Return x rounded toward 0 to integral value - * Method: - * Bit twiddling. - * Exception: - * Inexact flag raised if x not equal to truncf(x). - */ - -#include "../bsd_private_base.h" - -static const float huge = 1.0e30F; - -float -truncf(float x) -{ - int32_t i0,j0; - u_int32_t i; - GET_FLOAT_WORD(i0,x); - j0 = ((i0>>23)&0xff)-0x7f; - if(j0<23) { - if(j0<0) { /* raise inexact if x != 0 */ - if(huge+x>0.0F) /* |x|<1, so return 0*sign(x) */ - i0 &= 0x80000000; - } else { - i = (0x007fffff)>>j0; - if((i0&i)==0) return x; /* x is integral */ - if(huge+x>0.0F) /* raise inexact flag */ - i0 &= (~i); - } - } else { - if(j0==0x80) return x+x; /* inf or NaN */ - else return x; /* x is integral */ - } - SET_FLOAT_WORD(x,i0); - return x; -} diff --git a/lib/libc/mingw/math/arm64/exp2.S b/lib/libc/mingw/math/arm64/exp2.S deleted file mode 100644 index b1f7a07abd..0000000000 --- a/lib/libc/mingw/math/arm64/exp2.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "exp2.S" - .text - .align 2 - .globl __MINGW_USYMBOL(exp2) - .globl __MINGW_USYMBOL(exp2l) - .def __MINGW_USYMBOL(exp2); .scl 2; .type 32; .endef - .def __MINGW_USYMBOL(exp2l); .scl 2; .type 32; .endef -__MINGW_USYMBOL(exp2): -__MINGW_USYMBOL(exp2l): - fmov d1, d0 - fmov d0, #2.0 - b pow diff --git a/lib/libc/mingw/math/arm64/exp2f.S b/lib/libc/mingw/math/arm64/exp2f.S deleted file mode 100644 index c00f003c77..0000000000 --- a/lib/libc/mingw/math/arm64/exp2f.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "exp2f.S" - .text - .align 2 - .globl __MINGW_USYMBOL(exp2f) - .def __MINGW_USYMBOL(exp2f); .scl 2; .type 32; .endef -__MINGW_USYMBOL(exp2f): - fmov s1, s0 - fmov s0, #2.0 - b powf diff --git a/lib/libc/mingw/math/arm64/nearbyint.S b/lib/libc/mingw/math/arm64/nearbyint.S deleted file mode 100644 index b17ce2bd1d..0000000000 --- a/lib/libc/mingw/math/arm64/nearbyint.S +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "nearbyint.S" - .text - .align 2 - .globl __MINGW_USYMBOL(nearbyint) - .def __MINGW_USYMBOL(nearbyint); .scl 2; .type 32; .endef -__MINGW_USYMBOL(nearbyint): - mrs x1, fpcr - frintx d0, d0 - msr fpcr, x1 - ret diff --git a/lib/libc/mingw/math/arm64/nearbyintf.S b/lib/libc/mingw/math/arm64/nearbyintf.S deleted file mode 100644 index 49b6aff119..0000000000 --- a/lib/libc/mingw/math/arm64/nearbyintf.S +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "nearbyintf.S" - .text - .align 2 - .globl __MINGW_USYMBOL(nearbyintf) - .def __MINGW_USYMBOL(nearbyintf); .scl 2; .type 32; .endef -__MINGW_USYMBOL(nearbyintf): - mrs x1, fpcr - frintx s0, s0 - msr fpcr, x1 - ret diff --git a/lib/libc/mingw/math/arm64/nearbyintl.S b/lib/libc/mingw/math/arm64/nearbyintl.S deleted file mode 100644 index cbfebb2501..0000000000 --- a/lib/libc/mingw/math/arm64/nearbyintl.S +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "nearbyintl.S" - .text - .align 2 - .globl __MINGW_USYMBOL(nearbyintl) - .def __MINGW_USYMBOL(nearbyintl); .scl 2; .type 32; .endef -__MINGW_USYMBOL(nearbyintl): - mrs x1, fpcr - frintx d0, d0 - msr fpcr, x1 - ret diff --git a/lib/libc/mingw/math/arm64/trunc.S b/lib/libc/mingw/math/arm64/trunc.S deleted file mode 100644 index d784bf0163..0000000000 --- a/lib/libc/mingw/math/arm64/trunc.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "trunc.S" - .text - .p2align 2 - .globl __MINGW_USYMBOL(trunc) - .def __MINGW_USYMBOL(trunc); .scl 2; .type 32; .endef - -__MINGW_USYMBOL(trunc): - frintz d0, d0 - ret diff --git a/lib/libc/mingw/math/arm64/truncf.S b/lib/libc/mingw/math/arm64/truncf.S deleted file mode 100644 index 22b9ff88c2..0000000000 --- a/lib/libc/mingw/math/arm64/truncf.S +++ /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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "truncf.S" - .text - .p2align 2 - .globl __MINGW_USYMBOL(truncf) - .def __MINGW_USYMBOL(truncf); .scl 2; .type 32; .endef - -__MINGW_USYMBOL(truncf): - frintz s0, s0 - ret diff --git a/lib/libc/mingw/math/cbrt.c b/lib/libc/mingw/math/cbrt.c deleted file mode 100644 index 005505235a..0000000000 --- a/lib/libc/mingw/math/cbrt.c +++ /dev/null @@ -1,104 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include "cephes_mconf.h" - -static const double CBRT2 = 1.2599210498948731647672; -static const double CBRT4 = 1.5874010519681994747517; -static const double CBRT2I = 0.79370052598409973737585; -static const double CBRT4I = 0.62996052494743658238361; - -#ifndef __MINGW32__ -extern double frexp ( double, int * ); -extern double ldexp ( double, int ); -extern int isnan ( double ); -extern int isfinite ( double ); -#endif - -double cbrt(double x) -{ - int e, rem, sign; - double z; - -#ifdef __MINGW32__ - if (!isfinite (x) || x == 0) - return x; -#else -#ifdef NANS - if (isnan(x)) - return x; -#endif -#ifdef INFINITIES - if (!isfinite(x)) - return x; -#endif - if (x == 0) - return (x); -#endif /* __MINGW32__ */ - - if (x > 0) - sign = 1; - else - { - sign = -1; - x = -x; - } - - z = x; - /* extract power of 2, leaving - * mantissa between 0.5 and 1 - */ - x = frexp(x, &e); - - /* Approximate cube root of number between .5 and 1, - * peak relative error = 9.2e-6 - */ - x = (((-1.3466110473359520655053e-1 * x - + 5.4664601366395524503440e-1) * x - - 9.5438224771509446525043e-1) * x - + 1.1399983354717293273738e0 ) * x - + 4.0238979564544752126924e-1; - - /* exponent divided by 3 */ - if (e >= 0) - { - rem = e; - e /= 3; - rem -= 3*e; - if (rem == 1) - x *= CBRT2; - else if (rem == 2) - x *= CBRT4; - } - /* argument less than 1 */ - else - { - e = -e; - rem = e; - e /= 3; - rem -= 3*e; - if (rem == 1) - x *= CBRT2I; - else if (rem == 2) - x *= CBRT4I; - e = -e; - } - - /* multiply by power of 2 */ - x = ldexp(x, e); - - /* Newton iteration */ - x -= ( x - (z/(x*x)) )*0.33333333333333333333; -#ifdef DEC - x -= ( x - (z/(x*x)) )/3.0; -#else - x -= ( x - (z/(x*x)) )*0.33333333333333333333; -#endif - - if (sign < 0) - x = -x; - return (x); -} diff --git a/lib/libc/mingw/math/cbrtf.c b/lib/libc/mingw/math/cbrtf.c deleted file mode 100644 index 1c37e75bc3..0000000000 --- a/lib/libc/mingw/math/cbrtf.c +++ /dev/null @@ -1,75 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include "cephes_mconf.h" - -static const float CBRT2 = 1.25992104989487316477; -static const float CBRT4 = 1.58740105196819947475; - -float cbrtf (float x) -{ - int e, rem, sign; - float z; - if (!isfinite (x) || x == 0.0F) - return x; - if (x > 0) - sign = 1; - else - { - sign = -1; - x = -x; - } - - z = x; - /* extract power of 2, leaving - * mantissa between 0.5 and 1 - */ - x = frexpf(x, &e); - - /* Approximate cube root of number between .5 and 1, - * peak relative error = 9.2e-6 - */ - x = (((-0.13466110473359520655053 * x - + 0.54664601366395524503440 ) * x - - 0.95438224771509446525043 ) * x - + 1.1399983354717293273738 ) * x - + 0.40238979564544752126924; - - /* exponent divided by 3 */ - if (e >= 0) - { - rem = e; - e /= 3; - rem -= 3*e; - if (rem == 1) - x *= CBRT2; - else if (rem == 2) - x *= CBRT4; - } -/* argument less than 1 */ - else - { - e = -e; - rem = e; - e /= 3; - rem -= 3*e; - if (rem == 1) - x /= CBRT2; - else if (rem == 2) - x /= CBRT4; - e = -e; - } - - /* multiply by power of 2 */ - x = ldexpf(x, e); - - /* Newton iteration */ - x -= ( x - (z/(x*x)) ) * 0.333333333333; - - if (sign < 0) - x = -x; - return (x); -} diff --git a/lib/libc/mingw/math/copysign.c b/lib/libc/mingw/math/copysign.c deleted file mode 100644 index c3fe76f0d3..0000000000 --- a/lib/libc/mingw/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 mingw-w64 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/lib/libc/mingw/math/copysignf.c b/lib/libc/mingw/math/copysignf.c deleted file mode 100644 index 0fba92bc75..0000000000 --- a/lib/libc/mingw/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 mingw-w64 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/lib/libc/mingw/math/fabs.c b/lib/libc/mingw/math/fabs.c deleted file mode 100644 index a6637114f9..0000000000 --- a/lib/libc/mingw/math/fabs.c +++ /dev/null @@ -1,20 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#define __CRT__NO_INLINE -#include - -double -fabs (double x) -{ -#if defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) - return __builtin_fabs (x); -#elif defined(__i386__) || defined(_X86_) - double res = 0.0; - - asm volatile ("fabs;" : "=t" (res) : "0" (x)); - return res; -#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */ -} diff --git a/lib/libc/mingw/math/fdim.c b/lib/libc/mingw/math/fdim.c deleted file mode 100644 index aec62c4a9c..0000000000 --- a/lib/libc/mingw/math/fdim.c +++ /dev/null @@ -1,24 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include - -double -fdim (double x, double y) -{ - int cx = fpclassify (x), cy = fpclassify (y); - double r; - - if (cx == FP_NAN || cy == FP_NAN - || (y < 0 && cx == FP_INFINITE && cy == FP_INFINITE)) - return x - y; /* Take care invalid flag is raised. */ - if (x <= y) - return 0.0; - r = x - y; - if (fpclassify (r) == FP_INFINITE) - errno = ERANGE; - return r; -} diff --git a/lib/libc/mingw/math/fdimf.c b/lib/libc/mingw/math/fdimf.c deleted file mode 100644 index 3312a932b0..0000000000 --- a/lib/libc/mingw/math/fdimf.c +++ /dev/null @@ -1,24 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include - -float -fdimf (float x, float y) -{ - int cx = fpclassify (x), cy = fpclassify (y); - float r; - - if (cx == FP_NAN || cy == FP_NAN - || (y < 0 && cx == FP_INFINITE && cy == FP_INFINITE)) - return x - y; /* Take care invalid flag is raised. */ - if (x <= y) - return 0.0f; - r = x - y; - if (fpclassify (r) == FP_INFINITE) - errno = ERANGE; - return r; -} diff --git a/lib/libc/mingw/math/fma.c b/lib/libc/mingw/math/fma.c deleted file mode 100644 index 6774be787e..0000000000 --- a/lib/libc/mingw/math/fma.c +++ /dev/null @@ -1,97 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -double fma(double x, double y, double z); - -#if defined(_ARM_) || defined(__arm__) - -/* Use hardware FMA on ARM. */ -double fma(double x, double y, double z){ - __asm__ ( - "fmacd %0, %1, %2 \n" - : "+w"(z) - : "w"(x), "w"(y) - ); - return z; -} - -#elif defined(_ARM64_) || defined(__aarch64__) - -/* Use hardware FMA on ARM64. */ -double fma(double x, double y, double z){ - __asm__ ( - "fmadd %d0, %d1, %d2, %d0 \n" - : "+w"(z) - : "w"(x), "w"(y) - ); - return z; -} - -#elif defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) - -#include -#include - -/* This is in accordance with the IEC 559 double-precision format. - * Be advised that due to the hidden bit, the higher half actually has 26 bits. - * Multiplying two 27-bit numbers will cause a 1-ULP error, which we cannot - * avoid. It is kept in the very last position. - */ -typedef union iec559_double_ { - struct __attribute__((__packed__)) { - uint64_t mlo : 27; - uint64_t mhi : 25; - uint64_t exp : 11; - uint64_t sgn : 1; - }; - double f; -} iec559_double; - -static inline void break_down(iec559_double *restrict lo, iec559_double *restrict hi, double x) { - hi->f = x; - /* Erase low-order significant bits. `hi->f` now has only 26 significant bits. */ - hi->mlo = 0; - /* Store the low-order half. It will be normalized by the hardware. */ - lo->f = x - hi->f; - /* Preserve signness in case of zero. */ - lo->sgn = hi->sgn; -} - -double fma(double x, double y, double z) { - /* - POSIX-2013: - 1. If x or y are NaN, a NaN shall be returned. - 2. If x multiplied by y is an exact infinity and z is also an infinity - but with the opposite sign, a domain error shall occur, and either a NaN - (if supported), or an implementation-defined value shall be returned. - 3. If one of x and y is infinite, the other is zero, and z is not a NaN, - a domain error shall occur, and either a NaN (if supported), or an - implementation-defined value shall be returned. - 4. If one of x and y is infinite, the other is zero, and z is a NaN, a NaN - shall be returned and a domain error may occur. - 5. If x* y is not 0*Inf nor Inf*0 and z is a NaN, a NaN shall be returned. - */ - /* Check whether the result is finite. */ - double ret = x * y + z; - if(!isfinite(ret)) { - return ret; /* If this naive check doesn't yield a finite value, the FMA isn't - likely to return one either. Forward the value as is. */ - } - iec559_double xlo, xhi, ylo, yhi; - break_down(&xlo, &xhi, x); - break_down(&ylo, &yhi, y); - /* The order of these four statements is essential. Don't move them around. */ - ret = z; - ret += xhi.f * yhi.f; /* The most significant item comes first. */ - ret += xhi.f * ylo.f + xlo.f * yhi.f; /* They are equally significant. */ - ret += xlo.f * ylo.f; /* The least significant item comes last. */ - return ret; -} - -#else - -#error Please add FMA implementation for this platform. - -#endif diff --git a/lib/libc/mingw/math/fmaf.c b/lib/libc/mingw/math/fmaf.c deleted file mode 100644 index 4661e4b829..0000000000 --- a/lib/libc/mingw/math/fmaf.c +++ /dev/null @@ -1,97 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -float fmaf(float x, float y, float z); - -#if defined(_ARM_) || defined(__arm__) - -/* Use hardware FMA on ARM. */ -float fmaf(float x, float y, float z){ - __asm__ ( - "fmacs %0, %1, %2 \n" - : "+t"(z) - : "t"(x), "t"(y) - ); - return z; -} - -#elif defined(_ARM64_) || defined(__aarch64__) - -/* Use hardware FMA on ARM64. */ -float fmaf(float x, float y, float z){ - __asm__ ( - "fmadd %s0, %s1, %s2, %s0 \n" - : "+w"(z) - : "w"(x), "w"(y) - ); - return z; -} - -#elif defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) - -#include -#include - -/* This is in accordance with the IEC 559 single-precision format. - * Be advised that due to the hidden bit, the higher half actually has 11 bits. - * Multiplying two 13-bit numbers will cause a 1-ULP error, which we cannot - * avoid. It is kept in the very last position. - */ -typedef union iec559_float_ { - struct __attribute__((__packed__)) { - uint32_t mlo : 13; - uint32_t mhi : 10; - uint32_t exp : 8; - uint32_t sgn : 1; - }; - float f; -} iec559_float; - -static inline void break_down(iec559_float *restrict lo, iec559_float *restrict hi, float x) { - hi->f = x; - /* Erase low-order significant bits. `hi->f` now has only 11 significant bits. */ - hi->mlo = 0; - /* Store the low-order half. It will be normalized by the hardware. */ - lo->f = x - hi->f; - /* Preserve signness in case of zero. */ - lo->sgn = hi->sgn; -} - -float fmaf(float x, float y, float z) { - /* - POSIX-2013: - 1. If x or y are NaN, a NaN shall be returned. - 2. If x multiplied by y is an exact infinity and z is also an infinity - but with the opposite sign, a domain error shall occur, and either a NaN - (if supported), or an implementation-defined value shall be returned. - 3. If one of x and y is infinite, the other is zero, and z is not a NaN, - a domain error shall occur, and either a NaN (if supported), or an - implementation-defined value shall be returned. - 4. If one of x and y is infinite, the other is zero, and z is a NaN, a NaN - shall be returned and a domain error may occur. - 5. If x* y is not 0*Inf nor Inf*0 and z is a NaN, a NaN shall be returned. - */ - /* Check whether the result is finite. */ - float ret = x * y + z; - if(!isfinite(ret)) { - return ret; /* If this naive check doesn't yield a finite value, the FMA isn't - likely to return one either. Forward the value as is. */ - } - iec559_float xlo, xhi, ylo, yhi; - break_down(&xlo, &xhi, x); - break_down(&ylo, &yhi, y); - /* The order of these four statements is essential. Don't move them around. */ - ret = z; - ret += xhi.f * yhi.f; /* The most significant item comes first. */ - ret += xhi.f * ylo.f + xlo.f * yhi.f; /* They are equally significant. */ - ret += xlo.f * ylo.f; /* The least significant item comes last. */ - return ret; -} - -#else - -#error Please add FMA implementation for this platform. - -#endif diff --git a/lib/libc/mingw/math/fmax.c b/lib/libc/mingw/math/fmax.c deleted file mode 100644 index 79f330c499..0000000000 --- a/lib/libc/mingw/math/fmax.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -double -fmax (double _x, double _y) -{ - return ( isgreaterequal (_x, _y)|| __isnan (_y) ? _x : _y ); -} diff --git a/lib/libc/mingw/math/fmaxf.c b/lib/libc/mingw/math/fmaxf.c deleted file mode 100644 index 677a8a735c..0000000000 --- a/lib/libc/mingw/math/fmaxf.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float -fmaxf (float _x, float _y) -{ - return (( isgreaterequal(_x, _y) || __isnanf (_y)) ? _x : _y ); -} diff --git a/lib/libc/mingw/math/fmin.c b/lib/libc/mingw/math/fmin.c deleted file mode 100644 index 80695745a9..0000000000 --- a/lib/libc/mingw/math/fmin.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -double -fmin (double _x, double _y) -{ - return ((islessequal(_x, _y) || __isnan (_y)) ? _x : _y ); -} diff --git a/lib/libc/mingw/math/frexp.c b/lib/libc/mingw/math/frexp.c deleted file mode 100644 index 69086daf88..0000000000 --- a/lib/libc/mingw/math/frexp.c +++ /dev/null @@ -1,64 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -double frexp(double value, int* exp); - -#if defined(_ARM_) || defined(__arm__) || defined(_ARM64_) || defined(__aarch64__) || \ - defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) - -#include - -/* It is assumed that `double` conforms to IEEE 754 and is little-endian. - * This is true on x86 and ARM. */ - -typedef union ieee754_double_ { - struct __attribute__((__packed__)) { - uint64_t f52 : 52; - uint64_t exp : 11; - uint64_t sgn : 1; - }; - double f; -} ieee754_double; - -double frexp(double value, int* exp) -{ - int n; - ieee754_double reg; - reg.f = value; - if(reg.exp == 0x7FF) { - /* The value is an infinity or NaN. - * Store zero in `*exp`. Return the value as is. */ - *exp = 0; - return reg.f; - } - if(reg.exp != 0) { - /* The value is normalized. - * Extract and zero out the exponent. */ - *exp = reg.exp - 0x3FE; - reg.exp = 0x3FE; - return reg.f; - } - if(reg.f52 == 0) { - /* The value is zero. - * Store zero in `*exp`. Return the value as is. - * Note the signness. */ - *exp = 0; - return reg.f; - } - /* The value is denormalized. - * Extract the exponent, normalize the value, then zero out - * the exponent. Note that the hidden bit is removed. */ - n = __builtin_clzll(reg.f52) - 11; - reg.f52 <<= n; - *exp = 1 - 0x3FE - n; - reg.exp = 0x3FE; - return reg.f; -} - -#else - -#error Please add `frexp()` implementation for this platform. - -#endif diff --git a/lib/libc/mingw/math/hypot.c b/lib/libc/mingw/math/hypot.c deleted file mode 100644 index a63c27a687..0000000000 --- a/lib/libc/mingw/math/hypot.c +++ /dev/null @@ -1,23 +0,0 @@ -/** - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER within this package. - */ -#define _NEW_COMPLEX_DOUBLE 1 - -#include "../complex/complex_internal.h" -#include -#include - -double hypot (double x, double y) -{ - int x_class = fpclassify (x); - int y_class = fpclassify (y); - - if (x_class == FP_INFINITE || y_class == FP_INFINITE) - return __FLT_HUGE_VAL; - else if (x_class == FP_NAN || y_class == FP_NAN) - return __FLT_NAN; - - return _hypot (x, y); -} - diff --git a/lib/libc/mingw/math/llrint.c b/lib/libc/mingw/math/llrint.c deleted file mode 100644 index 4ba7af7e6b..0000000000 --- a/lib/libc/mingw/math/llrint.c +++ /dev/null @@ -1,42 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include - -long long llrint (double x) -{ - long long retval = 0ll; -#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) - __asm__ __volatile__ ("fistpll %0" : "=m" (retval) : "t" (x) : "st"); -#else - int mode = fegetround(); - if (mode == FE_DOWNWARD) - retval = (long long)floor(x); - else if (mode == FE_UPWARD) - retval = (long long)ceil(x); - else if (mode == FE_TOWARDZERO) - retval = x >= 0 ? (long long)floor(x) : (long long)ceil(x); - else { - // Break `x` into integral and fractional parts. - double intg, frac; - frac = modf(x, &intg); - frac = fabs(frac); - // Convert the truncated integral part to an integer. - retval = intg; - if (frac < 0.5) { - // Round towards zero. - } else if (frac > 0.5) { - // Round towards infinities. - retval += signbit(x) ? -1 : 1; - } else { - // Round to the nearest even number. - retval += retval % 2; - } - } -#endif - return retval; -} - diff --git a/lib/libc/mingw/math/llrintf.c b/lib/libc/mingw/math/llrintf.c deleted file mode 100644 index e8085ec4ea..0000000000 --- a/lib/libc/mingw/math/llrintf.c +++ /dev/null @@ -1,41 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include - -long long llrintf (float x) -{ - long long retval = 0ll; -#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) - __asm__ __volatile__ ("fistpll %0" : "=m" (retval) : "t" (x) : "st"); -#else - int mode = fegetround(); - if (mode == FE_DOWNWARD) - retval = (long long)floorf(x); - else if (mode == FE_UPWARD) - retval = (long long)ceilf(x); - else if (mode == FE_TOWARDZERO) - retval = x >= 0 ? (long long)floorf(x) : (long long)ceilf(x); - else { - // Break `x` into integral and fractional parts. - float intg, frac; - frac = modff(x, &intg); - frac = fabsf(frac); - // Convert the truncated integral part to an integer. - retval = intg; - if (frac < 0.5) { - // Round towards zero. - } else if (frac > 0.5) { - // Round towards infinities. - retval += signbit(x) ? -1 : 1; - } else { - // Round to the nearest even number. - retval += retval % 2; - } - } -#endif - return retval; -} diff --git a/lib/libc/mingw/math/llround.c b/lib/libc/mingw/math/llround.c deleted file mode 100644 index ef21bcb71c..0000000000 --- a/lib/libc/mingw/math/llround.c +++ /dev/null @@ -1,38 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include - -long long -llround (double x) -{ - double res; - - if (x >= 0.0) - { - res = ceil (x); - if (res - x > 0.5) - res -= 1.0; - } - else - { - res = ceil (-x); - if (res + x > 0.5) - res -= 1.0; - res = -res; - } - if (!isfinite (res) - || res > (double) LONG_LONG_MAX - || res < (double) LONG_LONG_MIN) - { - errno = ERANGE; - /* Undefined behaviour, so we could return anything. */ - /* return res > 0.0 ? LONG_LONG_MAX : LONG_LONG_MIN; */ - } - return (long long) res; -} - diff --git a/lib/libc/mingw/math/llroundf.c b/lib/libc/mingw/math/llroundf.c deleted file mode 100644 index 0a8da174f8..0000000000 --- a/lib/libc/mingw/math/llroundf.c +++ /dev/null @@ -1,38 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include - -long long -llroundf (float x) -{ - float res; - - if (x >= 0.0F) - { - res = ceilf (x); - if (res - x > 0.5F) - res -= 1.0F; - } - else - { - res = ceilf (-x); - if (res + x > 0.5F) - res -= 1.0F; - res = -res; - } - if (!isfinite (res) - || res > (float) LONG_LONG_MAX - || res < (float) LONG_LONG_MIN) - { - errno = ERANGE; - /* Undefined behaviour, so we could return anything. */ - /* return res > 0.0F ? LONG_LONG_MAX : LONG_LONG_MIN; */ - } - return (long long) res; -} - diff --git a/lib/libc/mingw/math/lrint.c b/lib/libc/mingw/math/lrint.c deleted file mode 100644 index 7831446be6..0000000000 --- a/lib/libc/mingw/math/lrint.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -#if defined(_AMD64_) || defined(__x86_64__) -#include -#endif - -long lrint (double x) -{ - long retval = 0L; -#if defined(_AMD64_) || defined(__x86_64__) - retval = _mm_cvtsd_si32(_mm_load_sd(&x)); -#elif defined(_X86_) || defined(__i386__) - __asm__ __volatile__ ("fistpl %0" : "=m" (retval) : "t" (x) : "st"); -#elif defined(__arm__) || defined(_ARM_) - float temp; - __asm__ __volatile__ ( - "vcvtr.s32.f64 %[tmp], %[src]\n\t" - "fmrs %[dst], %[tmp]\n\t" - : [dst] "=r" (retval), [tmp] "=t" (temp) : [src] "w" (x)); -#elif defined(__aarch64__) || defined(_ARM64_) - __asm__ __volatile__ ( - "frintx %d1, %d1\n\t" - "fcvtzs %w0, %d1\n\t" - : "=r" (retval), "+w" (x)); -#endif - return retval; -} diff --git a/lib/libc/mingw/math/lrintf.c b/lib/libc/mingw/math/lrintf.c deleted file mode 100644 index 1e8902f031..0000000000 --- a/lib/libc/mingw/math/lrintf.c +++ /dev/null @@ -1,31 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -#if defined(_AMD64_) || defined(__x86_64__) -#include -#endif - -long lrintf (float x) -{ - long retval = 0l; -#if defined(_AMD64_) || defined(__x86_64__) - retval = _mm_cvtss_si32(_mm_load_ss(&x)); -#elif defined(_X86_) || defined(__i386__) - __asm__ __volatile__ ("fistpl %0" : "=m" (retval) : "t" (x) : "st"); -#elif defined(__arm__) || defined(_ARM_) - __asm__ __volatile__ ( - "vcvtr.s32.f32 %[src], %[src]\n\t" - "fmrs %[dst], %[src]\n\t" - : [dst] "=r" (retval), [src] "+w" (x)); -#elif defined(__aarch64__) || defined(_ARM64_) - __asm__ __volatile__ ( - "frintx %s1, %s1\n\t" - "fcvtzs %w0, %s1\n\t" - : "=r" (retval), "+w" (x)); -#endif - return retval; -} diff --git a/lib/libc/mingw/math/lround.c b/lib/libc/mingw/math/lround.c deleted file mode 100644 index 560ef614f5..0000000000 --- a/lib/libc/mingw/math/lround.c +++ /dev/null @@ -1,37 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include - -long -lround (double x) -{ - double res; - - if (x >= 0.0) - { - res = ceil (x); - if (res - x > 0.5) - res -= 1.0; - } - else - { - res = ceil (-x); - if (res + x > 0.5) - res -= 1.0; - res = -res; - } - if (!isfinite (res) - || res > (double) LONG_MAX - || res < (double) LONG_MIN) - { - errno = ERANGE; - /* Undefined behaviour, so we could return anything. */ - /* return res > 0.0 ? LONG_MAX : LONG_MIN; */ - } - return (long) res; -} diff --git a/lib/libc/mingw/math/lroundf.c b/lib/libc/mingw/math/lroundf.c deleted file mode 100644 index 04a9354f3b..0000000000 --- a/lib/libc/mingw/math/lroundf.c +++ /dev/null @@ -1,37 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include - -long -lroundf (float x) -{ - float res; - - if (x >= 0.0F) - { - res = ceilf (x); - if (res - x > 0.5F) - res -= 1.0F; - } - else - { - res = ceilf (-x); - if (res + x > 0.5F) - res -= 1.0F; - res = -res; - } - if (!isfinite (res) - || res > (float) LONG_MAX - || res < (float) LONG_MIN) - { - errno = ERANGE; - /* Undefined behaviour, so we could return anything. */ - /* return res > 0.0F ? LONG_MAX : LONG_MIN; */ - } - return (long) res; -} diff --git a/lib/libc/mingw/math/modf.c b/lib/libc/mingw/math/modf.c deleted file mode 100644 index d2623095c1..0000000000 --- a/lib/libc/mingw/math/modf.c +++ /dev/null @@ -1,41 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include - -double -modf (double value, double* iptr) -{ - double int_part = 0.0; - /* truncate */ -#if defined(_AMD64_) || defined(__x86_64__) - asm volatile ("subq $8, %%rsp\n" - "fnstcw 4(%%rsp)\n" - "movzwl 4(%%rsp), %%eax\n" - "orb $12, %%ah\n" - "movw %%ax, (%%rsp)\n" - "fldcw (%%rsp)\n" - "frndint\n" - "fldcw 4(%%rsp)\n" - "addq $8, %%rsp\n" : "=t" (int_part) : "0" (value) : "eax"); /* round */ -#elif defined(_X86_) || defined(__i386__) - asm volatile ("push %%eax\n\tsubl $8, %%esp\n" - "fnstcw 4(%%esp)\n" - "movzwl 4(%%esp), %%eax\n" - "orb $12, %%ah\n" - "movw %%ax, (%%esp)\n" - "fldcw (%%esp)\n" - "frndint\n" - "fldcw 4(%%esp)\n" - "addl $8, %%esp\n\tpop %%eax\n" : "=t" (int_part) : "0" (value) : "eax"); /* round */ -#else - int_part = trunc(value); -#endif - if (iptr) - *iptr = int_part; - return (isinf (value) ? 0.0 : value - int_part); -} diff --git a/lib/libc/mingw/math/nextafterf.c b/lib/libc/mingw/math/nextafterf.c deleted file mode 100644 index 143a35d0a8..0000000000 --- a/lib/libc/mingw/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 mingw-w64 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/lib/libc/mingw/math/round.c b/lib/libc/mingw/math/round.c deleted file mode 100644 index aecf1d84bc..0000000000 --- a/lib/libc/mingw/math/round.c +++ /dev/null @@ -1,26 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -double -round (double x) -{ - double res; - if (x >= 0.0) - { - res = ceil (x); - if (res - x > 0.5) - res -= 1.0; - } - else - { - res = ceil (-x); - if (res + x > 0.5) - res -= 1.0; - res = -res; - } - return res; -} diff --git a/lib/libc/mingw/math/roundf.c b/lib/libc/mingw/math/roundf.c deleted file mode 100644 index 2b95427429..0000000000 --- a/lib/libc/mingw/math/roundf.c +++ /dev/null @@ -1,26 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float -roundf (float x) -{ - float res; - if (x >= 0.0F) - { - res = ceilf (x); - if (res - x > 0.5F) - res -= 1.0F; - } - else - { - res = ceilf (-x); - if (res + x > 0.5F) - res -= 1.0F; - res = -res; - } - return res; -} diff --git a/lib/libc/mingw/math/s_erf.c b/lib/libc/mingw/math/s_erf.c deleted file mode 100644 index e65409b8b4..0000000000 --- a/lib/libc/mingw/math/s_erf.c +++ /dev/null @@ -1,347 +0,0 @@ -/* @(#)s_erf.c 1.3 95/01/18 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunSoft, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* double erf(double x) - * double erfc(double x) - * x - * 2 |\ - * erf(x) = --------- | exp(-t*t)dt - * sqrt(pi) \| - * 0 - * - * erfc(x) = 1-erf(x) - * Note that - * erf(-x) = -erf(x) - * erfc(-x) = 2 - erfc(x) - * - * Method: - * 1. For |x| in [0, 0.84375] - * erf(x) = x + x*R(x^2) - * erfc(x) = 1 - erf(x) if x in [-.84375,0.25] - * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375] - * where R = P/Q where P is an odd poly of degree 8 and - * Q is an odd poly of degree 10. - * -57.90 - * | R - (erf(x)-x)/x | <= 2 - * - * Remark. The formula is derived by noting - * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....) - * and that - * 2/sqrt(pi) = 1.128379167095512573896158903121545171688 - * is close to one. The interval is chosen because the fix - * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is - * near 0.6174), and by some experiment, 0.84375 is chosen to - * guarantee the error is less than one ulp for erf. - * - * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and - * c = 0.84506291151 rounded to single (24 bits) - * erf(x) = sign(x) * (c + P1(s)/Q1(s)) - * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0 - * 1+(c+P1(s)/Q1(s)) if x < 0 - * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06 - * Remark: here we use the taylor series expansion at x=1. - * erf(1+s) = erf(1) + s*Poly(s) - * = 0.845.. + P1(s)/Q1(s) - * That is, we use rational approximation to approximate - * erf(1+s) - (c = (single)0.84506291151) - * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25] - * where - * P1(s) = degree 6 poly in s - * Q1(s) = degree 6 poly in s - * - * 3. For x in [1.25,1/0.35(~2.857143)], - * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1) - * erf(x) = 1 - erfc(x) - * where - * R1(z) = degree 7 poly in z, (z=1/x^2) - * S1(z) = degree 8 poly in z - * - * 4. For x in [1/0.35,28] - * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0 - * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6 x >= 28 - * erf(x) = sign(x) *(1 - tiny) (raise inexact) - * erfc(x) = tiny*tiny (raise underflow) if x > 0 - * = 2 - tiny if x<0 - * - * 7. Special case: - * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1, - * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2, - * erfc/erf(NaN) is NaN - */ - - -/* #include "fdlibm.h" */ - -#include -#include -#include - -#define __ieee754_exp exp - -typedef union -{ - double value; - struct - { - uint32_t lsw; - uint32_t msw; - } parts; -} ieee_double_shape_type; - - -static inline int __get_hi_word(const double x) -{ - ieee_double_shape_type u; - u.value = x; - return u.parts.msw; -} - -static inline void __trunc_lo_word(double *x) -{ - ieee_double_shape_type u; - u.value = *x; - u.parts.lsw = 0; - *x = u.value; -} - - -static const double - tiny= 1e-300, - half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ - one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ - two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */ - /* c = (float)0.84506291151 */ - erx = 8.45062911510467529297e-01, /* 0x3FEB0AC1, 0x60000000 */ - /* - * Coefficients for approximation to erf on [0,0.84375] - */ - efx = 1.28379167095512586316e-01, /* 0x3FC06EBA, 0x8214DB69 */ - efx8= 1.02703333676410069053e+00, /* 0x3FF06EBA, 0x8214DB69 */ - pp0 = 1.28379167095512558561e-01, /* 0x3FC06EBA, 0x8214DB68 */ - pp1 = -3.25042107247001499370e-01, /* 0xBFD4CD7D, 0x691CB913 */ - pp2 = -2.84817495755985104766e-02, /* 0xBF9D2A51, 0xDBD7194F */ - pp3 = -5.77027029648944159157e-03, /* 0xBF77A291, 0x236668E4 */ - pp4 = -2.37630166566501626084e-05, /* 0xBEF8EAD6, 0x120016AC */ - qq1 = 3.97917223959155352819e-01, /* 0x3FD97779, 0xCDDADC09 */ - qq2 = 6.50222499887672944485e-02, /* 0x3FB0A54C, 0x5536CEBA */ - qq3 = 5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */ - qq4 = 1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */ - qq5 = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */ - /* - * Coefficients for approximation to erf in [0.84375,1.25] - */ - pa0 = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */ - pa1 = 4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */ - pa2 = -3.72207876035701323847e-01, /* 0xBFD7D240, 0xFBB8C3F1 */ - pa3 = 3.18346619901161753674e-01, /* 0x3FD45FCA, 0x805120E4 */ - pa4 = -1.10894694282396677476e-01, /* 0xBFBC6398, 0x3D3E28EC */ - pa5 = 3.54783043256182359371e-02, /* 0x3FA22A36, 0x599795EB */ - pa6 = -2.16637559486879084300e-03, /* 0xBF61BF38, 0x0A96073F */ - qa1 = 1.06420880400844228286e-01, /* 0x3FBB3E66, 0x18EEE323 */ - qa2 = 5.40397917702171048937e-01, /* 0x3FE14AF0, 0x92EB6F33 */ - qa3 = 7.18286544141962662868e-02, /* 0x3FB2635C, 0xD99FE9A7 */ - qa4 = 1.26171219808761642112e-01, /* 0x3FC02660, 0xE763351F */ - qa5 = 1.36370839120290507362e-02, /* 0x3F8BEDC2, 0x6B51DD1C */ - qa6 = 1.19844998467991074170e-02, /* 0x3F888B54, 0x5735151D */ - /* - * Coefficients for approximation to erfc in [1.25,1/0.35] - */ - ra0 = -9.86494403484714822705e-03, /* 0xBF843412, 0x600D6435 */ - ra1 = -6.93858572707181764372e-01, /* 0xBFE63416, 0xE4BA7360 */ - ra2 = -1.05586262253232909814e+01, /* 0xC0251E04, 0x41B0E726 */ - ra3 = -6.23753324503260060396e+01, /* 0xC04F300A, 0xE4CBA38D */ - ra4 = -1.62396669462573470355e+02, /* 0xC0644CB1, 0x84282266 */ - ra5 = -1.84605092906711035994e+02, /* 0xC067135C, 0xEBCCABB2 */ - ra6 = -8.12874355063065934246e+01, /* 0xC0545265, 0x57E4D2F2 */ - ra7 = -9.81432934416914548592e+00, /* 0xC023A0EF, 0xC69AC25C */ - sa1 = 1.96512716674392571292e+01, /* 0x4033A6B9, 0xBD707687 */ - sa2 = 1.37657754143519042600e+02, /* 0x4061350C, 0x526AE721 */ - sa3 = 4.34565877475229228821e+02, /* 0x407B290D, 0xD58A1A71 */ - sa4 = 6.45387271733267880336e+02, /* 0x40842B19, 0x21EC2868 */ - sa5 = 4.29008140027567833386e+02, /* 0x407AD021, 0x57700314 */ - sa6 = 1.08635005541779435134e+02, /* 0x405B28A3, 0xEE48AE2C */ - sa7 = 6.57024977031928170135e+00, /* 0x401A47EF, 0x8E484A93 */ - sa8 = -6.04244152148580987438e-02, /* 0xBFAEEFF2, 0xEE749A62 */ - /* - * Coefficients for approximation to erfc in [1/.35,28] - */ - rb0 = -9.86494292470009928597e-03, /* 0xBF843412, 0x39E86F4A */ - rb1 = -7.99283237680523006574e-01, /* 0xBFE993BA, 0x70C285DE */ - rb2 = -1.77579549177547519889e+01, /* 0xC031C209, 0x555F995A */ - rb3 = -1.60636384855821916062e+02, /* 0xC064145D, 0x43C5ED98 */ - rb4 = -6.37566443368389627722e+02, /* 0xC083EC88, 0x1375F228 */ - rb5 = -1.02509513161107724954e+03, /* 0xC0900461, 0x6A2E5992 */ - rb6 = -4.83519191608651397019e+02, /* 0xC07E384E, 0x9BDC383F */ - sb1 = 3.03380607434824582924e+01, /* 0x403E568B, 0x261D5190 */ - sb2 = 3.25792512996573918826e+02, /* 0x40745CAE, 0x221B9F0A */ - sb3 = 1.53672958608443695994e+03, /* 0x409802EB, 0x189D5118 */ - sb4 = 3.19985821950859553908e+03, /* 0x40A8FFB7, 0x688C246A */ - sb5 = 2.55305040643316442583e+03, /* 0x40A3F219, 0xCEDF3BE6 */ - sb6 = 4.74528541206955367215e+02, /* 0x407DA874, 0xE79FE763 */ - sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */ - - -double erf(double x) -{ - int hx, ix, i; - double R, S, P, Q, s, y, z, r; - hx = __get_hi_word(x); - ix = hx & 0x7fffffff; - if (ix >= 0x7ff00000) { /* erf(nan)=nan */ - i = ((unsigned)hx>>31)<<1; - return (double)(1-i)+one/x; /* erf(+-inf)=+-1 */ - } - - if (ix < 0x3feb0000) { /* |x|<0.84375 */ - if (ix < 0x3e300000) { /* |x|<2**-28 */ - if (ix < 0x00800000) - return 0.125*(8.0*x+efx8*x); /*avoid underflow */ - return x + efx*x; - } - z = x*x; - r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); - s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); - y = r/s; - return x + x*y; - } - if (ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */ - s = fabs(x)-one; - P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); - Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); - if (hx >= 0) - return erx + P/Q; - else - return -erx - P/Q; - } - if (ix >= 0x40180000) { /* inf>|x|>=6 */ - if (hx >= 0) - return one-tiny; - else - return tiny-one; - } - x = fabs(x); - s = one/(x*x); - if (ix < 0x4006DB6E) { /* |x| < 1/0.35 */ - R = ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( - ra5+s*(ra6+s*ra7)))))); - S = one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( - sa5+s*(sa6+s*(sa7+s*sa8))))))); - } else { /* |x| >= 1/0.35 */ - R = rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( - rb5+s*rb6))))); - S = one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( - sb5+s*(sb6+s*sb7)))))); - } - z = x; - __trunc_lo_word(&z); - r = __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S); - if (hx >= 0) - return one-r/x; - else - return r/x-one; -} - -double erfc(double x) -{ - int hx,ix; - double R,S,P,Q,s,y,z,r; - hx = __get_hi_word(x); - ix = hx&0x7fffffff; - if (ix >= 0x7ff00000) { /* erfc(nan)=nan */ - /* erfc(+-inf)=0,2 */ - return (double)(((unsigned)hx>>31)<<1)+one/x; - } - - if (ix < 0x3feb0000) { /* |x|<0.84375 */ - if (ix < 0x3c700000) /* |x|<2**-56 */ - return one-x; - z = x*x; - r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); - s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); - y = r/s; - if (hx < 0x3fd00000) { /* x<1/4 */ - return one-(x+x*y); - } else { - r = x*y; - r += (x-half); - return half - r ; - } - } - if (ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */ - s = fabs(x)-one; - P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); - Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); - if (hx >= 0) { - z = one-erx; return z - P/Q; - } else { - z = erx+P/Q; return one+z; - } - } - if (ix < 0x403c0000) { /* |x|<28 */ - x = fabs(x); - s = one/(x*x); - if (ix < 0x4006DB6D) { /* |x| < 1/.35 ~ 2.857143*/ - R = ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( - ra5+s*(ra6+s*ra7)))))); - S = one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( - sa5+s*(sa6+s*(sa7+s*sa8))))))); - } else { /* |x| >= 1/.35 ~ 2.857143 */ - if (hx < 0 && ix >= 0x40180000) - return two-tiny; /* x < -6 */ - R = rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( - rb5+s*rb6))))); - S = one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( - sb5+s*(sb6+s*sb7)))))); - } - z = x; - __trunc_lo_word(&z); - r = __ieee754_exp(-z*z-0.5625)* - __ieee754_exp((z-x)*(z+x)+R/S); - if (hx > 0) - return r/x; - else - return two-r/x; - } else { - /* set range error */ - errno = ERANGE; - if (hx > 0) - return tiny*tiny; - else - return two-tiny; - } -} - diff --git a/lib/libc/mingw/math/sf_erf.c b/lib/libc/mingw/math/sf_erf.c deleted file mode 100644 index 1e1997b3c1..0000000000 --- a/lib/libc/mingw/math/sf_erf.c +++ /dev/null @@ -1,268 +0,0 @@ -/* sf_erf.c -- float version of s_erf.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* -#include "fdlibm.h" -*/ -#include -#include -#include - -#define __ieee754_expf expf - -typedef union -{ - float value; - uint32_t word; -} ieee_float_shape_type; - -/* Get a 32 bit int from a float. */ - -static inline int -__get_float_word(float d) -{ - ieee_float_shape_type u; - u.value = d; - return u.word; -} - -/* Set a float from a 32 bit int. */ - -#define SET_FLOAT_WORD(d,i) \ -do { \ - ieee_float_shape_type sf_u; \ - sf_u.word = (i); \ - (d) = sf_u.value; \ -} while (0) - -static inline void __trunc_float_word(float * x) -{ - ieee_float_shape_type u; - u.value = * x; - u.word &= 0xfffff000; -} - -#ifdef __v810__ -#define const -#endif - -static const float - tiny= 1e-30, - half= 5.0000000000e-01, /* 0x3F000000 */ - one = 1.0000000000e+00, /* 0x3F800000 */ - two = 2.0000000000e+00, /* 0x40000000 */ - /* c = (subfloat)0.84506291151 */ - erx = 8.4506291151e-01, /* 0x3f58560b */ - /* - * Coefficients for approximation to erf on [0,0.84375] - */ - efx = 1.2837916613e-01, /* 0x3e0375d4 */ - efx8= 1.0270333290e+00, /* 0x3f8375d4 */ - pp0 = 1.2837916613e-01, /* 0x3e0375d4 */ - pp1 = -3.2504209876e-01, /* 0xbea66beb */ - pp2 = -2.8481749818e-02, /* 0xbce9528f */ - pp3 = -5.7702702470e-03, /* 0xbbbd1489 */ - pp4 = -2.3763017452e-05, /* 0xb7c756b1 */ - qq1 = 3.9791721106e-01, /* 0x3ecbbbce */ - qq2 = 6.5022252500e-02, /* 0x3d852a63 */ - qq3 = 5.0813062117e-03, /* 0x3ba68116 */ - qq4 = 1.3249473704e-04, /* 0x390aee49 */ - qq5 = -3.9602282413e-06, /* 0xb684e21a */ - /* - * Coefficients for approximation to erf in [0.84375,1.25] - */ - pa0 = -2.3621185683e-03, /* 0xbb1acdc6 */ - pa1 = 4.1485610604e-01, /* 0x3ed46805 */ - pa2 = -3.7220788002e-01, /* 0xbebe9208 */ - pa3 = 3.1834661961e-01, /* 0x3ea2fe54 */ - pa4 = -1.1089469492e-01, /* 0xbde31cc2 */ - pa5 = 3.5478305072e-02, /* 0x3d1151b3 */ - pa6 = -2.1663755178e-03, /* 0xbb0df9c0 */ - qa1 = 1.0642088205e-01, /* 0x3dd9f331 */ - qa2 = 5.4039794207e-01, /* 0x3f0a5785 */ - qa3 = 7.1828655899e-02, /* 0x3d931ae7 */ - qa4 = 1.2617121637e-01, /* 0x3e013307 */ - qa5 = 1.3637083583e-02, /* 0x3c5f6e13 */ - qa6 = 1.1984500103e-02, /* 0x3c445aa3 */ - /* - * Coefficients for approximation to erfc in [1.25,1/0.35] - */ - ra0 = -9.8649440333e-03, /* 0xbc21a093 */ - ra1 = -6.9385856390e-01, /* 0xbf31a0b7 */ - ra2 = -1.0558626175e+01, /* 0xc128f022 */ - ra3 = -6.2375331879e+01, /* 0xc2798057 */ - ra4 = -1.6239666748e+02, /* 0xc322658c */ - ra5 = -1.8460508728e+02, /* 0xc3389ae7 */ - ra6 = -8.1287437439e+01, /* 0xc2a2932b */ - ra7 = -9.8143291473e+00, /* 0xc11d077e */ - sa1 = 1.9651271820e+01, /* 0x419d35ce */ - sa2 = 1.3765776062e+02, /* 0x4309a863 */ - sa3 = 4.3456588745e+02, /* 0x43d9486f */ - sa4 = 6.4538726807e+02, /* 0x442158c9 */ - sa5 = 4.2900814819e+02, /* 0x43d6810b */ - sa6 = 1.0863500214e+02, /* 0x42d9451f */ - sa7 = 6.5702495575e+00, /* 0x40d23f7c */ - sa8 = -6.0424413532e-02, /* 0xbd777f97 */ - /* - * Coefficients for approximation to erfc in [1/.35,28] - */ - rb0 = -9.8649431020e-03, /* 0xbc21a092 */ - rb1 = -7.9928326607e-01, /* 0xbf4c9dd4 */ - rb2 = -1.7757955551e+01, /* 0xc18e104b */ - rb3 = -1.6063638306e+02, /* 0xc320a2ea */ - rb4 = -6.3756646729e+02, /* 0xc41f6441 */ - rb5 = -1.0250950928e+03, /* 0xc480230b */ - rb6 = -4.8351919556e+02, /* 0xc3f1c275 */ - sb1 = 3.0338060379e+01, /* 0x41f2b459 */ - sb2 = 3.2579251099e+02, /* 0x43a2e571 */ - sb3 = 1.5367296143e+03, /* 0x44c01759 */ - sb4 = 3.1998581543e+03, /* 0x4547fdbb */ - sb5 = 2.5530502930e+03, /* 0x451f90ce */ - sb6 = 4.7452853394e+02, /* 0x43ed43a7 */ - sb7 = -2.2440952301e+01; /* 0xc1b38712 */ - -float erff(float x) -{ - int32_t hx, ix, i; - float R, S, P, Q, s, y, z, r; - hx = __get_float_word(x); - ix = hx & 0x7fffffff; - if (!(ix<0x7f800000L)) { /* erf(nan)=nan */ - i = ((uint32_t)hx>>31)<<1; - return (float)(1-i)+one/x; /* erf(+-inf)=+-1 */ - } - - if (ix < 0x3f580000) { /* |x|<0.84375 */ - if (ix < 0x31800000) { /* |x|<2**-28 */ - if (ix < 0x04000000) - /*avoid underflow */ - return (float)0.125*((float)8.0*x+efx8*x); - return x + efx*x; - } - z = x*x; - r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); - s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); - y = r/s; - return x + x*y; - } - if (ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */ - s = fabsf(x)-one; - P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); - Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); - if (hx >= 0) - return erx + P/Q; - else - return -erx - P/Q; - } - if (ix >= 0x40c00000) { /* inf>|x|>=6 */ - if (hx >= 0) - return one-tiny; - else - return tiny-one; - } - x = fabsf(x); - s = one/(x*x); - if (ix< 0x4036DB6E) { /* |x| < 1/0.35 */ - R = ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( - ra5+s*(ra6+s*ra7)))))); - S = one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( - sa5+s*(sa6+s*(sa7+s*sa8))))))); - } else { /* |x| >= 1/0.35 */ - R = rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( - rb5+s*rb6))))); - S = one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( - sb5+s*(sb6+s*sb7)))))); - } - - z = x; - __trunc_float_word (&z); - r = __ieee754_expf(-z*z-(float)0.5625)*__ieee754_expf((z-x)*(z+x)+R/S); - if (hx >= 0) - return one-r/x; - else - return r/x-one; -} - -float erfcf(float x) -{ - int32_t hx, ix; - float R, S, P, Q, s, y, z, r; - hx = __get_float_word(x); - ix = hx & 0x7fffffff; - if (!(ix < 0x7f800000L)) { /* erfc(nan)=nan */ - /* erfc(+-inf)=0,2 */ - return (float)(((uint32_t)hx>>31)<<1)+one/x; - } - - if (ix < 0x3f580000) { /* |x|<0.84375 */ - if (ix < 0x23800000) /* |x|<2**-56 */ - return one-x; - z = x*x; - r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); - s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); - y = r/s; - if (hx < 0x3e800000) { /* x<1/4 */ - return one-(x+x*y); - } else { - r = x*y; - r += (x-half); - return half - r ; - } - } - if (ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */ - s = fabsf(x)-one; - P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); - Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); - if (hx >= 0) { - z = one-erx; return z - P/Q; - } else { - z = erx+P/Q; return one+z; - } - } - - if (ix < 0x41e00000) { /* |x|<28 */ - x = fabsf(x); - s = one/(x*x); - if (ix< 0x4036DB6D) { /* |x| < 1/.35 ~ 2.857143*/ - R = ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( - ra5+s*(ra6+s*ra7)))))); - S = one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( - sa5+s*(sa6+s*(sa7+s*sa8))))))); - } else { /* |x| >= 1/.35 ~ 2.857143 */ - if (hx < 0 && ix >= 0x40c00000) - return two-tiny;/* x < -6 */ - R = rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( - rb5+s*rb6))))); - S = one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( - sb5+s*(sb6+s*sb7)))))); - } - - z = x; - __trunc_float_word (&z); - r = __ieee754_expf(-z*z-(float)0.5625)* - __ieee754_expf((z-x)*(z+x)+R/S); - if (hx > 0) - return r/x; - else - return two-r/x; - } else { - /* set range error */ - errno = ERANGE; - if (hx > 0) - return tiny*tiny; - else - return two-tiny; - } -} diff --git a/lib/libc/mingw/math/sqrt.c b/lib/libc/mingw/math/sqrt.c deleted file mode 100644 index 7c854816c4..0000000000 --- a/lib/libc/mingw/math/sqrt.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_DOUBLE 1 -#define X64_ASM "sqrtsd" -#include "sqrt.def.h" diff --git a/lib/libc/mingw/math/tgamma.c b/lib/libc/mingw/math/tgamma.c deleted file mode 100644 index f652d80a36..0000000000 --- a/lib/libc/mingw/math/tgamma.c +++ /dev/null @@ -1,268 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include "cephes_mconf.h" - -#ifdef UNK -static const uD P[7] = { - { { 1.60119522476751861407E-4 } }, - { { 1.19135147006586384913E-3 } }, - { { 1.04213797561761569935E-2 } }, - { { 4.76367800457137231464E-2 } }, - { { 2.07448227648435975150E-1 } }, - { { 4.94214826801497100753E-1 } }, - { { 9.99999999999999996796E-1 } } -}; -static const uD Q[8] = { - { { -2.31581873324120129819E-5 } }, - { { 5.39605580493303397842E-4 } }, - { { -4.45641913851797240494E-3 } }, - { { 1.18139785222060435552E-2 } }, - { { 3.58236398605498653373E-2 } }, - { { -2.34591795718243348568E-1 } }, - { { 7.14304917030273074085E-2 } }, - { { 1.00000000000000000320E0 } } -}; -#define MAXGAM 171.624376956302725 -static const double LOGPI = 1.14472988584940017414; -#endif - -#ifdef IBMPC -static const uD P[7] = { - { { 0x2153,0x3998,0xfcb8,0x3f24 } }, - { { 0xbfab,0xe686,0x84e3,0x3f53 } }, - { { 0x14b0,0xe9db,0x57cd,0x3f85 } }, - { { 0x23d3,0x18c4,0x63d9,0x3fa8 } }, - { { 0x7d31,0xdcae,0x8da9,0x3fca } }, - { { 0xe312,0x3993,0xa137,0x3fdf } }, - { { 0x0000,0x0000,0x0000,0x3ff0 } } -}; -static const uD Q[8] = { - { { 0xd3af,0x8400,0x487a,0xbef8 } }, - { { 0x2573,0x2915,0xae8a,0x3f41 } }, - { { 0xb44a,0xe750,0x40e4,0xbf72 } }, - { { 0xb117,0x5b1b,0x31ed,0x3f88 } }, - { { 0xde67,0xe33f,0x5779,0x3fa2 } }, - { { 0x87c2,0x9d42,0x071a,0xbfce } }, - { { 0x3c51,0xc9cd,0x4944,0x3fb2 } }, - { { 0x0000,0x0000,0x0000,0x3ff0 } } -}; -#define MAXGAM 171.624376956302725 -#endif - -#ifdef MIEEE -static const uD P[7] = { - { { 0x3f24,0xfcb8,0x3998,0x2153 } }, - { { 0x3f53,0x84e3,0xe686,0xbfab } }, - { { 0x3f85,0x57cd,0xe9db,0x14b0 } }, - { { 0x3fa8,0x63d9,0x18c4,0x23d3 } }, - { { 0x3fca,0x8da9,0xdcae,0x7d31 } }, - { { 0x3fdf,0xa137,0x3993,0xe312 } }, - { { 0x3ff0,0x0000,0x0000,0x0000 } } -}; -static const unsigned short Q[8] = { - { { 0xbef8,0x487a,0x8400,0xd3af } }, - { { 0x3f41,0xae8a,0x2915,0x2573 } }, - { { 0xbf72,0x40e4,0xe750,0xb44a } }, - { { 0x3f88,0x31ed,0x5b1b,0xb117 } }, - { { 0x3fa2,0x5779,0xe33f,0xde67 } }, - { { 0xbfce,0x071a,0x9d42,0x87c2 } }, - { { 0x3fb2,0x4944,0xc9cd,0x3c51 } }, - { { 0x3ff0,0x0000,0x0000,0x0000 } } -}; -#define MAXGAM 171.624376956302725 -#endif - -/* Stirling's formula for the gamma function */ -#if UNK -static const uD STIR[5] = { - { { 7.87311395793093628397E-4 } }, - { { -2.29549961613378126380E-4 } }, - { { -2.68132617805781232825E-3 } }, - { { 3.47222221605458667310E-3 } }, - { { 8.33333333333482257126E-2 } } -}; -#define MAXSTIR 143.01608 -static const double SQTPI = 2.50662827463100050242E0; -#endif -#if IBMPC -static const uD STIR[5] = { - { { 0x7293,0x592d,0xcc72,0x3f49 } }, - { { 0x1d7c,0x27e6,0x166b,0xbf2e } }, - { { 0x4fd7,0x07d4,0xf726,0xbf65 } }, - { { 0xc5fd,0x1b98,0x71c7,0x3f6c } }, - { { 0x5986,0x5555,0x5555,0x3fb5 } } -}; -#define MAXSTIR 143.01608 - -static const union -{ - unsigned short s[4]; - double d; -} sqt = {{0x2706,0x1ff6,0x0d93,0x4004}}; -#define SQTPI (sqt.d) -#endif -#if MIEEE -static const uD STIR[5] = { - { { 0x3f49,0xcc72,0x592d,0x7293 } }, - { { 0xbf2e,0x166b,0x27e6,0x1d7c } }, - { { 0xbf65,0xf726,0x07d4,0x4fd7 } }, - { { 0x3f6c,0x71c7,0x1b98,0xc5fd } }, - { { 0x3fb5,0x5555,0x5555,0x5986 } } -}; -#define MAXSTIR 143.01608 -static const uD SQT = { - { { 0x4004,0x0d93,0x1ff6,0x2706 } } -}; -#define SQTPI SQT.d -#endif - -static double stirf (double); - -/* Gamma function computed by Stirling's formula. - * The polynomial STIR is valid for 33 <= x <= 172. - */ -static double stirf(double x) -{ - double y, w, v; - - w = 1.0/x; - w = 1.0 + w * polevl(w, STIR, 4); - y = exp(x); - if (x > MAXSTIR) - { /* Avoid overflow in pow() */ - v = pow(x, 0.5 * x - 0.25); - y = v * (v / y); - } - else - { - y = pow(x, x - 0.5) / y; - } - y = SQTPI * y * w; - return (y); -} - - -double __tgamma_r(double x, int *sgngam); - -double __tgamma_r(double x, int *sgngam) -{ - double p, q, z; - int i; - - *sgngam = 1; -#ifdef NANS - if (isnan(x)) - return (x); -#endif -#ifdef INFINITIES -#ifdef NANS - if (x == INFINITY) - return (x); - if (x == -INFINITY) - return (NAN); -#else - if (!isfinite(x)) - return (x); -#endif -#endif - if (x == 0.0) - return copysign(HUGE_VAL, x); - - q = fabs(x); - - if (q > 33.0) - { - if (x < 0.0) - { - p = floor(q); - if (p == q) - { -gsing: - _SET_ERRNO(EDOM); - mtherr("tgamma", SING); -#ifdef NANS - return (NAN); -#else - return (MAXNUM); -#endif - } - i = p; - if ((i & 1) == 0) - *sgngam = -1; - z = q - p; - if (z > 0.5) - { - p += 1.0; - z = q - p; - } - z = q * sin(PI * z); - if (z == 0.0) - { - _SET_ERRNO(ERANGE); - mtherr("tgamma", OVERFLOW); -#ifdef INFINITIES - return (*sgngam * INFINITY); -#else - return (*sgngam * MAXNUM); -#endif - } - z = fabs(z); - z = PI/(z * stirf(q)); - } - else - { - z = stirf(x); - } - return (*sgngam * z); - } - - z = 1.0; - while (x >= 3.0) - { - x -= 1.0; - z *= x; - } - - while (x < 0.0) - { - if (x > -1.E-9) - goto Small; - z /= x; - x += 1.0; - } - - while (x < 2.0) - { - if (x < 1.e-9) - goto Small; - z /= x; - x += 1.0; - } - - if (x == 2.0) - return (z); - - x -= 2.0; - p = polevl( x, P, 6 ); - q = polevl( x, Q, 7 ); - return (z * p / q); - -Small: - if (x == 0.0) - { - goto gsing; - } - else - return (z/((1.0 + 0.5772156649015329 * x) * x)); -} - -/* This is the C99 version */ -double tgamma(double x) -{ - int local_sgngam = 0; - return (__tgamma_r(x, &local_sgngam)); -} - diff --git a/lib/libc/mingw/math/tgammaf.c b/lib/libc/mingw/math/tgammaf.c deleted file mode 100644 index 742d146418..0000000000 --- a/lib/libc/mingw/math/tgammaf.c +++ /dev/null @@ -1,196 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include "cephes_mconf.h" - -/* define MAXGAM 34.84425627277176174 */ - -/* Stirling's formula for the gamma function - * gamma(x) = sqrt(2 pi) x^(x-.5) exp(-x) ( 1 + 1/x P(1/x) ) - * .028 < 1/x < .1 - * relative error < 1.9e-11 - */ -static const float STIR[] = { - -2.705194986674176E-003, - 3.473255786154910E-003, - 8.333331788340907E-002, -}; -static const float MAXSTIR = 26.77; -static const float SQTPIF = 2.50662827463100050242; /* sqrt( 2 pi ) */ - -static float stirf(float); - -/* Gamma function computed by Stirling's formula, - * sqrt(2 pi) x^(x-.5) exp(-x) (1 + 1/x P(1/x)) - * The polynomial STIR is valid for 33 <= x <= 172. - */ -static float stirf( float x ) -{ - float y, w, v; - - w = 1.0/x; - w = 1.0 + w * polevlf(w, STIR, 2); - y = expf(-x); - if (x > MAXSTIR) - { /* Avoid overflow in pow() */ - v = powf(x, 0.5 * x - 0.25); - y *= v; - y *= v; - } - else - { - y = powf(x, x - 0.5) * y; - } - y = SQTPIF * y * w; - return (y); -} - - -/* gamma(x+2), 0 < x < 1 */ -static const float P[] = { - 1.536830450601906E-003, - 5.397581592950993E-003, - 4.130370201859976E-003, - 7.232307985516519E-002, - 8.203960091619193E-002, - 4.117857447645796E-001, - 4.227867745131584E-001, - 9.999999822945073E-001, -}; - -float __tgammaf_r( float x, int* sgngamf); - -float __tgammaf_r( float x, int* sgngamf) -{ - float p, q, z, nz; - int i, direction, negative; - -#ifdef NANS - if (isnan(x)) - return (x); -#endif -#ifdef INFINITIES -#ifdef NANS - if (x == INFINITYF) - return (x); - if (x == -INFINITYF) - return (NANF); -#else - if (!isfinite(x)) - return (x); -#endif -#endif - if (x == 0.0) - return copysignf(HUGE_VALF, x); - - *sgngamf = 1; - negative = 0; - nz = 0.0; - if (x < 0.0) - { - negative = 1; - q = -x; - p = floorf(q); - if (p == q) - { -gsing: - _SET_ERRNO(EDOM); - mtherr("tgammaf", SING); -#ifdef NANS - return (NAN); -#else - return (MAXNUMF); -#endif - } - i = p; - if ((i & 1) == 0) - *sgngamf = -1; - nz = q - p; - if (nz > 0.5) - { - p += 1.0; - nz = q - p; - } - nz = q * sinf(PIF * nz); - if (nz == 0.0) - { - _SET_ERRNO(ERANGE); - mtherr("tgamma", OVERFLOW); -#ifdef INFINITIES - return(*sgngamf * INFINITYF); -#else - return(*sgngamf * MAXNUMF); -#endif - } - if (nz < 0) - nz = -nz; - x = q; - } - if (x >= 10.0) - { - z = stirf(x); - } - if (x < 2.0) - direction = 1; - else - direction = 0; - z = 1.0; - while (x >= 3.0) - { - x -= 1.0; - z *= x; - } - /* - while (x < 0.0) - { - if (x > -1.E-4) - goto Small; - z *=x; - x += 1.0; - } - */ - while (x < 2.0) - { - if (x < 1.e-4) - goto Small; - z *=x; - x += 1.0; - } - - if (direction) - z = 1.0/z; - - if (x == 2.0) - return (z); - - x -= 2.0; - p = z * polevlf(x, P, 7); - -gdone: - if (negative) - { - p = *sgngamf * PIF/(nz * p ); - } - return (p); - -Small: - if (x == 0.0) - { - goto gsing; - } - else - { - p = z / ((1.0 + 0.5772156649015329 * x) * x); - goto gdone; - } -} - -/* This is the C99 version */ -float tgammaf(float x) -{ - int local_sgngamf = 0; - return (__tgammaf_r(x, &local_sgngamf)); -} - diff --git a/lib/libc/mingw/math/x86/acosh.c b/lib/libc/mingw/math/x86/acosh.c deleted file mode 100644 index ef7007f9d2..0000000000 --- a/lib/libc/mingw/math/x86/acosh.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_DOUBLE 1 -#include "acosh.def.h" diff --git a/lib/libc/mingw/math/x86/acoshf.c b/lib/libc/mingw/math/x86/acoshf.c deleted file mode 100644 index a5a78eb43b..0000000000 --- a/lib/libc/mingw/math/x86/acoshf.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_FLOAT 1 -#include "acosh.def.h" diff --git a/lib/libc/mingw/math/x86/asinh.c b/lib/libc/mingw/math/x86/asinh.c deleted file mode 100644 index 002aedee8c..0000000000 --- a/lib/libc/mingw/math/x86/asinh.c +++ /dev/null @@ -1,74 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include -#include "fastmath.h" - - /* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */ -double asinh(double x) -{ - double z; - if (!isfinite (x)) - return x; - z = fabs (x); - - /* Avoid setting FPU underflow exception flag in x * x. */ -#if 0 - if ( z < 0x1p-32) - return x; -#endif - - /* NB the previous formula - z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0)); - was defective in two ways: - 1: It ommitted required brackets: - z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0))); - ^ ^ - so would still overflow for large z. - 2: Even with the brackets, it still degraded quickly for large z - (where z*z+1 == z*z). - e.g. asinh (sinh 356.0)) gave 355.30685281944005 - */ - - const double asinhCutover = pow(2,DBL_MAX_EXP/2); // 1.3407807929943e+154 - - if (z < asinhCutover) - /* After excluding large values, the rearranged formula gives better results - the original formula log(z + sqrt(z * z + 1.0)) for very small z. - e.g. rearranged asinh(sinh 2e-301)) = 2e-301 - original asinh(sinh 2e-301)) = 0. - asinh(z) = log (z + sqrt (z * z + 1.0)) - = log1p (z + sqrt (z * z + 1.0) - 1.0) - = log1p (z + (sqrt (z * z + 1.0) - 1.0) - * (sqrt (z * z + 1.0) + 1.0) - / (sqrt (z * z + 1.0) + 1.0)) - = log1p (z + ((z * z + 1.0) - 1.0) - / (sqrt (z * z + 1.0) + 1.0)) - = log1p (z + z * z / (sqrt (z * z + 1.0) + 1.0)) - */ - z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0))); - else - /* above this, z*z+1 == z*z, so we can simplify - (and avoid z*z being infinity). - asinh(z) = log (z + sqrt (z * z + 1.0)) - = log (z + sqrt (z * z )) - = log (2 * z) - = log 2 + log z - Choosing asinhCutover is a little tricky. - We'd like something that's based on the nature of - the numeric type (DBL_MAX_EXP, etc). - If c = asinhCutover, then we need: - (1) c*c == c*c + 1 - (2) log (2*c) = log 2 + log c. - For float: - 9.490626562425156e7 is the smallest value that - achieves (1), but it fails (2). (It only just fails, - but enough to make the function erroneously non-monotonic). - */ - z = __fast_log(2) + __fast_log(z); - return copysign(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. -} diff --git a/lib/libc/mingw/math/x86/asinhf.c b/lib/libc/mingw/math/x86/asinhf.c deleted file mode 100644 index c3d8850547..0000000000 --- a/lib/libc/mingw/math/x86/asinhf.c +++ /dev/null @@ -1,34 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include -#include "fastmath.h" - - /* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */ -float asinhf(float x) -{ - float z; - if (!isfinite (x)) - return x; - z = fabsf (x); - - /* Avoid setting FPU underflow exception flag in x * x. */ -#if 0 - if ( z < 0x1p-32) - return x; -#endif - - /* See commentary in asinh */ - const float asinhCutover = pow(2,FLT_MAX_EXP/2); - - if (z < asinhCutover) - z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0))); - //z = __fast_log(z + __fast_sqrt(z * z + 1.0)); - else - z = __fast_log(2) + __fast_log(z); - return copysignf(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. -} diff --git a/lib/libc/mingw/math/x86/atan2.c b/lib/libc/mingw/math/x86/atan2.c deleted file mode 100644 index 1d8a099787..0000000000 --- a/lib/libc/mingw/math/x86/atan2.c +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -double -atan2 (double y, double x) -{ - double res = 0.0; - asm volatile ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)"); - return res; -} diff --git a/lib/libc/mingw/math/x86/atanh.c b/lib/libc/mingw/math/x86/atanh.c deleted file mode 100644 index b3aa76fe91..0000000000 --- a/lib/libc/mingw/math/x86/atanh.c +++ /dev/null @@ -1,36 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include "fastmath.h" - -/* atanh (x) = 0.5 * log ((1.0 + x)/(1.0 - x)) */ - -double atanh(double x) -{ - double z; - if (isnan (x)) - return x; - z = fabs (x); - if (z == 1.0) - { - errno = ERANGE; - return (x > 0 ? INFINITY : -INFINITY); - } - if (z > 1.0) - { - errno = EDOM; - return nan(""); - } - /* Rearrange formula to avoid precision loss for small x. - - atanh(x) = 0.5 * log ((1.0 + x)/(1.0 - x)) - = 0.5 * log1p ((1.0 + x)/(1.0 - x) - 1.0) - = 0.5 * log1p ((1.0 + x - 1.0 + x) /(1.0 - x)) - = 0.5 * log1p ((2.0 * x ) / (1.0 - x)) */ - z = 0.5 * __fast_log1p ((z + z) / (1.0 - z)); - return copysign(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. -} diff --git a/lib/libc/mingw/math/x86/atanhf.c b/lib/libc/mingw/math/x86/atanhf.c deleted file mode 100644 index 9adc6902de..0000000000 --- a/lib/libc/mingw/math/x86/atanhf.c +++ /dev/null @@ -1,35 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include "fastmath.h" - -/* atanh (x) = 0.5 * log ((1.0 + x)/(1.0 - x)) */ -float atanhf (float x) -{ - float z; - if (isnan (x)) - return x; - z = fabsf (x); - if (z == 1.0) - { - errno = ERANGE; - return (x > 0 ? INFINITY : -INFINITY); - } - if ( z > 1.0) - { - errno = EDOM; - return nanf(""); - } - /* Rearrange formula to avoid precision loss for small x. - - atanh(x) = 0.5 * log ((1.0 + x)/(1.0 - x)) - = 0.5 * log1p ((1.0 + x)/(1.0 - x) - 1.0) - = 0.5 * log1p ((1.0 + x - 1.0 + x) /(1.0 - x)) - = 0.5 * log1p ((2.0 * x ) / (1.0 - x)) */ - z = 0.5 * __fast_log1p ((z + z) / (1.0 - z)); - return copysignf(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. -} diff --git a/lib/libc/mingw/math/x86/ceil.S b/lib/libc/mingw/math/x86/ceil.S deleted file mode 100644 index c20343aa45..0000000000 --- a/lib/libc/mingw/math/x86/ceil.S +++ /dev/null @@ -1,115 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "ceil.S" - .text - .align 4 - .globl __MINGW_USYMBOL(ceil) - .def __MINGW_USYMBOL(ceil); .scl 2; .type 32; .endef -#ifdef __x86_64__ - .seh_proc __MINGW_USYMBOL(ceil) -#endif - -__MINGW_USYMBOL(ceil): -#if defined(_AMD64_) || defined(__x86_64__) - .seh_endprologue - movd %xmm0, %rax - movq %rax, %rcx - sarq $52, %rcx - andl $2047, %ecx - subl $1023, %ecx - cmpl $51, %ecx - jg .is_intnaninf - /* Is x zero? */ - testq %rax, %rax - je .ret_org - /* Is x signed? */ - testl %ecx, %ecx - js .signed_val - /* Is x integral? */ - movabsq $4503599627370495, %rdx - sarq %cl, %rdx - testq %rax, %rdx - je .ret_org - addsd .huge(%rip), %xmm0 - ucomisd .zero(%rip), %xmm0 - jbe .doret - testq %rax, %rax - jle .l1 - /* inexact ... */ - movabsq $4503599627370496, %r8 - shrq %cl, %r8 - addq %r8, %rax -.l1: - notq %rdx - andq %rdx, %rax -.doret: - movd %rax, %xmm0 - ret - .p2align 4,,10 -.signed_val: - addsd .huge(%rip), %xmm0 - ucomisd .zero(%rip), %xmm0 - jbe .doret2 - testq %rax, %rax - movabsq $4607182418800017408, %rdx - movabsq $-9223372036854775808, %rax - cmovns %rdx, %rax - .p2align 4,,10 -.doret2: - movd %rax, %xmm0 - ret - - .p2align 4,,10 -.is_intnaninf: - /* Is Nan or Inf? */ - cmpl $1024, %ecx - je .ret_naninf - .p2align 4,,10 -.ret_org: - /* return x. */ - rep - ret - .p2align 4,,10 -.ret_naninf: - /* return x + x; */ - addsd %xmm0, %xmm0 - ret - .seh_endproc - -/* local data. */ - .section .rdata,"dr" - .align 8 -.huge: - .long -2013235812 - .long 2117592124 - .align 8 -.zero: - .long 0 - .long 0 -#elif defined(_X86_) || defined(__i386__) - fldl 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/lib/libc/mingw/math/x86/cos.c b/lib/libc/mingw/math/x86/cos.c deleted file mode 100644 index eea812b760..0000000000 --- a/lib/libc/mingw/math/x86/cos.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_DOUBLE 1 -#include "cos.def.h" diff --git a/lib/libc/mingw/math/x86/exp.c b/lib/libc/mingw/math/x86/exp.c deleted file mode 100644 index 5df131af16..0000000000 --- a/lib/libc/mingw/math/x86/exp.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_DOUBLE 1 -#include "exp.def.h" diff --git a/lib/libc/mingw/math/x86/exp2.S b/lib/libc/mingw/math/x86/exp2.S deleted file mode 100644 index 37d4a2b898..0000000000 --- a/lib/libc/mingw/math/x86/exp2.S +++ /dev/null @@ -1,94 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "exp2.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif -.globl __MINGW_USYMBOL(exp2) - .def __MINGW_USYMBOL(exp2); .scl 2; .type 32; .endef -__MINGW_USYMBOL(exp2): -#ifdef __x86_64__ - subq $24, %rsp - movsd %xmm0,(%rsp) - fldl (%rsp) - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - fld %st - subq $8, %rsp /* int(x) */ - fnstcw 4(%rsp) - movzwl 4(%rsp), %eax - orb $12, %ah - movw %ax, (%rsp) - fldcw (%rsp) - frndint - fldcw 4(%rsp) - addq $8, %rsp - fsubr %st,%st(1) /* fract(x) */ - fxch - f2xm1 /* 2^(fract(x)) - 1 */ - fld1 - faddp /* 2^(fract(x)) */ - fscale /* e^x */ - fstp %st(1) - fstpl (%rsp) - movsd (%rsp),%xmm0 - addq $24, %rsp - ret - -1: testl $0x200, %eax /* Test sign. */ - jz 2f /* If positive, jump. */ - fstp %st - fldz /* Set result to 0. */ -2: fstpl (%rsp) - movsd (%rsp),%xmm0 - addq $24,%rsp - ret -#else - fldl 4(%esp) -/* I added the following ugly construct because exp(+-Inf) resulted - in NaN. The ugliness results from the bright minds at Intel. - For the i686 the code can be written better. - -- drepper@cygnus.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - fld %st - subl $8, %esp /* int(x) */ - fnstcw 4(%esp) - movzwl 4(%esp), %eax - orb $12, %ah - movw %ax, (%esp) - fldcw (%esp) - frndint - fldcw 4(%esp) - addl $8, %esp - fsubr %st,%st(1) /* fract(x) */ - fxch - f2xm1 /* 2^(fract(x)) - 1 */ - fld1 - faddp /* 2^(fract(x)) */ - fscale /* e^x */ - fstp %st(1) - ret - -1: testl $0x200, %eax /* Test sign. */ - jz 2f /* If positive, jump. */ - fstp %st - fldz /* Set result to 0. */ -2: ret -#endif diff --git a/lib/libc/mingw/math/x86/exp2f.S b/lib/libc/mingw/math/x86/exp2f.S deleted file mode 100644 index fa9f19c553..0000000000 --- a/lib/libc/mingw/math/x86/exp2f.S +++ /dev/null @@ -1,94 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "exp2f.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif -.globl __MINGW_USYMBOL(exp2f) - .def __MINGW_USYMBOL(exp2f); .scl 2; .type 32; .endef -__MINGW_USYMBOL(exp2f): -#ifdef __x86_64__ - subq $24, %rsp - movss %xmm0,(%rsp) - flds (%rsp) - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - fld %st - subq $8, %rsp /* int(x) */ - fnstcw 4(%rsp) - movzwl 4(%rsp), %eax - orb $12, %ah - movw %ax, (%rsp) - fldcw (%rsp) - frndint - fldcw 4(%rsp) - addq $8, %rsp - fsubr %st,%st(1) /* fract(x) */ - fxch - f2xm1 /* 2^(fract(x)) - 1 */ - fld1 - faddp /* 2^(fract(x)) */ - fscale /* e^x */ - fstp %st(1) - fstps (%rsp) - movss (%rsp),%xmm0 - addq $24, %rsp - ret - -1: testl $0x200, %eax /* Test sign. */ - jz 2f /* If positive, jump. */ - fstp %st - fldz /* Set result to 0. */ -2: fstps (%rsp) - movss (%rsp),%xmm0 - addq $24, %rsp - ret -#else - flds 4(%esp) -/* I added the following ugly construct because exp(+-Inf) resulted - in NaN. The ugliness results from the bright minds at Intel. - For the i686 the code can be written better. - -- drepper@cygnus.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - fld %st - subl $8, %esp /* int(x) */ - fnstcw 4(%esp) - movzwl 4(%esp), %eax - orb $12, %ah - movw %ax, (%esp) - fldcw (%esp) - frndint - fldcw 4(%esp) - addl $8, %esp - fsubr %st,%st(1) /* fract(x) */ - fxch - f2xm1 /* 2^(fract(x)) - 1 */ - fld1 - faddp /* 2^(fract(x)) */ - fscale /* e^x */ - fstp %st(1) - ret - -1: testl $0x200, %eax /* Test sign. */ - jz 2f /* If positive, jump. */ - fstp %st - fldz /* Set result to 0. */ -2: ret -#endif diff --git a/lib/libc/mingw/math/x86/expm1.c b/lib/libc/mingw/math/x86/expm1.c deleted file mode 100644 index 65fd64bc5f..0000000000 --- a/lib/libc/mingw/math/x86/expm1.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_DOUBLE 1 -#include "expm1.def.h" diff --git a/lib/libc/mingw/math/x86/expm1f.c b/lib/libc/mingw/math/x86/expm1f.c deleted file mode 100644 index ab80717eba..0000000000 --- a/lib/libc/mingw/math/x86/expm1f.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_FLOAT 1 -#include "expm1.def.h" diff --git a/lib/libc/mingw/math/x86/floor.S b/lib/libc/mingw/math/x86/floor.S deleted file mode 100644 index 6e436a8737..0000000000 --- a/lib/libc/mingw/math/x86/floor.S +++ /dev/null @@ -1,167 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "floor.S" - .text - .p2align 4,,15 - .globl __MINGW_USYMBOL(floor) - .def __MINGW_USYMBOL(floor); .scl 2; .type 32; .endef -#ifdef __x86_64__ - .seh_proc __MINGW_USYMBOL(floor) -#endif -__MINGW_USYMBOL(floor): -#if defined(_AMD64_) || defined(__x86_64__) - pushq %rbx - .seh_pushreg %rbx - subq $16, %rsp - .seh_stackalloc 16 - .seh_endprologue - movsd %xmm0, 8(%rsp) - movq 8(%rsp), %r9 - movq %r9, %rdx - movl %r9d, %r10d - shrq $32, %rdx - movl %edx, %eax - movl %edx, %r11d - sarl $20, %eax - andl $2047, %eax - leal -1023(%rax), %r8d - cmpl $51, %r8d - jle .L2 - cmpl $1024, %r8d - je .L27 -.L3: - addq $16, %rsp - popq %rbx - ret - .p2align 4,,10 -.L2: - cmpl $19, %r8d - jg .L4 - testl %r8d, %r8d - js .L28 - movl $1048575, %eax - movl %r8d, %ecx - shrl %cl, %eax - testl %r9d, %r9d - jne .L8 - testl %edx, %eax - je .L3 -.L8: - movsd .hugeval(%rip), %xmm1 - xorpd %xmm2, %xmm2 - addsd %xmm0, %xmm1 - ucomisd %xmm1, %xmm2 - jae .L3 - xorl %r9d, %r9d - testl %edx, %edx - jns .L9 - movl $1048576, %r9d - movl %r8d, %ecx - sarl %cl, %r9d -.L9: - addl %r9d, %edx - notl %eax - andl %edx, %eax - salq $32, %rax - movq %rax, 8(%rsp) - movsd 8(%rsp), %xmm0 - addq $16, %rsp - popq %rbx - ret - .p2align 4,,10 -.L4: - leal -1043(%rax), %ecx - movl $-1, %ebx - shrl %cl, %ebx - testl %r9d, %ebx - je .L3 - movsd .hugeval(%rip), %xmm1 - xorpd %xmm2, %xmm2 - addsd %xmm0, %xmm1 - ucomisd %xmm1, %xmm2 - jae .L3 - testl %edx, %edx - js .L29 -.L11: - notl %ebx - salq $32, %r11 - andl %ebx, %r10d - orq %r10, %r11 - movq %r11, 8(%rsp) - movsd 8(%rsp), %xmm0 - addq $16, %rsp - popq %rbx - ret - .p2align 4,,10 -.L27: - addsd %xmm0, %xmm0 - addq $16, %rsp - popq %rbx - ret - .p2align 4,,10 -.L28: - movsd .hugeval(%rip), %xmm2 - xorpd %xmm1, %xmm1 - addsd %xmm0, %xmm2 - ucomisd %xmm1, %xmm2 - jbe .L3 - testl %edx, %edx - js .L7 - movapd %xmm1, %xmm0 - jmp .L3 - .p2align 4,,10 -.L7: - andl $2147483647, %edx - orl %r9d, %edx - je .L3 - movabsq $-4616189618054758400, %rax - movq %rax, 8(%rsp) - movsd 8(%rsp), %xmm0 - jmp .L3 - .p2align 4,,10 -.L29: - cmpl $20, %r8d - je .L25 - movl $1075, %ecx - movl $1, %r10d - subl %eax, %ecx - sall %cl, %r10d - addl %r9d, %r10d - jae .L11 -.L25: - leal 1(%rdx), %r11d - jmp .L11 - .seh_endproc - - .section .rdata,"dr" - .align 8 -.hugeval: - .long -2013235812 - .long 2117592124 -#elif defined(_X86_) || defined(__i386__) - fldl 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/lib/libc/mingw/math/x86/fmod.c b/lib/libc/mingw/math/x86/fmod.c deleted file mode 100644 index 5764db0354..0000000000 --- a/lib/libc/mingw/math/x86/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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -double fmod (double x, double y); - -double -fmod (double x, double y) -{ - double res = 0.0; - - asm volatile ( - "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)"); - return res; -} diff --git a/lib/libc/mingw/math/x86/ilogb.S b/lib/libc/mingw/math/x86/ilogb.S deleted file mode 100644 index b3bf1d2167..0000000000 --- a/lib/libc/mingw/math/x86/ilogb.S +++ /dev/null @@ -1,137 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "ilogb.S" - .text - .p2align 4,,15 -.globl __MINGW_USYMBOL(ilogb) - .def __MINGW_USYMBOL(ilogb); .scl 2; .type 32; .endef -#ifdef __x86_64__ - .seh_proc __MINGW_USYMBOL(ilogb) -#endif -__MINGW_USYMBOL(ilogb): -#ifdef __x86_64__ -/* Generated code by: -int -ilogb (double x) -{ - __mingw_dbl_type_t hlp; - int hx, lx, ix; - - hlp.x = x; - hx = hpl.lh.high & 0x7fffffff; - if (hx < 0x100000) - { - lx = hlp.lh.low; - if ((hx | lx) == 0) - return 0x80000000; // ilogb(0) = FP_ILOGB0 - // subnormal x - if (hx == 0) - { - for (ix = -1043; lx > 0; lx <<= 1) - ix -=1; - } - else - { - for (ix = -1022,hx <<= 11; hx > 0; hx <<= 1) - ix -=1; - } - return ix; - } - if (hx < 0x7ff00000) - return (hx >> 20) - 1023; - lx = hlp.lh.low; - return 0x7fffffff; -} */ - subq $24, %rsp - .seh_stackalloc 24 - .seh_endprologue - movsd %xmm0, 8(%rsp) - movq 8(%rsp), %rdx - shrq $32, %rdx - andl $2147483647, %edx - cmpl $1048575, %edx - jg .L2 - movq 8(%rsp), %rcx - movl %edx, %eax - orl %ecx, %eax - je .L8 - testl %edx, %edx - jne .L4 - testl %ecx, %ecx - movl %ecx, %edx - movl $-1043, %eax - jle .L3 - .p2align 4,,10 -.L5: - addl %edx, %edx - subl $1, %eax - testl %edx, %edx - jg .L5 - addq $24, %rsp - ret - .p2align 4,,10 -.L2: - cmpl $2146435071, %edx - jle .L13 - movl $2147483647, %eax -.L3: - addq $24, %rsp - ret - .p2align 4,,10 -.L4: - sall $11, %edx - movl $-1022, %eax - testl %edx, %edx - jle .L3 - .p2align 4,,10 -.L6: - addl %edx, %edx - subl $1, %eax - testl %edx, %edx - jg .L6 - addq $24, %rsp - ret - .p2align 4,,10 -.L13: - sarl $20, %edx - leal -1023(%rdx), %eax - addq $24, %rsp - ret -.L8: - movl $-2147483648, %eax - jmp .L3 - .seh_endproc -#else - - fldl 4(%esp) -/* I added the following ugly construct because ilogb(+-Inf) is - required to return INT_MAX in ISO C99. - -- jakub@redhat.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - cmpb $0x01, %dh - je 1f /* Is NaN, jump. */ - - fxtract - pushl %eax - fstp %st - - fistpl (%esp) - fwait - popl %eax - - ret - -1: fstp %st - movl $0x7fffffff, %eax - ret -#endif diff --git a/lib/libc/mingw/math/x86/ilogbf.S b/lib/libc/mingw/math/x86/ilogbf.S deleted file mode 100644 index 4f860dd691..0000000000 --- a/lib/libc/mingw/math/x86/ilogbf.S +++ /dev/null @@ -1,106 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "ilogbf.S" - .text - .p2align 4,,15 -.globl __MINGW_USYMBOL(ilogbf) - .def __MINGW_USYMBOL(ilogbf); .scl 2; .type 32; .endef -#ifdef __x86_64__ - .seh_proc __MINGW_USYMBOL(ilogbf) -#endif -__MINGW_USYMBOL(ilogbf): -#ifdef __x86_64__ -/* generated code for: -int -ilogbf (float x) -{ - __mingw_flt_type_t hlp; - int hx, ix; - - hlp.x = x; - hx = (int) hlp.val & 0x7fffffff; - if (hx < 0x800000) - { - if (hx == 0) - return 0x80000000; // ilogb(0) = FP_ILOGB0 - for (ix = -126, hx <<= 8; hx > 0; hx <<= 1) - ix -= 1; - return ix; - } - if (hx < 0x7f800000) - return (hx >> 23) - 127; - return 0x7fffffff; -} */ - subq $24, %rsp - .seh_stackalloc 24 - .seh_endprologue - movss %xmm0, 12(%rsp) - movl 12(%rsp), %edx - andl $2147483647, %edx - cmpl $8388607, %edx - jg .L2 - testl %edx, %edx - je .L6 - sall $8, %edx - movl $-126, %eax - testl %edx, %edx - jle .L3 - .p2align 4,,10 -.L4: - addl %edx, %edx - subl $1, %eax - testl %edx, %edx - jg .L4 -.L3: - addq $24, %rsp - ret - .p2align 4,,10 -.L2: - cmpl $2139095039, %edx - jle .L10 - movl $2147483647, %eax - addq $24, %rsp - ret - .p2align 4,,10 -.L10: - sarl $23, %edx - leal -127(%rdx), %eax - addq $24, %rsp - ret -.L6: - movl $-2147483648, %eax - jmp .L3 - .seh_endproc -#else - flds 4(%esp) -/* I added the following ugly construct because ilogb(+-Inf) is - required to return INT_MAX in ISO C99. - -- jakub@redhat.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - cmpb $0x01, %dh - je 1f /* Is Nan, jump. */ - - fxtract - pushl %eax - fstp %st - - fistpl (%esp) - fwait - popl %eax - - ret - -1: fstp %st - movl $0x7fffffff, %eax - ret -#endif diff --git a/lib/libc/mingw/math/x86/log1p.S b/lib/libc/mingw/math/x86/log1p.S deleted file mode 100644 index c1a1d2fa65..0000000000 --- a/lib/libc/mingw/math/x86/log1p.S +++ /dev/null @@ -1,85 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "log1p.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif - /* The fyl2xp1 can only be used for values in - -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2 - 0.29 is a safe value. - */ -limit: .double 0.29 -one: .double 1.0 -/* - * Use the fyl2xp1 function when the argument is in the range -0.29 to 0.29, - * otherwise fyl2x with the needed extra computation. - */ -.globl __MINGW_USYMBOL(log1p) - .def __MINGW_USYMBOL(log1p); .scl 2; .type 32; .endef -__MINGW_USYMBOL(log1p): -#ifdef __x86_64__ - movsd %xmm0,-16(%rsp) - fldln2 - fldl -16(%rsp) - fxam - fnstsw - fld %st - sahf - jc 3f // in case x is NaN or ±Inf - -4: fabs - fcompl limit(%rip) - fnstsw - sahf - jc 2f - faddl one(%rip) - fyl2x - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret - -2: fyl2xp1 - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret -#else - fldln2 - fldl 4(%esp) - fxam - fnstsw - fld %st - sahf - jc 3f // in case x is NaN or ±Inf - -4: fabs - fcompl limit - fnstsw - sahf - jc 2f - faddl one - fyl2x - ret - -2: fyl2xp1 - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret -#endif diff --git a/lib/libc/mingw/math/x86/log1pf.S b/lib/libc/mingw/math/x86/log1pf.S deleted file mode 100644 index 259e8a8ec1..0000000000 --- a/lib/libc/mingw/math/x86/log1pf.S +++ /dev/null @@ -1,85 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "log1pf.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif - /* The fyl2xp1 can only be used for values in - -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2 - 0.29 is a safe value. - */ -limit: .float 0.29 -one: .float 1.0 -/* - * Use the fyl2xp1 function when the argument is in the range -0.29 to 0.29, - * otherwise fyl2x with the needed extra computation. - */ -.globl __MINGW_USYMBOL(log1pf) - .def __MINGW_USYMBOL(log1pf); .scl 2; .type 32; .endef -__MINGW_USYMBOL(log1pf): -#ifdef __x86_64__ - movss %xmm0,-12(%rsp) - fldln2 - flds -12(%rsp) - fxam - fnstsw - fld %st - sahf - jc 3f // in case x is NaN or ±Inf - -4: fabs - fcomps limit(%rip) - fnstsw - sahf - jc 2f - fadds one(%rip) - fyl2x - fstps -12(%rsp) - movss -12(%rsp),%xmm0 - ret - -2: fyl2xp1 - fstps -12(%rsp) - movss -12(%rsp),%xmm0 - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - fstps -12(%rsp) - movss -12(%rsp),%xmm0 - ret -#else - fldln2 - flds 4(%esp) - fxam - fnstsw - fld %st - sahf - jc 3f // in case x is NaN or ±Inf - -4: fabs - fcomps limit - fnstsw - sahf - jc 2f - fadds one - fyl2x - ret - -2: fyl2xp1 - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret -#endif diff --git a/lib/libc/mingw/math/x86/log2.S b/lib/libc/mingw/math/x86/log2.S deleted file mode 100644 index 54eecf753b..0000000000 --- a/lib/libc/mingw/math/x86/log2.S +++ /dev/null @@ -1,85 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "log2.S" - .text -#ifdef __x86_64__ - .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 __MINGW_USYMBOL(log2) - .def __MINGW_USYMBOL(log2); .scl 2; .type 32; .endef -__MINGW_USYMBOL(log2): -#ifdef __x86_64__ - movsd %xmm0,-16(%rsp) - fldl one(%rip) - fldl -16(%rsp) // x : 1 - fxam - fnstsw - fld %st // x : x : 1 - sahf - jc 3f // in case x is NaN or ±Inf -4: fsub %st(2), %st // x-1 : x : 1 - fld %st // x-1 : x-1 : x : 1 - fabs // |x-1| : x-1 : x : 1 - fcompl limit(%rip) // x-1 : x : 1 - fnstsw // x-1 : x : 1 - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : 1 - fyl2xp1 // log(x) - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret - -2: fstp %st(0) // x : 1 - fyl2x // log(x) - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret -#else - fldl one - fldl 4(%esp) // x : 1 - fxam - fnstsw - fld %st // x : x : 1 - sahf - jc 3f // in case x is NaN or ±Inf -4: fsub %st(2), %st // x-1 : x : 1 - fld %st // x-1 : x-1 : x : 1 - fabs // |x-1| : x-1 : x : 1 - fcompl limit // x-1 : x : 1 - fnstsw // x-1 : x : 1 - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : 1 - fyl2xp1 // log(x) - ret - -2: fstp %st(0) // x : 1 - fyl2x // log(x) - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret -#endif diff --git a/lib/libc/mingw/math/x86/logb.c b/lib/libc/mingw/math/x86/logb.c deleted file mode 100644 index d522110e2a..0000000000 --- a/lib/libc/mingw/math/x86/logb.c +++ /dev/null @@ -1,40 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 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) -{ -#ifdef __x86_64__ - __mingw_dbl_type_t hlp; - int lx, hx; - - hlp.x = x; - lx = hlp.lh.low; - hx = hlp.lh.high & 0x7fffffff; /* high |x| */ - if ((hx | lx) == 0) - return -1.0 / fabs (x); - if (hx >= 0x7ff00000) - return x * x; - if ((hx >>= 20) == 0) { - unsigned long long mantissa = hlp.val & 0xfffffffffffffULL; - return -1023.0 - (__builtin_clzll(mantissa) - 12); - } - return (double) (hx - 1023); -#else - double res = 0.0; - asm volatile ( - "fxtract\n\t" - "fstp %%st" : "=t" (res) : "0" (x)); - return res; -#endif -} diff --git a/lib/libc/mingw/math/x86/logbf.c b/lib/libc/mingw/math/x86/logbf.c deleted file mode 100644 index 2d62233ed5..0000000000 --- a/lib/libc/mingw/math/x86/logbf.c +++ /dev/null @@ -1,37 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 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) -{ -#ifdef __x86_64__ - int v; - __mingw_flt_type_t hlp; - - hlp.x = x; - v = hlp.val & 0x7fffffff; /* high |x| */ - if (!v) - return (float)-1.0 / fabsf (x); - if (v >= 0x7f800000) - return x * x; - if ((v >>= 23) == 0) - return -127.0 - (__builtin_clzl(hlp.val & 0x7fffff) - 9); - return (float) (v - 127); -#else - float res = 0.0F; - asm volatile ( - "fxtract\n\t" - "fstp %%st" : "=t" (res) : "0" (x)); - return res; -#endif -} diff --git a/lib/libc/mingw/math/x86/nearbyint.S b/lib/libc/mingw/math/x86/nearbyint.S deleted file mode 100644 index a0a85348c7..0000000000 --- a/lib/libc/mingw/math/x86/nearbyint.S +++ /dev/null @@ -1,51 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "nearbyint.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif - .globl __MINGW_USYMBOL(nearbyint) - .def __MINGW_USYMBOL(nearbyint); .scl 2; .type 32; .endef -__MINGW_USYMBOL(nearbyint): -#if defined(_AMD64_) || defined(__x86_64__) - movsd %xmm0,-16(%rsp) - fldl -16(%rsp) - pushq %rax - pushq %rcx - fnstcw (%rsp) - movq (%rsp), %rax - orq $0x20, %rax - movq %rax, 8(%rsp) - fldcw 8(%rsp) - frndint - fclex - fldcw (%rsp) - popq %rcx - popq %rax - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret -#elif defined(_X86_) || defined(__i386__) - fldl 4(%esp) - pushl %eax - pushl %ecx - fnstcw (%esp) - movl (%esp), %eax - orl $0x20, %eax - movl %eax, 4(%esp) - fldcw 4(%esp) - frndint - fclex - fldcw (%esp) - popl %ecx - popl %eax - ret -#endif diff --git a/lib/libc/mingw/math/x86/nearbyintf.S b/lib/libc/mingw/math/x86/nearbyintf.S deleted file mode 100644 index 4be7124aca..0000000000 --- a/lib/libc/mingw/math/x86/nearbyintf.S +++ /dev/null @@ -1,51 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "nearbyintf.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif - .globl __MINGW_USYMBOL(nearbyintf) - .def __MINGW_USYMBOL(nearbyintf); .scl 2; .type 32; .endef -__MINGW_USYMBOL(nearbyintf): -#if defined(_AMD64_) || defined(__x86_64__) - movss %xmm0,-12(%rsp) - flds -12(%rsp) - pushq %rax - pushq %rcx - fnstcw (%rsp) - movq (%rsp), %rax - orq $0x20, %rax - movq %rax, 8(%rsp) - fldcw 8(%rsp) - frndint - fclex - fldcw (%rsp) - popq %rcx - popq %rax - fstps -12(%rsp) - movss -12(%rsp),%xmm0 - ret -#elif defined(_X86_) || defined(__i386__) - flds 4(%esp) - pushl %eax - pushl %ecx - fnstcw (%esp) - movl (%esp), %eax - orl $0x20, %eax - movl %eax, 4(%esp) - fldcw 4(%esp) - frndint - fclex - fldcw (%esp) - popl %ecx - popl %eax - ret -#endif diff --git a/lib/libc/mingw/math/x86/pow.c b/lib/libc/mingw/math/x86/pow.c deleted file mode 100644 index 72a0f6eae7..0000000000 --- a/lib/libc/mingw/math/x86/pow.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_DOUBLE 1 -#include "pow.def.h" diff --git a/lib/libc/mingw/math/x86/remainder.S b/lib/libc/mingw/math/x86/remainder.S deleted file mode 100644 index 5a713f9040..0000000000 --- a/lib/libc/mingw/math/x86/remainder.S +++ /dev/null @@ -1,40 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "remainder.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif -.globl __MINGW_USYMBOL(remainder) - .def __MINGW_USYMBOL(remainder); .scl 2; .type 32; .endef -__MINGW_USYMBOL(remainder): -#ifdef __x86_64__ - movsd %xmm0,-16(%rsp) - movsd %xmm1,-32(%rsp) - fldl -32(%rsp) - fldl -16(%rsp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret -#else - fldl 12(%esp) - fldl 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - ret -#endif diff --git a/lib/libc/mingw/math/x86/remainderf.S b/lib/libc/mingw/math/x86/remainderf.S deleted file mode 100644 index c3a3a3dc53..0000000000 --- a/lib/libc/mingw/math/x86/remainderf.S +++ /dev/null @@ -1,40 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "remainderf.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif -.globl __MINGW_USYMBOL(remainder) - .def __MINGW_USYMBOL(remainderf); .scl 2; .type 32; .endef -__MINGW_USYMBOL(remainderf): -#ifdef __x86_64__ - movss %xmm1,-12(%rsp) - flds -12(%rsp) - movss %xmm0,-12(%rsp) - flds -12(%rsp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - fstps -12(%rsp) - movss -12(%rsp),%xmm0 - ret -#else - flds 8(%esp) - flds 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - ret -#endif diff --git a/lib/libc/mingw/math/x86/remquo.S b/lib/libc/mingw/math/x86/remquo.S deleted file mode 100644 index e90d4926b4..0000000000 --- a/lib/libc/mingw/math/x86/remquo.S +++ /dev/null @@ -1,75 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "remquo.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif -.globl __MINGW_USYMBOL(remquo) -__MINGW_USYMBOL(remquo): -#ifdef __x86_64__ - movsd %xmm1,-16(%rsp) - fldl -16(%rsp) - movsd %xmm0,-16(%rsp) - fldl -16(%rsp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - movl %eax, %ecx - shrl $8, %eax - shrl $12, %ecx - andl $4, %ecx - andl $3, %eax - orl %eax, %ecx - leal (%ecx,%ecx,2),%ecx - movl $0xef2a60, %eax - shrl %cl, %eax - andl $7, %eax - movl -12(%rsp), %edx - movsd %xmm1,-16(%rsp) - xorl -12(%rsp), %edx - testl $0x80000000, %edx - jz 1f - negl %eax -1: movl %eax, (%r8) - - fstpl -16(%rsp) - movsd -16(%rsp),%xmm0 - ret -#else - fldl 4 +8(%esp) - fldl 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - movl %eax, %ecx - shrl $8, %eax - shrl $12, %ecx - andl $4, %ecx - andl $3, %eax - orl %eax, %ecx - leal (%ecx,%ecx,2),%ecx - movl $0xef2a60, %eax - shrl %cl, %eax - andl $7, %eax - movl 4 +8 +8(%esp), %ecx - movl 4 +4(%esp), %edx - xorl 4 +8 +4(%esp), %edx - testl $0x80000000, %edx - jz 1f - negl %eax -1: movl %eax, (%ecx) - - ret -#endif diff --git a/lib/libc/mingw/math/x86/remquof.S b/lib/libc/mingw/math/x86/remquof.S deleted file mode 100644 index b78de9742f..0000000000 --- a/lib/libc/mingw/math/x86/remquof.S +++ /dev/null @@ -1,76 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "remquof.S" - .text -#ifdef __x86_64__ - .align 8 -#else - .align 4 -#endif -.globl __MINGW_USYMBOL(remquof) -__MINGW_USYMBOL(remquof): -#ifdef __x86_64__ - movss %xmm1,-12(%rsp) - flds -12(%rsp) - movss %xmm0,-12(%rsp) - flds -12(%rsp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - movl %eax, %ecx - shrl $8, %eax - shrl $12, %ecx - andl $4, %ecx - andl $3, %eax - orl %eax, %ecx - movl $0xef2a60, %eax - leal (%ecx,%ecx,2),%ecx - shrl %cl, %eax - andl $7, %eax - movss %xmm0,-12(%rsp) - movl -12(%rsp), %edx - movss %xmm1,-12(%rsp) - xorl -12(%rsp), %edx - testl $0x80000000, %edx - jz 1f - negl %eax -1: movl %eax, (%r8) - - fstps -12(%rsp) - movss -12(%rsp),%xmm0 - ret -#else - flds 4 +4(%esp) - flds 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - movl %eax, %ecx - shrl $8, %eax - shrl $12, %ecx - andl $4, %ecx - andl $3, %eax - orl %eax, %ecx - movl $0xef2a60, %eax - leal (%ecx,%ecx,2),%ecx - shrl %cl, %eax - andl $7, %eax - movl 4 +4 +4(%esp), %ecx - movl 4(%esp), %edx - xorl 4 +4(%esp), %edx - testl $0x80000000, %edx - jz 1f - negl %eax -1: movl %eax, (%ecx) - - ret -#endif diff --git a/lib/libc/mingw/math/x86/rint.c b/lib/libc/mingw/math/x86/rint.c deleted file mode 100644 index 55a73d1232..0000000000 --- a/lib/libc/mingw/math/x86/rint.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -double rint (double x) { - double retval = 0.0; - __asm__ __volatile__ ("frndint;" : "=t" (retval) : "0" (x)); - return retval; -} diff --git a/lib/libc/mingw/math/x86/rintf.c b/lib/libc/mingw/math/x86/rintf.c deleted file mode 100644 index f5a6bf2b11..0000000000 --- a/lib/libc/mingw/math/x86/rintf.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -float rintf (float x) { - float retval = 0.0F; - __asm__ __volatile__ ("frndint;": "=t" (retval) : "0" (x)); - return retval; -} diff --git a/lib/libc/mingw/math/x86/sin.c b/lib/libc/mingw/math/x86/sin.c deleted file mode 100644 index b32ed6e5c7..0000000000 --- a/lib/libc/mingw/math/x86/sin.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - This Software is provided under the Zope Public License (ZPL) Version 2.1. - - Copyright (c) 2009, 2010 by the mingw-w64 project - - See the AUTHORS file for the list of contributors to the mingw-w64 project. - - This license has been certified as open source. It has also been designated - as GPL compatible by the Free Software Foundation (FSF). - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions in source code must retain the accompanying copyright - notice, this list of conditions, and the following disclaimer. - 2. Redistributions in binary form must reproduce the accompanying - copyright notice, this list of conditions, and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - 3. Names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission - from the copyright holders. - 4. The right to distribute this software or to use it for any purpose does - not give you the right to use Servicemarks (sm) or Trademarks (tm) of - the copyright holders. Use of them is covered by separate agreement - with the copyright holders. - 5. If any files are modified, you must cause the modified files to carry - prominent notices stating that you changed the files and the date of - any change. - - Disclaimer - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED - 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 HOLDERS 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. -*/ - -#define _NEW_COMPLEX_DOUBLE 1 -#include "sin.def.h" diff --git a/lib/libc/mingw/math/x86/trunc.S b/lib/libc/mingw/math/x86/trunc.S deleted file mode 100644 index 4f1fa2b0d4..0000000000 --- a/lib/libc/mingw/math/x86/trunc.S +++ /dev/null @@ -1,91 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "trunc.S" - .text - .p2align 4,,15 - .globl __MINGW_USYMBOL(trunc) - .def __MINGW_USYMBOL(trunc); .scl 2; .type 32; .endef - -#ifdef __x86_64__ - .seh_proc __MINGW_USYMBOL(trunc) -#endif -__MINGW_USYMBOL(trunc): -#if defined(_AMD64_) || defined(__x86_64__) - subq $24, %rsp - .seh_stackalloc 24 - .seh_endprologue - movsd %xmm0, 8(%rsp) - movq 8(%rsp), %r8 - movq %r8, %rdx - shrq $32, %rdx - movl %edx, %eax - sarl $20, %eax - andl $2047, %eax - leal -1023(%rax), %ecx - cmpl $19, %ecx - jg .l1 - movl %edx, %r8d - andl $-2147483648, %r8d - testl %ecx, %ecx - js .l3 - movl $1048575, %eax - sarl %cl, %eax - notl %eax - andl %edx, %eax - orl %r8d, %eax - salq $32, %rax - movq %rax, 8(%rsp) - movsd 8(%rsp), %xmm0 - addq $24, %rsp - ret - .p2align 4,,10 -.l1: - cmpl $51, %ecx - jle .l2 - /* Is x inf/nan? */ - cmpl $1024, %ecx - jne .noinfnan - addsd %xmm0, %xmm0 -.noinfnan: - addq $24, %rsp - ret - .p2align 4,,10 -.l2: - leal -1043(%rax), %ecx - movl $-1, %r9d - salq $32, %rdx - shrl %cl, %r9d - notl %r9d - andl %r9d, %r8d - orq %r8, %rdx - movq %rdx, 8(%rsp) - movsd 8(%rsp), %xmm0 - addq $24, %rsp - ret - .p2align 4,,10 -.l3: - salq $32, %r8 - movq %r8, 8(%rsp) - movsd 8(%rsp), %xmm0 - addq $24, %rsp - ret - .seh_endproc -#elif defined(_X86_) || defined(__i386__) - fldl 4(%esp) - subl $8, %esp - fstcw (%esp) - /* FE_TOWARDZERO */ - movzwl (%esp), %eax - orb $0xc, %ah - movw %ax, 4(%esp) - fldcw 4(%esp) - frndint - fldcw (%esp) - addl $8, %esp - ret -#endif diff --git a/lib/libc/mingw/math/x86/truncf.S b/lib/libc/mingw/math/x86/truncf.S deleted file mode 100644 index 40a3a6ea90..0000000000 --- a/lib/libc/mingw/math/x86/truncf.S +++ /dev/null @@ -1,71 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include <_mingw_mac.h> - - .file "truncf.S" - .text - .p2align 4,,15 - .globl __MINGW_USYMBOL(truncf) - .def __MINGW_USYMBOL(truncf); .scl 2; .type 32; .endef - -#ifdef __x86_64__ - .seh_proc __MINGW_USYMBOL(truncf) -#endif -__MINGW_USYMBOL(truncf): -#if defined(_AMD64_) || defined(__x86_64__) - subq $24, %rsp - .seh_stackalloc 24 - .seh_endprologue - movd %xmm0, 12(%rsp) - movl 12(%rsp), %edx - movl %edx, %ecx - sarl $23, %ecx - andl $255, %ecx - subl $127, %ecx - cmpl $22, %ecx - jg .l1 - movl %edx, %r8d - andl $-2147483648, %r8d - testl %ecx, %ecx - js .l2 - movl $8388607, %eax - sarl %cl, %eax - notl %eax - andl %edx, %eax - orl %r8d, %eax - movl %eax, 8(%rsp) - movss 8(%rsp), %xmm0 - addq $24, %rsp - ret - .p2align 4,,10 -.l1: - addl $-128, %ecx - jne .noinfnan - addss %xmm0, %xmm0 -.noinfnan: - addq $24, %rsp - ret - .p2align 4,,10 -.l2: - movl %r8d, 8(%rsp) - movss 8(%rsp), %xmm0 - addq $24, %rsp - ret - .seh_endproc -#elif defined(_X86_) || defined(__i386__) - flds 4(%esp) - subl $8, %esp - fstcw (%esp) - /* FE_TOWARDZERO */ - movzwl (%esp), %eax - orb $0xc, %ah - movw %ax, 4(%esp) - fldcw 4(%esp) - frndint - fldcw (%esp) - addl $8, %esp - ret -#endif diff --git a/lib/libc/mingw/misc/___mb_cur_max_func.c b/lib/libc/mingw/misc/___mb_cur_max_func.c deleted file mode 100644 index 61dcdb7a66..0000000000 --- a/lib/libc/mingw/misc/___mb_cur_max_func.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include <_mingw.h> - -extern int* __MINGW_IMP_SYMBOL(__mb_cur_max); - -int __cdecl ___mb_cur_max_func(void); -int __cdecl ___mb_cur_max_func(void) -{ - return *__MINGW_IMP_SYMBOL(__mb_cur_max); -} - -typedef int __cdecl (*_f___mb_cur_max_func)(void); -_f___mb_cur_max_func __MINGW_IMP_SYMBOL(___mb_cur_max_func) = ___mb_cur_max_func; diff --git a/lib/libc/mingw/misc/__p___argv.c b/lib/libc/mingw/misc/__p___argv.c deleted file mode 100644 index 8e1f8ed9ac..0000000000 --- a/lib/libc/mingw/misc/__p___argv.c +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -char ***__cdecl __p___argv(void) -{ - return __MINGW_IMP_SYMBOL(__argv); -} - -typedef char ***__cdecl (*_f__p___argv)(void); -_f__p___argv __MINGW_IMP_SYMBOL(__p___argv) = __p___argv; diff --git a/lib/libc/mingw/misc/__p__acmdln.c b/lib/libc/mingw/misc/__p__acmdln.c deleted file mode 100644 index 14e3868e5a..0000000000 --- a/lib/libc/mingw/misc/__p__acmdln.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include <_mingw.h> - -extern char ** __MINGW_IMP_SYMBOL(_acmdln); - -char **__cdecl __p__acmdln(void); -char **__cdecl __p__acmdln(void) -{ - return __MINGW_IMP_SYMBOL(_acmdln); -} - -typedef char **__cdecl (*_f__p__acmdln)(void); -_f__p__acmdln __MINGW_IMP_SYMBOL(__p__acmdln) = __p__acmdln; diff --git a/lib/libc/mingw/misc/__p__commode.c b/lib/libc/mingw/misc/__p__commode.c deleted file mode 100644 index bd79f5af7d..0000000000 --- a/lib/libc/mingw/misc/__p__commode.c +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include <_mingw.h> - -extern int * __MINGW_IMP_SYMBOL(_commode); - -int *__cdecl __p__commode(void); -int *__cdecl __p__commode(void) -{ - return __MINGW_IMP_SYMBOL(_commode); -} - -typeof(__p__commode) *__MINGW_IMP_SYMBOL(__p__commode) = __p__commode; diff --git a/lib/libc/mingw/misc/__p__fmode.c b/lib/libc/mingw/misc/__p__fmode.c deleted file mode 100644 index f788a6fcc9..0000000000 --- a/lib/libc/mingw/misc/__p__fmode.c +++ /dev/null @@ -1,17 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include <_mingw.h> - -extern int * __MINGW_IMP_SYMBOL(_fmode); - -int *__cdecl __p__fmode(void); -int *__cdecl __p__fmode(void) -{ - return __MINGW_IMP_SYMBOL(_fmode); -} - -typeof(__p__fmode) *__MINGW_IMP_SYMBOL(__p__fmode) = __p__fmode; diff --git a/lib/libc/mingw/misc/__p__wcmdln.c b/lib/libc/mingw/misc/__p__wcmdln.c deleted file mode 100644 index f34390468d..0000000000 --- a/lib/libc/mingw/misc/__p__wcmdln.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -extern wchar_t ** __MINGW_IMP_SYMBOL(_wcmdln); - -wchar_t **__cdecl __p__wcmdln(void); -wchar_t **__cdecl __p__wcmdln(void) -{ - return __MINGW_IMP_SYMBOL(_wcmdln); -} - -typedef wchar_t **__cdecl (*_f__p__wcmdln)(void); -_f__p__wcmdln __MINGW_IMP_SYMBOL(__p__wcmdln) = __p__wcmdln; diff --git a/lib/libc/mingw/misc/_configthreadlocale.c b/lib/libc/mingw/misc/_configthreadlocale.c deleted file mode 100644 index cbc60139bf..0000000000 --- a/lib/libc/mingw/misc/_configthreadlocale.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -int __cdecl _configthreadlocale(int flag) -{ - /* _ENABLE_PER_THREAD_LOCALE can't work on msvcrt.dll. */ - return flag == _ENABLE_PER_THREAD_LOCALE ? -1 : _DISABLE_PER_THREAD_LOCALE; -} - -void *__MINGW_IMP_SYMBOL(_configthreadlocale) = _configthreadlocale; - diff --git a/lib/libc/mingw/misc/_create_locale.c b/lib/libc/mingw/misc/_create_locale.c deleted file mode 100644 index 00947b3ac1..0000000000 --- a/lib/libc/mingw/misc/_create_locale.c +++ /dev/null @@ -1,33 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include -#include - -static _locale_t __cdecl init_func(int category, const char *locale); -_locale_t (__cdecl *__MINGW_IMP_SYMBOL(_create_locale))(int, const char *) = init_func; - -static _locale_t __cdecl null_func(int category, const char *locale) -{ - (void)category; - (void)locale; - return NULL; -} - -static _locale_t __cdecl init_func(int category, const char *locale) -{ - HMODULE msvcrt = __mingw_get_msvcrt_handle(); - _locale_t (__cdecl *func)(int, const char *) = NULL; - - if (msvcrt) - func = (void*)GetProcAddress(msvcrt, "_create_locale"); - - if (!func) - func = null_func; - - return (__MINGW_IMP_SYMBOL(_create_locale) = func)(category, locale); -} diff --git a/lib/libc/mingw/misc/_free_locale.c b/lib/libc/mingw/misc/_free_locale.c deleted file mode 100644 index d94e2274fa..0000000000 --- a/lib/libc/mingw/misc/_free_locale.c +++ /dev/null @@ -1,31 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include -#include - -static void __cdecl init_func(_locale_t locale); -void (__cdecl *__MINGW_IMP_SYMBOL(_free_locale))(_locale_t) = init_func; - -static void __cdecl stub_func(_locale_t locale) -{ - (void)locale; -} - -static void __cdecl init_func(_locale_t locale) -{ - HMODULE msvcrt = __mingw_get_msvcrt_handle(); - void (__cdecl *func)(_locale_t) = NULL; - - if (msvcrt) - func = (void*)GetProcAddress(msvcrt, "_free_locale"); - - if (!func) - func = stub_func; - - (__MINGW_IMP_SYMBOL(_free_locale) = func)(locale); -} diff --git a/lib/libc/mingw/misc/_get_current_locale.c b/lib/libc/mingw/misc/_get_current_locale.c deleted file mode 100644 index f5ccc4afc1..0000000000 --- a/lib/libc/mingw/misc/_get_current_locale.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include - -static _locale_t __cdecl init_func(void); -_locale_t (__cdecl *__MINGW_IMP_SYMBOL(_get_current_locale))(void) = init_func; - -static _locale_t __cdecl null_func(void) -{ - return NULL; -} - -static _locale_t __cdecl init_func(void) -{ - HMODULE msvcrt = __mingw_get_msvcrt_handle(); - _locale_t (__cdecl *func)(void) = NULL; - - if (msvcrt) { - func = (void*)GetProcAddress(msvcrt, "_get_current_locale"); - } - - if (!func) - func = null_func; - - return (__MINGW_IMP_SYMBOL(_get_current_locale) = func)(); -} diff --git a/lib/libc/mingw/misc/imaxabs.c b/lib/libc/mingw/misc/imaxabs.c deleted file mode 100644 index 4f144a7ad5..0000000000 --- a/lib/libc/mingw/misc/imaxabs.c +++ /dev/null @@ -1,28 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - - This particular implementation requires the matching . -*/ -#define __CRT__NO_INLINE -#include - -intmax_t -__cdecl -imaxabs (intmax_t _j) - { return _j >= 0 ? _j : -_j; } -intmax_t (__cdecl *__MINGW_IMP_SYMBOL(imaxabs))(intmax_t) = imaxabs; - -long long __attribute__ ((alias ("imaxabs"))) __cdecl llabs (long long); -long long (__cdecl *__MINGW_IMP_SYMBOL(llabs))(long long) = llabs; - -__int64 __attribute__ ((alias ("imaxabs"))) __cdecl _abs64 (__int64); -__int64 (__cdecl *__MINGW_IMP_SYMBOL(_abs64))(__int64) = _abs64; diff --git a/lib/libc/mingw/misc/imaxdiv.c b/lib/libc/mingw/misc/imaxdiv.c deleted file mode 100644 index 7db911fa94..0000000000 --- a/lib/libc/mingw/misc/imaxdiv.c +++ /dev/null @@ -1,35 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn - last edit: 1999/11/05 gwyn@arl.mil - - - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - -*/ - -#include -#include - -imaxdiv_t -__cdecl -imaxdiv(intmax_t numer, intmax_t denom) -{ - imaxdiv_t result; - result.quot = numer / denom; - result.rem = numer % denom; - return result; -} -imaxdiv_t (__cdecl *__MINGW_IMP_SYMBOL(imaxdiv))(intmax_t, intmax_t) = imaxdiv; - -lldiv_t __attribute__ ((alias ("imaxdiv"))) -__cdecl -lldiv (long long, long long); -lldiv_t (__cdecl *__MINGW_IMP_SYMBOL(lldiv))(long long, long long) = lldiv; diff --git a/lib/libc/mingw/misc/invalid_parameter_handler.c b/lib/libc/mingw/misc/invalid_parameter_handler.c deleted file mode 100644 index 972b8598cb..0000000000 --- a/lib/libc/mingw/misc/invalid_parameter_handler.c +++ /dev/null @@ -1,23 +0,0 @@ -#define _CRTIMP -#include - -typedef void (__cdecl *_invalid_parameter_handler)(const wchar_t *,const wchar_t *,const wchar_t *,unsigned int,uintptr_t); -static _invalid_parameter_handler handler; - -static _invalid_parameter_handler __cdecl mingw_set_invalid_parameter_handler(_invalid_parameter_handler new_handler) -{ - return InterlockedExchangePointer((void**)&handler, new_handler); -} - -_invalid_parameter_handler (__cdecl *__MINGW_IMP_SYMBOL(_set_invalid_parameter_handler))(_invalid_parameter_handler) = - mingw_set_invalid_parameter_handler; - -static _invalid_parameter_handler __cdecl mingw_get_invalid_parameter_handler(void) -{ - return handler; -} - -_invalid_parameter_handler (__cdecl *__MINGW_IMP_SYMBOL(_get_invalid_parameter_handler))(void) = mingw_get_invalid_parameter_handler; - -_invalid_parameter_handler __cdecl _get_invalid_parameter_handler(void) __attribute__ ((alias ("mingw_get_invalid_parameter_handler"))); -_invalid_parameter_handler __cdecl _set_invalid_parameter_handler(_invalid_parameter_handler new_handler) __attribute__ ((alias ("mingw_set_invalid_parameter_handler"))); diff --git a/lib/libc/mingw/misc/lc_locale_func.c b/lib/libc/mingw/misc/lc_locale_func.c deleted file mode 100644 index 8f9ccd4b14..0000000000 --- a/lib/libc/mingw/misc/lc_locale_func.c +++ /dev/null @@ -1,59 +0,0 @@ -#define __lc_codepage __dummy_lc_codepage -#define ___lc_codepage_func __dummy____lc_codepage_func -#include -#include - -#undef __lc_codepage -#undef ___lc_codepage_func -#include "mb_wc_common.h" - -static unsigned int __cdecl setlocale_codepage_hack(void) -{ - /* locale :: "lang[_country[.code_page]]" | ".code_page" */ - const char *cp_str = strchr (setlocale(LC_CTYPE, NULL), '.'); - return cp_str ? atoi(cp_str + 1) : 0; -} - -#ifndef __LIBMSVCRT_OS__ - -unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = setlocale_codepage_hack; - -#else - -#include - -static unsigned int *msvcrt__lc_codepage; -static unsigned int __cdecl msvcrt___lc_codepage_func(void) -{ - return *msvcrt__lc_codepage; -} - -static unsigned int __cdecl init_codepage_func(void); -unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = init_codepage_func; - -static unsigned int __cdecl init_codepage_func(void) -{ - HMODULE msvcrt = __mingw_get_msvcrt_handle(); - unsigned int (__cdecl *func)(void) = NULL; - - if(msvcrt) { - func = (void*)GetProcAddress(msvcrt, "___lc_codepage_func"); - if(!func) { - msvcrt__lc_codepage = (unsigned int*)GetProcAddress(msvcrt, "__lc_codepage"); - if(msvcrt__lc_codepage) - func = msvcrt___lc_codepage_func; - } - } - - if(!func) - func = setlocale_codepage_hack; - - return (__MINGW_IMP_SYMBOL(___lc_codepage_func) = func)(); -} - -#endif - -unsigned int __cdecl ___lc_codepage_func(void) -{ - return __MINGW_IMP_SYMBOL(___lc_codepage_func)(); -} diff --git a/lib/libc/mingw/misc/mbrtowc.c b/lib/libc/mingw/misc/mbrtowc.c deleted file mode 100644 index 2eb480749f..0000000000 --- a/lib/libc/mingw/misc/mbrtowc.c +++ /dev/null @@ -1,156 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include "mb_wc_common.h" -#include -#include -#include -#include - -static int __MINGW_ATTRIB_NONNULL(1) __MINGW_ATTRIB_NONNULL(4) -__mbrtowc_cp (wchar_t * __restrict__ pwc, const char * __restrict__ s, - size_t n, mbstate_t* __restrict__ ps, - const unsigned int cp, const unsigned int mb_max) -{ - union { - mbstate_t val; - char mbcs[4]; - } shift_state; - - /* Do the prelim checks */ - if (s == NULL) - return 0; - - if (n == 0) - /* The standard doesn't mention this case explicitly. Tell - caller that the conversion from a non-null s is incomplete. */ - return -2; - - /* Save the current shift state, in case we need it in DBCS case. */ - shift_state.val = *ps; - *ps = 0; - - if (!*s) - { - *pwc = 0; - return 0; - } - - if (mb_max > 1) - { - if (shift_state.mbcs[0] != 0) - { - /* Complete the mb char with the trailing byte. */ - shift_state.mbcs[1] = *s; /* the second byte */ - if (MultiByteToWideChar(cp, MB_ERR_INVALID_CHARS, - shift_state.mbcs, 2, pwc, 1) - == 0) - { - /* An invalid trailing byte */ - errno = EILSEQ; - return -1; - } - return 2; - } - else if (IsDBCSLeadByteEx (cp, *s)) - { - /* If told to translate one byte, just save the leadbyte - in *ps. */ - if (n < 2) - { - ((char*) ps)[0] = *s; - return -2; - } - /* Else translate the first two bytes */ - else if (MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, - s, 2, pwc, 1) - == 0) - { - errno = EILSEQ; - return -1; - } - return 2; - } - } - - /* Fall through to single byte char */ - if (cp == 0) - *pwc = (wchar_t)(unsigned char)*s; - - else if (MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, s, 1, pwc, 1) - == 0) - { - errno = EILSEQ; - return -1; - } - - return 1; -} - -size_t -mbrtowc (wchar_t * __restrict__ pwc, const char * __restrict__ s, - size_t n, mbstate_t* __restrict__ ps) -{ - static mbstate_t internal_mbstate = 0; - wchar_t byte_bucket = 0; - wchar_t* dst = pwc ? pwc : &byte_bucket; - - return (size_t) __mbrtowc_cp (dst, s, n, ps ? ps : &internal_mbstate, - ___lc_codepage_func(), MB_CUR_MAX); -} - - -size_t -mbsrtowcs (wchar_t* __restrict__ dst, const char ** __restrict__ src, - size_t len, mbstate_t* __restrict__ ps) -{ - int ret =0 ; - size_t n = 0; - static mbstate_t internal_mbstate = 0; - mbstate_t* internal_ps = ps ? ps : &internal_mbstate; - const unsigned int cp = ___lc_codepage_func(); - const unsigned int mb_max = MB_CUR_MAX; - - if (src == NULL || *src == NULL) /* undefined behavior */ - return 0; - - if (dst != NULL) - { - while (n < len - && (ret = __mbrtowc_cp(dst, *src, len - n, - internal_ps, cp, mb_max)) - > 0) - { - ++dst; - *src += ret; - n += ret; - } - - if (n < len && ret == 0) - *src = (char *)NULL; - } - else - { - wchar_t byte_bucket = 0; - while ((ret = __mbrtowc_cp (&byte_bucket, *src + n, mb_max, - internal_ps, cp, mb_max)) - > 0) - n += ret; - } - return n; -} - -size_t -mbrlen (const char * __restrict__ s, size_t n, - mbstate_t * __restrict__ ps) -{ - static mbstate_t s_mbstate = 0; - wchar_t byte_bucket = 0; - return __mbrtowc_cp (&byte_bucket, s, n, (ps) ? ps : &s_mbstate, - ___lc_codepage_func(), MB_CUR_MAX); -} diff --git a/lib/libc/mingw/misc/mbsinit.c b/lib/libc/mingw/misc/mbsinit.c deleted file mode 100644 index d745402d7d..0000000000 --- a/lib/libc/mingw/misc/mbsinit.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* This source code was extracted from the Q8 package created and placed - in the PUBLIC DOMAIN by Doug Gwyn - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.24 of ISO/IEC 9899:1999 (E). - - It supports an encoding where all char codes are mapped - to the *same* code values within a wchar_t or wint_t, - so long as no other wchar_t codes are used by the program. - -*/ - -#define __CRT__NO_INLINE -#include - -#if 0 -int mbsinit(const mbstate_t *ps) -{ - return 1; /* don't have shift states */ -} -#endif - -int __cdecl mbsinit(const mbstate_t *_P) -{ - return (!_P || *_P == 0); -} - diff --git a/lib/libc/mingw/misc/onexit_table.c b/lib/libc/mingw/misc/onexit_table.c deleted file mode 100644 index 69f2ea7166..0000000000 --- a/lib/libc/mingw/misc/onexit_table.c +++ /dev/null @@ -1,77 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -#define _EXIT_LOCK1 8 - -void __cdecl _lock (int _File); -void __cdecl _unlock (int _File); - -int __cdecl _initialize_onexit_table(_onexit_table_t *table) -{ - if (!table) return -1; - table->_first = table->_last = table->_end = NULL; - return 0; -} - -int __cdecl _register_onexit_function(_onexit_table_t *table, _onexit_t func) -{ - if (!table) return -1; - - _lock(_EXIT_LOCK1); - - if (!table->_first) { - table->_first = calloc(32, sizeof(void*)); - if (!table->_first) { - _unlock(_EXIT_LOCK1); - return -1; - } - table->_last = table->_first; - table->_end = table->_first + 32; - } - - if (table->_last == table->_end) { - size_t len = table->_end - table->_first; - _PVFV *new_buf = realloc(table->_first, len * sizeof(void*) * 2); - if (!new_buf) { - _unlock(_EXIT_LOCK1); - return -1; - } - table->_first = new_buf; - table->_last = new_buf + len; - table->_end = new_buf + len * 2; - } - - *table->_last++ = (_PVFV)func; - _unlock(_EXIT_LOCK1); - return 0; -} - -int __cdecl _execute_onexit_table(_onexit_table_t *table) -{ - _PVFV *first, *last; - - _lock(_EXIT_LOCK1); - first = table->_first; - last = table->_last; - _initialize_onexit_table(table); - _unlock(_EXIT_LOCK1); - - if (!first) return 0; - - while (--last >= first) - if (*last) - (**last)(); - - free(first); - return 0; -} - -typeof(_initialize_onexit_table) *__MINGW_IMP_SYMBOL(_initialize_onexit_table) = _initialize_onexit_table; -typeof(_register_onexit_function) *__MINGW_IMP_SYMBOL(_register_onexit_function) = _register_onexit_function; -typeof(_execute_onexit_table) *__MINGW_IMP_SYMBOL(_execute_onexit_table) = _execute_onexit_table; diff --git a/lib/libc/mingw/misc/output_format.c b/lib/libc/mingw/misc/output_format.c deleted file mode 100644 index da037556c9..0000000000 --- a/lib/libc/mingw/misc/output_format.c +++ /dev/null @@ -1,62 +0,0 @@ -#define _get_output_format __dummy__get_output_format -#define _set_output_format __dummy__set_output_format -#include -#include - -#undef _get_output_format -#undef _set_output_format - -static unsigned int last_value = 0; -typedef unsigned int (*f_get_output_format)(void); -typedef unsigned int (*f_set_output_format)(unsigned int); - -static unsigned int init_set_output_format(unsigned int); -f_set_output_format __MINGW_IMP_SYMBOL(_set_output_format) = init_set_output_format; - -unsigned int _set_output_format(unsigned int format); -unsigned int _set_output_format(unsigned int format) -{ - return __MINGW_IMP_SYMBOL(_set_output_format)(format); -} - -static unsigned int fake_set_output_format(unsigned int value) -{ - return InterlockedExchange((LONG*)&last_value, value); -} - -static unsigned int init_set_output_format(unsigned int format) -{ - f_set_output_format sof; - - sof = (f_set_output_format) GetProcAddress (__mingw_get_msvcrt_handle(), "_set_output_format"); - if(!sof) - sof = fake_set_output_format; - - return (__MINGW_IMP_SYMBOL(_set_output_format) = sof)(format); -} - - -static unsigned int init_get_output_format(void); -f_get_output_format __MINGW_IMP_SYMBOL(_get_output_format) = init_get_output_format; - -unsigned int _get_output_format(void); -unsigned int _get_output_format(void) -{ - return __MINGW_IMP_SYMBOL(_get_output_format)(); -} - -static unsigned int fake_get_output_format(void) -{ - return last_value; -} - -static unsigned int init_get_output_format(void) -{ - f_get_output_format gof; - - gof = (f_get_output_format) GetProcAddress (__mingw_get_msvcrt_handle(), "_get_output_format"); - if(!gof) - gof = fake_get_output_format; - - return (__MINGW_IMP_SYMBOL(_get_output_format) = gof)(); -} diff --git a/lib/libc/mingw/misc/purecall.c b/lib/libc/mingw/misc/purecall.c deleted file mode 100644 index 8c29e67609..0000000000 --- a/lib/libc/mingw/misc/purecall.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#define _CRTIMP -#include -#include - -_purecall_handler __cdecl _set_purecall_handler(_purecall_handler handler) -{ - static _purecall_handler prev_handler; - return InterlockedExchangePointer((void**)&prev_handler, handler); -} - -void *__MINGW_IMP_SYMBOL(_set_purecall_handler) = _set_purecall_handler; - diff --git a/lib/libc/mingw/misc/register_tls_atexit.c b/lib/libc/mingw/misc/register_tls_atexit.c deleted file mode 100644 index 09d9270e4d..0000000000 --- a/lib/libc/mingw/misc/register_tls_atexit.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include -#include -#include - -static _tls_callback_type callback; - -static void run_callback(void) -{ - if (callback) - callback(NULL, DLL_PROCESS_DETACH, 0); - callback = NULL; -} - -void __cdecl _register_thread_local_exe_atexit_callback(_tls_callback_type cb) -{ - callback = cb; - /* This should guarantee that the callback is called. It won't be run in the - * exact right spot as intended to, but it will be run. */ - atexit(run_callback); -} - -typeof(_register_thread_local_exe_atexit_callback) *__MINGW_IMP_SYMBOL(_register_thread_local_exe_atexit_callback) = _register_thread_local_exe_atexit_callback; diff --git a/lib/libc/mingw/misc/seterrno.c b/lib/libc/mingw/misc/seterrno.c deleted file mode 100644 index ab54c668f7..0000000000 --- a/lib/libc/mingw/misc/seterrno.c +++ /dev/null @@ -1,24 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include - -errno_t __cdecl _set_errno (int _Value) -{ - errno = _Value; - return 0; -} - -errno_t __cdecl _get_errno (int *_Value) -{ - if(!_Value) - { - errno = EINVAL; - return EINVAL; - } - - *_Value = errno; - return 0; -} diff --git a/lib/libc/mingw/misc/strtoimax.c b/lib/libc/mingw/misc/strtoimax.c deleted file mode 100644 index 7f09869cb0..0000000000 --- a/lib/libc/mingw/misc/strtoimax.c +++ /dev/null @@ -1,123 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - - This particular implementation requires the matching . - It also assumes that character codes for A..Z and a..z are in - contiguous ascending order; this is true for ASCII but not EBCDIC. -*/ -#include -#include -#include -#include - -/* Helper macros */ - -/* convert digit character to number, in any base */ -#define ToNumber(c) (isdigit(c) ? (c) - '0' : \ - isupper(c) ? (c) - 'A' + 10 : \ - islower(c) ? (c) - 'a' + 10 : \ - -1 /* "invalid" flag */ \ - ) -/* validate converted digit character for specific base */ -#define valid(n, b) ((n) >= 0 && (n) < (b)) - -intmax_t -__cdecl -strtoimax(const char * __restrict__ nptr, char ** __restrict__ endptr, int base) - { - register uintmax_t accum; /* accumulates converted value */ - register int n; /* numeral from digit character */ - int minus; /* set iff minus sign seen */ - int toobig; /* set iff value overflows */ - - if ( endptr != NULL ) - *endptr = (char *)nptr; /* in case no conversion's performed */ - - if ( base < 0 || base == 1 || base > 36 ) - { - errno = EDOM; - return 0; /* unspecified behavior */ - } - - /* skip initial, possibly empty sequence of white-space characters */ - - while ( isspace(*nptr) ) - ++nptr; - - /* process subject sequence: */ - - /* optional sign */ - if ( (minus = *nptr == '-') || *nptr == '+' ) - ++nptr; - - if ( base == 0 ) { - if ( *nptr == '0' ) { - if ( nptr[1] == 'X' || nptr[1] == 'x' ) - base = 16; - else - base = 8; - } - else - base = 10; - } - /* optional "0x" or "0X" for base 16 */ - - if ( base == 16 && *nptr == '0' && (nptr[1] == 'X' || nptr[1] == 'x') ) - nptr += 2; /* skip past this prefix */ - - /* check whether there is at least one valid digit */ - - n = ToNumber(*nptr); - ++nptr; - - if ( !valid(n, base) ) - return 0; /* subject seq. not of expected form */ - - accum = n; - - for ( toobig = 0; n = ToNumber(*nptr), valid(n, base); ++nptr ) - if ( accum > (uintmax_t)(INTMAX_MAX / base + 2) ) /* major wrap-around */ - toobig = 1; /* but keep scanning */ - else - accum = base * accum + n; - - if ( endptr != NULL ) - *endptr = (char *)nptr; /* points to first not-valid-digit */ - - if ( minus ) - { - if ( accum > (uintmax_t)INTMAX_MAX + 1 ) - toobig = 1; - } - else - if ( accum > (uintmax_t)INTMAX_MAX ) - toobig = 1; - - if ( toobig ) - { - errno = ERANGE; - return minus ? INTMAX_MIN : INTMAX_MAX; - } - else - return (intmax_t)(minus ? -accum : accum); - } -intmax_t (__cdecl *__MINGW_IMP_SYMBOL(strtoimax))(const char* __restrict__, char ** __restrict__, int) = strtoimax; - -long long __attribute__ ((alias ("strtoimax"))) -__cdecl -strtoll (const char* __restrict__ nptr, char ** __restrict__ endptr, int base); -long long (__cdecl *__MINGW_IMP_SYMBOL(strtoll))(const char* __restrict__, char ** __restrict__, int) = strtoll; - -__int64 __attribute__ ((alias ("strtoimax"))) -__cdecl -_strtoi64 (const char* __restrict__ nptr, char ** __restrict__ endptr, int base); -__int64 (__cdecl *__MINGW_IMP_SYMBOL(_strtoi64))(const char* __restrict__, char ** __restrict__, int) = _strtoi64; diff --git a/lib/libc/mingw/misc/strtoumax.c b/lib/libc/mingw/misc/strtoumax.c deleted file mode 100644 index d47a7c90d8..0000000000 --- a/lib/libc/mingw/misc/strtoumax.c +++ /dev/null @@ -1,121 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - - This particular implementation requires the matching . - It also assumes that character codes for A..Z and a..z are in - contiguous ascending order; this is true for ASCII but not EBCDIC. -*/ -#include -#include -#include -#include - -/* Helper macros */ - -/* convert digit character to number, in any base */ -#define ToNumber(c) (isdigit(c) ? (c) - '0' : \ - isupper(c) ? (c) - 'A' + 10 : \ - islower(c) ? (c) - 'a' + 10 : \ - -1 /* "invalid" flag */ \ - ) -/* validate converted digit character for specific base */ -#define valid(n, b) ((n) >= 0 && (n) < (b)) - -uintmax_t -__cdecl -strtoumax(const char * __restrict__ nptr, char ** __restrict__ endptr, int base) - { - register uintmax_t accum; /* accumulates converted value */ - register uintmax_t next; /* for computing next value of accum */ - register int n; /* numeral from digit character */ - int minus; /* set iff minus sign seen (yes!) */ - int toobig; /* set iff value overflows */ - - if ( endptr != NULL ) - *endptr = (char *)nptr; /* in case no conversion's performed */ - - if ( base < 0 || base == 1 || base > 36 ) - { - errno = EDOM; - return 0; /* unspecified behavior */ - } - - /* skip initial, possibly empty sequence of white-space characters */ - - while ( isspace(*nptr) ) - ++nptr; - - /* process subject sequence: */ - - /* optional sign (yes!) */ - - if ( (minus = *nptr == '-') || *nptr == '+' ) - ++nptr; - - if ( base == 0 ) - { - if ( *nptr == '0' ) - { - if ( nptr[1] == 'X' || nptr[1] == 'x' ) - base = 16; - else - base = 8; - } - else - base = 10; - } - - /* optional "0x" or "0X" for base 16 */ - - if ( base == 16 && *nptr == '0' && (nptr[1] == 'X' || nptr[1] == 'x') ) - nptr += 2; /* skip past this prefix */ - - /* check whether there is at least one valid digit */ - - n = ToNumber(*nptr); - ++nptr; - - if ( !valid(n, base) ) - return 0; /* subject seq. not of expected form */ - - accum = n; - - for ( toobig = 0; n = ToNumber(*nptr), valid(n, base); ++nptr ) - if ( accum > UINTMAX_MAX / base + 1 /* major wrap-around */ - || (next = base * accum + n) < accum /* minor wrap-around */ - ) - toobig = 1; /* but keep scanning */ - else - accum = next; - - if ( endptr != NULL ) - *endptr = (char *)nptr; /* points to first not-valid-digit */ - - if ( toobig ) - { - errno = ERANGE; - return UINTMAX_MAX; - } - else - return minus ? -accum : accum; /* (yes!) */ - } -uintmax_t (__cdecl *__MINGW_IMP_SYMBOL(strtoumax))(const char* __restrict__, char ** __restrict__, int) = strtoumax; - -unsigned long long __attribute__ ((alias ("strtoumax"))) -__cdecl -strtoull (const char* __restrict__ nptr, char ** __restrict__ endptr, int base); -unsigned long long (__cdecl *__MINGW_IMP_SYMBOL(strtoull))(const char* __restrict__, char ** __restrict__, int) = strtoull; - -unsigned __int64 __attribute__ ((alias ("strtoumax"))) -__cdecl -_strtoui64 (const char* __restrict__ nptr, char ** __restrict__ endptr, int base); -unsigned __int64 (__cdecl *__MINGW_IMP_SYMBOL(_strtoui64))(const char* __restrict__, char ** __restrict__, int) = _strtoui64; diff --git a/lib/libc/mingw/misc/tdestroy.c b/lib/libc/mingw/misc/tdestroy.c new file mode 100644 index 0000000000..d1b8295f24 --- /dev/null +++ b/lib/libc/mingw/misc/tdestroy.c @@ -0,0 +1,25 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#include +#define _SEARCH_PRIVATE +#define _GNU_SOURCE +#include +#include + + +/* destroy tree recursively and call free_node on each node key */ +void tdestroy(void *root, void (*free_node)(void *)) +{ + node_t *p = (node_t *)root; + if (!p) + return; + + tdestroy(p->llink , free_node); + tdestroy(p->rlink, free_node); + free_node((void*)p->key); + free(p); +} diff --git a/lib/libc/mingw/misc/wassert.c b/lib/libc/mingw/misc/wassert.c deleted file mode 100644 index 2fdd5e29a5..0000000000 --- a/lib/libc/mingw/misc/wassert.c +++ /dev/null @@ -1,49 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include -#include -#include "msvcrt.h" - -/* _wassert is not available on XP, so forward it to _assert if needed */ -static void __cdecl mingw_wassert(const wchar_t *_Message, const wchar_t *_File, unsigned _Line) -{ - char *message = NULL, *file = NULL; - size_t len; - - if ((len = wcstombs(NULL, _Message, 0)) != (size_t)-1) - { - message = malloc(len + 1); - wcstombs(message, _Message, len + 1); - } - - if ((len = wcstombs(NULL, _File, 0)) != (size_t)-1) - { - file = malloc(len + 1); - wcstombs(file, _File, len + 1); - } - - _assert(message, file, _Line); - - free(message); - free(file); -} - -static void __cdecl init_wassert(const wchar_t *message, const wchar_t *file, unsigned line); - -void (__cdecl *__MINGW_IMP_SYMBOL(_wassert))(const wchar_t*, const wchar_t*,unsigned) = init_wassert; - -static void __cdecl init_wassert(const wchar_t *message, const wchar_t *file, unsigned line) -{ - void *func; - - func = (void*)GetProcAddress(__mingw_get_msvcrt_handle(), "_wassert"); - if(!func) - func = mingw_wassert; - - return (__MINGW_IMP_SYMBOL(_wassert) = func)(message, file, line); -} diff --git a/lib/libc/mingw/misc/wcrtomb.c b/lib/libc/mingw/misc/wcrtomb.c deleted file mode 100644 index e96d061d09..0000000000 --- a/lib/libc/mingw/misc/wcrtomb.c +++ /dev/null @@ -1,100 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include "mb_wc_common.h" -#include -#include -#include -#include -#include - -__attribute__((noinline)) -static int __MINGW_ATTRIB_NONNULL(1) - __wcrtomb_cp (char *dst, wchar_t wc, const unsigned int cp, - const unsigned int mb_max) -{ - if (cp == 0) - { - if (wc > 255) - { - errno = EILSEQ; - return -1; - } - *dst = (char) wc; - return 1; - } - else - { - int invalid_char = 0; - - int size = WideCharToMultiByte (cp, 0 /* Is this correct flag? */, - &wc, 1, dst, mb_max, - NULL, &invalid_char); - if (size == 0 || invalid_char) - { - errno = EILSEQ; - return -1; - } - return size; - } -} - -size_t -wcrtomb (char *dst, wchar_t wc, mbstate_t * __UNUSED_PARAM (ps)) -{ - char byte_bucket [MB_LEN_MAX]; - char* tmp_dst = dst ? dst : &byte_bucket[0]; - return (size_t)__wcrtomb_cp (tmp_dst, wc, ___lc_codepage_func(), - MB_CUR_MAX); -} - -size_t wcsrtombs (char *dst, const wchar_t **src, size_t len, - mbstate_t * __UNUSED_PARAM (ps)) -{ - int ret = 0; - size_t n = 0; - const unsigned int cp = ___lc_codepage_func(); - const unsigned int mb_max = MB_CUR_MAX; - const wchar_t *pwc = *src; - - if (src == NULL || *src == NULL) /* undefined behavior */ - return 0; - - if (dst != NULL) - { - while (n < len) - { - if ((ret = __wcrtomb_cp (dst, *pwc, cp, mb_max)) <= 0) - return (size_t) -1; - n += ret; - dst += ret; - if (*(dst - 1) == '\0') - { - *src = (wchar_t *) NULL; - return (n - 1); - } - pwc++; - } - *src = pwc; - } - else - { - char byte_bucket [MB_LEN_MAX]; - while (1) - { - if ((ret = __wcrtomb_cp (&byte_bucket[0], *pwc, cp, mb_max)) <= 0) - return (size_t) -1; - n += ret; - if (byte_bucket [ret - 1] == '\0') - return (n - 1); - pwc++; - } - } - - return n; -} diff --git a/lib/libc/mingw/secapi/_access_s.c b/lib/libc/mingw/secapi/_access_s.c deleted file mode 100644 index 9be582e878..0000000000 --- a/lib/libc/mingw/secapi/_access_s.c +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_access_s (const char *, int); -static errno_t __cdecl _stub (const char *, int); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_access_s))(const char *, int) = - _stub; - -static errno_t __cdecl -_stub (const char *s, int m) -{ - errno_t __cdecl (*f)(const char *, int) = __MINGW_IMP_SYMBOL(_access_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(const char *, int)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_access_s"); - if (!f) - f = _int_access_s; - __MINGW_IMP_SYMBOL(_access_s) = f; - } - return (*f)(s, m); -} - -errno_t __cdecl -_access_s (const char *s, int m) -{ - return _stub (s, m); -} - -static errno_t __cdecl -_int_access_s (const char *s, int m) -{ - if (!s || (m & ~6) != 0) - { - _access (NULL, m); - return EINVAL; - } - if (!_access (s, m)) - return 0; - return errno; -} diff --git a/lib/libc/mingw/secapi/_cgets_s.c b/lib/libc/mingw/secapi/_cgets_s.c deleted file mode 100644 index f81623a9a9..0000000000 --- a/lib/libc/mingw/secapi/_cgets_s.c +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_cgets_s (char *, size_t, size_t *); -static errno_t __cdecl _stub (char *, size_t, size_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_cgets_s))(char *, size_t, size_t *) = - _stub; - -static errno_t __cdecl -_stub (char *s, size_t l, size_t *r_len) -{ - errno_t __cdecl (*f)(char *, size_t, size_t *) = __MINGW_IMP_SYMBOL(_cgets_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(char *, size_t, size_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_cgets_s"); - if (!f) - f = _int_cgets_s; - __MINGW_IMP_SYMBOL(_cgets_s) = f; - } - return (*f)(s, l, r_len); -} - -errno_t __cdecl -_cgets_s (char *s, size_t l, size_t *r_len) -{ - return _stub (s, l, r_len); -} - -static errno_t __cdecl -_int_cgets_s (char *s, size_t l, size_t *r_len) -{ - char *h, *p; - - if (s && l) - s[0] = 0; - if (!s || !l || !r_len) - { - _cgets (NULL); - return EINVAL; - } - p = (char *) alloca (l + 2); - p[0] = l; - h = _cgets (s); - if (!h) - return EINVAL; - *r_len = (size_t) p[1]; - memcpy (s, &p[2], *r_len); - return 0; -} diff --git a/lib/libc/mingw/secapi/_cgetws_s.c b/lib/libc/mingw/secapi/_cgetws_s.c deleted file mode 100644 index 01ee3d1b32..0000000000 --- a/lib/libc/mingw/secapi/_cgetws_s.c +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_cgetws_s (wchar_t *, size_t, size_t *); -static errno_t __cdecl _stub (wchar_t *, size_t, size_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_cgetws_s))(wchar_t *, size_t, size_t *) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *s, size_t l, size_t *r_len) -{ - errno_t __cdecl (*f)(wchar_t *, size_t, size_t *) = __MINGW_IMP_SYMBOL(_cgetws_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t, size_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_cgetws_s"); - if (!f) - f = _int_cgetws_s; - __MINGW_IMP_SYMBOL(_cgetws_s) = f; - } - return (*f)(s, l, r_len); -} - -errno_t __cdecl -_cgetws_s (wchar_t *s, size_t l, size_t *r_len) -{ - return _stub (s, l, r_len); -} - -static errno_t __cdecl -_int_cgetws_s (wchar_t *s, size_t l, size_t *r_len) -{ - wchar_t *h, *p; - - if (s && l) - s[0] = 0; - if (!s || !l || !r_len) - { - _cgetws (NULL); - return EINVAL; - } - p = (wchar_t *) alloca ((l + 2) * sizeof (wchar_t)); - p[0] = l; - h = _cgetws (s); - if (!h) - return EINVAL; - *r_len = (size_t) p[1]; - memcpy (s, &p[2], *r_len); - return 0; -} diff --git a/lib/libc/mingw/secapi/_chsize_s.c b/lib/libc/mingw/secapi/_chsize_s.c deleted file mode 100644 index cd8d066ebb..0000000000 --- a/lib/libc/mingw/secapi/_chsize_s.c +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_chsize_s (int, long long); -static errno_t __cdecl _stub (int, long long); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_chsize_s))(int, long long) = - _stub; - -static errno_t __cdecl -_stub (int fd, long long sz) -{ - errno_t __cdecl (*f)(int, long long) = __MINGW_IMP_SYMBOL(_chsize_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(int, long long)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_chsize_s"); - if (!f) - f = _int_chsize_s; - __MINGW_IMP_SYMBOL(_chsize_s) = f; - } - return (*f)(fd, sz); -} - -errno_t __cdecl -_chsize_s (int fd, long long sz) -{ - return _stub (fd, sz); -} - -static errno_t __cdecl -_int_chsize_s (int fd, long long sz) -{ - if (sz > 0x7fffffffll) - { - /* We can't set file bigger as 2GB, so return EACCES. */ - return (errno = EACCES); - } - if (!_chsize (fd, sz)) - return 0; - return errno; -} diff --git a/lib/libc/mingw/secapi/_controlfp_s.c b/lib/libc/mingw/secapi/_controlfp_s.c deleted file mode 100644 index 32be17cfb8..0000000000 --- a/lib/libc/mingw/secapi/_controlfp_s.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -#include - -static errno_t __cdecl _stub( - unsigned int *currentControl, - unsigned int newControl, - unsigned int mask -); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_controlfp_s))(unsigned int *, unsigned int, unsigned int) = _stub; - -errno_t __cdecl _controlfp_s( - unsigned int *currentControl, - unsigned int newControl, - unsigned int mask -){ - return __MINGW_IMP_SYMBOL(_controlfp_s)(currentControl,newControl,mask); -} - -static const unsigned int allflags = _MCW_DN | _MCW_EM | _MCW_IC | _MCW_RC | _MCW_PC; -static errno_t __cdecl _int_controlfp_s( - unsigned int *currentControl, - unsigned int newControl, - unsigned int mask -){ - unsigned int cont; - if(!(newControl & mask & ~allflags)){ - if (currentControl) *currentControl = _controlfp( 0, 0 ); - return EINVAL; - } - cont = _controlfp( newControl, mask ); - if(currentControl) *currentControl = cont; - return 0; -} - -static errno_t __cdecl _stub ( - unsigned int *currentControl, - unsigned int newControl, - unsigned int mask -) -{ - errno_t __cdecl (*f)(unsigned int *, unsigned int, unsigned int) = __MINGW_IMP_SYMBOL(_controlfp_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(unsigned int *, unsigned int, unsigned int)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_controlfp_s"); - if (!f) - f = _int_controlfp_s; - __MINGW_IMP_SYMBOL(_controlfp_s) = f; - } - return (*f)(currentControl, newControl, mask); -} - diff --git a/lib/libc/mingw/secapi/_cprintf_s.c b/lib/libc/mingw/secapi/_cprintf_s.c deleted file mode 100644 index eef77df415..0000000000 --- a/lib/libc/mingw/secapi/_cprintf_s.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include - -int __cdecl (*__MINGW_IMP_SYMBOL(_cprintf_s))(const char *,...) = - _cprintf_s; - -int __cdecl -_cprintf_s (const char *s, ...) -{ - va_list argp; - int r; - - va_start (argp, s); - r = _vcprintf_s (s, argp); - va_end (argp); - return r; -} diff --git a/lib/libc/mingw/secapi/_cprintf_s_l.c b/lib/libc/mingw/secapi/_cprintf_s_l.c deleted file mode 100644 index cce1d51b53..0000000000 --- a/lib/libc/mingw/secapi/_cprintf_s_l.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include - -int __cdecl (*__MINGW_IMP_SYMBOL(_cprintf_s_l))(const char *, _locale_t, ...) = - _cprintf_s_l; - -int __cdecl -_cprintf_s_l (const char *s, _locale_t loc, ...) -{ - va_list argp; - int r; - - va_start (argp, loc); - r = _vcprintf_s_l (s, loc, argp); - va_end (argp); - return r; -} diff --git a/lib/libc/mingw/secapi/_ctime32_s.c b/lib/libc/mingw/secapi/_ctime32_s.c deleted file mode 100644 index c59ccfc190..0000000000 --- a/lib/libc/mingw/secapi/_ctime32_s.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_ctime32_s (char *, size_t, const __time32_t *); -static errno_t __cdecl _stub (char *, size_t, const __time32_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_ctime32_s))(char *, size_t, const __time32_t *) = - _stub; - -static errno_t __cdecl -_stub (char *d, size_t dn, const __time32_t *pt) -{ - errno_t __cdecl (*f)(char *, size_t, const __time32_t *) = __MINGW_IMP_SYMBOL(_ctime32_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(char *, size_t, const __time32_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_ctime32_s"); - if (!f) - f = _int_ctime32_s; - __MINGW_IMP_SYMBOL(_ctime32_s) = f; - } - return (*f)(d, dn, pt); -} - -errno_t __cdecl -_ctime32_s (char *d, size_t dn, const __time32_t *pt) -{ - return _stub (d, dn, pt); -} - -static errno_t __cdecl -_int_ctime32_s (char *d, size_t dn, const __time32_t *pt) -{ - struct tm ltm; - errno_t e; - - if (!d || !dn) - { - errno = EINVAL; - return EINVAL; - } - d[0] = 0; - if (!pt) - { - errno = EINVAL; - return EINVAL; - } - - if ((e = _localtime32_s (<m, pt)) != 0) - return e; - return asctime_s (d, dn, <m); -} diff --git a/lib/libc/mingw/secapi/_ctime64_s.c b/lib/libc/mingw/secapi/_ctime64_s.c deleted file mode 100644 index 833d14a0aa..0000000000 --- a/lib/libc/mingw/secapi/_ctime64_s.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_ctime64_s (char *, size_t, const __time64_t *); -static errno_t __cdecl _stub (char *, size_t, const __time64_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_ctime64_s))(char *, size_t, const __time64_t *) = - _stub; - -static errno_t __cdecl -_stub (char *d, size_t dn, const __time64_t *pt) -{ - errno_t __cdecl (*f)(char *, size_t, const __time64_t *) = __MINGW_IMP_SYMBOL(_ctime64_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(char *, size_t, const __time64_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_ctime64_s"); - if (!f) - f = _int_ctime64_s; - __MINGW_IMP_SYMBOL(_ctime64_s) = f; - } - return (*f)(d, dn, pt); -} - -errno_t __cdecl -_ctime64_s (char *d, size_t dn, const __time64_t *pt) -{ - return _stub (d, dn, pt); -} - -static errno_t __cdecl -_int_ctime64_s (char *d, size_t dn, const __time64_t *pt) -{ - struct tm ltm; - errno_t e; - - if (!d || !dn) - { - errno = EINVAL; - return EINVAL; - } - d[0] = 0; - if (!pt) - { - errno = EINVAL; - return EINVAL; - } - - if ((e = _localtime64_s (<m, pt)) != 0) - return e; - return asctime_s (d, dn, <m); -} diff --git a/lib/libc/mingw/secapi/_cwprintf_s.c b/lib/libc/mingw/secapi/_cwprintf_s.c deleted file mode 100644 index 013ccc472d..0000000000 --- a/lib/libc/mingw/secapi/_cwprintf_s.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include - -int __cdecl (*__MINGW_IMP_SYMBOL(_cwprintf_s))(const wchar_t *,...) = - _cwprintf_s; - -int __cdecl -_cwprintf_s (const wchar_t *s, ...) -{ - va_list argp; - int r; - - va_start (argp, s); - r = _vcwprintf_s (s, argp); - va_end (argp); - return r; -} diff --git a/lib/libc/mingw/secapi/_cwprintf_s_l.c b/lib/libc/mingw/secapi/_cwprintf_s_l.c deleted file mode 100644 index 50c9c4bad8..0000000000 --- a/lib/libc/mingw/secapi/_cwprintf_s_l.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include - -int __cdecl (*__MINGW_IMP_SYMBOL(_cwprintf_s_l))(const wchar_t *, _locale_t, ...) = - _cwprintf_s_l; - -int __cdecl -_cwprintf_s_l (const wchar_t *s, _locale_t loc, ...) -{ - va_list argp; - int r; - - va_start (argp, loc); - r = _vcwprintf_s_l (s, loc, argp); - va_end (argp); - return r; -} diff --git a/lib/libc/mingw/secapi/_gmtime32_s.c b/lib/libc/mingw/secapi/_gmtime32_s.c deleted file mode 100644 index 7139c24df1..0000000000 --- a/lib/libc/mingw/secapi/_gmtime32_s.c +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_gmtime32_s (struct tm *, const __time32_t *); -static errno_t __cdecl _stub (struct tm *, const __time32_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_gmtime32_s))(struct tm *, const __time32_t *) = - _stub; - -static errno_t __cdecl -_stub (struct tm *ptm, const __time32_t *pt) -{ - errno_t __cdecl (*f)(struct tm *, const __time32_t *) = __MINGW_IMP_SYMBOL(_gmtime32_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(struct tm *, const __time32_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_gmtime32_s"); - if (!f) - f = _int_gmtime32_s; - __MINGW_IMP_SYMBOL(_gmtime32_s) = f; - } - return (*f)(ptm, pt); -} - -errno_t __cdecl -_gmtime32_s (struct tm *ptm, const __time32_t *pt) -{ - return _stub (ptm, pt); -} - -static errno_t __cdecl -_int_gmtime32_s (struct tm *ptm, const __time32_t *pt) -{ - struct tm *ltm; - - if (ptm) - memset (ptm, 0xff, sizeof (*ptm)); - if (!ptm || !pt) - { - errno = EINVAL; - return EINVAL; - } - if ((ltm = _gmtime32 (pt)) == NULL) - return errno; - *ptm = *ltm; - return 0; -} diff --git a/lib/libc/mingw/secapi/_gmtime64_s.c b/lib/libc/mingw/secapi/_gmtime64_s.c deleted file mode 100644 index c4ca154684..0000000000 --- a/lib/libc/mingw/secapi/_gmtime64_s.c +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_gmtime64_s (struct tm *, const __time64_t *); -static errno_t __cdecl _stub (struct tm *, const __time64_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_gmtime64_s))(struct tm *, const __time64_t *) = - _stub; - -static errno_t __cdecl -_stub (struct tm *ptm, const __time64_t *pt) -{ - errno_t __cdecl (*f)(struct tm *, const __time64_t *) = __MINGW_IMP_SYMBOL(_gmtime64_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(struct tm *, const __time64_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_gmtime64_s"); - if (!f) - f = _int_gmtime64_s; - __MINGW_IMP_SYMBOL(_gmtime64_s) = f; - } - return (*f)(ptm, pt); -} - -errno_t __cdecl -_gmtime64_s (struct tm *ptm, const __time64_t *pt) -{ - return _stub (ptm, pt); -} - -static errno_t __cdecl -_int_gmtime64_s (struct tm *ptm, const __time64_t *pt) -{ - struct tm *ltm; - - if (ptm) - memset (ptm, 0xff, sizeof (*ptm)); - if (!ptm || !pt) - { - errno = EINVAL; - return EINVAL; - } - if ((ltm = _gmtime64 (pt)) == NULL) - return errno; - *ptm = *ltm; - return 0; -} diff --git a/lib/libc/mingw/secapi/_localtime32_s.c b/lib/libc/mingw/secapi/_localtime32_s.c deleted file mode 100644 index c8a62f6cce..0000000000 --- a/lib/libc/mingw/secapi/_localtime32_s.c +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_localtime32_s (struct tm *, const __time32_t *); -static errno_t __cdecl _stub (struct tm *, const __time32_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_localtime32_s))(struct tm *, const __time32_t *) = - _stub; - -static errno_t __cdecl -_stub (struct tm *ptm, const __time32_t *pt) -{ - errno_t __cdecl (*f)(struct tm *, const __time32_t *) = __MINGW_IMP_SYMBOL(_localtime32_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(struct tm *, const __time32_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_localtime32_s"); - if (!f) - f = _int_localtime32_s; - __MINGW_IMP_SYMBOL(_localtime32_s) = f; - } - return (*f)(ptm, pt); -} - -errno_t __cdecl -_localtime32_s (struct tm *ptm, const __time32_t *pt) -{ - return _stub (ptm, pt); -} - -static errno_t __cdecl -_int_localtime32_s (struct tm *ptm, const __time32_t *pt) -{ - struct tm *ltm; - - if (ptm) - memset (ptm, 0xff, sizeof (*ptm)); - if (!ptm || !pt) - { - errno = EINVAL; - return EINVAL; - } - if ((ltm = _localtime32 (pt)) == NULL) - return errno; - *ptm = *ltm; - return 0; -} diff --git a/lib/libc/mingw/secapi/_localtime64_s.c b/lib/libc/mingw/secapi/_localtime64_s.c deleted file mode 100644 index bff0868ba1..0000000000 --- a/lib/libc/mingw/secapi/_localtime64_s.c +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_localtime64_s (struct tm *, const __time64_t *); -static errno_t __cdecl _stub (struct tm *, const __time64_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_localtime64_s))(struct tm *, const __time64_t *) = - _stub; - -static errno_t __cdecl -_stub (struct tm *ptm, const __time64_t *pt) -{ - errno_t __cdecl (*f)(struct tm *, const __time64_t *) = __MINGW_IMP_SYMBOL(_localtime64_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(struct tm *, const __time64_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_localtime64_s"); - if (!f) - f = _int_localtime64_s; - __MINGW_IMP_SYMBOL(_localtime64_s) = f; - } - return (*f)(ptm, pt); -} - -errno_t __cdecl -_localtime64_s (struct tm *ptm, const __time64_t *pt) -{ - return _stub (ptm, pt); -} - -static errno_t __cdecl -_int_localtime64_s (struct tm *ptm, const __time64_t *pt) -{ - struct tm *ltm; - - if (ptm) - memset (ptm, 0xff, sizeof (*ptm)); - if (!ptm || !pt) - { - errno = EINVAL; - return EINVAL; - } - if ((ltm = _localtime64 (pt)) == NULL) - return errno; - *ptm = *ltm; - return 0; -} diff --git a/lib/libc/mingw/secapi/_mktemp_s.c b/lib/libc/mingw/secapi/_mktemp_s.c deleted file mode 100644 index 01484d9384..0000000000 --- a/lib/libc/mingw/secapi/_mktemp_s.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_mktemp_s (char *, size_t); -static errno_t __cdecl _stub (char *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_mktemp_s))(char *, size_t) = - _stub; - -static errno_t __cdecl -_stub (char *d, size_t dn) -{ - errno_t __cdecl (*f)(char *, size_t) = __MINGW_IMP_SYMBOL(_mktemp_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(char *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_mktemp_s"); - if (!f) - f = _int_mktemp_s; - __MINGW_IMP_SYMBOL(_mktemp_s) = f; - } - return (*f)(d, dn); -} - -errno_t __cdecl -_mktemp_s (char *d, size_t dn) -{ - return _stub (d, dn); -} - -static errno_t __cdecl -_int_mktemp_s (char *d, size_t dn) -{ - size_t sz; - if (!d || !dn) - { - _mktemp (NULL); - return EINVAL; - } - sz = strnlen (d, dn); - if (sz >= dn || sz < 6) - { - d[0] = 0; - _mktemp (NULL); - return EINVAL; - } - if (_mktemp (d) != NULL) - return 0; - return errno; -} diff --git a/lib/libc/mingw/secapi/_sopen_s.c b/lib/libc/mingw/secapi/_sopen_s.c deleted file mode 100644 index b4f8f6af5b..0000000000 --- a/lib/libc/mingw/secapi/_sopen_s.c +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include -#include -#include - -static errno_t __cdecl _int_sopen_s(int *, const char *, int, int, int); -static errno_t __cdecl _stub(int *, const char *, int, int, int); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_sopen_s))(int *, const char *, int, int, int) = _stub; - -static errno_t __cdecl -_stub (int* pfh, const char *filename, int oflag, int shflag, int pmode) -{ - errno_t __cdecl (*f)(int *, const char *, int, int, int) = __MINGW_IMP_SYMBOL(_sopen_s); - - if (f == _stub) { - f = (errno_t __cdecl (*)(int *, const char *, int, int, int)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_sopen_s"); - if (f == NULL) - f = _int_sopen_s; - __MINGW_IMP_SYMBOL(_sopen_s) = f; - } - - return (*f)(pfh, filename, oflag, shflag, pmode); -} - -static errno_t __cdecl _int_sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) -{ - if (pfh == NULL || filename == NULL) { - if (pfh != NULL) *pfh = -1; - errno = EINVAL; - return EINVAL; - } - - *pfh = _sopen(filename, oflag, shflag, pmode); - return errno; -} - -errno_t __cdecl _sopen_s(int* pfh, const char *filename, int oflag, int shflag, int pmode) -{ - return _stub (pfh, filename, oflag, shflag, pmode); -} diff --git a/lib/libc/mingw/secapi/_strdate_s.c b/lib/libc/mingw/secapi/_strdate_s.c deleted file mode 100644 index b62dec7521..0000000000 --- a/lib/libc/mingw/secapi/_strdate_s.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_strdate_s (char *, size_t); -static errno_t __cdecl _stub (char *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_strdate_s))(char *, size_t) = - _stub; - -static errno_t __cdecl -_stub (char *d, size_t dn) -{ - errno_t __cdecl (*f)(char *, size_t) = __MINGW_IMP_SYMBOL(_strdate_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(char *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_strdate_s"); - if (!f) - f = _int_strdate_s; - __MINGW_IMP_SYMBOL(_strdate_s) = f; - } - return (*f)(d, dn); -} - -errno_t __cdecl -_strdate_s (char *d, size_t dn) -{ - return _stub (d, dn); -} - -static errno_t __cdecl -_int_strdate_s (char *d, size_t dn) -{ - SYSTEMTIME dt; - - if (!d || !dn) - { - errno = EINVAL; - return EINVAL; - } - - d[0] = 0; - - if (dn < 9) - { - errno = ERANGE; - return ERANGE; - } - - GetLocalTime (&dt); - dt.wYear %= 100; - - d[0] = (char) (dt.wMonth / 10 + '0'); - d[1] = (char) (dt.wMonth % 10 + '0'); - d[2] = '/'; - d[3] = (char) (dt.wDay / 10 + '0'); - d[4] = (char) (dt.wDay % 10 + '0'); - d[5] = '/'; - d[6] = (char) (dt.wYear / 10 + '0'); - d[7] = (char) (dt.wYear % 10 + '0'); - d[8] = 0; - - return 0; -} diff --git a/lib/libc/mingw/secapi/_strtime_s.c b/lib/libc/mingw/secapi/_strtime_s.c deleted file mode 100644 index b66e3f95a8..0000000000 --- a/lib/libc/mingw/secapi/_strtime_s.c +++ /dev/null @@ -1,72 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_strtime_s (char *, size_t); -static errno_t __cdecl _stub (char *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_strtime_s))(char *, size_t) = - _stub; - -static errno_t __cdecl -_stub (char *d, size_t dn) -{ - errno_t __cdecl (*f)(char *, size_t) = __MINGW_IMP_SYMBOL(_strtime_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(char *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_strtime_s"); - if (!f) - f = _int_strtime_s; - __MINGW_IMP_SYMBOL(_strtime_s) = f; - } - return (*f)(d, dn); -} - -errno_t __cdecl -_strtime_s (char *d, size_t dn) -{ - return _stub (d, dn); -} - -static errno_t __cdecl -_int_strtime_s (char *d, size_t dn) -{ - SYSTEMTIME dt; - int hours, minutes, seconds; - - if (!d || !dn) - { - errno = EINVAL; - return EINVAL; - } - - d[0] = 0; - - if (dn < 9) - { - errno = ERANGE; - return ERANGE; - } - - GetLocalTime (&dt); - dt.wYear %= 100; - - hours = dt.wHour; - minutes = dt.wMinute; - seconds = dt.wSecond; - - d[2] = d[5] = ':'; - d[0] = (char) (hours / 10 + '0'); - d[1] = (char) (hours % 10 + '0'); - d[3] = (char) (minutes / 10 + '0'); - d[4] = (char) (minutes % 10 + '0'); - d[6] = (char) (seconds / 10 + '0'); - d[7] = (char) (seconds % 10 + '0'); - d[8] = 0; - - return 0; -} diff --git a/lib/libc/mingw/secapi/_umask_s.c b/lib/libc/mingw/secapi/_umask_s.c deleted file mode 100644 index 75e8ddbb46..0000000000 --- a/lib/libc/mingw/secapi/_umask_s.c +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_umask_s (int, int *); -static errno_t __cdecl _stub (int, int *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_umask_s))(int, int *) = - _stub; - -static errno_t __cdecl -_stub (int m, int *pold) -{ - errno_t __cdecl (*f)(int, int *) = __MINGW_IMP_SYMBOL(_umask_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(int, int *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_umask_s"); - if (!f) - f = _int_umask_s; - __MINGW_IMP_SYMBOL(_umask_s) = f; - } - return (*f)(m, pold); -} - -errno_t __cdecl -_umask_s (int m, int *pold) -{ - return _stub (m, pold); -} - -static errno_t __cdecl -_int_umask_s (int m, int *pold) -{ - if (!pold) - { - errno = EINVAL; - return EINVAL; - } - *pold = _umask (m); - return 0; -} diff --git a/lib/libc/mingw/secapi/_vcprintf_s.c b/lib/libc/mingw/secapi/_vcprintf_s.c deleted file mode 100644 index 91f143f1fa..0000000000 --- a/lib/libc/mingw/secapi/_vcprintf_s.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include -#include -#include - -static int __cdecl _int_vcprintf_s (const char *, va_list); -static int __cdecl _stub (const char *, va_list); - -int __cdecl (*__MINGW_IMP_SYMBOL(_vcprintf_s))(const char *, va_list) = - _stub; - -static int __cdecl -_stub (const char *s, va_list argp) -{ - int __cdecl (*f)(const char *, va_list) = __MINGW_IMP_SYMBOL(_vcprintf_s); - - if (f == _stub) - { - f = (int __cdecl (*)(const char *, va_list)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_vcprintf_s"); - if (!f) - f = _int_vcprintf_s; - __MINGW_IMP_SYMBOL(_vcprintf_s) = f; - } - return (*f)(s, argp); -} - -int __cdecl -_vcprintf_s (const char *s, va_list argp) -{ - return _stub (s, argp); -} - -static int __cdecl -_int_vcprintf_s (const char *s, va_list argp) -{ - return _vcprintf (s, argp); -} diff --git a/lib/libc/mingw/secapi/_vcprintf_s_l.c b/lib/libc/mingw/secapi/_vcprintf_s_l.c deleted file mode 100644 index 787c76be4d..0000000000 --- a/lib/libc/mingw/secapi/_vcprintf_s_l.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include -#include -#include - -static int __cdecl _int_vcprintf_s_l (const char *, _locale_t, va_list); -static int __cdecl _stub (const char *, _locale_t, va_list); - -int __cdecl (*__MINGW_IMP_SYMBOL(_vcprintf_s_l))(const char *, _locale_t, va_list) = - _stub; - -static int __cdecl -_stub (const char *s, _locale_t loc, va_list argp) -{ - int __cdecl (*f)(const char *, _locale_t, va_list) = __MINGW_IMP_SYMBOL(_vcprintf_s_l); - - if (f == _stub) - { - f = (int __cdecl (*)(const char *, _locale_t, va_list)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_vcprintf_s_l"); - if (!f) - f = _int_vcprintf_s_l; - __MINGW_IMP_SYMBOL(_vcprintf_s_l) = f; - } - return (*f)(s, loc, argp); -} - -int __cdecl -_vcprintf_s_l (const char *s, _locale_t loc, va_list argp) -{ - return _stub (s, loc, argp); -} - -static int __cdecl -_int_vcprintf_s_l (const char *s, _locale_t loc, va_list argp) -{ - return _vcprintf_l (s, loc, argp); -} diff --git a/lib/libc/mingw/secapi/_vcwprintf_s.c b/lib/libc/mingw/secapi/_vcwprintf_s.c deleted file mode 100644 index 325e866197..0000000000 --- a/lib/libc/mingw/secapi/_vcwprintf_s.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include -#include -#include - -static int __cdecl _int_vcwprintf_s (const wchar_t *, va_list); -static int __cdecl _stub (const wchar_t *, va_list); - -int __cdecl (*__MINGW_IMP_SYMBOL(_vcwprintf_s))(const wchar_t *, va_list) = - _stub; - -static int __cdecl -_stub (const wchar_t *s, va_list argp) -{ - int __cdecl (*f)(const wchar_t *, va_list) = __MINGW_IMP_SYMBOL(_vcwprintf_s); - - if (f == _stub) - { - f = (int __cdecl (*)(const wchar_t *, va_list)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_vcwprintf_s"); - if (!f) - f = _int_vcwprintf_s; - __MINGW_IMP_SYMBOL(_vcwprintf_s) = f; - } - return (*f)(s, argp); -} - -int __cdecl -_vcwprintf_s (const wchar_t *s, va_list argp) -{ - return _stub (s, argp); -} - -static int __cdecl -_int_vcwprintf_s (const wchar_t *s, va_list argp) -{ - return _vcwprintf (s, argp); -} diff --git a/lib/libc/mingw/secapi/_vcwprintf_s_l.c b/lib/libc/mingw/secapi/_vcwprintf_s_l.c deleted file mode 100644 index 4d112a1c52..0000000000 --- a/lib/libc/mingw/secapi/_vcwprintf_s_l.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include -#include -#include - -static int __cdecl _int_vcwprintf_s_l (const wchar_t *, _locale_t, va_list); -static int __cdecl _stub (const wchar_t *, _locale_t, va_list); - -int __cdecl (*__MINGW_IMP_SYMBOL(_vcwprintf_s_l))(const wchar_t *, _locale_t, va_list) = - _stub; - -static int __cdecl -_stub (const wchar_t *s, _locale_t loc, va_list argp) -{ - int __cdecl (*f)(const wchar_t *, _locale_t, va_list) = __MINGW_IMP_SYMBOL(_vcwprintf_s_l); - - if (f == _stub) - { - f = (int __cdecl (*)(const wchar_t *, _locale_t, va_list)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_vcwprintf_s_l"); - if (!f) - f = _int_vcwprintf_s_l; - __MINGW_IMP_SYMBOL(_vcwprintf_s_l) = f; - } - return (*f)(s, loc, argp); -} - -int __cdecl -_vcwprintf_s_l (const wchar_t *s, _locale_t loc, va_list argp) -{ - return _stub (s, loc, argp); -} - -static int __cdecl -_int_vcwprintf_s_l (const wchar_t *s, _locale_t loc, va_list argp) -{ - return _vcwprintf_l (s, loc, argp); -} diff --git a/lib/libc/mingw/secapi/_vscprintf_p.c b/lib/libc/mingw/secapi/_vscprintf_p.c deleted file mode 100644 index 3761c21b49..0000000000 --- a/lib/libc/mingw/secapi/_vscprintf_p.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -int __cdecl _vscprintf_p(const char *format, va_list arglist) -{ - return _vscprintf_p_l(format, NULL, arglist); -} - -int __cdecl (*__MINGW_IMP_SYMBOL(_vscprintf_p))(const char *, va_list) = _vscprintf_p; diff --git a/lib/libc/mingw/secapi/_vscwprintf_p.c b/lib/libc/mingw/secapi/_vscwprintf_p.c deleted file mode 100644 index 666286a62f..0000000000 --- a/lib/libc/mingw/secapi/_vscwprintf_p.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -int __cdecl _vscwprintf_p(const wchar_t *format, va_list arglist) -{ - return _vscwprintf_p_l(format, NULL, arglist); -} - -int __cdecl (*__MINGW_IMP_SYMBOL(_vscwprintf_p))(const wchar_t *, va_list) = _vscwprintf_p; diff --git a/lib/libc/mingw/secapi/_vswprintf_p.c b/lib/libc/mingw/secapi/_vswprintf_p.c deleted file mode 100644 index 52e9dfa59e..0000000000 --- a/lib/libc/mingw/secapi/_vswprintf_p.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -int __cdecl _vswprintf_p(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, va_list _ArgList) -{ - return _vswprintf_p_l(_DstBuf, _MaxCount, _Format, NULL, _ArgList); -} - -int __cdecl (*__MINGW_IMP_SYMBOL(_vswprintf_p))(wchar_t*,size_t,const wchar_t*,va_list) = _vswprintf_p; diff --git a/lib/libc/mingw/secapi/_waccess_s.c b/lib/libc/mingw/secapi/_waccess_s.c deleted file mode 100644 index c4825cff44..0000000000 --- a/lib/libc/mingw/secapi/_waccess_s.c +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_waccess_s (const wchar_t *, int); -static errno_t __cdecl _stub (const wchar_t *, int); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_waccess_s))(const wchar_t *, int) = - _stub; - -static errno_t __cdecl -_stub (const wchar_t *s, int m) -{ - errno_t __cdecl (*f)(const wchar_t *, int) = __MINGW_IMP_SYMBOL(_waccess_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(const wchar_t *, int)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_waccess_s"); - if (!f) - f = _int_waccess_s; - __MINGW_IMP_SYMBOL(_waccess_s) = f; - } - return (*f)(s, m); -} - -errno_t __cdecl -_waccess_s (const wchar_t *s, int m) -{ - return _stub (s, m); -} - -static errno_t __cdecl -_int_waccess_s (const wchar_t *s, int m) -{ - if (!s || (m & ~6) != 0) - { - _waccess (NULL, m); - return EINVAL; - } - if (!_waccess (s, m)) - return 0; - return errno; -} diff --git a/lib/libc/mingw/secapi/_wasctime_s.c b/lib/libc/mingw/secapi/_wasctime_s.c deleted file mode 100644 index 6b414ee9dd..0000000000 --- a/lib/libc/mingw/secapi/_wasctime_s.c +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_wasctime_s (wchar_t *, size_t, const struct tm *); -static errno_t __cdecl _stub (wchar_t *, size_t, const struct tm *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_wasctime_s))(wchar_t *, size_t, const struct tm *) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *d, size_t dn, const struct tm *pt) -{ - errno_t __cdecl (*f)(wchar_t *, size_t, const struct tm *) = __MINGW_IMP_SYMBOL(_wasctime_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t, const struct tm *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_wasctime_s"); - if (!f) - f = _int_wasctime_s; - __MINGW_IMP_SYMBOL(_wasctime_s) = f; - } - return (*f)(d, dn, pt); -} - -errno_t __cdecl -_wasctime_s (wchar_t *d, size_t dn, const struct tm *pt) -{ - return _stub (d, dn, pt); -} - -static errno_t __cdecl -_int_wasctime_s (wchar_t *d, size_t dn, const struct tm *pt) -{ - wchar_t *tmp; - size_t i; - - if (d && dn) - d[0] = 0; - if (!d || dn < 26 || !pt || (tmp = _wasctime (pt)) == NULL) - { - errno = EINVAL; - return EINVAL; - } - for (i = 0; tmp[i] != 0; i++) - d[i] = tmp[i]; - d[i] = 0; - return 0; -} diff --git a/lib/libc/mingw/secapi/_wctime32_s.c b/lib/libc/mingw/secapi/_wctime32_s.c deleted file mode 100644 index 27c414b161..0000000000 --- a/lib/libc/mingw/secapi/_wctime32_s.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_wctime32_s (wchar_t *, size_t, const __time32_t *); -static errno_t __cdecl _stub (wchar_t *, size_t, const __time32_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_wctime32_s))(wchar_t *, size_t, const __time32_t *) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *d, size_t dn, const __time32_t *pt) -{ - errno_t __cdecl (*f)(wchar_t*,size_t, const __time32_t *) = __MINGW_IMP_SYMBOL(_wctime32_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t, const __time32_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_wctime32_s"); - if (!f) - f = _int_wctime32_s; - __MINGW_IMP_SYMBOL(_wctime32_s) = f; - } - return (*f)(d, dn, pt); -} - -errno_t __cdecl -_wctime32_s (wchar_t *d, size_t dn, const __time32_t *pt) -{ - return _stub (d, dn, pt); -} - -static errno_t __cdecl -_int_wctime32_s (wchar_t *d, size_t dn, const __time32_t *pt) -{ - struct tm ltm; - errno_t e; - - if (!d || !dn) - { - errno = EINVAL; - return EINVAL; - } - d[0] = 0; - if (!pt) - { - errno = EINVAL; - return EINVAL; - } - - if ((e = _localtime32_s (<m, pt)) != 0) - return e; - return _wasctime_s (d, dn, <m); -} diff --git a/lib/libc/mingw/secapi/_wctime64_s.c b/lib/libc/mingw/secapi/_wctime64_s.c deleted file mode 100644 index bce40fd227..0000000000 --- a/lib/libc/mingw/secapi/_wctime64_s.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_wctime64_s (wchar_t *, size_t, const __time64_t *); -static errno_t __cdecl _stub (wchar_t *, size_t, const __time64_t *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_wctime64_s))(wchar_t *, size_t, const __time64_t *) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *d, size_t dn, const __time64_t *pt) -{ - errno_t __cdecl (*f)(wchar_t*,size_t, const __time64_t *) = __MINGW_IMP_SYMBOL(_wctime64_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t, const __time64_t *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_wctime64_s"); - if (!f) - f = _int_wctime64_s; - __MINGW_IMP_SYMBOL(_wctime64_s) = f; - } - return (*f)(d, dn, pt); -} - -errno_t __cdecl -_wctime64_s (wchar_t *d, size_t dn, const __time64_t *pt) -{ - return _stub (d, dn, pt); -} - -static errno_t __cdecl -_int_wctime64_s (wchar_t *d, size_t dn, const __time64_t *pt) -{ - struct tm ltm; - errno_t e; - - if (!d || !dn) - { - errno = EINVAL; - return EINVAL; - } - d[0] = 0; - if (!pt) - { - errno = EINVAL; - return EINVAL; - } - - if ((e = _localtime64_s (<m, pt)) != 0) - return e; - return _wasctime_s (d, dn, <m); -} diff --git a/lib/libc/mingw/secapi/_wmktemp_s.c b/lib/libc/mingw/secapi/_wmktemp_s.c deleted file mode 100644 index e13abc7908..0000000000 --- a/lib/libc/mingw/secapi/_wmktemp_s.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_wmktemp_s (wchar_t *, size_t); -static errno_t __cdecl _stub (wchar_t *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_wmktemp_s))(wchar_t *, size_t) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *d, size_t dn) -{ - errno_t __cdecl (*f)(wchar_t *, size_t) = __MINGW_IMP_SYMBOL(_wmktemp_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_wmktemp_s"); - if (!f) - f = _int_wmktemp_s; - __MINGW_IMP_SYMBOL(_wmktemp_s) = f; - } - return (*f)(d, dn); -} - -errno_t __cdecl -_wmktemp_s (wchar_t *d, size_t dn) -{ - return _stub (d, dn); -} - -static errno_t __cdecl -_int_wmktemp_s (wchar_t *d, size_t dn) -{ - size_t sz; - if (!d || !dn) - { - _wmktemp (NULL); - return EINVAL; - } - sz = wcsnlen (d, dn); - if (sz >= dn || sz < 6) - { - d[0] = 0; - _wmktemp (NULL); - return EINVAL; - } - if (_wmktemp (d) != NULL) - return 0; - return errno; -} diff --git a/lib/libc/mingw/secapi/_wstrdate_s.c b/lib/libc/mingw/secapi/_wstrdate_s.c deleted file mode 100644 index e8ec1d446e..0000000000 --- a/lib/libc/mingw/secapi/_wstrdate_s.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_wstrdate_s (wchar_t *, size_t); -static errno_t __cdecl _stub (wchar_t *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_wstrdate_s))(wchar_t *, size_t) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *d, size_t dn) -{ - errno_t __cdecl (*f)(wchar_t *, size_t) = __MINGW_IMP_SYMBOL(_wstrdate_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_wstrdate_s"); - if (!f) - f = _int_wstrdate_s; - __MINGW_IMP_SYMBOL(_wstrdate_s) = f; - } - return (*f)(d, dn); -} - -errno_t __cdecl -_wstrdate_s (wchar_t *d, size_t dn) -{ - return _stub (d, dn); -} - -static errno_t __cdecl -_int_wstrdate_s (wchar_t *d, size_t dn) -{ - SYSTEMTIME dt; - - if (!d || !dn) - { - errno = EINVAL; - return EINVAL; - } - - d[0] = 0; - - if (dn < 9) - { - errno = ERANGE; - return ERANGE; - } - - GetLocalTime (&dt); - dt.wYear %= 100; - - d[0] = (wchar_t) (dt.wMonth / 10 + '0'); - d[1] = (wchar_t) (dt.wMonth % 10 + '0'); - d[2] = '/'; - d[3] = (wchar_t) (dt.wDay / 10 + '0'); - d[4] = (wchar_t) (dt.wDay % 10 + '0'); - d[5] = '/'; - d[6] = (wchar_t) (dt.wYear / 10 + '0'); - d[7] = (wchar_t) (dt.wYear % 10 + '0'); - d[8] = 0; - - return 0; -} diff --git a/lib/libc/mingw/secapi/_wstrtime_s.c b/lib/libc/mingw/secapi/_wstrtime_s.c deleted file mode 100644 index ffb8a3e96f..0000000000 --- a/lib/libc/mingw/secapi/_wstrtime_s.c +++ /dev/null @@ -1,71 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_wstrtime_s (wchar_t *, size_t); -static errno_t __cdecl _stub (wchar_t *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(_wstrtime_s))(wchar_t *, size_t) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *d, size_t dn) -{ - errno_t __cdecl (*f)(wchar_t *, size_t) = __MINGW_IMP_SYMBOL(_wstrtime_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "_wstrtime_s"); - if (!f) - f = _int_wstrtime_s; - __MINGW_IMP_SYMBOL(_wstrtime_s) = f; - } - return (*f)(d, dn); -} - -errno_t __cdecl -_wstrtime_s (wchar_t *d, size_t dn) -{ - return _stub (d, dn); -} - -static errno_t __cdecl -_int_wstrtime_s (wchar_t *d, size_t dn) -{ - SYSTEMTIME dt; - int hours, minutes, seconds; - - if (!d || !dn) - { - errno = EINVAL; - return EINVAL; - } - - d[0] = 0; - - if (dn < 9) - { - errno = ERANGE; - return ERANGE; - } - - GetLocalTime (&dt); - - hours = dt.wHour; - minutes = dt.wMinute; - seconds = dt.wSecond; - - d[2] = d[5] = ':'; - d[0] = (wchar_t) (hours / 10 + '0'); - d[1] = (wchar_t) (hours % 10 + '0'); - d[3] = (wchar_t) (minutes / 10 + '0'); - d[4] = (wchar_t) (minutes % 10 + '0'); - d[6] = (wchar_t) (seconds / 10 + '0'); - d[7] = (wchar_t) (seconds % 10 + '0'); - d[8] = 0; - - return 0; -} diff --git a/lib/libc/mingw/secapi/asctime_s.c b/lib/libc/mingw/secapi/asctime_s.c deleted file mode 100644 index aeb16e3bcf..0000000000 --- a/lib/libc/mingw/secapi/asctime_s.c +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_asctime_s (char *, size_t, const struct tm *); -static errno_t __cdecl _stub (char *, size_t, const struct tm *); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(asctime_s))(char *, size_t, const struct tm *) = - _stub; - -static errno_t __cdecl -_stub (char *d, size_t dn, const struct tm *pt) -{ - errno_t __cdecl (*f)(char *, size_t, const struct tm *) = __MINGW_IMP_SYMBOL(asctime_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(char *, size_t, const struct tm *)) - GetProcAddress (__mingw_get_msvcrt_handle (), "asctime_s"); - if (!f) - f = _int_asctime_s; - __MINGW_IMP_SYMBOL(asctime_s) = f; - } - return (*f)(d, dn, pt); -} - -errno_t __cdecl -asctime_s (char *d, size_t dn, const struct tm *pt) -{ - return _stub (d, dn, pt); -} - -static errno_t __cdecl -_int_asctime_s (char *d, size_t dn, const struct tm *pt) -{ - char *tmp; - size_t i; - - if (d && dn) - d[0] = 0; - if (!d || dn < 26 || !pt || (tmp = asctime (pt)) == NULL) - { - errno = EINVAL; - return EINVAL; - } - for (i = 0; tmp[i] != 0; i++) - d[i] = tmp[i]; - d[i] = 0; - return 0; -} diff --git a/lib/libc/mingw/secapi/memcpy_s.c b/lib/libc/mingw/secapi/memcpy_s.c deleted file mode 100644 index 013eff05c5..0000000000 --- a/lib/libc/mingw/secapi/memcpy_s.c +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include -#include -#include - -static errno_t __cdecl _int_memcpy_s (void *, size_t, const void *, size_t); -static errno_t __cdecl _stub (void *, size_t, const void *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(memcpy_s))(void *, size_t, const void *, size_t) = - _stub; - -static errno_t __cdecl -_stub (void *d, size_t dn, const void *s, size_t n) -{ - errno_t __cdecl (*f)(void *, size_t, const void *, size_t) = __MINGW_IMP_SYMBOL(memcpy_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(void *, size_t, const void *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "memcpy_s"); - if (!f) - f = _int_memcpy_s; - __MINGW_IMP_SYMBOL(memcpy_s) = f; - } - return (*f)(d, dn, s, n); -} - -errno_t __cdecl -memcpy_s (void *d, size_t dn, const void *s, size_t n) -{ - return _stub (d, dn, s, n); -} - -static errno_t __cdecl -_int_memcpy_s (void *d, size_t dn, const void *s, size_t n) -{ - if (!n) - return 0; - - if (!d || !s) - { - if (d) - memset (d, 0, dn); - errno = EINVAL; - return EINVAL; - } - - if (dn < n) - { - memset (d, 0, dn); - - errno = ERANGE; - return ERANGE; - } - - memcpy (d, s, n); - - return 0; -} diff --git a/lib/libc/mingw/secapi/memmove_s.c b/lib/libc/mingw/secapi/memmove_s.c deleted file mode 100644 index dca1dbe57e..0000000000 --- a/lib/libc/mingw/secapi/memmove_s.c +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include -#include -#include - -static errno_t __cdecl _int_memmove_s (void *, size_t, const void *, size_t); -static errno_t __cdecl _stub (void *, size_t, const void *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(memmove_s))(void *, size_t, const void *, size_t) = - _stub; - -static errno_t __cdecl -_stub (void *d, size_t dn, const void *s, size_t n) -{ - errno_t __cdecl (*f)(void *, size_t, const void *, size_t) = __MINGW_IMP_SYMBOL(memmove_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(void *, size_t, const void *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "memmove_s"); - if (!f) - f = _int_memmove_s; - __MINGW_IMP_SYMBOL(memmove_s) = f; - } - return (*f)(d, dn, s, n); -} - -errno_t __cdecl -memmove_s (void *d, size_t dn, const void *s, size_t n) -{ - return _stub (d, dn, s, n); -} - -static errno_t __cdecl -_int_memmove_s (void *d, size_t dn, const void *s, size_t n) -{ - if (!n) - return 0; - - if (!d || !s) - { - if (d) - memset (d, 0, dn); - errno = EINVAL; - return EINVAL; - } - - if (dn < n) - { - memset (d, 0, dn); - - errno = ERANGE; - return ERANGE; - } - - memmove (d, s, n); - - return 0; -} diff --git a/lib/libc/mingw/secapi/rand_s.c b/lib/libc/mingw/secapi/rand_s.c deleted file mode 100644 index 52700ba4fa..0000000000 --- a/lib/libc/mingw/secapi/rand_s.c +++ /dev/null @@ -1,36 +0,0 @@ -#define _CRT_RAND_S -#include -#include -#include -#include -#include - -static BOOLEAN (WINAPI *pRtlGenRandom)(void*,ULONG); - -static errno_t mingw_rand_s(unsigned int *pval) -{ - return !pval || !pRtlGenRandom || !pRtlGenRandom(pval, sizeof(*pval)) ? EINVAL : 0; -} - -static errno_t __cdecl init_rand_s(unsigned int*); - -errno_t (__cdecl *__MINGW_IMP_SYMBOL(rand_s))(unsigned int*) = init_rand_s; - -errno_t __cdecl -rand_s(unsigned int *val) -{ - return __MINGW_IMP_SYMBOL(rand_s)(val); -} - -static errno_t __cdecl init_rand_s(unsigned int *val) -{ - int (__cdecl *func)(unsigned int*); - - func = (void*)GetProcAddress(__mingw_get_msvcrt_handle(), "rand_s"); - if(!func) { - func = mingw_rand_s; - pRtlGenRandom = (void*)GetProcAddress(LoadLibraryW(L"advapi32.dll"), "SystemFunction036"); - } - - return (__MINGW_IMP_SYMBOL(rand_s) = func)(val); -} diff --git a/lib/libc/mingw/secapi/sprintf_s.c b/lib/libc/mingw/secapi/sprintf_s.c deleted file mode 100644 index eab682a2dc..0000000000 --- a/lib/libc/mingw/secapi/sprintf_s.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include -#include -#include - -int __cdecl (*__MINGW_IMP_SYMBOL(sprintf_s))(char *, size_t, const char *,...) = sprintf_s; - -int __cdecl -sprintf_s (char *_DstBuf, size_t _Size, const char *_Format, ...) -{ - va_list argp; - int r; - - va_start (argp, _Format); - r = vsprintf_s (_DstBuf, _Size, _Format, argp); - va_end (argp); - return r; -} diff --git a/lib/libc/mingw/secapi/strerror_s.c b/lib/libc/mingw/secapi/strerror_s.c deleted file mode 100644 index 1216c4131c..0000000000 --- a/lib/libc/mingw/secapi/strerror_s.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_strerror_s (char *, size_t, int); -static errno_t __cdecl _stub (char *, size_t, int); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(strerror_s))(char *, size_t, int) = _stub; - -static errno_t __cdecl -_stub (char *buffer, size_t numberOfElements, int errnum) -{ - errno_t __cdecl (*f)(char *, size_t, int) = __MINGW_IMP_SYMBOL(strerror_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(char *, size_t, int)) - GetProcAddress (__mingw_get_msvcrt_handle (), "strerror_s"); - if (!f) - { - f = _int_strerror_s; - } - __MINGW_IMP_SYMBOL(strerror_s) = f; - } - return (*f)(buffer, numberOfElements, errnum); -} - -errno_t __cdecl -strerror_s (char *buffer, size_t numberOfElements, int errnum) -{ - return _stub (buffer, numberOfElements, errnum); -} - -static errno_t __cdecl -_int_strerror_s (char *buffer, size_t numberOfElements, int errnum) -{ - char *errmsg = strerror(errnum); - - if (!errmsg || !buffer || numberOfElements == 0) - { - errno = EINVAL; - return EINVAL; - } - - if (sprintf_s(buffer, numberOfElements, "%s", errmsg) == -1) - { - errno = EINVAL; - return EINVAL; - } - - return 0; -} diff --git a/lib/libc/mingw/secapi/vsprintf_s.c b/lib/libc/mingw/secapi/vsprintf_s.c deleted file mode 100644 index 45dfb14b11..0000000000 --- a/lib/libc/mingw/secapi/vsprintf_s.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include -#include -#include -#include -#include - -static int __cdecl _int_vsprintf_s (char *, size_t, const char *, va_list); -static int __cdecl _stub (char *, size_t, const char *, va_list); - -int __cdecl (*__MINGW_IMP_SYMBOL(vsprintf_s))(char *, size_t, const char *, va_list) = - _stub; - -static int __cdecl -_stub (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList) -{ - int __cdecl (*f)(char *, size_t, const char *, va_list) = __MINGW_IMP_SYMBOL(vsprintf_s); - - if (f == _stub) - { - f = (int __cdecl (*)(char *, size_t, const char *, va_list)) - GetProcAddress (__mingw_get_msvcrt_handle (), "vsprintf_s"); - if (!f) - f = _int_vsprintf_s; - __MINGW_IMP_SYMBOL(vsprintf_s) = f; - } - return (*f)(_DstBuf, _Size, _Format, _ArgList); -} - -int __cdecl -vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList) -{ - return _stub (_DstBuf, _Size, _Format, _ArgList); -} - -static int __cdecl -_int_vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList) -{ - return __ms_vsnprintf (_DstBuf, _Size, _Format, _ArgList); -} diff --git a/lib/libc/mingw/secapi/wmemcpy_s.c b/lib/libc/mingw/secapi/wmemcpy_s.c deleted file mode 100644 index 83879246ed..0000000000 --- a/lib/libc/mingw/secapi/wmemcpy_s.c +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_wmemcpy_s (wchar_t *, size_t, const wchar_t *, size_t); -static errno_t __cdecl _stub (wchar_t *, size_t, const wchar_t *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(wmemcpy_s))(wchar_t *, size_t, const wchar_t *, size_t) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *d, size_t dn, const wchar_t *s, size_t n) -{ - errno_t __cdecl (*f)(wchar_t *, size_t, const wchar_t *, size_t) = __MINGW_IMP_SYMBOL(wmemcpy_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t, const wchar_t *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "wmemcpy_s"); - if (!f) - f = _int_wmemcpy_s; - __MINGW_IMP_SYMBOL(wmemcpy_s) = f; - } - return (*f)(d, dn, s, n); -} - -errno_t __cdecl -wmemcpy_s (wchar_t *d, size_t dn, const wchar_t *s, size_t n) -{ - return _stub (d, dn, s, n); -} - -static errno_t __cdecl -_int_wmemcpy_s (wchar_t *d, size_t dn, const wchar_t *s, size_t n) -{ - if (!n) - return 0; - - if (!d || !s) - { - if (d) - memset (d, 0, dn * sizeof (wchar_t)); - errno = EINVAL; - return EINVAL; - } - - if (dn < n) - { - memset (d, 0, dn * sizeof (wchar_t)); - - errno = ERANGE; - return ERANGE; - } - - memcpy (d, s, n * sizeof (wchar_t)); - - return 0; -} diff --git a/lib/libc/mingw/secapi/wmemmove_s.c b/lib/libc/mingw/secapi/wmemmove_s.c deleted file mode 100644 index 2e0d572efd..0000000000 --- a/lib/libc/mingw/secapi/wmemmove_s.c +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include -#include -#include -#include - -static errno_t __cdecl _int_wmemmove_s (wchar_t *, size_t, const wchar_t*, size_t); -static errno_t __cdecl _stub (wchar_t *, size_t, const wchar_t *, size_t); - -errno_t __cdecl (*__MINGW_IMP_SYMBOL(wmemmove_s))(wchar_t *, size_t, const wchar_t *, size_t) = - _stub; - -static errno_t __cdecl -_stub (wchar_t *d, size_t dn, const wchar_t *s, size_t n) -{ - errno_t __cdecl (*f)(wchar_t *, size_t, const wchar_t *, size_t) = __MINGW_IMP_SYMBOL(wmemmove_s); - - if (f == _stub) - { - f = (errno_t __cdecl (*)(wchar_t *, size_t, const wchar_t *, size_t)) - GetProcAddress (__mingw_get_msvcrt_handle (), "wmemmove_s"); - if (!f) - f = _int_wmemmove_s; - __MINGW_IMP_SYMBOL(wmemmove_s) = f; - } - return (*f)(d, dn, s, n); -} - -errno_t __cdecl -wmemmove_s (wchar_t *d, size_t dn, const wchar_t *s, size_t n) -{ - return _stub (d, dn, s, n); -} - -static errno_t __cdecl -_int_wmemmove_s (wchar_t *d, size_t dn, const wchar_t *s, size_t n) -{ - if (!n) - return 0; - - if (!d || !s) - { - if (d) - memset (d, 0, dn * sizeof (wchar_t)); - errno = EINVAL; - return EINVAL; - } - - if (dn < n) - { - memset (d, 0, dn * sizeof (wchar_t)); - - errno = ERANGE; - return ERANGE; - } - - memmove (d, s, n * sizeof (wchar_t)); - - return 0; -} diff --git a/lib/libc/mingw/stdio/_getc_nolock.c b/lib/libc/mingw/stdio/_getc_nolock.c deleted file mode 100644 index 8b34d98cb4..0000000000 --- a/lib/libc/mingw/stdio/_getc_nolock.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -#undef _getc_nolock -int __cdecl _getc_nolock(FILE *stream); -int __cdecl _getc_nolock(FILE *stream) -{ - return _fgetc_nolock(stream); -} diff --git a/lib/libc/mingw/stdio/_getwc_nolock.c b/lib/libc/mingw/stdio/_getwc_nolock.c deleted file mode 100644 index fba41ca5ad..0000000000 --- a/lib/libc/mingw/stdio/_getwc_nolock.c +++ /dev/null @@ -1,10 +0,0 @@ -#undef __MSVCRT_VERSION__ -#define __MSVCRT_VERSION__ 0x800 -#include - -#undef _getwc_nolock -wint_t __cdecl _getwc_nolock(FILE *stream); -wint_t __cdecl _getwc_nolock(FILE *stream) -{ - return _fgetwc_nolock(stream); -} diff --git a/lib/libc/mingw/stdio/_putc_nolock.c b/lib/libc/mingw/stdio/_putc_nolock.c deleted file mode 100644 index 47f1655bd0..0000000000 --- a/lib/libc/mingw/stdio/_putc_nolock.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -#undef _putc_nolock -int __cdecl _putc_nolock(int c, FILE *stream); -int __cdecl _putc_nolock(int c, FILE *stream) -{ - return _fputc_nolock(c, stream); -} diff --git a/lib/libc/mingw/stdio/_putwc_nolock.c b/lib/libc/mingw/stdio/_putwc_nolock.c deleted file mode 100644 index 44da19f4cf..0000000000 --- a/lib/libc/mingw/stdio/_putwc_nolock.c +++ /dev/null @@ -1,10 +0,0 @@ -#undef __MSVCRT_VERSION__ -#define __MSVCRT_VERSION__ 0x800 -#include - -#undef _putwc_nolock -wint_t __cdecl _putwc_nolock(wchar_t c, FILE *stream); -wint_t __cdecl _putwc_nolock(wchar_t c, FILE *stream) -{ - return _fputwc_nolock(c, stream); -} diff --git a/lib/libc/mingw/stdio/_vscprintf.c b/lib/libc/mingw/stdio/_vscprintf.c deleted file mode 100644 index bb596b4d67..0000000000 --- a/lib/libc/mingw/stdio/_vscprintf.c +++ /dev/null @@ -1,86 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include -#include -#include -#include - -/* emulation of _vscprintf() via _vsnprintf() */ -static int __cdecl emu_vscprintf(const char * __restrict__ format, va_list arglist) -{ - char *buffer, *new_buffer; - size_t size; - int ret = -1; - - /* if format is a null pointer, _vscprintf() returns -1 and sets errno to EINVAL */ - if (!format) { - _set_errno(EINVAL); - return -1; - } - - /* size for _vsnprintf() must be non-zero and buffer must have place for terminating null character */ - size = strlen(format) * 2 + 1; - buffer = malloc(size); - - if (!buffer) { - _set_errno(ENOMEM); - return -1; - } - - /* if the number of characters to write is greater than size, _vsnprintf() returns -1 */ - while (size < SIZE_MAX/2 && (ret = _vsnprintf(buffer, size, format, arglist)) < 0) { - /* in this case try with larger buffer */ - size *= 2; - new_buffer = realloc(buffer, size); - if (!new_buffer) - break; - buffer = new_buffer; - } - - free(buffer); - - if (ret < 0) { - _set_errno(ENOMEM); - return -1; - } - - return ret; -} - -#ifndef __LIBMSVCRT_OS__ - -int (__cdecl *__MINGW_IMP_SYMBOL(_vscprintf))(const char * __restrict__, va_list) = emu_vscprintf; - -#else - -#include - -static int __cdecl init_vscprintf(const char * __restrict__ format, va_list arglist); - -int (__cdecl *__MINGW_IMP_SYMBOL(_vscprintf))(const char * __restrict__, va_list) = init_vscprintf; - -static int __cdecl init_vscprintf(const char * __restrict__ format, va_list arglist) -{ - HMODULE msvcrt = __mingw_get_msvcrt_handle(); - int (__cdecl *func)(const char * __restrict__, va_list) = NULL; - - if (msvcrt) - func = (int (__cdecl *)(const char * __restrict__, va_list))GetProcAddress(msvcrt, "_vscprintf"); - - if (!func) - func = emu_vscprintf; - - return (__MINGW_IMP_SYMBOL(_vscprintf) = func)(format, arglist); -} - -#endif - -int __cdecl _vscprintf(const char * __restrict__ format, va_list arglist) -{ - return __MINGW_IMP_SYMBOL(_vscprintf)(format, arglist); -} diff --git a/lib/libc/mingw/stdio/acrt_iob_func.c b/lib/libc/mingw/stdio/acrt_iob_func.c deleted file mode 100644 index 085a5fa739..0000000000 --- a/lib/libc/mingw/stdio/acrt_iob_func.c +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -FILE *__cdecl __acrt_iob_func(unsigned index) -{ - return &(__iob_func()[index]); -} - -typedef FILE *__cdecl (*_f__acrt_iob_func)(unsigned index); -_f__acrt_iob_func __MINGW_IMP_SYMBOL(__acrt_iob_func) = __acrt_iob_func; diff --git a/lib/libc/mingw/stdio/atoll.c b/lib/libc/mingw/stdio/atoll.c deleted file mode 100644 index 278c01cf92..0000000000 --- a/lib/libc/mingw/stdio/atoll.c +++ /dev/null @@ -1,13 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#define __CRT__NO_INLINE -#include - -long long __cdecl atoll(const char * nptr) { return strtoll(nptr, NULL, 10); } -long long (__cdecl *__MINGW_IMP_SYMBOL(atoll))(const char *) = atoll; - -__int64 __attribute__((alias("atoll"))) __cdecl _atoi64(const char * nptr); -__int64 (__cdecl *__MINGW_IMP_SYMBOL(_atoi64))(const char *) = _atoi64; diff --git a/lib/libc/mingw/stdio/fseeki64.c b/lib/libc/mingw/stdio/fseeki64.c deleted file mode 100644 index f70062e391..0000000000 --- a/lib/libc/mingw/stdio/fseeki64.c +++ /dev/null @@ -1,50 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include - -#if !defined(__arm__) && !defined(__aarch64__) /* we have F_ARM_ANY(_fseeki64) in msvcrt.def.in */ -int __cdecl _fseeki64(FILE* stream, __int64 offset, int whence) -{ - fpos_t pos; - if (whence == SEEK_CUR) - { - /* If stream is invalid, fgetpos sets errno. */ - if (fgetpos (stream, &pos)) - return (-1); - pos += (fpos_t) offset; - } - else if (whence == SEEK_END) - { - /* If writing, we need to flush before getting file length. */ - fflush (stream); - pos = (fpos_t) (_filelengthi64 (_fileno (stream)) + offset); - } - else if (whence == SEEK_SET) - pos = (fpos_t) offset; - else - { - errno = EINVAL; - return (-1); - } - return fsetpos (stream, &pos); -} - -int __cdecl (*__MINGW_IMP_SYMBOL(_fseeki64))(FILE*, __int64, int) = _fseeki64; -#endif /* !defined(__arm__) && !defined(__aarch64__) */ - -__int64 __cdecl _ftelli64(FILE* stream) -{ - fpos_t pos; - if (fgetpos (stream, &pos)) - return -1LL; - else - return (__int64) pos; -} - -__int64 __cdecl (*__MINGW_IMP_SYMBOL(_ftelli64))(FILE*) = _ftelli64; - diff --git a/lib/libc/mingw/stdio/mingw_dummy__lock.c b/lib/libc/mingw/stdio/mingw_dummy__lock.c deleted file mode 100644 index 7afe665d0c..0000000000 --- a/lib/libc/mingw/stdio/mingw_dummy__lock.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -void __cdecl _lock(int locknum); -void __cdecl _unlock(int locknum); -void __cdecl _lock(__UNUSED_PARAM(int locknum)) { } -void __cdecl _unlock(__UNUSED_PARAM(int locknum)) { } diff --git a/lib/libc/mingw/stdio/mingw_lock.c b/lib/libc/mingw/stdio/mingw_lock.c deleted file mode 100644 index ebc3c256fe..0000000000 --- a/lib/libc/mingw/stdio/mingw_lock.c +++ /dev/null @@ -1,102 +0,0 @@ -#define _CRTIMP -#include -#include -#include "internal.h" - -/*** - * Copy of MS functions _lock_file, _unlock_file which are missing from - * msvcrt.dll and msvcr80.dll. They are needed to atomic/lock stdio - * functions (printf, fprintf, vprintf, vfprintf). We need exactly the same - * lock that MS uses in msvcrt.dll because we can mix mingw-w64 code with - * original MS functions (puts, fputs for example). -***/ - - -_CRTIMP void __cdecl _lock(int locknum); -_CRTIMP void __cdecl _unlock(int locknum); -#define _STREAM_LOCKS 16 -#define _IOLOCKED 0x8000 - - -/*** -* _lock_file - Lock a FILE -* -*Purpose: -* Assert the lock for a stdio-level file -* -*Entry: -* pf = __piob[] entry (pointer to a FILE or _FILEX) -* -*Exit: -* -*Exceptions: -* -*******************************************************************************/ - -void __cdecl _lock_file( FILE *pf ) -{ - /* - * The way the FILE (pointed to by pf) is locked depends on whether - * it is part of _iob[] or not - */ - if ( (pf >= __acrt_iob_func(0)) && (pf <= __acrt_iob_func(_IOB_ENTRIES-1)) ) - { - /* - * FILE lies in _iob[] so the lock lies in _locktable[]. - */ - _lock( _STREAM_LOCKS + (int)(pf - __acrt_iob_func(0)) ); - /* We set _IOLOCKED to indicate we locked the stream */ - pf->_flag |= _IOLOCKED; - } - else - /* - * Not part of _iob[]. Therefore, *pf is a _FILEX and the - * lock field of the struct is an initialized critical - * section. - */ - EnterCriticalSection( &(((_FILEX *)pf)->lock) ); -} - -void *__MINGW_IMP_SYMBOL(_lock_file) = _lock_file; - - -/*** -* _unlock_file - Unlock a FILE -* -*Purpose: -* Release the lock for a stdio-level file -* -*Entry: -* pf = __piob[] entry (pointer to a FILE or _FILEX) -* -*Exit: -* -*Exceptions: -* -*******************************************************************************/ - -void __cdecl _unlock_file( FILE *pf ) -{ - /* - * The way the FILE (pointed to by pf) is unlocked depends on whether - * it is part of _iob[] or not - */ - if ( (pf >= __acrt_iob_func(0)) && (pf <= __acrt_iob_func(_IOB_ENTRIES-1)) ) - { - /* - * FILE lies in _iob[] so the lock lies in _locktable[]. - * We reset _IOLOCKED to indicate we unlock the stream. - */ - pf->_flag &= ~_IOLOCKED; - _unlock( _STREAM_LOCKS + (int)(pf - __acrt_iob_func(0)) ); - } - else - /* - * Not part of _iob[]. Therefore, *pf is a _FILEX and the - * lock field of the struct is an initialized critical - * section. - */ - LeaveCriticalSection( &(((_FILEX *)pf)->lock) ); -} - -void *__MINGW_IMP_SYMBOL(_unlock_file) = _unlock_file; diff --git a/lib/libc/mingw/math/arm-common/copysignl.c b/lib/libc/mingw/stdio/scanf2-argcount-char.c similarity index 67% rename from lib/libc/mingw/math/arm-common/copysignl.c rename to lib/libc/mingw/stdio/scanf2-argcount-char.c index ea66215f2d..bc18dc5685 100644 --- a/lib/libc/mingw/math/arm-common/copysignl.c +++ b/lib/libc/mingw/stdio/scanf2-argcount-char.c @@ -3,9 +3,7 @@ * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -#include -long double copysignl(long double x, long double y) -{ - return copysign(x, y); -} +#define FUNC __ms_scanf_max_arg_count_internal +#define TYPE char +#include "scanf2-argcount-template.c" diff --git a/lib/libc/mingw/math/arm-common/asinhf.c b/lib/libc/mingw/stdio/scanf2-argcount-template.c similarity index 53% rename from lib/libc/mingw/math/arm-common/asinhf.c rename to lib/libc/mingw/stdio/scanf2-argcount-template.c index f1ccea2030..fec8a09397 100644 --- a/lib/libc/mingw/math/arm-common/asinhf.c +++ b/lib/libc/mingw/stdio/scanf2-argcount-template.c @@ -4,15 +4,15 @@ * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -#include +#include -float asinhf(float x) +size_t FUNC(const TYPE *format); +size_t FUNC(const TYPE *format) { - if (isinf(x*x + 1)) { - if (x > 0) - return logf(2) + logf(x); - else - return -logf(2) - logf(-x); + size_t count = 0; + for (; *format; format++) { + if (*format == (TYPE)'%') + count++; } - return logf(x + sqrtf(x*x + 1)); + return count; } diff --git a/lib/libc/mingw/math/fminf.c b/lib/libc/mingw/stdio/scanf2-argcount-wchar.c similarity index 64% rename from lib/libc/mingw/math/fminf.c rename to lib/libc/mingw/stdio/scanf2-argcount-wchar.c index 2703cb1977..cece837a3e 100644 --- a/lib/libc/mingw/math/fminf.c +++ b/lib/libc/mingw/stdio/scanf2-argcount-wchar.c @@ -3,10 +3,7 @@ * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -#include -float -fminf (float _x, float _y) -{ - return ((islessequal(_x, _y) || __isnanf (_y)) ? _x : _y ); -} +#define FUNC __ms_wscanf_max_arg_count_internal +#define TYPE wchar_t +#include "scanf2-argcount-template.c" diff --git a/lib/libc/mingw/stdio/snprintf_alias.c b/lib/libc/mingw/stdio/snprintf_alias.c deleted file mode 100644 index b9a892db31..0000000000 --- a/lib/libc/mingw/stdio/snprintf_alias.c +++ /dev/null @@ -1,26 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -/* Intentionally not including stdio.h, as it unconditionally defines the - * snprintf inline, and it can't be renamed with "#define snprintf othername" - * either, as stdio.h contains "#undef snprintf". */ - -int __cdecl __ms_vsnprintf(char *buffer, size_t n, const char *format, va_list arg); - -int __cdecl snprintf(char *buffer, size_t n, const char *format, ...); -int __cdecl snprintf(char *buffer, size_t n, const char *format, ...) -{ - int retval; - va_list argptr; - - va_start(argptr, format); - retval = __ms_vsnprintf(buffer, n, format, argptr); - va_end(argptr); - return retval; -} diff --git a/lib/libc/mingw/stdio/strtof.c b/lib/libc/mingw/stdio/strtof.c deleted file mode 100644 index c4e4eb918a..0000000000 --- a/lib/libc/mingw/stdio/strtof.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 mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include -#include -#include -#include - -float strtof( const char *nptr, char **endptr) -{ - double ret = strtod(nptr, endptr); - if (isfinite(ret)) { - /* Check for cases that aren't out of range for doubles, but that are - * for floats. */ - if (ret > FLT_MAX) - errno = ERANGE; - else if (ret < -FLT_MAX) - errno = ERANGE; - else if (ret > 0 && ret < FLT_MIN) - errno = ERANGE; - else if (ret < 0 && ret > -FLT_MIN) - errno = ERANGE; - } - return ret; -} diff --git a/lib/libc/mingw/stdio/vsnprintf_alias.c b/lib/libc/mingw/stdio/vsnprintf_alias.c deleted file mode 100644 index d62a07f851..0000000000 --- a/lib/libc/mingw/stdio/vsnprintf_alias.c +++ /dev/null @@ -1,20 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include -#include - -/* Intentionally not including stdio.h, as it unconditionally defines the - * vsnprintf inline, and it can't be renamed with "#define vsnprintf othername" - * either, as stdio.h contains "#undef vsnprintf". */ - -int __cdecl __ms_vsnprintf(char *buffer, size_t n, const char *format, va_list arg); - -int __cdecl vsnprintf(char *buffer, size_t n, const char *format, va_list arg); -int __cdecl vsnprintf(char *buffer, size_t n, const char *format, va_list arg) -{ - return __ms_vsnprintf(buffer, n, format, arg); -} diff --git a/lib/std/Target.zig b/lib/std/Target.zig index f8ce63b37f..a3d165b568 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -2636,14 +2636,52 @@ pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool { if (target.isMinGW()) { if (eqlIgnoreCase(ignore_case, name, "m")) return true; - if (eqlIgnoreCase(ignore_case, name, "uuid")) - return true; if (eqlIgnoreCase(ignore_case, name, "mingw32")) return true; if (eqlIgnoreCase(ignore_case, name, "msvcrt-os")) return true; if (eqlIgnoreCase(ignore_case, name, "mingwex")) return true; + if (eqlIgnoreCase(ignore_case, name, "uuid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "bits")) + return true; + if (eqlIgnoreCase(ignore_case, name, "dmoguids")) + return true; + if (eqlIgnoreCase(ignore_case, name, "dxerr8")) + return true; + if (eqlIgnoreCase(ignore_case, name, "dxerr9")) + return true; + if (eqlIgnoreCase(ignore_case, name, "mfuuid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "msxml2")) + return true; + if (eqlIgnoreCase(ignore_case, name, "msxml6")) + return true; + if (eqlIgnoreCase(ignore_case, name, "amstrmid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "wbemuuid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "wmcodecdspuuid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "dxguid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "ksguid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "locationapi")) + return true; + if (eqlIgnoreCase(ignore_case, name, "portabledeviceguids")) + return true; + if (eqlIgnoreCase(ignore_case, name, "mfuuid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "dloadhelper")) + return true; + if (eqlIgnoreCase(ignore_case, name, "strmiids")) + return true; + if (eqlIgnoreCase(ignore_case, name, "mfuuid")) + return true; + if (eqlIgnoreCase(ignore_case, name, "adsiid")) + return true; return false; } diff --git a/src/Compilation.zig b/src/Compilation.zig index 803378a665..171c2ecf60 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -758,10 +758,7 @@ pub const MiscTask = enum { @"mingw-w64 crt2.o", @"mingw-w64 dllcrt2.o", - @"mingw-w64 mingw32.lib", - @"mingw-w64 msvcrt-os.lib", @"mingw-w64 mingwex.lib", - @"mingw-w64 uuid.lib", }; pub const MiscError = struct { @@ -1818,14 +1815,9 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil if (comp.wantBuildMinGWFromSource()) { if (!target_util.canBuildLibC(target)) return error.LibCUnavailable; - const static_lib_jobs = [_]Job{ - .{ .mingw_crt_file = .mingw32_lib }, - .{ .mingw_crt_file = .mingwex_lib }, - .{ .mingw_crt_file = .uuid_lib }, - }; const crt_job: Job = .{ .mingw_crt_file = if (is_dyn_lib) .dllcrt2_o else .crt2_o }; - try comp.work_queue.ensureUnusedCapacity(static_lib_jobs.len + 1); - comp.work_queue.writeAssumeCapacity(&static_lib_jobs); + try comp.work_queue.ensureUnusedCapacity(2); + comp.work_queue.writeItemAssumeCapacity(.{ .mingw_crt_file = .mingwex_lib }); comp.work_queue.writeItemAssumeCapacity(crt_job); // When linking mingw-w64 there are some import libs we always need. diff --git a/src/link/Coff/lld.zig b/src/link/Coff/lld.zig index 6b9054b2b4..b4843ae6cd 100644 --- a/src/link/Coff/lld.zig +++ b/src/link/Coff/lld.zig @@ -408,16 +408,7 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, prog_node: *std.Progress.Node) try argv.append(try comp.get_libc_crt_file(arena, "crt2.obj")); } - try argv.append(try comp.get_libc_crt_file(arena, "mingw32.lib")); try argv.append(try comp.get_libc_crt_file(arena, "mingwex.lib")); - try argv.append(try comp.get_libc_crt_file(arena, "uuid.lib")); - - for (mingw.always_link_libs) |name| { - if (!comp.system_libs.contains(name)) { - const lib_basename = try allocPrint(arena, "{s}.lib", .{name}); - try argv.append(try comp.get_libc_crt_file(arena, lib_basename)); - } - } } else { const lib_str = switch (comp.config.link_mode) { .Dynamic => "", diff --git a/src/mingw.zig b/src/mingw.zig index a06102a5ea..2efc0fe44c 100644 --- a/src/mingw.zig +++ b/src/mingw.zig @@ -13,9 +13,7 @@ const Cache = std.Build.Cache; pub const CRTFile = enum { crt2_o, dllcrt2_o, - mingw32_lib, mingwex_lib, - uuid_lib, }; pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile, prog_node: *std.Progress.Node) !void { @@ -31,8 +29,6 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile, prog_node: *std.Progr var args = std.ArrayList([]const u8).init(arena); try add_cc_args(comp, arena, &args); try args.appendSlice(&[_][]const u8{ - "-D_SYSCRT=1", - "-DCRTDLL=1", // Prevents warning: 'used' attribute ignored on a non-definition declaration // pointing at extern _CRTALLOC "-Wno-ignored-attributes", @@ -55,10 +51,6 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile, prog_node: *std.Progr .dllcrt2_o => { var args = std.ArrayList([]const u8).init(arena); try add_cc_args(comp, arena, &args); - try args.appendSlice(&[_][]const u8{ - "-D_SYSCRT=1", - "-DCRTDLL=1", - }); var files = [_]Compilation.CSourceFile{ .{ .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ @@ -71,144 +63,67 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile, prog_node: *std.Progr return comp.build_crt_file("dllcrt2", .Obj, .@"mingw-w64 dllcrt2.o", prog_node, &files); }, - .mingw32_lib => { - var c_source_files: [mingw32_lib_deps.len]Compilation.CSourceFile = undefined; - for (mingw32_lib_deps, 0..) |dep, i| { - var args = std.ArrayList([]const u8).init(arena); - try args.appendSlice(&[_][]const u8{ - "-DHAVE_CONFIG_H", - "-D_SYSCRT=1", - "-DCRTDLL=1", - - "-isystem", - try comp.zig_lib_directory.join(arena, &[_][]const u8{ - "libc", "include", "any-windows-any", - }), - - "-isystem", - try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", "include" }), - - "-std=gnu99", - "-D_CRTBLD", - // According to Martin Storsjö, - // > the files under mingw-w64-crt are designed to always - // be built with __MSVCRT_VERSION__=0x700 - "-D__MSVCRT_VERSION__=0x700", - "-D__USE_MINGW_ANSI_STDIO=0", - }); - c_source_files[i] = .{ - .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ - "libc", "mingw", "crt", dep, - }), - .extra_flags = args.items, - .owner = undefined, - }; - } - return comp.build_crt_file("mingw32", .Lib, .@"mingw-w64 mingw32.lib", prog_node, &c_source_files); - }, - .mingwex_lib => { - const extra_flags = try arena.dupe([]const u8, &[_][]const u8{ - "-DHAVE_CONFIG_H", - - "-I", - try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw" }), - - "-I", - try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", "include" }), - - "-std=gnu99", - "-D_CRTBLD", - // According to Martin Storsjö, - // > the files under mingw-w64-crt are designed to always - // be built with __MSVCRT_VERSION__=0x700 - "-D__MSVCRT_VERSION__=0x700", - "-D__USE_MINGW_ANSI_STDIO=0", - "-isystem", - try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "include", "any-windows-any" }), - }); + var args = std.ArrayList([]const u8).init(arena); + try add_cc_args(comp, arena, &args); var c_source_files = std.ArrayList(Compilation.CSourceFile).init(arena); for (mingwex_generic_src) |dep| { - (try c_source_files.addOne()).* = .{ + try c_source_files.append(.{ .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", dep, }), - .extra_flags = extra_flags, + .extra_flags = args.items, .owner = undefined, - }; + }); } const target = comp.getTarget(); if (target.cpu.arch == .x86 or target.cpu.arch == .x86_64) { for (mingwex_x86_src) |dep| { - (try c_source_files.addOne()).* = .{ + try c_source_files.append(.{ .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", dep, }), - .extra_flags = extra_flags, + .extra_flags = args.items, .owner = undefined, - }; + }); + } + if (target.cpu.arch == .x86) { + for (mingwex_x86_32_src) |dep| { + try c_source_files.append(.{ + .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ + "libc", "mingw", dep, + }), + .extra_flags = args.items, + .owner = undefined, + }); + } } } else if (target.cpu.arch.isARM()) { for (mingwex_arm32_src) |dep| { - (try c_source_files.addOne()).* = .{ + try c_source_files.append(.{ .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", dep, }), - .extra_flags = extra_flags, + .extra_flags = args.items, .owner = undefined, - }; + }); } } else if (target.cpu.arch.isAARCH64()) { for (mingwex_arm64_src) |dep| { - (try c_source_files.addOne()).* = .{ + try c_source_files.append(.{ .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", dep, }), - .extra_flags = extra_flags, + .extra_flags = args.items, .owner = undefined, - }; + }); } } else { @panic("unsupported arch"); } return comp.build_crt_file("mingwex", .Lib, .@"mingw-w64 mingwex.lib", prog_node, c_source_files.items); }, - - .uuid_lib => { - const extra_flags = try arena.dupe([]const u8, &[_][]const u8{ - "-DHAVE_CONFIG_H", - - "-I", - try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw" }), - - "-I", - try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", "include" }), - - "-std=gnu99", - "-D_CRTBLD", - // According to Martin Storsjö, - // > the files under mingw-w64-crt are designed to always - // be built with __MSVCRT_VERSION__=0x700 - "-D__MSVCRT_VERSION__=0x700", - "-D__USE_MINGW_ANSI_STDIO=0", - "-isystem", - try comp.zig_lib_directory.join(arena, &[_][]const u8{ - "libc", "include", "any-windows-any", - }), - }); - var c_source_files: [uuid_src.len]Compilation.CSourceFile = undefined; - for (uuid_src, 0..) |dep, i| { - c_source_files[i] = .{ - .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ - "libc", "mingw", "libsrc", dep, - }), - .extra_flags = extra_flags, - .owner = undefined, - }; - } - return comp.build_crt_file("uuid", .Lib, .@"mingw-w64 uuid.lib", prog_node, &c_source_files); - }, } } @@ -235,6 +150,8 @@ fn add_cc_args( try args.appendSlice(&[_][]const u8{ "-std=gnu11", "-D_CRTBLD", + "-D_SYSCRT=1", + "-DCRTDLL=1", // According to Martin Storsjö, // > the files under mingw-w64-crt are designed to always // be built with __MSVCRT_VERSION__=0x700 @@ -469,38 +386,38 @@ fn findDef( return error.FileNotFound; } -const mingw32_lib_deps = [_][]const u8{ - "dll_argv.c", - "gccmain.c", - "natstart.c", - "pseudo-reloc-list.c", - "wildcard.c", - "charmax.c", - "dllargv.c", - "_newmode.c", - "tlssup.c", - "xncommod.c", - "cinitexe.c", - "merr.c", - "usermatherr.c", - "pesect.c", - "udllargc.c", - "xthdloc.c", - "CRT_fp10.c", - "mingw_helpers.c", - "pseudo-reloc.c", - "udll_argv.c", - "xtxtmode.c", - "crt_handler.c", - "tlsthrd.c", - "tlsmthread.c", - "tlsmcrt.c", - "cxa_atexit.c", - "cxa_thread_atexit.c", - "tls_atexit.c", -}; - const mingwex_generic_src = [_][]const u8{ + // mingw32 + "crt" ++ path.sep_str ++ "dll_argv.c", + "crt" ++ path.sep_str ++ "gccmain.c", + "crt" ++ path.sep_str ++ "natstart.c", + "crt" ++ path.sep_str ++ "pseudo-reloc-list.c", + "crt" ++ path.sep_str ++ "wildcard.c", + "crt" ++ path.sep_str ++ "charmax.c", + "crt" ++ path.sep_str ++ "dllargv.c", + "crt" ++ path.sep_str ++ "_newmode.c", + "crt" ++ path.sep_str ++ "tlssup.c", + "crt" ++ path.sep_str ++ "xncommod.c", + "crt" ++ path.sep_str ++ "cinitexe.c", + "crt" ++ path.sep_str ++ "merr.c", + "crt" ++ path.sep_str ++ "usermatherr.c", + "crt" ++ path.sep_str ++ "pesect.c", + "crt" ++ path.sep_str ++ "udllargc.c", + "crt" ++ path.sep_str ++ "xthdloc.c", + "crt" ++ path.sep_str ++ "CRT_fp10.c", + "crt" ++ path.sep_str ++ "mingw_helpers.c", + "crt" ++ path.sep_str ++ "pseudo-reloc.c", + "crt" ++ path.sep_str ++ "udll_argv.c", + "crt" ++ path.sep_str ++ "xtxtmode.c", + "crt" ++ path.sep_str ++ "crt_handler.c", + "crt" ++ path.sep_str ++ "tlsthrd.c", + "crt" ++ path.sep_str ++ "tlsmthread.c", + "crt" ++ path.sep_str ++ "tlsmcrt.c", + "crt" ++ path.sep_str ++ "cxa_atexit.c", + "crt" ++ path.sep_str ++ "cxa_thread_atexit.c", + "crt" ++ path.sep_str ++ "tls_atexit.c", + // mingwex + "cfguard" ++ path.sep_str ++ "mingw_cfguard_support.c", "complex" ++ path.sep_str ++ "_cabs.c", "complex" ++ path.sep_str ++ "cabs.c", "complex" ++ path.sep_str ++ "cabsf.c", @@ -555,7 +472,6 @@ const mingwex_generic_src = [_][]const u8{ "complex" ++ path.sep_str ++ "ctanl.c", "crt" ++ path.sep_str ++ "dllentry.c", "crt" ++ path.sep_str ++ "dllmain.c", - "crt" ++ path.sep_str ++ "ucrtbase_compat.c", "gdtoa" ++ path.sep_str ++ "arithchk.c", "gdtoa" ++ path.sep_str ++ "dmisc.c", "gdtoa" ++ path.sep_str ++ "dtoa.c", @@ -577,40 +493,16 @@ const mingwex_generic_src = [_][]const u8{ "gdtoa" ++ path.sep_str ++ "strtopx.c", "gdtoa" ++ path.sep_str ++ "sum.c", "gdtoa" ++ path.sep_str ++ "ulp.c", - "math" ++ path.sep_str ++ "cbrt.c", - "math" ++ path.sep_str ++ "cbrtf.c", - "math" ++ path.sep_str ++ "cbrtl.c", - "math" ++ path.sep_str ++ "copysign.c", - "math" ++ path.sep_str ++ "copysignf.c", - "math" ++ path.sep_str ++ "coshf.c", "math" ++ path.sep_str ++ "coshl.c", - "math" ++ path.sep_str ++ "erfl.c", - "math" ++ path.sep_str ++ "expf.c", - "math" ++ path.sep_str ++ "fabs.c", - "math" ++ path.sep_str ++ "fabsf.c", "math" ++ path.sep_str ++ "fabsl.c", - "math" ++ path.sep_str ++ "fdim.c", - "math" ++ path.sep_str ++ "fdimf.c", - "math" ++ path.sep_str ++ "fdiml.c", - "math" ++ path.sep_str ++ "fma.c", - "math" ++ path.sep_str ++ "fmaf.c", - "math" ++ path.sep_str ++ "fmal.c", - "math" ++ path.sep_str ++ "fmax.c", - "math" ++ path.sep_str ++ "fmaxf.c", - "math" ++ path.sep_str ++ "fmaxl.c", - "math" ++ path.sep_str ++ "fmin.c", - "math" ++ path.sep_str ++ "fminf.c", - "math" ++ path.sep_str ++ "fminl.c", "math" ++ path.sep_str ++ "fp_consts.c", "math" ++ path.sep_str ++ "fp_constsf.c", "math" ++ path.sep_str ++ "fp_constsl.c", "math" ++ path.sep_str ++ "fpclassify.c", "math" ++ path.sep_str ++ "fpclassifyf.c", "math" ++ path.sep_str ++ "fpclassifyl.c", - "math" ++ path.sep_str ++ "frexp.c", "math" ++ path.sep_str ++ "frexpf.c", "math" ++ path.sep_str ++ "frexpl.c", - "math" ++ path.sep_str ++ "hypot.c", "math" ++ path.sep_str ++ "hypotf.c", "math" ++ path.sep_str ++ "hypotl.c", "math" ++ path.sep_str ++ "isnan.c", @@ -620,51 +512,19 @@ const mingwex_generic_src = [_][]const u8{ "math" ++ path.sep_str ++ "lgamma.c", "math" ++ path.sep_str ++ "lgammaf.c", "math" ++ path.sep_str ++ "lgammal.c", - "math" ++ path.sep_str ++ "llrint.c", - "math" ++ path.sep_str ++ "llrintf.c", - "math" ++ path.sep_str ++ "llrintl.c", - "math" ++ path.sep_str ++ "llround.c", - "math" ++ path.sep_str ++ "llroundf.c", - "math" ++ path.sep_str ++ "llroundl.c", - "math" ++ path.sep_str ++ "log10f.c", - "math" ++ path.sep_str ++ "logf.c", - "math" ++ path.sep_str ++ "lrint.c", - "math" ++ path.sep_str ++ "lrintf.c", - "math" ++ path.sep_str ++ "lrintl.c", - "math" ++ path.sep_str ++ "lround.c", - "math" ++ path.sep_str ++ "lroundf.c", - "math" ++ path.sep_str ++ "lroundl.c", - "math" ++ path.sep_str ++ "modf.c", - "math" ++ path.sep_str ++ "modff.c", "math" ++ path.sep_str ++ "modfl.c", - "math" ++ path.sep_str ++ "nextafterf.c", "math" ++ path.sep_str ++ "nextafterl.c", "math" ++ path.sep_str ++ "nexttoward.c", - "math" ++ path.sep_str ++ "nexttowardf.c", - "math" ++ path.sep_str ++ "powf.c", "math" ++ path.sep_str ++ "powi.c", "math" ++ path.sep_str ++ "powif.c", "math" ++ path.sep_str ++ "powil.c", - "math" ++ path.sep_str ++ "round.c", - "math" ++ path.sep_str ++ "roundf.c", - "math" ++ path.sep_str ++ "roundl.c", - "math" ++ path.sep_str ++ "s_erf.c", - "math" ++ path.sep_str ++ "sf_erf.c", "math" ++ path.sep_str ++ "signbit.c", "math" ++ path.sep_str ++ "signbitf.c", "math" ++ path.sep_str ++ "signbitl.c", "math" ++ path.sep_str ++ "signgam.c", - "math" ++ path.sep_str ++ "sinhf.c", "math" ++ path.sep_str ++ "sinhl.c", - "math" ++ path.sep_str ++ "sqrt.c", - "math" ++ path.sep_str ++ "sqrtf.c", "math" ++ path.sep_str ++ "sqrtl.c", - "math" ++ path.sep_str ++ "tanhf.c", "math" ++ path.sep_str ++ "tanhl.c", - "math" ++ path.sep_str ++ "tgamma.c", - "math" ++ path.sep_str ++ "tgammaf.c", - "math" ++ path.sep_str ++ "tgammal.c", - "math" ++ path.sep_str ++ "truncl.c", "misc" ++ path.sep_str ++ "alarm.c", "misc" ++ path.sep_str ++ "btowc.c", "misc" ++ path.sep_str ++ "delay-f.c", @@ -690,16 +550,13 @@ const mingwex_generic_src = [_][]const u8{ "misc" ++ path.sep_str ++ "getlogin.c", "misc" ++ path.sep_str ++ "getopt.c", "misc" ++ path.sep_str ++ "gettimeofday.c", - "misc" ++ path.sep_str ++ "imaxabs.c", - "misc" ++ path.sep_str ++ "imaxdiv.c", "misc" ++ path.sep_str ++ "isblank.c", "misc" ++ path.sep_str ++ "iswblank.c", - "misc" ++ path.sep_str ++ "mbrtowc.c", - "misc" ++ path.sep_str ++ "mbsinit.c", "misc" ++ path.sep_str ++ "mempcpy.c", "misc" ++ path.sep_str ++ "mingw-access.c", "misc" ++ path.sep_str ++ "mingw-aligned-malloc.c", "misc" ++ path.sep_str ++ "mingw_getsp.S", + "misc" ++ path.sep_str ++ "mingw_longjmp.S", "misc" ++ path.sep_str ++ "mingw_matherr.c", "misc" ++ path.sep_str ++ "mingw_mbwc_convert.c", "misc" ++ path.sep_str ++ "mingw_usleep.c", @@ -707,18 +564,14 @@ const mingwex_generic_src = [_][]const u8{ "misc" ++ path.sep_str ++ "mingw_wcstof.c", "misc" ++ path.sep_str ++ "mingw_wcstold.c", "misc" ++ path.sep_str ++ "mkstemp.c", - "misc" ++ path.sep_str ++ "seterrno.c", "misc" ++ path.sep_str ++ "sleep.c", "misc" ++ path.sep_str ++ "strnlen.c", "misc" ++ path.sep_str ++ "strsafe.c", - "misc" ++ path.sep_str ++ "strtoimax.c", - "misc" ++ path.sep_str ++ "strtoumax.c", "misc" ++ path.sep_str ++ "tdelete.c", + "misc" ++ path.sep_str ++ "tdestroy.c", "misc" ++ path.sep_str ++ "tfind.c", "misc" ++ path.sep_str ++ "tsearch.c", "misc" ++ path.sep_str ++ "twalk.c", - "misc" ++ path.sep_str ++ "ucrt-access.c", - "misc" ++ path.sep_str ++ "wcrtomb.c", "misc" ++ path.sep_str ++ "wcsnlen.c", "misc" ++ path.sep_str ++ "wcstof.c", "misc" ++ path.sep_str ++ "wcstoimax.c", @@ -737,17 +590,12 @@ const mingwex_generic_src = [_][]const u8{ "misc" ++ path.sep_str ++ "wmemmove.c", "misc" ++ path.sep_str ++ "wmempcpy.c", "misc" ++ path.sep_str ++ "wmemset.c", - "misc" ++ path.sep_str ++ "__initenv.c", "stdio" ++ path.sep_str ++ "_Exit.c", "stdio" ++ path.sep_str ++ "_findfirst64i32.c", "stdio" ++ path.sep_str ++ "_findnext64i32.c", "stdio" ++ path.sep_str ++ "_fstat.c", "stdio" ++ path.sep_str ++ "_fstat64i32.c", "stdio" ++ path.sep_str ++ "_ftime.c", - "stdio" ++ path.sep_str ++ "_getc_nolock.c", - "stdio" ++ path.sep_str ++ "_getwc_nolock.c", - "stdio" ++ path.sep_str ++ "_putc_nolock.c", - "stdio" ++ path.sep_str ++ "_putwc_nolock.c", "stdio" ++ path.sep_str ++ "_stat.c", "stdio" ++ path.sep_str ++ "_stat64i32.c", "stdio" ++ path.sep_str ++ "_wfindfirst64i32.c", @@ -755,10 +603,8 @@ const mingwex_generic_src = [_][]const u8{ "stdio" ++ path.sep_str ++ "_wstat.c", "stdio" ++ path.sep_str ++ "_wstat64i32.c", "stdio" ++ path.sep_str ++ "asprintf.c", - "stdio" ++ path.sep_str ++ "atoll.c", "stdio" ++ path.sep_str ++ "fgetpos64.c", "stdio" ++ path.sep_str ++ "fopen64.c", - "stdio" ++ path.sep_str ++ "fseeki64.c", "stdio" ++ path.sep_str ++ "fseeko32.c", "stdio" ++ path.sep_str ++ "fseeko64.c", "stdio" ++ path.sep_str ++ "fsetpos64.c", @@ -769,12 +615,10 @@ const mingwex_generic_src = [_][]const u8{ "stdio" ++ path.sep_str ++ "lltow.c", "stdio" ++ path.sep_str ++ "lseek64.c", "stdio" ++ path.sep_str ++ "mingw_asprintf.c", - "stdio" ++ path.sep_str ++ "mingw_dummy__lock.c", "stdio" ++ path.sep_str ++ "mingw_fprintf.c", "stdio" ++ path.sep_str ++ "mingw_fprintfw.c", "stdio" ++ path.sep_str ++ "mingw_fscanf.c", "stdio" ++ path.sep_str ++ "mingw_fwscanf.c", - "stdio" ++ path.sep_str ++ "mingw_lock.c", "stdio" ++ path.sep_str ++ "mingw_pformat.c", "stdio" ++ path.sep_str ++ "mingw_pformatw.c", "stdio" ++ path.sep_str ++ "mingw_printf.c", @@ -798,12 +642,36 @@ const mingwex_generic_src = [_][]const u8{ "stdio" ++ path.sep_str ++ "mingw_vsprintfw.c", "stdio" ++ path.sep_str ++ "mingw_wscanf.c", "stdio" ++ path.sep_str ++ "mingw_wvfscanf.c", + "stdio" ++ path.sep_str ++ "scanf2-argcount-char.c", + "stdio" ++ path.sep_str ++ "scanf2-argcount-wchar.c", "stdio" ++ path.sep_str ++ "scanf.S", "stdio" ++ path.sep_str ++ "snprintf.c", "stdio" ++ path.sep_str ++ "snwprintf.c", - "stdio" ++ path.sep_str ++ "strtof.c", "stdio" ++ path.sep_str ++ "strtok_r.c", "stdio" ++ path.sep_str ++ "truncate.c", + "stdio" ++ path.sep_str ++ "ulltoa.c", + "stdio" ++ path.sep_str ++ "ulltow.c", + "stdio" ++ path.sep_str ++ "vasprintf.c", + "stdio" ++ path.sep_str ++ "vfscanf.c", + "stdio" ++ path.sep_str ++ "vfscanf2.S", + "stdio" ++ path.sep_str ++ "vfwscanf.c", + "stdio" ++ path.sep_str ++ "vfwscanf2.S", + "stdio" ++ path.sep_str ++ "vscanf.c", + "stdio" ++ path.sep_str ++ "vscanf2.S", + "stdio" ++ path.sep_str ++ "vsnprintf.c", + "stdio" ++ path.sep_str ++ "vsnwprintf.c", + "stdio" ++ path.sep_str ++ "vsscanf.c", + "stdio" ++ path.sep_str ++ "vsscanf2.S", + "stdio" ++ path.sep_str ++ "vswscanf.c", + "stdio" ++ path.sep_str ++ "vswscanf2.S", + "stdio" ++ path.sep_str ++ "vwscanf.c", + "stdio" ++ path.sep_str ++ "vwscanf2.S", + "stdio" ++ path.sep_str ++ "wtoll.c", + // ucrtbase + "crt" ++ path.sep_str ++ "ucrtbase_compat.c", + "math" ++ path.sep_str ++ "_huge.c", + "misc" ++ path.sep_str ++ "__initenv.c", + "misc" ++ path.sep_str ++ "ucrt-access.c", "stdio" ++ path.sep_str ++ "ucrt__snwprintf.c", "stdio" ++ path.sep_str ++ "ucrt__vscprintf.c", "stdio" ++ path.sep_str ++ "ucrt__vsnprintf.c", @@ -823,226 +691,224 @@ const mingwex_generic_src = [_][]const u8{ "stdio" ++ path.sep_str ++ "ucrt_vsnprintf.c", "stdio" ++ path.sep_str ++ "ucrt_vsprintf.c", "stdio" ++ path.sep_str ++ "ucrt_vsscanf.c", - "stdio" ++ path.sep_str ++ "ulltoa.c", - "stdio" ++ path.sep_str ++ "ulltow.c", - "stdio" ++ path.sep_str ++ "vasprintf.c", - "stdio" ++ path.sep_str ++ "vfscanf.c", - "stdio" ++ path.sep_str ++ "vfscanf2.S", - "stdio" ++ path.sep_str ++ "vfwscanf.c", - "stdio" ++ path.sep_str ++ "vfwscanf2.S", - "stdio" ++ path.sep_str ++ "vscanf.c", - "stdio" ++ path.sep_str ++ "vscanf2.S", - "stdio" ++ path.sep_str ++ "vsnprintf.c", - "stdio" ++ path.sep_str ++ "vsnwprintf.c", - "stdio" ++ path.sep_str ++ "vsscanf.c", - "stdio" ++ path.sep_str ++ "vsscanf2.S", - "stdio" ++ path.sep_str ++ "vswscanf.c", - "stdio" ++ path.sep_str ++ "vswscanf2.S", - "stdio" ++ path.sep_str ++ "vwscanf.c", - "stdio" ++ path.sep_str ++ "vwscanf2.S", - "stdio" ++ path.sep_str ++ "wtoll.c", + // uuid + "libsrc" ++ path.sep_str ++ "ativscp-uuid.c", + "libsrc" ++ path.sep_str ++ "atsmedia-uuid.c", + "libsrc" ++ path.sep_str ++ "bth-uuid.c", + "libsrc" ++ path.sep_str ++ "cguid-uuid.c", + "libsrc" ++ path.sep_str ++ "comcat-uuid.c", + "libsrc" ++ path.sep_str ++ "ctxtcall-uuid.c", + "libsrc" ++ path.sep_str ++ "devguid.c", + "libsrc" ++ path.sep_str ++ "docobj-uuid.c", + "libsrc" ++ path.sep_str ++ "dxva-uuid.c", + "libsrc" ++ path.sep_str ++ "exdisp-uuid.c", + "libsrc" ++ path.sep_str ++ "extras-uuid.c", + "libsrc" ++ path.sep_str ++ "fwp-uuid.c", + "libsrc" ++ path.sep_str ++ "guid_nul.c", + "libsrc" ++ path.sep_str ++ "hlguids-uuid.c", + "libsrc" ++ path.sep_str ++ "hlink-uuid.c", + "libsrc" ++ path.sep_str ++ "mlang-uuid.c", + "libsrc" ++ path.sep_str ++ "msctf-uuid.c", + "libsrc" ++ path.sep_str ++ "mshtmhst-uuid.c", + "libsrc" ++ path.sep_str ++ "mshtml-uuid.c", + "libsrc" ++ path.sep_str ++ "msxml-uuid.c", + "libsrc" ++ path.sep_str ++ "netcfg-uuid.c", + "libsrc" ++ path.sep_str ++ "netcon-uuid.c", + "libsrc" ++ path.sep_str ++ "ntddkbd-uuid.c", + "libsrc" ++ path.sep_str ++ "ntddmou-uuid.c", + "libsrc" ++ path.sep_str ++ "ntddpar-uuid.c", + "libsrc" ++ path.sep_str ++ "ntddscsi-uuid.c", + "libsrc" ++ path.sep_str ++ "ntddser-uuid.c", + "libsrc" ++ path.sep_str ++ "ntddstor-uuid.c", + "libsrc" ++ path.sep_str ++ "ntddvdeo-uuid.c", + "libsrc" ++ path.sep_str ++ "oaidl-uuid.c", + "libsrc" ++ path.sep_str ++ "objidl-uuid.c", + "libsrc" ++ path.sep_str ++ "objsafe-uuid.c", + "libsrc" ++ path.sep_str ++ "ocidl-uuid.c", + "libsrc" ++ path.sep_str ++ "oleacc-uuid.c", + "libsrc" ++ path.sep_str ++ "olectlid-uuid.c", + "libsrc" ++ path.sep_str ++ "oleidl-uuid.c", + "libsrc" ++ path.sep_str ++ "power-uuid.c", + "libsrc" ++ path.sep_str ++ "powrprof-uuid.c", + "libsrc" ++ path.sep_str ++ "uianimation-uuid.c", + "libsrc" ++ path.sep_str ++ "usbcamdi-uuid.c", + "libsrc" ++ path.sep_str ++ "usbiodef-uuid.c", + "libsrc" ++ path.sep_str ++ "uuid.c", + "libsrc" ++ path.sep_str ++ "vds-uuid.c", + "libsrc" ++ path.sep_str ++ "virtdisk-uuid.c", + "libsrc" ++ path.sep_str ++ "vss-uuid.c", + "libsrc" ++ path.sep_str ++ "wia-uuid.c", + "libsrc" ++ path.sep_str ++ "windowscodecs.c", + // ws2_32 + "libsrc" ++ path.sep_str ++ "ws2_32.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_addr_equal.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6addr_isany.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6addr_isloopback.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6addr_setany.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6addr_setloopback.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_linklocal.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_loopback.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_mc_global.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_mc_linklocal.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_mc_nodelocal.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_mc_orglocal.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_mc_sitelocal.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_multicast.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_sitelocal.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_unspecified.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_v4compat.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_is_addr_v4mapped.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_set_addr_loopback.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "in6_set_addr_unspecified.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "gai_strerrorA.c", + "libsrc" ++ path.sep_str ++ "ws2tcpip" ++ path.sep_str ++ "gai_strerrorW.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiStrdup.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiParseV4Address.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiNewAddrInfo.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiQueryDNS.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiLookupNode.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiClone.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiLegacyFreeAddrInfo.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiLegacyGetAddrInfo.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiLegacyGetNameInfo.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiLoad.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiGetAddrInfo.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiGetNameInfo.c", + "libsrc" ++ path.sep_str ++ "wspiapi" ++ path.sep_str ++ "WspiapiFreeAddrInfo.c", + // dinput + "libsrc" ++ path.sep_str ++ "dinput_kbd.c", + "libsrc" ++ path.sep_str ++ "dinput_joy.c", + "libsrc" ++ path.sep_str ++ "dinput_joy2.c", + "libsrc" ++ path.sep_str ++ "dinput_mouse.c", + "libsrc" ++ path.sep_str ++ "dinput_mouse2.c", + // dloadhelper + "libsrc" ++ path.sep_str ++ "dloadhelper.c", + "misc" ++ path.sep_str ++ "delay-f.c", + // misc. + "libsrc" ++ path.sep_str ++ "bits.c", + "libsrc" ++ path.sep_str ++ "shell32.c", + "libsrc" ++ path.sep_str ++ "dmoguids.c", + "libsrc" ++ path.sep_str ++ "dxerr8.c", + "libsrc" ++ path.sep_str ++ "dxerr8w.c", + "libsrc" ++ path.sep_str ++ "dxerr9.c", + "libsrc" ++ path.sep_str ++ "dxerr9w.c", + "libsrc" ++ path.sep_str ++ "mfuuid.c", + "libsrc" ++ path.sep_str ++ "msxml2.c", + "libsrc" ++ path.sep_str ++ "msxml6.c", + "libsrc" ++ path.sep_str ++ "amstrmid.c", + "libsrc" ++ path.sep_str ++ "wbemuuid.c", + "libsrc" ++ path.sep_str ++ "wmcodecdspuuid.c", + "libsrc" ++ path.sep_str ++ "windowscodecs.c", + "libsrc" ++ path.sep_str ++ "dxguid.c", + "libsrc" ++ path.sep_str ++ "ksuser.c", + "libsrc" ++ path.sep_str ++ "locationapi.c", + "libsrc" ++ path.sep_str ++ "sapi.c", + "libsrc" ++ path.sep_str ++ "sensorsapi.c", + "libsrc" ++ path.sep_str ++ "portabledeviceguids.c", + "libsrc" ++ path.sep_str ++ "taskschd.c", + "libsrc" ++ path.sep_str ++ "strmiids.c", + "libsrc" ++ path.sep_str ++ "gdiplus.c", + "libsrc" ++ path.sep_str ++ "activeds-uuid.c", }; const mingwex_x86_src = [_][]const u8{ - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "acosf.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "acosh.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "acoshf.c", + // mingwex + "math" ++ path.sep_str ++ "cbrtl.c", + "math" ++ path.sep_str ++ "erfl.c", + "math" ++ path.sep_str ++ "fdiml.c", + "math" ++ path.sep_str ++ "fmal.c", + "math" ++ path.sep_str ++ "fmaxl.c", + "math" ++ path.sep_str ++ "fminl.c", + "math" ++ path.sep_str ++ "llrintl.c", + "math" ++ path.sep_str ++ "llroundl.c", + "math" ++ path.sep_str ++ "lrintl.c", + "math" ++ path.sep_str ++ "lroundl.c", + "math" ++ path.sep_str ++ "rintl.c", + "math" ++ path.sep_str ++ "roundl.c", + "math" ++ path.sep_str ++ "tgammal.c", + "math" ++ path.sep_str ++ "truncl.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "acoshl.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "acosl.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "asinf.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "asinh.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "asinhf.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "asinhl.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "asinl.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atan2.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atan2f.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atan2l.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atanf.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atanh.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atanhf.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atanhl.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atanl.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ceilf.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ceill.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ceil.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "_chgsignl.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "copysignl.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cos.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosf.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosl.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosl_internal.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cossin.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "exp2f.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "exp2l.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "exp2.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "exp.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expl.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expm1.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expm1f.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expm1l.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "floorf.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "floorl.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "floor.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "fmod.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "fmodf.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "fmodl.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "fucom.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ilogbf.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ilogbl.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ilogb.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "internal_logl.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ldexp.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ldexpl.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "log10l.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "log1pf.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "log1pl.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "log1p.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "log2f.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "log2l.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "log2.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "logb.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "logbf.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "logbl.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "log.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "logl.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "nearbyintf.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "nearbyintl.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "nearbyint.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "pow.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "powl.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "remainderf.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "remainderl.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "remainder.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "remquof.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "remquol.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "remquo.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "rint.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "rintf.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "scalbnf.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "scalbnl.S", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "scalbn.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "sin.c", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "sinf.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "sinl.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "sinl_internal.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "tanf.c", "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "tanl.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "truncf.S", - "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "trunc.S", + // ucrtbase + "math" ++ path.sep_str ++ "fabsf.c", + "math" ++ path.sep_str ++ "nexttowardf.c", }; -const arm_common = [_][]const u8{ - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "acosh.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "acoshf.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "acoshl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "asinh.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "asinhf.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "asinhl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "atanh.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "atanhf.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "atanhl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "copysignl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "expm1.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "expm1f.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "expm1l.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "ilogb.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "ilogbf.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "ilogbl.c", +const mingwex_x86_32_src = [_][]const u8{ + // ucrtbase + "math" ++ path.sep_str ++ "coshf.c", + "math" ++ path.sep_str ++ "expf.c", + "math" ++ path.sep_str ++ "log10f.c", + "math" ++ path.sep_str ++ "logf.c", + "math" ++ path.sep_str ++ "modff.c", + "math" ++ path.sep_str ++ "powf.c", + "math" ++ path.sep_str ++ "sinhf.c", + "math" ++ path.sep_str ++ "sqrtf.c", + "math" ++ path.sep_str ++ "tanhf.c", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "acosf.c", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "asinf.c", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atan2f.c", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "atanf.c", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "ceilf.S", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosf.c", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "floorf.S", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "fmodf.c", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "sinf.c", + "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "tanf.c", +}; + +const mingwex_arm32_src = [_][]const u8{ "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "ldexpl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "log1p.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "log1pf.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "log1pl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "log2.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "logb.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "logbf.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "logbl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "powf.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "powl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "remainder.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "remainderf.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "remainderl.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "remquol.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "s_remquo.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "s_remquof.c", - "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "scalbn.c", -}; - -const mingwex_arm32_src = arm_common ++ [_][]const u8{ "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "_chgsignl.S", "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "s_rint.c", "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "s_rintf.c", - "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "exp2.S", - "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "exp2f.S", - "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "nearbyint.S", - "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "nearbyintf.S", - "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "nearbyintl.S", "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "sincos.S", "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "sincosf.S", - "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "s_trunc.c", - "math" ++ path.sep_str ++ "arm" ++ path.sep_str ++ "s_truncf.c", }; -const mingwex_arm64_src = arm_common ++ [_][]const u8{ - "misc" ++ path.sep_str ++ "initenv.c", +const mingwex_arm64_src = [_][]const u8{ + "math" ++ path.sep_str ++ "arm-common" ++ path.sep_str ++ "ldexpl.c", "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "_chgsignl.S", "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "rint.c", "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "rintf.c", "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "sincos.S", "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "sincosf.S", - "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "exp2f.S", - "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "exp2.S", - "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "nearbyintf.S", - "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "nearbyintl.S", - "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "nearbyint.S", - "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "truncf.S", - "math" ++ path.sep_str ++ "arm64" ++ path.sep_str ++ "trunc.S", -}; - -const uuid_src = [_][]const u8{ - "ativscp-uuid.c", - "atsmedia-uuid.c", - "bth-uuid.c", - "cguid-uuid.c", - "comcat-uuid.c", - "devguid.c", - "docobj-uuid.c", - "dxva-uuid.c", - "exdisp-uuid.c", - "extras-uuid.c", - "fwp-uuid.c", - "guid_nul.c", - "hlguids-uuid.c", - "hlink-uuid.c", - "mlang-uuid.c", - "msctf-uuid.c", - "mshtmhst-uuid.c", - "mshtml-uuid.c", - "msxml-uuid.c", - "netcfg-uuid.c", - "netcon-uuid.c", - "ntddkbd-uuid.c", - "ntddmou-uuid.c", - "ntddpar-uuid.c", - "ntddscsi-uuid.c", - "ntddser-uuid.c", - "ntddstor-uuid.c", - "ntddvdeo-uuid.c", - "oaidl-uuid.c", - "objidl-uuid.c", - "objsafe-uuid.c", - "ocidl-uuid.c", - "oleacc-uuid.c", - "olectlid-uuid.c", - "oleidl-uuid.c", - "power-uuid.c", - "powrprof-uuid.c", - "uianimation-uuid.c", - "usbcamdi-uuid.c", - "usbiodef-uuid.c", - "uuid.c", - "vds-uuid.c", - "virtdisk-uuid.c", - "wia-uuid.c", }; pub const always_link_libs = [_][]const u8{ diff --git a/tools/update_mingw.zig b/tools/update_mingw.zig index 8d708b7df4..ca8a9a1fc7 100644 --- a/tools/update_mingw.zig +++ b/tools/update_mingw.zig @@ -148,7 +148,10 @@ const blacklist = [_][]const u8{ "msvcr80.def.in", "msvcr90.def.in", "msvcr90d.def.in", + "msvcrt.def.in", "msvcrt10.def.in", "msvcrt20.def.in", "msvcrt40.def.in", + + "crtdll.def.in", };