Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!mcnc!rti!rcb
From: rcb@rti.UUCP (Random)
Newsgroups: comp.os.vms
Subject: Re: transfer vectors
Message-ID: <1572@rti.UUCP>
Date: Thu, 23-Jul-87 10:08:18 EDT
Article-I.D.: rti.1572
Posted: Thu Jul 23 10:08:18 1987
Date-Received: Sat, 25-Jul-87 06:36:27 EDT
References: <8707230304.AA14642@ucbvax.Berkeley.EDU>
Reply-To: rcb@rti.UUCP (Random)
Distribution: world
Organization: Research Triangle Institute, NC
Lines: 28

>Randy Buckland answers:
>>The solution is really simple. Have a section of code that will
>>always be at a fixed address and will contain pointers to the data structures.
>>The pointers will always be 4 bytes and the addresses won't change. You
>>can change the size of the structure and you could even change it
>>at run time and the program won't care since it always accesses it through
>>the pointer that is in a known location.
>
>Good point, Randy, but not applicable in this case.  If somebody is changing
>variable lengths on you, all the indirection in the world won't solve the
>problem.  You not only have to relink, you have to modify source code and
>recompile!
>

One more time......

The pointer variables (using 4 bytes each) are interleaved with the 
transfer vectors right at the front of the shared image. Once allocated a space
in the transfer vector psect, their address relative to the front of the
shared image NEVER moves. The value stored in those four bytes can change
as things move around in the body of the shared image, but the pointer
is always at a fixed address at the head of the image just like a transfer
vector.
-- 
					Randy Buckland
					Research Triangle Institute
					rcb@rti.rti.org [128.109.139.2]
					{decvax,ihnp4,seismo}!mcnc!rti-sel!rcb