mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 20:50:29 +00:00
Update excpt.h, fcntl.h, float.h, math.c, mbctype.h, setjmp.h, share.h, stddef.h, stdio.h, stdlib.h, string.h, wchar.h from ming64
- fix __p__mbctype() - add some stuff to wine/exception.h that was formerly in except.h, but doesn't belong there - inlcude intrin.h from _mingw.h svn path=/trunk/; revision=38252
This commit is contained in:
parent
fec3246837
commit
ebd5a724c6
15 changed files with 220 additions and 189 deletions
|
@ -569,5 +569,27 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
/* There are here for intrin.h */
|
||||||
|
#ifndef _SIZE_T_DEFINED
|
||||||
|
#define _SIZE_T_DEFINED
|
||||||
|
#ifdef _WIN64
|
||||||
|
typedef unsigned __int64 size_t;
|
||||||
|
#else
|
||||||
|
typedef unsigned int size_t;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _UINTPTR_T_DEFINED
|
||||||
|
#define _UINTPTR_T_DEFINED
|
||||||
|
#ifdef _WIN64
|
||||||
|
typedef unsigned __int64 uintptr_t;
|
||||||
|
#else
|
||||||
|
typedef unsigned int uintptr_t;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <mingw32/intrin.h>
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,103 +1,129 @@
|
||||||
/*
|
/**
|
||||||
* excpt.h
|
|
||||||
* This file has no copyright assigned and is placed in the Public Domain.
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||||||
* This file is a part of the mingw-runtime package.
|
* This file is part of the w64 mingw-runtime package.
|
||||||
* No warranty is given; refer to the file DISCLAIMER within the package.
|
* No warranty is given; refer to the file DISCLAIMER within this package.
|
||||||
*
|
|
||||||
* Support for operating system level structured exception handling.
|
|
||||||
*
|
|
||||||
* NOTE: This is very preliminary stuff. I am also pretty sure it is
|
|
||||||
* completely Intel specific.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
#ifndef _INC_EXCPT
|
||||||
|
#define _INC_EXCPT
|
||||||
|
|
||||||
#ifndef _EXCPT_H_
|
#include <crtdefs.h>
|
||||||
#define _EXCPT_H_
|
|
||||||
|
|
||||||
/* All the headers include this file. */
|
|
||||||
#include <_mingw.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NOTE: The constants structs and typedefs below should be defined in the
|
|
||||||
* Win32 API headers.
|
|
||||||
*/
|
|
||||||
#define EXCEPTION_EXECUTE_HANDLER 1
|
|
||||||
#define EXCEPTION_CONTINUE_SEARCH 0
|
|
||||||
#define EXCEPTION_CONTINUE_EXECUTION -1
|
|
||||||
|
|
||||||
#define EH_NONCONTINUABLE 0x01
|
|
||||||
#define EH_UNWINDING 0x02
|
|
||||||
#define EH_EXIT_UNWIND 0x04
|
|
||||||
#define EH_STACK_INVALID 0x08
|
|
||||||
#define EH_NESTED_CALL 0x10
|
|
||||||
|
|
||||||
#ifndef RC_INVOKED
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
ExceptionContinueExecution,
|
|
||||||
ExceptionContinueSearch,
|
|
||||||
ExceptionNestedException,
|
|
||||||
ExceptionCollidedUnwind
|
|
||||||
} EXCEPTION_DISPOSITION;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* End of stuff that should be in the Win32 API files.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
#pragma pack(push,_CRT_PACKING)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef enum _EXCEPTION_DISPOSITION
|
||||||
|
{
|
||||||
|
ExceptionContinueExecution,
|
||||||
|
ExceptionContinueSearch,
|
||||||
|
ExceptionNestedException,
|
||||||
|
ExceptionCollidedUnwind,
|
||||||
|
} EXCEPTION_DISPOSITION;
|
||||||
|
|
||||||
|
#if (defined(_X86_) && !defined(__x86_64))
|
||||||
|
struct _EXCEPTION_RECORD;
|
||||||
|
struct _CONTEXT;
|
||||||
|
|
||||||
|
EXCEPTION_DISPOSITION __cdecl _except_handler(struct _EXCEPTION_RECORD *_ExceptionRecord,void *_EstablisherFrame,struct _CONTEXT *_ContextRecord,void *_DispatcherContext);
|
||||||
|
#elif defined(__ia64__)
|
||||||
|
|
||||||
|
typedef struct _EXCEPTION_POINTERS *Exception_info_ptr;
|
||||||
|
struct _EXCEPTION_RECORD;
|
||||||
|
struct _CONTEXT;
|
||||||
|
struct _DISPATCHER_CONTEXT;
|
||||||
|
|
||||||
|
_CRTIMP EXCEPTION_DISPOSITION __cdecl __C_specific_handler (struct _EXCEPTION_RECORD *_ExceptionRecord,unsigned __int64 _MemoryStackFp,unsigned __int64 _BackingStoreFp,struct _CONTEXT *_ContextRecord,struct _DISPATCHER_CONTEXT *_DispatcherContext,unsigned __int64 _GlobalPointer);
|
||||||
|
#elif defined(__x86_64)
|
||||||
|
|
||||||
|
struct _EXCEPTION_RECORD;
|
||||||
|
struct _CONTEXT;
|
||||||
|
struct _DISPATCHER_CONTEXT;
|
||||||
|
|
||||||
|
_CRTIMP EXCEPTION_DISPOSITION __cdecl __C_specific_handler (struct _EXCEPTION_RECORD *_ExceptionRecord,void *_EstablisherFrame,struct _CONTEXT *_ContextRecord,struct _DISPATCHER_CONTEXT *_DispatcherContext);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _MSC_VER // HACK!!!
|
||||||
|
#define GetExceptionCode _exception_code
|
||||||
|
#define exception_code _exception_code
|
||||||
|
#define GetExceptionInformation (struct _EXCEPTION_POINTERS *)_exception_info
|
||||||
|
#define exception_info (struct _EXCEPTION_POINTERS *)_exception_info
|
||||||
|
#define AbnormalTermination _abnormal_termination
|
||||||
|
#define abnormal_termination _abnormal_termination
|
||||||
|
#endif
|
||||||
|
|
||||||
|
unsigned long __cdecl _exception_code(void);
|
||||||
|
void *__cdecl _exception_info(void);
|
||||||
|
int __cdecl _abnormal_termination(void);
|
||||||
|
|
||||||
|
#define EXCEPTION_EXECUTE_HANDLER 1
|
||||||
|
#define EXCEPTION_CONTINUE_SEARCH 0
|
||||||
|
#define EXCEPTION_CONTINUE_EXECUTION -1
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* CRT stuff */
|
||||||
|
typedef void (__cdecl * _PHNDLR)(int);
|
||||||
|
|
||||||
|
struct _XCPT_ACTION {
|
||||||
|
unsigned long XcptNum;
|
||||||
|
int SigNum;
|
||||||
|
_PHNDLR XcptAction;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern struct _XCPT_ACTION _XcptActTab[];
|
||||||
|
extern int _XcptActTabCount;
|
||||||
|
extern int _XcptActTabSize;
|
||||||
|
extern int _First_FPE_Indx;
|
||||||
|
extern int _Num_FPE;
|
||||||
|
|
||||||
|
int __cdecl __CppXcptFilter(unsigned long _ExceptionNum,struct _EXCEPTION_POINTERS * _ExceptionPtr);
|
||||||
|
int __cdecl _XcptFilter(unsigned long _ExceptionNum,struct _EXCEPTION_POINTERS * _ExceptionPtr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The type of function that is expected as an exception handler to be
|
* The type of function that is expected as an exception handler to be
|
||||||
* installed with __try1.
|
* installed with _try1.
|
||||||
*/
|
*/
|
||||||
struct _CONTEXT;
|
typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER)(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
|
||||||
struct _EXCEPTION_RECORD;
|
|
||||||
typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER)
|
|
||||||
(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
|
|
||||||
|
|
||||||
|
#ifndef HAVE_NO_SEH
|
||||||
/*
|
/*
|
||||||
* This is not entirely necessary, but it is the structure installed by
|
* This is not entirely necessary, but it is the structure installed by
|
||||||
* the __try1 primitive below.
|
* the _try1 primitive below.
|
||||||
*/
|
*/
|
||||||
typedef struct _EXCEPTION_REGISTRATION
|
typedef struct _EXCEPTION_REGISTRATION {
|
||||||
{
|
|
||||||
struct _EXCEPTION_REGISTRATION *prev;
|
struct _EXCEPTION_REGISTRATION *prev;
|
||||||
PEXCEPTION_HANDLER handler;
|
EXCEPTION_DISPOSITION (*handler)(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
|
||||||
} EXCEPTION_REGISTRATION, *PEXCEPTION_REGISTRATION;
|
} EXCEPTION_REGISTRATION, *PEXCEPTION_REGISTRATION;
|
||||||
|
|
||||||
/*
|
typedef EXCEPTION_REGISTRATION EXCEPTION_REGISTRATION_RECORD;
|
||||||
* A macro which installs the supplied exception handler.
|
typedef PEXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION_RECORD;
|
||||||
* Push the pointer to the new handler onto the stack,
|
#endif
|
||||||
* then push the pointer to the old registration structure (at fs:0)
|
|
||||||
* onto the stack, then put a pointer to the new registration
|
#if (defined(_X86_) && !defined(__x86_64))
|
||||||
* structure (i.e. the current stack pointer) at fs:0.
|
|
||||||
*/
|
|
||||||
#define __try1(pHandler) \
|
#define __try1(pHandler) \
|
||||||
__asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler));
|
__asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler));
|
||||||
|
|
||||||
/*
|
|
||||||
* A macro which (despite its name) *removes* an installed
|
|
||||||
* exception handler. Should be used only in conjunction with the above
|
|
||||||
* install routine __try1.
|
|
||||||
* Move the pointer to the old reg. struct (at the current stack
|
|
||||||
* position) to fs:0, replacing the pointer we installed above,
|
|
||||||
* then add 8 to the stack pointer to get rid of the space we
|
|
||||||
* used when we pushed on our new reg. struct above. Notice that
|
|
||||||
* the stack must be in the exact state at this point that it was
|
|
||||||
* after we did __try1 or this will smash things.
|
|
||||||
*/
|
|
||||||
#define __except1 \
|
#define __except1 \
|
||||||
__asm__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl $8,%%esp;" \
|
__asm__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl $8,%%esp;" \
|
||||||
: : : "%eax");
|
: : : "%eax");
|
||||||
|
#elif defined(__x86_64)
|
||||||
|
#define __try1(pHandler) \
|
||||||
|
__asm__ ("pushq %0;pushq %%gs:0;movq %%rsp,%%gs:0;" : : "g" (pHandler));
|
||||||
|
|
||||||
|
#define __except1 \
|
||||||
|
__asm__ ("movq (%%rsp),%%rax;movq %%rax,%%gs:0;addq $16,%%rsp;" \
|
||||||
|
: : : "%rax");
|
||||||
|
#else
|
||||||
|
#define __try1(pHandler)
|
||||||
|
#define __except1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // 0
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* Not RC_INVOKED */
|
#pragma pack(pop)
|
||||||
|
#endif
|
||||||
#endif /* _EXCPT_H_ not defined */
|
|
||||||
|
|
|
@ -36,7 +36,6 @@
|
||||||
#define O_RDONLY _O_RDONLY
|
#define O_RDONLY _O_RDONLY
|
||||||
#define O_WRONLY _O_WRONLY
|
#define O_WRONLY _O_WRONLY
|
||||||
#define O_RDWR _O_RDWR
|
#define O_RDWR _O_RDWR
|
||||||
#define O_ACCMODE _O_ACCMODE
|
|
||||||
#define O_APPEND _O_APPEND
|
#define O_APPEND _O_APPEND
|
||||||
#define O_CREAT _O_CREAT
|
#define O_CREAT _O_CREAT
|
||||||
#define O_TRUNC _O_TRUNC
|
#define O_TRUNC _O_TRUNC
|
||||||
|
@ -48,5 +47,6 @@
|
||||||
#define O_NOINHERIT _O_NOINHERIT
|
#define O_NOINHERIT _O_NOINHERIT
|
||||||
#define O_SEQUENTIAL _O_SEQUENTIAL
|
#define O_SEQUENTIAL _O_SEQUENTIAL
|
||||||
#define O_RANDOM _O_RANDOM
|
#define O_RANDOM _O_RANDOM
|
||||||
|
#define O_ACCMODE _O_ACCMODE
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -99,12 +99,12 @@ extern "C" {
|
||||||
/* Set the FPU control word as cw = (cw & ~unMask) | (unNew & unMask),
|
/* Set the FPU control word as cw = (cw & ~unMask) | (unNew & unMask),
|
||||||
* i.e. change the bits in unMask to have the values they have in unNew,
|
* i.e. change the bits in unMask to have the values they have in unNew,
|
||||||
* leaving other bits unchanged. */
|
* leaving other bits unchanged. */
|
||||||
_CRTIMP unsigned int __cdecl __MINGW_NOTHROW _controlfp (unsigned int unNew, unsigned int unMask);
|
_CRTIMP unsigned int __cdecl __attribute__ ((__nothrow__)) _controlfp (unsigned int unNew, unsigned int unMask);
|
||||||
_CRTIMP unsigned int __cdecl __MINGW_NOTHROW _control87 (unsigned int unNew, unsigned int unMask);
|
_CRTIMP unsigned int __cdecl __attribute__ ((__nothrow__)) _control87 (unsigned int unNew, unsigned int unMask);
|
||||||
|
|
||||||
|
|
||||||
_CRTIMP unsigned int __cdecl __MINGW_NOTHROW _clearfp (void); /* Clear the FPU status word */
|
_CRTIMP unsigned int __cdecl __attribute__ ((__nothrow__)) _clearfp (void); /* Clear the FPU status word */
|
||||||
_CRTIMP unsigned int __cdecl __MINGW_NOTHROW _statusfp (void); /* Report the FPU status word */
|
_CRTIMP unsigned int __cdecl __attribute__ ((__nothrow__)) _statusfp (void); /* Report the FPU status word */
|
||||||
#define _clear87 _clearfp
|
#define _clear87 _clearfp
|
||||||
#define _status87 _statusfp
|
#define _status87 _statusfp
|
||||||
|
|
||||||
|
@ -118,11 +118,11 @@ _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _statusfp (void); /* Report the FPU
|
||||||
per fninit. To use the MSVCRT.dll _fpreset, include CRT_fp8.o when
|
per fninit. To use the MSVCRT.dll _fpreset, include CRT_fp8.o when
|
||||||
building your application.
|
building your application.
|
||||||
*/
|
*/
|
||||||
void __cdecl __MINGW_NOTHROW _fpreset (void);
|
void __cdecl __attribute__ ((__nothrow__)) _fpreset (void);
|
||||||
void __cdecl __MINGW_NOTHROW fpreset (void);
|
void __cdecl __attribute__ ((__nothrow__)) fpreset (void);
|
||||||
|
|
||||||
/* Global 'variable' for the current floating point error code. */
|
/* Global 'variable' for the current floating point error code. */
|
||||||
_CRTIMP int * __cdecl __MINGW_NOTHROW __fpecode(void);
|
_CRTIMP int * __cdecl __attribute__ ((__nothrow__)) __fpecode(void);
|
||||||
#define _fpecode (*(__fpecode()))
|
#define _fpecode (*(__fpecode()))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -130,15 +130,15 @@ _CRTIMP int * __cdecl __MINGW_NOTHROW __fpecode(void);
|
||||||
* but they really belong in math.h.
|
* but they really belong in math.h.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_CRTIMP double __cdecl __MINGW_NOTHROW _chgsign (double);
|
_CRTIMP double __cdecl __attribute__ ((__nothrow__)) _chgsign (double);
|
||||||
_CRTIMP double __cdecl __MINGW_NOTHROW _copysign (double, double);
|
_CRTIMP double __cdecl __attribute__ ((__nothrow__)) _copysign (double, double);
|
||||||
_CRTIMP double __cdecl __MINGW_NOTHROW _logb (double);
|
_CRTIMP double __cdecl __attribute__ ((__nothrow__)) _logb (double);
|
||||||
_CRTIMP double __cdecl __MINGW_NOTHROW _nextafter (double, double);
|
_CRTIMP double __cdecl __attribute__ ((__nothrow__)) _nextafter (double, double);
|
||||||
_CRTIMP double __cdecl __MINGW_NOTHROW _scalb (double, long);
|
_CRTIMP double __cdecl __attribute__ ((__nothrow__)) _scalb (double, long);
|
||||||
|
|
||||||
_CRTIMP int __cdecl __MINGW_NOTHROW _finite (double);
|
_CRTIMP int __cdecl __attribute__ ((__nothrow__)) _finite (double);
|
||||||
_CRTIMP int __cdecl __MINGW_NOTHROW _fpclass (double);
|
_CRTIMP int __cdecl __attribute__ ((__nothrow__)) _fpclass (double);
|
||||||
_CRTIMP int __cdecl __MINGW_NOTHROW _isnan (double);
|
_CRTIMP int __cdecl __attribute__ ((__nothrow__)) _isnan (double);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,7 @@ extern "C" {
|
||||||
double __cdecl cos(double _X);
|
double __cdecl cos(double _X);
|
||||||
double __cdecl cosh(double _X);
|
double __cdecl cosh(double _X);
|
||||||
double __cdecl exp(double _X);
|
double __cdecl exp(double _X);
|
||||||
|
double expm1(double _X);
|
||||||
double __cdecl fabs(double _X);
|
double __cdecl fabs(double _X);
|
||||||
double __cdecl fmod(double _X,double _Y);
|
double __cdecl fmod(double _X,double _Y);
|
||||||
double __cdecl log(double _X);
|
double __cdecl log(double _X);
|
||||||
|
@ -130,6 +131,7 @@ extern "C" {
|
||||||
float __cdecl sinhf(float _X);
|
float __cdecl sinhf(float _X);
|
||||||
float __cdecl tanhf(float _X);
|
float __cdecl tanhf(float _X);
|
||||||
float __cdecl expf(float _X);
|
float __cdecl expf(float _X);
|
||||||
|
float expm1f(float _X);
|
||||||
float __cdecl logf(float _X);
|
float __cdecl logf(float _X);
|
||||||
float __cdecl log10f(float _X);
|
float __cdecl log10f(float _X);
|
||||||
float __cdecl modff(float _X,float *_Y);
|
float __cdecl modff(float _X,float *_Y);
|
||||||
|
@ -421,6 +423,7 @@ extern "C" {
|
||||||
|
|
||||||
extern long double __cdecl powl (long double, long double);
|
extern long double __cdecl powl (long double, long double);
|
||||||
extern long double __cdecl expl(long double);
|
extern long double __cdecl expl(long double);
|
||||||
|
extern long double expm1l(long double);
|
||||||
extern long double __cdecl coshl(long double);
|
extern long double __cdecl coshl(long double);
|
||||||
extern long double __cdecl fabsl (long double);
|
extern long double __cdecl fabsl (long double);
|
||||||
extern long double __cdecl acosl(long double);
|
extern long double __cdecl acosl(long double);
|
||||||
|
|
|
@ -14,16 +14,29 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* CRT stuff */
|
/* CRT stuff */
|
||||||
#if defined(_M_CEE_PURE)
|
#if 1
|
||||||
|
#if defined (_DLL) && defined (_M_IX86)
|
||||||
/* Retained for compatibility with VC++ 5.0 and earlier versions */
|
/* Retained for compatibility with VC++ 5.0 and earlier versions */
|
||||||
_CRTIMP unsigned char * __cdecl __p__mbctype(void);
|
_CRTIMP unsigned char * __cdecl __p__mbctype(void);
|
||||||
_CRTIMP unsigned char * __cdecl __p__mbcasemap(void);
|
_CRTIMP unsigned char * __cdecl __p__mbcasemap(void);
|
||||||
#define _mbctype (__p__mbctype())
|
#endif /* defined (_DLL) && defined (_M_IX86) */
|
||||||
#define _mbcasemap (__p__mbcasemap())
|
#endif
|
||||||
|
#ifndef _mbctype
|
||||||
|
#ifdef _MSVCRT_
|
||||||
|
extern unsigned char _mbctype[257];
|
||||||
#else
|
#else
|
||||||
_CRTIMP extern unsigned char _mbctype[];
|
#define _mbctype (*_imp___mbctype)
|
||||||
_CRTIMP extern unsigned char _mbcasemap[];
|
extern unsigned char **_imp___mbctype;
|
||||||
#endif // defined(_M_CEE_PURE)
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifndef _mbcasemap
|
||||||
|
#ifdef _MSVCRT_
|
||||||
|
extern unsigned char *_mbcasemap;
|
||||||
|
#else
|
||||||
|
#define _mbcasemap (*_imp___mbcasemap)
|
||||||
|
extern unsigned char **_imp___mbcasemap;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* CRT stuff */
|
/* CRT stuff */
|
||||||
#if 1
|
#if 1
|
||||||
|
|
|
@ -130,28 +130,7 @@ extern "C" {
|
||||||
#define _JMP_BUF_DEFINED
|
#define _JMP_BUF_DEFINED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__CRT_INLINE void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp(void)
|
void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp(void);
|
||||||
{
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#ifdef __x86_64
|
|
||||||
__int64 *ret;
|
|
||||||
__asm__ __volatile__("leaq 16(%%rsp),%0\n"
|
|
||||||
:"=r"(ret)
|
|
||||||
:
|
|
||||||
);
|
|
||||||
return ret;
|
|
||||||
#elif __i386__
|
|
||||||
__int32 *ret;
|
|
||||||
__asm__ __volatile__("lea 8(%esp),%0\n"
|
|
||||||
:"=r"(ret)
|
|
||||||
:
|
|
||||||
);
|
|
||||||
return ret;
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#error Unsupported Compiler
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef USE_MINGW_SETJMP_TWO_ARGS
|
#ifdef USE_MINGW_SETJMP_TWO_ARGS
|
||||||
#ifndef _INC_SETJMPEX
|
#ifndef _INC_SETJMPEX
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#error Only Win32 target is supported!
|
#error Only Win32 target is supported!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define _SH_COMPAT 0x00 /* Compatibility */
|
#define _SH_COMPAT 0x00
|
||||||
#define _SH_DENYRW 0x10
|
#define _SH_DENYRW 0x10
|
||||||
#define _SH_DENYWR 0x20
|
#define _SH_DENYWR 0x20
|
||||||
#define _SH_DENYRD 0x30
|
#define _SH_DENYRD 0x30
|
||||||
|
|
|
@ -143,7 +143,7 @@ _TYPE_wchar_t;
|
||||||
#ifdef _WIN64
|
#ifdef _WIN64
|
||||||
#define __PTRDIFF_TYPE__ long long int
|
#define __PTRDIFF_TYPE__ long long int
|
||||||
#else
|
#else
|
||||||
# #define __PTRDIFF_TYPE__ long int
|
#define __PTRDIFF_TYPE__ long int
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef _PTRDIFF_T_DEFINED
|
#ifndef _PTRDIFF_T_DEFINED
|
||||||
|
|
|
@ -294,7 +294,7 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */
|
||||||
|
|
||||||
_CRTIMP int __cdecl _vscprintf(const char *_Format,va_list _ArgList);
|
_CRTIMP int __cdecl _vscprintf(const char *_Format,va_list _ArgList);
|
||||||
_CRTIMP int __cdecl _set_printf_count_output(int _Value);
|
_CRTIMP int __cdecl _set_printf_count_output(int _Value);
|
||||||
_CRTIMP int __cdecl _get_printf_count_output();
|
_CRTIMP int __cdecl _get_printf_count_output(void);
|
||||||
|
|
||||||
#ifndef _WSTDIO_DEFINED
|
#ifndef _WSTDIO_DEFINED
|
||||||
|
|
||||||
|
@ -332,14 +332,7 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */
|
||||||
_CRTIMP int __cdecl _snwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,...);
|
_CRTIMP int __cdecl _snwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,...);
|
||||||
_CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,va_list _Args);
|
_CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,va_list _Args);
|
||||||
#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
|
#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
|
||||||
__CRT_INLINE int __cdecl snwprintf (wchar_t* s, size_t n, const wchar_t* format, ...) {
|
_CRTIMP int __cdecl snwprintf (wchar_t* s, size_t n, const wchar_t* format, ...);
|
||||||
int r;
|
|
||||||
va_list a;
|
|
||||||
__mingw_va_start(a, format);
|
|
||||||
r = _vsnwprintf (s, n, format, a);
|
|
||||||
__mingw_va_end(a);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
__CRT_INLINE int __cdecl vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, va_list arg) { return _vsnwprintf(s,n,format,arg); }
|
__CRT_INLINE int __cdecl vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, va_list arg) { return _vsnwprintf(s,n,format,arg); }
|
||||||
int __cdecl vwscanf (const wchar_t *, va_list);
|
int __cdecl vwscanf (const wchar_t *, va_list);
|
||||||
int __cdecl vfwscanf (FILE *,const wchar_t *,va_list);
|
int __cdecl vfwscanf (FILE *,const wchar_t *,va_list);
|
||||||
|
|
|
@ -131,7 +131,7 @@ extern "C" {
|
||||||
typedef void (__cdecl *_purecall_handler)(void);
|
typedef void (__cdecl *_purecall_handler)(void);
|
||||||
|
|
||||||
_CRTIMP _purecall_handler __cdecl _set_purecall_handler(_purecall_handler _Handler);
|
_CRTIMP _purecall_handler __cdecl _set_purecall_handler(_purecall_handler _Handler);
|
||||||
_CRTIMP _purecall_handler __cdecl _get_purecall_handler();
|
_CRTIMP _purecall_handler __cdecl _get_purecall_handler(void);
|
||||||
|
|
||||||
typedef void (__cdecl *_invalid_parameter_handler)(const wchar_t *,const wchar_t *,const wchar_t *,unsigned int,uintptr_t);
|
typedef void (__cdecl *_invalid_parameter_handler)(const wchar_t *,const wchar_t *,const wchar_t *,unsigned int,uintptr_t);
|
||||||
_invalid_parameter_handler __cdecl _set_invalid_parameter_handler(_invalid_parameter_handler _Handler);
|
_invalid_parameter_handler __cdecl _set_invalid_parameter_handler(_invalid_parameter_handler _Handler);
|
||||||
|
@ -149,15 +149,10 @@ extern "C" {
|
||||||
errno_t __cdecl _set_doserrno(unsigned long _Value);
|
errno_t __cdecl _set_doserrno(unsigned long _Value);
|
||||||
errno_t __cdecl _get_doserrno(unsigned long *_Value);
|
errno_t __cdecl _get_doserrno(unsigned long *_Value);
|
||||||
|
|
||||||
#ifdef _MSVCRT_
|
_CRTIMP extern char *_sys_errlist[];
|
||||||
extern int* _imp___sys_nerr;
|
_CRTIMP extern int _sys_nerr;
|
||||||
extern char*** _imp__sys_errlist;
|
|
||||||
#else
|
|
||||||
__MINGW_IMPORT int _sys_nerr;
|
|
||||||
__MINGW_IMPORT char* _sys_errlist[];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//#if (defined(_X86_) && !defined(__x86_64))
|
#if (defined(_X86_) && !defined(__x86_64))
|
||||||
_CRTIMP int *__cdecl __p___argc(void);
|
_CRTIMP int *__cdecl __p___argc(void);
|
||||||
_CRTIMP char ***__cdecl __p___argv(void);
|
_CRTIMP char ***__cdecl __p___argv(void);
|
||||||
_CRTIMP wchar_t ***__cdecl __p___wargv(void);
|
_CRTIMP wchar_t ***__cdecl __p___wargv(void);
|
||||||
|
@ -165,7 +160,7 @@ extern "C" {
|
||||||
_CRTIMP wchar_t ***__cdecl __p__wenviron(void);
|
_CRTIMP wchar_t ***__cdecl __p__wenviron(void);
|
||||||
_CRTIMP char **__cdecl __p__pgmptr(void);
|
_CRTIMP char **__cdecl __p__pgmptr(void);
|
||||||
_CRTIMP wchar_t **__cdecl __p__wpgmptr(void);
|
_CRTIMP wchar_t **__cdecl __p__wpgmptr(void);
|
||||||
//#endif
|
#endif
|
||||||
#ifndef __argc
|
#ifndef __argc
|
||||||
#ifdef _MSVCRT_
|
#ifdef _MSVCRT_
|
||||||
extern int __argc;
|
extern int __argc;
|
||||||
|
@ -349,15 +344,15 @@ extern "C" {
|
||||||
void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
|
void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
|
||||||
void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
|
void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
|
||||||
#endif
|
#endif
|
||||||
/*unsigned short __cdecl _byteswap_ushort(unsigned short _Short); */
|
unsigned short __cdecl _byteswap_ushort(unsigned short _Short);
|
||||||
/*unsigned long __cdecl _byteswap_ulong (unsigned long _Long); */
|
/*unsigned long __cdecl _byteswap_ulong (unsigned long _Long); */
|
||||||
#if _INTEGRAL_MAX_BITS >= 64
|
#if _INTEGRAL_MAX_BITS >= 64
|
||||||
/*unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 _Int64);*/
|
unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 _Int64);
|
||||||
#endif
|
#endif
|
||||||
div_t __cdecl div(int _Numerator,int _Denominator);
|
div_t __cdecl div(int _Numerator,int _Denominator);
|
||||||
char *__cdecl getenv(const char *_VarName);
|
char *__cdecl getenv(const char *_VarName);
|
||||||
_CRTIMP char *__cdecl _itoa(int _Value,char *_Dest,int _Radix);
|
_CRTIMP char *__cdecl _itoa(int _Value,char *_Dest,int _Radix);
|
||||||
/* #if _INTEGRAL_MAX_BITS >= 64 */
|
#if _INTEGRAL_MAX_BITS >= 64
|
||||||
_CRTIMP char *__cdecl _i64toa(__int64 _Val,char *_DstBuf,int _Radix);
|
_CRTIMP char *__cdecl _i64toa(__int64 _Val,char *_DstBuf,int _Radix);
|
||||||
_CRTIMP char *__cdecl _ui64toa(unsigned __int64 _Val,char *_DstBuf,int _Radix);
|
_CRTIMP char *__cdecl _ui64toa(unsigned __int64 _Val,char *_DstBuf,int _Radix);
|
||||||
_CRTIMP __int64 __cdecl _atoi64(const char *_String);
|
_CRTIMP __int64 __cdecl _atoi64(const char *_String);
|
||||||
|
@ -366,7 +361,7 @@ extern "C" {
|
||||||
_CRTIMP __int64 __cdecl _strtoi64_l(const char *_String,char **_EndPtr,int _Radix,_locale_t _Locale);
|
_CRTIMP __int64 __cdecl _strtoi64_l(const char *_String,char **_EndPtr,int _Radix,_locale_t _Locale);
|
||||||
_CRTIMP unsigned __int64 __cdecl _strtoui64(const char *_String,char **_EndPtr,int _Radix);
|
_CRTIMP unsigned __int64 __cdecl _strtoui64(const char *_String,char **_EndPtr,int _Radix);
|
||||||
_CRTIMP unsigned __int64 __cdecl _strtoui64_l(const char *_String,char **_EndPtr,int _Radix,_locale_t _Locale);
|
_CRTIMP unsigned __int64 __cdecl _strtoui64_l(const char *_String,char **_EndPtr,int _Radix,_locale_t _Locale);
|
||||||
/* #endif */
|
#endif
|
||||||
ldiv_t __cdecl ldiv(long _Numerator,long _Denominator);
|
ldiv_t __cdecl ldiv(long _Numerator,long _Denominator);
|
||||||
_CRTIMP char *__cdecl _ltoa(long _Value,char *_Dest,int _Radix);
|
_CRTIMP char *__cdecl _ltoa(long _Value,char *_Dest,int _Radix);
|
||||||
int __cdecl mblen(const char *_Ch,size_t _MaxCount);
|
int __cdecl mblen(const char *_Ch,size_t _MaxCount);
|
||||||
|
@ -448,7 +443,7 @@ extern "C" {
|
||||||
_CRTIMP long __cdecl _wtol(const wchar_t *_Str);
|
_CRTIMP long __cdecl _wtol(const wchar_t *_Str);
|
||||||
_CRTIMP long __cdecl _wtol_l(const wchar_t *_Str,_locale_t _Locale);
|
_CRTIMP long __cdecl _wtol_l(const wchar_t *_Str,_locale_t _Locale);
|
||||||
|
|
||||||
/* #if _INTEGRAL_MAX_BITS >= 64 */
|
#if _INTEGRAL_MAX_BITS >= 64
|
||||||
_CRTIMP wchar_t *__cdecl _i64tow(__int64 _Val,wchar_t *_DstBuf,int _Radix);
|
_CRTIMP wchar_t *__cdecl _i64tow(__int64 _Val,wchar_t *_DstBuf,int _Radix);
|
||||||
_CRTIMP wchar_t *__cdecl _ui64tow(unsigned __int64 _Val,wchar_t *_DstBuf,int _Radix);
|
_CRTIMP wchar_t *__cdecl _ui64tow(unsigned __int64 _Val,wchar_t *_DstBuf,int _Radix);
|
||||||
_CRTIMP __int64 __cdecl _wtoi64(const wchar_t *_Str);
|
_CRTIMP __int64 __cdecl _wtoi64(const wchar_t *_Str);
|
||||||
|
@ -457,7 +452,7 @@ extern "C" {
|
||||||
_CRTIMP __int64 __cdecl _wcstoi64_l(const wchar_t *_Str,wchar_t **_EndPtr,int _Radix,_locale_t _Locale);
|
_CRTIMP __int64 __cdecl _wcstoi64_l(const wchar_t *_Str,wchar_t **_EndPtr,int _Radix,_locale_t _Locale);
|
||||||
_CRTIMP unsigned __int64 __cdecl _wcstoui64(const wchar_t *_Str,wchar_t **_EndPtr,int _Radix);
|
_CRTIMP unsigned __int64 __cdecl _wcstoui64(const wchar_t *_Str,wchar_t **_EndPtr,int _Radix);
|
||||||
_CRTIMP unsigned __int64 __cdecl _wcstoui64_l(const wchar_t *_Str ,wchar_t **_EndPtr,int _Radix,_locale_t _Locale);
|
_CRTIMP unsigned __int64 __cdecl _wcstoui64_l(const wchar_t *_Str ,wchar_t **_EndPtr,int _Radix,_locale_t _Locale);
|
||||||
/* #endif */
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _POSIX_
|
#ifndef _POSIX_
|
||||||
|
@ -472,8 +467,8 @@ extern "C" {
|
||||||
_CRTIMP int __cdecl _atodbl_l(_CRT_DOUBLE *_Result,char *_Str,_locale_t _Locale);
|
_CRTIMP int __cdecl _atodbl_l(_CRT_DOUBLE *_Result,char *_Str,_locale_t _Locale);
|
||||||
_CRTIMP int __cdecl _atoldbl_l(_LDOUBLE *_Result,char *_Str,_locale_t _Locale);
|
_CRTIMP int __cdecl _atoldbl_l(_LDOUBLE *_Result,char *_Str,_locale_t _Locale);
|
||||||
_CRTIMP int __cdecl _atoflt_l(_CRT_FLOAT *_Result,char *_Str,_locale_t _Locale);
|
_CRTIMP int __cdecl _atoflt_l(_CRT_FLOAT *_Result,char *_Str,_locale_t _Locale);
|
||||||
_CRTIMP unsigned long __cdecl __MINGW_NOTHROW _lrotl(unsigned long, int) __MINGW_ATTRIB_CONST;
|
unsigned long __cdecl _lrotl(unsigned long _Val,int _Shift);
|
||||||
_CRTIMP unsigned long __cdecl __MINGW_NOTHROW _lrotr(unsigned long, int) __MINGW_ATTRIB_CONST;
|
unsigned long __cdecl _lrotr(unsigned long _Val,int _Shift);
|
||||||
_CRTIMP void __cdecl _makepath(char *_Path,const char *_Drive,const char *_Dir,const char *_Filename,const char *_Ext);
|
_CRTIMP void __cdecl _makepath(char *_Path,const char *_Drive,const char *_Dir,const char *_Filename,const char *_Ext);
|
||||||
_onexit_t __cdecl _onexit(_onexit_t _Func);
|
_onexit_t __cdecl _onexit(_onexit_t _Func);
|
||||||
|
|
||||||
|
@ -482,13 +477,13 @@ extern "C" {
|
||||||
void __cdecl perror(const char *_ErrMsg);
|
void __cdecl perror(const char *_ErrMsg);
|
||||||
#endif
|
#endif
|
||||||
_CRTIMP int __cdecl _putenv(const char *_EnvString);
|
_CRTIMP int __cdecl _putenv(const char *_EnvString);
|
||||||
//_CRTIMP unsigned int __cdecl _rotl(unsigned int, int) __MINGW_ATTRIB_CONST;
|
unsigned int __cdecl _rotl(unsigned int _Val,int _Shift);
|
||||||
#if _INTEGRAL_MAX_BITS >= 64
|
#if _INTEGRAL_MAX_BITS >= 64
|
||||||
//_CRTIMP unsigned __int64 __cdecl _rotl64(unsigned __int64, int) __MINGW_ATTRIB_CONST;
|
unsigned __int64 __cdecl _rotl64(unsigned __int64 _Val,int _Shift);
|
||||||
#endif
|
#endif
|
||||||
//_CRTIMP unsigned int __cdecl _rotr(unsigned int, int) __MINGW_ATTRIB_CONST;
|
unsigned int __cdecl _rotr(unsigned int _Val,int _Shift);
|
||||||
#if _INTEGRAL_MAX_BITS >= 64
|
#if _INTEGRAL_MAX_BITS >= 64
|
||||||
//_CRTIMP unsigned __int64 __cdecl _rotr64(unsigned __int64, int) __MINGW_ATTRIB_CONST;
|
unsigned __int64 __cdecl _rotr64(unsigned __int64 _Val,int _Shift);
|
||||||
#endif
|
#endif
|
||||||
_CRTIMP void __cdecl _searchenv(const char *_Filename,const char *_EnvVar,char *_ResultPath);
|
_CRTIMP void __cdecl _searchenv(const char *_Filename,const char *_EnvVar,char *_ResultPath);
|
||||||
_CRTIMP void __cdecl _splitpath(const char *_FullPath,char *_Drive,char *_Dir,char *_Filename,char *_Ext);
|
_CRTIMP void __cdecl _splitpath(const char *_FullPath,char *_Drive,char *_Dir,char *_Filename,char *_Ext);
|
||||||
|
@ -528,8 +523,8 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define sys_errlist (*_imp___sys_errlist)
|
#define sys_errlist _sys_errlist
|
||||||
#define sys_nerr (*_imp___sys_nerr)
|
#define sys_nerr _sys_nerr
|
||||||
#define environ _environ
|
#define environ _environ
|
||||||
char *__cdecl ecvt(double _Val,int _NumOfDigits,int *_PtDec,int *_PtSign);
|
char *__cdecl ecvt(double _Val,int _NumOfDigits,int *_PtDec,int *_PtSign);
|
||||||
char *__cdecl fcvt(double _Val,int _NumOfDec,int *_PtDec,int *_PtSign);
|
char *__cdecl fcvt(double _Val,int _NumOfDec,int *_PtDec,int *_PtSign);
|
||||||
|
@ -563,7 +558,7 @@ extern "C" {
|
||||||
char *__cdecl ulltoa (unsigned long long , char *, int);
|
char *__cdecl ulltoa (unsigned long long , char *, int);
|
||||||
wchar_t *__cdecl lltow (long long, wchar_t *, int);
|
wchar_t *__cdecl lltow (long long, wchar_t *, int);
|
||||||
wchar_t *__cdecl ulltow (unsigned long long, wchar_t *, int);
|
wchar_t *__cdecl ulltow (unsigned long long, wchar_t *, int);
|
||||||
#if _INTEGRAL_MAX_BITS >= 64
|
|
||||||
/* __CRT_INLINE using non-ansi functions */
|
/* __CRT_INLINE using non-ansi functions */
|
||||||
__CRT_INLINE long long __cdecl atoll (const char * _c) { return _atoi64 (_c); }
|
__CRT_INLINE long long __cdecl atoll (const char * _c) { return _atoi64 (_c); }
|
||||||
__CRT_INLINE char *__cdecl lltoa (long long _n, char * _c, int _i) { return _i64toa (_n, _c, _i); }
|
__CRT_INLINE char *__cdecl lltoa (long long _n, char * _c, int _i) { return _i64toa (_n, _c, _i); }
|
||||||
|
@ -572,7 +567,7 @@ extern "C" {
|
||||||
__CRT_INLINE wchar_t *__cdecl lltow (long long _n, wchar_t * _w, int _i) { return _i64tow (_n, _w, _i); }
|
__CRT_INLINE wchar_t *__cdecl lltow (long long _n, wchar_t * _w, int _i) { return _i64tow (_n, _w, _i); }
|
||||||
__CRT_INLINE wchar_t *__cdecl ulltow (unsigned long long _n, wchar_t * _w, int _i) { return _ui64tow (_n, _w, _i); }
|
__CRT_INLINE wchar_t *__cdecl ulltow (unsigned long long _n, wchar_t * _w, int _i) { return _ui64tow (_n, _w, _i); }
|
||||||
#endif /* (__STRICT_ANSI__) */
|
#endif /* (__STRICT_ANSI__) */
|
||||||
#endif
|
|
||||||
#endif /* !__NO_ISOCEXT */
|
#endif /* !__NO_ISOCEXT */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -143,11 +143,6 @@ extern "C" {
|
||||||
_CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
|
_CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
|
||||||
|
|
||||||
#ifndef NO_OLDNAMES
|
#ifndef NO_OLDNAMES
|
||||||
/* NOTE: There is no _wcscmpi, but this is for compatibility. */
|
|
||||||
int __cdecl wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2);
|
|
||||||
__CRT_INLINE int __cdecl wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2) { return _wcsicmp (__ws1, __ws2); }
|
|
||||||
#define _wcscmpi _wcsicmp
|
|
||||||
|
|
||||||
wchar_t *__cdecl wcsdup(const wchar_t *_Str);
|
wchar_t *__cdecl wcsdup(const wchar_t *_Str);
|
||||||
#define wcswcs wcsstr
|
#define wcswcs wcsstr
|
||||||
int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
|
int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
|
||||||
|
|
|
@ -457,7 +457,7 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* #if _INTEGRAL_MAX_BITS >= 64 */
|
#if _INTEGRAL_MAX_BITS >= 64
|
||||||
|
|
||||||
struct _stat32i64 {
|
struct _stat32i64 {
|
||||||
_dev_t st_dev;
|
_dev_t st_dev;
|
||||||
|
@ -500,7 +500,7 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */
|
||||||
__time64_t st_mtime;
|
__time64_t st_mtime;
|
||||||
__time64_t st_ctime;
|
__time64_t st_ctime;
|
||||||
};
|
};
|
||||||
/* #endif */
|
#endif
|
||||||
|
|
||||||
#define __stat64 _stat64
|
#define __stat64 _stat64
|
||||||
|
|
||||||
|
@ -778,11 +778,6 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */
|
||||||
_CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
|
_CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
|
||||||
|
|
||||||
#ifndef NO_OLDNAMES
|
#ifndef NO_OLDNAMES
|
||||||
/* NOTE: There is no _wcscmpi, but this is for compatibility. */
|
|
||||||
int __cdecl wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2);
|
|
||||||
__CRT_INLINE int __cdecl wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2) { return _wcsicmp (__ws1, __ws2); }
|
|
||||||
#define _wcscmpi _wcsicmp
|
|
||||||
|
|
||||||
wchar_t *__cdecl wcsdup(const wchar_t *_Str);
|
wchar_t *__cdecl wcsdup(const wchar_t *_Str);
|
||||||
#define wcswcs wcsstr
|
#define wcswcs wcsstr
|
||||||
int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
|
int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER)
|
||||||
|
(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
|
||||||
|
|
||||||
struct _EXCEPTION_REGISTRATION_RECORD;
|
struct _EXCEPTION_REGISTRATION_RECORD;
|
||||||
typedef struct _EXCEPTION_REGISTRATION_RECORD EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
|
typedef struct _EXCEPTION_REGISTRATION_RECORD EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
|
||||||
|
|
||||||
|
@ -37,6 +40,13 @@ struct _EXCEPTION_REGISTRATION_RECORD
|
||||||
#define AbnormalTermination() _SEH2_AbnormalTermination()
|
#define AbnormalTermination() _SEH2_AbnormalTermination()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Win32 seems to use the same flags as ExceptionFlags in an EXCEPTION_RECORD */
|
||||||
|
#define EH_NONCONTINUABLE 0x01
|
||||||
|
#define EH_UNWINDING 0x02
|
||||||
|
#define EH_EXIT_UNWIND 0x04
|
||||||
|
#define EH_STACK_INVALID 0x08
|
||||||
|
#define EH_NESTED_CALL 0x10
|
||||||
|
|
||||||
#define EXCEPTION_WINE_STUB 0x80000100
|
#define EXCEPTION_WINE_STUB 0x80000100
|
||||||
#define EXCEPTION_WINE_ASSERTION 0x80000101
|
#define EXCEPTION_WINE_ASSERTION 0x80000101
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ int _ismbslead( const unsigned char *start, const unsigned char *str)
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
const unsigned char *__p__mbctype(void)
|
unsigned char *__p__mbctype(void)
|
||||||
{
|
{
|
||||||
return _mbctype;
|
return _mbctype;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue