<< LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION>>               00000001
<< ************************************************ >>                  00010000
<< *                                              * >>                  00012000
<< *     incllog - user logging include file      * >>                  00014000
<< *                                              * >>                  00016000
<< ************************************************ >>                  00018000
                                                                        00020000
                                                                        00022000
equate                                                                  00024000
   liddst   =  %41,                                                     00026000
   logsir   =  %40,                                                     00028000
   logdst   =  %33;                                                     00030000
                                                                        00032000
<<******************* logtab *************************>>                00034000
<< user logging table definitions -- dst #27 (%33)    >>                00036000
<<                                                    >>                00038000
<< there will be one entry in this table for every    >>                00040000
<< active user logging process.                       >>                00042000
                                                                        00044000
logical array logtab(*) = db;                                           00046000
byte array blogtab(*)  = db;                                            00048000
double array dlogtab(*) = db;                                           00050000
                                                                        00052000
define                                                                  00054000
                                                                        00056000
btabindex  =  tabindex*2#,   << logtab byte addresses >>                00058000
dtabindex  =  tabindex/2#;   << logtab double addr.   >>                00060000
                                                                        00062000
                                                                        00064000
<< entry #0 of logtab >>                                                00066000
                                                                        00068000
equate                                                                  00070000
                                                                        00072000
numentries  =  0,    << current number of entries           >>          00074000
free        =  1,    << pointer to first free entry         >>          00076000
inuse       =  2,    << pointer to first entry being used   >>          00078000
bufnum      =  3,    << last four digits of buffer name     >>          00080000
maxlogprocs =  4,    << max # user logging processes        >>          00082000
max'usr'proc=  5,    << max # users per log process         >>          00084000
logtab'esize=  7,    << size of each entry in the logtab    >>          00086000
                                                                        00088000
tentrysize  =  38;   << each entry is 38 words              >>          00090000
                                                                        00092000
                                                                        00094000
<< typical entry in the logtab >>                                       00096000
                                                                        00098000
define                                                                  00100000
                                                                        00102000
