ZXFoundation™ 26h2
Loading...
Searching...
No Matches
core.cxxm File Reference

Unified DGP authorization. More...

import lib.error;
import std;
import zxfoundation.scoms.kobject.base;
import zxfoundation.dgp.domain.types;
import zxfoundation.dgp.isolation.types;
import zxfoundation.base.typestate;
import zxfoundation.base.types;
Include dependency graph for core.cxxm:

Data Structures

struct  zxfoundation::dgp::authorization_lease
 Short-lived authorization proof bound to object generations. More...
 Fine-grained metadata supplied alongside an authorization check. More...

Enumerations

enum class  zxfoundation::dgp::operation_kind : u8 {
  none = 0 , domain_create = 1 , domain_destroy = 2 , domain_exit = 3 ,
  domain_info = 4 , domain_query = 5 , strand_create = 6 , address_space_create = 43 ,
  gate_create = 7 , gate_destroy = 8 , gate_entry = 9 , portal_create = 10 ,
  portal_destroy = 11 , io_bind = 12 , io_unbind = 13 , io_submit = 14 ,
  io_irq_bind = 15 , io_dma_extent = 59 , io_completion_dequeue = 60 , signal_register = 16 ,
  signal_poll = 17 , signal_ack = 18 , signal_send = 19 , signal_mask_set = 20 ,
  signal_mask_get = 21 , signal_wait = 22 , mem_alloc = 23 , mem_free = 24 ,
  mem_map = 25 , mem_unmap = 26 , mem_protect = 27 , mem_share = 28 ,
  cap_acquire = 29 , cap_release = 30 , cap_validate = 31 , cap_revoke = 32 ,
  time_yield = 33 , time_deadline = 34 , time_now = 35 , console_write = 36 ,
  register_service = 37 , lookup_service = 38 , unregister_service = 39 , strand_set_policy = 40 ,
  strand_set_affinity = 41 , strand_query_state = 42 , ipc_endpoint_create = 50 , ipc_endpoint_destroy = 51 ,
  ipc_send = 52 , ipc_receive = 53 , shm_export = 54 , shm_import = 55 ,
  shm_map = 56 , policy_server_register = 57 , policy_server_unregister = 58
}
 Operation kinds recognized by the unified DGP chokepoint. More...

Functions

auto zxfoundation::dgp::authorize (const zxfoundation::dgp::domain::domain &caller, const zxfoundation::dgp::domain::domain &target, operation_kind op, const authorization_metadata &meta) noexcept -> std::expected< authorization_lease, lib::kernel_error >
 Unified DGP authorization chokepoint.

Detailed Description

Unified DGP authorization.

SPDX-License-Identifier: Apache-2.0

Enumeration Type Documentation

◆ operation_kind

enum class zxfoundation::dgp::operation_kind : u8
exportstrong

Operation kinds recognized by the unified DGP chokepoint.

Enumerator
domain_create 

Create a new sub-domain.

domain_destroy 

Destroy a domain.

domain_exit 

Self-terminate current domain.

domain_info 

Query own domain metadata.

domain_query 

Query another domain's metadata.

strand_create 

Create a strand in a domain.

address_space_create 

Create an address-space object.

gate_create 

Create a gate descriptor.

gate_destroy 

Destroy a gate descriptor.

gate_entry 

Cross-domain gate entry (dispatch-level).

portal_create 

Create a portal between domains.

portal_destroy 

Destroy a portal.

io_bind 

Bind a device to a domain.

io_unbind 

Unbind a device.

io_submit 

Submit a channel program.

io_irq_bind 

Route I/O IRQs to a gate.

io_dma_extent 

Issue an exact DMA memory extent.

io_completion_dequeue 

Consume a kernel-owned I/O completion.

signal_register 

Register a signal handler.

signal_poll 

Poll for pending signals.

signal_ack 

Acknowledge signals.

signal_send 

Cross-domain signal delivery.

signal_mask_set 

Update blocked mask.

signal_mask_get 

Read blocked mask.

signal_wait 

Block current strand for next unblocked signal.

mem_alloc 

Allocate anonymous memory.

mem_free 

Free anonymous memory.

mem_map 

Map physical memory.

mem_unmap 

Unmap a memory range.

mem_protect 

Change memory protection.

mem_share 

Share memory across domains.

cap_acquire 

Acquire a capability token.

cap_release 

Release a capability token (voluntary).

cap_validate 

Validate a capability token.

cap_revoke 

Admin-side revoke of a capability/rights bundle.

time_yield 

Yield CPU.

time_deadline 

Compute a deadline.

time_now 

Get monotonic time.

console_write 

Write to console.

register_service 

Register a named service.

lookup_service 

Look up a named service.

unregister_service 

Unregister a service.

strand_set_policy 

Change a strand's scheduler policy.

strand_set_affinity 

Change a strand's CPU affinity.

strand_query_state 

Read a strand's scheduler state.