Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Apr 2018 05:26:28 +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: r332907 - in head: sys/mips/include tests/sys/kern
Message-ID:  <201804240526.w3O5QSnB075835@repo.freebsd.org>

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



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