5export module zxfoundation.sys.zxio.core;
6import zxfoundation.sys.zxio.types;
7import zxfoundation.dgp.cap.types;
8import zxfoundation.base.types;
14namespace zxfoundation::sys::zxio {
16 auto init()
noexcept ->
void;
18 [[nodiscard]]
auto bind(
19 u16 dev_no, u32 domain_id, dgp::cap::cap_token& out_token
20 )
noexcept -> std::expected<
void, lib::kernel_error>;
22 [[nodiscard]]
auto unbind(
23 dgp::cap::cap_token token, u32 owner_domain
24 )
noexcept -> std::expected<
void, lib::kernel_error>;
26 [[nodiscard]]
auto dma_extent(
27 dgp::cap::cap_token token, u32 owner_domain
28 )
noexcept -> std::expected<dgp::cap::cap_token, lib::kernel_error>;
31 [[nodiscard]]
auto submit(
32 dgp::cap::cap_token token, u32 owner_domain,
const io_request& request
33 )
noexcept -> std::expected<
void, lib::kernel_error>;
36 [[nodiscard]]
auto completion_dequeue(
37 dgp::cap::cap_token token, u32 owner_domain
38 )
noexcept -> std::expected<io_completion, lib::kernel_error>;
41 [[nodiscard]]
auto irq_bind(
42 dgp::cap::cap_token token, u32 owner_domain, u32 retired_gate_id
43 )
noexcept -> std::expected<
void, lib::kernel_error>;
45 auto destroy_for_domain(u32 domain_id)
noexcept ->
void;
47 [[nodiscard]]
auto binding_count()
noexcept -> u32;
48 [[nodiscard]]
auto binding_find(u32 id)
noexcept -> io_binding*;