CVS commit: src/common/lib/libc/arch/arm/gen

2013-06-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jun 20 07:16:23 UTC 2013

Modified Files:
src/common/lib/libc/arch/arm/gen: divide.S divsi3.S modsi3.S udivsi3.S
umodsi3.S

Log Message:
Add support for __ARM_ARCH_EXT_IDIV__ which is set for those cores
with hardware divide instructions.  Note that gcc 4.5.x doesn't support
this so this is just latent.  gcc 4.7.x does.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/common/lib/libc/arch/arm/gen/divide.S \
src/common/lib/libc/arch/arm/gen/modsi3.S \
src/common/lib/libc/arch/arm/gen/umodsi3.S
cvs rdiff -u -r1.5 -r1.6 src/common/lib/libc/arch/arm/gen/divsi3.S
cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/arch/arm/gen/udivsi3.S

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

Modified files:

Index: src/common/lib/libc/arch/arm/gen/divide.S
diff -u src/common/lib/libc/arch/arm/gen/divide.S:1.2 src/common/lib/libc/arch/arm/gen/divide.S:1.3
--- src/common/lib/libc/arch/arm/gen/divide.S:1.2	Wed May  8 05:13:56 2013
+++ src/common/lib/libc/arch/arm/gen/divide.S	Thu Jun 20 07:16:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: divide.S,v 1.2 2013/05/08 05:13:56 matt Exp $	*/
+/*	$NetBSD: divide.S,v 1.3 2013/06/20 07:16:23 matt Exp $	*/
 
 /*
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
@@ -14,6 +14,8 @@
  * SUCH DAMAGE.
  */
 
+#ifndef __ARM_ARCH_EXT_IDIV__
+
 #include machine/asm.h
 
 /* 
@@ -374,3 +376,5 @@ __divide:/* r0 = r0 / r1; r1 = r0 % 
 	addhs	r3, r3, r2
 	mov	r0, r3
 	RET
+
+#endif /* __ARM_ARCH_EXT_IDIV__ */
Index: src/common/lib/libc/arch/arm/gen/modsi3.S
diff -u src/common/lib/libc/arch/arm/gen/modsi3.S:1.2 src/common/lib/libc/arch/arm/gen/modsi3.S:1.3
--- src/common/lib/libc/arch/arm/gen/modsi3.S:1.2	Wed Nov 28 01:35:05 2012
+++ src/common/lib/libc/arch/arm/gen/modsi3.S	Thu Jun 20 07:16:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: modsi3.S,v 1.2 2012/11/28 01:35:05 matt Exp $	*/
+/*	$NetBSD: modsi3.S,v 1.3 2013/06/20 07:16:23 matt Exp $	*/
 
 /*
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
@@ -22,9 +22,14 @@
  */
 
 ENTRY(__modsi3)
+#ifdef __ARM_ARCH_EXT_IDIV__
+	sdiv	r3, r0, r1
+	mls	r0, r3, r1, r0
+#else
 	str	lr, [sp, #-8]!	/* push lr */
 	bl	PIC_SYM(__divsi3, PLT)
 	mov	r0, r1
 	ldr	lr, [sp], #8	/* pop lr */
+#endif
 	RET
 END(__modsi3)
Index: src/common/lib/libc/arch/arm/gen/umodsi3.S
diff -u src/common/lib/libc/arch/arm/gen/umodsi3.S:1.2 src/common/lib/libc/arch/arm/gen/umodsi3.S:1.3
--- src/common/lib/libc/arch/arm/gen/umodsi3.S:1.2	Wed Nov 28 01:35:05 2012
+++ src/common/lib/libc/arch/arm/gen/umodsi3.S	Thu Jun 20 07:16:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: umodsi3.S,v 1.2 2012/11/28 01:35:05 matt Exp $	*/
+/*	$NetBSD: umodsi3.S,v 1.3 2013/06/20 07:16:23 matt Exp $	*/
 
 /*
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
@@ -22,8 +22,13 @@
  */
 
 ENTRY(__umodsi3)
+#ifdef __ARM_ARCH_EXT_IDIV__
+	udiv	r3, r0, r1
+	mls	r0, r3, r1, r0
+#else
 	str	lr, [sp, #-8]!	/* push lr */
 	bl	PIC_SYM(__udivsi3, PLT)
 	mov	r0, r1
 	ldr	lr, [sp], #8	/* pop lr */
+#endif
 	RET

Index: src/common/lib/libc/arch/arm/gen/divsi3.S
diff -u src/common/lib/libc/arch/arm/gen/divsi3.S:1.5 src/common/lib/libc/arch/arm/gen/divsi3.S:1.6
--- src/common/lib/libc/arch/arm/gen/divsi3.S:1.5	Wed May  8 05:13:56 2013
+++ src/common/lib/libc/arch/arm/gen/divsi3.S	Thu Jun 20 07:16:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: divsi3.S,v 1.5 2013/05/08 05:13:56 matt Exp $	*/
+/*	$NetBSD: divsi3.S,v 1.6 2013/06/20 07:16:23 matt Exp $	*/
 
 /*
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
@@ -23,4 +23,15 @@ ENTRY_NP(__aeabi_idiv)
 	.symver	__aeabi_idivmod,__aeabi_idivmod@@GCC_3.5
 #endif
 ENTRY(__divsi3)
+#if defined(__ARM_ARCH_EXT_IDIV__)
+# if defined(__ARM_EABI__)
+	mov	r3, r0		@ save for mls
+# endif
+	sdiv	r0, r0, r1
+# if defined(__ARM_EABI__)
+	mls	r1, r0, r1, r3	@ return modulus in r1
+# endif
+	RET
+#else
 	b	__divide
+#endif

Index: src/common/lib/libc/arch/arm/gen/udivsi3.S
diff -u src/common/lib/libc/arch/arm/gen/udivsi3.S:1.1 src/common/lib/libc/arch/arm/gen/udivsi3.S:1.2
--- src/common/lib/libc/arch/arm/gen/udivsi3.S:1.1	Tue Oct 30 12:42:13 2012
+++ src/common/lib/libc/arch/arm/gen/udivsi3.S	Thu Jun 20 07:16:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: udivsi3.S,v 1.1 2012/10/30 12:42:13 christos Exp $	*/
+/*	$NetBSD: udivsi3.S,v 1.2 2013/06/20 07:16:23 matt Exp $	*/
 
 /*
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
@@ -20,4 +20,15 @@
 ENTRY_NP(__aeabi_uidivmod)
 ENTRY_NP(__aeabi_uidiv)
 ENTRY(__udivsi3)
+#if defined(__ARM_ARCH_EXT_IDIV__)
+# if defined(__ARM_EABI__)
+	mov	r3, r0		@ save for mls
+# endif
+	udiv	r0, r0, r1
+# if defined(__ARM_EABI__)
+	mls	r1, r0, r1, r3	@ return modulus in r1
+# endif
+	RET
+#else
 	b	__udivide
+#endif



CVS commit: src/lib/libc/arch/arm/gen

2013-06-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jun 20 07:18:40 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
modsi3/umodsi3 is not needed for earm since __aeabi_*divmod takes care of it.


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/lib/libc/arch/arm/gen/Makefile.inc

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

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.22 src/lib/libc/arch/arm/gen/Makefile.inc:1.23
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.22	Tue Apr 30 01:42:04 2013
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Thu Jun 20 07:18:40 2013
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile.inc,v 1.22 2013/04/30 01:42:04 matt Exp $
+# $NetBSD: Makefile.inc,v 1.23 2013/06/20 07:18:40 matt Exp $
 
-SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divsi3.S \
-	fabs.c flt_rounds.c modsi3.S umodsi3.S divide.S divsi3.S udivsi3.S
+SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divide.S divsi3.S \
+	fabs.c flt_rounds.c udivsi3.S
 
 # Common ieee754 constants and functions
 SRCS+=	infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
@@ -14,6 +14,8 @@ SRCS+=	signbitf_ieee754.c signbitd_ieee7
 .if !empty(LIBC_MACHINE_ARCH:Mearm*)
 SRCS+=	__aeabi_fcmpun.c __aeabi_dcmpun.c
 SRCS+=	__aeabi_idiv0.c __aeabi_ldiv0.c
+.else
+SRCS+=	modsi3.s umodsi3.S
 .endif
 
 SRCS+=	nanf.c



CVS commit: src/sys/lib/libkern/arch/arm

2013-06-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jun 20 07:29:50 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
modsi3/umodsi3 are only needed !EABI arm


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/sys/lib/libkern/arch/arm/Makefile.inc

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

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.16 src/sys/lib/libkern/arch/arm/Makefile.inc:1.17
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.16	Thu May  2 03:56:42 2013
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Thu Jun 20 07:29:50 2013
@@ -1,10 +1,12 @@
-#	$NetBSD: Makefile.inc,v 1.16 2013/05/02 03:56:42 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.17 2013/06/20 07:29:50 matt Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
-SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S modsi3.S umodsi3.S
+SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S
 SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S
 
 .if !empty(MACHINE_ARCH:Mearm*)
 SRCS+=	__aeabi_ldivmod.S __aeabi_uldivmod.S __aeabi_lcmp.c __aeabi_ulcmp.c
+.else
+SRCS+=	 modsi3.S umodsi3.S
 .endif



CVS commit: src/usr.bin/netstat

2013-06-20 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Jun 20 10:43:18 UTC 2013

Modified Files:
src/usr.bin/netstat: inet.c inet6.c

Log Message:
Not all pointers are 64bit - use uintptr_t instead of uint64_t.


To generate a diff of this commit:
cvs rdiff -u -r1.102 -r1.103 src/usr.bin/netstat/inet.c
cvs rdiff -u -r1.61 -r1.62 src/usr.bin/netstat/inet6.c

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

Modified files:

Index: src/usr.bin/netstat/inet.c
diff -u src/usr.bin/netstat/inet.c:1.102 src/usr.bin/netstat/inet.c:1.103
--- src/usr.bin/netstat/inet.c:1.102	Wed Jun 19 21:12:03 2013
+++ src/usr.bin/netstat/inet.c	Thu Jun 20 10:43:18 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: inet.c,v 1.102 2013/06/19 21:12:03 christos Exp $	*/
+/*	$NetBSD: inet.c,v 1.103 2013/06/20 10:43:18 martin Exp $	*/
 
 /*
  * Copyright (c) 1983, 1988, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = from: @(#)inet.c	8.4 (Berkeley) 4/20/94;
 #else
-__RCSID($NetBSD: inet.c,v 1.102 2013/06/19 21:12:03 christos Exp $);
+__RCSID($NetBSD: inet.c,v 1.103 2013/06/20 10:43:18 martin Exp $);
 #endif
 #endif /* not lint */
 
@@ -306,7 +306,7 @@ getpcblist_kmem(u_long off, const char *
 			(char *)tcpcb, sizeof (tcpcb));
 		}
 		pcblist[i].ki_ppcbaddr = 
-		istcp ? (uint64_t) inpcb.inp_ppcb : (uint64_t) prev;
+		istcp ? (uintptr_t) inpcb.inp_ppcb : (uintptr_t) prev;
 		pcblist[i].ki_rcvq = (uint64_t)sockb.so_rcv.sb_cc;
 		pcblist[i].ki_sndq = (uint64_t)sockb.so_snd.sb_cc;
 

Index: src/usr.bin/netstat/inet6.c
diff -u src/usr.bin/netstat/inet6.c:1.61 src/usr.bin/netstat/inet6.c:1.62
--- src/usr.bin/netstat/inet6.c:1.61	Wed Jun 19 21:12:03 2013
+++ src/usr.bin/netstat/inet6.c	Thu Jun 20 10:43:18 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: inet6.c,v 1.61 2013/06/19 21:12:03 christos Exp $	*/
+/*	$NetBSD: inet6.c,v 1.62 2013/06/20 10:43:18 martin Exp $	*/
 /*	BSDI inet.c,v 2.3 1995/10/24 02:19:29 prb Exp	*/
 
 /*
@@ -64,7 +64,7 @@
 #if 0
 static char sccsid[] = @(#)inet.c	8.4 (Berkeley) 4/20/94;
 #else
-__RCSID($NetBSD: inet6.c,v 1.61 2013/06/19 21:12:03 christos Exp $);
+__RCSID($NetBSD: inet6.c,v 1.62 2013/06/20 10:43:18 martin Exp $);
 #endif
 #endif /* not lint */
 
@@ -323,7 +323,7 @@ getpcblist_kmem(u_long off, const char *
 #endif
 		}
 		pcblist[i].ki_ppcbaddr = 
-		istcp ? (uint64_t) in6pcb.in6p_ppcb : (uint64_t) prev;
+		istcp ? (uintptr_t) in6pcb.in6p_ppcb : (uintptr_t) prev;
 		pcblist[i].ki_rcvq = (uint64_t)sockb.so_rcv.sb_cc;
 		pcblist[i].ki_sndq = (uint64_t)sockb.so_snd.sb_cc;
 		sin6.sin6_addr = in6pcb.in6p_laddr;



CVS commit: src/external/bsd/dhcp/dist/client

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 12:15:38 UTC 2013

Modified Files:
src/external/bsd/dhcp/dist/client: dhclient.8

Log Message:
document -m flag


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.2 -r1.2 src/external/bsd/dhcp/dist/client/dhclient.8

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

Modified files:

Index: src/external/bsd/dhcp/dist/client/dhclient.8
diff -u src/external/bsd/dhcp/dist/client/dhclient.8:1.1.1.2 src/external/bsd/dhcp/dist/client/dhclient.8:1.2
--- src/external/bsd/dhcp/dist/client/dhclient.8:1.1.1.2	Sun Mar 24 18:50:27 2013
+++ src/external/bsd/dhcp/dist/client/dhclient.8	Thu Jun 20 08:15:38 2013
@@ -1,4 +1,4 @@
-.\	$NetBSD: dhclient.8,v 1.1.1.2 2013/03/24 22:50:27 christos Exp $
+.\	$NetBSD: dhclient.8,v 1.2 2013/06/20 12:15:38 christos Exp $
 .\
 .\	Id: dhclient.8,v 1.32.24.4 2011/04/15 22:12:50 sar Exp 
 .\
@@ -76,6 +76,9 @@ dhclient - Dynamic Host Configuration Pr
 .B -q
 ]
 [
+.B -m
+]
+[
 .B -1
 ]
 [
@@ -249,6 +252,10 @@ inittab on System V systems.  This impli
 Become a daemon immediately (nowait) rather than waiting until an
 an IP address has been acquired.
 .TP
+.BI \-m
+Don't require that the responding ethernet address of the dhcp server
+matches the one we expect.
+.TP
 .BI \-q
 Be quiet at startup, this is the default.
 .TP



CVS commit: src/external/bsd/dhcp/dist/client

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 12:24:08 UTC 2013

Modified Files:
src/external/bsd/dhcp/dist/client: dhc6.c dhclient.c

Log Message:
1. don't try to open the pid file if the path is NULL
2. daemonize in two stages: always fork() first and wait for the child to tell
   us when the interface is ready, so that we don't lose track of the file
   descriptors since we are threaded.
3. Add an option (-m) not to match the hardware address of the responding
   dhcp server.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/bsd/dhcp/dist/client/dhc6.c
cvs rdiff -u -r1.5 -r1.6 src/external/bsd/dhcp/dist/client/dhclient.c

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

Modified files:

Index: src/external/bsd/dhcp/dist/client/dhc6.c
diff -u src/external/bsd/dhcp/dist/client/dhc6.c:1.4 src/external/bsd/dhcp/dist/client/dhc6.c:1.5
--- src/external/bsd/dhcp/dist/client/dhc6.c:1.4	Tue Mar 26 20:38:07 2013
+++ src/external/bsd/dhcp/dist/client/dhc6.c	Thu Jun 20 08:24:08 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: dhc6.c,v 1.4 2013/03/27 00:38:07 christos Exp $	*/
+/*	$NetBSD: dhc6.c,v 1.5 2013/06/20 12:24:08 christos Exp $	*/
 
 /* dhc6.c - DHCPv6 client routines. */
 
@@ -26,7 +26,7 @@
  */
 
 #include sys/cdefs.h
-__RCSID($NetBSD: dhc6.c,v 1.4 2013/03/27 00:38:07 christos Exp $);
+__RCSID($NetBSD: dhc6.c,v 1.5 2013/06/20 12:24:08 christos Exp $);
 
 #include dhcpd.h
 
@@ -1371,7 +1371,7 @@ start_init6(struct client_state *client)
 	add_timeout(tv, do_init6, client, NULL, NULL);
 
 	if (nowait)
-		go_daemon();
+		finish_daemon();
 }
 
 /*

Index: src/external/bsd/dhcp/dist/client/dhclient.c
diff -u src/external/bsd/dhcp/dist/client/dhclient.c:1.5 src/external/bsd/dhcp/dist/client/dhclient.c:1.6
--- src/external/bsd/dhcp/dist/client/dhclient.c:1.5	Sun Jun 16 19:49:50 2013
+++ src/external/bsd/dhcp/dist/client/dhclient.c	Thu Jun 20 08:24:08 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: dhclient.c,v 1.5 2013/06/16 23:49:50 christos Exp $	*/
+/*	$NetBSD: dhclient.c,v 1.6 2013/06/20 12:24:08 christos Exp $	*/
 
 /* dhclient.c
 
@@ -33,7 +33,7 @@
  */
 
 #include sys/cdefs.h
