Op Code (Hex) | Operand 1 | Operand 2 | ||
---|---|---|---|---|
02C6 | Materialization request template | Bound program or bound service program |
Operand 1: Space pointer.
Operand 2: System pointer.
Bound program access |
---|
|
The following information is subject to change from release to release. Use it with caution and be prepared to adjust for changes with each new release.
Note: The terms "heap" and "heap space" in this instruction refer to an "activation group-based heap space".
The bound program or bound service program identified by operand 2 is materialized according to the specifications provided by operand 1.
Operand 2 is a system pointer that identifies the bound program or bound service program to be materialized. If operand 2 does not refer to a program object, a pointer addressing invalid object type (hex 2403) exception will be signaled. If operand 2 refers to a program, but not to a bound program or bound service program, then a program not eligible for operation (hex 220A) exception will be signaled.
The values in the materialization relate to the current attributes of the materialized bound program. Components are the materializable parts of a bound program or bound service program. Components may not be available for materialization because they were not encapsulated during bound program creation. Other components may not be available for materialization because they contain no data.
This instruction does not process teraspace addresses used for its operands, nor used in any space pointer contained in a template. Any teraspace address use will cause an unsupported space use (hex 0607) exception to be signaled, whether the issuing program is teraspace capable or not.
Note: | The bound program materialization request template takes the form of a variable length array of materialization requests. |
Offset | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||
0 | 0 |
| Template size specification |
| Char(8) | ||||||||||||
0 | 0 |
| Number of bytes provided |
| UBin(4) | ||||||||||||
4 | 4 |
| Reserved (binary 0) |
| Char(4) | ||||||||||||
8 | 8 |
| Number of materialization requests |
| UBin(4) | ||||||||||||
12 | C |
| Reserved (binary 0) |
| Char(4) | ||||||||||||
16 | 10 |
| Array of materialization requests |
| [*] Char(32) | ||||||||||||
16 | 10 |
| Receiver |
| Space pointer | ||||||||||||
32 | 20 |
| Bound program materialization options |
| Char(4) | ||||||||||||
32 | 20 |
| General bound program materialization options |
| Char(2) | ||||||||||||
32 | 20 |
| General bound program information |
| Bit 0 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Reserved |
| Bit 1 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Program copyright Strings |
| Bit 2 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Bound service programs information |
| Bit 3 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Bound modules information |
| Bit 4 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Bound program string directory component |
| Bit 5 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Bound program limits |
| Bit 6 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Reserved |
| Bits 7-11 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Activation group data imports |
| Bit 12 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Activation group data exports |
| Bit 13 | ||||||||||||
|
|
|
| ||||||||||||||
32 | 20 |
| Reserved (binary 0) |
| Bits 14-15 | ||||||||||||
34 | 22 |
| Specific bound program materialization options |
| Char(1) | ||||||||||||
34 | 22 |
| Specific bound program information |
| Bit 0 | ||||||||||||
|
|
|
| ||||||||||||||
34 | 22 |
| Reserved (binary 0) |
| Bits 1-7 | ||||||||||||
35 | 23 |
| Specific bound service program materialization options |
| Char(1) | ||||||||||||
35 | 23 |
| Reserved (binary 0) |
| Bit 0 | ||||||||||||
35 | 23 |
| Signatures information |
| Bit 1 | ||||||||||||
|
|
|
| ||||||||||||||
35 | 23 |
| Exported program procedure information |
| Bit 2 | ||||||||||||
|
|
|
| ||||||||||||||
35 | 23 |
| Exported program data information |
| Bit 3 | ||||||||||||
|
|
|
| ||||||||||||||
35 | 23 |
| Reserved (binary 0) |
| Bits 4-7 | ||||||||||||
36 | 24 |
| Bound module materialization options |
| Char(4) | ||||||||||||
36 | 24 |
| General module information |
| Bit 0 | ||||||||||||
|
|
|
| ||||||||||||||
36 | 24 |
| Reserved |
| Bit 1 | ||||||||||||
|
|
|
| ||||||||||||||
36 | 24 |
| Module string directory component |
| Bit 2 | ||||||||||||
|
|
|
| ||||||||||||||
36 | 24 |
| Reserved |
| Bits 3-10 | ||||||||||||
|
|
|
| ||||||||||||||
36 | 24 |
| Reserved (binary 0) |
| Bits 11-17 | ||||||||||||
|
|
|
| ||||||||||||||
36 | 24 |
| Module copyright strings |
| Bit 18 | ||||||||||||
|
|
|
| ||||||||||||||
36 | 24 |
| Reserved |
| Bits 19-21 | ||||||||||||
|
|
|
| ||||||||||||||
36 | 24 |
| Reserved (binary 0) |
| Bits 22-31 | ||||||||||||
40 | 28 |
| Bound module materialization number |
| UBin(4) | ||||||||||||
44 | 2C |
| Reserved (binary 0) |
| Char(4) | ||||||||||||
* | * |
| --- End --- |
|
|
Each of the reserved fields must be set to binary 0s, or a template value invalid (hex 3801) exception will be signaled.
Number of bytes provided | This is the size in bytes of the materialization request template. If this size does not correspond to the actual number of bytes in the materialization request template, then a template value invalid (hex 3801) exception will be signaled. This does not include any storage for returned data. That storage is pointed to by the receiver values. | ||||||||
Number of materialization requests | The number of requests in the array of materialization requests is specified by this value. If this number is greater than the actual number of materialization requests provided, then a template value invalid (hex 3801) exception will be signaled. | ||||||||
Materialization requests | This is an array of materialization requests. A materialization request consists of one or more bits, and an optional module number specified to be materialized into the corresponding receiver. Each materialization request consists of the following fields.
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Number of bytes provided for materialization |
| UBin(4) | ||||||||
4 | 4 |
| Number of bytes available for materialization |
| UBin(4) | ||||||||
8 | 8 |
| Reserved (binary 0) |
| Char(8) | ||||||||
16 | 10 |
| Materialized data |
| Char(*) | ||||||||
* | * |
| --- End --- |
|
|
Bytes provided | This is the number of bytes the user is providing to hold the materialized data. It must be greater than or equal to eight. If it is equal to eight, then no data will actually be materialized, and the number of bytes required to materialize the requested data will be placed in bytes available. If the value provided is greater than eight, but less than the number of bytes required to hold the requested data, the data will be truncated and no exception will be signaled. Note that a value greater than eight, but less than 16 will result in no data being materialized, since bytes 9-16 are reserved. If the receiver is smaller than the size indicated by bytes provided, and the materialized data is larger than the space provided in receiver, the space addressing violation (hex 0601) exception will be signaled unless receiver is an automatically extendable space object. If receiver is an automatically extendable space object, the space will be extended, up to its maximum size. |
Bytes available | If bytes provided is greater than eight, this contains the number of bytes that have been used for the materialization, including any reserved bytes or bytes used for padding. If bytes provided is equal to eight, this contains the total size of the receiver needed to hold the requested materialization. A value of zero is returned if there is no data to materialize. |
Materialized data | For each bit on in the bound program materialization options and bound module materialization options, this will contain the associated data. Each entry will be preceded by a common header which identifies the type of data and the offset to the next entry. When multiple bits are on in the same request, the data is returned in the order defined by the bound program materialization options and the bound module materialization options. No exception is signaled when the size of the receiver, as specified by bytes provided is not large enough to hold data for all requested bound program materialization options and bound module materialization options. Instead, the data is truncated and bytes provided only reflects the actual amount of data returned. One of several conditions may arise, each with a different result. If the receiver is not large enough to hold the materialization header, no data is returned for that bound program materialization option or bound module materialization option. The offset to next entry field in the previous materialization header, if one exists, is set to 0, and the bytes available field is set to reflect the amount of data actually materialized for the bound program materialization options or bound module materialization options that have already been processed. Bytes available will be set to 8, or bytes provided ; whichever is less, if the receiver is not big enough to hold the first materialization header. If the receiver is big enough to hold the materialization header, but not big enough to hold all of the data requested by the bound program materialization option or bound module materialization option, the partial data flag will be set in the materialization header and as much data will be returned for which there is room. For data which consists of one continuous stream(2) the receiver will be filled and bytes available will equal bytes provided. For data which consists of an option specific header followed by an array of homogenous elements(3) data will be returned in such a way that no partial option specific header or array element will be returned. If there is not enough room to hold the entire option specific header, none of it will be returned. If there is room for the option specific header, but not all of the entries, only those entries that will fit will be returned. The number of entries in the option specific header will reflect the number of entries returned rather than the actual number of entries available in the module. Bytes available will reflect the actual amount of data returned and may not equal bytes provided. Note that because many option specific headers and entries are larger than the common materialization header, there may be more than one option for which partial data is returned. |
Offset | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||
0 | 0 |
| Offset to next entry |
| UBin(4) | ||||||||||||
4 | 4 |
| Bound program materialization identifier |
| Char(4) | ||||||||||||
8 | 8 |
| Bound module materialization identifier |
| Char(4) | ||||||||||||
12 | C |
| Bound module materialization number identifier |
| UBin(4) | ||||||||||||
16 | 10 |
| Flags |
| Char(4) | ||||||||||||
16 | 10 |
| Entry presence |
| Bit 0 | ||||||||||||
|
|
|
| ||||||||||||||
16 | 10 |
| Partial data |
| Bit 1 | ||||||||||||
|
|
|
| ||||||||||||||
16 | 10 |
| Valid materialization data |
| Bit 2 | ||||||||||||
|
|
|
| ||||||||||||||
16 | 10 |
| Reserved (binary 0) |
| Bits 3-31 | ||||||||||||
20 | 14 |
| Reserved (binary 0) |
| Char(12) | ||||||||||||
32 | 20 |
| --- End --- |
|
|
Offset to next entry | This contains the offset from the beginning of this entry to the beginning of the next entry. It will contain zero if this is the last entry. |
Bound program materialization identifier | This indicates which portion of the bound program is contained in this entry. It is the bit which was on in bound program materialization options that resulted in this data being materialized. Either no bits, or a single bit of this field will be on. If no bits of this field are on, then the data contained in this entry is indicated by the bound module materialization identifier field. |
Bound module materialization identifier | This indicates which portion of the module, indicated by the bound module materialization number identifier field, is contained in this entry. It is the bit which was on in the bound module materialization options field that resulted in this data being materialized. Either a single bit or no bit of this field will be on. If no bit is on, then the data contained in this entry is indicated by the bound program materialization identifier field. If a bit is set on, then that type of information will be returned in the entry. |
Bound module materialization number identifier | If a bit of the bound module materialization identifier field is on, then this is the number of the module for which information has been materialized in this entry, and this field will not be 0. If no bits of the bound module materialization identifier field are on, then this field will be 0. |
Flags | This field specifies information about the item being materialized. The entry presence field specifies whether there is data available for the requested item. Some items may not be encapsulated into the object, so no data will be returned when their materialization is requested. The partial data field specifies that only a portion of the data was returned because sufficient space was not present in the receiver to hold all of the data for the requested materialization option. The valid materialization field specifies whether the requested information is valid to be materialized for the type of bound program that is being materialized. For example, specific bound program information is not valid for a bound service program. Even if data may be present for the type of bound program being materialized does not mean that it actually is. Refer to the entry present field to see if it is. |
Offset | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||||||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||||||||||||||||
4 | 4 |
| Reserved |
| Char(264) | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
268 | 10C |
| Number of secondary associated spaces |
| UBin(4) | ||||||||||||||||||||||
272 | 110 |
| Activation group attributes |
| Char(4) | ||||||||||||||||||||||
272 | 110 |
| Target activation group |
| Char(1) | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
273 | 111 |
| Reserved |
| Char(3) | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
276 | 114 |
| Activation group name |
| Char(30) | ||||||||||||||||||||||
306 | 132 |
| Reserved |
| Char(14) | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
320 | 140 |
| Coded character set identifier |
| UBin(2) | ||||||||||||||||||||||
322 | 142 |
| Composite language version |
| UBin(2) | ||||||||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||||||||
324 | 144 |
| Composite machine version for modules |
| UBin(2) | ||||||||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||||||||
326 | 146 |
| Earliest version |
| UBin(2) | ||||||||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||||||||
328 | 148 |
| Creation target version |
| UBin(2) | ||||||||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||||||||
330 | 14A |
| Version on which creation occurred |
| UBin(2) | ||||||||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||||||||
332 | 14C |
| Bound program identifier |
| Char(1) | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
333 | 14D |
| Compression status |
| Char(1) | ||||||||||||||||||||||
333 | 14D |
| Executable portion |
| Bit 0 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
333 | 14D |
| Observable portion |
| Bit 1 | ||||||||||||||||||||||
|
|
|
If the compression status of
the observable portion of the program is uncompressed, it is not a
guarantee that the observable portion exists. The observable portion
status should be checked to ensure that the observable
portion exists before attempting to access the observable portion
of the program.
| ||||||||||||||||||||||||
333 | 14D |
| Reserved (binary 0) |
| Bits 2-7 | ||||||||||||||||||||||
334 | 14E |
| Composite low optimization level |
| UBin(2) | ||||||||||||||||||||||
336 | 150 |
| Composite high optimization level |
| UBin(2) | ||||||||||||||||||||||
338 | 152 |
| Observable portion status |
| Char(1) | ||||||||||||||||||||||
338 | 152 |
| Extended observability storage area exists |
| Bit 0 | ||||||||||||||||||||||
|
|
|
Note that a value of zero in this field just means that no
observable data exists separate from the portion that is
encapsulated in the executable portion of
the program. For more information see the Observability Provided
and Encapsulated Observability Attributes in the materialized
general bound program information.
| ||||||||||||||||||||||||
338 | 152 |
| Program creation data existence |
| Bit 1 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
338 | 152 |
| Module creation data existence |
| Bit 2 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
338 | 152 |
| Reserved (binary 0) |
| Bits 3-7 | ||||||||||||||||||||||
339 | 153 |
| Program application profiling attributes |
| Char(1) | ||||||||||||||||||||||
339 | 153 |
| Program procedure order profiled |
| Bit 0 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
339 | 153 |
| Program basic block reordering attempted |
| Bit 1 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
339 | 153 |
| Program ready for application profiling collection |
| Bit 2 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
339 | 153 |
| Reserved (binary 0) |
| Bits 3-7 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
340 | 154 |
| Number of modules with application profiling attributes |
| UBin(4) | ||||||||||||||||||||||
344 | 158 |
| Teraspace attributes |
| Char(1) | ||||||||||||||||||||||
344 | 158 |
| Program contains teraspace capable modules |
| Bit 0 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
344 | 158 |
| Program entry procedure teraspace capable |
| Bit 1 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
344 | 158 |
| All modules teraspace capable |
| Bit 2 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
344 | 158 |
| Program automatic and static storage location |
| Bits 3-4 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
344 | 158 |
| Reserved (binary 0) |
| Bits 5-7 | ||||||||||||||||||||||
345 | 159 |
| Reserved (binary 0) |
| Char(167) | ||||||||||||||||||||||
512 | 200 |
| --- End --- |
|
|
Length in bytes of materialization | This is the number of bytes materialized. For the general bound program information this will always be a constant 512. | ||||||
Number of secondary associated spaces | This is the number of secondary associated spaces currently associated with the object. | ||||||
Activation group attributes | The activation group attributes specify characteristics of the activation group into which the program will be activated.
| ||||||
Activation group name | This is the activation group name specified when the bound program or bound service program was created. | ||||||
Coded character set identifier | This is the CCSID value of the bound program or bound service program. | ||||||
Composite language version | This is the earliest version of the operating system on which the languages used for the bound modules will allow the bound program object to be saved. This is a composite(4) of all of the language versions of the modules bound into this program. | ||||||
Composite machine version for modules | This is the earliest version of the operating system on which all of the modules bound into the program can be re-created, assuming the required module creation templates are encapsulated in the program. | ||||||
Earliest version | This is the earliest version of the operating system for which the machine will allow the bound program to be saved. | ||||||
Creation target version | This is the version of the operating system for which the bound program object was created. | ||||||
Version on which creation occurred | This is the version of the operating system on which the bound program object was created. | ||||||
Bound program identifier | This field identifies the type of bound program being materialized. | ||||||
Compression status | This field identifies whether the executable or the observable portions of the bound program or bound service program are compressed. | ||||||
Composite low optimization level | This field reflects the lowest level of optimization of all the modules bound into the program. Some modules of the program may have a higher optimization level than indicated by this field. | ||||||
Composite high optimization level | This field reflects the highest level of optimization of all the modules bound into the program. Some modules of the program may have a lower optimization level than indicated by this field. | ||||||
Observable portion status | This field describes the status of the observability data of the program. It includes the following flag fields
In order for a program to be eligible for retranslation, the program creation data existence bit must be set. If the module creation data existence bit is also set, this is an indication that the program has the required observability for retranslation. If the module creation data existence field is not set, the observable status of each of the modules can be found. |
Program application profiling attributes | These attributes identify application profiling attributes of the program object.
| ||||||
Number of modules with application profiling attributes | This is the number of modules bound into the program that are either hooked for application profiling data collection or have been basic block reordered. To determine to which attributes this number applies, use the program ready for application profiling collection and the program basic block reordering attempted bits of the program application profiling attributes. They are mutually exclusive. |
Teraspace attributes | These attributes identify teraspace attributes of the program object.
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Version of copyright creation extension |
| UBin(4) | ||||||||
8 | 8 |
| Number of copyright strings in the pool |
| UBin(4) | ||||||||
12 | C |
| Reserved |
| Char(4) | ||||||||
16 | 10 |
| Copyright string pool |
| Char(*) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | This is the number of bytes materialized. |
Version of copyright creation extension | This is the version of the copyrights when the module was created. |
Number of copyright strings in the pool | This is the number of copyright strings that follow. |
Copyright string pool | This is the data for all of the copyright strings. Each copyright string consists of a 4 byte length followed by the text of the string. The length reflects the actual length in bytes of the copyright string and does not include the length of the length field. All copyright strings along with their lengths are placed contiguously in the buffer with no intervening padding. |
Offset | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||||||
4 | 4 |
| Number of service programs bound to this program |
| UBin(4) | ||||||||||||
8 | 8 |
| Reserved (binary 0) |
| Char(8) | ||||||||||||
16 | 10 |
| Array of bound service program records |
| [*] Char(48) | ||||||||||||
16 | 10 |
| Bound service program ID |
| Char(24) | ||||||||||||
16 | 10 |
| Bound service program context object type |
| Char(1) | ||||||||||||
17 | 11 |
| Bound service program context object subtype |
| Char(1) | ||||||||||||
18 | 12 |
| Bound service program context name |
| Char(10) | ||||||||||||
28 | 1C |
| Bound service program object type |
| Char(1) | ||||||||||||
29 | 1D |
| Bound service program object subtype |
| Char(1) | ||||||||||||
30 | 1E |
| Bound service program name |
| Char(10) | ||||||||||||
40 | 28 |
| Referentially bound program signature |
| Char(16) | ||||||||||||
56 | 38 |
| Attributes |
| Char(1) | ||||||||||||
56 | 38 |
| Reserved (binary 0) |
| Bits 0-6 | ||||||||||||
56 | 38 |
| Activation attribute |
| Bit 7 | ||||||||||||
|
|
|
| ||||||||||||||
57 | 39 |
| Reserved (binary 0) |
| Char(7) | ||||||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be 16 + (N * 48) where N is the number of bound service programs- those programs that contain exports that resolve imports in the bound program. | ||||||||||||||||
Number of service programs bound to this program | This is the number of bound service programs bound to the bound program. | ||||||||||||||||
Array of bound service program records | This array contains one record for each bound service program bound to the bound program. Each record contains the following information
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Number of modules bound into this program |
| UBin(4) | ||||||||
8 | 8 |
| Reserved (binary 0) |
| Char(8) | ||||||||
16 | 10 |
| Array of bound module records |
| [*] Char(80) | ||||||||
16 | 10 |
| Bound module ID |
| Char(60) | ||||||||
16 | 10 |
| Module qualifier |
| Char(30) | ||||||||
46 | 2E |
| Module name |
| Char(30) | ||||||||
76 | 4C |
| Reserved (binary 0) |
| Char(20) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be 16 + (N * 80) where N is the number of modules bound into the bound program. | ||||
Number of modules bound into this program | This is the number of modules bound into the bound program. | ||||
Array of bound module records | This array contains one record for each module bound into the bound program. Each record contains the following information
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Reserved (binary 0) |
| Char(12) | ||||||||
16 | 10 |
| String pool |
| Char(*) | ||||||||
16 | 10 |
| Length of the string |
| UBin(4) | ||||||||
20 | 14 |
| CCSID of the string |
| UBin(2) | ||||||||
22 | 16 |
| String |
| Char(*) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be 16 + the length of the string pool. |
String pool | A memory area containing the strings defined for this program. It can be of any length addressable by a UBin(4). It contains a series of strings and lengths. String IDs specified in other materialized components can be used as indexes into this string pool. |
Length of string | The length of the next string. This field contains the length of the string only, and does not include the length of either the length or the CCSID field. The length field of a string is not subject to alignment considerations. |
CCSID of string | The character code set identifier of this string. This string is encoded in the given CCSID, which is the CCSID of the module object from which this string is originally declared. The CCSID field of a string is not subject to alignment considerations. |
String | Character buffer which contains one string. Its length is defined by the length field. |
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Reserved (binary 0) |
| Char(12) | ||||||||
16 | 10 |
| Current size of bound program |
| UBin(4) | ||||||||
20 | 14 |
| Maximum number of associated spaces |
| UBin(4) | ||||||||
24 | 18 |
| Current number of associated spaces |
| UBin(4) | ||||||||
28 | 1C |
| Maximum number of modules bindable into program |
| UBin(4) | ||||||||
32 | 20 |
| Current number of modules bound into program |
| UBin(4) | ||||||||
36 | 24 |
| Maximum number of service programs bindable to program |
| UBin(4) | ||||||||
40 | 28 |
| Current number of service programs bound to program |
| UBin(4) | ||||||||
44 | 2C |
| Maximum size of bound program string directory |
| UBin(4) | ||||||||
48 | 30 |
| Current size of bound program string directory |
| UBin(4) | ||||||||
52 | 34 |
| Maximum size of bound program copyright strings |
| UBin(4) | ||||||||
56 | 38 |
| Current size of bound program copyright strings |
| UBin(4) | ||||||||
60 | 3C |
| Maximum number of auxiliary storage segments |
| UBin(4) | ||||||||
64 | 40 |
| Current number of auxiliary storage segments |
| UBin(4) | ||||||||
68 | 44 |
| Maximum number of static storage frames |
| UBin(4) | ||||||||
72 | 48 |
| Current number of static storage frames |
| UBin(4) | ||||||||
76 | 4C |
| Maximum number of program procedure exports |
| UBin(4) | ||||||||
80 | 50 |
| Current number of program procedure exports |
| UBin(4) | ||||||||
84 | 54 |
| Maximum number of program data exports |
| UBin(4) | ||||||||
88 | 58 |
| Current number of program data exports |
| UBin(4) | ||||||||
92 | 5C |
| Maximum number of signatures |
| UBin(4) | ||||||||
96 | 60 |
| Current number of signatures |
| UBin(4) | ||||||||
100 | 64 |
| Minimum amount of static storage required |
| UBin(4) | ||||||||
104 | 68 |
| Maximum amount of static storage required |
| UBin(4) | ||||||||
108 | 6C |
| Reserved (binary 0) |
| Char(4) | ||||||||
112 | 70 |
| Eight byte version of minimum amount of static storage required |
| UBin(8) | ||||||||
120 | 78 |
| Eight byte version of maximum amount of static storage required |
| UBin(8) | ||||||||
128 | 80 |
| Reserved (binary 0) |
| Char(128) | ||||||||
256 | 100 |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will always be a constant 256. |
Current size of bound program | This is the current size, in machine-dependent units, of the bound program being materialized. |
Maximum number of associated spaces | This is the maximum number of associated spaces allowed for the bound program being materialized. |
Current number of associated spaces | This is the current number of associated spaces allocated to the bound program being materialized. |
Maximum number of modules bindable into program | This is the maximum number of modules that can be bound into a bound program. |
Current number of modules bound into program | This is the current number of modules bound into the bound program being materialized. |
Maximum number of service programs bindable to program | This is the maximum number of bound service programs that can be bound to a bound program. These bound service programs contain exports to which imports from a bound program resolve. |
Current number of service programs bound to program | This is the current number of bound service programs bound to the bound program being materialized. |
Maximum size of bound program string directory | This is the maximum size, in bytes, of the bound program string directory. |
Current size of bound program string directory | This is the current size, in bytes, of the bound program string directory. |
Maximum size of bound program copyright strings | This is the maximum size, in bytes, of the bound program copyright strings. |
Current size of bound program copyright strings | This is the current size, in bytes, of the bound program copyright strings. |
Maximum number of auxiliary storage segments | This is the maximum number of auxiliary storage segments allowed for a bound program. |
Current number of auxiliary storage segments | This is the current number of auxiliary storage segments in the bound program being materialized. |
Maximum number of static storage frames | This is the maximum number of static storage frames allowed for a bound program. |
Current number of static storage frames | This is the current number of static storage frames required by the bound program being materialized. |
Maximum number of procedure exports | This is the maximum number of procedures that are allowed to be exported from a bound program. If the bound program being materialized is not a bound service program, then this value will be zero. |
Current number of procedure exports | This is the current number of procedures exported from the bound program being materialized. If the bound program being materialized is not a bound service program, then this value will be zero. |
Maximum number of data exports | This is the maximum number of data items that are allowed to be exported from a bound program. If the bound program being materialized is not a bound service program, then this value will be zero. |
Current number of data exports | This is the current number of data items exported from the bound program being materialized. If the bound program being materialized is not a bound service program, then this value will be zero. |
Maximum number of signatures | This is the maximum number of signatures allowed for a bound program. If the bound program being materialized is not a bound service program, then this value will be zero. |
Current number of signatures | This is the current number of signatures contained in the bound program being materialized. If the bound program being materialized is not a bound service program, then this value will be zero. |
Minimum amount of static storage required. | This is the smallest amount of static storage that is required for the bound program or service program. This measure is in bytes. The actual amount of static storage that is used may be anywhere between the minimum and the maximum amounts of required static storage, inclusive. If the size is 4 gigabytes (4,294,967,296) or more, a value of 4,294,967,295 will be returned in the field. In this case, the eight byte version of minimum amount of static storage required field should be used to get the size in bytes. |
Maximum amount of static storage required. | This is the largest amount of static storage that may be required for the bound program or service program. This measure is in bytes. The actual amount of static storage that is used may be anywhere between the minimum and the maximum amounts of required static storage, inclusive. If the size is 4 gigabytes (4,294,967,296) or more, a value of 4,294,967,295 will be returned in the field. In this case, the eight byte version of maximum amount of static storage required field should be used to get the size in bytes. |
Eight byte version of minimum amount of static storage required | This is the smallest amount of static storage that is required for the bound program or service program. This measure is in bytes. The actual amount of static storage that is used may be anywhere between the minimum and the maximum amounts of required static storage, inclusive. |
Eight byte version of maximum amount of static storage required | This is the largest amount of static storage that may be required for the bound program or service program. This measure is in bytes. The actual amount of static storage that is used may be anywhere between the minimum and the maximum amounts of required static storage, inclusive. |
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Number of activation group data imports |
| UBin(4) | ||||||||
8 | 8 |
| Reserved (binary 0) |
| Char(8) | ||||||||
16 | 10 |
| Array of activation group data imports |
| [*] Char(16) | ||||||||
16 | 10 |
| String ID |
| UBin(4) | ||||||||
20 | 14 |
| Reserved (binary 0) |
| Char(12) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be (N+1)*16, where N is the number of activation group data imports contained in the bound program or bound service program. | ||
Number of activation group data imports | The number of activation group data imports contained in the bound program or bound service program. | ||
Array of activation group data imports | This array contains one record for each data item contained in the program or bound service program. Each record contains the following information:
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Number of activation group data exports |
| UBin(4) | ||||||||
8 | 8 |
| Reserved (binary 0) |
| Char(8) | ||||||||
16 | 10 |
| Array of activation group data exports |
| [*] Char(16) | ||||||||
16 | 10 |
| String ID |
| UBin(4) | ||||||||
20 | 14 |
| Strength of data item |
| Char(1) | ||||||||
|
|
|
| ||||||||||
21 | 15 |
| Reserved (binary 0) |
| Char(3) | ||||||||
24 | 18 |
| Length of data item |
| UBin(4) | ||||||||
28 | 1C |
| Reserved (binary 0) |
| Char(4) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be (N+1)*16, where N is the number of activation group data exports contained in the bound program or bound service program. | ||||||
Number of activation group data exports | The number of activation group data exports contained in the bound program or bound service program. | ||||||
Array of activation group data exports | This array contains one record for each data item contained in the program or bound service program. Each record contains the following information:
|
Specific bound program information can only be materialized for bound programs,
and not for bound service programs.
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Reserved (binary 0) |
| Char(12) | ||||||||
16 | 10 |
| Program entry procedure information |
| Char(16) | ||||||||
16 | 10 |
| Module number containing program entry procedure |
| UBin(4) | ||||||||
20 | 14 |
| Program entry procedure string ID |
| UBin(4) | ||||||||
24 | 18 |
| Minimum parameters |
| UBin(2) | ||||||||
26 | 1A |
| Maximum parameters |
| UBin(2) | ||||||||
28 | 1C |
| Reserved (binary 0) |
| Char(4) | ||||||||
32 | 20 |
| Reserved (binary 0) |
| Char(32) | ||||||||
64 | 40 |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will always be a constant 64. |
Module number containing program entry procedure | This is the number, in the bound modules information, of the module which contains the program entry procedure for this bound program. |
Program entry procedure string ID | This is the string ID for the name of this program entry procedure. |
Minimum parameters | This is the minimum number of parameters that the program entry procedure can accept. |
Maximum parameters | This is the maximum number of parameters that the program entry procedure can accept. |
Signatures information can only be materialized for bound
service programs, and not for bound programs.
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Number of signatures contained in the program |
| UBin(4) | ||||||||
8 | 8 |
| Reserved (binary 0) |
| Char(8) | ||||||||
16 | 10 |
| Array of signatures |
| [*] Char(16) | ||||||||
16 | 10 |
| Signature |
| Char(16) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be (N+1)*16, where N is the number of signatures contained in the program. | ||
Number of signatures contained in the program | This is the number of signatures contained in the program. | ||
Array of signatures | This array contains one record for each signature contained in the program. Each record contains the following information. The first record contains the current signature.
|
Exported program procedure information can only be materialized for bound
service programs, and not for bound programs.
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Number of exported procedures |
| UBin(4) | ||||||||
8 | 8 |
| Reserved (binary 0) |
| Char(8) | ||||||||
16 | 10 |
| Array of program exports |
| [*] Char(16) | ||||||||
16 | 10 |
| String ID for procedure export |
| UBin(4) | ||||||||
20 | 14 |
| Export number |
| UBin(4) | ||||||||
24 | 18 |
| Procedure parameter mask |
| Char(2) | ||||||||
26 | 1A |
| Originating module number |
| UBin(2) | ||||||||
28 | 1C |
| Reserved (binary 0) |
| Char(4) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be (N+1)*16, where N is the number of exported procedures. | ||||||||
Number of exported procedures | This is the number of procedures exported from the service program. | ||||||||
Array of program exports | This array contains one record for each procedure exported from the service program. Each record contains the following information:
|
Exported program data information can only be materialized for bound
service programs, and not for bound programs.
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Number of exported data items |
| UBin(4) | ||||||||
8 | 8 |
| Reserved (binary 0) |
| Char(8) | ||||||||
16 | 10 |
| Array of data exports |
| [*] Char(16) | ||||||||
16 | 10 |
| String ID for data export |
| UBin(4) | ||||||||
20 | 14 |
| Export number |
| UBin(4) | ||||||||
24 | 18 |
| Data item size |
| UBin(4) | ||||||||
28 | 1C |
| Reserved (binary 0) |
| Char(4) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be (N+1)*16, where N is the number of exported data items. | ||||||
Number of exported data items | This is the number of data items exported from the service program. | ||||||
Array of data exports | This array contains one record for each data item exported from the service program. Each record contains the following information:
|
Offset | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||||||||||
4 | 4 |
| Reserved |
| Char(12) | ||||||||||||||||
16 | 10 |
| Reserved |
| Char(276) | ||||||||||||||||
|
|
|
| ||||||||||||||||||
292 | 124 |
| Coded character set identifier |
| UBin(2) | ||||||||||||||||
294 | 126 |
| Data required for machine retranslation |
| Char(1) | ||||||||||||||||
294 | 126 |
| All data required for machine retranslation is present |
| Bit 0 | ||||||||||||||||
|
|
|
| ||||||||||||||||||
294 | 126 |
| Reserved (binary 0) |
| Bits 1-7 | ||||||||||||||||
295 | 127 |
| Reserved |
| Char(9) | ||||||||||||||||
304 | 130 |
| Creation target version |
| Char(2) | ||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||
306 | 132 |
| Language version |
| Char(2) | ||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||
308 | 134 |
| Version on which creation occurred |
| Char(2) | ||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||
310 | 136 |
| Earliest version |
| Char(2) | ||||||||||||||||
|
|
|
All versions are represented as 16 bit values mapped as follows.
| ||||||||||||||||||
312 | 138 |
| Reserved |
| Char(16) | ||||||||||||||||
328 | 148 |
| Number of secondary associated spaces |
| UBin(4) | ||||||||||||||||
332 | 14C |
| Reserved |
| Char(16) | ||||||||||||||||
348 | 15C |
| Reserved |
| Char(2) | ||||||||||||||||
|
|
|
| ||||||||||||||||||
350 | 15E |
| Module state |
| UBin(2) | ||||||||||||||||
|
|
|
| ||||||||||||||||||
352 | 160 |
| Compiler name |
| Char(20) | ||||||||||||||||
372 | 174 |
| Program entry procedure |
| Char(16) | ||||||||||||||||
372 | 174 |
| Program entry procedure attributes |
| Char(4) | ||||||||||||||||
372 | 174 |
| Program entry procedure exists |
| Bit 0 | ||||||||||||||||
|
|
|
| ||||||||||||||||||
372 | 174 |
| Reserved (binary 0) |
| Bits 1-31 | ||||||||||||||||
376 | 178 |
| Program entry procedure dictionary ID |
| UBin(4) | ||||||||||||||||
380 | 17C |
| Program entry procedure string ID |
| UBin(4) | ||||||||||||||||
384 | 180 |
| Program entry procedure minimum parms |
| UBin(2) | ||||||||||||||||
386 | 182 |
| Program entry procedure maximum parms |
| UBin(2) | ||||||||||||||||
388 | 184 |
| Module application profiling attributes |
| Char(1) | ||||||||||||||||
|
|
|
| ||||||||||||||||||
388 | 184 |
| Hooks for application profiling are present |
| Bit 0 | ||||||||||||||||
|
|
|
| ||||||||||||||||||
388 | 184 |
| Basic block reordering attempted |
| Bit 1 | ||||||||||||||||
|
|
|
| ||||||||||||||||||
388 | 184 |
| Reserved (binary 0) |
| Bits 2-7 | ||||||||||||||||
389 | 185 |
| Module teraspace attributes |
| Char(1) | ||||||||||||||||
389 | 185 |
| Module teraspace capable |
| Bit 0 | ||||||||||||||||
|
|
|
| ||||||||||||||||||
389 | 185 |
| Module automatic and static storage location |
| Bits 1-2 | ||||||||||||||||
|
|
|
| ||||||||||||||||||
389 | 185 |
| Reserved (binary 0) |
| Bits 3-7 | ||||||||||||||||
390 | 186 |
| Reserved |
| Char(122) | ||||||||||||||||
512 | 200 |
| --- End --- |
|
|
Length in bytes of materialization | This is the number of bytes materialized. For the general module information this will always be a constant 512. | ||||||||||
Coded character set identifier | The CCSID defines the code page of the symbols in the string directory. | ||||||||||
Creation target version | This is the version of the operating system for which the module object was created. | ||||||||||
Data required for machine retranslation | This indicates whether the data required for machine retranslation is present. This data can be present even if the encapsulated observability attributes indicated the component is not present. | ||||||||||
Language version | This is the earliest version of the operating system on which language used will allow the module object to be saved. | ||||||||||
Version on which creation occurred | This is the version of the operating system that was running on the system where the module object was created. | ||||||||||
Earliest version | This is the earliest version of the operating system for which the machine will allow the module object to be saved. | ||||||||||
Number of secondary associated spaces | This is the number of secondary associated spaces currently associated with the object. | ||||||||||
Module state | This is the state of the module object. | ||||||||||
Compiler name | This identifies the compiler which translated the user's source language. | ||||||||||
Program entry procedure | This identifies the program entry procedure if one is present in the module.
| ||||||||||
Module application profiling attributes | This bit mapped field identifies the application profiling attributes of the module. The hooks for application profiling are present field specifies whether the module is ready for application profiling data collection when it is bound into a program. The basic block reordering attempted field specifies whether reordering of the basic blocks within the procedures of this module has been attempted. To determine which procedures have basic blocks reordered see the procedure basic block attributes under the procedure definitions. | ||||||||||
Module teraspace attributes | This bit mapped field identifies the teraspace attributes of the module. The module teraspace capable field specifies whether or not the module is allowed to use teraspace at run time. The module automatic and static storage location field indicates where the automatic and static storage for this module will be allocated at run time, when the module is bound into a program. The possible values are single level store, teraspace, or either single level store or teraspace, depending upon the activation group into which the program is activated. |
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Length in bytes of materialization |
| UBin(4) | ||||||||
4 | 4 |
| Reserved (binary 0) |
| Char(12) | ||||||||
16 | 10 |
| String pool |
| Char(*) | ||||||||
16 | 10 |
| Length of the string |
| UBin(4) | ||||||||
20 | 14 |
| String |
| Char(*) | ||||||||
* | * |
| --- End --- |
|
|
Length in bytes of materialization | The number of bytes materialized. This will be 16 + the length of the string pool. |
String pool | A memory area containing the strings defined for this module. It can be of any length addressable by a UBin(4). It contains a series of strings and lengths. String IDs specified in other materialized components can be used as indexes into this string pool. |
Length of string | The length of the next string. This field contains the length of the string only, and does not include the length of the length field, itself. The length field of a string is not subject to alignment considerations. |
String | Character buffer which contains one string. Its length is defined by the length field. |
The format of the materialized module copyright strings is the same as for the materialized program copyright strings.
This instruction supports setting of the optional reason code field in the exception data which can be retrieved when the template value invalid exception is signaled. When the first byte of the reason code is not zero, the exception is being signaled because one of the materialization receivers is not valid.
00 | Bound Program Materialization Template
(pointed to by operand 1 of this instruction)
| ||||||||||||
0n | nth materialization request is not valid.
|
06 Addressing
08 Argument/Parameter
0A Authorization
10 Damage Encountered
1A Lock State
1C Machine-Dependent
20 Machine Support
22 Object Access
24 Pointer Specification
2E Resource Control Limit
36 Space Management
38 Template Specification
44 Protection Violation
(1) Referential extensions are data streams that are not included in the creation templates, but are pointed to by a space pointer in the template. This also includes the module creation template extension.
(2) The items that fall into this category are general bound program information, bound program limits, specific bound program information, specific bound service program information, general module information, bound program string directory component, module string directory component and module copyright strings.
(3) The items which fall into this category are bound service programs information, bound modules information, signatures information, program copyright strings, exported program procedure information, activation group data imports, activation group data exports, and exported program data information.
(4) A composite version is defined to be the latest version, in time, of all of the versions comprising the composite. Given back-level compatibility, this would be the earliest version of the operating system on which all of the comprising versions would be compatible.