Reference Guide
ZCOM Message Handling
Message Queuing
Chapter 228
Queues for terminal ZLUs are located in the physical terminal tables in
the ZCOM memory area as shown in Figure 2-2. The physical terminal
tables (one per terminal) maintain four queues for each terminal.
Figure 2-2 Physical Terminal Table
The driver reads messages first from the express queue until there are
no remaining express queue messages, then from the high priority queue
until there are no high priority messages, at which stage the low priority
queue is read. Any further additions to the higher priority queues will be
read before the driver continues with the lower priority queues. When
the interface card is ready to accept messages, the driver moves the
message to the unacknowledged queue and transfers the message to the
interface card (through the unacknowledged queue). Both the interface
card and the driver use DMA (Direct Memory Access) hardware to
transfer the messages. If the number of buffers on the unacknowledged
queue is less than the limit specified to TTGEN, more messages will be
transferred, otherwise the transfer will be suspended until some
outstanding messages are acknowledged.
Once the interface card has transmitted the message and has responded
with a definite status, the driver passes the status (if requested to do so)
back to the calling program. If the calling program also requires the
message buffer to be sent back with the status response, it is picked up
from the unacknowledged queue. Once the driver has passed the
message to the program, the message is removed from the
unacknowledged queue.
Messages in the unacknowledged queues for each terminal are also used
in a Mux restart: the messages are moved back to the high priority queue
to be resent. The size of the unacknowledged queue is configurable in the
TTGEN configuration file.
Physical Terminal Table
Express Queue
High Priority Queue
Low Priority Queue
Unacknowledged Queue