ZXFoundation™ 26h2
Loading...
Searching...
No Matches
core.cxxm
1/// SPDX-License-Identifier: Apache-2.0
2/// @file io.cxxm
3/// @brief Capability-bound CSS I/O, DMA authority, and completion delivery.
4
5export module zxfoundation.sys.zxio.core;
6import zxfoundation.sys.zxio.types;
7import zxfoundation.dgp.cap.types;
8import zxfoundation.base.types;
9import lib.error;
10import std;
11
12export {
13
14namespace zxfoundation::sys::zxio {
15
16 auto init() noexcept -> void;
17
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>;
21
22 [[nodiscard]] auto unbind(
23 dgp::cap::cap_token token, u32 owner_domain
24 ) noexcept -> std::expected<void, lib::kernel_error>;
25
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>;
29
30 /// @brief Submit a DMA-relative, verified format-1 CCW request.
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>;
34
35 /// @brief Dequeue one kernel-owned CSS completion record.
36 [[nodiscard]] auto completion_dequeue(
37 dgp::cap::cap_token token, u32 owner_domain
38 ) noexcept -> std::expected<io_completion, lib::kernel_error>;
39
40 /// @brief Retired: hard IRQs never invoke user gates.
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>;
44
45 auto destroy_for_domain(u32 domain_id) noexcept -> void;
46
47 [[nodiscard]] auto binding_count() noexcept -> u32;
48 [[nodiscard]] auto binding_find(u32 id) noexcept -> io_binding*;
49
50} // namespace zxfoundation::sys::zxio
51
52} // end export