strncpy_from_user.s

来自「内核linux2.4.20,可跟rtlinux3.2打补丁 组成实时linux系」· S 代码 · 共 49 行

S
49
字号
/* strncpy_from_user.S: Sparc strncpy from userspace. * *  Copyright(C) 1996 David S. Miller */#include <asm/cprefix.h>#include <asm/ptrace.h>#include <asm/errno.h>	.text	.align	4	/* Must return:	 *	 * -EFAULT		for an exception	 * count		if we hit the buffer limit	 * bytes copied		if we hit a null byte	 */	.globl	C_LABEL(__strncpy_from_user)C_LABEL(__strncpy_from_user):	/* %o0=dest, %o1=src, %o2=count */	mov	%o2, %o31:	subcc	%o2, 1, %o2	bneg	2f	 nop10:	ldub	[%o1], %o4	add	%o0, 1, %o0	cmp	%o4, 0	add	%o1, 1, %o1	bne	1b	 stb	%o4, [%o0 - 1]2:	add	%o2, 1, %o0	retl	 sub	%o3, %o0, %o0	.section .fixup,#alloc,#execinstr	.align	44:	retl	 mov	-EFAULT, %o0	.section __ex_table,#alloc	.align	4	.word	10b, 4b

⌨️ 快捷键说明

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