T-EMU  2
The Terma Emulator
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Events.h
Go to the documentation of this file.
1 #ifndef TEMU_EVENTS_H
2 #define TEMU_EVENTS_H
3 
4 #include <stdint.h>
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 void* temu_allocateEventQueue(void);
12 void temu_disposeEventQueue(void *Queue);
13 
14 int64_t temu_triggerCurrentTimers(void *Queue, int64_t Srt);
15 
16 int64_t temu_nextTimer(void *Queue);
17 
18 void temu_postEvent(void *Queue, void (*callback)(void *Queue, void *Data),
19  void *Data, uint64_t Time);
20 
21 void temu_stackEvent(void *Queue, void (*callback)(void *Queue, void *Data),
22  void *Data);
23 /*
24  \brief Get the next time stamp for the given callback function.
25  */
26 int64_t temu_eventTime(void *Queue, void (*callback)(void *Queue, void *Data),
27  void *Obj);
28 
29 void temu_descheduleEvent(void *Queue,
30  void (*callback)(void *Queue, void *Data), void *Obj);
31 
32 typedef struct {
33  void (*stackPostEvent)(void *Obj, void (*Ev)(void *, void *), void *Data);
34 
35  void (*postDeltaEvent)(void *Obj, void (*Ev)(void *, void *), void *Data,
36  int64_t Cycles);
37 
38  void (*postAbsoluteEvent)(void *Obj, void (*Ev)(void *, void *), void *Data,
39  int64_t Cycles);
40  int64_t (*getEventDeltaTime)(void *Obj, void (*Ev)(void *, void *), void *Data);
41  int64_t (*getEventAbsoluteTime)(void *Obj, void (*Ev)(void *, void *), void *Data);
42  void (*descheduleEvent)(void *Obj, void (*Ev)(void *, void *), void *Data);
43  void (*registerEvent)(void *Obj, const char *EvName, void (*Ev)(void *, void *));
45 
46 OBJSYS_OBJ_TYPE(temu_Event);
47 
48 // Serialisation support
49 void temu_registerEvent(void *Queue, const char *Name,
50  void (*Callback)(void *Queue, void *Data));
51 void temu_serialiseEvents(void *Obj, void *Ctxt);
52 void temu_deserialiseEvents(void *Obj, void *Ctxt);
53 
54 #ifdef __cplusplus
55 }
56 #endif
57 
58 #endif /* ! TEMU_EVENTS_H */
void temu_serialiseEvents(void *Obj, void *Ctxt)
void temu_descheduleEvent(void *Queue, void(*callback)(void *Queue, void *Data), void *Obj)
#define OBJSYS_OBJ_TYPE(N)
Definition: Objsys.h:74
int64_t temu_eventTime(void *Queue, void(*callback)(void *Queue, void *Data), void *Obj)
void * temu_allocateEventQueue(void)
void temu_postEvent(void *Queue, void(*callback)(void *Queue, void *Data), void *Data, uint64_t Time)
void temu_registerEvent(void *Queue, const char *Name, void(*Callback)(void *Queue, void *Data))
int64_t temu_triggerCurrentTimers(void *Queue, int64_t Srt)
void temu_stackEvent(void *Queue, void(*callback)(void *Queue, void *Data), void *Data)
void temu_deserialiseEvents(void *Obj, void *Ctxt)
void temu_disposeEventQueue(void *Queue)
int64_t temu_nextTimer(void *Queue)