Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _INC_PROCESS
      7 #define _INC_PROCESS
      8 
      9 #include <crtdefs.h>
     10 
     11 /* Includes a definition of _pid_t and pid_t */
     12 #include <sys/types.h>
     13 
     14 #ifndef _POSIX_
     15 #ifdef __cplusplus
     16 extern "C" {
     17 #endif
     18 
     19 #ifndef _P_WAIT
     20 #define _P_WAIT 0
     21 #define _P_NOWAIT 1
     22 #define _OLD_P_OVERLAY 2
     23 #define _P_NOWAITO 3
     24 #define _P_DETACH 4
     25 #define _P_OVERLAY 2
     26 
     27 #define _WAIT_CHILD 0
     28 #define _WAIT_GRANDCHILD 1
     29 #endif
     30 
     31   _CRTIMP uintptr_t __cdecl _beginthread(void (__cdecl *_StartAddress) (void *),unsigned _StackSize,void *_ArgList);
     32   _CRTIMP void __cdecl _endthread(void) __MINGW_ATTRIB_NORETURN;
     33   _CRTIMP uintptr_t __cdecl _beginthreadex(void *_Security,unsigned _StackSize,unsigned (__stdcall *_StartAddress) (void *),void *_ArgList,unsigned _InitFlag,unsigned *_ThrdAddr);
     34   _CRTIMP void __cdecl _endthreadex(unsigned _Retval) __MINGW_ATTRIB_NORETURN;
     35 
     36 #ifndef _CRT_TERMINATE_DEFINED
     37 #define _CRT_TERMINATE_DEFINED
     38   void __cdecl __MINGW_NOTHROW exit(int _Code) __MINGW_ATTRIB_NORETURN;
     39   void __cdecl __MINGW_NOTHROW _exit(int _Code) __MINGW_ATTRIB_NORETURN;
     40 
     41 #if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
     42   /* C99 function name */
     43   void __cdecl _Exit(int) __MINGW_ATTRIB_NORETURN;
     44 #ifndef __CRT__NO_INLINE
     45   __CRT_INLINE __MINGW_ATTRIB_NORETURN void  __cdecl _Exit(int status)
     46   {  _exit(status); }
     47 #endif /* !__CRT__NO_INLINE */
     48 #endif /* Not  __NO_ISOCEXT */
     49 
     50 #pragma push_macro("abort")
     51 #undef abort
     52   void __cdecl __declspec(noreturn) abort(void);
     53 #pragma pop_macro("abort")
     54 
     55 #endif /* _CRT_TERMINATE_DEFINED */
     56 
     57   void __cdecl __MINGW_NOTHROW _cexit(void);
     58   void __cdecl __MINGW_NOTHROW _c_exit(void);
     59   _CRTIMP int __cdecl _getpid(void);
     60   _CRTIMP intptr_t __cdecl _cwait(int *_TermStat,intptr_t _ProcHandle,int _Action);
     61   _CRTIMP intptr_t __cdecl _execl(const char *_Filename,const char *_ArgList,...);
     62   _CRTIMP intptr_t __cdecl _execle(const char *_Filename,const char *_ArgList,...);
     63   _CRTIMP intptr_t __cdecl _execlp(const char *_Filename,const char *_ArgList,...);
     64   _CRTIMP intptr_t __cdecl _execlpe(const char *_Filename,const char *_ArgList,...);
     65   _CRTIMP intptr_t __cdecl _execv(const char *_Filename,const char *const *_ArgList);
     66   _CRTIMP intptr_t __cdecl _execve(const char *_Filename,const char *const *_ArgList,const char *const *_Env);
     67   _CRTIMP intptr_t __cdecl _execvp(const char *_Filename,const char *const *_ArgList);
     68   _CRTIMP intptr_t __cdecl _execvpe(const char *_Filename,const char *const *_ArgList,const char *const *_Env);
     69   _CRTIMP intptr_t __cdecl _spawnl(int _Mode,const char *_Filename,const char *_ArgList,...);
     70   _CRTIMP intptr_t __cdecl _spawnle(int _Mode,const char *_Filename,const char *_ArgList,...);
     71   _CRTIMP intptr_t __cdecl _spawnlp(int _Mode,const char *_Filename,const char *_ArgList,...);
     72   _CRTIMP intptr_t __cdecl _spawnlpe(int _Mode,const char *_Filename,const char *_ArgList,...);
     73 
     74 #ifndef _SPAWNV_DEFINED
     75 #define _SPAWNV_DEFINED
     76   _CRTIMP intptr_t __cdecl _spawnv(int _Mode,const char *_Filename,const char *const *_ArgList);
     77   _CRTIMP intptr_t __cdecl _spawnve(int _Mode,const char *_Filename,const char *const *_ArgList,const char *const *_Env);
     78   _CRTIMP intptr_t __cdecl _spawnvp(int _Mode,const char *_Filename,const char *const *_ArgList);
     79   _CRTIMP intptr_t __cdecl _spawnvpe(int _Mode,const char *_Filename,const char *const *_ArgList,const char *const *_Env);
     80 #endif
     81 
     82 #ifndef _CRT_SYSTEM_DEFINED
     83 #define _CRT_SYSTEM_DEFINED
     84   int __cdecl system(const char *_Command);
     85 #endif
     86 
     87 #ifndef _WEXEC_DEFINED
     88 #define _WEXEC_DEFINED
     89   _CRTIMP intptr_t __cdecl _wexecl(const wchar_t *_Filename,const wchar_t *_ArgList,...);
     90   _CRTIMP intptr_t __cdecl _wexecle(const wchar_t *_Filename,const wchar_t *_ArgList,...);
     91   _CRTIMP intptr_t __cdecl _wexeclp(const wchar_t *_Filename,const wchar_t *_ArgList,...);
     92   _CRTIMP intptr_t __cdecl _wexeclpe(const wchar_t *_Filename,const wchar_t *_ArgList,...);
     93   _CRTIMP intptr_t __cdecl _wexecv(const wchar_t *_Filename,const wchar_t *const *_ArgList);
     94   _CRTIMP intptr_t __cdecl _wexecve(const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
     95   _CRTIMP intptr_t __cdecl _wexecvp(const wchar_t *_Filename,const wchar_t *const *_ArgList);
     96   _CRTIMP intptr_t __cdecl _wexecvpe(const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
     97 #endif
     98 
     99 #ifndef _WSPAWN_DEFINED
    100 #define _WSPAWN_DEFINED
    101   _CRTIMP intptr_t __cdecl _wspawnl(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
    102   _CRTIMP intptr_t __cdecl _wspawnle(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
    103   _CRTIMP intptr_t __cdecl _wspawnlp(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
    104   _CRTIMP intptr_t __cdecl _wspawnlpe(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
    105   _CRTIMP intptr_t __cdecl _wspawnv(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList);
    106   _CRTIMP intptr_t __cdecl _wspawnve(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
    107   _CRTIMP intptr_t __cdecl _wspawnvp(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList);
    108   _CRTIMP intptr_t __cdecl _wspawnvpe(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
    109 #endif
    110 
    111 #ifndef _CRT_WSYSTEM_DEFINED
    112 #define _CRT_WSYSTEM_DEFINED
    113   _CRTIMP int __cdecl _wsystem(const wchar_t *_Command);
    114 #endif
    115 
    116   void __cdecl __security_init_cookie(void);
    117 #if (defined(_X86_) && !defined(__x86_64))
    118   void __fastcall __security_check_cookie(uintptr_t _StackCookie);
    119   __declspec(noreturn) void __cdecl __report_gsfailure(void);
    120 #else
    121   void __cdecl __security_check_cookie(uintptr_t _StackCookie);
    122   __declspec(noreturn) void __cdecl __report_gsfailure(uintptr_t _StackCookie);
    123 #endif
    124   extern uintptr_t __security_cookie;
    125 
    126   intptr_t __cdecl _loaddll(char *_Filename);
    127   int __cdecl _unloaddll(intptr_t _Handle);
    128   int (__cdecl *__cdecl _getdllprocaddr(intptr_t _Handle,char *_ProcedureName,intptr_t _Ordinal))(void);
    129 
    130 #ifdef _DECL_DLLMAIN
    131 #ifdef _WINDOWS_
    132   WINBOOL WINAPI DllMain(HANDLE _HDllHandle,DWORD _Reason,LPVOID _Reserved);
    133   WINBOOL WINAPI _CRT_INIT(HANDLE _HDllHandle,DWORD _Reason,LPVOID _Reserved);
    134   WINBOOL WINAPI _wCRT_INIT(HANDLE _HDllHandle,DWORD _Reason,LPVOID _Reserved);
    135   extern WINBOOL (WINAPI *const _pRawDllMain)(HANDLE,DWORD,LPVOID);
    136 #else
    137   int __stdcall DllMain(void *_HDllHandle,unsigned _Reason,void *_Reserved);
    138   int __stdcall _CRT_INIT(void *_HDllHandle,unsigned _Reason,void *_Reserved);
    139   int __stdcall _wCRT_INIT(void *_HDllHandle,unsigned _Reason,void *_Reserved);
    140   extern int (__stdcall *const _pRawDllMain)(void *,unsigned,void *);
    141 #endif
    142 #endif
    143 
    144 #ifndef	NO_OLDNAMES
    145 #define P_WAIT _P_WAIT
    146 #define P_NOWAIT _P_NOWAIT
    147 #define P_OVERLAY _P_OVERLAY
    148 #define OLD_P_OVERLAY _OLD_P_OVERLAY
    149 #define P_NOWAITO _P_NOWAITO
    150 #define P_DETACH _P_DETACH
    151 #define WAIT_CHILD _WAIT_CHILD
    152 #define WAIT_GRANDCHILD _WAIT_GRANDCHILD
    153 
    154   intptr_t __cdecl cwait(int *_TermStat,intptr_t _ProcHandle,int _Action) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    155 #ifdef __GNUC__
    156   int __cdecl execl(const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    157   int __cdecl execle(const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    158   int __cdecl execlp(const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    159   int __cdecl execlpe(const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    160 #else
    161   intptr_t __cdecl execl(const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    162   intptr_t __cdecl execle(const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    163   intptr_t __cdecl execlp(const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    164   intptr_t __cdecl execlpe(const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    165 #endif
    166   intptr_t __cdecl spawnl(int,const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    167   intptr_t __cdecl spawnle(int,const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    168   intptr_t __cdecl spawnlp(int,const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    169   intptr_t __cdecl spawnlpe(int,const char *_Filename,const char *_ArgList,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    170 #ifndef _CRT_GETPID_DEFINED
    171 #define _CRT_GETPID_DEFINED  /* Also in unistd.h */
    172   int __cdecl getpid(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    173 #endif
    174 #ifdef __GNUC__
    175   /* Those methods are predefined by gcc builtins to return int. So to prevent
    176      stupid warnings, define them in POSIX way.  This is save, because those
    177      methods do not return in success case, so that the return value is not
    178      really dependent to its scalar width.  */
    179   int __cdecl execv(const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    180   int __cdecl execve(const char *_Filename,char *const _ArgList[],char *const _Env[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    181   int __cdecl execvp(const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    182   int __cdecl execvpe(const char *_Filename,char *const _ArgList[],char *const _Env[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    183 #else
    184   intptr_t __cdecl execv(const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    185   intptr_t __cdecl execve(const char *_Filename,char *const _ArgList[],char *const _Env[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    186   intptr_t __cdecl execvp(const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    187   intptr_t __cdecl execvpe(const char *_Filename,char *const _ArgList[],char *const _Env[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    188 #endif
    189   intptr_t __cdecl spawnv(int,const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    190   intptr_t __cdecl spawnve(int,const char *_Filename,char *const _ArgList[],char *const _Env[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    191   intptr_t __cdecl spawnvp(int,const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    192   intptr_t __cdecl spawnvpe(int,const char *_Filename,char *const _ArgList[],char *const _Env[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
    193 #endif
    194 
    195 #ifdef __cplusplus
    196 }
    197 #endif
    198 #endif
    199 #endif
    200