ZXFoundation™ 26h2
Loading...
Searching...
No Matches
zxfoundation.dgp.gate.types Module Reference

Data Structures

struct  zxfoundation::dgp::gate::dispatch::entry_meta
 Metadata attached to each dispatch table entry. More...
struct  zxfoundation::dgp::gate::gate_desc

Enumerations

enum class  zxfoundation::dgp::gate::call_namespace : u8 {
  dom = 0 , mem = 1 , gate = 2 , portal = 3 ,
  io = 4 , sgn = 5 , cap = 6 , sys = 7 ,
  _count = 8
}
 Namespace identifiers for dispatch.
enum class  zxfoundation::dgp::gate::cap_op : u32 {
  acquire = 0 , release = 1 , validate = 2 , revoke = 3 ,
  _count = 4
}
enum class  zxfoundation::dgp::gate::dom_op : u32 {
  create = 0 , destroy = 1 , exit = 2 , info = 3 ,
  query = 4 , strand_create = 5 , strand_set_policy = 6 , strand_set_affinity = 7 ,
  strand_query_state = 8 , _count = 9
}
 Per-namespace operation IDs. More...
enum class  gate_auth : u8 { any = 0 , keyed = 1 , owner = 2 }
enum class  zxfoundation::dgp::gate::dispatch::gate_auth_level : u8 {
  none = 0 , capability = 1 , admin = 2 , domain_map = 3 ,
  storage_key = 4 , io = 5 , signal = 6
}
 Gate authorization level enforced at dispatch time. More...
enum class  gate_op : u32 { create = 0 , destroy = 1 , _count = 2 }
enum class  gate_type : u8 { nucleus = 0 , domain = 1 }
enum class  zxfoundation::dgp::gate::io_op : u32 {
  bind = 0 , unbind = 1 , submit = 2 , irq_bind = 3 ,
  dma_extent = 4 , completion_dequeue = 5 , _count = 6
}
enum class  mem_op : u32 {
  alloc = 0 , free = 1 , map = 2 , unmap = 3 ,
  protect = 4 , share = 5 , _count = 6
}
enum class  portal_op : u32 { create = 0 , destroy = 1 , _count = 2 }
enum class  zxfoundation::dgp::gate::sgn_op : u32 {
  register_handler = 0 , poll = 1 , ack = 2 , send = 3 ,
  mask_set = 4 , mask_get = 5 , wait = 6 , _count = 7
}
enum class  sys_op : u32 {
  time_yield = 0 , time_deadline = 1 , time_now = 2 , console_write = 3 ,
  register_service = 4 , lookup_service = 5 , unregister_service = 6 , ipc_endpoint_create = 7 ,
  ipc_endpoint_destroy = 8 , ipc_send = 9 , ipc_receive = 10 , shm_export = 11 ,
  shm_import = 12 , shm_map = 13 , policy_register = 14 , policy_unregister = 15 ,
  _count = 16
}

Typedefs

using zxfoundation::dgp::gate::dispatch::dispatch_handler
 Handler function signature for all nucleus calls.

Functions

constexpr auto zxfoundation::dgp::gate::pack_call (call_namespace ns, u32 op) noexcept -> u32
constexpr auto zxfoundation::dgp::gate::dispatch::pack_index (call_namespace ns, u32 op) noexcept -> u32
 Pack a namespace and operation into a table index.

Variables

u8 _pad0 {0}
gate_auth_level auth {gate_auth_level::none}
gate_auth auth {gate_auth::any}
constexpr u32 zxfoundation::dgp::gate::dispatch::DISPATCH_TABLE_SIZE = 256U
 Maximum entries: 8 namespaces x 32 operations = 256.
u64 entry_va {0}
scoms::kobject::bobject ko {}
constexpr u32 zxfoundation::dgp::gate::MAX_GATES = 512U
u8 namespace_id {0}
zxfoundation::dgp::operation_kind op_kind
u8 operation_id {0}
bool requires_admin {false}
u32 target_domain {0}
u8 target_key {0}
gate_type type {gate_type::nucleus}

Files

file  zxfoundation/dgp/gate.zcomponent/types.cxxm
 Gate subsystem types — per-namespace call IDs, the gate descriptor, and the flat dispatch-table types.