vfork.s

来自「它通过提供glibc兼容使得应用程序移植到较小的c 库时相当得容易. 它能够应用」· S 代码 · 共 36 行

S
36
字号
#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#if defined __HAVE_ELF__	.type	 vfork,@function#endifvfork:	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__	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 */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?