ddb.h revision 798
1193323Sed/*- 2193323Sed * Copyright (c) 1993, Garrett A. Wollman. 3193323Sed * Copyright (c) 1993, University of Vermont and State Agricultural College. 4193323Sed * All rights reserved. 5193323Sed * 6193323Sed * Redistribution and use in source and binary forms, with or without 7193323Sed * modification, are permitted provided that the following conditions 8193323Sed * are met: 9193323Sed * 1. Redistributions of source code must retain the above copyright 10193323Sed * notice, this list of conditions and the following disclaimer. 11193323Sed * 2. Redistributions in binary form must reproduce the above copyright 12193323Sed * notice, this list of conditions and the following disclaimer in the 13193323Sed * documentation and/or other materials provided with the distribution. 14193323Sed * 3. Neither the name of the University nor the names of its contributors 15193323Sed * may be used to endorse or promote products derived from this software 16193323Sed * without specific prior written permission. 17198090Srdivacky * 18193323Sed * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 19193323Sed * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20193323Sed * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21193323Sed * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 22198090Srdivacky * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23202878Srdivacky * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24202878Srdivacky * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25202878Srdivacky * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26202878Srdivacky * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27193323Sed * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28193323Sed * SUCH DAMAGE. 29193323Sed * 30193323Sed * $Id$ 31202878Srdivacky */ 32202878Srdivacky 33193323Sed/* 34193323Sed * Necessary declarations for the `ddb' kernel debugger. 35193323Sed */ 36193323Sed 37193323Sed#ifndef __h_ddb_ddb 38193323Sed#define __h_ddb_ddb 1 39193323Sed 40193323Sed#include "machine/db_machdep.h" /* type definitions */ 41193323Sed 42193323Sed/* 43193323Sed * Global variables... 44193323Sed */ 45193323Sedextern char *esym; 46193323Sedextern unsigned int db_maxoff; 47193323Sedextern int db_inst_count; 48193323Sedextern int db_load_count; 49193323Sedextern int db_store_count; 50193323Sedextern int db_radix; 51193323Sedextern int db_max_width; 52193323Sedextern int db_tab_stop_width; 53193323Sed 54193323Sed/* 55193323Sed * Functions... 56193323Sed */ 57193323Sedextern void 58193323Seddb_read_bytes(vm_offset_t addr, register int size, register char *data); 59193323Sed /* machine-dependent */ 60193323Sed 61193323Sedextern void 62193323Seddb_write_bytes(vm_offset_t addr, register int size, register char *data); 63193323Sed /* machine-dependent */ 64193323Sed 65193323Sedstruct vm_map; /* forward declaration */ 66193323Sed 67193323Sedextern boolean_t db_map_equal(struct vm_map *, struct vm_map *); 68193323Sedextern boolean_t db_map_current(struct vm_map *); 69193323Sedextern struct vm_map *db_map_addr(vm_offset_t); 70193323Sed 71193323Sed#define db_strcpy strcpy 72193323Sedextern int db_expression (db_expr_t *valuep); 73193323Sed 74193323Sedtypedef void db_cmd_fcn(db_expr_t, int, db_expr_t, char *); 75193323Sed 76193323Sedextern db_cmd_fcn db_listbreak_cmd, db_listwatch_cmd, db_show_regs; 77193323Sedextern db_cmd_fcn db_print_cmd, db_examine_cmd, db_set_cmd, db_search_cmd; 78193323Sedextern db_cmd_fcn db_write_cmd, db_delete_cmd, db_breakpoint_cmd; 79193323Sedextern db_cmd_fcn db_deletewatch_cmd, db_watchpoint_cmd; 80193323Sedextern db_cmd_fcn db_single_step_cmd, db_trace_until_call_cmd; 81193323Sedextern db_cmd_fcn db_trace_until_matching_cmd, db_continue_cmd; 82193323Sedextern db_cmd_fcn db_stack_trace_cmd; 83193323Sed 84202878Srdivackyextern db_addr_t db_disasm(db_addr_t loc, boolean_t altfmt); 85202878Srdivacky /* instruction disassembler */ 86202878Srdivacky 87202878Srdivackyextern int db_value_of_name (char *name, db_expr_t *valuep); 88202878Srdivackyextern int db_get_variable (db_expr_t *valuep); 89202878Srdivackyextern void db_putchar (int c); 90202878Srdivackyextern void db_error (char *s); 91202878Srdivackyextern int db_readline (char *lstart, int lsize); 92202878Srdivackyextern void db_printf (const char *fmt, ...); 93202878Srdivackyextern void db_check_interrupt(void); 94202878Srdivackyextern void db_print_loc_and_inst (db_addr_t loc); 95202878Srdivacky 96202878Srdivackyextern void db_clear_watchpoints (void); 97202878Srdivackyextern void db_set_watchpoints (void); 98202878Srdivacky 99202878Srdivackyextern void db_restart_at_pc(boolean_t watchpt); 100202878Srdivackyextern boolean_t db_stop_at_pc(boolean_t *is_breakpoint); 101202878Srdivacky 102202878Srdivackyextern void db_skip_to_eol (void); 103202878Srdivackyextern void db_single_step (db_regs_t *regs); 104202878Srdivacky 105202878Srdivackyextern void db_trap (int type, int code); 106202878Srdivacky 107202878Srdivackyextern void kdbprinttrap(int, int); 108202878Srdivacky 109202878Srdivacky#endif /* __h_ddb_ddb */ 110202878Srdivacky