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
--- a/lib/sys6809l1.a	Wed Jan 13 05:25:36 2010 +0000
+++ b/lib/sys6809l1.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
--- a/lib/sys6809l2.a	Wed Jan 13 05:25:36 2010 +0000
+++ b/lib/sys6809l2.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