6export module zxfoundation.dgp.cap.core;
7import zxfoundation.dgp.cap.types;
8import zxfoundation.base.types;
9import zxfoundation.scoms.kobject.base;
10import zxfoundation.dgp.domain.types;
11import zxfoundation.dgp.gate.types;
12import zxfoundation.dgp.portal.types;
13import zxfoundation.memory.objects.core;
19namespace zxfoundation::dgp::cap {
26 [[nodiscard]]
auto cap_acquire(
30 )
noexcept -> std::expected<cap_token, lib::kernel_error>;
37 [[nodiscard]]
auto cap_issue(
38 cap_type type, u16 obj_id, cap_rights rights, u32 owner_domain
39 )
noexcept -> std::expected<cap_token, lib::kernel_error>;
45 [[nodiscard]]
auto cap_duplicate(
46 cap_token source, cap_rights rights, u32 owner_domain
47 )
noexcept -> std::expected<cap_token, lib::kernel_error>;
50 [[nodiscard]]
auto cap_duplicate_for(
51 cap_token source, cap_rights rights, u32 source_domain,
53 )
noexcept -> std::expected<cap_token, lib::kernel_error>;
59 [[nodiscard]]
auto cap_release(cap_token token)
noexcept
60 -> std::expected<
void, lib::kernel_error>;
68 [[nodiscard]]
auto cap_validate(cap_token token, cap_rights needed)
noexcept
69 -> std::expected<T*, lib::kernel_error>;
74 [[nodiscard]]
auto cap_validate_generic(
77 )
noexcept -> std::expected<
void, lib::kernel_error>;
83 [[nodiscard]]
auto cap_validate_generic_for(
84 cap_token token, cap_rights needed, u32 owner_domain
85 )
noexcept -> std::expected<
void, lib::kernel_error>;
91 [[nodiscard]]
auto cap_resolve(
92 cap_token token, cap_rights needed
93 )
noexcept -> std::expected<scoms::kobject::bobject*, lib::kernel_error>;
99 [[nodiscard]]
auto cap_revoke(cap_token token)
noexcept
100 -> std::expected<
void, lib::kernel_error>;
105 [[nodiscard]]
auto cap_revoke_for_domain(
107 )
noexcept -> std::expected<u32, lib::kernel_error>;
112 [[nodiscard]]
auto cap_revoke_target(
113 scoms::kobject::bobject& target
114 )
noexcept -> std::expected<u32, lib::kernel_error>;
119 using lookup_fn =
auto (*)(u16 obj_id)
noexcept -> scoms::kobject::bobject*;
125 [[nodiscard]]
auto register_lookup(
128 )
noexcept -> std::expected<
void, lib::kernel_error>;
131 [[nodiscard]]
auto cap_validate<zxfoundation::dgp::domain::domain>(
132 cap_token token, cap_rights needed
133 )
noexcept -> std::expected<zxfoundation::dgp::domain::domain*, lib::kernel_error>;
136 [[nodiscard]]
auto cap_validate<zxfoundation::dgp::gate::gate_desc>(
137 cap_token token, cap_rights needed
138 )
noexcept -> std::expected<zxfoundation::dgp::gate::gate_desc*, lib::kernel_error>;
141 [[nodiscard]]
auto cap_validate<zxfoundation::dgp::portal::portal_desc>(
142 cap_token token, cap_rights needed
143 )
noexcept -> std::expected<zxfoundation::dgp::portal::portal_desc*, lib::kernel_error>;
146 [[nodiscard]]
auto cap_validate<zxfoundation::memory::objects::memory_object>(
147 cap_token token, cap_rights needed
148 )
noexcept -> std::expected<zxfoundation::memory::objects::memory_object*, lib::kernel_error>;