| 12345678910111213141516171819202122232425262728293031323334353637383940 | #include <features.h>#include <asm/unistd.h>#ifndef __NR_vfork#define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */#endif#define IMM #	.text	.align 2	.globl errno	.globl	__vfork#ifdef __HAVE_ELF__	.hidden	__vfork	.type	__vfork,@function#endif__vfork:	movl	%sp@+, %a1               /* save the return address for later */	movl	IMM __NR_vfork,%d0	trap	#0	movl	IMM -4097, %d1	cmpl 	%d0, %d1	bcs     fix_errno	jmp		%a1@                     /* don't return,  just jmp directly */fix_errno:	negl	%d0#ifndef __PIC__					/* needs handling as the other archs */	movl	errno, %a0#else	movl	errno@GOT(%a5), %a0#endif	movl	%d0, %a0@	movl	IMM -1, %d0	jmp		%a1@                     /* don't return,  just jmp directly */.size __vfork,.-__vforkstrong_alias(__vfork,vfork)
 |