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 69