Resolve System Pointer (RSLVSP)


Op Code (Hex) Operand 1 Operand 2 Operand 3 Operand 4
0164 Pointer for addressability to object Resolve options Context through which object is to be located Authority to be set (1)

Operand 1: System pointer.

Operand 2: Character(34, 128) scalar or null.

Operand 3: System pointer or null.

Operand 4: Character(2) scalar or null.

Bound program access

Built-in number for RSLVSP is 30. RSLVSP ( pointer_for_addressability_to_object : address of system pointer resolve_options : address OR null operand context_through_which_object_is_to_be_located : address of system pointer OR null operand authority_to_be_set : address OR null operand )

Built-ins
_RSLVSP1 (
        pointer_for_addressability_to_object            : address of system pointer
)
 
 
_RSLVSP2 (
        pointer_for_addressability_to_object            : address of system pointer
        resolve_options                                 : address
 
)
 
_RSLVSP3 (
        pointer_for_addressability_to_object            : address of system pointer
        context_through_which_object_is_to_be_located   : address of system pointer 
)
 
_RSLVSP4 (
        pointer_for_addressability_to_object            : address of system pointer
        resolve_options                                 : address
        context_through_which_object_is_to_be_located   : address of system pointer 
 
)
 
_RSLVSP5 (
        pointer_for_addressability_to_object            : address of system pointer
        authority_to_be_set                             : address
 
)
 
_RSLVSP6 (
        pointer_for_addressability_to_object            : address of system pointer
        resolve_options                                 : address
        authority_to_be_set                             : address
 
)
 
_RSLVSP7 (
        pointer_for_addressability_to_object            : address of system pointer
        context_through_which_object_is_to_be_located   : address of system pointer OR
        authority_to_be_set                             : address
 
)
_RSLVSP8 (
        pointer_for_addressability_to_object            : address of system pointer
        resolve_options                                 : address
        context_through_which_object_is_to_be_located   : address of system pointer OR
        authority_to_be_set                             : address
 
)

Description

This instruction locates an object identified by a symbolic address and stores the object's addressability and authority (1) in a system pointer. A resolved system pointer is returned in operand 1 with addressability to a system object and the requested authority currently available to the thread for the object.

Note: The ownership flag is never set in the system pointer.

Operand 2 specifies the symbolic identification of the object to be located. Operand 3 identifies the context to be searched in order to locate the object. Operand 4 identifies the authority states to be set in the pointer. First, the instruction locates an object based on operands 1, 2 and 3. Then, the instruction sets the appropriate authority states in the system pointer. If the object is not found, and do not signal object not found exception is set to binary 0, then an object not found  (hex 2201) exception is signaled. If the object is not found, and do not signal object not found exception is set to binary 1, then the operand 1 pointer is set to a null pointer value and no exception is signaled.

The object to be located is either addressed through a machine context or a context object.

The following object types can only be addressed through the system ASP machine context (i.e. they cannot be addressed through an independent ASP machine context or a context object):

Hex 08 = User profile
Hex 10 = Logical unit description
Hex 11 = Network description
Hex 12 = Controller description
Hex 14 = Class of service description
Hex 15 = Mode description
Hex 16 = Network interface description
Hex 17 = Connection list
Hex 1D = Auxiliary server

The following object types can only be addressed through the system ASP machine context or an independent ASP machine context (i.e. they cannot be addressed through a context object):

Hex 04 = Context

Other object types are addressed through a context object, which may reside in the system ASP, basic ASP, or an ASP group.

No two context objects with the same name and subtype can exist within a given ASP group or within all basic ASPs and the system ASP (combined). Also, a context object in the system ASP or basic ASP cannot have the same name and subtype as a context in an ASP group. But context objects that are in different ASP groups may have the same name and subtype.

An ASP group is a set of independent ASPs that are configured such that they always vary on and off together.

The search for the object to be located proceeds as follows:

When a name space is used to resolve to an object, the method used to search the name space depends on the type of object being resolved to:

As described above, objects are located in a machine context, in a specified containing context object, or using a name resolution list of context objects. Issues regarding name spaces are now described for these cases. If an object cannot reside in an independent ASP machine context or a context object, then name spaces do not apply.

The following describes the instruction's function when operand 2 is null (or if the operand 2 template is extended and the field ignore object specification and authorization fields is set to 1). Note that operand 3 is always ignored in this case.

