sync to trunk head (37853) (except rbuild changes)
[reactos.git] / reactos / include / ddk / wdm.h
index 9daef60..c0c126e 100644 (file)
@@ -9,7 +9,11 @@
 #include <ntdef.h>\r
 #include <ntstatus.h>\r
 \r
+#ifdef __GNUC__\r
+#include "intrin.h"\r
+#endif\r
 \r
+typedef struct _CONTEXT *PCONTEXT;\r
 \r
 //\r
 // Resource list definitions\r
@@ -177,29 +181,8 @@ InterlockedBitTestAndReset(IN LONG volatile *Base,
 #endif\r
 }\r
 \r
-static __inline__ BOOLEAN\r
-BitScanReverse(OUT ULONG *Index,\r
-               IN ULONG Mask)\r
-{\r
-       BOOLEAN BitPosition = 0;\r
-#if defined(_M_IX86)\r
-       __asm__ __volatile__("bsrl %2,%0\n\t"\r
-                            "setnz %1\n\t"\r
-                            :"=&r" (*Index), "=q" (BitPosition)\r
-                            :"rm" (Mask)\r
-                            :"memory");\r
-       return BitPosition;\r
-#else\r
-       /* Slow implementation for now */\r
-       for( *Index = 31; *Index; (*Index)-- ) {\r
-               if( (1<<*Index) & Mask ) {\r
-                       return TRUE;\r
-               }\r
-       }\r
-\r
-       return FALSE;\r
-#endif\r
-}\r
+#define BitScanForward _BitScanForward\r
+#define BitScanReverse _BitScanReverse\r
 \r
 #endif\r
 \r
@@ -642,10 +625,10 @@ typedef struct _CONTEXT {
     ULONG Esp;\r
     ULONG SegSs;\r
     UCHAR ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];\r
-} CONTEXT, *PCONTEXT;\r
+} CONTEXT;\r
 \r
 #elif defined(_M_AMD64)\r
-#error FIXME-TODO: 64-bit\r
+//#error FIXME-TODO: 64-bit\r
 #elif defined(_M_ARM)\r
 \r
 //\r
@@ -699,7 +682,7 @@ typedef struct _CONTEXT {
        ULONG Lr;\r
        ULONG Pc;\r
        ULONG Psr;\r
-} CONTEXT, *PCONTEXT;\r
+} CONTEXT;\r
 \r
 #else\r
 #error "Undefined processor architecture"\r