[ros-diffs] [tkreuzer] 39346: [NDK] Use intrinsics for rtl byteswap functions for GNUC, too. Only include them if NTOS_MODE_USER. Fuctions are only present for NTDDI_VERSION >= NTDDI_WIN2K

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Tue Feb 3 20:51:10 CET 2009


Author: tkreuzer
Date: Tue Feb  3 13:51:09 2009
New Revision: 39346

URL: http://svn.reactos.org/svn/reactos?rev=39346&view=rev
Log:
[NDK] Use intrinsics for rtl byteswap functions for GNUC, too. Only include them if NTOS_MODE_USER. Fuctions are only present for NTDDI_VERSION >= NTDDI_WIN2K

Modified:
    branches/ros-amd64-bringup/reactos/include/ndk/rtlfuncs.h

Modified: branches/ros-amd64-bringup/reactos/include/ndk/rtlfuncs.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/include/ndk/rtlfuncs.h?rev=39346&r1=39345&r2=39346&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/include/ndk/rtlfuncs.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/include/ndk/rtlfuncs.h [iso-8859-1] Tue Feb  3 13:51:09 2009
@@ -1370,6 +1370,8 @@
 //
 // Byte Swap Functions
 //
+#ifdef NTOS_MODE_USER
+
 #if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || \
     ((defined(_M_AMD64) || \
      defined(_M_IA64)) && (_MSC_FULL_VER > 13009175))
@@ -1384,8 +1386,15 @@
 #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
@@ -1400,8 +1409,10 @@
 ULONGLONG
 FASTCALL
 RtlUlonglongByteSwap(IN ULONGLONG Source);
-
 #endif
+
+#endif
+#endif // NTOS_MODE_USER
 
 //
 // Unicode->Ansi String Functions



More information about the Ros-diffs mailing list