Lines Matching defs:iou

529                          struct uv__iou* iou,
612 iou->sqhead = (uint32_t*) (sq + params.sq_off.head);
613 iou->sqtail = (uint32_t*) (sq + params.sq_off.tail);
614 iou->sqmask = *(uint32_t*) (sq + params.sq_off.ring_mask);
615 iou->sqarray = (uint32_t*) (sq + params.sq_off.array);
616 iou->sqflags = (uint32_t*) (sq + params.sq_off.flags);
617 iou->cqhead = (uint32_t*) (sq + params.cq_off.head);
618 iou->cqtail = (uint32_t*) (sq + params.cq_off.tail);
619 iou->cqmask = *(uint32_t*) (sq + params.cq_off.ring_mask);
620 iou->sq = sq;
621 iou->cqe = sq + params.cq_off.cqes;
622 iou->sqe = sqe;
623 iou->sqlen = sqlen;
624 iou->cqlen = cqlen;
625 iou->maxlen = maxlen;
626 iou->sqelen = sqelen;
627 iou->ringfd = ringfd;
628 iou->in_flight = 0;
629 iou->flags = 0;
632 iou->flags |= UV__MKDIRAT_SYMLINKAT_LINKAT;
634 for (i = 0; i <= iou->sqmask; i++)
635 iou->sqarray[i] = i; /* Slot -> sqe identity mapping. */
650 static void uv__iou_delete(struct uv__iou* iou) {
651 if (iou->ringfd != -1) {
652 munmap(iou->sq, iou->maxlen);
653 munmap(iou->sqe, iou->sqelen);
654 uv__close(iou->ringfd);
655 iou->ringfd = -1;
665 lfields->iou.ringfd = -1;
676 uv__iou_init(loop->backend_fd, &lfields->iou, 64, UV__IORING_SETUP_SQPOLL);
711 uv__iou_delete(&lfields->iou);
789 static struct uv__io_uring_sqe* uv__iou_get_sqe(struct uv__iou* iou,
798 if (iou->ringfd == -1)
801 head = atomic_load_explicit((_Atomic uint32_t*) iou->sqhead,
803 tail = *iou->sqtail;
804 mask = iou->sqmask;
810 sqe = iou->sqe;
822 iou->in_flight++;
828 static void uv__iou_submit(struct uv__iou* iou) {
831 atomic_store_explicit((_Atomic uint32_t*) iou->sqtail,
832 *iou->sqtail + 1,
835 flags = atomic_load_explicit((_Atomic uint32_t*) iou->sqflags,
839 if (uv__io_uring_enter(iou->ringfd, 0, 0, UV__IORING_ENTER_SQ_WAKEUP))
847 struct uv__iou* iou;
869 iou = &uv__get_internal_fields(loop)->iou;
871 sqe = uv__iou_get_sqe(iou, loop, req);
878 uv__iou_submit(iou);
888 struct uv__iou* iou;
890 iou = &uv__get_internal_fields(loop)->iou;
892 sqe = uv__iou_get_sqe(iou, loop, req);
903 uv__iou_submit(iou);
911 struct uv__iou* iou;
913 iou = &uv__get_internal_fields(loop)->iou;
915 if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT))
918 sqe = uv__iou_get_sqe(iou, loop, req);
928 uv__iou_submit(iou);
936 struct uv__iou* iou;
938 iou = &uv__get_internal_fields(loop)->iou;
940 if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT))
943 sqe = uv__iou_get_sqe(iou, loop, req);
952 uv__iou_submit(iou);
960 struct uv__iou* iou;
962 iou = &uv__get_internal_fields(loop)->iou;
964 sqe = uv__iou_get_sqe(iou, loop, req);
974 uv__iou_submit(iou);
982 struct uv__iou* iou;
984 iou = &uv__get_internal_fields(loop)->iou;
986 sqe = uv__iou_get_sqe(iou, loop, req);
996 uv__iou_submit(iou);
1004 struct uv__iou* iou;
1006 iou = &uv__get_internal_fields(loop)->iou;
1008 if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT))
1011 sqe = uv__iou_get_sqe(iou, loop, req);
1020 uv__iou_submit(iou);
1028 struct uv__iou* iou;
1030 iou = &uv__get_internal_fields(loop)->iou;
1032 sqe = uv__iou_get_sqe(iou, loop, req);
1040 uv__iou_submit(iou);
1050 struct uv__iou* iou;
1061 iou = &uv__get_internal_fields(loop)->iou;
1063 sqe = uv__iou_get_sqe(iou, loop, req);
1073 uv__iou_submit(iou);
1085 struct uv__iou* iou;
1091 iou = &uv__get_internal_fields(loop)->iou;
1093 sqe = uv__iou_get_sqe(iou, loop, req);
1116 uv__iou_submit(iou);
1164 static void uv__poll_io_uring(uv_loop_t* loop, struct uv__iou* iou) {
1176 head = *iou->cqhead;
1177 tail = atomic_load_explicit((_Atomic uint32_t*) iou->cqtail,
1179 mask = iou->cqmask;
1180 cqe = iou->cqe;
1190 iou->in_flight--;
1216 atomic_store_explicit((_Atomic uint32_t*) iou->cqhead,
1223 flags = atomic_load_explicit((_Atomic uint32_t*) iou->sqflags,
1228 rc = uv__io_uring_enter(iou->ringfd, 0, 0, UV__IORING_ENTER_GETEVENTS);
1389 struct uv__iou* iou;
1410 iou = &lfields->iou;
1460 if (iou->in_flight == 0)
1530 if (fd == iou->ringfd) {
1531 uv__poll_io_uring(loop, iou);