Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!gatech!bloom-beacon!oberon!cit-vax!ucla-cs!zen!ucbvax!CITHEX.CALTECH.EDU!carl
From: carl@CITHEX.CALTECH.EDU (Carl J Lydick)
Newsgroups: comp.os.vms
Subject: Re: Help Request
Message-ID: <870709152109.03f@CitHex.Caltech.Edu>
Date: Thu, 9-Jul-87 18:30:40 EDT
Article-I.D.: CitHex.870709152109.03f
Posted: Thu Jul  9 18:30:40 1987
Date-Received: Sun, 12-Jul-87 14:11:58 EDT
References: <870708145813.000014A32C1@cuchem.chem.columbia.edu>
Sender: daemon@ucbvax.BERKELEY.EDU
Distribution: world
Organization: The ARPA Internet
Lines: 18


 > PROBLEM:  I HAVE A FORTRAN PROGRAM WHICH NEEDS TO HANDLE AN AST.   I  WOULD
 > LIKE  TO  LOCK IN MEMORY THE PAGES OF EITHER THE WHOLE PROGRAM OR MINIMALLY
 > THOSE PARTS REQUIRED TO HANDLE THE AST (COMMON BLOCKS AND THE  AST  ROUTINE
 > ITSELF)  SO  THAT  THE  RESPONSE  TIME  WILL  BE  QUICK.  TO USE THE SYSTEM
 > SERVICES LOCK PAGES IN MEMORY ROUTINE SYS$LCKPAG OR SYS$LKWSET  I  NEED  TO
 > KNOW  THE  ADDRESSES  OF  THE PAGES TO BE LOCKED.  I DO NOT KNOW HOW TO USE
 > SYSTEM ROUTINES (SYS$GETJPI??) TO FIND THESE ADDRESSES.

Warning:  I've never used SYS$LCKPAG or SYS$LKWSET.   My  recommendations  may
well be useless.

However, I suspect your best bet will be to use the DCL ANALYZE/IMAGE  utility
to find out where the pages you want to lock reside (or you may be able to use
the compilation listing and link map to do it), after having put in your  call
to  the  system  service  using an arbitrary address (so that the code doesn't
move around when you put in the call).   Then  edit  the  source  to  use  the
addresses you find that way.