diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index 46d26a5af..f248a69a3 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,17 @@ +2007-01-26 Danny Smith + + Expose some msvcr80.dll functions. + * include/stdlib.h (_set_abort_behavior): Add prototype. + (_WRITE_ABORT_MSG, _CALL_REPORTFAULT): Add defines for + _set_abort_behavior mask argument. + (_invalid_parameter_handler): Add typedef. + (_set_invalid_parameter_handler): Add prototype. + * include/stdio.h (_get_printf_count_output): Add prototype. + (_set_printf_count_output): Add prototype. + * msvcrt.def.in (_get_printf_count_output,_set_printf_count_output, + _set_abort_behavior, _set_invalid_parameter_handler): Add stubs. + + 2007-01-26 Danny Smith * include/_mingw.h (CRT_INLINE): Correct typo. diff --git a/winsup/mingw/include/stdio.h b/winsup/mingw/include/stdio.h index 90c0dd976..1c02eeea9 100644 --- a/winsup/mingw/include/stdio.h +++ b/winsup/mingw/include/stdio.h @@ -374,6 +374,11 @@ _CRTIMP int __cdecl _getmaxstdio(void); _CRTIMP int __cdecl _setmaxstdio(int); #endif +#if __MSVCRT_VERSION__ >= 0x800 +_CRTIMP int __cdecl _set_printf_count_output(int); +_CRTIMP int __cdecl _get_printf_count_output(void); +#endif + #ifndef _NO_OLDNAMES _CRTIMP int __cdecl fgetchar (void); _CRTIMP int __cdecl fputchar (int); diff --git a/winsup/mingw/include/stdlib.h b/winsup/mingw/include/stdlib.h index c69746dad..dd407b12f 100644 --- a/winsup/mingw/include/stdlib.h +++ b/winsup/mingw/include/stdlib.h @@ -21,6 +21,8 @@ #include #endif /* RC_INVOKED */ +#include /* For uintptr_t */ + /* * RAND_MAX is the maximum value that may be returned by rand. * The minimum is zero. @@ -343,7 +345,6 @@ _CRTIMP void* __cdecl calloc (size_t, size_t) __MINGW_ATTRIB_MALLOC; _CRTIMP void* __cdecl malloc (size_t) __MINGW_ATTRIB_MALLOC; _CRTIMP void* __cdecl realloc (void*, size_t); _CRTIMP void __cdecl free (void*); - _CRTIMP void __cdecl abort (void) __MINGW_ATTRIB_NORETURN; _CRTIMP void __cdecl exit (int) __MINGW_ATTRIB_NORETURN; @@ -439,7 +440,20 @@ _CRTIMP int __cdecl _set_error_mode (int); #define _OUT_TO_MSGBOX 2 #define _REPORT_ERRMODE 3 -#endif +#if __MSVCRT_VERSION__ >= 0x800 +_CRTIMP unsigned int __cdecl _set_abort_behavior (unsigned int, unsigned int); +/* These masks work with msvcr80.dll version 8.0.50215.44 (a beta release). */ +#define _WRITE_ABORT_MSG 1 +#define _CALL_REPORTFAULT 2 + +typedef void (* _invalid_parameter_handler) (const wchar_t *, + const wchar_t *, + const wchar_t *, + unsigned int, + uintptr_t); +_invalid_parameter_handler _set_invalid_parameter_handler (_invalid_parameter_handler); +#endif /* __MSVCRT_VERSION__ >= 0x800 */ +#endif /* __MSVCRT__ */ #ifndef _NO_OLDNAMES diff --git a/winsup/mingw/msvcrt.def.in b/winsup/mingw/msvcrt.def.in index ac9a92caf..0d55b469f 100644 --- a/winsup/mingw/msvcrt.def.in +++ b/winsup/mingw/msvcrt.def.in @@ -741,7 +741,7 @@ _wfindfirst64 _wfindnext64 _wstat64 _wutime64 -#if ( __msvcr70__ || __msvcr70d__ || __msvcr71__ || __msvcr71d__) +#if ( __msvcr70__ || __msvcr70d__ || __msvcr71__ || __msvcr71d__ || __msvcr80__ || __msvcr80d__) ; msvcr70.dll amd later __buffer_overrun __CxxDetectRethrow @@ -785,7 +785,7 @@ _wcstoui64 _wctype _wtof #endif /* 7.0 */ -#if (__msvcr71__ || __msvcr71d__) +#if (__msvcr71__ || __msvcr71d__ || __msvcr80__ || __msvcr80d__) ; msvcr71.dll ___lc_codepage_func ___lc_collate_cp_func @@ -806,4 +806,10 @@ _get_heap_handle _set_purecall_handler _set_SSE2_enable #endif /* 7.1 */ - +#if ( __msvcr80__ || __msvcr80d__) +; msvcr80.dll +_get_printf_count_output +_set_printf_count_output +_set_abort_behavior +_set_invalid_parameter_handler +#endif /* 8.0 */