swap_lw_bytes(9r)swap_lw_bytes(9r)NAME
swap_lw_bytes, swap_word_bytes, swap_words - General: Perform byte-
swapping operations
SYNOPSIS
unsigned int swap_lw_bytes(
unsigned int buffer ); unsigned int swap_word_bytes(
unsigned int buffer ); unsigned int swap_words(
unsigned int buffer );
ARGUMENTS
Specifies a 32-bit (4 bytes) quantity.
DESCRIPTION
The swap_lw_bytes interface performs a longword byte swap. The
swap_word_bytes interface performs a short word byte swap. The
swap_words interface performs a word byte swap. Many computer vendors
support devices that use a big endian model of byte ordering. Because
Digital devices support the little endian model of byte ordering, there
is a need for these byte-swapping interfaces. In addition, some buses
(for example, the VMEbus) can have specific or implied byte ordering
that may require the use of these interfaces.
Given that a longword is equal to 4 bytes; a short word is equal to 2
bytes; and 1 byte is equal to 8 bits, these interfaces swap bytes as
follows: The swap_lw_bytes interface takes the 32-bit quantity speciā
fied by the buffer argument and swaps all 4 bytes. The swap_word_bytes
interface takes the 32-bit quantity specified by the buffer argument
and swaps the individual bytes that make up each word of the 32-bit
quantity. The swap_words interface takes the 32-bit quantity specified
by the buffer argument and swaps the two 16-bit words.
The following illustration compares the byte swapping performed by
these interfaces.
31 0
+---+---+---+---+ Starting value: | a | b | c | d
|
+---+---+---+---+
Long word byte swap
(swap_lw_bytes)
31 0
+---+---+---+---+ Ending value: | d | c | b | a
|
+-------+---+---+
Short word byte swap
(swap_word_bytes)
31 0
+---+---+---+---+ Ending value: | b | a | d | c
|
+---+---+---+---+
31 0
+---+---+---+---+ Starting value: | ab | cd
|
+---+---+---+---+
Word byte swap
(swap_words)
31 0
+---+---+---+---+ Ending value: | cd | ab
|
+---+---+---+---+
RETURN VALUES
Upon successful completion, these interfaces return the swapped bytes.
swap_lw_bytes(9r)