Information about a message


#include <sys/neutrino.h>

struct _msg_info {        /* _msg_info    _server_info */
    uint32_t  nd;         /*  client      server */
    uint32_t  srcnd;      /*  server      n/a */
    pid_t     pid;        /*  client      server */
    int32_t   tid;        /*  thread      n/a */
    int32_t   chid;       /*  server      server */
    int32_t   scoid;      /*  server      server */
    int32_t   coid;       /*  client      client */
    int32_t   msglen;     /*  msg         n/a */
    int32_t   srcmsglen;  /*  thread      n/a */
    int32_t   dstmsglen;  /*  thread      n/a */
    int16_t   priority;   /*  thread      n/a */
    int16_t   flags;      /*  n/a         client */
    uint32_t  reserved;


The _msg_info structure contains information about a message. The members include:

The node descriptor of the client machine as viewed by the server. See Node descriptors,” below.
The node descriptor of the server, as viewed by the client.
The process ID of the sending thread.
The thread ID of the sending thread.
The channel ID that the message was received on.
The server connection ID. This is a unique server-side client process identifier, corresponding to a particular process ID on a particular node.
The client connection ID.
The number of bytes received.
The length of the source message, in bytes, as sent by MsgSend*(). This may be greater than the value in msglen.
The length of the client's reply buffer, in bytes, as passed to MsgSend*().
The priority of the sending thread.
Flags that provide information about the sender and message:

Note: The msglen and srcmsglen members are valid only until the next call to MsgRead*() or MsgWrite*().

If msglen is less than srcmsglen and is also less than the receive buffer size, the message is a network transaction that requires more reading of data with MsgRead*().

Node descriptors

The nd (node descriptor) is a temporary numeric description of a remote node; ND_LOCAL_NODE (or 0) is the descriptor for the local node. For more information, see the Qnet Networking chapter of the System Architecture guide.

To: Use this function:
Compare two nd objects ND_NODE_CMP()
Convert a nd to text netmgr_ndtostr()
Convert text to a nd netmgr_strtond()


QNX Neutrino

See also:

MsgInfo(), MsgReceive(), MsgReceivev(), ND_NODE_CMP(), netmgr_ndtostr(), netmgr_remote_nd(), netmgr_strtond()

Message Passing chapter of Getting Started with QNX Neutrino