Set System Pointer from Pointer (SETSPFP)

Instruction Syntax

Op Code (Hex) Operand 1 Operand 2
0032 Receiver Source pointer
Operand 1: System pointer.

Operand 2: System pointer, space pointer, data pointer, instruction pointer or label pointer.

Bound Program Access
Built-in number for SETSPFP is 142.
SETSPFP (
         source_pointer   : system pointer OR
                            data pointer OR
                            space pointer(16) OR
                            label pointer
) :   system pointer /* receiver */
 
The source pointer operand corresponds to operand 2 on the SETSPFP operation.  The return value corresponds to operand 1 after the function completes. 

Description:

This instruction returns a system pointer to the system object addressed by the supplied pointer.

If operand 2 is a system pointer, then a system pointer addressing the same object is returned in operand 1 containing the same authority as the input pointer.

If operand 2 is a space pointer or a data pointer, then a system pointer addressing the system object associated with the space addressed by operand 2 is returned in operand 1. The system object associated with machine supplied spaces used for automatic, static, activation group-based heap space and handle-based heap space storage is the process control space (PCS) object with which they are affiliated. The system object associated with a teraspace is the PCS object used by the process which contains the currently executing thread.

If operand 2 is an instruction pointer or label pointer, then a system pointer addressing the program system object that contains the instruction or label addressed by operand 2 is returned in operand 1.

If operand 2 is an unresolved system pointer or data pointer, the pointer is resolved first.

Authorization Required

  • Execute
    • Contexts referenced for address resolution

Lock Enforcement

  • Materialization
    • Contexts referenced for address resolution

Exceptions

  • 06 Addressing
    • 0601 Space Addressing Violation
    • 0602 Boundary Alignment
    • 0603 Range
    • 0604 External Data Object Not Found
  • 08 Argument/Parameter
    • 0801 Parameter Reference Violation
  • 0A Authorization
    • 0A01 Unauthorized for Operation
  • 10 Damage Encountered
    • 1002 Machine Context Damage State
    • 1004 System Object Damage State
    • 1005 Authority Verification Terminated Due to Damaged Object
    • 1044 Partial System Object Damage
  • 1A Lock State
    • 1A01 Invalid Lock State
  • 1C Machine-Dependent
    • 1C03 Machine Storage Limit Exceeded
  • 20 Machine Support
    • 2002 Machine Check
    • 2003 Function Check
  • 22 Object Access
    • 2201 Object Not Found
    • 2202 Object Destroyed
    • 2203 Object Suspended
    • 2207 Authority Verification Terminated Due to Destroyed Object
    • 2208 Object Compressed
    • 220B Object Not Available
  • 24 Pointer Specification
    • 2401 Pointer Does Not Exist
    • 2402 Pointer Type Invalid
  • 2E Resource Control Limit
    • 2E01 User Profile Storage Limit Exceeded
  • 32 Scalar Specification
    • 3201 Scalar Type Invalid
  • 36 Space Management
    • 3601 Space Extension/Truncation
  • 44 Protection Violation
    • 4401 Object Domain or Hardware Storage Protection Violation
    • 4402 Literal Values Cannot Be Changed