!TITLE Record Formats ! ! This chapter contains the record formats used by Director. Where ! appropriate, the fields are described. The record formats are ! given in alphabetical order. There are also the following constants: ! constinteger ISEPCH = '@'; conststring (1) ISEP = "@" constinteger NSEPCH = ':'; conststring (1) NSEP = ":" ! !STOP !<AFDF recordformat c AFDF (string (11)NAME, integer TSN, halfinteger PGS, DATE, LAST RESTORE, byteinteger S0, S1, COUNT, EEP, PHEAD, TYPE, integer CHAP) ! ! This the format of a file descriptor in archive index ! ownrecord (AFDF)arrayformat c AFDSF (1:32768) ! ! This is the format of the record array !> !<COMF ! ! This is the Supervisor Communications Record Format, defined in EMAS ! 2900 Supervisor Note 15. ! recordformat c CDRF(byteinteger DAP NO, DAP BLKS, DAP PROCESS, DAP STATE, integer DAP1, DAP INT) ! recordformat c COMF(integer OCPTYPE, IPLDEV, SBLKS, SEPGS, NDISCS, DLVNADDR, GPCTABSIZE, GPCA, SFCTABSIZE, SFCA, SFCK, DIRSITE, DCODEDA, SUPLVN, TOJDAY, DATE0, DATE1, DATE2, TIME0, TIME1, TIME2, EPAGESIZE, USERS, CATTAD, SERVAAD, byteinteger NSACS, RESV1, SACPORT1, SACPORT0, NOCPS, RESV2, OCPPORT1, OCPPORT0, integer ITINT, CONTYPEA, GPCCONFA, FPCCONFA, SFCCONFA, BLKADDR, RATION, SMACS, TRANS, longinteger KMON, integer DITADDR, SMACPOS, SUPVSN, PSTVA, SECSFRMN, SECSTOCD, SYNC1DEST, SYNC2DEST, ASYNCDEST, MAXPROCS, KINSTRS, ELAPHEAD, COMMSRECA, STOREAAD, PROCAAD, SFCCTAD, DRUMTAD, TSLICE, FEPS, MAXCBT, PERFORMAD, record (CDRF)array CDR(1 : 2), integer LSTL, LSTB, PSTL, PSTB, HKEYS, HOOT, SIM, CLKX, CLKY, CLKZ, HBIT, SLAVEOFF, INHSSR, SDR1, SDR2, SDR3, SDR4, SESR, HOFFBIT, BLOCKZBIT, BLKSHIFT, BLKSIZE, END) ! constrecord (COMF)name COM = X'80000000' + 48 << 18 !> !<DDTF ! ! The Disc Device Table Format, described in EMAS 2900 Supervisor ! Note 18. ! recordformat c DDTF(integer SER, PTS, PROPADDR, STICK, CCA, RQA, LBA, ALA, STATE, IW1, CONCOUNT, SENSE1, SENSE2, SENSE3, SENSE4, REPSNO, halfinteger SBASE, BASE, integer ID, DLVN, MNEMONIC, string (6) LAB, byteinteger MECH) ! ownbyteintegerarrayformat DLVNAF(0:99) !> !<DIRCOM ! On the IPL disc, the first X'900 pages are not covered by the 'BITMAP' ! this means that as many bits (=288 bytes) may be used for other ! purposes. All discs have X'140 bits (40 bytes) available. The ! remaining 248 bytes are described by this format. The address of the ! record is given by SYSAD(DIRCOMKEY, -1). ! constinteger DIRCOM KEY = 5 constinteger DIRCOMSIZE = 136 ! recordformat c DIRCOMF(integer DIRLOG SEMA, FEP SEMA, {..8} string (6)array DAP USER(0 : 2), {.20} integer SUBSYS SITE COUNT, string (19)DEFAULT SUBSYS, {.38} integer STUDENT SITE COUNT, string (19)DEFAULT STUDENT, {.50} string (6)array DAP BATCH USER(0 : 1), {.60} integerarray DAP INTEGER(1 : 6)) {.78} ! ! integer(1) is CLAIM Q LIMIT ! 2 INTER ! 3 LO BATCH 0 ! 4 HI BATCH 0 ! 5 LO BATCH 1 ! 6 HI BATCH 1 !> !<DISCDATAF ! recordformat c DISCDATAF(integer START, BITSIZE, NNTSTART, NNTSIZE, NNTTOP, NNTHASH, INDEXSTART, FILESTART, END) ! ! This format is used in the procedure FBASE2 to return a record giving ! addresses and lengths of the various parts of the disc. ! ! START indicates whether an IPL disc or not, value X40 or X800 ! ! BITSIZE size of the bitmap, X1000, X2000 or X5000 ! ! NNTSTART where the NNT starts ! ! NNTSIZE the size of the name-number table, X1000, X2000 or X4000 ! ! NNTTOP the NNT is a record array declared 0:n, this is n: 340, 681 or 1364 ! ! NNTHASH the largest prime less than NNTTOP, 331, 677 or 1361 ! ! INDEXSTART the total number of pages used for bitmaps and NNTs ! ! FILESTART the number of pages used for bitmaps, NNTs and indexes ! ! END the highest numbered page !> !<FDF ! recordformat c FDF (string (11)NAME, integer SD, halfinteger PGS, H0, byteinteger CODES, CODES2, DAYNO, USE, OWNP, EEP, PHEAD, ARCH, CCT, SSBYTE, S0, S1) ! ! This the format of a file descriptor in an online file index ! ! ! ! ! Note: ! ! CODES CODES2 ! 1 unava wrconn ! 2 offer ! 4 temp oldgen ! 8 vtemp wsallow ! 16 chersh comms ??? ! 32 privat disc ??? ! 64 violat stack ??? !128 noarch dead ??? ! ! constinteger FDSIZE = 32 ! ownrecord (FDF)arrayformat c FDSF (1:32768) !> !<FF recordformat c FF (integer SDSTART, PDSTART, FDSTART, SEMA, RESERVE1, RESERVE2, SEMANO, RESTORES, string (6)OWNER, byteinteger SIZE, string (11)NAME, byteinteger FSYS, FIPHEAD, TEMPFILES, EEP, integer FILES, MAXFILE, MAXKB, CHERFILES, CHERKB, TOTKB, TEMPKB, CHKSUM, FILES0, FILES1, AFILES, ATOTKB, ASEMA, byteinteger ATTRIBUTES, DAY42) ! only 26 more bytes spare ! PDSTART etc Add to FINDAD to get addr of array ! FILES Number of usable files, ie not 'oldgens' !> !<HH recordformat c HF (string (6)OWNER, byteinteger MARK, integer SPARE1, MSGSEMA, SPARE2, SPARE3, INUTS, IINSTRS, byteinteger ACR, DIRVSN, SIGMON, PASSFAILS, IMAX, BMAX, TMAX, STKKB, IUSE, BUSE, ISESSM, GPFSYS, FSYS, SB0, SB1, TYPE, integer TOP, DWSPK, BWSPK, BINSTRS, TRYING, DINSTRS, IPTRNS, BPTRNS, IMSECS, BMSECS, NKBIN, NKBOUT, MAIL COUNT, CONNECTT, DIRMON, LASTLOGON, LAST NON INT START, TELL REJ, DWSPDT, BWSPDT, SPARE4, SPARE5, DAPSECS, SI3, longinteger DWSP, BWSP, string (6)GPHOLDR, string (31)SURNAME, DELIVERY, string (18)BATCHSS, BASEFILE, STARTF, TESTSS, string (11)LOGFILE, MAIN, string (15)DEFAULTLP, string (63)DATA, string (6)SUPERVISOR, string (15)GATEWAY ACCESS ID) !> !<Logfile formats constinteger TOPLOG = 5 constinteger TOP FE NO = 7 constinteger ITP = 0 constinteger X29 = 1 constinteger FEP IO BUFF SIZE = 2048; ! bytes in each control buffer constinteger MAXTCPNAME = 15 {TCP-name length} {ERCC TCP names have max 23 chars). recordformat c FEP DETAILF(integer INPUT STREAM, OUTPUT STREAM, IN BUFF DISC ADDR, OUT BUFF DISC ADDR, IN BUFF DISC BLK LIM, OUT BUFF DISC BLK LIM, IN BUFF CON ADDR, OUT BUFF CON ADDR, IN BUFF OFFSET, OUT BUFF OFFSET, IN BUFF LENGTH, OUT BUFF LENGTH, INPUT CURSOR, OUTPUT CURSOR) ! recordformat c FEPF(record (FEP DETAILF)array FEP DETAILS(ITP:X29), integer AVAILABLE) ! recordformat c LF(string (11)NAME, integer FSYS, DISC ADDR, STATE) ! recordformat C PROCDATF(string (6)USER, string (MAXTCPNAME)TCPNAME, byteinteger LOGKEY, byteinteger INVOC, PROTOCOL, NODENO, FSYS, integer LOGSNO, byteinteger SITE, REASON, CONSOLE1, CONSOLE2, integer ID, PROCESS, PREV WARN, SESSEND, byteinteger GETMODE, PREEMPT, BLNK, LINK) ! recordformat c LOGF HDF(integer LOGMAPST,SPARE0, byteinteger FREEHD,LIVEHD,BACKHD,SPARE, integer FES FOUND, byteintegerarray FE USECOUNT(0:TOP FE NO), record (LF)array LOGS(0:TOPLOG), record (FEPF)array FEPS(0:TOP FE NO), record (PROCDATF)array PROCLIST(0:255), integer LEND) ! recordformat c TMODEF(halfinteger FLAGS1, FLAGS2, {.04} byteinteger PROMPTCHAR, ENDCHAR, {.06} bytearray BREAKBIT1(0:3) {%or %halfintegerarray BREAKBIT2(0:1))} , {.0A} byteinteger PADS, RPTBUF, LINELIMIT, PAGELENG, {.0E} byteintegerARRAY TABVEC(0:7), {.16} byteinteger CR, ESC, DEL, CAN, {.1A} byteinteger FLAGS, INTERNAL STATE, LEADIN1, LEADIN2, XLO, XHI) {.20} !> !<NNF recordformat c NNF(string (6)NAME, byteinteger KB, TAG, MARKER, halfinteger INDNO) !> !<DIROWNF ! ! Format describing Directors 'own' variables constinteger TOPCONENT = 95 recordformat c CTF(string (30)FULL, byteinteger FSYS, NODISCO, INDEX) ! recordformat c DIROWNF(byteintegerarray CPOINT(0:255), record (CTF)array CONLIST(0 : TOPCONENT), string (63)SEMAHOLDER) !> !<PARMF ! ! The standard format for system messages recordformat c PARMF(integer DEST, SRCE, (integer P1, P2, P3, P4, P5, P6 or string (23)S)) !> !<PDF recordformat c PDF (string (6)NAME, byteinteger PERM, LINK) ! constinteger PDSIZE = 9 ! ownrecord (PDF)arrayformat PDSF(1:512) !> !<SDF ! %recordformat SDF(13-bit LINK, 19-bit DA) ownintegerarrayformat SDSF(1:8191) !> !<UINFF recordformat c UINFF (string (6)USER, string (31)JOBDOCFILE, {.28} integer MARK, FSYS, {.30} PROCNO, ISUFF, REASON, BATCHID, {.40} SESSICLIM, SCIDENSAD, SCIDENS, STARTCNSL, {.50} AIOSTAT, SCT DATE, SYNC1 DEST, SYNC2 DEST, {.60} ASYNC DEST, AACCT REC, AIC REVS, {.6C} string (15)JOBNAME, {.7C} string (31)BASEFILE, {.9C} integer PREVIC, {.A0} ITADDR0, ITADDR1, ITADDR2, ITADDR3, {.B0} ITADDR4, STREAM ID, DIDENT, SCARCITY, {.C0} PREEMPTAT, string (11)SPOOLRFILE, {.D0} integer FUNDS, SESSLEN, PRIORITY, DECKS, {.E0} DRIVES, PART CLOSE, {.E8} record (TMODEF)TMODES, {108} integer PSLOT, {10C} string (63)ITADDR, {14C} integerarray FCLOSING(0:3), integer CLO FES, {160} integer OUTPUT LIMIT, DAPSECS, longinteger DAPINSTRS, {170} integer OUT, string (15)OUTNAME, {184} integer HISEG, {188} string (31)FORK, {1A8} integer INSTREAM, OUTSTREAM, {1B0} integer DIRVSN, DAP NO, SCT BLOCK AD, integer PROTOCOL, integer UEND) ENDOFLIST ! ! ! ! USER The six-character name of the process owner. ! ! JOBDOCFILE For a batch process (see REASON) the name of a file ! containing commands to be executed. ! ! MARK Currently 1, to be used in achieving forward ! compatibility if this record format is to be ! drastically changed. ! ! FSYS The file system (disc number) on which the user's ! file index and files reside. ! ! PROCNO The process number. ! ! ISUFF The "invocation number" for the process. This number ! is appended to the names of workfiles so that, in the ! case of multiple invocations of a process, each ! invocation uses a unique set of names. ! ! REASON This gives the reason for the creation of the ! process: ! ! 0 = interactive log-on ! 1 = started from an OPER console ! 2 = started as a batch (non-interactive) process by ! SPOOLR. ! 3 = test process ! 4 = D/NEWSTART from OPER console ! ! BATCH ID A unique integer identifier associated with the ! batch job (for REASON=2). ! ! SESS IC LIM The maximum number of thousands of machine ! instructions which may be executed during the ! current session by the process. For interactive ! sessions this is currently a very large number. For ! batch sessions it is a number given when a job is ! submitted to the SPOOLR process for queuing and ! subsequent execution. If this limit is reached by ! the process, it is terminated with a message at the ! main Oper console: ! ! SIGNAL FAIL 4 ! ! A subsystem should preferably guard against this ! occurrence by keeping an eye on the number of ! instructions executed in the current session, using ! Director procedure DSFI (TYPE=21). ! ! SC IDENS AD, These are used to acquire access to the Director ! SC IDENS procedures, as described in Chapter 4. ! ! STARTCNSL Gives the logical number of the Oper console from ! which the process was started (for REASON=1). ! ! AIOSTAT The address of a record describing interactive I/O ! status. The format of the record is: ! ! (integer IAD, string(15) INTMESS, ! integer INBUFLEN, OUTBUFLEN, INSTREAM, OUTSTREAM) ! ! SCT DATE This may be used in conjunction with SC IDENS AD and ! SC IDENS. ! ! SYNC1 DEST The three service numbers allocated by the ! SYNC2 DEST Supervisor to the local process (see Ref. 10). ! ASYNC DEST ! ! AACCTREC The address of a record, visible at ACR 15, of ! format: ! ! (longinteger MICROSECS, integer PTURNS, KINSTRS) ! ! The MICROSECS field holds the number of microseconds ! of OCP time used by the process. ! ! The KINSTRS field of this record contains the number ! of K instructions (1K=1024) executed during the ! current session, it is updated only at calls of ! certain Director functions. ! ! The PTURNS field contains the total number of page ! turns performed on behalf of the process. ! ! AICREVS The address of a word containing the number of ! "revolutions" of the IC machine register (or ! "IC-register-fulls") to be expended (in addition to ! the current value of the IC register) before an ! instruction-counter interrupt is given to the user ! process. ! ! The fields above may be used to determine a number of K instructions ! executed during the current session using the formula: ! ! AACCTREC_KINSTRS + (UINF_PREVIC - GETIC) ! ! where GETIC is ! ! (Image store 6)>>10 + integer(UINF-AICREVS)<<14 ! ! (with certain modifications depending on the state of the IC carry ! bit). ! JOBNAME A character string identifier associated with the ! batch job when it was submitted to the SPOOLR ! process (for REASON=2). ! ! BASEFILE NAME The name of the basefile in use by the process. ! ! PREVIC The value of the current instruction-execution limit ! (in K instructions) at the time the KINSTRS field in ! the ACCT REC field was last updated. ! ! ! ! ITADDR0-4 Reserved for a full network address of the process's ! interactive terminal. ! STREAM ID ! ! D IDENT ! ! ! SCARCITY The number of users on the System at and above ! which the machine resource is deemed to be scarce ! (the funds field of the process owner's index header ! is decremented according to the local charging ! formula for interactive sessions while the number of ! System users is greater than or equal to this value) ! This value is kept in the RATION field of the COM ! record (in public segment 48), see below. ! ! PREEMPT AT The number of users on the System at and above which ! an interactive user currently having no funds ! is eligible for pre-emption (i.e. automatic ! logging-off) by interactive users with positive ! funds. This value is also kept in ! the RATION field in the COM record (in public ! segment 48). ! ! ! The four bytes of the integer COM_RATION hold the following data ! (most significant byte = byte zero): ! ! 0 number of interactive users at and above which ! resources for interaction are deemed to be scarce ! (SCARCITY) ! ! 1 number of interactive users at and above which a ! user having no scarce resource units may be pre ! -empted (logged off with 5 minutes' warning) ! because a new user with some scarce-resource units ! has logged on (PREEMPT A) ! ! 2 spare (zero) ! ! 3 current number of interactive processes ! ! These values should be used in preference to those in the UINF ! record, the fields in UINF are to be withdrawn. ! ! ! SPOOLR FILE is used by Director during batch process ! start up and has no subsequent relevance ! ! FUNDS the current number of funds ! held by the process owner (or his group-holder) ! This field is relevant only when resources are ! deemed to be scarce. ! SESSLEN is the limit in minutes of the session, i.e. the ! maximum duration of the process in elapsed minutes. ! A value of zero implies no limit. Relevant only for ! interactive sessions. ! ! PRIORITY For a batch job, the priority as specified by the ! user: ! 1 = very low ! 2 = low ! 3 = standard ! 4 = high ! 5 = very high ! ! DECKS The number of tape decks to be available to this ! (batch) job. ! ! DRIVES The number of disc drives to be available to this ! (batch) job. ! ! PARTCLOSE Set -1 at process startup if a partial close is in ! force otherwise zero. ! ! TMODES Describes the terminal characteristics. This record ! is zero until a DGETMODE has been issued. ! Subsequently it contains data from the TCP. ! ! UEND marks the end of the record. !> LIST !> ! !---------------end-of-included-file------------------------------------- !