lgname    =   btabindex#,      << logging identifier        >>          00104000
bname     =   btabindex + 8  #,<< buffer file name          >>          00106000
lfname    =   btabindex + 16 #,<< logging file name         >>          00108000
lflockw   =   btabindex + 24 #,<< lockword - if disc        >>          00110000
lfgroup   =   btabindex + 32 #,<< group file name - if disc >>          00112000
lfacct    =   btabindex + 40 #,<< account file name -if disc>>          00114000
numusers  =   tabindex  + 24 #,<< # users on this log id    >>          00116000
dst       =   tabindex  + 25 #,<< dst of the logbuff        >>          00118000
status    =   tabindex  + 26 #,<< status of logging process >>          00120000
lgtype    =   tabindex + 27).(8:8 #, << type of log process >>          00122000
lgauto    =   tabindex + 27).(0:8 #, << auto changelog flag >>          00124000
lgdev     =   tabindex  + 28 #,<< ldev of disc or disc buff.>>          00126000
pin       =   tabindex  + 29 #,<< logging process pin #     >>          00128000
lgswitch  =   tabindex  + 30 #,<< true if switch pending    >>          00130000
lgnewtype =   tabindex +31).(8:8#,  << type of new log file >>          00132000
lgnewauto =   tabindex +31).(0:8#,  << auto changelog flag  >>          00134000
lgaddr    =   dtabindex + 16 #,<< address of logging buffer >>          00136000
bsize     =   dtabindex + 17 #,<< size of logging buffer    >>          00138000
next      =   tabindex  + 36 #,<< pointer to next entry     >>          00140000
prev      =   tabindex  + 37 #;<< pointer to previous entry >>          00142000
                                                                        00144000
                                                                        00146000
<<**************** logbuff ************************>>                   00148000
<< user logging buffer table definitions.          >>                   00150000
<<                                                 >>                   00152000
<< this table has 50 words of global information,  >>                   00154000
<< one 25 word entry for every user accessing the  >>                   00156000
<< logging process (added via openlog, deleted via >>                   00158000
<< closelog), and 4k buffer area.                  >>                   00160000
                                                                        00162000
logical array logbuff(*) = db;                                          00164000
integer array ilogbuff(*) = db;                                         00166000
byte array blogbuff(*) = db;                                            00168000
double array dlogbuff(*) = db;                                          00170000
                                                                        00172000
define                                                                  00174000
                                                                        00176000
bindex  =  index*2#,   << logbuff byte addresses   >>                   00178000
dindex  =  index/2#,   << logbuff double addresses >>                   00180000
                                                                        00182000
                                                                        00184000
<< global information in the logging buffer (logbuff) >>                00186000
                                                                        00188000
<< byte indexes >>                                                      00190000
                                                                        00192000
logid     =  0#,     << logging identifier                   >>         00194000
                                                                        00196000
<< word indexes >>                                                      00198000
                                                                        00200000
switch'   =  4#,     << true if switch pending               >>         00202000
newtype   = 5).(8:8#,<< type of new log file                 >>         00204000
newauto   = 5).(0:8#,<< auto flag for new log file           >>         00206000
logtype   = 6).(8:8#,<< type of current log file             >>         00208000
auto      = 6).(0:8#,<< auto flag for current log file       >>         00210000
bdst      =  7#,     << dst of the logbuff                   >>         00212000
logpin    =  8#,     << pin of logging process               >>         00214000
numuser   =  9#,     << number of users accessing log process>>         00216000
maxuser'  = 10#,     << maximum users allowed per process    >>         00218000
userno    = 11#,     << next log number to assign            >>         00220000
slpct     = 12#,     << number of users waiting for process  >>         00222000
state     = 13#,     << state of logging process             >>         00224000
msg       = 14#,     << internal message word                >>         00226000
logmsg    = 15#,     << message from log process to user     >>         00228000
usermsg   = 16#,     << message from user to log process     >>         00230000
logerr    = 17#,     << last error found                     >>         00232000
logdev    = 18#,     << ldev of disc - buffer file or logfile>>         00234000
bspace    = 19#,     << space remaining in 4k buffer         >>         00236000
bufused   = 20#,     << # records written in the 4k buffer   >>         00238000
vsetno    = 21#,     << number of this file in the set       >>         00240000
                                                                        00242000
<< double indexes >>                                                    00244000
                                                                        00246000
logaddr   = 11#,     << address of current extent            >>         00248000
inbufrec  = 12#,     << next record available in the extent  >>         00250000
fsize     = 13#,     << # records in the current extent      >>         00252000
fspace'   = 14#,     << space available in log buffer        >>         00254000
trecs     = 15#,     << total records written by this process>>         00256000
maxfspace = 16#,     << max file space useable - save 1 rec. >>         00258000
                                                                        00260000
<< word indexes >>                                                      00262000
                                                                        00264000
lastext'  = 34#,     << the last available extent in logfile >>         00266000
extent    = 35#,     << number of the current extent         >>         00268000
                                                                        00270000
<< double index >>                                                      00272000
                                                                        00274000
resource  = 18#,     << for locking/unlocking this table     >>         00276000
                                                                        00278000
<< word index >>                                                        00280000
                                                                        00282000
uhead     = 48#,     << pointer to first entry in use list   >>         00284000
fhead     = 49#;     << pointer to first entry in free list  >>         00286000
                                                                        00288000
<< misc. logbuff equates >>                                             00290000
                                                                        00292000
equate                                                                  00294000
bentrysize=   25,    << size of logbuff user entry           >>         00296000
bentrybase=   2*bentrysize;  << base of logbuff user entries >>         00298000
                                                                        00300000
                                                                        00302000
<< user entry definitions for logbuff >>                                00304000
                                                                        00306000
define                                                                  00308000
                                                                        00310000
user      =   bindex#,       << user's name                  >>         00312000
group     =   bindex +  8#,  << user's log on group          >>         00314000
acct      =   bindex + 16#,  << user's log on account        >>         00316000
upin      =   index  + 12#,  << user's pin number            >>         00318000
opencnt   =   index  + 13#,  << number of openlogs for user  >>         00320000
wstate    =   index  + 14#,  << state of user process        >>         00322000
error     =   index  + 15#,  << last error code              >>         00324000
lgnum     =   index  + 16#,  << log number for this user     >>         00326000
scode     =   index  + 17#,  << subsystem code - if priv.    >>         00328000
recs      =   dindex +  9#,  << number of records written    >>         00330000
nentry    =   index  + 23#,  << pointer to next user entry   >>         00332000
pentry    =   index  + 24#,  << pointer to prev. user entry  >>         00334000
                                                                        00336000
                                                                        00338000
<< table relative pointer to top of 4k buffer area >>                   00340000
                                                                        00342000
bufbase   =   bentrybase + logbuff(maxuser') * bentrysize#;             00344000
                                                                        00346000
                                                                        00348000
<<******************** lidtab ******************************>>          00350000
<< user logging identifier table -- dst #33 (%41).  this    >>          00352000
<< table will have an entry for every logid on the system.  >>          00354000
<< entries created via :getlog and deleted via :rellog.     >>          00356000
                                                                        00358000
<< entry # 0 definitions  >>                                            00360000
                                                                        00362000
equate                                                                  00364000
                                                                        00366000
mentries  =   1,   << max. number of entries in the table   >>          00368000
lid'esize =   4,   << size of lidtab entries                >>          00370000
lidesize  =  33,   << each entry is 33 words                >>          00372000
ebase     = lidesize,  << base of lidtab entries            >>          00374000
                                                                        00376000
<< typical entry definitions  >>                                        00378000
                                                                        00380000
<< byte entries  >>                                                     00382000
                                                                        00384000
lid       =   0,   << logging identifier                    >>          00386000
pw        =   8,   << password for logid                    >>          00388000
fname'    =  16,   << log file name                         >>          00390000
lw        =  24,   << disc file lockword                    >>          00392000
fgroup    =  32,   << disc file group                       >>          00394000
facct     =  40,   << disc file account                     >>          00396000
uname     =  48,   << creator's name                        >>          00398000
uacct     =  56,   << creator's account                     >>          00400000
                                                                        00402000
<< word entries >>                                                      00404000
                                                                        00406000
typ       =  32,   << type of log process                   >>          00408000
                                                                        00410000
                                                                        00412000
<<************ logging record format **********************>>           00414000
                                                                        00416000
rnum        =   0,   << double -- record number              >>         00418000
cksum       =   2,   << check sum                            >>         00420000
code        =   3,   << type of logging record               >>         00421000
lnum'       =   7,   << log # for writelog,endlog,beginlog   >>         00422000
time        =   2,   << double -- from clock intrinsic       >>         00424000
date        =   6,   << from calendar intrinsic              >>         00426000
lid'        =  14,   << 8 bytes -- logid                     >>         00428000
lnum        =  11,   <<                                      >>         00430000
creator     =  24,   << 24 bytes -- name, group, account     >>         00432000
lpin        =  24,   << user's pin number                    >>         00434000
vsetnum     =  25,   << the set number of the file -changelog>>         00436000
filenam     =  52,   << filename field - changelog           >>         00438000
devtype     =  88,   << evice name for filenam - changelog  >>          00440000
len'        =   8,   << # words in user data area            >>         00442000
uarea       =   9,   << data area of the log record          >>         00444000
                                                                        00446000
datarea     = 119,   << # words of user data per log record  >>         00448000
                                                                        00450000
<< log record values for code  >>                                       00452000
                                                                        00454000
open        =   1,   << openlog record                       >>         00456000
user'sub    =   2,   << user/subsystem record - writelog     >>         00458000
close       =   3,   << closelog record                      >>         00460000
header      =   4,   << when process is started              >>         00462000
trailer     =   5,   << when process is stoppped             >>         00464000
rstart      =   6,   << when process is restarted            >>         00466000
cont        =   7,   << continuation of previous record      >>         00468000
crash       =   9,   << when file is recovered on warmstart  >>         00470000
tran'end    =  10,   << endlog record                        >>         00472000
tran'begin  =  11,   << beginlog record                      >>         00474000
change'new  =  12,   << changelog record - last in "old" file>>         00476000
change'old  =  13,   << changelog record - first in "new" fil>>         00478000
                                                                        00480000
                                                                        00482000
<<************ misc equates *********************************>>         00484000
                                                                        00486000
<< state of user logging process >>                                     00488000
                                                                        00490000
inact       =   0,           << inactive log process         >>         00492000
act         =   1,           << active log process           >>         00494000
recovering  =   2,           << recovering after warmstart   >>         00496000
initializing=  -1,           << setting up from start/restart>>         00498000
                                                                        00500000
<< values found in msg field of logbuff     >>                          00502000
                                                                        00504000
continue    =   6,           << everything  is o.k.          >>         00506000
suspend     =   2,           << error - serial logfiles      >>         00508000
start       =   1,           << start up                     >>         00510000
stop        =   3,           << stop as soon as numuser = 0  >>         00512000
restrt      =   5,           << restart control message      >>         00514000
                                                                        00516000
null        =   -1,          <<                              >>         00518000
                                                                        00520000
<< values for attachio parameters >>                                    00522000
                                                                        00524000
read        =   0,                                                      00526000
write       =   1,                                                      00528000
rewind      =   5,                                                      00530000
forwardspace=   7,                                                      00532000
bkspace     =  12,                                                      00534000
                                                                        00536000
flags       =   1,                                                      00538000
qmisc       =   0,                                                      00540000
                                                                        00542000
success     =   1,        << good return from attachio >>               00544000
                                                                        00546000
<< cctl codes for fwrites to serial log file >>                         00548000
                                                                        00550000
special'write  =  %3001,    << sdisc,ctape - to set gap table>>         00552000
normal'write   =      0,                                                00554000
                                                                        00556000
<< types of logging processes >>                                        00558000
                                                                        00560000
disc        =   0,                                                      00562000
tape        =   1,                                                      00564000
sdisc       =   2,                                                      00566000
ctape       =   3,                                                      00568000
                                                                        00570000
<< log file equates >>                                                  00572000
                                                                        00574000
log         = 1090,   << file code for disc log files >>                00576000
recsize     = 128,    << record size                  >>                00578000
recsizem1   = recsize -1,                                               00580000
blksize     = 4096,   << block size                   >>                00582000
blkfactor   =   32,                                                     00584000
                                                                        00586000
<< file system error codes                            >>                00588000
                                                                        00590000
syspowerfail         = 89,   << system power failed   >>                00592000
tapepowerfail        = 18,   << device power failed   >>                00594000
                                                                        00596000
out'of'group'space   = 61,                                              00598000
out'of'account'space = 62,                                              00600000
                                                                        00602000
<< system catalog set numbers                         >>                00604000
                                                                        00606000
setno          =  20, << user logging message set     >>                00608000
fssetno        =   8, << file system message set      >>                00610000
                                                                        00612000
<<*********** user logging messages ******************>>                00614000
                                                                        00616000
topenfailed    =   1,   << fopen of tape log file failed     >>         00618000
bopenfailed    =   2,   << fopen failure on buffer file      >>         00620000
uopenfailed    =   3,   << can't open disc log file          >>         00622000
nodseg         =   4,   << no xds available for logbuff      >>         00624000
flabelerr      =   5,   << file label error                  >>         00626000
bwriteerror    =   6,   << error writing to log buffer file  >>         00628000
fwriteerror    =   7,   << error writing to log file         >>         00630000
logfileeof     =   8,   << no more extents available         >>         00632000
outofdiscspace =   9,   << out of disc space                 >>         00634000
logprocruns    =  10,   << log process is running            >>         00636000
logprocstop    =  11,   << logging process is stopped        >>         00638000
logrec         =  12,   << log file is recovered             >>         00640000
logrecerr      =  13,   << error recovering log file         >>         00642000
nologrec       =  14,   << log file not recovered            >>         00644000
logrecov       =  15,   << recovering log file               >>         00646000
logrestart     =  16,   << log process restarted             >>         00648000
logempty       =  17,   << disc log file empty               >>         00650000
logsuspended   =  18,   << log process suspended             >>         00652000
invalidfile    =  19,   << invalid disc log file             >>         00654000
cantstart      =  20,   << can't start log process           >>         00656000
loginuse       =  21,   << log process in use - term. pending>>         00658000
notempty       =  22,   << log file not empty, cannot start  >>         00660000
readerr        =  23,   << read error while restarting       >>         00662000
breaderror     =  25,   << error reading buffer file         >>         00664000
fcloseerror    =  26,   << error closing log file            >>         00666000
freaderror     =  27,   << error reading from log file       >>         00668000
cantrestart    =  28,   << can't restart log process         >>         00670000
pfailerror     =  29,   << log file not recovered after pfail>>         00672000
bad'user'count =  30,   << max users/process is invalid      >>         00674000
toosmall       =  31,   << disc log file is too small        >>         00676000
tpowerfail     =  32,   << tape powefail detected            >>         00678000
                                                                        00680000
                                                                        00682000
<<******** ci messages - command parsing ********************>>         00684000
                                                                        00686000
nobackref       =  205,  << backreference illegal            >>         00688000
nosysfile       =  206,  << system files illegal             >>         00690000
fnamelength     =  532,  << fname length > 8 characters      >>         00692000
notalphafname   =  530,  << must begin with alpha char       >>         00694000
expectedlword   =  561,  << expected lockword                >>         00696000
lockwordlength  =  562,  << lock word length > 8 characters  >>         00698000
invalidchar     =  582,  << must begin with alpha character  >>         00700000
pwlen           = 1201,  << password cannot be > 8 chars.    >>         00702000
expectedpw      = 1202,  << expected password                >>         00704000
expectedeq      = 1203,  << expected "="                     >>         00706000
illegaltype     = 1204,  << illegal type parameter           >>         00708000
expectedcomma   = 1205,  << expected ","                     >>         00710000
nixlogid        = 1206,  << non-existent logging id          >>         00712000
duplicate       = 1207,  << duplicate logging identifier     >>         00714000
illegaltapefile = 1208,  << illegal tape file name           >>         00716000
busy            = 1209,  << logging process is busy          >>         00718000
maxexceeded     = 1210,  << max # log ids exceeded           >>         00720000
invalidparm     = 1211,  << invalid parameter                >>         00722000
securityviol    = 1212,  << must be the creator              >>         00724000
invalidkey      = 1213,  << invalid keyword                  >>         00726000
expectedfname   = 1214,  << expected file name               >>         00728000
expectedlname   = 1215,  << expected log file name           >>         00730000
expectedlogid   = 1225,  << expected log id                  >>         00732000
logidlength     = 1226,  << incorrect length                 >>         00734000
nospechar       = 1227,  << no special characters allowed    >>         00736000
oneparm         = 1229,  << only one parameter for command   >>         00738000
nologprocrun    = 1230,  << no logging processes running     >>         00740000
nologid         = 1231,  << no log id assigned               >>         00742000
logprocnorun    = 1232,  << logging process not running      >>         00744000
expass          = 1233,  << expected password                >>         00746000
creparm         = 1234,  << param. only used by creator      >>         00748000
illegalfile     = 1250,  << file must reside in logon account>>         00750000
extraparm       = 1251,  << extraneous parameter             >>         00752000
dupkeyword      = 1252,  << keyword already found            >>         00754000
expectedsemi    = 1253,  << expected ";"                     >>         00756000
notalphalogid   = 3812,  << must start with alpha char.      >>         00758000
                                                                        00760000
                                                                        00762000
<<***** error codes from user logging intrinsics ************>>         00764000
                                                                        00766000
nwaiterr     =   1, << process is busy -- nowait is illegal  >>         00768000
boundserr    =   2, << parameter out of bounds               >>         00770000
nologproc    =   3, << logging process not running           >>         00772000
indexerr     =   4, << invalid index parameter               >>         00774000
modeerr      =   5, << incorrect value of mode parameter     >>         00776000
suspended    =   6, << logging process is suspended          >>         00778000
illegalcap   =   7, << user must have lg or op capability    >>         00780000
passerr      =   8, << incorrect password                    >>         00782000
writeerr     =   9, << error occurred while writing          >>         00784000
discspace    =  12, << no disc space available               >>         00786000
nologentries =  13, << no more logging entries available     >>         00788000
secviol      =  14, << security violation                    >>         00790000
eofonlogfile =  15, << end of file on log file               >>         00792000
invalidlogid =  16, << logging identifier doesn't exist      >>         00794000
                                                                        00796000
<< condition code equates   >>                                          00798000
                                                                        00800000
cce       =  2,                                                         00802000
ccl       =  1,                                                         00804000
ccg       =  0;                                                         00806000
                                                                        00808000
<< misc. defines    >>                                                  00810000
                                                                        00812000
define                                                                  00814000
                                                                        00816000
mypin      =  (absolute(4) - absolute(3))#,                             00818000
pdisable   =  assemble(psdb)#,                                          00820000
penable    =  assemble(pseb)#;                                          00822000
                                                                        00824000
<< ************************************************ >>                  00826000
<< *                                              * >>                  00828000
<< *             end of incllog                   * >>                  00830000
<< *                                              * >>                  00832000
<< ************************************************ >>                  00834000
