gtpm2m1zMigration Guide: Program Update Tapes

Open Systems Infrastructure (APAR PJ26188)

The following section discusses the migration considerations for open systems infrastructure.

Prerequisite APARs

See the APEDIT for APAR PJ26188 for information about prerequisite APARs.

Functional Overview

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:

Architecture

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

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.

Pipes

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.

Signals

Open systems infrastructure provides:

Password and Group Files

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.

Operating Environment Requirements and Planning Information

There are none.

Interface Changes

The following section summarizes interface changes.

C/C++ Language

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.

Build Scripts

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.

Dynamic Load Module (DLM) Stubs

There are no changes.

General Use C/C++ Language Header Files

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

Implementation-Specific C/C++ Language Header Files (IBM Use Only)

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.

Table 594. Changes to Implementation-Specific C/C++ Language Header Files (IBM Use Only) for Open Systems Infrastructure

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

Library Interface Scripts

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.

Library Members (Object Files)

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.

Link-Edited Modules

There are no changes.

Members (Object Files)

Table 597 summarizes changes to members (object files). This information is presented in alphabetic order by the name of the member (object file).

Notes:

  1. You must recompile or reassemble a member (object file) if it has changed.

  2. You must prelink and link a dynamic load module (DLM) if it has changed.

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.

Object Code Only (OCO) Stubs

There are no changes.

Configuration Constant (CONKC) Tags

There are no changes.

Control Program Interface (CINFC) Tags

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

Copy Members

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.

Fixed File Records

There are no changes.

Macros

The following section summarizes the macro changes. This information is presented in alphabetic order by the type of macro.

Advanced Program-to-Program Communications (APPC) Macros

There are no changes.

Communication Macros and Statements

There are no changes.

Data Macros

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

General Macros

There are no changes.

Selected Equate Macros

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

Structured Programming Macros (SPMs)

There are no changes.

System Initialization Program (SIP) Skeleton and Internal Macros (Inner Macros)

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

System Initialization Program (SIP) Stage I Macros and Statements

There are no changes. See System Initialization Program (SIP) and System Generation Changes for a description of other system generation changes you must make.

System Initialization Program (SIP) Stage II Macros

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

System Communication Keypoint (SCK) Generation Macros

There are no changes.

System Macros

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

System Macros (IBM Use Only)

There are no changes.

Segments

There are no changes.

System Equates

There are no changes.

User Exits

There are no changes.

Functional and Operational 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.

Commands

There are no changes.

Messages and System Errors

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

Performance or Tuning Changes

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.

Storage Considerations and Changes

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.

System Initialization Program (SIP) and System Generation Changes

There are no changes.

Loading Process Changes

There are no changes.

Online System Load Changes

There are no changes.

Publication 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.

Host System Changes

There are no changes.

Application Programming Interface (API) 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.

Database Changes

There are no changes.

Feature Changes

There are no changes.

Installation Validation

There are no changes.

Migration Scenarios

Before You Begin
  • Ensure that your TPF 4.1 system is at program update tape (PUT) 9. See Program Update Tape 9 (PUT 9) for more information about PUT 9. In addition, ensure that the file system is enabled. See File System Support (APAR PJ25089) for more information about enabling the file system.
  • If you are using IBM Extended Operations Console Facility/2 (EOCF/2), install APAR IC21067.

Use the following procedure to install open systems infrastructure on your existing TPF 4.1 system.

  1. Install program update tape (PUT) 10 on your TPF 4.1 system.
  2. Perform an initial program load (IPL) and cycle the TPF 4.1 system to NORM state.
  3. Enter ZINET STOP to stop the Internet daemon. See TPF Operations for information about the ZINET STOP command.
  4. Enter ZFILE ls -l to create your password and group files. See TPF Operations for information about the ZFILE ls command.
    Note:
    System errors 007783 and 007785 will occur to indicate that the password and group files, respectively, have been created. See Messages (System Error and Offline) for information about these system errors.

    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.

  5. Enter ZINET START to start the Internet daemon. See TPF Operations for information about the ZINET START command.