#if (defined(__IBMC__) || defined(__IBMCPP__))
#pragma info( none )
#ifndef __CHKHDR__
   #pragma info( none )
#endif
#pragma info( restore )
#endif

#ifndef __process_h
   #define __process_h

   #ifdef __cplusplus
      extern "C" {
   #endif

   #ifndef  _LNK_CONV
      #ifdef _M_I386
         #define _LNK_CONV   _Optlink
      #else
         #define _LNK_CONV
      #endif
   #endif

   #ifndef _IMPORT
      #ifdef __IMPORTLIB__
         #define _IMPORT _Import
      #else
         #define _IMPORT
      #endif
   #endif

   /********************************************************************/
   /*  <process.h> header file                                         */
   /*                                                                  */
   /*  IBM VisualAge C++ for OS/2, Version 3.00                        */
   /*  (C) Copyright IBM Corp. 1991, 1995.                             */
   /*  - Licensed Material - Program-Property of IBM                   */
   /*  - All rights reserved                                           */
   /*                                                                  */
   /********************************************************************/

   #if (defined(__EXTENDED__)  || defined(__MW_EXT_ANSI__))

      /* Modeflag values for spawnxx routines */

      #define P_WAIT          0
      #define P_NOWAIT        1
      #define P_OVERLAY       2

      /* Action codes used with cwait() */

      #define WAIT_CHILD      0
      #define WAIT_GRANDCHILD 1

      /* function prototypes */

      void _IMPORT _LNK_CONV abort( void );
      void _IMPORT _LNK_CONV exit( int );
      int  _IMPORT _LNK_CONV system( const char * );

      void _IMPORT _LNK_CONV _exit( int );

      int  _IMPORT _LNK_CONV _execl( char *, char *, ... );
      int  _IMPORT _LNK_CONV _execle( char *, char *, ... );
      int  _IMPORT _LNK_CONV _execlp( char *, char *, ... );
      int  _IMPORT _LNK_CONV _execlpe( char *, char *, ... );
      int  _IMPORT _LNK_CONV _spawnl( int, char *, char *, ... );
      int  _IMPORT _LNK_CONV _spawnle( int, char *, char *, ... );
      int  _IMPORT _LNK_CONV _spawnlp( int, char *, char *, ... );
      int  _IMPORT _LNK_CONV _spawnlpe( int, char *, char *, ... );

      int  _IMPORT _LNK_CONV  execl( char *, char *, ... );
      int  _IMPORT _LNK_CONV  execle( char *, char *, ... );
      int  _IMPORT _LNK_CONV  execlp( char *, char *, ... );
      int  _IMPORT _LNK_CONV  execlpe( char *, char *, ... );
      int  _IMPORT _LNK_CONV  spawnl( int, char *, char *, ... );
      int  _IMPORT _LNK_CONV  spawnle( int, char *, char *, ... );
      int  _IMPORT _LNK_CONV  spawnlp( int, char *, char *, ... );
      int  _IMPORT _LNK_CONV  spawnlpe( int, char *, char *, ... );

    #if (defined(__IBMC__) || defined(__IBMCPP__))
      #ifdef __OS2__
      #pragma map( _execl   , "_execl_ansi"    )
      #pragma map( _execle  , "_execle_ansi"   )
      #pragma map( _execlp  , "_execlp_ansi"   )
      #pragma map( _execlpe , "_execlpe_ansi"  )
      #pragma map( _spawnl  , "_spawnl_ansi"   )
      #pragma map( _spawnle , "_spawnle_ansi"  )
      #pragma map( _spawnlp , "_spawnlp_ansi"  )
      #pragma map( _spawnlpe, "_spawnlpe_ansi" )

      #pragma map(  execl   , "_execl_ansi"    )
      #pragma map(  execle  , "_execle_ansi"   )
      #pragma map(  execlp  , "_execlp_ansi"   )
      #pragma map(  execlpe , "_execlpe_ansi"  )
      #pragma map(  spawnl  , "_spawnl_ansi"   )
      #pragma map(  spawnle , "_spawnle_ansi"  )
      #pragma map(  spawnlp , "_spawnlp_ansi"  )
      #pragma map(  spawnlpe, "_spawnlpe_ansi" )
      #else
      #pragma map(  _execl   , "?_execl_ansi"    )
      #pragma map(  _execle  , "?_execle_ansi"   )
      #pragma map(  _execlp  , "?_execlp_ansi"   )
      #pragma map(  _execlpe , "?_execlpe_ansi"  )
      #pragma map(  _spawnl  , "?_spawnl_ansi"   )
      #pragma map(  _spawnle , "?_spawnle_ansi"  )
      #pragma map(  _spawnlp , "?_spawnlp_ansi"  )
      #pragma map(  _spawnlpe, "?_spawnlpe_ansi" )

      #pragma map(  execl   , "?_execl_ansi"    )
      #pragma map(  execle  , "?_execle_ansi"   )
      #pragma map(  execlp  , "?_execlp_ansi"   )
      #pragma map(  execlpe , "?_execlpe_ansi"  )
      #pragma map(  spawnl  , "?_spawnl_ansi"   )
      #pragma map(  spawnle , "?_spawnle_ansi"  )
      #pragma map(  spawnlp , "?_spawnlp_ansi"  )
      #pragma map(  spawnlpe, "?_spawnlpe_ansi" )
      #endif
    #else
      #pragma Alias( _execl   , "_execl_ansi"    )
      #pragma Alias( _execle  , "_execle_ansi"   )
      #pragma Alias( _execlp  , "_execlp_ansi"   )
      #pragma Alias( _execlpe , "_execlpe_ansi"  )
      #pragma Alias( _spawnl  , "_spawnl_ansi"   )
      #pragma Alias( _spawnle , "_spawnle_ansi"  )
      #pragma Alias( _spawnlp , "_spawnlp_ansi"  )
      #pragma Alias( _spawnlpe, "_spawnlpe_ansi" )

      #pragma Alias(  execl   , "_execl_ansi"    )
      #pragma Alias(  execle  , "_execle_ansi"   )
      #pragma Alias(  execlp  , "_execlp_ansi"   )
      #pragma Alias(  execlpe , "_execlpe_ansi"  )
      #pragma Alias(  spawnl  , "_spawnl_ansi"   )
      #pragma Alias(  spawnle , "_spawnle_ansi"  )
      #pragma Alias(  spawnlp , "_spawnlp_ansi"  )
      #pragma Alias(  spawnlpe, "_spawnlpe_ansi" )
    #endif

      int  _IMPORT _LNK_CONV _cwait( int *, int, int );
      int  _IMPORT _LNK_CONV _execv( char *, char ** );
      int  _IMPORT _LNK_CONV _execve( char *, char **, char ** );
      int  _IMPORT _LNK_CONV _execvp( char *, char ** );
      int  _IMPORT _LNK_CONV _execvpe( char *, char **, char ** );
      int  _IMPORT _LNK_CONV _getpid( void );
      int  _IMPORT _LNK_CONV _spawnv( int, char *, char ** );
      int  _IMPORT _LNK_CONV _spawnve( int, char *, char **, char ** );
      int  _IMPORT _LNK_CONV _spawnvp( int, char *, char ** );
      int  _IMPORT _LNK_CONV _spawnvpe( int, char *, char **, char ** );
      int  _IMPORT _LNK_CONV _wait( int * );

      int  _IMPORT _LNK_CONV  cwait( int *, int, int );
      int  _IMPORT _LNK_CONV  execv( char *, char ** );
      int  _IMPORT _LNK_CONV  execve( char *, char **, char ** );
      int  _IMPORT _LNK_CONV  execvp( char *, char ** );
      int  _IMPORT _LNK_CONV  execvpe( char *, char **, char ** );
      int  _IMPORT _LNK_CONV  getpid( void );
      int  _IMPORT _LNK_CONV  spawnv( int, char *, char ** );
      int  _IMPORT _LNK_CONV  spawnve( int, char *, char **, char ** );
      int  _IMPORT _LNK_CONV  spawnvp( int, char *, char ** );
      int  _IMPORT _LNK_CONV  spawnvpe( int, char *, char **, char ** );
    #ifdef __OS2__
      int  _IMPORT _LNK_CONV  wait( int * );
    #endif

    #if (defined(__IBMC__) || defined(__IBMCPP__))
      #ifdef __OS2__
      #pragma map( cwait   , "_cwait"    )
      #pragma map( execv   , "_execv"    )
      #pragma map( execve  , "_execve"   )
      #pragma map( execvp  , "_execvp"   )
      #pragma map( execvpe , "_execvpe"  )
      #pragma map( getpid  , "_getpid"   )
      #pragma map( spawnv  , "_spawnv"   )
      #pragma map( spawnve , "_spawnve"  )
      #pragma map( spawnvp , "_spawnvp"  )
      #pragma map( spawnvpe, "_spawnvpe" )
      #pragma map( wait    , "_wait"     )
      #else
      #pragma map( cwait   , "?_cwait"    )
      #pragma map( execv   , "?_execv"    )
      #pragma map( execve  , "?_execve"   )
      #pragma map( execvp  , "?_execvp"   )
      #pragma map( execvpe , "?_execvpe"  )
      #pragma map( getpid  , "?_getpid"   )
      #pragma map( spawnv  , "?_spawnv"   )
      #pragma map( spawnve , "?_spawnve"  )
      #pragma map( spawnvp , "?_spawnvp"  )
      #pragma map( spawnvpe, "?_spawnvpe" )
      #endif
    #else
      #pragma Alias( cwait   , "_cwait"    )
      #pragma Alias( execv   , "_execv"    )
      #pragma Alias( execve  , "_execve"   )
      #pragma Alias( execvp  , "_execvp"   )
      #pragma Alias( execvpe , "_execvpe"  )
      #pragma Alias( getpid  , "_getpid"   )
      #pragma Alias( spawnv  , "_spawnv"   )
      #pragma Alias( spawnve , "_spawnve"  )
      #pragma Alias( spawnvp , "_spawnvp"  )
      #pragma Alias( spawnvpe, "_spawnvpe" )
      #pragma Alias( wait    , "_wait"     )
    #endif

      #ifdef __MULTI__
         int  _IMPORT _LNK_CONV _beginthread( void ( * _LNK_CONV )( void * ), void *, unsigned, void * );
         void _IMPORT _LNK_CONV _endthread( void );
         void ** _IMPORT _LNK_CONV _threadstore( void );
      #endif

   #endif

   #ifdef __cplusplus
      }
   #endif

#endif

#if (defined(__IBMC__) || defined(__IBMCPP__))
#pragma info( none )
#ifndef __CHKHDR__
   #pragma info( restore )
#endif
#pragma info( restore )
#endif

