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>