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

Data Structures

struct  zxfoundation::dgp::signal::signal_entry
 A single signal queued for delivery to a domain. More...
struct  zxfoundation::dgp::signal::signal_handler_info
 Descriptor for a registered signal handler. More...
struct  zxfoundation::dgp::signal::signal_queue
 Fixed-capacity signal queue embedded in the domain struct. More...

Enumerations

enum class  zxfoundation::dgp::signal::signal_default : u8 { ignore = 0 , terminate = 1 , notify = 2 }
 What the kernel should do when a signal is delivered and no handler is registered. More...
enum class  zxfoundation::dgp::signal::signal_kind : u8 {
  none = 0 , timer = 1 , io = 2 , fault = 3 ,
  term = 4 , user0 = 5 , user1 = 6 , ipc = 7
}
 Discriminator for the kind of asynchronous event. More...

Typedefs

using zxfoundation::dgp::signal::signal_handler_fn
 Signal handler invoked by the nucleus at domain re-entry.

Functions

auto dequeue () noexcept -> signal_entry
 Dequeue the next signal.
auto enqueue (signal_kind kind, u64 data) noexcept -> void
 Enqueue a signal (non-blocking, overwrites oldest if full).
auto has_pending () const noexcept -> bool
 Check if any signal is pending.
auto has_pending (signal_kind k) const noexcept -> bool
 Check if a specific signal kind is pending.
constexpr auto zxfoundation::dgp::signal::signal_kind_name (signal_kind k) noexcept -> const char *
 Return a human-readable label for a signal kind.

Variables

u8 _pad [7] {}
 Padding to 8 bytes.
u8 _pad [3] {}
u32 blocked_mask {0}
 Bitmask of currently-blocked kinds.
u32 count {0}
 Pending signals.
u64 data {0}
 Payload (I/O param, fault addr, etc.).
signal_default def {}
 Default action if no handler.
signal_entry entries [SIGNAL_QUEUE_DEPTH] {}
 Ring buffer.
signal_handler_fn handler {nullptr}
 Handler function.
signal_handler_info handlers [8] {}
 Registered handlers by kind.
u32 head {0}
 Dequeue index.
signal_kind kind {signal_kind::none}
 Signal discriminator.
u32 pending_mask {0}
 Bitmask of signal_kind values present.
constexpr u32 zxfoundation::dgp::signal::SIGNAL_QUEUE_DEPTH = 16
 Maximum number of pending signal entries per domain.
u32 tail {0}
 Enqueue index.
void * user_data {nullptr}
 Opaque context passed to the handler.

Files

file  zxfoundation/dgp/signal.zcomponent/types.cxxm
 Signal subsystem types — the asynchronous event mechanism for DGP domains.