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 * Copyright (C) 1996, 1997, 1998, 2000, 2001 by Ralf Baechle
7 */
8#ifndef _ASM_WATCH_H
9#define _ASM_WATCH_H
10
11#include <linux/linkage.h>
12
13/*
14 * Types of reference for watch_set()
15 */
16enum wref_type {
17	wr_save = 1,
18	wr_load = 2
19};
20
21extern asmlinkage void __watch_set(unsigned long addr, enum wref_type ref);
22extern asmlinkage void __watch_clear(void);
23extern asmlinkage void __watch_reenable(void);
24
25#define watch_set(addr, ref)					\
26	if (cpu_has_watch)					\
27		__watch_set(addr, ref)
28#define watch_clear()						\
29	if (cpu_has_watch)					\
30		__watch_clear()
31#define watch_reenable()					\
32	if (cpu_has_watch)					\
33		__watch_reenable()
34
35#endif /* _ASM_WATCH_H */
36