I'm very rusty ( 15+ years since I last used this) ... but can you use your 31 bit code to access a symbol relating to a 31/64 bit data item? I only used 31 bit, but I think I used to get a block of storage from the dump with a 64 bit address into my buffer in 31 bit address. You have to use the correct ESSY block. I could be deluded Colin
On Thu, 22 Sept 2022 at 11:55, Binyamin Dissen <[email protected]> wrote: > Looking at my code: > > The 31bit access call is > > IHBOPLTX , + > (ABDPL, ..ABDPL + > =A(ADPLSACC), ..TYPE OF CALL: ACCESS STOR + > MY_ADPLPACC), ..ACCESS STORAGE PARM LIST + > MF=(E,PLIST) > L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE > BASR R14,R15 > > The 64bit access call is: > > IHBOPLTX , + > (ABDPL, ..ABDPL + > =A(ADPLSMAP), ..TYPE OF CALL: MAP SERVICE + > XMSP), ..ACCESS STORAGE PARM LIST + > MF=(E,PLIST) > L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE > BASR R14,R15 > > Formatting the request is left as an exercise for the OP > > > > On Wed, 21 Sep 2022 15:49:21 -0500 David Janicek <[email protected]> > wrote: > > :>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 > > -- > Binyamin Dissen <[email protected]> > http://www.dissensoftware.com > > Director, Dissen Software, Bar & Grill - Israel > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
