Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ putnextctl1(D3DK) — Motorola System V 88k Release 4 Version 4.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

putnextctl1(D3DK)  —  

.IX \f4putnextctl1\fP(D3DK)

NAME

putnextctl1 − send a control message with a one byte parameter to a queue

SYNOPSIS

#include <sys/stream.h>
int putnextctl1(queue_t ∗q, int type, int param);

ARGUMENTS

qPointer to the queue from which the message is to be sent. 

typeMessage type (must be control type). 

paramOne byte parameter. 

DESCRIPTION

putnextctl1 tests the type argument to make sure a data type has not been specified, and then attempts to allocate a message block.  putnextctl1 fails if type is M_DATA, M_PROTO, or M_PCPROTO, or if a message block cannot be allocated.  If successful, putnextctl calls the put(D2DK) procedure of the queue pointed to by q->q_next, passing it the allocated message with the one byte parameter specified by param. 

RETURN VALUE

Upon successful completion, putnextctl1 returns 1.  If type is a data type, or if a message block cannot be allocated, 0 is returned. 

LEVEL

Base or Interrupt. 

NOTES

Does not sleep. 

Driver defined basic locks, read/write locks, and sleep locks may not be held across calls to this function. 

The q argument to putctl1(D3DK) and putnextctl1 may not reference q_next (for example, an argument of q->q_next is erroneous on a multiprocessor and is disallowed by the DDI/DKI).  putnextctl1(q, type, param) is provided as a multiprocessor-safe equivalent to the common call putctl1(q->q_next, type, param), which is no longer allowed. 

SEE ALSO

put(D2DK), put(D3DK), putctl(D3DK), putctl1(D3DK), putnextctl(D3DK)

EXAMPLE

See putnextctl(D3DK) for an example of putnextctl1. 

DDI/DKI  —  STREAMS

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026