- 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