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. | |