I've used IARV64 and IARCP64 extensively. This is my first time trying IARST64.
Forgive the staggering after the cut and paste.
dsa_word contains X'00008000'
. 169800 st r00,dsa_word
Save the size in bytes .
. 169900 lgr gr02,gr13
.
. 170000 sam64 ,
.
. 170100 la r03,dsa_word
.
. 170200 la r13,dsa_save64
.
. 170210 xgr gr00,gr00
.
. 170300 sysstate amode64=yes
.
. 170400 iarst64 request=get,
/ .
. 170500 size=(r03),
/ .
. 170700 common=no,
/ .
. 170800 owningtask=current,
/ .
. 170900 memlimit=no,
/ .
. 171000 fprot=no,
/ .
. 171100 type=pageable,
/ .
. 171200 callerkey=yes,
/ .
. 171300 failmode=rc,
/ .
. 171400 regs=save,
/ .
. 171500 retcode=dsa_rc,
/ .
. 171600 rsncode=dsa_rsn
.
. 171700 sysstate amode64=no
.
. 171800 sam31 ,
.
. 171900 lgr gr13,gr02
.
. 171901 exrl 0,* %%%%%
The registers at abend are :
TIME=13.22.41 SEQ=00300 CPU=0000 ASID=001E
582 PSW AT TIME OF ERROR 070C1000 9AB2BB6C ILC 6 INTC 03
582 ACTIVE LOAD MODULE ADDRESS=1AB2A000 OFFSET=00001B6C
582 NAME=program
582 DATA AT PSW 1AB2BB66 - C6000000 0000E310 D3E80024
582 AR/GR 0: 00000000/00000000_00008000 1:
00000000/00000050_00301000
582 2: 00000000/00000000_1AC41000 3:
00000000/00000000_1AC41118
582 4: 00000000/00000000_1ABE83A0 5:
00000000/00000000_0C000000
582 6: 00000000/00000000_007CCFC8 7:
00000000/00000000_00000000
582 8: 00000000/00000000_1ABCA028 9:
00000000/00000000_1AA5A028
582 A: 00000000/00000000_1AA0F000 B:
00000000/00000000_1AA535A8
582 C: 00000000/00000000_1AB2D930 D:
00000000/00000000_1AC41000
582 E: 00000008/00000000_1AB2BB52 F:
00000000/00000000_00000000
The call seemed to work.
The system trace table shows :
0000 001E 007BE3E8 SSRV 1000 1AB2BB52 00000000 0A000000
03000000 IarST64 Get D7CE162A5FCA25DA 0103
00000050_00301000
00000000_00008000
00000000_00000000
0000 001E 007BE3E8 *PGM 003 00000000_1AB2BB6C 00060003 00000050
00000000 00000000 001E 001E D7CE162A5FCA2C10
07041000 80000000 00300400
00000000
0000 001E 007BE3E8 *RCVY PROG 940C3000 00000003 00000000
00000000 00000000 001E 001E D7CE162A5FCC0F96
The address is 00000050_00301000 and the length is X'8000'.
I don't know what the last double word represents.
SSRV 1000 is not documented in the V2R4 Diagnosis: Tool and Service Aids.
So I thought I was good to go.
When I attempt to read X'8000' bytes into my buffer with BPX4RED() I
get a return code of 118 indicating an incorrect address.
When I try to browse the storage in IPCS, I get:
_0301000.:50_00302FFF. LENGTH(X'2000')--All bytes contain X'00'
_0303000.:FFFFFFFF_FFFFFFFF. LENGTH(X'FFFFFFAF_FFCFD000')--Storage not
available
*********************************************************** END OF DATA
So Unix checks the bounds of the I/O area before doing anything.
When I try to get 64K, I also get X'2000'.
Anything more than X'2000' results in just X'2000' usable.
If I get less than X'2000', X'2000' is gotten.
It seems that X'2000' or 8K is always gotten.
It almost looks like this is a configuration issue.
I looked but couldn't find anything.
Any help would be appreciated.
Thanks in advance, Pierre.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN