Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 77b2555b52a894a2e39a42e43d993df875c46a6a 60 lines 1.3 kB view raw
1/* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Kernel debug stuff to use the Watch registers. 7 * Useful to find stack overflows, dangling pointers etc. 8 * 9 * Copyright (C) 1995, 1996, 1999 by Ralf Baechle 10 */ 11#include <asm/asm.h> 12#include <asm/mipsregs.h> 13#include <asm/regdef.h> 14 15 .set noreorder 16/* 17 * Parameter: a0 - logic address to watch 18 * Currently only KSEG0 addresses are allowed! 19 * a1 - set bit #1 to trap on load references 20 * bit #0 to trap on store references 21 * Results : none 22 */ 23 LEAF(__watch_set) 24 li t0, 0x80000000 25 subu a0, t0 26 ori a0, 7 27 xori a0, 7 28 or a0, a1 29 mtc0 a0, CP0_WATCHLO 30 sw a0, watch_savelo 31 32 jr ra 33 mtc0 zero, CP0_WATCHHI 34 END(__watch_set) 35 36/* 37 * Parameter: none 38 * Results : none 39 */ 40 LEAF(__watch_clear) 41 jr ra 42 mtc0 zero, CP0_WATCHLO 43 END(__watch_clear) 44 45/* 46 * Parameter: none 47 * Results : none 48 */ 49 LEAF(__watch_reenable) 50 lw t0, watch_savelo 51 jr ra 52 mtc0 t0, CP0_WATCHLO 53 END(__watch_reenable) 54 55/* 56 * Saved value of the c0_watchlo register for watch_reenable() 57 */ 58 .data 59watch_savelo: .word 0 60 .text