Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Apr 2015 06:40:29 +0000 (UTC)
From:      Garrett Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r282055 - in user/ngie/more-tests: . bin/ed bin/expr bin/sh lib/libarchive lib/libc/gen lib/libc/nls lib/libc/regex lib/libc/rpc lib/libc/sys lib/libedit lib/msun/man sbin/atm/atmconfig...
Message-ID:  <201504270640.t3R6eTRC051320@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Mon Apr 27 06:40:28 2015
New Revision: 282055
URL: https://svnweb.freebsd.org/changeset/base/282055

Log:
  MFhead @ r282054

Added:
  user/ngie/more-tests/share/doc/usd/10.exref/
     - copied from r282054, head/share/doc/usd/10.exref/
  user/ngie/more-tests/share/doc/usd/11.vitut/
     - copied from r282054, head/share/doc/usd/11.vitut/
  user/ngie/more-tests/share/doc/usd/12.vi/
     - copied from r282054, head/share/doc/usd/12.vi/
  user/ngie/more-tests/share/doc/usd/13.viref/
     - copied from r282054, head/share/doc/usd/13.viref/
Modified:
  user/ngie/more-tests/ObsoleteFiles.inc
  user/ngie/more-tests/bin/ed/ed.1
  user/ngie/more-tests/bin/expr/expr.1
  user/ngie/more-tests/bin/sh/jobs.c
  user/ngie/more-tests/lib/libarchive/config_freebsd.h
  user/ngie/more-tests/lib/libc/gen/getutxent.3
  user/ngie/more-tests/lib/libc/gen/nice.3
  user/ngie/more-tests/lib/libc/gen/posix_spawn.3
  user/ngie/more-tests/lib/libc/gen/posix_spawn_file_actions_addopen.3
  user/ngie/more-tests/lib/libc/gen/posix_spawn_file_actions_init.3
  user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getflags.3
  user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getpgroup.3
  user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getschedparam.3
  user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getschedpolicy.3
  user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getsigdefault.3
  user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getsigmask.3
  user/ngie/more-tests/lib/libc/gen/posix_spawnattr_init.3
  user/ngie/more-tests/lib/libc/nls/catopen.3
  user/ngie/more-tests/lib/libc/regex/re_format.7
  user/ngie/more-tests/lib/libc/regex/regex.3
  user/ngie/more-tests/lib/libc/rpc/rpcbind.3
  user/ngie/more-tests/lib/libc/sys/posix_openpt.2
  user/ngie/more-tests/lib/libedit/el.c
  user/ngie/more-tests/lib/msun/man/j0.3
  user/ngie/more-tests/lib/msun/man/lgamma.3
  user/ngie/more-tests/lib/msun/man/nextafter.3
  user/ngie/more-tests/sbin/atm/atmconfig/atmconfig.8
  user/ngie/more-tests/sbin/camcontrol/camcontrol.8
  user/ngie/more-tests/sbin/ipfw/ipfw2.c
  user/ngie/more-tests/sbin/ipfw/ipfw2.h
  user/ngie/more-tests/sbin/ipfw/tables.c
  user/ngie/more-tests/share/doc/usd/Makefile
  user/ngie/more-tests/share/man/man4/smb.4
  user/ngie/more-tests/sys/amd64/vmm/vmm_instruction_emul.c
  user/ngie/more-tests/sys/arm/allwinner/std.a10
  user/ngie/more-tests/sys/arm/arm/cpufunc.c
  user/ngie/more-tests/sys/arm/arm/locore-v4.S
  user/ngie/more-tests/sys/arm/arm/locore-v6.S
  user/ngie/more-tests/sys/arm/broadcom/bcm2835/bcm2835_mbox.c
  user/ngie/more-tests/sys/arm/broadcom/bcm2835/std.bcm2836
  user/ngie/more-tests/sys/arm/conf/RK3188
  user/ngie/more-tests/sys/cddl/dev/profile/profile.c
  user/ngie/more-tests/sys/dev/cxgbe/t4_main.c
  user/ngie/more-tests/sys/dev/iicbus/pcf8563.c
  user/ngie/more-tests/sys/dev/smbus/smb.c
  user/ngie/more-tests/sys/dev/smbus/smb.h
  user/ngie/more-tests/sys/dev/smbus/smbconf.h
  user/ngie/more-tests/sys/dev/smbus/smbus.c
  user/ngie/more-tests/sys/dev/smbus/smbus.h
  user/ngie/more-tests/sys/dev/smbus/smbus_if.m
  user/ngie/more-tests/sys/dev/sound/pcm/dsp.c
  user/ngie/more-tests/sys/kern/kern_descrip.c
  user/ngie/more-tests/sys/kern/kern_thr.c
  user/ngie/more-tests/sys/net/netisr.c
  user/ngie/more-tests/sys/netinet/ip_ipsec.c
  user/ngie/more-tests/sys/netinet/libalias/libalias.3
  user/ngie/more-tests/sys/netinet/sctp_indata.c
  user/ngie/more-tests/sys/netinet6/ip6_forward.c
  user/ngie/more-tests/sys/netinet6/ip6_ipsec.c
  user/ngie/more-tests/sys/netipsec/ipsec.c
  user/ngie/more-tests/sys/netipsec/ipsec.h
  user/ngie/more-tests/sys/netipsec/ipsec_output.c
  user/ngie/more-tests/sys/netipsec/xform_ah.c
  user/ngie/more-tests/sys/netipsec/xform_esp.c
  user/ngie/more-tests/sys/netipsec/xform_ipcomp.c
  user/ngie/more-tests/sys/netpfil/ipfw/ip_fw_nat.c
  user/ngie/more-tests/sys/sys/cdefs.h
  user/ngie/more-tests/usr.bin/hexdump/display.c
  user/ngie/more-tests/usr.sbin/bluetooth/Makefile
  user/ngie/more-tests/usr.sbin/smbmsg/smbmsg.c
