1 /*        $NetBSD: db_variables.h,v 1.16 2017/12/28 17:51:19 christos 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  */
38 struct db_variable {
39           const char *name;   /* Name of variable */
40           void      *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 
49 extern const struct db_variable         db_vars[];          /* debugger variables */
50 extern const struct db_variable         * const db_evars;
51 extern const struct db_variable         db_regs[];          /* machine registers */
52 extern const struct db_variable         * const db_eregs;
53 
54 int       db_get_variable(db_expr_t *);
55 int       db_set_variable(db_expr_t);
56 void      db_read_variable(const struct db_variable *, db_expr_t *);
57 void      db_write_variable(const struct db_variable *, db_expr_t *);
58 void      db_set_cmd(db_expr_t, bool, db_expr_t, const char *);
59 
60 #endif    /* _DB_VARIABLES_H_ */
61