Home | History | Annotate | Download | only in man
      1 EPOLL_CTL(2)               Linux Programmer's Manual              EPOLL_CTL(2)
      2 
      3 
      4 
      5 NAME
      6        epoll_ctl - control interface for an epoll descriptor
      7 
      8 SYNOPSIS
      9        #include <sys/epoll.h>
     10 
     11        int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
     12 
     13 DESCRIPTION
     14        Control  an  epoll  descriptor, epfd, by requesting the operation op be
     15        performed on the target file descriptor, fd.  The event  describes  the
     16        object  linked  to  the  file descriptor fd.  The struct epoll_event is
     17        defined as :
     18 
     19 
     20             typedef union epoll_data {
     21                  void *ptr;
     22                  int fd;
     23                  __uint32_t u32;
     24                  __uint64_t u64;
     25             } epoll_data_t;
     26 
     27             struct epoll_event {
     28                  __uint32_t events;  /* Epoll events */
     29                  epoll_data_t data;  /* User data variable */
     30             };
     31 
     32 
     33        The events member is a bit set composed using the  following  available
     34        event types :
     35 
     36        EPOLLIN
     37               The associated file is available for read(2) operations.
     38 
     39        EPOLLOUT
     40               The associated file is available for write(2) operations.
     41 
     42        EPOLLPRI
     43               There is urgent data available for read(2) operations.
     44 
     45        EPOLLERR
     46               Error condition happened on the associated file descriptor.
     47 
     48        EPOLLHUP
     49               Hang up happened on the associated file descriptor.
     50 
     51        EPOLLET
     52               Sets  the  Edge  Triggered  behaviour  for  the  associated file
     53               descriptor.  The default behaviour for epoll is Level Triggered.
     54               See epoll(4) for more detailed informations about Edge and Level
     55               Triggered event distribution architectures.
     56 
     57        EPOLLONESHOT
     58               Sets the One-Shot behaviour for the associated file  descriptor.
     59               It  means  that  after an event is pulled out with epoll_wait(2)
     60               the associated file descriptor is  internally  disabled  and  no
     61               other  events  will be reported by the epoll interface. The user
     62               must call epoll_ctl(2) with EPOLL_CTL_MOD to re-enable the  file
     63               descriptor with a new event mask.
     64 
     65 
     66        The epoll interface supports all file descriptors that support poll(2).
     67        Valid values for the op parameter are :
     68 
     69        EPOLL_CTL_ADD
     70               Add the target file descriptor fd to the epoll  descriptor  epfd
     71               and  associate  the event event with the internal file linked to
     72               fd.
     73 
     74        EPOLL_CTL_MOD
     75               Change the event event associated to the target file  descriptor
     76               fd.
     77 
     78        EPOLL_CTL_DEL
     79               Remove  the  target  file  descriptor  fd  from  the  epoll file
     80               descriptor, epfd.
     81 
     82 RETURN VALUE
     83        When successful, epoll_ctl(2)  returns  zero.  When  an  error  occurs,
     84        epoll_ctl(2) returns -1 and errno is set appropriately.
     85 
     86 ERRORS
     87        EBADF  The epfd file descriptor is not a valid file descriptor.
     88 
     89        EPERM  The target file fd is not supported by epoll.
     90 
     91        EINVAL The  supplied  file  descriptor,  epfd,  is  not  an  epoll file
     92               descriptor, or the requested operation op is  not  supported  by
     93               this interface.
     94 
     95        ENOMEM There was insufficient memory to handle the requested op control
     96               operation.
     97 
     98 CONFORMING TO
     99        epoll_ctl(2) is a new API  introduced  in  Linux  kernel  2.5.44.   The
    100        interface should be finalized by Linux kernel 2.5.66.
    101 
    102 SEE ALSO
    103        epoll(4) epoll_create(2) epoll_wait(2)
    104 
    105 
    106 
    107 
    108 Linux                           23 October 2002                   EPOLL_CTL(2)
    109