Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!gatech!bloom-beacon!think!ames!ucbcad!ucbvax!ENGVAX.SCG.HAC.COM!KVC
From: KVC@ENGVAX.SCG.HAC.COM (Kevin Carosso)
Newsgroups: comp.os.vms
Subject: Re: PFN mapping
Message-ID: <8707212006.AA12774@ucbvax.Berkeley.EDU>
Date: Fri, 17-Jul-87 16:13:00 EDT
Article-I.D.: ucbvax.8707212006.AA12774
Posted: Fri Jul 17 16:13:00 1987
Date-Received: Thu, 23-Jul-87 04:38:51 EDT
Sender: daemon@ucbvax.BERKELEY.EDU
Distribution: world
Organization: The ARPA Internet
Lines: 19

> though.  I use the SEC$M_EXPREG to map the range into the first available
> address in my process virtual address space and the system service manual
> says that in this case the array INADR will determine only if the mapping
> will be to P0 or to P1 space, it does not say *how* it will determine this!
> By looking at an example in SYS$EXAMPLES of a BLISS program which does PFN
> mapping I learned that the magic number of 200 seems to do the trick.
> My question is why? and how do you get it to map to P1 space, though I don't
> see why you would ever want to do that.

It determines from the addresses you put in INADR whether to map into P0 or
P1.  200 is (by default) the first page of P0 (your lowest accessible
virtual address, page 0 which would have VA's 0 through 1FF is not mapped
to catch things like nil pointer references).  If you put any P0 address
into INADR it will map to P0 space.  If you put any P1 address into INADR it
will map to P1 space.  P1 space is virtual addresses 40000000 through
7FFFFFFF.  P0 is 00000000 through 3FFFFFFF.

        /Kevin Carosso                     kvc@engvax.scg.hac.com
         Hughes Aircraft Co.               kvc%engvax@oberon.usc.edu