4 * Derived from the mingw header written by Colin Peters.
5 * Modified for Wine use by Jon Griffiths and Francois Gouget.
6 * This file is in the public domain.
8 #ifndef __WINE_PROCESS_H
9 #define __WINE_PROCESS_H
10 #define __WINE_USE_MSVCRT
14 #ifdef USE_MSVCRT_PREFIX
15 #define MSVCRT(x) MSVCRT_##x
21 /* Process creation flags */
29 #define _WAIT_GRANDCHILD 1
36 typedef void (__cdecl *_beginthread_start_routine_t)(void *);
37 typedef unsigned int (__stdcall *_beginthreadex_start_routine_t)(void *);
39 unsigned long _beginthread(_beginthread_start_routine_t,unsigned int,void*);
40 unsigned long _beginthreadex(void*,unsigned int,_beginthreadex_start_routine_t,void*,unsigned int,unsigned int*);
41 int _cwait(int*,int,int);
42 void _endthread(void);
43 void _endthreadex(unsigned int);
44 int _execl(const char*,const char*,...);
45 int _execle(const char*,const char*,...);
46 int _execlp(const char*,const char*,...);
47 int _execlpe(const char*,const char*,...);
48 int _execv(const char*,char* const *);
49 int _execve(const char*,char* const *,const char* const *);
50 int _execvp(const char*,char* const *);
51 int _execvpe(const char*,char* const *,const char* const *);
53 int _spawnl(int,const char*,const char*,...);
54 int _spawnle(int,const char*,const char*,...);
55 int _spawnlp(int,const char*,const char*,...);
56 int _spawnlpe(int,const char*,const char*,...);
57 int _spawnv(int,const char*,const char* const *);
58 int _spawnve(int,const char*,const char* const *,const char* const *);
59 int _spawnvp(int,const char*,const char* const *);
60 int _spawnvpe(int,const char*,const char* const *,const char* const *);
62 void MSVCRT(_c_exit)(void);
63 void MSVCRT(_cexit)(void);
64 void MSVCRT(_exit)(int);
65 void MSVCRT(abort)(void);
66 void MSVCRT(exit)(int);
67 int MSVCRT(system)(const char*);
69 int _wexecl(const WCHAR*,const WCHAR*,...);
70 int _wexecle(const WCHAR*,const WCHAR*,...);
71 int _wexeclp(const WCHAR*,const WCHAR*,...);
72 int _wexeclpe(const WCHAR*,const WCHAR*,...);
73 int _wexecv(const WCHAR*,const WCHAR* const *);
74 int _wexecve(const WCHAR*,const WCHAR* const *,const WCHAR* const *);
75 int _wexecvp(const WCHAR*,const WCHAR* const *);
76 int _wexecvpe(const WCHAR*,const WCHAR* const *,const WCHAR* const *);
77 int _wspawnl(int,const WCHAR*,const WCHAR*,...);
78 int _wspawnle(int,const WCHAR*,const WCHAR*,...);
79 int _wspawnlp(int,const WCHAR*,const WCHAR*,...);
80 int _wspawnlpe(int,const WCHAR*,const WCHAR*,...);
81 int _wspawnv(int,const WCHAR*,const WCHAR* const *);
82 int _wspawnve(int,const WCHAR*,const WCHAR* const *,const WCHAR* const *);
83 int _wspawnvp(int,const WCHAR*,const WCHAR* const *);
84 int _wspawnvpe(int,const WCHAR*,const WCHAR* const *,const WCHAR* const *);
85 int _wsystem(const WCHAR*);
92 #ifndef USE_MSVCRT_PREFIX
93 #define P_WAIT _P_WAIT
94 #define P_NOWAIT _P_NOWAIT
95 #define P_OVERLAY _P_OVERLAY
96 #define P_NOWAITO _P_NOWAITO
97 #define P_DETACH _P_DETACH
99 #define WAIT_CHILD _WAIT_CHILD
100 #define WAIT_GRANDCHILD _WAIT_GRANDCHILD
103 #define getpid _getpid
105 #define execle _execle
106 #define execlp _execlp
107 #define execlpe _execlpe
109 #define execve _execve
110 #define execvp _execvp
111 #define execvpe _execvpe
112 #define spawnl _spawnl
113 #define spawnle _spawnle
114 #define spawnlp _spawnlp
115 #define spawnlpe _spawnlpe
116 #define spawnv _spawnv
117 #define spawnve _spawnve
118 #define spawnvp _spawnvp
119 #define spawnvpe _spawnvpe
120 #endif /* USE_MSVCRT_PREFIX */
122 #endif /* __WINE_PROCESS_H */