STREAMS Programming Guide
    
A
 
 accessing queue information, strqget ( Index Term Link )
 
 adb ( Index Term Link )
 
 adjmsg ( Index Term Link )
 
 administration tools
  strace ( Index Term Link )
  strerr ( Index Term Link )
  strlog ( Index Term Link )
  strqget ( Index Term Link )
  strqset ( Index Term Link )
 
 allocate header for output message, example ( Index Term Link )
 
 allocb ( Index Term Link )
  example ( Index Term Link )
 
 anchor ( Index Term Link )
 
 anchors ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  client ( Index Term Link )
  lock ( Index Term Link )
  privilege ( Index Term Link )
  server ( Index Term Link )
 
 append a character to a message block, example ( Index Term Link )
 
 asynchronous callback functions, perimeter ( Index Term Link )
 
 asynchronous input/output, in polling ( Index Term Link )
 
 AT&T STREAMS ( Index Term Link )
 
 autopush ( Index Term Link ) ( Index Term Link )
 
 autopush configuration file, example ( Index Term Link )
    
B
 
 b_band ( Index Term Link )
  placement ( Index Term Link )
 
 b_next ( Index Term Link )
 
 b_prev ( Index Term Link )
 
 b_rptr ( Index Term Link )
 
 b_wptr ( Index Term Link )
 
 back-enable of a queue ( Index Term Link )
 
 background job, in job control ( Index Term Link )
 
 backq ( Index Term Link )
 
 bandinfo structure
  example ( Index Term Link )
  flush band priority ( Index Term Link )
 
 bcanput ( Index Term Link )
 
 bidirectional transfer
  example ( Index Term Link ) ( Index Term Link )
 
 boundary, data and message ( Index Term Link )
 
 bp ( Index Term Link )
 
 bp->b_rptr ( Index Term Link )
 
 bp->b_wptr ( Index Term Link )
 
 breaking stream connections for loop-around device, example ( Index Term Link )
 
 bufcall ( Index Term Link ) ( Index Term Link )
  releasing callback requests ( Index Term Link )
    
C
 
 canput ( Index Term Link )
 
 cb_ops structure
  character and block device information ( Index Term Link )
  driver entry point ( Index Term Link )
  driver entry points for non-STREAMS drivers ( Index Term Link )
 
 check module type, regular driver, module, or cloneable driver ( Index Term Link )
 
 check/print module list ( Index Term Link )
 
 cloning (STREAMS) ( Index Term Link )
 
 close, dismantling the stream ( Index Term Link )
 
 close a module, example ( Index Term Link )
 
 cmn_err, message strings ( Index Term Link )
 
 compile, assemble and link commands, example ( Index Term Link )
 
 configuration entry point
  STREAMS driver ( Index Term Link ) ( Index Term Link )
 
 connld ( Index Term Link ) ( Index Term Link )
 
 controlling terminal ( Index Term Link )
 
 copy data from user space to kernel space, example ( Index Term Link )
 
 copymsg ( Index Term Link )
 
 crash ( Index Term Link )
  dbfree ( Index Term Link )
  dblock ( Index Term Link )
  linkblk ( Index Term Link )
  mbfree ( Index Term Link )
  mblock ( Index Term Link )
  pty ( Index Term Link )
  qrun ( Index Term Link )
  queue ( Index Term Link )
  stream ( Index Term Link )
  strstat ( Index Term Link )
  tty ( Index Term Link )
 
 create priority band message ( Index Term Link )
    
D
 
 DARAM
  allocation ( Index Term Link )
  freeing ( Index Term Link )
  memory shared by kernel and I/O card ( Index Term Link )
 
 data and message boundaries
  RMODEMASK ( Index Term Link )
  RMSGD ( Index Term Link )
  RMSGN ( Index Term Link )
  RNORM ( Index Term Link )
 
 Data Link Provider Interfaces ( Index Term Link )
 
 datab structure ( Index Term Link )
  example ( Index Term Link )
 
 datamsg ( Index Term Link )
 
 db_base ( Index Term Link )
 
 DDI, Device Driver Interface ( Index Term Link )
 
 ddi_copyin ( Index Term Link )
 
 ddi_copyout ( Index Term Link )
 
 declarations for the loop-around driver, example ( Index Term Link )
 
 definitions of priority band fields, example ( Index Term Link )
 
 dev_ops structure
  driver entry point ( Index Term Link )
  represents a specific class or type of device ( Index Term Link )
 
 device driver
  character device ( Index Term Link )
  definition ( Index Term Link )
  device types ( Index Term Link )
  STREAMS driver characteristics ( Index Term Link )
 
 device interrupt handler, example ( Index Term Link )
 
 difference between driver and a module ( Index Term Link )
 
 DLPI ( Index Term Link )
 
 driver
  ioctl control ( Index Term Link )
  STREAMS ( Index Term Link ) ( Index Term Link )
 
 driver configuration entry points, example ( Index Term Link )
 
 driver entry point
  cb_ops structure ( Index Term Link )
  dev_ops structure ( Index Term Link )
  load kernel module ( Index Term Link )
  streamtab ( Index Term Link )
 
 driver entry points ( Index Term Link )
 
 driver flush handling, example ( Index Term Link )
 
 driver interrupt, STREAMS driver ( Index Term Link )
 
 driver interrupt handling, example ( Index Term Link )
 
 dupb ( Index Term Link )
 
 dupmsg ( Index Term Link )
    
E
 
 ECHOCTL ( Index Term Link )
 
 empty pipe
  user process attempts read ( Index Term Link )
  user process attempts write ( Index Term Link )
 
 enableok ( Index Term Link )
 
 entry point
  close ( Index Term Link )
  open ( Index Term Link )
 
 error event
  POLLERR ( Index Term Link )
  POLLHUP ( Index Term Link )
  POLLNVAL ( Index Term Link )
 
 error events, polling ( Index Term Link )
 
 esballoc ( Index Term Link ) ( Index Term Link )
  example ( Index Term Link )
 
 esballoc(9F), outstanding callbacks from ( Index Term Link )
 
 EUC handling in ldterm ( Index Term Link )
 
 EUC header file, example ( Index Term Link )
 
 event polling ( Index Term Link )
  example ( Index Term Link )
 
 explicit locks
  message ordering ( Index Term Link )
  module ( Index Term Link )
 
 explicit locks, constraints, module ( Index Term Link )
 
 extended STREAMS buffers ( Index Term Link ) ( Index Term Link )
  allocation ( Index Term Link )
  freeing ( Index Term Link )
    
