Open List of Interprocess Communication Objects (QP0ZOLIP) API


  Required Parameter Group:


  Default Public Authority: *USE

  Threadsafe: No

The Open List of Interprocess Communication Objects (QP0ZOLIP) API lets you generate a list of interprocess communication (IPC) objects and descriptive information based on the selection parameters. The QP0ZOLIP API places the specified number of list entries in the receiver variable. You can access additional records by using the Get List Entries (QGYGTLE) API. On successful completion of the QP0ZOLIP API, a handle is returned in the list information parameter. You may use this handle on subsequent calls to the following APIs:

You can use the QP0ZOLIP API to:

Only one IPC type (either semaphore sets, message queues, shared memory, named semaphores, or unnamed semaphores) can be returned in one call to this API. The IPC type is determined by the format name parameter.

The records returned by QP0ZOLIP include an information status field that describes the completeness and validity of the information. Be sure to check the information status field before using any other information returned.


Authorities and Locks

Job Authority
Service special authority (*SERVICE) is needed to call this API.

For additional information about this authority, see the Security reference topic collection.


Required Parameter Group

Receiver variable
OUTPUT; CHAR(*)

The variable that is used to return the IPC object information that you requested.

Length of receiver variable
INPUT; BINARY(4)

The length of the receiver variable.

List information
OUTPUT; CHAR(80)

Information about the list of IPC objects that were opened. For a description of the layout of this parameter, see Open list information format.

Number of records to return
INPUT; BINARY(4)

The number of records in the list to put into the receiver variable.

Format name
INPUT; CHAR(8)

The format of the information to be returned in the receiver variable. This parameter will determine the type of IPC mechanism to open the list for. You must use one of the following format names:



Filter information
INPUT; CHAR(*)

The information in this parameter is used to filter the list of IPC objects. The format of this variable depends on the filter format name.

Filter format name
INPUT; CHAR(8)

The name of the format that is used to filter the list of IPC objects. You must use one of the following format names:


Error code
I/O; CHAR(*)

The structure in which to return error information. For the format of the structure, see Error code parameter.


FIPC0100 Format

The following shows the format of the filter information for the FIPC0100 format. For detailed descriptions of the field in the table, see Field Descriptions.



Field Descriptions

Creator profile name. The user profile names that created the IPC objects being returned. These values are used only if the number of creator profiles specified field is greater than one. Possible special values follow:

Filter on key. Whether filtering will be done based on the key value of the IPC object. Possible values follow:

Maximum key. The IPC object's maximum key value. Only the IPC objects with a key greater than or equal to the minimum key and less than or equal to the maximum key will be added to the generated list. This value is only used if the filter on key field is set to one.

Minimum key. The IPC object's minimum key value. Only the IPC objects with a key greater than or equal to the minimum key and less than or equal to the maximum key will be added to the generated list. This value is only used if the filter on key field is set to one.

Number of creator profiles specified. The number of creator profiles specified in the creator profile names array. If this value is zero, no filtering is to be done for the creator user profile.

Number of owner profiles specified. The number of owner profiles specified in the owner profile names array. If this value is zero, no filtering is to be done for the owner user profile.

Offset to creator profiles array. The offset in characters (bytes) from the beginning of the filter information to the beginning of the array of creator profiles.

Offset to owner profiles array. The offset in characters (bytes) from the beginning of the filter information to the beginning of the array of owner profiles.

Owner profile name. The user profile names that own the IPC objects being returned. These values are used only if the number of owner profiles specified field is greater than one. Possible special values follow:

Reserved. These characters must be set to '00'x.


LSST0100 Format

This format name is used to return list information for semaphore sets. The following table shows the information returned in each record in the receiver variable for the LSST0100 format. For a detailed description of each field, see Field Descriptions.



LMSQ0100 Format

This format name is used to return list information for message queues. The following table shows the information returned in each record in the receiver variable for the LMSQ0100 format. For a detailed description of each field, see Field Descriptions.



LSHM0100 Format

This format name is used to return list information for shared memory. The following table shows the information returned in each record in the receiver variable for the LSHM0100 format. For a detailed description of each field, see Field Descriptions.



LNSM0100 Format

This format name is used to return list information for named semaphores. The following table shows the information returned in each record in the receiver variable for the LNSM0100 format. For a detailed description of each field, see Field Descriptions.



LUSM0100 Format

This format name is used to return list information for unnamed semaphores. The following table shows the information returned in each record in the receiver variable for the LUSM0100 format. For a detailed description of each field, see Field Descriptions.



Field Descriptions

Authorized to delete. This value determines if the caller has the authority to delete this IPC object. Possible values follow:

Creator. The name of the user profile that created this IPC object.

Creator's group. The name of the group profile that created this IPC object. A special value can be returned:

Damaged. Whether the IPC object has suffered internal damage. Possible values follow:

General read permission. Whether any user other than the owner and group owner has read authority to the IPC object. Possible values follow:

