summaryrefslogtreecommitdiff
path: root/i386/i386/db_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'i386/i386/db_interface.h')
-rw-r--r--i386/i386/db_interface.h65
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_ */