F
 
 fattach ( Index Term Link )
 
 fdetach ( Index Term Link )
 
 FIFO (STREAMS) ( Index Term Link )
  basic operations ( Index Term Link )
  flush ( Index Term Link ) ( Index Term Link )
 
 file descriptor passing ( Index Term Link )
 
 filter module, example ( Index Term Link )
 
 flow control ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  check existence of message of particular priority ( Index Term Link )
  check if certain band is writable ( Index Term Link )
  check if message is marked ( Index Term Link )
  expedited data ( Index Term Link )
  get priority of first message ( Index Term Link )
  in line discipline module ( Index Term Link )
  in module ( Index Term Link ) ( Index Term Link )
  processing of ordinary message ( Index Term Link )
  routines ( Index Term Link ) ( Index Term Link )
  test for ( Index Term Link )
 
 flush handling
  description ( Index Term Link ) ( Index Term Link )
  flags ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  in driver ( Index Term Link )
  line discipline ( Index Term Link )
  pipes and FIFOs ( Index Term Link )
 
 flush handling, priority band data, example ( Index Term Link )
 
 flush handling, read side, example ( Index Term Link )
 
 flush handling, write side, example ( Index Term Link )
 
 flushband ( Index Term Link )
 
 flushing a queue, part 1, example ( Index Term Link )
 
 flushing priority band data ( Index Term Link )
  description ( Index Term Link )
 
 flushing stream data
  arguments passed to M_FLUSH ( Index Term Link )
  description ( Index Term Link )
 
 flushq ( Index Term Link ) ( Index Term Link )
 
 fmodsw structure ( Index Term Link )
 
 foreground job, in job control ( Index Term Link )
 
 free routine ( Index Term Link )
 
 freeb ( Index Term Link )
 
 freemsg ( Index Term Link )
 
 freezestr ( Index Term Link )
 
 frequently asked IP interface questions ( Index Term Link )
 
 full-duplex processing ( Index Term Link )
    
G
 
 get stream module list, example ( Index Term Link )
 
 getq ( Index Term Link )
 
 grantpt ( Index Term Link )
  with pseudo-tty driver ( Index Term Link )
    
H
 
 hardening advice
  canputnext ( Index Term Link )
  copyb ( Index Term Link )
  copymsg ( Index Term Link )
  db_ref > 1 ( Index Term Link )
  dupb ( Index Term Link )
  dupmsg ( Index Term Link )
  ensure uniform changing of pointers ( Index Term Link )
  incorrect user data ( Index Term Link )
  proper bit alignment ( Index Term Link )
  putnext ( Index Term Link ) ( Index Term Link )
  qprocson ( Index Term Link )
  removing an anchor ( Index Term Link )
  retain db_base <= b_rptr <= b_wptr <= db_lim ( Index Term Link )
  strqget ( Index Term Link )
  strqset ( Index Term Link )
 
 hardware emulation module ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 high-priority message ( Index Term Link ) ( Index Term Link )
  M_COPYIN ( Index Term Link )
  M_COPYOUT ( Index Term Link )
  M_ERROR ( Index Term Link )
  M_FLUSH ( Index Term Link )
  M_HANGUP ( Index Term Link )
  M_IOCACK ( Index Term Link )
  M_IOCDATA ( Index Term Link )
  M_IOCNAK ( Index Term Link )
  M_PCPROTO ( Index Term Link )
  M_PCRSE ( Index Term Link )
  M_PCSIG ( Index Term Link )
  M_READ ( Index Term Link )
  M_STOP ( Index Term Link )
  M_STOPI ( Index Term Link )
  M_UNHANGUP ( Index Term Link )
  SO_MREADOFF ( Index Term Link )
  SO_MREADOFI ( Index Term Link )
    
