Author: kevans
Date: Tue Sep  3 20:19:43 2019
New Revision: 351792
URL: https://svnweb.freebsd.org/changeset/base/351792

Log:
  MFC r351408-r351410: reduce pollution from mips machine/regnum.h
  
  r351408:
  libsa: mips: use _JB_* from machine/asm.h, remove regnum dep
  
  This brings the libsa/mips _setjmp implementation closer to parity with the
  libc version.
  
  r351409:
  mips: hide regnum definitions behind _KERNEL/_WANT_MIPS_REGNUM
  
  machine/regnum.h ends up being included by sys/procfs.h and sys/ptrace.h via
  machine/reg.h. Many of the regnum definitions are too short and too generic
  to be exposing to any userland application including one of these two
  headers. Moreover, these actively cause build failures in googletest
  (template <typename T1 ...> expanding to template <typename 9 ...>).
  
  Hide the definitions behind _KERNEL or _WANT_MIPS_REGNUM, and patch all of
  the userland consumers to define as needed.
  
  r351410:
  libsa: mips: fix typo that had slipped into the diff on local machine

Modified:
  stable/11/lib/libc/mips/gen/_setjmp.S
  stable/11/lib/libc/mips/gen/makecontext.c
  stable/11/lib/libc/mips/gen/setjmp.S
  stable/11/lib/libc/mips/gen/sigsetjmp.S
  stable/11/lib/libproc/proc_regs.c
  stable/11/lib/libthread_db/arch/mips/libpthread_md.c
  stable/11/stand/libsa/mips/_setjmp.S
  stable/11/sys/mips/include/regnum.h
  stable/11/tests/sys/kern/ptrace_test.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/12/lib/libc/mips/gen/_setjmp.S
  stable/12/lib/libc/mips/gen/makecontext.c
  stable/12/lib/libc/mips/gen/setjmp.S
  stable/12/lib/libc/mips/gen/sigsetjmp.S
  stable/12/lib/libproc/proc_regs.c
  stable/12/lib/libthread_db/arch/mips/libpthread_md.c
  stable/12/stand/libsa/mips/_setjmp.S
  stable/12/sys/mips/include/regnum.h
  stable/12/tests/sys/kern/ptrace_test.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/11/lib/libc/mips/gen/_setjmp.S
==============================================================================
--- stable/11/lib/libc/mips/gen/_setjmp.S       Tue Sep  3 20:15:06 2019        
(r351791)
+++ stable/11/lib/libc/mips/gen/_setjmp.S       Tue Sep  3 20:19:43 2019        
(r351792)
@@ -34,7 +34,6 @@
 
 #include <machine/asm.h>
 __FBSDID("$FreeBSD$");
-#include <machine/regnum.h>
 
 #include "SYS.h"
 

