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


Example of managing subspaces

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

*     OBTAIN THE STORAGE FROM A PAGEABLE SUBPOOL
         STORAGE OBTAIN,LENGTH=4096*(256+256),BNDRY=PAGE,SP=0,COND=YES
         ST    1,STORSTRT
         LTR   15,15                      IF NOT SUCCESSFUL (0)
         BNZ   NOSTOR                     GO TO ERROR PROCESSING
*
*     MAKE IT SEGMENT ALIGNED
*
         L     9,ROUNDIT
         L     2,ONEMEG
         L     10,STORSTRT
         ALR   10,2
         NR    10,9
         ST    10,STORSEGA              NEW SEGMENT-ALIGNED BOUNDARY
         L     1,STORSEGA
         ST    1,RPTR1                  PUT IT IN THE RANGE LIST
*  *******************************************************************
*     CREATE 5 SUBSPACES
*  *******************************************************************
         LA    5,1                          INIT LOOP COUNTER
         LA    9,STOKEN1                    START WITH FIRST STOKEN
*                                           IN ARRAY
LOOP1    DS    0H
         IARSUBSP CREATE,NAME=SSNAME,STOKEN=(9),                       *
               GENNAME=COND,OUTNAME=ONAME
         LTR   15,15                        IF NOT SUCCESSFUL (0)
         BNZ   NOCREATE                     GO TO ERROR PROCESSING
         LA    4,1                          LOOP INCREMENT IS 1
         ALR   5,4                          BUMP UP LOOP COUNTER
         LA    10,8                         ARRAY INCREMENT IS 8
         ALR   9,10                         BUMP UP ARRAY INDEX
         LA    4,5
         CR    5,4                          CHECK HOW MANY SO FAR
         BNH   LOOP1                        IF NOT 5 YET, REPEAT
 *  ******************************************************************
*     ADD THE SUBSPACE ENTRY TO THE WORKUNIT ACCESS LIST
*  *******************************************************************
         ALESERV ADD,STOKEN=STOKEN1,ALET=SSALET,AL=WORKUNIT
*  *******************************************************************
*     MAKE THE STORAGE SUBSPACE-ELIGIBLE
*  *******************************************************************
         IARSUBSP IDENTIFY,RANGLIST=RANGPTR,NUMRANGE=NUMRANG
*  *******************************************************************
*     ASSIGN THE STORAGE TO THE SUBSPACE
*  *******************************************************************
         IARSUBSP ASSIGN,STOKEN=STOKEN1,RANGLIST=RANGPTR
*  *******************************************************************
*     BRANCH TO THE SUBSPACE
*  *******************************************************************
          L     2,=A(X'80000000'+NEXT1)
          BSG   0,2
*  *******************************************************************
*     RUN PROGRAM IN THE SUBSPACE
*  *******************************************************************
*    RETURN TO THE BASE SPACE (FULL ADDRESS SPACE ADDRESSABILITY)
*  *******************************************************************
NEXT1     DS    0H
          L     0,=A(X'80000000'+NEXT2)
          BSG   0,0
*  *******************************************************************
*  DISASSOCIATE THE STORAGE (NUMRANGE DEFAULTS TO 1 WHICH IS WHAT
*  WE HAVE)
*  *******************************************************************
NEXT2     DS    0H
         IARSUBSP UNASSIGN,STOKEN=STOKEN1,RANGLIST=RANGPTR
*  *******************************************************************
*  MAKE THE STORAGE INELIGIBLE TO BE ASSIGNED TO A SUBSPACE
*  *******************************************************************
         IARSUBSP UNIDENTIFY,RANGLIST=RANGPTR
*  *******************************************************************
*  DELETE THE SUBSPACE
*  *******************************************************************
*
         IARSUBSP DELETE,STOKEN=STOKEN1
*
*  *******************************************************************
*  SUBSPACE CREATE FAILED - RELEASE THE STORAGE
*  *******************************************************************
NOCREATE DS    0H                     ERROR EXIT POINT
*  *******************************************************************
*  RELEASE THE STORAGE - USE THE ORIGINAL ADDRESS STORSTRT
*  *******************************************************************
         STORAGE RELEASE,ADDR=STORSTRT,LENGTH=4096*(256+256)
*  *******************************************************************
*  STORAGE OBTAIN FAILED - UNDO WHATEVER STEPS HAD BEEN SUCCESSFUL
*  PRIOR TO THE STORAGE OBTAIN
*  *******************************************************************
NOSTOR   DS    0H                     Error exit point
          .
          .
          .
          .
          .
          .
*  *******************************************************************
*  DECLARES
*  *******************************************************************
ONEMEG   DC    F'1048576'              ONE MEGABYTE
ROUNDIT  DC    X'FFF00000'             ROUND IT TO A SEGMENT ADDRESS
SSNAME   DC    CL8'SSPACE1 '           SUBSPACE NAME
ONAME    DS    CL8                     GENERATED NAME IF NEEDED
SSSTOKEN DS    0CL40
STOKEN1  DS    CL8
STOKEN2  DS    CL8
STOKEN3  DS    CL8
STOKEN4  DS    CL8
STOKEN5  DS    CL8
SSALET   DS    5CL4
STORSTRT DS    1F                      ADDRESS FOR OBTAIN/RELEASE
STORSEGA DS    1F                      SEGMENT-ALIGNED ADDRESS
*
* RANGE LIST MAPPING
*
RLIST    DS    0CL8
RPTR1    DS    F
NUMBLKS  DC    F'256'
*
RANGPTR  DC    A(RLIST)
NUMRANG  DC    F'1'

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014