static void sev_send(void *arg, nvlist_t *msg) { if ((errno = sysevent_evc_publish(arg, EC_FM, ESC_FM_ERROR, "com.sun", getpname(), msg, EVCH_SLEEP)) != 0) warn("failed to send event"); }
/* * fps_post_ereport(nvlist_t *ereport) posts an * ereport to the sysevent error channel. The error * channel is assumed to be established by fps-transport.so. */ static int fps_post_ereport(nvlist_t *ereport) { evchan_t *scp; if (sysevent_evc_bind(CHANNEL, &scp, BIND_FLAGS) != 0) { return (1); } if (sysevent_evc_publish(scp, CLASS, SUBCLASS, VENDOR, PUBLISHER, ereport, EVCH_NOSLEEP) != 0) { return (1); } (void) sleep(1); (void) fflush(NULL); (void) sysevent_evc_unbind(scp); return (0); }