Lines Matching defs:lst

106 static void maybe_resize(uv__os390_epoll* lst, unsigned int len) {
112 if (len <= lst->size)
115 if (lst->size == 0)
119 event = lst->items[lst->size - 1];
120 lst->items[lst->size - 1].fd = -1;
124 newlst = uv__reallocf(lst->items, newsize * sizeof(lst->items[0]));
128 for (i = lst->size; i < newsize; ++i)
134 lst->items = newlst;
135 lst->size = newsize;
144 static void init_message_queue(uv__os390_epoll* lst) {
151 lst->msg_queue = msgget(IPC_PRIVATE, 0600 | IPC_CREAT);
152 if (lst->msg_queue == -1)
161 if (msgsnd(lst->msg_queue, &msg, sizeof(msg.body), 0) != 0)
165 if (msgrcv(lst->msg_queue, &msg, sizeof(msg.body), 0, 0) != sizeof(msg.body))
189 uv__os390_epoll* lst;
192 lst = uv__queue_data(q, uv__os390_epoll, member);
193 uv__free(lst->items);
194 lst->items = NULL;
195 lst->size = 0;
214 uv__os390_epoll* lst;
216 lst = uv__malloc(sizeof(*lst));
217 if (lst != NULL) {
219 lst->size = 0;
220 lst->items = NULL;
221 init_message_queue(lst);
222 maybe_resize(lst, 1);
223 lst->items[lst->size - 1].fd = lst->msg_queue;
224 lst->items[lst->size - 1].events = POLLIN;
225 lst->items[lst->size - 1].revents = 0;
228 uv__queue_insert_tail(&global_epoll_queue, &lst->member);
232 return lst;
236 int epoll_ctl(uv__os390_epoll* lst,
243 if (fd >= lst->size || lst->items[fd].fd == -1) {
248 lst->items[fd].fd = -1;
255 maybe_resize(lst, fd + 2);
256 if (lst->items[fd].fd != -1) {
261 lst->items[fd].fd = fd;
262 lst->items[fd].events = event->events;
263 lst->items[fd].revents = 0;
265 if (fd >= lst->size - 1 || lst->items[fd].fd == -1) {
270 lst->items[fd].events = event->events;
271 lst->items[fd].revents = 0;
282 int epoll_wait(uv__os390_epoll* lst, struct epoll_event* events,
294 if (!lst || !lst->items || !events) {
299 if (lst->size > EP_MAX_PFDS) {
309 assert(lst->size > 0);
310 _SET_FDS_MSGS(size, 1, lst->size - 1);
311 pfds = lst->items;
321 msg_fd = pfds[lst->size - 1]; /* message queue is always last entry */
324 i < lst->size - 1 &&
360 uv__os390_epoll* lst;
362 lst = uv__queue_data(q, uv__os390_epoll, member);
363 if (fd < lst->size && lst->items != NULL && lst->items[fd].fd != -1)
364 lst->items[fd].fd = -1;
371 void epoll_queue_close(uv__os390_epoll* lst) {
374 uv__queue_remove(&lst->member);
378 msgctl(lst->msg_queue, IPC_RMID, NULL);
379 lst->msg_queue = -1;
380 uv__free(lst->items);
381 lst->items = NULL;