MPE_Log_pack
pack the informational data into the byte buffer to be stored in a infomational event. The routine will byteswap the 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 )
Output 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