Consolidate license copies
[its.git] / system / fsdefs.40
1 ;;; Copyright (c) 1999 Massachusetts Institute of Technology
2 ;;;
3 ;;; This program is free software; you can redistribute it and/or
4 ;;; modify it under the terms of the GNU General Public License as
5 ;;; published by the Free Software Foundation; either version 3 of the
6 ;;; License, or (at your option) any later version.
7 ;;;
8 ;;; This program is distributed in the hope that it will be useful,
9 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 ;;; General Public License for more details.
12 ;;;
13 ;;; You should have received a copy of the GNU General Public License
14 ;;; along with this program; if not, write to the Free Software
15 ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16
17 .AUXIL
18
19 IFNDEF DEFSYM,[ ;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES.
20                 ;BUT NORMALLY, DEFSYM FOO==BAR DOES FOO==BAR WITH ERROR CHECK.
21 DEFINE DEFSYM X/
22 IRPS Z,,[X]
23 IFNDEF Z,X
24 .ELSE [
25    $$TEM1==Z
26    X
27    IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
28 ]
29 .ISTOP
30 TERMIN TERMIN
31
32 IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1.
33 .MLLIT==1
34 $$TEMP==1
35 ]
36 .ELSE $$TEMP==0
37 \f
38 ;FILE SYSTEM PARAMETERS - APPLIES TO ALL ITS MACHINES
39
40 ;9/5/79 - tut format changed!
41
42 ;MFD INFO
43
44 IFDEF NBLKS,[                   ;MFDBLK KNOWN ONLY IF .INSRT APPROPRIATE PHYSICAL PARAMS FILE
45 DEFSYM  MFDBLK==NBLKS/2-1       ;LOC ON DISK
46 DEFSYM  MFDCYL==MFDBLK/NBLKSC
47 DEFSYM  MFDSRF==<MFDBLK-MFDCYL*NBLKSC>*SECBLK/NSECS
48 DEFSYM  MFDSEC==<MFDBLK-MFDCYL*NBLKSC>*SECBLK-MFDSRF*NSECS
49 ]
50                 ;RANDOM INFO IN MFD
51 DEFSYM  MDNUM==0        ;ASCENDING DIR NUM
52 DEFSYM  MDNAMP==1       ;PNTR TO ORG OF USER NAME BLOCK AREA
53 DEFSYM  MDYEAR==2       ;CURRENT YEAR
54 DEFSYM  MPDOFF==3       ;DE-CORIOLIS CLOCK OFFSET
55 DEFSYM  MPDWDK==4       ;PREFERRED WRITING DISK (PHYSICAL DRIVE #)
56 DEFSYM  MDCHK==5        ;THIS WORD MUST BE M.F.D. (FOR CHECKING)
57 DEFSYM  MDNUDS==6       ;NUMBER USER DIRECTORIES (FOR CHECKING ONLY)
58 DEFSYM  LMIBLK==7       ;TOTAL STG USED BY HACKS LIKE THIS
59                 ;USER NAME BLKS FROM C(MDNAMP) TO END
60 DEFSYM  LMNBLK==2       ;# WDS/BLK
61 DEFSYM  MNUNAM==0       ;6BIT USER NAME
62  ;SECOND WORD OF A USER-NAME BLOCK IS ZERO.
63  ;DECUUO CONTAINS A KLUDGE WHICH DEPENDS ON THIS,
64  ;PLEASE NOTIFY BUG-DECUUO BEFORE CHANGING IT.
65
66 ;TUT INFO
67
68 IFDEF NBLKS,[
69 DEFSYM  TUTBLK==MFDBLK-NTUTBL   ;LOC ON DISK
70 DEFSYM  TUTCYL==TUTBLK/NBLKSC
71 DEFSYM  TUTSRF==<TUTBLK-TUTCYL*NBLKSC>*SECBLK/NSECS
72 DEFSYM  TUTSEC==<TUTBLK-TUTCYL*NBLKSC>*SECBLK-TUTSRF*NSECS
73 ]
74 DEFSYM  TUTBYT==3               ;SIZE OF BYTES (USED TO BE 4)
75 DEFSYM  TUTBP==<440000+TUTBYT_6>,,
76 DEFSYM  TUTEPW==36./TUTBYT      ;NUMBER OF ENTRIES PER WORD
77 DEFSYM  TUTMAX==1_TUTBYT
78 DEFSYM  TUTLK==TUTMAX-1         ;HIGHEST CODE MEANS LOCKED OUT
79 DEFSYM  TUTMNY==TUTLK-1         ;TUT MANY OR MORE REFS
80
81 ;RANDOM INFO IN TUT (AT THE FRONT)
82 DEFSYM  QPKNUM==0               ;PACK #
83 DEFSYM  QPAKID==1               ;PACK ID
84 DEFSYM  QTUTP==2                ;FREE SPACE POINTER TO TRACK AREA.  ADVANCE BY CYLINDERS
85 DEFSYM  QSWAPA==3               ;SWAPPING AREA.  FIRST TRACK OF NON-SWAPPING AREA
86                                 ;NEW FILES WILL NOT BE WRITTEN LOWER THAN THIS.
87 DEFSYM  QFRSTB==4               ;FIRST BLOCK TUT'ED
88 DEFSYM  QLASTB==5               ;LAST BLOCK TUT'ED
89 DEFSYM  QTRSRV==6               ;-1 IF ONLY ALLOCATED DIRS CAN HAVE FILES ON THIS PACK
90                                 ;IF NOT 0 AND NOT -1, SIXBIT NAME OF "SECONDARY" PACK
91                                 ;STG FOR RANDOM INFO ^
92 DEFSYM  LTIBLK==20              ;BYTES MAPPING THE DISK START HERE
93 \f
94 ;UFD INFO
95 ;IF A IS RELATIVE LOCATION OF MFD ENTRY, USER DIR IS LOCATED IN
96 ;TRACK NUMBERED <A-2000+2*MDNUDS>/2  (SEE QFL2)
97
98 DEFSYM  UFDBYT==6               ;SIZE OF BYTES (Do not change!)
99 DEFSYM  UFDBPW==36./UFDBYT      ;NUMBER OF BYTES PER WORD
100
101                 ;RANDOM INFO IN UFD
102 DEFSYM  UDESCP==0       ;FS PNTR TO DESC AREA
103 DEFSYM  UDNAMP==1       ;PNTR TO ORG OF NAME AREA
104 DEFSYM  UDNAME==2       ;USER NAME (FOR CHECKING)
105 DEFSYM  UDBLKS==3       ;LEFT HALF HAS AMOUNT OF SPACE ALLOCATED (NOT USED
106                         ; CURRENTLY BY SYSTEM), RIGHT HALF HAS NUMBER OF BLOCKS USED.
107 DEFSYM  UDALLO==4       ;IF NONZERO, LEFT HALF HAS DISK NUMBER, RIGHT
108                         ; HALF HAS AMOUNT OF SPACE ALLOCATED
109 DEFSYM  UDDESC==11.     ;FIRST LOC AVAIL FOR DESC
110
111         ;UFD DESCRIPTORS
112         ;0 => FREE  1-UDTKMX => TAKE NEXT N
113         ;UDTKMX+1 THRU UDWPH-1 => SKIP N-UDTKMX AND TAKE ONE
114         ;UDWPH => WRITE-PLACE-HOLDER
115         ;40 BIT SET => LOAD ADDRESS.  LOWER 5 BITS PLUS NEXT NXLBYT (2)
116         ;  CHARS (17 BITS IN ALL)
117         ;40 BIT & 20 BIT => "FUNNY" BLOCK IF DMDSK.  WHAT IS THIS, ANYWAY?
118         ;END BY 0
119
120         ;IF LINK DESCR
121         ;6 CHAR OR UNTIL ; = SYS NAME.  MUST HAVE NO CHAR = 0 IN THIS OR NEXT 2 NAMES
122         ;NEXT CHAR QUOTED BY : (FOR NAMES WITH : OR ;)
123         ;NEXT CHAR N1
124         ;NEXT CHAR N2
125         ;END BY 0
126
127 DEFSYM  UDTKMX==12.             ;HIGHEST "TAKE N" CODE
128 DEFSYM  UDWPH==31.              ;PLACE HOLDER ON WRITE (OR NULL FILE)
129 DEFSYM  UDSKMX==UDWPH-UDTKMX-1  ;# BLOCKS THAT CAN BE SKIPPED
130 DEFSYM  NXLBYT==2               ;# ADDITIONAL BYTES FOR LOAD ADDR
131                                 ;IN SYSTEM THIS IS DEFINED AT FRONT OF FILE
132
133         ;NAME AREA DATA
134
135 DEFSYM  LUNBLK==5       ;WDS/NAME BLK
136 DEFSYM  UNFN1==0        ;FIRST FN
137 DEFSYM  UNFN2==1        ;SECOND FN
138 DEFSYM  UNRNDM==2       ;ALL KINDS OF RANDOM INFO
139 DEFSYM          UNDSCP==1500,,          ;PNTR TO DESC
140 DEFSYM          UNPKN==150500,,         ;PACK #
141 DEFSYM          UNLINK==1               ;LINK BIT
142 DEFSYM          UNLNKB==220100,,
143 DEFSYM          UNREAP==2               ;IF 1, DONT REAP FILE
144 DEFSYM          UNWRIT==4               ;OPEN FOR WRITING
145 DEFSYM          UNMARK==10              ;GC MARK BIT
146 DEFSYM          UNCDEL==20              ;DEL WHEN CLOSED
147 DEFSYM          DELBTS==20              ;DELETED -- IGNORE
148 DEFSYM          UNIGFL==24              ;BITS TO IGNORE FILE
149 DEFSYM          UNWRDC==301200,,        ;WORD COUNT OF LAST BLOCK MOD 2000
150 DEFSYM          UNDUMP==400000          ;HAS BEEN DUMPED
151 DEFSYM  UNDATE==3       ;DATE ETC.
152 DEFSYM          UNTIM==2200,,           ;COMPACTED TIME OF CREATION
153 DEFSYM          UNYMD==222000,,         ;Y,M,D OF CREATION
154 DEFSYM          UNMON==270400,,         ;MONTH
155 DEFSYM          UNDAY==220500,,         ;DAY
156 DEFSYM          UNYRB==330700,,         ;YEAR
157 DEFSYM  UNREF==4        ;REFERENCE DATE SAME AS LEFT HALF OF UNDATE
158 DEFSYM          UNREFD==222000,,        ;REFERENCE DATE BYTE POINTER
159 DEFSYM          UNAUTH==111100,,        ;MFD INDEX OF AUTHOR, ALL 1=> NO DIRECTORY
160 DEFSYM          UNBYTE==001100,,        ;FILE BYTE SIZE AND LENGTH INFO.
161                         ;LET S=BITS PER BYTE, C=COUNT OF UNUSED BYTES IN LAST WD
162                         ;400+100xS+C    S=1 TO 3        C=0 TO 35.
163                         ;200+20xS+C     S=4 TO 7        C=0 TO 8
164                         ;44+4xS+C       S=8 TO 18.      C=0 TO 3
165                         ;44-S           S=19. TO 36.    C=0
166                         ;NOTE THAT OLD FILES HAVE UNBYTE=0 => S=36.
167 \f
168 IF1 IFDEF NUDSL, IFG NUDSL*LMNBLK+LMIBLK-2000,.ERR MFD LOSES
169
170 IFN $$TEMP,EXPUNG DEFSYM