6#ifndef NEXUS_OS_NATIVE_H
7#define NEXUS_OS_NATIVE_H
104 size_t storage_bytes,
size_t depth,
118 uint64_t deadline_us);
131 uint64_t deadline_us);
158 size_t stack_bytes,
void (*entry)(
void*),
nx_result_t nx_native_task_start(nx_native_task_t *task, void *stack, size_t stack_bytes, void(*entry)(void *), void *context)
Start a task using the supplied host stack.
nx_result_t nx_native_queue_close(nx_native_queue_t *queue)
Reject sends and wake all waiting callers.
nx_result_t nx_native_notify_destroy(nx_native_notify_t *notification)
Destroy after external publisher quiescence.
nx_result_t nx_native_queue_receive(nx_native_queue_t *queue, void *item, uint64_t deadline_us)
Receive one item; closed queues can still be drained.
nx_result_t nx_native_queue_send(nx_native_queue_t *queue, const void *item, uint64_t deadline_us)
Copy one item to the queue.
nx_result_t nx_native_notify_init(nx_native_notify_t *notification)
Initialize a notification in unused caller storage.
nx_result_t nx_native_task_join(nx_native_task_t *task)
Join after requesting cooperative application stop.
nx_wait_port_t nx_native_notify_port(nx_native_notify_t *notification)
Bind a single-waiter latched notification port.
uint64_t nx_native_now_us(void)
Read POSIX monotonic microseconds.
nx_result_t nx_native_queue_init(nx_native_queue_t *queue, void *storage, size_t storage_bytes, size_t depth, size_t item_size)
Initialize an explicit bounded byte-copy queue.
nx_result_t nx_native_queue_destroy(nx_native_queue_t *queue)
Destroy quiesced and drained queue storage.
nx_result_t
Operation result; success at submission means admission only.
Single waiter, multiple task publishers; fields are private.
Caller-sized queue storage; no heap or global object pool.
Explicit task handle; stack storage is supplied at start.
Single-waiter notification port.
Optional sequence-latched waiting without hidden workers.