summary refs log tree commit diff stats
path: root/tinyc/win32/include/process.h
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2010-08-28 22:33:07 +0200
committerAraq <rumpf_a@web.de>2010-08-28 22:33:07 +0200
commit47886978c79a3246295114a853a9cd945d368708 (patch)
treef006dc90bb9c8c166214ca751af3739b89a73621 /tinyc/win32/include/process.h
parentb2075302b10b88047ea16007895bff4e46a2fa9c (diff)
downloadNim-47886978c79a3246295114a853a9cd945d368708.tar.gz
tiny C support; cosmetic improvements for the docs
Diffstat (limited to 'tinyc/win32/include/process.h')
-rwxr-xr-xtinyc/win32/include/process.h158
1 files changed, 158 insertions, 0 deletions
diff --git a/tinyc/win32/include/process.h b/tinyc/win32/include/process.h
new file mode 100755
index 000000000..3d764df0f
--- /dev/null
+++ b/tinyc/win32/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
+ *  DISCLAIMED. This includes but is not limited to warranties of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $Revision: 1.2 $
+ * $Author: bellard $
+ * $Date: 2005/04/17 13:14:29 $
+ *
+ */
+
+#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__ */
+