CVS commit: src/external/public-domain/sqlite/dist

2012-12-17 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Dec 17 16:26:38 UTC 2012

Modified Files:
src/external/public-domain/sqlite/dist: sqlite3.1

Log Message:
now that I know how to escape a period, nothing can stop me :-)


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/public-domain/sqlite/dist/sqlite3.1

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

Modified files:

Index: src/external/public-domain/sqlite/dist/sqlite3.1
diff -u src/external/public-domain/sqlite/dist/sqlite3.1:1.3 src/external/public-domain/sqlite/dist/sqlite3.1:1.4
--- src/external/public-domain/sqlite/dist/sqlite3.1:1.3	Sun Dec 16 18:37:34 2012
+++ src/external/public-domain/sqlite/dist/sqlite3.1	Mon Dec 17 11:26:38 2012
@@ -1,4 +1,4 @@
-.\	$NetBSD: sqlite3.1,v 1.3 2012/12/16 23:37:34 wiz Exp $
+.\	$NetBSD: sqlite3.1,v 1.4 2012/12/17 16:26:38 christos Exp $
 .Dd December 16, 2012
 .Dt SQLITE3 1
 .Os
@@ -67,7 +67,7 @@ used to control the output format, exami
 database files, or perform administrative operations upon the
 attached databases (such as rebuilding indices).
 Meta-commands are always prefixed with a dot
-.Dq \. .
+.Dq \. .
 .Pp
 A list of available meta-commands can be viewed at any time by issuing
 the '.help' command.



CVS commit: src/sys/arch/arm/arm32

2012-12-17 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Dec 17 17:10:48 UTC 2012

Modified Files:
src/sys/arch/arm/arm32: genassym.cf

Log Message:
Add CPU_VFP_ID and PCB_VFP_FPEXC


To generate a diff of this commit:
cvs rdiff -u -r1.59 -r1.60 src/sys/arch/arm/arm32/genassym.cf

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/arm/arm32/genassym.cf
diff -u src/sys/arch/arm/arm32/genassym.cf:1.59 src/sys/arch/arm/arm32/genassym.cf:1.60
--- src/sys/arch/arm/arm32/genassym.cf:1.59	Mon Dec 10 06:50:28 2012
+++ src/sys/arch/arm/arm32/genassym.cf	Mon Dec 17 17:10:48 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.59 2012/12/10 06:50:28 matt Exp $
+#	$NetBSD: genassym.cf,v 1.60 2012/12/17 17:10:48 matt Exp $
 
 # Copyright (c) 1982, 1990 The Regents of the University of California.
 # All rights reserved.
