include: Add msvcrt/fpieee.h header.
Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
fec49b9af6
commit
514ff74e9b
|
@ -473,6 +473,7 @@ HEADER_SRCS = \
|
|||
msvcrt/errno.h \
|
||||
msvcrt/fcntl.h \
|
||||
msvcrt/float.h \
|
||||
msvcrt/fpieee.h \
|
||||
msvcrt/io.h \
|
||||
msvcrt/limits.h \
|
||||
msvcrt/locale.h \
|
||||
|
|
|
@ -0,0 +1,239 @@
|
|||
/**
|
||||
* Derived from mingw-w64 header.
|
||||
* This file is in the public domain.
|
||||
*/
|
||||
#ifndef __WINE_FPIEEE_H
|
||||
#define __WINE_FPIEEE_H
|
||||
|
||||
#include <crtdefs.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
_FpCompareEqual,
|
||||
_FpCompareGreater,
|
||||
_FpCompareLess,
|
||||
_FpCompareUnordered
|
||||
} _FPIEEE_COMPARE_RESULT;
|
||||
|
||||
typedef enum {
|
||||
_FpFormatFp32,
|
||||
_FpFormatFp64,
|
||||
_FpFormatFp80,
|
||||
_FpFormatFp128,
|
||||
_FpFormatI16,
|
||||
_FpFormatI32,
|
||||
_FpFormatI64,
|
||||
_FpFormatU16,
|
||||
_FpFormatU32,
|
||||
_FpFormatU64,
|
||||
_FpFormatBcd80,
|
||||
_FpFormatCompare,
|
||||
_FpFormatString,
|
||||
} _FPIEEE_FORMAT;
|
||||
|
||||
typedef enum {
|
||||
_FpCodeUnspecified,
|
||||
_FpCodeAdd,
|
||||
_FpCodeSubtract,
|
||||
_FpCodeMultiply,
|
||||
_FpCodeDivide,
|
||||
_FpCodeSquareRoot,
|
||||
_FpCodeRemainder,
|
||||
_FpCodeCompare,
|
||||
_FpCodeConvert,
|
||||
_FpCodeRound,
|
||||
_FpCodeTruncate,
|
||||
_FpCodeFloor,
|
||||
_FpCodeCeil,
|
||||
_FpCodeAcos,
|
||||
_FpCodeAsin,
|
||||
_FpCodeAtan,
|
||||
_FpCodeAtan2,
|
||||
_FpCodeCabs,
|
||||
_FpCodeCos,
|
||||
_FpCodeCosh,
|
||||
_FpCodeExp,
|
||||
_FpCodeFabs,
|
||||
_FpCodeFmod,
|
||||
_FpCodeFrexp,
|
||||
_FpCodeHypot,
|
||||
_FpCodeLdexp,
|
||||
_FpCodeLog,
|
||||
_FpCodeLog10,
|
||||
_FpCodeModf,
|
||||
_FpCodePow,
|
||||
_FpCodeSin,
|
||||
_FpCodeSinh,
|
||||
_FpCodeTan,
|
||||
_FpCodeTanh,
|
||||
_FpCodeY0,
|
||||
_FpCodeY1,
|
||||
_FpCodeYn,
|
||||
_FpCodeLogb,
|
||||
_FpCodeNextafter,
|
||||
_FpCodeNegate,
|
||||
_FpCodeFmin,
|
||||
_FpCodeFmax,
|
||||
_FpCodeConvertTrunc,
|
||||
_XMMIAddps,
|
||||
_XMMIAddss,
|
||||
_XMMISubps,
|
||||
_XMMISubss,
|
||||
_XMMIMulps,
|
||||
_XMMIMulss,
|
||||
_XMMIDivps,
|
||||
_XMMIDivss,
|
||||
_XMMISqrtps,
|
||||
_XMMISqrtss,
|
||||
_XMMIMaxps,
|
||||
_XMMIMaxss,
|
||||
_XMMIMinps,
|
||||
_XMMIMinss,
|
||||
_XMMICmpps,
|
||||
_XMMICmpss,
|
||||
_XMMIComiss,
|
||||
_XMMIUComiss,
|
||||
_XMMICvtpi2ps,
|
||||
_XMMICvtsi2ss,
|
||||
_XMMICvtps2pi,
|
||||
_XMMICvtss2si,
|
||||
_XMMICvttps2pi,
|
||||
_XMMICvttss2si,
|
||||
_XMMIAddsubps,
|
||||
_XMMIHaddps,
|
||||
_XMMIHsubps,
|
||||
_XMMI2Addpd,
|
||||
_XMMI2Addsd,
|
||||
_XMMI2Subpd,
|
||||
_XMMI2Subsd,
|
||||
_XMMI2Mulpd,
|
||||
_XMMI2Mulsd,
|
||||
_XMMI2Divpd,
|
||||
_XMMI2Divsd,
|
||||
_XMMI2Sqrtpd,
|
||||
_XMMI2Sqrtsd,
|
||||
_XMMI2Maxpd,
|
||||
_XMMI2Maxsd,
|
||||
_XMMI2Minpd,
|
||||
_XMMI2Minsd,
|
||||
_XMMI2Cmppd,
|
||||
_XMMI2Cmpsd,
|
||||
_XMMI2Comisd,
|
||||
_XMMI2UComisd,
|
||||
_XMMI2Cvtpd2pi,
|
||||
_XMMI2Cvtsd2si,
|
||||
_XMMI2Cvttpd2pi,
|
||||
_XMMI2Cvttsd2si,
|
||||
_XMMI2Cvtps2pd,
|
||||
_XMMI2Cvtss2sd,
|
||||
_XMMI2Cvtpd2ps,
|
||||
_XMMI2Cvtsd2ss,
|
||||
_XMMI2Cvtdq2ps,
|
||||
_XMMI2Cvttps2dq,
|
||||
_XMMI2Cvtps2dq,
|
||||
_XMMI2Cvttpd2dq,
|
||||
_XMMI2Cvtpd2dq,
|
||||
_XMMI2Addsubpd,
|
||||
_XMMI2Haddpd,
|
||||
_XMMI2Hsubpd,
|
||||
} _FP_OPERATION_CODE;
|
||||
|
||||
typedef enum {
|
||||
_FpRoundNearest,
|
||||
_FpRoundMinusInfinity,
|
||||
_FpRoundPlusInfinity,
|
||||
_FpRoundChopped
|
||||
} _FPIEEE_ROUNDING_MODE;
|
||||
|
||||
typedef enum {
|
||||
_FpPrecisionFull,
|
||||
_FpPrecision53,
|
||||
_FpPrecision24,
|
||||
} _FPIEEE_PRECISION;
|
||||
|
||||
typedef float _FP32;
|
||||
typedef double _FP64;
|
||||
typedef short _I16;
|
||||
typedef int _I32;
|
||||
typedef unsigned short _U16;
|
||||
typedef unsigned int _U32;
|
||||
typedef __int64 _Q64;
|
||||
|
||||
typedef struct {
|
||||
unsigned short W[5];
|
||||
} _FP80;
|
||||
|
||||
typedef struct DECLSPEC_ALIGN(16) {
|
||||
__msvcrt_ulong W[4];
|
||||
} _FP128;
|
||||
|
||||
typedef struct DECLSPEC_ALIGN(8) {
|
||||
__msvcrt_ulong W[2];
|
||||
} _I64;
|
||||
|
||||
typedef struct DECLSPEC_ALIGN(8) {
|
||||
__msvcrt_ulong W[2];
|
||||
} _U64;
|
||||
|
||||
typedef struct {
|
||||
unsigned short W[5];
|
||||
} _BCD80;
|
||||
|
||||
typedef struct DECLSPEC_ALIGN(16) {
|
||||
_Q64 W[2];
|
||||
} _FPQ64;
|
||||
|
||||
typedef struct {
|
||||
union {
|
||||
_FP32 Fp32Value;
|
||||
_FP64 Fp64Value;
|
||||
_FP80 Fp80Value;
|
||||
_FP128 Fp128Value;
|
||||
_I16 I16Value;
|
||||
_I32 I32Value;
|
||||
_I64 I64Value;
|
||||
_U16 U16Value;
|
||||
_U32 U32Value;
|
||||
_U64 U64Value;
|
||||
_BCD80 Bcd80Value;
|
||||
char *StringValue;
|
||||
int CompareValue;
|
||||
_Q64 Q64Value;
|
||||
_FPQ64 Fpq64Value;
|
||||
} Value;
|
||||
unsigned int OperandValid : 1;
|
||||
unsigned int Format : 4;
|
||||
} _FPIEEE_VALUE;
|
||||
|
||||
typedef struct {
|
||||
unsigned int Inexact : 1;
|
||||
unsigned int Underflow : 1;
|
||||
unsigned int Overflow : 1;
|
||||
unsigned int ZeroDivide : 1;
|
||||
unsigned int InvalidOperation : 1;
|
||||
} _FPIEEE_EXCEPTION_FLAGS;
|
||||
|
||||
typedef struct {
|
||||
unsigned int RoundingMode : 2;
|
||||
unsigned int Precision : 3;
|
||||
unsigned int Operation :12;
|
||||
_FPIEEE_EXCEPTION_FLAGS Cause;
|
||||
_FPIEEE_EXCEPTION_FLAGS Enable;
|
||||
_FPIEEE_EXCEPTION_FLAGS Status;
|
||||
_FPIEEE_VALUE Operand1;
|
||||
_FPIEEE_VALUE Operand2;
|
||||
_FPIEEE_VALUE Result;
|
||||
} _FPIEEE_RECORD,*_PFPIEEE_RECORD;
|
||||
|
||||
struct _EXCEPTION_POINTERS;
|
||||
|
||||
int __cdecl _fpieee_flt(__msvcrt_ulong _ExceptionCode,struct _EXCEPTION_POINTERS *_PtExceptionPtr,int (__cdecl *_Handler)(_FPIEEE_RECORD *));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue