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, 1999, 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 char watch_available;
22
23extern asmlinkage void __watch_set(unsigned long addr, enum wref_type ref);
24extern asmlinkage void __watch_clear(void);
25extern asmlinkage void __watch_reenable(void);
26
27#define watch_set(addr, ref)					\
28	if (watch_available)					\
29		__watch_set(addr, ref)
30#define watch_clear()						\
31	if (watch_available)					\
32		__watch_clear()
33#define watch_reenable()					\
34	if (watch_available)					\
35		__watch_reenable()
36
37#endif /* _ASM_WATCH_H  */
38