|
1 /* |
|
2 * process.h |
|
3 * This file has no copyright assigned and is placed in the Public Domain. |
|
4 * This file is a part of the mingw-runtime package. |
|
5 * No warranty is given; refer to the file DISCLAIMER within the package. |
|
6 * |
|
7 * Function calls for spawning child processes. |
|
8 * |
|
9 */ |
|
10 |
|
11 #ifndef _PROCESS_H_ |
|
12 #define _PROCESS_H_ |
|
13 |
|
14 /* All the headers include this file. */ |
|
15 #include <_mingw.h> |
|
16 |
|
17 /* Includes a definition of _pid_t and pid_t */ |
|
18 #include <sys/types.h> |
|
19 |
|
20 /* |
|
21 * Constants for cwait actions. |
|
22 * Obsolete for Win32. |
|
23 */ |
|
24 #define _WAIT_CHILD 0 |
|
25 #define _WAIT_GRANDCHILD 1 |
|
26 |
|
27 #ifndef _NO_OLDNAMES |
|
28 #define WAIT_CHILD _WAIT_CHILD |
|
29 #define WAIT_GRANDCHILD _WAIT_GRANDCHILD |
|
30 #endif /* Not _NO_OLDNAMES */ |
|
31 |
|
32 /* |
|
33 * Mode constants for spawn functions. |
|
34 */ |
|
35 #define _P_WAIT 0 |
|
36 #define _P_NOWAIT 1 |
|
37 #define _P_OVERLAY 2 |
|
38 #define _OLD_P_OVERLAY _P_OVERLAY |
|
39 #define _P_NOWAITO 3 |
|
40 #define _P_DETACH 4 |
|
41 |
|
42 #ifndef _NO_OLDNAMES |
|
43 #define P_WAIT _P_WAIT |
|
44 #define P_NOWAIT _P_NOWAIT |
|
45 #define P_OVERLAY _P_OVERLAY |
|
46 #define OLD_P_OVERLAY _OLD_P_OVERLAY |
|
47 #define P_NOWAITO _P_NOWAITO |
|
48 #define P_DETACH _P_DETACH |
|
49 #endif /* Not _NO_OLDNAMES */ |
|
50 |
|
51 |
|
52 #ifndef RC_INVOKED |
|
53 |
|
54 #ifdef __cplusplus |
|
55 extern "C" { |
|
56 #endif |
|
57 |
|
58 _CRTIMP void __cdecl __MINGW_NOTHROW _cexit(void); |
|
59 _CRTIMP void __cdecl __MINGW_NOTHROW _c_exit(void); |
|
60 |
|
61 _CRTIMP int __cdecl __MINGW_NOTHROW _cwait (int*, _pid_t, int); |
|
62 |
|
63 _CRTIMP _pid_t __cdecl __MINGW_NOTHROW _getpid(void); |
|
64 |
|
65 _CRTIMP int __cdecl __MINGW_NOTHROW _execl (const char*, const char*, ...); |
|
66 _CRTIMP int __cdecl __MINGW_NOTHROW _execle (const char*, const char*, ...); |
|
67 _CRTIMP int __cdecl __MINGW_NOTHROW _execlp (const char*, const char*, ...); |
|
68 _CRTIMP int __cdecl __MINGW_NOTHROW _execlpe (const char*, const char*, ...); |
|
69 _CRTIMP int __cdecl __MINGW_NOTHROW _execv (const char*, const char* const*); |
|
70 _CRTIMP int __cdecl __MINGW_NOTHROW _execve (const char*, const char* const*, const char* const*); |
|
71 _CRTIMP int __cdecl __MINGW_NOTHROW _execvp (const char*, const char* const*); |
|
72 _CRTIMP int __cdecl __MINGW_NOTHROW _execvpe (const char*, const char* const*, const char* const*); |
|
73 |
|
74 _CRTIMP int __cdecl __MINGW_NOTHROW _spawnl (int, const char*, const char*, ...); |
|
75 _CRTIMP int __cdecl __MINGW_NOTHROW _spawnle (int, const char*, const char*, ...); |
|
76 _CRTIMP int __cdecl __MINGW_NOTHROW _spawnlp (int, const char*, const char*, ...); |
|
77 _CRTIMP int __cdecl __MINGW_NOTHROW _spawnlpe (int, const char*, const char*, ...); |
|
78 _CRTIMP int __cdecl __MINGW_NOTHROW _spawnv (int, const char*, const char* const*); |
|
79 _CRTIMP int __cdecl __MINGW_NOTHROW _spawnve (int, const char*, const char* const*, const char* const*); |
|
80 _CRTIMP int __cdecl __MINGW_NOTHROW _spawnvp (int, const char*, const char* const*); |
|
81 _CRTIMP int __cdecl __MINGW_NOTHROW _spawnvpe (int, const char*, const char* const*, const char* const*); |
|
82 |
|
83 |
|
84 /* |
|
85 * The functions _beginthreadex and _endthreadex are not provided by CRTDLL. |
|
86 * They are provided by MSVCRT. |
|
87 * |
|
88 * NOTE: Apparently _endthread calls CloseHandle on the handle of the thread, |
|
89 * making for race conditions if you are not careful. Basically you have to |
|
90 * make sure that no-one is going to do *anything* with the thread handle |
|
91 * after the thread calls _endthread or returns from the thread function. |
|
92 * |
|
93 * NOTE: No old names for these functions. Use the underscore. |
|
94 */ |
|
95 _CRTIMP unsigned long __cdecl __MINGW_NOTHROW |
|
96 _beginthread (void (*)(void *), unsigned, void*); |
|
97 _CRTIMP void __cdecl __MINGW_NOTHROW _endthread (void); |
|
98 |
|
99 #ifdef __MSVCRT__ |
|
100 _CRTIMP unsigned long __cdecl __MINGW_NOTHROW |
|
101 _beginthreadex (void *, unsigned, unsigned (__stdcall *) (void *), |
|
102 void*, unsigned, unsigned*); |
|
103 _CRTIMP void __cdecl __MINGW_NOTHROW _endthreadex (unsigned); |
|
104 #endif |
|
105 |
|
106 |
|
107 #ifndef _NO_OLDNAMES |
|
108 /* |
|
109 * Functions without the leading underscore, for portability. These functions |
|
110 * live in liboldnames.a. |
|
111 */ |
|
112 _CRTIMP int __cdecl __MINGW_NOTHROW cwait (int*, pid_t, int); |
|
113 _CRTIMP pid_t __cdecl __MINGW_NOTHROW getpid (void); |
|
114 _CRTIMP int __cdecl __MINGW_NOTHROW execl (const char*, const char*, ...); |
|
115 _CRTIMP int __cdecl __MINGW_NOTHROW execle (const char*, const char*, ...); |
|
116 _CRTIMP int __cdecl __MINGW_NOTHROW execlp (const char*, const char*, ...); |
|
117 _CRTIMP int __cdecl __MINGW_NOTHROW execlpe (const char*, const char*, ...); |
|
118 _CRTIMP int __cdecl __MINGW_NOTHROW execv (const char*, const char* const*); |
|
119 _CRTIMP int __cdecl __MINGW_NOTHROW execve (const char*, const char* const*, const char* const*); |
|
120 _CRTIMP int __cdecl __MINGW_NOTHROW execvp (const char*, const char* const*); |
|
121 _CRTIMP int __cdecl __MINGW_NOTHROW execvpe (const char*, const char* const*, const char* const*); |
|
122 _CRTIMP int __cdecl __MINGW_NOTHROW spawnl (int, const char*, const char*, ...); |
|
123 _CRTIMP int __cdecl __MINGW_NOTHROW spawnle (int, const char*, const char*, ...); |
|
124 _CRTIMP int __cdecl __MINGW_NOTHROW spawnlp (int, const char*, const char*, ...); |
|
125 _CRTIMP int __cdecl __MINGW_NOTHROW spawnlpe (int, const char*, const char*, ...); |
|
126 _CRTIMP int __cdecl __MINGW_NOTHROW spawnv (int, const char*, const char* const*); |
|
127 _CRTIMP int __cdecl __MINGW_NOTHROW spawnve (int, const char*, const char* const*, const char* const*); |
|
128 _CRTIMP int __cdecl __MINGW_NOTHROW spawnvp (int, const char*, const char* const*); |
|
129 _CRTIMP int __cdecl __MINGW_NOTHROW spawnvpe (int, const char*, const char* const*, const char* const*); |
|
130 #endif /* Not _NO_OLDNAMES */ |
|
131 |
|
132 #ifdef __cplusplus |
|
133 } |
|
134 #endif |
|
135 |
|
136 #endif /* Not RC_INVOKED */ |
|
137 |
|
138 #endif /* _PROCESS_H_ not defined */ |