If operand 2 is not null, then the object identified by operand 2 is resolved. (But if the operand 2 template is extended and the field ignore object specification and authorization fields is set to binary 1, then the object identified by operand 2 is ignored. See the preceding section, starting with the phrase "The following describes the instruction's function when operand 2 is null...".) When the object identified by operand 2 is resolved, the instruction searches the context(s) specified by operand 3 and stores the resolved system pointer in operand 1.

The format of operand 2 is as follows:

Offset
Dec Hex
Field Name
Data Type and Length
0 0
Object specification
Char(32)
0 0
Type code
Char(1)
1 1
Subtype code
Char(1)
2 2
Object name
Char(30)
32 20
Required authorization (1 = required)
Char(2)
32 20
Object control
Bit 0
32 20
Object management
Bit 1
32 20
Authorized pointer
Bit 2
32 20
Space authority
Bit 3
32 20
Retrieve
Bit 4
32 20
Insert
Bit 5
32 20
Delete
Bit 6
32 20
Update
Bit 7
32 20
Ownership
Bit 8
32 20
Excluded
Bit 9
32 20
Authority list management
Bit 10
32 20
Execute
Bit 11
32 20
Alter
Bit 12
32 20
Reference
Bit 13
32 20
Reserved (binary 0)
Bit 14
32 20
Extended template
Bit 15



0 = The template is not extended
1 = The template is extended


34 22
--- End ---

The allowed type codes are as follows:

Hex 01 = Access group
Hex 02 = Program
Hex 03 = Module
Hex 04 = Context
Hex 06 = Byte string space
Hex 07 = Journal space
Hex 08 = User profile
Hex 09 = Journal port
Hex 0A = Queue
Hex 0B = Data space
Hex 0C = Data space index
Hex 0D = Cursor
Hex 0E = Index
Hex 0F = Commit block
Hex 10 = Logical unit description
Hex 11 = Network description
Hex 12 = Controller description
Hex 13 = Dump space
Hex 14 = Class of service description
Hex 15 = Mode description
Hex 16 = Network interface description
Hex 17 = Connection list
Hex 18 = Queue space
Hex 19 = Space
Hex 1A = Process control space
Hex 1B = Authority list
Hex 1C = Dictionary
Hex 1D = Auxiliary server
Hex 1E = Byte stream file
Hex 21 = Composite object group
Hex 23 = Transaction control structure

All other codes are reserved. If other codes are specified, they cause a scalar value invalid  (hex 3203) exception to be signaled. This instruction will not resolve to hidden contexts. If an attempt is made to resolve to a hidden context, and do not signal object not found exception is set to binary 0, then an object not found  (hex 2201) exception is signaled. If do not signal object not found exception is set to binary 1, then the operand 1 pointer is set to a null pointer value and no exception is signaled. A hidden context is denoted by the hidden attribute of a context. See the MATCTX instruction for additional details.

When resolving to an object that can reside in a context object, operand 3 identifies the context in which to locate the object identified by operand 2. If operand 3 is null, then the contexts identified in the name resolution list associated with the thread issuing this instruction are searched in the order in which they appear in the list. If operand 3 is not null, the system pointer specified must address a context, and only this context (and possible aliases for the context) are used to locate the object.

