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


Example of creating and deleting an address space

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

The following supervisor state, key 0 program (CREATOR) creates an address space and a cross memory environment in which programs in the new address space (NEWADS) can PC to the creating address space. In this example, CREATOR builds a linkage table (LT) and a corresponding entry table (ET) that allows programs in NEWADS to PC to the routine PCTARGET, which is loaded in the creating address space. CREATOR passes the PC number needed to get to PCTARGET through the ASPARM field on the ASCRE macro. A program in NEWADS can then use the ASEXT macro to extract ASPARM. CREATOR also builds NEWADS's authority table (AT) so that it can PT and SSAR to NEWADS. Note that NEWADS is the name of a procedure (PROC) that resides in SYS1.PROCLIB. This PROC contains the JCL that identifies the first program to run in NEWADS.
CREEXMPL CSECT
CREEXMPL AMODE 31
CREEXMPL RMODE ANY
         BAKR  14,0                   SAVE CALLER'S STATUS ON STACK
         BASR  12,0                   SET BASE REGISTER GR
         USING *,12
         .
         .
*RESERVE AN LX
         LA R4,1
         ST R4,LXCOUNT                NEED ONLY ONE LX
         LXRES LXLIST=LX_LIST         RESERVE AN LX
        .
*RESERVE AN AX AND SET THE CURRENT ADDRESS SPACE'S AX TO IT
         LA R4,1
         STH R4,AXENTRIES             NEED ONLY ONE AX
         AXRES AXLIST=AX_LIST         RESERVE AN AX
         AXSET AX=AXENTRY             SET HOME'S AX TO THE RESERVED AX
         .
*DEFINE AN ENTRY TABLE ENTRY FOR THE ROUTINE PCTARGET
ETELIST  ETDEF TYPE=INITIAL           START AN ET ENTRY LIST
         ETDEF TYPE=ENTRY,ROUTINE=PCTARGET,AKM=0,EK=0,EKM=0,PKM=OR,    X
               PC=STACKING,SASN=OLD,SSWITCH=YES,STATE=SUPERVISOR
         ETDEF TYPE=FINAL       COMPLETED THE ET ENTRY LIST
         .
*CREATE AN ENTRY TABLE PUTTING IN THE ENTRY FOR PCTARGET
         ETCRE ENTRIES=ETELIST        CREATE AN ENTRY TABLE
         ST R0,TKVALUE                GET THE ET TOKEN FROM REG 0
         LA R4,1
         ST R4,TKCOUNT                SET THE NUMBER OF ETS TO 1
*COMPUTE THE PC NUMBER (LX|EX) EX=0
          L R4,LXVALUE
          N R4,PCMASK                 CLEAR NON-LX VALUES
         ST R4,PC_NUMBER
         .
         .
*NEWADS CAN USE PC_NUMBER TO GET TO PCTARGET IN CREATOR FROM NEWADS
         ASCRE INIT='IEFBR14 ',ASNAME='NEWADS',TRMEXIT=TERMEXIT,       X
               AXLIST=AX_LIST,TKLIST=TOKENLIST,LXLIST=LX_LIST,         X
               ASPARM=PC_NUMBER,ODA=ODA_AREA
         .
*TERMINATION ROUTINE
TERMEXIT DS  0H
         USING  *,15                REGISTER 15 CONTAINS ENTRY ADDRESS
         SAVE   (14,12),,*          SAVE REGISTERS
         .
*PERFORM ADDRESS SPACE TERMINATION PROCESSING
         .
RETURN   (14,12)                    RESTORE REGISTERS; RETURN TO SYSTEM
         .
*DECLARATIONS
PCMASK    DC '000FFF00'              MASK TO CLEAR EX VALUE
PC_NUMBER DS F                       PC NUM USED TO GET TO PCTARGET
ODA_AREA  DS CL24                    OUTPUT DATA AREA
TOKENLIST DS CL8                     LIST OF ET TOKENS
LX_LIST   DS CL8                     LIST OF LXS
AX_LIST   DS CL4                     LIST OF AXS
    ORG LX_LIST
LXCOUNT   DS FL4                     NUMBER OF LX REQUESTED
LXVALUE   DS FL4                     ONE LX ENTRY
    ORG AX_LIST
AXENTRIES DS FL2                     NUMBER OF AX REQUESTED
AXENTRY   DS FL2                     ONE AX ENTRY
    ORG TOKENLIST
TKCOUNT   DS FL4                     NUMBER OF ET TOKENS
TKVALUE   DS FL4                     ET TOKEN
In the following example, a supervisor state key zero program deletes an address space that was created through the ASCRE macro. The address of the ASEO (ASE output area), passed back from ASCRE after creating the address space, is passed to this routine in general purpose register 1.
DESEXMPL CSECT
DESEXMPL AMODE 31
DESEXMPL RMODE ANY
         BAKR  14,0                   SAVE CALLER'S STATUS ON STACK
         BASR  12,0                   SET BASE REGISTER
         USING *,12
         USING ASEO,1                 ESTABLISH ADDRESSABILITY TO ASEO
         .
         .
* DELETE THE ADDRESS SPACE
         ASDES STOKEN=ASEOSTKN
         .
* DECLARES THE DSECT FOR THE ASE OUTPUT AREA PASSED BACK FROM ASCRE.
* THE IHAASEO MACRO CONTAINS THIS MAPPING
         .
ASEO  DSECT
ASEOSTKN     DS XL8         64-BIT STOKEN OF THE NEW ASCB
ASEOASCB     DS A           ASCB OF NEW ADDRESS SPACE
ASEOECB      DS A           ECBs, BASING FOR IEZEAECB
ASEORSV1     DS XL8         RESERVED

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014