gtpm2m1z | Migration Guide: Program Update Tapes |
The following section discusses the migration considerations for open systems infrastructure.
See the APEDIT for APAR PJ26188 for information about prerequisite APARs.
Porting applications would not be practical if the time required to port outweighs a complete rewrite of the applications. From a management point of view, application porting is advantageous, especially across platforms. The benefits of porting code include stable, highly efficient, reliable, well-documented, mature, and scalable applications. By abstracting system services and encapsulating them into a common set of application programming interfaces (APIs), it is not necessary for application programmers to be aware of system peculiarities and, therefore, they can concentrate on providing business solutions.
Open systems infrastructure eases the porting of applications written for other systems to run in the TPF 4.1 system by providing:
The primary objective of open systems infrastructure is to provide a platform-independent layer based on the TPF combined POSIX and X/Open interfaces to ease porting as well as encourage development of new applications for the TPF 4.1 system.
The following information describes the changes that were made to the TPF 4.1 system to make this possible.
Shared memory is based on the X/Open interface and uses TPF 4.1 system heap storage as the underlying memory resource. Shared memory is allocated as units called shared memory segments.
There is a maximum of 70 shared memory segments allowed in the TPF 4.1 system at any time to minimize the loss of memory when shared memory is not returned by a process that exits.
The usage of shared memory segments and the number of TPF 4.1 system heap frames used by shared memory are recorded by data collection and reported by data reduction.
A pipe is a POSIX implementation of a first-in-first-out (FIFO) system buffer that is accessed through a file descriptor. A pipe is read from and written to by using the file system read and write interfaces respectively.
A pipe buffer consists of two 4-KB system heap frames for a total of 8 KB.
If a signal interrupt is received during a blocked read or write operation for a pipe, control is returned to the user application.
Open systems infrastructure provides:
If password and group files are not found when accessed initially, they are created automatically with default characteristics. You can customize them using file system commands implemented through the ZFILE command.
There are none.
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 592 summarizes changes to the build scripts used by the build
tool. This information is presented in alphabetic order by the name of
the build script.
Table 592. Changes to Build Scripts for Open Systems Infrastructure
Build Script | Type | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|
CBOTBS | DLM | Changed | Changed the initialization of the file system. |
CHSMBS | DLM | New | Build script for the shared memory support. |
CISOBS | DLM | Changed | Added new signal functions. |
COMXBS | DLM | Changed | Added the password and group files. |
There are no changes.
Table 593 summarizes the general use C/C++ language header file changes. This information is presented in alphabetic order by the name of the general use C/C++ language header file.
General use means these header files are available for your
use.
Table 593. Changes to General Use C/C++ Language Header Files for Open Systems Infrastructure
C/C++ Language Header File | New, Changed, or No Longer Supported? | Do You Need to Recompile Segments? |
---|---|---|
c$cbuf.h | New | Not Applicable |
c$proc.h | Changed | Yes |
c$spif.h | Changed | No |
grp.h | Changed | No |
limits.h | Changed | No |
netdb.h | Changed | No |
pwd.h | Changed | No |
signal.h | Changed | No |
sys/ipc.h | New | Not Applicable |
sys/modes.h | Changed | No |
sys/shm.h | New | Not Applicable |
sys/types.h | Changed | No |
unistd.h | Changed | No |
Table 594 summarizes the general use C/C++ language header file
changes that are for IBM use only. This information is presented in
alphabetic order by the name of the general use C/C++ language header
file.
C/C++ Language Header File (IBM Use Only) | New, Changed, or No Longer Supported? | Do You Need to Recompile Segments? |
---|---|---|
c$dgrp.h | No Longer Supported | No |
c$dpwd.h | No Longer Supported | No |
c$pwgr.h | No Longer Supported | No |
i$cp1.h | New | Not Applicable |
i$dd1.h | New | Not Applicable |
i$dd2.h | New | Not Applicable |
i$dgrp.h | New | Not Applicable |
i$dpwd.h | New | Not Applicable |
i$fsdd.h | Changed | Yes |
i$fslk.h | Changed | Yes |
i$fsqu.h | Changed | Yes |
i$glue.h | Changed | Yes |
i$opfd.h | Changed | Yes |
i$pgdf.h | New | Not Applicable |
i$pwgr.h | New | Not Applicable |
i$shm.h | New | Not Applicable |
Table 595 summarizes changes to the library interface scripts used by
the library interface tool and the build tool. This information is
presented in alphabetic order by the name of the library interface
script.
Table 595. Changes to Library Interface Scripts for Open Systems Infrastructure
Library Interface Script | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|
COMXXV | Changed | Added the functions for shared memory, pipes, and signals. |
Table 596 summarizes the library member (object file) changes.
This information is presented in alphabetic order by the name of the library
member (object file).
Table 596. Changes to Library Members (Object Files) for Open Systems Infrastructure
Library Member (Object File) | Library Module Name | New, Changed, or No Longer Supported? | Type | Description of Change |
---|---|---|---|---|
CDDPIP | COMX | New | C Language | Added the pipe device driver. |
CDDTBL | COMX | Changed | C Language | Changed the device driver table. |
CFORKC | COMX | Changed | C Language | Changed the tpf_fork function implementation. |
CFS005 | COMX | Changed | C Language | Changed the close function implementation. |
CFS008 | COMX | Changed | C Language | Changed the dup function implementation. |
CFS009 | COMX | Changed | C Language | Changed the dup2 function implementation. |
CFS010 | COMX | Changed | C Language | Changed the fchmod function implementation. |
CFS011 | COMX | Changed | C Language | Changed the fchown function implementation. |
CFS012 | COMX | Changed | C Language | Changed the fcntl function implementation. |
CFS013 | COMX | Changed | C Language | Changed the fstat function implementation. |
CFS014 | COMX | Changed | C Language | Changed the fsync function implementation. |
CFS015 | COMX | Changed | C Language | Changed the ftruncate function implementation. |
CFS018 | COMX | Changed | C Language | Changed the lseek function implementation. |
CFS021 | COMX | Changed | C Language | Changed the mknod function implementation. |
CFS022 | COMX | Changed | C Language | Changed the open function implementation. |
CFS024 | COMX | Changed | C Language | Changed the read function implementation. |
CFS032 | COMX | Changed | C Language | Changed the symlink function implementation. |
CFS033 | COMX | Changed | C Language | Changed the tmpfile function implementation. |
CFS035 | COMX | Changed | C Language | Changed the umask function implementation. |
CFS037 | COMX | Changed | C Language | Changed the utime function implementation. |
CFS038 | COMX | Changed | C Language | Changed the write function implementation. |
CFS102 | COMX | Changed | C Language | Changed an internal function. |
CFS107 | COMX | Changed | C Language | Changed an internal function. |
CFS110 | COMX | Changed | C Language | Changed an internal function. |
CFS115 | COMX | Changed | C Language | Changed an internal function. |
CFS116 | COMX | Changed | C Language | Changed an internal function. |
CFS130 | COMX | Changed | C Language | Changed an internal function. |
CFS139 | COMX | Changed | C Language | Changed an internal function. |
CFS149 | COMX | Changed | C Language | Changed an internal function. |
CFS154 | COMX | Changed | C Language | Changed an internal function. |
CFS504 | COMX | Changed | C Language | Changed a device driver. |
CFS554 | COMX | Changed | C Language | Changed a device driver. |
CFS604 | COMX | Changed | C Language | Changed a device driver. |
CFTOK | COMX | New | Object Code Only | Added the ftok function. |
CGRPIP | COMX | New | Assembler | Added the get and release pipe storage routine. |
CGTHBA | COMX | Changed | Object Code Only | Changed the gethostbyaddr function. |
CGTHBN | COMX | Changed | Object Code Only | Changed the gethostbyname function. |
CPIPE | COMX | New | C Language | Added the pipe function. |
CPWGR0 | COMX | Changed | C Language | Changed the APIs for password and group files. |
CPWGR1 | COMX | New | C Language | Moved the APIs for group files from CPWGR0 to CPWGR1. |
CSAWNC | COMX | New | Assembler | Added an internal function. |
CSHCTL | COMX | New | C Language | Added the shmctl function. |
CSHDET | COMX | New | C Language | Added the shmdt function. |
CSHGET | COMX | New | C Language | Added the shmget function. |
CSHMAT | COMX | New | C Language | Added the shmat function. |
CSIGAC | COMX | New | C Language | Added the sigaction function. |
CSIGAL | COMX | Changed | C Language | Changed the alarm function. |
CSIGDP | CISO | Changed | C Language | Added SIGPIPE signal support. |
CSIGKL | COMX | Changed | C Language | Changed the kill function. |
CSIGPA | COMX | New | C Language | Added the pause function. |
CSIGPM | COMX | New | C Language | Added the sigprocmask function. |
CSIGPN | COMX | New | C Language | Added the sigpending function. |
CSIGPS | COMX | Changed | C Language | Added SIGPIPE signal support and changed the tpf_process_signals function. |
CSIGR | CISO | Changed | C Language | Added SIGPIPE signal support and changed the raise function. |
CSIGSL | COMX | Changed | C Language | Changed the sleep function. |
CSIGSP | COMX | New | C Language | Added the sigsuspend function. |
CSIGWP | COMX | Changed | C Language | Changed the waitpid function. |
CWTOPC | CTAL | Changed | Assembler | Changed the wtopc function implementation. |
CXXFUN | CISO | Changed | Object Code Only | Added the shared memory functions. |
C1FDOP | CISO | Changed | Object Code Only | Changed the fdopen function implementation. |
C1OHFS | CISO | Changed | Object Code Only | Changed the FILE open macro processing. |
C1P124 | CISO | Changed | Object Code Only | Changed the FILE macro processing. |
There are no changes.
Table 597 summarizes changes to members (object files). This information is presented in alphabetic order by the name of the member (object file).
Notes:
Table 597. Changes to Members (Object Files) for Open Systems Infrastructure
Member (Object File) | DLM/DLL | New, Changed, or No Longer Supported? | Type | Description of Change |
---|---|---|---|---|
CCCITA | CMQS | Changed | Object Code Only | Changed the gethostbyname function. |
CFIN | CFIN | Changed | C Language | Added shared memory table initialization. |
CHSM | CHSM | New | C Language | Added the exitc function cleanup routine. |
CLTQ | CLTN | Changed | Object Code Only | Changed the gethostbyaddr function. |
CLTT | CLTN | Changed | Object Code Only | Changed the gethostbyaddr and gethostbyname functions. |
CSIGLS | CFI1 | New | C Language | Added a table that contains the signal values. |
There are no changes.
There are no changes.
Table 598 summarizes the control program interface (CINFC) tag
changes. The information in this table is ordered numerically by the
equate value.
Table 598. Changes to CINFC Tags for Open Systems Infrastructure
CINFC Tag | Equate Value | New, Changed, or No Longer Supported? |
---|---|---|
CMMSHMM | 379 | New |
Table 599 summarizes the copy member changes. This information
is presented in alphabetic order by the name of the copy member.
Table 599. Changes to Copy Members for Open Systems Infrastructure
Copy Member | Type | CSECT Where Copy Member Is Located | DLM Where CSECT Is Located | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|---|---|
CCEB | Control Program | CCENBK | Not Applicable | Changed | Changed the exitc function cleanup routine and added SIGPIPE signal support. |
CCE4 | Control Program | CCIISC | Not Applicable | Changed | Added SIGPIPE signal support. |
CHSZ | Control Program | CCNUCL | Not Applicable | Changed | Added SIGPIPE signal support and the routine to clear fields in the c$iproc.h header. |
CICR | Control Program | CCNUCL | Not Applicable | Changed | Added an emergency unlock routine. |
CIEF | Control Program | CCCIEF | Not Applicable | Changed | Added the SANQC and SAWNC macro routines. |
CPSL | Control Program | CCCPSE | Not Applicable | Changed | Added the routine to dump shared memory segments. |
CT40 | Control Program | CCCTIN | Not Applicable | Changed | Added SIGPIPE signal support. |
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 600 summarizes the data macro changes. This information
is presented in alphabetic order by the name of the data macro.
Table 600. Changes to Data Macros for Open Systems Infrastructure
Data Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs Using This Data Macro? |
---|---|---|
IDSEVN | Changed | No |
IDSHM | New | Not Applicable |
IOPFD | Changed | Yes |
IPROC | Changed | Yes |
There are no changes.
Table 601 summarizes the selected equate macro changes. This
information is presented in alphabetic order by the name of the selected
equate macro.
Table 601. Changes to Selected Equate Macros for Open Systems Infrastructure
Selected Equate Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
CZ1SE | Changed | Yes |
DLTEC | Changed | Yes |
There are no changes.
Table 602 summarizes the system initialization program (SIP) skeleton
and internal macro changes. This information is presented in alphabetic
order by the name of the SIP skeleton and internal macro. 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.
Table 602. Changes to SIP Skeleton and Internal Macros for Open Systems Infrastructure
SIP Skeleton and Internal Macro | New, Changed, or No Longer Supported? |
---|---|
SPPGML | Changed |
There are no changes. See System Initialization Program (SIP) and System Generation Changes for a description of other system generation changes you must make.
Table 603 summarizes system initialization program (SIP) Stage II
macro changes. This information is presented in alphabetic order by the
name of the SIP Stage II macro. 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 603. Changes to SIP Stage II Macros for Open Systems Infrastructure
SIP Stage II Macro | New, Changed, or No Longer Supported? |
---|---|
IBMPAL | Changed |
There are no changes.
Table 604 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 604. Changes to System Macros for Open Systems Infrastructure
System Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
IBMSVC | Changed | Yes |
SANQC | New | Not Applicable |
SAWNC | New | Not Applicable |
There are no changes.
There are no changes.
There are no changes.
There are no changes.
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.
There are no changes.
Table 605 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 605. Changes to Messages and System Errors for Open Systems Infrastructure
Message ID or System Error Number | Message Type | New, Changed, or No Longer Supported? |
---|---|---|
007778 | System Error | New |
007779 | System Error | New |
007780 | System Error | New |
007781 | System Error | New |
007783 | System Error | New |
007785 | System Error | New |
CFIN0008E | Online | New |
The system summary report produced by data reduction includes shared memory usage. See TPF System Performance and Measurement Reference for more information about the system summary report.
Shared memory and pipes cause an increase in the use of system heap storage. Use the ZCTKA DISPLAY and the ZCTKA ALTER commands to display and change the size of system heap storage, respectively. See TPF Operations for more information about these functional messages.
The number of bytes of shared memory used by your applications can be estimated by adding up the sizes of shared memory specified by the shmget function calls. A pipe buffer consists of 2 system heap frames; multiply the number of pipe buffers used by your applications by 2 to estimate the number system heap frames needed for pipe buffers. See the CORREQ macro in TPF System Generation for more information about calculating the number of frames required for your TPF system.
There are no changes.
There are no changes.
There are no changes.
Table 606 summarizes changes to the publications in the TPF
library. This information is presented in alphabetic order by the
publication title. See theTPF Library Guide
for more information about the TPF library.
Table 606. Changes to TPF Publications for Open Systems Infrastructure
Publication Title | Softcopy File Name | Description of Change |
---|---|---|
TPF Application Programming | GTPAPP09 | Updated with information about pipe support and POSIX-compliant APIs for process control added by open systems infrastructure. |
TPF C/C++ Language Support User's Guide | GTPCLU0A | Updated with information about C functions that were added and changed by open systems infrastructure. |
TPF General Macros | GTPGEN0A | Updated with information about general macros that were changed by open systems infrastructure. |
TPF Library Guide | GTPDOC0A | Updated with definitions for new terminology in the master glossary. |
Messages (System Error and Offline) and Messages (Online) | Not Applicable | Updated with information about messages and system errors that were added, changed, and no longer supported for open systems infrastructure. |
TPF Migration Guide: Program Update Tapes | GTPMG200 | Updated with migration considerations for open systems infrastructure. |
TPF Program Development Support Reference | GTPPDR0A | Updated with information about the dump label that was added by open systems infrastructure. |
TPF System Macros | GTPSYS0A | Updated with information about the system macros that were added by open systems infrastructure. |
TPF System Performance and Measurement Reference | GTPSPR09 | Updated with information about the new information in data collection and reduction reports that was added by open systems infrastructure. |
TPF Transmission Control Protocol/Internet Protocol | GTPCLW06 | Updated with information about functions that were changed by open systems infrastructure. |
There are no changes.
The interfaces to the gethostbyaddr and gethostbyname functions are changed to correspond to the Berkeley Software Distribution (BSD) version of the UNIX standards to ease porting efforts. As a result of this change, callers of these functions require some minor modifications:
See TPF Transmission Control Protocol/Internet Protocol for more information about the gethostbyaddr and gethostbyname functions.
There are no changes.
There are no changes.
There are no changes.
Before You Begin |
---|
|
Use the following procedure to install open systems infrastructure on your existing TPF 4.1 system.
Enter ZFILE ls -l /etc to verify that the /etc/passwd password file and the /etc/group group file were created.
Update your password and group files with any modifications needed for your environment.