1/* $NetBSD: db_variables.h,v 1.15 2007/02/22 04:38:06 matt Exp $ */
2
3/*
4 * Mach Operating System
5 * Copyright (c) 1991,1990 Carnegie Mellon University
6 * All Rights Reserved.
7 *
8 * Permission to use, copy, modify and distribute this software and its
9 * documentation is hereby granted, provided that both the copyright
10 * notice and this permission notice appear in all copies of the
11 * software, derivative works or modified versions, and any portions
12 * thereof, and that both notices appear in supporting documentation.
13 *
14 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
15 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
16 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
17 *
18 * Carnegie Mellon requests users of this software to return to
19 *
20 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
21 * School of Computer Science
22 * Carnegie Mellon University
23 * Pittsburgh PA 15213-3890
24 *
25 * any improvements or extensions that they make and grant Carnegie the
26 * rights to redistribute these changes.
27 *
28 * Author: David B. Golub, Carnegie Mellon University
29 * Date: 7/90
30 */
31
32#ifndef _DB_VARIABLES_H_
33#define _DB_VARIABLES_H_
34
35/*
36 * Debugger variables.
37 */
38struct db_variable {
39 const char *name; /* Name of variable */
40 long *valuep; /* value of variable */
41 /* function to call when reading/writing */
42 int (*fcn)(const struct db_variable *, db_expr_t *, int);
43 const char *modif;
44#define DB_VAR_GET 0
45#define DB_VAR_SET 1
46};
47#define FCN_NULL ((int (*)(const struct db_variable *, db_expr_t *, int))0)
48
49extern const struct db_variable db_vars[]; /* debugger variables */
50extern const struct db_variable * const db_evars;
51extern const struct db_variable db_regs[]; /* machine registers */
52extern const struct db_variable * const db_eregs;
53
54int db_get_variable(db_expr_t *);
55int db_set_variable(db_expr_t);
56void db_read_variable(const struct db_variable *, db_expr_t *);
57void db_write_variable(const struct db_variable *, db_expr_t *);
58void db_set_cmd(db_expr_t, bool, db_expr_t, const char *);
59
60#endif /* _DB_VARIABLES_H_ */
61