I
 
 I_ANCHOR ( Index Term Link ) ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 I_LIST ioctl, example ( Index Term Link )
 
 I_SETSIG event
  S_BANDURG ( Index Term Link )
  S_ERROR ( Index Term Link )
  S_HANGUP ( Index Term Link )
  S_HIPRI ( Index Term Link )
  S_INPUT ( Index Term Link )
  S_MSG ( Index Term Link )
  S_OUTPUT ( Index Term Link )
  S_RDBAND ( Index Term Link )
  S_RDNORM ( Index Term Link )
  S_WRBAND ( Index Term Link )
  S_WRNORM ( Index Term Link )
 
 infinite loop, service procedure ( Index Term Link )
 
 initialization entry point, STREAMS driver ( Index Term Link )
 
 initialization entry points, example ( Index Term Link )
 
 initialization routines for the loop-around driver, example ( Index Term Link )
 
 input/output polling ( Index Term Link ) ( Index Term Link )
 
 insq, insq ( Index Term Link )
 
 inter_rcv, example ( Index Term Link )
 
 inter_snd, send data to service provider, example ( Index Term Link )
 
 interrupt handler, STREAMS driver ( Index Term Link )
 
 iocblk structure ( Index Term Link )
  example ( Index Term Link )
  with M_IOCTL ( Index Term Link )
 
 ioctl ( Index Term Link )
  command summary ( Index Term Link )
  EUC_WSET ( Index Term Link )
  general processing ( Index Term Link ) ( Index Term Link )
  handled by ptem ( Index Term Link )
  hardware emulation module ( Index Term Link )
  I_ANCHOR ( Index Term Link ) ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  I_ATMARK ( Index Term Link ) ( Index Term Link )
  I_CANPUT ( Index Term Link ) ( Index Term Link )
  I_CKBAND ( Index Term Link ) ( Index Term Link )
  I_FDINSERT ( Index Term Link )
  I_FIND ( Index Term Link )
  I_FLUSH ( Index Term Link ) ( Index Term Link )
  I_FLUSHBAND ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  I_GETBAND ( Index Term Link ) ( Index Term Link )
  I_GETCLTIME ( Index Term Link )
  I_GRDOPT ( Index Term Link )
  I_GWROPT ( Index Term Link ) ( Index Term Link )
  I_LINK ( Index Term Link ) ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  I_LIST ( Index Term Link )
  I_LOOK ( Index Term Link )
  I_NREAD ( Index Term Link )
  I_PEEK ( Index Term Link )
  I_PLINK ( Index Term Link ) ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  I_POP ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  I_PUNLINK ( Index Term Link ) ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  I_PUSH ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  I_RECVFD ( Index Term Link ) ( Index Term Link )
  I_SENDFD ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  I_SETCLTIME ( Index Term Link )
  I_SETSIG ( Index Term Link )
  I_SETSIG events ( Index Term Link )
  I_SRDOPT ( Index Term Link ) ( Index Term Link )
  I_STR ( Index Term Link )
  I_STR processing ( Index Term Link )
  I_SWROPT ( Index Term Link ) ( Index Term Link )
  I_UNLINK ( Index Term Link ) ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  ISPTM ( Index Term Link )
  _RECVFD ( Index Term Link )
  SAD_GAP ( Index Term Link )
  SAD_SAP ( Index Term Link )
  SAP_ALL ( Index Term Link )
  SAP_CLEAR ( Index Term Link )
  SAP_ONE ( Index Term Link )
  SAP_RANGE ( Index Term Link )
  SIOCSPGRP ( Index Term Link )
  supported by ldterm ( Index Term Link )
  supported by master driver ( Index Term Link )
  TIOCREMOTE ( Index Term Link )
  TIOCSIGNAL ( Index Term Link )
  TIOCSPGRP ( Index Term Link )
  transparent ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  transparent processing ( Index Term Link )
  UNLKPT ( Index Term Link )
  user context ( Index Term Link )
 
 isastream ( Index Term Link )
    
J
 
 job control ( Index Term Link ) ( Index Term Link )
  background process group ( Index Term Link )
  controlling process ( Index Term Link )
  controlling terminal ( Index Term Link )
  foreground process group ( Index Term Link )
  orphaned process group ( Index Term Link )
  process group ( Index Term Link )
  process group leader ( Index Term Link )
  process group lifetime ( Index Term Link )
  process ID ( Index Term Link )
  process lifetime ( Index Term Link )
  session ( Index Term Link )
  session ID ( Index Term Link )
  session leader ( Index Term Link )
  session lifetime ( Index Term Link )
  SUSP character ( Index Term Link )
  terminology ( Index Term Link ) ( Index Term Link )
  TOSTOP flag ( Index Term Link )
    
K
 
 kadb ( Index Term Link )
 
 kernel data structures
  ch_ops ( Index Term Link )
  dev_ops ( Index Term Link )
  modldrv ( Index Term Link )
  modlinkage ( Index Term Link )
  modlstrmod ( Index Term Link )
  qinit ( Index Term Link )
  streamtab ( Index Term Link )
 
 /kernel/drv, loading device drivers ( Index Term Link )
 
 /kernel/strmod, loading module ( Index Term Link )
 
 kernel utilities ( Index Term Link )
  adjmsg ( Index Term Link )
  allocb ( Index Term Link )
  backq ( Index Term Link )
  bcanput ( Index Term Link )
  bufcall ( Index Term Link )
  canput ( Index Term Link )
  copymsg ( Index Term Link )
  datamsg ( Index Term Link )
  dupb ( Index Term Link )
  dupmsg ( Index Term Link )
  enableok ( Index Term Link )
  esballoc ( Index Term Link )
  flushband ( Index Term Link )
  flushq ( Index Term Link )
  freeb ( Index Term Link )
  freemsg ( Index Term Link )
  freezestr ( Index Term Link )
  getq ( Index Term Link )
  linkb ( Index Term Link )
  msgdsize ( Index Term Link )
  noenable ( Index Term Link )
  otherq ( Index Term Link )
  pullupmsg ( Index Term Link )
  putbq ( Index Term Link )
  putctl ( Index Term Link )
  putctl1 ( Index Term Link )
  putnext ( Index Term Link )
  putq ( Index Term Link )
  qbufcall ( Index Term Link )
  qprocsoff ( Index Term Link )
  qprocson ( Index Term Link )
  qreply ( Index Term Link )
  qsize ( Index Term Link )
  qtimeout ( Index Term Link )
  qunbufcall ( Index Term Link )
  quntimeout ( Index Term Link )
  qwait ( Index Term Link )
  qwait_sig ( Index Term Link )
  qwriter ( Index Term Link )
  RD ( Index Term Link )
  rmvb ( Index Term Link )
  rmvq ( Index Term Link )
  strlog ( Index Term Link )
  strqget ( Index Term Link )
  strqset ( Index Term Link )
  testb ( Index Term Link )
  unbufcall ( Index Term Link )
  unfreezestr ( Index Term Link )
  unlinkb ( Index Term Link )
  WR ( Index Term Link )
    
L
 
 ldterm ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  M_SETOPTS ( Index Term Link )
  read-side messages ( Index Term Link )
  write side ( Index Term Link )
 
 LIFO, module add/remove ( Index Term Link )
 
 line discipline module
  close ( Index Term Link )
  description ( Index Term Link )
  in job control ( Index Term Link )
  in pseudo-tty subsystem ( Index Term Link )
  ioctl ( Index Term Link )
 
 line discipline module for flush handling, example ( Index Term Link )
 
 line printer driver
  example ( Index Term Link )
  header file declarations ( Index Term Link )
 
 linkb ( Index Term Link )
 
 linking messages ( Index Term Link )
 
 list a stream's drivers and modules, example ( Index Term Link )
 
 load kernel module, driver entry point ( Index Term Link )
 
 loop-around driver flow control, example ( Index Term Link )
    
