Skip to main content

Module generated

Module generated 

Source
Expand description

AUTO-GENERATED by scripts/gen-abi-bindings.sh (bindgen 0.72.1) — DO NOT EDIT.

Source of truth: packages/platform/nros-platform-api/include/nros/platform*.h (RFC-0054). Edit the headers, rerun the script, commit both.

Structs§

nros_platform_task_attr_t

Constants§

NROS_PLATFORM_CONDVAR_STORAGE_SIZE
NROS_PLATFORM_MUTEX_REC_STORAGE_SIZE
NROS_PLATFORM_MUTEX_STORAGE_SIZE
NROS_PLATFORM_PRIORITY_INHERIT
NROS_PLATFORM_PRIORITY_MAX
NROS_PLATFORM_PRIORITY_MIN
NROS_PLATFORM_RET_ERROR
NROS_PLATFORM_RET_INVALID
NROS_PLATFORM_RET_NOMEM
NROS_PLATFORM_RET_OK
NROS_PLATFORM_RET_TIMEOUT
NROS_PLATFORM_RET_UNSUPPORTED
NROS_PLATFORM_STORAGE_ALIGN
NROS_PLATFORM_TASK_DETACHED
NROS_PLATFORM_TASK_STORAGE_SIZE

Functions§

nros_platform_alloc
Allocate size bytes; return NULL on failure. May be called from any thread.
nros_platform_clock_ns
Monotonic nanoseconds since a platform-defined epoch (boot, program start, …). Never decreases. Wraps after ~584 years.
nros_platform_clock_resolution_ns
Granularity of nros_platform_clock_ns, in nanoseconds: the smallest non-zero difference two successive reads can report.
nros_platform_condvar_drop
nros_platform_condvar_init
nros_platform_condvar_signal
nros_platform_condvar_signal_all
nros_platform_condvar_signal_from_isr
Phase 124.B.7.a — ISR-safe signal.
nros_platform_condvar_storage_align
nros_platform_condvar_storage_size
nros_platform_condvar_wait
Atomically release m and block on cv. The mutex is re-acquired before this function returns.
nros_platform_condvar_wait_until
Like condvar_wait, but with an absolute monotonic deadline in MILLISECONDS on the nros_platform_clock_ns() epoch — i.e. clock_ns() / 1000000. Returns non-zero on timeout.
nros_platform_critical_section_acquire
nros_platform_critical_section_release
nros_platform_dealloc
Free a previously allocated block. NULL is a no-op.
nros_platform_epoch_us
Microseconds since the UNIX EPOCH (1970-01-01T00:00:00Z), or 0 when this platform has no wall-clock source.
nros_platform_heap_total_bytes
Total managed heap size in bytes (used + free), or 0 if unknown.
nros_platform_heap_used_bytes
Bytes currently allocated from the platform heap, or 0 if the port does not instrument it. Phase 230 / RFC-0034 D7: the true unified figure where the platform owns one kernel heap shared by the C side and the Rust #[global_allocator].
nros_platform_log_flush
nros_platform_log_write
nros_platform_mutex_drop
nros_platform_mutex_init
nros_platform_mutex_lock
nros_platform_mutex_rec_drop
nros_platform_mutex_rec_init
Initialise a recursive mutex (same-thread re-entry permitted). Required by zenoh-pico.
nros_platform_mutex_rec_lock
nros_platform_mutex_rec_storage_align
nros_platform_mutex_rec_storage_size
nros_platform_mutex_rec_try_lock
nros_platform_mutex_rec_unlock
nros_platform_mutex_storage_align
nros_platform_mutex_storage_size
Opaque-storage sizing for the lock family, matching wake and task. Pure functions, callable before the corresponding _init.
nros_platform_mutex_try_lock
nros_platform_mutex_unlock
nros_platform_network_poll
Pump the underlying network stack to process pending I/O. No-op on platforms with a kernel-driven socket layer (POSIX, Zephyr, lwIP, NetX Duo). Bare-metal smoltcp targets advance the stack from this entry point.
nros_platform_panic
nros_platform_random_fill
Fill len bytes at buf with random data.
nros_platform_random_u8
Random u8. Cryptographically random where the platform has an entropy source; otherwise a seeded PRNG. Must be deterministic within a single test session for reproducibility.
nros_platform_random_u16
Random u16. See random_u8 notes.
nros_platform_random_u32
Random u32. See random_u8 notes.
nros_platform_random_u64
Random u64. See random_u8 notes.
nros_platform_realloc
Resize the block at ptr to size bytes. Equivalent to libc realloc: NULL ptr → fresh alloc; 0 size → free + return NULL. Preserves contents up to min(old, new).
nros_platform_register_log_writer
nros_platform_sleep_ms
Sleep at least ms milliseconds.
nros_platform_sleep_s
Sleep at least s seconds.
nros_platform_sleep_us
Sleep at least us microseconds. Spin if the platform clock has no sub-millisecond timer.
nros_platform_socket_accept
Accept a pending connection from sock_in into sock_out.
nros_platform_socket_close
Socket-layer shutdown + close. Distinct from nros_platform_tcp_close because zenoh-pico’s helper layer exposes both.
nros_platform_socket_set_non_blocking
Switch a socket to non-blocking mode.
nros_platform_socket_wait_event
Wait for socket events on a multi-peer set. Optional on platforms without a poll/select primitive.
nros_platform_task_attr_init
Fill attr with the defaults — equivalent to passing NULL to task_init.
nros_platform_task_cancel
Request task to terminate at the next cancellation point. Cooperative: a task that never reaches a cancel point will not stop.
nros_platform_task_detach
Mark task as detached — its storage is reclaimed on exit without a join.
nros_platform_task_exit
Terminate the calling task immediately. Does not return.
nros_platform_task_free
Free task storage allocated by task_init. Called after task_join or task_detach + exit.
nros_platform_task_init
Spawn a new task. task is opaque caller-provided storage (size from nros_platform_task_storage_size); attr is a nros_platform_task_attr_t *, or NULL for every default; entry is the task entry point; arg is forwarded to entry.
nros_platform_task_join
Block until task exits. Cleans up task storage on success.
nros_platform_task_stack_unused_bytes
Smallest number of bytes ever left unused on the CALLING task’s stack, or 0 if this port cannot report it.
nros_platform_task_storage_align
nros_platform_task_storage_size
Opaque-storage sizing for task, mirroring the wake primitive’s probes below. Both are pure functions (no global state) and may be called before nros_platform_task_init.
nros_platform_tcp_close
Close a TCP socket.
nros_platform_tcp_create_endpoint
Resolve (address, port) strings into the caller-allocated endpoint storage at ep. Both strings are NUL-terminated.
nros_platform_tcp_free_endpoint
Release any resources held by the endpoint at ep.
nros_platform_tcp_listen
Open a listening TCP socket bound to endpoint.
nros_platform_tcp_open
Open a TCP client connection to endpoint.
nros_platform_tcp_read
Read up to len bytes. Returns bytes received, or NROS_PLATFORM_NET_SOCKET_ERROR on error.
nros_platform_tcp_read_exact
Read exactly len bytes. Returns len on success, or NROS_PLATFORM_NET_SOCKET_ERROR on error.
nros_platform_tcp_send
Send len bytes. Returns bytes sent, or NROS_PLATFORM_NET_SOCKET_ERROR on error.
nros_platform_time_now_ns
Wall-clock nanoseconds since the Unix epoch, or 0 if the platform has no real-time clock.
nros_platform_timer_cancel
Cancel a previously-armed timer. Returns:
nros_platform_timer_create_oneshot
Register a one-shot timer that invokes callback(user_data) once after timeout_us microseconds. Returns the platform-native handle on success, NULL on failure.
nros_platform_timer_create_periodic
Register a periodic timer that invokes callback(user_data) every period_us microseconds. Returns the platform-native handle on success, NULL on failure.
nros_platform_timer_destroy
Cancel + free the timer. Drains in-flight callback invocations before returning so user_data is no longer accessed. Idempotent on already-destroyed handles.
nros_platform_udp_close
nros_platform_udp_create_endpoint
nros_platform_udp_free_endpoint
nros_platform_udp_listen
Bind a UDP socket in listen / server mode. Optional — return -1 on platforms that don’t expose a UDP-server primitive.
nros_platform_udp_mcast_close
nros_platform_udp_mcast_listen
nros_platform_udp_mcast_open
nros_platform_udp_mcast_read
nros_platform_udp_mcast_read_exact
nros_platform_udp_mcast_send
nros_platform_udp_open
nros_platform_udp_read
nros_platform_udp_read_exact
nros_platform_udp_send
Send len bytes to endpoint.
nros_platform_udp_set_recv_timeout
Set the recv timeout in milliseconds; 0 means block indefinitely.
nros_platform_wake_drop
nros_platform_wake_init
nros_platform_wake_signal
nros_platform_wake_signal_from_isr
nros_platform_wake_storage_align
nros_platform_wake_storage_size
Opaque-storage sizing. Both helpers are pure functions (no global state) and may be called before nros_platform_wake_init.
nros_platform_wake_wait_ms
nros_platform_yield_now
Voluntarily yield the current task / thread. On bare-metal, core::hint::spin_loop() is acceptable; on RTOSes use the native cooperative-yield primitive (k_yield, vPortYield, tx_thread_relinquish, sched_yield, …). RTOS yields are not ISR-safe.

Type Aliases§

nros_platform_log_flush_fn_t
nros_platform_log_writer_fn_t
nros_platform_ret_t
nros_platform_timer_callback_t
@file platform_timer.h @brief Canonical C ABI for the nros platform timer surface.