Author: jhb
Date: Wed May 16 16:56:35 2018
New Revision: 333679
URL: https://svnweb.freebsd.org/changeset/base/333679

Log:
  Export a breakpoint() function to userland for riscv.
  
  As a result, enable tests using breakpoint() on riscv.
  
  Reviewed by:  br
  Differential Revision:        https://reviews.freebsd.org/D15191

Modified:
  head/sys/riscv/include/cpufunc.h
  head/tests/sys/kern/ptrace_test.c

Modified: head/sys/riscv/include/cpufunc.h
==============================================================================
--- head/sys/riscv/include/cpufunc.h    Wed May 16 14:06:41 2018        
(r333678)
+++ head/sys/riscv/include/cpufunc.h    Wed May 16 16:56:35 2018        
(r333679)
@@ -37,16 +37,16 @@
 #ifndef _MACHINE_CPUFUNC_H_
 #define        _MACHINE_CPUFUNC_H_
 
-#ifdef _KERNEL
-
-#include <machine/riscvreg.h>
-
 static __inline void
 breakpoint(void)
 {
 
        __asm("ebreak");
 }
+
+#ifdef _KERNEL
+
+#include <machine/riscvreg.h>
 
 static __inline register_t
 intr_disable(void)

Modified: head/tests/sys/kern/ptrace_test.c
==============================================================================
--- head/tests/sys/kern/ptrace_test.c   Wed May 16 14:06:41 2018        
(r333678)
+++ head/tests/sys/kern/ptrace_test.c   Wed May 16 16:56:35 2018        
(r333679)
@@ -55,7 +55,7 @@ __FBSDID("$FreeBSD$");
  * Architectures with a user-visible breakpoint().
  */
 #if defined(__amd64__) || defined(__i386__) || defined(__mips__) ||    \
-    defined(__sparc64__)
+    defined(__riscv) || defined(__sparc64__)
 #define        HAVE_BREAKPOINT
 #endif
 
@@ -67,6 +67,8 @@ __FBSDID("$FreeBSD$");
 #define        SKIP_BREAK(reg)
 #elif defined(__mips__)
 #define        SKIP_BREAK(reg) ((reg)->r_regs[PC] += 4)
+#elif defined(__riscv)
+#define        SKIP_BREAK(reg) ((reg)->sepc += 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