8#ifndef INCLUDED_BSLS_PLATFORMUTIL
9#define INCLUDED_BSLS_PLATFORMUTIL
152#ifdef BDE_OPENSOURCE_PUBLICATION
153#error "bsls_platformutil is deprecated"
206#ifndef BDE_OMIT_INTERNAL_DEPRECATED
255#if defined(BSLS_PLATFORM_CPU_X86_64)
258 #define BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN BSLS_PLATFORM_IS_LITTLE_ENDIAN
261#if defined(BSLS_PLATFORM_CPU_X86)
264 #define BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN \
265 BSLS_PLATFORM_IS_LITTLE_ENDIAN
268#if defined(BSLS_PLATFORM_CPU_ARM)
271 #define BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN \
272 BSLS_PLATFORM_IS_LITTLE_ENDIAN
275#if !defined(BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN)
278 #define BSLS_PLATFORMUTIL_IS_BIG_ENDIAN BSLS_PLATFORM_IS_BIG_ENDIAN
281#ifndef BDE_OMIT_INTERNAL_DEPRECATED
283#if defined(BSLS_PLATFORMUTIL_IS_BIG_ENDIAN)
284#define BSLS_PLATFORMUTIL_HTONL(x) (x)
285#define BSLS_PLATFORMUTIL_HTONS(x) (x)
286#define BSLS_PLATFORMUTIL_NTOHL(x) (x)
287#define BSLS_PLATFORMUTIL_NTOHS(x) (x)
293#if (defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 40300) \
294 || defined(BSLS_PLATFORM_CMP_CLANG)
295#define BSLS_PLATFORMUTIL_NTOHL(x) (unsigned) __builtin_bswap32(x)
297#define BSLS_PLATFORMUTIL_NTOHL(x) \
298 ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
299 (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
301#define BSLS_PLATFORMUTIL_HTONL(x) BSLS_PLATFORMUTIL_NTOHL(x)
302#define BSLS_PLATFORMUTIL_NTOHS(x) \
303 ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
304#define BSLS_PLATFORMUTIL_HTONS(x) BSLS_PLATFORMUTIL_NTOHS(x)
323#if defined(BSLS_PLATFORM_IS_LITTLE_ENDIAN)
324 return BSLS_PLATFORM_IS_LITTLE_ENDIAN;
333#if defined(BSLS_PLATFORM_IS_BIG_ENDIAN)
334 return BSLS_PLATFORM_IS_BIG_ENDIAN;
344 return ((size + BSLS_MAX_ALIGN - 1) / BSLS_MAX_ALIGN) * BSLS_MAX_ALIGN;
349#ifndef BDE_OPENSOURCE_PUBLICATION
360#if !defined(BSL_DOUBLE_UNDERSCORE_XLAT) || 1 == BSL_DOUBLE_UNDERSCORE_XLAT
362#ifdef BSLS_PLATFORMUTIL_IS_BIG_ENDIAN
363# define BSLS_PLATFORMUTIL__IS_BIG_ENDIAN BSLS_PLATFORMUTIL_IS_BIG_ENDIAN
365#ifdef BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN
366# define BSLS_PLATFORMUTIL__IS_LITTLE_ENDIAN BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN
368#define BSLS_PLATFORMUTIL__HTONL(x) BSLS_PLATFORMUTIL_HTONL(x)
369#define BSLS_PLATFORMUTIL__HTONS(x) BSLS_PLATFORMUTIL_HTONS(x)
370#define BSLS_PLATFORMUTIL__NTOHL(x) BSLS_PLATFORMUTIL_NTOHL(x)
371#define BSLS_PLATFORMUTIL__NTOHS(x) BSLS_PLATFORMUTIL_NTOHS(x)
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlt_iso8601util.h:707
AlignmentToType< BSLS_MAX_ALIGNMENT >::Type MaxAlignedType
Definition bsls_alignmentutil.h:307
@ BSLS_MAX_ALIGNMENT
Definition bsls_alignmentutil.h:300
std::size_t UintPtr
Definition bsls_types.h:128
std::size_t size_type
Definition bsls_types.h:126
unsigned long long Uint64
Definition bsls_types.h:139
std::ptrdiff_t IntPtr
Definition bsls_types.h:132
long long Int64
Definition bsls_types.h:134