Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/mingw/include/process.h')
-rw-r--r--winsup/mingw/include/process.h158
1 files changed, 158 insertions, 0 deletions
diff --git a/winsup/mingw/include/process.h b/winsup/mingw/include/process.h
new file mode 100644
index 000000000..dc138c390
--- /dev/null
+++ b/winsup/mingw/include/process.h
@@ -0,0 +1,158 @@
+/*
+ * process.h
+ *
+ * Function calls for spawning child processes.
+ *
+ * This file is part of the Mingw32 package.
+ *
+ * Contributors:
+ * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $Revision$
+ * $Author$
+ * $Date$
+ *
+ */
+
+#ifndef __STRICT_ANSI__
+
+#ifndef _PROCESS_H_
+#define _PROCESS_H_
+
+/* All the headers include this file. */
+#include <_mingw.h>
+
+/* Includes a definition of _pid_t and pid_t */
+#include <sys/types.h>
+
+/*
+ * Constants for cwait actions.
+ * Obsolete for Win32.
+ */
+#define _WAIT_CHILD 0
+#define _WAIT_GRANDCHILD 1
+
+#ifndef _NO_OLDNAMES
+#define WAIT_CHILD _WAIT_CHILD
+#define WAIT_GRANDCHILD _WAIT_GRANDCHILD
+#endif /* Not _NO_OLDNAMES */
+
+/*
+ * Mode constants for spawn functions.
+ */
+#define _P_WAIT 0
+#define _P_NOWAIT 1
+#define _P_OVERLAY 2
+#define _OLD_P_OVERLAY _P_OVERLAY
+#define _P_NOWAITO 3
+#define _P_DETACH 4
+
+#ifndef _NO_OLDNAMES
+#define P_WAIT _P_WAIT
+#define P_NOWAIT _P_NOWAIT
+#define P_OVERLAY _P_OVERLAY
+#define OLD_P_OVERLAY _OLD_P_OVERLAY
+#define P_NOWAITO _P_NOWAITO
+#define P_DETACH _P_DETACH
+#endif /* Not _NO_OLDNAMES */
+
+
+#ifndef RC_INVOKED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void _cexit(void);
+void _c_exit(void);
+
+int _cwait (int*, _pid_t, int);
+
+_pid_t _getpid(void);
+
+int _execl (const char*, const char*, ...);
+int _execle (const char*, const char*, ...);
+int _execlp (const char*, const char*, ...);
+int _execlpe (const char*, const char*, ...);
+int _execv (const char*, char* const*);
+int _execve (const char*, char* const*, char* const*);
+int _execvp (const char*, char* const*);
+int _execvpe (const char*, char* const*, char* const*);
+
+int _spawnl (int, const char*, const char*, ...);
+int _spawnle (int, const char*, const char*, ...);
+int _spawnlp (int, const char*, const char*, ...);
+int _spawnlpe (int, const char*, const char*, ...);
+int _spawnv (int, const char*, char* const*);
+int _spawnve (int, const char*, char* const*, char* const*);
+int _spawnvp (int, const char*, char* const*);
+int _spawnvpe (int, const char*, char* const*, char* const*);
+
+/*
+ * The functions _beginthreadex and _endthreadex are not provided by CRTDLL.
+ * They are provided by MSVCRT.
+ *
+ * NOTE: Apparently _endthread calls CloseHandle on the handle of the thread,
+ * making for race conditions if you are not careful. Basically you have to
+ * make sure that no-one is going to do *anything* with the thread handle
+ * after the thread calls _endthread or returns from the thread function.
+ *
+ * NOTE: No old names for these functions. Use the underscore.
+ */
+unsigned long
+ _beginthread (void (*)(void *), unsigned, void*);
+void _endthread (void);
+
+#ifdef __MSVCRT__
+unsigned long
+ _beginthreadex (void *, unsigned, unsigned (__stdcall *) (void *),
+ void*, unsigned, unsigned*);
+void _endthreadex (unsigned);
+#endif
+
+
+#ifndef _NO_OLDNAMES
+/*
+ * Functions without the leading underscore, for portability. These functions
+ * live in liboldnames.a.
+ */
+int cwait (int*, pid_t, int);
+pid_t getpid (void);
+int execl (const char*, const char*, ...);
+int execle (const char*, const char*, ...);
+int execlp (const char*, const char*, ...);
+int execlpe (const char*, const char*, ...);
+int execv (const char*, char* const*);
+int execve (const char*, char* const*, char* const*);
+int execvp (const char*, char* const*);
+int execvpe (const char*, char* const*, char* const*);
+int spawnl (int, const char*, const char*, ...);
+int spawnle (int, const char*, const char*, ...);
+int spawnlp (int, const char*, const char*, ...);
+int spawnlpe (int, const char*, const char*, ...);
+int spawnv (int, const char*, char* const*);
+int spawnve (int, const char*, char* const*, char* const*);
+int spawnvp (int, const char*, char* const*);
+int spawnvpe (int, const char*, char* const*, char* const*);
+#endif /* Not _NO_OLDNAMES */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* Not RC_INVOKED */
+
+#endif /* _PROCESS_H_ not defined */
+
+#endif /* Not __STRICT_ANSI__ */
+