I would advise testing the length of the work area against your required length.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Assembler List [[email protected]] on behalf 
of Guillaume Boesel [[email protected]]
Sent: Saturday, July 8, 2023 3:35 PM
To: [email protected]
Subject: Re: IEFU86 WorkArea use ?

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