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.

HISTORY ^

Initial version by Melvin on 2002/05/01


parrot