Nexus Embedded Platform 1.0.0
Statically assembled reusable embedded mechanisms
Loading...
Searching...
No Matches
wait.h
Go to the documentation of this file.
1
6#ifndef NEXUS_OS_WAIT_H
7#define NEXUS_OS_WAIT_H
8
9#include "nexus/core/status.h"
10#include "nexus/core/time.h"
11#include <stdbool.h>
12#include <stdint.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
42typedef struct {
43 void* context;
44 uint32_t (*arm)(void* context);
45 nx_result_t (*wait)(void* context, uint32_t sequence, uint64_t deadline_us);
48
63nx_result_t nx_wait_until(const nx_wait_port_t* port, bool (*ready)(void*),
64 void* context, uint64_t deadline_us);
65
66#ifdef __cplusplus
67}
68#endif
69
70#endif /* NEXUS_OS_WAIT_H */
Small vendor-independent result vocabulary.
nx_result_t
Operation result; success at submission means admission only.
Definition status.h:21
Single-waiter notification port.
Definition wait.h:42
uint32_t(* arm)(void *context)
Definition wait.h:44
nx_result_t(* wait)(void *context, uint32_t sequence, uint64_t deadline_us)
Definition wait.h:45
void * context
Definition wait.h:43
nx_result_t(* wake)(void *context)
Definition wait.h:46
Absolute monotonic microsecond deadlines and wrap extension.
nx_result_t nx_wait_until(const nx_wait_port_t *port, bool(*ready)(void *), void *context, uint64_t deadline_us)
Wait for an authoritative caller predicate.