📄 clear_user.s
字号:
/* * linux/arch/arm/lib/clear_user.S * * Copyright (C) 1995, 1996,1997,1998 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#include <linux/linkage.h>#include <asm/assembler.h> .text/* Prototype: int __arch_clear_user(void *addr, size_t sz) * Purpose : clear some user memory * Params : addr - user memory address to clear * : sz - number of bytes to clear * Returns : number of bytes NOT cleared */ENTRY(__arch_clear_user) stmfd sp!, {r1, lr} mov r2, #0 cmp r1, #4 blt 2f ands ip, r0, #3 beq 1f cmp ip, #2USER( strbt r2, [r0], #1)USER( strlebt r2, [r0], #1)USER( strltbt r2, [r0], #1) rsb ip, ip, #4 sub r1, r1, ip @ 7 6 5 4 3 2 11: subs r1, r1, #8 @ -1 -2 -3 -4 -5 -6 -7USER( strplt r2, [r0], #4)USER( strplt r2, [r0], #4) bpl 1b adds r1, r1, #4 @ 3 2 1 0 -1 -2 -3USER( strplt r2, [r0], #4)2: tst r1, #2 @ 1x 1x 0x 0x 1x 1x 0xUSER( strnebt r2, [r0], #1)USER( strnebt r2, [r0], #1) tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1USER( strnebt r2, [r0], #1) mov r0, #0 LOADREGS(fd,sp!, {r1, pc}) .section .fixup,"ax" .align 09001: LOADREGS(fd,sp!, {r0, pc}) .previous
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -