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:
authorChristopher Faylor <me@cgf.cx>2000-08-03 07:02:41 +0400
committerChristopher Faylor <me@cgf.cx>2000-08-03 07:02:41 +0400
commit47026c0785a0cd86c05f8255cc34a85c1cf9eced (patch)
tree10e33e0b681991d98061e7929aed7353f3d20cd5 /winsup/cygwin/winsup.h
parent6a2ef321050062b76e8e11b4cade15c1feba54fa (diff)
* fork.cc (vfork): Store complete stack frame in vfork_save structure for later
recovery. * spawn.cc (spawn_guts): Reorganize slightly to consolidate handling when there is a CreateProcess error. (_spawnve): Only longjmp back to vfork handling when a process has been successfuly started. * winsup.h (vfork_save): Extend to include frame info. Remove obsolete cpplus conditionals.
Diffstat (limited to 'winsup/cygwin/winsup.h')
-rw-r--r--winsup/cygwin/winsup.h11
1 files changed, 2 insertions, 9 deletions
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h
index 9a92df214..ff684628e 100644
--- a/winsup/cygwin/winsup.h
+++ b/winsup/cygwin/winsup.h
@@ -224,9 +224,9 @@ struct vfork_save
{
int pid;
jmp_buf j;
+ DWORD frame[100];
char **vfork_ebp;
- char *caller_ebp;
- char *retaddr;
+ char **vfork_esp;
int is_active () { return pid < 0; }
};
@@ -460,9 +460,6 @@ extern void (*__DTOR_LIST__) (void);
/* Initial and increment values for cygwin's fd table */
#define NOFILE_INCR 32
-#ifdef __cplusplus
-extern "C" {
-#endif
#include <sys/reent.h>
#define STD_RBITS (S_IRUSR | S_IRGRP | S_IROTH)
@@ -472,10 +469,6 @@ extern "C" {
#define O_NOSYMLINK 0x080000
#define O_DIROPEN 0x100000
-#ifdef __cplusplus
-}
-#endif
-
/*************************** Environment ******************************/
/* The structure below is used to control conversion to/from posix-style