Lines Matching refs:h

68 static int usb_ffs_do_aio(usb_handle* h, T* const data, const int len) {  in usb_ffs_do_aio()  argument
69 const aio_block* aiob = read ? &h->read_aiob : &h->write_aiob; in usb_ffs_do_aio()
70 const int num_requests = DivRoundup<int>(len, h->io_size); in usb_ffs_do_aio()
75 const int buf_len = std::min(bytes_remain, static_cast<int>(h->io_size)); in usb_ffs_do_aio()
76 const auto ret = prep_async_io<read>(&h->ring, aiob->fd, cur_data, buf_len, 0); in usb_ffs_do_aio()
85 const int ret = io_uring_submit(&h->ring); in usb_ffs_do_aio()
94 const auto ret = TEMP_FAILURE_RETRY(io_uring_wait_cqe(&h->ring, &cqe)); in usb_ffs_do_aio()
105 << " request size: " << len << ", io_size: " << h->io_size in usb_ffs_do_aio()
110 io_uring_cqe_seen(&h->ring, cqe); in usb_ffs_do_aio()
118 static int usb_ffs_io_uring_read(usb_handle* h, void* data, int len, bool /* allow_partial */) { in usb_ffs_io_uring_read() argument
119 return usb_ffs_do_aio<true>(h, data, len); in usb_ffs_io_uring_read()
122 static int usb_ffs_io_uring_write(usb_handle* h, const void* data, int len) { in usb_ffs_io_uring_write() argument
123 return usb_ffs_do_aio<false>(h, data, len); in usb_ffs_io_uring_write()
126 void exit_io_uring_ffs(usb_handle* h) { in exit_io_uring_ffs() argument
127 io_uring_queue_exit(&h->ring); in exit_io_uring_ffs()
130 bool init_io_uring_ffs(usb_handle* h, size_t queue_depth) { in init_io_uring_ffs() argument
131 const auto err = io_uring_queue_init(queue_depth, &h->ring, 0); in init_io_uring_ffs()
137 h->write = usb_ffs_io_uring_write; in init_io_uring_ffs()
138 h->read = usb_ffs_io_uring_read; in init_io_uring_ffs()