]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/libbegemot/rpoll.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / libbegemot / rpoll.h
1 /*
2  * Copyright (c)1996-2002 by Hartmut Brandt
3  *      All rights reserved.
4  *
5  * Author: Hartmut Brandt
6  *
7  * Redistribution of this software and documentation and use in source and
8  * binary forms, with or without modification, are permitted provided that
9  * the following conditions are met:
10  * 
11  * 1. Redistributions of source code or documentation must retain the above
12  *   copyright notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *   notice, this list of conditions and the following disclaimer in the
15  *   documentation and/or other materials provided with the distribution.
16  *
17  * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE AUTHOR 
18  * AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
19  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
21  * THE AUTHOR OR ITS CONTRIBUTORS  BE LIABLE FOR ANY DIRECT, INDIRECT,
22  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 /*
30  * $Begemot: libbegemot/rpoll.h,v 1.5 2004/09/21 15:49:26 brandt Exp $
31  */
32 # ifndef rpoll_h_
33 # define rpoll_h_
34
35 # ifdef __cplusplus
36 extern "C" {
37 # endif
38
39 typedef void (*poll_f)(int fd, int mask, void *arg);
40 typedef void (*timer_f)(int, void *);
41
42 int     poll_register(int fd, poll_f func, void *arg, int mask);
43 void    poll_unregister(int);
44 void    poll_dispatch(int wait);
45 int     poll_start_timer(u_int msecs, int repeat, timer_f func, void *arg);
46 int     poll_start_utimer(unsigned long long usecs, int repeat, timer_f func,
47     void *arg);
48 void    poll_stop_timer(int);
49
50 # if defined(POLL_IN)
51 #  undef POLL_IN
52 # endif
53 # if defined(POLL_OUT)
54 #  undef POLL_OUT
55 # endif
56
57 # define POLL_IN        1
58 # define POLL_OUT       2
59 # define POLL_EXCEPT    4
60
61 extern int      rpoll_policy;
62 extern int      rpoll_trace;
63
64 # ifdef __cplusplus
65 }
66 # endif
67
68 # endif