MPE_Log_pack
pack informational data into byte buffer to be stored in a infomational event. The routine will byteswap data if it is invoked on a small endian machine.
Synopsis
int MPE_Log_pack( MPE_LOG_BYTES bytebuf, int *position,
char tokentype, int count, const void *data )
Ouput Parameters
- bytebuf
- output byte buffer which is of sizeof(MPE_LOG_BYTES),
i.e. 32 bytes. For C, bytebuf could be of type
MPE_LOG_BYTES. For Fortran, bytebuf could be of
type 'character*32'
- position
- an offset measured from the beginning of the bytebuf.
On input, data will be written to the offset position.
On Output, position will be updated to reflect the next
available position in the byte buffer.
Input Parameters
- tokentype
- a character token type indicator, currently supported tokens are
's', 'h', 'd', 'l', 'x', 'X', 'e' and 'E'.
- count
- the number of continuous storage units as indicated by tokentype.
- data
- pointer to the beginning of the storage units being copied.
Notes on storage format control support
The format control string is printf like, e.g. "Comment = %s".
All the MPE %-token storage support is provided by SLOG-2. That is
whatever supported by SLOG-2 will be supported by MPE. Currently,
the following is supported.
%s : variable length string, byte buffer size is length of string + 2.
%h : 2-byte integer, printed as decimal integer, byte buffer size is 2.
%d : 4-byte integer, printed as decimal integer, byte buffer size is 4.
%l : 8-byte integer, printed as decimal integer, byte buffer size is 8.
%x : 4-byte integer, printed as hexadecimal integer, byte buffer size is 4.
%X : 8-byte integer, printed as hexadecimal integer, byte buffer size is 8.
%e : 4-byte float, printed as decimal float, byte buffer size is 4.
%E : 8-byte float, printed as decimal float, byte buffer size is 8.
Location:../src/logging/src/mpe_log.c