13#include <zephyr/sys/util.h>
30#define RTFW_EVENT_COMMAND_PROCESSED 1U
33#define RTFW_EVENT_TYPE_FRAMEWORK_MAX 0xffU
35#define RTFW_EVENT_TYPE_USER_BASE 0x100U
37#define RTFW_FAULT_EVENT_OVERFLOW BIT(0)
38#define RTFW_FAULT_BACKEND_APPLY BIT(1)
49 uint8_t
data[CONFIG_RTFW_COMMAND_DATA_SIZE];
int rtfw_init(const struct rtfw_config *config)
Initialize the reusable framework.
void(* rtfw_fastpath_handler_t)(void *user_data)
Service a client-owned source in the zero-latency fast path.
Definition rtfw.h:108
int rtfw_event_push(const struct rtfw_event *event)
Push one event from the single producer fast path.
void(* rtfw_pend_source_irq_t)(void *user_data)
Pend the client-owned source interrupt.
Definition rtfw.h:117
int rtfw_get_status(struct rtfw_status *status)
Read a coherent requested/attempted/applied state snapshot.
int rtfw_submit(const struct rtfw_command *command)
Publish a latest-wins command and pend the backend source IRQ.
void rtfw_fastpath_run(void)
Enter the registered zero-latency fast path.
void(* rtfw_event_cb_t)(const struct rtfw_event *event, void *user_data)
Consume an event outside the zero-latency fast path.
Definition rtfw.h:127
int(* rtfw_command_handler_t)(const struct rtfw_command *command, void *user_data)
Process a command in the zero-latency fast path.
Definition rtfw.h:96
uint32_t data_len
Definition rtfw.h:48
uint32_t id
Definition rtfw.h:47
uint8_t data[CONFIG_RTFW_COMMAND_DATA_SIZE]
Definition rtfw.h:49
Fixed-size command exchanged with an RTFW backend.
Definition rtfw.h:46
void * fastpath_user_data
Definition rtfw.h:143
rtfw_pend_source_irq_t pend_source_irq
Definition rtfw.h:141
rtfw_fastpath_handler_t fastpath_handler
Definition rtfw.h:140
rtfw_event_cb_t event_handler
Definition rtfw.h:142
void * event_user_data
Definition rtfw.h:144
rtfw_command_handler_t command_handler
Definition rtfw.h:139
RTFW client configuration.
Definition rtfw.h:138
uint32_t timestamp
Definition rtfw.h:62
uint32_t type
Definition rtfw.h:60
uint32_t value
Definition rtfw.h:61
Event produced by a backend's zero-latency fast path.
Definition rtfw.h:59
uint32_t dropped_events
Definition rtfw.h:80
int32_t apply_result
Definition rtfw.h:78
struct rtfw_command requested
Definition rtfw.h:75
uint32_t max_queue_depth
Definition rtfw.h:82
bool pending
Definition rtfw.h:79
uint32_t faults
Definition rtfw.h:83
struct rtfw_command attempted
Definition rtfw.h:76
struct rtfw_command applied
Definition rtfw.h:77
Coherent framework status snapshot.
Definition rtfw.h:74