- 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.

svn path=/trunk/; revision=20642
This commit is contained in:
Alex Ionescu 2006-01-07 02:06:22 +00:00
parent 320f45bb8e
commit fd3573b0ed
3 changed files with 38 additions and 12 deletions

View file

@ -27,6 +27,22 @@ Author:
#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
//

View file

@ -82,7 +82,12 @@ RtlAssert(
#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 @@ RtlAssert(
#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

View file

@ -10270,6 +10270,10 @@ extern BOOLEAN KdDebuggerEnabled;
#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