Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 May 2018 16:56:36 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r333679 - in head: sys/riscv/include tests/sys/kern
Message-ID:  <201805161656.w4GGuasU097210@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;				\



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805161656.w4GGuasU097210>