Mercurial > hg > Members > kono > nitros9-code
diff defs/pipe.d @ 2802:58ca94b06908 lwtools-port
now built from defs files
author | Boisy Pitre <boisy.pitre@nuance.com> |
---|---|
date | Fri, 01 Feb 2013 19:26:44 -0600 |
parents | defs/pipedefs@e396d4f24b27 |
children | db97356e3648 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/defs/pipe.d Fri Feb 01 19:26:44 2013 -0600 @@ -0,0 +1,96 @@ + IFNE PIPE.D-1 + +PIPE.D SET 1 + +******************************************************************** +* 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 +* + ORG V.User +V.List RMB 2 ;Pointer to 1st pipe's pipe buffer +PManMem EQU . ;Device driver memory (drive table equivalent) + +* +* Pipe Buffer Data Structure +* + ORG 0 +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 + +* +* Unique Path Descriptor Variables +* + ORG 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) + +* +* 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. +* + ORG (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 + ORG (PD.OPT+3) +PD.Name RMB NameMax + ENDC + +* +* Device Descriptor definitions +* +IT.PDC EQU $12 ;Pipe device class (like IT.DTP, IT.DVC) + ORG 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) + +* End of pipedefs + + ENDC +