 |
TEMU
4.4
The Terma Emulator
|
Go to the documentation of this file.
12 #include "temu-c/Support/Attributes.h"
13 #include "temu-c/Support/Objsys.h"
73 TEMU_API int64_t temu_eventPublishStruct(
const char *EvName, temu_Event *Ev,
74 void *Obj,
void (*Func)(temu_Event *));
104 TEMU_API int64_t temu_eventPublish(
const char *EvName,
void *Obj,
105 void (*Func)(temu_Event *));
269 TEMU_API int64_t temu_eventGetCycles(temu_TimeSource *TS, int64_t EvID);
279 TEMU_API int64_t temu_eventGetNanos(temu_TimeSource *TS, int64_t EvID);
292 #define TEMU_ASYNC_CYCLIC 1
293 #define TEMU_ASYNC_READ (1
<< 1
)
294 #define TEMU_ASYNC_WRITE (1
<< 2
)
326 void (*
CB)(
void *),
void *
Data);
352 void (*
CB)(
void *),
void *
Data);
445 TEMU_API uint64_t temu_eventQueueGetFreq(temu_TimeSource *TS);
double CyclesPerInstruction
Definition: Events.h:40
struct temu_EventQueue temu_EventQueue
Definition: Events.h:25
TEMU_API void temu_eventPostNanosAbsolute(temu_TimeSource *TS, int64_t EvID, int64_t AbsTime, temu_SyncEvent Sync)
@ teSE_Cpu
Definition: Events.h:21
TEMU_API void temu_eventPostAsync(temu_TimeSource *TS, temu_ThreadSafeCb CB, void *Data, temu_SyncEvent Sync)
TEMU_API int temu_asyncTimerAdd(temu_TimeSource *TS, double T, unsigned Flags, void(*CB)(void *), void *Data)
int64_t Period
Managed: Period (cycles) for cyclic events.
Definition: Events.h:53
temu_Object Super
Definition: Events.h:30
temu_EventQueue * Queue
Definition: Events.h:32
TEMU_API int temu_eventSetRealTime(int64_t EvID)
TEMU_API void temu_eventPostStack(temu_TimeSource *TS, int64_t EvID, temu_SyncEvent Sync)
TEMU_API int temu_eventIsScheduled(int64_t EvID)
TEMU_API void temu_eventDepublish(int64_t EvID)
int64_t RTTime
Managed: Time (monotonic ns) for RT exec.
Definition: Events.h:54
double InstructionsPerCycle
Definition: Events.h:39
TEMU_API double temu_eventGetSecs(temu_TimeSource *TS, int64_t EvID)
TEMU_API void temu_eventPostSteps(temu_TimeSource *TS, int64_t EvID, int64_t Delta, temu_SyncEvent Sync)
int64_t TargetSteps
Definition: Events.h:38
TEMU_API void temu_eventRescheduleCycles(temu_TimeSource *TS, int64_t EvID, int64_t Delta, temu_SyncEvent Sync)
int64_t RTPeriod
Managed: Period (ns) for RT events.
Definition: Events.h:55
TEMU_API void temu_eventPostNanos(temu_TimeSource *TS, int64_t EvID, int64_t Delta, temu_SyncEvent Sync)
temu_TimeSource * Queue
Managed internally, do not touch.
Definition: Events.h:49
uint32_t Flags
Internal use, do not touch.
Definition: Events.h:47
temu_SyncEvent Level
Definition: Events.h:35
int64_t Frequency
Definition: Events.h:33
void(* Func)(struct temu_Event *)
Event callback.
Definition: Events.h:52
temu_Object * Obj
Definition: Events.h:50
@ teSE_Machine
Definition: Events.h:22
int64_t Steps
Definition: Events.h:34
TEMU_API void temu_eventPostSecs(temu_TimeSource *TS, int64_t EvID, double Delta, temu_SyncEvent Sync)
temu_TimeSource * ParentTimeSource
Definition: Events.h:31
int64_t StartSteps
Definition: Events.h:37
TEMU_API void temu_eventSetPeriodCycles(int64_t EvID, int64_t Period)
struct temu_TimeSource temu_TimeSource
Definition: Scheduler.h:17
TEMU_API void temu_eventPostCycles(temu_TimeSource *TS, int64_t EvID, int64_t Delta, temu_SyncEvent Sync)
int64_t TriggerCount
Managed: Number of time event has been triggered.
Definition: Events.h:56
int64_t Time
Managed internally, do not touch.
Definition: Events.h:45
TEMU_API void temu_asyncSocketRemove(int Fd, unsigned Flags)
TEMU_API void temu_eventDeschedule(int64_t EvID)
int64_t NextEvent
Definition: Events.h:36
int64_t EventId
Managed internally, do not touch.
Definition: Events.h:46
TEMU_API void temu_eventPostCyclesAbsolute(temu_TimeSource *TS, int64_t EvID, int64_t AbsTime, temu_SyncEvent Sync)
int QueueIdx
Managed internally, do not touch.
Definition: Events.h:48
TEMU_API void temu_eventPostImmediate(temu_TimeSource *TS, int64_t EvID, temu_SyncEvent Sync)
TEMU_API void temu_eventSetRTPeriodNanos(int64_t EvID, int64_t Period)
int64_t Steps
Managed internally, do not touch.
Definition: Events.h:44
void(* temu_ThreadSafeCb)(void *)
Posting callback from other threads.
Definition: Events.h:60
TEMU_API void temu_asyncTimerRemove(int Fd)
TEMU_API int temu_asyncSocketAdd(temu_TimeSource *TS, int Sock, unsigned Flags, void(*CB)(void *), void *Data)
TEMU_API void temu_eventSetRTTime(int64_t EvID, int64_t Time)