z/OS MVS Programming: Extended Addressability Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


The new address space as cross memory user

z/OS MVS Programming: Extended Addressability Guide
SA23-1394-00

Parameters on the ASCRE macro enable the creating program to establish the second type of cross memory environment — one in which cross memory linkages enable the new address space to use the PC services provided by the creating program's address space. The environment is in place as soon as ASCRE processing is complete.

The cross memory environment that ASCRE can set up is described in Figure 1. Programs in the new address space (PGM1 and PGM2) can call PC routines (PCRTN1 and PCRTN2) in the creating program's address space. (ASCRE cannot set up the environment where programs in the creating program's address space can call PC routines in the new address space.)
Figure 1. An example of cross memory environment set by the ASCRE macro

There are three cross memory parameters on ASCRE. TKLIST and LXLIST can be used to connect an entry table (or tables) of the creating program's address space to the linkage table of the new address space. AXLIST can be used to set the values in the authority table of the new address space so that programs in the creating program's address space have PT and SSAR authority to the new address space. The effect of the cross memory parameters is the same as if the new address space issued the ATSET and ETCON macros, macros that require a program to be in supervisor state or key 0 - 7.

The three cross memory parameters require that you provide the addresses of three lists. The lists are:
  • The AX value (or values) of the creating program's address space
  • The linkage index (LX) value (or values) of the new address space's linkage table
  • The token (or tokens) that represents the entry table (or tables) in the creating program's address space.
The output of the AXRES and LXRES macros provides the input to the AXLIST and LXLIST parameters. You must build the list that is input to the TKLIST parameter. The following description of the parameters includes the format of the list you provide the TKLIST parameter.
  • The AXLIST parameter identifies the address of a list of authorization index (AX) values that represent the address spaces that have access to the new address space. The AXRES macro returned these values.

    The effect of using this parameter is the same as if a program in the new address space were to issue the ATSET macro once for every AX value in the list.

  • The LXLIST parameter identifies the address of a list of linkage index (LX) values that represent entries in the new address space's linkage table. The LXRES macro returned these values. The number of linkage indexes for LXLIST must be the same as the number of tokens for TKLIST.

    The effect of using this parameter is the same as if a program in the new address space issued the ETCON macro with the LXLIST parameter.

  • The TKLIST parameter identifies the address of a list of fullword tokens — each token represents an entry table to which the system will connect the new address space's linkage table. You build this list with tokens that the ETCRE macro returned, one token for each occurrence of the ETCRE macro. Format the list as follows:
    • The first fullword contains the number of tokens in the list
    • Up to 32 fullwords follow, each containing one entry table token.

    The effect of using this parameter is the same as if a program in the new address space issued the ETCON macro with the TKLIST parameter.

If the creating address space is to be a service provider for the new address space, the creating program (or another program in the same address space) must have issued the following cross memory macros before it issues the ASCRE macro:
  • AXRES macro, which reserves an AX value (or values)
  • AXSET macro, which sets an AX
  • LXRES macro, which reserves an LX value (or values)
  • ETCRE macro, which creates an entry table and returns a token that identifies the table.
On the ASCRE macro, the creating program can:
  • Use the AXLIST, LXLIST, and TKLIST parameters to set up a cross memory linkage with the new address space.
  • Use the ASPARM parameter to pass the PC number of a PC routine in the creating program's address space.

    A program in the new address space can later use the ASPARM parameter on the ASEXT macro to obtain a PC number or numbers. See Passing a parameter list to the new address space for more information about passing parameters to the new address space.

Figure 2 shows the same cross memory environment that Figure 1 showed. The creating address space would give the following input to ASCRE:
  • As input on AXLIST, the address of a list containing the AX value of the creating address space. The AXRES macro returned the address.
  • As input on TKLIST, the address of a list that you created. The first entry in the list is X‘0001’, the second entry is the entry table token that the ETCRE macro returned.
  • As input on LXLIST, the address of a list containing the LX value of the new address space's linkage table. The LXRES macro returned the address.
The AXLIST parameter sets the authority table in the new address space so that PC routines in the creating address space can have address space authorization to the new address space. TKLIST and LXLIST connect the entry table in the creating address space to the new address space's linkage table.
Figure 2. The cross memory linkages set by the ASCRE macro

The AXLIST parameter is not always needed to set up the cross memory linkages. If the address space to which the creating program needs access has only one AX value and that value is 1, the system does not need to initialize entries in the new address space's authority table. (An AX of 1 is a fully-authorized AX value that permits the address space to issue PT and SSAR instructions to any active address space.) If all AX values are 1, you can omit the AXLIST parameter.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014