Activate Bound Program (ACTBPGM)


Op Code (Hex) Operand 1 Operand 2

ACTBPGM 02CE Activation defn Program spec

Operand 1: Space pointer.

Operand 2: System pointer or space pointer data object

Bound program access

Built-in number for ACTBPGM2 is 658. ACTBPGM2( activation_defn : address of aggregate program_spec : address of system pointer or address of space pointer(16) ) OR

Built-in number for ACTBPGM is 416. ACTBPGM ( activation_defn : address of aggregate program_spec : address of system pointer or address of space pointer(16) )

Warning

The following information is subject to change from release to release. Use it with caution and be prepared to adjust for changes with each new release.

Note

It is recommended that you use the ACTBPGM2 instruction which supports 8-byte activation and activation group marks. 4-byte marks can wrap and produce unexpected results.

Description

Activates a bound program or bound service program. The program spec operand specifies the target program to be activated, either directly or indirectly.

If the program spec operand specifies a space pointer, it must locate a 16-byte aligned structure. The format of the structure is different for the ACTBPGM and ACTBPGM2 instructions.

Format of program spec for ACTBPGM2 instruction


Offset
Dec Hex
Field Name
Data Type and Length
0 0
Program
System pointer
16 10
Target activation group
UBin(8)
16 10
Target activation group (Non-Bound program)
Char(8)
start of change24 18 Options Char(1)
24 18 Prefer teraspace storage Bit 0
0= No
1= Yes


24 18 Reserved (binary 0) Bits 1-7
25 19 Reserved (binary 0) Char(23) end of change
48 30
--- End ---

start of change When prefer teraspace storage is no, then the definitions for the ACTBPGM program spec template apply to ACTBPGM2.

For user-state clients, prefer teraspace storage will be ignored and the instruction will execute as though prefer teraspace storage is no.end of change

Format of program spec for ACTBPGM instruction


Offset
Dec Hex
Field Name
Data Type and Length
0 0
Program
System pointer
16 10
Target activation group
UBin(4)
20 14
Reserved (binary 0)
Char(12)
32 20
--- End ---

Program is a system pointer to a bound service program to be activated. The service program must specify callers activation group for its activation group attribute. If the program is not a service program or the activation group attribute is incorrect, then the invalid operation for program  (hex 2C15) exception is signaled.

Target activation group is the activation group mark of an existing activation group into which the service program is to be activated. If the activation group does not exist, then the activation group not found  (hex 2C13) exception is signaled.

The service program is eligible to be activated into the target activation group if start of change one of the state conditions and one of the storage model conditions hold.

State conditions: end of change

start of change Storage model condition:

end of change If the service program is not eligible to be activated, the activation access violation  (hex 2C1E) exception is signaled. If the service program is eligible to be activated in the target activation group, activation proceeds as described in activating the program below.

If the program spec operand specifies a system pointer, it designates the target program to be activated. The target program must be either a bound program or a bound service program, otherwise invalid operation for program  (hex 2C15) exception is signaled.

Activating the Program

The program activation operation is discussed in detail in the CALLX instruction.

If the target program adopts its owner's user profile, the effect is as if the target program were the most recent invocation on the call stack. This permits the adopted authority of the owner to be applied for purposes of activating dependent service programs. This adoption policy is in effect for the duration of the ACTBPGM operation.

Activation Definition

The activation defn must point to a 16-byte aligned area which receives the activation definition. The format of the structure is different for the ACTBPGM and ACTBPGM2 instructions.

Format of activation defn for ACTBPGM2 instruction


Offset
Dec Hex
Field Name
Data Type and Length
0 0
Activation definition
Char(48)
0 0
Activation group mark
UBin(8)
0 0
Activation group mark (Non-Bound program)
Char(8)
8 8
Activation mark
UBin(8)
8 8
Activation mark (Non-Bound program)
Char(8)
16 10
Reserved
Char(7)
23 17
Indicators
Char(1)
23 17
Activation status
Bit 0



0= New activation
1= Existing activation



23 17
Reserved (binary 0)
Bits 1-7
24 18
Reserved (binary 0)
Char(24)
48 30
--- End ---

Format of activation defn for ACTBPGM instruction


Offset
Dec Hex
Field Name
Data Type and Length
0 0
Activation definition
Char(32)
0 0
Activation group mark
UBin(4)
4 4
Activation mark
UBin(4)
8 8
Reserved
Char(7)
15 F
Indicators
Char(1)
15 F
Activation status
Bit 0



0= New activation
1= Existing activation



15 F
Reserved (binary 0)
Bits 1-7
16 10
Reserved (binary 0)
Char(16)
32 20
--- End ---

where,

The activation group mark identifies the activation group into which the target program was activated.

The activation mark identifies the activation of the program.

The activation status indicates whether the operation created a new activation (=0) or found an existing activation (=1).

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

0A Authorization

10 Damage Encountered

1A Lock State

1C Machine-Dependent

20 Machine Support

22 Object Access

24 Pointer Specification

2A Program Creation

2C Program Execution

2E Resource Control Limit

36 Space Management

44 Protection Violation