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)
Figure 2. Condition information
block (Part B)
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