[ros-diffs] [tkreuzer] 39347: [DDK] Move rtl byteswap functions to wdm.h and add intrinsic definitions

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Tue Feb 3 20:55:12 CET 2009


Author: tkreuzer
Date: Tue Feb  3 13:55:11 2009
New Revision: 39347

URL: http://svn.reactos.org/svn/reactos?rev=39347&view=rev
Log:
[DDK] Move rtl byteswap functions to wdm.h and add intrinsic definitions

Modified:
    branches/ros-amd64-bringup/reactos/include/ddk/wdm.h
    branches/ros-amd64-bringup/reactos/include/ddk/winddk.h

Modified: branches/ros-amd64-bringup/reactos/include/ddk/wdm.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/include/ddk/wdm.h?rev=39347&r1=39346&r2=39347&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/include/ddk/wdm.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/include/ddk/wdm.h [iso-8859-1] Tue Feb  3 13:55:11 2009
@@ -630,5 +630,48 @@
 #define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010
 
 
+//
+// Byte Swap Functions
+//
+#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || \
+    ((defined(_M_AMD64) || \
+     defined(_M_IA64)) && (_MSC_FULL_VER > 13009175))
+
+unsigned short __cdecl _byteswap_ushort(unsigned short);
+unsigned long  __cdecl _byteswap_ulong (unsigned long);
+unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64);
+#pragma intrinsic(_byteswap_ushort)
+#pragma intrinsic(_byteswap_ulong)
+#pragma intrinsic(_byteswap_uint64)
+#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
+#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
+#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
+
+#elif defined(__GNUC__)
+
+#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
+#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
+#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
+
+#else
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTSYSAPI
+USHORT
+FASTCALL
+RtlUshortByteSwap(IN USHORT Source);
+
+NTSYSAPI
+ULONG
+FASTCALL
+RtlUlongByteSwap(IN ULONG Source);
+
+NTSYSAPI
+ULONGLONG
+FASTCALL
+RtlUlonglongByteSwap(IN ULONGLONG Source);
+#endif
+
+#endif
 
 #endif // _WDMDDK_

Modified: branches/ros-amd64-bringup/reactos/include/ddk/winddk.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/include/ddk/winddk.h?rev=39347&r1=39346&r2=39347&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/include/ddk/winddk.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/include/ddk/winddk.h [iso-8859-1] Tue Feb  3 13:55:11 2009
@@ -7183,16 +7183,6 @@
   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) :                     \
@@ -7263,11 +7253,6 @@
 RtlUpperString(
   IN OUT PSTRING  DestinationString,
   IN PSTRING  SourceString);
-
-USHORT
-FASTCALL
-RtlUshortByteSwap(
-  IN USHORT  Source);
 
 NTSYSAPI
 BOOLEAN



More information about the Ros-diffs mailing list