* This file is part of the ReactOS DDK package.
*
* Contributors:
- * Amine Khaldi
+ * Amine Khaldi (amine.khaldi@reactos.org)
* Timo Kreuzer (timo.kreuzer@reactos.org)
*
* THIS SOFTWARE IS NOT COPYRIGHTED
#include <excpt.h>
#include <ntdef.h>
#include <ntstatus.h>
+#include <kernelspecs.h>
#include <ntiologc.h>
#ifndef GUID_DEFINED
#include "intrin.h"
+__internal_kernel_driver
+__drv_Mode_impl(WDM_INCLUDED)
+
#ifdef __cplusplus
extern "C" {
#endif
#endif
/* For ReactOS */
-#if !defined(_NTOSKRNL_) && !defined(_BLDR_)
+#if !defined(_NTOSKRNL_) && !defined(_BLDR_) && !defined(_NTSYSTEM_)
#define NTKERNELAPI DECLSPEC_IMPORT
#else
#define NTKERNELAPI
+#ifndef _NTSYSTEM_
+#define _NTSYSTEM_
+#endif
#endif
#if defined(_X86_) && !defined(_NTHAL_)
#pragma warning(disable:4115) /* Named type definition in parentheses */
#pragma warning(disable:4201) /* Nameless unions and structs */
#pragma warning(disable:4214) /* Bit fields of other types than int */
-#pragma warning(disable:4820) /* Padding added, due to alignemnet requirement */
+#pragma warning(disable:4820) /* Padding added, due to alignment requirement */
/* Indicate if #pragma alloc_text() is supported */
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64)
#define ALLOC_DATA_PRAGMA 1
#endif
+#endif /* _MSC_VER */
+
+/* These macros are used to create aliases for imported data. We need to do
+ this to have declarations that are compatible with MS DDK */
+#ifdef _M_IX86
+#define __SYMBOL(_Name) "_"#_Name
+#define __IMPORTSYMBOL(_Name) "__imp__"#_Name
+#define __IMPORTNAME(_Name) __imp__##_Name
+#else
+#define __SYMBOL(_Name) #_Name
+#define __IMPORTSYMBOL(_Name) "__imp_"#_Name
+#define __IMPORTNAME(_Name) __imp_##_Name
+#endif
+#ifdef _MSC_VER
+#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name) \
+ __pragma(comment(linker, "/alternatename:"__SYMBOL(_Name) "=" __IMPORTSYMBOL(_Name)))
+#else /* !_MSC_VER */
+#ifndef __STRINGIFY
+#define __STRINGIFY(_exp) #_exp
+#endif
+#define _Pragma_redefine_extname(_Name, _Target) _Pragma(__STRINGIFY(redefine_extname _Name _Target))
+#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name) \
+ _Pragma_redefine_extname(_Name,__IMPORTNAME(_Name))
#endif
#if defined(_WIN64)
$include (pstypes.h)
$include (wmitypes.h)
-#if defined(_M_IX86)
-$include(x86/ke.h)
-#elif defined(_M_AMD64)
-$include(amd64/ke.h)
-#elif defined(_M_IA64)
-$include(ia64/ke.h)
-#elif defined(_M_PPC)
-$include(ppc/ke.h)
-#elif defined(_M_MIPS)
-$include(mips/ke.h)
-#elif defined(_M_ARM)
-$include(arm/ke.h)
-#else
-#error Unknown Architecture
-#endif
-
-$include (rtlfuncs.h)
$include (kefuncs.h)
+$include (rtlfuncs.h)
$include (mmfuncs.h)
$include (sefuncs.h)
$include (cmfuncs.h)