Set Activation Group-Based Heap Space Storage Mark (SETHSSMK)

Instruction Syntax

Op Code (Hex) Operand 1 Operand 2
03B6 Mark identifier Heap identifier
Operand 1: Space pointer data object.

Operand 2: Binary(4) scalar.

Bound Program Access
Built-in number for SETHSSMK is 118.
SETHSSMK (
          mark_identifier   : address of space pointer(16)
          heap_identifier   : address of signed binary(4)
)
Note: The term "heap space" in this instruction refers to an "activation group-based heap space".

Description:

The heap space identified by operand 2 is marked and the mark identifier is returned in operand 1.

Marking a heap space allows a subsequent Free Activation Group-Based Heap Space Storage from Mark (FREHSSMK) instruction, using the mark identifier returned in operand 1, to free all outstanding allocations that were performed against the heap space since the heap space was marked with that mark identifier. This relieves the user of performing a Free Activation Group-Based Heap Space Storage (FREHSS) for every individual heap space allocation.

A heap space may have multiple marks.

The heap identifier specified in operand 2 is the identifier that was returned on the Create Activation Group-Based Heap Space (CRTHS) instruction. An attempt to mark the default heap space (heap identifier value of 0) will result in an invalid request (hex 4502) exception. An attempt to mark a heap space that has been created to not allow a Set Heap Space Storage Mark will result in an invalid request (hex 4502) exception.

Operand 2 is not modified by the instruction.

Authorization Required

  • None

Lock Enforcement

  • None

Exceptions

  • 06 Addressing
    • 0601 Space Addressing Violation
    • 0602 Boundary Alignment
    • 0603 Range
  • 08 Argument/Parameter
    • 0801 Parameter Reference Violation
  • 10 Damage Encountered
    • 1004 System Object Damage State
    • 1005 Authority Verification Terminated Due to Damaged Object
    • 1044 Partial System Object Damage
  • 1C Machine-Dependent
    • 1C03 Machine Storage Limit Exceeded
    • 1C04 Object Storage Limit Exceeded
    • 1C09 Auxiliary Storage Pool Number Invalid
  • 20 Machine Support
    • 2002 Machine Check
    • 2003 Function Check
  • 24 Pointer Specification
    • 2401 Pointer Does Not Exist
    • 2402 Pointer Type Invalid
    • 2403 Pointer Addressing Invalid Object Type
  • 44 Protection Violation
    • 4401 Object Domain or Hardware Storage Protection Violation
    • 4402 Literal Values Cannot Be Changed
  • 45 Heap Space
    • 4501 Invalid Heap Identifier
    • 4502 Invalid Request
    • 4503 Heap Space Full
    • 4505 Heap Space Destroyed
    • 4506 Invalid Heap Space Condition