Lines Matching refs:iou

503                          struct uv__iou* iou,  in uv__iou_init()  argument
586 iou->sqhead = (uint32_t*) (sq + params.sq_off.head); in uv__iou_init()
587 iou->sqtail = (uint32_t*) (sq + params.sq_off.tail); in uv__iou_init()
588 iou->sqmask = *(uint32_t*) (sq + params.sq_off.ring_mask); in uv__iou_init()
589 iou->sqarray = (uint32_t*) (sq + params.sq_off.array); in uv__iou_init()
590 iou->sqflags = (uint32_t*) (sq + params.sq_off.flags); in uv__iou_init()
591 iou->cqhead = (uint32_t*) (sq + params.cq_off.head); in uv__iou_init()
592 iou->cqtail = (uint32_t*) (sq + params.cq_off.tail); in uv__iou_init()
593 iou->cqmask = *(uint32_t*) (sq + params.cq_off.ring_mask); in uv__iou_init()
594 iou->sq = sq; in uv__iou_init()
595 iou->cqe = sq + params.cq_off.cqes; in uv__iou_init()
596 iou->sqe = sqe; in uv__iou_init()
597 iou->sqlen = sqlen; in uv__iou_init()
598 iou->cqlen = cqlen; in uv__iou_init()
599 iou->maxlen = maxlen; in uv__iou_init()
600 iou->sqelen = sqelen; in uv__iou_init()
601 iou->ringfd = ringfd; in uv__iou_init()
602 iou->in_flight = 0; in uv__iou_init()
603 iou->flags = 0; in uv__iou_init()
606 iou->flags |= UV__MKDIRAT_SYMLINKAT_LINKAT; in uv__iou_init()
608 for (i = 0; i <= iou->sqmask; i++) in uv__iou_init()
609 iou->sqarray[i] = i; /* Slot -> sqe identity mapping. */ in uv__iou_init()
624 static void uv__iou_delete(struct uv__iou* iou) { in uv__iou_delete() argument
625 if (iou->ringfd > -1) { in uv__iou_delete()
626 munmap(iou->sq, iou->maxlen); in uv__iou_delete()
627 munmap(iou->sqe, iou->sqelen); in uv__iou_delete()
628 uv__close(iou->ringfd); in uv__iou_delete()
629 iou->ringfd = -1; in uv__iou_delete()
639 lfields->iou.ringfd = -2; /* "uninitialized" */ in uv__platform_loop_init()
679 uv__iou_delete(&lfields->iou); in uv__platform_loop_delete()
751 static struct uv__io_uring_sqe* uv__iou_get_sqe(struct uv__iou* iou, in uv__iou_get_sqe() argument
763 if (iou->ringfd == -2) { in uv__iou_get_sqe()
764 uv__iou_init(loop->backend_fd, iou, 64, UV__IORING_SETUP_SQPOLL); in uv__iou_get_sqe()
765 if (iou->ringfd == -2) in uv__iou_get_sqe()
766 iou->ringfd = -1; /* "failed" */ in uv__iou_get_sqe()
769 if (iou->ringfd == -1) in uv__iou_get_sqe()
772 head = atomic_load_explicit((_Atomic uint32_t*) iou->sqhead, in uv__iou_get_sqe()
774 tail = *iou->sqtail; in uv__iou_get_sqe()
775 mask = iou->sqmask; in uv__iou_get_sqe()
781 sqe = iou->sqe; in uv__iou_get_sqe()
793 iou->in_flight++; in uv__iou_get_sqe()
799 static void uv__iou_submit(struct uv__iou* iou) { in uv__iou_submit() argument
802 atomic_store_explicit((_Atomic uint32_t*) iou->sqtail, in uv__iou_submit()
803 *iou->sqtail + 1, in uv__iou_submit()
806 flags = atomic_load_explicit((_Atomic uint32_t*) iou->sqflags, in uv__iou_submit()
810 if (uv__io_uring_enter(iou->ringfd, 0, 0, UV__IORING_ENTER_SQ_WAKEUP)) in uv__iou_submit()
818 struct uv__iou* iou; in uv__iou_fs_close() local
840 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_close()
842 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_close()
849 uv__iou_submit(iou); in uv__iou_fs_close()
859 struct uv__iou* iou; in uv__iou_fs_fsync_or_fdatasync() local
861 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_fsync_or_fdatasync()
863 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_fsync_or_fdatasync()
874 uv__iou_submit(iou); in uv__iou_fs_fsync_or_fdatasync()
882 struct uv__iou* iou; in uv__iou_fs_link() local
884 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_link()
886 if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT)) in uv__iou_fs_link()
889 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_link()
899 uv__iou_submit(iou); in uv__iou_fs_link()
907 struct uv__iou* iou; in uv__iou_fs_mkdir() local
909 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_mkdir()
911 if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT)) in uv__iou_fs_mkdir()
914 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_mkdir()
923 uv__iou_submit(iou); in uv__iou_fs_mkdir()
931 struct uv__iou* iou; in uv__iou_fs_open() local
933 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_open()
935 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_open()
945 uv__iou_submit(iou); in uv__iou_fs_open()
953 struct uv__iou* iou; in uv__iou_fs_rename() local
955 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_rename()
957 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_rename()
967 uv__iou_submit(iou); in uv__iou_fs_rename()
975 struct uv__iou* iou; in uv__iou_fs_symlink() local
977 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_symlink()
979 if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT)) in uv__iou_fs_symlink()
982 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_symlink()
991 uv__iou_submit(iou); in uv__iou_fs_symlink()
999 struct uv__iou* iou; in uv__iou_fs_unlink() local
1001 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_unlink()
1003 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_unlink()
1011 uv__iou_submit(iou); in uv__iou_fs_unlink()
1021 struct uv__iou* iou; in uv__iou_fs_read_or_write() local
1032 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_read_or_write()
1034 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_read_or_write()
1044 uv__iou_submit(iou); in uv__iou_fs_read_or_write()
1056 struct uv__iou* iou; in uv__iou_fs_statx() local
1062 iou = &uv__get_internal_fields(loop)->iou; in uv__iou_fs_statx()
1064 sqe = uv__iou_get_sqe(iou, loop, req); in uv__iou_fs_statx()
1087 uv__iou_submit(iou); in uv__iou_fs_statx()
1135 static void uv__poll_io_uring(uv_loop_t* loop, struct uv__iou* iou) { in uv__poll_io_uring() argument
1147 head = *iou->cqhead; in uv__poll_io_uring()
1148 tail = atomic_load_explicit((_Atomic uint32_t*) iou->cqtail, in uv__poll_io_uring()
1150 mask = iou->cqmask; in uv__poll_io_uring()
1151 cqe = iou->cqe; in uv__poll_io_uring()
1161 iou->in_flight--; in uv__poll_io_uring()
1187 atomic_store_explicit((_Atomic uint32_t*) iou->cqhead, in uv__poll_io_uring()
1194 flags = atomic_load_explicit((_Atomic uint32_t*) iou->sqflags, in uv__poll_io_uring()
1199 rc = uv__io_uring_enter(iou->ringfd, 0, 0, UV__IORING_ENTER_GETEVENTS); in uv__poll_io_uring()
1328 struct uv__iou* iou; in uv__io_poll() local
1349 iou = &lfields->iou; in uv__io_poll()
1413 if (iou->in_flight == 0) in uv__io_poll()
1476 if (fd == iou->ringfd) { in uv__io_poll()
1477 uv__poll_io_uring(loop, iou); in uv__io_poll()