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