1 #ifndef _AROS_HOSTTHREAD_H
2 #define _AROS_HOSTTHREAD_H
5 #include <exec/nodes.h>
8 /* Just to let the compiler know what is it */
11 struct MinNode
* mln_Succ
,
15 #define HT_GetMsg() THandle->HTIFace->GetMsg(THandle)
16 #define HT_CauseInterrupt(data) THandle->HTIFace->CauseInterrupt(THandle, data)
22 struct HostThreadInterface
24 void *(*GetMsg
)(struct ThreadHandle
*th
);
25 void *(*CauseInterrupt
)(struct ThreadHandle
*th
, void *data
);
30 struct MinNode node
; /* A node to add the handle to internal list */
31 void *handle
; /* Host OS raw thread handle, can be used to manipulate the thread */
32 unsigned long id
; /* Thread ID, another thing used in some OSes */
33 struct HostThreadInterface
*HTIFace
; /* A pointer to host-side API */
34 unsigned long (*entry
)(struct ThreadHandle
*th
); /* Thread entry point */
35 void *data
; /* User-defined data passed to the thread */
36 /* Private data follows, do not rely on the size! */