Open System Services Porting Guide (G06.24+, H06.03+)
Table Of Contents
- What’s New in This Manual
- About This Manual
- 1 Introduction to Porting
- 2 The Development Environment
- 3 Useful Porting Tools
- 4 Interoperating Between User Environments
- Purpose of Interoperability
- The OSS User Environment
- OSS Commands for the Guardian User
- Guardian Commands for the UNIX User
- OSS Pathname and Guardian Filename Conversions
- Running the OSS Shell and Commands From TACL
- Running Guardian Commands From the OSS Shell
- Running OSS Processes With Guardian Attributes
- Using OSS Commands to Manage Guardian Objects
- 5 Interoperating Between Programming Environments
- 6 OSS Porting Considerations
- 7 Porting UNIX Applications to the OSS Environment
- 8 Migrating Guardian Applications to the OSS Environment
- General Migration Guidelines
- C Compiler Issues for Guardian Programs
- Using New and Extended Guardian Procedures
- Using OSS Functions in a Guardian Program
- Interoperating With OSS Programs
- Starting an OSS Program From the Guardian Environment
- C Compiler Considerations for OSS Programs
- Porting a Guardian Program to the OSS Environment
- How Arguments Are Passed to the C or C++ Program
- Differences in the Two Run-Time Environments
- Which Run-Time Routines Are Available
- Use of Common Run-Time Environment (CRE) Functions
- Replacing Guardian Procedure Calls With Equivalent OSS Functions
- Which IPC Mechanisms Can Be Used
- Interactions Between Guardian and OSS Functions
- 9 Porting From Specific UNIX Systems
- 10 Native Migration Overview
- 11 Porting or Migrating Sockets Applications
- 12 Porting Threaded Applications
- A Equivalent OSS and UNIX Commands for Guardian Users
- B Equivalent Guardian Commands for OSS and UNIX Users
- C Equivalent Inspect Debugging Commands for dbx Commands
- D Equivalent Native Inspect Debugging Commands for dbx Commands
- E Standard POSIX Threads Functions: Differences Between the Previous and Current Standards
- Glossary
- Index
Contents
Open System Services Porting Guide—520573-006
iii
4. Interoperating Between User
Environments (continued)
4. Interoperating Between User Environments (continued)
Using OSS Commands to Manage Guardian Objects 4-23
Managing Guardian Processes From the OSS Shell 4-23
Manipulating Guardian Files From the OSS Shell 4-23
5. Interoperating Between Programming Environments
Interoperability 5-1
Major Differences Between Programming Environments 5-2
Header Files 5-3
Use of Feature-Test Macros 5-3
Function Entry Points Defined in Header Files 5-4
Role of the cextdecs.h File for Accessing Guardian Procedures 5-4
API Interoperability 5-4
API Interoperability Tables 5-5
Environment-Specific Functions 5-5
Process Interoperability 5-6
Process-Creation Interoperability 5-6
Process-Management Interoperability 5-7
Process-Termination Interoperability 5-9
File Interoperability 5-9
Accessing Files From the OSS API 5-9
Accessing Files From the Guardian API 5-10
Guardian Procedures Extended for OSS Files 5-11
Native Signal Interoperability 5-11
I/O Interoperability 5-12
Tape I/O 5-12
Terminal I/O 5-13
Printer I/O 5-13
Mixed-Module Programming 5-13
Design Considerations and Steps 5-15
Mixed-Language Programming 5-15
6. OSS Porting Considerations
UNIX Features Requiring Substitution 6-1
Memory Mapped Files 6-2
Multiple Threads in Applications 6-2
The STREAMS Feature 6-2
The poll() Function 6-3
TLI/XTI 6-3