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-all
mailing list