Directory Properties:
  user/ngie/more-tests/   (props changed)
  user/ngie/more-tests/lib/libc/   (props changed)
  user/ngie/more-tests/sbin/   (props changed)
  user/ngie/more-tests/sbin/ipfw/   (props changed)
  user/ngie/more-tests/share/   (props changed)
  user/ngie/more-tests/share/doc/usd/10.exref/exref/ex.rm   (props changed)
  user/ngie/more-tests/share/doc/usd/10.exref/summary/ex.summary   (props changed)
  user/ngie/more-tests/share/doc/usd/11.vitut/edittut.ms   (props changed)
  user/ngie/more-tests/share/doc/usd/12.vi/summary/vi.summary   (props changed)
  user/ngie/more-tests/share/doc/usd/12.vi/vi/vi.chars   (props changed)
  user/ngie/more-tests/share/doc/usd/12.vi/vi/vi.in   (props changed)
  user/ngie/more-tests/share/doc/usd/12.vi/viapwh/vi.apwh.ms   (props changed)
  user/ngie/more-tests/share/doc/usd/13.viref/ex.cmd.roff   (props changed)
  user/ngie/more-tests/share/doc/usd/13.viref/ref.so   (props changed)
  user/ngie/more-tests/share/doc/usd/13.viref/set.opt.roff   (props changed)
  user/ngie/more-tests/share/doc/usd/13.viref/vi.cmd.roff   (props changed)
  user/ngie/more-tests/share/doc/usd/13.viref/vi.ref   (props changed)
  user/ngie/more-tests/share/man/man4/   (props changed)
  user/ngie/more-tests/sys/   (props changed)
  user/ngie/more-tests/sys/amd64/vmm/   (props changed)

Modified: user/ngie/more-tests/ObsoleteFiles.inc
==============================================================================
--- user/ngie/more-tests/ObsoleteFiles.inc	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/ObsoleteFiles.inc	Mon Apr 27 06:40:28 2015	(r282055)
@@ -56,18 +56,6 @@ OLD_FILES+=usr/include/altq/altq_rmclass
 OLD_FILES+=usr/include/altq/altq_cbq.h
 OLD_FILES+=usr/include/altq/altq_rio.h
 OLD_DIRS+=usr/include/altq
-# 20150410
-OLD_FILES+=usr/share/doc/usd/10.exref/paper.ascii.gz
-OLD_FILES+=usr/share/doc/usd/10.exref/summary.ascii.gz
-OLD_DIRS+=usr/share/doc/usd/10.exref
-OLD_FILES+=usr/share/doc/usd/11.edit/paper.ascii.gz
-OLD_DIRS+=usr/share/doc/usd/11.edit
-OLD_FILES+=usr/share/doc/usd/12.vi/paper.ascii.gz
-OLD_FILES+=usr/share/doc/usd/12.vi/summary.ascii.gz
-OLD_FILES+=usr/share/doc/usd/12.vi/viapwh.ascii.gz
-OLD_DIRS+=usr/share/doc/usd/12.vi
-OLD_FILES+=usr/share/doc/usd/13.viref/paper.ascii.gz
-OLD_DIRS+=usr/share/doc/usd/13.viref
 # 20150329
 .if ${TARGET_ARCH} == "arm"
 OLD_FILES+=usr/include/bootconfig.h

Modified: user/ngie/more-tests/bin/ed/ed.1
==============================================================================
--- user/ngie/more-tests/bin/ed/ed.1	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/bin/ed/ed.1	Mon Apr 27 06:40:28 2015	(r282055)
@@ -738,7 +738,7 @@ It is an error if no substitutions are p
 lines.
 The current address is set the last line affected.
 .Pp
-.Ar Re
+.Ar \&Re
 and
 .Ar replacement
 may be delimited by any character other than space and newline

Modified: user/ngie/more-tests/bin/expr/expr.1
==============================================================================
--- user/ngie/more-tests/bin/expr/expr.1	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/bin/expr/expr.1	Mon Apr 27 06:40:28 2015	(r282055)
@@ -90,17 +90,17 @@ Return the evaluation of
 .Ar expr1
 if neither expression evaluates to an empty string or zero;
 otherwise, returns zero.
-.It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2
+.It Ar expr1 Bro =, >, >=, <, <=, != Brc Ar expr2
 Return the results of integer comparison if both arguments are integers;
 otherwise, returns the results of string comparison using the locale-specific
 collation sequence.
 The result of each comparison is 1 if the specified relation is true,
 or 0 if the relation is false.
-.It Ar expr1 Li "{+, -}" Ar expr2
+.It Ar expr1 Bro +, - Brc Ar expr2
 Return the results of addition or subtraction of integer-valued arguments.
-.It Ar expr1 Li "{*, /, %}" Ar expr2
+.It Ar expr1 Bro *, /, % Brc Ar expr2
 Return the results of multiplication, integer division, or remainder of integer-valued arguments.
-.It Ar expr1 Li : Ar expr2
+.It Ar expr1 Li \&: Ar expr2
 The
 .Dq Li \&:
 operator matches

