STREAMS-UX Programmer's Guide (February 2007)
Differences Between STREAMS/UX and System V Release 4 STREAMS
HP-UX Changes to STREAMS/UX System Calls
Appendix E
260
• Closing an event port
The poll (7) manpages provide more information on this interface.
signal Modifications
STREAMS/UX supports signals and the HP-UX signal system call. However, STREAMS/UX does not support
extended signals or the siginfo_t structure described in the siginfo (5) manpage.
write and writev Modifications
Maximum and Minimum Data Buffer Size
The size of the user’s data buffer must be within the minimum and maximum packet size
range specified in the topmost STREAM module’s streamtab. If the number of bytes to
transfer is not in this range, ERANGE will be returned. Two exceptions exist in which no error
occurs. The first exception is if the data buffer is too large and either the maximum packet
size is infinite or the minimum packet size is less than or equal to zero. (An infinite packet
size is specified using the define INFPSZ in the stream.h file.) The second exception occurs if
the buffer is too small and the minimum packet size is less than or equal to zero. With
either exception, ERANGE is not returned, and the data is transferred.
Data Buffer Segmentation
The user’s data buffer may be sent in multiple messages. The maximum amount of data
that can be sent in one message is the lower value of the topmost module’s maximum packet
size and STRMSGSZ. If the maximum packet size is infinite, then the top module’s high water
mark is taken into consideration. If the high water mark is more than zero, half of the high
water mark is used; otherwise the page size is used.
Write Offset
A module or driver can send the STREAM head an M_SETOPTS message telling it to put an
offset in the beginning of each data buffer segment (i.e., message) sent by a write call.
STREAMS/UX will not put the offset into a message if the resulting message size exceeds
STRMSGSZ.