From ea50e3e05c821c5b0db44506e1f384ef165cff0e Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Wed, 16 Jul 2008 21:12:27 +0000 Subject: [PATCH] FLOATOBJ is a structure only on x86 in kernelmode, for usermode drivers and other architectures it's a FLOAT. Update winddi.h accordingly. svn path=/trunk/; revision=34555 --- reactos/include/ddk/winddi.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/reactos/include/ddk/winddi.h b/reactos/include/ddk/winddi.h index 6c36d66bb7a..751ae992dd6 100644 --- a/reactos/include/ddk/winddi.h +++ b/reactos/include/ddk/winddi.h @@ -544,11 +544,15 @@ typedef struct _FD_KERNINGPAIR { FWORD fwdKern; } FD_KERNINGPAIR; +#if defined(_X86_) && !defined(USERMODE_DRIVER) typedef struct _FLOATOBJ { ULONG ul1; ULONG ul2; } FLOATOBJ, *PFLOATOBJ; +#else +typedef FLOAT FLOATOBJ, *PFLOATOBJ; +#endif typedef struct _FLOATOBJ_XFORM { FLOATOBJ eM11; @@ -2287,6 +2291,7 @@ EngWritePrinter( IN DWORD cbBuf, OUT LPDWORD pcWritten); +#if defined(_X86_) && !defined(USERMODE_DRIVER) WIN32KAPI VOID APIENTRY @@ -2445,6 +2450,34 @@ FLOATOBJ_SubLong( IN OUT PFLOATOBJ pf, IN LONG l); +#else + +#define FLOATOBJ_SetFloat(pf, f) {*(pf) = (f);} +#define FLOATOBJ_SetLong(pf, l) {*(pf) = (FLOAT)(l);} +#define FLOATOBJ_GetFloat(pf) (*(PULONG)(pf)) +#define FLOATOBJ_GetLong(pf) ((LONG)*(pf)) +#define FLOATOBJ_Add(pf, pf1) {*(pf) += *(pf1);} +#define FLOATOBJ_AddFloat(pf, f) {*(pf) += (f);} +#define FLOATOBJ_AddLong(pf, l) {*(pf) += (l);} +#define FLOATOBJ_Sub(pf, pf1) {*(pf) -= *(pf1);} +#define FLOATOBJ_SubFloat(pf, f) {*(pf) -= (f);} +#define FLOATOBJ_SubLong(pf, l) {*(pf) -= (l);} +#define FLOATOBJ_Mul(pf, pf1) {*(pf) *= *(pf1);} +#define FLOATOBJ_MulFloat(pf, f) {*(pf) *= (f);} +#define FLOATOBJ_MulLong(pf, l) {*(pf) *= (l);} +#define FLOATOBJ_Div(pf, pf1) {*(pf) /= *(pf1);} +#define FLOATOBJ_DivFloat(pf, f) {*(pf) /= (f);} +#define FLOATOBJ_DivLong(pf, l) {*(pf) /= (l);} +#define FLOATOBJ_Neg(pf) {*(pf) = -(*(pf));} +#define FLOATOBJ_Equal(pf, pf1) (*(pf) == *(pf1)) +#define FLOATOBJ_GreaterThan(pf, pf1) (*(pf) > *(pf1)) +#define FLOATOBJ_LessThan(pf, pf1) (*(pf) < *(pf1)) +#define FLOATOBJ_EqualLong(pf, 1) (*(pf) == (FLOAT)(1)) +#define FLOATOBJ_GreaterThanLong(pf, 1) (*(pf) > (FLOAT)(1)) +#define FLOATOBJ_LessThanLong(pf, 1) (*(pf) < (FLOAT)(1)) + +#endif + WIN32KAPI ULONG APIENTRY