5173 lines
172 KiB
HTML
5173 lines
172 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
|
|
<title>Retrieve Synchronization Object Information (Qp0msRtvSyncObjInfo) API</title>
|
|
<!-- Begin Header records -->
|
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|
<!-- US Government Users Restricted Rights -->
|
|
<!-- Use, duplication or disclosure restricted by -->
|
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|
<!-- Created for V5R3 by Darcy Rucker -->
|
|
<!-- Change history -->
|
|
<!-- 0300918 JETAYLOR html cleanup -->
|
|
<!-- 040903 darcyr Changes for PTF SI15644 -->
|
|
<!-- 040713 darcyr New Function For V5R4 -->
|
|
<!-- 050801 darcyr Fixed a few typos -->
|
|
<!--End Header Records ================================================ -->
|
|
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
|
</head>
|
|
<body>
|
|
<a name="Top_Of_Page"></a>
|
|
<!-- Java sync-link =================================================== -->
|
|
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
|
|
</script>
|
|
|
|
<h2>Retrieve Synchronization
|
|
Object Information (Qp0msRtvSyncObjInfo()) API</h2>
|
|
|
|
<div class="box" style="width: 80%;">
|
|
<br>
|
|
Required Parameter Group:<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
<table width="100%">
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">1</td>
|
|
<td align="left" valign="top" width="50%">Receiver variable</td>
|
|
<td align="left" valign="top" width="20%">Output</td>
|
|
<td align="left" valign="top" width="20%">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">2</td>
|
|
<td align="left" valign="top">Length of receiver variable</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">3</td>
|
|
<td align="left" valign="top">Format of receiver information</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(8)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">Target identification</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">5</td>
|
|
<td align="left" valign="top">Format of target identification</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(8)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">6</td>
|
|
<td align="left" valign="top">Options variable</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">7</td>
|
|
<td align="left" valign="top">Format of options variable</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(8)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">Error Code</td>
|
|
<td align="left" valign="top">I/O</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
Service Program Name: QP0MSRTVSO<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
Default Public Authority: *USE<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
Threadsafe: Yes<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
</div>
|
|
|
|
<p>The Retrieve Synchronization Object Information API (Qp0msRtvSyncObjInfo())
|
|
retrieves status information for a synchronization object.</p>
|
|
|
|
<br>
|
|
|
|
|
|
<h3>Authorities and Locks</h3>
|
|
|
|
<dl>
|
|
<dt><em>Job Authority</em></dt>
|
|
|
|
<dd>The API must be called from within the job for which the information is
|
|
being retrieved, or the caller of the API must be running under a user profile
|
|
that is the same as the job user identity of the job for which the information
|
|
is being retrieved. Otherwise, the caller of the API must be running under a
|
|
user profile that has job control (*JOBCTL) special authority.<br>
|
|
<br>
|
|
<p>The <strong>job user identity</strong> is the name of the user profile by
|
|
which a job is known to other jobs. It is described in more detail in the
|
|
<a href="../rzaks/rzaks1.htm">Work Management</a> topic.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<br>
|
|
|
|
|
|
<h3>Required Parameter Group</h3>
|
|
|
|
<dl>
|
|
<dt><strong>Receiver variable</strong></dt>
|
|
|
|
<dd>OUTPUT; CHAR(*)
|
|
|
|
<p>The variable that is to receive the information requested. The number of
|
|
synchronization object descriptions that are available may exceed the receiver
|
|
variable capacity. As a result, the receiver variable structure contains only
|
|
the data that the structure can hold. For example, this may mean that the
|
|
number of synchronization object entries returned field in the receiver variable does
|
|
not match the value in the number of synchronization object entries available field.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Length of receiver variable</strong></dt>
|
|
|
|
<dd>INPUT; BINARY(4)
|
|
|
|
<p>The size of the receiver variable structure. If the size provided in the
|
|
length of receiver variable parameter is larger than the size of the receiver
|
|
variable allocated in the user program, the results are not predictable. The
|
|
minimum size is 8 bytes.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Format of receiver variable</strong></dt>
|
|
|
|
<dd>INPUT; CHAR(8)
|
|
|
|
<p>The format of the information returned in the receiver variable. The
|
|
possible format names are:</p>
|
|
|
|
<table cellpadding="5" border width="80%">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>PMTX0100</em></td>
|
|
<td align="left" valign="top">Pointer-based mutex format. See <a href=
|
|
"#PMTX0100_Header">PMTX0100 Format</a> for details on the list of threads associated with a pointer-based mutex that can be obtained for a specified job or thread.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>PMTX0200</em></td>
|
|
<td align="left" valign="top">Pointer-based mutex format. See <a href=
|
|
"#PMTX0200_Header">PMTX0200 Format</a> for details on the list of waiting
|
|
threads that can be obtained for a specified pointer-based mutex.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>
|
|
PMTX0300
|
|
</em></td>
|
|
<td align="left" valign="top">Pointer-based mutex format. See <a href=
|
|
"#PMTX0300_Header">PMTX0300 Format</a> for details on the list of waiting
|
|
threads that can be obtained for a specified pointer-based mutex.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>HMTX0100</em></td>
|
|
<td align="left" valign="top">Handle-based mutex format. See <a href=
|
|
"#HMTX0100_Header">HMTX0100 Format</a> for details on the list of threads associated with a handle-based
|
|
mutex that can be obtained for a specified job or thread.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>HMTX0200</em></td>
|
|
<td align="left" valign="top">Handle-based mutex format. See <a href=
|
|
"#HMTX0200_Header">HMTX0200 Format</a> for details on the list of waiting
|
|
threads that can be obtained for a specified handle-based mutex.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>HMTX0300</em></td>
|
|
<td align="left" valign="top">Handle-based mutex format. See <a href=
|
|
"#HMTX0300_Header">HMTX0300 Format</a> for details on the list of waiting
|
|
threads that can be obtained for a specified handle-based mutex.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>HCND0100</em></td>
|
|
<td align="left" valign="top">Handle-based condition format. See <a href=
|
|
"#HCND0100_Header">HCND0100 Format</a> for details on the list of threads associated with a handle-based
|
|
condition that can be obtained for a specified job or thread.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>HCND0200</em></td>
|
|
<td align="left" valign="top">Handle-based condition format. See <a href=
|
|
"#HCND0200_Header">HCND0200 Format</a> for details on the list of waiting
|
|
threads that can be obtained for a specified handle-based condition.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>
|
|
HCND0300
|
|
</em></td>
|
|
<td align="left" valign="top">Handle-based condition format. See <a href=
|
|
"#HCND0300_Header">HCND0300 Format</a> for details on the list of waiting
|
|
threads that can be obtained for a specified handle-based condition.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>STOK0100</em></td>
|
|
<td align="left" valign="top">Synchronization token format. See <a href=
|
|
"#STOK0100_Header">STOK0100 Format</a> for details on the list of threads associated with a
|
|
synchronization token that can be obtained for a specified job or thread.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>STOK0200</em></td>
|
|
<td align="left" valign="top">Synchronization token format. See <a href=
|
|
"#STOK0200_Header">STOK0200 Format</a> for details on the list of waiting
|
|
threads that can be obtained for a specified synchronization token.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>STOK0300</em></td>
|
|
<td align="left" valign="top">Synchronization token format. See <a href=
|
|
"#STOK0300_Header">STOK0300 Format</a> for details on the list of waiting
|
|
threads that can be obtained for a specified synchronization token.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>SEMA0100</em></td>
|
|
<td align="left" valign="top">Semaphore format. See <a href="#SEMA0100_Header">
|
|
SEMA0100 Format</a> for details on the list of threads associated with a semaphore that can be obtained for a specified job, a specified thread or system wide.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>SEMA0200</em></td>
|
|
<td align="left" valign="top">Semaphore format. See <a href="#SEMA0200_Header">
|
|
SEMA0200 Format</a> for details on the list of waiting threads that can be obtained for
|
|
a specified semaphore.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>SEMA0300</em></td>
|
|
<td align="left" valign="top">Semaphore format. See <a href="#SEMA0300_Header">
|
|
SEMA0300 Format</a> for details on the list of waiting threads that can be obtained for
|
|
a specified semaphore.</td>
|
|
</tr>
|
|
|
|
</table><br>
|
|
</dd>
|
|
|
|
|
|
<dt><strong>Target identification information</strong></dt>
|
|
|
|
<dd>INPUT; CHAR(*)
|
|
|
|
<p>The structure that identifies target information for the specified receiver
|
|
format. See <a href="#Format_of_target_identification_info">Format of target identification information</a> for details.</p>
|
|
</dd>
|
|
|
|
<dt><strong><a name="Format_of_target_identification_info">Format of target identification information</a></strong></dt>
|
|
|
|
<dd>INPUT; CHAR(8)
|
|
|
|
<p>The formats listed below provide job or thread identification information or
|
|
synchronization object identification information to the appropriate receiver
|
|
formats. The target ID format must be used with a receiver format listed under
|
|
Required Receiver Formats in the table below, or the API will fail with the
|
|
CPE3021 message. The possible format names are:</p>
|
|
|
|
<table cellpadding="5" border width="80%">
|
|
<!-- cols="15 70 15" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>Target ID Format</em></td>
|
|
<td align="left" valign="top"><em>Definition</em></td>
|
|
<td align="left" valign="top"><em>Required Receiver Formats</em></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>TIDF0000</em></td>
|
|
<td align="left" valign="top">This format is used with the SEMA0100 format when
|
|
information is retrieved system wide. When this format is specified, a null
|
|
pointer is passed as the Target identification parameter.</td>
|
|
<td align="left" valign="top"><em>SEMA0100*</em></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>TIDF0100</em></td>
|
|
<td align="left" valign="top">This format is used when a list of threads associated with a synchronization object for a job or thread is retrieved. This format specifies
|
|
information for the formats listed under Required Receiver Formats in this
|
|
table. This format is also used when the SEMA0100 format does not return
|
|
system wide information. See <a href="#TIDF0100_Header">TIDF0100 Format</a> for details on the fields of the
|
|
structure used with this format.</td>
|
|
<td align="left" valign="top">
|
|
|
|
<table>
|
|
<tr><td align="left" valign="top"><em>PMTX0100</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>HMTX0100</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>HCND0100</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>STOK0100</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>SEMA0100*</em></td></tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>TIDF0200</em></td>
|
|
<td align="left" valign="top">This format is used when waiting thread
|
|
descriptions for a synchronization object are retrieved. This format
|
|
specifies information for the formats listed under Required Receiver
|
|
Formats in this table. See <a href="#TIDF0200_Header">TIDF0200 Format</a> for details on the fields
|
|
of the structure used with this format.</td>
|
|
<td align="left" valign="top">
|
|
<p><em>PMTX0200</em><br>
|
|
<em>HMTX0200</em><br>
|
|
<em>HCND0200</em><br>
|
|
<em>STOK0200</em><br>
|
|
<em>SEMA0200</em><br>
|
|
<em>PMTX0300</em><br>
|
|
<em>HMTX0300</em><br>
|
|
<em>HCND0300</em><br>
|
|
<em>STOK0300</em><br>
|
|
<em>SEMA0300</em></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>* The SEMA0100 receiver format is associated with more than one target ID
|
|
format.</p>
|
|
<br>
|
|
</dd>
|
|
|
|
<dt><strong>Options variable</strong></dt>
|
|
|
|
<dd>INPUT; CHAR(*)
|
|
|
|
<p>The options available for receiver formats.
|
|
The Options variable data structure is described in <a href="#Options_Format_Header">Format of options variable
|
|
information</a>.</p>
|
|
</dd>
|
|
|
|
<dt><a name="Options_Format_Header"><strong>Format of options variable</strong></a></dt>
|
|
|
|
<dd>INPUT; CHAR(8)
|
|
|
|
<p>The format of the information in the options variable. The options format must be used with
|
|
a receiver format listed under Required Receiver Formats in the table below, or
|
|
the API will fail with the CPE3021 message. The possible formats are:</p>
|
|
|
|
<table cellpadding="5" border width="80%">
|
|
<!-- cols="15 70 15" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>Option format</em></td>
|
|
<td align="left" valign="top"><em>Definition</em></td>
|
|
<td align="left" valign="top"><em>Required Receiver Formats</em></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>OPTN0000</em></td>
|
|
<td align="left" valign="top">The OPTN0000 format is used with the formats listed
|
|
under Required Receiver Formats in this table. When the OPTN0000 is specified, a
|
|
null pointer is passed as the Options parameter.</td>
|
|
<td align="left" valign="top">
|
|
|
|
<table>
|
|
<tr><td align="left" valign="top"><em>PMTX0200</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>HMTX0200</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>HCND0200</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>STOK0200</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>SEMA0200</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>PMTX0300</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>HMTX0300</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>HCND0300</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>STOK0300</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>SEMA0300</em></td></tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>OPTN0100</em></td>
|
|
<td align="left" valign="top">The OPTN0100 format is used to specify the type
|
|
of the Options variable for the formats listed under Required Receiver Formats
|
|
in this table. See <a href="#OPTN0100_Header">OPTN0100 Format</a> for details on Options variable fields.</td>
|
|
<td align="left" valign="top">
|
|
|
|
<table>
|
|
<tr><td align="left" valign="top"><em>PMTX0100</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>HMTX0100</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>HCND0100</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>STOK0100</em></td></tr>
|
|
<tr><td align="left" valign="top"><em>SEMA0100</em></td></tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
</table><br>
|
|
</dd>
|
|
|
|
|
|
<dt><strong>Error code</strong></dt>
|
|
|
|
<dd>I/O; CHAR(*)
|
|
|
|
<p>The structure in which to return error information. For the format of the
|
|
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<br>
|
|
|
|
|
|
<h3><a name="PMTX0100_Header">PMTX0100 Format - Retrieve pointer-based mutexes
|
|
associated with a job or thread</a></h3>
|
|
|
|
<p>This format is used to retrieve information for pointer-based mutexes
|
|
associated with one or all threads of a job. The following table shows the
|
|
receiver variable fields returned with the PMTX0100 format. For a detailed
|
|
description of each field, see <a href="#Header_8">Receiver Format Field
|
|
Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads in job</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of mutex descriptions available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of mutex descriptions returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to mutex descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of mutex descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Pointer-based mutex description</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="13" colspan="2" width="20%">These fields
|
|
repeat for each thread associated with a pointer-based mutex.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Thread identifier associated with
|
|
mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of thread descriptions for identified thread</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Description sequence value for the thread
|
|
associated with the mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">PTR(OPN)</td>
|
|
<td align="left" valign="top">Mutex reference</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Mutex name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Mutex owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Mutex state</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on mutex</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="PMTX0200_Header">PMTX0200 Format - Retrieve threads associated
|
|
with a pointer-based mutex</a></h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified pointer-based mutex. The following table shows the receiver variable
|
|
fields returned with the PMTX0200 format. For a detailed description of each
|
|
field, see <a href="#Header_8">Receiver Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Mutex name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Mutex owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="center" valign="top">5A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">96</td>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified pointer-based mutex.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3>
|
|
<img src="delta.gif" alt="Start of change">
|
|
<a name="PMTX0300_Header">
|
|
PMTX0300 Format - Retrieve threads associated with a pointer-based mutex
|
|
</a>
|
|
<img src="deltaend.gif" alt="End of change">
|
|
</h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified pointer-based mutex. The following table shows the receiver variable
|
|
fields returned with the PMTX0300 format. For a detailed description of each
|
|
field, see <a href="#Header_8">Receiver Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Mutex name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Mutex owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="center" valign="top">5A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">96</td>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last mutex locker thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">104</td>
|
|
<td align="center" valign="top">68</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last mutex locker thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">112</td>
|
|
<td align="center" valign="top">70</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last mutex locker job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">122</td>
|
|
<td align="center" valign="top">7A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last mutex locker user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">132</td>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last mutex locker job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">138</td>
|
|
<td align="center" valign="top">8A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">144</td>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last mutex unlocker thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">152</td>
|
|
<td align="center" valign="top">98</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last mutex unlocker thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">160</td>
|
|
<td align="center" valign="top">A0</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last mutex unlocker job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">170</td>
|
|
<td align="center" valign="top">AA</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last mutex unlocker user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">180</td>
|
|
<td align="center" valign="top">B4</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last mutex unlocker job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">186</td>
|
|
<td align="center" valign="top">BA</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">192</td>
|
|
<td align="center" valign="top">C0</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Recursive flag</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">193</td>
|
|
<td align="center" valign="top">C1</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Keep valid flag</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">194</td>
|
|
<td align="center" valign="top">C2</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Pending state flag</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">195</td>
|
|
<td align="center" valign="top">C3</td>
|
|
<td align="left" valign="top">CHAR(13)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">208</td>
|
|
<td align="center" valign="top">D0</td>
|
|
<td align="left" valign="top">BINARY(8) UNSIGNED</td>
|
|
<td align="left" valign="top">Lock count</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">216</td>
|
|
<td align="center" valign="top">D8</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">224</td>
|
|
<td align="center" valign="top">E0</td>
|
|
<td align="left" valign="top">PTR(SPC)</td>
|
|
<td align="left" valign="top">Original mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">240</td>
|
|
<td align="center" valign="top">F0</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">256</td>
|
|
<td align="center" valign="top">100</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified pointer-based mutex.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3><a name="HMTX0100_Header">HMTX0100 Format - Retrieve handle-based mutexes
|
|
associated with a job or thread</a></h3>
|
|
|
|
<p>This format is used to retrieve information for handle-based mutexes
|
|
associated with one or all threads of a job. The following table shows the
|
|
receiver variable fields returned with the HMTX0100 format. For a detailed
|
|
description of each field, see <a href="#Header_8">Receiver Format Field
|
|
Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads in job</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of mutex descriptions available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of mutex descriptions returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to mutex descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of mutex descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Handle-based mutex description</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="14" colspan="2" width="20%">These fields
|
|
repeat for each thread associated with a handle-based mutex.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Thread identifier associated with
|
|
mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of thread descriptions for identified thread</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Description sequence value for the thread
|
|
associated with the mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">PTR(OPN)</td>
|
|
<td align="left" valign="top">Mutex reference</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Mutex owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Mutex state</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(5)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Mutex key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="HMTX0200_Header">HMTX0200 Format - Retrieve threads associated
|
|
with a handle-based mutex</a></h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified handle-based mutex. The following table shows the receiver variable
|
|
fields returned with the HMTX0200 format. For a detailed description of each
|
|
field, see <a href="#Header_8">Receiver Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Mutex key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Mutex owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="center" valign="top">5A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">96</td>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified handle-based mutex.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3>
|
|
<img src="delta.gif" alt="Start of change">
|
|
<a name="HMTX0300_Header">HMTX0300 Format - Retrieve threads associated
|
|
with a handle-based mutex</a>
|
|
<img src="deltaend.gif" alt="End of change">
|
|
</h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified handle-based mutex. The following table shows the receiver variable
|
|
fields returned with the HMTX0300 format. For a detailed description of each
|
|
field, see <a href="#Header_8">Receiver Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Mutex key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Mutex owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Mutex owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Mutex owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="center" valign="top">5A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">96</td>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last mutex locker thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">104</td>
|
|
<td align="center" valign="top">68</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last mutex locker thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">112</td>
|
|
<td align="center" valign="top">70</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last mutex locker job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">122</td>
|
|
<td align="center" valign="top">7A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last mutex locker user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">132</td>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last mutex locker job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">138</td>
|
|
<td align="center" valign="top">8A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">144</td>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last mutex unlocker thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">152</td>
|
|
<td align="center" valign="top">98</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last mutex unlocker thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">160</td>
|
|
<td align="center" valign="top">A0</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last mutex unlocker job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">170</td>
|
|
<td align="center" valign="top">AA</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last mutex unlocker user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">180</td>
|
|
<td align="center" valign="top">B4</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last mutex unlocker job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">186</td>
|
|
<td align="center" valign="top">BA</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">192</td>
|
|
<td align="center" valign="top">C0</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Recursive flag</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">193</td>
|
|
<td align="center" valign="top">C1</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Keep valid flag</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">194</td>
|
|
<td align="center" valign="top">C2</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Pending state flag</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">195</td>
|
|
<td align="center" valign="top">C3</td>
|
|
<td align="left" valign="top">CHAR(5)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">200</td>
|
|
<td align="center" valign="top">C8</td>
|
|
<td align="left" valign="top">BINARY(8) UNSIGNED</td>
|
|
<td align="left" valign="top">Lock count</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">208</td>
|
|
<td align="center" valign="top">D0</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">224</td>
|
|
<td align="center" valign="top">E0</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for mutex</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified handle-based mutex.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3><a name="HCND0100_Header">HCND0100 Format - Retrieve handle-based
|
|
conditions associated with a job or thread</a></h3>
|
|
|
|
<p>This format is used to retrieve information for handle-based conditions
|
|
associated with one or all threads of a job. The following table shows the
|
|
receiver variable fields returned with the HCND0100 format. For a detailed
|
|
description of each field, see <a href="#Header_8">Receiver Format Field
|
|
Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads in job</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of condition descriptions available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of condition descriptions returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to condition descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of condition descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Handle-based condition description</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="5" colspan="2" width="20%">These fields
|
|
repeat for each thread associated with a handle-based condition.</td>
|
|
<td align="left" valign="top" width="20%">PTR(OPN)</td>
|
|
<td align="left" valign="top" width="60%">Condition reference</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Thread identifier associated with condition</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Condition Key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on condition</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(12)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="HCND0200_Header">HCND0200 Format - Retrieve threads associated
|
|
with a handle-based condition</a></h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified handle-based condition. The following table shows the receiver
|
|
variable fields returned with the HCND0200 format. For a detailed description
|
|
of each field, see <a href="#Header_8">Receiver Format Field
|
|
Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on condition</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Condition creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Condition key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for condition</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified handle-based condition.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3>
|
|
<img src="delta.gif" alt="Start of change">
|
|
<a name="HCND0300_Header">HCND0300 Format - Retrieve threads associated
|
|
with a handle-based condition</a>
|
|
<img src="deltaend.gif" alt="End of change"> </h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified handle-based condition. The following table shows the receiver
|
|
variable fields returned with the HCND0300 format. For a detailed description
|
|
of each field, see <a href="#Header_8">Receiver Format Field
|
|
Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on condition</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Condition creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Condition key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last condition waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last condition waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last condition waiter job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last condition waiter user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last condition waiter job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="center" valign="top">5A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">96</td>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last condition setter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">104</td>
|
|
<td align="center" valign="top">68</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last condition setter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">112</td>
|
|
<td align="center" valign="top">70</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last condition setter job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">122</td>
|
|
<td align="center" valign="top">7A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last condition setter user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">132</td>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last condition setter job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">138</td>
|
|
<td align="center" valign="top">8A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">144</td>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Reset mode flag</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">148</td>
|
|
<td align="center" valign="top">94</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Is signaled flag</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">149</td>
|
|
<td align="center" valign="top">95</td>
|
|
<td align="left" valign="top">CHAR(11)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">160</td>
|
|
<td align="center" valign="top">A0</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for condition</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified handle-based condition.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3><a name="STOK0100_Header">STOK0100 Format - Retrieve synchronization tokens
|
|
associated with a job or thread</a></h3>
|
|
|
|
<p>This format is used to retrieve information for synchronization tokens
|
|
associated with one or all threads of a job. The following table shows the
|
|
receiver variable fields returned with the STOK0100 format. For a detailed
|
|
description of each field, see <a href="#Header_8">Receiver Format Field
|
|
Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads in job</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of token descriptions available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of token descriptions returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to token descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of token descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Token description</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="14" colspan="2" width="20%">These fields
|
|
repeat for each thread associated with a synchronization token.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Thread identifier associated with
|
|
token</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of thread descriptions for identified thread</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Description sequence value for the thread
|
|
associated with the token</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">PTR(OPN)</td>
|
|
<td align="left" valign="top">Token reference</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Token owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Token owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Token owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Token owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Token owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Token state</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(5)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on token</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(12)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="STOK0200_Header">STOK0200 Format - Retrieve threads associated
|
|
with a synchronization token</a></h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified synchronization token. The following table shows the receiver
|
|
variable fields returned with the STOK0200 format. For a detailed description
|
|
of each field, see <a href="#Header_8">Receiver Format Field
|
|
Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on token</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Token creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Token unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Token owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Token owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Token owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Token owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Token owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="center" valign="top">5A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">96</td>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for token</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified synchronization token.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3>
|
|
<img src="delta.gif" alt="Start of change">
|
|
<a name="STOK0300_Header">STOK0300 Format - Retrieve threads associated
|
|
with a synchronization token</a>
|
|
<img src="deltaend.gif" alt="End of change">
|
|
</h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified synchronization token. The following table shows the receiver
|
|
variable fields returned with the STOK0300 format. For a detailed description
|
|
of each field, see <a href="#Header_8">Receiver Format Field
|
|
Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on token</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Token creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Token unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Token owner thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Token owner thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Token owner job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Token owner user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Token owner job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="center" valign="top">5A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">96</td>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last token locker thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">104</td>
|
|
<td align="center" valign="top">68</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last token locker thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">112</td>
|
|
<td align="center" valign="top">70</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last token locker job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">122</td>
|
|
<td align="center" valign="top">7A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last token locker user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">132</td>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last token locker job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">138</td>
|
|
<td align="center" valign="top">8A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">144</td>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last token unlocker thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">152</td>
|
|
<td align="center" valign="top">98</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last token unlocker thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">160</td>
|
|
<td align="center" valign="top">A0</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last token unlocker job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">170</td>
|
|
<td align="center" valign="top">AA</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last token unlocker user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">180</td>
|
|
<td align="center" valign="top">B4</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last token unlocker job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">186</td>
|
|
<td align="center" valign="top">BA</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">192</td>
|
|
<td align="center" valign="top">C0</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for token</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified synchronization token.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="SEMA0100_Header">SEMA0100 Format - Retrieve semaphores associated
|
|
with a job, thread, or all semaphores</a></h3>
|
|
|
|
<p>This format is used to retrieve information for semaphores associated with
|
|
one or all threads of a job or all semaphores on a system. The following table shows the receiver variable
|
|
fields returned with the SEMA0100 format. For a detailed description of each
|
|
field, see <a href="#Header_8">Receiver Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of semaphore descriptions available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of semaphore descriptions returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to semaphore descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of semaphore descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Semaphore associated job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">42</td>
|
|
<td align="center" valign="top">2A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Semaphore associated user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">52</td>
|
|
<td align="center" valign="top">34</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Semaphore associated job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">58</td>
|
|
<td align="center" valign="top">3A</td>
|
|
<td align="left" valign="top">CHAR(2)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="center" valign="top">3C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads in job associated with
|
|
semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Semaphore description</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="14" colspan="2" width="20%">These fields
|
|
repeat for each thread associated with a semaphore.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Thread identifier associated with
|
|
semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">PTR(OPN)</td>
|
|
<td align="left" valign="top">Semaphore reference</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Semaphore title</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Semaphore creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Semaphore key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Semaphore count value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Semaphore maximum count</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Semaphore type</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Semaphore unlinked status</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(2)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="SEMA0200_Header">SEMA0200 Format - Retrieve threads associated
|
|
with a semaphore</a></h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified semaphore. The following table shows the receiver variable fields
|
|
returned with the SEMA0200 format. For a detailed description of each field,
|
|
see <a href="#Header_8">Receiver Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Semaphore title</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Semaphore creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Semaphore key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Semaphore count value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">68</td>
|
|
<td align="center" valign="top">44</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Semaphore maximum count</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">72</td>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Semaphore type</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">73</td>
|
|
<td align="center" valign="top">49</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Semaphore unlinked status</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(2)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">76</td>
|
|
<td align="center" valign="top">4C</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last semaphore post operation thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last semaphore post operation thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">92</td>
|
|
<td align="center" valign="top">5C</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last semaphore post operation job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">102</td>
|
|
<td align="center" valign="top">66</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last semaphore post operation user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">112</td>
|
|
<td align="center" valign="top">70</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last semaphore post operation job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">118</td>
|
|
<td align="center" valign="top">76</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">126</td>
|
|
<td align="center" valign="top">7E</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">134</td>
|
|
<td align="center" valign="top">86</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">144</td>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">154</td>
|
|
<td align="center" valign="top">9A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">160</td>
|
|
<td align="center" valign="top">A0</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified semaphore.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3>
|
|
<img src="delta.gif" alt="Start of change">
|
|
<a name="SEMA0300_Header">SEMA0300 Format - Retrieve threads associated
|
|
with a semaphore</a>
|
|
<img src="deltaend.gif" alt="End of change">
|
|
</h3>
|
|
|
|
<p>This format is used to retrieve information for waiting threads associated with a
|
|
specified semaphore. The following table shows the receiver variable fields
|
|
returned with the SEMA0300 format. For a detailed description of each field,
|
|
see <a href="#Header_8">Receiver Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Bytes returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Bytes available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of threads waiting on semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
available</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of waiting thread descriptions
|
|
returned</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
|
|
<td align="left" valign="top">Offset to waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of waiting thread descriptions</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">CHAR(4)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Semaphore title</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Semaphore creator program</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">BINARY(8)</td>
|
|
<td align="left" valign="top">Semaphore key</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">64</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Semaphore count value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">68</td>
|
|
<td align="center" valign="top">44</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Semaphore maximum count</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">72</td>
|
|
<td align="center" valign="top">48</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Semaphore type</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">73</td>
|
|
<td align="center" valign="top">49</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Semaphore unlinked status</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">74</td>
|
|
<td align="center" valign="top">4A</td>
|
|
<td align="left" valign="top">CHAR(2)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">76</td>
|
|
<td align="center" valign="top">4C</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last semaphore post operation thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">84</td>
|
|
<td align="center" valign="top">54</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last semaphore post operation thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">92</td>
|
|
<td align="center" valign="top">5C</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last semaphore post operation job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">102</td>
|
|
<td align="center" valign="top">66</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last semaphore post operation user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">112</td>
|
|
<td align="center" valign="top">70</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last semaphore post operation job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">118</td>
|
|
<td align="center" valign="top">76</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">126</td>
|
|
<td align="center" valign="top">7E</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">134</td>
|
|
<td align="center" valign="top">86</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">144</td>
|
|
<td align="center" valign="top">90</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">154</td>
|
|
<td align="center" valign="top">9A</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Last semaphore wait operation job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">160</td>
|
|
<td align="center" valign="top">A0</td>
|
|
<td align="left" valign="top">PTR(SPC)</td>
|
|
<td align="left" valign="top">Original semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">176</td>
|
|
<td align="center" valign="top">B0</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">192</td>
|
|
<td align="center" valign="top">C0</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Description of thread waiting for semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" rowspan="6" colspan="2" width="20%">These fields
|
|
repeat for each thread waiting on the specified semaphore.</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Waiter thread identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Waiter thread unique value</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Waiter thread user name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Waiter thread job number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3><a name="Header_8">Receiver Format Field Descriptions</a></h3>
|
|
|
|
<p><strong>Bytes available.</strong> The number (in bytes) of all data that can
|
|
be returned. All available data is returned if enough space in the receiver
|
|
variable is provided.</p>
|
|
|
|
<p><strong>Bytes returned.</strong> The number (in bytes) of data returned in
|
|
the receiver variable. Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Condition creator program.</strong> The first 8 characters of the
|
|
name of the program module that created the condition. This field is for debug
|
|
purposes only and should not be used for building applications based on its
|
|
contents.</p>
|
|
|
|
<p><strong>Condition key.</strong> A unique system-wide value that is assigned
|
|
to a handle-based condition for sharing between jobs. If a condition was
|
|
created without a key, this field contains binary 0.</p>
|
|
|
|
<p><strong>Condition reference.</strong> A replica of a handle-based condition.
|
|
Additional information for the condition replica returned in this field can be
|
|
retrieved using this API and the HCND0200 and HCND0300 formats.</p>
|
|
|
|
<p><strong>Description of thread waiting for condition.</strong> Structure that
|
|
contains a description of a thread waiting on the specified condition. This
|
|
structure is repeated as needed to describe all threads waiting on the
|
|
specified condition. Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Description of thread waiting for mutex.</strong> Structure that
|
|
contains a description of a thread waiting on the specified mutex. This
|
|
structure is repeated as needed to describe all threads waiting on the
|
|
specified mutex. Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Description of thread waiting for semaphore.</strong> Structure that
|
|
contains a description of a thread waiting on the specified semaphore. This
|
|
structure is repeated as needed to describe all threads waiting on the
|
|
specified semaphore. Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Description of thread waiting for token.</strong> Structure that
|
|
contains a description of a thread waiting on the specified token. This
|
|
structure is repeated as needed to describe all threads waiting on the
|
|
specified token. Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>
|
|
Description sequence value for the thread associated with the mutex.
|
|
</strong>
|
|
The sequence number of a description in the range of the total
|
|
number of descriptions for a thread identifier. This value can be used in the
|
|
form "M of N descriptions", in which M is the description sequence value for
|
|
the thread and N is the total number of descriptions for the thread.</p>
|
|
|
|
<p><strong>
|
|
Description sequence value for the thread associated with the token.
|
|
</strong>
|
|
The sequence number of a description in the range of the total
|
|
number of descriptions for a thread identifier. This value can be used in the
|
|
form "M of N descriptions", in which M is the description sequence value for
|
|
the thread and N is the total number of descriptions for the thread.</p>
|
|
|
|
<p><strong>Handle-based condition description.</strong> Contains fields that
|
|
describe a handle-based condition associated with the specified job or thread. This structure is repeated as needed to include all available handle-based
|
|
condition descriptions. Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Handle-based mutex description.</strong> Contains fields that
|
|
describe a handle-based mutex associated with the specified job or thread. This
|
|
structure is repeated as needed to include all available handle-based mutex
|
|
descriptions. Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Is signaled flag.</strong> Indicates if the condition is in the signaled or
|
|
nonsignaled state.</p>
|
|
<table cellpadding="5">
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Nonsignaled</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Signaled</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Keep valid flag.</strong> Indicates if the mutex was created with
|
|
the keep valid option. Possible values follow:</p>
|
|
|
|
<table cellpadding="5">
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Mutex will be destroyed when its owning thread is
|
|
terminated</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Mutex will remain valid when its owning thread is
|
|
terminated. The mutex will be marked as being in a pending state until the first
|
|
thread performs a lock operation on the mutex. The first thread will successfully lock and
|
|
revalidate the pending mutex.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Last condition setter job name.</strong> Job name of the job containing
|
|
the last thread that performed a set or pulse operation on the condition and caused the condition to become signaled.
|
|
If this field is all blanks, no job has ever performed a set operation on the
|
|
condition, or the last setter job has ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last condition setter job number.</strong> Job number of the job containing
|
|
the last thread that performed a set or pulse operation on the condition and caused the condition to become signaled.
|
|
If this field is all blanks, no job has ever performed a set operation on the
|
|
condition, or the last setter job ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last condition setter thread identifier.</strong> Job-specific thread
|
|
identifier for the thread that performed a set or pulse operation on the condition and caused the condition to
|
|
become signaled. If this field is binary 0, no thread has ever performed a set
|
|
operation on the condition, or the last setter thread has ended and the API could
|
|
not collect this information. </p>
|
|
|
|
<p><strong>Last condition setter thread unique value.</strong> A system-wide unique
|
|
value that identifies the specific thread that last performed a set or pulse operation on the condition and caused the
|
|
condition to become signaled. If this field is binary 0, no thread has ever
|
|
performed a set operation on the condition. This field cannot be used as input on any
|
|
other API but may be useful for debug purposes. </p>
|
|
|
|
<p><strong>Last condition setter user name.</strong> User name of the job containing
|
|
the last thread that performed a set or pulse operation on the condition and caused the condition to become signaled.
|
|
If this field is all blanks, no job has ever performed a set operation on the
|
|
condition, or the last setter job ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last condition waiter job name.</strong> Job name of the job containing
|
|
the last thread that had to wait for another thread to set the condition to a
|
|
signaled state before becoming unblocked. If
|
|
this field is all blanks, no job has ever waited on the condition, or the last waiter job has ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last condition waiter job number.</strong> Job number of the job containing
|
|
the last thread that had to wait for another thread to set the condition to a
|
|
signaled state before becoming unblocked. If this field
|
|
is all blanks, no job has ever waited on the condition, or the last waiter job has ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last condition waiter thread identifier.</strong> Job-specific thread
|
|
identifier for the last thread that had to wait for another
|
|
thread to set the condition to a signaled state before becoming unblocked. If this field is binary 0, no thread has ever waited
|
|
on the condition, or the last waiter thread has ended and the API
|
|
could not collect this information. </p>
|
|
|
|
<p><strong>Last condition waiter thread unique value.</strong> A system-wide unique
|
|
value that identifies the specific thread that last had to wait for another thread to
|
|
set the condition to a signaled state before becoming unblocked. If this field is binary 0, no thread has ever waited on
|
|
the condition. This field cannot be used as input on any other
|
|
API but may be useful for debug purposes. </p>
|
|
|
|
<p><strong>Last condition waiter user name.</strong> User name of the job containing
|
|
the last thread that had to wait for another thread to set the condition to a
|
|
signaled state before becoming unblocked. If this
|
|
field is all blanks, no job has ever waited on the condition, or
|
|
the last waiter job has ended and the API could not collect this information.</p>
|
|
|
|
<p><strong>Last mutex locker job name.</strong> Job name of the job
|
|
containing the thread that last locked the mutex after waiting for another
|
|
thread to unlock the mutex. A thread may perform a lock operation and
|
|
immediately achieve the lock without waiting if there is no thread currently
|
|
holding the lock. As a result, this field may contain a job name for a job
|
|
other than the one that last performed a lock operation on the mutex. If this
|
|
field is all blanks, no job has ever locked the mutex after waiting, or the last
|
|
locker job has ended and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last mutex locker job number.</strong> Job number of the job
|
|
containing the thread that last locked the mutex after waiting for another
|
|
thread to unlock the mutex. A thread may perform a lock operation and
|
|
immediately achieve the lock without waiting if there is no thread currently
|
|
holding the lock. As a result, this field may contain a job number for a job
|
|
other than the one that last performed a lock operation on the mutex. If this
|
|
field is all blanks, no job has ever locked the mutex after waiting, or the last
|
|
locker job has ended and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last mutex locker thread identifier.</strong> Job-specific thread
|
|
identifier for the thread within the job that last
|
|
locked the mutex after waiting for another thread to unlock the mutex. A thread
|
|
may perform a lock operation and immediately achieve the lock without waiting if
|
|
there is no thread currently holding the lock. As a result, this field may
|
|
contain a thread identifier for a thread other than the one that last performed a
|
|
lock operation on the mutex. If this field is binary 0, no thread has ever locked
|
|
the mutex after waiting for another thread to unlock the mutex, or the last locker
|
|
thread has ended and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last mutex locker thread unique value.</strong> A system-wide unique
|
|
value that identifies the specific thread that last locked the mutex after
|
|
waiting for another thread to unlock the mutex. A thread may perform a lock operation
|
|
and immediately achieve the lock without waiting if there is no thread currently
|
|
holding the lock. As a result, this field may contain a unique value for a
|
|
thread other than the one that last performed a lock operation on the mutex. If this
|
|
field is binary 0, no thread has ever locked the mutex after waiting for another
|
|
thread to unlock the mutex. This field cannot be used as input on any other API but
|
|
may be useful for debug purposes. </p>
|
|
|
|
<p><strong>Last mutex locker user name.</strong> User name of the job
|
|
containing the thread that last locked the mutex after waiting for another
|
|
thread to unlock the mutex. A thread may perform a lock operation and
|
|
immediately achieve the lock without waiting if there is no thread currently
|
|
holding the lock. As a result, this field may contain a user name for a job other
|
|
than the one that last performed a lock operation on the mutex. If this field is
|
|
all blanks, no job has ever locked the mutex after waiting, or the last
|
|
locker job has ended and the API could not collect this information.</p>
|
|
|
|
<p><strong>Last mutex unlocker job name.</strong> Job name of the job
|
|
containing the thread that last unlocked the mutex while waking another
|
|
thread that was waiting. A thread may perform an unlock operation and
|
|
immediately unlock the mutex without waking another thread if there are no
|
|
other threads waiting. As a result, this field may contain a job name for
|
|
a job other than the one that last performed an unlock operation on the
|
|
mutex. If this field is all blanks, no job has ever unlocked the mutex while
|
|
waking another thread that was waiting, or the last unlocker job has ended
|
|
and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last mutex unlocker job number.</strong> Job number of the job
|
|
containing the thread that last unlocked the mutex while waking another
|
|
thread that was waiting. A thread may perform an unlock operation and immediately
|
|
unlock the mutex without waking another thread if there are no other threads
|
|
waiting. As a result, this field may contain a job number for a job other than
|
|
the one that last performed an unlock operation on the mutex. If this field is
|
|
all blanks, no job has ever unlocked the mutex while waking another thread that
|
|
was waiting, or the last unlocker job has ended and the API could not collect
|
|
this information.</p>
|
|
|
|
<p><strong>Last mutex unlocker thread identifier.</strong> Job-specific thread
|
|
identifier for the thread within the job that last
|
|
unlocked the mutex while waking another thread that was waiting. A thread may perform
|
|
an unlock operation and immediately unlock the mutex without waking another thread
|
|
if there are no other threads waiting. As a result, this field may contain a thread
|
|
identifier for a thread other than the one that last performed an unlock operation
|
|
on the mutex. If this field is binary 0, no thread has ever unlocked the mutex while
|
|
waking another thread that was waiting, or the last unlocker thread has ended and
|
|
the API could not collect this information.</p>
|
|
|
|
<p><strong>Last mutex unlocker thread unique value.</strong> A system-wide unique
|
|
value that identifies the specific thread that last unlocked the mutex while
|
|
waking another thread that was waiting. A thread may perform an unlock operation and
|
|
immediately unlock the mutex without waking another thread if there are no other
|
|
threads waiting. As a result, this field may contain a unique value for a
|
|
thread other than the one that last performed an unlock operation on the mutex. If
|
|
this field is binary 0, no thread has ever unlocked the mutex while waking another
|
|
thread that was waiting. This field cannot be used as input on any other API but
|
|
may be useful for debug purposes. </p>
|
|
|
|
<p><strong>Last mutex unlocker user name.</strong> User name of the job
|
|
containing the thread that last unlocked the mutex while waking another
|
|
thread that was waiting. A thread may perform an unlock operation and immediately
|
|
unlock the mutex without waking another thread if there are no other threads
|
|
waiting. As a result, this field may contain a user name for a job other than
|
|
the one that last performed an unlock operation on the mutex. If this field is
|
|
all blanks, no job has ever unlocked the mutex while waking another thread that
|
|
was waiting, or the last unlocker job has ended and the API could not collect
|
|
this information</p>
|
|
|
|
<p><strong>Last semaphore post operation job name.</strong> The job name for the job
|
|
containing the thread that last incremented the semaphore count. If this field is all blanks, the semaphore
|
|
has not been successfully posted, or the thread that performed the last post operation has ended
|
|
and the API could not collect this information.</p>
|
|
|
|
<p><strong>Last semaphore post operation job number.</strong> The job number for the job
|
|
containing the thread that last incremented the semaphore count. If this field is all blanks, the semaphore
|
|
has not been successfully posted, or the thread that performed the last post operation has ended
|
|
and the API could not collect this information.</p>
|
|
|
|
<p><strong>Last semaphore post operation thread identifier.</strong> A job-specific
|
|
thread identifier for the thread that last incremented the semaphore count.
|
|
If this field is binary 0, the
|
|
semaphore has not been successfully posted, or the thread that performed the last post operation has ended
|
|
and the API could not collect this information.</p>
|
|
|
|
<p><strong>Last semaphore post operation thread unique value.</strong> A system-wide
|
|
unique value that identifies the specific thread that last incremented the
|
|
semaphore count. If this field is
|
|
binary 0, the semaphore has not been successfully posted. This field cannot be
|
|
used as input on any other API but may be useful for debug purposes.</p>
|
|
|
|
<p><strong>Last semaphore post operation user name.</strong> The user name for the job
|
|
containing the thread that last incremented the semaphore count. If this field is all blanks, the semaphore
|
|
has not been successfully posted, or the thread that performed the last post operation has ended
|
|
and the API could not collect this information.</p>
|
|
|
|
<p><strong>Last semaphore wait operation job name.</strong> The job name for the job
|
|
containing the thread that last decremented the semaphore count. If this field is all blanks, the semaphore has not been successfully
|
|
decremented, or the thread
|
|
that performed the last wait operation has ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last semaphore wait operation job number.</strong> The job number for the job
|
|
containing the thread that last decremented the semaphore count. If this field is all blanks, the semaphore has not been successfully
|
|
decremented, or the thread
|
|
that performed the last wait operation has ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last semaphore wait operation thread identifier.</strong> A job-specific
|
|
thread identifier for the thread within the job that last
|
|
decremented the semaphore count. If this field is binary 0, the semaphore has not been successfully
|
|
decremented, or the thread
|
|
that performed the last wait operation has ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last semaphore wait operation thread unique value.</strong> A system-wide
|
|
unique value that identifies the specific thread that last decremented the
|
|
semaphore count. If this field is binary 0, the semaphore has not been successfully
|
|
decremented. This field
|
|
cannot be used as input on any other API but may be useful for debug purposes. </p>
|
|
|
|
<p><strong>Last semaphore wait operation user name.</strong> The user name for the job
|
|
containing the thread that last decremented the semaphore count. If this field is all blanks, the semaphore has not been successfully
|
|
decremented or the thread
|
|
that performed the last wait operation has ended and the API could not collect this
|
|
information.</p>
|
|
|
|
<p><strong>Last token locker job name.</strong> Job name of the job
|
|
containing the thread that last locked the token after waiting for another
|
|
thread to unlock the token. A thread may perform a lock operation and
|
|
immediately achieve the lock without waiting if there is no thread currently
|
|
holding the lock. As a result, this field may contain a job name for a job
|
|
other than the one that last performed a lock operation on the token. If this
|
|
field is all blanks, no job has ever locked the token after waiting, or the last
|
|
locker job has ended and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last token locker job number.</strong> Job number of the job
|
|
containing the thread that last locked the token after waiting for another
|
|
thread to unlock the token. A thread may perform a lock operation and immediately
|
|
achieve the lock without waiting if there is no thread currently holding
|
|
the lock. As a result, this field may contain a job number for a job other
|
|
than the one that last performed a lock operation on the token. If this field is
|
|
all blanks, no job has ever locked the token after waiting, or the last locker
|
|
job has ended and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last token locker thread identifier.</strong> Job-specific thread
|
|
identifier for the thread within the job that last
|
|
locked the token after waiting for another thread to unlock the token. A thread may
|
|
perform a lock operation and immediately achieve the lock without waiting if there
|
|
is no thread currently holding the lock. As a result, this field may contain a
|
|
thread identifier for a thread other than the one that last performed a lock
|
|
operation on the token. If this field is binary 0, no thread has ever locked the
|
|
token after waiting for another thread to unlock the token, or the last locker
|
|
thread has ended and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last token locker thread unique value.</strong> A system-wide unique
|
|
value that identifies the specific thread that last locked the token after
|
|
waiting for another thread to unlock the token. A thread may perform a lock operation
|
|
and immediately achieve the lock without waiting if there is no thread currently
|
|
holding the lock. As a result, this field may contain a unique value for
|
|
a thread other than the one that last performed a lock operation on the token. If
|
|
this field is binary 0, no thread has ever locked the token after waiting for another
|
|
thread to unlock the token. This field cannot be used as input on any other API
|
|
but may be useful for debug purposes. </p>
|
|
|
|
<p><strong>Last token locker user name.</strong> User name of the job
|
|
containing the thread that last locked the token after waiting for another
|
|
thread to unlock the token. A thread may perform a lock operation and immediately
|
|
achieve the lock without waiting if there is no thread currently holding
|
|
the lock. As a result, this field may contain a user name for a job other
|
|
than the one that last performed a lock operation on the token. If this field is
|
|
all blanks, no job has ever locked the token after waiting, or the last locker job
|
|
has ended and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last token unlocker job name.</strong> Job name of the job
|
|
containing the thread that last unlocked the token while waking another
|
|
thread that was waiting. A thread may perform an unlock operation and immediately
|
|
unlock the token without waking another thread if there are no other threads
|
|
waiting. As a result, this field may contain a job name for a job other than
|
|
the one that last performed an unlock operation on the token. If this field is all
|
|
blanks, no job has ever unlocked the token while waking another thread that was
|
|
waiting, or the last unlocker job has ended and the API could not collect this
|
|
information. </p>
|
|
|
|
<p><strong>Last token unlocker job number.</strong> Job number of the job
|
|
containing the thread that last unlocked the token while waking another
|
|
thread that was waiting. A thread may perform a lock operation and immediately
|
|
unlock the token without waking another thread if there are no other threads
|
|
waiting. As a result, this field may contain a job number for a job other than
|
|
the one that last performed an unlock operation on the token. If this field is all
|
|
blanks, no job has ever unlocked the token while waking another thread that was
|
|
waiting, or the last unlocker job has ended and the API could not collect this
|
|
information. </p>
|
|
|
|
<p><strong>Last token unlocker thread identifier.</strong> Job-specific thread
|
|
identifier for the thread within the job that last
|
|
unlocked the token while waking another thread that was waiting. A thread may
|
|
perform a lock operation and immediately unlock the token without waking another
|
|
thread if there are no other threads waiting. As a result, this field may contain
|
|
a thread identifier for a thread other than the one that last performed an unlock
|
|
operation on the token. If this field is binary 0, no thread has ever unlocked the
|
|
token while waking another thread that was waiting, or the last unlocker thread
|
|
has ended and the API could not collect this information. </p>
|
|
|
|
<p><strong>Last token unlocker thread unique value.</strong> A system-wide unique
|
|
value that identifies the specific thread that last unlocked the token while
|
|
waking another thread that was waiting. A thread may perform a lock operation and
|
|
immediately unlock the token without waking another thread if there are no other
|
|
threads waiting. As a result, this field may contain a unique value for a
|
|
thread other than the one that last performed an unlock operation on the token. If
|
|
this field is binary 0, no thread has ever unlocked the token while waking another
|
|
thread that was waiting. This field cannot be used as input on any other API but
|
|
may be useful for debug purposes. </p>
|
|
|
|
<p><strong>Last token unlocker user name.</strong> User name of the job
|
|
containing the thread that last unlocked the token while waking another
|
|
thread that was waiting. A thread may perform an unlock operation and immediately
|
|
unlock the token without waking another thread if there are no other threads
|
|
waiting. As a result, this field may contain a user name for a job other than
|
|
the one that last performed an unlock operation on the token. If this field is
|
|
all blanks, no job has ever unlocked the token while waking another thread that
|
|
was waiting, or the last unlocker job has ended and the API could not collect
|
|
this information. </p>
|
|
|
|
<p><strong>Length of condition descriptions.</strong> Size (in bytes) of one
|
|
condition description returned by this call. Only complete descriptions are
|
|
returned.</p>
|
|
|
|
<p><strong>Length of mutex descriptions.</strong> Size (in bytes) of one mutex
|
|
description returned by this call. Only complete descriptions are returned.
|
|
</p>
|
|
|
|
<p><strong>Length of semaphore descriptions.</strong> Size (in bytes) of one
|
|
semaphore description returned by this call. Only complete descriptions are
|
|
returned.</p>
|
|
|
|
<p><strong>Length of token descriptions.</strong> Size (in bytes) of one
|
|
synchronization token description returned by this call. Only complete
|
|
descriptions are returned.</p>
|
|
|
|
<p><strong>Length of waiting thread descriptions.</strong> Size (in bytes) of one
|
|
waiting thread description returned by this call. Only complete descriptions
|
|
are returned.</p>
|
|
|
|
<p><strong>Lock count.</strong> Indicates the current count for the number of
|
|
times the mutex has been locked. When the mutex is created as a recursive mutex,
|
|
this field may contain a value greater than one.</p>
|
|
|
|
<p><strong>Mutex creator program.</strong> The first 8 characters of the name
|
|
of the program module that created the mutex. This field is for debug purposes
|
|
only and should not be used for building applications based on its
|
|
contents.</p>
|
|
|
|
<p><strong>Mutex key.</strong> A unique system-wide value that is assigned
|
|
to a handle-based mutex for sharing between jobs. If a handle-based mutex was
|
|
created without a key, this field contains binary 0.</p>
|
|
|
|
<p><strong>Mutex owner job name.</strong> Job name associated with a job that contains the thread
|
|
that holds the lock on a pointer-based or handle-based mutex. If the mutex owner job name is
|
|
blanks, the mutex is not locked or the thread that holds the lock on the mutex
|
|
has ended.</p>
|
|
|
|
<p><strong>Mutex owner job number.</strong> Job number associated with a job that contains the thread
|
|
that holds the lock on a pointer-based or handle-based mutex. If the mutex owner job number is
|
|
blanks, the mutex is not locked or the thread that holds the lock on the mutex
|
|
has ended.</p>
|
|
|
|
<p><strong>Mutex owner thread identifier.</strong> Job-specific thread
|
|
identifier for a thread that holds the lock on a pointer-based or handle-based
|
|
mutex. If the mutex owner thread identifier field contains binary 0,
|
|
the mutex is not locked or the thread that holds the lock on the mutex has
|
|
ended.</p>
|
|
|
|
<p><strong>Mutex owner thread unique value.</strong> A system-wide unique value
|
|
identifying a thread owning a pointer-based or handle-based mutex. If the mutex owner thread unique value field is binary 0, the mutex is not locked. This field
|
|
should be used for debug purposes only.</p>
|
|
|
|
<p><strong>Mutex owner user name.</strong> User name associated with a job that contains the
|
|
thread that holds the lock on a pointer-based or handle-based mutex. If the mutex owner user
|
|
name is blanks, the mutex is not locked or the thread that holds the lock on
|
|
the mutex has ended.</p>
|
|
|
|
<p><strong>Mutex name.</strong> The field containing the mutex name may have
|
|
the following formats:</p>
|
|
|
|
<ol type="1">
|
|
<li>16 characters, left-justified, and padded to the right with blanks.</li>
|
|
|
|
<li>"UNNAMED_" + first 8 characters of the program that created the mutex (if
|
|
the mutex is created without a name)</li>
|
|
</ol>
|
|
|
|
<p><strong>Mutex reference.</strong> A mutex address or a replica of a mutex.
|
|
Additional information for the mutex reference returned in this field can be
|
|
retrieved using this API and the PMTX0200 and PMTX0300 formats for pointer-based mutexes or
|
|
the HMTX0200 and HMTX0300 formats for handle-based mutexes.</p>
|
|
|
|
<p><strong>Mutex state.</strong> Indicates mutex status. Possible values
|
|
follow:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Locked by thread.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Thread is waiting for the mutex.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Number of condition descriptions available.</strong> Total number of
|
|
descriptions available to describe all conditions associated with one or more
|
|
threads.</p>
|
|
|
|
<p><strong>Number of condition descriptions returned.</strong> Number of
|
|
condition descriptions returned by this call.</p>
|
|
|
|
<p><strong>Number of mutex descriptions available.</strong> Total number of
|
|
descriptions available to describe all pointer-based or handle-based mutexes
|
|
associated with one or more threads.</p>
|
|
|
|
<p><strong>Number of mutex descriptions returned.</strong> Number of
|
|
pointer-based or handle-based mutex descriptions returned by this call.</p>
|
|
|
|
<p><strong>Number of semaphore descriptions available.</strong> Total number of
|
|
descriptions available to describe all semaphores of the specified type for the
|
|
specified job or thread or for the entire system.</p>
|
|
|
|
<p><strong>Number of semaphore descriptions returned.</strong> Number of
|
|
semaphore descriptions returned by this call.</p>
|
|
|
|
<p><strong>Number of thread descriptions for identified thread.</strong>
|
|
Total number of descriptions available for the identified thread.</p>
|
|
|
|
<p><strong>Number of threads in job.</strong> Total number of active threads in
|
|
the specified job at the time of the call. This number is not applicable when
|
|
information is retrieved for a single thread and contains binary 0 in
|
|
this case.</p>
|
|
|
|
<p><strong>Number of threads waiting on condition.</strong> The number of
|
|
threads that are currently waiting for the condition to be set.</p>
|
|
|
|
<p><strong>Number of threads waiting on mutex.</strong> The number of threads
|
|
currently waiting for the mutex to become unlocked.</p>
|
|
|
|
<p><strong>Number of threads waiting on semaphore.</strong> The number of
|
|
threads that are currently waiting for the semaphore to be posted.</p>
|
|
|
|
<p><strong>Number of threads waiting on token.</strong> The number of threads
|
|
that are currently waiting for the token to be unlocked.</p>
|
|
|
|
<p><strong>Number of token descriptions available.</strong> Total number of
|
|
descriptions available to describe all synchronization tokens associated with
|
|
one or more threads.</p>
|
|
|
|
<p><strong>Number of token descriptions returned.</strong> Number of
|
|
synchronization token descriptions returned by this call. Only complete
|
|
descriptions are returned.</p>
|
|
|
|
<p><strong>Number of waiting thread descriptions available.</strong> Number of
|
|
descriptions available to describe all threads waiting on the associated
|
|
synchronization object.</p>
|
|
|
|
<p><strong>Number of waiting thread descriptions returned.</strong> Number of
|
|
waiting thread descriptions returned by this call. Only complete descriptions
|
|
are returned.</p>
|
|
|
|
<p><strong>Offset to condition descriptions.</strong> The length (in bytes)
|
|
from the start of the structure to the location of the condition descriptions.
|
|
If the receiver does not contain enough space for at least one description,
|
|
this field contains binary 0.
|
|
</p>
|
|
|
|
<p><strong>Offset to mutex descriptions.</strong> The length (in bytes) from the
|
|
start of the structure to the location of the mutex descriptions.
|
|
If the receiver does not contain enough space for at least one description,
|
|
this field contains binary 0.
|
|
</p>
|
|
|
|
<p><strong>Offset to semaphore descriptions.</strong> The length (in bytes)
|
|
from the start of the structure to the location of the semaphore descriptions.
|
|
If the receiver does not contain enough space for at least one description,
|
|
this field contains binary 0.
|
|
</p>
|
|
|
|
<p><strong>Offset to token descriptions.</strong> The length (in bytes) from
|
|
the start of the structure to the location of the token descriptions.
|
|
If the receiver does not contain enough space for at least one description,
|
|
this field contains binary 0.
|
|
</p>
|
|
|
|
<p><strong>Offset to waiting thread descriptions.</strong> The length (in
|
|
bytes) from the start of the structure to the location of the waiting thread
|
|
descriptions.
|
|
If the receiver does not contain enough space for at least one description,
|
|
this field contains binary 0.
|
|
</p>
|
|
|
|
<p><strong>Original mutex.</strong> A space pointer to a mutex. If this API
|
|
returns information for a mutex that is a copy of another mutex, the original mutex
|
|
is the address of the mutex from which the copy was made. Copies of mutex
|
|
copies are permitted; however, this field always points to the original mutex from
|
|
which the first copy was made.</p>
|
|
|
|
<p><strong>Original semaphore.</strong> A space pointer to a semaphore. If
|
|
this API returns information for a semaphore that is a copy of another semaphore,
|
|
the original semaphore is the address of the semaphore from which the copy
|
|
was made. Copies of semaphore copies are permitted; however, this field always points
|
|
to the original semaphore from which the first copy was made.</p>
|
|
|
|
<p><strong>Pending state flag.</strong> Indicates if the mutex is currently in
|
|
a state where it must be revived because the thread holding the lock on the mutex
|
|
terminated. This field is only valid when the keep valid flag is set to mutex
|
|
will remain valid when its owning thread is terminated. Possible values follow:</p>
|
|
|
|
<table cellpadding="5">
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Holding thread has not terminated.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Holding thread has terminated. This mutex should be
|
|
revalidated using the lock operation.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<p><strong>Pointer-based mutex description. </strong>Contains fields that
|
|
describe a pointer-based mutex associated with a thread. This structure is
|
|
repeated as needed to include all available pointer-based mutex
|
|
descriptions. Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Recursive flag.</strong> Indicates if the mutex was created to be
|
|
a recursive mutex. Possible values follow:</p>
|
|
|
|
<table cellpadding="5">
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Recursive attempts to lock this mutex will not
|
|
be permitted</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Recursive attempts to lock this mutex will be
|
|
permitted by the same thread that has already locked the mutex. </td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Reserved.</strong> An unused field. This field contains binary 0.</p>
|
|
|
|
<p><strong>Reset mode flag.</strong> Indicates the reset mode this condition was
|
|
created with. If the condition is marked for cleanup, reset mode flag is set to
|
|
invalid.</p>
|
|
|
|
<table cellpadding="5">
|
|
<tr>
|
|
<td align="left" valign="top"><em>0</em></td>
|
|
<td align="left" valign="top">Invalid</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>1</em></td>
|
|
<td align="left" valign="top">Auto-reset</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>2</em></td>
|
|
<td align="left" valign="top">Manual-reset</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Semaphore associated job name.</strong> Job name associated with the
|
|
identified semaphore. This field contains blanks when all semaphores
|
|
are retrieved on a system.</p>
|
|
|
|
<p><strong>Semaphore associated job number.</strong> Job number associated with
|
|
the identified semaphore. This field contains blanks when all semaphores
|
|
are retrieved on a system.</p>
|
|
|
|
<p><strong>Semaphore associated user name.</strong> User name associated with
|
|
the identified semaphore. This field contains blanks when all semaphores
|
|
are retrieved on a system.</p>
|
|
|
|
<p><strong>Semaphore count value.</strong> The current count value for the
|
|
semaphore.</p>
|
|
|
|
<p><strong>Semaphore creator program.</strong> The first 8 characters of the
|
|
name of the program module that created the semaphore. This field is for debug
|
|
purposes only and should not be used for building applications based on its
|
|
contents.</p>
|
|
|
|
<p><strong>Semaphore description.</strong> Contains fields that describe a
|
|
semaphore associated with a thread. This structure is
|
|
repeated as needed to include all available semaphore descriptions.
|
|
Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Semaphore key.</strong> A system-wide unique value that is assigned
|
|
to name-based semaphores for sharing between jobs. The field is not applicable
|
|
to pointer-based semaphores and is set to binary 0 in this case.</p>
|
|
|
|
<p><strong>Semaphore maximum count.</strong> The maximum count for the
|
|
semaphore specified at creation.</p>
|
|
|
|
<p><strong>Semaphore reference.</strong> A replica of a semaphore. Additional
|
|
information for the semaphore replica returned in this field can be retrieved
|
|
using this API and the SEMA0200 and SEMA0300 formats.</p>
|
|
|
|
<p><strong>Semaphore title.</strong> Semaphore description text specified
|
|
during semaphore creation.</p>
|
|
|
|
<p><strong>Semaphore type.</strong> Indicates the type of semaphore. Possible
|
|
values follow:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Pointer-based semaphore</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Name-based semaphore</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Semaphore unlinked status.</strong> Indicates whether a name-based
|
|
semaphore is linked or unlinked. The field does not apply to pointer-based
|
|
semaphores and contains binary 0 in this case. Possible values
|
|
follow:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Linked</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Unlinked</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Thread identifier associated with condition.</strong> A job-specific
|
|
thread identifier that specifies a thread in a job that is associated with a
|
|
handle-based condition.</p>
|
|
|
|
<p><strong>Thread identifier associated with mutex.</strong> A job-specific
|
|
thread identifier that specifies a thread in a job that is associated with a
|
|
pointer-based or handle-based mutex.</p>
|
|
|
|
<p><strong>Thread identifier associated with semaphore.</strong> A job-specific
|
|
thread identifier that specifies a thread in a job that is associated with a
|
|
semaphore. This field is not applicable when all semaphores on a system are
|
|
retrieved and contains binary 0 for this case.</p>
|
|
|
|
<p><strong>Thread identifier associated with token.</strong> A job-specific
|
|
thread identifier that specifies a thread in a job that is associated with a
|
|
synchronization token.</p>
|
|
|
|
<p><strong>Token creator program.</strong> The first 8 characters of the name
|
|
of the program module that is associated with the thread that first waited on
|
|
the token. This field is for debug purposes only and should not be used for
|
|
building applications based on its contents.</p>
|
|
|
|
<p><strong>Token description.</strong> Contains fields that describe a
|
|
synchronization token associated with a thread. This structure is repeated as
|
|
needed to include all available synchronization token descriptions.
|
|
Only complete descriptions are returned.</p>
|
|
|
|
<p><strong>Token owner job name.</strong> Job name associated with a job that contains the thread
|
|
that holds the lock on a synchronization token. If token owner job name is all blanks, the
|
|
token is not locked or the thread that holds the lock on the token has
|
|
ended.</p>
|
|
|
|
<p><strong>Token owner job number.</strong> Job number associated with a job that contains the thread
|
|
that holds the lock on a synchronization token. If token owner job number is all blanks, the
|
|
token is not locked or the thread that holds the lock on the token has
|
|
ended.</p>
|
|
|
|
<p><strong>Token owner thread identifier.</strong> A job-specific thread
|
|
identifier for a thread that holds the lock on a synchronization token. If token
|
|
lock owner thread identifier is binary 0, the token is not locked or the thread
|
|
that holds the lock on the token has ended.</p>
|
|
|
|
<p><strong>Token owner thread unique value.</strong> A system-wide unique value
|
|
identifying the thread that holds the lock on a synchronization token. If token owner unique
|
|
thread value is binary 0, the token is not locked. This field should be used
|
|
for debug purposes only.</p>
|
|
|
|
<p><strong>Token owner user name.</strong> User name associated with a job that contains the thread
|
|
that holds the lock on a synchronization token. If token owner user name is all blanks, the
|
|
token is not locked or the thread that holds the lock on the token has
|
|
ended.</p>
|
|
|
|
<p><strong>Token reference.</strong> A synchronization token address or a
|
|
replica of a synchronization token. Additional information for the
|
|
synchronization token reference returned in this field can be retrieved using
|
|
this API and the STOK0200 and STOK0300 formats.</p>
|
|
|
|
<p><strong>Token state.</strong> Indicates synchronization token status.
|
|
Possible values follow:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Locked by thread</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Thread is waiting for token</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Token unique value.</strong> A system-wide unique value that
|
|
identifies a token. This field should be used
|
|
for debug purposes only.</p>
|
|
|
|
<p><strong>Waiter thread job name.</strong> Job name associated with a job containing the thread waiting
|
|
on a synchronization object. If waiter thread job name is all blanks, the thread
|
|
waiting on the synchronization object has ended, and the API could not
|
|
collect this information. This is a normal state for threads that have waited
|
|
on a synchronization object successfully and ended.</p>
|
|
|
|
<p><strong>Waiter thread job number.</strong> Job number associated with a job containing the thread
|
|
waiting on a synchronization object. If waiter thread job number is all blanks, the
|
|
thread waiting on the synchronization object has ended, and the API could not
|
|
collect this information. This is a normal state for threads that have waited
|
|
on a synchronization object successfully and ended.</p>
|
|
|
|
<p><strong>Waiter thread identifier.</strong> A job-specific thread identifier
|
|
that specifies a thread waiting on a synchronization object. If the waiter
|
|
thread identifier field contains binary 0, the thread waiting on the
|
|
synchronization object has ended, and the API could not
|
|
collect this information. This is a normal state for threads that have waited
|
|
on a synchronization object successfully and ended.</p>
|
|
|
|
<p><strong>Waiter thread unique value.</strong> A system-wide unique value
|
|
identifying a thread waiting on a synchronization object. This field should be
|
|
used for debug purposes only.</p>
|
|
|
|
<p><strong>Waiter thread user name.</strong> User name associated with a job containing the thread
|
|
waiting on a synchronization object. If waiter thread user name is all blanks, the
|
|
thread waiting on the synchronization object has ended, and the API could not
|
|
collect this information. This is a normal state for threads that have waited
|
|
on a synchronization object successfully and ended.</p>
|
|
|
|
<br>
|
|
<h3><a name="TIDF0100_Header"></a>TIDF0100 Format - Job and Thread
|
|
Identification</h3>
|
|
|
|
<p>This format is used to identify a job or thread. A job can be identified by
|
|
an Internal job identifier or the Job name, User name, and Job number fields.
|
|
For a detailed description of each field, see <a href="#TIDF0100_Format_FD">
|
|
TIDF0100 Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">CHAR(10)</td>
|
|
<td align="left" valign="top" width="60%">Job Name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">10</td>
|
|
<td align="center" valign="top" width="10%">A</td>
|
|
<td align="left" valign="top" width="20%">CHAR(10)</td>
|
|
<td align="left" valign="top" width="60%">User Name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">20</td>
|
|
<td align="center" valign="top" width="10%">14</td>
|
|
<td align="left" valign="top" width="20%">CHAR(6)</td>
|
|
<td align="left" valign="top" width="60%">Job Number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">26</td>
|
|
<td align="center" valign="top" width="10%">1A</td>
|
|
<td align="left" valign="top" width="20%">CHAR(16)</td>
|
|
<td align="left" valign="top" width="60%">Internal job identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">42</td>
|
|
<td align="center" valign="top" width="10%">2A</td>
|
|
<td align="left" valign="top" width="20%">CHAR(2)</td>
|
|
<td align="left" valign="top" width="60%">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">44</td>
|
|
<td align="center" valign="top" width="10%">2C</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Thread indicator</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">48</td>
|
|
<td align="center" valign="top" width="10%">30</td>
|
|
<td align="left" valign="top" width="20%">CHAR(8)</td>
|
|
<td align="left" valign="top" width="60%">Thread identifier</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="TIDF0100_Format_FD">TIDF0100 Format Field Descriptions</a></h3>
|
|
|
|
<p><strong>Internal job identifier.</strong> The internal identifier for the
|
|
job. The List Job (QUSLJOB) API returns this identifier. If you do not specify
|
|
*INT for the Job name parameter, this parameter must contain binary 0.
|
|
With this parameter, the system can locate the job more quickly than with the
|
|
Job name, Job number, and User name.</p>
|
|
|
|
<p><strong>Job name.</strong> A specific job name or one of the following
|
|
special values:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>"* "</em></td>
|
|
<td align="left" valign="top">The job in which this program is running. The Job
|
|
number and User name must contain binary 0.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>"*INT "</em></td>
|
|
<td align="left" valign="top">The Internal job identifier locates the job. The
|
|
Job number and User name must contain binary 0.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Job number.</strong> A specific job number or binary 0 when
|
|
the Job name specified is a special value.</p>
|
|
|
|
<p><strong>Reserved.</strong> An unused field. This field must contain
|
|
binary 0.</p>
|
|
|
|
<p><strong>Thread identifier.</strong> A value that uniquely identifies a
|
|
thread within a job. Because a thread identifier is job-specific, the Job name,
|
|
User name, and Job Number or the Internal job identifier must also be provided
|
|
to identify a thread.</p>
|
|
|
|
<p><strong>Thread indicator.</strong> A value that is used to specify the
|
|
thread or job for which information is to be retrieved. The following values
|
|
are supported:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top"><strong>Specified Thread.</strong> Information
|
|
should be retrieved for the thread specified in the Thread identifier field. A
|
|
valid Job name, Job number, and User name or a valid Internal job identifier
|
|
must also be provided to identify the job containing the specified thread.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top"><strong>Issuing Thread.</strong> Information
|
|
should be retrieved for the thread in which this program is running currently.
|
|
No additional information is required. The Job name, Job number, User name,
|
|
Internal job identifier, and Thread identifier fields of this structure must
|
|
contain binary 0.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'2'</em></td>
|
|
<td align="left" valign="top"><strong>Initial Thread of Specified Job.</strong>
|
|
Information should be retrieved for the initial thread of the identified job. A
|
|
valid Job name, Job number, and User name or a valid Internal job identifier
|
|
must be provided in the fields of this structure. No Thread identifier
|
|
information is required, and this field must contain binary 0. If all
|
|
name-based semaphores for a job are to be retrieved, this option must be
|
|
specified.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'3'</em></td>
|
|
<td align="left" valign="top"><strong>All Threads of Specified Job.</strong>
|
|
Information should be retrieved for the job and its associated threads. A valid
|
|
Job name, Job number, and User name or a valid Internal job identifier must be
|
|
provided in the fields of this structure. No Thread identifier information is
|
|
required, and this field must contain binary 0.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Note:</strong> For all supported values, the combination of the
|
|
Internal job identifier, Job name, Job number, User name, and Thread identifier
|
|
fields must identify the job containing the specified thread or threads.</p>
|
|
|
|
<p><strong>User name.</strong> A specific user profile name or binary 0
|
|
when the Job name specified is a special value.</p>
|
|
|
|
<br>
|
|
<h3><a name="TIDF0200_Header"></a>TIDF0200 Format - Synchronization Object
|
|
Identification</h3>
|
|
|
|
<p>This format is used to identify a synchronization object and any required
|
|
job information associated with the synchronization object. For a detailed
|
|
description of each field, see <a href="#TIDF0200_Format_FD">TIDF0200 Format
|
|
Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">CHAR(10)</td>
|
|
<td align="left" valign="top" width="60%">Job Name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">10</td>
|
|
<td align="center" valign="top" width="10%">A</td>
|
|
<td align="left" valign="top" width="20%">CHAR(10)</td>
|
|
<td align="left" valign="top" width="60%">User Name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">20</td>
|
|
<td align="center" valign="top" width="10%">14</td>
|
|
<td align="left" valign="top" width="20%">CHAR(6)</td>
|
|
<td align="left" valign="top" width="60%">Job Number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">26</td>
|
|
<td align="center" valign="top" width="10%">1A</td>
|
|
<td align="left" valign="top" width="20%">CHAR(16)</td>
|
|
<td align="left" valign="top" width="60%">Internal job identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">42</td>
|
|
<td align="center" valign="top" width="10%">2A</td>
|
|
<td align="left" valign="top" width="20%">CHAR(1)</td>
|
|
<td align="left" valign="top" width="60%">Reference specification</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">43</td>
|
|
<td align="center" valign="top" width="10%">2B</td>
|
|
<td align="left" valign="top" width="20%">CHAR(1)</td>
|
|
<td align="left" valign="top" width="60%">Job specification</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">44</td>
|
|
<td align="center" valign="top" width="10%">2C</td>
|
|
<td align="left" valign="top" width="20%">CHAR(4)</td>
|
|
<td align="left" valign="top" width="60%">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">48</td>
|
|
<td align="center" valign="top" width="10%">30</td>
|
|
<td align="left" valign="top" width="20%">OPN(PTR)</td>
|
|
<td align="left" valign="top" width="60%">Reference address</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="TIDF0200_Format_FD">TIDF0200 Format Field Descriptions</a></h3>
|
|
|
|
<p><strong>Internal job identifier.</strong> The internal identifier for the
|
|
job used with the STOK0200 and STOK0300 formats when the address of a synchronization token
|
|
is indicated in the Reference specification field. The List Job (QUSLJOB) API
|
|
returns this identifier. If you do not specify *INT for the Job name parameter,
|
|
this parameter must contain binary 0. With this parameter, the system
|
|
can locate the job more quickly than with the Job name, Job number, and User
|
|
name. This field is not applicable to all other formats and must contain
|
|
binary 0 in these cases.</p>
|
|
|
|
<p><strong>Job name.</strong> A specific job name or one of the special values
|
|
in the table below used with the STOK0200 and STOK0300 formats when the address of a
|
|
synchronization token is indicated in the Reference specification field. This
|
|
field is not applicable to all other formats and the STOK0200 and STOK0300 formats when
|
|
replica addresses are provided. The field must contain binary 0 in these
|
|
cases.</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>"* "</em></td>
|
|
<td align="left" valign="top">The job in which this program is running. The Job
|
|
number and User name must contain binary 0.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>"*INT "</em></td>
|
|
<td align="left" valign="top">The Internal job identifier locates the job. The
|
|
Job number and User name must contain binary 0.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Job number.</strong> A specific job number used with the STOK0200 and STOK0300
|
|
formats when the address of a synchronization token is indicated in the
|
|
Reference specification field. If the Job name field contains one of the
|
|
special values * or *INT, this field must contain binary 0. This field
|
|
is not applicable to all other formats and to the STOK0200 and STOK0300 formats when replica
|
|
addresses are provided. The field must contain binary 0 in these
|
|
cases.</p>
|
|
|
|
<p><strong>Job specification.</strong> Specifies that a specific job will be
|
|
provided for the STOK0200 and STOK0300 formats when information is to be retrieved for a
|
|
synchronization token in another process. This field is not applicable to all
|
|
other formats and to the STOK0200 and STOK0300 formats when replica addresses are provided. This field
|
|
must contain binary 0 in these cases.</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Retrieve information for the token from the
|
|
issuing thread's job. No additional information is required for this option.
|
|
The Job name, User name, Job number, and Internal Job Identifier fields must
|
|
contain binary 0.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Retrieve information for the token from the job
|
|
specified with the Job name, User name, and Job number or Internal Job
|
|
Identifier fields of this structure.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Reference address.</strong> The address of a synchronization object
|
|
or the address of the replica of a synchronization object.</p>
|
|
|
|
<p><strong>Reference specification.</strong> Selects address of a
|
|
synchronization object or the address of a replica of a synchronization object. This field is
|
|
only applicable to the STOK0200 and STOK0300 formats. The possible values of this field
|
|
are:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">The address of a synchronization token is
|
|
provided in the Reference address field.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">The address of a replica of a synchronization
|
|
token is provided Reference address field.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Reserved.</strong> An unused field. This field must contain
|
|
binary 0.</p>
|
|
|
|
<p><strong>User name.</strong> A specific user profile name used for the
|
|
STOK0200 and STOK0300 formats when the address of a synchronization object is indicated in
|
|
the Reference specification field. If the Job name field contains one of the
|
|
special values '* ' or '*INT ', this field must contain binary 0. This
|
|
field is not applicable to all other formats and to the STOK0200 and STOK0300 formats when
|
|
replica addresses are provided. The field must contain binary 0 in
|
|
these cases.</p>
|
|
|
|
<br>
|
|
<h3><a name="OPTN0100_Header"></a>OPTN0100 Format - Options for Receiver
|
|
Variable</h3>
|
|
|
|
<p>This format is used to control data retrieved in the Receiver variable. For
|
|
a detailed description of each field, see <a href="#OPTN0100_Format_FD">
|
|
OPNT0100 Format Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="bottom">Dec</th>
|
|
<th align="center" valign="bottom">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">CHAR(1)</td>
|
|
<td align="left" valign="top" width="60%">References</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">1</td>
|
|
<td align="center" valign="top" width="10%">1</td>
|
|
<td align="left" valign="top" width="20%">CHAR(1)</td>
|
|
<td align="left" valign="top" width="60%">Thread status</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">2</td>
|
|
<td align="center" valign="top" width="10%">2</td>
|
|
<td align="left" valign="top" width="20%">CHAR(1)</td>
|
|
<td align="left" valign="top" width="60%">Semaphore filter</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">3</td>
|
|
<td align="center" valign="top" width="10%">3</td>
|
|
<td align="left" valign="top" width="20%">CHAR(1)</td>
|
|
<td align="left" valign="top" width="60%">Semaphore selection</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">4</td>
|
|
<td align="center" valign="top" width="10%">4</td>
|
|
<td align="left" valign="top" width="20%">CHAR(12)</td>
|
|
<td align="left" valign="top" width="60%">Reserved</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3><a name="OPTN0100_Format_FD">OPTN0100 Format Field Descriptions</a></h3>
|
|
|
|
<p><strong>References.</strong> Selects addresses or replicas for the
|
|
synchronization object associated with the format. If addresses are selected,
|
|
only those synchronization objects that the issuing thread has addressability
|
|
to can be retrieved. If replicas are selected, all synchronization objects for
|
|
the specified thread or threads are retrieved. The following values are
|
|
allowed:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Return replicas of synchronization objects.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Return addresses of synchronization objects.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Note:</strong> This field is used only with the PMTX0100 and
|
|
STOK0100 formats. For the HMTX0100, HCND0100, and SEMA0100 formats replicas are
|
|
always returned. If the field does not apply to the current request, this field
|
|
must contain binary 0.</p>
|
|
|
|
<p><strong>Reserved.</strong> An unused field. This field must contain
|
|
binary 0.</p>
|
|
|
|
<p><strong>Semaphore filter.</strong> Retrieves information for semaphores
|
|
associated with a specified job or thread, all semaphores system wide, or all
|
|
name-based semaphores in a job. This field is used only with the SEMA0100
|
|
format and must contain binary 0 for all other formats. The following
|
|
values are allowed:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Retrieve information for the thread or job
|
|
specified in the Target identification structure with the TIDF0100 format.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Retrieve system-wide semaphore information using
|
|
the Target identification structure with the TIDF0000 format.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'2'</em></td>
|
|
<td align="left" valign="top">Retrieve information for all name-based
|
|
semaphores in a job. A Job name, User name, and Job number or an Internal Job
|
|
Identifier must be specified in the Target identification structure with the
|
|
TIDF0100 format. The Thread Indicator field of the Target identification
|
|
structure must indicate that information should be retrieved for a specified
|
|
job ('2').</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Note:</strong> For all other formats, this field must contain
|
|
binary 0.</p>
|
|
|
|
<p><strong>Semaphore selection.</strong> Selects type of semaphore information
|
|
to be retrieved for the SEMA0100 format when Semaphore Filter is '0' or '1'.
|
|
For all other formats this field must contain binary 0. The following
|
|
values are allowed:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Retrieve information for name-based semaphores.
|
|
The Semaphore filter field must indicate that information should be retrieved
|
|
for a specified thread or job ('0') or system wide ('1').</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Retrieve information for pointer-based
|
|
semaphores. The Semaphore filter field must indicate that information should be
|
|
retrieved for a specified thread or job ('0') or system wide ('1').</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'2'</em></td>
|
|
<td align="left" valign="top">Retrieve information for pointer-based and
|
|
name-based semaphores. The Semaphore filter field must indicate that
|
|
information should be retrieved for a specified thread or job ('0') or system
|
|
wide ('1').</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Note:</strong> This field is not applicable when the Semaphore
|
|
filter field indicates that information should be retrieved for all name-based
|
|
semaphores in a job. If the field does not apply to the current request, the
|
|
field must contain binary 0.</p>
|
|
|
|
<p><strong>Thread status.</strong> Selects status of mutexes or tokens that are
|
|
retrieved. The following values are allowed:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>'0'</em></td>
|
|
<td align="left" valign="top">Retrieve descriptions of mutexes or tokens that are locked
|
|
or waited upon by a thread.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>'1'</em></td>
|
|
<td align="left" valign="top">Retrieve descriptions of mutexes or tokens that are waited
|
|
upon by a thread.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Note:</strong> This field is used only with the PMTX0100, HMTX0100,
|
|
and STOK0100 formats. If the field does not apply to the current request, the
|
|
field must contain binary 0.</p>
|
|
|
|
<br>
|
|
<h3><a name="header_9">Error Messages</a></h3>
|
|
|
|
<table width="100%">
|
|
<tr>
|
|
<th align="left" valign="top">Message ID</th>
|
|
<th align="left" valign="top">Error Message Text</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td width="15%" valign="top">CPE3021</td>
|
|
<td width="85%" valign="top">The value specified for the argument is not
|
|
correct.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top">CPE3027</td>
|
|
<td valign="top">Operation not permitted.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top">CPE3404</td>
|
|
<td valign="top">No space available.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top">CPE3408</td>
|
|
<td valign="top">The address used for an argument was not correct.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top">CPE3525</td>
|
|
<td valign="top">Object is too large to process.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top">CPE3463</td>
|
|
<td valign="top">The synchronization object was destroyed, or the object no
|
|
longer exists.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top">CPF3CF1</td>
|
|
<td valign="top">Error code parameter not valid.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<br>
|
|
<br>
|
|
|
|
|
|
<h3>Example</h3>
|
|
|
|
<p>See <a href="../apiref/aboutapis.htm#codedisclaimer">Code disclaimer information</a>
|
|
for information pertaining to code examples.</p>
|
|
|
|
<pre>
|
|
#include "qp0msrtvso.H"
|
|
#include <qusec.h> /*Error code structures */
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include <mih/crtmtx.h>
|
|
#include <mih/lockmtx.h>
|
|
#include <mih/desmtx.h>
|
|
#include <mih/unlkmtx.h>
|
|
#include <except.h>
|
|
|
|
/*******************************************************************/
|
|
/* Description: This program creates and locks two pointer-based */
|
|
/* mutexes. It then calls Qp0msRtvSyncObjInfo() with the PMTX0100 */
|
|
/* format to retrieve a list of consisting of the two mutexes. The */
|
|
/* program uses one of the mutex addresses as the input of */
|
|
/* Qp0msRtvSyncObjInfo() with the PMTX0200 format to retrieve */
|
|
/* additional information about that mutex. */
|
|
/*******************************************************************/
|
|
|
|
int main (int argc, char *argv[]) {
|
|
|
|
char pmutex1[32];
|
|
char pmutex2[32];
|
|
|
|
char pointer[16];
|
|
Qp0ms_TIDF0200 target2;
|
|
memset(&target2, 0, sizeof(Qp0ms_TIDF0200));
|
|
|
|
_OPENPTR address_of_mutex;
|
|
|
|
/* Creation of pointer-based mutex */
|
|
_Mutex_Create_T pmtx_options;
|
|
memset(&pmtx_options, 0x00, sizeof(_Mutex_Create_T));
|
|
|
|
int result;
|
|
result = _CRTMTX( (_Mutex_T *) pmutex1, &pmtx_options );
|
|
result = _CRTMTX( (_Mutex_T *) pmutex2, &pmtx_options );
|
|
|
|
/* Lock pointer-based mutexes */
|
|
_Mutex_Lock_T lock_template;
|
|
_LOCKMTX((_Mutex_T *) pmutex1, &lock_template);
|
|
_LOCKMTX((_Mutex_T *) pmutex2, &lock_template);
|
|
|
|
/**** Create Qp0msRtvSyncObjInfo parameters ****/
|
|
|
|
// This call allocates space for 1 mutex description
|
|
char * receiver = new char[sizeof(Qp0ms_PMTX0100_List_t) + 1*sizeof(Qp0ms_PMtxDesc_t)];
|
|
int length = sizeof(Qp0ms_PMTX0100_List_t) + 1*sizeof(Qp0ms_PMtxDesc_t);
|
|
Qus_EC_t err_code;
|
|
|
|
/**** Initialize options structure ****/
|
|
Qp0ms_OPTN0100_t options;
|
|
memset(&options, 0x00, sizeof(Qp0ms_OPTN0100_t) );
|
|
options.References = '0';
|
|
options.Thread_Status = '0';
|
|
|
|
/**** Initialize target structure ****/
|
|
Qp0ms_TIDF0100_t target;
|
|
memset(&target, 0x00, sizeof(Qp0ms_TIDF0100_t) );
|
|
target.Thread_Indicator = '1';
|
|
|
|
/**** Initialize error code structure ****/
|
|
memset(&err_code, 0x00, sizeof(Qus_EC_t) );
|
|
err_code.Bytes_Provided = sizeof(Qus_EC_t);
|
|
|
|
/* Call Retrieve Synchronization Object Information API */
|
|
Qp0msRtvSyncObjInfo(receiver, &length, "PMTX0100", &target, "TIDF0100",
|
|
&options, "OPTN0100", &err_code);
|
|
|
|
Qp0ms_PMtxDesc_t * Mutex_Desc = (Qp0ms_PMtxDesc_t *)((char *) receiver + ((Qp0ms_PMTX0100_List_t *)
|
|
receiver)->Desc_Offset);
|
|
|
|
printf("********************Results of Qp0msRtvSyncObjInfo() *************\n");
|
|
|
|
if ( err_code.Bytes_Available != 0 )
|
|
printf("This call failed with error %7.7s\n", err_code.Exception_Id);
|
|
else {
|
|
printf("Bytes Returned %d\n", ((Qp0ms_PMTX0100_List *) receiver)->Bytes_Returned);
|
|
printf("Bytes Available %d\n", ((Qp0ms_PMTX0100_List *) receiver)->Bytes_Available);
|
|
printf("Number of Threads %d\n", ((Qp0ms_PMTX0100_List *) receiver)->Num_Threads);
|
|
printf("Number of Descriptions Available %d\n", ((Qp0ms_PMTX0100_List *)
|
|
receiver)->Num_Desc_Available);
|
|
printf("Number of Descriptions Returned %d\n", ((Qp0ms_PMTX0100_List *)
|
|
receiver)->Num_Desc_Returned);
|
|
}
|
|
|
|
for ( int i = 0; i < ((Qp0ms_PMTX0100_List *) receiver)->Num_Desc_Returned; ++i) {
|
|
if ( err_code.Bytes_Available != 0 )
|
|
printf("This call failed with error %7.7s\n", err_code.Exception_Id);
|
|
else{
|
|
printf("Mutex information %d\n", i);
|
|
printf("Mutex state: %d\n", Mutex_Desc[i].Mutex_State);
|
|
printf("Mutex Name: %16.16s\n", Mutex_Desc[i].Mutex_Name);
|
|
|
|
printf("Mutex Owner Job Information\n");
|
|
printf("Job Name: %10.10s\n", Mutex_Desc[i].Owner_Job_Name);
|
|
printf("Job Number: %6.6s\n", Mutex_Desc[i].Owner_Job_Num);
|
|
printf("User Name: %10.10s\n", Mutex_Desc[i].Owner_User_Name);
|
|
|
|
int * tid = (int *) &Mutex_Desc[i].Owner_Thread_Id[0];
|
|
printf("Mutex Owner Thread ID: %4.4x", *tid);
|
|
printf("%4.4x\n", *(tid+1));
|
|
int * thr_uval = (int *) &Mutex_Desc[i].Owner_Thread_Val[0];
|
|
printf("Mutex Owner Thread Unique Value: %4.4x", *thr_uval);
|
|
printf("%4.4x\n", *(thr_uval+1));
|
|
|
|
printf("Number of threads waiting on this mutex: %d\n", Mutex_Desc[i].Num_Waiters);
|
|
memcpy(&address_of_mutex, &Mutex_Desc[i].Mutex, sizeof(_OPENPTR));
|
|
address_of_mutex = (_OPENPTR) Mutex_Desc[i].Mutex;
|
|
void * test = Mutex_Desc[i].Mutex;
|
|
memcpy(&test, &Mutex_Desc[i].Mutex, sizeof(void *));
|
|
test = Mutex_Desc[i].Mutex;
|
|
memcpy(pointer, &Mutex_Desc[i].Mutex, 16);
|
|
memcpy(&address_of_mutex, pointer, 16);
|
|
target2.Ref_Address = &Mutex_Desc[i].Mutex;
|
|
if ( ((Qp0ms_PMTX0100_List_t *) receiver)->Bytes_Available > ((Qp0ms_PMTX0100_List_t *)
|
|
receiver)->Bytes_Returned ){
|
|
printf("More descriptions available.\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
delete receiver;
|
|
|
|
/* Initialize receiver */
|
|
receiver = new char[sizeof(Qp0ms_PMTX0200_List_t) + sizeof(Qp0ms_Waiters)];
|
|
|
|
/* Initialize length */
|
|
length = sizeof(Qp0ms_PMTX0200_List_t) + sizeof(Qp0ms_Waiters);
|
|
|
|
/* Initialize error code */
|
|
memset(&err_code, 0, sizeof(Qus_EC_t));
|
|
err_code.Bytes_Provided = sizeof(Qus_EC_t);
|
|
|
|
/* Call Retrieve Synchronization Object Information API */
|
|
Qp0msRtvSyncObjInfo(receiver, &length, "PMTX0200", &target2, "TIDF0200", NULL, "OPTN0000",
|
|
&err_code);
|
|
|
|
if ( err_code.Bytes_Available != 0 )
|
|
printf("This call failed with error %7.7s\n", err_code.Exception_Id);
|
|
else {
|
|
printf("Bytes Returned %d\n", ((Qp0ms_PMTX0200_List *) receiver)->Bytes_Returned);
|
|
printf("Bytes Available %d\n", ((Qp0ms_PMTX0200_List *) receiver)->Bytes_Available);
|
|
printf("Number of Threads %d\n", ((Qp0ms_PMTX0200_List *) receiver)->Num_Threads_Waiting);
|
|
printf("Number of Descriptions Available %d\n", ((Qp0ms_PMTX0200_List *)
|
|
receiver)->Num_Desc_Available);
|
|
printf("Number of Descriptions Returned %d\n", ((Qp0ms_PMTX0200_List *)
|
|
receiver)->Num_Desc_Returned);
|
|
printf("Mutex Name: %16.16s\n", ((Qp0ms_PMTX0200_List *) receiver)->Mutex_Name);
|
|
int * tid = (int *) &((Qp0ms_PMTX0200_List *) receiver)->Owner_Thread_Id[0];
|
|
printf("Mutex Owner Thread ID: %4.4x", *tid);
|
|
printf("%4.4x\n", *(tid+1));
|
|
int * thr_uval = (int * ) &((Qp0ms_PMTX0200_List *) receiver)->Owner_Thread_Val[0];
|
|
printf("Mutex Owner Thread Unique Value: %4.4x", *thr_uval);
|
|
printf("%4.4x\n", *(thr_uval+1));
|
|
|
|
printf("Owner Job Name: %10.10s\n", ((Qp0ms_PMTX0200_List *) receiver)->Owner_Job_Name);
|
|
printf("Owner Job Number: %6.6s\n", ((Qp0ms_PMTX0200_List *) receiver)->Owner_Job_Num);
|
|
printf("Owner User Name: %10.10s\n", ((Qp0ms_PMTX0200_List *) receiver)->Owner_User_Name);
|
|
|
|
Qp0ms_Waiters * waiters = (Qp0ms_Waiters *) ((int) receiver + ((Qp0ms_PMTX0200_List *)
|
|
receiver)->Desc_Offset);
|
|
|
|
for( int i = 0; i < ((Qp0ms_PMTX0200_List *) receiver)->Num_Desc_Returned; ++i) {
|
|
int * atid = (int *) &waiters[i].Thread_Id[0];
|
|
printf("Mutex %d, Associated Thread ID: %4.4x", i, *atid);
|
|
printf("%4.4x\n", *(atid+1));
|
|
int * athr_uval = waiters[i].Thread_Val;
|
|
printf("Mutex %d Associated Thread Unique Value: %4.4x", i, *athr_uval);
|
|
printf("%4.4x\n", *(athr_uval+1));
|
|
printf("Mutex %d Associated Job Name\n", i, waiters[i].Job_Name);
|
|
printf("Mutex %d Associated User Name\n", i, waiters[i].User_Name);
|
|
printf("Mutex %d Associated Job Number\n", i, waiters[i].Job_Number);
|
|
}
|
|
}
|
|
|
|
/* Clean up */
|
|
_UNLKMTX( (_Mutex_T *) pmutex1 );
|
|
_UNLKMTX( (_Mutex_T *) pmutex2 );
|
|
|
|
_Mutex_Destroy_Opt_T destroy_opt;
|
|
|
|
_DESMTX( (_Mutex_T *) pmutex1, &destroy_opt );
|
|
_DESMTX( (_Mutex_T *) pmutex2, &destroy_opt );
|
|
|
|
delete receiver;
|
|
|
|
}
|
|
</pre>
|
|
|
|
<br>
|
|
<h3>Example Output</h3>
|
|
|
|
<pre>
|
|
********************Results of Qp0msRtvSyncObjInfo() *************
|
|
Bytes Returned 128
|
|
Bytes Available 224
|
|
Number of Threads 0
|
|
Number of Descriptions Available 2
|
|
Number of Descriptions Returned 1
|
|
Mutex information 0
|
|
Mutex state: 240
|
|
Mutex Name: UNNAMED_I0_EXAMP
|
|
Mutex Owner Job Information
|
|
Job Name: QPADEV0004
|
|
Job Number: 023786
|
|
User Name: USER1
|
|
Mutex Owner Thread ID: 00000060
|
|
Mutex Owner Thread Unique Value: b003f000df03000
|
|
Number of threads waiting on this mutex: 0
|
|
More descriptions available.
|
|
Bytes Returned 96
|
|
Bytes Available 96
|
|
Number of Threads 0
|
|
Number of Descriptions Available 0
|
|
Number of Descriptions Returned 0
|
|
Mutex Name: UNNAMED_I0_EXAMP
|
|
Mutex Owner Thread ID: 00000060
|
|
Mutex Owner Thread Unique Value: b003f000df03000
|
|
Owner Job Name: QPADEV0004
|
|
Owner Job Number: 023786
|
|
Owner User Name: USER1
|
|
</pre>
|
|
|
|
<br>
|
|
|
|
<hr>
|
|
API introduced: V5R3
|
|
|
|
<hr>
|
|
<table align="center" cellpadding="2" cellspacing="2">
|
|
<tr align="center">
|
|
<td valign="middle" align="center"><a href="#Top">Top</a> | <a href="wm1.htm">
|
|
Work Management APIs</a> | <a href="aplist.htm">APIs by category</a></td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|
|
|