Reentrant return linkage

                                              
         XR    R15,R15               Zero return code                   
         L     R0,@SIZEDAT           Size this program's getmain area   
         LR    R1,R13                R1 -> this program's getmain area  
         L     R13,@BACK             R2 -> caller's save area           
         DROP  R13                                                      
         FREEMAIN RU,LV=(0),A=(1)                                       
         L     R14,12(,R13)          Restore caller's R14               
         LM    R0,R12,20(R13)        Restore caller's R0-R12            
         BSM   0,R14                 Branch back to caller              
                                              
         SPACE ,  * * * * * * * * * *.* Program constants * * * * * * * 
@SIZEDAT DC    A(@ENDSTOR-@STORE)    Size of this getmain storage       
MNTEL    DC    A(MNTE#LENGTH+MNTEH#LENGTH)                              
*                                    Length of MNTEH and 1 MNTE area    
PGPSL    DC    A(PGPS#LENGTH)        Length of PGPS structure           
RMONL    DC    A(RMON#LENGTH)        Length of RMON structure           
SSTFL    DC    A(SSTF#LENGTH)        Length of SSTF structure           
STATL    DC    A(STAT#LENGTH)        Length of STAT structure           
UTSNL    DC    A(UTSN#LENGTH)        Length of UTSN structure           
         SPACE ,                                                        
PRIMARYALET  DC   A(0)               Primary ALET                       
                                              
* * * * * * * * * * * * * * * * * * *.* Structures requiring a USING  * 
         BPXYDIRE DSECT=YES          Dictionary for readdir             
         BPXYGIDN DSECT=YES          Group names                        
         BPXYGIDS DSECT=YES          Group IDs and member names         
         BPXYOSMF DSECT=YES          Job step accounting for BPXESMF    
         BPXYPOLL DSECT=YES          Poll syscall parameters (I/O)      
         BPXYPGTH DSECT=YES          Mapping for __getthent data        
         BPXYPPSD DSECT=YES          Signal data area (R1 in SIR)       
         BPXYSEL  DSECT=YES          Select options                     
         BPXYSFPL DSECT=YES          Send_file parameter list           
         BPXYTHDQ DSECT=YES          Data structure for BPX1PQG         
         BPXYWLM  ,                  Work load manager                  
* * * * * * * * * * * * * * * * * * *.* EQUates * * * * * * * *         
* With EQUate only macros, DSECT= is allowed but is ignored             
         BPXYCONS ,                  z/OS UNIX constants                
         BPXYCW   ,                  Serialization constants            
         BPXYERNO LIST=NO            Errno, Errnojr constants           
         BPXYFTYP ,                  File type constants                
         BPXYPCF  ,                  Command, pathconf constants        
         BPXYSEEK ,                  lseek constants                    
         BPXYSIGH ,                  Signal constants                   
                                              
* * * * * * * * * * * * * * * * * * *.* Standard linkage save area  * * 
@STORE   DSECT ,                                                        
@SAVE00  DS    0D                    Standard 72-byte save area         
         DS    A                                                        
@BACK    DS    A                     Back to caller's save area         
@FORWARD DS    A                     Forwards to callee's save area     
         DS    15A                   Regs 14,15,0-12                    
                                              
* * * * * * * * * * * * * * * * * * *.* Standard linkage save area  * * 
@STORE   DSECT ,                                                        
@SAVE00  DS    0D                    Standard 72-byte save area         
         DS    A                                                        
@BACK    DS    A                     Back to caller's save area         
@FORWARD DS    A                     Forwards to callee's save area     
         DS    15A                   Regs 14,15,0-12                    
                                              
* * * * * * * * * * * * * * * * * * *.* Standard linkage save area  * * 
@STORE   DSECT ,                                                        
@SAVE00  DS    0D                    Standard 72-byte save area         
         DS    A                                                        
@BACK    DS    A                     Back to caller's save area         
@FORWARD DS    A                     Forwards to callee's save area     
         DS    15A                   Regs 14,15,0-12                    
                                              
* * * * * * * * * * * * * * * * * * *.* Standard linkage save area  * * 
@STORE   DSECT ,                                                        
@SAVE00  DS    0D                    Standard 72-byte save area         
         DS    A                                                        
@BACK    DS    A                     Back to caller's save area         
@FORWARD DS    A                     Forwards to callee's save area     
         DS    15A                   Regs 14,15,0-12                    
                                              
* * * * * * * * * * * * * * * * * * *.* Standard linkage save area  * * 
@STORE   DSECT ,                                                        
@SAVE00  DS    0D                    Standard 72-byte save area         
         DS    A                                                        
@BACK    DS    A                     Back to caller's save area         
@FORWARD DS    A                     Forwards to callee's save area     
         DS    15A                   Regs 14,15,0-12                    
                                              
* * * * * * * * * * * * * * * * * * *.* Standard linkage save area  * * 
@STORE   DSECT ,                                                        
@SAVE00  DS    0D                    Standard 72-byte save area         
         DS    A                                                        
@BACK    DS    A                     Back to caller's save area         
@FORWARD DS    A                     Forwards to callee's save area     
         DS    15A                   Regs 14,15,0-12