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_t

Unrolled 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