M
 
 M_BREAK ( Index Term Link )
 
 M_COPYIN ( Index Term Link )
 
 M_COPYOUT ( Index Term Link )
  transparent ioctl example ( Index Term Link )
  with M_IOCTL ( Index Term Link )
 
 M_COPYOUT using transparent ioctl, example ( Index Term Link )
 
 M_CTL ( Index Term Link )
  M_STOP ( Index Term Link )
  SO_MREADOFF ( Index Term Link )
  with line discipline module ( Index Term Link )
 
 M_DATA ( Index Term Link )
 
 M_DELAY ( Index Term Link )
 
 M_ERROR ( Index Term Link )
 
 M_FLUSH ( Index Term Link )
  flags ( Index Term Link )
  flush read and write queues ( Index Term Link )
  flush read side of stream ( Index Term Link )
  flush write side of stream ( Index Term Link )
  FLUSHR ( Index Term Link )
  FLUSHRW ( Index Term Link )
  FLUSHW ( Index Term Link )
  in module example ( Index Term Link )
  packet mode ( Index Term Link )
 
 M_FLUSH message handling, description ( Index Term Link )
 
 M_HANGUP ( Index Term Link )
 
 M_IOCACK ( Index Term Link )
  with M_COPYOUT ( Index Term Link )
  with M_IOCTL ( Index Term Link )
 
 M_IOCDATA ( Index Term Link )
 
 M_IOCDATA processing
  example ( Index Term Link ) ( Index Term Link )
 
 M_IOCNAK ( Index Term Link )
  with M_COPYOUT ( Index Term Link )
  with M_IOCTL ( Index Term Link )
 
 M_IOCTL ( Index Term Link ) ( Index Term Link )
  transparent ( Index Term Link )
  with M_COPYOUT ( Index Term Link )
 
 M_PASSFP ( Index Term Link )
 
 M_PCPROTO ( Index Term Link )
 
 M_PCRSE ( Index Term Link )
 
 M_PCSIG ( Index Term Link )
 
 M_PROTO ( Index Term Link ) ( Index Term Link )
 
 M_READ ( Index Term Link )
 
 M_RSE ( Index Term Link )
 
 M_SETOPTS ( Index Term Link )
  SO_FLAG ( Index Term Link )
  SO_ISTTY ( Index Term Link )
  so_readopt options ( Index Term Link )
 
 M_SIG ( Index Term Link )
  in signaling ( Index Term Link )
 
 M_STOP ( Index Term Link )
 
 M_STOPI ( Index Term Link )
 
 M_UNHANGUP ( Index Term Link )
 
 managing extended buffers in multithreaded environment, example ( Index Term Link )
 
 manipulating modules ( Index Term Link )
 
 master driver
  in pseudo-tty subsystem ( Index Term Link )
  open ( Index Term Link )
 
 mdb ( Index Term Link )
 
 memory-mapped I/O ( Index Term Link )
 
 message ( Index Term Link )
  accessing queue information ( Index Term Link )
  allocation ( Index Term Link )
  container for data and control information ( Index Term Link )
  create priority band message ( Index Term Link )
  data alignment ( Index Term Link )
  definitions of priority band fields ( Index Term Link )
  flow control ( Index Term Link )
  freeing ( Index Term Link )
  getmsg ( Index Term Link )
  getpmsg ( Index Term Link )
  high-priority ( Index Term Link ) ( Index Term Link )
  linking ( Index Term Link )
  M_BREAK ( Index Term Link ) ( Index Term Link )
  M_COPYIN ( Index Term Link ) ( Index Term Link )
  M_COPYOUT ( Index Term Link ) ( Index Term Link )
  M_CTL ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  M_DATA ( Index Term Link ) ( Index Term Link )
  M_DELAY ( Index Term Link ) ( Index Term Link )
  M_ERROR ( Index Term Link ) ( Index Term Link )
  M_FLUSH ( Index Term Link ) ( Index Term Link )
  M_HANGUP ( Index Term Link ) ( Index Term Link )
  M_IOCACK ( Index Term Link ) ( Index Term Link )
  M_IOCDATA ( Index Term Link ) ( Index Term Link )
  M_IOCNAK ( Index Term Link ) ( Index Term Link )
  M_IOCTL ( Index Term Link ) ( Index Term Link )
  M_PASSFP ( Index Term Link ) ( Index Term Link )
  M_PCPROTO ( Index Term Link ) ( Index Term Link )
  M_PCRSE ( Index Term Link )
  M_PCSIG ( Index Term Link ) ( Index Term Link )
  M_PROTO ( Index Term Link ) ( Index Term Link )
  M_READ ( Index Term Link ) ( Index Term Link )
  M_RSE ( Index Term Link )
  M_SETOPTS ( Index Term Link ) ( Index Term Link )
  M_SIG ( Index Term Link )
  M_START ( Index Term Link )
  M_STARTI ( Index Term Link )
  M_STOP ( Index Term Link )
  M_STOPI ( Index Term Link ) ( Index Term Link )
  M_UNHANGUP ( Index Term Link ) ( Index Term Link )
  msgb structure ( Index Term Link ) ( Index Term Link )
  priority ( Index Term Link )
  putmsg ( Index Term Link )
  putpmsg ( Index Term Link )
  qband structure ( Index Term Link )
  qinit structure ( Index Term Link )
  queue ( Index Term Link ) ( Index Term Link )
  queue priority ( Index Term Link )
  queue structure ( Index Term Link )
  queues ( Index Term Link ) ( Index Term Link )
  read options ( Index Term Link )
  recovering from allocation failure ( Index Term Link )
  recovering from no buffers ( Index Term Link )
  retrieve priority band message ( Index Term Link )
  service interface ( Index Term Link )
  shared data ( Index Term Link )
  SO_MREADOFI ( Index Term Link )
  translation between user application and kernel ( Index Term Link )
  types ( Index Term Link )
  using qband information ( Index Term Link )
  write option ( Index Term Link )
 
 message (STREAMS)
  direction ( Index Term Link )
  flow ( Index Term Link )
  handled by pckt ( Index Term Link )
  handled by ptem ( Index Term Link )
  high-priority ( Index Term Link ) ( Index Term Link )
  ldterm read side ( Index Term Link )
  ldterm write side ( Index Term Link )
  linking into queues ( Index Term Link )
  M_DATA ( Index Term Link )
  M_PCPROTO ( Index Term Link )
  M_PROTO ( Index Term Link )
  ordinary ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  processing ( Index Term Link )
  sending/receiving ( Index Term Link )
  structures ( Index Term Link )
  types ( Index Term Link )
 
 message block ( Index Term Link )
 
 message block structure, example ( Index Term Link )
 
 message ordering ( Index Term Link )
 
 message priorities ( Index Term Link )
 
 message queue ( Index Term Link )
  priority ( Index Term Link )
  priority levels ( Index Term Link )
 
 message types, rules for changing ( Index Term Link )
 
 messages, kernel ( Index Term Link )
 
 messages sent by driver to stream head
  M_ERROR ( Index Term Link )
  M_HANGUP ( Index Term Link )
  M_SIG/M_PCSIG ( Index Term Link )
 
 modldrv structure, driver operations and linkage information ( Index Term Link )
 
 modlinkage structure
  module link information ( Index Term Link )
  revision level of loadable modules ( Index Term Link )
 
 modlstrmod structure, module operations and linkage information ( Index Term Link )
 
 module ( Index Term Link )
  difference with driver ( Index Term Link )
  draining ( Index Term Link )
  ioctl control ( Index Term Link )
  line discipline ( Index Term Link )
  manipulation ( Index Term Link )
  pushable ( Index Term Link )
  reusability ( Index Term Link )
 
 module entry point structure, example ( Index Term Link )
 
 module_info structure, example ( Index Term Link )
 
 module information structure, example ( Index Term Link )
 
 module put, example ( Index Term Link )
 
 module service procedure, example ( Index Term Link )
 
 module unloading, outstanding esballoc callback ( Index Term Link )
 
 monitor streams events ( Index Term Link )
 
 msgb structure ( Index Term Link )
 
 msgdsize ( Index Term Link )
 
 MT SAFE
  cb_flag for driver ( Index Term Link )
  driver ( Index Term Link )
  f_flag for module ( Index Term Link )
  module ( Index Term Link )
 
 multiple process write, same pipe ( Index Term Link )
 
 multiplexer ( Index Term Link )
  building ( Index Term Link ) ( Index Term Link )
  controlling stream ( Index Term Link )
  data routing ( Index Term Link )
  declarations ( Index Term Link )
  definition ( Index Term Link )
  design guidelines ( Index Term Link )
  dismantling ( Index Term Link )
  driver ( Index Term Link ) ( Index Term Link )
  example ( Index Term Link ) ( Index Term Link )
  lower ( Index Term Link )
  lower connection ( Index Term Link ) ( Index Term Link )
  lower disconnection ( Index Term Link )
  lower read put procedure ( Index Term Link ) ( Index Term Link )
  lower stream ( Index Term Link ) ( Index Term Link )
  lower write service procedure ( Index Term Link )
  lower write service procedure ( Index Term Link )
  minor device connect ( Index Term Link )
  minor device disconnect ( Index Term Link )
  pseudo-device driver ( Index Term Link )
  upper ( Index Term Link )
  upper-queue write put procedure ( Index Term Link )
  upper stream ( Index Term Link ) ( Index Term Link )
  upper write service procedure ( Index Term Link )
 
 multiplexer ID
  in multiplexer building ( Index Term Link )
  in multiplexer dismantling ( Index Term Link )
 
 multiplexing STREAMS ( Index Term Link )
 
 multithread framework
  MT SAFE ( Index Term Link )
  perimeters ( Index Term Link )
 
 multithreaded kernel ( Index Term Link )
  porting to ( Index Term Link )
 
 multithreaded module
  explicit locks ( Index Term Link )
  explicit locks, constraints ( Index Term Link )
  preserving message ordering ( Index Term Link )
 
 multithreaded perimeter
  choosing a type ( Index Term Link )
  defining a type ( Index Term Link )
  description ( Index Term Link )
  exclusive/shared access flags ( Index Term Link )
  flags ( Index Term Link )
  fully-hot ( Index Term Link )
  inner ( Index Term Link )
  inner perimeter flags ( Index Term Link )
  outer ( Index Term Link )
  outer perimeter flags ( Index Term Link )
  PERMOD ( Index Term Link )
  routines used inside a perimeter ( Index Term Link )
 
 multithreaded STREAMS, concepts and terminology ( Index Term Link )
 
 multithreaded STREAMS module with outer perimeter, example ( Index Term Link )
 
 multithreaded STREAMS pseudo-driver using an inner perimeter, example ( Index Term Link )
 
 muxuwput, upper-queue write put procedure ( Index Term Link )
    
