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

Hardware-first DGP isolation policy and lifecycle types. More...

import arch.s390x.mmu.types;
import zxfoundation.base.typestate;
import zxfoundation.base.types;
Include dependency graph for types.cxxm:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  zxfoundation::dgp::isolation::isolation_domain_state
 Hardware-backed state recorded for one DGP isolation domain. More...
struct  zxfoundation::dgp::isolation::isolation_policy
 Domain policy supplied to the DGP isolation core. More...

Enumerations

enum class  zxfoundation::dgp::isolation::isolation_feature : u64 {
  none = 0ULL , dat_asce = 1ULL << 0 , storage_key = 1ULL << 1 , program_call = 1ULL << 2 ,
  access_register = 1ULL << 3 , edat_large_page = 1ULL << 4 , numa_policy = 1ULL << 5 , transactional_vm = 1ULL << 6 ,
  smp_invalidation = 1ULL << 7
}
 Hardware isolation facilities required by a DGP policy.
enum class  zxfoundation::dgp::isolation::isolation_rights : u32 {
  none = 0U , enter = 1U << 0 , map = 1U << 1 , share = 1U << 2 ,
  signal = 1U << 3 , io = 1U << 4 , lifecycle = 1U << 5 , delegate = 1U << 6 ,
  quota = 1U << 7 , debug = 1U << 8 , sched = 1U << 9 , console = 1U << 10 ,
  service = 1U << 11 , all = 0x0000'FFFFU
}
 Authority bits interpreted by the DGP policy plane. More...
enum class  zxfoundation::dgp::isolation::skey_revocation_state : u8 { none = 0 , active = 1 , draining = 2 , reusable = 3 }
 Revocation phase for a storage key held by a DGP domain.

Functions

constexpr auto zxfoundation::dgp::isolation::has_all_features (isolation_feature available, isolation_feature requested) noexcept -> bool
 Test that all requested features are present.
constexpr auto zxfoundation::dgp::isolation::has_all_rights (dgp::isolation::isolation_rights available, dgp::isolation::isolation_rights requested) noexcept -> bool
 Test that all requested rights are present.
constexpr auto zxfoundation::dgp::isolation::operator& (dgp::isolation::isolation_rights lhs, dgp::isolation::isolation_rights rhs) noexcept -> dgp::isolation::isolation_rights
 Intersect two right masks.
constexpr auto zxfoundation::dgp::isolation::operator& (isolation_feature lhs, isolation_feature rhs) noexcept -> isolation_feature
 Intersect two feature masks.
constexpr auto zxfoundation::dgp::isolation::operator| (dgp::isolation::isolation_rights lhs, dgp::isolation::isolation_rights rhs) noexcept -> dgp::isolation::isolation_rights
 Combine two right masks.
constexpr auto zxfoundation::dgp::isolation::operator| (isolation_feature lhs, isolation_feature rhs) noexcept -> isolation_feature
 Combine two feature masks.

Variables

constexpr u8 zxfoundation::dgp::isolation::STORAGE_KEY_AUTO = 0xFFU
 Storage key value requesting automatic allocation by DGP policy.
constexpr u8 zxfoundation::dgp::isolation::STORAGE_KEY_COUNT = 16U
 Number of architected storage-key access-control values.
constexpr u8 zxfoundation::dgp::isolation::STORAGE_KEY_USER_BASE = 8U
 First user-domain storage key retained for non-nucleus domains.
constexpr u8 zxfoundation::dgp::isolation::STORAGE_KEY_USER_MAX = 15U
 Last user-domain storage key retained for non-nucleus domains.

Detailed Description

Hardware-first DGP isolation policy and lifecycle types.

SPDX-License-Identifier: Apache-2.0

Enumeration Type Documentation

◆ isolation_rights

enum class zxfoundation::dgp::isolation::isolation_rights : u32
exportstrong

Authority bits interpreted by the DGP policy plane.

Enumerator
enter 

Cross-domain gate entry.

map 

Map physical memory into own address space.

share 

Share memory across domain boundaries.

signal 

Send/receive cross-domain signals.

io 

Bind and operate I/O devices.

lifecycle 

Create/destroy sub-domains, gates, portals.

delegate 

Delegate capabilities to other domains.

quota 

Allocate physical pages, DMA pools, I/O slots.

debug 

Inspect other domains' state (query, info).

sched 

Create strands, set scheduling parameters.

console 

Write to system console.

service 

Register/lookup/unregister named services.

all 

All rights (nucleus only).

Function Documentation

◆ has_all_features()

auto zxfoundation::dgp::isolation::has_all_features ( isolation_feature available,
isolation_feature requested )->bool
nodiscardconstexprexportnoexcept

Test that all requested features are present.

Parameters
[in]availableAvailable feature mask.
[in]requestedRequired feature mask.
Returns
true when every requested feature is present.

◆ has_all_rights()

auto zxfoundation::dgp::isolation::has_all_rights ( dgp::isolation::isolation_rights available,
dgp::isolation::isolation_rights requested )->bool
nodiscardconstexprexportnoexcept

Test that all requested rights are present.

Parameters
[in]availableAvailable right mask.
[in]requestedRequired right mask.
Returns
true when every requested right is present.

◆ operator&() [1/2]

auto zxfoundation::dgp::isolation::operator& ( dgp::isolation::isolation_rights lhs,
dgp::isolation::isolation_rights rhs )->dgp::isolation::isolation_rights
nodiscardconstexprexportnoexcept

Intersect two right masks.

Parameters
[in]lhsLeft-hand right mask.
[in]rhsRight-hand right mask.
Returns
Common right mask.

◆ operator&() [2/2]

auto zxfoundation::dgp::isolation::operator& ( isolation_feature lhs,
isolation_feature rhs )->isolation_feature
nodiscardconstexprexportnoexcept

Intersect two feature masks.

Parameters
[in]lhsLeft-hand feature mask.
[in]rhsRight-hand feature mask.
Returns
Common feature mask.

◆ operator|() [1/2]

auto zxfoundation::dgp::isolation::operator| ( dgp::isolation::isolation_rights lhs,
dgp::isolation::isolation_rights rhs )->dgp::isolation::isolation_rights
nodiscardconstexprexportnoexcept

Combine two right masks.

Parameters
[in]lhsLeft-hand right mask.
[in]rhsRight-hand right mask.
Returns
Combined right mask.

◆ operator|() [2/2]

auto zxfoundation::dgp::isolation::operator| ( isolation_feature lhs,
isolation_feature rhs )->isolation_feature
nodiscardconstexprexportnoexcept

Combine two feature masks.

Parameters
[in]lhsLeft-hand feature mask.
[in]rhsRight-hand feature mask.
Returns
Combined feature mask.