|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1991,1990 Carnegie Mellon University ! 4: * All Rights Reserved. ! 5: * ! 6: * Permission to use, copy, modify and distribute this software and its ! 7: * documentation is hereby granted, provided that both the copyright ! 8: * notice and this permission notice appear in all copies of the ! 9: * software, derivative works or modified versions, and any portions ! 10: * thereof, and that both notices appear in supporting documentation. ! 11: * ! 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 15: * ! 16: * Carnegie Mellon requests users of this software to return to ! 17: * ! 18: * Software Distribution Coordinator or [email protected] ! 19: * School of Computer Science ! 20: * Carnegie Mellon University ! 21: * Pittsburgh PA 15213-3890 ! 22: * ! 23: * any improvements or extensions that they make and grant Carnegie Mellon ! 24: * the rights to redistribute these changes. ! 25: */ ! 26: /* ! 27: * Author: David B. Golub, Carnegie Mellon University ! 28: * Date: 7/90 ! 29: */ ! 30: ! 31: #ifndef _DB_VARIABLES_H_ ! 32: #define _DB_VARIABLES_H_ ! 33: ! 34: #include <kern/thread.h> ! 35: ! 36: /* ! 37: * Debugger variables. ! 38: */ ! 39: struct db_variable { ! 40: char *name; /* Name of variable */ ! 41: db_expr_t *valuep; /* pointer to value of variable */ ! 42: /* function to call when reading/writing */ ! 43: int (*fcn)(/* db_variable, db_expr_t, int, db_var_aux_param_t */); ! 44: short min_level; /* number of minimum suffix levels */ ! 45: short max_level; /* number of maximum suffix levels */ ! 46: short low; /* low value of level 1 suffix */ ! 47: short high; /* high value of level 1 suffix */ ! 48: #define DB_VAR_GET 0 ! 49: #define DB_VAR_SET 1 ! 50: }; ! 51: #define FCN_NULL ((int (*)())0) ! 52: ! 53: #define DB_VAR_LEVEL 3 /* maximum number of suffix level */ ! 54: ! 55: #define db_read_variable(vp, valuep) \ ! 56: db_read_write_variable(vp, valuep, DB_VAR_GET, 0) ! 57: #define db_write_variable(vp, valuep) \ ! 58: db_read_write_variable(vp, valuep, DB_VAR_SET, 0) ! 59: ! 60: /* ! 61: * auxiliary parameters passed to a variable handler ! 62: */ ! 63: struct db_var_aux_param { ! 64: char *modif; /* option strings */ ! 65: short level; /* number of levels */ ! 66: short suffix[DB_VAR_LEVEL]; /* suffix */ ! 67: thread_t thread; /* target task */ ! 68: }; ! 69: ! 70: typedef struct db_var_aux_param *db_var_aux_param_t; ! 71: ! 72: ! 73: extern struct db_variable db_vars[]; /* debugger variables */ ! 74: extern struct db_variable *db_evars; ! 75: extern struct db_variable db_regs[]; /* machine registers */ ! 76: extern struct db_variable *db_eregs; ! 77: ! 78: #endif /* _DB_VARIABLES_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.