[Contents] [index] [Help] [Retrace] [browse <] [Browse >]

As mentioned earlier, a message contains both system header information
and the actual message content.  The system header is of the Message form
defined in <exec/ports.h> and <exec/ports.i>.  in c this structure is as
follows:

    struct Message {
        struct Node     mn_Node;
        struct MsgPort *mn_ReplyPort;
        UWORD           mn_Length;
    };

mn_Node
    is a standard node structure used for port linkage.

mn_ReplyPort
    is used to indicate a port to which this message will be returned
    when a reply is necessary.

mn_Length
    indicates the total length of the message, including the Message
    structure itself.

This structure is always attached to the head of all messages.  For
example, if you want a message structure that contains the x and y
coordinates of a point on the screen, you could define it as follows:

    struct XYMessage {
        struct Message xy_Msg;
        UWORD          xy_X;
        UWORD          xy_Y;
    }

For this structure, the mn_Length field should be set to sizeof(struct
XYMessage).

 putting a message        getting a message 
 waiting for a message    replying