#ifndef EXEC_PORTS_H #define EXEC_PORTS_H /* ** $Filename: exec/ports.h $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 36.5 $ ** $Date: 90/05/10 $ ** ** Message ports and Messages. ** ** (C) Copyright 1985-1999 Amiga, Inc. ** All Rights Reserved */ #ifndef EXEC_NODES_H #include "exec/nodes.h" #endif /* EXEC_NODES_H */ #ifndef EXEC_LISTS_H #include "exec/lists.h" #endif /* EXEC_LISTS_H */ #ifndef EXEC_TASKS_H #include "exec/tasks.h" #endif /* EXEC_TASKS_H */ /****** MsgPort *****************************************************/ struct MsgPort { struct Node mp_Node; UBYTE mp_Flags; UBYTE mp_SigBit; /* signal bit number */ void *mp_SigTask; /* object to be signalled */ struct List mp_MsgList; /* message linked list */ }; #define mp_SoftInt mp_SigTask /* Alias */ /* mp_Flags: Port arrival actions (PutMsg) */ #define PF_ACTION 3 /* Mask */ #define PA_SIGNAL 0 /* Signal task in mp_SigTask */ #define PA_SOFTINT 1 /* Signal SoftInt in mp_SoftInt/mp_SigTask */ #define PA_IGNORE 2 /* Ignore arrival */ /****** Message *****************************************************/ struct Message { struct Node mn_Node; struct MsgPort *mn_ReplyPort; /* message reply port */ UWORD mn_Length; /* total message length, in bytes */ /* (include the size of the Message */ /* structure in the length) */ }; #endif /* EXEC_PORTS_H */