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

📄 clone.s

📁 ucLinux is a very good embeded sytem. Most of company use this as their development OS.
💻 S
字号:
/* Adapted from glibc *//* Copyright (C) 1996, 1997 Free Software Foundation, Inc. *//* clone is even more special than fork as it mucks with stacks   and invokes a function in the right context after its all over.  */#define _ERRNO_H#include <bits/errno.h>#include <sys/syscall.h>/* int _clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */#ifdef __H8300H__	.h8300h#endif#ifdef __H8300S__	.h8300s#endif.text.globl	_clone.globl	___clone_clone:___clone:	/* Sanity check arguments.  */	mov.l	#-EINVAL,er3	mov.l	er0,er0			/* no NULL function pointers */	beq	__syscall_error	mov.l	er1,er1			/* no NULL stack pointers */	beq	__syscall_error	/* Allocate space and copy the argument onto the new stack.  */	mov.l	@(4:16,sp),er3	mov.l	er3,@-er1	/* Do the system call */	mov.l	er0,er3			/* er3 = child entry */	mov.l	er1,er0	mov.l	er2,er1			/* er1 = flags */	mov.l	er0,er2			/* er2 = child sp */	mov.l	#__NR_clone,r0	trapa	#0	mov.l	er0,er0	bmi	__syscall_error	beq	thread_start	rts__syscall_error:	neg.l	er0	mov.l	er0,@-sp#if !defined(__PIC__)	jsr	@__errno_location#else	mov.l	@(__errno_location@GOTOFF,er5),er1	jsr	@er1#endif	mov.l	@sp,er1	mov.l	er1,@er0	sub.l	er0,er0	dec.l	#1,er0	rtsthread_start:	mov.l	@sp+,er0		/* restore args */	jsr     @er3	mov.l	er0,er1	mov.l	#__NR_exit,er0	trapa	#0#if defined(__HAVE_ELF__)	.weak clone	clone = __clone#else	.set clone,__clone#endif

⌨️ 快捷键说明

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