BEMTOH32(9) Kernel Developer's Manual BEMTOH32(9)

bemtoh16, bemtoh32, bemtoh64, lemtoh16, lemtoh32, lemtoh64, htobem16, htobem32, htobem64, htolem16, htolem32, htolem64byte swapping memory load and store operations

#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);

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.

(), (), and () read a big endian value from the memory located at m into the host's native byte order. (), (), and () read a little endian value from the memory located at m into the host's native byte order.

(), (), and () store the host's native byte ordered value of v as a big endian value in the memory located at m. (), (), and () store the host's native byte ordered value of v as a little endian value in the memory located at m.

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.

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.

htobe64(3)

These functions first appeared in OpenBSD 5.6.

March 31, 2022 OpenBSD 7.5