NAME

src/byteorder.c - Byteordering functions

DESCRIPTION

These are assigned to a vtable when the PBC file is loaded.

If the vtable method for conversion from the native byteorder is called, it is a no op and will work, but the caller should know if the byteorder in the PBC file is native and skip the conversion and just map it in.

Byte order handlers

Configure will have checked for supported word sizes.

INTVAL fetch_iv_le
This function converts a 4 or 8 byte INTVAL into little endian format. If the native format is already little endian, then no conversion is done.
INTVAL fetch_iv_be
This function converts a 4 or 8 byte INTVAL into big endian format. If the native format is already big endian, then no conversion is done.
opcode_t fetch_op_be
Same as fetch_iv_be for opcode_t
opcode_t fetch_op_le
Same as fetch_iv_le for opcode_tUnrolled routines for swapping various sizes from 32-128 bits. These should only be used if alignment is unknown or we are pulling something out of a padded buffer.
void fetch_buf_be_4
Converts a 4-byte big-endian buffer b into a little-endian rb.
void fetch_buf_le_4
Converts a 4-byte little-endian buffer b into a big-endian buffer rb.
void fetch_buf_be_8
Converts an 8-byte big-endian buffer b into a little-endian buffer rb
void fetch_buf_le_8
Converts an 8-byte little-endian buffer b into a big-endian buffer rb.
void fetch_buf_le_12
Converts a 12-byte little-endian buffer b into a big-endian buffer b.
void fetch_buf_be_12
Converts a 12-byte big-endian buffer b into a little-endian buffer b.
void fetch_buf_le_16
Converts a 16-byte little-endian buffer b into a big-endian buffer b.
void fetch_buf_be_16
Converts a 16-byte big-endian buffer b into a little-endian buffer b.
void fetch_buf_le_32
Converts a 32-byte little-endian buffer b into a big-endian buffer b.
void fetch_buf_be_32
Converts a 32-byte big-endian buffer b into a little-endian buffer b.

HISTORY

Initial version by Melvin on 2002/05/01