STREAMS-UX Programmer's Guide (February 2007)
Differences Between STREAMS/UX and System V Release 4 STREAMS
HP-UX Changes to STREAMS/UX Data Structures
Appendix E
274
If streams_put cannot be used, the code that accesses a STREAMS/UX queue must, at a minimum, follow
these additional rules:
• The software must ensure that it is accessing an allocated, opened queue.
• It cannot dereference the q_first, q_last, or q_next pointers. In other words, it cannot read or write
data pointed at by the pointers. For example, the function can check if q_first is 0, but it cannot read
the q_first->b_next field.
• Any additional synchronization required for the modules and drivers must be implemented to work
correctly by the developer. The developers need to synchronize the function accessing the STREAMS/UX
queue with the queue’s entry points. This is because the function and the entry points may access the
queue in parallel on a multiprocessor system and may interrupt each other while accessing the queue on
a uniprocessor system.