gtps4m3o | System Generation |
GTSZ is an offline C program that obtains the size of components to be placed in the core image restart area (CIMR).
C$GTSZ is a C header file created as part of SIP stage II. It contains a list of CIMR components, with version codes, which GTSZ is compiled against. GTSZ gets the sizes of the components listed by C$GTSZ.
Output from GTSZ is segment SKGTSZ, a list of macro language global variables, one for each CIMR component, set to the size in bytes of the corresponding CIMR component. For example, a sample list looks like the following:
&XAACPL SETA 13664 ACPLxx &XAICDF SETA 80972 ICDFxx &XAIPAT SETA 339108 IPATxx &XAIPLB SETA 73032 IPLBxx &XARIAT SETA 23000 RIATxx &XASIGT SETA 1780 SIGTxx
These values are used in creating CTKX. A 30% expansion factor is added when CTKX is created.
The recommended way to run GTSZ is assembling a SIP stage I deck and executing the output in SIP stage II. Users who want to run GTSZ independent of SIP because of customization should assemble a SIP stage I deck to get the initial JCL necessary to compile, link and run GTSZ, and get header file C$GTSZ. Users then carefully update header file C$GTSZ to include the CIMR component names and version codes they require. Each component must be added to the appropriate array: additional segments to be searched for in an object module data set go into the objname array while additional segments to search for in link module data sets go into the loadname array. The order of segments in the arrays is irrelevant. Users should be familiar with the C programming language before doing this. The following is a sample C$GTSZ:
/************************************************************/ /* THIS HEADER WAS PRODUCED BY SIP SEGMENT SKSYPS */ /************************************************************/ char *objname[] = { "ACPLxx", "ICDFxx", "IPLBxx", "SIGTxx", "RIATxx", "IPATxx" }; #define OBJNUM (sizeof(objname)/sizeof(char *)) char *loadname[] = { "FCTBxx", "CPS0xx" }; #define LOADNUM (sizeof(loadname)/sizeof(char *))
Once C$GTSZ has been updated and put into data set ACP.SYMACRO.RELxx.yyy (yyy = BSS or other subsystem names) JCL similar to that below should be run:
//J1A1E EXEC EDCCLG,INFILE='ACP.CSRCE.OL.RELxx(GTSZ40)' //COMPILE.SYSLIB DD DSN=&VSCCHD&CVER&EDCHDRS,DISP=SHR // DD DSN=ACP.SYMACRO.RELxx.yyy,DISP=SHR //GO.SYSUDUMP DD SYSOUT=A //GO.OUTFILE DD DSN=ACP.OBJ.RELxx.yyy(SKGTSZ),DISP=OLD //GO.OBJDSN DD DSN=ACP.OBJ.RELxx.yyy,DISP=SHR //GO.LNKDSN1 DD DSN=ACP.LINK.RELxx.yyy,DISP=SHR /*
Once GTSZ is run and SKGTSZ is created, segments which rely on SKGTSZ (such as CTKX) should be reassembled and reloaded if necessary.