General write permission. Whether any user other than the owner and group owner has write authority to the IPC object. Possible values follow:

Group owner. The name of the group profile that owns this IPC object. A special value can be returned:

Group read permission. Whether the group owner has read authority to the IPC object. Possible values follow:

Group write permission. Whether the group owner has write authority to the IPC object. Possible values follow:

Identifier. The unique IPC object identifier.

Key. The key of the IPC object. If this value is zero, this IPC object has no key associated with it.

Last administration change date and time. The date and time of the last change to the IPC object for the owner, group owner, or permissions. The 16 characters are:

Last detach date and time. The date and time of the last detachment from the shared memory segment. If no thread has performed a successful detachment, this value will be set to all zeros. The 16 characters are:

Last msgrcv() date and time. The date and time of the last successful msgrcv() call. If no thread has performed a successful msgrcv() call, this value will be set to all zeros. The 16 characters are:

Last msgsnd() date and time. The date and time of the last successful msgsnd() call. If no thread has performed a successful msgsnd() call, this value will be set to all zeros. The 16 characters are:

Last sem_post() qualified job identifier. The job name, the job user profile, and the job number of the last thread that successfully called sem_post() or sem_post_np() if the job has not ended. The 26 characters are:

If the thread has ended, then the first 16 characters contain 16 characters that uniquely identify the ended job, followed by 10 spaces. If no thread has used sem_post() to post to the semaphore, then the 26 characters will contain spaces.

Last sem_post() thread identifier. The thread ID of the last thread that successfully called sem_post() or sem_post_np() if the thread has not ended.

Last sem_wait() qualified job identifier. The job name, the job user profile, and the job number of the last thread that returned from a sem_wait(), sem_wait_np(), or sem_wait() call, if the job has not ended. The 26 characters are:

If the thread has ended, then the first 16 characters contain 16 characters that uniquely identify the ended job, followed by 10 spaces. If no job has used sem_wait() to wait on the semaphore, then the 26 characters will contain spaces.

Last sem_wait() thread identifier. The thread ID of the last thread that returned from a sem_wait(), sem_wait_np(), or sem_wait() call, if the thread has not ended.

Last semop() date and time. The date and time of the last successful semop() call. If no thread has performed a successful semop() call, this value will be set to all zeros. The 16 characters are:

Last shmat() date and time. The date and time of the last successful shmat(). If no thread has performed a successful shmat() call, this value will be set to all zeros. The 16 characters are:

Length of entry. The length of this record in the list.

Length of name. The number of bytes in the name of the semaphore, not including the terminating null character.

Marked to be deleted. Whether the shared memory is marked to be deleted when the number attached becomes zero. Possible values follow:

Maximum size of all messages on queue. The maximum byte size of all messages that can be on the queue at one time.

Maximum value. The maximum value of the semaphore.

Name of the semaphore. The null-terminated name of the semaphore.

Number attached. The number of times any thread has done a shmat() without doing a detach.

Number of messages on queue. The number of messages that are currently on the message queue.

Number of semaphores. The number of semaphores in the semaphore set.

Number of threads to receive message. The number of threads that are currently waiting to receive a message.

Number of threads to send message. The number of threads that are currently waiting to send a message.

Number of waiting threads. The total number of threads that are waiting for this semaphore to reach a certain value.

Offset to name. The offset to where the name field begins.

Offset to waiting threads. The offset to where the fields containing waiting threads begin.

Owner. The name of the user profile that owns this IPC object.

Owner read permission. Whether the owner has read authority to the IPC object. Possible values follow:

Owner write permission. Whether the owner has write authority to the IPC object. Possible values follow:

Page size. The page size (in bytes) of the storage backing the shared memory segment.

Reserved. A reserved field.

Resize. Whether the shared memory object may be resized. Possible values follow:

Segment size. The size of the shared memory segment represented in an UNSIGNED BINARY(4) data type. If the size cannot be fully represented in an UNSIGNED BINARY(4) data type, this field will be set to x'FFFFFFFF' and the Segment size 64 field must be used to get the size of the shared memory segment.

Segment size 64. The size of the shared memory segment represented in an UNSIGNED BINARY(8) data type. This field is set in addition to the value set in the Segment size field. The Segment size field can also be used to obtain the size for shared memory segments whose size can be fully represented in an UNSIGNED BINARY(4) data type.

Size of all messages on queue. The byte size of all of the messages that are currently on the queue.

Teraspace. Whether the shared memory object is attachable only to a process's teraspace. Possible values follow:

Title. The title of the semaphore. The title contains the 16 characters that are associated with the semaphore when it is created.

Value. The value of the semaphore.

Waiting qualified job identifier. The job name, the job user profile, and the job number of a thread waiting on the semaphore. The 26 characters are:

Waiting thread identifier. The thread ID of a thread waiting on the semaphore.


Error Messages



API introduced: V4R2

[ Back to top | UNIX-Type APIs | APIs by category ]