CEEOPMI

CEEOPMI initializes the mutex or read-write lock referred to by lock_object with the attributes identified by attr_object. If this function fails, the mutex or read-write lock is not initialized and the contents of lock_object is undefined.

C library interface

pthread_mutex_init(), pthread_rwlock_init()

Syntax

void CEEOPMI (lock_object, attr_object, lock_type, [fc])
CEE_MUTEX      *lock_object;
CEE_LOCKATTR   *attr_object;
INT4           *lock_type;
FEED_BACK      *fc;
CEEOPMI
Call this CWI interface as follows:
L     R15,CEECAALEOV-CEECAA(,R12)     CAA address is in R12
L     R15,0280(,R15)
BALR  R14,R15
lock_object (input/output)
The mutex or read-write lock to be initialized.
attr_object (input)
The attributes object used to initialize the mutex or read-write lock.
lock_type (input)
A full word integer with the following defined values:
X'00000000'
mutex (without _OPEN_SYS_MUTEX_EXT feature)
X'00000001'
read-write lock
X'00000002'
extended mutex (with _OPEN_SYS_MUTEX_EXT feature)
fc (output/optional)
The feedback code returned by the service. It indicates the degree of success in initializing the lock_object.

The following message identifiers and associated severity can be returned by the service in the feedback code fc.

Condition Description category Description value
CEE000 Severity 0
Msg_No 0000
Message The service completed successfully.
CEE4S9 Severity 3
Msg_No 5001
Message The service is unavailable unless POSIX(ON) runtime option specified and z/OS UNIX System Services are started.
CEE5I7 Severity 3
Msg_No 5703
Message Address exception accessing object specified by lock_object or attr_object.
CEE5I8 Severity 4
Msg_No 5704
Message Address exception while referencing storage allocated by mutex initialization for pthread_mutex_t object specified by lock_object.
CEE5IC Severity 3
Msg_No 5708
Message The pthread_mutex_t object specified by lock_object was already initialized.
CEE5ID Severity 3
Msg_No 5709
Message The pthread_mutexattr_t object specified by attr_object is not valid (not initialized).
CEE5IE Severity 3
Msg_No 5710
Message Insufficient storage to initialize the pthread_mutex_t object specified by lock_object.
CEE5IK Severity 4
Msg_No 5716
Message Unable to free storage allocated by mutex initialization for pthread_mutex_t object specified by lock_object.
CEE5IP Severity 0
Msg_No 5721
Message Insufficient resource to initialize mutex specified by lock_object.
CEE5IQ Severity 0
Msg_No 5722
Message Insufficient privilege to initialize mutex specified by lock_object.
CEE5K6 Severity 3
Msg_No 5766
Message An addressing exception occurred referencing a lock object.
CEE5K7 Severity 4
Msg_No 5767
Message Address exception while referencing system storage allocated by lock object initialization.
CEE5KB Severity 3
Msg_No 5771
Message The pthread_rwlock_t object specified by lock_object was already initialized.
CEE5KC Severity 3
Msg_No 5772
Message The lock attribute object specified by attr_object was not initialized.
CEE5KD Severity 3
Msg_No 5773
Message Insufficient storage to initialize the pthread_rwlock_t object specified by lock_object.
CEE5KJ Severity 4
Msg_No 5779
Message System lock storage could not be freed.
CEE5KO Severity 0
Msg_No 5784
Message Insufficient resource to initialize another read-write lock specified by lock_object.
CEE5KP Severity 0
Msg_No 5785
Message Insufficient privilege to initialize the read-write lock specified by lock_object.
CEE5KQ Severity 3
Msg_No 5786
Message The callable service BPX1SLK failed during shared lock processing. The system return code was return_code, the reason code was reason_code, X'00'.
CEE5L4 Severity 3
Msg_No 5796
Message The callable service, BPX1SMC, failed during shared lock processing. The system return code was return_code. The reason code was return_code, X'00'.