Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/loongarch/include/asm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  kgdb.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 2023 Loongson Technology Corporation Limited
 */


#ifndef _ASM_LOONGARCH_KGDB_H
#define _ASM_LOONGARCH_KGDB_H

#define GDB_SIZEOF_REG  sizeof(u64)

/* gdb remote procotol expects the following register layout. */

/*
 * General purpose registers:
 *     r0-r31: 64 bit
 *     orig_a0: 64 bit
 *     pc : 64 bit
 *     csr_badvaddr: 64 bit
 */

#define DBG_PT_REGS_BASE 0
#define DBG_PT_REGS_NUM  35
#define DBG_PT_REGS_END  (DBG_PT_REGS_BASE + DBG_PT_REGS_NUM - 1)

/*
 * Floating point registers:
 *     f0-f31: 64 bit
 */

#define DBG_FPR_BASE  (DBG_PT_REGS_END + 1)
#define DBG_FPR_NUM  32
#define DBG_FPR_END  (DBG_FPR_BASE + DBG_FPR_NUM - 1)

/*
 * Condition Flag registers:
 *     fcc0-fcc8: 8 bit
 */

#define DBG_FCC_BASE  (DBG_FPR_END + 1)
#define DBG_FCC_NUM  8
#define DBG_FCC_END  (DBG_FCC_BASE + DBG_FCC_NUM - 1)

/*
 * Floating-point Control and Status registers:
 *     fcsr: 32 bit
 */

#define DBG_FCSR_NUM  1
#define DBG_FCSR  (DBG_FCC_END + 1)

#define DBG_MAX_REG_NUM  (DBG_FCSR + 1)

/*
 * Size of I/O buffer for gdb packet.
 * considering to hold all register contents, size is set
 */

#define BUFMAX   2048

/*
 * Number of bytes required for gdb_regs buffer.
 * PT_REGS and FPR: 8 bytes; FCSR: 4 bytes; FCC: 1 bytes.
 * GDB fails to connect for size beyond this with error
 * "'g' packet reply is too long"
 */

#define NUMREGBYTES  ((DBG_PT_REGS_NUM + DBG_FPR_NUM) * GDB_SIZEOF_REG + DBG_FCC_NUM * 1 + DBG_FCSR_NUM * 4)

#define BREAK_INSTR_SIZE 4
#define CACHE_FLUSH_IS_SAFE 0

/* Register numbers of various important registers. */
enum dbg_loongarch_regnum {
 DBG_LOONGARCH_ZERO = 0,
 DBG_LOONGARCH_RA,
 DBG_LOONGARCH_TP,
 DBG_LOONGARCH_SP,
 DBG_LOONGARCH_A0,
 DBG_LOONGARCH_FP = 22,
 DBG_LOONGARCH_S0,
 DBG_LOONGARCH_S1,
 DBG_LOONGARCH_S2,
 DBG_LOONGARCH_S3,
 DBG_LOONGARCH_S4,
 DBG_LOONGARCH_S5,
 DBG_LOONGARCH_S6,
 DBG_LOONGARCH_S7,
 DBG_LOONGARCH_S8,
 DBG_LOONGARCH_ORIG_A0,
 DBG_LOONGARCH_PC,
 DBG_LOONGARCH_BADV
};

void kgdb_breakinst(void);
void arch_kgdb_breakpoint(void);

#ifdef CONFIG_KGDB
bool kgdb_breakpoint_handler(struct pt_regs *regs);
#else /* !CONFIG_KGDB */
static inline bool kgdb_breakpoint_handler(struct pt_regs *regs) { return false; }
#endif /* CONFIG_KGDB */

#endif /* __ASM_KGDB_H_ */

Messung V0.5
C=88 H=100 G=94

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.