JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
STREAMS Programming Guide     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Document Information

Preface

Part I Application Programming Interface

1.  Overview of STREAMS

2.  STREAMS Application-Level Components

3.  STREAMS Application-Level Mechanisms

4.  Application Access to the STREAMS Driver and Module Interfaces

5.  STREAMS Administration

6.  Pipes and Queues

Part II Kernel Interface

7.  STREAMS Framework - Kernel Level

8.  STREAMS Kernel-Level Mechanisms

9.  STREAMS Drivers

10.  STREAMS Modules

11.  Configuring STREAMS Drivers and Modules

12.  Multithreaded STREAMS

13.  STREAMS Multiplex Drivers

Part III Advanced Topics

14.  Debugging STREAMS-based Applications

Part IV Appendixes

A.  Message Types

B.  Kernel Utility Interface Summary

C.  STREAMS-Based Terminal Subsystem

D.  STREAMS FAQ

Glossary

Index

Appendix B

Kernel Utility Interface Summary

Use the following kernel utilities to develop and maintain drivers.

Table B-1 Kernel Utility Interfaces

Routine
Description
Trim bytes in a message
Allocate a message block
Get pointer to the queue behind a given queue
Test for flow control in a given priority band
Recover from failure of allocballocb(9F)
Test for room in a queue
Copy a message
Test whether message is a data message
Test whether thread can receive user-level signal
Duplicate a message block descriptor
Duplicate a message
Re-allow a queue to be scheduled for service
Allocate message and data blocks
Flush messages in a given priority band
Flush a queue
Free a message block
Free all message blocks in a message
Disable changes to the state of the stream
Get a message from a queue
Put a message at a specific place in a queue
Concatenate two messages into one
Get the number of data bytes in a message
Prevent a queue from being scheduled
Get pointer to the queue's partner queue
Concatenate and align bytes in a message
Return a message to the beginning of a queue
Put a control message
Put a control message with a one-byte parameter
Put a message to the next queue
Put a message on a queue
Call a function when a buffer becomes available
Turn off queue processing
Turn on queue processing
Send a message on a stream in the reverse direction
Find the number of messages on a queue
Execute a function after a specified length of time
Cancel a pending qbufcall request
Cancel a pending qtimeout request
Perimeter wait routine
Perimeter wait routine
Asynchronous perimeter upgrade
Get pointer to the read queue
Remove a message block from a message
Remove a message from a queue
Submit messages for logging
Obtain information on a queue or a band of the queue
Change information on a queue or a band of the queue
Check for an available buffer
Cancel bufcall request
Enable changes to the state of the stream
Remove a message block from the head of a message
Get pointer to the write queue