svn commit: r333679 - in head: sys/riscv/include tests/sys/kern

John Baldwin jhb at FreeBSD.org
Wed May 16 16:56:37 UTC 2018


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;				\


More information about the svn-src-head mailing list