Lines Matching refs:pop

118 poll_check_ok(struct pollop *pop)  in poll_check_ok()  argument
123 for (i = 0; i < pop->fd_count; ++i) { in poll_check_ok()
124 idx = pop->idxplus1_by_fd[i]-1; in poll_check_ok()
127 assert(pop->event_set[idx].fd == i); in poll_check_ok()
128 if (pop->event_set[idx].events & POLLIN) { in poll_check_ok()
129 ev = pop->event_r_back[idx]; in poll_check_ok()
134 if (pop->event_set[idx].events & POLLOUT) { in poll_check_ok()
135 ev = pop->event_w_back[idx]; in poll_check_ok()
141 for (i = 0; i < pop->nfds; ++i) { in poll_check_ok()
142 struct pollfd *pfd = &pop->event_set[i]; in poll_check_ok()
143 assert(pop->idxplus1_by_fd[pfd->fd] == i+1); in poll_check_ok()
147 #define poll_check_ok(pop) argument
154 struct pollop *pop = arg; in poll_dispatch() local
156 poll_check_ok(pop); in poll_dispatch()
158 nfds = pop->nfds; in poll_dispatch()
159 res = poll(pop->event_set, nfds, sec); in poll_dispatch()
178 int what = pop->event_set[i].revents; in poll_dispatch()
190 r_ev = pop->event_r_back[i]; in poll_dispatch()
194 w_ev = pop->event_w_back[i]; in poll_dispatch()
217 struct pollop *pop = arg; in poll_add() local
226 poll_check_ok(pop); in poll_add()
227 if (pop->nfds + 1 >= pop->event_count) { in poll_add()
233 if (pop->event_count < 32) in poll_add()
236 tmp_event_count = pop->event_count * 2; in poll_add()
239 tmp_event_set = realloc(pop->event_set, in poll_add()
245 pop->event_set = tmp_event_set; in poll_add()
247 tmp_event_r_back = realloc(pop->event_r_back, in poll_add()
254 pop->event_r_back = tmp_event_r_back; in poll_add()
256 tmp_event_w_back = realloc(pop->event_w_back, in poll_add()
264 pop->event_w_back = tmp_event_w_back; in poll_add()
266 pop->event_count = tmp_event_count; in poll_add()
268 if (ev->ev_fd >= pop->fd_count) { in poll_add()
271 if (pop->fd_count < 32) in poll_add()
274 new_count = pop->fd_count * 2; in poll_add()
278 realloc(pop->idxplus1_by_fd, new_count * sizeof(int)); in poll_add()
283 pop->idxplus1_by_fd = tmp_idxplus1_by_fd; in poll_add()
284 memset(pop->idxplus1_by_fd + pop->fd_count, in poll_add()
285 0, sizeof(int)*(new_count - pop->fd_count)); in poll_add()
286 pop->fd_count = new_count; in poll_add()
289 i = pop->idxplus1_by_fd[ev->ev_fd] - 1; in poll_add()
291 pfd = &pop->event_set[i]; in poll_add()
293 i = pop->nfds++; in poll_add()
294 pfd = &pop->event_set[i]; in poll_add()
297 pop->event_w_back[i] = pop->event_r_back[i] = NULL; in poll_add()
298 pop->idxplus1_by_fd[ev->ev_fd] = i + 1; in poll_add()
304 pop->event_w_back[i] = ev; in poll_add()
308 pop->event_r_back[i] = ev; in poll_add()
310 poll_check_ok(pop); in poll_add()
322 struct pollop *pop = arg; in poll_del() local
332 poll_check_ok(pop); in poll_del()
333 i = pop->idxplus1_by_fd[ev->ev_fd] - 1; in poll_del()
338 pfd = &pop->event_set[i]; in poll_del()
341 pop->event_r_back[i] = NULL; in poll_del()
345 pop->event_w_back[i] = NULL; in poll_del()
347 poll_check_ok(pop); in poll_del()
353 pop->idxplus1_by_fd[ev->ev_fd] = 0; in poll_del()
355 --pop->nfds; in poll_del()
356 if (i != pop->nfds) { in poll_del()
361 memcpy(&pop->event_set[i], &pop->event_set[pop->nfds], in poll_del()
363 pop->event_r_back[i] = pop->event_r_back[pop->nfds]; in poll_del()
364 pop->event_w_back[i] = pop->event_w_back[pop->nfds]; in poll_del()
365 pop->idxplus1_by_fd[pop->event_set[i].fd] = i + 1; in poll_del()
368 poll_check_ok(pop); in poll_del()
375 struct pollop *pop = arg; in poll_dealloc() local
377 if (pop->event_set) in poll_dealloc()
378 free(pop->event_set); in poll_dealloc()
379 if (pop->event_r_back) in poll_dealloc()
380 free(pop->event_r_back); in poll_dealloc()
381 if (pop->event_w_back) in poll_dealloc()
382 free(pop->event_w_back); in poll_dealloc()
383 if (pop->idxplus1_by_fd) in poll_dealloc()
384 free(pop->idxplus1_by_fd); in poll_dealloc()
386 memset(pop, 0, sizeof(struct pollop)); in poll_dealloc()
387 free(pop); in poll_dealloc()