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