#ifndef __PROCESSES_LOADED #define __PROCESSES_LOADED 1 /**************************************************************************** ** ** - Sub process functions ** ***************************************************************************** ** Header is nonstandard ***************************************************************************** ** ** Copyright 2000 Compaq Computer Corporation ** ** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office. ** ** Confidential computer software. Valid license from Compaq 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. ** ****************************************************************************** */ #pragma __nostandard #include #ifdef __cplusplus extern "C" { #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 */ #ifdef __ALPHA __int64_ptr32 decc$$get_vfork_jmpbuf(void); int LIB$GET_CURRENT_INVO_CONTEXT(__int64_ptr32 __invo_context); int decc$$alloc_vfork_blocks(void); # define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \ LIB$GET_CURRENT_INVO_CONTEXT(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 */