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

Reply via email to