Hi all. I am new to this list but I have searched the archives for an answer to my question already without any luck.
I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes
our application dumps and points out any inconsistencies in it. We are in the
process of moving some of our data above the bar (ATB) and I need to update the
VERBX to analyze that data. Unfortunately the IBM doc has virtually nothing on
how to access 64bit storage in an IPCS dump via a VERBX. I searched the
internet and the only clue I found was a 7 year old post on this site by Don
Poitras. He listed a routine in C that would access 64bit (and 31bit) storage.
I have tried to mimic that code in assembler but I haven't gotten it to work
yet. I am posting my code at the end of this listing. My hope is that someone
will either point out the error of my ways or, instead, simply post their code
that does the same thing. When I attempt to access 64bit storage, I get the
following messages:
Dump analysis will be incomplete.
XSSP passed by exit PLATFORM is not valid.
Equate Symbol record failed consistency check.
Here's my code that I'm using. Thanks in advance for your time on this.
Access64BitBlock Entry ,
*
Lmg R2,R3,0(R1) -> storage address and length to get
*
Cli WS_Es64,0 have we initialized storage yet?
Jne Access64BitBlock100 Yes->Don't do it again
*
La R14,WS_Es64 Copy
La R15,WS_Es64$ skeleton
La R0,C_Es64 to
Lgr R1,R15 working
Mvcl R14,R0 storage
*
Mvc WS_Es64AST,=Al2(ZZZASTCV) CPU ASID
Lgf R0,WS_SSAsid Set owning
St R0,WS_Es64AS1 asid
Mvi WS_Es64DTY,ZZZDTYU Set as area
*
Mvc WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton
Oi WS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit
Mvc WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage
Mvc WS_Xs64Modn,C_PlatFormVar
La R0,WS_Es64 Link them
St R0,WS_Xs64Esr together
*
CallFunc Function=StorageObtain, +
Param=4096, +
Mf=(E,WS_StorageObtainParms)
St R15,WS_Xs64Buf Save buffer address
*
Access64BitBlock100 Ds 0h
Stg R2,WS_Es64LAD Set address to obtain
Stg R3,WS_Es64DLE Set length to obtain
*
Sam31 , This call requires 31 bit amode
SysState Amode64=NO
*
Lg R4,WS_Abdpl@ -> IPCS parameter area
Using Abdpl,R4
*
L R15,AdplServ -> IPCS Service Routine
Call (15), go get the requested storage +
(Abdpl,=A(AdplSSym),WS_Xs64), +
Mf=(E,WS_P64Parms)
*
Sam64 , Get back in 64bit mode
SysState Amode64=YES
Drop R4
*
Ltr R15,R15 Did it work?
Llgt R15,WS_Xs64Buf -> returned storage
Jz Access64BitBlock Continue if successful
Sgr R15,R15 Indicate storage not found
Access64BitBlock900 Ds 0h
*
Exit ,
*
C_Es64 BlsrEssy Dsect=NO,ABITS=64
C_Xs64 BlsrXssp Dsect=NO
*
BeginWS ,
*
SysState Amode64=NO
WS_P64Parms Call ,(,,),Mf=L
SysState Amode64=YES
*
WS_Es64 BlsrEssy Dsect=NO,ABITS=64
WS_Es64$ Equ *-WS_Es64
WS_Xs64 BlsrXssp Dsect=NO
WS_Xs64$ Equ *-WS_Xs64
*
EndWS ,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
