Google
 

Trailing-Edge - PDP-10 Archives - BB-JF18A-BM - sources/rms/rmsext.r36
There are 3 other files named rmsext.r36 in the archive. Click here to see a list.
%TITLE'R M S E X T -- external definitions'
! RMSEXT.R36 - RMS external definitions
!<BLF/REQUIRE 'RMSBLF.REQ'>
!
!
!	COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1984, 1986.
!	ALL RIGHTS RESERVED.
!
!	THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED  AND
!	COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH
!	THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS  SOFTWARE  OR
!	ANY  OTHER  COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
!	AVAILABLE TO ANY OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE
!	SOFTWARE IS HEREBY TRANSFERRED.
!
!	THE INFORMATION IN THIS SOFTWARE IS  SUBJECT  TO  CHANGE  WITHOUT
!	NOTICE  AND  SHOULD  NOT  BE CONSTRUED AS A COMMITMENT BY DIGITAL
!	EQUIPMENT CORPORATION.
!
!	DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF
!	ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
!

!++
! FACILITY:	RMS
!
! ABSTRACT:
!
!	Contains all external definitions used within RMS proper.
!	This includes global variables, global routines, and
!	messages.
!
! ENVIRONMENT:	Library file, to be required by all RMS BLISS modules.
!
! AUTHOR: Ron Lusk , CREATION DATE: 12-May-83
!
! MODIFIED BY:
!
!	Ron Lusk, 12-May-83 : VERSION 2
! 406	-   Create this file
!
!       Andrew Nourse, 14-Jan-85 : Version 3
! 501   -   Add some DAP routines,
!           make data structure pointers have appropriate FIELD attributes
! 504   -   Add UClass, UTGPointer, FindIma, GetImage, PutImage;
! 550	-   Add R$NULL to the EXTERNAL ROUTINE list (RL)
!--
!
! TABLE OF CONTENTS
!
!	Linkage definitions
!	External routine declarations
!	External variable declarations
!	RMS Message external declarations
!
! INCLUDE FILES:
!
!   
%SBTTL'Linkage definitions'


! These linkage declarations are duplicated in RMSSYS

%IF NOT %DECLARED (EXITSUB) 
%THEN
LINKAGE

!+
!   Linkage for call of MACRO subroutine
!-
    macrosub = PUSHJ : LINKAGE_REGS (15, 13, 1)
    PRESERVE (6, 7, 8, 9, 10, 11, 12)
    NOPRESERVE (0, 2, 3, 4, 5, 14),
!+
!   Linkage for call of routine that doesn't return
!-
    exitsub = PUSHJ : LINKAGE_REGS (15, 13, 0)
    PRESERVE (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14);

