add flag for spinning tasks
[AROS.git] / compiler / include / exec / ports.h
blob2a438c31ce7ccf2593d3cb67f041016a432f18c2
1 #ifndef EXEC_PORTS_H
2 #define EXEC_PORTS_H
4 /*
5 Copyright © 1995-2014, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Message ports and messages
9 Lang: english
12 #ifndef EXEC_NODES_H
13 # include "exec/nodes.h"
14 #endif
15 #ifndef EXEC_LISTS_H
16 # include "exec/lists.h"
17 #endif
19 /* MsgPort */
20 struct MsgPort
22 struct Node mp_Node;
23 UBYTE mp_Flags;
24 UBYTE mp_SigBit; /* Signal bit number */
25 void * mp_SigTask; /* Object to be signalled */
26 struct List mp_MsgList; /* Linked list of messages */
29 #define mp_SoftInt mp_SigTask /* Alias */
31 /* mp_Flags: Port arrival actions (PutMsg) */
32 #define PF_ACTION 7 /* Mask */
34 #define PA_SIGNAL 0 /* Signal task in mp_SigTask */
35 #define PA_SOFTINT 1 /* Signal SoftInt in mp_SoftInt/mp_SigTask */
36 #define PA_IGNORE 2 /* Ignore arrival */
38 #define PA_CALL 3 /* Call function in mp_SigTask. This was never
39 documented on AmigaOS and was never defined
40 but would work for mp_Flags == 3 */
42 /* Message */
43 struct Message
45 struct Node mn_Node;
46 struct MsgPort * mn_ReplyPort; /* message reply port */
47 UWORD mn_Length; /* total message length, in bytes */
48 /* (include the size of the Message
49 structure in the length) */
52 #endif /* EXEC_PORTS_H */