Mercurial > hg > Members > kono > os9 > sbc09
comparison CoCoOS9/defs/pipedefs @ 31:bd2b07db8917 cocoos9lv2v3
CoCoOS9 version
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Jul 2018 15:16:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
30:7b1b25ff010a | 31:bd2b07db8917 |
---|---|
1 nam PipeDefs | |
2 ttl OS-9 Pipe Definitions | |
3 | |
4 * OS-9 Pipe Definitions | |
5 * | |
6 * IOMan equates duplicated for PipeMan use | |
7 * | |
8 | |
9 NPATHS set 16 ;Maximum local paths per task -- must match IOMan | |
10 NameMax set 29 ;Maximum length of a file name | |
11 | |
12 * | |
13 * Device Driver Static Storage Layout | |
14 * | |
15 org V.User | |
16 V.List rmb 2 ;Pointer to 1st pipe's pipe buffer | |
17 PManMem equ . ;Device driver memory (drive table equivalent) | |
18 | |
19 * | |
20 * Pipe Buffer Data Structure | |
21 * | |
22 org 0 | |
23 PP.PD rmb 2 ;Pointer to shared path descriptor | |
24 PP.Next rmb 2 ;Pointer to next pipe buffer in system map | |
25 PP.Prev rmb 2 ;Pointer to previous pipe buffer in system map | |
26 PP.Rsrv rmb 2 ;Reserved | |
27 PP.Data equ . ;Data buffer begins at this offset | |
28 | |
29 * | |
30 * Unique Path Descriptor Variables | |
31 * | |
32 org PD.FST | |
33 *** PP.Read must have bit 4 clear; PP.Writ must be PP.Read XOR 4 | |
34 PD.Read equ . | |
35 PD.RPID rmb 1 ;Process ID of reader waiting on signal | |
36 PD.RCT rmb 1 ;Number of blocked readers | |
37 PD.RSIG rmb 1 ;Signal to send reader | |
38 PD.REOR rmb 1 ;Read EOR character | |
39 PD.Writ equ . | |
40 PD.WPID rmb 1 ;Process ID of writer waiting on signal | |
41 PD.WCT rmb 1 ;Number of blocked writers | |
42 PD.WSIG rmb 1 ;Signal to send writer | |
43 PD.WEOR rmb 1 ;Write EOR character (dummy) | |
44 *** End of special section | |
45 PD.End rmb 2 ;Pointer to end of pipe buffer | |
46 PD.NxtI rmb 2 ;Next in pointer | |
47 PD.NxtO rmb 2 ;Next out pointer | |
48 PD.RFlg rmb 1 ;"Ready" flag | |
49 PD.Wrtn rmb 1 ;"Written" flag | |
50 PD.BCnt rmb 2 ;# queue elements currently bufered | |
51 PD.Own rmb 1 ;Process ID of pipe original creator | |
52 PD.Keep rmb 1 ;Non-zero if pipe has been kept open artificailly | |
53 PD.QSiz rmb 2 ;Max. elements in queue (copied from OPT section) | |
54 | |
55 * | |
56 * Path descriptor option section | |
57 * | |
58 * Note that PD.Name overlaps with the last byte of PD.ECnt. | |
59 * PD.ECnt is copied to PD.QSiz as part of OPEN or CREATE, | |
60 * to make room for the pipe name. | |
61 * | |
62 org (PD.OPT+1) | |
63 PD.ESiz rmb 1 ;Size of each queue element | |
64 PD.ECnt rmb 2 ;Max. elements in queue (initial position) | |
65 | |
66 * | |
67 * Device Descriptor definitions | |
68 * | |
69 IT.PDC equ $12 ;Pipe device class (like IT.DTP, IT.DVC) | |
70 org IT.PDC | |
71 rmb 1 ;Leave room for device class | |
72 IT.ESiz rmb 1 ;Size of each queue element | |
73 IT.ECnt rmb 2 ;Max. elements in queue (initial position) | |
74 | |
75 * End of pipedefs | |
76 |