db_machdep.h revision 86525
1207151Smarius/*
2207151Smarius * Mach Operating System
3207151Smarius * Copyright (c) 1991,1990 Carnegie Mellon University
4207151Smarius * All Rights Reserved.
5207151Smarius *
6207151Smarius * Permission to use, copy, modify and distribute this software and its
7207151Smarius * documentation is hereby granted, provided that both the copyright
8207151Smarius * notice and this permission notice appear in all copies of the
9207151Smarius * software, derivative works or modified versions, and any portions
10207151Smarius * thereof, and that both notices appear in supporting documentation.
11207151Smarius *
12207151Smarius * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13207151Smarius * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14207151Smarius * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15207151Smarius *
16207151Smarius * Carnegie Mellon requests users of this software to return to
17207151Smarius *
18207151Smarius *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
19207151Smarius *  School of Computer Science
20207151Smarius *  Carnegie Mellon University
21207151Smarius *  Pittsburgh PA 15213-3890
22207151Smarius *
23207151Smarius * any improvements or extensions that they make and grant Carnegie Mellon
24207151Smarius * the rights to redistribute these changes.
25207151Smarius *
26207151Smarius *	from: FreeBSD: src/sys/i386/include/db_machdep.h,v 1.16 1999/10/04
27207151Smarius * $FreeBSD: head/sys/sparc64/include/db_machdep.h 86525 2001-11-18 03:41:12Z jake $
28207151Smarius */
29207151Smarius
30207151Smarius#ifndef	_MACHINE_DB_MACHDEP_H_
31207151Smarius#define	_MACHINE_DB_MACHDEP_H_
32207151Smarius
33207151Smarius#include <machine/frame.h>
34207151Smarius#include <machine/trap.h>
35207151Smarius
36207151Smarius#define	BYTE_MSF	(1)
37207151Smarius
38207151Smariustypedef vm_offset_t	db_addr_t;
39207151Smariustypedef long		db_expr_t;
40207151Smarius
41207151Smariustypedef struct trapframe db_regs_t;
42207151Smariusextern db_regs_t ddb_regs;
43207151Smarius#define	DDB_REGS	(&ddb_regs)
44207151Smarius
45207151Smarius#define	PC_REGS(regs)	((db_addr_t)(regs)->tf_tpc)
46207151Smarius
47207151Smarius#define	BKPT_INST	(0)
48207151Smarius#define	BKPT_SIZE	(4)
49207151Smarius#define	BKPT_SET(inst)	(BKPT_INST)
50207151Smarius
51207151Smarius#define	BKPT_SKIP do {							\
52207151Smarius	ddb_regs.tf_tpc = ddb_regs.tf_tnpc + 4;				\
53207151Smarius	ddb_regs.tf_tnpc += 8;						\
54207151Smarius} while (0)
55
56#define	db_clear_single_step(regs)
57#define	db_set_single_step(regs)
58
59#define	IS_BREAKPOINT_TRAP(type, code)	(type == T_BREAKPOINT)
60#define	IS_WATCHPOINT_TRAP(type, code)	(0)
61
62#define	inst_trap_return(ins)	(0)
63#define	inst_return(ins)	(0)
64#define	inst_call(ins)		(0)
65#define	inst_load(ins)		(0)
66#define	inst_store(ins)		(0)
67
68#define	DB_SMALL_VALUE_MAX	(0x7fffffff)
69#define	DB_SMALL_VALUE_MIN	(-0x40001)
70
71#define	DB_ELFSIZE		64
72
73#endif /* !_MACHINE_DB_MACHDEP_H_ */
74