db_break.h revision 108512
10SN/A/*
24208SN/A * Mach Operating System
30SN/A * Copyright (c) 1991,1990 Carnegie Mellon University
40SN/A * All Rights Reserved.
50SN/A *
60SN/A * Permission to use, copy, modify and distribute this software and its
70SN/A * documentation is hereby granted, provided that both the copyright
80SN/A * notice and this permission notice appear in all copies of the
90SN/A * software, derivative works or modified versions, and any portions
100SN/A * thereof, and that both notices appear in supporting documentation.
110SN/A *
120SN/A * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
130SN/A * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
140SN/A * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
150SN/A *
160SN/A * Carnegie Mellon requests users of this software to return to
170SN/A *
180SN/A *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
191472SN/A *  School of Computer Science
201472SN/A *  Carnegie Mellon University
211472SN/A *  Pittsburgh PA 15213-3890
220SN/A *
230SN/A * any improvements or extensions that they make and grant Carnegie the
240SN/A * rights to redistribute these changes.
250SN/A *
260SN/A * $FreeBSD: head/sys/ddb/db_break.h 108512 2002-12-31 18:30:53Z jake $
272601SN/A */
282601SN/A
290SN/A/*
300SN/A *	Author: David B. Golub, Carnegie Mellon University
312601SN/A *	Date:	7/90
322601SN/A */
332601SN/A#ifndef _DDB_DB_BREAK_H_
342601SN/A#define	_DDB_DB_BREAK_H_
352601SN/A
362601SN/A/*
372601SN/A * Breakpoint.
382601SN/A */
392601SN/A
402601SN/A#ifndef BKPT_INST_TYPE
412601SN/A#define BKPT_INST_TYPE int
422601SN/A#endif
432601SN/A
442601SN/Astruct db_breakpoint {
452601SN/A	vm_map_t map;			/* in this map */
462601SN/A	db_addr_t address;		/* set here */
472601SN/A	int	init_count;		/* number of times to skip bkpt */
482601SN/A	int	count;			/* current count */
492601SN/A	int	flags;			/* flags: */
503602SN/A#define	BKPT_SINGLE_STEP	0x2	    /* to simulate single step */
513602SN/A#define	BKPT_TEMP		0x4	    /* temporary */
523602SN/A	BKPT_INST_TYPE bkpt_inst;	/* saved instruction at bkpt */
533602SN/A	struct db_breakpoint *link;	/* link in in-use or free chain */
541522SN/A};
551522SN/Atypedef struct db_breakpoint *db_breakpoint_t;
561522SN/A
571522SN/Avoid		db_clear_breakpoints(void);
581522SN/A#ifdef SOFTWARE_SSTEP
591522SN/Avoid		db_delete_temp_breakpoint(db_breakpoint_t);
601522SN/A#endif
611522SN/Adb_breakpoint_t	db_find_breakpoint_here(db_addr_t addr);
621522SN/Avoid		db_set_breakpoints(void);
631522SN/A#ifdef SOFTWARE_SSTEP
641522SN/Adb_breakpoint_t	db_set_temp_breakpoint(db_addr_t);
650SN/A#endif
660SN/A
670SN/A#endif /* !_DDB_DB_BREAK_H_ */
680SN/A