revert between 56095 -> 55830 in arch
[AROS.git] / compiler / include / exec / ports.h
blob53ec8c5427869e9fbcedfdb14ee5534ecfea6581
1 #ifndef EXEC_PORTS_H
2 #define EXEC_PORTS_H
4 /*
5 Copyright © 1995-2017, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Message ports and messages
9 Lang: english
12 #include <aros/config.h>
14 #ifndef EXEC_NODES_H
15 # include "exec/nodes.h"
16 #endif
17 #ifndef EXEC_LISTS_H
18 # include "exec/lists.h"
19 #endif
20 #if defined(__AROSPLATFORM_SMP__)
21 #include <aros/types/spinlock_s.h>
22 #endif
24 /* MsgPort */
25 struct MsgPort
27 struct Node mp_Node;
28 UBYTE mp_Flags;
29 UBYTE mp_SigBit; /* Signal bit number */
30 void * mp_SigTask; /* Object to be signalled */
31 struct List mp_MsgList; /* Linked list of messages */
32 #if defined(__AROSPLATFORM_SMP__)
33 #if defined(__AROSEXEC_SMP__)
34 spinlock_t mp_SpinLock;
35 #else
36 spinlock_t mp_Pad;
37 #endif
38 #endif
41 #define mp_SoftInt mp_SigTask /* Alias */
43 /* mp_Flags: Port arrival actions (PutMsg) */
44 #define PF_ACTION 7 /* Mask */
46 #define PA_SIGNAL 0 /* Signal task in mp_SigTask */
47 #define PA_SOFTINT 1 /* Signal SoftInt in mp_SoftInt/mp_SigTask */
48 #define PA_IGNORE 2 /* Ignore arrival */
50 #define PA_CALL 3 /* Call function in mp_SigTask. This was never
51 documented on AmigaOS and was never defined
52 but would work for mp_Flags == 3 */
54 /* Message */
55 struct Message
57 struct Node mn_Node;
58 struct MsgPort * mn_ReplyPort; /* message reply port */
59 UWORD mn_Length; /* total message length, in bytes */
60 /* (include the size of the Message
61 structure in the length) */
64 #endif /* EXEC_PORTS_H */