Information about a message
Synopsis:
#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;
};
Description:
The _msg_info structure contains information about a message.
The members include:
-
nd
- The node descriptor of the client machine as viewed by the server.
See
"
Node descriptors,"
below.
-
srcnd
- The node descriptor of the server, as viewed by the client.
-
pid
- The process ID of the sending thread.
-
tid
- The thread ID of the sending thread.
-
chid
- The channel ID that the message was received on.
-
scoid
- The server connection ID.
This is a unique server-side client process identifier, corresponding to
a particular process ID on a particular node.
-
coid
- The client connection ID.
-
msglen
- The number of bytes received.
-
srcmsglen
- The length of the source message, in bytes, as sent by
MsgSend*().
This may be greater than the value in msglen.
This member is valid only if you set _NTO_CHF_SENDER_LEN in
the flags argument to
ChannelCreate()
for the channel that received the message.
-
dstmsglen
- The length of the client's reply buffer, in bytes, as passed to
MsgSend*().
This member is valid only if you set _NTO_CHF_REPLY_LEN in
the flags argument to
ChannelCreate()
for the channel that received the message.
-
priority
- The priority of the sending thread.
-
flags
- Flags that provide information about the sender and message:
-
_NTO_MI_ENDIAN_BIG — the sending machine is
big endian.
-
_NTO_MI_ENDIAN_DIFF — the sending machine has
a different endian-ness from the receiving machine.
-
_NTO_MI_CONSTRAINED — the message was
received from a resource-constrained client. A thread that allocates
resource on behalf of a constrained client should temporarily constrain
itself too; see Resource constraint thresholds in the
Processes chapter of the BlackBerry 10 OS
Programmer's Guide.
-
_NTO_MI_NET_CRED_DIRTY — used internally.
-
_NTO_MI_UNBLOCK_REQ — the client has an unblock
pending
(i.e. a timeout on the send occurred or a signal was delivered and
_NTO_CHF_UNBLOCK is set on the channel).
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.