! End of Linkage Declarations duplicated in RMSSYS
%FI
%SBTTL'External routine declarations'
!++
!   Routine definitions
!--
EXTERNAL ROUTINE
    abortfile : NOVALUE,
    adjeof : NOVALUE,
    adjiptr,
    alcbkt,
    ascread,
    ascwrite : NOVALUE,
    alcnewids : NOVALUE,
    alcrfa,
    alcroot,
    bldcsidr,
    bldisidr,
    checkrp : NOVALUE,
    checkxab,
    chkdup,
    chkremote,
    ckeykk,
    ckeyku,
    ckeyuu,
    cleanup : NOVALUE,
    closefile : NOVALUE,
    compress,
    comprrv : NOVALUE,
    crash : exitsub NOVALUE,
    crepage : NOVALUE,
    cspt2,
    datofile : NOVALUE,
    dap$close,
    dap$deaccess,
    dap$connect,
    dap$disconnect,
    dap$find,
    dap$get,
    dap$merge,
    dap$openfile,
    dap$put,
    dcntrab,
    delidx : NOVALUE,
    delsidr,
    delsqr : NOVALUE,
    deludr,
    devchar,
    dispfile,
    doareablocks : NOVALUE,
    dodelidx,
    doeof : NOVALUE,
    dogetascii : NOVALUE,
    dogetidx : NOVALUE,
    dogetrel : NOVALUE,
    dogetseq : NOVALUE,
    dokeyblocks,
    doopen : NOVALUE,
    dosidr,
    doupdidx,
    dump : NOVALUE,
    dumpheader : NOVALUE,
    dumpidb : NOVALUE,
    dumpirecord,
    dumpkdb : NOVALUE,
    dumprd : NOVALUE,
    dumprst : NOVALUE,
    errorroutine,
    fbykey,
    fbyrfa,
    fbyrrv,
    fendofkey,
    ferror,
    fgpage,
    fgmem,
    fidxseq,
    fileq : NOVALUE,
    findasc,
    findidx : NOVALUE,
    findima,
    findrel,
    findseq,
    flubuf : NOVALUE,
    fnddata,
    fndrec,
    followpath,
    fpmem,
    fproblem,
    frecrfa,
    fsetup : NOVALUE,
    getascii,
    getbkt,
    getbuf,
    getidb,
    getidx,
    getimage,
    getkdb,
    getlsn : NOVALUE,
    getrec,
    getroot,
    getwindow,
    gmem,
    gpage,
    gtbyte,
    gtbktptr,
    gtnbkt,
    i1stsidr,
    idxfilprolog,
    idxupdate,
    insrtirecord,
    insrtsidr,
    insrtudr,
    ioerror : NOVALUE,
    killpage : NOVALUE,
    lockit,
    loffall : NOVALUE,
    makeidb : NOVALUE,
    makeirecord : NOVALUE,
    makeudr : NOVALUE,
    makesidr : NOVALUE,
    makidx,
    makroot,
    mapcodes : NOVALUE exitsub,
    monerr : exitsub,
    movekey : NOVALUE,
    moverec,
!   movestring,
    nextpage,
    nospan,
    numbertorfa,
    oabort : NOVALUE exitsub,
    ofile,
    okcreate : NOVALUE macrosub,
    padbuffer : NOVALUE,
    pagexist,
    pagin : NOVALUE,
    pagout : NOVALUE,
    pmem,
    posascfil : NOVALUE,
    posnext,
    posrp,
    posrfa,
    ppage,
    prichk,
    putascii : NOVALUE,
    putbkt : NOVALUE,
    putbuf,
    putels : NOVALUE,
    putidx : NOVALUE,
    putimage: NOVALUE,
    putlsn : NOVALUE,
    putrec : NOVALUE,
    putrel,
    putsidr,
    putsqr,
    r$null,					! Null routine call	!A550
    readadb,
    readbuffer : NOVALUE,
    readtty,
    removrecord : NOVALUE,
    rsetup : NOVALUE,
    sdatabkt,
    setfst,					! In RMSDSI
    setkdb,
    setnrp : NOVALUE,
    setplog,
    setput,
    setrst,					! In RMSDSI
    shuffleids,
    sindexbkt,
    sizefile,
    skiprecord,
    split,
    sptindex,
    sptsidr,
    squeezesidr : NOVALUE,
    truncfile : NOVALUE,
    tx$out : macrosub,
    tgupointer,                         ! make 2-word gbl to user rec !a504
    uaddr,                              ! Globalize user address      !a501
    uapointer,                          ! Globalize & bpize user ptr  !a501
    uclass,                             ! Find user file class        !a504
    undokdbs : NOVALUE,
    updidx : NOVALUE,
    updrrvs,
    updsqr : NOVALUE,
    updudr,
    usrerr : exitsub,
    usrret : exitsub,
    writebuffer : NOVALUE;

%IF %SWITCHES(TOPS10)
%THEN
EXTERNAL ROUTINE
    $cntdt: NOVALUE,
    $cnvdt: NOVALUE,
    par10fs,
    ttyhack;
%FI

%sbttl'External variable declarations'

!++
!	All externals for RMS declared here rather than
!	in macro EXTDECLARATIONS.  Error messages will
!	for the nonce be individually declared.
!--

