linux/arch/parisc/include/asm/kgdb.h
<<
>>
Prefs
   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
  69