]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/linux/epoll/epoll.factor
Merge branch 'master' into experimental (untested!)
[factor.git] / basis / unix / linux / epoll / epoll.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 IN: unix.linux.epoll
4 USING: alien.syntax math ;
5
6 FUNCTION: int epoll_create ( int size ) ;
7
8 FUNCTION: int epoll_ctl ( int epfd, int op, int fd, epoll_event* event ) ;
9
10 C-STRUCT: epoll-event
11     { "uint" "events" }
12     { "uint" "fd" }
13     { "uint" "padding" } ;
14
15 FUNCTION: int epoll_wait ( int epfd, epoll_event* events, int maxevents, int timeout ) ;
16
17 : EPOLL_CTL_ADD 1 ; inline ! Add a file decriptor to the interface.
18 : EPOLL_CTL_DEL 2 ; inline ! Remove a file decriptor from the interface.
19 : EPOLL_CTL_MOD 3 ; inline ! Change file decriptor epoll_event structure.
20
21 : EPOLLIN      HEX: 001 ; inline
22 : EPOLLPRI     HEX: 002 ; inline
23 : EPOLLOUT     HEX: 004 ; inline
24 : EPOLLRDNORM  HEX: 040 ; inline
25 : EPOLLRDBAND  HEX: 080 ; inline
26 : EPOLLWRNORM  HEX: 100 ; inline
27 : EPOLLWRBAND  HEX: 200 ; inline
28 : EPOLLMSG     HEX: 400 ; inline
29 : EPOLLERR     HEX: 008 ; inline
30 : EPOLLHUP     HEX: 010 ; inline
31 : EPOLLONESHOT 30 2^    ; inline
32 : EPOLLET      31 2^    ; inline