X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-sys%2Fevtloop.h;fp=lib-sys%2Fevtloop.h;h=6c5e0d8bee0028e72c19858e4d5c215f860b0eba;hb=b70142c2915d0b7bcbba1fcb8d24d8d05c9c1fca;hp=f08f1e76ceb8994a1a0c8623f0523f3b6ebf868e;hpb=66572f4a9c4574c9f2a2c3ef59526ac66b807b0b;p=apps%2Fmadmutt.git diff --git a/lib-sys/evtloop.h b/lib-sys/evtloop.h index f08f1e7..6c5e0d8 100644 --- a/lib-sys/evtloop.h +++ b/lib-sys/evtloop.h @@ -30,10 +30,11 @@ typedef enum el_state { } el_state; typedef enum el_mode { - EL_IDLE = 0, + EL_NEW = 0, EL_READING = 1, EL_WRITING = 2, EL_RDWR = 3, + EL_IDLE = 4, } el_mode; typedef enum el_status { @@ -55,13 +56,17 @@ typedef struct job_t { int fd; el_state state : 2; - el_mode mode : 2; - el_mode emode : 2; + el_mode mode : 3; + el_mode emode : 3; int (*llp)(struct job_t *); struct machine_t *m; void *ptr; } job_t; +DO_INIT(job_t, job); +DO_WIPE(job_t, job); +DO_NEW(job_t, job); +DO_DELETE(job_t, job); typedef struct machine_t { const char *name; @@ -70,7 +75,11 @@ typedef struct machine_t { void (*finalize)(job_t *w, el_status); } machine_t; +__must_check__ int el_job_setmode(job_t *w, el_mode); __must_check__ int el_job_release(job_t *j, el_status); +__must_check__ int el_job_connect(job_t *w, struct sockaddr *, socklen_t len, + int type, int proto); + int el_dispatch(int timeout); #endif