struct _msg_info

Информация о сообщении


#include <sys/neutrino.h>
struct _msg_info { /* _msg_info _server_info */
_Uint32t nd; /* client server */
_Uint32t srcnd; /* server - */
pid_t pid; /* client server */
_Int32t tid; /* thread - */
_Int32t chid; /* server server */
_Int32t scoid; /* server server */
_Int32t coid; /* client client */
_Int32t msglen; /* msg - */
_Int32t srcmsglen; /* thread - */
_Int32t dstmsglen; /* thread - */
_Int16t priority; /* thread - */
_Int16t flags; /* - client */
_Uint32t 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 “Дескрипторы узлов” 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. 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.
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.
The priority of the sending thread.
Flags that provide information about the sender and message:
the sending machine is big endian.
the sending machine has a different endian-ness from the receiving machine.
used internally.
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*().

Дескрипторы узлов

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.

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()


ЗОСРВ «Нейтрино»

Тематические ссылки:

struct _server_info, MsgInfo(), MsgRead*(), MsgReceive(), MsgReceivev(), MsgSend*(), MsgWrite*(), ND_NODE_CMP(), netmgr_ndtostr(), netmgr_remote_nd(), netmgr_strtond()

Предыдущий раздел: Описание API системной библиотеки