diff options
Diffstat (limited to 'i386/i386/db_interface.h')
-rw-r--r-- | i386/i386/db_interface.h | 65 |
1 files changed, 61 insertions, 4 deletions
diff --git a/i386/i386/db_interface.h b/i386/i386/db_interface.h index 10a02e2b..8d7daeae 100644 --- a/i386/i386/db_interface.h +++ b/i386/i386/db_interface.h @@ -24,6 +24,8 @@ #include <sys/types.h> #include <kern/task.h> #include <machine/thread.h> +#include <ddb/db_watch.h> +#include <ddb/db_variables.h> extern boolean_t kdb_trap ( int type, @@ -53,6 +55,12 @@ extern boolean_t db_phys_eq ( task_t task2, vm_offset_t addr2); +extern int db_user_to_kernel_address( + task_t task, + vm_offset_t addr, + vm_offset_t *kaddr, + int flag); + extern void db_task_name (task_t task); #define I386_DB_TYPE_X 0 @@ -67,9 +75,58 @@ extern void db_task_name (task_t task); #define I386_DB_LOCAL 1 #define I386_DB_GLOBAL 2 -extern unsigned long dr0 (vm_offset_t linear_addr, int type, int len, int persistence); -extern unsigned long dr1 (vm_offset_t linear_addr, int type, int len, int persistence); -extern unsigned long dr2 (vm_offset_t linear_addr, int type, int len, int persistence); -extern unsigned long dr3 (vm_offset_t linear_addr, int type, int len, int persistence); +#if MACH_KDB +extern boolean_t db_set_hw_watchpoint( + db_watchpoint_t watch, + unsigned num); + +extern boolean_t db_clear_hw_watchpoint( + unsigned num); + +extern void db_dr ( + int num, + vm_offset_t linear_addr, + int type, + int len, + int persistence); + +extern void +db_stack_trace_cmd( + db_expr_t addr, + boolean_t have_addr, + db_expr_t count, + const char *modif); + +extern void +db_halt_cpu(void); +extern void +db_reset_cpu(void); + +void +db_i386_reg_value( + struct db_variable *vp, + db_expr_t *valuep, + int flag, + struct db_var_aux_param *ap); + +#endif + +extern void db_get_debug_state( + pcb_t pcb, + struct i386_debug_state *state); +extern kern_return_t db_set_debug_state( + pcb_t pcb, + const struct i386_debug_state *state); + +extern void db_load_context(pcb_t pcb); + +extern void cnpollc(boolean_t on); + +void +db_write_bytes_user_space( + vm_offset_t addr, + int size, + char *data, + task_t task); #endif /* _I386_DB_INTERFACE_H_ */ |