summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/m68k/bits/vfork.h
blob: 0b6ffa2c0eb09628b05f5eb272abac73f09d2dec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* orginally from include/unistd.h, written by ndf@linux.mit.edu> */

#ifndef _M68K_VFORK_H
#define _M68K_VFORK_H	1

extern int _clone __P ((int (*fn)(void *arg), void *child_stack, int flags, void *arg));

#define vfork() ({						\
register unsigned long __res __asm__ ("%d0") = __NR_fork;	\
__asm__ __volatile__ ("trap  #0"				\
                      : "=g" (__res)				\
                      : "0" (__res)				\
                      : "%d0");					\
if (__res >= (unsigned long)-4096) {				\
	errno = -__res;						\
	__res = (pid_t)-1;					\
}								\
(pid_t)__res;							\
})


#define clone clone_not_available_use__clone

#endif /* _M68K_VFORK_H */