+2006-01-24 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/ddk/winddk.h (KeGetCurrentKPCR): Support -masm=intel.
+
+2006-01-24 Jiri Malak <Jiri.Malak@iol.cz>
+
+ WATCOM compatibility changes.
+ * include/ddk/ntddk.h (DECL_IMPORT): Define using __declspec,
+ rather than __attribute__.
+ (DECL_EXPORT): Likewise.
+ * include/ddk/winddk.h (DDKAPI): Avoid using __attribute__.
+ (DDKFASTAPI): Likewise.
+ (DDKCDECLAPI): Likwise.
+ (KeGetCurrentKPCR): Provide __WATCOMC__ syntax for inline code.
+
2006-01-23 Brandon Sneed <brandon@redf.net>
* setupapi.def: Add all CM_* functions defined in ddk/cfgmgr32.h
#endif
#ifndef DECL_IMPORT
-#define DECL_IMPORT __attribute__((dllimport))
+#define DECL_IMPORT __declspec(dllimport)
#endif
#ifndef DECL_EXPORT
-#define DECL_EXPORT __attribute__((dllexport))
+#define DECL_EXPORT __declspec(dllexport)
#endif
/* Windows NT status codes */
/*
** Definitions specific to this Device Driver Kit
*/
-#define DDKAPI __attribute__((stdcall))
-#define DDKFASTAPI __attribute__((fastcall))
-#define DDKCDECLAPI __attribute__((cdecl))
+#define DDKAPI __stdcall
+#define DDKFASTAPI __fastcall
+#define DDKCDECLAPI __cdecl
#if defined(_NTOSKRNL_)
#ifndef NTOSAPI
#define TAG(_a, _b, _c, _d) (ULONG) \
(((_a) << 0) + ((_b) << 8) + ((_c) << 16) + ((_d) << 24))
+#ifdef __GNUC__
static __inline struct _KPCR * KeGetCurrentKPCR(
VOID)
{
ULONG Value;
- __asm__ __volatile__ ("movl %%fs:0x18, %0\n\t"
- : "=r" (Value)
- : /* no inputs */
+ __asm__ __volatile__ (
+#if (__GNUC__ >= 3)
+ /* support -masm=intel */
+ "mov{l} {%%fs:0x18, %0|%0, %%fs:0x18}\n\t"
+#else
+ "movl %%fs:0x18, %0\n\t"
+#endif
+ : "=r" (Value)
+ : /* no inputs */
);
return (struct _KPCR *) Value;
}
+#elif defined( __WATCOMC__ )
+
+extern struct _KPCR * KeGetCurrentKPCR( void );
+#pragma aux KeGetCurrentKPCR = \
+ "mov eax, fs:[0x18]" \
+ value [ eax ];
+
+#endif
+
/*
** Simple structures
*/