Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ putctl1(D3) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought






       putctl1(D3)                                              putctl1(D3)


       NAME
             putctl1 - send a control message with a one-byte parameter to
             a queue

       SYNOPSIS
             #include <sys/stream.h>
             #include <sys/ddi.h>
             int putctl1(queue_t *q, int type, int param);

          Arguments
             q         Pointer to the queue to which the message is to be
                       sent.

             type      Message type (must be a control type).

             param     One-byte parameter.

       DESCRIPTION
             putctl1, like putctl(D3), tests the type argument to make sure
             a data type has not been specified, and attempts to allocate a
             message block.  The param parameter can be used, for example,
             to specify the signal number when an M_PCSIG message is being
             sent.  putctl1 fails if type is M_DATA, M_PROTO, or M_PCPROTO,
             or if a message block cannot be allocated.  If successful,
             putctl1 calls the put(D2) routine of the queue pointed to by
             q, passing it the allocated message.

          Return Values
             On success, 1 is returned.  Otherwise, if type is a data type,
             or if a message block cannot be allocated, 0 is returned.

       USAGE
             In multithreaded drivers, the q argument to putctl1 and
             putnextctl1(D3) may not reference q_next (for example, an
             argument of q->q_next is erroneous in a multithreaded driver
             and is disallowed by the DDI/DKI).  putnextctl1(q, type) is
             provided as a multiprocessor-safe equivalent to the common
             call putctl1(q->q_next, type), which is no longer allowed.

          Level
             Base or Interrupt.

          Synchronization Constraints
             Does not sleep.




                           Copyright 1994 Novell, Inc.               Page 1













      putctl1(D3)                                              putctl1(D3)


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

            The caller cannot have the stream frozen [see freezestr(D3)]
            when calling this function.

         Examples
            See putctl(D3) for an example of putctl1.

      REFERENCES
            put(D2), put(D3), putctl(D3), putnextctl(D3), putnextctl1(D3)

      NOTICES
         Portability
            All processors

         Applicability
            ddi: 1, 2, 3, 4, 5, 5mp, 6, 6mp, 7, 7mp






























                          Copyright 1994 Novell, Inc.               Page 2








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