cregit-Linux how code gets into the kernel

Release 4.14 arch/sparc/include/asm/kdebug_32.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * kdebug.h:  Defines and definitions for debugging the Linux kernel
 *            under various kernel debuggers.
 *
 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
 */
#ifndef _SPARC_KDEBUG_H

#define _SPARC_KDEBUG_H

#include <asm/openprom.h>
#include <asm/vaddrs.h>

/* Breakpoints are enter through trap table entry 126.  So in sparc assembly
 * if you want to drop into the debugger you do:
 *
 * t DEBUG_BP_TRAP
 */


#define DEBUG_BP_TRAP     126

#ifndef __ASSEMBLY__
/* The debug vector is passed in %o1 at boot time.  It is a pointer to
 * a structure in the debuggers address space.  Here is its format.
 */


typedef unsigned int (*debugger_funct)(void);


struct kernel_debug {
	/* First the entry point into the debugger.  You jump here
         * to give control over to the debugger.
         */
	
unsigned long kdebug_entry;
	
unsigned long kdebug_trapme;   /* Figure out later... */
	/* The following is the number of pages that the debugger has
         * taken from to total pool.
         */
	
unsigned long *kdebug_stolen_pages;
	/* Ok, after you remap yourself and/or change the trap table
         * from what you were left with at boot time you have to call
         * this synchronization function so the debugger can check out
         * what you have done.
         */
	
debugger_funct teach_debugger;
}; /* I think that is it... */

extern struct kernel_debug *linux_dbvec;

/* Use this macro in C-code to enter the debugger. */

static inline void sp_enter_debugger(void) { __asm__ __volatile__("jmpl %0, %%o7\n\t" "nop\n\t" : : "r" (linux_dbvec) : "o7", "memory"); }

Contributors

PersonTokensPropCommitsCommitProp
Sam Ravnborg12100.00%1100.00%
Total12100.00%1100.00%

#define SP_ENTER_DEBUGGER do { \ if((linux_dbvec!=0) && ((*(short *)linux_dbvec)!=-1)) \ sp_enter_debugger(); \ } while(0) enum die_val { DIE_UNUSED, DIE_OOPS, }; #endif /* !(__ASSEMBLY__) */ /* Some nice offset defines for assembler code. */ #define KDEBUG_ENTRY_OFF 0x0 #define KDEBUG_DUNNO_OFF 0x4 #define KDEBUG_DUNNO2_OFF 0x8 #define KDEBUG_TEACH_OFF 0xc #endif /* !(_SPARC_KDEBUG_H) */

Overall Contributors

PersonTokensPropCommitsCommitProp
Sam Ravnborg11197.37%133.33%
Al Viro21.75%133.33%
Greg Kroah-Hartman10.88%133.33%
Total114100.00%3100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.