kgdb.h (1318B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * PA-RISC KGDB support 4 * 5 * Copyright (c) 2019 Sven Schnelle <svens@stackframe.org> 6 * 7 */ 8 9#ifndef __PARISC_KGDB_H__ 10#define __PARISC_KGDB_H__ 11 12#define BREAK_INSTR_SIZE 4 13#define PARISC_KGDB_COMPILED_BREAK_INSN 0x3ffc01f 14#define PARISC_KGDB_BREAK_INSN 0x3ffa01f 15 16 17#define NUMREGBYTES sizeof(struct parisc_gdb_regs) 18#define BUFMAX 4096 19 20#define CACHE_FLUSH_IS_SAFE 1 21 22#ifndef __ASSEMBLY__ 23 24static inline void arch_kgdb_breakpoint(void) 25{ 26 asm(".word %0" : : "i"(PARISC_KGDB_COMPILED_BREAK_INSN) : "memory"); 27} 28 29struct parisc_gdb_regs { 30 unsigned long gpr[32]; 31 unsigned long sar; 32 unsigned long iaoq_f; 33 unsigned long iasq_f; 34 unsigned long iaoq_b; 35 unsigned long iasq_b; 36 unsigned long eiem; 37 unsigned long iir; 38 unsigned long isr; 39 unsigned long ior; 40 unsigned long ipsw; 41 unsigned long __unused0; 42 unsigned long sr4; 43 unsigned long sr0; 44 unsigned long sr1; 45 unsigned long sr2; 46 unsigned long sr3; 47 unsigned long sr5; 48 unsigned long sr6; 49 unsigned long sr7; 50 unsigned long cr0; 51 unsigned long pid1; 52 unsigned long pid2; 53 unsigned long scrccr; 54 unsigned long pid3; 55 unsigned long pid4; 56 unsigned long cr24; 57 unsigned long cr25; 58 unsigned long cr26; 59 unsigned long cr27; 60 unsigned long cr28; 61 unsigned long cr29; 62 unsigned long cr30; 63 64 u64 fr[32]; 65}; 66 67#endif 68#endif