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

Reply via email to