Modified: user/ngie/more-tests/bin/sh/jobs.c
==============================================================================
--- user/ngie/more-tests/bin/sh/jobs.c	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/bin/sh/jobs.c	Mon Apr 27 06:40:28 2015	(r282055)
@@ -1057,7 +1057,7 @@ waitforjob(struct job *jp, int *origstat
 			CLEAR_PENDING_INT;
 	}
 #if JOBS
-	else if (rootshell && iflag && propagate_int &&
+	else if (rootshell && propagate_int &&
 			WIFSIGNALED(status) && WTERMSIG(status) == SIGINT)
 		kill(getpid(), SIGINT);
 #endif

Modified: user/ngie/more-tests/lib/libarchive/config_freebsd.h
==============================================================================
--- user/ngie/more-tests/lib/libarchive/config_freebsd.h	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libarchive/config_freebsd.h	Mon Apr 27 06:40:28 2015	(r282055)
@@ -25,6 +25,8 @@
  * $FreeBSD$
  */
 
+#include <osreldate.h>
+
 /* FreeBSD 5.0 and later have ACL and extattr support. */
 #if __FreeBSD__ > 4
 #define HAVE_ACL_CREATE_ENTRY 1
@@ -220,6 +222,11 @@
 #define HAVE_ZLIB_H 1
 #define TIME_WITH_SYS_TIME 1
 
+#if __FreeBSD_version >= 1100056
+#define HAVE_FUTIMENS 1
+#define HAVE_UTIMENSAT 1
+#endif
+
 /* FreeBSD 4 and earlier lack intmax_t/uintmax_t */
 #if __FreeBSD__ < 5
 #define intmax_t int64_t

Modified: user/ngie/more-tests/lib/libc/gen/getutxent.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/getutxent.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/getutxent.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -475,4 +475,4 @@ They replaced the
 .In utmp.h
 interface.
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/nice.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/nice.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/nice.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -87,7 +87,7 @@ The
 function conforms to
 .St -p1003.1-2008
 except for the return value.
-This implementation returns 0 upon successful completion but 
+This implementation returns 0 upon successful completion but
 the standard requires returning the new nice value,
 which could be \-1.
 .Sh HISTORY

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawn.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawn.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawn.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -457,4 +457,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawn_file_actions_addopen.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawn_file_actions_addopen.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawn_file_actions_addopen.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -200,4 +200,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawn_file_actions_init.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawn_file_actions_init.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawn_file_actions_init.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -101,4 +101,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getflags.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getflags.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getflags.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -108,4 +108,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getpgroup.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getpgroup.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getpgroup.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -93,4 +93,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getschedparam.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getschedparam.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getschedparam.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -97,4 +97,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getschedpolicy.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getschedpolicy.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getschedpolicy.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -95,4 +95,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getsigdefault.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getsigdefault.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getsigdefault.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -95,4 +95,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getsigmask.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getsigmask.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawnattr_getsigmask.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -95,4 +95,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/gen/posix_spawnattr_init.3
==============================================================================
--- user/ngie/more-tests/lib/libc/gen/posix_spawnattr_init.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/gen/posix_spawnattr_init.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -120,4 +120,4 @@ and
 functions first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libc/nls/catopen.3
==============================================================================
--- user/ngie/more-tests/lib/libc/nls/catopen.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/nls/catopen.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -94,7 +94,7 @@ An empty string is substituted for undef
 Path names templates defined in
 .Ev NLSPATH
 are separated by colons
-.No ( Sq \&: ) .
+.Pq Sq \&: .
 A leading or two adjacent colons
 is equivalent to specifying %N.
 .Pp

Modified: user/ngie/more-tests/lib/libc/regex/re_format.7
==============================================================================
--- user/ngie/more-tests/lib/libc/regex/re_format.7	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/regex/re_format.7	Mon Apr 27 06:40:28 2015	(r282055)
@@ -392,10 +392,12 @@ and
 .Ql ?\&
 are ordinary characters, and their functionality
 can be expressed using bounds
-.No ( Ql {1,}
+.Po
+.Ql {1,}
 or
 .Ql {0,1}
-respectively).
+respectively
+.Pc .
 Also note that
 .Ql x+
 in modern REs is equivalent to

Modified: user/ngie/more-tests/lib/libc/regex/regex.3
==============================================================================
--- user/ngie/more-tests/lib/libc/regex/regex.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/regex/regex.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -420,10 +420,12 @@ it should have been the result from the 
 using that
 .Ft regex_t .
 The
-.Fn ( regerror
+.Po
+.Fn regerror
 may be able to supply a more detailed message using information
 from the
-.Ft regex_t . )
+.Ft regex_t .
+.Pc
 The
 .Fn regerror
 function

Modified: user/ngie/more-tests/lib/libc/rpc/rpcbind.3
==============================================================================
--- user/ngie/more-tests/lib/libc/rpc/rpcbind.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/rpc/rpcbind.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -25,7 +25,7 @@
 .Ft bool_t
 .Fn rpcb_gettime "const char *host" "time_t * timep"
 .Ft "enum clnt_stat"
-.Fn rpcb_rmtcall "const struct netconfig *netconf" "const char *host" "const rpcprog_t prognum, const rpcvers_t versnum" "const rpcproc_t procnum, const xdrproc_t inproc" "const caddr_t in" "const xdrproc_t outproc" "const caddr_t out" "const struct timeval tout, const struct netbuf *svcaddr"
+.Fn rpcb_rmtcall "const struct netconfig *netconf" "const char *host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const rpcproc_t procnum" "const xdrproc_t inproc" "const caddr_t in" "const xdrproc_t outproc" "const caddr_t out" "const struct timeval tout" "const struct netbuf *svcaddr"
 .Ft bool_t
 .Fn rpcb_set "const rpcprog_t prognum" "const rpcvers_t versnum" "const struct netconfig *netconf" "const struct netbuf *svcaddr"
 .Ft bool_t

Modified: user/ngie/more-tests/lib/libc/sys/posix_openpt.2
==============================================================================
--- user/ngie/more-tests/lib/libc/sys/posix_openpt.2	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libc/sys/posix_openpt.2	Mon Apr 27 06:40:28 2015	(r282055)
@@ -137,4 +137,4 @@ is included for compatibility; in
 opening a terminal does not cause it to become a process's controlling
 terminal.
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: user/ngie/more-tests/lib/libedit/el.c
==============================================================================
--- user/ngie/more-tests/lib/libedit/el.c	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/libedit/el.c	Mon Apr 27 06:40:28 2015	(r282055)
@@ -96,7 +96,7 @@ el_init_fd(const char *prog, FILE *fin, 
          */
 	el->el_flags = 0;
 #ifdef WIDECHAR
-	if (setlocale(LC_CTYPE, "") != NULL) {
+	if (setlocale(LC_CTYPE, NULL) != NULL) {
 		if (strcmp(nl_langinfo(CODESET), "UTF-8") == 0)
 			el->el_flags |= CHARSET_IS_UTF8;
 	}

Modified: user/ngie/more-tests/lib/msun/man/j0.3
==============================================================================
--- user/ngie/more-tests/lib/msun/man/j0.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/msun/man/j0.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -98,7 +98,7 @@ The functions
 .Fn y1 ,
 and
 .Fn y1f
-compute the linearly independent Bessel function of the second kind 
+compute the linearly independent Bessel function of the second kind
 of orders 0 and 1 for the positive
 .Em real
 value
@@ -135,12 +135,12 @@ is \*(Pm0, these routines
 will generate a divide-by-zero exception and return -\*(If.
 If
 .Fa x
-is a sufficiently small positive number, then 
+is a sufficiently small positive number, then
 .Fn y1 ,
 .Fn y1f ,
 .Fn yn ,
 and
-.Fn ynf 
+.Fn ynf
 will generate an overflow exception and return -\*(If.
 .Sh SEE ALSO
 .Xr math 3

Modified: user/ngie/more-tests/lib/msun/man/lgamma.3
==============================================================================
--- user/ngie/more-tests/lib/msun/man/lgamma.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/msun/man/lgamma.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -124,7 +124,6 @@ are deprecated aliases for
 and
 .Fn lgammaf_r ,
 respectively.
-
 .Sh IDIOSYNCRASIES
 Do not use the expression
 .Dq Li signgam\(**exp(lgamma(x))

Modified: user/ngie/more-tests/lib/msun/man/nextafter.3
==============================================================================
--- user/ngie/more-tests/lib/msun/man/nextafter.3	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/lib/msun/man/nextafter.3	Mon Apr 27 06:40:28 2015	(r282055)
@@ -78,11 +78,11 @@ routines conform to
 They implement the Nextafter function recommended by
 .St -ieee754 ,
 with the extension that
-.Fn nextafter +0.0, -0.0
+.Fn nextafter "+0.0" "-0.0"
 returns
 .Li -0.0 ,
 and
-.Fn nextafter -0.0, +0.0
+.Fn nextafter "-0.0" "+0.0"
 returns
 .Li +0.0 .
 .Sh HISTORY

Modified: user/ngie/more-tests/sbin/atm/atmconfig/atmconfig.8
==============================================================================
--- user/ngie/more-tests/sbin/atm/atmconfig/atmconfig.8	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/sbin/atm/atmconfig/atmconfig.8	Mon Apr 27 06:40:28 2015	(r282055)
@@ -90,7 +90,7 @@ To get a list of options and arguments f
 .Pp
 To get a list of common options use:
 .D1 Nm Ic help Cm options
-.Ss The Ic diag Ss Command
+.Ss The Ic diag Command
 The
 .Ic diag
 command allows the inspection of the ATM interfaces on the local host
@@ -201,7 +201,7 @@ Print traffic parameters: PCR, SCR, MBS,
 .It Nm Ic diag Cm stats Ar device
 Print driver specific statistics.
 .El
-.Ss The Ic natm Ss Command
+.Ss The Ic natm Command
 The
 .Ic natm
 command is used to change

Modified: user/ngie/more-tests/sbin/camcontrol/camcontrol.8
==============================================================================
--- user/ngie/more-tests/sbin/camcontrol/camcontrol.8	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/sbin/camcontrol/camcontrol.8	Mon Apr 27 06:40:28 2015	(r282055)
@@ -529,7 +529,7 @@ on the system.
 .It Ic defects
 Send the
 .Tn SCSI
-READ DEFECT DATA (10) command (0x37) or the 
+READ DEFECT DATA (10) command (0x37) or the
 .Tn SCSI
 READ DEFECT DATA (12) command (0xB7) to the given device, and
 print out any combination of: the total number of defects, the primary
@@ -563,12 +563,12 @@ drives.
 .It longblock
 Print out the list as logical blocks.
 This option uses a 64-bit block size.
-.It bfi 
+.It bfi
 Print out the list in bytes from index format.
 .It extbfi
 Print out the list in extended bytes from index format.
 The extended format allows for ranges of blocks to be printed.
-.It phys 
+.It phys
 Print out the list in physical sector format.
 Most drives support this format.
 .It extphys

Modified: user/ngie/more-tests/sbin/ipfw/ipfw2.c
==============================================================================
--- user/ngie/more-tests/sbin/ipfw/ipfw2.c	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/sbin/ipfw/ipfw2.c	Mon Apr 27 06:40:28 2015	(r282055)
@@ -375,6 +375,13 @@ static int ipfw_show_config(struct cmdli
     ipfw_cfg_lheader *cfg, size_t sz, int ac, char **av);
 static void ipfw_list_tifaces(void);
 
+struct tidx;
+static uint16_t pack_object(struct tidx *tstate, char *name, int otype);
+static uint16_t pack_table(struct tidx *tstate, char *name);
+
+static char *table_search_ctlv(ipfw_obj_ctlv *ctlv, uint16_t idx);
+static void object_sort_ctlv(ipfw_obj_ctlv *ctlv);
+
 /*
  * Simple string buffer API.
  * Used to simplify buffer passing between function and for
@@ -2558,6 +2565,7 @@ ipfw_show_config(struct cmdline_opts *co
 	if (cfg->flags & IPFW_CFG_GET_STATIC) {
 		/* We've requested static rules */
 		if (ctlv->head.type == IPFW_TLV_TBLNAME_LIST) {
+			object_sort_ctlv(ctlv);
 			fo->tstate = ctlv;
 			readsz += ctlv->head.length;
 			ctlv = (ipfw_obj_ctlv *)((caddr_t)ctlv +
@@ -2724,19 +2732,18 @@ struct tidx {
 };
 
 static uint16_t
-pack_table(struct tidx *tstate, char *name)
+pack_object(struct tidx *tstate, char *name, int otype)
 {
 	int i;
 	ipfw_obj_ntlv *ntlv;
 
-	if (table_check_name(name) != 0)
-		return (0);
-
 	for (i = 0; i < tstate->count; i++) {
 		if (strcmp(tstate->idx[i].name, name) != 0)
 			continue;
 		if (tstate->idx[i].set != tstate->set)
 			continue;
+		if (tstate->idx[i].head.type != otype)
+			continue;
 
 		return (tstate->idx[i].idx);
 	}
@@ -2752,7 +2759,7 @@ pack_table(struct tidx *tstate, char *na
 	ntlv = &tstate->idx[i];
 	memset(ntlv, 0, sizeof(ipfw_obj_ntlv));
 	strlcpy(ntlv->name, name, sizeof(ntlv->name));
-	ntlv->head.type = IPFW_TLV_TBL_NAME;
+	ntlv->head.type = otype;
 	ntlv->head.length = sizeof(ipfw_obj_ntlv);
 	ntlv->set = tstate->set;
 	ntlv->idx = ++tstate->counter;
@@ -2761,6 +2768,16 @@ pack_table(struct tidx *tstate, char *na
 	return (ntlv->idx);
 }
 
+static uint16_t
+pack_table(struct tidx *tstate, char *name)
+{
+
+	if (table_check_name(name) != 0)
+		return (0);
+
+	return (pack_object(tstate, name, IPFW_TLV_TBL_NAME));
+}
+
 static void
 fill_table(ipfw_insn *cmd, char *av, uint8_t opcode, struct tidx *tstate)
 {
@@ -3611,7 +3628,6 @@ compile_rule(char *av[], uint32_t *rbuf,
 			break;
 		} else
 			goto chkarg;
-
 	case TOK_QUEUE:
 		action->opcode = O_QUEUE;
 		goto chkarg;
@@ -4656,6 +4672,101 @@ done:
 	*rbufsize = (char *)dst - (char *)rule;
 }
 
+static int
+compare_ntlv(const void *_a, const void *_b)
+{
+	ipfw_obj_ntlv *a, *b;
+
+	a = (ipfw_obj_ntlv *)_a;
+	b = (ipfw_obj_ntlv *)_b;
+
+	if (a->set < b->set)
+		return (-1);
+	else if (a->set > b->set)
+		return (1);
+
+	if (a->idx < b->idx)
+		return (-1);
+	else if (a->idx > b->idx)
+		return (1);
+
+	if (a->head.type < b->head.type)
+		return (-1);
+	else if (a->head.type > b->head.type)
+		return (1);
+
+	return (0);
+}
+
+/*
+ * Provide kernel with sorted list of referenced objects
+ */
+static void
+object_sort_ctlv(ipfw_obj_ctlv *ctlv)
+{
+
+	qsort(ctlv + 1, ctlv->count, ctlv->objsize, compare_ntlv);
+}
+
+struct object_kt {
+	uint16_t	uidx;
+	uint16_t	type;
+};
+static int
+compare_object_kntlv(const void *k, const void *v)
+{
+	ipfw_obj_ntlv *ntlv;
+	struct object_kt key;
+
+	key = *((struct object_kt *)k);
+	ntlv = (ipfw_obj_ntlv *)v;
+
+	if (key.uidx < ntlv->idx)
+		return (-1);
+	else if (key.uidx > ntlv->idx)
+		return (1);
+
+	if (key.type < ntlv->head.type)
+		return (-1);
+	else if (key.type > ntlv->head.type)
+		return (1);
+
+	return (0);
+}
+
+/*
+ * Finds object name in @ctlv by @idx and @type.
+ * Uses the following facts:
+ * 1) All TLVs are the same size
+ * 2) Kernel implementation provides already sorted list.
+ *
+ * Returns table name or NULL.
+ */
+static char *
+object_search_ctlv(ipfw_obj_ctlv *ctlv, uint16_t idx, uint16_t type)
+{
+	ipfw_obj_ntlv *ntlv;
+	struct object_kt key;
+
+	key.uidx = idx;
+	key.type = type;
+
+	ntlv = bsearch(&key, (ctlv + 1), ctlv->count, ctlv->objsize,
+	    compare_object_kntlv);
+
+	if (ntlv != 0)
+		return (ntlv->name);
+
+	return (NULL);
+}
+
+static char *
+table_search_ctlv(ipfw_obj_ctlv *ctlv, uint16_t idx)
+{
+
+	return (object_search_ctlv(ctlv, idx, IPFW_TLV_TBL_NAME));
+}
+
 /*
  * Adds one or more rules to ipfw chain.
  * Data layout:
@@ -4724,7 +4835,7 @@ ipfw_add(char *av[])
 		ctlv->count = ts.count;
 		ctlv->objsize = sizeof(ipfw_obj_ntlv);
 		memcpy(ctlv + 1, ts.idx, tlen);
-		table_sort_ctlv(ctlv);
+		object_sort_ctlv(ctlv);
 		tstate = ctlv;
 		/* Rule next */
 		ctlv = (ipfw_obj_ctlv *)((caddr_t)ctlv + ctlv->head.length);

Modified: user/ngie/more-tests/sbin/ipfw/ipfw2.h
==============================================================================
--- user/ngie/more-tests/sbin/ipfw/ipfw2.h	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/sbin/ipfw/ipfw2.h	Mon Apr 27 06:40:28 2015	(r282055)
@@ -344,8 +344,6 @@ int fill_ext6hdr(struct _ipfw_insn *cmd,
 
 /* tables.c */
 struct _ipfw_obj_ctlv;
-char *table_search_ctlv(struct _ipfw_obj_ctlv *ctlv, uint16_t idx);
-void table_sort_ctlv(struct _ipfw_obj_ctlv *ctlv);
 int table_check_name(char *tablename);
 void ipfw_list_ta(int ac, char *av[]);
 void ipfw_list_values(int ac, char *av[]);

Modified: user/ngie/more-tests/sbin/ipfw/tables.c
==============================================================================
--- user/ngie/more-tests/sbin/ipfw/tables.c	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/sbin/ipfw/tables.c	Mon Apr 27 06:40:28 2015	(r282055)
@@ -1937,73 +1937,6 @@ ipfw_list_values(int ac, char *av[])
 }
 
 int
-compare_ntlv(const void *_a, const void *_b)
-{
-	ipfw_obj_ntlv *a, *b;
-
-	a = (ipfw_obj_ntlv *)_a;
-	b = (ipfw_obj_ntlv *)_b;
-
-	if (a->set < b->set)
-		return (-1);
-	else if (a->set > b->set)
-		return (1);
-
-	if (a->idx < b->idx)
-		return (-1);
-	else if (a->idx > b->idx)
-		return (1);
-
-	return (0);
-}
-
-int
-compare_kntlv(const void *k, const void *v)
-{
-	ipfw_obj_ntlv *ntlv;
-	uint16_t key;
-
-	key = *((uint16_t *)k);
-	ntlv = (ipfw_obj_ntlv *)v;
-
-	if (key < ntlv->idx)
-		return (-1);
-	else if (key > ntlv->idx)
-		return (1);
-	
-	return (0);
-}
-
-/*
- * Finds table name in @ctlv by @idx.
- * Uses the following facts:
- * 1) All TLVs are the same size
- * 2) Kernel implementation provides already sorted list.
- *
- * Returns table name or NULL.
- */
-char *
-table_search_ctlv(ipfw_obj_ctlv *ctlv, uint16_t idx)
-{
-	ipfw_obj_ntlv *ntlv;
-
-	ntlv = bsearch(&idx, (ctlv + 1), ctlv->count, ctlv->objsize,
-	    compare_kntlv);
-
-	if (ntlv != 0)
-		return (ntlv->name);
-
-	return (NULL);
-}
-
-void
-table_sort_ctlv(ipfw_obj_ctlv *ctlv)
-{
-
-	qsort(ctlv + 1, ctlv->count, ctlv->objsize, compare_ntlv);
-}
-
-int
 table_check_name(char *tablename)
 {
 	int c, i, l;

Modified: user/ngie/more-tests/share/doc/usd/Makefile
==============================================================================
--- user/ngie/more-tests/share/doc/usd/Makefile	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/share/doc/usd/Makefile	Mon Apr 27 06:40:28 2015	(r282055)
@@ -10,6 +10,10 @@ SUBDIR=	title \
 	05.dc \
 	06.bc \
 	07.mail \
+	10.exref \
+	11.vitut \
+	12.vi \
+	13.viref \
 	18.msdiffs \
 	19.memacros \
 	20.meref \

Modified: user/ngie/more-tests/share/man/man4/smb.4
==============================================================================
--- user/ngie/more-tests/share/man/man4/smb.4	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/share/man/man4/smb.4	Mon Apr 27 06:40:28 2015	(r282055)
@@ -1,5 +1,6 @@
 .\" Copyright (c) 1998, Nicolas Souchu
 .\" Copyright (c) 2004, Joerg Wunsch
+.\" Copyright (c) 2015, Michael Gmelin <freebsd@grem.de>
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +26,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd February 6, 2009
+.Dd April 25, 2015
 .Dt SMB 4
 .Os
 .Sh NAME
@@ -36,10 +37,10 @@
 .Sh DESCRIPTION
 The
 .Em smb
-character device driver provides generic i/o to any
+character device driver provides generic I/O to any
 .Xr smbus 4
 instance.
-In order to control SMB devices, use
+To control SMB devices, use
 .Pa /dev/smb?
 with the ioctls described below.
 Any of these ioctl commands takes a pointer to
@@ -49,124 +50,145 @@ as its argument.
 #include <sys/types.h>
 
 struct smbcmd {
-	char cmd;
-	int count;
-	u_char slave;
+	u_char cmd;
+	u_char reserved;
+	u_short op;
 	union {
-		char byte;
-		short word;
-
-		char *byte_ptr;
-		short *word_ptr;
-
-		struct {
-			short sdata;
-			short *rdata;
-		} process;
-	} data;
+		char    byte;
+		char    buf[2];
+		short   word;
+	} wdata;
+	union {
+		char    byte;
+		char    buf[2];
+		short   word;
+	} rdata;
+	int  slave;
+	char *wbuf;     /* use wdata if NULL */
+	int  wcount;
+	char *rbuf;     /* use rdata if NULL */
+	int  rcount;
 };
 .Ed
 .Pp
 The
 .Fa slave
 field is always used, and provides the address of the
-SMBus slave device to talk to.
+SMBus slave device.
 The slave address is specified in the seven most significant bits
-.Pq i.e. Dq "left-justified" .
+.Pq i.e., Dq "left-justified" .
 The least significant bit of the slave address must be zero.
 .Pp
 .Bl -column ".Dv SMB_QUICK_WRITE" -compact
 .It Em Ioctl Ta Em Description
 .Pp
 .It Dv SMB_QUICK_WRITE Ta
-The
 .Em QuickWrite
-command just issues the device address with write intent
-to the bus, without transferring any data.
+does not transfer any data.
+It just issues the device address with write intent to the bus.
 .It Dv SMB_QUICK_READ Ta
-The
 .Em QuickRead
-command just issues the device address with read intent
-to the bus, without transferring any data.
+does not transfer any data.
+It just issues the device address with read intent to the bus.
 .It Dv SMB_SENDB Ta
-The
 .Em SendByte
-command sends the byte provided in the
+sends the byte provided in
 .Fa cmd
-field to the device.
+to the device.
 .It Dv SMB_RECVB Ta
-The
 .Em ReceiveByte
-command reads a single byte from the device which will
-be returned in the
-.Fa cmd
-field.
+reads a single byte from the device which is returned in
+.Fa cmd .
 .It Dv SMB_WRITEB Ta
-The
 .Em WriteByte
-command first sends the byte from the
+first sends the byte from
 .Fa cmd
-field to the device, followed by the byte given in
-.Fa data.byte .
+to the device, followed by the byte given in
+.Fa wdata.byte .
 .It Dv SMB_WRITEW Ta
-The
 .Em WriteWord
-command first sends the byte from the
+first sends the byte from
 .Fa cmd
-field to the device, followed by the word given in
-.Fa data.word .
+to the device, followed by the word given in
+.Fa wdata.word .
 Note that the SMBus byte-order is little-endian by definition.
 .It Dv SMB_READB Ta
-The
 .Em ReadByte
-command first sends the byte from the
+first sends the byte from
 .Fa cmd
-field to the device, and then reads one byte of data from
+to the device, then reads one byte of data from
 the device.
-The returned data will be stored in the location pointed to by
-.Fa data.byte_ptr .
+Returned data is stored in
+.Fa rdata.byte .
 .It Dv SMB_READW Ta
-The
 .Em ReadWord
-command first sends the byte from the
+first sends the byte from
 .Fa cmd
-field to the device, and then reads one word of data from
+to the device, then reads one word of data from
 the device.
-The returned data will be stored in the location pointed to by
-.Fa data.word_ptr .
+Returned data is stored in
+.Fa rdata.word .
 .It Dv SMB_PCALL Ta
-The
 .Em ProcedureCall
-command first sends the byte from the
+first sends the byte from
 .Fa cmd
-field to the device, followed by the word provided in
-.Fa data.process.sdata .
-It then reads one word of data from the device, and returns it
-in the location pointed to by
-.Fa data.process.rdata .
+to the device, followed by the word provided in
+.Fa wdata.word .
+It then reads one word of data from the device and returns it
+in
+.Fa rdata.word .
 .It Dv SMB_BWRITE Ta
-The
 .Em BlockWrite
-command first sends the byte from the
+first sends the byte from
 .Fa cmd
-field to the device, followed by
-.Fa count
+to the device, followed by
+.Fa wcount
 bytes of data that are taken from the buffer pointed to by
-.Fa data.byte_ptr .
+.Fa wbuf .
 The SMBus specification mandates that no more than 32 bytes of
-data can be transferred in a single block read or write command.
-This value is available in the constant
+data can be transferred in a single block read or write command,
+but since
+.Xr smbus 4
+is also used to access I2C devices, the limit has been increased
+to 1024.
+This value can be read from the constant
 .Dv SMB_MAXBLOCKSIZE .
 .It Dv SMB_BREAD Ta
-The
 .Em BlockRead
-command first sends the byte from the
+first sends the byte from
 .Fa cmd
-field to the device, and then reads
-.Fa count
+to the device, then reads
+.Fa rcount
 bytes of data that from the device.
-These data will be returned in the buffer pointed to by
-.Fa data.byte_ptr .
+This data is returned in the buffer pointed to by
+.Fa rbuf .
+.It Dv SMB_TRANS Ta
+.Em Trans
+sends an SMB roll-up transaction with flags that also allow it to
+be used for (mostly) I2C pass-through and with 10-bit addresses.
+This function can be utilized to roll up all of the above functions.
+It first sends the byte from
+.Fa cmd
+to the device, followed by
+.Fa wcount
+bytes of data that are taken from the buffer pointed to by
+.Fa wbuf ,
+then reads
+.Fa rcount
+bytes of data that from the device.
+This data is returned in the buffer pointed to by
+.Fa rbuf .
+.Pp
+The following flags are allowed in
+.Fa op :
+.Pp
+.Bd -literal -compact
+SMB_TRANS_NOSTOP  Do not send STOP at end
+SMB_TRANS_NOCMD   Ignore cmd field (do not tx)
+SMB_TRANS_NOCNT   Do not tx or rx count field
+SMB_TRANS_7BIT    Change address mode to 7-bit
+SMB_TRANS_10BIT   Change address mode to 10-bit
+.Ed
 .El
 .Pp
 The
@@ -201,4 +223,6 @@ manual page first appeared in
 .Sh AUTHORS
 This
 manual page was written by
-.An Nicolas Souchu .
+.An Nicolas Souchu
+and extended by
+.An Michael Gmelin Aq freebsd@grem.de .

Modified: user/ngie/more-tests/sys/amd64/vmm/vmm_instruction_emul.c
==============================================================================
--- user/ngie/more-tests/sys/amd64/vmm/vmm_instruction_emul.c	Mon Apr 27 06:34:51 2015	(r282054)
+++ user/ngie/more-tests/sys/amd64/vmm/vmm_instruction_emul.c	Mon Apr 27 06:40:28 2015	(r282055)
@@ -72,6 +72,7 @@ enum {
 	VIE_OP_TYPE_POP,
 	VIE_OP_TYPE_MOVS,
 	VIE_OP_TYPE_GROUP1,
+	VIE_OP_TYPE_STOS,
 	VIE_OP_TYPE_LAST
 };
 
@@ -146,6 +147,16 @@ static const struct vie_op one_byte_opco
 		.op_type = VIE_OP_TYPE_MOVS,
 		.op_flags = VIE_OP_F_NO_MODRM | VIE_OP_F_NO_GLA_VERIFICATION
 	},
+	[0xAA] = {
+		.op_byte = 0xAA,
+		.op_type = VIE_OP_TYPE_STOS,
+		.op_flags = VIE_OP_F_NO_MODRM | VIE_OP_F_NO_GLA_VERIFICATION
+	},
+	[0xAB] = {
+		.op_byte = 0xAB,
+		.op_type = VIE_OP_TYPE_STOS,
+		.op_flags = VIE_OP_F_NO_MODRM | VIE_OP_F_NO_GLA_VERIFICATION
+	},
 	[0xC6] = {
 		/* XXX Group 11 extended opcode - not just MOV */
 		.op_byte = 0xC6,
@@ -803,6 +814,68 @@ done:
 }
 
 static int
+emulate_stos(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
+    struct vm_guest_paging *paging, mem_region_read_t memread,
+    mem_region_write_t memwrite, void *arg)
+{
+	int error, opsize, repeat;
+	uint64_t val;
+	uint64_t rcx, rdi, rflags;
+
+	opsize = (vie->op.op_byte == 0xAA) ? 1 : vie->opsize;
+	repeat = vie->repz_present | vie->repnz_present;
+
+	if (repeat) {
+		error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RCX, &rcx);
+		KASSERT(!error, ("%s: error %d getting rcx", __func__, error));
+
+		/*
+		 * The count register is %rcx, %ecx or %cx depending on the
+		 * address size of the instruction.
+		 */
+		if ((rcx & vie_size2mask(vie->addrsize)) == 0)
+			return (0);
+	}
+
+	error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RAX, &val);
+	KASSERT(!error, ("%s: error %d getting rax", __func__, error));
+
+	error = memwrite(vm, vcpuid, gpa, val, opsize, arg);
+	if (error)
+		return (error);
+
+	error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RDI, &rdi);
+	KASSERT(error == 0, ("%s: error %d getting rdi", __func__, error));
+
+	error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
+	KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error));
+
+	if (rflags & PSL_D)
+		rdi -= opsize;
+	else
+		rdi += opsize;
+
+	error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RDI, rdi,
+	    vie->addrsize);
+	KASSERT(error == 0, ("%s: error %d updating rdi", __func__, error));
+
+	if (repeat) {
+		rcx = rcx - 1;
+		error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RCX,
+		    rcx, vie->addrsize);
+		KASSERT(!error, ("%s: error %d updating rcx", __func__, error));
+
+		/*
+		 * Repeat the instruction if the count register is not zero.
+		 */
+		if ((rcx & vie_size2mask(vie->addrsize)) != 0)
+			vm_restart_instruction(vm, vcpuid);
+	}
+
+	return (0);
+}
+
+static int

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504270640.t3R6eTRC051320>