#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 */