On Thu, 22 Sep 2022 13:16:07 +0100 Colin Paice <[email protected]> wrote:
:>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 It has been a while, but I already had am API for the 31 bit addresses and did not want to change the API. The 64bit call will certainly do 31 bit zero extended addresses, but I believe the way the data is returned is different. :>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 -- 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
