UNIVERSAL DBSDCL - PARAMETERS FOR DBMS-10 & DBMS-20 SEARCH COPYRT SALL ; Copyright (C) 1974, 1984 by ; Digital Equipment Corporation, Maynard, Mass. ; ******************************************************************* ; NOTE!!! This module is shared by the COBOL and DBMS products. Any ; modification by either group should be immediately reflected in the ; copy of the other group. ; ******************************************************************* SEARCH GENDCL SEGSYM ;;; ALL DBMS COMPONENTS ARE MAINTAINED AT SAME VERSION DEFINE DBVER ;[1147] DEFINE VERSION(AAA)< LOC 137 DBVER ;[1147] RELOC > SUBTTL DBCS CONTEXT SWITCHES ;;; I AM NOT SURE IF THERE IS A "CORRECT" WAY TO DO THIS OR ;;; IF THIS IS THE CORRECT WAY ;;; BUT THE VARIOUS DBCS-USING UTILITIES DO NEED CERTAIN ;;; TAILORED MODULES ;;; IN PARTICULAR, GATE, PORT, & LEAVE ;;; SO, IN THE INTEREST OF MINIMIZING REDUNDANCY EACH ;;; OF THESE (AND EVENTU OTHERS?) WILL BE PREFIXED BY THIS MACRO DEFINE INIUTIL< IFNDEF DBINFO, IFNDEF DBMEND, IFNDEF V3DBMS, IFNDEF DBCONV, DBCS==1 IFN DBINFO!DBMEND!V3DBMS!DBCONV, IFN DBINFO, IFN DBMEND, ;V6 uses MNDDCL not MNDSYM IFN V3DBMS, IFN DBCONV, > SUBTTL MISCELLANEOUS SYMBOLS ;;; REC TYP ID'S--MACRO DEFINED IN SCHIO EXTERN TID.AL,TID.CL,TID.DL,TID.FL,TID.IL,TID.ML,TID.VL,TID.YL EXTERN TID.OL,TID.RL,TID.SL,TID.UL,TID.WL,TID.TL,TID.EL,TID.KL ;;; SIMILARLY, THE SET TYPES ARE DEFINED= $ OWNER . MEM EXTERN $S.A,$S.R,$S.U,$S.E,$S.Y EXTERN $R.D,$R.W,$R.O,$R.M EXTERN $A.W,$D.C,$D.T,$O.M,$O.Y,$M.V,$V.C,$E.K ; KEY VALUES ASSOCIATED WITH KEYWORDS PASSED AS ARGUMENTS TO DBCS ; THIS IS MASTER DEFINITION -- REFFED EVERYWHERE ELSE DEFINE KEY(KEYARG),<[$$'KEYARG]> ;MECH OF GETTING AT THEM HALF==777777 ;NEED HALF WORDS OF THESE GUYS OCCAS $$ONLY==-^D10 $$SELECT==-^D11 $$FIRST==-^D12 $$LAST==-^D13 $$PRIOR==-^D14 $$NEXT==-^D15 $$DUPLIC==-^D16 ;[6%467] Order important for next 4 definitions ($$ALL thru $$SET) ;[6%467] used in range checks for currency suppression arguments $$ALL==-^D17 $$AREA==-^D18 $$RECORD==-^D19 $$SET==-^D20 $$UPDATE==-^D21 $$RETRIEV==-^D22 $$RUNUNIT==-^D23 $$PROT==-^D24 $$EXCLUSIVE==-^D25 $$CURR==-^D26 $$SHARED==-^D27 $$JOURNAL==-^D28 $$TRANSACTION==-^D29 ;;; MISC SYMBOLS PART OF DATA BASE PROCESSING GREG (BAS,15) ;SCHIO HAS NO STATIC LOW SEG SKECHN==0 PAGWID==^D26 LINWID==^D35-PAGWID DPVMOD==1000 ;DIR PAG FLAG TO LIVE WITH PAG# IN ; BH.PAG(TBUF) SYSNMID==1 SYSTID==40 ;RESERVE THESE FOR SYSTEM USE TID.ASR==1 ;TID OF AREA-STATUS REC TIDMAX==777 ;REC TYP ID IS 9 BIT FIELD DOFFMAX==MAX.XB ;RESTRICT TO THIS VAL PURELY FOR CONVEN ;...SHOULD BE AMPLE IS 120 USEMAX==20 ;FOR DYN ALLOC OF USE CONDITIONS TEXMAX==^D100 ;ALLOCATE 20 WORDS A SHOT LOKMAX==5 ;PRIVACY KEYS/LOCKS, SCAN 5 CHARS ONLY SIZ.MSK==3 ;NUMBER OF MASK WORDS AREAMAX==-1 ;NUM. AREAS REP'ABLE IN BITS AVAIL ;(NEED ONE BIT FOR TABLE RESOURCE) STKPFRM=^D512 ;SIZE OF PAGE STACK FRAME SHORT==6 ;FORTRAN NAMES MAX LEN NAMLEN==^D30 ;USUAL MAX NAME LEN MAXFS20=^D120/CPW MAXTS20==^D45/CPW ;ALWAYS OF FORM DSK:NAME-ONLY.TMP MAX.SS==10 ;AT RUN-TIME FOR SETDB/UNSET ; (RIGHT PLACE?) FOPSIZ==7 ;FILOP ARG BLK SIZE TIOSIZ==6 ;L/E BLK SIZE FOR TMP AREAS DF.POLL==^D100000 ;DEFAULT POLL RATE IN MSEC DF.THRESH==^D50 ;DEFAULT THRESHOLD IN PAGES SUBTTL CERTAIN SCHEMA FIELDS CAN TAKE ON A RANGE OF VALUES ;;; USAGE MODES -- EVEN VALS=RETR /ODD=UPDATE UM.COR==0 ;CONCUR RETR UM.COU==1 ;CONC UPDATE UM.PRR==2 ;PROT RETR UM.PRU==3 ;PROT UPD UM.EXR==4 ;EXCL RETR UM.EXU==5 ;EXCL UPDATE UM.UDED==6 ;EXCLUDED...FOR DBMEND ; *** THE INDIV CASES UM%OIP==1B0 ;SIGN BIT INDICS OPEN IN PROCESS UM%TEMP==1B1 ;AREA OPEN FOR TEMP USAGE UM%ASR=1B2 ;INDIC (DURING OPEN) THAT ASR ACTU ; UPDATED UM%CON==1B3 UM%PRO==1B4 UM%EXCL==1B5 UM%RETR==1B6 UM%UPD==1B7 UM%OTH==1B8 ;DBMOC DETERM THAT OTHER R-U CURR HAVE ; THE AREA OPEN UM%DIODE=1B9 ;ONE-DIRECTIONAL UM, IE. ONLY CHECK IF ; SOME ONE ELSE IS UM%CON UM%AID=1B10 ;THERE WAS AN AID FILE REQUEST UM%XCLU==1B11 ;DON'T EVER WRITE IN THIS AREA (DBMEND) ;;; LOCATION MODES LM.NONE==0 ;NOT POSSIBLE LM.DIR==1 LM.VIA==2 LM.CAD==3 ;CALC, DUPS ALLOWED LM.CAND==4 ;CALC, DUPS NOT ALLOWED ; LOCKING CODES LK%ARE==1B35 ;USE AREA LOCKS LK%PAG==1B34 ;USE PAGE LOCKS LK%RET==1B33 ;LOCK FOR RETRIEVAL (SHARED) LK%UPD==1B32 ;LOCK FOR UPDATE (EXCLUSIVE) LK%UPG==1B31 ;UPGRADE LOCK (SHRD TO EXCL) LK%OPN==1B30 ;LOCK FOR OPEN (USE ENQ/DEQ) LK%JRN==1B29 ;LOCK FOR JOURNAL LK%NRL==1B28 ;DON'T RELEASE SHARED LOCK ; UNTIL CLOSE TRANSACTION LK%CBH==1B27 ;CLEAR BUFFER HEADER (BH.PAGE) ; AFTER COPYING PAGE NUMBER. ; SET TO INDICATE THAT THE ; BUF. HDR. IS MERELY BEING ; USED TO PASS ARGUMENTS LK.WAIT==500 ;TIME TO WAIT FOR A LOCK (MILLI-SECS) ;;; SET MEMBERSHIP SH.AUT==0 ;MEMBERSHIP AUTOMATIC SH.MAN==1B35 SH.MND==0 ;MANDATORY SH.OPT==1B34 SH.AM==0 SH.MM==1 SH.AO==2 SH.MO==3 ;;; SET ORDERING OR.NONE==0 OR.1ST==1 OR.LAST==2 OR.NEXT==3 OR.PRIOR==4 OR.SORT==5 ;MEANS NO PHRASE FOLLOWS "ORDER SORTED" OR.WIN==6 ;"WITHIN" PHRASE FOLLOWS OR.DBK==7 ;DBKEY PHRASE FOLLOWS OR.DUP==10 ;DUPS PHRASE FOLLOWS SRTORD==4 ;NUM OF SORT ORDERINGS ;;; KEY-COMPARISON CONTROL KC.USER==0 ;DATA FIELDS KC.KED==1 ;DBKEY OF ACTUAL RECORD KC.KEX==2 ;DBKEY OF RECORD AS ENCODED IN INDEX BLK KC.TID==3 ;TID/RECNAME OF RECORD (FROM LINHDR ; IN EFFECT) KC.TIX==4 ;TID/RECNAME AS ENCODED IN INDEX BLK KC.MAX=4 ;;; CONTROL OF ORDERING OF DUP RECS DU.ARB==0 ;ORDER THEM ANY OLD WAY DU.1ST==1 ;PUT EM FIRST DU.LAST==2 DU.NOT==3 ;DONT ALLOW ;;; DATA-NAME KEY TYPES KEY.ASC==1B35 KEY.DESC==1B34 KEY.RANG==1B33 ;IS RANGE KEY KEY.CALC==1B32 KEY.NORD==1B31 ;ON IF DATUM CTLS MEMBER NOT IN CURR SS KEY.SOR=1B30 ;IN EFFECT, IMAGE OF VIA.SOR ;;; MEMBER USAGE CTL IS VIA/FOR: VIA.DIR==1 ;DITTO FOR LM = DIR VIA.CALC==2 ;DITTO FOR LM = CALC VIA.MEM==3 ;VIA BLK FROM SOS THRU MEMBER (IE. LM ; OF OWNER VIA) VIA.SOR==4 ;THIS VIA BLK ENCODES SORT KEYS ;;; WHAT IS SET OCC SELECT SOS.CUR==0 ;0 SINCE THE DEFAULT ALSO SOS.LMO==1 ;;; DATA TYPE CONSTANTS ;;; PRECISION/ SCALE CONSTANTS ;;; X=FIXED L=FLOAT B=BIN D=DEC R=REAL C=COMPLEX ; *** BIT COMPONENTS TY.FLO==1B35 TY.BASE==1B34 TY.PLEX==1B33 ; *** ACTUAL POSSIBLE TYPES DT.STRUC==0 ;NO DATA TYPE MEANS SIZE PHRASE DT.DBK==^D9 DT.D6==^D10 DT.D7==^D11 DT.D9==^D12 DT.MAX=^D12 ABSXBR==^D35 ABSXDR==^D10 ABSLBR==^D27 XBR.1M==^D35 XBR.1D==^D10 ;SAME THING IN DECIMAL PREC XBR.2M==^D71 XBR.2D==^D18 ;DITTO BEFORE XDR.MAX==^D18 ;;; THE COMPLEX PREC CHARAS CAN BE DET FROM THE FLOAT COMPON LBR.1M==^D27 LBR.2M==^D62 SUBTTL EXECUTION-RELATED CONSTANTS ;;; CENTRALLY DEFINE THE SET OF USER ENTRY CLASSES, & CONCOMITANT ;;; WITH THAT ;;; EACH VERB (CODASYL STAND) AND EXPLIC ENTRY PT IS GIVEN A CODE DEFINE VERBS.< ;;; KLUDGE TO GET EXACTLY 2 WORDS PER ENTRY VERB. (HOST) ;LET THESE HAVE STATUS CODE OF ZERO VERB. (CLOSE) VERB. (DELETE) VERB. (FIND) VERB. (USER) ;FORMERLY "FREE" VERB. (GET) VERB. (UNUSED) ;FORMERLY "KEEP/RETAIN" VERB. (INSERT) VERB. (MODIFY) VERB. (OPEN) VERB. (OPNT) ;USE UNUSED SLOTS VERB. (REMOVE) VERB. (STORE) VERB. (CLOTR) VERB. (DELTR) VERB. (BIND) VERB. (CALL) > DEFINE VERB.(TEXT.)< IFDEF XSTAT.,< GETLEN IFE LEN.-3, IFE LEN.-4, IFE LEN.-5, IFE LEN.-6, IFE LEN.-7, IFE LEN.-8, > IFNDEF XSTAT., > VERBS. BLKSIZ (CODE.V) ;NOT A TRUE SIZE BUT... ;;; SUPPRESS CLAUSE CODES AND BITS SUP.ALL=$$ALL&HALF SUP.REC==$$RECORD&HALF SUP.AREA==$$AREA&HALF SUP.SET==$$SET&HALF R.SUP==1B35 A.SUP==1B34 S.SUP==1B33 ;;; FIND3 (POSITIONAL) CODES F3.OFF==1 F3.1ST==$$FIRST&HALF F3.LAST==$$LAST&HALF F3.PRIOR==$$PRIOR&HALF F3.NEXT==$$NEXT&HALF ;;; CLOSE CODES CL.JRN==$$JOURNAL&HALF CL.RUN==$$RUNUNIT&HALF CL.AREA==$$AREA&HALF CL.ALL==$$ALL&HALF ;;; DELETION CODES DL.ALL==$$ALL&HALF DL.ONL==$$ONLY&HALF DL.SEL==$$SELECTIVE&HALF DL.SLF==0 ;DELETE JUST SELF, THE IMPLICIT OPTION ;;; OPEN-AREA CODES OP.PROT==$$PROT&HALF OP.EXCL==$$EXCL&HALF OP.RETR==$$RETR&HALF OP.UPD== $$UPDA&HALF OP.CON== 0 ;THE IMPLIC OPTION OP.JRN==$$JOUR&HALF OP.ALL==$$ALL&HALF SUBTTL EXECUTION-CONTROLLING FLAGS (SOME DEFINED BY SCHEMA) ;;; FLAG VALUES FOR LEFT HALF OF PORT VECTOR (IE. VFLAGS(X)) ; *** IMPORTANT: THESE 3 ACT. FLAGS RESIDE WITH THE VAC. FLAGS ; IN ACT.XC(SS) AS DETERMINED BY THE USER'S DMCL ENTRIES ; *** BUT THESE HAVE NO IMAGE IN EV.FLAG BUT THE VAC. ONES DO ; *** IN PT OF ACT, EV.FLAG PLACES TOT DIF MEANINGS ON B30-B32 ACT.UAN==1B32 ;UNANTICIPATED EXCEP, EVERYTHING BUT ; 307=ESA & 326=NRS ACT.ALL=1B31 ;ANY EXCEPTION ACT.SYS==1B30 ;THE SYSTEM ERROR (APPROX. 40+) ACT.JRN==1B29 ;SUPPORT OF NOTE JOURNAL ; *** END IMPORTANT ; *** THE DMCL CAN DEFINE ACTIONS FOR EXCEPTIONS ON A VERB BASIS VAC.UPD==1B35 ;ERROR DURING AN UPDATE VERB VAC.CALL==1B34 ;ERROR DURING AN EXPLIC CALL (EG JSTRAN) VAC.BIND==1B33 ;ERROR DURING BINDING VACBITS==VAC.UPD!VAC.CALL!VAC.BIND ; *** OTHER VERB-BASED SWITCHES SCH.IO==1B32 ;TURNED ON TO INDIC X/BAS KLUDGE ; INVOLVED OK.NOSS==1B31 ;AT MOMENT SBIND ONLY OK.SUS==1B30 ;OK TO ENTER AT THIS EP EVEN THO ; SYS UNDEF STATE CRU.MUST==1B29 ;CERTAIN VERBS REQUIRE THAT CUR.RU ; HAVE A VALUE JR.OVU==1B28 ;ENTRY IS OTHER THAN A VERB UNIT & ; TOUCHES JOURNAL ;IE. JRDATA/JRTEXT/JSTRAN/JETRAN ;ADDIT, IN DBPORT IT IS TAKEN TO MEAN ;ANY ENTRY THAT CONTEX ENTERS THIS STATE ;EG. ANY VERB IF NOT JOURNALING ENQ.J==JR.UPD ;DEFINE AS SAME THING JR.UPD==1B27 ;DOES THE VERB UPD J (& DATA BASE) ENQ.X==1B26 ;NEED TO ENQ EXCL IS EQUIV TO JR.UPD ; EXCEPT ;WHEN (OP/CL) PROCESSING J LAB ONLY ENQ.SH==1B25 ;ENTRY DOES NO UPDATES BUT DOES ; ACCESS DB ENQ.ALT==1B24 ;(EG. OPEN) ENTRY CAN ALTER SIMULT OF ; R-U, SO PLAY SAFE ;IE. STRONGER THAN ENQ.X ; ENQ.NO==NOT(ENQ.X&ENQ.SH) ;IE. A SERVICE ROUTINE SUCH AS STATS$ ; *** NO MORE ROOM IN THIS FLAG VECTOR !!! ;;; INTRA-VERB SWITCHES... ;;; DEFINE LEFT-SIDE SS AS THE FLAG REGISTER WITH THESE FLAGS ;;; (18 MAX): ; *** ALSO... LET B0-2 BE COMMAND SPECIFIC (REFFED ONLY IN XXXX$ ; ENTRY PTS) ; *** USER-RECORD-COMMANDS LINK.BIT==1B0 ;AT LEAST ONE ACTUAL LINKING OPER ; (IE.INS/REM) IN THIS VERB INS.BIT==1B1 ;IS CALL TO CURN.U NECES CA.BIT==1B2 ;NECESSARY TO (RE)CALC THIS REC BECAUSE ; ITS KEY HAS CHANGED ; *** BIND CLASS NAB.BIT==1B0 ;NOOP ACTUBIND (IE. FOR DBINFO VIA ; SSBIND) OSS.BIT==1B1 ;GUARAN DON'T PUNISH WRONG SUB-SCH IF ; BIND FAILURE ; UNUSED==1B2 ; *** OPEN CLASS XCLU.BIT==1B0 FOPN.BIT==1B1 ;ALLOW FH.STAT IN ASR TO BE -1 JRO.BIT==1B2 ;Open journal read only ITR.BIT==1B0 ;INCOMPLETE TRANSACTION ; REMAINS IN THE JOURNAL ; UNUSED==1B1 ; UNUSED==1B2 TRC.BIT==1B0 ;TRACE TRANSACTIONS ; *** THOSE NOT COMMAND-SPECIFIC RB.BIT==1B3 ;FORCE TMP.RB TO BE UPDATED CNEX.BIT==1B4 ;HAVE USED A CANON-NEXT PTR IN GDETTB NORD.BIT==1B5 ;SET IN DBKITM TO INDIC A CTLER ; OF INVIS SORTED-SET MODDED JRV.BIT==1B6 ;JOURNALING BY VERB BMO.BIT==1B7 ;BUFFER HAS BEEN MODDED DMO.BIT==1B8 ;DSK HAS BEEN MODDED XWX.BIT==1B9 ;IF ON AT DBSABO, MEANS HAVE GOTTEN ; EXCEPTION WHILE PROC EXCEP UKY.BIT==1B10 ;USER-INTRODUCED DATA BASE KEYS MUST ; BE SPECIAL CASED UCR.BIT==1B11 ;UNABLE TO COMPL RESTOR IF ON WHEN ; EXCEP OCCURS VRO.BIT==1B12 ;THIS VERB IS RETRIEVAL ;...ONLY MND.BIT==1B13 ;Called from DBMEND DEQ.BIT==1B14 ;THIS VERB MUST CALL IU.DEQ IF ON IN ; DBLEAV EOF.BIT==1B15 ;SET WHEN A PAGE ACCESS (IN GET.OS) ; IS BEYOND EOF DFT.BIT==1B16 ;INDICATES DEFAULT TRN OPN NJE.BIT==1B17 ;DON'T WRITE TRAILER IN JRN ;;; SUB-SCHEMA STATUS WORD (IE. INTER-VERB SWITCHES) ; *** PERM LOC IS PSW(SS) (IE. PROGRAM-STATUS-WORD PER SS) ; *** RIGHT SIDE ONLY, IE. JUST 18 SWITS AT MOST ; *** INTRA-VERB LOC IS THE LEFT-SIDE OF REG X PSW.TR==1B35 ;CHKPTING FOR TRANS ONLY PSW.VER==1B34 ;CHKPTING PER VERB PSW.CBUU==1B33 ;CANT BACKUP UPDATES PSW.SUS==1B32 ;SYS IN UNDEF STATE (EG. AFTER ERROR ; AND CBUU SET) PSW.MTA==1B31 ;MTA JOURNAL ;[1107] PSW.MTA never set in V6 or later PSW.JOSH==1B30 ;JOURNAL RETAINED SHARED PSW.LIM==1B29 ;ACTIVE TRANSAC LIM PSW.TAC==1B28 ;ON IF "BETWEEN" JSTRAN&JETRAN PSW.RESH==1B27 ;ONE OR MORE AREAS OP IN RETR OR UPD U-M ;IE. ANY "VULNERABLE" SHARED AREAS ; (INCL J) PSW.UPSH==1B26 ;1 OR MORE AREAS OPENED PRU OR COU ;IE. YOUR UPDATES CAN AFFECT OTHER R-U PSW.ENQ==1B25 ;TURNED ON/OFF ONLY BY IU.ENQ AND IU.DEQ PSW.CNV==1B24 ;INDIC DEALING WITH CONVERSION ; DB...NAME.??N PSW.RAN==1B23 ;RETRIEVAL ACCESS TO ; ...NON-EXISTENT PAGES ALLOWED ; ... (BUT NOT PAGE CREATION) PSW.JRET==1B22 ;J OPENED ONLY FOR RETR PSW.EAV==1B21 ;ENVIRONMENT ALTERING VERB(OPEN,CLOSE) PSW.AFE==1B20 ;AID FILE EMPTY. SET WHEN AID ; FILE CREATED CLEARED ON FIRST ; CALL TO PUT.RDY PSW.NRL==1B19 ;SET BY DBMEND /DEL TRAN ; MEANS DONT RELEASE LOCKS AT CLODEF SUBTTL GENERAL STRUCTURES OF THE DATA BASE SYSTEM ;;; FORMAT OF AN AREA STATUS REC (ALWAYS 1STP/1 OF AREA) ;;; STATUS REC IS IN EFFECT FILE(AREA) HEADER FIELD (FH.STAT) ;0 IF OK, "UNDEF" IF EDITS IN PROGRESS BYTES (FH,<,>) FH%AID==1B17 ;AREA WANTS AN AID FILE FH%PRS==1B16 ;OPEN UPDATE NOT SUPERCEDE ;CLOSE BUT DONT DELETE TMP FILE FH%NPR==FH%AID ;ALL FLAGS BUT "PRS" BLKSIZ (SIZ.FH) ;;; FORMAT OF A PAGE'S PAGHDR FIELD (PH.NUM) ;PAG NUM OF THIS PAGE BYTES (PH,<,<1STF,^D18>>) ;HUSE IS HIGHEST LIN NUM USED SO FAR ;THE (1STF)TH WORD OF THE PAGE IS THE ; 1ST TO CONTAIN NO DATA BLKSIZ (PH.CALC) ;(FIXED) SIZED IS ALSO OBV OFFS OF THAT ; WHICH FOLLOWS: 0-N CALC BUCK WORDS ;;; FORMAT OF A LINE HDR WORD (LH,<,,>) ;;; FORMAT OF A DATABASE KEY WORD (DBK,<,,>) SUBTTL SORTED-SETS ;;; CONSTANTS TID.XB==2 ;UPPER LEVEL INDEX BLK TID.XL==3 ;LEAF INDEX BLK (PTS AT DATA RECORDS) TID.X6L==4 ;VERSION 6 THIS BUOY HAS OWNER PTR MAX.XB==^D120 ;INDEX BLKS ARE MIN(120,16*XNSIZ) BIG FAU.XN==^D16 ;WILL TRY TO PUT 16 NODES IN INDEX BLK MAX.XL==10 ;MAX SIZ OF INTERVAL BETWEEN "BUOYS" ; *** FOR MOMEMT INDEX BLK HAS NULL HDR HDR.XB==0 ;;; FORMAT OF A KEY-NODE IN AN INDEX BLK FIELD (XN.SON) ;PTS AT INDEX-BLK/DATA-REC AT NEXT ; LOWER LEVEL BLKSIZ (XN.KEY) ;ALSO 1ST WORD OF VAR LEN FIELD ;;; FORMAT OF A KEY-LEAF (OR "BUOY") FIELD (XL.NEXT) FIELD (XL.PRIOR) FIELD (XL.CNT) ;NUM OF DATA-RECS IN THIS INTERVAL SIZ.XL==SIZ.X6L-1 FIELD (XL.OWNER) BLKSIZ (SIZ.X6L) REPEAT 0,< ;[1107] Remove Tape Journal support SUBTTL DAEMDB RELATED SYMBOLS ;;; DAEMDB ACTION DRIVING CODES OFFS.==10 ;MAKE COINCIDENCE SOMEWHAT LESS LIKELY FIELD (DADOPEN) FIELD (DADCLJ) ;CLOSE-J FLUSHES ALL FROM JT FIELD (DADCLRU) ;CLOSE-RU JUST COPS THRU JP.BIX-1 BLKSIZ (CODAD) ;;; ERROR CODES FROM DAEMDB FIELD (DAXOK) ;SUCCESSFUL RETURN FIELD (DAXNQD) ;NO QUASAR OR DAEMDB FIELD (DAXMIX) ;DBCS SOFTWARE ERROR DURING MAGTAPE INIT FIELD (DAXAJD) ;ALREADY JMDISK DONE BLKSIZ (CODAX) ;Basic DAEMDB/QUASAR "Create" Message Description BYTES (QE,<,>) ; Word Count,,Message Type .QOCQE==37 FIELD (QE.FLG) ; Flags FIELD (QE.UDF) ; User Defined Field (not used) FIELD (QE.FLW) ; Flag Word FIELD (QE.ARG) ; Argument Count FIELD (QE.QT) ; Queue Type Block... .QCQUE==24 FIELD (QE.OBJ) ; Object Code (.OTDBM) .OTDBM==21 FIELD (QE.FD) ; File Description Block... .QCFIL==10 OFSFD.==OFFS. ; File Specification (TOPS20) FIELD (QE.FIL,11) ; ...asciz text equivalent OFFS.==OFSFD. ; File Specification (TOPS10) FIELD (QE.STR) ; ...Structure Name in SIXBIT FIELD (QE.NAM) ; ...File Name in SIXBIT FIELD (QE.EXT) ; ...Extension in SIXBIT FIELD (QE.PPN) ; ...Project,,Programmer Number FIELD (QE.NUS,5) ; ...(not used) FIELD (QE.FRR) ; Limit Block... .QCFRR==37 FIELD (QE.COD) ; ...Journal Operation Code FIELD (QE.PID) ; ...Sender's Process Id (PID) BLKSIZ (SIZ.QE) ;;; End DAEMDB/QUASAR DECLARATIONS >; End REPEAT 0 ;[1107] Remove Tape Journal support SUBTTL JOURNAL RELATED SYMBOLS ;;; THE POSSIBLE JOURNAL-BLK CODES AI.COD==1 BI.COD==2 CS.COD==3 ;COMMAND START CE.COD==4 ;COMMAND END LB.COD==5 ;LABEL (MULTI-REEL) TS.COD==6 TE.COD==7 ;TRANSACTION START/END CODES TX.COD==10 ;TEXT COMMENT BLOCK CU.COD==11 ;CURRENCY-BACKUP BLOCK, USED AT ; RUN-TIME ONLY TAI.COD==12 ;AFTER IMAGE FROM TEMP FILE ;(NOW JRN'D BECAUSE OF PRESERVE) TBI.COD==13 ;BEFORE IMAGE FROM TEMP FILE HI.COD==13 ;HIGHEST CURRENT CODE ; *** POWER-OF-2 BIT CORRES FOR J CODES DEFINE C2B(STRING)> C2B(BI) C2B(AI) C2B(CS) C2B(CE) C2B(LB) C2B(TS) C2B(TE) C2B(TX) C2B(CU) C2B(TAI) C2B(TBI) ;;; THE POSSIBLE JOURNAL-PAGE IDS EM.PID==0 ;EMPTY PHYSICAL BLK DT.PID==1 ;1ST LOG BLK IS DATA BLK LB.PID==2 ;1ST LOG BLK IS LABEL BLK ER.PID==3 ;PSEUDO-VALUE, USED IN DBMEND ; FOR ERROR CONTROL SK.PID==4 ;PSEUDO-VAL, USED IN DBMEND TO SKIP ; THE (BAD) BLK ;;; MISCELLANEOUS JOURNAL SYMBOLS JR.PSIZ==1000 ;SIZE OF A JOURNAL PAGE/BUFFER JR.PRALC==20 ;# OF JPAGES TO PRE-ALLOC, EACH ; TIME RUNOUT, DURING APPLIC JR.CHUNK==40 ;# OF JPAGES TO COPY FROM A MAG ;TAPE JOURN TO DSK .TMP WHEN ; MERG BEF EMP.JP==JR.PSIZ-HDR.JP ;AMT OF FREE SPACE ON AN EMPTY ; (IE. DATALESS) J PAGE BKU.AI==1B35 ;AL-AB.BKU VALUE, BACKUP AFT IMS BKU.BI==1B34 ;DITTO, BEF IMS JI.WMAX==^D16 ;CARD IMAGE JR.BFM==1B35 ;JOURNAL BUFFERS MODIFIED ;...SINCE LAST FLUSH ;;; JOURNAL PAGE HEADER FIELD (JP.BIX) ;BLOCK/JP INDEX, IDENTIFIES ;JOURNAL PAGE JP.KEY==OFFS. ;FOR COMPARING AGAINST JLANCPID BYTES (JP,<,>) ;LH, PHYSICAL ANCHOR: TELLS ;ABOUT BUF END ;LSS 0: AMOUNT OF POTENTIALLY ;WASTED (IE. INCOMPLETE) DATA ;AT END OF PAGE ;ELSE THE NUM OF UNUSED WORDS ;ON PAGE ;PAGE TYPE ID (SEE BELOW) JP.NEED=OFFS. BYTES (JP,<,>) ;SIZE OF LAST LOG BLK STARTING ;ON THIS JP ;ITS LOGICAL CODE BYTES (JP,<,<1STH,^D18>>) ;OFFSET OF 1ST LOGBLK HDR ON J ;AGE, OR 0 FIELD (JP.SEQ) ;IF PAGE+1 HAS A LOWER SEQUENCE ; NUMBER, WILL ;KNOW THIS IS LAST PAGE OF J FIELD (JP.UNU) ;FOR FUTURE EXPANSION BLKSIZ (HDR.JP) JLANCPID=B17+LB.PID ;ACTS AS KEY TO J FORMAT ;VALIDITY ;IF FORMAT OF JP.KEY CHANGES, ;THIS MUST ALSO ;;; JOURNALL BLOCK HDR ;JOURNAL BLK HDR NO LONGER HAS ALTEREGO OF DBPAGE BUFFER PREFIX JB.CURR==OFFS. BYTES (JB,<,>) ;CUR SIZE (IN WORDS) AND CODE ;OF THIS JOURNAL BLK JB.PREV==OFFS. BYTES (JB,<,>) ;DITTO, BUT FOR PREV JB FIELD (JB.RNID) ;FOR SIMUL UPDATE, WHICH RUN- ;UNIT IS CREATOR OF BLK BLKSIZ (HDR.JB) ;;; TEMPLATES FOR EACH TYPE OF JB ; *** IMAGES ARE OF VARIABLE SIZE & ARE FULLY DESCRIBED IN USER SCHEMA ; *** LABEL BLK FIELD (J1.PAG,HDR.JP) ;MAKE JLP OFFSETS ;CONSISTENT W/ POS. ON PAGE FIELD (JB.HDR,HDR.JB) FIELD (J1.SCH,SHORT/CPW) ;SCHEMA NAME (IN SIXBIT) FIELD (J1.RUN) ;RUN SEQUENCE NUM, IS INTEGER FIELD (J1.REEL) ;REEL # (INTEG) FIELD (J1.DATE,4) ;DATE/TIME IN ASCII ; *** INTERNAL CONTROL INFORMATION FIELD (J1.RNID) ;ADD 1 AND GIVE NEXT J OPENER ;VAL AS ITS RNID FIELD (J1.RACT) ;R-U ACTIVE (IE. LE RNID) ;USED TO SET JP.SEQ FIELD (J1.TRAC) ;# OF TRANSAC WHICH ARE ;IN (IE. HAVE IMAGES IN) THE J FIELD (J1.HALC) ;H PAGE # ALLOC IN JRT/JRN FILE ;IE. BOUND FOR WHERE UPFGS/ ;FILOPS BEGIN FIELD (J1.MTP) ;P# OF LAST JP MERGED INTO MTA J FIELD (J1.LIX) ;LAST ACTUAL JP (W/ CURR SEQ#) ;IN (DISK PART OF) JOURNAL J1.NEED=OFFS. ;FOR CONSIS. THE JP.NEED OF BYTES (J1,<,>) ; OF LAST PAGE (LIX) FIELD (J1.THRESH) ;MTA SPOOLING THRESHOLD FIELD (J1.POLL) ;MSEC MTA POLLING PERIOD FIELD (J1.R3) FIELD (J1.R4) FIELD (J1.R5) FIELD (J1.R6) OFFS.==OFFS.-JB.HDR ;MAKE LENGTH NOT INCLUDE ;...PAGE HEADER BLKSIZ (SIZ.JL) ; *** INFO BLK FIELD (JI.LEN) ;IN ITS OWN UNITS INF.NOP==1B0 ;NON PRINTING INFO INF.1ST==1B1 ;1ST OF MULTI-BLK INFO INF.MOR==1B2 ;MIDDLE OF MULTI INF.LAS==1B3 ;LAST OF MULTI INF.1P==0 ;NO BITS ON, MEANS SINGLE PRINTING BLK FIELD (JI.INFO,JI.WMAX) BLKSIZ (SIZ.JI) ; *** CURRENCY BACKUP BLK FIELD (JU.ADDR) ;LESS THAN 0 IS SET BLK FIELD (JU.CURR) FIELD (JU.CNEX) ;MEANINGFUL ONLY FOR SET BLK BLKSIZ (SIZ.JU) ; *** COMMAND/VERB BLK FIELD (JC.IDX) ;DENOTES THIS IS (I)TH CMD EXEC IN RUN- ;UNIT SINCE STARTED FIELD (JC.TYP) ;AS IN STANDARD ERROR CODES BLKSIZ (SIZ.JC) ; *** TRANSACTION BLK FIELD (JT.IDX) ;DITTO FOR TRANSACTION OF THIS TYPE FIELD (JT.LEN) ;NUM OF CHARS IN TRANS NAME/TYPE FIELD (JT.NAM,NAMLEN/CPW) BLKSIZ (SIZ.JT) ; *** DETERM WHICH JB TYPE IS LARGEST SINCE TEMPLATES WILL BE ; *** CO-INCIDENT DURING JOURNAL BUILDING DEFINE MAXCHK(TYP.)>> MAX.JB==0 MAXCHK SUBTTL IN-CORE SYMBOL DEFINITIONS ;;; COMMON TO AB.,RB., AND OB. FIELD (SN.IDADR) ;NMID+IDVEC(SS) FOR THIS SYMBOL BYTES (SN,<,>) BLKSIZ (SN.NAM) ;DOUBLES AS OFFSET OF VARIABLE LEN FIELD ;;; AREA IN-CORE BLOCK FIELD (AB.CUR) ;DBKEY OF CURR REC OF AREA FIELD (AB.TSC) ;DBKEY OF CURR REC OF AREA AT START OF ; TRANSACTION FIELD (AB.CHAN) ;CHANNEL/JFN OF THE FILE THAT COMPRISES ;THE AREA FIELD (AB.MODE) ;USAGE MODES -- SEE UM.XXX AB.MASK==OFFS. ;->NXT WD ADDXABLE 2 WAYS ;THE LEFT SIDE MAY CONTAIN VARIOUS ; UM% BITS BYTES (AB,<,>) ;MWD=WHICH LOCK WORK THIS AREA ;USES ;MBT=WHICH BIT IN THE WORD REPS ; AREA FIELD (AB.TRN) ;AOBJ PTR TO LIST OF KB'S WHICH ; REF THIS AREA FIELD (AB.BUFPT) ;AOBJ LIST OF BUFFER PTRS FOR THIS AREA FIELD (AB.CLPT) ;AOBJ LIST OF CLUSTER PTRS FOR ; THIS AREA FIELD (AB.FIL) ;PTR TO FILE SPEC AREA ASSIGNED TO FIELD (AB.TBUF) ;A "SPECIAL" EXTRA BUFFER IS ALLOC-ED ; FOR A TMP AREA BYTES (AB,<,,>) ;NUL AND UNUSED ARE UNUSED ;AB.PTF = PRESERVE TMP FILE FIELD (AB.TOA) ;-1,,0 = TMP 0,,-1 = AID -1 =TMP+AID FIELD (AB.TCHAN) ;IF TEMP AREA, NEED A 2ND CHANNEL ; TCHAN= -1,,CHAN IF TMP ; 0,,CHAN IF AID FIELD (AB.TLAP) ;THIS 2ND FILE GROWS...NEED LAST ALLOC ; PAGE (1ST PAGE==0) FIELD (AB.ILAP) ;IN TEMP AREA, HAVE NEVER-NEVER LAND ; WHERE PAGES LT AB.LAP ;HAVEN'T BEEN WRITTEN BECAUSE TEMP FILE ; IS PACKED ;SO IF KNOW HOW BIG .DBS FILE IS, CAN ; DETECT THEM ;IOW, AB.ILAP=AB.LAP AS OF OPEN FIELD (AB.PINV) ;THE VALUE=AL.PSIZ-AP.PUNR, FOR USE IN ; ALC.REC ; *** START OF BLTTABLE STUFF AB.BLT==OFFS. FIELD (AB.1STP) ;P# OF 1ST PAGE OF AREA FIELD (AB.LASP) ;P# OF LAST DEFINED PAGE FIELD (AB.PSIZ) ;PAGE SIZE BYTES (AB,<,>) ;FOR SHARING BUFFERS ; ONBUF - AB WHICH OWNS NBUF ; SHAR - RING PTR OF ALL BUF SHAREES FIELD (AB.DNBUF) ;ADDR OF DATANAME WHICH ; CONTAINS NBUF FIELD (AB.NBUF) ;NUM OF BUFS TO ALLOC ; 0 IF SHARING - USE AB.ONBUF ; ONLY BUFFER "OWNER" IS NONZERO BYTES (AB,<,>) ;ADDX OF PAGE LIST FOR AREA ;CLUSTER SIZE FOR THIS AREA FIELD (AB.RPP) ;MAX RECS/PAGE TO ALLOW FIELD (AB.CALC) ;MAX CALC BUCKETS PER PAGE--INIT VAL ; OF PH.1STF=PH.CALC+VAL(AB.CALC) FIELD (AB.BKU) ;TYPE OF IMAGES TO PUT IN JOURNAL FIELD (AB.LOK,LOKMAX/CPW * 6) ;TEXT OF LOCKS...S/P/E*R/U=6 ; *** END OF BLTABLE STUFF AB.BE==OFFS. FIELD (AB.ID) ;START STRLIB SYMBOL NODE FIELD (AB.NLEN) ;LENGTH OF AREA NAME FIELD (AB.NAM,NAMLEN/CPW) BLKSIZ (SIZ.AB) ;MAX SIZE...SHORT AREA NAMES MEANS LESS ; SIZE ; *** ANCILLARY STUFF ; MAKE BUFHDR BE A NODE OFF OF AB.BUFPT BYTES (BH,<,>) BH%LSH==1 ;PAGE LOCK SHARED BH%LEX==2 ;PAGE LOCK EXCLUSIVE BH%LKS==BH%LSH+BH%LEX ;ALL LOCK FLAGS BH%TOA==4 ;INPUT FROM TEMP OR AID FILE BH%CLR==10 ;CLUSTER READ PAGE HAS BEEN ACCESSED BH%CPP==20 ;NOT A FILE PAGE BUT ; A CREATED PROCESS PAGE ;ACTUAL ADDR OF A BUFFER/PAGE FIELD (BH.PAGE) ;THE PAGE IN THE ASSOCIATED BUFFER FIELD (BH.LRU) ;IDX TO SHOW WHETHER BUFF IS LEAST ; RECENTLY USED FIELD (BH.WRIT) ;SWITCH: -1=MUST WRITE 0=CAN JUST ; OVWRITE FIELD (BH.JPAG) ;HIGHEST JP THIS DBPAGE HAS A BEFIM IN BH.DPAG==BH.LRU ;POINTS TO 1 OF N TMP/AID DIRECTORY ; PAGES FIELD (BH.TOA) ;PHY PAG # IN TMP/AID FILE BYTES (BH,<,>) ;[6%1102] ;[6%1102] BH.UNU is unused ;[6%1102] BH.AREA is AREABLK for ;[6%1102] this buffer BLKSIZ (SIZ.BH) ;CLUSTER HEADER, IS A NODE OFF AB.CLPT, USED IN SAME WAY AS ; BUFFER HEADER, BUT SUMMARIZES INFO FOR CLUSTER BYTES (CH,<,>) ;NUMBER OF BUFFERS IN THIS CLUSTER ;ADDRESS OF FIRST BUFFER HEADER FIELD (CH.LRU) ;HIGHEST LRU VALUE FOR CLUSTER FIELD (CH.WRIT) ;AS BH.WRIT, & HIGHEST VALUE ;FOR CLUSTER FIELD (CH.JPAG) ;HIGHEST JOURNAL PAGE A PAGE IN ;THIS CLUSTER HAS AN IMAGE IN BLKSIZ (SIZ.CH) BYTES (EB,<,>) ;FLAG=FLAGS FOR THIS TRN. EB%RO==1 ;TRANSACTION IS READ ONLY ;IMG=IMAGE MODE FOR THIS TRN FIELD (EB.KBL) ;AOBJ PTR TO AREA LIST FOR ; THIS TRN FIELD (EB.ALK) ;POINTER TO AREA LOCK STRUCTURE ;FOR THIS TRANSACTION FIELD (EB.ID) ;NAME-ID OF THIS TRN FIELD (EB.NLEN) ;LENGTH OF NAME FIELD (EB.NAM,NAMLEN/CPW) ;NAME OF THIS TRANSACTION BLKSIZE (SIZ.EB) BYTES (KB,<,>) ;USAGE-MODE FOR AREA FOR THIS TRN FIELD (KB.EB) ;PTR TO ASSOC TRN BLK (EB) ;CLUSTER SIZE FOR THIS TRN FIELD (KB.AREA) ;POINTER TO ASSOC AREA BLK BLKSIZ (SIZ.KB) ;;; WITHIN IN-CORE BLOCK FIELD (WB.1STP) FIELD (WB.LASP) BYTES (WB,<,>) ;RDCODE - REC DISTRIBUTION CODE WB.NRP==1 ;N RECS PER PAGE WB.RNP==2 ;1 REC PER N PAGES WB.SNP==3 ;1 SET PER N PAGES ;RDINC - THE N FOR ABOVE BLKSIZ (SIZ.WB) ;;; RECORD IN-CORE BLOCK BYTES (RB,<,>) ;LOC MOD CODE RF.NALC==1B35 ;FLAG SAYS ALLOC OPERS ILLEG ; (IE. STORE/DELETE) ;...CAUSED BY SET OWNED BY REC NOT ; BEING IN SS RF.NAO==1B34 ;FLAG=NOT-ALL-OWNERS IN SS, MEANS ; CANNOT DELETE THIS REC ;...SINCE WILL BE UNABLE TO REMOVE IT ; FROM THE "INVIS" SETS IT IS IN BYTES (RB,<,>) ;TOTAL SIZE OF REC...FROM DSIZ+DOFF FIELD (RB.CUR) ;DBKEY OF CURR REC OF THIS TYPE FIELD (RB.TSC) ;DBKEY OF CURR REC OF THIS TYPE ; AT START OF TRANSACTION FIELD (RB.TID) ;REC TYPE ID FIELD (RB.MYA) ;AOBJ PTR FOR AREAS CAN BE WITHIN FIELD (RB.MYD) ;THE DATA-NAMES IN THE REC FIELD (RB.ION) ;THE SETS I OWN FIELD (RB.OBY) ;THE SETS I AM OWNED BY FIELD (RB.LOC) ;PTR TO IN-CORE BLK OF VIA SET, ADDR ; OF DIRKEY, OR NUM OF CALC FIELDS FIELD (RB.WID,2) ;STRING PTR TO UWA LOC FOR AREAID OR 0 FIELD (RB.ID) ;SYM NODE FIELD (RB.NLEN) FIELD (RB.NAM,NAMLEN/CPW) BLKSIZ (SIZ.RB) ;MAX SIZE (WILL BE SMALLER IF RB.NLEN ; IS LESS THAN 26) ;AREA, OWNER BLKS ALSO THIS WAY ; *** ANCILLARY DEFS FOR AOBJ PTS WORD (RB,<,>) ;FOR OBY ;REC'S MEM BLK(SELF) ;MEM'S OWNER BLK (SELF'S OWNER) WORD (RB,<,>) ;FOR ION ;RECORD'S OWN BLK (SELF IS OWNER) WORD (RB,<,>) ;MYD ;RECORD'S DATA BLKS WORD (RB,<,>) ;MYA ;PTR TO THE WITHIN BLK ITSELF (RWB) ;AREA REC CAN BE WITHIN WORD (RB,<,>) ;FOR OBY/ION IN V3TOV5 ;NEW TENANT BLK/CURR TB ;;; DATA-NAME IN-CORE BLOCK BYTES (DB,<,,>) ;ITS REC'S TID (FOR CONSIS OF ; GET/MOD LIST) ;DB.OCC FROM DL.OCC ;DATA TYPE--SEE DT.XXX BYTES (DB,<,>) ;CASE--PSEUDO? TID/DBKEY? ETC ; (SEE KC.XXX) ;KTYP--DATA DIRECTED KEY-TYPE ASPECTS ; (CURR .CALC/.NORD) ;...OTHER PROPS CONTEXT (IE. CTL-LINE) ; DPEND ; *** NOTE: THESE TWO WORDS CONSTITUTE A STRING PTR ; IE. THEY MUST BE TOGETHER FIELD (DB.UWA) ;BYTE PTR TO BOUND ADDR OF D-N FIELD (DB.SIZ) ;SIZE IN ITS OWN UNITS= ; DL.SIZ*DL.OCC(DEF 1) FIELD (DB.OFF) ;BYTE PTR TO SAME, BUT OFFSET FROM ; BEGIN OF REC BLKSIZ (SIZ.DB) ;;; OWNER IN-CORE BLOCK OB.COWN==OFFS. ;...ACTUALLY, OWNER OF CURR SET OCC, ; IF KNOWN FIELD (OB.OOFF) ;DEFINED TO HANDLE O/M INDETERMINANCY ; SIMPLY. SEE TB.XXX BELOW FIELD (OB.POFF) ;OFFSET OF PRIOR PTR IN AN OWN REC, OR 0 FIELD (OB.NOFF) ;OFFSET OF NEXT PTR FIELD (OB.XOFF) ;PTR TO HEAD OF INDEX STRUCTURE IF ; SORTED SET FIELD (OB.YB) ;POINTER TO A Y-BLOCK IF SORTED SET ;IF 0, SORTED SET OCC WILL HAVE NO ; INDEX STRUCT FIELD (OB.CVIX) ;IF MATCHES VERBIX, PERFORM APPLICABLE ; CURRENCY OPERATION ;(1) OB.CUR UPDATE IN INSERT, MODIFY ;(2) OB.CUR UPDATE-SUPPRES IN FIND/STORE ;IF MATCHES -VERBIX, SUPPRESS OB.COWN FIELD (OB.REC) ;ADDR OF REC BLK OF REC THAT OWNS SET FIELD (OB.CPRI) ;WILL BE VALID ONLY WHEN CURR OF SET ; LAST DET BY ;FIND IMMED NEXT RECORD. FIELD (OB.CUR) ;DBKEY OF CURR OF SET FIELD (OB.TSC) ;DBKEY OF CURR OF SET ; AT START OF TRANSACTION FIELD (OB.CNEX) ;RELEVANT IF CURR OF SET DELETED/REMOVED FIELD (OB.ION) ;ANAL TO RB.ION FIELD (OB.ID) ;SYMBOL NODE FIELD (OB.NLEN) FIELD (OB.NAM,NAMLEN/CPW) BLKSIZ (SIZ.OB) ;MAX ALLOCATABLE SIZE ; *** ANCILLARY STUFF WORD (OB,<,>) ;ION ;PTR TO MEM'S RECORD BLK ;PTR TO MEM'S MEMBER BLK ;;; MEMBER IN-CORE BLOCK FIELD (MB.OOFF) ;OFFS OF OWNER PTR IN A MEM REC, OR 0 FIELD (MB.POFF) ;DITTO BUT FOR PRIOR PTR FIELD (MB.NOFF) ;OFFS TO NEXT PTR ALWAYS BYTES (MB,<,,,,>) ;FLAG--FUTURE ;FOR OTHERS, SEE SCHEMA FILE ML. DESC ;??? MF.REORD==1B35 ;MEMBER MUST BE RE-INSERTED SINCE KEY ; FIELD MODDED BYTES (MB,<,>) ;MYS=MY SOS CTL BLKS ;MYK=MY (SORT) KEY CTL BLKS BLKSIZ (SIZ.MB) WORD (MB,<,>) ;KLUDGE A BIT FOR EFFIC MB.REST==MB.SHIP ;;; TENANT (PSEUDO!!!) IN-CORE BLOCK DEFINE FAK.TB(OFF.)< IRP OFF.,< TB.'OFF.==MB.'OFF. IFN TB.'OFF.-OB.'OFF., > > FAK.TB ;;; VIA IN-CORE BLOCK FIELD (VB.MYC) ;AOBJ PTR TO SORT FIELDS AS THEY ; APPEAR IN DATA-RECORD FIELD (VB.MYX) ;DITTO--BUT AS IN INDEX-NODE BLKSIZ (SIZ.VB) WORD (VB,<,>) ;THE MEM DEPEND CHARAC OF A DATA-NAME ;PTR TO ASSOC (PSEUDO-)DATA-BLK ;;; FILE BLOCK FIELD (FB.DEV) FIELD (FB.CNT) FIELD (FB.DIR) FIELD (FB.FIL) FIELD (FB.EXT) FIELD (FB.PRIV) FIELD (FB.SIZ) BLKSIZ (SIZ1FB) OFFS.==-2 FB.HDR==-OFFS. ;FOR BIND CODE AT JFMERG FIELD (FB.AOFF) ;OFFSET FROM FB.SPEC TO FB.AID FIELD (FB.FLEN) ;IN -1 WORD SO THAT JSYS USAGE NATURAL FIELD (FB.SPEC,MAXFS20) ;VARIABLE LENGTH ASCIZ FIELD (FB.TEMP,MAXTS20) ;...ACTU START PT DETERM BY FB.FLEN FIELD (FB.AID,MAXTS20) ;FILSPEC FOR .AID FILE BLKSIZ (SIZ2FB) ; INDEX (Y) BLOCK FIELD (YB.FPG) ; FIRST PAGE OF INDEX BLOCK RANGE FIELD (YB.LPG) ; LAST PAGE OF INDEX BLOCK RANGE FIELD (YB.EPI) ; MAX # OF KEYS PER IDX BLOCK FIELD (YB.EPB) ; MAX # OF RECORDS PER BOUY FIELD (YB.ISIZ) ; INDEX BLOCK SIZE IN WORDS FIELD (YB.NSIZ) ; INDEX NODE SIZE IN WORDS FIELD (YB.AB) ; PTR TO AREA BLOCK WHERE REC RESIDES BLKSIZ (SIZ.YB) SUBTTL SCHEMA DIRECTORY BLOCKS AND OFFSETS ; SCHEMA BLOCK FIELD (SL.ASR,SIZ.FH) ;MAKE THIS RECORD DOUBLE AS ASR ;SO THAT .SCH FILE IS .DBS FILE ALSO FIELD (SL.SYS) ;NMID OF AREA THAT WILL HOLD SYS RECORD FIELD (SL.HINMID) ;FOR BUILDING RUN-TIME VECTOR FIELD (SL.HITID) ;FOR BUILDING RECTYP ID VEC FIELD (SL.NAREA) ;NUM OF AREAS FIELD (SL.NTRN) ;FOR BUILDINT TRNTYP ID VEC FIELD (SL.EDIT) ;CHARAC OF ENTIRE SCHEMA OVER TIME FIELD (SL.RUN) ;DITTO BUT NUMBER OF TIMES SBIND-ED FIELD (SL.MLAS) ;LAST USED SS (MAX IS 36) FIELD (SL.JOUR) ;DBKEY OF JOURNAL'S FILE BLK, IF ONE FIELD (SL.JNBUF) ;NUM OF JBUFS TO ALLOC WHEN J OPENED FIELD (SL.CHKPT) ;SEE CHK.* FIELD (SL.XACT) ;EXCEPTION ACTION FLAG WORD ; (SEE VAC.*/ACT.*) ;LEFT=NOTES // R=INTERCEPT FIELD (SL.JSIZ) ;TELLS DBCS TO LIMIT JRN SIZE TO (N) ; TRANSAC ;...AND THEN TO BEGIN OVERWRITING AND ; REPEAT THE CYCLE BYTES (SL,<,>) ; LKS IS SCOPE OF LOCK LKS.AL==1B0 ; --AREA LOCKS LKS.PL==1B1 ; --PAGE LOCKS ; LNUM IS MAX NUM OF LOCKS FIELD (SL.LOK) ;PRIVACY LOCK FOR ADMINISTRATION FIELD (SL.UNU) ;RESERVED FOR FUTURE BLKSIZ (SIZ.SL) BYTES (LST,<,>) ;BEG,,END OFFSETS (SPACE) BYTES (LST,<,>) ;CURRENT LIST BEG,,END BLKSIZ (SIZ.LHD) SIZ.LE==2 ;LIST ENTRY SIZE ;FORMAT OF A LOCK BLOCK FIELD (LK.HEAD,SIZ.LHD) ; STANDARD LIST HEADER ; ( BYTES (LST,<,>) ; BEG,,END OFFSETS ) ; ( BYTES (LST,<,>) ; CURRENT LIST BEG,,END) FIELD (LK.AOS) ; SEMAPHORE WORD FOR BLOCK ACCESS BYTES (LK,<,,>) ;[1126] ; lk.abo is on to abort all run-units (must be sign bit) ; lk.mod is on while lock file is being modified FIELD (LKJ.OWN) ; JRN LK OWNER ID FIELD (LK.LLL) ;[6%464] PID OF LAST LOK-FILE LOCKER BLKSIZ (LK.HDR) ; ALSO OFFSET TO ACTUAL LOCK STR. ; LKP.?? is the format of a PAGE lock FIELD (LKP.OWN) ; OWNER OF THIS LOCK BYTES (LKP,<,,,>) ; LKP.MODE IS: 0-SHR, 1-EXCLU, ; 2-NO-RELEASE LK.SHR==0 LK.EXC==1 LK.NRL==2 ; DON'T RELEASE SHARED LOCK UNTIL ; ...THE END OF TRANSACTION (CLOSE TRN) ; LKP.QUE IS 0-LOCKED, 1-QUEUED, ; 2-UPGRADE LK.LOK==0 LK.QRQ==1 LK.UPG==2 ; OWN IS OWNER-ID (PER-RU) ; LKP.PAGE IS PAGE NUMBER LOCKED BLKSIZ (LK.PLK) ; SIZE OF PAGE LOCK BLOCK ; LKA.?? is the format of an AREA lock FIELD (LKA.OWN) ; OWNER-ID BYTES (LKA,<,>) ; MODE AS in LKP.MOD ABOVE FIELD (LKA.LN,SHORT/CPW) ; LOCK NAME (SCH UNLESS SETDB) FIELD (LKA.QUE) ;0=LOCK, 1=REQ, ; 2=first of 2 part req, -1=2ND PART REQ FIELD (LKA.W1,SIZ.MSK) ; AREA LOCK WORDS BLKSIZE (LK.ALK) ; SIZE OF AREA LOCK BLOCK ; FORMAT OF A SHARED TABLE FRAME - TOPS-10 ONLY BYTES (ST,<,>) ;LOW CLOCK ;....CURRENT LENGTH FIELD (ST.LIST,^D511) ;ACTUAL WORDS OF LIST BLKSIZ (SIZ.ST) FIELD (PF.RWD,STKPFRM) BLKSIZ (SIZ.PF) ;SUB-SCHEMA BLOCK FIELD (UL.MASK) ;ANY BLOCK THAT "OR"S NON-0 WITH THIS IS IN SS FIELD (UL.LOK,LOKMAX/CPW) ;LOCK FOR PVC KEY FIELD (UL.NLEN) ;UNPADDED NAME LEN FIELD (UL.NAM,NAMLEN/CPW) ;ALLOCATION OF SPACE FOR SS NAME BLKSIZ (SIZ.UL) ;RECORD BLOCK BYTES (RL,<,>) ;NMID IS COMMON TO MOST SCHEMA ; DEFINED BLOCKS ;IDSET IS LAST SET TO WHICH THIS REC ; WAS ASSOC--FOR TENANT CONSIS BYTES (RL,<,,,>) ;EACH IS NUM OF (X) ASSOC WITH THE ; RECORD BYTES (RL,<,,,>) ;LM IS FOR LOC MODE: 0=UNDEF 1=DIRECT ; 2=VIA 3=CALCDUP 4=CALCNODUP ;DSIZ IS SIZE OF DATA IN WORDS ;THE (DOFF)TH WORD OF THE LINE CONTAINS ; 1ST WORD OF DATA ;TID IS THE RECORD TYPE ID (APPEARS IN ; LINE HDR) FIELD (RL.SS) ;TELLS WHICH SS THIS REC IN FIELD (RL.LOC) ;IF VIA, DBKEY OF THAT SET BLK ;IF DIRECT, DBKEY OF ITS ITEM BLK ;IF CALC, NUM OF CALC FIELDS FIELD (RL.WID) ;DBKEY OF ITEM BLK OF AREA ID, IF ONE FIELD (RL.NLEN) ;LEN OF REC NAME FIELD (RL.NAM,NAMLEN/CPW) ;THE REC NAME IN ASCII BLKSIZ (SIZ.RL) ;AREA BLOCK -- USE MOSTLY FULL WORDS, ASSUME NUM OF AREA BLKS SMALL % BYTES (AL,<,>) ;AL.SYM USED BY SCHEMA PROCESSOR, PTS ; TO AREA'S SYMBOL BLK ;AS BEFORE FIELD (AL.SS) ;SS THIS AREA IS IN ; *** BEGIN BLTTABLE STUFF AL.BLT==OFFS. FIELD (AL.1STP) ;1STP IS PAGE NUM OF 1ST PAGE OF AREA FIELD (AL.LASP) ;LAST PAGE NUM OF THIS AREA BYTES (AL,<,>) ;UNROUNDED PAGE SIZE--ALLOWS MAKING ; PART OF PAGE INVIS ;PSIZ=PHYSICAL PAGE SIZE (ACCOR PAGE ; BUF SIZE) BYTES (AL,<,>) ;FOR SHARING BUFFERS ; ONBUF - AB WHICH OWNS NBUF ; SHAR - NAMID OF "AT AREA..." FIELD (AL.DNBUF) ;DBK OF IL FOR DATANAME FIELD (AL.NBUF) ;NUM OF BUFS TO ALLOC ; NBUF IS 0 IF SHARING BUFS ; ONLY BUFFER "OWNER" IS NONZERO FIELD (AL.CLUS) ;CLUSTER SIZE FOR THIS AREA FIELD (AL.RPP) ;MAX RECS PER PAGE FIELD (AL.CALC) ;MAX CALC RECS PER PAGE FIELD (AL.BKU) ;BACKUP SPEC: 0=NO 1=AFTER 2=BEFORE ; 3=BOTH FIELD (AL.LOK,LOKMAX/CPW * 6) ;ALL OF THE LOCKS: PERMUTE ; CONC/PROT/EXCL UPDATE/RETR ; *** END BLTTABLE STUFF AL.MASK==OFFS. ;->NXT WD ADDXABLE 2 WAYS ;THE LEFT SIDE MAY CONTAIN VARIOUS ; UM% BITS BYTES (AL,<,>) ;MWD=WHICH LOCK WORK THIS AREA USES ;MBT=WHICH BIT IN THE WORD REPS AREA FIELD (AL.FIL) ;DBKEY OF FILBLK FOR AREA FIELD (AL.TMP) ;SS FOR WHICH THIS AREA A TEMP AREA FIELD (AL.NLEN) ;LEN OF AREA NAME FIELD (AL.NAM,NAMLEN/CPW) ;THE AREA'S NAME BLKSIZ (SIZ.AL) ;INDEX BLOCK YL.FPG MUST BE FIRST IN Y-LINE FIELD (YL.FPG) ; FIRST PAGE OF INDEX BLOCK RANGE FIELD (YL.LPG) ; LAST PAGE OF INDEX BLOCK RANGE FIELD (YL.EPI) ; MAX# OF INDEX ENTRIES / IDX BLOCK FIELD (YL.EPB) ; MAX# OF DATA REC ENTRIES / BUOY FIELD (YL.ISIZ) ; INDEX BLOCK SIZE (WORDS) FIELD (YL.NSIZ) ; INDEX NODE SIZE (WORDS) BYTES (YL,<,>) ; YL.NUL - NOT USED ; YL.ANMID - AREA NAME ID BYTES (YL,<,>) ; SYM - ADR OF SETNAME IN SYM TBL ; ASYM - AREA SYM NODE PTR FIELD (YL.SLEN) ; SET NAME'S LENGTH FIELD (YL.SNAM,NAMLEN/CPW) ; SET NAME BLKSIZ (SIZ.YL) ;DATA BLOCK BYTES (DL,<,>) ;NMID AS BEFORE ;IDREC--NEED TO VERIFY THAT DN PART ; OF RIGHT REC OCCAS BYTES (DL,<,,>) ;UNUSED ;OCC IS # OF OCCURS IF GTR 0 ;PREC IS PRECISION, IN COBOL S9(10) ; FOR EX BYTES (DL,<,,,,,>) ;SINCE DATA BLKS ARE PRESUMABLY MOST ; FREQUENT ;TRY TO SAVE SPACE (HOPEFULLY NOT AN ; ERROR IN JUDGMENT) ;ALL STRINGS ARE ENCODED AS ONE, WITH ;SUBSTRING OPERATORS USED TO PULL APART ;NLEN DATA-NAME'S LENGTH ;PLEN PICTURE'S LENGTH ;SLEN PSEUDONYM'S LENGTH ;THE DATA TYPE ;CALC FIELD ORDINALITY ;SCALE FACTOR (IMPLIED DECIMAL PT) FIELD (DL.SS) ;AS BEFORE FIELD (DL.OFF) ;A BYTE PTR TO ITEM WITHIN ITS RECORD FIELD (DL.SIZ) ;IN TERMS OF ITS LOGICAL USE--CHARS, ;WORDS,ETC DLSLEN==NAMLEN+NAMLEN+SHORT FIELD (DL.STRING,DLSLEN/CPW) ;ALL THE STRINGS BLKSIZ (SIZ.DL) ;OWNER BLOCK BYTES (OL,<,,>) ;THE (POFF)TH WORD OF EACH OWNER REC ; IS THE PRIOR PTR FOR THIS SET, IF ONE ;THE (NOFF)TH WORD IS THE NEXT PTR-- ;ALWAYS NON-0 ;NMID--AS BEFORE BYTES (OL,<,>) ;LARGEST KEY-NODE SIZE FOR MEMS OF THIS ; SET (0 IMPLIES: USE NO INDEX STRUCT) ;THE (XOFF)TH WORD IS TOP-LEVEL IDXBLK, ; IF ONE FIELD (OL.NMEM) ;# OF MEMS IN SET FIELD (OL.SS) ;SS MASK FOR THIS SET FIELD (OL.NLEN) ;SET NAME'S LEN FIELD (OL.NAM,NAMLEN/CPW) ;SET NAME BLKSIZ (SIZ.OL) ;MEMBER BLOCK BYTES (ML,<,,,,>) ;NMID OF REC THAT IS MEM (USED DURING ; BINDING) ;SHIP: AUTO/MAN AND MAND/OPT ;SOS IS TYPE OF SOS THIS REC HAS ; 1=CURR 2=LMO ;ORD IS 1 OF 12 POSSIB (2 PATHOL): ; 1ST/LAST/NEXT/PRIOR ARE POSIT ;SORTED ARE: PLAIN/DBKEY/WITHIN/UNIFIED ; PLUS EACH WITH USER KEYS ;BUT DBKEY+USER KEY IMPOS & UNIFIED+ ;NO-USER IMPOS ;IF SORTED, DUP = 0 MEANS ANY ; 1=FIRST 2=LAST 3=NOT BYTES (ML,<,,>) ;OFFSETS ARE AS BEFORE--OOFF IS NON-0 ; IF LINKED TO OWNER BLKSIZ (SIZ.ML) WORD (ML,<,>) ML.REST==ML.SHIP ;WITHIN BLOCK BYTES (WL,<,>) ;SYM OF UNBOUND REC. IOW, NON-0 ; IF EXPLIC PAGE RANGE ;NMID OF AREA CONNECTED TO FIELD (WL.1STP) ;IF NOT EXPLIC SPECIFIED, =AL.1STP FIELD (WL.LASP) ;DITTO AL.LASP BYTES (WL,<,>) ;RDCODE - REC DISTRIBUTION CODE ; SEE WB.??P FOR DEFINITION ;RDINC - THE N FOR ABOVE BLKSIZ (SIZ.WL) ;VIA BLOCK BYTES (VL,<,>) ;TYP IS VIA LINE FOR SOS OR SORT CTL ;NKEY = NUMBER OF ELEMS IN LIST BLKSIZE (SIZ.VL) ;CONTROL BLOCK BYTES (CL,<,>) ;CASE--FOR COMPARISON CTL ;KTYP--ASC/DESC FOR INSTANCE BYTES (CL,<,>) ;IDSET HERE AS WITH DL.IDREC RL.IDSET ;DITTO IDDAT FIELD (CL.ALIAS) ;DBKEY OF ITEM LINE IF THERE IS AN ; ALIAS NAME FIELD (CL.IDX) ;ORDINALITY OF THIS SUBKEY (START 1) FIELD (CL.XOFF) ;FOR SORTED SETS (IN VIA.SOR LISTS), ; WHERE IN INDEX NODE THE KEY IS FIELD (CL.KSET) ;DBKEY OF SET IT CTLS, USED TO SET ; KEY.NORD BLKSIZ (SIZ.CL) ;TEXT BLK FIELD (TL.SS) ;NOW TEXT CAN BE SPECIFIED ON A SS BASIS FIELD (TL.TLEN) ;CHARS OF TEXT FIELD (TL.TEXT,TEXMAX/CPW) ;PERHAPS TOO MUCH, WHO KNOWS BLKSIZ (SIZ.TL) ;ITEM BLOCK -- ALL RECORD INDEP SYMBOLS ARE DESCRIBED HERE FIELD (IL.SLEN) FIELD (IL.PSU,SHORT/CPW) ;ITS PSUEDONYM IF NON-0 FIELD (IL.NLEN) ;AS BEFORE FIELD (IL.NAM,NAMLEN/CPW) ;AS BEFORE BLKSIZ (SIZ.IL) ;TRANSACTION BLOCK (EVENT BLOCK) - DEFINES TRANSACTION NAMES AND ; RECOVERY MODES BYTES (EL,<,>) ;NAME-ID OF TRANSACTION ;NUMBER OF TRN-AREA LINES FOR BIND FIELD (EL.SS) ;SUB-SCHEMAS IN BYTES (EL,<,>) ;FLAGS FOR THIS TRANS EL%RO==1 ;...Retrieval Only transaction ;IMAGE TYPES FOR THIS TRANS FIELD (EL.NLEN) ;LENGTH OF NAME FIELD (EL.NAM,NAMLEN/CPW) ;REAL NAME BLKSIZ (SIZ.EL) ;TRANSACTION-AREA BLOCK DEFINES AREAS, CLUSTERING AND USAGE PER AREA, ; PER-TRANSACTION BYTES (KL,<,>) ;USAGE MODE (RETR, UPDTE) FIELD (KL.ARID) ;NAME-ID OF AREA BLKSIZ (SIZ.KL) ;FILE BLOCK -- SEPARATE IN HOPE OF BETTER OS INDEP FIELD (FL.DEV) FIELD (FL.CNT) ;SET ONLY BY CODE FIELD (FL.DIR) FIELD (FL.FIL) FIELD (FL.EXT) ;SET ONLY BY CODE FIELD (FL.PRIV) BLKSIZ (SIZ1FL) BYTES (FL,<,,>) ;AOFF IS OFFSET TO .AID FSPEC ;FLEN IS # OF WORDS IN FILE SPEC ;BLEN # WORDS IN FILE SPEC+TMP+AID SPEC FIELD (FL.SPEC,MAXFS20) ;JUST A LONG ASCIZ STRING FOR TOPS20 FIELD (FL.TEMP,MAXTS20) ; TMP FILSPEC FIELD (FL.AID,MAXTS20) ;AID FILSPEC ;THE ACTUAL SIZES OF THE FIL/TMP SPEC ; IS DRIVEN BY 1ST WORD BLKSIZ (SIZ2FL) END