evio
5.3
|
Macros | |
#define | MIN(a, b) ( (a) < (b) ? (a) : (b) ) |
#define | SWAP64(x) |
#define | SWAP32(x) |
#define | SWAP16(x) |
Functions | |
int | eviofmtswap (int32_t *iarr, int nwrd, const unsigned short *ifmt, int nfmt, int tolocal, int padding) |
This function converts (swaps) an array of EVIO composite type data between IEEE (big endian) and DECS (little endian) in place. More... | |
#define MIN | ( | a, | |
b | |||
) | ( (a) < (b) ? (a) : (b) ) |
#define SWAP16 | ( | x | ) |
#define SWAP32 | ( | x | ) |
#define SWAP64 | ( | x | ) |
int eviofmtswap | ( | int32_t * | iarr, |
int | nwrd, | ||
const unsigned short * | ifmt, | ||
int | nfmt, | ||
int | tolocal, | ||
int | padding | ||
) |
This function converts (swaps) an array of EVIO composite type data between IEEE (big endian) and DECS (little endian) in place.
This data does NOT include the composite type's beginning tagsegment and the format string it contains. It also does NOT include the data's bank header words.
Converts the data of array (iarr[i], i=0...nwrd-1) using the format code (ifmt[j], j=0...nfmt-1) .
Algorithm description:
Data processed inside while (ib < nwrd) loop, where 'ib' is iarr[] index; loop breaks when 'ib' reaches the number of elements in iarr[]
iarr | pointer to data to be swapped |
nwrd | number of data words (32-bit ints) to be swapped |
ifmt | unsigned short array holding translated format |
nfmt | length of unsigned short array, ifmt, in # of shorts |
tolocal | if 0 data is of same endian as local host, else data is of opposite endian |
padding | number of bytes to ignore in last data word (starting from data end) |