120 struct kevent kev; |
120 struct kevent kev; |
121 EV_SET(&kev, fd, EVFILT_WRITE, EV_ADD, 0, 0, event); |
121 EV_SET(&kev, fd, EVFILT_WRITE, EV_ADD, 0, 0, event); |
122 return kevent(h->kqueue, &kev, 1, NULL, 0, NULL); |
122 return kevent(h->kqueue, &kev, 1, NULL, 0, NULL); |
123 } |
123 } |
124 |
124 |
|
125 int ev_remove_poll(EventHandler *h, int fd) { |
|
126 // TODO: |
|
127 return 0; |
|
128 } |
|
129 |
125 int event_send(EventHandler *h, Event *event) { |
130 int event_send(EventHandler *h, Event *event) { |
126 return 0; |
131 return 0; |
127 } |
132 } |
|
133 |
|
134 // TODO: remove this fake aio |
|
135 int ev_aioread(int fd, aiocb_s *cb) { |
|
136 ssize_t result = pread(fd, cb->buf, cb->nbytes, cb->offset); |
|
137 cb->result = result; |
|
138 if(result < 0) { |
|
139 cb->result_errno = errno; |
|
140 } |
|
141 return event_send(cb->evhandler, cb->event); |
|
142 } |
|
143 |
|
144 int ev_aiowrite(int fd, aiocb_s *cb) { |
|
145 ssize_t result = pwrite(fd, cb->buf, cb->nbytes, cb->offset); |
|
146 cb->result = result; |
|
147 if(result < 0) { |
|
148 cb->result_errno = errno; |
|
149 } |
|
150 return event_send(cb->evhandler, cb->event); |
|
151 } |