- wdm.h: Define ALLOC_PRAGMA and ALLOC_DATA_PRAGMA for MSVC.
[reactos.git] / reactos / include / ddk / wdm.h
index 2fd9800..8a590a5 100644 (file)
 #include <guiddef.h>\r
 #endif /* GUID_DEFINED */\r
 \r
-#ifdef __GNUC__\r
 #include "intrin.h"\r
-#endif\r
 \r
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
 \r
-#ifdef _NTOSKRNL_\r
-/* HACKHACKHACK!!! We shouldn't include this header from ntoskrnl! */\r
-#define NTKERNELAPI\r
-#else\r
 #define NTKERNELAPI DECLSPEC_IMPORT\r
-#endif\r
 \r
 #ifdef _WIN64\r
 #define PORT_MAXIMUM_MESSAGE_LENGTH 512\r
@@ -35,6 +28,25 @@ extern "C" {
 #endif\r
 \r
 \r
+#if defined(_MSC_VER)\r
+\r
+//\r
+// Indicate if #pragma alloc_text() is supported\r
+//\r
+#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64)\r
+#define ALLOC_PRAGMA 1\r
+#endif\r
+\r
+//\r
+// Indicate if #pragma data_seg() is supported\r
+//\r
+#if defined(_M_IX86) || defined(_M_AMD64)\r
+#define ALLOC_DATA_PRAGMA 1\r
+#endif\r
+\r
+#endif\r
+\r
+\r
 /* Simple types */\r
 typedef UCHAR KPROCESSOR_MODE;\r
 typedef LONG KPRIORITY;\r
@@ -467,7 +479,7 @@ InterlockedExchangeAdd(
 /*\r
  * PVOID\r
  * InterlockedExchangePointer(\r
- *   IN OUT PVOID VOLATILE  *Target,\r
+ *   IN OUT PVOID volatile  *Target,\r
  *   IN PVOID  Value)\r
  */\r
 #define InterlockedExchangePointer(Target, Value) \\r
@@ -575,13 +587,13 @@ typedef union _SLIST_HEADER {
         ULONGLONG Reserved:59;\r
         ULONGLONG Region:3;\r
     } Header8;\r
+    struct {\r
         ULONGLONG Depth:16;\r
         ULONGLONG Sequence:48;\r
         ULONGLONG HeaderType:1;\r
         ULONGLONG Init:1;\r
         ULONGLONG Reserved:2;\r
         ULONGLONG NextEntry:60;\r
-    struct {\r
     } Header16;\r
 } SLIST_HEADER, *PSLIST_HEADER;\r
 #else\r
@@ -1956,8 +1968,8 @@ RtlEnlargedUnsignedDivide(
     IN OUT PULONG Remainder)\r
 {\r
     if (Remainder)\r
-        *Remainder = Dividend.QuadPart % Divisor;\r
-    return Dividend.QuadPart / Divisor;\r
+        *Remainder = (ULONG)(Dividend.QuadPart % Divisor);\r
+    return (ULONG)(Dividend.QuadPart / Divisor);\r
 }\r
 \r
 //DECLSPEC_DEPRECATED_DDK\r