- The DDK disables usage of _enable/_disable so that driver devs don't
use them. Since the NDK is the home of undocumented things that drivers
shouldn't use, including halfuncs.h will re-enable the intrinsics.
- Add the intrinsics to the w32api as well so that code which uses them
can compile on both msvc and gcc.
- Make DPRINT work on non-DBG msvc builds.
Modified: trunk/reactos/include/ndk/halfuncs.h
Modified: trunk/reactos/include/reactos/debug.h
Modified: trunk/reactos/w32api/include/ddk/winddk.h
_____
Modified: trunk/reactos/include/ndk/halfuncs.h
--- trunk/reactos/include/ndk/halfuncs.h 2006-01-07 01:39:56 UTC
(rev 20641)
+++ trunk/reactos/include/ndk/halfuncs.h 2006-01-07 02:06:22 UTC
(rev 20642)
@@ -28,6 +28,22 @@
#ifndef NTOS_MODE_USER
//
+// The DDK steals these away from you.
+//
+VOID
+_enable(
+ VOID
+);
+VOID
+_disable(
+ VOID
+);
+#ifdef _MSC_VER
+#pragma intrinsic(_enable)
+#pragma intrinsic(_disable)
+#endif
+
+//
// Display Functions
//
NTHALAPI
_____
Modified: trunk/reactos/include/reactos/debug.h
--- trunk/reactos/include/reactos/debug.h 2006-01-07 01:39:56 UTC
(rev 20641)
+++ trunk/reactos/include/reactos/debug.h 2006-01-07 02:06:22 UTC
(rev 20642)
@@ -82,7 +82,12 @@
#define CHECKPOINT do { DbgPrint("%s:%d\n",__FILE__,__LINE__);
} while(0);
#else
- #ifdef __GNUC__
+ #ifdef _MSC_VER
+ static __inline void DPRINT ( const char* fmt, ... )
+ {
+ UNREFERENCED_PARAMETER(fmt);
+ }
+ #else
#define DPRINT(...) do { if(0) { DbgPrint(__VA_ARGS__); } }
while(0)
#endif
#define CHECKPOINT
@@ -94,17 +99,18 @@
#else
/* On non-debug builds, we never show these */
-#ifdef _MSC_VER
-static __inline void DPRINT1 ( const char* fmt, ... )
-{
-}
-static __inline void DPRINT ( const char* fmt, ... )
-{
-}
-#else
- #define DPRINT1(...) do { if(0) { DbgPrint(__VA_ARGS__); } }
while(0)
- #define DPRINT(...) do { if(0) { DbgPrint(__VA_ARGS__); } }
while(0)
-#endif
+ #ifdef _MSC_VER
+ static __inline void DPRINT1 ( const char* fmt, ... )
+ {
+ }
+ static __inline void DPRINT ( const char* fmt, ... )
+ {
+ }
+ #else
+ #define DPRINT1(...) do { if(0) { DbgPrint(__VA_ARGS__); } }
while(0)
+ #define DPRINT(...) do { if(0) { DbgPrint(__VA_ARGS__); } }
while(0)
+ #endif
+
#define CHECKPOINT1
#define CHECKPOINT
#define UNIMPLEMENTED
_____
Modified: trunk/reactos/w32api/include/ddk/winddk.h
--- trunk/reactos/w32api/include/ddk/winddk.h 2006-01-07 01:39:56 UTC
(rev 20641)
+++ trunk/reactos/w32api/include/ddk/winddk.h 2006-01-07 02:06:22 UTC
(rev 20642)
@@ -10270,6 +10270,10 @@
#endif
+/* Available as intrinsics on MSVC */
+static __inline void _disable(void) {__asm__("cli\n\t");}
+static __inline void _enable(void) {__asm__("sti\n\t");}
+
#ifdef __cplusplus
}
#endif