If the required authorization field in operand 2 is not set (all values set to 0), the instruction resolves the operand 1 system pointer to the first object encountered with the designated type code, subtype code, and object name without regard to the authorization currently available to the thread. If one or more authorization (or ownership) states are required (signified by binary 1's), the context is searched until an object is encountered with the designated type code, subtype code, object name, and the user profiles governing the thread's execution that have all the required authorization states.

If the bit extended template is set to binary 1, then the extended template is defined starting at offset 34 of the operand 2 template. The extended template is defined as follows:

Offset
Dec Hex
Field Name
Data Type and Length
34 22
Template version
Char(1)
35 23
Search method
Char(1)



Hex 00 = Search the thread's name space
Hex 01 = Search only for objects residing on the specified independent ASP
Hex 02 = Search only for objects residing on the ASP group containing the specified independent ASP
Hex 03 = Search only the ASP group of the name space


36 24
Options
Char(1)
36 24
Ignore object specification and authorization fields
Bit 0



1 = Ignore these values
0 = Use these values


36 24
Do not signal object not found exception
Bit 1



0 = Signal object not found  (hex 2201) exception if the object is not found
1 = Do not signal object not found  (hex 2201) exception if the object is not found


36 24
Reserved (binary 0)
Bits 2-7
37 25
Reserved (binary 0)
Char(7)
44 2C
Independent ASP number to search
Char(2)
46 2E
ASP number of context containing resolved object
Char(2)
48 30
Context containing the resolved object
System pointer
64 40
Reserved (binary 0)
Char(64)
128 80
--- End ---

The field template version identifies the version of the extended template. It must be set to hex 00.

The field search method determines how the name space is searched:

As stated above, if a resolve is done for an object type that can only be addressed through the system ASP machine context then only the system machine context is searched. When resolving to objects that can only reside in the system ASP machine context, the field search method must be set to hex 00 (if the template is extended). Otherwise a template value invalid  (hex 3801) exception is signaled.

For option hex 01 or hex 02, if a context address is provided in operand 3, then the context object must reside in the same ASP group as the specified independent ASP to search; otherwise an auxiliary storage pool number invalid  (hex 1C09) exception is signaled.

For option hex 01 or hex 02, execute authority is required for the device description for every independent ASP in the ASP group (the ASP group that contains the independent ASP number to search). Authority to a device description is checked only when the corresponding independent ASP is searched. Once an object is found, the remaining independent ASPs do not have to be searched.

For option hex 03, if a context address is provided in operand 3, then it must reference a context object in an ASP group of the current thread's name space or in the system ASP or basic ASP; otherwise an auxiliary storage pool number invalid  (hex 1C09) exception is signaled. If the context address refers to a context object in the system ASP or basic ASP, then only the alias contexts are searched.

When ignore object specification and authorization fields is set to binary 0, the object specification and required authorization will be used as defined above. If this field is set to binary 1, then the object specification and required authorization fields will be ignored, as if operand 2 were a null pointer.

When do not signal object not found exception is set to binary 0, an object not found  (hex 2201) exception will be signaled if the object is not found. If this field is set to binary 1, then an object not found  (hex 2201) exception will not be signaled if the object is not found, and the operand 1 pointer will be set to a null pointer value.

When an object is successfully resolved by this instruction, the field context containing the resolved object will contain a pointer to the context object in which the object was found. A null pointer value means the object was found in a machine context. The field ASP number of context containing resolved object indicates the ASP number on which the context containing the resolved object resides. This will be a basic ASP number or an independent ASP number. When ASP number of context containing resolved object is set to hex 00, it identifies the system ASP.

Once addressability has been set in the operand 1 pointer, operand 4 is used to determine which, if any, of the object authority states is to be set into the pointer. Only the object authority states correlating with bits 0 through 7 and 11, that is, object control through update and execute, can be set into the pointer. This restriction applies whether the authority mask controlling which authorities to set in the pointer comes from operand 4, operand 2, or the initial value for the system pointer.

If operand 4 is null, the object authority states required to locate the object are set in the operand 1 pointer. This required object authority is as specified in operand 2 or in the initial value for operand 1 if operand 2 is null (or if the operand 2 template is extended and the field ignore object specification and authorization fields is set to 1). If the thread does not currently have authorized pointer authority for the object, no authority is stored in the system pointer, and no exception is signaled.

If operand 2 is null (or if the operand 2 template is extended and the field ignore object specification and authorization fields is set to 1) and operand 4 is null and operand 1 is a resolved system pointer, the authority states in the pointer are not modified.

If operand 4 is not null, it specifies the object authority states to be set in the operand 1 system pointer. The format of operand 4 is as follows:

Offset
Dec Hex
Field Name
Data Type and Length
0 0
Requested authorization (1 = set authority)
Char(2)
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
Reserved (binary 0)
Bits 8-10
0 0
Execute
Bit 11
0 0
Alter (will be ignored)
Bit 12
0 0
Reference (will be ignored)
Bit 13
0 0
Reserved (binary 0)
Bits 14-15
2 2
--- End ---

The authority states set in the operand 1 system pointer are based on the following:

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

0A Authorization

  • 0A01 Unauthorized for Operation

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


Footnotes:

(1) Programs executing in user-state may not assign authority in the resulting system pointer. The value in operand 4 is ignored and no exception is raised.