EXTERNAL
    acc$1,					! Storage for ACs over calls
    acc$2,					! Ditto
    acc$3,					! Ditto
    bufacc,					! Count of buffer accesses
    						!   (calls to GETBUF)
    bugcod,					! Last bug code stored here
    bugflg,					! Debugging verbosity flags
    dextr1,					! A dummy external used
    						!   to pass AC values
    dvflgs,					! Flags from DVCHR (MONWORD)
    erradr,					! Address of user error return
    fdbword1,					! First word of FDB (MONWORD)
    frecor,					! Number of first free page
    numfreepages,				! Free pages left in core(?)
    oaflags,					! Indicates OABORT must be
    						!   called before user exit
    opnerrtab,					! Open error mapping table
    path : BLOCK,				! Path through index to record
    pb,						! User parameter block pointer
    plogpage,					! Page allocated for FPT
    rabutl,					! Location of RMSUTL RAB
    rms$$g,					! Location of RMS globals
    						! in one of three locations:
    						!   Low segment:
    						!	(RMS.REL with COBOL/R)
    						!   573000:
    						!	(RMSCOB.EXE)
    						!   643000
    						!	(RMS.EXE) -- This case
    						!	 only use RMS's own FSM
    rmssts,					! Misc. RMS-20 status bits
    tbuffer,					! Temp buffer for key strings
    ujsys,					! Location where last JSYS
    						!   is stored
    userjfn,					! Temporary storage for JFN
    						!    during $OPEN/$CREATE
    usrsts,					! Status
    usrstv;					! User status-value field
    !
    !	Data structure pointers
    !
EXTERNAL
    adb : REF BLOCK,                            ! Area Descriptor Block
    cbd : REF BLOCK,                            ! Current bucket desc (in RST)
    fab : REF BLOCK,                            ! User Record File Block
    fpt : REF BLOCK,				! User File Prologue Table
    fst : REF BLOCK,				! File Status Table pointer
    kdb : REF BLOCK,				! Key Descriptor Block
    rab : REF BLOCK,                            ! User Record Access Block
    rst : REF BLOCK;				! Record Status Table pointer

%( not allowed by compiler
MAP
    adb : REF $rms_adb[8],                      ! Area Descriptor Block
    cbd : REF $rms_bucket_descriptor,           ! Current bucket desc (in RST)
    fab : REF $fab_decl,			! User Record File Block
    fpt : REF $rms_fpt,				! User File Prologue Table
    fst : REF $rms_fst,				! File Status Table pointer
    kdb : REF $rms_kdb,				! Key Descriptor Block
    rab : REF $rab_decl,			! User Record Access Block
    rst : REF $rms_rst;				! Record Status Table pointer
)%

EXTERNAL
    dtptable : BLOCK,				! Key characteristics table
    pagtab : BLOCK,				! Page table for free core
    !
    !	Extended addressing data
    !
    blksec,					! Section number of
    						!   user's arg block
    rmssec,					! RMS's section number
    usrsec;					! Section number of user's code

%sbttl'Error message declarations'
EXTERNAL
    !
    !	Error messages
    !
    msgbkt,					! Current bucket is null
    msgbna,					! Buffer not allocated
    msgbsp,					! ? (FSM)
    msgbstatus,					! Bad return by GMEM
    msgcantgethere,				! Bad control flow
    msgccr,					! Can't create an RRV (no room)
    msgcore,					! Can't get core
    msgcount,					! Bad counter value
    msgdup,					! Duplicate in primary index
    msgeop,					! End of page found
    msgfailure,					! Routine failed
    msgflags,					! Bad flag values
    msgfunction,				! Bad function code
    msginput,					! Bad input to a routine
    msgjsys,					! Bad JSYS code
    msgkdb,					! Something wrong with KDB
    msgkey,					! Key addressing not detected
    msgksz,					! Bad key size value
    msglink,					! Link inconsistency
    msglevel,					! Bad level number found
    msgloop,					! Loop structure is bad
    msgmovestring,				! MOVE-STRING failed
    msgnocall,					! Routine should not be called
    msgnospace,					! No space in index bucket
    msgpage,					! Bad page number
!   msgpgone,					! File page missing
    msgpm2,					! BIGHOL is non-zero (FSM)
    msgpm3,					! Bad value found in PMEM
    msgpna,					! Page not allocated
    msgptr,					! Bad pointer returned
    msgrchanged,				! Root changed
    msgrfa,					! Bad RFA value
    msgrrv,					! RRV found in SIDR bucket
    msgsplit;					! Bad split parameters
!   msgufpgs,					! Can't update file pages
!   msgunlocked;				! Record is unlocked

! END RMSEXT.R36