Condition information block

Figure 1 shows the condition information block. The Language Environment condition manager creates a condition information block (CIB) for each condition encountered in the Language Environment environment. The CIB holds data required by the condition handling facilities and pointers to locations of other data. The address of the current CIB is located in the CAA.

For COBOL, Fortran, and PL/I applications, Language Environment provides macros (in the SCEESAMP data set) that map the CIB. For C/C++ applications, the macros are in leawi.h.

Figure 1. Condition information block (Part A)
Part A of Condition information block
Figure 2. Condition information block (Part B)
Part B of Condition information block
The flags for Condition Flag 4:
2
The resume cursor has been moved
4
Message service has processed the condition
8
The resume cursor has been moved explicitly
The flags for Status Flag 5, Language Environment events:
1
Caused by an attention interrupt
2
Caused by a signaled condition
4
Caused by a promoted condition
8
Caused by a condition management raised TIU
32
Caused by a condition signaled via CEEOKILL The signaled-via-CEEOKILL flag is always set with the signaled flag; thus, a signaled condition can have a value of either 2 or 34. (The value is 2 if the signaled condition does not come through CEEOKILL. If it comes through CEEOKILL, its value is 2+32=34.)
64
Caused by a program check
128
Caused by an abend
The flags for Status Flag 6, Language Environment actions:
2
Doing stack frame zero scan
4
H-cursor pointing to owning SF
8
Enable only pass (no condition pass)
16
MRC type 1
32
Resume allowed
64
Math service condition
128
Abend reason code valid
The language-specific function codes for the CIB:
X'1'
For condition procedure
X'2'
For enablement
X'3'
For stack frame zero conditions