Signature CSECT

Each language called by Language Environment for member-specific initialization and termination must generate a CEESGnnn signature CSECT. The signature CSECT denotes the presence of a member in the application. In addition, the signature CSECT provides a mechanism for the member to convey user load module information to the dynamically loaded member event handler. The nnn value is the decimal member number for each language.

In addition, the signature CSECT can contain a list of member identifiers upon which this current member is dependent. Language Environment orders these dependencies and calls the member-specific initializations in the dependent order. Termination is performed in the reverse order. Language Environment assumes that circular dependencies do not occur.

The format of the signature CSECT is shown in Figure 1. The fields SG_MBR1 and SG_MBR2 are optional and provide a vehicle for the member to pass member-specific load module related information to the member-specific handler during initialization (or any other time). During enclave initialization, the signature CSECT can be accessed indirectly through the initialization parameter list. Language Environment does not interrogate, alter, or check for the presence of SG_MBR1 or SG_MBR2. It is the member's responsibility to allocate SG_MBR1 and SG_MBR2, and to access these fields based upon their presence.

Figure 1. Signature CSECT format
CEESGnnn CSECT
CEESGnnn AMODE ANY
CEESGnnn RMODE ANY
         DC    CL4'Snnn'      Eye catcher
         DC    H'20'          Length of CSECT
         DC    H'1'           Version id
         DC    H'0'           Number of dependent member IDs
         DC    H'0'           Offset from the start of the CSECT...
*                             ...to the one-byte member IDs
SG_MBR1  DC    A              Reserved for member's use
SG_MBR2  DC    A              Reserved for member's use