48 void (*postAbsolute)(
void *
Obj, int64_t EvId, int64_t T);
50 void (*postRelative)(
void *
Obj, int64_t EvId, int64_t T);
52 void (*postOnStack)(
void *
Obj, int64_t EvId);
54 #define TEMU_EVENT_IFACE_TYPE "temu::EventIface" 209 #define TEMU_ASYNC_CYCLIC 1 210 #define TEMU_ASYNC_READ (1 << 1) 211 #define TEMU_ASYNC_WRITE (1 << 2) 243 unsigned Flags,
void (*CB)(
void*),
TEMU_API void temu_eventDeschedule(int64_t EvID)
struct temu_EventQueue temu_EventQueue
Definition: Events.h:21
TEMU_API int temu_asyncSocketAdd(void *Q, int Sock, unsigned Flags, void(*CB)(void *), void *Data)
TEMU_API int64_t temu_eventPublish(const char *EvName, void *Obj, void(*Func)(temu_Event *))
TEMU_API int temu_eventIsScheduled(int64_t EvID)
temu_EventQueue * Queue
Managed internally, do not touch.
Definition: Events.h:28
int64_t Time
Managed internally, do not touch.
Definition: Events.h:24
TEMU_API void temu_eventPostCycles(void *Q, int64_t EvID, int64_t Delta, temu_SyncEvent Sync)
TEMU_API int temu_eventSetRealTime(int64_t EvID)
uint32_t Flags
Internal use, do not touch.
Definition: Events.h:26
TEMU_API void temu_eventPostAsync(void *Q, temu_ThreadSafeCb CB, void *Data, temu_SyncEvent Sync)
TEMU_API int64_t temu_eventGetNanos(void *Q, int64_t EvID)
TEMU_API int64_t temu_eventPublishStruct(const char *EvName, temu_Event *Ev, void *Obj, void(*Func)(temu_Event *))
TEMU_API int64_t temu_eventGetCycles(void *Q, int64_t EvID)
#define TEMU_API
Definition: Attributes.h:53
int64_t EventId
Managed internally, do not touch.
Definition: Events.h:25
TEMU_API void temu_eventSetPeriodCycles(int64_t EvID, int64_t Period)
temu_SyncEvent
Definition: Events.h:103
TEMU_API uint64_t temu_eventQueueGetFreq(void *Q)
TEMU_API void temu_eventPostStack(void *Q, int64_t EvID, temu_SyncEvent Sync)
int64_t RTPeriod
Managed: Period (ns) for RT events.
Definition: Events.h:34
TEMU_API void temu_asyncSocketRemove(int Fd, unsigned Flags)
int QueueIdx
Managed internally, do not touch.
Definition: Events.h:27
TEMU_IFACE_REFERENCE_TYPE(temu_Event)
TEMU_API double temu_eventGetSecs(void *Q, int64_t EvID)
struct temu_Event temu_Event
TEMU_API int temu_asyncTimerAdd(void *Q, double T, unsigned Flags, void(*CB)(void *), void *Data)
TEMU_API void temu_eventPostNanos(void *Q, int64_t EvID, int64_t Delta, temu_SyncEvent Sync)
TEMU_API void temu_eventSetRTTime(int64_t EvID, int64_t Time)
void * Obj
Definition: Events.h:29
TEMU_API void temu_eventPostSecs(void *Q, int64_t EvID, double Delta, temu_SyncEvent Sync)
int64_t RTTime
Managed: Time (monotonic ns) for RT exec.
Definition: Events.h:33
TEMU_API void temu_eventSetRTPeriodNanos(int64_t EvID, int64_t Period)
int64_t Period
Managed: Period (cycles) for cyclic events.
Definition: Events.h:32
TEMU_API void temu_asyncTimerRemove(int Fd)
void(* Func)(struct temu_Event *)
Event callback.
Definition: Events.h:31
TEMU_API void temu_eventDepublish(int64_t EvID)
void(* temu_ThreadSafeCb)(void *)
Posting callback from other threads.
Definition: Events.h:38