Lines Matching refs:iodev_sqe

16 static void rtio_executor_op(struct rtio_iodev_sqe *iodev_sqe)  in rtio_executor_op()  argument
18 const struct rtio_sqe *sqe = &iodev_sqe->sqe; in rtio_executor_op()
22 sqe->callback.callback(iodev_sqe->r, sqe, sqe->callback.arg0); in rtio_executor_op()
23 rtio_iodev_sqe_ok(iodev_sqe, 0); in rtio_executor_op()
26 rtio_iodev_sqe_err(iodev_sqe, -EINVAL); in rtio_executor_op()
38 static inline void rtio_iodev_submit(struct rtio_iodev_sqe *iodev_sqe) in rtio_iodev_submit() argument
40 if (FIELD_GET(RTIO_SQE_CANCELED, iodev_sqe->sqe.flags)) { in rtio_iodev_submit()
41 rtio_iodev_sqe_err(iodev_sqe, -ECANCELED); in rtio_iodev_submit()
46 if (iodev_sqe->sqe.iodev == NULL) { in rtio_iodev_submit()
47 rtio_executor_op(iodev_sqe); in rtio_iodev_submit()
51 iodev_sqe->sqe.iodev->api->submit(iodev_sqe); in rtio_iodev_submit()
67 struct rtio_iodev_sqe *iodev_sqe = CONTAINER_OF(node, struct rtio_iodev_sqe, q); in rtio_executor_submit() local
70 if (iodev_sqe->sqe.flags & RTIO_SQE_CANCELED) { in rtio_executor_submit()
71 iodev_sqe->sqe.flags |= cancel_no_response; in rtio_executor_submit()
73 iodev_sqe->r = r; in rtio_executor_submit()
75 struct rtio_iodev_sqe *curr = iodev_sqe, *next; in rtio_executor_submit()
80 bool transaction = iodev_sqe->sqe.flags & RTIO_SQE_TRANSACTION; in rtio_executor_submit()
81 bool chained = iodev_sqe->sqe.flags & RTIO_SQE_CHAINED; in rtio_executor_submit()
86 node = mpsc_pop(&iodev_sqe->r->sq); in rtio_executor_submit()
111 rtio_iodev_submit(iodev_sqe); in rtio_executor_submit()
146 static inline void rtio_executor_done(struct rtio_iodev_sqe *iodev_sqe, int result, bool is_ok) in rtio_executor_done() argument
148 const bool is_multishot = FIELD_GET(RTIO_SQE_MULTISHOT, iodev_sqe->sqe.flags) == 1; in rtio_executor_done()
149 const bool is_canceled = FIELD_GET(RTIO_SQE_CANCELED, iodev_sqe->sqe.flags) == 1; in rtio_executor_done()
150 struct rtio *r = iodev_sqe->r; in rtio_executor_done()
151 struct rtio_iodev_sqe *curr = iodev_sqe, *next; in rtio_executor_done()
158 cqe_flags = rtio_cqe_compute_flags(iodev_sqe); in rtio_executor_done()
188 void rtio_executor_ok(struct rtio_iodev_sqe *iodev_sqe, int result) in rtio_executor_ok() argument
190 rtio_executor_done(iodev_sqe, result, true); in rtio_executor_ok()
200 void rtio_executor_err(struct rtio_iodev_sqe *iodev_sqe, int result) in rtio_executor_err() argument
202 rtio_executor_done(iodev_sqe, result, false); in rtio_executor_err()