1381fe1aaSGarrett Wollman /*- 2381fe1aaSGarrett Wollman * Copyright (c) 1993, Garrett A. Wollman. 3381fe1aaSGarrett Wollman * Copyright (c) 1993, University of Vermont and State Agricultural College. 4381fe1aaSGarrett Wollman * All rights reserved. 5381fe1aaSGarrett Wollman * 6381fe1aaSGarrett Wollman * Redistribution and use in source and binary forms, with or without 7381fe1aaSGarrett Wollman * modification, are permitted provided that the following conditions 8381fe1aaSGarrett Wollman * are met: 9381fe1aaSGarrett Wollman * 1. Redistributions of source code must retain the above copyright 10381fe1aaSGarrett Wollman * notice, this list of conditions and the following disclaimer. 11381fe1aaSGarrett Wollman * 2. Redistributions in binary form must reproduce the above copyright 12381fe1aaSGarrett Wollman * notice, this list of conditions and the following disclaimer in the 13381fe1aaSGarrett Wollman * documentation and/or other materials provided with the distribution. 14381fe1aaSGarrett Wollman * 3. Neither the name of the University nor the names of its contributors 15381fe1aaSGarrett Wollman * may be used to endorse or promote products derived from this software 16381fe1aaSGarrett Wollman * without specific prior written permission. 17381fe1aaSGarrett Wollman * 18381fe1aaSGarrett Wollman * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 19381fe1aaSGarrett Wollman * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20381fe1aaSGarrett Wollman * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21381fe1aaSGarrett Wollman * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 22381fe1aaSGarrett Wollman * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23381fe1aaSGarrett Wollman * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24381fe1aaSGarrett Wollman * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25381fe1aaSGarrett Wollman * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26381fe1aaSGarrett Wollman * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27381fe1aaSGarrett Wollman * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28381fe1aaSGarrett Wollman * SUCH DAMAGE. 29381fe1aaSGarrett Wollman * 30381fe1aaSGarrett Wollman * $Id$ 31381fe1aaSGarrett Wollman */ 32381fe1aaSGarrett Wollman 33381fe1aaSGarrett Wollman /* 34381fe1aaSGarrett Wollman * Necessary declarations for the `ddb' kernel debugger. 35381fe1aaSGarrett Wollman */ 36381fe1aaSGarrett Wollman 37381fe1aaSGarrett Wollman #ifndef __h_ddb_ddb 38381fe1aaSGarrett Wollman #define __h_ddb_ddb 1 39381fe1aaSGarrett Wollman 40381fe1aaSGarrett Wollman #include "machine/db_machdep.h" /* type definitions */ 41381fe1aaSGarrett Wollman 42381fe1aaSGarrett Wollman /* 43381fe1aaSGarrett Wollman * Global variables... 44381fe1aaSGarrett Wollman */ 45381fe1aaSGarrett Wollman extern char *esym; 46381fe1aaSGarrett Wollman extern unsigned int db_maxoff; 47381fe1aaSGarrett Wollman extern int db_inst_count; 48381fe1aaSGarrett Wollman extern int db_load_count; 49381fe1aaSGarrett Wollman extern int db_store_count; 50381fe1aaSGarrett Wollman extern int db_radix; 51381fe1aaSGarrett Wollman extern int db_max_width; 52381fe1aaSGarrett Wollman extern int db_tab_stop_width; 53381fe1aaSGarrett Wollman 54381fe1aaSGarrett Wollman /* 55381fe1aaSGarrett Wollman * Functions... 56381fe1aaSGarrett Wollman */ 57381fe1aaSGarrett Wollman extern void 58381fe1aaSGarrett Wollman db_read_bytes(vm_offset_t addr, register int size, register char *data); 59381fe1aaSGarrett Wollman /* machine-dependent */ 60381fe1aaSGarrett Wollman 61381fe1aaSGarrett Wollman extern void 62381fe1aaSGarrett Wollman db_write_bytes(vm_offset_t addr, register int size, register char *data); 63381fe1aaSGarrett Wollman /* machine-dependent */ 64381fe1aaSGarrett Wollman 65381fe1aaSGarrett Wollman struct vm_map; /* forward declaration */ 66381fe1aaSGarrett Wollman 67381fe1aaSGarrett Wollman extern boolean_t db_map_equal(struct vm_map *, struct vm_map *); 68381fe1aaSGarrett Wollman extern boolean_t db_map_current(struct vm_map *); 69381fe1aaSGarrett Wollman extern struct vm_map *db_map_addr(vm_offset_t); 70381fe1aaSGarrett Wollman 71381fe1aaSGarrett Wollman #define db_strcpy strcpy 72381fe1aaSGarrett Wollman extern int db_expression (db_expr_t *valuep); 73381fe1aaSGarrett Wollman 74381fe1aaSGarrett Wollman typedef void db_cmd_fcn(db_expr_t, int, db_expr_t, char *); 75381fe1aaSGarrett Wollman 76381fe1aaSGarrett Wollman extern db_cmd_fcn db_listbreak_cmd, db_listwatch_cmd, db_show_regs; 77381fe1aaSGarrett Wollman extern db_cmd_fcn db_print_cmd, db_examine_cmd, db_set_cmd, db_search_cmd; 78381fe1aaSGarrett Wollman extern db_cmd_fcn db_write_cmd, db_delete_cmd, db_breakpoint_cmd; 79381fe1aaSGarrett Wollman extern db_cmd_fcn db_deletewatch_cmd, db_watchpoint_cmd; 80381fe1aaSGarrett Wollman extern db_cmd_fcn db_single_step_cmd, db_trace_until_call_cmd; 81381fe1aaSGarrett Wollman extern db_cmd_fcn db_trace_until_matching_cmd, db_continue_cmd; 82381fe1aaSGarrett Wollman extern db_cmd_fcn db_stack_trace_cmd; 83381fe1aaSGarrett Wollman 84381fe1aaSGarrett Wollman extern db_addr_t db_disasm(db_addr_t loc, boolean_t altfmt); 85381fe1aaSGarrett Wollman /* instruction disassembler */ 86381fe1aaSGarrett Wollman 87381fe1aaSGarrett Wollman extern int db_value_of_name (char *name, db_expr_t *valuep); 88381fe1aaSGarrett Wollman extern int db_get_variable (db_expr_t *valuep); 89381fe1aaSGarrett Wollman extern void db_putchar (int c); 90381fe1aaSGarrett Wollman extern void db_error (char *s); 91381fe1aaSGarrett Wollman extern int db_readline (char *lstart, int lsize); 92381fe1aaSGarrett Wollman extern void db_printf (const char *fmt, ...); 93381fe1aaSGarrett Wollman extern void db_check_interrupt(void); 94381fe1aaSGarrett Wollman extern void db_print_loc_and_inst (db_addr_t loc); 95381fe1aaSGarrett Wollman 96381fe1aaSGarrett Wollman extern void db_clear_watchpoints (void); 97381fe1aaSGarrett Wollman extern void db_set_watchpoints (void); 98381fe1aaSGarrett Wollman 99381fe1aaSGarrett Wollman extern void db_restart_at_pc(boolean_t watchpt); 100381fe1aaSGarrett Wollman extern boolean_t db_stop_at_pc(boolean_t *is_breakpoint); 101381fe1aaSGarrett Wollman 102381fe1aaSGarrett Wollman extern void db_skip_to_eol (void); 103381fe1aaSGarrett Wollman extern void db_single_step (db_regs_t *regs); 104381fe1aaSGarrett Wollman 105381fe1aaSGarrett Wollman extern void db_trap (int type, int code); 106381fe1aaSGarrett Wollman 107381fe1aaSGarrett Wollman extern void kdbprinttrap(int, int); 108381fe1aaSGarrett Wollman 109381fe1aaSGarrett Wollman #endif /* __h_ddb_ddb */ 110