xref: /freebsd/sys/ddb/db_variables.h (revision 95ee2897)
1dd3cb568SWarner Losh /*-
2796df753SPedro F. Giffuni  * SPDX-License-Identifier: MIT-CMU
3796df753SPedro F. Giffuni  *
45b81b6b3SRodney W. Grimes  * Mach Operating System
55b81b6b3SRodney W. Grimes  * Copyright (c) 1991,1990 Carnegie Mellon University
65b81b6b3SRodney W. Grimes  * All Rights Reserved.
75b81b6b3SRodney W. Grimes  *
85b81b6b3SRodney W. Grimes  * Permission to use, copy, modify and distribute this software and its
95b81b6b3SRodney W. Grimes  * documentation is hereby granted, provided that both the copyright
105b81b6b3SRodney W. Grimes  * notice and this permission notice appear in all copies of the
115b81b6b3SRodney W. Grimes  * software, derivative works or modified versions, and any portions
125b81b6b3SRodney W. Grimes  * thereof, and that both notices appear in supporting documentation.
135b81b6b3SRodney W. Grimes  *
145b81b6b3SRodney W. Grimes  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
155b81b6b3SRodney W. Grimes  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
165b81b6b3SRodney W. Grimes  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
175b81b6b3SRodney W. Grimes  *
185b81b6b3SRodney W. Grimes  * Carnegie Mellon requests users of this software to return to
195b81b6b3SRodney W. Grimes  *
205b81b6b3SRodney W. Grimes  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
215b81b6b3SRodney W. Grimes  *  School of Computer Science
225b81b6b3SRodney W. Grimes  *  Carnegie Mellon University
235b81b6b3SRodney W. Grimes  *  Pittsburgh PA 15213-3890
245b81b6b3SRodney W. Grimes  *
255b81b6b3SRodney W. Grimes  * any improvements or extensions that they make and grant Carnegie the
265b81b6b3SRodney W. Grimes  * rights to redistribute these changes.
275b81b6b3SRodney W. Grimes  */
280edf66ecSRodney W. Grimes 
295b81b6b3SRodney W. Grimes /*
305b81b6b3SRodney W. Grimes  *	Author: David B. Golub, Carnegie Mellon University
315b81b6b3SRodney W. Grimes  *	Date:	7/90
325b81b6b3SRodney W. Grimes  */
335b81b6b3SRodney W. Grimes 
344753168fSBruce Evans #ifndef _DDB_DB_VARIABLES_H_
354753168fSBruce Evans #define	_DDB_DB_VARIABLES_H_
365b81b6b3SRodney W. Grimes 
375b81b6b3SRodney W. Grimes /*
385b81b6b3SRodney W. Grimes  * Debugger variables.
395b81b6b3SRodney W. Grimes  */
404753168fSBruce Evans struct db_variable;
4114e10f99SAlfred Perlstein typedef	int	db_varfcn_t(struct db_variable *vp, db_expr_t *valuep, int op);
425b81b6b3SRodney W. Grimes struct db_variable {
435b81b6b3SRodney W. Grimes 	char	*name;		/* Name of variable */
443da6ef3cSBruce Evans 	db_expr_t *valuep;	/* value of variable */
455b81b6b3SRodney W. Grimes 				/* function to call when reading/writing */
464753168fSBruce Evans 	db_varfcn_t *fcn;
475b81b6b3SRodney W. Grimes #define	DB_VAR_GET	0
485b81b6b3SRodney W. Grimes #define	DB_VAR_SET	1
495b81b6b3SRodney W. Grimes };
504753168fSBruce Evans #define	FCN_NULL	((db_varfcn_t *)0)
515b81b6b3SRodney W. Grimes 
525b81b6b3SRodney W. Grimes extern struct db_variable	db_regs[];	/* machine registers */
535b81b6b3SRodney W. Grimes extern struct db_variable	*db_eregs;
545b81b6b3SRodney W. Grimes 
55eddfbb76SRobert Watson extern db_varfcn_t	db_var_curcpu;		/* DPCPU default CPU */
56eddfbb76SRobert Watson extern db_varfcn_t	db_var_curvnet;		/* Default vnet */
57eddfbb76SRobert Watson extern db_varfcn_t	db_var_db_cpu;		/* DPCPU active CPU */
58eddfbb76SRobert Watson extern db_varfcn_t	db_var_db_vnet;		/* Active vnet */
59eddfbb76SRobert Watson 
6037224cd3SMarcel Moolenaar int db_read_variable(struct db_variable *, db_expr_t *);
6137224cd3SMarcel Moolenaar int db_write_variable(struct db_variable *, db_expr_t);
62381fe1aaSGarrett Wollman 
634753168fSBruce Evans #endif /* _!DDB_DB_VARIABLES_H_ */
64