[BACK]Return to io.h CVS log [TXT][DIR] Up to [local] / ircnowd / src / ngircd

Annotation of ircnowd/src/ngircd/io.h, Revision 1.1.1.1

1.1       tomglok     1: /*
                      2:  * This program is free software; you can redistribute it and/or modify
                      3:  * it under the terms of the GNU General Public License as published by
                      4:  * the Free Software Foundation; either version 2 of the License, or
                      5:  * (at your option) any later version.
                      6:  * Please read the file COPYING, README and AUTHORS for more information.
                      7:  */
                      8:
                      9: #ifndef io_H_included
                     10: #define io_H_included
                     11:
                     12: /**
                     13:  * @file
                     14:  * I/O abstraction interface (header)
                     15:  */
                     16:
                     17: #include "portab.h"
                     18: #include <sys/time.h>
                     19:
                     20: #define IO_WANTREAD    1
                     21: #define IO_WANTWRITE   2
                     22:
                     23: /* init library.
                     24:    sets up epoll/kqueue descriptors and tries to allocate space for ioevlen
                     25:    file descriptors. ioevlen is just the _initial_ size, not a limit. */
                     26: bool io_library_init PARAMS((unsigned int ioevlen));
                     27:
                     28: /* shutdown and free all internal data structures */
                     29: void io_library_shutdown PARAMS((void));
                     30:
                     31: /* add fd to internal set, enable readability check, set callback */
                     32: bool io_event_create PARAMS((int fd, short what, void (*cbfunc)(int, short)));
                     33:
                     34: /* change callback function associated with fd */
                     35: bool io_event_setcb PARAMS((int fd, void (*cbfunc)(int, short)));
                     36:
                     37: /* watch fd for event of type what */
                     38: bool io_event_add PARAMS((int fd, short what));
                     39:
                     40: /* do not watch fd for event of type what */
                     41: bool io_event_del PARAMS((int fd, short what));
                     42:
                     43: /* remove fd from watchlist, close() fd.  */
                     44: bool io_close PARAMS((int fd));
                     45:
                     46: /* set O_NONBLOCK */
                     47: bool io_setnonblock PARAMS((int fd));
                     48:
                     49: /* set O_CLOEXEC */
                     50: bool io_setcloexec PARAMS((int fd));
                     51:
                     52: /* watch fds for activity */
                     53: int io_dispatch PARAMS((struct timeval *tv));
                     54:
                     55: #endif /* io_H_included */

CVSweb