blob: 6ffe3eadf105cb226c269511121be7e3ff349507 [file] [log] [blame]
David Daney6aa35242008-09-23 00:05:54 -07001/*
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 * Copyright (C) 2008 David Daney
7 */
8#ifndef _ASM_WATCH_H
9#define _ASM_WATCH_H
10
11#include <linux/bitops.h>
12
13#include <asm/mipsregs.h>
14
James Hogana7e89322016-03-01 22:19:36 +000015void mips_install_watch_registers(struct task_struct *t);
David Daney6aa35242008-09-23 00:05:54 -070016void mips_read_watch_registers(void);
17void mips_clear_watch_registers(void);
18void mips_probe_watch_registers(struct cpuinfo_mips *c);
19
20#ifdef CONFIG_HARDWARE_WATCHPOINTS
James Hogana7e89322016-03-01 22:19:36 +000021#define __restore_watch(task) do { \
David Daney6aa35242008-09-23 00:05:54 -070022 if (unlikely(test_bit(TIF_LOAD_WATCH, \
James Hogana7e89322016-03-01 22:19:36 +000023 &task_thread_info(task)->flags))) { \
24 mips_install_watch_registers(task); \
David Daney6aa35242008-09-23 00:05:54 -070025 } \
26} while (0)
27
28#else
James Hogana7e89322016-03-01 22:19:36 +000029#define __restore_watch(task) do {} while (0)
David Daney6aa35242008-09-23 00:05:54 -070030#endif
31
32#endif /* _ASM_WATCH_H */