Thank you Charles and Jon for your explanations.

"I would guess your S0C4 is caused by you not specifying LINKAGE=BRANCH on the 
WTO"
I use LINKAGE=BRANCH. Using workarea method works well (WTO OK) except when a 
user login/logoff (S0C4-11). I use this area for few bytes (less than 1024)

Workarea method : works but S0C4-11 when a user login/logoff on my test system
         LR    R10,R1              Parameter list dans R10              
         USING SMFEXITP,R10
...
         L     R8,SMXP_RECPTR           R8 = record SMF
         LR    R9,R10                   R9 = Parameter List
         A     R9,SMXP_WORKAREA_OFFSET  R9 = Pointer to the work area
...
         USING WORKAREA,R9
...
         WTO   MF=(E,WTOZONE),LINKAGE=BRANCH                 
                 


Storage Obtain method : works every time on my test system
         LR    R10,R1              Parameter list dans R10              
         USING SMFEXITP,R10
...
         L     R8,SMXP_RECPTR           R8 = record SMF
         STORAGE OBTAIN,LENGTH=WORKLEN,ADDR=(R1),SP=245
         LTR   R15,R15              Storage Obtain OK ?
         JNZ   FIN                  Non, on sort sans RELEASE
         LR    R9,R1                R9 = addr memoire obtenue    
...
         USING WORKAREA,R9
         ST    R9,WORKADDR       Sauvegarde de l addr pour le release
...
         WTO   MF=(E,WTOZONE),LINKAGE=BRANCH     
         STORAGE RELEASE,LENGTH=WORKLEN,ADDR=WORKADDR,SP=245                    



Reply via email to