Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56e8d7b5 authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: kgdb stub cleanups.



Some kgdb cleanup. Move hexchars/highhex/lowhex to the header, so it can
be reused by sh-sci. Also drop silly ctrl_inl/outl() overloading being
done by the kgdb stub.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 2549b322
Loading
Loading
Loading
Loading
+5 −28
Original line number Diff line number Diff line
@@ -101,16 +101,17 @@
#include <linux/linkage.h>
#include <linux/init.h>

#ifdef CONFIG_SH_KGDB_CONSOLE
#include <linux/console.h>
#endif

#include <asm/system.h>
#include <asm/current.h>
#include <asm/signal.h>
#include <asm/pgtable.h>
#include <asm/ptrace.h>
#include <asm/kgdb.h>

#ifdef CONFIG_SH_KGDB_CONSOLE
#include <linux/console.h>
#endif
#include <asm/io.h>

/* Function pointers for linkage */
kgdb_debug_hook_t *kgdb_debug_hook;
@@ -240,7 +241,6 @@ static jmp_buf rem_com_env;
/* Misc static */
static int stepped_address;
static short stepped_opcode;
static const char hexchars[] = "0123456789abcdef";
static char in_buffer[BUFMAX];
static char out_buffer[OUTBUFMAX];

@@ -253,29 +253,6 @@ typedef unsigned char threadref[8];
#define BUF_THREAD_ID_SIZE 16
#endif

/* Return addr as a real volatile address */
static inline unsigned int ctrl_inl(const unsigned long addr)
{
	return *(volatile unsigned long *) addr;
}

/* Correctly set *addr using volatile */
static inline void ctrl_outl(const unsigned int b, unsigned long addr)
{
	*(volatile unsigned long *) addr = b;
}

/* Get high hex bits */
static char highhex(const int x)
{
	return hexchars[(x >> 4) & 0xf];
}

/* Get low hex bits */
static char lowhex(const int x)
{
	return hexchars[x & 0xf];
}

/* Convert ch to hex */
static int hex(const char ch)
+15 −0
Original line number Diff line number Diff line
@@ -128,4 +128,19 @@ extern int setjmp(jmp_buf __jmpb);
#define KGDB_ASSERT(condition, message)
#endif

/* Taken from sh-stub.c of GDB 4.18 */
static const char hexchars[] = "0123456789abcdef";

/* Get high hex bits */
static inline char highhex(const int x)
{
	return hexchars[(x >> 4) & 0xf];
}

/* Get low hex bits */
static inline char lowhex(const int x)
{
	return hexchars[x & 0xf];
}

#endif