posixc.library: use vfork_jmp consistenty to exit __vfork
[AROS.git] / compiler / posixc / __vfork.h
blobdcc3f5c38049ebf9ff34ab3841d995f8c19501ad
1 #ifndef __VFORK_H
2 #define __VFORK_H
4 /*
5 Copyright © 2008-2013, The AROS Development Team. All rights reserved.
6 $Id$
7 */
9 #include <exec/types.h>
10 #include <dos/bptr.h>
11 #include <exec/exec.h>
12 #include <setjmp.h>
13 #include <sys/types.h>
14 #include <aros/startup.h>
16 #include "__fdesc.h"
18 struct PosixCIntBase;
20 struct vfork_data
22 struct vfork_data *prev;
23 jmp_buf vfork_jmp; /* jmp to place where vfork was called */
25 struct Task *parent;
26 int *parent_olderrorptr;
27 jmp_buf parent_oldexitjmp;
28 jmp_buf parent_newexitjmp;
29 BYTE parent_signal;
30 struct PosixCIntBase *parent_posixcbase;
31 struct StdCBase *parent_stdcbase;
32 int parent_cd_changed;
33 BPTR parent_cd_lock;
34 BPTR parent_curdir;
35 struct __env_item *parent_env_list;
36 APTR parent_internalpool;
37 int parent_numslots;
38 fdesc **parent_fd_array;
39 int parent_flags;
40 char *parent_upathbuf;
42 struct Task *child;
43 int child_executed;
44 int child_error, child_errno;
45 BYTE child_signal;
46 struct PosixCIntBase *child_posixcbase;
48 const char *exec_filename;
49 char *const *exec_argv;
50 char *const *exec_envp;
51 APTR exec_id;
54 pid_t __vfork(jmp_buf env);
55 void vfork_longjmp (jmp_buf env, int val);
57 #endif /* __VFORK_H */