N
 
 named pipe (see FIFO) ( Index Term Link )
 
 named stream
  description ( Index Term Link )
  file descriptor passing ( Index Term Link )
 
 noenable ( Index Term Link )
 
 nontransparent ioctl using I_STR, example ( Index Term Link )
 
 NSTRPUSH
  kernel parameter ( Index Term Link )
  tunable parameter ( Index Term Link )
    
O
 
 O_NDELAY, with M_SETOPTS ( Index Term Link )
 
 O_NONBLOCK, with M_SETOPTS ( Index Term Link )
 
 open ( Index Term Link )
  device file ( Index Term Link )
 
 open a module, example ( Index Term Link )
 
 open a stream ( Index Term Link )
 
 open and request bind to the driver device, example ( Index Term Link )
 
 opening a system clone device, example ( Index Term Link )
 
 opening the log driver, example ( Index Term Link )
 
 opening the loop-around driver ( Index Term Link )
 
 ordinary message
  M_BREAK ( Index Term Link )
  M_CTL ( Index Term Link )
  M_DATA ( Index Term Link )
  M_DELAY ( Index Term Link )
  M_IOCTL ( Index Term Link )
  M_PASSFP ( Index Term Link )
  M_PROTO ( Index Term Link )
  M_RSE ( Index Term Link )
  M_SETOPTS ( Index Term Link )
 
 otherq ( Index Term Link )
    
