Nexus Embedded Platform 0.1.0
Statically assembled reusable embedded mechanisms
Loading...
Searching...
No Matches
wake.h
Go to the documentation of this file.
1
8#ifndef NEXUS_IO_WAKE_H
9#define NEXUS_IO_WAKE_H
10
11#include "nexus/core/status.h"
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
26typedef struct {
27 void* context;
31
38
52
54typedef struct {
55 int16_t irq_number;
56 uint8_t priority;
59
81 const nx_irq_policy_t* policy,
82 const nx_irq_source_t* source);
83
96
97#ifdef __cplusplus
98}
99#endif
100
101#endif
Small vendor-independent result vocabulary.
nx_result_t
Operation result; success at submission means admission only.
Definition status.h:21
Immutable CPU and kernel facts for cold wake binding.
Definition wake.h:46
uint8_t priority_bits
Definition wake.h:49
uint16_t external_irq_count
Definition wake.h:48
nx_irq_kernel_policy_t kernel
Definition wake.h:47
uint8_t syscall_ceiling
Definition wake.h:50
Actual publisher facts read before attaching any borrowed sink.
Definition wake.h:54
int16_t irq_number
Definition wake.h:55
uint8_t priority
Definition wake.h:56
uint8_t priority_group
Definition wake.h:57
Optional immutable wake target borrowed by an IRQ provider.
Definition wake.h:26
nx_result_t(* notify)(void *context)
Definition wake.h:28
void * context
Definition wake.h:27
bool calls_kernel
Definition wake.h:29
nx_result_t nx_irq_wake_signal(const nx_irq_wake_t *wake)
Deliver one bounded hint after authoritative state is latched.
nx_result_t nx_irq_wake_validate(const nx_irq_wake_t *wake, const nx_irq_policy_t *policy, const nx_irq_source_t *source)
Validate actual IRQ facts against an explicit kernel policy.
nx_irq_kernel_policy_t
Explicit kernel interrupt-mask policy, independent of any RTOS.
Definition wake.h:33
@ NX_IRQ_KERNEL_BASEPRI
Definition wake.h:36
@ NX_IRQ_KERNEL_NONE
Definition wake.h:34
@ NX_IRQ_KERNEL_PRIMASK
Definition wake.h:35