z/OS DFSMS Installation Exits
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Invoking ACS Interface Routine from an Exit

z/OS DFSMS Installation Exits
SC23-6850-01

Your ACS installation exit routine can use the ACS interface routine to call an ACS routine. The ACSPACS field shown in Figure 1 contains the address of an ACS interface routine that calls the corresponding ACS routine for the SMS class being selected. If the ACSPACS field contains a zero, then no ACS routine exists for the SMS class. The return code is in register 15. If it is nonzero, the reason code is found in register 0.

Linkage is that of standard MVS linkage conventions. Figure 1 illustrates the parameter structure for the ACS interface routine. The parameter list for the ACS interface routine, ACSPACSP, is imbedded within the parameter list that is passed to the exit. ACERWVLN and ACERWVAL fields zero.

Figure 1. Parameter Structure for the ACS Interface Routine. This figure shows the control block structure for calling the ACS interface routine from the installation exit.
REQTEXT
ACSPACSP contains the following fields:
ACSPAERO
Points to a list of variables mapped by IGDACERO that are read-only variables used by the ACS interface routine. Initially, ACSPAERO points to the same list of read-only variables as ACSPERO. You can modify the passed variables pointed to by ACSPAERO and call the ACS routine. Or you can write the ACS exit routine to create an entirely new list of read-only variables for the ACS interface routine and point to them with ACSPAERO before calling the ACS routine.
ACSPAERW
Points to a list of read-write variables mapped by IGDACERW and used by the ACS interface routine. Initially, ACSPAERW contains the same value as ACSPERW, which is a pointer to a list of read-write variables that contain the original value for the SMS class that was assigned in the ACS routine.

You can call the ACS routine without changing the value in ACSPAERW. When the ACS routine runs, it replaces the values in the list pointed to by ACSPAERW with new values for the SMS class derived by the ACS routine and any messages generated by the ACS routine.

When your ACS installation exit routine returns control to ACS services, the SMS class contained in the list pointed to by ACSPERW is assigned to the data set. Because ACSPERW and ACSPAERW are pointing to the same list, the class that is assigned to the data set is the new class that is created when your exit routine calls the ACS routine. However, if the new class is to be used as the input class by the ACS routine, then it must be copied into the corresponding field in ACSPAERO from ACSPAERW.

You can also write your ACS exit routine to create an entirely new list of read-write variables and point to them with ACSPAERW before calling the ACS routine. After the ACS routine runs, the read-write variable list pointed to by ACSPAERW contains the new values derived by the ACS routine. The read-write variable list pointed to by ACSPERW contains the original values that are assigned by the ACS routines. By creating a new read-write variable list in your exit routine, and then calling the ACS routine, you can compare the original values, pointed to by ACSPERW, with the ne values, pointed to by ACSPAERW.

If you create a new list of read-write variables and call the ACS routine, and you want to have the new values that are pointed to by ACSPAERW used to assign a class, you must copy the new values into the original list of variables,pointed to by ACSPERW. If you omit this copying step, the new values are not used to assign a class.

A zero in the ACERWNCS field upon return from the ACS routine indicates there is a null value for the SMS class. To assign a null value to the SMS class, you must set the ACERWNCS field to one and leave the ACERWVLN and ACERWVAL fields zero.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014