gtpm2m0k | Migration Guide: Program Update Tapes |
The following section discusses the migration considerations for ISO-C support.
ISO-C support brings with it new terminology. See TPF Application Programming for explanations of new terms and concepts.
ISO-C enhancements for program update tape 3 (PUT 3) include support for the E-type loader. See ISO-C E-Type Loader Support (APAR PJ19966) for more information.
Additional ISO-C changes for PUT 3 include the migration of the ZIMAG and ZTPLD commands to ISO-C dynamic load modules (DLMs). See Migration of TPF System Code to ISO-C Support (APAR PJ19938) for more information.
See the APEDIT for APAR PJ17852 for information about prerequisite APARs.
With ISO-C support you can write applications using an ISO-C (equivalent to ANSI C) implementation of C. This brings TPF applications closer to open systems (UNIX).
The design of the program fetch mechanism and the use of load modules enables ISO-C program size to be as large as 16 MB.
ISO-C support provides 6 new functions that enhance application program access to globals. These functions allow global field and record manipulation. They provide keypointing; locking, synchronizing, and unlocking of records; field and record modification and updating.
ISO-C support has been optimized for high performance, wherever possible. The various types of functions supported (inline, dynamic link module, internal function, and external function) provides a means for balancing appropriate levels of performance against anticipated on-going maintenance.
With ISO-C support more than 1000 function libraries, each with over 1000 functions, can be accessed by running programs.
ISO-C support has added more standard library functions and brought several to the standard interface. Functions added include packed decimal and wide character.
ISO-C support represents widely used version of the C language. By using this version development and operations tools are possible that were not previously available in the TPF 4.1 system.
Developments have increased the usability of TPF loaders:
The repertoire of TPF C functions has been expanded to include such functions as face_facs, swisc_create, glob_update, and so on.
New offline tools provide support for building the library interface, generating function stubs, and creating the files needed for ISO-C support.
ISO-C support has been designed for coexistence with TPF's previous version of C, which is called TARGET(TPF), in mind. Compatibility is so close ISO-C and TARGET(TPF) programs can call each other as functions.
ISO-C support provides the ability to increase the heap size beyond the fixed maximum of 1 MB by using the ZCTKA command. The stack heap used during ISO-C processing can be controlled separately.
User exits have been added to provide access to DLM call entry and exit, C library function, stack overflow processing entry and exit, environment initialization, and to report the number of #XPRGs remaining in the system after a load.
The procedures required to modify Locales have been made easier to follow.
The architecture for ISO-C support is based on the C environment, as defined by the IBM SAA AD/Cycle C/370 family of compilers. The central structure for the compiler is the task communications area (TCA). The TCA is used by the compiler much the same as the ECB is used by the TPF 4.1 system. The layout of the fields and their usage is fixed by the compiler (and other tools) and is not changed by the TPF 4.1 system.
TPF 4.1 architecture for ISO-C support replaces that created for the TPF system's earlier C language support, called TARGET(TPF) where a distinction must be made. The ISO-C environment is considered to be separate from the TARGET(TPF) environment because the C structures used to support the ISO-C environment are different. From a C load module perspective, TARGET(TPF) programs run in the TPF environment. Although TARGET(TPF) has not been enhanced by this support, both C environments are supported.
Overall, the application development architecture is similar to architectures commonly found in non-TPF environments:
Installing the ISO-C code without initially exploiting its functions allows for a more stable TPF environment. TARGET(TPF) and basic assembly language (BAL) applications currently running on the TPF 4.1 system can be loaded to the TPF 4.1 system with ISO-C support installed and be run at the same time as ISO-C applications. An attempt was made to make the integration of ISO-C support and TARGET(TPF) as seamless as possible.
To ensure that your TPF 4.1 system performs correctly with ISO-C support, you must establish the required operating environment. The following section describes hardware and software requirements specific to ISO-C support.
Operating Environment Requirements and Planning Information provides information about the minimum system configuration requirements that are necessary to operate the TPF 4.1 system. You may find it helpful to review that chapter along with the following information.
There are no hardware requirements.
The following section provides information about software requirements.
Prerequisite software for this support includes one of the following C compilers:
In addition, ISO-C support takes advantage of instructions that are only provided by IBM High-Level Assembler for IBM MVS, IBM VM, and IBM VSE systems.
The following section summarizes interface changes.
The following section summarizes C/C++ language changes. This information is presented in alphabetic order by the type of C/C++ language information. See the TPF C/C++ Language Support User's Guide and TPF Application Programming for more information about the C/C++ language.
Table 15 summarizes the scripts used for the library interface tool and the build tool. This information is presented in alphabetic order by the name of the segment.
See the TPF Library Guide for a complete list of
segments in the TPF 4.1 system.
Table 15. Changes to Build and Interface Scripts for ISO-C Support
Build Script | Type | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|
CISO | Build | New | Build script for ISO-C standard C library. |
CISOXV | Library Interface | New | Interface script for ISO-C standard C library. |
CLLE | Build | New | ISO-C UK LOCALE definition build script. |
CLLF | Build | New | ISO-C France LOCALE definition build script. |
CLLG | Build | New | ISO-C Germany LOCALE definition build script. |
CLLI | Build | New | ISO-C Italy LOCALE definition build script. |
CLLS | Build | New | ISO-C Spain LOCALE definition build script. |
CLLT | Build | New | ISO-C TPF LOCALE definition build script. |
CLLU | Build | New | ISO-C USA LOCALE definition build script. |
CTAL | Build | New | Build script for ISO-C TPF API C library. |
CTALXV | Library Interface | New | Interface script for ISO-C TPF API library. |
There are no changes.
Table 16 summarizes the general use C language header file changes. This information is presented in alphabetic order by the name of the general use C language header file.
General use means these header files are available for your
use.
Table 16. Changes to General Use C Language Header Files for ISO-C Support
General Use C Language Header File | New, Changed, or No Longer Supported? | Do You Need to Recompile Segments? |
---|---|---|
assert.h | Changed | No |
bldtol.h | New | Not Applicable |
c$cinfc.h | Changed | No |
c$ck1ke.h | Changed | Not Applicable |
c$dadfq.h | Changed | Not Applicable |
c$eb0eb.h | Changed | No |
c$fbd0.h | Changed | Not Applicable |
c$fer0.h | Changed | Not Applicable |
c$fva0.h | Changed | Not Applicable |
c$icili.h | New | Not Applicable |
c$icolr.h | Changed | Not Applicable |
c$idseat.h | Changed | Yes |
c$idseld.h | Changed | Yes |
c$idselv.h | Changed | Yes |
c$idsepd.h | Changed | Yes |
c$idsldr.h | New | Not Applicable |
c$idsmxp.h | New | Not Applicable |
c$idsold.h | Changed | Yes |
c$idspat.h | Changed | Yes |
c$idsprg.h | New | Not Applicable |
c$idspvr.h | Changed | Yes |
c$idssal.h | Changed | Yes |
c$idsuxt.h | Changed | Yes |
c$stdhd.h | Changed | No |
c$tpldr.h | Changed | Yes |
ctca.h | Changed | No |
ctool.h | New | Not Applicable |
ctype.h | Changed | No |
errno.h | Changed | No |
exlocal.h | Changed | No |
float.h | Changed | No |
format.h | Changed | No |
libi.h | New | No |
libopts.h | Changed | No |
limits.h | Changed | No |
locale.h | Changed | No |
math.h | Changed | No |
nldtci.h | New | No |
nldtif.h | New | No |
stdarg.h | Changed | No |
stddef.h | Changed | No |
stdio.h | Changed | No |
stdlib.h | Changed | No |
string.h | Changed | No |
sysapi.h | Changed | No |
sysdef.h | Changed | No |
systime.h | Changed | No |
tca.h | Changed | No |
time.h | Changed | No |
timeinc.h | Changed | No |
tpfapi.h | Changed | No |
tpfctype.h | New | No |
tpfeq.h | Changed | No |
tpferrno.h | New | No |
tpffloat.h | New | No |
tpfglbl.h | Changed | No |
tpfio.h | Changed | No |
tpflimit.h | New | No |
tpflink.h | Changed | No |
tpflocal.h | New | No |
tpfmap.h | Changed | No |
tpfmath.h | New | No |
tpfmcsll.h | Changed | No |
tpfregs.h | New | No |
tpfstarg.h | New | No |
tpfstdef.h | New | No |
tpfstdio.h | New | No |
tpfstdlb.h | New | No |
tpfstrng.h | New | No |
tpftape.h | Changed | No |
tpftime.h | New | No |
tppc.h | Changed | No |
wchar.h | New | No |
zimageq.h | Changed | Yes |
zimagmsg.h | Changed | Yes |
ztpld.h | Changed | Yes |
There are no changes.
There are no changes.
Table 17 summarizes the library module changes. This
information is presented in alphabetic order by the name of the library
module.
Table 17. Changes to Library Modules for ISO-C Support
Library Module Name | New, Changed, or No Longer Supported? | Library | Type |
---|---|---|---|
C$S370 | New | CISO | Assembler |
CABORT | New | CISO | Assembler |
CABS | New | CISO | Object-Only |
CACOS | New | CISO | Object-Only |
CASCTM | New | CISO | Object-Only |
CASIN | New | CISO | Object-Only |
CASSRT | New | CISO | C Language |
CATAN | New | CISO | Object-Only |
CATAN2 | New | CISO | Object-Only |
CATOF | New | CISO | Object-Only |
CATOIA | New | CISO | Object-Only |
CATTAC | New | CTAL | Assembler |
CATTCX | New | CTAL | Assembler |
CBDFMT | New | CISO | Object-Only |
CBGETS | New | CISO | Assembler |
CBPUTS | New | CISO | Assembler |
CBSRCH | New | CISO | Object-Only |
CCALOC | New | CISO | Assembler |
CCBCBS | New | CTAL | Assembler |
CCBCDB | New | CTAL | Assembler |
CCBCRE | New | CTAL | Assembler |
CCBCSA | New | CTAL | Assembler |
CCBCSS | New | CTAL | Assembler |
CCEIL | New | CISO | Object-Only |
CCIFRC | New | CTAL | Assembler |
CCINFC | New | CTAL | Assembler |
CCINT | New | CISO | Object-Only |
CCLOCK | New | CISO | Assembler |
CCLOCP | New | CISO | Object-Only |
CCLOCS | New | CISO | Object-Only |
CCNVRT | New | CISO | Object-Only |
CCORHC | New | CTAL | Assembler |
CCORUC | New | CTAL | Assembler |
CCOS | New | CISO | Object-Only |
CCREDC | New | CTAL | Assembler |
CCREEC | New | CTAL | Assembler |
CCREMC | New | CTAL | Assembler |
CCRETC | New | CTAL | Assembler |
CCRETL | New | CTAL | Assembler |
CCREXC | New | CTAL | Assembler |
CCROSC | New | CTAL | Assembler |
CCRUSA | New | CTAL | Assembler |
CCSID | New | CISO | Object-Only |
CCSONC | New | CTAL | Assembler |
CCTIME | New | CISO | Object-Only |
CDECHX | New | CISO | Object-Only |
CDEFRC | New | CTAL | Assembler |
CDETAC | New | CTAL | Assembler |
CDFTME | New | CISO | Object-Only |
CDIV | New | CISO | Object-Only |
CDLAYC | New | CTAL | Assembler |
CDOECV | New | CISO | Object-Only |
CDOFCV | New | CISO | Object-Only |
CDTACX | New | CTAL | Assembler |
CDTOP | New | CISO | Object-Only |
CENTDC | New | CTAL | Assembler |
CEVINC | New | CTAL | Assembler |
CEVNQC | New | CTAL | Assembler |
CEVNTC | New | CTAL | Assembler |
CEVNWC | New | CTAL | Assembler |
CEXIT | New | CISO | Assembler |
CEXP2 | New | CISO | Object-Only |
CFABS | New | CISO | Object-Only |
CFACE | New | CTAL | Assembler |
CFACES | New | CTAL | C Language |
CFACS | New | CTAL | Assembler |
CFILEC | New | CTAL | C Language |
CFILEX | New | CTAL | Assembler |
CFILNC | New | CTAL | C Language |
CFILNX | New | CTAL | Assembler |
CFILUC | New | CTAL | C Language |
CFILUX | New | CTAL | Assembler |
CFINDC | New | CTAL | C Language |
CFINDX | New | CTAL | Assembler |
CFINHC | New | CTAL | C Language |
CFINHX | New | CTAL | Assembler |
CFINWC | New | CTAL | C Language |
CFINWX | New | CTAL | Assembler |
CFIWHC | New | CTAL | C Language |
CFIWHX | New | CTAL | Assembler |
CFLIPC | New | CTAL | Assembler |
CFLRCD | New | CTAL | C Language |
CFLRCX | New | CTAL | Assembler |
CFMOD | New | CISO | Object-Only |
CFNRCD | New | CTAL | C Language |
CFNRCX | New | CTAL | Assembler |
CFREE | New | CISO | Assembler |
CFREXP | New | CISO | Object-Only |
CGDSNC | New | CTAL | Assembler |
CGDSRC | New | CTAL | Assembler |
CGETCC | New | CTAL | Assembler |
CGETFC | New | CTAL | Assembler |
CGETPC | New | CTAL | Assembler |
CGLOB | New | CTAL | C Language |
CGLOBA | New | CTAL | Assembler |
CGLOBK | New | CTAL | Assembler |
CGLOBL | New | CTAL | C Language |
CGLOBM | New | CTAL | Assembler |
CGLOBN | New | CTAL | Assembler |
CGLOBS | New | CTAL | Assembler |
CGLOBU | New | CTAL | C Language |
CGLOCK | New | CTAL | Assembler |
CGMTME | New | CISO | Object-Only |
CGSCAN | New | CISO | Object-Only |
CHEXDC | New | CISO | Object-Only |
CHXDSM | New | CISO | Object-Only |
CHXDTB | New | CISO | Object-Only |
CINQRC | New | CTAL | Assembler |
CISA | New | CISO | Object-Only |
CISAN | New | CISO | Object-Only |
CISC | New | CISO | Object-Only |
CISD | New | CISO | Object-Only |
CISG | New | CISO | Object-Only |
CISL | New | CISO | Object-Only |
CISPR | New | CISO | Object-Only |
CISPU | New | CISO | Object-Only |
CISSP | New | CISO | Object-Only |
CISU | New | CISO | Object-Only |
CISXD | New | CISO | Object-Only |
CKEYRC | New | CTAL | Assembler |
CLABS | New | CISO | Object-Only |
CLCLCO | New | CISO | Object-Only |
CLCLDT | New | CISO | Object-Only |
CLCTOD | New | CISO | Object-Only |
CLDIV | New | CISO | Object-Only |
CLDTPF | New | CISO | Assembler |
CLLOAD | New | CISO | Object-Only |
CLOCKC | New | CTAL | Assembler |
CLOG10 | New | CISO | Object-Only |
CLOG2 | New | CISO | Object-Only |
CLONGC | New | CTAL | Assembler |
CLVTST | New | CTAL | Assembler |
CLWAID | New | CISO | Object-Only |
CMACCP | New | CTAL | C Language |
CMALLC | New | CTAL | C Language |
CMALOC | New | CISO | Assembler |
CMASKC | New | CTAL | Assembler |
CMBINI | New | CISO | Object-Only |
CMBLEN | New | CISO | Object-Only |
CMBLN | New | CISO | Object-Only |
CMBWC | New | CISO | Object-Only |
CMBWCS | New | CISO | Object-Only |
CMCFM | New | CTAL | C Language |
CMCFMD | New | CTAL | C Language |
CMCHR | New | CISO | Object-Only |
CMCMP | New | CISO | Object-Only |
CMCPY | New | CISO | Object-Only |
CMCSLL | New | CTAL | Assembler |
CMDEAL | New | CTAL | C Language |
CMECS | New | CTAL | C Language |
CMEMN | New | CTAL | C Language |
CMEPLN | New | CTAL | C Language |
CMESL | New | CTAL | C Language |
CMFLUS | New | CTAL | C Language |
CMINIT | New | CTAL | C Language |
CMKTME | New | CISO | Object-Only |
CMMOVE | New | CISO | Object-Only |
CMPTR | New | CTAL | C Language |
CMRCV | New | CTAL | C Language |
CMRTS | New | CTAL | C Language |
CMSDT | New | CTAL | C Language |
CMSED | New | CTAL | C Language |
CMSEND | New | CTAL | C Language |
CMSERR | New | CTAL | C Language |
CMSET | New | CISO | Object-Only |
CMSMN | New | CTAL | C Language |
CMSPLN | New | CTAL | C Language |
CMSPTR | New | CTAL | C Language |
CMSRC | New | CTAL | C Language |
CMSSL | New | CTAL | C Language |
CMSST | New | CTAL | C Language |
CMSTPN | New | CTAL | C Language |
CMTRTS | New | CTAL | C Language |
CNLINF | New | CISO | Object-Only |
CNLSET | New | CISO | Object-Only |
CPADD | New | CISO | Object-Only |
CPAUSC | New | CTAL | Assembler |
CPCMP | New | CISO | Object-Only |
CPDASM | New | CISO | Object-Only |
CPDIV | New | CISO | Object-Only |
CPMPY | New | CISO | Object-Only |
CPOSTC | New | CTAL | Assembler |
CPOW | New | CISO | Object-Only |
CPROGC | New | CTAL | Assembler |
CPTOD | New | CISO | Object-Only |
CPTOSB | New | CISO | Object-Only |
CPTOUB | New | CISO | Object-Only |
CPVAL | New | CISO | Object-Only |
CQSORT | New | CISO | Object-Only |
CRAISA | New | CTAL | Assembler |
CRALOC | New | CISO | Assembler |
CRAND | New | CISO | Object-Only |
CRCOMP | New | CISO | Object-Only |
CREHKA | New | CTAL | C Language |
CRELCC | New | CTAL | Assembler |
CRELFC | New | CTAL | Assembler |
CRELPC | New | CTAL | Assembler |
CRERR | New | CISO | Object-Only |
CREXEC | New | CISO | Object-Only |
CRFREE | New | CISO | Object-Only |
CRIDCC | New | CTAL | Assembler |
CRLCHA | New | CTAL | Assembler |
CRMSGE | New | CISO | Object-Only |
CROUTC | New | CTAL | Assembler |
CRPMTH | New | CISO | Object-Only |
CRVTCC | New | CTAL | Assembler |
CSBTOP | New | CISO | Object-Only |
CSCAT | New | CISO | Object-Only |
CSCHR | New | CISO | Object-Only |
CSCMP | New | CISO | Object-Only |
CSCNH | New | CISO | Object-Only |
CSCNF | New | CISO | C Language |
CSCOLL | New | CISO | Object-Only |
CSCPY | New | CISO | Object-Only |
CSCSPN | New | CISO | Object-Only |
CSELEC | New | CTAL | Assembler |
CSERRC | New | CTAL | Assembler |
CSERRO | New | CTAL | C Language |
CSERRS | New | CTAL | C Language |
CSERRX | New | CTAL | C Language |
CSFMON | New | CISO | Object-Only |
CSFTME | New | CISO | Object-Only |
CSIN | New | CISO | Object-Only |
CSIPCC | New | CTAL | Assembler |
CSLEN | New | CISO | Object-Only |
CSNAPC | New | CTAL | Assembler |
CSNCAT | New | CISO | Object-Only |
CSNCMP | New | CISO | Object-Only |
CSNCPY | New | CISO | Object-Only |
CSONIC | New | CTAL | Assembler |
CSPBRK | New | CISO | Object-Only |
CSPRTF | New | CISO | Object-Only |
CSPTME | New | CISO | Object-Only |
CSQRT | New | CISO | Object-Only |
CSRCHR | New | CISO | Object-Only |
CSSCNF | New | CISO | Object-Only |
CSSPN | New | CISO | Object-Only |
CSSTR | New | CISO | Object-Only |
CSTLCL | New | CISO | Object-Only |
CSTOKA | New | CISO | Object-Only |
CSTOLD | New | CISO | Object-Only |
CSWSCC | New | CTAL | Assembler |
CSXFRM | New | CISO | Object-Only |
CSYSTC | New | CTAL | Assembler |
CTALL | New | CTAL | C Language |
CTALLC | New | CTAL | Assembler |
CTAN | New | CISO | Object-Only |
CTANH | New | CISO | Object-Only |
CTAOC | New | CTAL | Assembler |
CTAOR | New | CTAL | Assembler |
CTAPEC | New | CTAL | Assembler |
CTAPEO | New | CTAL | Assembler |
CTAPER | New | CTAL | Assembler |
CTAPEW | New | CTAL | Assembler |
CTASCN | New | CISO | Object-Only |
CTASNC | New | CTAL | Assembler |
CTBSPC | New | CTAL | Assembler |
CTCFM | New | CTAL | Assembler |
CTCFMD | New | CTAL | Assembler |
CTCLSC | New | CTAL | Assembler |
CTCNTL | New | CTAL | Assembler |
CTCPOR | New | CTAL | Assembler |
CTCPTR | New | CTAL | Assembler |
CTDEAL | New | CTAL | Assembler |
CTDSPC | New | CTAL | Assembler |
CTDSPQ | New | CTAL | Assembler |
CTDXPD | New | CISO | Object-Only |
CTEXP | New | CISO | Object-Only |
CTFLUS | New | CTAL | Assembler |
CTGATT | New | CTAL | Assembler |
CTGTYP | New | CTAL | Assembler |
CTIMEF | New | CISO | Object-Only |
CTLGNC | New | CISO | Object-Only |
CTOD | New | CISO | Object-Only |
CTOL | New | CISO | Object-Only |
CTOPNC | New | CTAL | Assembler |
CTOU | New | CISO | Object-Only |
CTOURC | New | CTAL | Assembler |
CTOUTC | New | CTAL | Assembler |
CTRCV | New | CTAL | Assembler |
CTRDC | New | CTAL | Assembler |
CTREWC | New | CTAL | Assembler |
CTRINT | New | CISO | Object-Only |
CTRSVC | New | CTAL | Assembler |
CTRT | New | CISO | Object-Only |
CTRTS | New | CTAL | Assembler |
CTSCSN | New | CISO | Object-Only |
CTSEND | New | CTAL | Assembler |
CTSERR | New | CTAL | Assembler |
CTSRAZ | New | CISO | Object-Only |
CTSYNC | New | CTAL | Assembler |
CTTAT | New | CISO | Object-Only |
CTTEST | New | CTAL | Assembler |
CTWAIT | New | CTAL | Assembler |
CTWRTC | New | CTAL | Assembler |
CTZDIF | New | CISO | C Language |
CUATBC | New | CTAL | Assembler |
CUBTOP | New | CISO | Object-Only |
CUNFRC | New | CTAL | C Language |
CUNFRX | New | CTAL | Assembler |
CUNHKA | New | CTAL | C Language |
CUNLKC | New | CTAL | Assembler |
CVSPTF | New | CISO | Object-Only |
CWAITC | New | CTAL | Assembler |
CWCMB | New | CISO | Object-Only |
CWCMBS | New | CISO | Object-Only |
CWCOLL | New | CISO | Object-Only |
CWCSID | New | CISO | Object-Only |
CWCTYP | New | CISO | Object-Only |
CWCWDT | New | CISO | Object-Only |
CWFTME | New | CISO | Object-Only |
CWGTAC | New | CTAL | Assembler |
CWISTY | New | CISO | Object-Only |
CWLEN | New | CISO | Object-Only |
CWNCPY | New | CISO | Object-Only |
CWSMBS | New | CISO | Object-Only |
CWSWDT | New | CISO | Object-Only |
CWTOLW | New | CISO | Object-Only |
CWTOPC | New | CTAL | Assembler |
CWTOPT | New | CTAL | Assembler |
CWTOUP | New | CISO | Object-Only |
CWXFRM | New | CISO | Object-Only |
There are no changes.
There are no changes.
There are no changes.
There are no changes.
There are no changes.
Table 18 summarizes the control program interface (CINFC) tag changes. The information in this table is ordered alphabetically by the equate name.
ISO-C support has reserved all the CINFC equates from 315 to 324.
Those currently defined are listed in Table 18.
Table 18. Changes to CINFC Tags for ISO-C Support
CINFC Tag | Equate Value | New, Changed, or No Longer Supported? |
---|---|---|
CMMISOC | 315 | New |
CMMICD | 316 | New |
CMMEFC | 319 | New |
CMMRTN | 320 | New |
Table 19 summarizes copy member changes. This information is
presented in alphabetic order by the name of the copy member.
Table 19. Changes to Copy Members for ISO-C Support
Copy Member | Type | CSECT Where Copy Member Is Located | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|---|
CAAA | Control Program | CCNUCL | Changed | Add ISO-C comments. |
CAPE | Control Program | CCNUCL | Changed | Support CCENBK. |
CAPT | Control Program | CCNUCL | Changed | Support CCENBK. |
CCIT | Control Program | CCNUCL | Changed | Support CCENBK. |
CCPU | Control Program | CCNUCL | Changed | Support CCENBK. |
CEET | Control Program | CCNUCL | Changed | Support CCENBK. |
CHSZ | Control Program | CCNUCL | Changed | Create immediate/deferred entry control transfer. |
CICR | Control Program | CCNUCL | Changed | Support CCENBK. |
CICS | Control Program | CCNUCL | Changed | Macro Service Routines (2). |
CTME | Control Program | CCNUCL | Changed | Changes external interrupt handler to tolerate ISO-C programs. |
CCEB | Control Program | CCENBK | Changed | Handled program interface translations for ISO-C support. Moved to CCENBK. |
CCEC | Control Program | CCENBK | Changed | Handled program interface translations for ISO-C support. Moved to CCENBK. |
CCED | Control Program | CCENBK | New | Enter/Back routines for the ISO-C load module. |
CCEF | Control Program | CCENBK | New | FETCH the ISO-C program from file. |
CCEG | Control Program | CCENBK | New | Process program version records (PVRS). |
CCE4 | Control Program | CCIISC | Changed | Support CCENBK. |
CDC1 | Control Program | CCDCOL | Changed | Added collection data for DLMs. |
CEFE | Control Program | CCTAPE | Changed | Updates made for error recovery. |
CEFI | Control Program | CCFADC | New | CP $FINDC macro to accept DELB and IOB set up. |
CEFJ | Control Program | CCFADC | Changed | Fixed segment title. |
CIDP | Control Program | CCCPSE | Changed | Internal static override bitmap table. |
CPER | Control Program | CCCPSE | Changed | Change implementation of PER support to tolerate ISO-C programs. |
CPSE | Control Program | CCCPSE | Changed | Change system error code to detect ISO-C register conventions. |
CPSL | Control Program | CCCPSE | Changed | Change system error dump to format ISO-C structures. |
CPSF | Control Program | CCCPSF | Changed | Incorrect R11, R12 contents check removed. |
CIS0 | Control Program | CCISOC | New | ISO-C data area and library support directory. |
CIS1 | Control Program | CCISOC | New | ISO-C environment data and support. |
CIS2 | Control Program | CCISOC | New | ISO-C static and stack routines. |
CJIL | Control Program | CCSONA | Changed | Added new entry point EJFFINDC for IOBs. |
CJIV | Control Program | CCRCSC | Changed | Support CCENBK. |
CLHH | Control Program | CCSTOR | Changed | Heap storage management changes. |
CLHV | Control Program | CCSTOR | Changed | GTSTK and related GMNBC changes. |
CL02 | Control Program | CCLANG | Changed | Commentary changes. |
CMKH | Control Program | CCMCKH | Changed | Reload TPF registers. |
CTIN | Control Program | CCCTIN | Changed | Variable size stack and heap, page and segment tables in ECB virtual memory (EVM). |
CT00 | Control Program | CCCTIN | Changed | Body of new stack and help related fields from keypoint. |
CT38 | Control Program | CCCTIN | Changed | Compute stack and heap size. Copy AOLA address into the ECB activation table (EAT) slots. |
CT40 | Control Program | CCCTIN | Changed | Stack and heap, page and segment tables carved. |
CT81 | Control Program | CCCTIN | Changed | Process DLM Enter/Back macro trace overlays. |
CUSR | Control Program | CCUEXT | Changed | New user exit support. Support CCENBK. |
CVF3 | Control Program | CCVFAC | Changed | Bypass ECB counts for CP DASD I/O; enable MI0CPIO bit; bypass core block allocation. |
CRTT | Control Program | CCUTIL | Changed | DLM Enter/Back intercept routines. |
IB01 | Control Program | IPLB | Changed | Verify address range of virtual storage requirements plus real memory. |
Table 20 summarizes CSECT changes. This information is
presented in alphabetic order by the name of the CSECT.
Table 20. Changes to CSECTs for ISO-C Support
CSECT | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|
CCENBK | New | Enter/back trace changes due to DLMs. |
CCFADC | Changed | New CEFI copy member. |
CCISOC | New | ISO-C support services. |
CCNUCL | Changed | Moved enter/back trace to new CSECT. |
CCSTOR | Changed | GTSTK service and GMNBC changes. Support for ISO-C stack. |
CCUEXT | Changed | New user exit and library user exit activation; CCENBK support. |
CPLKMP | Changed | Add new CSECTs. |
Although the following CSECTs were not changed by ISO-C support, you must reassemble them. The CSECTS are CCSONS, CCMCDC, and CCCLHR.
There are no changes.
The following section summarizes the macro changes. This information is presented in alphabetic order by the type of macro.
There are no changes.
There are no changes.
Table 21 summarizes the data macro changes. This information
is presented in alphabetic order by the name of the data macro.
Table 21. Changes to Data Macros for ISO-C Support
Data Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs Using This Data Macro? |
---|---|---|
BK1RP | Changed | No |
CK1KE | Changed | Yes |
CS0CA | Changed | No |
CV0CM | Changed | No |
DC0DC | Changed | Yes |
DBRREC | Changed | No |
DCTBXP | Changed | No |
DCTMIO | Changed | Yes |
DCTMSG | Changed | No |
DCTPFX | Changed | No |
DCTUCL | Changed | Yes |
IC0CV | Changed | No |
IDR0CB | Changed | No |
IDSCCA | New | Not Applicable |
IDSCID | New | Not Applicable |
IDSCSF | New | Not Applicable |
IDSDCS | New | Not Applicable |
IDSDEC | Changed | Yes |
IDSDSA | New | Not Applicable |
IDSEAT | Changed | Yes |
IDSELD | Changed | Yes |
IDSFCT | Changed | No |
IDSGLB | New | Not Applicable |
IDSICD | New | Not Applicable |
IDSLCS | New | Not Applicable |
IDSLST | New | Not Applicable |
IDSLWS | New | Not Applicable |
IDSMXP | New | Not Applicable |
IDSPAT | Changed | Yes |
IDSPNL | Changed | Yes |
IDSPRG | New | Not Applicable |
IDSPVR | Changed | Not Applicable |
IDSTCA | New | Not Applicable |
IDSTTR | Changed | Yes |
IPSTAT | New | Not Applicable |
LDCRL | Changed | Yes |
RUNID | Changed | No |
SE0MS | Changed | Yes |
TPLDR | Changed | Yes |
UI2PF | Changed | Yes |
UX1PL | Changed | No |
Table 22 summarizes general macro changes. This information is
presented in alphabetic order by the name of the general macro. See
TPF General Macros for a complete description of all
general macros.
Table 22. Changes to General Macros for ISO-C Support
General Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
ALASC | Changed | No |
BACKC | Changed | No |
BEGIN | Changed | No |
CREDC | Changed | No |
CREEC | Changed | No |
CREMC | Changed | No |
CRETC | Changed | No |
CREXC | Changed | No |
CROSC | Changed | No |
EDCLOC | Changed | No |
ENTDC | Changed | No |
ENTNC | Changed | No |
ENTRC | Changed | No |
FINIS | Changed | No |
GETLC | Changed | No |
GETPC | Changed | No |
GETSC | Changed | No |
ICELOG | Changed | No |
ICPLOG | Changed | No |
MODEC | Changed | No |
PROGC | Changed | No |
RELPC | Changed | No |
SONIC | Changed | No |
SWISC | Changed | No |
TMSEC | New | Not Applicable |
TMSPC | New | Not Applicable |
UXCMC | Changed | No |
WAITC | Changed | No |
WGTAC | Changed | No |
Table 23 summarizes selected equate macro changes. This
information is presented in alphabetic order by the name of the selected
equate macro.
Table 23. Changes to Selected Equate Macros for ISO-C Support
Selected Equate Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
CINFC | Changed | No |
CMFEQ | Changed | No |
CZOCP | Changed | No |
CZ1SE | Changed | No |
DADFQ | Changed | No |
DLTEC | Changed | Yes |
ICYCWB | Changed | No |
IEQCE2 | Changed | No |
IEQCE3 | Changed | Yes |
RTTEQ | Changed | No |
SYSEQ | Changed | No |
There are no changes.
There are no changes.
Table 24 summarizes the system initialization program (SIP) skeleton,
stage 1, and internal macro changes. This information is presented in
alphabetic order by the name of the SIP skeleton and internal macro.
See TPF System Generation for a complete description
of the SIP skeleton and internal macros. If the SIP skeleton and
internal macro (inner macro) is changed, you must reassemble the SIP Stage I
deck and run the appropriate job control language (JCL) jobs from the SIP
Stage II deck. If the SIP Stage I macro is changed, you must run the
appropriate JCL jobs from the SIP Stage II deck.
Table 24. Changes to SIP Skeleton and Internal Macros for ISO-C Support
SIP Skeleton, Stage I, and Internal Macro | New, Changed, or No Longer Supported? |
---|---|
CORREQ | Changed |
GENSIP | Changed |
SKCTKA | Changed |
SKCTKB | Changed |
SPPBLD | Changed |
SPPGML | Changed |
SPCOMP | Changed |
SPEDCC | Changed |
SPGLB | Changed |
SPREPT | Changed |
SPTABS | Changed |
Table 25 summarizes the system initialization program (SIP) Stage II
macro changes. This information is presented in alphabetic order by the
name of the SIP Stage II macro. See TPF System
Generation for a complete description of the SIP Stage II macros.
If IBMPAL is changed, you must run the system allocator (SALO) and load the
new program allocation table (PAT) to the TPF 4.1
system.
Table 25. Changes to SIP Stage II Macros for ISO-C Support
SIP Stage II Macro | New, Changed, or No Longer Supported? |
---|---|
IBMPAL | Changed |
Table 26 summarizes system macro changes. This information is
presented in alphabetic order by the name of the system macro. See TPF System Macros for a complete description of all
system macros.
Table 26. Changes to System Macros for ISO-C Support
System Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
$DCOLC | Changed | No |
$FINDC | New | Not Applicable |
$GSVAC | Changed | Yes |
$GTSTC | New | Not Applicable |
DPROC | Changed | No |
FTSTC | Changed | Yes |
IBMSVC | Changed | Not Applicable |
RPVRC | New | Not Applicable |
SLNKC | Changed | No |
UXITC | Changed | No |
VCONC | New | Not Applicable |
Table 27 summarizes system macro changes. This information is
presented in alphabetic order by the name of the system macro.
Table 27. Changes to System Macros (IBM Use Only) for ISO-C Support
System Macro (IBM Use Only) | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
CFMCC | Changed | Yes |
CFMDC | Changed | Yes |
Table 28 summarizes segment changes. This information is
presented in alphabetic order by the name of the segment.
Table 28. Changes to Segments for ISO-C Support
Although the following segments were not changed by ISO-C
support, you must reassemble them.
CELA | CELB | CELD | CELE | CELH |
CELJ | CELL | CELM | CELN | CELO |
CELP | CELR | CELS | CELT | CELU |
CELV | CELW | CELX | CELY | CELZ |
CEL0 | CEL1 | CEL2 | CEL4 | CEL5 |
CEL6 | CEL7 | CEL8 | CILB | CIL2 |
CIL3 | CIL4 | CIL5 | CIL7 | CLEJ |
CLDY | COLC | COLK | COLM | COLN |
COLW |
There are no changes.
Control Program (CP) User Exits and ECB User Exits summarize the control program (CP) and ECB user exit changes. See TPF System Installation Support Reference for a complete description of all user exits.
This information is presented in alphabetic order by the name of the
control program (CP) user exit.
Table 29. Changes to Control Program (CP) User Exits for ISO-C Support
Control Program (CP) User Exit Activated In | User Routine Label | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|
CLMINT | UCCCENV | New | DLM environment initialization. |
CSTRTL | UCCCLE | New | Entry to a C library function. |
CSTRTL | UCCCLX | New | Exit from a C library function. |
CCISOC (CIS2) | UCCCSOE | New | Entry to C stack overflow processing. |
CCISOC (CIS2) | UCCCSOX | New | Exit from C stack overflow processing. |
CCNUCL (CHSZ) | UCCECB | Changed | The exit itself has not changed but the ECB now contains additional information available through the exit. |
CCENBK (CCED) | UCCEFCE | New | DLM external function call exit. |
CLMINT | UCCEFCX | New | Exit before DLM function is called. |
CLMINT | UCCRTNE | New | DLM return processing entry. |
CCENBK (CCED) | UCCRTNX | New | DLM return processing exit. |
This information is presented in alphabetic order by user exit.
Table 30. Changes to ECB User Exits ISO-C Support
ECB User Exit Activated In | User Routine Label | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|
UELI | Not Applicable | Changed | Support new record #XPRG. |
The following section summarizes functional and operational changes. This information is presented in alphabetic order by the functional or operational change.
See Appendix A, PUT 2-15 Interface Changes by Authorized Program Analysis Report (APAR) for a summary of functional and operational changes by APAR.
Table 31 summarizes command changes. This information is presented in alphabetic order by the name of the command. See TPF Operations for a complete description of all commands.
Attention: Changes to commands can impact any automation
programs you are using in your complex.
Table 31. Changes to Commands for ISO-C Support
Command | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|
ZAPAT | Changed | This command is restricted to CLASS=SHARED for ISO-C programs, DLMs, and libraries. |
ZAPGM | Changed | This command cannot be used with C load modules. |
ZCTKA | Changed | This command now supports the following parameters.
|
ZDPAT | Changed | This command displays program linkage type and base PAT address. |
ZDPGM | Changed | This command cannot be used with C load modules. |
Table 32 summarizes message (offline and online messages) and system error changes.
The message IDs or system error numbers are listed in numeric order preceded by their alphabetic prefix. Some offline and online messages do not have a standard message ID. For these, the messages are presented in alphabetic order based on the initial message text; or for those messages that begin with variable information, the initial message text that follows that variable information. See Messages (System Error and Offline) and Messages (Online) for a complete description of all messages and system errors.
Attention: Changes to offline messages, online messages,
and system errors may impact any automation programs you are using in your
complex.
Table 32. Changes to Messages and System Errors for ISO-C Support
Message ID or System Error Number | Message Type | New, Changed, or No Longer Supported? |
---|---|---|
ACPL0048E | Online | No Longer Supported |
ACPL0049E | Online | No Longer Supported |
ACPL0076E | Online | No Longer Supported |
ACPL0077E | Online | No Longer Supported |
ACPL0097W | Online | New |
ACPL0098E | Online | New |
ACPL0099E | Online | New |
ACPL0100E | Online | New |
ACPL0101E | Online | New |
ACPL0102E | Online | New |
ACPL0103E | Online | New |
ALDR0901E | Offline | New |
ALDR0902E | Offline | New |
ALDR0903E | Offline | New |
ALDR0904E | Offline | New |
ALDR0905E | Offline | New |
APAT0015E | Online | New |
CBLD0000I | Offline | New |
CBLD0400W | Offline | New |
CBLD0401W | Offline | New |
CBLD0410W | Offline | New |
CBLD0801E | Offline | New |
CBLD0802E | Offline | New |
CBLD1201T | Offline | New |
CBLD1208T | Offline | New |
CBLD1211T | Offline | New |
CBLD1222T | Offline | New |
CILC0101E | Online | New |
CILD0104E | Online | New |
CILD0105E | Online | New |
CILD0106W | Online | New |
CILE0102E | Online | New |
CILE0103W | Online | New |
CILF0107E | Online | New |
CILF0108E | Online | New |
CILF0109W | Online | New |
CILF0110E | Online | New |
CILG0111E | Online | New |
CILH0111E | Online | New |
CPSF0003E | Online | No Longer Supported |
CTKA0003I | Online | New |
CTKA0004I | Online | New |
CTKA0059E | Online | New |
DADF0102E | Online | No Longer Supported |
DADF0126E | Online | New |
DPAT0001I | Online | No Longer Supported |
DPAT0002I | Online | No Longer Supported |
DPAT0003I | Online | New |
DPAT0004I | Online | New |
FCTB0107E | Offline | New |
IMAG0079E | Online | New |
IMAG0080E | Online | New |
IMAG0081E | Online | New |
IMAG0082E | Online | New |
IMAG0083E | Online | New |
LIBI0801E | Offline | New |
LIBI0802E | Offline | New |
LIBI0810E | Offline | New |
LIBI0815E | Offline | New |
LIBI0820E | Offline | New |
LIBI0821E | Offline | New |
LIBI0822E | Offline | New |
LIBI0823E | Offline | New |
LIBI0824E | Offline | New |
LIBI1201T | Offline | New |
LIBI1202T | Offline | New |
LIBI1212T | Offline | New |
LIBI1213T | Offline | New |
LIBI1250T | Offline | New |
LIBI1251T | Offline | New |
LIBI1252T | Offline | New |
LIBI1253T | Offline | New |
LIBI1254T | Offline | New |
LIBI1260T | Offline | New |
STUB0001I | Offline | New |
STUB0010W | Offline | New |
STUB0100E | Offline | New |
STUB0101E | Offline | New |
STUB1200T | Offline | New |
TLDR0200T | Offline | New |
TLDR0201T | Offline | New |
TLDR0202T | Offline | New |
TLDR0210T | Offline | New |
TLDR0211T | Offline | New |
TPFL0002W | Offline | New |
TPFL0003W | Offline | New |
NOT LOADED -- PGM CAN ONLY BE LOADED IN THE BSS | Offline | New |
NOT LOADED -- PGM NOT FOUND IN LIBRARY | Offline | New |
NOT LOADED -- PGM NOT REALTIME | Offline | New |
PARS LIST vv NOT AVAILABLE -- LOAD ENDS | Offline | New |
WARNING -- REP CARD NOT SUPPORTED FOR PROGRAM MODULE | Offline | New |
WARNING -- PROG-MOD-BASE CLEAR CARD INPUT, PROGRAM MODULE WILL BE CLEARED | Offline | New |
00004D | System Error | New |
00004F | System Error | No Longer Supported |
000061 | System Error | New |
000062 | System Error | New |
000063 | System Error | New |
000064 | System Error | New |
000065 | System Error | New |
000066 | System Error | New |
000067 | System Error | New |
000068 | System Error | New |
000069 | System Error | New |
00006A | System Error | New |
00006B | System Error | New |
00006C | System Error | New |
000077 | System Error | New |
000079 | System Error | New |
094000 | System Error | New |
094001 | System Error | New |
094002 | System Error | New |
094004 | System Error | New |
094005 | System Error | New |
094006 | System Error | New |
094007 | System Error | New |
094008 | System Error | New |
094009 | System Error | New |
09400A | System Error | New |
09400B | System Error | New |
09400C | System Error | New |
09400D | System Error | New |
09400F | System Error | New |
The following packaging elements affect TPF performance with ISO-C support.
A TARGET(TPF) program with minimal changes can be transformed to a C load module but some further work will help performance. By linking together several segments rather than making a one-for-one conversion, functional calls between segments are avoided. The overhead of a function call within a load module is significantly less than the overhead of a call to an external DLM. The process of linking several segments together reduces the number of external functions, therefore increasing performance.
Linking several segments together has a disadvantage: because each load module has only one entry point function, some functions within the load module will no longer be callable from outside the load module. If the functions of multiple entry points to the same segment are useful, you may consider using a common segment to serve the several ones that represent each entry point. You also may want to consider forming library functions out of commonly used routines.
TPF Application Programming discusses the performance trade offs for the ISO-C function types. In brief, inline functions perform faster than functions internal to the load module, internal faster than library functions, and library faster than DLMs.
The compiler does not distinguish between writable static and read-only static. There is a performance overhead for reentrant static, particularly when calling library functions. Use the RENT compile-time option when compiling writable static. Functions considered naturally reentrant do not need to be compiled using the RENT option and the overhead associated with reentrant static is avoided. The RENT parameter should be used judiciously for library functions, because it entails performance concerns. If a segment does not specify the RENT option and it does include writable static data a system error occurs.
There are several new or changed data collection functions that provide new information about the TPF 4.1 system.
The new DLM linkage support added to enter/back trace invokes the program collector intercept for all:
No new reduction reports are provided for ISO-C DLM enter/back trace activity, although a new field is provided under the current report.
Storage management routines have added the ISO-C stack frames to the heap frame usage data.
The usage of the CE2MPF field has changed. In the TPF 4.1 system this field was used to indicate how big the managed heap (MALOC) was able to grow. The check for the maximum number of frames has moved to $GMNBC and this field now indicates the total heap storage size allowed which includes requests from both MALOC and $GMNBC.
All ISO-C programs and libraries are loaded into the 31-bit CRPA. This is reflected in the CRPA report.
TARGET(TPF) C support provided a C library macro area (CSTKSVCL) so performance critical TPF macros could be generated without the overhead of allocating a new C stack frame.
For ISO-C support the library work space (LWS) is mapped by the IDSLWS DSECT and replaces the performance critical macro area. To maintain compatibility, all user tags in DSECT ICS0TK have a corresponding tag in the IDSLWS DSECT. The LWS is used by the TPFAPI functions that issue TPF macro calls. Addressability to the area is established by TMSPC. Only the functions that update the area should access data stored in the area.
The TMSPC and TMSEC macros support performance critical macros by providing access to the LWS area, called CSTKSVCL. To use this area for ISO-C functions, code TMSPC LWS=Rx.
Because access to the LWS is different than access to the performance critical macro area, all C library functions that use this area must be modified. The tag names in the critical area are different and code that accesses the critical area must be removed.
As is the case with the performance critical macro area, the LWS can only be used for macros that can not directly or indirectly run another C function. The size of the LWS is accessed through the IDSLWS DSECT. You can make the user expansion area larger by coding a routine in the CENV user exit.
Optimization level 2 improves the performance of ISO-C programs.
There are no changes.
The system initialization program (SIP) automatically builds ISO-C applications and libraries provided by IBM. You must customize the JCL and tools provided to build your own ISO-C libraries and applications.
The size of the 31-bit core resident program area changes due to making all ISO-C programs and libraries core resident. This value must be reflected in CORREQ and CTKA. The minimum amount required for the shipped libraries CTAL and CISO is 403920 bytes. The libraries require 108 #XPRG records for storage on DASD.
Size in memory Size on file (bytes) (# XPRGs) CTAL 87 056 25 CISO 316 864 83 --------- --- TOTAL 403 920 108
The following required activities are performed automatically by SIP:
You must customize the JCL and tools provided for your own libraries and applications.
The SPPBLD macro has 3 new program types:
In addition to the program types there are parameters to specify program reentrancy and to generate a C stub:
#PVR records are now required.
A new required record type has been added, which is #XPRG. This 4 KB record type holds executable ISO-C code. #XPRG records are pointed to by #PROG records. Ordinals for #XPRG records are kept in #PROG records associated with each load module. The number of #XPRG records required can be estimated using the following formula:
number of 4 KB number of overflow Number #XPRGn = records for + directory records records for a machine code needed program size_of_module (size_of_module) / 4096 = -------------- + ----------------------- 4096 500
TARGET(TPF) C applications that currently span several program segments, if they are merged into one ISO-C program, will require only a single PAT entry for the ISO-C load module after migration to ISO-C support. Program segments linked to an ISO-C load module can have their IBMPAL or USRTPF entries reused or removed (changed to SPARE records). This is also true for multiple run-time library functions merged into a single ISO-C library.
The program allocation table entry for ISO-C DLMs and libraries should specify PATTYPE=SHARED. This means that a single copy of the program code is used instead of multiple copies. The PATTYPE=SHARED condition is forced during restart. Because ISO-C support is required to be reentrant, program sharing is not a problem.
The PATLINK field has been added to the program allocation table (PAT) to represent type of program (that is, whether it is basic assembler language, a dynamic link module, an ISO-C library, or TARGET(TPF)).
Allocate new ISO-C libraries as shared with a 31-bit addressing mode and the PRELOAD option set. If an ISO-C DLM or library is loaded to the system using an existing SAL/PAT entry, it is not necessary to change the allocation characteristics. The main storage copy of each ISO-C DLM or Library PAT entry is treated as shared. Restart interrogates all PVR entries (which now contain a field indicating the program type - BAL, TARGET(TPF), DLM, library) and updates the main storage copy PAT entries appropriately.
There are the following changes to the loading process:
There is a change to the ACPL message report.
Table 33 summarizes changes to the publications in the TPF
library. This information is presented in alphabetic order by the
publication title. See the TPF Library Guide
for more information about the TPF library.
Table 33. Changes to TPF Publications for ISO-C Support
Publication Title | Softcopy File Name | Description of Change |
---|---|---|
TPF C Language Support Application Programming | Not Applicable | This publication is no longer part of the TPF library. The information that was found in this publication was merged into TPF Application Programming. |
TPF Application Programming | GTPAPP02 | Contains information from TPF C Language Support Application Programming and TPF C Language Support User's Guide. |
TPF C Language Support Reference Summary | Not Applicable | Functions added and changed. |
TPF C Language Support User's Guide | GTPCLU02 | Functions added and first part merged. |
TPF Concepts and Structures | GTPCON01 | Architecture changed. |
TPF General Macros | GTPGEN02 | Macros added. |
TPF Library Guide | GTPDOC02 | Updated with definitions for new terminology in the master glossary. |
TPF Main Supervisor Reference | GTPMSR01 | Main processor changes. |
Messages (System Error and Offline) and Messages (Online) | Not Applicable | Updated with information about the messages and system errors that were added, changed, and no longer supported for ISO-C support. |
TPF Migration Guide: Program Update Tapes | GTPMIG02 | Updated with migration considerations for ISO-C support. |
TPF Operations | GTPOPR02 | Updated with information about the commands that were added and changed for ISO-C support. |
TPF Program Development Support Reference | GTPPDR02 | Tracing changed. |
TPF Programming Standards | GTPPSM02 | Prologs added and changed. |
TPF System Generation | Installation parameters changed. |
|
TPF System Installation Support Reference | GTPINR02 | User exits and loaders changed. |
TPF System Macros | GTPSYS02 | Macros added. |
Application level coexistence is supported (that is, ISO-C and TARGET(TPF) programs can exist in the same processor).
Existing applications do not need to be recompiled. TARGET(TPF) and BAL applications which currently run on the TPF 4.1 system, can be loaded to the TPF 4.1 ISO-C system without change.
Functions such as the auxiliary loader are written in TARGET(TPF) to allow the new support to be loaded using existing functions.
For ISO-C assembler segments code the BEGIN macro with the TPFISOC=YES parameter (the default is TPFISOC=NO).
ISO-C support requires changes to your existing procedures for compiling C programs. In addition, new procedures for linking load modules and building libraries are required. Several tools are provided to help with these procedures:
A build tool is provided to automate building ISO-C load modules. The tool takes a list of object modules to be contained in the load module. The prelinker should use the NONCAL option to link only the program stubs. Though the tool runs on IBM VM and IBM MVS systems, it only produces JCL to run on an IBM MVS system. If you want to maintain object libraries on the IBM VM system, you must modify the tool.
The library interface tool provides a means for defining libraries. Each library is assigned its own, unique library ordinal. These library ordinals must be managed carefully. When conflicts arise, the libraries must be rebuilt, the interface relinked, and the libraries reloaded.
The DLM stub generator tool adds DLM call stubs to an object library.
Changes to your source library system may be needed. The name of the object modules within the load module can be 8 characters long (including a 2-character version code).
See TPF Application Programming for more information about these tools.
There are the following changes to the application programming interface (API):
TPFEQ is not required for ISO-C support and does not #include the same headers as it did for TARGET(TPF).
Header files and macros contain conditional compilation or assembly statements that allow double use for both non-ISO-C (BAL and TARGET(TPF)) and for ISO-C support.
The TMSPC macro in ISO-C support corresponds to the ICPLOG macro in TARGET(TPF). The TMSPC macro is used to write assembly language routines. The interface begins by preserving the C environment and restoring the TPF register conventions. It can also allocate a stack frame for the function.
The TMSEC macro in ISO-C support corresponds to the ICELOG macro in TARGET(TPF). It is required for writing C functions in assembly language. The TMSEC macro restores registers and returns the environment for the calling C language program. In addition if a stack frame is allocated by TMSPC, it is released by TMSEC.
The PPANAME parameter of the TMSPC macro provides a way to place a name in the name field (PPA1) in TMSPC. This is useful for debugging. See the TMSPC macro in TPF General Macros for more information.
A minimal migration strategy can involve putting an ISO-C prolog and epilog macro around a call to an unmodified TARGET(TPF) function as long as the function uses structures unmodified by ISO-C support. The TMSPC prolog macro requires the MIGRATION=YES parameter in this case to handle the necessary register switching.
The CTRT40 object module (OCO), found in the ACP.OBJ.RELvv PDS, must be copied to the ACP.CLIB.RELvv PDS and renamed to @@TRT. Failure to do this can cause the prelink step of an ISO-C DLM or Library to fail with RC=4 and the message
WARNING EDC4015: Unresolved references are detected: @@TRT
There are changes for the #PVR and #XPRG records.
There are no changes.
There are no changes.
This section provides information about migrating and installing ISO-C support.
See TPF Application Programming for more information about creating C libraries.
Additional Information:
See TPF Application Programming for more information about the C libraries.