Deleted Added
full compact
db_machdep.h (137940) db_machdep.h (137975)
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

--- 10 unchanged lines hidden (view full) ---

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 * from: FreeBSD: src/sys/i386/include/db_machdep.h,v 1.16 1999/10/04
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

--- 10 unchanged lines hidden (view full) ---

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 * from: FreeBSD: src/sys/i386/include/db_machdep.h,v 1.16 1999/10/04
27 * $FreeBSD: head/sys/arm/include/db_machdep.h 137940 2004-11-20 16:52:10Z cognet $
27 * $FreeBSD: head/sys/arm/include/db_machdep.h 137975 2004-11-21 18:11:39Z cognet $
28 */
29
30#ifndef _MACHINE_DB_MACHDEP_H_
31#define _MACHINE_DB_MACHDEP_H_
32
33#include <machine/frame.h>
34#include <machine/trap.h>
35#include <machine/armreg.h>
36
28 */
29
30#ifndef _MACHINE_DB_MACHDEP_H_
31#define _MACHINE_DB_MACHDEP_H_
32
33#include <machine/frame.h>
34#include <machine/trap.h>
35#include <machine/armreg.h>
36
37#define BYTE_MSF (1)
38
39#define T_BREAKPOINT (1)
40typedef vm_offset_t db_addr_t;
41typedef int db_expr_t;
42
43#define PC_REGS() ((db_addr_t)kdb_thrctx->un_32.pcb32_pc)
44
45#define BKPT_INST (KERNEL_BREAKPOINT)
46#define BKPT_SIZE (INSN_SIZE)
47#define BKPT_SET(inst) (BKPT_INST)
48
49#define BKPT_SKIP do { \
50 kdb_frame->tf_pc += BKPT_SIZE; \
51} while (0)
52
37#define T_BREAKPOINT (1)
38typedef vm_offset_t db_addr_t;
39typedef int db_expr_t;
40
41#define PC_REGS() ((db_addr_t)kdb_thrctx->un_32.pcb32_pc)
42
43#define BKPT_INST (KERNEL_BREAKPOINT)
44#define BKPT_SIZE (INSN_SIZE)
45#define BKPT_SET(inst) (BKPT_INST)
46
47#define BKPT_SKIP do { \
48 kdb_frame->tf_pc += BKPT_SIZE; \
49} while (0)
50
53#define db_clear_single_step(regs)
54#define db_set_single_step(regs)
51#define SOFTWARE_SSTEP 1
55
56#define IS_BREAKPOINT_TRAP(type, code) (type == T_BREAKPOINT)
57#define IS_WATCHPOINT_TRAP(type, code) (0)
58
59
60#define inst_trap_return(ins) (0)
61/* ldmxx reg, {..., pc}
62 01800000 stack mode
63 000f0000 register
64 0000ffff register list */
65/* mov pc, reg
66 0000000f register */
67#define inst_return(ins) (((ins) & 0x0e108000) == 0x08108000 || \
52
53#define IS_BREAKPOINT_TRAP(type, code) (type == T_BREAKPOINT)
54#define IS_WATCHPOINT_TRAP(type, code) (0)
55
56
57#define inst_trap_return(ins) (0)
58/* ldmxx reg, {..., pc}
59 01800000 stack mode
60 000f0000 register
61 0000ffff register list */
62/* mov pc, reg
63 0000000f register */
64#define inst_return(ins) (((ins) & 0x0e108000) == 0x08108000 || \
68 ((ins) & 0x0ff0fff0) == 0x01a0f000)
65 ((ins) & 0x0ff0fff0) == 0x01a0f000 || \
66 ((ins) & 0x0ffffff0) == 0x012fff10) /* bx */
69/* bl ...
70 00ffffff offset>>2 */
71#define inst_call(ins) (((ins) & 0x0f000000) == 0x0b000000)
72/* b ...
73 00ffffff offset>>2 */
74/* ldr pc, [pc, reg, lsl #2]
75 0000000f register */
76
67/* bl ...
68 00ffffff offset>>2 */
69#define inst_call(ins) (((ins) & 0x0f000000) == 0x0b000000)
70/* b ...
71 00ffffff offset>>2 */
72/* ldr pc, [pc, reg, lsl #2]
73 0000000f register */
74
75#define inst_branch(ins) (((ins) & 0x0f000000) == 0x0a000000 || \
76 ((ins) & 0x0fdffff0) == 0x079ff100)
77
78#define inst_load(ins) (0)
79#define inst_store(ins) (0)
80
77
78#define inst_load(ins) (0)
79#define inst_store(ins) (0)
80
81#define next_instr_address(pc, bd) ((bd) ? (pc) : ((pc) + INSN_SIZE))
82
81#define DB_SMALL_VALUE_MAX (0x7fffffff)
82#define DB_SMALL_VALUE_MIN (-0x40001)
83
83#define DB_SMALL_VALUE_MAX (0x7fffffff)
84#define DB_SMALL_VALUE_MIN (-0x40001)
85
84#define DB_ELFSIZE 64
86#define DB_ELFSIZE 32
85
86int db_validate_address(vm_offset_t);
87
88int db_validate_address(vm_offset_t);
89
90u_int branch_taken (u_int insn, u_int pc);
91
87#endif /* !_MACHINE_DB_MACHDEP_H_ */
92#endif /* !_MACHINE_DB_MACHDEP_H_ */