Establishing addressability for function calls
Because QMF always branches to an entry point named DSQUnGV1 (TSO, ISPF, or native z/OS®) or DSQUnGV3 (CICS®) when it calls the governor, you cannot use these entry points to determine the type of function call; instead, use the GOVFUNCT field of the DXEGOVA control block.
In the IBM-supplied governor exit routine, GOVFUNCT contains a character value that identifies the type of function call. This character value, in turn, equates to a 1-byte binary integer from 1 to 10. For example, on a function call for the start of a QMF session, the value of GOVFUNCT is GOVINIT, which equates to a numeric value of X'1'.
Both character and numeric values for each type of function call are shown in this figure. GOVABEND is not called when running in CICS.
To improve performance in your own exit routine, you can follow the convention the IBM-supplied governor uses, and equate the values of GOVFUNCT with binary numbers by using a branch table. QMF uses the branch table to find the addresses to branch to for each type of function call.
The following example code identifies branch addresses for the default governor.