NAME
bemtoh16
,
bemtoh32
, bemtoh64
,
lemtoh16
, lemtoh32
,
lemtoh64
, htobem16
,
htobem32
, htobem64
,
htolem16
, htolem32
,
htolem64
—
byte swapping memory load and store
operations
SYNOPSIS
#include
<sys/types.h>
uint16_t
bemtoh16
(volatile
const uint16_t *m);
uint32_t
bemtoh32
(volatile
const uint32_t *m);
uint64_t
bemtoh64
(volatile
const uint64_t *m);
uint16_t
lemtoh16
(volatile
const uint16_t *m);
uint32_t
lemtoh32
(volatile
const uint32_t *m);
uint64_t
lemtoh64
(volatile
const uint64_t *m);
void
htobem16
(volatile
uint16_t *m, uint16_t
v);
void
htobem32
(volatile
uint32_t *m, uint32_t
v);
void
htobem64
(volatile
uint64_t *m, uint64_t
v);
void
htolem16
(volatile
uint16_t *m, uint16_t
v);
void
htolem32
(volatile
uint32_t *m, uint32_t
v);
void
htolem64
(volatile
uint64_t *m, uint64_t
v);
DESCRIPTION
This API provides a way to take advantage of an architecture's ability to load and store words in memory of different endians. If an architecture has no specialised support for these operations, they will be implemented as a wrapper around the htobe64(3) API.
These operations are subject to the same alignment restrictions as the host's normal memory loads and stores.
bemtoh16
(),
bemtoh32
(),
and
bemtoh64
()
read a big endian value from the memory located at m
into the host's native byte order.
lemtoh16
(),
lemtoh32
(),
and
lemtoh64
()
read a little endian value from the memory located at
m into the host's native byte order.
htobem16
(),
htobem32
(),
and
htobem64
()
store the host's native byte ordered value of v as a
big endian value in the memory located at m.
htolem16
(),
htolem32
(),
and
htolem64
()
store the host's native byte ordered value of v as a
little endian value in the memory located at m.
CONTEXT
bemtoh16
(),
bemtoh32
(), bemtoh64
(),
lemtoh16
(), lemtoh32
(),
lemtoh64
(), htobem16
(),
htobem32
(), htobem64
(),
htolem16
(), htolem32
(), and
htolem64
() can be called during autoconf, from
process context, or from interrupt context.
RETURN VALUES
bemtoh16
(),
bemtoh32
(), bemtoh64
(),
lemtoh16
(), lemtoh32
(), and
lemtoh64
() return the host's native byte ordered
value of the memory at m after the appropriate
byteswapping has occurred.
htobem16
(),
htobem32
(), htobem64
(),
htolem16
(), htolem32
(), and
htolem64
() do not return a value.
SEE ALSO
HISTORY
These functions first appeared in OpenBSD 5.6.