STREAMS/UX for the HP 9000 Reference Manual

214
Debugging STREAMS/UX Modules and Drivers
Debugging Examples
struct queue 0x5e9c00 S:3
q_qinfo = 0x294160 q_pad1[0] = 00
q_first = 0x5d8c00 q_pad1[1] = 00
q_last = 0x6c1880 q_pad1[2] = 00
q_next = 0x0 q_other = 0x5e9c74
q_link = 0x0
q_ptr = 0x0
q_count = 24896
q_flag = 0x1135
QREADR
QFULL
QWANTW
QUSE
QOLD
QSYNCH
q_minpsz = 0
q_maxpsz = 256
q_hiwat = 0x8000
q_lowat = 0x4000
q_bandp = 0x539d00
q_nband = 1
Note that this is a read queue whose q_next pointer is NULL. This implies
that this queue is not a connected part of a stream, and is in the process of
being closed. To find out what driver or module this queue is being used by,
we want to look at q_qinfo. We could use :x qinit 0x294160, or look for an
appropriate navigation key:
?
navigation for structure queue
'i' = q_qinfo (qinit)
'm' = q_first (msgb)
'z' = q_last (msgb)
'n' = q_next (queue)
'l' = q_link (queue)
'b' = q_bandp (qband)
'o' = q_other (queue)
We use the i navigation key to print the following:
struct qinit 0x294160 S:4
qi_putp = 0x785ac
qi_srvp = 0x78794
qi_qopen = 0x7841c
qi_qclose = 0x78490
qi_qadmin = 0x0
qi_minfo = 0x294148
qi_mstat = 0x0