Deactivate Program (DEACTPG)

Instruction Syntax

Op Code (Hex) Operand 1
0225 Program

Operand 1: System pointer or null.

Bound Program Access
Built-in number for DEACTPG is 33.
DEACTPG (
         program   : address of system pointer OR
                     null operand
)

Description:

This instruction, provided that certain conditions are met, deactivates a non-bound program or a bound program activated for non-bound program compatibility. Subsequent invocations of the program within the same activation group will cause a new activation to be created.

Operand 1 specifies a program activation entry which is to be deactivated, if permitted. The activation entry is inferred by one of two means:

  1. operand 1 is null — the target activation entry is that associated with the current invocation
  2. operand 1 is not null — the target activation entry associated with the program system pointer is selected from one of the two default activation groups

The target activation entry is deactivated if permitted. An activation in use by invocation (hex 2C05) exception is signaled if the deactivation is not permitted. If the target activation entry does not exist, then no operation is performed. If the program specified is a bound program and not activated like a non-bound program, an invalid operation for program (hex 2C15) exception is signaled.

In general, only those activations with a zero invocation count can be deactivated. The following two exceptions apply:

  1. A program can deactivate itself if it is the only invocation of that program in the process (its invocation count must be 1.)
  2. An invocation exit program can deactivate the program on whose behalf it is running provided that the invocation count of that program is no more than 1.

Authorization Required

  • Execute
    • Contexts referenced for address resolution

Lock Enforcement

  • Materialize
    • Contexts referenced for address resolution

Exceptions

  • 06 Addressing
    • 0601 Space Addressing Violation
    • 0602 Boundary Alignment
    • 0603 Range
  • 08 Argument/Parameter
    • 0801 Parameter Reference Violation
  • 0A Authorization
    • 0A01 Unauthorized for Operation
  • 10 Damage Encountered
    • 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
  • 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
    • 2403 Pointer Addressing Invalid Object Type
  • 2C Program Execution
    • 2C05 Activation in Use by Invocation
    • 2C15 Invalid Operation for Program
  • 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