github.com/schwarzm/garden-linux@v0.0.0-20150507151835-33bca2147c47/old/linux_backend/src/wsh/pump.h (about)

     1  #ifndef PUMP_H
     2  #define PUMP_H 1
     3  
     4  #define PUMP_READ   1
     5  #define PUMP_WRITE  2
     6  #define PUMP_EXCEPT 4
     7  
     8  typedef struct pump_s pump_t;
     9  
    10  struct pump_s {
    11    int nfd;
    12  
    13    fd_set rfds;
    14    fd_set wfds;
    15    fd_set efds;
    16  };
    17  
    18  typedef struct pump_pair_s pump_pair_t;
    19  
    20  struct pump_pair_s {
    21    pump_t *p;
    22  
    23    int rfd;
    24    int wfd;
    25  };
    26  
    27  void pump_init(pump_t *p);
    28  int pump_add_fd(pump_t *p, int fd, int mode);
    29  int pump_add_pair(pump_t *p, pump_pair_t *pp);
    30  int pump_ready(pump_t *p, int fd, int mode);
    31  int pump_select(pump_t *p);
    32  
    33  void pump_pair_init(pump_pair_t *pp, pump_t *p, int rfd, int wfd);
    34  int pump_pair_splice(pump_pair_t *pp);
    35  int pump_pair_copy(pump_pair_t *pp);
    36  
    37  #endif