
SYNOPSIS

extern char *moninstall(int type, sigset_t *block);
extern int   monsignal(int signo, int (*f)());
extern void  monshutdown(void);

extern struct _timesel far *montimep;
extern unsigned             monds;
extern struct _osinfo       monosdata;

extern qnx_kev_disable();
extern qnx_kev_enable(unsigned faults, unsigned irqset);


extern struct KernelEvent monevent;

/*-
 * user supplies
 */
extern void EvAp_put(void);
extern void EvAp_done(int code); /*-tive for signal error*/


DESCRIPTION

The monitor library is a framework for writing programs which intercept the
kernel event logging system.
The interception occurs at a very low level, and small malfunctions will
corrupt or crash the QNX Operating System.
Please keep the intr (interrupt) code component small and readable.
The user of the framework must provide two routines; one is called from the
kernel's context for each event generated (the EvAp_put() function);
the other is called to shutdown the logging (the EvAp_done() function).

A single public event structure (monevent) is filled out before EvAp_put()
is called, containing the event type, a high resolution timestamp and
a pointer to the event data fields.

