IBM® Carrier Grade Server X3650 T
Revision 3.0
84
17.2.3.2.4 syscon_log_sigval_recid()
The syscon_log_sigval_recid() function shall store the record ID of the event record associated with the
current notification to the location pointed to by the recid argument. If the SYSCONLOG_SEND_RECID
flag is not set in the associated notification request, the value stored to recid shall be undefined.
This function is intended to be called from the new thread that handles delivery of an event notification.
(In the associated notification request, notification->sigev_notify must be SIGEV_THREAD.) The sval
argument of syscon_log_sigval_recid() shall be the sigval argument of that thread’s start_routine. The
effect of calling syscon_log_sigval_recid() under other circumstances shall be undefined.
17.2.3.2.5 syscon_log_notify_get()
The syscon_log_notify_get() function retrieves the parameters of the notification request associated with
the nfyhandle argument. A copy of the notification request’s sigevent structure shall be stored to the
location pointed to by the notification argument.
A copy of the notification request’s flags shall be stored to the location pointed to by the flags argument.
If the notification request is currently disabled, the SYSCONLOG_NFY_DISABLED flag shall be set.
syscon_log_notify_get() shall also store a textual query expression to the buffer pointed to by the qsbuf
argument; this expression (a null-terminated string) shall be functionally equivalent to the one that was
used to create the notification request’s query object. (If the notification request’s query object is NULL, a
null character shall be stored to qsbuf[0].) The buffer pointed to by qsbuf is assumed to be at least qslen
bytes long. If qsbuf is equal to NULL, or the buffer is too small to hold the returned character string, the
syscon_log_notify_get() function shall fail. In any case, if the reqlen argument is not NULL, the length in
bytes of the query expression shall be stored in the location pointed to by reqlen.
17.2.3.2.6 Notification Requests
A process may have up to {SYSCONLOG_NOTIFY_MAX} notification requests (including disabled
requests) registered at any one time. Registration (creation), disabling, or removal of one notification
request has no effect on other notification requests. When the system log receives a new event record,
all notification requests for a particular process are processed sequentially and independently. If a
process has more than one notification request that is matched by a particular event, then the notification
associated with each such notification request will be sent to the process.
Notifications shall not be sent before the associated event record has been added to the system log, and
is available for detection by syscon_log_seek() and reading by syscon_log_read().
17.2.3.3 Returns
Upon successful completion, these functions shall return zero. Otherwise, an error number shall be
returned to indicate the error. If syscon_log_notify_add() fails, the data pointed to by nfyhandle shall
remain unchanged. If syscon_log_siginfo_recid() or syscon_log_sigval_recid() fails, the data pointed to
by the recid argument shall remain unchanged. If syscon_log_notify_get() fails, the data pointed to by the
notification and query_string arguments shall remain unchanged.