I did not understand why the documentation in the "Extended Addressabilty
Guide" stated "The IARV64 macro provides all the virtual storage services for
your programs." and then I find IARST64 documented in the "Assembler Services
Reference". So I did some testing:
Code Executed:
SYSSTATE AMODE64=YES
N R12,=X'7FFFFFFF'
MODESET MODE=SUP,KEY=ZERO /* MUST BE KEY 0 WHEN ISSUE ESTAE*/
SAM64
IARST64 REQUEST=GET, * * X
AREAADDR=THEAREAADDR, * * X
SIZE=THEAREASIZE,TYPE=PAGEABLE, * * X
COMMON=YES,OWNER=SYSTEM, * * X
FPROT=YES, * * X
CALLERKEY=YES, * * X
FAILMODE=RC, * * X
REGS=SAVE, * * X
RETCODE=LRETCODE,RSNCODE=LRSNCODE *
LG R2,THEAREAADDR
LA R3,15
LA R4,=C'MEAS 64 STORAGE'
LGR R5,R3
MVCL R2,R4
SAM31
WAIT ECB=WAITE
What I learned:
1) I need to learn a whole lot about 64 bit programming.
2) The storage obtained was still available after the job was cancelled
(COMMON=YES,OWNER=SYSTEM) as I hoped.
3) The storage obtained was visable from other address spaces (I looked in a
dump of a TSO user) as I hoped.
4) The storage obtained was only 64 bytes (as documented by the IARST64
documentation.
5) I did not have to obtain the storage using IARV64. I did not have to use
IARV64 to SHAREMEMOBJ.
It works exactly as I hoped. I will keep you informed if I learn more on this
issue.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN