⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ovfork.s

📁 操作系统SunOS 4.1.3版本的源码
💻 S
字号:
/* @(#)Ovfork.s 1.1 92/07/30 SMI; from UCB 4.1 12/21/80 *//* * C library -- vfork */#include "SYS.h"#define	SYS_vfork	66/* * pid = vfork(); * * r1 == 0 in parent process, r1 == 1 in child process. * r0 == pid of child in parent, r0 == pid of parent in child. */#if vax/* * trickery here, due to keith sklower, uses ret to clear the stack, * and then returns with a jump indirect, since only one person can return * with a ret off this stack... we do the ret before we vfork! */ENTRY(vfork)	movl	16(fp),r2	movab	here,16(fp)	REThere:	chmk	$SYS_vfork	bcc	vforkok	jmp	verrorvforkok:	tstl	r1		# child process ?	bneq	child	# yes	bcc 	parent		# if c-bit not set, fork ok.globl	_errnoverror:	movl	r0,_errno	mnegl	$1,r0	jmp	(r2)child:	clrl	r0parent:	jmp	(r2)#endif#if sunENTRY(vfork)	movl	sp@+,a0	movl	#SYS_vfork,sp@-	trap	#0	bcss	verrorvforkok:	tstl	d1		| child process ?	jne	child		| yes	jmp	a0@.globl	_errnoverror:#ifdef PIC	PIC_SETUP(a1)	movl	a1@(_errno:w),a1	movl	d0, a1@#else	movl	d0,_errno#endif	movl	#-1,d0	jmp	a0@child:	clrl	d0parent:	jmp	a0@#endif

⌨️ 快捷键说明

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