# 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