-__RCSID($NetBSD: dhclient.c,v 1.5 2013/06/16 23:49:50 christos Exp $);
+__RCSID($NetBSD: dhclient.c,v 1.6 2013/06/20 12:24:08 christos Exp $);
 
 #include dhcpd.h
 #include syslog.h
@@ -55,6 +55,7 @@ char *path_dhclient_script = path_dhclie
 
 /* False (default) = we write and use a pid file */
 isc_boolean_t no_pid_file = ISC_FALSE;
+isc_boolean_t hw_mismatch_drop = ISC_TRUE;
 
 int dhcp_max_agent_option_packet_length = 0;
 
@@ -344,6 +345,8 @@ main(int argc, char **argv) {
 usage();
 			}
 #endif /* DHCPv6 */
+		} else if (!strcmp(argv[i], -m)) {
+			hw_mismatch_drop = ISC_FALSE;
 		} else if (!strcmp(argv[i], -v)) {
 			quiet = 0;
 		} else if (!strcmp(argv[i], --version)) {
@@ -362,8 +365,7 @@ main(int argc, char **argv) {
 	 * Do this before setup, otherwise if we are using threads things
 	 * are not going to work
 	 */
-	if (nowait)
-		go_daemon();
+	go_daemon();
 	setup();
 	if (interfaces_requested  0)
 		add_interfaces(ifaces, interfaces_requested);
@@ -431,7 +433,8 @@ main(int argc, char **argv) {
 	 * to write a pid file - we assume they are controlling
 	 * the process in some other fashion.
 	 */
-	if ((release_mode || exit_mode)  (no_pid_file == ISC_FALSE)) {
+	if (path_dhclient_pid != NULL 
+	(release_mode || exit_mode)  (no_pid_file == ISC_FALSE)) {
 		FILE *pidfd;
 		pid_t oldpid;
 		long temp;
@@ -712,8 +715,6 @@ main(int argc, char **argv) {
 	dmalloc_longterm = dmalloc_outstanding;
 	dmalloc_outstanding = 0;
 #endif
-
-
 	/* If we're not going to daemonize, write the pid file
 	   now. */
 	if (no_daemon || nowait)
@@ -736,9 +737,9 @@ static void usage()
 
 	log_fatal(Usage: dhclient 
 #ifdef DHCPv6
-		  [-4|-6] [-SNTP1dvrx] [-nw] [-p port] [-D LL|LLT]\n
+		  [-4|-6] [-SNTP1dvrx] [-nw] [-m] [-p port] [-D LL|LLT]\n
 #else /* DHCPv6 */
-		  [-1dvrx] [-nw] [-p port]\n
+		  [-1dvrx] [-nw] [-m] [-p port]\n
 #endif /* DHCPv6 */
 		  [-s server-addr] [-cf config-file] 
 		  [-lf lease-file]\n
@@ -815,7 +816,7 @@ void run_stateless(int exit_mode)
 	/* If we're not supposed to wait before getting the address,
 	   don't. */
 	if (nowait)
-		go_daemon();
+		finish_daemon();
 
 	/* If we're not going to daemonize, write the pid file
 	   now. */
@@ -893,7 +894,7 @@ int find_subnet (struct subnet **sp,
  */
 
 #include sys/cdefs.h
-__RCSID($NetBSD: dhclient.c,v 1.5 2013/06/16 23:49:50 christos Exp $);
+__RCSID($NetBSD: dhclient.c,v 1.6 2013/06/20 12:24:08 christos Exp $);
 
 void state_reboot (cpp)
 	void *cpp;
@@ -1045,6 +1046,25 @@ void state_selecting (cpp)
 	send_request (client);
 }
 
+static isc_boolean_t
+compare_hw_address(const char *name, struct packet *packet) {
+	if (packet-interface-hw_address.hlen - 1 != packet-raw-hlen ||
+	memcmp(packet-interface-hw_address.hbuf[1],
+	

CVS commit: src/external/bsd/dhcp/dist/includes

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 12:26:34 UTC 2013

Modified Files:
src/external/bsd/dhcp/dist/includes: dhcpd.h

Log Message:
add finish_daemon();


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/bsd/dhcp/dist/includes/dhcpd.h

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

Modified files:

Index: src/external/bsd/dhcp/dist/includes/dhcpd.h
diff -u src/external/bsd/dhcp/dist/includes/dhcpd.h:1.4 src/external/bsd/dhcp/dist/includes/dhcpd.h:1.5
--- src/external/bsd/dhcp/dist/includes/dhcpd.h:1.4	Tue Mar 26 20:38:08 2013
+++ src/external/bsd/dhcp/dist/includes/dhcpd.h	Thu Jun 20 08:26:34 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: dhcpd.h,v 1.4 2013/03/27 00:38:08 christos Exp $	*/
+/*	$NetBSD: dhcpd.h,v 1.5 2013/06/20 12:26:34 christos Exp $	*/
 
 /* dhcpd.h
 
@@ -2753,6 +2753,7 @@ void client_envadd (struct client_state 
 
 struct client_lease *packet_to_lease (struct packet *, struct client_state *);
 void go_daemon (void);
+void finish_daemon (void);
 void write_client_pid_file (void);
 void client_location_changed (void);
 void do_release (struct client_state *);



CVS commit: src/sys/arch/epoc32/stand/e32boot

2013-06-20 Thread KIYOHARA Takashi
Module Name:src
Committed By:   kiyohara
Date:   Thu Jun 20 13:36:48 UTC 2013

Modified Files:
src/sys/arch/epoc32/stand/e32boot/exe: e32boot.cpp netbsd.cpp version
src/sys/arch/epoc32/stand/e32boot/include: netbsd.h

Log Message:
Support boot argument for kernel.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp \
src/sys/arch/epoc32/stand/e32boot/exe/netbsd.cpp \
src/sys/arch/epoc32/stand/e32boot/exe/version
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/epoc32/stand/e32boot/include/netbsd.h

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

Modified files:

Index: src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp
diff -u src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp:1.1 src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp:1.2
--- src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp:1.1	Sun Apr 28 12:11:26 2013
+++ src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp	Thu Jun 20 13:36:48 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: e32boot.cpp,v 1.1 2013/04/28 12:11:26 kiyohara Exp $	*/
+/*	$NetBSD: e32boot.cpp,v 1.2 2013/06/20 13:36:48 kiyohara Exp $	*/
 /*
  * Copyright (c) 2012, 2013 KIYOHARA Takashi
  * All rights reserved.
@@ -131,6 +131,7 @@ E32BootL(void)
 	struct btinfo_common *bootinfo;
 	struct btinfo_model *model;
 	struct btinfo_video *video;
+	struct btinfo_bootargs *bootargs;
 
 	console =
 	Console::NewL(E32BootName, TSize(KConsFullScreen, KConsFullScreen));
@@ -160,6 +161,8 @@ E32BootL(void)
 
 	console-Printf(_L(\n));
 
+	bootargs =
+	(struct btinfo_bootargs *)FindBootInfoL(bootinfo, BTINFO_BOOTARGS);
 	TRAP(err, netbsd = LoadNetBSDL());
 	if (err != KErrNone)
 		User::Leave(err);
@@ -167,6 +170,12 @@ E32BootL(void)
 		return;
 	console-Printf(_L(\nLoaded\n));
 
+	int n, m;
+	n = sizeof(bootargs-bootargs);
+	m = (*netbsd-GetArgs()).Length();
+	Mem::Copy(bootargs-bootargs, (*netbsd-GetArgs())[0], n  m ? n : m);
+	bootargs-bootargs[n  m ? n - 1 : m] = '\0';
+
 	netbsd-ParseHeader();
 
 	/* Load logical device(kernel part of e32boot). */
@@ -220,13 +229,15 @@ LOCAL_C NetBSD *
 LoadNetBSDL(void)
 {
 	NetBSD *netbsd = NULL;
-	TBufKMaxCommandLine input;
+	TBufKMaxCommandLine input, *args;
 	TPtrC Default = _L(C:\\netbsd);
 	TPtrC Prompt = _L(Boot: );
 	TInt pos, err;
 	TBool retry;
 
 	input.Zero();
+	args = new TBufKMaxCommandLine;
+	args-Zero();
 	retry = false;
 	console-Printf(Prompt);
 	console-Printf(_L([));
@@ -264,19 +275,29 @@ LoadNetBSDL(void)
 			break;
 		}
 		if (gChar == EKeyEnter) {
-			if (input.Length()  0) {
-TBufCKMaxCommandLine kernel =
-TBufCKMaxCommandLine(input);
+			input.TrimAll();
+			if (input[0] == '-')
+input.Swap(*args);
+			for (int i = 0; i  input.Length(); i++)
+if (input[i] == ' ') {
+	args-Copy(input);
+	input.SetLength(i);
+	args-Delete(0, i + 1);
+	break;
+}
+			args-ZeroTerminate();
 
-TRAP(err, netbsd = NetBSD::New(kernel));
+			if (input.Length()  0) {
+TRAP(err, netbsd = NetBSD::New(input, *args));
 			} else {
-TRAP(err, netbsd = NetBSD::New(Default));
+TRAP(err, netbsd = NetBSD::New(Default, *args));
 			}
 			if (err == 0  netbsd != NULL)
 break;
 			console-Printf(_L(\nLoad failed: %d\n), err);
 
 			input.Zero();
+			args-Zero();
 			console-Printf(Prompt);
 			pos = 0;
 			retry = true;
@@ -306,6 +327,7 @@ CreateBootInfo(TAny *buf)
 	struct btinfo_model *model;
 	struct btinfo_memory *memory;
 	struct btinfo_video *video;
+	struct btinfo_bootargs *bootargs;
 	struct memmap *memmap;
 	TUint memsize;
 	TUint i;
@@ -361,6 +383,12 @@ CreateBootInfo(TAny *buf)
 		common = (memory + 1)-common;
 	}
 
+	common-len = sizeof(struct btinfo_bootargs);
+	common-type = BTINFO_BOOTARGS;
+	bootargs = (struct btinfo_bootargs *)common;
+	bootargs-bootargs[0] = '\0';
+	common = (bootargs + 1)-common;
+
 	common-len = 0;
 	common-type = BTINFO_NONE;
 
Index: src/sys/arch/epoc32/stand/e32boot/exe/netbsd.cpp
diff -u src/sys/arch/epoc32/stand/e32boot/exe/netbsd.cpp:1.1 src/sys/arch/epoc32/stand/e32boot/exe/netbsd.cpp:1.2
--- src/sys/arch/epoc32/stand/e32boot/exe/netbsd.cpp:1.1	Sun Apr 28 12:11:26 2013
+++ src/sys/arch/epoc32/stand/e32boot/exe/netbsd.cpp	Thu Jun 20 13:36:48 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd.cpp,v 1.1 2013/04/28 12:11:26 kiyohara Exp $	*/
+/*	$NetBSD: netbsd.cpp,v 1.2 2013/06/20 13:36:48 kiyohara Exp $	*/
 /*
  * Copyright (c) 2012 KIYOHARA Takashi
  * All rights reserved.
@@ -76,6 +76,16 @@ NetBSD::New(const TDesC aFilename)
 	return netbsd;
 }
 
+NetBSD *
+NetBSD::New(const TDesC aFilename, const TDesC aArgs)
+{
+	NetBSD *netbsd = New(aFilename);
+
+	netbsd-Args = aArgs;
+
+	return netbsd;
+}
+
 
 void
 ELF::ParseHeader(void)
Index: src/sys/arch/epoc32/stand/e32boot/exe/version
diff -u src/sys/arch/epoc32/stand/e32boot/exe/version:1.1 src/sys/arch/epoc32/stand/e32boot/exe/version:1.2
--- src/sys/arch/epoc32/stand/e32boot/exe/version:1.1	Sun Apr 28 

CVS commit: src/sys/arch/epoc32/include

2013-06-20 Thread KIYOHARA Takashi
Module Name:src
Committed By:   kiyohara
Date:   Thu Jun 20 13:38:03 UTC 2013

Modified Files:
src/sys/arch/epoc32/include: bootinfo.h

Log Message:
Support boot argument for kernel.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/epoc32/include/bootinfo.h

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

Modified files:

Index: src/sys/arch/epoc32/include/bootinfo.h
diff -u src/sys/arch/epoc32/include/bootinfo.h:1.1 src/sys/arch/epoc32/include/bootinfo.h:1.2
--- src/sys/arch/epoc32/include/bootinfo.h:1.1	Sun Apr 28 12:11:25 2013
+++ src/sys/arch/epoc32/include/bootinfo.h	Thu Jun 20 13:38:03 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: bootinfo.h,v 1.1 2013/04/28 12:11:25 kiyohara Exp $	*/
+/*	$NetBSD: bootinfo.h,v 1.2 2013/06/20 13:38:03 kiyohara Exp $	*/
 /*
  * Copyright (c) 2012 KIYOHARA Takashi
  * All rights reserved.
@@ -40,6 +40,7 @@ struct btinfo_common {
 #define BTINFO_MODEL	1
 #define BTINFO_MEMORY	2
 #define BTINFO_VIDEO	3
+#define BTINFO_BOOTARGS	4
 
 #define BTINFO_MAX_SIZE	512
 
@@ -60,6 +61,11 @@ struct btinfo_video {
 	int width;
 	int height;
 };
+
+struct btinfo_bootargs {
+	struct btinfo_common common;
+	char bootargs[256];
+};
 #endif	/* _LOCORE */
 
 #endif	/* _EPOC32_BOOTINFO_H_ */



CVS commit: src/sys/arch/epoc32/epoc32

2013-06-20 Thread KIYOHARA Takashi
Module Name:src
Committed By:   kiyohara
Date:   Thu Jun 20 13:40:09 UTC 2013

Modified Files:
src/sys/arch/epoc32/epoc32: autoconf.c machdep.c

Log Message:
Support boothowto.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/epoc32/epoc32/autoconf.c \
src/sys/arch/epoc32/epoc32/machdep.c

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

Modified files:

Index: src/sys/arch/epoc32/epoc32/autoconf.c
diff -u src/sys/arch/epoc32/epoc32/autoconf.c:1.1 src/sys/arch/epoc32/epoc32/autoconf.c:1.2
--- src/sys/arch/epoc32/epoc32/autoconf.c:1.1	Sun Apr 28 12:11:26 2013
+++ src/sys/arch/epoc32/epoc32/autoconf.c	Thu Jun 20 13:40:09 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.c,v 1.1 2013/04/28 12:11:26 kiyohara Exp $	*/
+/*	$NetBSD: autoconf.c,v 1.2 2013/06/20 13:40:09 kiyohara Exp $	*/
 /*
  * Copyright (c) 2013 KIYOHARA Takashi
  * All rights reserved.
@@ -26,7 +26,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: autoconf.c,v 1.1 2013/04/28 12:11:26 kiyohara Exp $);
+__KERNEL_RCSID(0, $NetBSD: autoconf.c,v 1.2 2013/06/20 13:40:09 kiyohara Exp $);
 
 #include sys/systm.h
 #include sys/types.h
@@ -71,4 +71,8 @@ device_register(device_t dev, void *aux)
 		prop_dictionary_set_uint32(dict, height, epoc32_fb_height);
 		prop_dictionary_set_uint32(dict, addr, epoc32_fb_addr);
 	}
+
+	if (booted_device == NULL)
+		if (device_is_a(dev, wd))
+			booted_device = dev;
 }
Index: src/sys/arch/epoc32/epoc32/machdep.c
diff -u src/sys/arch/epoc32/epoc32/machdep.c:1.1 src/sys/arch/epoc32/epoc32/machdep.c:1.2
--- src/sys/arch/epoc32/epoc32/machdep.c:1.1	Sun Apr 28 12:11:26 2013
+++ src/sys/arch/epoc32/epoc32/machdep.c	Thu Jun 20 13:40:09 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.1 2013/04/28 12:11:26 kiyohara Exp $	*/
+/*	$NetBSD: machdep.c,v 1.2 2013/06/20 13:40:09 kiyohara Exp $	*/
 /*
  * Copyright (c) 2012, 2013 KIYOHARA Takashi
  * All rights reserved.
@@ -26,7 +26,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: machdep.c,v 1.1 2013/04/28 12:11:26 kiyohara Exp $);
+__KERNEL_RCSID(0, $NetBSD: machdep.c,v 1.2 2013/06/20 13:40:09 kiyohara Exp $);
 
 #include clpscom.h
 #include clpslcd.h
@@ -84,6 +84,7 @@ __KERNEL_RCSID(0, $NetBSD: machdep.c,v 
 
 
 BootConfig bootconfig;		/* Boot config storage */
+static char bootargs[256];
 char *boot_args = NULL;
 
 vm_offset_t physical_start;
@@ -170,6 +171,7 @@ initarm(void *arg)
 	struct btinfo_model *model = NULL;
 	struct btinfo_memory *memory = NULL;
 	struct btinfo_video *video = NULL;
+	struct btinfo_bootargs *args = NULL;
 	u_int l1pagetable, _end_physical;
 	int loop, loop1, n, i;
 
@@ -211,6 +213,20 @@ initarm(void *arg)
 			epoc32_fb_width = video-width;
 			epoc32_fb_height = video-height;
 			break;
+
+		case BTINFO_BOOTARGS:
+			args = (struct btinfo_bootargs *)btinfo;
+			btinfo = (args + 1)-common;
+			memcpy(bootargs, args-bootargs,
+			min(sizeof(bootargs), sizeof(args-bootargs)));
+			bootargs[sizeof(bootargs) - 1] = '\0';
+			boot_args = bootargs;
+			break;
+
+		default:
+#define NEXT_BOOTINFO(bi) (struct btinfo_common *)((char *)bi + (bi)-len)
+
+			btinfo = NEXT_BOOTINFO(btinfo);
 		}
 	}
 	if (bootconfig.dramblocks == 0)
@@ -218,6 +234,9 @@ initarm(void *arg)
 
 	consinit();
 
+	if (boot_args != NULL)
+		parse_mi_bootargs(boot_args);
+
 	physical_start = bootconfig.dram[0].address;
 	physical_freestart = bootconfig.dram[0].address;
 	physical_freeend = KERNEL_TEXT_BASE;



CVS commit: src/sys/arch/epoc32/dev

2013-06-20 Thread KIYOHARA Takashi
Module Name:src
Committed By:   kiyohara
Date:   Thu Jun 20 13:42:02 UTC 2013

Modified Files:
src/sys/arch/epoc32/dev: epockbdmap.h

Log Message:
Add DE and FR keymap.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/epoc32/dev/epockbdmap.h

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

Modified files:

Index: src/sys/arch/epoc32/dev/epockbdmap.h
diff -u src/sys/arch/epoc32/dev/epockbdmap.h:1.1 src/sys/arch/epoc32/dev/epockbdmap.h:1.2
--- src/sys/arch/epoc32/dev/epockbdmap.h:1.1	Sun Apr 28 12:11:25 2013
+++ src/sys/arch/epoc32/dev/epockbdmap.h	Thu Jun 20 13:42:02 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: epockbdmap.h,v 1.1 2013/04/28 12:11:25 kiyohara Exp $	*/
+/*	$NetBSD: epockbdmap.h,v 1.2 2013/06/20 13:42:02 kiyohara Exp $	*/
 /*
  * Copyright (c) 2013 KIYOHARA Takashi
  * All rights reserved.
@@ -46,7 +46,7 @@ static const keysym_t epockbd_keysym_us[
 KC(13),  KS_8,		KS_asterisk,	KS_bracketright,
 KC(14),  KS_7,		KS_ampersand,	KS_bracketleft,
 //  KC(15),  Play
-KC(17),  KS_y,		KS_voidSymbol,	KS_asterisk,
+KC(17),  KS_y,		KS_Y,		KS_asterisk,
 KC(18),  KS_t,
 KC(19),  KS_r,
 KC(20),  KS_e,
@@ -92,23 +92,92 @@ static const keysym_t epockbd_keysym_us[
 
 static const keysym_t epockbd_keysym_uk[] = {
 /*  pos  normal		shifted		altgr  */
-KC(3),   KS_4,		KS_dollar,	KS_at,
-KC(4),   KS_3,		KS_sterling,	KS_backslash,
-KC(5),   KS_2,		KS_quotedbl,	KS_numbersign,
+KC(3),   KS_4,		KS_dollar,	KS_at,		KS_Cmd_Screen3,
+KC(4),   KS_3,		KS_sterling,	KS_backslash,	KS_Cmd_Screen2,
+KC(5),   KS_2,		KS_quotedbl,	KS_numbersign,	KS_Cmd_Screen1,
 KC(9),   KS_apostrophe,	KS_asciitilde,	KS_colon,
 KC(26),  KS_l,		KS_L,		KS_semicolon,
 KC(42),  KS_period,		KS_question,	KS_plus,
 KC(59),  KS_comma,		KS_slash,	KS_Help,
 };
 
+static const keysym_t epockbd_keysym_de[] = {
+/*  pos  normal		shifted		altgr		shift+altgr  */
+KC(1),   KS_6,		KS_ampersand,	KS_greater,
+KC(3),   KS_4,		KS_dollar,	KS_asciitilde,	KS_Cmd_Screen3,
+KC(4),   KS_3,		KS_section,	KS_backslash,	KS_Cmd_Screen2,
+KC(5),   KS_2,		KS_quotedbl,	KS_slash,	KS_Cmd_Screen1,
+KC(9),   KS_numbersign,	KS_asterisk,	KS_equal,
+KC(11),  KS_0,		KS_apostrophe,	KS_braceright,
+KC(12),  KS_9,		KS_parenright,	KS_braceleft,
+KC(13),  KS_8,		KS_parenleft,	KS_bracketright,
+KC(14),  KS_7,		KS_question,	KS_bracketleft,
+KC(19),  KS_r,		KS_R,		KS_masculine,
+KC(20),  KS_e,		KS_E,		KS_currency,
+KC(21),  KS_w,		KS_W,		KS_asciicircum,
+KC(22),  KS_q,		KS_Q,		KS_at,
+KC(26),  KS_l,		KS_L,		KS_minus,
+KC(27),  KS_p,		KS_P,		KS_ssharp,
+KC(28),  KS_o,		KS_O,		KS_diaeresis,
+KC(29),  KS_i,		KS_I,		KS_mu,
+KC(30),  KS_u,		KS_U,		KS_udiaeresis,
+KC(31),  KS_Menu,
+KC(37),  KS_a,		KS_A,		KS_adiaeresis,
+KC(42),  KS_comma,		KS_semicolon,
+KC(43),  KS_m,
+KC(44),  KS_k,		KS_K,		KS_plus,
+KC(45),  KS_j,		KS_J,		KS_slash,
+KC(47),  KS_Mode_switch,	KS_Multi_key,
+KC(50),  KS_b,		KS_B,		KS_dead_caron,
+KC(51),  KS_v,		KS_V,		KS_dead_breve,
+KC(52),  KS_c,		KS_C,		KS_acute,
+KC(54),  KS_y,		KS_Y,		KS_diaeresis,
+KC(59),  KS_period,		KS_colon,
+};
+
+static const keysym_t epockbd_keysym_fr[] = {
+/*  pos  normal		shifted		altgr		shift+altgr  */
+KC(1),   KS_6,		KS_dollar,	KS_parenright,
+KC(2),   KS_5,		KS_degree,	KS_parenleft,
+KC(3),   KS_4,		KS_dead_tilde,	KS_apostrophe,	KS_Cmd_Screen3,
+KC(4),   KS_3,		KS_numbersign,	KS_quotedbl,	KS_Cmd_Screen2,
+KC(5),   KS_2,		KS_percent,	KS_eacute,	KS_Cmd_Screen1,
+KC(6),   KS_1,		KS_exclam,	KS_ampersand,	KS_Cmd_Screen0,
+KC(9),   KS_m,		KS_M,		KS_minus,
+KC(11),  KS_0,		KS_at,		KS_agrave,
+KC(12),  KS_9,		KS_dead_circumflex, KS_ccedilla,
+KC(13),  KS_8,		KS_backslash,	KS_underscore,
+KC(14),  KS_7,		KS_sterling,	KS_eacute,
+KC(17),  KS_y,		KS_Y,		KS_braceright,
+KC(18),  KS_t,		KS_T,		KS_braceleft,
+KC(19),  KS_r,		KS_R,		KS_bracketright,
+KC(20),  KS_e,		KS_E,		KS_bracketleft,
+KC(21),  KS_z,		KS_Z,		KS_greater,
+KC(22),  KS_a,		KS_A,		KS_less,
+KC(26),  KS_l,		KS_L,		KS_plus,
+KC(28),  KS_o,
+KC(29),  KS_i,		KS_I,		KS_bar,
+KC(30),  KS_u,		KS_U,		KS_ugrave,
+KC(37),  KS_q,
+KC(42),  KS_period,		KS_semicolon,	KS_slash,
+KC(43),  KS_question,	KS_comma,
+KC(44),  KS_k,		KS_K,		KS_KP_Divide,
+KC(50),  KS_b,		KS_B,		KS_dead_circumflex,
+KC(51),  KS_v,		KS_V,		KS_dead_tilde,
+KC(52),  KS_c,		KS_C,		KS_apostrophe,
+KC(53),  KS_x,		KS_X,		KS_grave,
+KC(54),  KS_w,		KS_W,		KS_dead_diaeresis,
+KC(59),  KS_colon,		KS_mu,
+};
+
 #define KBD_MAP(name, base, map) \
 			{ name, base, sizeof(map)/sizeof(keysym_t), map }
 
 struct wscons_keydesc epockbd_keydesctab[] = {
 	KBD_MAP(KB_UK,		KB_US,		epockbd_keysym_uk),
 	KBD_MAP(KB_US,		0,		

CVS commit: src/sys

2013-06-20 Thread Roy Marples
Module Name:src
Committed By:   roy
Date:   Thu Jun 20 13:56:29 UTC 2013

Modified Files:
src/sys/dev/mii: mii_physubr.c
src/sys/net: if.c
src/sys/netinet6: in6.c in6.h nd6_rtr.c

Log Message:
Move the detaching and making tentative addresses out if in6_if_up
and into in6_if_link_up.

This fixes a possible panic where link is up but not the interface.
Note that a better solution would be to listen to the routing socket
in the kernel, but I don't know how to do that.

Reachable Router tests for IFF_UP as well.


To generate a diff of this commit:
cvs rdiff -u -r1.79 -r1.80 src/sys/dev/mii/mii_physubr.c
cvs rdiff -u -r1.263 -r1.264 src/sys/net/if.c
cvs rdiff -u -r1.164 -r1.165 src/sys/netinet6/in6.c
cvs rdiff -u -r1.72 -r1.73 src/sys/netinet6/in6.h
cvs rdiff -u -r1.88 -r1.89 src/sys/netinet6/nd6_rtr.c

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

Modified files:

Index: src/sys/dev/mii/mii_physubr.c
diff -u src/sys/dev/mii/mii_physubr.c:1.79 src/sys/dev/mii/mii_physubr.c:1.80
--- src/sys/dev/mii/mii_physubr.c:1.79	Sun Jun 16 06:29:08 2013
+++ src/sys/dev/mii/mii_physubr.c	Thu Jun 20 13:56:29 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: mii_physubr.c,v 1.79 2013/06/16 06:29:08 msaitoh Exp $	*/
+/*	$NetBSD: mii_physubr.c,v 1.80 2013/06/20 13:56:29 roy Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: mii_physubr.c,v 1.79 2013/06/16 06:29:08 msaitoh Exp $);
+__KERNEL_RCSID(0, $NetBSD: mii_physubr.c,v 1.80 2013/06/20 13:56:29 roy Exp $);
 
 #include sys/param.h
 #include sys/device.h
@@ -436,9 +436,7 @@ mii_phy_statusmsg(struct mii_softc *sc)
 {
 	struct mii_data *mii = sc-mii_pdata;
 	struct ifnet *ifp = mii-mii_ifp;
-	int s;
 
-	s = splnet();
 	if (mii-mii_media_status  IFM_AVALID) {
 		if (mii-mii_media_status  IFM_ACTIVE)
 			if_link_state_change(ifp, LINK_STATE_UP);
@@ -446,7 +444,6 @@ mii_phy_statusmsg(struct mii_softc *sc)
 			if_link_state_change(ifp, LINK_STATE_DOWN);
 	} else
 		if_link_state_change(ifp, LINK_STATE_UNKNOWN);
-	splx(s);
 
 	ifp-if_baudrate = ifmedia_baudrate(mii-mii_media_active);
 }

Index: src/sys/net/if.c
diff -u src/sys/net/if.c:1.263 src/sys/net/if.c:1.264
--- src/sys/net/if.c:1.263	Tue Jun 11 12:08:29 2013
+++ src/sys/net/if.c	Thu Jun 20 13:56:29 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: if.c,v 1.263 2013/06/11 12:08:29 roy Exp $	*/
+/*	$NetBSD: if.c,v 1.264 2013/06/20 13:56:29 roy Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc.
@@ -90,7 +90,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: if.c,v 1.263 2013/06/11 12:08:29 roy Exp $);
+__KERNEL_RCSID(0, $NetBSD: if.c,v 1.264 2013/06/20 13:56:29 roy Exp $);
 
 #include opt_inet.h
 
@@ -1333,14 +1333,19 @@ link_rtrequest(int cmd, struct rtentry *
 
 /*
  * Handle a change in the interface link state.
+ * XXX: We should listen to the routing socket in-kernel rather
+ * than calling in6_if_link_* functions directly from here.
  */
 void
 if_link_state_change(struct ifnet *ifp, int link_state)
 {
-	int old_link_state;
+	int old_link_state, s;
 
-	if (ifp-if_link_state == link_state)
+	s = splnet();
+	if (ifp-if_link_state == link_state) {
+		splx(s);
 		return;
+	}
 
 	old_link_state = ifp-if_link_state;
 	ifp-if_link_state = link_state;
@@ -1349,7 +1354,7 @@ if_link_state_change(struct ifnet *ifp, 
 		link_state == LINK_STATE_UP ? UP :
 		link_state == LINK_STATE_DOWN ? DOWN :
 		UNKNOWN,
-		old_link_state == LINK_STATE_UP ? UP :
+		 old_link_state == LINK_STATE_UP ? UP :
 		old_link_state == LINK_STATE_DOWN ? DOWN :
 		UNKNOWN);
 #endif
@@ -1366,7 +1371,7 @@ if_link_state_change(struct ifnet *ifp, 
 	 */
 	if (link_state == LINK_STATE_UP 
 	old_link_state == LINK_STATE_UNKNOWN)
-		in6_if_down(ifp);
+		in6_if_link_down(ifp);
 #endif
 
 	/* Notify that the link state has changed. */
@@ -1379,10 +1384,12 @@ if_link_state_change(struct ifnet *ifp, 
 
 #ifdef INET6
 	if (link_state == LINK_STATE_DOWN)
-		in6_if_down(ifp);
+		in6_if_link_down(ifp);
 	else if (link_state == LINK_STATE_UP)
-		in6_if_up(ifp);
+		in6_if_link_up(ifp);
 #endif
+
+	splx(s);
 }
 
 /*

Index: src/sys/netinet6/in6.c
diff -u src/sys/netinet6/in6.c:1.164 src/sys/netinet6/in6.c:1.165
--- src/sys/netinet6/in6.c:1.164	Tue Jun 11 12:08:29 2013
+++ src/sys/netinet6/in6.c	Thu Jun 20 13:56:29 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: in6.c,v 1.164 2013/06/11 12:08:29 roy Exp $	*/
+/*	$NetBSD: in6.c,v 1.165 2013/06/20 13:56:29 roy Exp $	*/
 /*	$KAME: in6.c,v 1.198 2001/07/18 09:12:38 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: in6.c,v 1.164 2013/06/11 12:08:29 roy Exp $);
+__KERNEL_RCSID(0, $NetBSD: in6.c,v 1.165 2013/06/20 13:56:29 roy Exp $);
 
 #include opt_inet.h
 #include opt_pfil_hooks.h
@@ -2165,7 +2165,7 @@ in6_ifawithifp(struct ifnet *ifp, struct
  * perform DAD when interface 

CVS commit: src/external/bsd/dhcp/dist/client

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 15:14:03 UTC 2013

Modified Files:
src/external/bsd/dhcp/dist/client: dhclient.c

Log Message:
file descriptor neatness.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/external/bsd/dhcp/dist/client/dhclient.c

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

Modified files:

Index: src/external/bsd/dhcp/dist/client/dhclient.c
diff -u src/external/bsd/dhcp/dist/client/dhclient.c:1.6 src/external/bsd/dhcp/dist/client/dhclient.c:1.7
--- src/external/bsd/dhcp/dist/client/dhclient.c:1.6	Thu Jun 20 08:24:08 2013
+++ src/external/bsd/dhcp/dist/client/dhclient.c	Thu Jun 20 11:14:03 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: dhclient.c,v 1.6 2013/06/20 12:24:08 christos Exp $	*/
+/*	$NetBSD: dhclient.c,v 1.7 2013/06/20 15:14:03 christos Exp $	*/
 
 /* dhclient.c
 
@@ -33,7 +33,7 @@
  */
 
 #include sys/cdefs.h
-__RCSID($NetBSD: dhclient.c,v 1.6 2013/06/20 12:24:08 christos Exp $);
+__RCSID($NetBSD: dhclient.c,v 1.7 2013/06/20 15:14:03 christos Exp $);
 
 #include dhcpd.h
 #include syslog.h
@@ -894,7 +894,7 @@ int find_subnet (struct subnet **sp,
  */
 
 #include sys/cdefs.h
-__RCSID($NetBSD: dhclient.c,v 1.6 2013/06/20 12:24:08 christos Exp $);
+__RCSID($NetBSD: dhclient.c,v 1.7 2013/06/20 15:14:03 christos Exp $);
 
 void state_reboot (cpp)
 	void *cpp;
@@ -3532,9 +3532,11 @@ void go_daemon (void)
 		log_fatal (Can't fork daemon: %m);
 	else if (pid) {
 		char c;
+		close(pfd[0]);
 		read(pfd[1], c, 1);
 		exit (0);
-	}
+	} else
+		close(pfd[1]);
 }
 
 void write_client_pid_file ()



CVS commit: src/sys/arch/epoc32/stand/e32boot/exe

2013-06-20 Thread KIYOHARA Takashi
Module Name:src
Committed By:   kiyohara
Date:   Thu Jun 20 15:30:00 UTC 2013

Modified Files:
src/sys/arch/epoc32/stand/e32boot/exe: e32boot.cpp

Log Message:
Fix fault when 0 byte copy.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp

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

Modified files:

Index: src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp
diff -u src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp:1.2 src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp:1.3
--- src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp:1.2	Thu Jun 20 13:36:48 2013
+++ src/sys/arch/epoc32/stand/e32boot/exe/e32boot.cpp	Thu Jun 20 15:30:00 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: e32boot.cpp,v 1.2 2013/06/20 13:36:48 kiyohara Exp $	*/
+/*	$NetBSD: e32boot.cpp,v 1.3 2013/06/20 15:30:00 kiyohara Exp $	*/
 /*
  * Copyright (c) 2012, 2013 KIYOHARA Takashi
  * All rights reserved.
@@ -173,7 +173,9 @@ E32BootL(void)
 	int n, m;
 	n = sizeof(bootargs-bootargs);
 	m = (*netbsd-GetArgs()).Length();
-	Mem::Copy(bootargs-bootargs, (*netbsd-GetArgs())[0], n  m ? n : m);
+	if (m  0)
+		Mem::Copy(bootargs-bootargs, (*netbsd-GetArgs())[0],
+		n  m ? n : m);
 	bootargs-bootargs[n  m ? n - 1 : m] = '\0';
 
 	netbsd-ParseHeader();



CVS commit: src/crypto/dist/ipsec-tools

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 15:41:18 UTC 2013

Modified Files:
src/crypto/dist/ipsec-tools: configure.ac
src/crypto/dist/ipsec-tools/src/racoon: localconf.c racoon.conf.5

Log Message:
Add an option --enable-wildcard-match to enable wildcard matching and explain
why we might want it and why it is a bad idea in general that's why it is
not enabled by default. ok tteras@, manu@


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/crypto/dist/ipsec-tools/configure.ac
cvs rdiff -u -r1.8 -r1.9 src/crypto/dist/ipsec-tools/src/racoon/localconf.c
cvs rdiff -u -r1.66 -r1.67 \
src/crypto/dist/ipsec-tools/src/racoon/racoon.conf.5

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

Modified files:

Index: src/crypto/dist/ipsec-tools/configure.ac
diff -u src/crypto/dist/ipsec-tools/configure.ac:1.13 src/crypto/dist/ipsec-tools/configure.ac:1.14
--- src/crypto/dist/ipsec-tools/configure.ac:1.13	Tue Jan  8 07:42:31 2013
+++ src/crypto/dist/ipsec-tools/configure.ac	Thu Jun 20 11:41:18 2013
@@ -105,6 +105,14 @@ case $host_os in
 ;;
 esac
 
+AH_TEMPLATE(ENABLE_WILDCARD_MATCH, [Enable wildcard matching in pre-shared-key file])
+AC_ARG_ENABLE([wildcard-match],
+[--enable-wildcard-match	Enable wildcard matching in pre-shared-key file],
+[case ${enableval} in
+(yes)	AC_DEFINE(ENABLE_WILDCARD_MATCH);;
+(no)	;;
+(*)	AC_MSG_ERROR(bad value ${enableval} for --enable-wildcard-match);;
+esac],[])
 ### Some basic toolchain checks
 
 # Checks for header files.

Index: src/crypto/dist/ipsec-tools/src/racoon/localconf.c
diff -u src/crypto/dist/ipsec-tools/src/racoon/localconf.c:1.8 src/crypto/dist/ipsec-tools/src/racoon/localconf.c:1.9
--- src/crypto/dist/ipsec-tools/src/racoon/localconf.c:1.8	Sun Jan  1 10:29:28 2012
+++ src/crypto/dist/ipsec-tools/src/racoon/localconf.c	Thu Jun 20 11:41:18 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: localconf.c,v 1.8 2012/01/01 15:29:28 tteras Exp $	*/
+/*	$NetBSD: localconf.c,v 1.9 2013/06/20 15:41:18 christos Exp $	*/
 
 /*	$KAME: localconf.c,v 1.33 2001/08/09 07:32:19 sakane Exp $	*/
 
@@ -247,7 +247,11 @@ getpsk(str, len)
 		if (*p == '\0')
 			continue;	/* no 2nd parameter */
 		p--;
-		if (strncmp(buf, str, len) == 0  buf[len] == '\0') {
+		if (
+#ifdef ENABLE_WILDCARD_MATCH
+		strncmp(buf, *, 2) == 0 ||
+#endif
+		(strncmp(buf, str, len) == 0  buf[len] == '\0')) {
 			p++;
 			keylen = 0;
 			for (q = p; *q != '\0'  *q != '\n'; q++)

Index: src/crypto/dist/ipsec-tools/src/racoon/racoon.conf.5
diff -u src/crypto/dist/ipsec-tools/src/racoon/racoon.conf.5:1.66 src/crypto/dist/ipsec-tools/src/racoon/racoon.conf.5:1.67
--- src/crypto/dist/ipsec-tools/src/racoon/racoon.conf.5:1.66	Fri Nov 30 03:19:01 2012
+++ src/crypto/dist/ipsec-tools/src/racoon/racoon.conf.5	Thu Jun 20 11:41:18 2013
@@ -1,4 +1,4 @@
-.\	$NetBSD: racoon.conf.5,v 1.66 2012/11/30 08:19:01 wiz Exp $
+.\	$NetBSD: racoon.conf.5,v 1.67 2013/06/20 15:41:18 christos Exp $
 .\
 .\	Id: racoon.conf.5,v 1.54 2006/08/22 18:17:17 manubsd Exp
 .\
@@ -29,7 +29,7 @@
 .\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\ SUCH DAMAGE.
 .\
-.Dd November 29, 2012
+.Dd June 17, 2013
 .Dt RACOON.CONF 5
 .Os
 .\
@@ -1468,6 +1468,32 @@ Note that the file must be owned by the 
 .Xr racoon 8
 .Pq usually the privileged user ,
 and must not be accessible by others.
+.Pp
+If configured with
+.Dv ENABLE_WILDCARD_MATCH ,
+this implementation allows a wildcard key
+.Dq * .
+This is allowed for the special case of a single user connecting to
+a gateway using an iPhone.
+On an iPhone, L2TP over IPSEC only supports
+main mode with pre-shared keys (no certificates).
+Unfortunately racoon
+only supports pre-shared-key lookup by address when identity protection
+is used, and since the iPhone does not have a specific IP address, we
+don't know what key to put in the pre-shared key file. 
+.Pp
+Sharing the connection with more than one user is strongly discouraged
+because any user can pretend to be the server since they know the pre-shared
+key.
+This means that any user can steal the traffic of any other user, by
+spoofing DNS which is not trivial but easy.
+Even worse, the malicious user will be able to then steal any other
+authentication data (CHAP/XAUTH etc.) that another user will supply
+to the compromised server, because it assumes that phase 1 is secured
+by the pre-shared key.
+.Pp
+In summary, never use wildcard keys if your gateway is hosting more than
+one user.
 .\
 .Sh EXAMPLES
 The following shows how the remote directive should be configured.



CVS commit: src/usr.sbin/racoon

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 15:42:58 UTC 2013

Modified Files:
src/usr.sbin/racoon: Makefile

Log Message:
Enable wildcard matching in psk files. We are big kids and if we put a *
in the psk file, we mean it.


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/usr.sbin/racoon/Makefile

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

Modified files:

Index: src/usr.sbin/racoon/Makefile
diff -u src/usr.sbin/racoon/Makefile:1.25 src/usr.sbin/racoon/Makefile:1.26
--- src/usr.sbin/racoon/Makefile:1.25	Sat Jul 14 00:03:44 2012
+++ src/usr.sbin/racoon/Makefile	Thu Jun 20 11:42:58 2013
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.25 2012/07/14 04:03:44 christos Exp $
+# $NetBSD: Makefile,v 1.26 2013/06/20 15:42:58 christos Exp $
 
 WARNS?=	0	# XXX third-party program, many issues
 NOCLANGERROR=	# defined
@@ -27,7 +27,7 @@ DIST=	${NETBSDSRCDIR}/crypto/dist/ipsec-
 CPPFLAGS+= -I${DIST}/src/racoon -I${DIST}/src/racoon/missing
 CPPFLAGS+= -I${DIST}/src/libipsec
 CPPFLAGS+= -I${NETBSDSRCDIR}/lib/libipsec -I.
-CPPFLAGS+= -DIPSEC_DEBUG -DHAVE_CONFIG_H
+CPPFLAGS+= -DIPSEC_DEBUG -DHAVE_CONFIG_H -DENABLE_WILDCARD_MATCH
 CPPFLAGS+= -DADMINPORTDIR=\/var/run\
 CPPFLAGS+= -DSYSCONFDIR=\/etc/racoon\
 



CVS commit: src/lib/libc/arch/arm/gen

2013-06-20 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Thu Jun 20 17:53:01 UTC 2013

Modified Files:
src/lib/libc/arch/arm/gen: Makefile.inc

Log Message:
Fix compile error.


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/lib/libc/arch/arm/gen/Makefile.inc

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

Modified files:

Index: src/lib/libc/arch/arm/gen/Makefile.inc
diff -u src/lib/libc/arch/arm/gen/Makefile.inc:1.23 src/lib/libc/arch/arm/gen/Makefile.inc:1.24
--- src/lib/libc/arch/arm/gen/Makefile.inc:1.23	Thu Jun 20 07:18:40 2013
+++ src/lib/libc/arch/arm/gen/Makefile.inc	Thu Jun 20 17:53:01 2013
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.23 2013/06/20 07:18:40 matt Exp $
+# $NetBSD: Makefile.inc,v 1.24 2013/06/20 17:53:01 msaitoh Exp $
 
 SRCS+=	alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divide.S divsi3.S \
 	fabs.c flt_rounds.c udivsi3.S
@@ -15,7 +15,7 @@ SRCS+=	signbitf_ieee754.c signbitd_ieee7
 SRCS+=	__aeabi_fcmpun.c __aeabi_dcmpun.c
 SRCS+=	__aeabi_idiv0.c __aeabi_ldiv0.c
 .else
-SRCS+=	modsi3.s umodsi3.S
+SRCS+=	modsi3.S umodsi3.S
 .endif
 
 SRCS+=	nanf.c



CVS commit: src/dist/dhcp

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 18:39:16 UTC 2013

Removed Files:
src/dist/dhcp: ANONCVS CHANGES COPYRIGHT LICENSE Makefile Makefile.conf
Makefile.dist README RELNOTES configure site.conf
src/dist/dhcp/client: Makefile.dist clparse.c dhclient-script.8
dhclient.8 dhclient.c dhclient.conf dhclient.conf.5
dhclient.leases.5
src/dist/dhcp/client/scripts: bsdos freebsd linux netbsd nextstep
openbsd solaris
src/dist/dhcp/common: Makefile.dist alloc.c bpf.c comapi.c conflex.c
ctrace.c dhcp-eval.5 dhcp-options.5 discover.c dispatch.c dlpi.c
dns.c ethernet.c execute.c fddi.c icmp.c inet.c lpf.c memory.c
nit.c options.c packet.c parse.c print.c raw.c resolv.c socket.c
tables.c tr.c tree.c upf.c
src/dist/dhcp/contrib: 3.0b1-lease-convert dhcp.spec sethostname.sh
solaris.init
src/dist/dhcp/contrib/ms2isc: Registry.pm ms2isc.pl readme.txt
src/dist/dhcp/dhcpctl: Makefile.dist callback.c cltest.c dhcpctl.3
dhcpctl.c dhcpctl.h omshell.1 omshell.c remote.c
src/dist/dhcp/doc: IANA-arp-parameters api+protocol
draft-ietf-dhc-authentication-14.txt draft-ietf-dhc-dhcp-dns-12.txt
draft-ietf-dhc-failover-07.txt rfc1542.txt rfc2131.txt rfc2132.txt
rfc2485.txt rfc2489.txt rfc951.txt
src/dist/dhcp/doc/ja_JP.eucJP: dhclient-script.8 dhclient.8
dhclient.conf.5 dhclient.leases.5 dhcp-eval.5 dhcp-options.5
src/dist/dhcp/dst: Makefile.dist base64.c dst_api.c dst_internal.h
dst_support.c hmac_link.c md5.h md5_dgst.c md5_locl.h prandom.c
src/dist/dhcp/includes: cdefs.h ctrace.h dhcp.h dhcpd.h dhctoken.h
failover.h inet.h osdep.h site.h statement.h tree.h version.h
src/dist/dhcp/includes/arpa: nameser.h nameser_compat.h
src/dist/dhcp/includes/cf: aix.h alphaosf.h bsdos.h cygwin32.h
freebsd.h hpux.h irix.h linux.h netbsd.h nextstep.h openbsd.h qnx.h
rhapsody.h sample.h sco.h sunos4.h sunos5-5.h ultrix.h
src/dist/dhcp/includes/isc-dhcp: boolean.h dst.h int.h lang.h list.h
result.h types.h
src/dist/dhcp/includes/minires: minires.h res_update.h resolv.h
src/dist/dhcp/includes/netinet: if_ether.h ip.h ip_icmp.h udp.h
src/dist/dhcp/includes/omapip: alloc.h buffer.h convert.h hash.h
omapip.h omapip_p.h trace.h trace_mr.h
src/dist/dhcp/minires: Makefile.dist ns_date.c ns_name.c ns_parse.c
ns_samedomain.c ns_sign.c ns_verify.c res_comp.c res_findzonecut.c
res_init.c res_mkquery.c res_mkupdate.c res_query.c res_send.c
res_sendsigned.c res_update.c
src/dist/dhcp/omapip: Makefile.dist alloc.c array.c auth.c buffer.c
connection.c convert.c dispatch.c errwarn.c generic.c handle.c
hash.c inet_addr.c iscprint.c listener.c message.c mrtrace.c
omapi.3 protocol.c result.c support.c test.c toisc.c trace.c
src/dist/dhcp/relay: Makefile.dist dhcrelay.8 dhcrelay.c
src/dist/dhcp/server: Makefile.dist bootp.c class.c confpars.c db.c
ddns.c dhcp.c dhcpd.8 dhcpd.c dhcpd.conf dhcpd.conf.5
dhcpd.leases.5 failover.c mdb.c omapi.c salloc.c stables.c
src/dist/dhcp/tests/failover: dhcp-1.cf dhcp-2.cf new-failover

Log Message:
buy ancient code


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r0 src/dist/dhcp/ANONCVS src/dist/dhcp/CHANGES \
src/dist/dhcp/LICENSE src/dist/dhcp/site.conf
cvs rdiff -u -r1.2 -r0 src/dist/dhcp/COPYRIGHT
cvs rdiff -u -r1.3 -r0 src/dist/dhcp/Makefile src/dist/dhcp/Makefile.dist \
src/dist/dhcp/configure
cvs rdiff -u -r1.4 -r0 src/dist/dhcp/Makefile.conf src/dist/dhcp/README \
src/dist/dhcp/RELNOTES
cvs rdiff -u -r1.3 -r0 src/dist/dhcp/client/Makefile.dist
cvs rdiff -u -r1.10 -r0 src/dist/dhcp/client/clparse.c
cvs rdiff -u -r1.5 -r0 src/dist/dhcp/client/dhclient-script.8
cvs rdiff -u -r1.9 -r0 src/dist/dhcp/client/dhclient.8 \
src/dist/dhcp/client/dhclient.conf.5
cvs rdiff -u -r1.22 -r0 src/dist/dhcp/client/dhclient.c
cvs rdiff -u -r1.1.1.1 -r0 src/dist/dhcp/client/dhclient.conf
cvs rdiff -u -r1.6 -r0 src/dist/dhcp/client/dhclient.leases.5
cvs rdiff -u -r1.1.1.1 -r0 src/dist/dhcp/client/scripts/bsdos \
src/dist/dhcp/client/scripts/netbsd src/dist/dhcp/client/scripts/nextstep \
src/dist/dhcp/client/scripts/openbsd src/dist/dhcp/client/scripts/solaris
cvs rdiff -u -r1.4 -r0 src/dist/dhcp/client/scripts/freebsd
cvs rdiff -u -r1.3 -r0 src/dist/dhcp/client/scripts/linux
cvs rdiff -u -r1.3 -r0 src/dist/dhcp/common/Makefile.dist \
src/dist/dhcp/common/ctrace.c src/dist/dhcp/common/dispatch.c \
src/dist/dhcp/common/dlpi.c src/dist/dhcp/common/ethernet.c \
src/dist/dhcp/common/lpf.c src/dist/dhcp/common/nit.c \
src/dist/dhcp/common/tr.c src/dist/dhcp/common/upf.c

CVS commit: src/usr.sbin/dhcp

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 18:41:27 UTC 2013

Removed Files:
src/usr.sbin/dhcp: Makefile Makefile.inc
src/usr.sbin/dhcp/client: Makefile
src/usr.sbin/dhcp/clientscript: Makefile dhclient-script
src/usr.sbin/dhcp/common: Makefile
src/usr.sbin/dhcp/dhcpctl: Makefile
src/usr.sbin/dhcp/dst: Makefile
src/usr.sbin/dhcp/minires: Makefile
src/usr.sbin/dhcp/omapip: Makefile
src/usr.sbin/dhcp/omshell: Makefile
src/usr.sbin/dhcp/relay: Makefile
src/usr.sbin/dhcp/server: Makefile
src/usr.sbin/dhcp/share: Makefile
src/usr.sbin/dhcp/share/dhcpd: Makefile pxe.defs

Log Message:
bye build glue


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r0 src/usr.sbin/dhcp/Makefile
cvs rdiff -u -r1.27 -r0 src/usr.sbin/dhcp/Makefile.inc
cvs rdiff -u -r1.15 -r0 src/usr.sbin/dhcp/client/Makefile
cvs rdiff -u -r1.4 -r0 src/usr.sbin/dhcp/clientscript/Makefile
cvs rdiff -u -r1.13 -r0 src/usr.sbin/dhcp/clientscript/dhclient-script
cvs rdiff -u -r1.27 -r0 src/usr.sbin/dhcp/common/Makefile
cvs rdiff -u -r1.6 -r0 src/usr.sbin/dhcp/dhcpctl/Makefile
cvs rdiff -u -r1.8 -r0 src/usr.sbin/dhcp/dst/Makefile
cvs rdiff -u -r1.9 -r0 src/usr.sbin/dhcp/minires/Makefile
cvs rdiff -u -r1.9 -r0 src/usr.sbin/dhcp/omapip/Makefile
cvs rdiff -u -r1.4 -r0 src/usr.sbin/dhcp/omshell/Makefile
cvs rdiff -u -r1.3 -r0 src/usr.sbin/dhcp/relay/Makefile
cvs rdiff -u -r1.18 -r0 src/usr.sbin/dhcp/server/Makefile
cvs rdiff -u -r1.1 -r0 src/usr.sbin/dhcp/share/Makefile
cvs rdiff -u -r1.2 -r0 src/usr.sbin/dhcp/share/dhcpd/Makefile \
src/usr.sbin/dhcp/share/dhcpd/pxe.defs

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



CVS commit: src/lib/libm

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 19:49:47 UTC 2013

Modified Files:
src/lib/libm: Makefile

Log Message:
Add missing .go and fix lint rule.


To generate a diff of this commit:
cvs rdiff -u -r1.138 -r1.139 src/lib/libm/Makefile

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

Modified files:

Index: src/lib/libm/Makefile
diff -u src/lib/libm/Makefile:1.138 src/lib/libm/Makefile:1.139
--- src/lib/libm/Makefile:1.138	Fri May 24 08:45:40 2013
+++ src/lib/libm/Makefile	Thu Jun 20 15:49:47 2013
@@ -1,4 +1,4 @@
-#  $NetBSD: Makefile,v 1.138 2013/05/24 12:45:40 martin Exp $
+#  $NetBSD: Makefile,v 1.139 2013/06/20 19:49:47 christos Exp $
 #
 #  @(#)Makefile 5.1beta 93/09/24
 #
@@ -57,7 +57,7 @@ COMMON_SRCS+= fenv.c
 ARCH_SRCS = e_sqrt.S e_sqrtf.S lrint.S lrintf.S s_fabsf.S s_fma.S s_fmaf.S
 .else
 .for i in e_sqrt.o e_sqrtf.o lrint.o lrintf.o s_fabsf.o s_fma.o s_fmaf.o
-${i} ${i:.o=.po} ${i:.o=.pico} ${i.o=.ln}: ${i:.o=.c}
+${i} ${i:.o=.po} ${i:.o=.pico} ${i:.o=.go} ${i:.o=.ln}: ${i:.o=.c}
 .endfor
 .endif
 .elif (${MACHINE_ARCH} == sparc)



CVS commit: src/lib/libutil

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 20:42:30 UTC 2013

Modified Files:
src/lib/libutil: Makefile login_cap.3

Log Message:
document login_getpwclass(3)


To generate a diff of this commit:
cvs rdiff -u -r1.74 -r1.75 src/lib/libutil/Makefile
cvs rdiff -u -r1.18 -r1.19 src/lib/libutil/login_cap.3

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

Modified files:

Index: src/lib/libutil/Makefile
diff -u src/lib/libutil/Makefile:1.74 src/lib/libutil/Makefile:1.75
--- src/lib/libutil/Makefile:1.74	Thu May  2 03:17:09 2013
+++ src/lib/libutil/Makefile	Thu Jun 20 16:42:30 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.74 2013/05/02 07:17:09 matt Exp $
+#	$NetBSD: Makefile,v 1.75 2013/06/20 20:42:30 christos Exp $
 #	@(#)Makefile	8.1 (Berkeley) 6/4/93
 
 USE_SHLIBDIR=	yes
@@ -51,6 +51,7 @@ MLINKS+=login_cap.3 login_getcapnum.3
 MLINKS+=login_cap.3 login_getcapsize.3
 MLINKS+=login_cap.3 login_getcapstr.3
 MLINKS+=login_cap.3 login_getcaptime.3
+MLINKS+=login_cap.3 login_getpwclass.3
 MLINKS+=login_cap.3 login_close.3
 MLINKS+=login_cap.3 setclasscontext.3
 MLINKS+=login_cap.3 setusercontext.3

Index: src/lib/libutil/login_cap.3
diff -u src/lib/libutil/login_cap.3:1.18 src/lib/libutil/login_cap.3:1.19
--- src/lib/libutil/login_cap.3:1.18	Wed May  5 18:05:31 2010
+++ src/lib/libutil/login_cap.3	Thu Jun 20 16:42:30 2013
@@ -1,4 +1,4 @@
-.\ $NetBSD: login_cap.3,v 1.18 2010/05/05 22:05:31 wiz Exp $
+.\ $NetBSD: login_cap.3,v 1.19 2013/06/20 20:42:30 christos Exp $
 .\
 .\ Copyright (c) 1996,1997 Berkeley Software Design, Inc. All rights reserved.
 .\
@@ -32,7 +32,7 @@
 .\
 .\ BSDI login_cap.3,v 1.4 1997/11/07 16:22:27 jch Exp
 .\
-.Dd October 6, 2007
+.Dd June 20, 2013
 .Dt LOGIN_CAP 3
 .Os
 .Sh NAME
@@ -42,6 +42,7 @@
 .Nm login_getcapsize ,
 .Nm login_getcapstr ,
 .Nm login_getcaptime ,
+.Nm login_getpwclass ,
 .Nm login_close ,
 .Nm setclasscontext ,
 .Nm setusercontext
@@ -63,6 +64,8 @@
 .Fn login_getcapstr login_cap_t *lc const char *cap char *def char *err
 .Ft quad_t
 .Fn login_getcaptime login_cap_t *lc const char *cap quad_t def quad_t err
+.Ft login_cap_t *
+.Fn login_getpwclass struct passwd *pwd
 .Ft void
 .Fn login_close login_cap_t *lc
 .Ft int
@@ -96,6 +99,14 @@ structure is no longer needed, it should
 .Fn login_close
 function.
 .Pp
+The
+.Fn login_getpwclass
+function is equivalent to:
+login_getclass(
+.Fa pwd
+? pwd-pw_class :
+.Dv NULL ).
+.Pp
 Once
 .Ar lc
 has been returned by



CVS commit: src/distrib/sets/lists/comp

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 20:43:33 UTC 2013

Modified Files:
src/distrib/sets/lists/comp: mi

Log Message:
add login_getpwclass


To generate a diff of this commit:
cvs rdiff -u -r1.1824 -r1.1825 src/distrib/sets/lists/comp/mi

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

Modified files:

Index: src/distrib/sets/lists/comp/mi
diff -u src/distrib/sets/lists/comp/mi:1.1824 src/distrib/sets/lists/comp/mi:1.1825
--- src/distrib/sets/lists/comp/mi:1.1824	Mon Jun 17 08:35:02 2013
+++ src/distrib/sets/lists/comp/mi	Thu Jun 20 16:43:33 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: mi,v 1.1824 2013/06/17 12:35:02 tsutsui Exp $
+#	$NetBSD: mi,v 1.1825 2013/06/20 20:43:33 christos Exp $
 #
 # Note: don't delete entries from here - mark them as obsolete instead.
 #
@@ -6956,6 +6956,7 @@
 ./usr/share/man/cat3/login_getcapstr.0		comp-c-catman		.cat
 ./usr/share/man/cat3/login_getcaptime.0		comp-c-catman		.cat
 ./usr/share/man/cat3/login_getclass.0		comp-c-catman		.cat
+./usr/share/man/cat3/login_getpwclass.0		comp-c-catman		.cat
 ./usr/share/man/cat3/login_tty.0		comp-c-catman		.cat
 ./usr/share/man/cat3/loginx.0			comp-c-catman		.cat
 ./usr/share/man/cat3/logout.0			comp-c-catman		.cat
@@ -13458,6 +13459,7 @@
 ./usr/share/man/html3/login_getcapstr.html	comp-c-htmlman		html
 ./usr/share/man/html3/login_getcaptime.html	comp-c-htmlman		html
 ./usr/share/man/html3/login_getclass.html	comp-c-htmlman		html
+./usr/share/man/html3/login_getpwclass.html	comp-c-htmlman		html
 ./usr/share/man/html3/login_tty.html		comp-c-htmlman		html
 ./usr/share/man/html3/loginx.html		comp-c-htmlman		html
 ./usr/share/man/html3/logout.html		comp-c-htmlman		html
@@ -19944,6 +19946,7 @@
 ./usr/share/man/man3/login_getcapstr.3		comp-c-man		.man
 ./usr/share/man/man3/login_getcaptime.3		comp-c-man		.man
 ./usr/share/man/man3/login_getclass.3		comp-c-man		.man
+./usr/share/man/man3/login_getpwclass.3		comp-c-man		.man
 ./usr/share/man/man3/login_tty.3		comp-c-man		.man
 ./usr/share/man/man3/loginx.3			comp-c-man		.man
 ./usr/share/man/man3/logout.3			comp-c-man		.man



CVS commit: src/usr.bin/su

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 20:54:02 UTC 2013

Modified Files:
src/usr.bin/su: su_pam.c

Log Message:
- don't re-use the va list twice, leads to coredumps.
- introduce and use a safe version of pam_strerror(3) that does not return
   NULL


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/usr.bin/su/su_pam.c

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

Modified files:

Index: src/usr.bin/su/su_pam.c
diff -u src/usr.bin/su/su_pam.c:1.17 src/usr.bin/su/su_pam.c:1.18
--- src/usr.bin/su/su_pam.c:1.17	Wed Mar 14 22:02:23 2012
+++ src/usr.bin/su/su_pam.c	Thu Jun 20 16:54:02 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: su_pam.c,v 1.17 2012/03/15 02:02:23 joerg Exp $	*/
+/*	$NetBSD: su_pam.c,v 1.18 2013/06/20 20:54:02 christos Exp $	*/
 
 /*
  * Copyright (c) 1988 The Regents of the University of California.
@@ -39,7 +39,7 @@ __COPYRIGHT(@(#) Copyright (c) 1988\
 #if 0
 static char sccsid[] = @(#)su.c	8.3 (Berkeley) 4/2/94;*/
 #else
-__RCSID($NetBSD: su_pam.c,v 1.17 2012/03/15 02:02:23 joerg Exp $);
+__RCSID($NetBSD: su_pam.c,v 1.18 2013/06/20 20:54:02 christos Exp $);
 #endif
 #endif /* not lint */
 
@@ -83,6 +83,18 @@ static const struct pam_conv pamc = { o
 
 static void logit(const char *, ...) __printflike(1, 2);
 
+static const char *
+safe_pam_strerror(pam_handle_t *pamh, int pam_err) {
+	const char *msg;
+
+	if ((msg = pam_strerror(pamh, pam_err)) != NULL)
+		return msg;
+
+	static char buf[1024];
+	snprintf(buf, sizeof(buf), Unknown pam error %d, pam_err);
+	return buf;
+}
+
 int
 main(int argc, char **argv)
 {
@@ -215,7 +227,7 @@ main(int argc, char **argv)
 			PAM_END(pam_start);
 		/* Things went really bad... */
 		syslog(LOG_ERR, pam_start failed: %s,
-		pam_strerror(pamh, pam_err));
+		safe_pam_strerror(pamh, pam_err));
 		errx(EXIT_FAILURE, pam_start failed);
 	}
 
@@ -239,9 +251,9 @@ main(int argc, char **argv)
 	 */
 	if ((pam_err = pam_authenticate(pamh, 0)) != PAM_SUCCESS) {
 		syslog(LOG_WARNING, BAD SU %s to %s%s: %s,
-		username, user, ontty(), pam_strerror(pamh, pam_err));
+		username, user, ontty(), safe_pam_strerror(pamh, pam_err));
 		(void)pam_end(pamh, pam_err);
-		errx(EXIT_FAILURE, Sorry: %s, pam_strerror(pamh, pam_err));
+		errx(EXIT_FAILURE, Sorry: %s, safe_pam_strerror(pamh, pam_err));
 	}
 
 	/*
@@ -267,7 +279,7 @@ main(int argc, char **argv)
 	pam_err = pam_get_item(pamh, PAM_USER, newuser);
 	if (pam_err != PAM_SUCCESS) {
 		syslog(LOG_WARNING,
-		pam_get_item(PAM_USER): %s, pam_strerror(pamh, pam_err));
+		pam_get_item(PAM_USER): %s, safe_pam_strerror(pamh, pam_err));
 	} else {
 		user = (char *)__UNCONST(newuser);
 		if (getpwnam_r(user, pwres, pwbuf, sizeof(pwbuf), pwd) != 0 ||
@@ -423,11 +435,11 @@ out:
 			pam_err = pam_setcred(pamh, PAM_DELETE_CRED);
 			if (pam_err != PAM_SUCCESS)
 logit(pam_setcred: %s,
-pam_strerror(pamh, pam_err));
+safe_pam_strerror(pamh, pam_err));
 			pam_err = pam_close_session(pamh, 0);
 			if (pam_err != PAM_SUCCESS)
 logit(pam_close_session: %s,
-pam_strerror(pamh, pam_err));
+safe_pam_strerror(pamh, pam_err));
 			(void)pam_end(pamh, pam_err);
 			exit(WEXITSTATUS(status));
 			break;
@@ -543,7 +555,7 @@ out:
 	(void)execv(shell, np);
 	err(EXIT_FAILURE, %s, shell);
 done:
-	logit(%s: %s, func, pam_strerror(pamh, pam_err));
+	logit(%s: %s, func, safe_pam_strerror(pamh, pam_err));
 	(void)pam_end(pamh, pam_err);
 	return EXIT_FAILURE;
 }
@@ -555,6 +567,8 @@ logit(const char *fmt, ...)
 
 	va_start(ap, fmt);
 	vwarnx(fmt, ap);
+	va_end(ap);
+	va_start(ap, fmt);
 	vsyslog(LOG_ERR, fmt, ap);
 	va_end(ap);
 }



CVS commit: src/lib/libpam/modules

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 20:54:52 UTC 2013

Modified Files:
src/lib/libpam/modules/pam_nologin: pam_nologin.c
src/lib/libpam/modules/pam_unix: pam_unix.c

Log Message:
use login_getpwclass() everywhere for consistency.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libpam/modules/pam_nologin/pam_nologin.c
cvs rdiff -u -r1.14 -r1.15 src/lib/libpam/modules/pam_unix/pam_unix.c

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

Modified files:

Index: src/lib/libpam/modules/pam_nologin/pam_nologin.c
diff -u src/lib/libpam/modules/pam_nologin/pam_nologin.c:1.8 src/lib/libpam/modules/pam_nologin/pam_nologin.c:1.9
--- src/lib/libpam/modules/pam_nologin/pam_nologin.c:1.8	Sun Jan 17 18:17:08 2010
+++ src/lib/libpam/modules/pam_nologin/pam_nologin.c	Thu Jun 20 16:54:52 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: pam_nologin.c,v 1.8 2010/01/17 23:17:08 wiz Exp $	*/
+/*	$NetBSD: pam_nologin.c,v 1.9 2013/06/20 20:54:52 christos Exp $	*/
 
 /*-
  * Copyright 2001 Mark R V Murray
@@ -40,7 +40,7 @@
 #ifdef __FreeBSD__
 __FBSDID($FreeBSD: src/lib/libpam/modules/pam_nologin/pam_nologin.c,v 1.10 2002/04/12 22:27:21 des Exp $);
 #else
-__RCSID($NetBSD: pam_nologin.c,v 1.8 2010/01/17 23:17:08 wiz Exp $);
+__RCSID($NetBSD: pam_nologin.c,v 1.9 2013/06/20 20:54:52 christos Exp $);
 #endif
 
 
@@ -100,7 +100,7 @@ pam_sm_authenticate(pam_handle_t *pamh, 
 			rootlogin = 1;
 	}
 
-	lc = login_getclass(pwd-pw_class);
+	lc = login_getpwclass(pwd);
 	ignorenologin = login_getcapbool(lc, ignorenologin, rootlogin);
 	nologin = login_getcapstr(lc, nologin, nologin_def, nologin_def);
 	login_close(lc);

Index: src/lib/libpam/modules/pam_unix/pam_unix.c
diff -u src/lib/libpam/modules/pam_unix/pam_unix.c:1.14 src/lib/libpam/modules/pam_unix/pam_unix.c:1.15
--- src/lib/libpam/modules/pam_unix/pam_unix.c:1.14	Wed Nov 18 12:06:23 2009
+++ src/lib/libpam/modules/pam_unix/pam_unix.c	Thu Jun 20 16:54:52 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: pam_unix.c,v 1.14 2009/11/18 17:06:23 drochner Exp $	*/
+/*	$NetBSD: pam_unix.c,v 1.15 2013/06/20 20:54:52 christos Exp $	*/
 
 /*-
  * Copyright 1998 Juniper Networks, Inc.
@@ -40,7 +40,7 @@
 #ifdef __FreeBSD__
 __FBSDID($FreeBSD: src/lib/libpam/modules/pam_unix/pam_unix.c,v 1.49 2004/02/10 10:13:21 des Exp $);
 #else
-__RCSID($NetBSD: pam_unix.c,v 1.14 2009/11/18 17:06:23 drochner Exp $);
+__RCSID($NetBSD: pam_unix.c,v 1.15 2013/06/20 20:54:52 christos Exp $);
 #endif
 
 
@@ -111,12 +111,11 @@ pam_sm_authenticate(pam_handle_t *pamh, 
 return (PAM_SUCCESS);
 			realpw = *;
 		}
-		lc = login_getpwclass(pwd);
 	} else {
 		PAM_LOG(Doing dummy authentication);
 		realpw = *;
-		lc = login_getclass(NULL);
 	}
+	lc = login_getpwclass(pwd);
 	retval = pam_get_authtok(pamh, PAM_AUTHTOK, pass, NULL);
 	login_close(lc);
 	if (retval != PAM_SUCCESS)
@@ -543,7 +542,7 @@ pam_sm_chauthtok(pam_handle_t *pamh, int
 
 		PAM_LOG(UPDATE round);
 
-		if ((lc = login_getclass(pwd-pw_class)) != NULL) {
+		if ((lc = login_getpwclass(pwd)) != NULL) {
 			min_pw_len = (int) login_getcapnum(lc,
 			minpasswordlen, (quad_t)0, (quad_t)0);
 			pw_expiry = (int) login_getcapnum(lc,



CVS commit: src/sys

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jun 20 23:21:42 UTC 2013

Modified Files:
src/sys/kern: init_main.c kern_rndq.c
src/sys/sys: rnd.h

Log Message:
Initialize the rnd softint explicitly via a function late in main. Avoids
LOCKDEBUG panic since softint_establish() was called via wdcintr - wddone
from an interrupt context and tried to acquire a non-spin mutex.


To generate a diff of this commit:
cvs rdiff -u -r1.449 -r1.450 src/sys/kern/init_main.c
cvs rdiff -u -r1.12 -r1.13 src/sys/kern/kern_rndq.c
cvs rdiff -u -r1.36 -r1.37 src/sys/sys/rnd.h

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

Modified files:

Index: src/sys/kern/init_main.c
diff -u src/sys/kern/init_main.c:1.449 src/sys/kern/init_main.c:1.450
--- src/sys/kern/init_main.c:1.449	Wed Jun  5 15:01:26 2013
+++ src/sys/kern/init_main.c	Thu Jun 20 19:21:41 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: init_main.c,v 1.449 2013/06/05 19:01:26 christos Exp $	*/
+/*	$NetBSD: init_main.c,v 1.450 2013/06/20 23:21:41 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -97,7 +97,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: init_main.c,v 1.449 2013/06/05 19:01:26 christos Exp $);
+__KERNEL_RCSID(0, $NetBSD: init_main.c,v 1.450 2013/06/20 23:21:41 christos Exp $);
 
 #include opt_ddb.h
 #include opt_ipsec.h
@@ -565,6 +565,8 @@ main(void)
 	if_attachdomain();
 	splx(s);
 
+	rnd_init_softint();
+
 #ifdef GPROF
 	/* Initialize kernel profiling. */
 	kmstartup();

Index: src/sys/kern/kern_rndq.c
diff -u src/sys/kern/kern_rndq.c:1.12 src/sys/kern/kern_rndq.c:1.13
--- src/sys/kern/kern_rndq.c:1.12	Wed Jun 12 21:37:03 2013
+++ src/sys/kern/kern_rndq.c	Thu Jun 20 19:21:41 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_rndq.c,v 1.12 2013/06/13 01:37:03 tls Exp $	*/
+/*	$NetBSD: kern_rndq.c,v 1.13 2013/06/20 23:21:41 christos Exp $	*/
 
 /*-
  * Copyright (c) 1997-2013 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: kern_rndq.c,v 1.12 2013/06/13 01:37:03 tls Exp $);
+__KERNEL_RCSID(0, $NetBSD: kern_rndq.c,v 1.13 2013/06/20 23:21:41 christos Exp $);
 
 #include sys/param.h
 #include sys/ioctl.h
@@ -174,6 +174,12 @@ LIST_HEAD(, krndsource)	rnd_sources;
 
 rndsave_t		*boot_rsp;
 
+void
+rnd_init_softint(void) {
+	rnd_process = softint_establish(SOFTINT_SERIAL|SOFTINT_MPSAFE,
+	rnd_intr, NULL);
+}
+
 /*
  * Generate a 32-bit counter.  This should be more machine dependent,
  * using cycle counters and the like when possible.
@@ -207,20 +213,12 @@ rnd_schedule_softint(void *softint)
 	kpreempt_enable();
 }
 
-/*
- * XXX repulsive: we can't initialize our softints in rnd_init
- * XXX (too early) so we wrap the points where we'd schedule them, thus.
- */
 static inline void
 rnd_schedule_process(void)
 {
 	if (__predict_true(rnd_process)) {
 		rnd_schedule_softint(rnd_process);
 		return;
-	}
-	if (!cold) {
-		rnd_process = softint_establish(SOFTINT_SERIAL|SOFTINT_MPSAFE,
-		rnd_intr, NULL);
 	} 
 	rnd_process_events();
 }

Index: src/sys/sys/rnd.h
diff -u src/sys/sys/rnd.h:1.36 src/sys/sys/rnd.h:1.37
--- src/sys/sys/rnd.h:1.36	Wed Jun 12 20:55:01 2013
+++ src/sys/sys/rnd.h	Thu Jun 20 19:21:42 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rnd.h,v 1.36 2013/06/13 00:55:01 tls Exp $	*/
+/*	$NetBSD: rnd.h,v 1.37 2013/06/20 23:21:42 christos Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -176,6 +176,7 @@ uint32_t	rndpool_get_poolsize(void);
 void		rndpool_add_data(rndpool_t *, void *, uint32_t, uint32_t);
 uint32_t	rndpool_extract_data(rndpool_t *, void *, uint32_t, uint32_t);
 void		rnd_init(void);
+void		rnd_init_softint(void);
 void		_rnd_add_uint32(krndsource_t *, uint32_t);
 void		rnd_add_data(krndsource_t *, const void *const, uint32_t,
 		uint32_t);



CVS commit: src/external/bsd/libelf/dist

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Fri Jun 21 01:36:31 UTC 2013

Modified Files:
src/external/bsd/libelf/dist: libelf_data.c

Log Message:
Instead of hard-coding each processor-specific section type, handle all
processor-specific section types the same way.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/bsd/libelf/dist/libelf_data.c

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

Modified files:

Index: src/external/bsd/libelf/dist/libelf_data.c
diff -u src/external/bsd/libelf/dist/libelf_data.c:1.4 src/external/bsd/libelf/dist/libelf_data.c:1.5
--- src/external/bsd/libelf/dist/libelf_data.c:1.4	Mon Feb 22 05:48:33 2010
+++ src/external/bsd/libelf/dist/libelf_data.c	Thu Jun 20 21:36:31 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: libelf_data.c,v 1.4 2010/02/22 10:48:33 darran Exp $	*/
+/*	$NetBSD: libelf_data.c,v 1.5 2013/06/21 01:36:31 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006 Joseph Koshy
@@ -87,9 +87,9 @@ _libelf_xlate_shtype(uint32_t sht)
 	case SHT_SUNW_syminfo:
 		return (ELF_T_SYMINFO);
 #endif /* __LIBELF_HAVE_ELF_SYMINFO */
-	case SHT_AMD64_UNWIND:	/* == SHT_IA_64_UNWIND */
-		return (ELF_T_BYTE);
 	default:
+		if (sht = SHT_LOPROC  sht = SHT_HIPROC)
+			return (ELF_T_BYTE);
 		return (-1);
 	}
 }



CVS commit: src/sys/sys

2013-06-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Fri Jun 21 01:40:24 UTC 2013

Modified Files:
src/sys/sys: exec_elf.h

Log Message:
Add the ARM processor-specific sections:
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044e/IHI0044E_aaelf.pdf


To generate a diff of this commit:
cvs rdiff -u -r1.127 -r1.128 src/sys/sys/exec_elf.h

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

Modified files:

Index: src/sys/sys/exec_elf.h
diff -u src/sys/sys/exec_elf.h:1.127 src/sys/sys/exec_elf.h:1.128
--- src/sys/sys/exec_elf.h:1.127	Tue Jan 29 20:12:56 2013
+++ src/sys/sys/exec_elf.h	Thu Jun 20 21:40:24 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: exec_elf.h,v 1.127 2013/01/30 01:12:56 matt Exp $	*/
+/*	$NetBSD: exec_elf.h,v 1.128 2013/06/21 01:40:24 christos Exp $	*/
 
 /*-
  * Copyright (c) 1994 The NetBSD Foundation, Inc.
@@ -429,6 +429,13 @@ typedef struct {
 #define SHT_HIOS	 0x6fff
 #define SHT_LOPROC	 0x7000 /* Processor-specific range */
 #define SHT_AMD64_UNWIND 0x7001 /* unwind information */
+#define SHT_ARM_EXIDX	 0x7001	/* exception index table */
+#define SHT_ARM_PREEMPTMAP   0x7002 /* BPABI DLL dynamic linking 
+	 * pre-emption map */
+#define SHT_ARM_ATTRIBUTES   0x7003 /* Object file compatibility 
+	 * attributes */
+#define SHT_ARM_DEBUGOVERLAY 0x7004 /* See DBGOVL for details */
+#define SHT_ARM_OVERLAYSECTION 0x7005
 #define SHT_HIPROC	 0x7fff
 #define SHT_LOUSER	 0x8000 /* Application-specific range */
 #define SHT_HIUSER	 0x



CVS commit: src/sys/arch/amd64/include

2013-06-20 Thread Masao Uebayashi
Module Name:src
Committed By:   uebayasi
Date:   Fri Jun 21 02:47:06 UTC 2013

Modified Files:
src/sys/arch/amd64/include: asm.h

Log Message:
Add END(y) as i386/asm.h does.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/amd64/include/asm.h

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

Modified files:

Index: src/sys/arch/amd64/include/asm.h
diff -u src/sys/arch/amd64/include/asm.h:1.15 src/sys/arch/amd64/include/asm.h:1.16
--- src/sys/arch/amd64/include/asm.h:1.15	Mon Jun 11 15:18:05 2012
+++ src/sys/arch/amd64/include/asm.h	Fri Jun 21 02:47:06 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: asm.h,v 1.15 2012/06/11 15:18:05 chs Exp $	*/
+/*	$NetBSD: asm.h,v 1.16 2013/06/21 02:47:06 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -104,6 +104,7 @@
 #define	ALTENTRY(x)	NENTRY(x)
 #define	ASENTRY(y)	_ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
 #define	LABEL(y)	_LABEL(_C_LABEL(y))
+#define	END(y)		.size y, . - y
 
 #define	ASMSTR		.asciz
 



CVS commit: src/sys/dev/mii

2013-06-20 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Fri Jun 21 04:25:51 UTC 2013

Modified Files:
src/sys/dev/mii: brgphy.c

Log Message:
 Call brgpy specific autonego function in MII_TICK. Before this commit,
only MII_MEDIACHG calls brgphy_mii_phy_auto() and MII_TICK calls MI
mii_phy_auto(). That was not intended.


To generate a diff of this commit:
cvs rdiff -u -r1.66 -r1.67 src/sys/dev/mii/brgphy.c

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

Modified files:

Index: src/sys/dev/mii/brgphy.c
diff -u src/sys/dev/mii/brgphy.c:1.66 src/sys/dev/mii/brgphy.c:1.67
--- src/sys/dev/mii/brgphy.c:1.66	Sun Jun 16 06:29:08 2013
+++ src/sys/dev/mii/brgphy.c	Fri Jun 21 04:25:51 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: brgphy.c,v 1.66 2013/06/16 06:29:08 msaitoh Exp $	*/
+/*	$NetBSD: brgphy.c,v 1.67 2013/06/21 04:25:51 msaitoh Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: brgphy.c,v 1.66 2013/06/16 06:29:08 msaitoh Exp $);
+__KERNEL_RCSID(0, $NetBSD: brgphy.c,v 1.67 2013/06/21 04:25:51 msaitoh Exp $);
 
 #include sys/param.h
 #include sys/systm.h
@@ -411,8 +411,47 @@ setit:
 		if (IFM_INST(ife-ifm_media) != sc-mii_inst)
 			return (0);
 
-		if (mii_phy_tick(sc) == EJUSTRETURN)
-			return (0);
+		/*
+		 * Is the interface even up?
+		 */
+		if ((mii-mii_ifp-if_flags  IFF_UP) == 0)
+			return 0;
+
+		/*
+		 * Only used for autonegotiation.
+		 */
+		if ((IFM_SUBTYPE(ife-ifm_media) != IFM_AUTO) 
+		(IFM_SUBTYPE(ife-ifm_media) != IFM_1000_T)) {
+			sc-mii_ticks = 0;
+			break;
+		}
+
+		/*
+		 * Check for link.
+		 * Read the status register twice; BMSR_LINK is latch-low.
+		 */
+		reg = PHY_READ(sc, MII_BMSR) | PHY_READ(sc, MII_BMSR);
+		if (reg  BMSR_LINK) {
+			sc-mii_ticks = 0;
+			break;
+		}
+
+		/*
+		 * mii_ticks == 0 means it's the first tick after changing the
+		 * media or the link became down since the last tick
+		 * (see above), so break to update the status.
+		 */
+		if (sc-mii_ticks++ == 0)
+			break;
+
+		/*
+		 * Only retry autonegotiation every mii_anegticks seconds.
+		 */
+		KASSERT(sc-mii_anegticks != 0);
+		if (sc-mii_ticks = sc-mii_anegticks)
+			break;
+
+		brgphy_mii_phy_auto(sc);
 		break;
 
 	case MII_DOWN:



CVS commit: src/sys/lib/libkern/arch/arm

2013-06-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Jun 21 05:06:24 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
Add back {,u}modsi3 for libkern since if we are building standalone tools
we might be using the old ABI and might need them.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/lib/libkern/arch/arm/Makefile.inc

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

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.17 src/sys/lib/libkern/arch/arm/Makefile.inc:1.18
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.17	Thu Jun 20 07:29:50 2013
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Fri Jun 21 05:06:24 2013
@@ -1,12 +1,12 @@
-#	$NetBSD: Makefile.inc,v 1.17 2013/06/20 07:29:50 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.18 2013/06/21 05:06:24 matt Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
 SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S
 SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S
+SRCS+=	modsi3.S umodsi3.S
 
 .if !empty(MACHINE_ARCH:Mearm*)
 SRCS+=	__aeabi_ldivmod.S __aeabi_uldivmod.S __aeabi_lcmp.c __aeabi_ulcmp.c
 .else
-SRCS+=	 modsi3.S umodsi3.S
 .endif