Central control blocks

The Language Environment program model describes four levels: region, process, enclave, and thread. A control block is established to manage each of these levels:
RCB
Region Control Block
PCB
Process Control Block
EDB
Enclave Data Block
CAA
Thread level resource (Common Anchor Area)

Each HLL is enrolled as a member within the Language Environment environment. The list of members is known as the member list. This is an array of structures, indexed by the member ID, that contains member-specific information, and the address of an event handler. Two member lists are maintained within Language Environment: one at the process level, the other member list is found at the enclave level. Each slot within either member list for any given member has the same format.

The event handler for each HLL that is represented in the executable program is loaded during Language Environment-initialization, and its address saved in the appropriate slot in the member list. When certain events occur, the event handler is called to either notify the member that the event has occurred, or to solicit some information from the member.

To identify those member languages that are represented in the executable program, each member language has to generate a signature CSECT whose name is unique to that particular member language. Checking for the presence of this uniquely named CSECT, one can determine if the member language is represented. Language Environment performs this check during initialization. Language Environment maintains a list of weak external address constants, which can be found through the CEESTART CSECT.