blob: dedeabf2542b54f7ff9df2a5880953927818b731 [file] [log] [blame]
/* Copyright (c) 2010 The Regents of the University of California
* Barret Rhoden <brho@cs.berkeley.edu>
* See LICENSE for details.
*
* Endian #def and byte_swapping functions */
#pragma once
#include <ros/common.h>
#include <arch/types.h>
static inline uint16_t byte_swap16(uint16_t x)
{
return (uint16_t)(x << 8 | x >> 8);
}
static inline uint32_t byte_swap32(uint32_t x)
{
return (uint32_t)(((uint32_t)byte_swap16(x & 0xffff) << 16) |
(byte_swap16(x >> 16)));
}
static inline uint64_t byte_swap64(uint64_t x)
{
return (uint64_t)(((uint64_t)byte_swap32(x & 0xffffffff) << 32) |
(byte_swap32(x >> 32)));
}