xref: /libevent-2.1.12/kqueue-internal.h (revision 53a07fe2)
1*53a07fe2SNick Mathewson /*
2*53a07fe2SNick Mathewson  * Copyright (c) 2012 Niels Provos and Nick Mathewson
3*53a07fe2SNick Mathewson  *
4*53a07fe2SNick Mathewson  * Redistribution and use in source and binary forms, with or without
5*53a07fe2SNick Mathewson  * modification, are permitted provided that the following conditions
6*53a07fe2SNick Mathewson  * are met:
7*53a07fe2SNick Mathewson  * 1. Redistributions of source code must retain the above copyright
8*53a07fe2SNick Mathewson  *    notice, this list of conditions and the following disclaimer.
9*53a07fe2SNick Mathewson  * 2. Redistributions in binary form must reproduce the above copyright
10*53a07fe2SNick Mathewson  *    notice, this list of conditions and the following disclaimer in the
11*53a07fe2SNick Mathewson  *    documentation and/or other materials provided with the distribution.
12*53a07fe2SNick Mathewson  * 3. The name of the author may not be used to endorse or promote products
13*53a07fe2SNick Mathewson  *    derived from this software without specific prior written permission.
14*53a07fe2SNick Mathewson  *
15*53a07fe2SNick Mathewson  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16*53a07fe2SNick Mathewson  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17*53a07fe2SNick Mathewson  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18*53a07fe2SNick Mathewson  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19*53a07fe2SNick Mathewson  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20*53a07fe2SNick Mathewson  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21*53a07fe2SNick Mathewson  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22*53a07fe2SNick Mathewson  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23*53a07fe2SNick Mathewson  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24*53a07fe2SNick Mathewson  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25*53a07fe2SNick Mathewson  */
26*53a07fe2SNick Mathewson #ifndef KQUEUE_INTERNAL_H_INCLUDED_
27*53a07fe2SNick Mathewson #define KQUEUE_INTERNAL_H_INCLUDED_
28*53a07fe2SNick Mathewson 
29*53a07fe2SNick Mathewson /** Notification function, used to tell an event base to wake up from another
30*53a07fe2SNick Mathewson  * thread.  Only works when event_kq_add_notify_event_() has previously been
31*53a07fe2SNick Mathewson  * called successfully on that base. */
32*53a07fe2SNick Mathewson int event_kq_notify_base_(struct event_base *base);
33*53a07fe2SNick Mathewson 
34*53a07fe2SNick Mathewson /** Prepare a kqueue-using event base to receive notifications via an internal
35*53a07fe2SNick Mathewson  * EVFILT_USER event.  Return 0 on sucess, -1 on failure.
36*53a07fe2SNick Mathewson  */
37*53a07fe2SNick Mathewson int event_kq_add_notify_event_(struct event_base *base);
38*53a07fe2SNick Mathewson 
39*53a07fe2SNick Mathewson #endif
40