linux/arch/mn10300/include/asm/kgdb.h
<<
>>
Prefs
   1/* Kernel debugger for MN10300
   2 *
   3 * Copyright (C) 2010 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public Licence
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the Licence, or (at your option) any later version.
  10 */
  11
  12#ifndef _ASM_KGDB_H
  13#define _ASM_KGDB_H
  14
  15/*
  16 * BUFMAX defines the maximum number of characters in inbound/outbound
  17 * buffers at least NUMREGBYTES*2 are needed for register packets
  18 * Longer buffer is needed to list all threads
  19 */
  20#define BUFMAX                  1024
  21
  22/*
  23 * Note that this register image is in a different order than the register
  24 * image that Linux produces at interrupt time.
  25 */
  26enum regnames {
  27        GDB_FR_D0               = 0,
  28        GDB_FR_D1               = 1,
  29        GDB_FR_D2               = 2,
  30        GDB_FR_D3               = 3,
  31        GDB_FR_A0               = 4,
  32        GDB_FR_A1               = 5,
  33        GDB_FR_A2               = 6,
  34        GDB_FR_A3               = 7,
  35
  36        GDB_FR_SP               = 8,
  37        GDB_FR_PC               = 9,
  38        GDB_FR_MDR              = 10,
  39        GDB_FR_EPSW             = 11,
  40        GDB_FR_LIR              = 12,
  41        GDB_FR_LAR              = 13,
  42        GDB_FR_MDRQ             = 14,
  43
  44        GDB_FR_E0               = 15,
  45        GDB_FR_E1               = 16,
  46        GDB_FR_E2               = 17,
  47        GDB_FR_E3               = 18,
  48        GDB_FR_E4               = 19,
  49        GDB_FR_E5               = 20,
  50        GDB_FR_E6               = 21,
  51        GDB_FR_E7               = 22,
  52
  53        GDB_FR_SSP              = 23,
  54        GDB_FR_MSP              = 24,
  55        GDB_FR_USP              = 25,
  56        GDB_FR_MCRH             = 26,
  57        GDB_FR_MCRL             = 27,
  58        GDB_FR_MCVF             = 28,
  59
  60        GDB_FR_FPCR             = 29,
  61        GDB_FR_DUMMY0           = 30,
  62        GDB_FR_DUMMY1           = 31,
  63
  64        GDB_FR_FS0              = 32,
  65
  66        GDB_FR_SIZE             = 64,
  67};
  68
  69#define GDB_ORIG_D0             41
  70#define NUMREGBYTES             (GDB_FR_SIZE*4)
  71
  72static inline void arch_kgdb_breakpoint(void)
  73{
  74        asm(".globl __arch_kgdb_breakpoint; __arch_kgdb_breakpoint: break");
  75}
  76extern u8 __arch_kgdb_breakpoint;
  77
  78#define BREAK_INSTR_SIZE        1
  79#define CACHE_FLUSH_IS_SAFE     1
  80
  81#endif /* _ASM_KGDB_H */
  82