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