Lines Matching defs:iev

37 imsgev_init(struct imsgev *iev, int fd, void *data,
41 if (imsgbuf_init(&iev->ibuf, fd) == -1)
43 imsgbuf_allow_fdpass(&iev->ibuf);
44 iev->terminate = 0;
46 iev->data = data;
47 iev->handler = imsgev_dispatch;
48 iev->callback = callback;
49 iev->needfd = needfd;
51 iev->events = EV_READ;
52 event_set(&iev->ev, iev->ibuf.fd, iev->events, iev->handler, iev);
53 event_add(&iev->ev, NULL);
57 imsgev_compose(struct imsgev *iev, u_int16_t type, u_int32_t peerid,
62 r = imsg_compose(&iev->ibuf, type, peerid, pid, fd, data, datalen);
64 imsgev_add(iev);
70 imsgev_close(struct imsgev *iev)
72 iev->terminate = 1;
73 imsgev_add(iev);
77 imsgev_clear(struct imsgev *iev)
79 event_del(&iev->ev);
80 imsgbuf_clear(&iev->ibuf);
81 close(iev->ibuf.fd);
85 imsgev_add(struct imsgev *iev)
89 if (!iev->terminate)
91 if (imsgbuf_queuelen(&iev->ibuf) > 0 || iev->terminate)
95 if (events == iev->events)
98 iev->events = events;
99 event_del(&iev->ev);
100 event_set(&iev->ev, iev->ibuf.fd, iev->events, iev->handler, iev);
101 event_add(&iev->ev, NULL);
107 struct imsgev *iev = humppa;
108 struct imsgbuf *ibuf = &iev->ibuf;
112 iev->events = 0;
118 iev->needfd(iev);
121 imsgev_disconnect(iev, IMSGEV_EREAD);
130 imsgev_disconnect(iev,
131 imsgbuf_queuelen(&iev->ibuf) > 0 ? IMSGEV_EWRITE :
144 imsgev_disconnect(iev, IMSGEV_EWRITE);
149 while (iev->terminate == 0) {
151 imsgev_disconnect(iev, IMSGEV_EIMSG);
156 iev->callback(iev, IMSGEV_IMSG, &imsg);
160 if (iev->terminate && imsgbuf_queuelen(&iev->ibuf) == 0) {
161 imsgev_disconnect(iev, IMSGEV_DONE);
165 imsgev_add(iev);
169 imsgev_disconnect(struct imsgev *iev, int code)
171 iev->callback(iev, code, NULL);