71 lines
1.3 KiB
C
71 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* PA-RISC KGDB support
|
|
*
|
|
* Copyright (c) 2019 Sven Schnelle <svens@stackframe.org>
|
|
*
|
|
*/
|
|
|
|
#ifndef __PARISC_KGDB_H__
|
|
#define __PARISC_KGDB_H__
|
|
|
|
#define BREAK_INSTR_SIZE 4
|
|
#define PARISC_KGDB_COMPILED_BREAK_INSN 0x3ffc01f
|
|
#define PARISC_KGDB_BREAK_INSN 0x3ffa01f
|
|
|
|
|
|
#define NUMREGBYTES sizeof(struct parisc_gdb_regs)
|
|
#define BUFMAX 4096
|
|
|
|
#define KGDB_MAX_BREAKPOINTS 40
|
|
|
|
#define CACHE_FLUSH_IS_SAFE 1
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
static inline void arch_kgdb_breakpoint(void)
|
|
{
|
|
asm(".word %0" : : "i"(PARISC_KGDB_COMPILED_BREAK_INSN) : "memory");
|
|
}
|
|
|
|
struct parisc_gdb_regs {
|
|
unsigned long gpr[32];
|
|
unsigned long sar;
|
|
unsigned long iaoq_f;
|
|
unsigned long iasq_f;
|
|
unsigned long iaoq_b;
|
|
unsigned long iasq_b;
|
|
unsigned long eiem;
|
|
unsigned long iir;
|
|
unsigned long isr;
|
|
unsigned long ior;
|
|
unsigned long ipsw;
|
|
unsigned long __unused0;
|
|
unsigned long sr4;
|
|
unsigned long sr0;
|
|
unsigned long sr1;
|
|
unsigned long sr2;
|
|
unsigned long sr3;
|
|
unsigned long sr5;
|
|
unsigned long sr6;
|
|
unsigned long sr7;
|
|
unsigned long cr0;
|
|
unsigned long pid1;
|
|
unsigned long pid2;
|
|
unsigned long scrccr;
|
|
unsigned long pid3;
|
|
unsigned long pid4;
|
|
unsigned long cr24;
|
|
unsigned long cr25;
|
|
unsigned long cr26;
|
|
unsigned long cr27;
|
|
unsigned long cr28;
|
|
unsigned long cr29;
|
|
unsigned long cr30;
|
|
|
|
u64 fr[32];
|
|
};
|
|
|
|
#endif
|
|
#endif
|