Reference Guide
ZCOM Tables and Data Structures
Queue Header
Chapter 3104
QFLAG - Queue flags
This field contains some indicators which may affect the processing of a
queue. The format is shown in Table 3-29.
When the FUNC bit is set, it indicates the kernel function kept in qfunc
is to be called whenever data is added to the queue. This feature may
only be used by kernel drivers (via the zsetkfunc routine).
The BLT bit is set if the queue limit check is performed on the number of
bytes rather than the number of messages. Currently, only the PTT
unacknowledged transmit queue uses it.
Queue manipulation is allowed only when the ENB bit is set. All queues
are set to disabled by TTGEN initially, and enabled by the zopen( ) call
(where a buffer queue is assigned to a ZLU). During ZCOM subsystem
shutdown, the LDM will disable the program queues by clearing this bit.
The SEL and COL bits are used internally for the “select-for-read”
function on program ZLUs. When a program ZLU has been “selected”
while it has no data, the LDM sets the SEL bit. If more than one
program selects this empty ZLU, the COL bit is set. When data arrives
for this ZLU the LDM uses these two bits to decide whether to wake up
one or multiple programs waiting on the “select” for this ZLU.
Table 3-29 Queue Flag Format
15-8 7 6 5 4 3 2 1 0
COL SEL FUNC BLT ENB
Symbol Value
(hex)
Meaning
ZCOM_QFLAG_EN
B
0x0001 Queue is enabled
ZCOM_QFLAG_BLT 0x0002 Queue limit on byte size
ZCOM_QFLAG_FU
NC
0x0004 Queue uses wakeup function
ZCOM_QFLAG_SEL 0x0008 Queue has a failed “select”
ZCOM_QFLAG_COL 0x0010 Queue has a “select” collision