P
 
 packet mode ( Index Term Link )
  description ( Index Term Link )
  messages ( Index Term Link )
 
 panic ( Index Term Link )
 
 pckt ( Index Term Link ) ( Index Term Link )
 
 perimeter
  asynchronous access ( Index Term Link )
  asynchronous callback functions ( Index Term Link )
  choosing a type ( Index Term Link )
  defining a type ( Index Term Link )
  description ( Index Term Link )
  exclusive/shared access flags ( Index Term Link )
  flags ( Index Term Link )
  fully-hot ( Index Term Link )
  inner ( Index Term Link )
  inner perimeter flags ( Index Term Link )
  outer ( Index Term Link )
  outer perimeter flags ( Index Term Link )
  PERMOD ( Index Term Link )
  routines ( Index Term Link )
  synchronous access ( Index Term Link )
 
 persistent link ( Index Term Link ) ( Index Term Link )
  create ( Index Term Link )
  dismantle ( Index Term Link )
 
 PIPE_BUF ( Index Term Link )
 
 pipe or FIFO
  read from ( Index Term Link )
  write to ( Index Term Link )
 
 pipemod, module ( Index Term Link )
 
 pipemod STREAMS module ( Index Term Link )
 
 pipes, STREAMS (see STREAMS-based pipe) ( Index Term Link )
 
 poll ( Index Term Link )
 
 poll event
  POLLIN ( Index Term Link )
  POLLOUT ( Index Term Link )
  POLLRDBAND ( Index Term Link )
  POLLRDNORM ( Index Term Link )
  POLLWRBAND ( Index Term Link )
  POLLWRNORM ( Index Term Link )
 
 pollfd structure ( Index Term Link )
 
 polling
  asynchronous input/output ( Index Term Link )
  error events ( Index Term Link )
  event ( Index Term Link )
  example ( Index Term Link ) ( Index Term Link )
 
 porting from SunOS 4 to SunOS 5, considerations ( Index Term Link )
 
 priority band data
  ioctl ( Index Term Link )
  routines ( Index Term Link )
 
 priority band data flush handling, example ( Index Term Link )
 
 private data ( Index Term Link )
 
 private locks across calls, module ( Index Term Link )
 
 process incoming data, example ( Index Term Link )
 
 process write message blocks, example ( Index Term Link )
 
 processing an ioctl, example ( Index Term Link )
 
 processing an ioctl message, example ( Index Term Link )
 
 processing input, example ( Index Term Link )
 
 protocol
  migration ( Index Term Link )
  portability ( Index Term Link )
  substitution ( Index Term Link )
 
 protocol daemon, example ( Index Term Link )
 
 protocol messages, read ( Index Term Link )
 
 pseudo-device, driver ( Index Term Link )
 
 pseudo-terminal, subsystem ( Index Term Link )
 
 pseudo-terminal subsystem, remote mode ( Index Term Link )
 
 pseudo-tty emulation module ( Index Term Link ) ( Index Term Link )
 
 pseudo-tty subsystem ( Index Term Link )
  description ( Index Term Link ) ( Index Term Link )
  drivers ( Index Term Link ) ( Index Term Link )
  ldterm ( Index Term Link )
  messages ( Index Term Link )
  packet mode ( Index Term Link )
  remote mode ( Index Term Link )
 
 ptem ( Index Term Link ) ( Index Term Link )
 
 ptem structure, example ( Index Term Link )
 
 ptm (see master driver) ( Index Term Link )
 
 pts, example ( Index Term Link )
 
 pts (see slave driver) ( Index Term Link )
 
 ptsname ( Index Term Link ) ( Index Term Link )
  with pseudo-tty driver ( Index Term Link )
 
 pullupmsg ( Index Term Link )
 
 push/pop modules on/off the stream ( Index Term Link )
 
 pushing a module, example ( Index Term Link )
 
 pushing modules on a STREAMS-based FIFO ( Index Term Link )
 
 pushing modules on a STREAMS-based pipe ( Index Term Link )
 
 put procedure ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 putbq ( Index Term Link )
 
 putctl ( Index Term Link )
 
 putctl1 ( Index Term Link )
 
 putnext ( Index Term Link ) ( Index Term Link )
 
 putq ( Index Term Link )
    
Q
 
 q_next field ( Index Term Link )
 
 qband structure, example ( Index Term Link )
 
 qbufcall ( Index Term Link ) ( Index Term Link )
 
 qinit structure
  example ( Index Term Link )
  pointers to STREAMS entry points ( Index Term Link )
 
 qprocsoff ( Index Term Link ) ( Index Term Link )
 
 qprocson ( Index Term Link ) ( Index Term Link )
 
 qreply ( Index Term Link )
 
 qsize ( Index Term Link )
 
 qtimeout ( Index Term Link ) ( Index Term Link )
 
 queue ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  flags ( Index Term Link )
  put ( Index Term Link )
  read ( Index Term Link )
  read side ( Index Term Link )
  schedule ( Index Term Link )
  using qband information ( Index Term Link )
  water mark ( Index Term Link )
  write ( Index Term Link )
  write side ( Index Term Link )
 
 queue allocation ( Index Term Link )
 
 queue flags
  QENAB ( Index Term Link )
  QFULL ( Index Term Link )
  QNOENB ( Index Term Link )
  QREADR ( Index Term Link )
  QUSE ( Index Term Link )
  QWANTR ( Index Term Link )
  QWANTW ( Index Term Link )
 
 queue processing entry point
  STREAMS driver ( Index Term Link ) ( Index Term Link )
 
 queue processing entry points, example ( Index Term Link )
 
 queue processing procedure
  put ( Index Term Link )
  service ( Index Term Link )
 
 queue structure, example ( Index Term Link )
 
 qunbufcall ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 quntimeout ( Index Term Link ) ( Index Term Link )
 
 qwait ( Index Term Link ) ( Index Term Link )
 
 qwait_sig ( Index Term Link )
 
 qwriter ( Index Term Link ) ( Index Term Link )
    
