#ifndef __PROCESSES_LOADED #define __PROCESSES_LOADED 1 /**************************************************************************** ** ** - Sub process functions ** ***************************************************************************** ** ** Copyright 2004 Hewlett-Packard Development Company, L.P. ** ** Confidential computer software. Valid license from HP and/or ** its subsidiaries required for possession, use, or copying. ** ** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, ** Computer Software Documentation, and Technical Data for Commercial ** Items are licensed to the U.S. Government under vendor's standard ** commercial license. ** ** Neither HP nor any of its subsidiaries shall be liable for technical ** or editorial errors or omissions contained herein. The information ** in this document is provided "as is" without warranty of any kind and ** is subject to change without notice. The warranties for HP products ** are set forth in the express limited warranty statements accompanying ** such products. Nothing herein should be construed as constituting an ** additional warranty. ** ***************************************************************************** */ #pragma __nostandard #include #ifdef __cplusplus extern "C" { #define __decc$unknown_params ... #else #define __decc$unknown_params #endif #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save # pragma __pointer_size 32 #endif /* ** Public typedefs -- 32-bit mode */ #if !defined __PID_T && !defined _DECC_V4_SOURCE # define __PID_T 1 typedef __pid_t pid_t; #endif /* ** We are done defining things which must always be 32 bit pointers. If ** the user has used /pointer_size=32 or /pointer_size=64, we will ** allow 64 bit pointers to be used in function calls. */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size 64 #endif /* ** DEC C V4 defined execl, execle and execlp without the required arg0. The ** old prototypes are retained for compatibility. */ #ifdef _DECC_V4_SOURCE int execl (char *__name, ...); int execle (char *__name, ...); int execlp (char *__name, ...); #else int execl (const char *__path, const char *arg0, ...); int execle (const char *__path, const char *arg0, ...); int execlp (const char *__file, const char *arg0, ...); #endif /* ** The following functions take an array of pointers as arguments. These ** arrays are restricted to arrays of 32 bit pointers. */ int execv (const char *__path, __char_ptr_const_ptr32 __argv); int execve (const char *__path, __char_ptr_const_ptr32 __argv, __char_ptr_const_ptr32 __envp); int execvp (const char *__file, __char_ptr_const_ptr32 __argv); /* ** The pipe function optionally takes additional arguments when not in ** standard compilation. */ #ifdef _POSIX_C_SOURCE int pipe (int __array_fdscptr[2]); #else int pipe (int __array_fdscptr[2], ...); #endif /* ** Function prototypes */ #if defined _POSIX_EXIT && __CRTL_VER >= 70000000 # if __CAN_USE_EXTERN_PREFIX # pragma __extern_prefix __save # pragma __extern_prefix "__posix_" # else # define wait(__p1) __posix_wait(__p1) # define system(__p1) __posix_system(__p1) # endif #endif __pid_t wait(int *__stat_loc); int system (const char *__string); #if defined _POSIX_EXIT && __CRTL_VER >= 70000000 # if __CAN_USE_EXTERN_PREFIX # pragma __extern_prefix __restore # endif #endif /* ** The definition of vfork() is architecture specific */ #if defined(__ALPHA) __int64_ptr32 decc$$get_vfork_jmpbuf(void); # ifdef __INITIAL_POINTER_SIZE # pragma __required_pointer_size __save # pragma __required_pointer_size __long # endif int LIB$GET_CURRENT_INVO_CONTEXT(__int64 *__invo_context); # ifdef __INITIAL_POINTER_SIZE # pragma __required_pointer_size __restore # endif int decc$$alloc_vfork_blocks(void); # define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \ LIB$GET_CURRENT_INVO_CONTEXT(decc$$get_vfork_jmpbuf()) : -1) #elif defined(__ia64) __int64_ptr32 decc$$get_vfork_jmpbuf(void); int decc$$alloc_vfork_blocks(void); int decc$setjmp1(__int64 *__env); # define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \ decc$setjmp1(decc$$get_vfork_jmpbuf()) : -1) #else # ifndef _DECC_V4_SOURCE __pid_t vfork(void); # else int vfork(void); # endif #endif /* ** Restore the users pointer context */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size __restore #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __PROCESSES_LOADED */