type
    Node_t = unknown 14,
    List_t = unknown 14,

    MsgPort_t = struct {
	Node_t mp_Node;
	short mp_Flags;
	short mp_SigBit;
	*Task_t mp_SigTask;
	List_t mp_MsgList;
    };

byte
    PF_ACTION	      = 3,

    PA_SIGNAL	      = 0,
    PA_SOFTINT	      = 1,
    PA_IGNORE	      = 2;

type
    Message_t = struct {
	Node_t mn_Node;
	*MsgPort_t mn_ReplyPort;
	uint mn_Length;
    };

extern
    AddPort(*MsgPort_t port)void,
    CreatePort(*char name; short pri)*MsgPort_t,
    DeletePort(*MsgPort_t port)void,
    FindPort(*char name)*MsgPort_t,
    GetMsg(*MsgPort_t port)*Message_t,
    PutMsg(*MsgPort_t port; *Message_t msg)void,
    RemPort(*MsgPort_t port)void,
    ReplyMsg(*Message_t msg)void,
    WaitPort(*MsgPort_t port)*Message_t;
