IBM® Carrier Grade Server X3650 T
Revision 3.0
49
The syscond daemon provides real-time event notification to any process that registers an event query
string with the daemon. Any event matching the query will invoke a Linux RT signal which will send the
client into a function registered with the query. Within this function, a full SysCon event log API is
available to retrieve additional information on the trigger event as well as other events in the log. The
registration and query language is also implemented within the API and external lexical analyzer. The API
is made available in a shared library in the syscon RPM. The API is similar to the open source POSIX
event logging API. The SysCon event log and API, however, do not depend on any POSIX Event log
components or kernel patches.
SysCon Event Log API:
“POSIX Event Log” API calls used in SysCon implementation:
This section lists the API C-library functions. See
APPENDIX E – POSIX Logging API and Query
Specification for SysCon
for details on each function.
int syscon_log_write(syscon_log_dev_type_t dev_type, int event_type,
syscon_log_severity_t severity, const void *buf, size_t len,
int
format)
;
int syscon_log_printf(syscon_log_dev_type_t dev_type, int event_type,
syscon_log_severity_t severity, const char *format, ...);
int syscon_log_open(syscon_logd_t *logdes, const char *path);
int syscon_log_read(syscon_logd_t logdes, struct syscon_log_entry
*entry,
void *
log_buf
, size_t
log_len
);
int syscon_log_notify_add(const syscon_log_query_t *query,
const struct sigevent *notification, int flags,
syscon_log_notify_t *nfyhandle);
int syscon_log_siginfo_recid(const siginfo_t *info, void *context,
syscon_log_recid_t *recid);
int syscon_log_sigval_recid(union sigval sval, syscon_log_recid_t
*recid);
int syscon_log_notify_get(syscon_log_notify_t nfyhandle,
struct sigevent *notification, int *flags, char *qsbuf,
size_t
qslen
, size_t *
reqlen
);
int syscon_log_notify_remove(syscon_log_notify_t nfyhandle);
int syscon_log_close(syscon_logd_t logdes);
int syscon_log_seek(syscon_logd_t logdes, const syscon_log_query_t
*query,
int direction);
int syscon_log_severity_compare(int *order, syscon_log_severity_t s1,
syscon_log_severity_t s2);
int syscon_log_query_create(const char *query_string, int purpose,
syscon_log_query_t *query, char *errbuf, size_t errlen);
int syscon_log_query_get(const syscon_log_query_t *query, int *purpose,
char *qsbuf, size_t qslen, size_t *reqlen);
Summary of Contents for Carrier Grade X3650 T
Page 8: ...IBM Carrier Grade Server X3650 T Revision 3 0 viii This page intentionally left blank...
Page 12: ...IBM Carrier Grade Server X3650 T Revision 3 0 4...
Page 15: ...IBM Carrier Grade Server X3650 T Revision 3 0 7...
Page 17: ...IBM Carrier Grade Server X3650 T Revision 3 0 9...
Page 25: ...IBM Carrier Grade Server X3650 T Revision 3 0 17...
Page 43: ...IBM Carrier Grade Server X3650 T Revision 3 0 35...