view lib/pipedefs.a @ 2593:4c3c19ec3257

Added second vhd drive for MESS version 144 and newer. Will not alter performance with older versions of MESS.
author robertgault
date Sat, 24 Dec 2011 13:01:17 +0000
parents 594d292e1788
children
line wrap: on
line source

********************************************************************
* 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