9#include "ublk/ublk_cmd.h"
17inline auto ctrl_cmd(Fd fd,
int cmd_op, uint32_t dev_id, uint16_t queue_id,
18 uint64_t data0, uint64_t addr, uint16_t len,
19 uint16_t dev_path_len)
noexcept {
20 auto prep = [=](io_uring_sqe *sqe)
noexcept {
21 auto &cmd =
reinterpret_cast<ublksrv_ctrl_cmd &
>(sqe->cmd);
24 cmd.queue_id = queue_id;
28 cmd.dev_path_len = dev_path_len;
30#ifdef UBLKCPP_USE_URING_CMD128
31 return condy::async_uring_cmd128(cmd_op, fd, prep,
32 condy::SimpleCQEHandler{});
34 return condy::async_uring_cmd(cmd_op, fd, prep, condy::SimpleCQEHandler{});
39inline auto io_cmd(Fd fd,
int cmd_op, uint16_t q_id, uint16_t tag,
40 int32_t result, uint64_t addr, uint64_t sqe_addr)
noexcept {
41 return condy::async_uring_cmd(
43 [=](io_uring_sqe *sqe)
noexcept {
44 auto &cmd =
reinterpret_cast<ublksrv_io_cmd &
>(sqe->cmd);
52 condy::SimpleCQEHandler{});
56inline auto batch_io_cmd(Fd fd,
int cmd_op, uint16_t q_id, uint16_t flags,
57 uint16_t nr_elem, uint8_t elem_bytes, uint64_t addr,
58 uint32_t len)
noexcept {
59 return condy::async_uring_cmd(
61 [=](io_uring_sqe *sqe)
noexcept {
62 auto &cmd =
reinterpret_cast<ublk_batch_io &
>(sqe->cmd);
66 cmd.nr_elem = nr_elem;
67 cmd.elem_bytes = elem_bytes;
71 condy::SimpleCQEHandler{});
The main namespace of the ublk-cpp library.