@@ -140,6 +140,7 @@ define	PCB_LR			offsetof(struct pcb, pcb
 define	PCB_PC			offsetof(struct pcb, pcb_un.un_32.pcb32_pc)
 define	PCB_USER_PID_RW		offsetof(struct pcb, pcb_un.un_32.pcb32_user_pid_rw)
 define	PCB_ONFAULT		offsetof(struct pcb, pcb_onfault)
+define	PCB_VFP_FPEXC		offsetof(struct pcb, pcb_vfp.vfp_fpexc)
 
 define	PCB_SIZE		sizeof(struct pcb)
 
@@ -192,6 +193,9 @@ define	CI_IDLELWP		offsetof(struct cpu_i
 define	CI_CC_NTRAP		offsetof(struct cpu_info, ci_data.cpu_ntrap)
 define	CI_CC_NINTR		offsetof(struct cpu_info, ci_data.cpu_nintr)
 define	CI_CC_NSOFT		offsetof(struct cpu_info, ci_data.cpu_nsoft)
+ifdef FPU_VFP
+define	CI_VFP_ID		offsetof(struct cpu_info, ci_vfp_id)
+endif
 
 define	VFP_FPEXC_EN		VFP_FPEXC_EN
 



CVS commit: src/sys/dev/isa

2012-12-17 Thread Marc Balmer
Module Name:src
Committed By:   mbalmer
Date:   Mon Dec 17 17:44:18 UTC 2012

Modified Files:
src/sys/dev/isa: ptcd.c

Log Message:
Fix the CVS Id marker.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/isa/ptcd.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/isa/ptcd.c
diff -u src/sys/dev/isa/ptcd.c:1.1 src/sys/dev/isa/ptcd.c:1.2
--- src/sys/dev/isa/ptcd.c:1.1	Sun Dec 16 13:09:20 2012
+++ src/sys/dev/isa/ptcd.c	Mon Dec 17 17:44:18 2012
@@ -1,4 +1,4 @@
-/* $NetBSD */
+/* $NetBSD: ptcd.c,v 1.2 2012/12/17 17:44:18 mbalmer Exp $ */
 
 /*
  * Copyright (c) 2012 Marc Balmer m...@msys.ch



CVS commit: src/sys/arch/arm/arm32

2012-12-17 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Dec 17 17:45:01 UTC 2012

Modified Files:
src/sys/arch/arm/arm32: cpuswitch.S

Log Message:
Make sure to load the FPEXC context on context switch (if there a VFP) so
that the VFP state will be what the LWP expects.  (This isn't needed on
PPC or MIPS since their FPU/VEC state is reflected in the PSL/CPO_STATUS
which is handled automatically.)


To generate a diff of this commit:
cvs rdiff -u -r1.75 -r1.76 src/sys/arch/arm/arm32/cpuswitch.S

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/arm/arm32/cpuswitch.S
diff -u src/sys/arch/arm/arm32/cpuswitch.S:1.75 src/sys/arch/arm/arm32/cpuswitch.S:1.76
--- src/sys/arch/arm/arm32/cpuswitch.S:1.75	Mon Dec 10 01:37:30 2012
+++ src/sys/arch/arm/arm32/cpuswitch.S	Mon Dec 17 17:45:01 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpuswitch.S,v 1.75 2012/12/10 01:37:30 matt Exp $	*/
+/*	$NetBSD: cpuswitch.S,v 1.76 2012/12/17 17:45:01 matt Exp $	*/
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -89,7 +89,7 @@
 #include machine/asm.h
 #include machine/cpu.h
 
-	RCSID($NetBSD: cpuswitch.S,v 1.75 2012/12/10 01:37:30 matt Exp $)
+	RCSID($NetBSD: cpuswitch.S,v 1.76 2012/12/17 17:45:01 matt Exp $)
 
 /* LINTSTUB: include sys/param.h */
 	
@@ -141,26 +141,26 @@ ENTRY(cpu_switchto)
 	mov	r4, r0
 
 #ifdef TPIDRPRW_IS_CURCPU
-	GET_CURCPU(r7)
+	GET_CURCPU(r3)
 #elif defined(TPIDRPRW_IS_CURLWP)
 	mcr	p15, 0, r0, c13, c0, 4		/* get old lwp (r4 maybe 0) */
-	ldr	r7, [r0, #(L_CPU)]		/* get cpu from old lwp */
+	ldr	r3, [r0, #(L_CPU)]		/* get cpu from old lwp */
 #elif !defined(MULTIPROCESSOR) 
-	ldr	r7, [r6, #L_CPU]		/* get cpu from new lwp */
+	ldr	r3, [r6, #L_CPU]		/* get cpu from new lwp */
 #else
 #error curcpu() method not defined
 #endif
 
+	/* rem: r3 = curcpu() */
 	/* rem: r4 = old lwp */
 	/* rem: r6 = new lwp */
-	/* rem: r7 = curcpu() */
 	
 #ifndef __HAVE_UNNESTED_INTRS
 	IRQdisable
 #endif
 
 #ifdef MULTIPROCESSOR
-	str	r7, [r6, #(L_CPU)]
+	str	r3, [r6, #(L_CPU)]
 #else
 	/* l-l_cpu initialized in fork1() for single-processor */
 #endif
@@ -169,7 +169,7 @@ ENTRY(cpu_switchto)
 	mcr	p15, 0, r6, c13, c0, 4		/* set current lwp */
 #endif
 	/* We have a new curlwp now so make a note it */
-	str	r6, [r7, #(CI_CURLWP)]
+	str	r6, [r3, #(CI_CURLWP)]
 
 	/* Get the new pcb */
 	ldr	r7, [r6, #(L_PCB)]
@@ -179,6 +179,7 @@ ENTRY(cpu_switchto)
 	IRQenable
 #endif
 
+	/* rem: r3 = curlwp */
 	/* rem: r4 = old lwp */
 	/* rem: r6 = new lwp */
 	/* rem: r7 = new pcb */
@@ -193,6 +194,7 @@ ENTRY(cpu_switchto)
 	teq	r4, #0
 	beq	.Ldo_switch
 
+	/* rem: r3 = curlwp */
 	/* rem: r4 = old lwp */
 	/* rem: r6 = new lwp */
 	/* rem: r7 = new pcb */
@@ -204,7 +206,7 @@ ENTRY(cpu_switchto)
 	ldr	r5, [r4, #(L_PCB)]
 
 	/* Save all the registers in the old lwp's pcb */
-#if defined(__XSCALE__) || defined(_ARM_ARCH_6)
+#if defined(_ARM_ARCH_DWORD_OK)
 	strd	r8, [r5, #(PCB_R8)]
 	strd	r10, [r5, #(PCB_R10)]
 	strd	r12, [r5, #(PCB_R12)]
@@ -225,6 +227,7 @@ ENTRY(cpu_switchto)
 	 * them for the new process.
 	 */
 
+	/* rem: r3 = curlwp */
 	/* rem: r4 = old lwp */
 	/* rem: r5 = old pcb */
 	/* rem: r6 = new lwp */
@@ -234,6 +237,7 @@ ENTRY(cpu_switchto)
 	/* Restore saved context */
 
 .Ldo_switch:
+	/* rem: r3 = curlwp */
 	/* rem: r4 = old lwp */
 	/* rem: r6 = new lwp */
 	/* rem: r7 = new pcb */
@@ -249,6 +253,16 @@ ENTRY(cpu_switchto)
 	mcr	p15, 0, r0, c13, c0, 3
 #endif
 
+#ifdef FPU_VFP
+	/*
+	 * If we have a VFP, we need to load FPEXC.
+	 */
+	ldr	r0, [r3, #(CI_VFP_ID)]
+	cmp	r0, #0
+	ldrne	r0, [r7, #(PCB_VFP_FPEXC)]
+	mcrne	p10, 7, r0, c8, c0, 0
+#endif
+
 	ldr	r5, [r6, #(L_PROC)]	/* fetch the proc for below */
 
 	/* Restore all the saved registers */
@@ -258,18 +272,18 @@ ENTRY(cpu_switchto)
 	ldr	r10, [r7, #(PCB_R10)]
 	ldr	r11, [r7, #(PCB_R11)]
 	ldr	r12, [r7, #(PCB_R12)]
-	ldr	r13, [r7, #(PCB_KSP)]
-#elif defined(_ARM_ARCH_6)
+	ldr	r13, [r7, #(PCB_KSP)]	/* sp */
+#elif defined(_ARM_ARCH_DWORD_OK)
 	ldrd	r8, [r7, #(PCB_R8)]
 	ldrd	r10, [r7, #(PCB_R10)]
-	ldrd	r12, [r7, #(PCB_R12)]
+	ldrd	r12, [r7, #(PCB_R12)]	/* sp */
 #else
 	add	r0, r7, #PCB_R8
 	ldmia	r0, {r8-r13}
 #endif
 
 	/* Record the old lwp for pmap_activate()'s benefit */
-	ldr	r1, .Lpmap_previous_active_lwp
+	ldr	r1, .Lpmap_previous_active_lwp		/* XXXSMP */
 	str	r4, [r1]
 
 	/* rem: r4 = old lwp */



CVS commit: src/sys/dev/isa

2012-12-17 Thread Marc Balmer
Module Name:src
Committed By:   mbalmer
Date:   Mon Dec 17 17:46:27 UTC 2012

Modified Files:
src/sys/dev/isa: ptcd.c

Log Message:
No need to include machine/pio.h now that inb() and outb() are no longer used.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/isa/ptcd.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/isa/ptcd.c
diff -u src/sys/dev/isa/ptcd.c:1.2 src/sys/dev/isa/ptcd.c:1.3
--- src/sys/dev/isa/ptcd.c:1.2	Mon Dec 17 17:44:18 2012
+++ src/sys/dev/isa/ptcd.c	Mon Dec 17 17:46:27 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: ptcd.c,v 1.2 2012/12/17 17:44:18 mbalmer Exp $ */
+/* $NetBSD: ptcd.c,v 1.3 2012/12/17 17:46:27 mbalmer Exp $ */
 
 /*
  * Copyright (c) 2012 Marc Balmer m...@msys.ch
@@ -36,8 +36,6 @@
 #include sys/kernel.h
 #include sys/bus.h
 
-#include machine/pio.h
-
 #include dev/gpio/gpiovar.h
 
 #include dev/isa/isareg.h



CVS commit: [netbsd-6-0] src/distrib/notes/common

2012-12-17 Thread Jeff Rizzo
Module Name:src
Committed By:   riz
Date:   Mon Dec 17 17:52:07 UTC 2012

Modified Files:
src/distrib/notes/common [netbsd-6-0]: main

Log Message:
Update release notes for 6.0.1.


To generate a diff of this commit:
cvs rdiff -u -r1.484.2.4 -r1.484.2.4.2.1 src/distrib/notes/common/main

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

Modified files:

Index: src/distrib/notes/common/main
diff -u src/distrib/notes/common/main:1.484.2.4 src/distrib/notes/common/main:1.484.2.4.2.1
--- src/distrib/notes/common/main:1.484.2.4	Fri Oct 12 22:06:59 2012
+++ src/distrib/notes/common/main	Mon Dec 17 17:52:06 2012
@@ -1,4 +1,4 @@
-.\	$NetBSD: main,v 1.484.2.4 2012/10/12 22:06:59 riz Exp $
+.\	$NetBSD: main,v 1.484.2.4.2.1 2012/12/17 17:52:06 riz Exp $
 .\
 .\ Copyright (c) 1999-2012 The NetBSD Foundation, Inc.
 .\ All rights reserved.
@@ -458,429 +458,51 @@ possible, it's likely that
 wouldn't exist.
 .
 .if \n[FOR_RELEASE] \{\
-.Ss Changes Between The NetBSD 5.0 and 6.0 Releases
+.Ss Changes Between The NetBSD 6.0 and 6.0.1 Releases
 .Pp
-The
-.Nx
-\*V release
-provides numerous significant functional enhancements, including
-support for many new devices, integration of hundreds of bug fixes,
-new and updated kernel subsystems, and many user-land enhancements.
-The result of these improvements is a stable operating system fit for
-production use that rivals most commercially available systems.
-.Pp
-It is impossible to completely summarize the massive development that
-went into the
-.Nx
-\*V release.
 The complete list of changes can be found in the
-CHANGES:
-.Lk http://ftp.NetBSD.org/pub/NetBSD/NetBSD-6.0/CHANGES
-and
-CHANGES-6.0:
-.Lk http://ftp.NetBSD.org/pub/NetBSD/NetBSD-6.0/CHANGES-6.0
-files in the top level directory of the NetBSD 6.0 release tree.
-.Pp
-Some highlights include:
-.Ss2 General kernel
+CHANGES-6.0.1:
+.Lk http://ftp.NetBSD.org/pub/NetBSD/NetBSD-6.0.1/CHANGES-6.0.1
+file in the top level directory of the NetBSD 6.0.1 release tree. An abbreviated list is as follows:
+.Ss2 Security Fixes
 .(bullet
-.Dv time_t
-and
-.Dv dev_t
-are now 64 bits.
-.It
-Much-improved compat_linux support for running Linux binaries.
-.It
-Added a generic producer/consumer queue.
-.It
-Added a new ptree ( Patricia / RADIX tree ) implementation.
-.It
-Removed
-.Dv MALLOC()
-and
-.Dv FREE()
-macros.
-.It
-Compute
-.Dv kern.ipc.shmmaxpages
-on startup based on physical memory. Can be overridden via
-.Xr sysctl 8 .
-.It
-.Xr kmem_alloc 9 :
-Add more extensive runtime debugging facilities.
-.It
-File descriptor access performance improvements were made.
-.It
-.Xr cpu_reboot 9 :
-tear down stacks of devices and file systems in an orderly fashion during shutdown.
-.It
-Added 'show vmem' and 'show all vmems' commands to
-.Xr ddb 4 .
-.It
-Added high-priority
-.Xr xcall 9
-support.
-.It
-Added direct select()/poll() support.
-.It
-Add PCU (Per-CPU Unit) interface to unify synchronization of per CPU context, like lazy FPU management.
-.It
-Added new system calls
-.Xr pipe2 2 ,
-.Xr paccept 2 ,
-.Xr kqueue1 2 ,
-flags SOCK_CLOEXEC/SOCK_NONBLOCK to
-.Xr socket 2 ,
-.Xr socketpair 2 ,
-F_DUPFD_CLOEXEC to
-.Xr fcntl 2 ,
-and a MSG_CMSG_CLOEXEC to
-.Xr recvfrom 2
-to be able to set close-on-exec to all newly created file descriptors.
-.It
-Major improvements to
-.Xr uvm_map 9 ,
-.Xr uvm_km 9 ,
-.Xr vmem 9 ,
-and
-.Xr kmem 9
-layers.
-.It
-Removed
-.Xr ltsleep 9
-and wakeup_one(9).
-.It
-Rewrote most of the entropy-gathering and entropy-distributing code, separating the
-.Xr rnd 4
-pseudodevice from the bitstream generation code
-.Xr cprng 9
-and entropy-pool code
-.Xr rnd 9 .
+expat: Fix CVE-2012-1147, CVE-2012-1148 and CVE-2012-0876.
 .It
-.Xr kmem_alloc 9 :
-add more extensive runtime debugging facilities.
-.It
-Kernel support for
-.Xr posix_spawn 3 .
+BIND: Address CVE-2012-5688: Named could die on specific queries with dns64 enabled.
 .bullet)
 .
-.Ss2 Networking
+.Ss2 General kernel
 .(bullet
-.Xr ip 4 :
-added IP_RECVTTL option to let
-.Xr recvmsg 2
-return the TTL of the received datagram.
-.It
-.Xr ip 4 :
-added IP_MINTTL option to discard packets with a TTL lower than the option value.
+posix_spawn(): Fix processes with attributes.
 .It
-Added SOCK_SEQPACKET for local sockets.
+Resolve races between vget() and vrele() resulting in vget() returning dead vnodes.
 .It
-Added
-.Dv net.inet.icmp.bmcastecho
-.Xr sysctl 7 ,
-to disable ICMP replies to the braodcast address.
+Prevent crash when unsupported fd's are used with kevent.
 .It
-Make TCP window size autoscaling the default.
-.It
-Derive the mbuf cluster (NMBCLUSTERS) at boot time from the available memory. The default can be raised by changing
-.Dv kern.mbuf.nmbclusters
-.
-.It
-Added NPF, the NetBSD Packet Filter.
-.It
-.Xr udp 4 :
-implement RFC6056 port selection algorithms.
 .bullet)
 .
-.Ss2 File systems
+.Ss2 Networking
 .(bullet
-Added CHFS, a file system for flash devices.
-.It

CVS commit: src

2012-12-17 Thread Alan Barrett
Module Name:src
Committed By:   apb
Date:   Mon Dec 17 18:17:27 UTC 2012

Modified Files:
src/etc: rc.subr
src/share/man/man8: rc.subr.8

Log Message:
Add shell implementations of basename and dirname to rc.subr.  They
are supposed to mimic basename(1) and dirname(1), except that they
are usable before /usr/bin is mounted.


To generate a diff of this commit:
cvs rdiff -u -r1.91 -r1.92 src/etc/rc.subr
cvs rdiff -u -r1.29 -r1.30 src/share/man/man8/rc.subr.8

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

Modified files:

Index: src/etc/rc.subr
diff -u src/etc/rc.subr:1.91 src/etc/rc.subr:1.92
--- src/etc/rc.subr:1.91	Sat Apr  7 17:28:44 2012
+++ src/etc/rc.subr	Mon Dec 17 18:17:27 2012
@@ -1,4 +1,4 @@
-# $NetBSD: rc.subr,v 1.91 2012/04/07 17:28:44 christos Exp $
+# $NetBSD: rc.subr,v 1.92 2012/12/17 18:17:27 apb Exp $
 #
 # Copyright (c) 1997-2011 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -1256,6 +1256,34 @@ collapse_backslash_newline()
 	done
 }
 
+# Shell implementations of basename and dirname, usable before
+# the /usr file system is mounted.
+#
+basename()
+{
+	local file=$1
+	local suffix=$2
+	local base
+
+	base=${file##*/}		# remove up to and including last '/'
+	base=${base%${suffix}}	# remove suffix, if any
+	command printf %s\n ${base}
+}
+
+dirname()
+{
+	local file=$1
+	local dir
+
+	case $file in
+	/*/*)	dir=${file%/*} ;;	# common case: absolute path
+	/*)	dir=/ ;;		# special case: name in root dir
+	*/*)	dir=${file%/*} ;;	# common case: relative path with '/'
+	*)	dir=. ;;		# special case: name without '/'
+	esac
+	command printf %s\n ${dir}
+}
+
 # Override the normal echo and printf commands, so that
 # partial lines printed by rc.d scripts appear immediately,
 # instead of being buffered by rc(8)'s post-processor.

Index: src/share/man/man8/rc.subr.8
diff -u src/share/man/man8/rc.subr.8:1.29 src/share/man/man8/rc.subr.8:1.30
--- src/share/man/man8/rc.subr.8:1.29	Thu Aug 11 22:52:46 2011
+++ src/share/man/man8/rc.subr.8	Mon Dec 17 18:17:27 2012
@@ -1,4 +1,4 @@
-.\ 	$NetBSD: rc.subr.8,v 1.29 2011/08/11 22:52:46 apb Exp $
+.\ 	$NetBSD: rc.subr.8,v 1.30 2012/12/17 18:17:27 apb Exp $
 .\
 .\ Copyright (c) 2002-2011 The NetBSD Foundation, Inc.
 .\ All rights reserved.
@@ -40,6 +40,8 @@
 .It
 .Ic backup_file Ar action Ar file Ar current Ar backup
 .It
+.Ic basename Ar file Op Ar suffix
+.It
 .Ic checkyesno Ar var
 .It
 .Ic check_pidfile Ar pidfile Ar procname Op Ar interpreter
@@ -48,6 +50,8 @@
 .It
 .Ic collapse_backslash_newline
 .It
+.Ic dirname Ar file
+.It
 .Ic err Ar exitval Ar message
 .It
 .Ic load_rc_config Ar command
@@ -157,6 +161,12 @@ otherwise
 is moved to
 .Ar backup .
 .El
+.Ic basename Ar file Op Ar suffix
+Just like
+.Xr basename 1 ,
+except implemented using shell built-in commands, and usable before the 
+.Pa /usr/bin
+direcory is available.
 .It Ic checkyesno Ar var
 Return 0 if
 .Ar var
@@ -214,6 +224,12 @@ is handled as per
 Copy input to output, collapsing
 .Ao backslash Ac Ns Ao newline Ac
 to nothing, but leaving other backslashes alone.
+.Ic dirname Ar file
+Just like
+.Xr dirname 1 ,
+except implemented using shell built-in commands, and usable before the 
+.Pa /usr/bin
+direcory is available.
 .It Ic err Ar exitval Ar message
 Display an error message to
 .Em stderr ,



CVS commit: src/etc/rc.d

2012-12-17 Thread Alan Barrett
Module Name:src
Committed By:   apb
Date:   Mon Dec 17 18:20:50 UTC 2012

Modified Files:
src/etc/rc.d: random_seed

Log Message:
Reinstate the dirname invocations that were recently removed from
rc.d/random_seed.  The new dirname shell function provided by rc.subr
will be used, so it should work before the /usr file system is mounted.

This should fix a problem in which the fs_safe shell function failed when
passed the name of a file that did not exist.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/etc/rc.d/random_seed

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

Modified files:

Index: src/etc/rc.d/random_seed
diff -u src/etc/rc.d/random_seed:1.4 src/etc/rc.d/random_seed:1.5
--- src/etc/rc.d/random_seed:1.4	Fri Dec 14 18:42:25 2012
+++ src/etc/rc.d/random_seed	Mon Dec 17 18:20:50 2012
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: random_seed,v 1.4 2012/12/14 18:42:25 apb Exp $
+# $NetBSD: random_seed,v 1.5 2012/12/17 18:20:50 apb Exp $
 #
 
 # PROVIDE: random_seed
@@ -59,7 +59,7 @@ random_load()
 {
 	if [ -f $random_file ]; then
 
-		if ! fs_safe ${random_file}; then
+		if ! fs_safe $(dirname ${random_file}); then
 			return 1
 		fi
 
@@ -90,7 +90,7 @@ random_save()
 
 	rm -Pf ${random_file}
 
-	if ! fs_safe ${random_file}; then
+	if ! fs_safe $(dirname ${random_file}); then
 		return 1
 	fi
 



CVS commit: [netbsd-6-0] src

2012-12-17 Thread Jeff Rizzo
Module Name:src
Committed By:   riz
Date:   Mon Dec 17 18:49:09 UTC 2012

Modified Files:
src/doc [netbsd-6-0]: CHANGES-6.0.1 LAST_MINUTE README.files
src/sys/sys [netbsd-6-0]: param.h

Log Message:
Welcome to 6.0.1!


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.37 -r1.1.2.38 src/doc/CHANGES-6.0.1
cvs rdiff -u -r1.2.40.1 -r1.2.40.1.4.1 src/doc/LAST_MINUTE
cvs rdiff -u -r1.4.20.1 -r1.4.20.1.2.1 src/doc/README.files
cvs rdiff -u -r1.408.2.6.2.1 -r1.408.2.6.2.2 src/sys/sys/param.h

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-6.0.1
diff -u src/doc/CHANGES-6.0.1:1.1.2.37 src/doc/CHANGES-6.0.1:1.1.2.38
--- src/doc/CHANGES-6.0.1:1.1.2.37	Mon Dec 17 00:33:00 2012
+++ src/doc/CHANGES-6.0.1	Mon Dec 17 18:49:08 2012
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-6.0.1,v 1.1.2.37 2012/12/17 00:33:00 riz Exp $
+# $NetBSD: CHANGES-6.0.1,v 1.1.2.38 2012/12/17 18:49:08 riz Exp $
 
 A complete list of changes from the NetBSD 6.0 release to the NetBSD 6.0.1
 release:
@@ -292,3 +292,11 @@ sys/compat/netbsd32/netbsd32_fs.c		1.64
 	Fix inverted error check.
 	[matt, ticket #756]
 
+distrib/notes/common/main			patched by hand
+doc/LAST_MINUTE	patched by hand
+doc/README.filespatched by hand
+sys/sys/param.h	patched by hand
+
+	Welcome to 6.0.1!
+	[riz]
+

Index: src/doc/LAST_MINUTE
diff -u src/doc/LAST_MINUTE:1.2.40.1 src/doc/LAST_MINUTE:1.2.40.1.4.1
--- src/doc/LAST_MINUTE:1.2.40.1	Wed Feb 15 23:46:47 2012
+++ src/doc/LAST_MINUTE	Mon Dec 17 18:49:09 2012
@@ -1,6 +1,6 @@
-#	$NetBSD: LAST_MINUTE,v 1.2.40.1 2012/02/15 23:46:47 riz Exp $
+#	$NetBSD: LAST_MINUTE,v 1.2.40.1.4.1 2012/12/17 18:49:09 riz Exp $
 
-This file contains important information on the NetBSD 6.0 release that
+This file contains important information on the NetBSD 6.0.1 release that
 did not make it into the main documentation.
 
 [all]

Index: src/doc/README.files
diff -u src/doc/README.files:1.4.20.1 src/doc/README.files:1.4.20.1.2.1
--- src/doc/README.files:1.4.20.1	Fri Sep  7 22:13:38 2012
+++ src/doc/README.files	Mon Dec 17 18:49:09 2012
@@ -1,8 +1,13 @@
-#	$NetBSD: README.files,v 1.4.20.1 2012/09/07 22:13:38 bouyer Exp $
+#	$NetBSD: README.files,v 1.4.20.1.2.1 2012/12/17 18:49:09 riz Exp $
 
 What's in this directory:
 
-CHANGES		Changes between the XXX.XXX-1 and XXX.XXX releases.
+CHANGES-6.0.1	Changes between the 6.0 and 6.0.1 releases.
+
+CHANGES-6.0	Changes between the creation of the netbsd-6 branch and
+		the 6.0 release.
+
+CHANGES		Changes between the 5.0 and 6.0 releases.
 
 CHANGES.prev	Changes in previous NetBSD releases.
 

Index: src/sys/sys/param.h
diff -u src/sys/sys/param.h:1.408.2.6.2.1 src/sys/sys/param.h:1.408.2.6.2.2
--- src/sys/sys/param.h:1.408.2.6.2.1	Wed Oct 17 22:44:46 2012
+++ src/sys/sys/param.h	Mon Dec 17 18:49:08 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: param.h,v 1.408.2.6.2.1 2012/10/17 22:44:46 riz Exp $	*/
+/*	$NetBSD: param.h,v 1.408.2.6.2.2 2012/12/17 18:49:08 riz Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -63,7 +63,7 @@
  *	2.99.9		(299000900)
  */
 
-#define	__NetBSD_Version__	6	/* NetBSD 6.0.0_PATCH */
+#define	__NetBSD_Version__	60001	/* NetBSD 6.0.1 */
 
 #define __NetBSD_Prereq__(M,m,p) (M) * 1) + \
 (m) * 100) + (p) * 100) = __NetBSD_Version__)



CVS commit: src/lib/libc/gen

2012-12-17 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Dec 18 01:39:56 UTC 2012

Modified Files:
src/lib/libc/gen: glob.c

Log Message:
Do as the man page says, and for GLOB_NOCHECK return the original pattern,
not a modified version with the backslash characters removed.


To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/lib/libc/gen/glob.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/libc/gen/glob.c
diff -u src/lib/libc/gen/glob.c:1.31 src/lib/libc/gen/glob.c:1.32
--- src/lib/libc/gen/glob.c:1.31	Sun Oct 30 17:53:43 2011
+++ src/lib/libc/gen/glob.c	Mon Dec 17 20:39:56 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: glob.c,v 1.31 2011/10/30 21:53:43 christos Exp $	*/
+/*	$NetBSD: glob.c,v 1.32 2012/12/18 01:39:56 christos Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
 #if 0
 static char sccsid[] = @(#)glob.c	8.3 (Berkeley) 10/13/93;
 #else
-__RCSID($NetBSD: glob.c,v 1.31 2011/10/30 21:53:43 christos Exp $);
+__RCSID($NetBSD: glob.c,v 1.32 2012/12/18 01:39:56 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -163,7 +163,7 @@ static int	 g_lstat(Char *, __gl_stat_t 
 static DIR	*g_opendir(Char *, glob_t *);
 static Char	*g_strchr(const Char *, int);
 static int	 g_stat(Char *, __gl_stat_t *, glob_t *);
-static int	 glob0(const Char *, glob_t *, struct glob_limit *);
+static int	 glob0(const char *, const Char *, glob_t *, struct glob_limit *);
 static int	 glob1(Char *, glob_t *, struct glob_limit *);
 static int	 glob2(Char *, Char *, Char *, const Char *, glob_t *,
 struct glob_limit *);
@@ -171,8 +171,8 @@ static int	 glob3(Char *, Char *, Char *
 const Char *, glob_t *, struct glob_limit *);
 static int	 globextend(const Char *, glob_t *, struct glob_limit *);
 static const Char *globtilde(const Char *, Char *, size_t, glob_t *);
-static int	 globexp1(const Char *, glob_t *, struct glob_limit *);
-static int	 globexp2(const Char *, const Char *, glob_t *, int *,
+static int	 globexp1(const char *, const Char *, glob_t *, struct glob_limit *);
+static int	 globexp2(const char *, const Char *, const Char *, glob_t *, int *,
 struct glob_limit *);
 static int	 match(const Char *, const Char *, const Char *);
 #ifdef DEBUG
@@ -222,9 +222,9 @@ glob(const char * __restrict pattern, in
 	*bufnext = EOS;
 
 	if (flags  GLOB_BRACE)
-	return globexp1(patbuf, pglob, limit);
+	return globexp1(pattern, patbuf, pglob, limit);
 	else
-	return glob0(patbuf, pglob, limit);
+	return glob0(pattern, patbuf, pglob, limit);
 }
 
 /*
@@ -233,7 +233,7 @@ glob(const char * __restrict pattern, in
  * characters
  */
 static int
-globexp1(const Char *pattern, glob_t *pglob, struct glob_limit *limit)
+globexp1(const char *orig, const Char *pattern, glob_t *pglob, struct glob_limit *limit)
 {
 	const Char* ptr = pattern;
 	int rv;
@@ -249,13 +249,13 @@ globexp1(const Char *pattern, glob_t *pg
 
 	/* Protect a single {}, for find(1), like csh */
 	if (pattern[0] == LBRACE  pattern[1] == RBRACE  pattern[2] == EOS)
-		return glob0(pattern, pglob, limit);
+		return glob0(orig, pattern, pglob, limit);
 
 	while ((ptr = (const Char *) g_strchr(ptr, LBRACE)) != NULL)
-		if (!globexp2(ptr, pattern, pglob, rv, limit))
+		if (!globexp2(orig, ptr, pattern, pglob, rv, limit))
 			return rv;
 
-	return glob0(pattern, pglob, limit);
+	return glob0(orig, pattern, pglob, limit);
 }
 
 
@@ -265,7 +265,7 @@ globexp1(const Char *pattern, glob_t *pg
  * If it fails then it tries to glob the rest of the pattern and returns.
  */
 static int
-globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, int *rv,
+globexp2(const char *orig, const Char *ptr, const Char *pattern, glob_t *pglob, int *rv,
 struct glob_limit *limit)
 {
 	int i;
@@ -311,7 +311,7 @@ globexp2(const Char *ptr, const Char *pa
 		 * we use `pattern', not `patbuf' here so that that
 		 * unbalanced braces are passed to the match
 		 */
-		*rv = glob0(pattern, pglob, limit);
+		*rv = glob0(orig, pattern, pglob, limit);
 		return 0;
 	}
 
@@ -358,7 +358,7 @@ globexp2(const Char *ptr, const Char *pa
 #ifdef DEBUG
 qprintf(globexp2, patbuf);
 #endif
-*rv = globexp1(patbuf, pglob, limit);
+*rv = globexp1(orig, patbuf, pglob, limit);
 
 /* move after the comma, to the next string */
 pl = pm + 1;
@@ -471,7 +471,7 @@ globtilde(const Char *pattern, Char *pat
  * to find no matches.
  */
 static int
-glob0(const Char *pattern, glob_t *pglob, struct glob_limit *limit)
+glob0(const char *orig, const Char *pattern, glob_t *pglob, struct glob_limit *limit)
 {
 	const Char *qpatnext;
 	int c, error;
@@ -556,7 +556,17 @@ glob0(const Char *pattern, glob_t *pglob
 		if ((pglob-gl_flags  GLOB_NOCHECK) ||
 		((pglob-gl_flags  (GLOB_NOMAGIC|GLOB_MAGCHAR))
 		 == GLOB_NOMAGIC)) {
-			return globextend(pattern, pglob, limit);
+			const u_char *patnext;
+			Char *bufend;
+			bufend = patbuf 

CVS commit: src/sys/arch/arm/cortex

2012-12-17 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Dec 18 06:05:56 UTC 2012

Modified Files:
src/sys/arch/arm/cortex: cpu_in_cksum_asm_neon.S

Log Message:
Tighten up cpu_in_cksum_neon_v4hdr by 3 instructions.
Swap the doubles on a partial qword load on BE platforms.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/cortex/cpu_in_cksum_asm_neon.S

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/arm/cortex/cpu_in_cksum_asm_neon.S
diff -u src/sys/arch/arm/cortex/cpu_in_cksum_asm_neon.S:1.1 src/sys/arch/arm/cortex/cpu_in_cksum_asm_neon.S:1.2
--- src/sys/arch/arm/cortex/cpu_in_cksum_asm_neon.S:1.1	Mon Dec 17 00:44:03 2012
+++ src/sys/arch/arm/cortex/cpu_in_cksum_asm_neon.S	Tue Dec 18 06:05:56 2012
@@ -28,9 +28,8 @@
  */
 
 #include machine/asm.h
-#include assym.h
 
-RCSID($NetBSD: cpu_in_cksum_asm_neon.S,v 1.1 2012/12/17 00:44:03 matt Exp $)
+RCSID($NetBSD: cpu_in_cksum_asm_neon.S,v 1.2 2012/12/18 06:05:56 matt Exp $)
 
 /*
  * uint32_t
@@ -102,6 +101,9 @@ END(cpu_in_cksum_neon)
 partial_qword:
 	str		lr, [sp, #-8]!	/* save LR */
 	vld1.64		{d4-d5}, [ip:128]!	/* fetch data */
+#ifdef __ARMEB__
+	vswp		d5, d4		/* on BE, MSW should be in d5 */
+#endif
 	veor		q0, q0, q0	/* create a null mask */
 	movs		r0, r1, lsl #3	/* any leading bytes? */
 	blne		_C_LABEL(__neon_leading_qword_bitmask)
@@ -123,16 +125,13 @@ partial_qword:
  * uint32_t cpu_in_cksum_neon_v4hdr(void *dptr)
  */
 ENTRY(cpu_in_cksum_neon_v4hdr)
-	veor		q1, q1, q1
 	bic		ip, r0, #7
 	vld1.32		{d0-d2},[ip]	/* it must be in 24 bytes */
-	mov		r1, #0		/* now we must clear one register */
 	tst		r0, #4		/* depending on 64-bit alignment */
 	beq		1f
 	vmov		s0, s5		/* move last U32 to first U32 */
 1:	vmovl.u32	q1, d2		/* move s5 to d3 and clear s5 */
-	vmovl.u16	q2, d0		/* 4 U16 - 4 U32 */
-	vadd.u32	q3, q3, q2	/* add 4 U32 to accumulator */
+	vmovl.u16	q3, d0		/* 4 U16 - 4 U32 */
 	vmovl.u16	q2, d1		/* 4 U16 - 4 U32 */
 	vadd.u32	q3, q3, q2	/* add 4 U32 to accumulator */
 	vmovl.u16	q2, d2		/* 4 U16 - 4 U32 */



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

2012-12-17 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Dec 18 06:14:23 UTC 2012

Modified Files:
src/common/lib/libc/arch/arm/gen: neon_mask.S

Log Message:
Don't need to include assym.h
Add a missing comma.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/arch/arm/gen/neon_mask.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/neon_mask.S
diff -u src/common/lib/libc/arch/arm/gen/neon_mask.S:1.1 src/common/lib/libc/arch/arm/gen/neon_mask.S:1.2
--- src/common/lib/libc/arch/arm/gen/neon_mask.S:1.1	Mon Dec 17 00:46:14 2012
+++ src/common/lib/libc/arch/arm/gen/neon_mask.S	Tue Dec 18 06:14:23 2012
@@ -28,11 +28,10 @@
  */
 
 #include machine/asm.h
-#include assym.h
 
 #ifdef _ARM_ARCH_7
 
-RCSID($NetBSD: neon_mask.S,v 1.1 2012/12/17 00:46:14 matt Exp $)
+RCSID($NetBSD: neon_mask.S,v 1.2 2012/12/18 06:14:23 matt Exp $)
 
 /*
  * __neon_loading_qword_bitmask(size_t len);
@@ -45,7 +44,7 @@ ENTRY(__neon_leading_qword_bitmask)
 	sublt		r0, r0, #64	/* 1st dword needs MSBs cleared */
 	subge		r1, r0, #128	/* 2nd dword needs MSBs cleared */
 #else
-	rsblt		r0, r0 	#64	/* 1st dword needs LSBs cleared */
+	rsblt		r0, r0, #64	/* 1st dword needs LSBs cleared */
 	rsbge		r1, r0, #128	/* 2nd dword needs LSBs cleared */
 #endif
 	movge		r0, #0		/* 1st dword needs to left alone */



CVS commit: src/sys/arch/arm/arm32

2012-12-17 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Dec 18 06:30:19 UTC 2012

Modified Files:
src/sys/arch/arm/arm32: vm_machdep.c

Log Message:
Remove unneeded definitions.
When forking a LWP, disable the VFP in the new LWP since it isn't the LWP
that owns the VFP.


To generate a diff of this commit:
cvs rdiff -u -r1.63 -r1.64 src/sys/arch/arm/arm32/vm_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/arm/arm32/vm_machdep.c
diff -u src/sys/arch/arm/arm32/vm_machdep.c:1.63 src/sys/arch/arm/arm32/vm_machdep.c:1.64
--- src/sys/arch/arm/arm32/vm_machdep.c:1.63	Mon Dec 10 01:37:31 2012
+++ src/sys/arch/arm/arm32/vm_machdep.c	Tue Dec 18 06:30:18 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: vm_machdep.c,v 1.63 2012/12/10 01:37:31 matt Exp $	*/
+/*	$NetBSD: vm_machdep.c,v 1.64 2012/12/18 06:30:18 matt Exp $	*/
 
 /*
  * Copyright (c) 1994-1998 Mark Brinicombe.
@@ -44,7 +44,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: vm_machdep.c,v 1.63 2012/12/10 01:37:31 matt Exp $);
+__KERNEL_RCSID(0, $NetBSD: vm_machdep.c,v 1.64 2012/12/18 06:30:18 matt Exp $);
 
 #include opt_armfpe.h
 #include opt_pmap_debug.h
@@ -64,16 +64,13 @@ __KERNEL_RCSID(0, $NetBSD: vm_machdep.c
 
 #include uvm/uvm_extern.h
 
+#include arm/vfpreg.h
+
 #include machine/pcb.h
 #include machine/pmap.h
 #include machine/reg.h
 #include machine/vmparam.h
 
-extern pv_addr_t systempage;
-
-int process_read_regs(struct proc *p, struct reg *regs);
-int process_read_fpregs(struct proc *p, struct fpreg *regs);
-
 void lwp_trampoline(void);
 
 /*
@@ -114,30 +111,29 @@ void
 cpu_lwp_fork(struct lwp *l1, struct lwp *l2, void *stack, size_t stacksize,
 void (*func)(void *), void *arg)
 {
-	struct pcb *pcb1, *pcb2;
 	struct switchframe *sf;
 	vaddr_t uv;
 
-	pcb1 = lwp_getpcb(l1);
-	pcb2 = lwp_getpcb(l2);
+	const struct pcb * const pcb1 = lwp_getpcb(l1);
+	struct pcb * const pcb2 = lwp_getpcb(l2);
 
 #ifdef PMAP_DEBUG
 	if (pmap_debug_level = 0)
 		printf(cpu_lwp_fork: %p %p %p %p\n, l1, l2, curlwp, lwp0);
 #endif	/* PMAP_DEBUG */
 
-#if 0 /* XXX */
-	if (l1 == curlwp) {
-		/* Sync the PCB before we copy it. */
-		savectx(curpcb);
-	}
-#endif
-
-	l2-l_md.md_flags = l1-l_md.md_flags  MDLWP_VFPUSED;
-
 	/* Copy the pcb */
 	*pcb2 = *pcb1;
 
+#ifdef FPU_VFP
+	/*
+	 * Disable the VFP for a newly created LWP but remember if the
+	 * VFP state is valid.
+	 */
+	pcb2-pcb_vfp.vfp_fpexc = ~VFP_FPEXC_EN;
+	l2-l_md.md_flags = l1-l_md.md_flags  MDLWP_VFPUSED;
+#endif
+
 	/* 
 	 * Set up the kernel stack for the process.
 	 * Note: this stack is not in use if we are forking from p1



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

2012-12-17 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Dec 18 06:31:58 UTC 2012

Modified Files:
src/sys/arch/arm/arm: disassem.c

Log Message:
Start adding support for disassembling some NEON instructions.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/arm/disassem.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/arm/arm/disassem.c
diff -u src/sys/arch/arm/arm/disassem.c:1.19 src/sys/arch/arm/arm/disassem.c:1.20
--- src/sys/arch/arm/arm/disassem.c:1.19	Thu Feb 16 02:34:56 2012
+++ src/sys/arch/arm/arm/disassem.c	Tue Dec 18 06:31:58 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: disassem.c,v 1.19 2012/02/16 02:34:56 christos Exp $	*/
+/*	$NetBSD: disassem.c,v 1.20 2012/12/18 06:31:58 matt Exp $	*/
 
 /*
  * Copyright (c) 1996 Mark Brinicombe.
@@ -49,7 +49,7 @@
 
 #include sys/param.h
 
-__KERNEL_RCSID(0, $NetBSD: disassem.c,v 1.19 2012/02/16 02:34:56 christos Exp $);
+__KERNEL_RCSID(0, $NetBSD: disassem.c,v 1.20 2012/12/18 06:31:58 matt Exp $);
 
 #include sys/systm.h
 #include arch/arm/arm/disassem.h
@@ -71,36 +71,42 @@ __KERNEL_RCSID(0, $NetBSD: disassem.c,v
  *
  *
  * 2 - print Operand 2 of a data processing instruction
- * d - destination register (bits 12-15)
- * n - n register (bits 16-19)
- * s - s register (bits 8-11)
- * o - indirect register rn (bits 16-19) (used by swap)
- * m - m register (bits 0-3)
  * a - address operand of ldr/str instruction
- * l - register list for ldm/stm instruction
+ * b - branch address
+ * c - comment field bits(0-23)
+ * d - destination register (bits 12-15)
  * f - 1st fp operand (register) (bits 12-14)
  * g - 2nd fp operand (register) (bits 16-18)
  * h - 3rd fp operand (register/immediate) (bits 0-4)
- * b - branch address
- * t - thumb branch address (bits 24, 0-23)
  * k - breakpoint comment (bits 0-3, 8-19)
- * X - block transfer type
- * Y - block transfer type (r13 base)
- * c - comment field bits(0-23)
+ * l - register list for ldm/stm instruction
+ * m - m register (bits 0-3)
+ * n - n register (bits 16-19)
+ * o - indirect register rn (bits 16-19) (used by swap)
  * p - saved or current status register
- * F - PSR transfer fields
+ * q - neon N register (7, 19-16)
+ * s - s register (bits 8-11)
+ * t - thumb branch address (bits 24, 0-23)
+ * u - neon M register (5, 3-0)
+ * v - co-processor data transfer registers + addressing mode
+ * w - neon D register (22, 15-12)
+ * x - instruction in hex
+ * y - co-processor data processing registers
+ * z - co-processor register transfer registers
  * D - destination-is-r15 (P) flag on TST, TEQ, CMP, CMN
+ * F - PSR transfer fields
+ * I - NEON operand size
  * L - co-processor transfer size
- * S - set status flag
+ * N - quad neon operand
  * P - fp precision
  * Q - fp precision (for ldf/stf)
  * R - fp rounding
- * v - co-processor data transfer registers + addressing mode
+ * S - set status flag
+ * U - neon unsigned.
  * W - writeback flag
- * x - instruction in hex
+ * X - block transfer type
+ * Y - block transfer type (r13 base)
  * # - co-processor number
- * y - co-processor data processing registers
- * z - co-processor register transfer registers
  */
 
 struct arm32_insn {
@@ -222,6 +228,21 @@ static const struct arm32_insn arm32_i[]
 { 0x0e100090, 0x0c10, ldc,	L#v },
 { 0xfe100090, 0xfc00, stc2,	L#v },
 { 0x0e100090, 0x0c00, stc,	L#v },
+{ 0xffb00f10, 0xf2000110, vand,	Nuqw },
+{ 0xffb00f10, 0xf2100110, vbic,	Nuqw },
+{ 0xffb00f10, 0xf2200110, vorr,	Nuqw },
+{ 0xffb00f10, 0xf2300110, vorn,	Nuqw },
+{ 0xffb00f10, 0xf3000110, veor,	Nuqw },
+{ 0xffb00f10, 0xf3100110, vbsl,	Nuqw },
+{ 0xffb00f10, 0xf3200110, vbit,	Nuqw },
+{ 0xffb00f10, 0xf3300110, vbif,	Nuqw },
+{ 0xfe800f10, 0xf3000400, vshl,	SINuqw },
+{ 0xfe800f10, 0xf3000410, vqshl,	SINuqw },
+{ 0xfe800f10, 0xf3000500, vrshl,	SINuqw },
+{ 0xfe800f10, 0xf3000510, vqrshl,	SINuqw },
+{ 0xffb00f10, 0xf2000800, vadd,	INuqw },
+{ 0xffb00f10, 0xf2000810, vtst,	INuqw },
+{ 0xffb00f10, 0xf3000800, vsub,	INuqw },
 { 0x, 0x, NULL,	NULL }
 };
 
@@ -298,6 +319,8 @@ disasm(const disasm_interface_t *di, vad
 	fmt = 0;
 	matchp = 0;
 	insn = di-di_readword(loc);
+	char neonfmt = 'd';
+	char neonsign = 'u';
 
 /*	di-di_printf(loc=%08x insn=%08x : , loc, insn);*/
 
@@ -347,6 +370,11 @@ disasm(const disasm_interface_t *di, vad
 		case 'd':
 			di-di_printf(r%d, ((insn  12)  0x0f));
 			break;
+		/* u - neon destination register (bits 22, 12-15) */
+		case 'u':
+			di-di_printf(%c%d, neonfmt,
+			((insn  18)  0x10)|((insn  12)  0x0f));
+			break;
 		/* D - insert 'p' if Rd is R15 */
 		case 'D':
 			if (((insn  12)  0x0f) == 15)
@@ -356,6 +384,11 @@ disasm(const disasm_interface_t *di, vad
 		case 'n':
 			di-di_printf(r%d, ((insn  16)  0x0f));
 			break;
+		/* q - neon n register (bits 7, 16-19) */
+		case 'q':
+