[ros-diffs] [tkreuzer] 34555: FLOATOBJ is a structure only on x86 in kernelmode, for usermode drivers and other architectures it's a FLOAT. Update winddi.h accordingly.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Wed Jul 16 23:12:28 CEST 2008


Author: tkreuzer
Date: Wed Jul 16 16:12:27 2008
New Revision: 34555

URL: http://svn.reactos.org/svn/reactos?rev=34555&view=rev
Log:
FLOATOBJ is a structure only on x86 in kernelmode, for usermode drivers and other architectures it's a FLOAT. Update winddi.h accordingly.

Modified:
    trunk/reactos/include/ddk/winddi.h

Modified: trunk/reactos/include/ddk/winddi.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/winddi.h?rev=34555&r1=34554&r2=34555&view=diff
==============================================================================
--- trunk/reactos/include/ddk/winddi.h [iso-8859-1] (original)
+++ trunk/reactos/include/ddk/winddi.h [iso-8859-1] Wed Jul 16 16:12:27 2008
@@ -544,11 +544,15 @@
   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 @@
   IN DWORD  cbBuf,
   OUT LPDWORD  pcWritten);
 
+#if defined(_X86_) && !defined(USERMODE_DRIVER)
 WIN32KAPI
 VOID
 APIENTRY
@@ -2444,6 +2449,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



More information about the Ros-diffs mailing list