BPX4SLK (shmem_lock) example

The following code initializes a shared memory resident lock. For the callable service, see shmem_lock (BPX1SLK, BPX4SLK) — Shared memory lock service. AMODE 31 callers use BPX1SLK (shmem_lock) example.
                                              
         XR    R15,R15               R15 = 0                            
         STG   R15,LOCKATTRADDR      No lock attribute Data             
         SPACE ,                                                        
         CALL  BPX4SLK,              shmem_lock                        +
               (=A(SLK_INIT),        INPUT: Function Code (Init)       +
               =A(SLK_NORMAL),       INPUT: Request Type (Normal)      +
               =A(SLK_SHARED),       INPUT: Lock Type (Shared)         +
               LOCKADDR,             INPUT: ->user lockword (shared mem+
               LOCKATTRADDR,         INPUT: Address of lock attr area  +
               LOCKTOKENADDR,        INPUT: Address of Lock Token      +
               RETVAL,               Return value: >=0 or -1           +
               RETCODE,              Return code                       +
               RSNCODE),             Reason code                       +
               MF=(E,PLIST)          ---------------------------------- 
         L     R15,RETVAL            Load return value                  
         C     R15,=F'-1'            Test for -1 return                 
         BE    PSEUDO                Branch on error