Структура, описывающая импульс
#include <sys/neutrino.h>
struct _pulse {
uint16_t type;
uint16_t subtype;
int8_t code;
uint8_t zero[3];
union sigval value;
int32_t scoid;
};
Структура _pulse
описывает импульс или неблокирующее сообщение фиксированного платформо-зависимого размера, которое характеризуется несколькими байтами данных и одним байтом с кодом импульса.
| Размер данной структуры варьируется в зависимости от разрядности архитектуры. |
В состав структуры входят:
- type
-
_PULSE_TYPE( 0 )
- subtype
-
_PULSE_SUBTYPE( 0 )
- code
- Код, определяющий тип импульса. В ЗОСРВ «Нейтрино» зарезервированы следующие отрицательные коды:
- _PULSE_CODE_UNBLOCK
- _PULSE_CODE_DISCONNECT
- _PULSE_CODE_THREADDEATH
- _PULSE_CODE_COIDDEATH
- системные импульсы
- _PULSE_CODE_NET_ACK
- _PULSE_CODE_NET_UNBLOCK
- _PULSE_CODE_NET_DETACH
- зарезервировано для менеджера ресурсов io-pkt-*.
Имеется возможность определить свои собственные импульсы с кодом в диапазоне от _PULSE_CODE_MINAVAIL
до _PULSE_CODE_MAXAVAIL
. - value
- Информация, и представляющая передаваемые данные. В соответствии с кодом пульса данные содержат:
- _PULSE_CODE_UNBLOCK
- идентификатор rcvid, связанный с заблокированным сообщением.
- _PULSE_CODE_DISCONNECT
- значение не определено.
- _PULSE_CODE_THREADDEATH
- идентификатор потока, который только что был терминирован.
- _PULSE_CODE_COIDDEATH
- идентификатор соединения, которое было подключено к только что закрытому каналу.
Дополнительные сведения см. в разделе ChannelCreate(). При определении собственных импульсов, можно собственноручно определить информацию, которую необходимо передавать в этом поле. - scoid
- Идентификатор подключения к серверу.
ЗОСРВ «Нейтрино»
ChannelCreate(), MsgReceive(), MsgReceivePulse(), MsgReceivePulsev(), MsgReceivev(), MsgSendPulse(), struct _pulse32, struct _pulse64, struct sigevent, union sigval, union __sigval32, union __sigval64
Предыдущий раздел: Описание API системной библиотеки