NAME | SYNOPSIS | PARAMETERS | DESCRIPTION | EXAMPLES | ATTRIBUTES | SEE ALSO
cc [flag ...] file ...-lsysevent [library ...] #include <libsysevent.h>char *sysevent_get_class_name(sysevent_t *ev);
The sysevent_get_class_name() and sysevent_get_subclass_name() functions return, respectively, the class and subclass names for the provided event ev.
The sysevent_get_event_id() function returns the unique event identifier associated with the sysevent handle, ev. The identifier is composed of a relative timestamp issued at the time the event was generated and a sequence number to ensure uniqueness.
typedef struct sysevent_id { uint64_t eid_seq; hrtime_t eid_ts; } sysevent_id_t;
The sysevent_get_size() function returns the size of the event buffer, ev.
The following example parses sysevent header information from an application's event handler.
hrtime_t last_ev_time; unit64_t last_ev_seq; void event_handler(sysevent_t *ev) { sysevent_t *new_ev; sysevent_id_t eid; /* Filter on class and subclass */ if (strcmp(EC_PRIV, sysevent_get_class_name(ev)) != 0) { return; } else if (strcmp("ESC_MYSUBCLASS, sysevent_get_subclass_name(ev)) != 0) { return; } /* * Check for replayed sysevent, time must * be greater than previously recorded. */ sysevent_get_event_id(ev, &eid); if (eid.eid_ts < last_ev_time || (eid.eid_ts == last_ev_time && eid.eid_seq <= last_ev_seq)) { return; } last_ev_time = eid.eid_ts; last_ev_seq = eid.eid_seq; /* Store event for later processing */ ev_sz = sysevent_get_size(ev): new_ev (sysevent_t *)malloc(ev_sz); bcopy(ev, new_ev, ev_sz); queue_event(new_ev); }
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
MT-Level | MT-Safe |
NAME | SYNOPSIS | PARAMETERS | DESCRIPTION | EXAMPLES | ATTRIBUTES | SEE ALSO