watch.s

来自「Linux内核源代码 为压缩文件 是<<Linux内核>&gt」· S 代码 · 共 62 行

S
62
字号
/* $Id$ * * This file is subject to the terms and conditions of the GNU General Public * License.  See the file "COPYING" in the main directory of this archive * for more details. * * Kernel debug stuff to use the Watch registers. * Useful to find stack overflows, dangling pointers etc. * * Copyright (C) 1995, 1996, 1999 by Ralf Baechle */#include <asm/asm.h>#include <asm/mipsregs.h>#include <asm/regdef.h>		.set	noreorder/* * Parameter: a0 - logic address to watch *                 Currently only KSEG0 addresses are allowed! *            a1 - set bit #1 to trap on load references *                     bit #0 to trap on store references * Results  : none */		LEAF(__watch_set)		li	t0,0x80000000		subu	a0,t0		ori	a0,7		xori	a0,7		or	a0,a1		mtc0	a0,CP0_WATCHLO		sw	a0,watch_savelo		jr	ra		 mtc0	zero,CP0_WATCHHI		END(__watch_set)/* * Parameter: none * Results  : none */		LEAF(__watch_clear)		jr	ra		 mtc0	zero,CP0_WATCHLO		END(__watch_clear)/* * Parameter: none * Results  : none */		LEAF(__watch_reenable)		lw	t0,watch_savelo		jr	ra		 mtc0	t0,CP0_WATCHLO		END(__watch_reenable)/* * Saved value of the c0_watchlo register for watch_reenable() */		.datawatch_savelo:	.word	0		.text

⌨️ 快捷键说明

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