[DDK] Move rtl byteswap functions to wdm.h and add intrinsic definitions
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 3 Feb 2009 19:55:11 +0000 (19:55 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 3 Feb 2009 19:55:11 +0000 (19:55 +0000)
svn path=/branches/ros-amd64-bringup/; revision=39347

reactos/include/ddk/wdm.h
reactos/include/ddk/winddk.h

index e2eb6ec..dca408e 100644 (file)
@@ -630,5 +630,48 @@ typedef struct _QUOTA_LIMITS {
 #define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010\r
 \r
 \r
+//\r
+// Byte Swap Functions\r
+//\r
+#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || \\r
+    ((defined(_M_AMD64) || \\r
+     defined(_M_IA64)) && (_MSC_FULL_VER > 13009175))\r
+\r
+unsigned short __cdecl _byteswap_ushort(unsigned short);\r
+unsigned long  __cdecl _byteswap_ulong (unsigned long);\r
+unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64);\r
+#pragma intrinsic(_byteswap_ushort)\r
+#pragma intrinsic(_byteswap_ulong)\r
+#pragma intrinsic(_byteswap_uint64)\r
+#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))\r
+#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))\r
+#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))\r
+\r
+#elif defined(__GNUC__)\r
+\r
+#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))\r
+#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))\r
+#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))\r
+\r
+#else\r
+\r
+#if (NTDDI_VERSION >= NTDDI_WIN2K)\r
+NTSYSAPI\r
+USHORT\r
+FASTCALL\r
+RtlUshortByteSwap(IN USHORT Source);\r
+\r
+NTSYSAPI\r
+ULONG\r
+FASTCALL\r
+RtlUlongByteSwap(IN ULONG Source);\r
+\r
+NTSYSAPI\r
+ULONGLONG\r
+FASTCALL\r
+RtlUlonglongByteSwap(IN ULONGLONG Source);\r
+#endif\r
+\r
+#endif\r
 \r
 #endif // _WDMDDK_\r
index 3493547..33f2560 100644 (file)
@@ -7183,16 +7183,6 @@ RtlTimeToTimeFields(
   IN PLARGE_INTEGER  Time,
   IN PTIME_FIELDS  TimeFields);
 
-ULONG
-FASTCALL
-RtlUlongByteSwap(
-  IN ULONG  Source);
-
-ULONGLONG
-FASTCALL
-RtlUlonglongByteSwap(
-  IN ULONGLONG  Source);
-
 #define RtlUnicodeStringToAnsiSize(STRING) (                  \
     NLS_MB_CODE_PAGE_TAG ?                                    \
     RtlxUnicodeStringToAnsiSize(STRING) :                     \
@@ -7264,11 +7254,6 @@ RtlUpperString(
   IN OUT PSTRING  DestinationString,
   IN PSTRING  SourceString);
 
-USHORT
-FASTCALL
-RtlUshortByteSwap(
-  IN USHORT  Source);
-
 NTSYSAPI
 BOOLEAN
 NTAPI