Mercurial > hg > Members > kono > nitros9-code
changeset 2332:594d292e1788
added pipedefs
author | boisy |
---|---|
date | Wed, 13 Jan 2010 05:33:18 +0000 |
parents | 954369121d6e |
children | 080b3670b08f |
files | lib/pipedefs.a lib/sys6309l2.a lib/sys6809l1.a lib/sys6809l2.a |
diffstat | 4 files changed, 103 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/pipedefs.a Wed Jan 13 05:33:18 2010 +0000 @@ -0,0 +1,97 @@ +******************************************************************** +* PipeDefs - Pipe File Manager Definitions +* +* $Id$ +* +* Edt/Rev YYYY/MM/DD Modified by +* Comment +* ------------------------------------------------------------------ +* 1988/12/03 Chris J. Burke +* Coded from new PIPEMAN comments. + + NAM PipeDefs + TTL Pipe File Manager Definitions + +* +* IOMan equates duplicated for PipeMan use +* + +NPATHS: SET 16 ;Maximum local paths per task -- must match IOMan +NameMax: SET 29 ;Maximum length of a file name + +* +* Device Driver Static Storage Layout +* + csect + RMB V.USER +V.List: RMB 2 ;Pointer to 1st pipe's pipe buffer +PManMem: EQU * ;Device driver memory (drive table equivalent) + endsect + +* +* Pipe Buffer Data Structure +* + csect +PP.PD: RMB 2 ;Pointer to shared path descriptor +PP.Next: RMB 2 ;Pointer to next pipe buffer in system map +PP.Prev: RMB 2 ;Pointer to previous pipe buffer in system map +PP.Rsrv: RMB 2 ;Reserved +PP.Data: EQU * ;Data buffer begins at this offset + endsect + +* +* Unique Path Descriptor Variables +* + csect + RMB PD.FST +*** PP.Read must have bit 4 clear; PP.Writ must be PP.Read XOR 4 +PD.Read: EQU * +PD.RPID: RMB 1 ;Process ID of reader waiting on signal +PD.RCT: RMB 1 ;Number of blocked readers +PD.RSIG: RMB 1 ;Signal to send reader +PD.REOR: RMB 1 ;Read EOR character +PD.Writ: EQU * +PD.WPID: RMB 1 ;Process ID of writer waiting on signal +PD.WCT: RMB 1 ;Number of blocked writers +PD.WSIG: RMB 1 ;Signal to send writer +PD.WEOR: RMB 1 ;Write EOR character (dummy) +*** End of special section +PD.End: RMB 2 ;Pointer to end of pipe buffer +PD.NxtI: RMB 2 ;Next in pointer +PD.NxtO: RMB 2 ;Next out pointer +PD.RFlg: RMB 1 ;"Ready" flag +PD.Wrtn: RMB 1 ;"Written" flag +PD.BCnt: RMB 2 ;# queue elements currently bufered +PD.Own: RMB 1 ;Process ID of pipe original creator +PD.Keep: RMB 1 ;Non-zero if pipe has been kept open artificailly +PD.QSiz: RMB 2 ;Max. elements in queue (copied from OPT section) + endsect + +* +* Path descriptor option section +* +* Note that PD.Name overlaps with the last byte of PD.ECnt. +* PD.ECnt is copied to PD.QSiz as part of OPEN or CREATE, +* to make room for the pipe name. +* + csect + RMB (PD.OPT+1) +PD.ESiz: RMB 1 ;Size of each queue element +PD.ECnt: RMB 2 ;Max. elements in queue (initial position) + IFGT Level-1 + RMB (PD.OPT+3)-* +PD.Name: RMB NameMax + ENDC + endsect + +* +* Device Descriptor definitions +* +IT.PDC: EQU $12 ;Pipe device class (like IT.DTP, IT.DVC) + csect + RMB IT.PDC + RMB 1 ;Leave room for device class +IT.ESiz: RMB 1 ;Size of each queue element +IT.ECnt: RMB 2 ;Max. elements in queue (initial position) + endsect +
--- a/lib/sys6309l2.a Wed Jan 13 05:25:36 2010 +0000 +++ b/lib/sys6309l2.a Wed Jan 13 05:33:18 2010 +0000 @@ -7,5 +7,7 @@ use os9defs.a use rbfdefs.a use scfdefs.a + use pipedefs.a + use systype.a endsect