gtpc2mjq | C/C++ Language Support User's Guide |
You must complete the following tasks to create or update C language TPF globals on MVS (steps 1-3 are automated by GLOBHJCL):
Specify the ADATA option (the cross reference is not required; cross reference information is ignored by the GNTAGH program).
The SYSADATA file that is produced will be used as input to the GNTAGH program. It may be kept in either a user-catalogued data set (under MVS/TSO), or in a temporary data set used with JCL (under MVS/JES).
If your installation runs a nonstandard global system in which the attributes of global blocks or areas are different from those defined by IBM, you must:
You must pay particular attention to the array of struct blk_desc called block. This array is defined in the GNTAGH program. Each item in this array describes a global block, and contains the following items, which must be initialized to constant values before compiling the GNTAGH program:
The remainder of structure members are initialized at program run time and will be overwritten if initialized.
The HLASM SYSADATA output data set must be associated with the DD name INFILE.
Use ACP.CHDR.RELvv(C$GLOBZ) for the DD name OUTFILE. Because the GNTAGH program has no DCB information coded for this file, you must provide it. The DCB information is required on either the JES3 DD JCL statement or in the TSO ALLOC statement. The following DCB specification is recommended:
DCB=(RECFM=F,LRECL=80)
If any of a global tagname's attributes change, you need to reconstruct the c$globz.h header file so that C functions are accessing the new information.
You must also recreate the c$globz.h header file whenever any of the following events occur:
Figure 3. Creating C Language Global Tagnames