GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> EMSG / V1-1-1 > emsg_st / rhel6-64
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <EMSG/EMSG_msgs.h>
#include <EMSG_prvdefs.h>
#include <PBI/PTR.h>
Functions | |
unsigned int | EMSG_report (unsigned int code, const char *rtn, unsigned int nprm,...) |
Process a message reporting request. |
unsigned int EMSG_report | ( | unsigned int | code, | |
const char * | rtn, | |||
unsigned int | nprm, | |||
... | ||||
) |
Process a message reporting request.
This routine reports a message. It allocates a message packet and populates it with a block of standard information (timestamp, CPU, task name, etc.) and the variable information in the variadic arguments following nprm.
The packet is sent to an message task (in the multi-threaded case) where the message is formatted using the formatting string associated with the message code. The message task then calls all output processors in turn to do whatever it is they want to do with the information.
In the single-threaded case, the message processing occurs inline with the routine call.
code | (in) Message code to be reported | |
rtn | (in) Name of calling routine (note 1) | |
nprm | (in) Number of parameters that follow |
code | Reflection of the first input argument, probably with "reported" bit set |
__func__
macro to fill in the routine name.References _EMSG_Control::acb, _EMSG_Control::beg, _EMSG_Packet::buf, _EMSG_AltMessage::code, _EMSG_Message::code, _EMSG_Counts::drop, _EMSG_Control::drp, EMSG_A_GAPBEGIN, EMSG_A_UNIXEROR, EMSG_A_UNIXGOOD, EMSG_alt, EMSG_find(), EMSG_getLevel(), EMSG_getTask(), EMSG_getTrace(), EMSG_K_FMT4BYTE, EMSG_M_FACILITY, EMSG_M_REPORT, EMSG_M_SEVERITY, EMSG_mcb, EMSG_outputScan(), EMSG_RW_DECLARE, EMSG_RW_LOCK, EMSG_RW_UNLOCK, EMSG_S_STARTED, EMSG_V_SEVERITY, _EMSG_Message::fac, _EMSG_Message::isr, _EMSG_Counts::lwm, _EMSG_Packet::msg, _EMSG_Message::nick, _EMSG_Control::now, _EMSG_Control::reset, _EMSG_Message::rtn, _EMSG_Message::sev, _EMSG_Control::start, _EMSG_Control::state, _EMSG_Message::task, _EMSG_Message::text, _EMSG_Message::tid, _EMSG_Message::time, and _EMSG_Message::trace.