
ZCOM Tables and Data Structures
Queue Header
QFLAG - Queue flags
This field contains some indicators which may affect the processing of a queue. The format is shown in Table
Table | Queue Flag Format |
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
|
|
| 7 | 6 | 5 | 4 |
| 3 |
| 2 | 1 | 0 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| COL |
| SEL |
| FUNC | BLT | ENB |
|
|
|
|
|
|
|
|
|
|
|
|
| Symbol | Value | Meaning |
|
| ||||||
|
|
|
|
|
| (hex) |
|
|
|
| |
| ZCOM_QFLAG_EN | 0x0001 | Queue is enabled |
| |||||||
| B |
|
|
|
|
|
| ||||
| ZCOM_QFLAG_BLT | 0x0002 | Queue limit on byte size |
| |||||||
| ZCOM_QFLAG_FU | 0x0004 | Queue uses wakeup function | ||||||||
| NC |
|
|
|
|
|
| ||||
| ZCOM_QFLAG_SEL | 0x0008 | Queue has a failed “select” | ||||||||
| ZCOM_QFLAG_COL | 0x0010 | Queue has a “select” collision |
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
104 | Chapter 3 |