STREAMS/UX for the HP 9000 Reference Manual
83
STREAMS/UX Multiprocessor Support
Writing MP Scalable Modules and Drivers
The sync name indicates which modules and drivers belong to a group. Choose a
sync name with eight characters or less, and configure the name for each
member of the group. See Chapter 5 for more information about configuring
STREAMS/UX modules and drivers.
Master File $DEVICE Table Configuration
To configure an MP scalable module or driver using a master file $DEVICE
table entry, add the 0x10000 (MGR_IS_MP) flag to the mask value. Also
add an entry to the master file $STREAMS_DVR_SYNC table. This entry
contains the module or driver's name, a keyword specifying the
synchronization level, and a sync name if the module or driver requires
elsewhere synchronization. There are five synchronization level keywords:
sync_global, sync_elsewhere, sync_module, sync_qpair, and sync_queue.
The STREAMS/UX master file contains a list of the valid keywords in the
$STREAMS_SYNC_LEVEL table. The examples below show $DEVICE
and $STREAMS_DVR_SYNC table entries.
Module and Driver Install Function Configuration
If a module or driver is configured using an install function, add the
MGR_IS_MP flag to the inst_flags field in the streams_info_t structure.
Also, if you are configuring a driver, set the DRV_MP_SAFE flag in the
* name handle type mask block char
*
$DEVICE
strlog loginfo 21 120FC -1 73 /* Added 0x10000 to mask */
dlpi dlpiinfo 21 120FC -1 119 /* Added 0x10000 to mask */
tirdwr tirdwrinfo 40 12000 -1 -1 /* Added 0x10000 to mask */
A Ainfo 40 12000 -1 -1 /* Added 0x10000 to mask */
B Binfo 40 12000 -1 -1 /* Added 0x10000 to mask */
C Cinfo 40 12000 -1 -1 /* Added 0x10000 to mask */
D Dinfo 21 120FC -1 116 /* Added 0x10000 to mask */
$$$
* name sync level sync name
*
$STREAMS_DVR_SYNC
strlog sync_module /* Added sync level */
dlpi sync_qpair /* Added sync level */
tirdwr sync_queue /* Added sync level */
A sync_elsewhere ABsync /* Added sync level & name
*/
B sync_elsewhere ABsync /* Added sync level & name */
C sync_elsewhere netsync /* Added sync level & name */
D sync_elsewhere netsync /* Added sync level & name */
$$$