Nexus Embedded Platform 0.1.0
Statically assembled reusable embedded mechanisms
Loading...
Searching...
No Matches
clock_domain.h
Go to the documentation of this file.
1
9#ifndef NEXUS_COMPONENTS_CLOCK_DOMAIN_H
10#define NEXUS_COMPONENTS_CLOCK_DOMAIN_H
11#include "nexus/core/status.h"
12#ifdef __cplusplus
13extern "C" {
14#endif
16typedef struct nx_clock_domain nx_clock_domain_t;
38typedef struct {
40 uint64_t epoch;
42
48
58 nx_clock_lease_t* lease);
66 nx_clock_lease_t* lease);
74 nx_clock_barrier_t* control);
93#ifdef __cplusplus
94}
95#endif
96#endif /* NEXUS_COMPONENTS_CLOCK_DOMAIN_H */
struct nx_clock_domain nx_clock_domain_t
Opaque provider, statically supplied by its privileged owner.
nx_result_t nx_clock_domain_close(nx_clock_domain_t *domain, nx_clock_barrier_t *control)
Close admission and return the current epoch control.
nx_clock_power_mode_t
Only shallow sleep preserves the established clock/time domain.
@ NX_CLOCK_SHALLOW_SLEEP
@ NX_CLOCK_DEEP_STOP
@ NX_CLOCK_DYNAMIC_RUN
struct nx_clock_lease nx_clock_lease_t
One stable caller-owned consumer token.
nx_result_t nx_clock_domain_quiescent(nx_clock_barrier_t control)
Validate closed admission and zero retained consumers.
nx_result_t nx_clock_domain_reopen(nx_clock_barrier_t control)
Reopen a drained domain under a new admission epoch.
nx_result_t nx_clock_domain_release(nx_clock_domain_t *domain, nx_clock_lease_t *lease)
Remove the exact retained token after consumer drain.
nx_result_t nx_clock_domain_acquire(nx_clock_domain_t *domain, nx_clock_lease_t *lease)
Acquire one admitted clock consumer without waiting.
Small vendor-independent result vocabulary.
nx_result_t
Operation result; success at submission means admission only.
Definition status.h:21
Epoch-bound close control and quiescence evidence.
nx_clock_domain_t * domain
One stable caller-owned consumer token.
struct nx_clock_lease * next
nx_clock_domain_t * owner