svn commit: r332907 - in head: sys/mips/include tests/sys/kern
John Baldwin
jhb at FreeBSD.org
Tue Apr 24 05:26:30 UTC 2018
Author: jhb
Date: Tue Apr 24 05:26:28 2018
New Revision: 332907
URL: https://svnweb.freebsd.org/changeset/base/332907
Log:
Expose breakpoint() to userland from <machine/cpufunc.h> on MIPS.
Enable ptrace() tests using breakpoint on MIPS as well.
Tested on: mips64
MFC after: 1 month
Modified:
head/sys/mips/include/cpufunc.h
head/tests/sys/kern/ptrace_test.c
Modified: head/sys/mips/include/cpufunc.h
==============================================================================
--- head/sys/mips/include/cpufunc.h Tue Apr 24 05:20:16 2018 (r332906)
+++ head/sys/mips/include/cpufunc.h Tue Apr 24 05:26:28 2018 (r332907)
@@ -108,6 +108,12 @@ mips_wbflush(void)
#endif
}
+static __inline void
+breakpoint(void)
+{
+ __asm __volatile ("break");
+}
+
#ifdef _KERNEL
/*
* XXX
@@ -363,12 +369,6 @@ get_intr_mask(void)
{
return (mips_rd_status() & MIPS_SR_INT_MASK);
-}
-
-static __inline void
-breakpoint(void)
-{
- __asm __volatile ("break");
}
#if defined(__GNUC__) && !defined(__mips_o32)
Modified: head/tests/sys/kern/ptrace_test.c
==============================================================================
--- head/tests/sys/kern/ptrace_test.c Tue Apr 24 05:20:16 2018 (r332906)
+++ head/tests/sys/kern/ptrace_test.c Tue Apr 24 05:26:28 2018 (r332907)
@@ -54,7 +54,8 @@ __FBSDID("$FreeBSD$");
/*
* Architectures with a user-visible breakpoint().
*/
-#if defined(__amd64__) || defined(__i386__) || defined(__sparc64__)
+#if defined(__amd64__) || defined(__i386__) || defined(__mips__) || \
+ defined(__sparc64__)
#define HAVE_BREAKPOINT
#endif
@@ -64,6 +65,8 @@ __FBSDID("$FreeBSD$");
#ifdef HAVE_BREAKPOINT
#if defined(__amd64__) || defined(__i386__)
#define SKIP_BREAK(reg)
+#elif defined(__mips__)
+#define SKIP_BREAK(reg) ((reg)->r_regs[PC] += 4)
#elif defined(__sparc64__)
#define SKIP_BREAK(reg) do { \
(reg)->r_tpc = (reg)->r_tnpc + 4; \
More information about the svn-src-all
mailing list