Op Code (Hex) | Operand 1 | Operand 2 | Operand 3 | |
---|---|---|---|---|
013B | Receiver | User profile or User profile extension | Materialization options/template |
Operand 1: Space pointer
Operand 2: System pointer or open pointer
Operand 3: Character scalar
Bound program access |
---|
|
This instruction materializes the identification and the system pointers to all or selected system objects that are privately owned and/or authorized by a specified user profile or user profile extension, and/or for which the profile is the primary group. For the user profile or user profile extension (operand 2), the materialization options (operand 3) specify object selection criteria and the format and location of the object materialization data. The receiver space (operand 1) always indicates the number of objects materialized, and contains the object materialization data unless the materialization options specify an independent index to contain the data.
A space pointer machine object may not be specified for operand 2.
When format of operand 3 is operand 3 is a Char(1) scalar, operand 3 is viewed as a Char(1) scalar. This option does not permit object selection by type and subtype, does not allow a continuation point to be specified, and returns all object materialization data in the receiver (operand 1). The short template header format is used.
Following are the
valid operand 3 values which may be used with the short template
header format (operand 1):
Value (hex) | Meaning |
---|---|
07 | Verify user profile integrity for all authorized, owned objects, and objects for which profile is the primary group. |
11 | Materialize count of owned objects. |
12 | Materialize count of authorized objects. |
13 | Materialize count of all authorized and owned objects. |
14 | Materialize count of objects for which profile is the primary group. |
15 | Materialize count of owned objects and objects for which profile is the primary group. |
16 | Materialize count of authorized objects and objects for which profile is the primary group. |
17 | Materialize count of all authorized, owned objects, and objects for which profile is the primary group. |
21 | Materialize identification of owned objects using short description entry format. |
22 | Materialize identification of authorized objects using short description entry format. |
23 | Materialize identification of all authorized and owned objects using short description entry format. |
24 | Materialize identification of objects for which profile is the primary group using short description entry format. |
25 | Materialize identification of owned objects and objects for which profile is the primary group using short description entry format. |
26 | Materialize identification of authorized objects and objects for which profile is the primary group using short description entry format. |
27 | Materialize identification of all authorized, owned objects, and objects for which profile is the primary group using short description entry format. |
31 | Materialize identification of owned objects using long description entry format. |
32 | Materialize identification of authorized objects using long description entry format. |
33 | Materialize identification of all authorized and owned objects using long description entry format. |
34 | Materialize identification of objects for which profile is the primary group using long description entry format. |
35 | Materialize identification of owned objects and objects for which profile is the primary group using long description entry format. |
36 | Materialize identification of authorized objects and objects for which profile is the primary group using long description entry format. |
37 | Materialize identification of all authorized, owned objects, and objects for which profile is the primary group using long description entry format. |
Following are the valid operand 3 values which may be used with
the long template header
formats (operand 1):
Value (hex) | Meaning |
---|---|
51-57 (D1-D7) | These long template header materialization options are the same as the short template header materialization options 11-17 (hex). |
61-67 (E1-E7) | These long template header materialization options are the same as the short template header materialization options 21-27 (hex). |
71-77 (F1-F7) | These long template header materialization options are the same as the short template header materialization options 31-37 (hex) except that the context extension is materialized for each object as well. |
Options 51-57, 61-67, and 71-77 use the long template header format 1.
Options D1-D7, E1-E7, F1-F7 use the variable-length materialization option template and can use either the long template header format 1 or the long template header format 2, which has larger numbers in it. The header format is selectable by the format of template header field.
When format of operand 3 is set to operand 3 is
variable length,
operand 3 is viewed as variable-length, must be 16-byte aligned
in the space, and has the following format:
Offset | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||
0 | 0 |
| Materialization options |
| Char(1) | ||||||||||||
|
|
|
Valid values are hex 91-97, A1-A7, B1-B7, D1-D7,
E1-E7, and F1-F7. They have the same meanings
as the corresponding values with format of operand 3
set to binary 0 (i.e., hex 91 has the same meaning as hex 11).
| ||||||||||||||
0 | 0 |
| Format of operand 3 |
| Bit 0 | ||||||||||||
|
|
|
| ||||||||||||||
0 | 0 |
| Materialization identifier |
| Bits 1-7 | ||||||||||||
1 | 1 |
| Materialization flags |
| Char(1) | ||||||||||||
1 | 1 |
| Restrict information scope |
| Bit 0 | ||||||||||||
|
|
|
This is an input bit which only has meaning
when materialization data is being returned in the
operand 1 receiver template.
When there is more
data to be materialized than can be contained in
the template, then when this bit is set to binary 1, the number of bytes available for materialization,
the number of objects owned by user profile,
the number of objects for which the profile is
the primary group, and the number of objects privately
authorized to user profile output fields
are restricted
to reflect only the information returned in the
template; when set to binary 0, the output fields reflect the
total amount of materialization data available,
even though the template may not be large enough
to contain it all.
| ||||||||||||||
1 | 1 |
| More materialization data available |
| Bit 1 | ||||||||||||
|
|
|
This output bit has meaning only when
materialization data is being returned in the
operand 1 receiver template. When set to binary 1, it
indicates that objects exist beyond those for which
materialization data was returned in the template;
when set to binary 0 it indicates the end of the objects was
reached.
| ||||||||||||||
1 | 1 |
| Continuation point specified |
| Bit 2 | ||||||||||||
|
|
|
This is an input bit. When set to binary 1, it indicates
that a continuation point is specified in the continuation point field; when set to binary 0, continuation
processing is ignored.
| ||||||||||||||
1 | 1 |
| Avoid storage correction |
| Bit 3 | ||||||||||||
|
|
|
This is an input bit. When set to binary 1, it indicates
that storage correction is avoided on owned objects. When
set to binary 0, storage correction is performed as required.
| ||||||||||||||
1 | 1 | Format of template header | Bit 4 | ||||||||||||||
| |||||||||||||||||
1 | 1 | Reserved (binary 0) | Bits 5-7
| ||||||||||||||
2 | 2 |
| Reserved (binary 0) |
| Char(30) | ||||||||||||
32 | 20 |
| Independent Index pointer |
| System pointer | ||||||||||||
|
|
|
If the pointer does not exist, the instruction
returns all object materialization data in the
receiver (operand 1). Otherwise it returns
only the template header in the receiver and
returns the object materialization data in the
independent index.
| ||||||||||||||
48 | 30 |
| Continuation point |
| Char(16) or System pointer | ||||||||||||
|
|
|
If the continuation point specified bit is on, when the instruction begins, if this field
contains a system pointer or the storage form
of a system pointer, then materialization data
is returned for objects found in the profile
following the object identified by the
continuation point; otherwise, materialization
data is returned beginning with the object which
is logically first.
| ||||||||||||||
64 | 40 |
| Object type/subtype range array |
| Bin(2) | ||||||||||||
|
|
|
Indicates the number of object type/subtype
ranges specified in the array immediately
following. If zero, objects of all types
and subtypes are materialized. If larger than
zero, only objects included in one or more of
the type/subtype ranges specified in the array
are materialized.
| ||||||||||||||
66 | 42 |
| Object type/subtype array |
| [*] Char(4) | ||||||||||||
|
|
|
An array of object type/subtype ranges
qualifying the objects materialized. Each
array element represents a range of object
type/subtypes and has the following format:
| ||||||||||||||
66 | 42 |
| Start of range |
| Char(2) | ||||||||||||
66 | 42 |
| Object type code |
| Char(1) | ||||||||||||
67 | 43 |
| Object subtype code |
| Char(1) | ||||||||||||
68 | 44 |
| End of range |
| Char(2) | ||||||||||||
68 | 44 |
| Object type code |
| Char(1) | ||||||||||||
69 | 45 |
| Object subtype code |
| Char(1) | ||||||||||||
* | * |
| --- End --- |
|
|
All materialization options with the low order bit on (except for option hex 07) also verify and correct the user profile's system storage utilization (storage used on the system ASP and basic ASPs) and varied on independent ASP storage utilization. The corrected storage utilization is not returned by MATAUOBJ and the MATUP instruction must be used to obtain the storage utilization values. The storage utilization is not corrected if either of the following are true:
The avoid storage correction field indicates whether or not system storage utilization for the user profile should be verified or corrected at this time. This may improve performance significantly when avoid storage correction is set to binary 1.
The order of materialization is owned objects, objects privately authorized to the user profile, and objects for which the profile is the primary group (as specified in the materialization options operand). No authorizations are stored in the system pointers that are returned.
The template identified by operand 1 must be 16-byte aligned in the space. For options hex 07 through hex 37 and hex 91 through hex B7, the short template header is materialized. It has the following format:
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Materialization size specification |
| Char(8) | ||||||||
0 | 0 |
| Number of bytes provided for materialization |
| Bin(4) | ||||||||
4 | 4 |
| Number of bytes available for materialization |
| Bin(4) | ||||||||
8 | 8 |
| Number of objects owned by user profile |
| Bin(2) | ||||||||
10 | A |
| Number of objects privately authorized to user profile |
| Bin(2) | ||||||||
12 | C |
| Number of objects for which the user profile is the primary group |
| Bin(2) | ||||||||
14 | E |
| Reserved (binary 0) |
| Char(2) | ||||||||
16 | 10 |
| --- End --- |
|
|
For options hex 51 through 77, the long template header format 1 is used. The long template header format 1 is also used for options hex D1 through hex F7 if format of template header is set to binary 0. It has the following format:
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Materialization size specification |
| Char(8) | ||||||||
0 | 0 |
| Number of bytes provided for materialization |
| Bin(4) | ||||||||
4 | 4 |
| Number of bytes available for materialization |
| Bin(4) | ||||||||
8 | 8 |
| Number of objects owned by user profile |
| Bin(4) | ||||||||
12 | C |
| Number of objects privately authorized to user profile |
| Bin(4) | ||||||||
|
|
|
The following header information is only provided when an option
requesting primary group is selected (for example hex 54 - 57,
64 - 67 and 74 - 77 etc).
| ||||||||||
16 | 10 |
| Number of objects for which the profile is the primary group |
| Bin(4) | ||||||||
20 | 14 |
| Reserved (binary 0) |
| Char(12) | ||||||||
32 | 20 |
| --- End --- |
|
|
For options hex D1 through F7 that have the format of template header set to binary 1, the following long template header format 2 will be used. It has the following format:
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex | Field Name | Data Type and Length | ||||||||||
0 | 0 | Materialization size specification | Char(8) | ||||||||||
0 | 0 | Number of bytes provided for materialization | Bin(4) | ||||||||||
4 | 4 | Number of bytes available for materialization | Bin(4) | ||||||||||
8 | 8 | Number of objects owned by user profile | UBin(8) | ||||||||||
16 | 10 | Number of objects privately authorized to user profile | UBin(8) | ||||||||||
The following header information is only provided when an option requesting primary group is selected (for example hex D4 - D7, E4 - E7 and F4 - F7 etc). | |||||||||||||
24 | 18 | Number of objects for which the profile is the primary group | UBin(8) | ||||||||||
32 | 20 | Reserved (binary 0) | Char(32) | ||||||||||
64 | 40 | --- End --- |
The first 4 bytes of the materialization identify the total number of bytes provided for use by the instruction. This value is supplied as input to the instruction and is not modified by the instruction. A value of less than 8 causes the materialization length invalid (hex 3803) exception to be signaled.
The second 4 bytes of the materialization identify the total number of bytes available to be materialized. The instruction materializes as many bytes as can be contained in the area specified as the receiver. If the byte area identified by the receiver is greater than that required to contain the information requested, then the excess bytes are unchanged. No exceptions (other than the materialization length invalid (hex 3803) exception) are signaled in the event that the receiver contains insufficient area for the materialization. If the restrict information scope flag is binary 1, then the field contains the number of bytes materialized, rather than the number of bytes available to be materialized. The number of objects owned by user profile, the number of objects for which the profile is the primary group, and the number of objects privately authorized to user profile will contain the appropriate counts for each type of authorized/owned object. For options greater than hex 07, the authorized/owned objects are verified and these counts are corrected. For option hex 07, the counts are not verified.
If the restrict information scope flag is binary 1, then the number of objects owned by user profile and the number of objects privately authorized by user profile fields reflect the number of objects for which complete materialization data is returned, rather than the total number of such objects.
If no description is requested in the materialization options
field, the above
constitutes the information available for materialization.
If a description
(short, long, or long with context extension)
is requested by the materialization options field, a description entry is present
for each object materialized into the receiver
(assuming it is of
sufficient size) or into the independent index. Object materialization
data is in one of the following formats
depending on the materialization
options and the object into which it is materialized:
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Short description entry materialized into receiver |
| Char(32) | ||||||||
0 | 0 |
| Object type code |
| Char(1) | ||||||||
1 | 1 |
| Object subtype code |
| Char(1) | ||||||||
2 | 2 |
| Private authorization |
| Char(2) | ||||||||
4 | 4 |
| Reserved (binary 0) |
| Char(10) | ||||||||
14 | E |
| Independent ASP number |
| Char(2) | ||||||||
16 | 10 |
| Object pointer |
| System pointer | ||||||||
32 | 20 |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Long description entry materialized into receiver |
| Char(64) | ||||||||
0 | 0 |
| Object type code |
| Char(1) | ||||||||
1 | 1 |
| Object subtype code |
| Char(1) | ||||||||
2 | 2 |
| Object name |
| Char(30) | ||||||||
32 | 20 |
| Private authorization |
| Char(2) | ||||||||
34 | 22 |
| Public authorization |
| Char(2) | ||||||||
36 | 24 |
| Reserved (binary 0) |
| Char(10) | ||||||||
46 | 2E |
| Independent ASP number |
| Char(2) | ||||||||
48 | 30 |
| Object pointer |
| System pointer | ||||||||
64 | 40 |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Long description entry with context extension materialized into receiver |
| Char(112) | ||||||||
0 | 0 |
| Object type code |
| Char(1) | ||||||||
1 | 1 |
| Object subtype code |
| Char(1) | ||||||||
2 | 2 |
| Object name |
| Char(30) | ||||||||
32 | 20 |
| Private authorization |
| Char(2) | ||||||||
34 | 22 |
| Public authorization |
| Char(2) | ||||||||
36 | 24 |
| Reserved (binary 0) |
| Char(10) | ||||||||
46 | 2E |
| Independent ASP number |
| Char(2) | ||||||||
48 | 30 |
| Object pointer |
| System pointer | ||||||||
64 | 40 |
| Context type code |
| Char(1) | ||||||||
65 | 41 |
| Context subtype code |
| Char(1) | ||||||||
66 | 42 |
| Context name |
| Char(30) | ||||||||
96 | 60 |
| Context pointer |
| System pointer | ||||||||
112 | 70 |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Short description entry materialized into independent index |
| Char(32) | ||||||||
0 | 0 |
| Entry type code |
| Char(1) | ||||||||
|
|
|
| ||||||||||
1 | 1 |
| Object type code |
| Char(1) | ||||||||
2 | 2 |
| Object subtype code |
| Char(1) | ||||||||
3 | 3 |
| Private authorization |
| Char(2) | ||||||||
5 | 5 |
| Reserved (binary 0) |
| Char(9) | ||||||||
14 | E |
| Independent ASP number |
| Char(2) | ||||||||
16 | 10 |
| Object pointer |
| System pointer | ||||||||
32 | 20 |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Long description entry materialized into independent index |
| Char(64) | ||||||||
0 | 0 |
| Entry type code |
| Char(1) | ||||||||
|
|
|
| ||||||||||
1 | 1 |
| Object type code |
| Char(1) | ||||||||
2 | 2 |
| Object subtype code |
| Char(1) | ||||||||
3 | 3 |
| Object name |
| Char(30) | ||||||||
33 | 21 |
| Private authorization |
| Char(2) | ||||||||
35 | 23 |
| Reserved (binary 0) |
| Char(2) | ||||||||
37 | 25 |
| Public authorization |
| Char(2) | ||||||||
39 | 27 |
| Reserved (binary 0) |
| Char(7) | ||||||||
46 | 2E |
| Independent ASP number |
| Char(2) | ||||||||
48 | 30 |
| Object pointer |
| System pointer | ||||||||
64 | 40 |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Long description entry with context extension materialized into independent index |
| Char(112) | ||||||||
0 | 0 |
| Entry type code |
| Char(1) | ||||||||
|
|
|
| ||||||||||
1 | 1 |
| Context type code |
| Char(1) | ||||||||
2 | 2 |
| Context subtype code |
| Char(1) | ||||||||
3 | 3 |
| Context name |
| Char(30) | ||||||||
33 | 21 |
| Object type code |
| Char(1) | ||||||||
34 | 22 |
| Object subtype code |
| Char(1) | ||||||||
35 | 23 |
| Object name |
| Char(30) | ||||||||
65 | 41 |
| Private authorization |
| Char(2) | ||||||||
67 | 43 |
| Reserved (binary 0) |
| Char(2) | ||||||||
69 | 45 |
| Public authorization |
| Char(2) | ||||||||
71 | 47 |
| Reserved (binary 0) |
| Char(7) | ||||||||
78 | 4E |
| Independent ASP number |
| Char(2) | ||||||||
80 | 50 |
| Object pointer |
| System pointer | ||||||||
96 | 60 |
| Context pointer |
| System pointer | ||||||||
112 | 70 |
| --- End --- |
|
|
Following is the format of the authorization information:
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Private authorization |
| Char(2) | ||||||||
|
|
|
(1 = authorized)
| ||||||||||
0 | 0 |
| Object control |
| Bit 0 | ||||||||
0 | 0 |
| Object management |
| Bit 1 | ||||||||
0 | 0 |
| Authorized pointer |
| Bit 2 | ||||||||
0 | 0 |
| Space authority |
| Bit 3 | ||||||||
0 | 0 |
| Retrieve |
| Bit 4 | ||||||||
0 | 0 |
| Insert |
| Bit 5 | ||||||||
0 | 0 |
| Delete |
| Bit 6 | ||||||||
0 | 0 |
| Update |
| Bit 7 | ||||||||
0 | 0 |
| Ownership (1 = yes) |
| Bit 8 | ||||||||
0 | 0 |
| Excluded |
| Bit 9 | ||||||||
0 | 0 |
| Authority list management |
| Bit 10 | ||||||||
0 | 0 |
| Execute |
| Bit 11 | ||||||||
0 | 0 |
| Alter |
| Bit 12 | ||||||||
0 | 0 |
| Reference |
| Bit 13 | ||||||||
0 | 0 |
| Reserved (binary 0) |
| Bits 14-15 | ||||||||
2 | 2 |
| Public authorization |
| Char(2) | ||||||||
|
|
|
(1 = authorized)
| ||||||||||
2 | 2 |
| Object control |
| Bit 0 | ||||||||
2 | 2 |
| Object management |
| Bit 1 | ||||||||
2 | 2 |
| Authorized pointer |
| Bit 2 | ||||||||
2 | 2 |
| Space authority |
| Bit 3 | ||||||||
2 | 2 |
| Retrieve |
| Bit 4 | ||||||||
2 | 2 |
| Insert |
| Bit 5 | ||||||||
2 | 2 |
| Delete |
| Bit 6 | ||||||||
2 | 2 |
| Update |
| Bit 7 | ||||||||
2 | 2 |
| Reserved (binary 0) |
| Bit 8 | ||||||||
2 | 2 |
| Excluded |
| Bit 9 | ||||||||
2 | 2 |
| Authority list management |
| Bit 10 | ||||||||
2 | 2 |
| Execute |
| Bit 11 | ||||||||
2 | 2 |
| Alter |
| Bit 12 | ||||||||
2 | 2 |
| Reference |
| Bit 13 | ||||||||
2 | 2 |
| Reserved (binary 0) |
| Bits 14-15 | ||||||||
4 | 4 |
| --- End --- |
|
|
When the more materialization data available flag is binary 1, the pointer to the object within the last entry in the operand 1 receiver template may be specified as the continuation point on a subsequent invocation of this instruction, to cause materialization to continue, starting with the "logically next" object. To determine whether the continuation point is within the owned or authorized objects, the ownership bit in the private authorizations of the last materialized object may be tested. This instruction does not guarantee an atomic snapshot of the user profile or user profile extension across a continuation request.
The following considerations apply when object materialization data is returned in an independent index:
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
32 Scalar Specification
36 Space Management
38 Template Specification
44 Protection Violation