linux/arch/mips/include/asm/kgdb.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef __ASM_KGDB_H_
   3#define __ASM_KGDB_H_
   4
   5#ifdef __KERNEL__
   6
   7#include <asm/sgidefs.h>
   8
   9#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2) || \
  10        (_MIPS_ISA == _MIPS_ISA_MIPS32)
  11
  12#define KGDB_GDB_REG_SIZE       32
  13#define GDB_SIZEOF_REG          sizeof(u32)
  14
  15#elif (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \
  16        (_MIPS_ISA == _MIPS_ISA_MIPS64)
  17
  18#ifdef CONFIG_32BIT
  19#define KGDB_GDB_REG_SIZE       32
  20#define GDB_SIZEOF_REG          sizeof(u32)
  21#else /* CONFIG_CPU_32BIT */
  22#define KGDB_GDB_REG_SIZE       64
  23#define GDB_SIZEOF_REG          sizeof(u64)
  24#endif
  25#else
  26#error "Need to set KGDB_GDB_REG_SIZE for MIPS ISA"
  27#endif /* _MIPS_ISA */
  28
  29#define BUFMAX                  2048
  30#define DBG_MAX_REG_NUM         72
  31#define NUMREGBYTES             (DBG_MAX_REG_NUM * sizeof(GDB_SIZEOF_REG))
  32#define NUMCRITREGBYTES         (12 * sizeof(GDB_SIZEOF_REG))
  33#define BREAK_INSTR_SIZE        4
  34#define CACHE_FLUSH_IS_SAFE     0
  35
  36extern void arch_kgdb_breakpoint(void);
  37extern void *saved_vectors[32];
  38extern void handle_exception(struct pt_regs *regs);
  39extern void breakinst(void);
  40extern int kgdb_ll_trap(int cmd, const char *str,
  41                        struct pt_regs *regs, long err, int trap, int sig);
  42
  43#endif                          /* __KERNEL__ */
  44
  45#endif /* __ASM_KGDB_H_ */
  46