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;                                       
\
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to