Modified: stable/11/lib/libc/mips/gen/makecontext.c
==============================================================================
--- stable/11/lib/libc/mips/gen/makecontext.c   Tue Sep  3 20:15:06 2019        
(r351791)
+++ stable/11/lib/libc/mips/gen/makecontext.c   Tue Sep  3 20:19:43 2019        
(r351792)
@@ -36,6 +36,7 @@ __RCSID("$NetBSD: makecontext.c,v 1.5 2009/12/14 01:07
 #endif
 
 #include <sys/param.h>
+#define        _WANT_MIPS_REGNUM
 #include <machine/regnum.h>
 
 #include <stdarg.h>

Modified: stable/11/lib/libc/mips/gen/setjmp.S
==============================================================================
--- stable/11/lib/libc/mips/gen/setjmp.S        Tue Sep  3 20:15:06 2019        
(r351791)
+++ stable/11/lib/libc/mips/gen/setjmp.S        Tue Sep  3 20:19:43 2019        
(r351792)
@@ -34,7 +34,6 @@
 
 #include <machine/asm.h>
 __FBSDID("$FreeBSD$");
-#include <machine/regnum.h>
 
 #if defined(LIBC_SCCS) && !defined(lint)
        ASMSTR("from: @(#)setjmp.s      8.1 (Berkeley) 6/4/93")

Modified: stable/11/lib/libc/mips/gen/sigsetjmp.S
==============================================================================
--- stable/11/lib/libc/mips/gen/sigsetjmp.S     Tue Sep  3 20:15:06 2019        
(r351791)
+++ stable/11/lib/libc/mips/gen/sigsetjmp.S     Tue Sep  3 20:19:43 2019        
(r351792)
@@ -34,7 +34,6 @@
 
 #include <machine/asm.h>
 __FBSDID("$FreeBSD$");
-#include <machine/regnum.h>
 #if defined(LIBC_SCCS) && !defined(lint)
        ASMSTR("from: @(#)setjmp.s      8.1 (Berkeley) 6/4/93")
        ASMSTR("$NetBSD: sigsetjmp.S,v 1.8 2005/09/17 11:49:39 tsutsui Exp $")

Modified: stable/11/lib/libproc/proc_regs.c
==============================================================================
--- stable/11/lib/libproc/proc_regs.c   Tue Sep  3 20:15:06 2019        
(r351791)
+++ stable/11/lib/libproc/proc_regs.c   Tue Sep  3 20:19:43 2019        
(r351792)
@@ -31,6 +31,7 @@
 __FBSDID("$FreeBSD$");
 
 #include <sys/types.h>
+#define        _WANT_MIPS_REGNUM
 #include <sys/ptrace.h>
 
 #include <err.h>

Modified: stable/11/lib/libthread_db/arch/mips/libpthread_md.c
==============================================================================
--- stable/11/lib/libthread_db/arch/mips/libpthread_md.c        Tue Sep  3 
20:15:06 2019        (r351791)
+++ stable/11/lib/libthread_db/arch/mips/libpthread_md.c        Tue Sep  3 
20:19:43 2019        (r351792)
@@ -31,6 +31,7 @@
 __FBSDID("$FreeBSD$");
 
 #include <sys/types.h>
+#define        _WANT_MIPS_REGNUM
 #include <sys/procfs.h>
 #include <ucontext.h>
 #include <string.h>

Modified: stable/11/stand/libsa/mips/_setjmp.S
==============================================================================
--- stable/11/stand/libsa/mips/_setjmp.S        Tue Sep  3 20:15:06 2019        
(r351791)
+++ stable/11/stand/libsa/mips/_setjmp.S        Tue Sep  3 20:19:43 2019        
(r351792)
@@ -36,7 +36,6 @@
  * $FreeBSD$
  */
 
-#include <machine/regnum.h>
 #include <machine/asm.h>
 
 #if 0
@@ -59,19 +58,19 @@
 
 LEAF(_setjmp)
        .set    noreorder
-       REG_LI  v0, 0xACEDBADE                  # sigcontext magic number
-       REG_S   ra, (2 * SZREG)(a0)             # sc_pc = return address
-       REG_S   v0, (3 * SZREG)(a0)             #   saved in sc_regs[0]
-       REG_S   s0, ((S0 + 3) * SZREG)(a0)
-       REG_S   s1, ((S1 + 3) * SZREG)(a0)
-       REG_S   s2, ((S2 + 3) * SZREG)(a0)
-       REG_S   s3, ((S3 + 3) * SZREG)(a0)
-       REG_S   s4, ((S4 + 3) * SZREG)(a0)
-       REG_S   s5, ((S5 + 3) * SZREG)(a0)
-       REG_S   s6, ((S6 + 3) * SZREG)(a0)
-       REG_S   s7, ((S7 + 3) * SZREG)(a0)
-       REG_S   sp, ((SP + 3) * SZREG)(a0)
-       REG_S   s8, ((S8 + 3) * SZREG)(a0)
+       REG_LI  v0, _JB_MAGIC__SETJMP           # sigcontext magic number
+       REG_S   v0, (_JB_MAGIC * SZREG)(a0)     #   saved in sc_regs[0]
+       REG_S   ra, (_JB_REG_RA * SZREG)(a0)    # sc_pc = return address
+       REG_S   s0, (_JB_REG_S0 * SZREG)(a0)
+       REG_S   s1, (_JB_REG_S1 * SZREG)(a0)
+       REG_S   s2, (_JB_REG_S2 * SZREG)(a0)
+       REG_S   s3, (_JB_REG_S3 * SZREG)(a0)
+       REG_S   s4, (_JB_REG_S4 * SZREG)(a0)
+       REG_S   s5, (_JB_REG_S5 * SZREG)(a0)
+       REG_S   s6, (_JB_REG_S6 * SZREG)(a0)
+       REG_S   s7, (_JB_REG_S7 * SZREG)(a0)
+       REG_S   sp, (_JB_REG_SP * SZREG)(a0)
+       REG_S   s8, (_JB_REG_S8 * SZREG)(a0)
        j       ra
        move    v0, zero
 END(_setjmp)
@@ -82,21 +81,21 @@ LEAF(_longjmp)
        .cprestore 16
 #endif  
        .set    noreorder
-       REG_L   v0, (3 * SZREG)(a0)             # get magic number
-       REG_L   ra, (2 * SZREG)(a0)
-       bne     v0, 0xACEDBADE, botch           # jump if error
+       REG_L   v0, (_JB_MAGIC * SZREG)(a0)     # get magic number
+       REG_L   ra, (_JB_REG_RA * SZREG)(a0)
+       bne     v0, _JB_MAGIC__SETJMP, botch    # jump if error
 
        addu    sp, sp, 32                      # does not matter, sanity
-       REG_L   s0, ((S0 + 3) * SZREG)(a0)
-       REG_L   s1, ((S1 + 3) * SZREG)(a0)
-       REG_L   s2, ((S2 + 3) * SZREG)(a0)
-       REG_L   s3, ((S3 + 3) * SZREG)(a0)
-       REG_L   s4, ((S4 + 3) * SZREG)(a0)
-       REG_L   s5, ((S5 + 3) * SZREG)(a0)
-       REG_L   s6, ((S6 + 3) * SZREG)(a0)
-       REG_L   s7, ((S7 + 3) * SZREG)(a0)
-       REG_L   sp, ((SP + 3) * SZREG)(a0)
-       REG_L   s8, ((S8 + 3) * SZREG)(a0)
+       REG_L   s0, (_JB_REG_S0 * SZREG)(a0)
+       REG_L   s1, (_JB_REG_S1 * SZREG)(a0)
+       REG_L   s2, (_JB_REG_S2 * SZREG)(a0)
+       REG_L   s3, (_JB_REG_S3 * SZREG)(a0)
+       REG_L   s4, (_JB_REG_S4 * SZREG)(a0)
+       REG_L   s5, (_JB_REG_S5 * SZREG)(a0)
+       REG_L   s6, (_JB_REG_S6 * SZREG)(a0)
+       REG_L   s7, (_JB_REG_S7 * SZREG)(a0)
+       REG_L   sp, (_JB_REG_SP * SZREG)(a0)
+       REG_L   s8, (_JB_REG_S8 * SZREG)(a0)
 
        j       ra
        move    v0, a1

Modified: stable/11/sys/mips/include/regnum.h
==============================================================================
--- stable/11/sys/mips/include/regnum.h Tue Sep  3 20:15:06 2019        
(r351791)
+++ stable/11/sys/mips/include/regnum.h Tue Sep  3 20:19:43 2019        
(r351792)
@@ -42,11 +42,15 @@
 #ifndef _MACHINE_REGNUM_H_
 #define        _MACHINE_REGNUM_H_
 
+#define        NUMSAVEREGS     40
+#define        NUMFPREGS       34
+
 /*
  * Location of the saved registers relative to ZERO.
  * This must match struct trapframe defined in frame.h exactly.
  * This must also match regdef.h.
  */
+#if defined(_KERNEL) || defined(_WANT_MIPS_REGNUM)
 #define        ZERO    0
 #define        AST     1
 #define        V0      2
@@ -103,7 +107,6 @@
  */
 #define        IC      38
 #define        DUMMY   39      /* for 8 byte alignment */
-#define        NUMSAVEREGS 40
 
 /*
  * Pseudo registers so we save a complete set of registers regardless of
@@ -162,10 +165,6 @@
 #define        FSR     (FPBASE+32)
 #define FSR_DUMMY (FPBASE+33) /* For 8 byte alignment */
 
-#define        NUMFPREGS       34
-
-#define        NREGS   (NUMSAVEREGS + NUMFPREGS)
-
 /*
  * Index of FP registers in 'struct frame', relative to the base
  * of the FP registers in frame (i.e., *not* including the general
@@ -204,5 +203,7 @@
 #define        F30_NUM (30)
 #define        F31_NUM (31)
 #define        FSR_NUM (32)
+
+#endif /* _KERNEL || _WANT_MIPS_REGNUM */
 
 #endif /* !_MACHINE_REGNUM_H_ */

Modified: stable/11/tests/sys/kern/ptrace_test.c
==============================================================================
--- stable/11/tests/sys/kern/ptrace_test.c      Tue Sep  3 20:15:06 2019        
(r351791)
+++ stable/11/tests/sys/kern/ptrace_test.c      Tue Sep  3 20:19:43 2019        
(r351792)
@@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/file.h>
 #include <sys/time.h>
 #include <sys/procctl.h>
+#define        _WANT_MIPS_REGNUM
 #include <sys/ptrace.h>
 #include <sys/queue.h>
 #include <sys/runq.h>
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to