Module Name:    src
Committed By:   kamil
Date:           Fri Feb 17 01:14:31 UTC 2017

Modified Files:
        src/doc: CHANGES
        src/share/man/man2: siginfo.2
        src/sys/arch/amd64/amd64: trap.c
        src/sys/arch/i386/i386: trap.c

Log Message:
Add new si_code TRAP_DBREG

It replaces previous TRAP_HWWPT and is designed to be used for debug
register traps (both watchpoints and breakpoints).

TRAP_HWWPT wasn't documented in siginfo(2) neither noted in doc/CHANGES -
- document it and add new entry in CHANGES. This move is a step towards
switch the watchpoint ptrace(2) api to PT_*DBREGS.

This code was introduced recently and has no impact on stable releases.

Sponsored by <The NetBSD Foundation>


To generate a diff of this commit:
cvs rdiff -u -r1.2254 -r1.2255 src/doc/CHANGES
cvs rdiff -u -r1.21 -r1.22 src/share/man/man2/siginfo.2
cvs rdiff -u -r1.90 -r1.91 src/sys/arch/amd64/amd64/trap.c
cvs rdiff -u -r1.282 -r1.283 src/sys/arch/i386/i386/trap.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/doc/CHANGES
diff -u src/doc/CHANGES:1.2254 src/doc/CHANGES:1.2255
--- src/doc/CHANGES:1.2254	Thu Feb 16 08:48:34 2017
+++ src/doc/CHANGES	Fri Feb 17 01:14:31 2017
@@ -1,4 +1,4 @@
-# LIST OF CHANGES FROM LAST RELEASE:			<$Revision: 1.2254 $>
+# LIST OF CHANGES FROM LAST RELEASE:			<$Revision: 1.2255 $>
 #
 #
 # [Note: This file does not mention every change made to the NetBSD source tree.
@@ -472,3 +472,4 @@ Changes from NetBSD 7.0 to NetBSD 8.0:
 		PT_GET_SIGMASK and PT_SET_SIGMASK [kamil 20170212]
 	postfix(1): Import version 3.1.4. [christos 20170213]
 	l2tp(4): Add L2TPv3 interface. [knakahara 20170216]
+	siginfo(2): Add new si_code for SIGTRAP: TRAP_DBREG [kamil 20170217]

Index: src/share/man/man2/siginfo.2
diff -u src/share/man/man2/siginfo.2:1.21 src/share/man/man2/siginfo.2:1.22
--- src/share/man/man2/siginfo.2:1.21	Sat Jan 14 06:55:40 2017
+++ src/share/man/man2/siginfo.2	Fri Feb 17 01:14:31 2017
@@ -1,4 +1,4 @@
-.\"	$NetBSD: siginfo.2,v 1.21 2017/01/14 06:55:40 kamil Exp $
+.\"	$NetBSD: siginfo.2,v 1.22 2017/02/17 01:14:31 kamil Exp $
 .\"
 .\" Copyright (c) 2003 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -231,6 +231,8 @@ Object-specific hardware error
 Process breakpoint
 .It TRAP_CHLD
 Process child trap
+.It TRAP_DBREG
+Process hardware debug register trap
 .It TRAP_EXEC
 Process exec trap
 .It TRAP_LWP
@@ -370,21 +372,27 @@ are
 extensions.
 .Pp
 The
+.Dv TRAP_CHLD ,
+.Dv TRAP_DBREG ,
 .Dv TRAP_EXEC
-signal specific reason of
+and
+.Dv TRAP_LWP
+signal specific reasons of
 .Dv SIGTRAP
-is
+are
 .Nx
-extension.
+extensions.
 .Sh HISTORY
 The
 .Nm
 functionality first appeared in
 .At V.4 .
 .Pp
-.Dv TRAP_CHLD
-and
+.Dv TRAP_CHLD ,
+.Dv TRAP_DBREG ,
 .Dv TRAP_EXEC
+and
+.Dv TRAP_LWP
 first appeared
 in
 .Nx 8 .

Index: src/sys/arch/amd64/amd64/trap.c
diff -u src/sys/arch/amd64/amd64/trap.c:1.90 src/sys/arch/amd64/amd64/trap.c:1.91
--- src/sys/arch/amd64/amd64/trap.c:1.90	Tue Feb 14 09:11:05 2017
+++ src/sys/arch/amd64/amd64/trap.c	Fri Feb 17 01:14:31 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.90 2017/02/14 09:11:05 maxv Exp $	*/
+/*	$NetBSD: trap.c,v 1.91 2017/02/17 01:14:31 kamil Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.90 2017/02/14 09:11:05 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.91 2017/02/17 01:14:31 kamil Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -711,7 +711,7 @@ faultcommon:
 			ksi.ksi_signo = SIGTRAP;
 			ksi.ksi_trap = type & ~T_USER;
 			if ((wptnfo = user_trap_x86_hw_watchpoint())) {
-				ksi.ksi_code = TRAP_HWWPT;
+				ksi.ksi_code = TRAP_DBREG;
 				ksi.ksi_trap2 = x86_hw_watchpoint_reg(wptnfo);
 				ksi.ksi_trap3 = x86_hw_watchpoint_type(wptnfo);
 			} else if (type == (T_BPTFLT|T_USER))

Index: src/sys/arch/i386/i386/trap.c
diff -u src/sys/arch/i386/i386/trap.c:1.282 src/sys/arch/i386/i386/trap.c:1.283
--- src/sys/arch/i386/i386/trap.c:1.282	Wed Jan 18 05:11:59 2017
+++ src/sys/arch/i386/i386/trap.c	Fri Feb 17 01:14:31 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.282 2017/01/18 05:11:59 kamil Exp $	*/
+/*	$NetBSD: trap.c,v 1.283 2017/02/17 01:14:31 kamil Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000, 2005, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.282 2017/01/18 05:11:59 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.283 2017/02/17 01:14:31 kamil Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -701,7 +701,7 @@ faultcommon:
 			ksi.ksi_signo = SIGTRAP;
 			ksi.ksi_trap = type & ~T_USER;
 			if ((wptnfo = user_trap_x86_hw_watchpoint())) {
-				ksi.ksi_code = TRAP_HWWPT;
+				ksi.ksi_code = TRAP_DBREG;
 				ksi.ksi_trap2 = x86_hw_watchpoint_reg(wptnfo);
 				ksi.ksi_trap3 = x86_hw_watchpoint_type(wptnfo);
 			} else if (type == (T_BPTFLT|T_USER))

Reply via email to