I have a program that loads CSRSI,  It obtains Storage for the response area, 
and invokes CSRSI via a Call

I wanted to replace the STORAGE MACRO with IAVR64
So I believe the program could be re-wriiten as follows:
*
         LOAD  EP=CSRSI                  Load CSRSI Function
         ST    R0,CSRSI@                 Save Address Of CSRSI Function
*
         IARV64 REQUEST=GETSTOR,SEGMENT==AD(MAXSIZE),
             ORIGIN=ORIGIN,MF=E,IARV64,COMPLETE)                                
         *                                                                      
              LG    R0,ORIGIN               Get Starting Address Of Memory 
Object
         STG   R0,CSRSI_INFO@          Store Mem-Obj Address for CSRSI

         SYSSTATE AMODE64=YES,ARCHLVL=2

         L     R15,CSRSI@                       Load R15 with CSRSI Address
   CALL  (R15),(CSRSI_TYPE,CSRSI_INFOLEN,CSRSI_INFO@,CSRSI_RC)
         LTR   R15,R15                     Examine Return code
         BNZ   BAD_CSRSI                   No, Exit
         USING SIV1,R8                     Map SYSIB
*
ORIGIN        DC AD(0)
SRSI_TYPE     DS A                      CSRSI Type Indicator
CSRSI_INFOLEN DS A                      Length Of Infor Area
CSRSI_INFO@   DS AD                     Infor Area Address
CSRSI_RC      DS A                      Return Code
CSRSI@        DS A                      CSRSI Routine Address
*
Does the above code sequence look reasonably correct.
After the call statement will the memory object addressed by CSRSI_INFO@,
contain the data returned by CSRSI ?

Paul D'Angelo

Reply via email to