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