2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License, Version 1.0 only 2N/A * (the "License"). You may not use this file except in compliance 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright 1995-2003 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A#
pragma ident "%Z%%M% %I% %E% SMI" 2N/A * Just in case we're not in a build environment, make sure that 2N/A * TEXT_DOMAIN gets set to something. 2N/A * libmeta wrappers for event notification 2N/A * returns 0 on succcess or < 0 to indicate error. 2N/A * abs(return code) = errno 2N/A * meta_notify_createq 2N/A * - creates an eventq 2N/A * - returns 0 on success or errno and sets ep 2N/A "null or zero-length queue name"));
2N/A /* user-defined event data */ 0,
2N/A * meta_notify_deleteq 2N/A * - deletes an eventq 2N/A * - free's any underlying resources 2N/A * - returns 0 on success or errno and sets ep 2N/A /* user-defined event data */ 0,
2N/A * meta_notify_validq 2N/A * - verifies that the queue exists 2N/A * - returns true or false, ep may be changed as a side-effect 2N/A /* user-defined event data */ 0,
2N/A * - returns number of (currently) active queus or -errno 2N/A * - allocates qnames array and sets user's pointer to it, 2N/A * fills in array with vector of qnames 2N/A * meta_notify_flushq 2N/A * - calls the underlying notify driver to flush all events 2N/A * from the named queue 2N/A * - returns 0 on success or errno and sets ep as necessary 2N/A * - collects up to 1 event and stores it into md_ev_t 2N/A * - returns number of events found (0 or 1) on success or -errno 2N/A * - flags governs whether an empty queue is waited upon (EVFLG_WAIT) 2N/A /* flags (unused in get) */ 0,
2N/A /* user-defined event data */ 0,
2N/A * trap EAGAIN so that EV_EMPTY events get returned, but 2N/A * be sure n_ev = 0 so that users who just watch the count 2N/A * meta_notify_getevlist 2N/A * - collects all pending events in the named queue and allocates 2N/A * an md_evlist_t * to return them 2N/A * - returns the number of events found (may be 0 if !WAIT) on success 2N/A * or -errno and sets ep as necessary 2N/A "No event list pointer"));
2N/A "Null or zero-length queue name"));
2N/A * the guts of meta_notify_putev() and meta_notify_sendev() 2N/A * are within this function. 2N/A * meta_notify_putev() is intended for general use by user-level code, 2N/A * such as the GUI, to send user-defined events. 2N/A * meta_notify_sendev() is for "user-level driver" code, such as 2N/A * set manipulation and the multi-host daemon to generate events. 2N/A * Note- only convention enforces this usage. 2N/A * users may only put events of type EQ_USER 2N/A /* flags (unused in put) */ 0,
2N/A * - sends an event down to the notify driver (hence, all queues) 2N/A * - returns 0 on success or errno 2N/A * alternate put event entry point which allows 2N/A * more control of event innards (for use by md "user-level drivers") 2N/A * Since this routine isn't for use by clients, the user event data 2N/A * is always forced to be 0. That is only meaningful for events 2N/A * of type EQ_USER (and those go through meta_notify_putev()), so 2N/A * this is consistent. 2N/A * meta_notify_putevlist 2N/A * - sends all of the events in the event list 2N/A * - returns number of events sent (>= 0) on success or -errno 2N/A * meta_notify_freevlist 2N/A * - frees any memory allocated within the event list 2N/A * - returns 0 on success or errno and sets ep as necessary