Annotation of sys/arch/m88k/include/db_machdep.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: db_machdep.h,v 1.12 2007/01/13 22:00:56 miod Exp $ */
! 2: /*
! 3: * Mach Operating System
! 4: * Copyright (c) 1993-1991 Carnegie Mellon University
! 5: * Copyright (c) 1991 OMRON Corporation
! 6: * All Rights Reserved.
! 7: *
! 8: * Permission to use, copy, modify and distribute this software and its
! 9: * documentation is hereby granted, provided that both the copyright
! 10: * notice and this permission notice appear in all copies of the
! 11: * software, derivative works or modified versions, and any portions
! 12: * thereof, and that both notices appear in supporting documentation.
! 13: *
! 14: * CARNEGIE MELLON AND OMRON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS"
! 15: * CONDITION. CARNEGIE MELLON AND OMRON DISCLAIM ANY LIABILITY OF ANY KIND
! 16: * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
! 17: *
! 18: * Carnegie Mellon requests users of this software to return to
! 19: *
! 20: * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
! 21: * School of Computer Science
! 22: * Carnegie Mellon University
! 23: * Pittsburgh PA 15213-3890
! 24: *
! 25: * any improvements or extensions that they make and grant Carnegie the
! 26: * rights to redistribute these changes.
! 27: */
! 28:
! 29: #ifndef _M88K_DB_MACHDEP_H_
! 30: #define _M88K_DB_MACHDEP_H_
! 31:
! 32: /* trap numbers used by ddb */
! 33: #define DDB_ENTRY_BKPT_NO 130
! 34: #define DDB_ENTRY_TRACE_NO 131
! 35: #define DDB_ENTRY_TRAP_NO 132
! 36:
! 37: #ifndef _LOCORE
! 38:
! 39: #include <machine/reg.h>
! 40: #include <machine/trap.h>
! 41:
! 42: #include <uvm/uvm_param.h>
! 43:
! 44: #define SET_PC_REGS(regs, value) \
! 45: do { \
! 46: (regs)->sxip = (value); \
! 47: (regs)->snip = (value) + 4; \
! 48: } while (0)
! 49:
! 50: #ifdef DDB
! 51:
! 52: #define BKPT_SIZE (4) /* number of bytes in bkpt inst. */
! 53: #define BKPT_INST (0xf000d000 | DDB_ENTRY_BKPT_NO) /* tb0, 0,r0, 130 */
! 54: #define BKPT_SET(inst) (BKPT_INST)
! 55:
! 56: /* Entry trap for the debugger - used for inline assembly breaks*/
! 57: #define ENTRY_ASM "tb0 0, r0, 132"
! 58:
! 59: typedef vaddr_t db_addr_t;
! 60: typedef long db_expr_t;
! 61: typedef struct reg db_regs_t;
! 62: extern db_regs_t ddb_regs; /* register state */
! 63: #define DDB_REGS (&ddb_regs)
! 64:
! 65: int inst_load(u_int);
! 66: int inst_store(u_int);
! 67: int ddb_break_trap(int, db_regs_t *);
! 68: int ddb_entry_trap(int, db_regs_t *);
! 69: void m88k_print_instruction(int, u_int, u_int32_t); /* db_disasm.c */
! 70:
! 71: /*
! 72: * inst_call(ins) - is the instruction a function call.
! 73: * Could be either bsr or jsr.
! 74: */
! 75: #define inst_call(I) \
! 76: (((I) & 0xf8000000) == 0xc8000000 /* bsr */ || \
! 77: ((I) & 0xfffffbe0) == 0xf400c800 /* jsr */)
! 78: /*
! 79: * inst_return(ins) - is the instruction a function call return.
! 80: * Not mutually exclusive with inst_branch. Should be a jmp r1.
! 81: */
! 82: #define inst_return(I) (((I) & 0xfffffbff) == 0xf400c001)
! 83:
! 84: /*
! 85: * inst_trap_return(ins) - is the instruction a return from trap.
! 86: * Should be a rte.
! 87: */
! 88: #define inst_trap_return(I) ((I) == 0xf400c000)
! 89:
! 90: /* breakpoint/watchpoint foo */
! 91: #define IS_BREAKPOINT_TRAP(type,code) ((type)==T_KDB_BREAK)
! 92: #define IS_WATCHPOINT_TRAP(type,code) 0
! 93:
! 94: /* machine specific commands have been added to ddb */
! 95: #define DB_MACHINE_COMMANDS
! 96:
! 97: #define DB_AOUT_SYMBOLS
! 98:
! 99: #endif /* DDB */
! 100: #endif /* _LOCORE */
! 101:
! 102: #endif /* _M88K_DB_MACHDEP_H_ */
CVSweb