The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/powerpc/include/db_machdep.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Mach Operating System
    3  * Copyright (c) 1992 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
    9  * software, derivative works or modified versions, and any portions
   10  * thereof, and that both notices appear in supporting documentation.
   11  *
   12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   15  *
   16  * Carnegie Mellon requests users of this software to return to
   17  *
   18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   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  *      $OpenBSD: db_machdep.h,v 1.2 1997/03/21 00:48:48 niklas Exp $
   27  *      $NetBSD: db_machdep.h,v 1.4.22.1 2000/08/05 11:10:43 wiz Exp $
   28  * $FreeBSD$
   29  */
   30 
   31 /*
   32  * Machine-dependent defines for new kernel debugger.
   33  */
   34 #ifndef _POWERPC_DB_MACHDEP_H_
   35 #define _POWERPC_DB_MACHDEP_H_
   36 
   37 #include <vm/vm_param.h>
   38 #include <machine/elf.h>
   39 
   40 #define DB_ELF_SYMBOLS
   41 #define DB_ELFSIZE      __ELF_WORD_SIZE
   42 
   43 typedef vm_offset_t     db_addr_t;      /* address - unsigned */
   44 typedef intptr_t        db_expr_t;      /* expression - signed */
   45 
   46 #define PC_REGS(regs)   ((db_addr_t)kdb_thrctx->pcb_lr)
   47 
   48 #define BKPT_INST       0x7C810808      /* breakpoint instruction */
   49 
   50 #define BKPT_SIZE       (4)             /* size of breakpoint inst */
   51 #define BKPT_SET(inst)  (BKPT_INST)
   52 
   53 #define db_clear_single_step    kdb_cpu_clear_singlestep
   54 #define db_set_single_step      kdb_cpu_set_singlestep
   55 
   56 #if 0
   57 #define SR_SINGLESTEP   0x400
   58 #define db_clear_single_step(regs)      ((regs)->msr &= ~SR_SINGLESTEP)
   59 #define db_set_single_step(regs)        ((regs)->msr |=  SR_SINGLESTEP)
   60 #endif
   61 
   62 #define T_BREAKPOINT    0xffff
   63 #define IS_BREAKPOINT_TRAP(type, code)  ((type) == T_BREAKPOINT)
   64 
   65 #define T_WATCHPOINT    0xeeee
   66 #ifdef T_WATCHPOINT
   67 #define IS_WATCHPOINT_TRAP(type, code)  ((type) == T_WATCHPOINT)
   68 #else
   69 #define IS_WATCHPOINT_TRAP(type, code)  0
   70 #endif
   71 
   72 #define M_RTS           0xfc0007fe
   73 #define I_RTS           0x4c000020
   74 #define M_BC            0xfc000000
   75 #define I_BC            0x40000000
   76 #define M_B             0xfc000000
   77 #define I_B             0x50000000
   78 #define M_RFI           0xfc0007fe
   79 #define I_RFI           0x4c000064
   80 
   81 #define inst_trap_return(ins)   (((ins)&M_RFI) == I_RFI)
   82 #define inst_return(ins)        (((ins)&M_RTS) == I_RTS)
   83 #define inst_call(ins)          (((ins)&M_BC ) == I_BC  || \
   84                                  ((ins)&M_B  ) == I_B )
   85 #define inst_load(ins)          0
   86 #define inst_store(ins)         0
   87 
   88 #endif  /* _POWERPC_DB_MACHDEP_H_ */

Cache object: f7639956b756ca29a24781b2fdeca54b


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.