R
 
 RD ( Index Term Link )
 
 read side, ldterm processing ( Index Term Link )
 
 read-side, put procedure ( Index Term Link )
 
 read-side line discipline module, example ( Index Term Link )
 
 read-side put procedure, example ( Index Term Link )
 
 receive data from service provider
  example ( Index Term Link ) ( Index Term Link )
 
 releasing callback requests ( Index Term Link )
 
 retrieve priority band message ( Index Term Link )
 
 revents, bitmask ( Index Term Link )
 
 rmvb ( Index Term Link )
 
 rmvq ( Index Term Link )
 
 routines used inside a perimeter ( Index Term Link )
    
S
 
 sad ( Index Term Link )
 
 SAD (see STREAMS Administrative Driver) ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 SAD_GAP ioctl ( Index Term Link )
 
 SAD_SAP ioctl
  SAP_ALL option ( Index Term Link )
  SAP_CLEAR option ( Index Term Link )
  SAP_ONE option ( Index Term Link )
  SAP_RANGE option ( Index Term Link )
 
 sap_lastminor device ( Index Term Link )
 
 sap_major device ( Index Term Link )
 
 sap_minor device ( Index Term Link ) ( Index Term Link )
 
 send data to service provider, example ( Index Term Link )
 
 service
  interface ( Index Term Link )
  procedure ( Index Term Link )
  provider ( Index Term Link )
  user ( Index Term Link )
 
 service interface ( Index Term Link )
 
 service interface ( Index Term Link )
  definition ( Index Term Link )
  rules ( Index Term Link )
 
 service interface library
  example ( Index Term Link )
  primitives ( Index Term Link )
 
 service interface library header file, example ( Index Term Link )
 
 service interface protoput procedure, example ( Index Term Link )
 
 service primitive ( Index Term Link )
  BIND_REQ ( Index Term Link )
  ERROR_ACK ( Index Term Link )
  in service procedure ( Index Term Link )
  OK_ACK ( Index Term Link )
  UNITDATA_IND ( Index Term Link )
  UNITDATA_REQ ( Index Term Link )
 
 service primitive declarations, example ( Index Term Link )
 
 service procedure ( Index Term Link )
 
 service procedure ( Index Term Link ) ( Index Term Link )
  back-enable ( Index Term Link )
  blocked ( Index Term Link )
 
 service provider ( Index Term Link )
  accessing ( Index Term Link )
  closing ( Index Term Link )
  receiving data ( Index Term Link )
  sending data ( Index Term Link )
 
 signal ( Index Term Link )
  extended ( Index Term Link )
  in job control management ( Index Term Link )
  in STREAMS ( Index Term Link ) ( Index Term Link )
  M_SIG ( Index Term Link )
  SIGCONT ( Index Term Link )
  SIGHUP ( Index Term Link )
  SIGPOLL ( Index Term Link )
  SIGSTOP ( Index Term Link )
  SIGTSTP ( Index Term Link )
  SIGTTIN ( Index Term Link )
  SIGTTOU ( Index Term Link )
 
 SIGPOLL, signal ( Index Term Link )
 
 SIGTTIN ( Index Term Link )
 
 SIGTTOU ( Index Term Link )
 
 simple stream, example ( Index Term Link )
 
 slave driver ( Index Term Link )
  in pseudo-tty subsystem ( Index Term Link )
  open ( Index Term Link )
 
 slave driver open, example ( Index Term Link )
 
 SO_FLAG, in M_SETOPTS ( Index Term Link )
 
 SO_MREADOFF ( Index Term Link )
 
 SO_MREADOFI ( Index Term Link )
 
 standard pipe ( Index Term Link )
 
 str_mlist structure, example ( Index Term Link )
 
 strace ( Index Term Link )
 
 strapush structure, example ( Index Term Link )
 
 strchg ( Index Term Link )
 
 strconf command ( Index Term Link )
 
 STRCTLSZ, tunable parameter ( Index Term Link )
 
 stream
  controlling terminal ( Index Term Link )
  general definition ( Index Term Link )
  hung-up ( Index Term Link )
 
 stream autopush structure, example ( Index Term Link )
 
 stream construction
  add/remove modules ( Index Term Link )
  close a stream ( Index Term Link )
  example ( Index Term Link ) ( Index Term Link )
  open a stream ( Index Term Link )
 
 stream head
  copy data between the user space and kernel space ( Index Term Link )
  intercepting I_STR ( Index Term Link )
  kernel space interaction ( Index Term Link )
 
 stream pseudo terminal module, example ( Index Term Link )
 
 streamio ioctl commands, streams control ( Index Term Link )
 
 STREAMS ( Index Term Link )
  administration tools ( Index Term Link )
  application interface ( Index Term Link )
  asynchronous callback functions ( Index Term Link )
  closing a device ( Index Term Link )
  configuration ( Index Term Link ) ( Index Term Link )
  considerations when porting from SunOS 4 to SunOS 5 ( Index Term Link )
  data path ( Index Term Link )
  data transfer ( Index Term Link )
  definition ( Index Term Link )
  definition of functionality ( Index Term Link )
  determining when to use ( Index Term Link )
  device driver ( Index Term Link )
  driver ( Index Term Link )
  flow control ( Index Term Link ) ( Index Term Link )
  frequently asked IP interface questions ( Index Term Link )
  hardened ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  hardening advice ( Index Term Link ) ( Index Term Link )
  head ( Index Term Link ) ( Index Term Link )
  interface ( Index Term Link )
  kernel-level ( Index Term Link )
  message components ( Index Term Link )
  message data structures ( Index Term Link )
  message queue priority ( Index Term Link )
  message queues ( Index Term Link )
  message types ( Index Term Link )
  messages ( Index Term Link )
  module ( Index Term Link ) ( Index Term Link )
  module multiplexing ( Index Term Link )
  multiplexing ( Index Term Link ) ( Index Term Link )
  multithread framework ( Index Term Link )
  multithread framework integrity ( Index Term Link )
  opening a device ( Index Term Link )
  polling ( Index Term Link )
  programming model ( Index Term Link )
  queue overview ( Index Term Link )
  tunable parameters ( Index Term Link )
 
 STREAMS administration modules ( Index Term Link )
  autopush facility ( Index Term Link )
 
 STREAMS Administrative Driver ( Index Term Link ) ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 STREAMS anchors client, example ( Index Term Link )
 
 STREAMS anchors server, example ( Index Term Link )
 
 STREAMS-based pipe ( Index Term Link )
  atomic write ( Index Term Link )
  basic operations ( Index Term Link )
  definition ( Index Term Link )
  PIPE_BUF ( Index Term Link )
 
 STREAMS-based pseudo-terminal subsystem (see pseudo-tty subsystem) ( Index Term Link )
 
 STREAMS-based terminal subsystem (see tty subsystem) ( Index Term Link )
 
 streams control, streamio ioctl commands ( Index Term Link )
 
 STREAMS debugging ( Index Term Link )
  error and trace logging ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  kernel debug printing ( Index Term Link )
  kernel examination tools ( Index Term Link )
 
 STREAMS driver
  cloning ( Index Term Link )
  configuration ( Index Term Link )
  configuration entry point ( Index Term Link ) ( Index Term Link )
  design guidelines ( Index Term Link )
  driver interrupt ( Index Term Link )
  Ethernet drivers ( Index Term Link )
  flush handling ( Index Term Link )
  initialization entry point ( Index Term Link )
  interrupt handler ( Index Term Link )
  ioctl ( Index Term Link ) ( Index Term Link )
  loop-around ( Index Term Link )
  porting to multithreaded kernel ( Index Term Link )
  pseudo-tty ( Index Term Link ) ( Index Term Link )
  pseudo-tty subsystem master ( Index Term Link )
  pseudo-tty subsystem slave ( Index Term Link )
  queue processing entry point ( Index Term Link ) ( Index Term Link )
  table-driven entry point ( Index Term Link )
 
 STREAMS module ( Index Term Link ) ( Index Term Link )
  adding an anchor ( Index Term Link )
  anchor lock ( Index Term Link )
  autopush facility ( Index Term Link ) ( Index Term Link )
  autopush facility ( Index Term Link )
  connld ( Index Term Link )
  design guidelines ( Index Term Link )
  filter ( Index Term Link )
  flow control ( Index Term Link ) ( Index Term Link )
  ioctl ( Index Term Link )
  line discipline ( Index Term Link )
  ptem ( Index Term Link )
  read-side put procedure ( Index Term Link )
  routines ( Index Term Link ) ( Index Term Link )
  service interface example ( Index Term Link ) ( Index Term Link )
  service procedure ( Index Term Link )
  service procedure example ( Index Term Link )
  write-side put procedure ( Index Term Link )
 
 STREAMS queue
  qband structure ( Index Term Link )
  using qband information ( Index Term Link )
  using queue information ( Index Term Link )
 
 streamtab structure
  driver entry point ( Index Term Link )
  example ( Index Term Link )
  pointers to structures for inititializing reading and writng a module ( Index Term Link )
 
 strerr ( Index Term Link )
 
 strioctl structure ( Index Term Link )
  example ( Index Term Link )
  ic_cmd ( Index Term Link )
  ic_dp ( Index Term Link )
  ic_len ( Index Term Link )
  ic_timout ( Index Term Link )
 
 strlog ( Index Term Link ) ( Index Term Link )
  flag parameter ( Index Term Link )
 
 STRMSGSZ, tunable parameter ( Index Term Link )
 
 stropts.h, strbuf ( Index Term Link )
 
 strqget ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 strqset ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 structure for M_IOCTL unrecognized message, example ( Index Term Link )
 
 structure for nontransparent ioctl, example ( Index Term Link )
 
 synchronous input/output, in polling ( Index Term Link )
 
 system crash ( Index Term Link )
    
