mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-24 17:04:19 +00:00
84 lines
2.8 KiB
Plaintext
84 lines
2.8 KiB
Plaintext
|
||
;*****************************************************
|
||
;*
|
||
;* Queue Descriptor - This is structure is used
|
||
;* to create a queue. One is maintained
|
||
;* in the system data area for each queue
|
||
;*
|
||
;* +----+----+----+----+----+----+----+----+
|
||
;* 00 | link |net |org | flags | name...
|
||
;* +----+----+----+----+----+----+----+----+
|
||
;* 08 ...name | msglen |
|
||
;* +----+----+----+----+----+----+----+----+
|
||
;* 10 | nmsgs | dq | nq | msgcnt |
|
||
;* +----+----+----+----+----+----+----+----+
|
||
;* 18 | msgout | buffer |
|
||
;* +----+----+----+----+
|
||
;*
|
||
;* link - used to link QDs is system lists
|
||
;* net - which machine in the network
|
||
;* org - origin machine in the network
|
||
;* flags - Queue Flags
|
||
;* name - Name of Queue
|
||
;* msglen - # of bytes in one message
|
||
;* nmsgs - maximum # of messages in queue
|
||
;* dq - Root of PDs waiting to read
|
||
;* nq - Root of PDs list waiting to write
|
||
;* msgcnt - # of messages currently in queue
|
||
;* msgout - next message # to read
|
||
;* buf - pointer to queue message buffer
|
||
;* (for MX queues, owner of queue)
|
||
;*
|
||
;*****************************************************
|
||
|
||
q_link equ word ptr 0
|
||
q_net equ byte ptr q_link + word
|
||
q_org equ byte ptr q_net + byte
|
||
q_flags equ word ptr q_org + byte
|
||
q_name equ byte ptr q_flags + word
|
||
q_msglen equ word ptr q_name + qnamsiz
|
||
q_nmsgs equ word ptr q_msglen + word
|
||
q_dq equ word ptr q_nmsgs + word
|
||
q_nq equ word ptr q_dq + word
|
||
q_msgcnt equ word ptr q_nq + word
|
||
q_msgout equ word ptr q_msgcnt + word
|
||
q_buf equ word ptr q_msgout + word
|
||
qdlen equ q_buf + word
|
||
;
|
||
; Q_FLAGS values
|
||
;
|
||
qf_mx equ 001h ; Mutual Exclusion
|
||
qf_keep equ 002h ; NO DELETE
|
||
qf_hide equ 004h ; Not User writable
|
||
qf_rsp equ 008h ; rsp queue
|
||
qf_table equ 010h ; from qd table
|
||
qf_rpl equ 020h ; rpl queue
|
||
qf_dev equ 040h ; device queue
|
||
|
||
;*****************************************************
|
||
;*
|
||
;* QPB - Queue Parameter Block
|
||
;*
|
||
;* +----+----+----+----+----+----+----+----+
|
||
;* 00 |flgs|net | qaddr | nmsgs | buffptr |
|
||
;* +----+----+----+----+----+----+----+----+
|
||
;* 08 | name |
|
||
;* +----+----+----+----+----+----+----+----+
|
||
;*
|
||
;* flgs - unused
|
||
;* net - unused (which machine to use)
|
||
;* qaddr - Queue ID, address of QD
|
||
;* nmsgs - number of messages to read/write
|
||
;* buffptr - address to read/write into/from
|
||
;* name - name of queue (for open only)
|
||
;*
|
||
;*****************************************************
|
||
|
||
qpb_flgs equ byte ptr 0
|
||
qpb_net equ byte ptr qpb_flgs + byte
|
||
qpb_qaddr equ word ptr qpb_net + byte
|
||
qpb_nmsgs equ word ptr qpb_qaddr + word
|
||
qpb_buffptr equ word ptr qpb_nmsgs + word
|
||
qpb_name equ byte ptr qpb_buffptr + word
|
||
qpblen equ qpb_name + qnamsiz
|
||
|