Open System Services Porting Guide (G06.29+, H06.06+, J06.03+)
Converting TAL or pTAL Code to C or C++..........................................................................138
Using New and Extended Guardian Procedures in Guardian Programs..................................138
Using OSS Functions in a Guardian Program.......................................................................138
Communicating With OSS Programs..................................................................................138
Migrating a Guardian Program to the OSS Environment........................................................138
C Compiler Issues for Guardian Programs................................................................................139
Compiler Tools................................................................................................................139
Memory and Data Models in TNS and Native Environments..................................................140
Header Files....................................................................................................................140
Include File Search Order.................................................................................................141
Using Pragmas................................................................................................................141
Preprocessor Symbols.......................................................................................................141
Binding TNS Programs.....................................................................................................142
Linking Native Programs...................................................................................................142
Equivalent OSS Commands for Compiling Guardian Programs..............................................142
Using New and Extended Guardian Procedures.......................................................................143
Guardian Security Procedures............................................................................................143
Guardian File System Procedures.......................................................................................144
Guardian Process-Management Procedures.........................................................................145
Using OSS Functions in a Guardian Program...........................................................................146
Memory and Data Models to Be Used................................................................................147
Process Target Type..........................................................................................................147
Use of Environment-Specific Functions ................................................................................147
Object Type Being Manipulated........................................................................................148
Language or C Environment Type.......................................................................................148
API Interoperability...........................................................................................................148
Side Effects.....................................................................................................................149
Interoperating With OSS Programs.........................................................................................149
$RECEIVE.......................................................................................................................149
Using FIFOs....................................................................................................................150
Using Files......................................................................................................................150
Using Queue Files............................................................................................................150
Using Shared Memory......................................................................................................150
Using Semaphores...........................................................................................................151
Using Intermediate Processes.............................................................................................151
Using Signals..................................................................................................................151
Starting an OSS Program From the Guardian Environment.........................................................152
Using OSH From TACL......................................................................................................152
Using system() in a Guardian Program................................................................................152
Using PROCESS_SPAWN_ in a Guardian Program..............................................................152
Using the Guardian LISTNER Program................................................................................154
C Compiler Considerations for OSS Programs..........................................................................155
Compiler Tools................................................................................................................155
Memory and Data Models................................................................................................156
Header Files....................................................................................................................156
Include File Search Order.................................................................................................156
New Pragmas.................................................................................................................156
Feature Test Macros .........................................................................................................157
Predefined Preprocessor Symbols.......................................................................................157
Linking...........................................................................................................................157
Porting a Guardian Program to the OSS Environment................................................................158
How Arguments Are Passed to the C or C++ Program...........................................................158
Differences in the Two Run-Time Environments......................................................................158
Which Run-Time Routines Are Available..............................................................................159
Use of Common Run-Time Environment (CRE) Functions.........................................................160
Contents 9