T
 
 table-driven entry point, STREAMS driver ( Index Term Link )
 
 termio
  default flag values ( Index Term Link )
  TCSETA ( Index Term Link )
  TCSETAF ( Index Term Link )
  TCSETAW ( Index Term Link )
 
 termios, terminal control flags ( Index Term Link )
 
 testb ( Index Term Link )
 
 timeout ( Index Term Link )
 
 transferring user buffer into the kernel, example ( Index Term Link )
 
 transparent ioctl ( Index Term Link )
  example ( Index Term Link )
  M_COPYOUT example ( Index Term Link )
  messages ( Index Term Link )
  processing ( Index Term Link )
 
 transparent ioctl processing ( Index Term Link )
 
 treatment of protocol messages
  RPROTDAT ( Index Term Link )
  RPROTDIS ( Index Term Link )
  RPROTMASK ( Index Term Link )
  RPROTNORM ( Index Term Link )
 
 tty subsystem
  benefits ( Index Term Link )
  description ( Index Term Link ) ( Index Term Link )
  hardware emulation module ( Index Term Link ) ( Index Term Link )
  ldterm ( Index Term Link )
  setup ( Index Term Link )
 
 ttymon ( Index Term Link )
 
 tunable parameters, STREAMS ( Index Term Link )
    
U
 
 unbufcall ( Index Term Link )
 
 unfreezestr ( Index Term Link )
 
 unique connection (STREAMS) ( Index Term Link ) ( Index Term Link )
 
 unlinkb ( Index Term Link )
 
 unlockpt ( Index Term Link )
  with pseudo-tty driver ( Index Term Link )
 
 upstream ( Index Term Link )
 
 user process write, 0 byte pipe ( Index Term Link )
 
 user's options structure, example ( Index Term Link )
    
W
 
 wait for bind request acknowledgement, example ( Index Term Link )
 
 WR ( Index Term Link )
 
 write side, ldterm ( Index Term Link )
 
 write-side, put procedure ( Index Term Link )
 
 write-side put procedure, example ( Index Term Link )