head     1.1;
branch   ;
access   ;
symbols  V36_3:1.1;
locks    ; strict;
comment  @# @;


1.1
date     89.04.18.15.44.41;  author steveb;  state Exp;
branches ;
next     ;


desc
@@



1.1
log
@Initial revision
@
text
@MANIFEST
$(

   // coroutine stack sizes

   access.stsize     = 150
   locate.stsize     = 110
   rename.stsize     = 160
   create.stsize     = 150
   delete.stsize     = 110
   kill.stsize       = 25
   disc.stsize       = 100
   exobj.stsize      = 80
   exnext.stsize     = 80
   comm.stsize       = 100
   parent.stsize     = 80
   closedown.stsize  = 80 
   rd.stsize         = 100

   // block offsets

   buf.prefix      = 6        // size of buffer block prefix
   buf.chain       = 0        // chain linking for queues
   buf.co          = 1        // owning coroutine
   buf.pkt         = 1        // owning packet
   buf.state       = 2        // state on pending queue
   buf.next        = 3        // status after disc action
   buf.key         = 4        // key on pending and valid queues
   buf.buf         = 5        // pointer at actual buffer for getblock

   buf.valid       = TRUE     // buffer valid in freeblock
   buf.invalid     = FALSE    // buffer invalid....

   grab            = TRUE     // readblock grab before write....
   wait            = FALSE    // .... options

   // fixed disc block offsets

   b.file.type     = 0
   b.file.ownkey   = 1
   b.file.highseq  = 2
   b.file.datasize = 3
   b.file.firstkey = 4
   b.file.checksum = 5
   b.file.database = 6


   b.data.type     = 0
   b.data.hdrkey   = 1
   b.data.seq      = 2
   b.data.datasize = 3
   b.data.nextkey  = 4
   b.data.checksum = 5
   b.data.database = 6


   b.dir.hashtab   = 6


   // lock offsets

   lock.link       = 0
   lock.key        = 1
   lock.access     = 2
   lock.task       = 3
   lock.volnode    = 4
   lock.upb        = 4

   altered.lock    = 0
   exclusive.lock  = -1
   shared.lock     = -2

   // queueing element offsets

   quel.link       = 0
   quel.co         = 1

   // file types

   t.deleted       = 1
   t.short         = 2
   t.long          = 4
   t.data          = 8
   t.list          = 16

   st.file         = -3
   st.root         = 1
   st.userdir      = 2

   // Protection bits
   prot.hidden     = 128
   prot.script     = 64
   prot.pure       = 32
   prot.archieve   = 16      
   prot.read       = 8
   prot.write      = 4
   prot.execute    = 2
   prot.delete     = 1

   // offsets into info vector for examine functions

   info.key        =  0       // disc key on drive
   info.dtype      =  1       // directory entry type
   info.name       =  2
   info.protect    = 29       // protection bits
   info.type       = 30       // actual entry type
   info.bytesize   = 31       // size in bytes
   info.blocksize  = 32       // number of blocks used
   info.date       = 33
   info.comment    = 36
   info.upb        = 56       // upper bound of vector

   // offsets into the info vector for the discinfo
   // action and the associated reply manifests

   discinfo.errors =  0       // soft errors
   discinfo.unit   =  1       // unit number
   discinfo.state  =  2       // disc state
   discinfo.space  =  3       // space available in blocks
   discinfo.used   =  4       // space used in blocks
   discinfo.alloc  =  5       // block size in bytes
   discinfo.type   =  6       // disk type
   discinfo.vol    =  7       // disc volume node
   discinfo.inuse  =  8       // zero if not in use
   discinfo.size   =  8       // upb

   discstate.writeprotected   = 80  // disc is write protected
   discstate.notvalidated     = 81  // disc is not validated
   discstate.validated        = 82  // disc is validated
   
   type.dos    = ('D' << 24) | ('O' << 16) | ('S' << 8)
   type.kickstart   = ('K' << 24) | ('I' << 16) | ('C' << 8) | 'K' 
   type.ndos   = ('N' << 24) | ('D' << 16) | ('O' << 8) | 'S'
   type.unreadable = ('B' << 24) | ('A' << 16 ) | ('D' << 8) 
   type.busy   = ('B' << 24) | ('U' << 16 ) | ('S' << 8) | 'Y'
   type.rawcon = ('R' << 24) | ('A' << 16) | ('W' << 8)
   type.con    = ('C' << 24) | ('O' << 16) | ('N' << 8)
   type.nodisk = -1

   motor.timeout   =  3       // 3 second timeout

   comm.upb        = 20       // Upper bound of comment field in lwords
$)


@
