Something went wrong. Try again.
Reactos
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries * FILE: lib/rtl/byteswap.c * PURPOSE: Memory functions * PROGRAMMER: David Welch (welch@mcmail.com) */
/* INCLUDES *****************************************************************/
#include <rtl.h>
#define NDEBUG#include <debug.h>
#if defined(_M_IX86)/* RtlUlonglongByteSwap is broken and cannot be done in C on x86 */#error "Use rtlswap.S!"#endif
#undef RtlUlonglongByteSwap#undef RtlUlongByteSwap#undef RtlUshortByteSwap
/************************************************************************* * RtlUshortByteSwap * * Swap the bytes of an unsigned short value. * * NOTES * Based on the inline versions in Wine winternl.h * * @implemented */USHORTFASTCALLRtlUshortByteSwap( IN USHORT Source){#if defined(_M_AMD64) return _byteswap_ushort(Source);#else return (Source >> 8) | (Source << 8);#endif}
/************************************************************************* * RtlUlongByteSwap [NTDLL.@] * * Swap the bytes of an unsigned int value. * * NOTES * Based on the inline versions in Wine winternl.h * * @implemented */ULONGFASTCALLRtlUlongByteSwap( IN ULONG Source){#if defined(_M_AMD64) return _byteswap_ulong(Source);#else return ((ULONG)RtlUshortByteSwap((USHORT)Source) << 16) | RtlUshortByteSwap((USHORT)(Source >> 16));#endif}
/************************************************************************* * RtlUlonglongByteSwap * * Swap the bytes of an unsigned long long value. * * PARAMS * i [I] Value to swap bytes of * * RETURNS * The value with its bytes swapped. * * @implemented */ULONGLONG FASTCALLRtlUlonglongByteSwap( IN ULONGLONG Source){#if defined(_M_AMD64) return _byteswap_uint64(Source);#else return ((ULONGLONG) RtlUlongByteSwap (Source) << 32) | RtlUlongByteSwap (Source>>32);#endif}
/* EOF */