0
|
1 opt -l
|
|
2 ttl OS9 Level 2 Pipe Definitions
|
|
3
|
|
4 *
|
|
5 * Copyright 1988 by Microware Systems Corporation
|
|
6 * All Rights Reserved
|
|
7 *
|
|
8 * Named pipe equates by Burke & Burke.
|
|
9 * All rights assigned to Microware Systems Corporation.
|
|
10 *
|
|
11 * This file contains proprietary information of Microware Systems
|
|
12 * Corporation. Persons accessing this file will be held strictly
|
|
13 * accountable for their use of the information herein.
|
|
14 *
|
|
15
|
|
16 *
|
|
17 * OS9 Level 2 Pipe Definitions
|
|
18 *
|
|
19 * Modification History
|
|
20 * --------------------
|
|
21 *
|
|
22 * Date Who Description
|
|
23 * -------- --- -----------------------------------------
|
|
24 * 12/03/88 cjb Coded from new PIPEMAN comments
|
|
25 *
|
|
26
|
|
27 *
|
|
28 * IOMan equates duplicated for PipeMan use
|
|
29 *
|
|
30
|
|
31 NPATHS set 16 ;Maximum local paths per task -- must match IOMan
|
|
32 NameMax set 29 ;Maximum length of a file name
|
|
33
|
|
34 *
|
|
35 * Device Driver Static Storage Layout
|
|
36 *
|
|
37 org V.User
|
|
38 V.List rmb 2 ;Pointer to 1st pipe's pipe buffer
|
|
39 PManMem equ . ;Device driver memory (drive table equivalent)
|
|
40
|
|
41 *
|
|
42 * Pipe Buffer Data Structure
|
|
43 *
|
|
44 org 0
|
|
45 PP.PD rmb 2 ;Pointer to shared path descriptor
|
|
46 PP.Next rmb 2 ;Pointer to next pipe buffer in system map
|
|
47 PP.Prev rmb 2 ;Pointer to previous pipe buffer in system map
|
|
48 PP.Rsrv rmb 2 ;Reserved
|
|
49 PP.Data equ . ;Data buffer begins at this offset
|
|
50
|
|
51 *
|
|
52 * Unique Path Descriptor Variables
|
|
53 *
|
|
54 org PD.FST
|
|
55 *** PP.Read must have bit 4 clear; PP.Writ must be PP.Read XOR 4
|
|
56 PD.Read equ .
|
|
57 PD.RPID rmb 1 ;Process ID of reader waiting on signal
|
|
58 PD.RCT rmb 1 ;Number of blocked readers
|
|
59 PD.RSIG rmb 1 ;Signal to send reader
|
|
60 PD.REOR rmb 1 ;Read EOR character
|
|
61 PD.Writ equ .
|
|
62 PD.WPID rmb 1 ;Process ID of writer waiting on signal
|
|
63 PD.WCT rmb 1 ;Number of blocked writers
|
|
64 PD.WSIG rmb 1 ;Signal to send writer
|
|
65 PD.WEOR rmb 1 ;Write EOR character (dummy)
|
|
66 *** End of special section
|
|
67 PD.End rmb 2 ;Pointer to end of pipe buffer
|
|
68 PD.NxtI rmb 2 ;Next in pointer
|
|
69 PD.NxtO rmb 2 ;Next out pointer
|
|
70 PD.RFlg rmb 1 ;"Ready" flag
|
|
71 PD.Wrtn rmb 1 ;"Written" flag
|
|
72 PD.BCnt rmb 2 ;# queue elements currently bufered
|
|
73 PD.Own rmb 1 ;Process ID of pipe original creator
|
|
74 PD.Keep rmb 1 ;Non-zero if pipe has been kept open artificailly
|
|
75 PD.QSiz rmb 2 ;Max. elements in queue (copied from OPT section)
|
|
76
|
|
77 *
|
|
78 * Path descriptor option section
|
|
79 *
|
|
80 * Note that PD.Name overlaps with the last byte of PD.ECnt.
|
|
81 * PD.ECnt is copied to PD.QSiz as part of OPEN or CREATE,
|
|
82 * to make room for the pipe name.
|
|
83 *
|
|
84 org (PD.OPT+1)
|
|
85 PD.ESiz rmb 1 ;Size of each queue element
|
|
86 PD.ECnt rmb 2 ;Max. elements in queue (initial position)
|
|
87 org (PD.OPT+3)
|
|
88 PD.Name rmb NameMax ;Name buffer for named pipe.
|
|
89
|
|
90 *
|
|
91 * Device Descriptor definitions
|
|
92 *
|
|
93 IT.PDC equ $12 ;Pipe device class (like IT.DTP, IT.DVC)
|
|
94 org IT.PDC
|
|
95 rmb 1 ;Leave room for device class
|
|
96 IT.ESiz rmb 1 ;Size of each queue element
|
|
97 IT.ECnt rmb 2 ;Max. elements in queue (initial position)
|
|
98
|
|
99 * End of pipedefs
|
|
100
|
|
101 opt l
|
|
102
|