43 lines
1.0 KiB
C
43 lines
1.0 KiB
C
#ifndef LINUXCNC_WEB_WASM_SIM_EVENT_H
|
|
#define LINUXCNC_WEB_WASM_SIM_EVENT_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define SIM_EVENT_KIND_CAPACITY 32U
|
|
#define SIM_EVENT_CAPACITY 256U
|
|
|
|
enum sim_event_result {
|
|
SIM_EVENT_OK = 0,
|
|
SIM_EVENT_ERR_SEQUENCE = -200,
|
|
SIM_EVENT_ERR_TICK = -201,
|
|
SIM_EVENT_ERR_ARGUMENT = -202,
|
|
SIM_EVENT_ERR_FULL = -203,
|
|
SIM_EVENT_ERR_BUFFER = -204,
|
|
};
|
|
|
|
typedef struct sim_event_record {
|
|
uint32_t seq;
|
|
uint32_t tick;
|
|
uint64_t payload_hash;
|
|
char kind[SIM_EVENT_KIND_CAPACITY];
|
|
} sim_event_record;
|
|
|
|
void sim_event_reset(void);
|
|
int32_t sim_event_append(uint32_t seq, uint32_t tick, const char *kind,
|
|
const uint8_t *payload, uint32_t payload_len);
|
|
uint32_t sim_event_count(void);
|
|
uint32_t sim_event_cursor(void);
|
|
uint32_t sim_event_read(uint32_t index, uint8_t *out, uint32_t capacity);
|
|
uint32_t sim_event_export(uint8_t *out, uint32_t capacity);
|
|
int32_t sim_event_import(const uint8_t *data, uint32_t len);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|