svn commit: r346925 - in projects/runtime-coverage-v2: . cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip lib/libvgl sbin/ipfw share/man/man4 stand/efi/loader sys/conf sys/contrib/ipfilter/ne...
Enji Cooper
ngie at FreeBSD.org
Mon Apr 29 20:19:25 UTC 2019
Author: ngie
Date: Mon Apr 29 20:19:21 2019
New Revision: 346925
URL: https://svnweb.freebsd.org/changeset/base/346925
Log:
MFhead at r346924
Added:
projects/runtime-coverage-v2/share/man/man4/dtrace_audit.4
- copied unchanged from r346924, head/share/man/man4/dtrace_audit.4
Modified:
projects/runtime-coverage-v2/MAINTAINERS (contents, props changed)
projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localsctp.ksh
projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localsctpstate.ksh
projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localsctpstate.ksh.out
projects/runtime-coverage-v2/lib/libvgl/main.c
projects/runtime-coverage-v2/lib/libvgl/mouse.c
projects/runtime-coverage-v2/lib/libvgl/simple.c
projects/runtime-coverage-v2/lib/libvgl/vgl.h
projects/runtime-coverage-v2/sbin/ipfw/ipfw2.c
projects/runtime-coverage-v2/share/man/man4/Makefile
projects/runtime-coverage-v2/share/man/man4/audit.4
projects/runtime-coverage-v2/share/man/man4/auditpipe.4
projects/runtime-coverage-v2/stand/efi/loader/main.c
projects/runtime-coverage-v2/sys/conf/files.powerpc
projects/runtime-coverage-v2/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
projects/runtime-coverage-v2/sys/dev/altera/atse/if_atse.c
projects/runtime-coverage-v2/sys/dev/altera/softdma/softdma.c
projects/runtime-coverage-v2/sys/dev/isp/isp_pci.c
projects/runtime-coverage-v2/sys/dev/xdma/xdma.h
projects/runtime-coverage-v2/sys/dev/xdma/xdma_mbuf.c
projects/runtime-coverage-v2/sys/dev/xdma/xdma_sg.c
projects/runtime-coverage-v2/sys/kern/vfs_bio.c
projects/runtime-coverage-v2/sys/netinet/in_mcast.c
projects/runtime-coverage-v2/sys/netpfil/ipfw/ip_fw2.c
projects/runtime-coverage-v2/sys/powerpc/conf/GENERIC64
projects/runtime-coverage-v2/sys/powerpc/powernv/opal_dev.c
projects/runtime-coverage-v2/sys/x86/x86/busdma_bounce.c
projects/runtime-coverage-v2/tools/regression/fsx/fsx.c
projects/runtime-coverage-v2/usr.sbin/nfsdumpstate/nfsdumpstate.c
Directory Properties:
projects/runtime-coverage-v2/ (props changed)
projects/runtime-coverage-v2/cddl/ (props changed)
projects/runtime-coverage-v2/cddl/contrib/opensolaris/ (props changed)
projects/runtime-coverage-v2/sys/contrib/ipfilter/ (props changed)
Modified: projects/runtime-coverage-v2/MAINTAINERS
==============================================================================
--- projects/runtime-coverage-v2/MAINTAINERS Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/MAINTAINERS Mon Apr 29 20:19:21 2019 (r346925)
@@ -35,17 +35,19 @@ makes a commit to the specified subtree.
subsystem login notes
-----------------------------
-atf freebsd-testing,jmmv,ngie Pre-commit review requested.
ath(4) adrian Pre-commit review requested, send to freebsd-wireless at freebsd.org
+contrib/atf ngie,#test Pre-commit review requested.
+contrib/capsicum-test ngie,#capsicum,#test Pre-commit review requested.
contrib/compiler-rt dim Pre-commit review preferred.
+contrib/googletest ngie,#test Pre-commit review requested.
contrib/ipfilter cy Pre-commit review requested.
contrib/libc++ dim Pre-commit review preferred.
contrib/libcxxrt dim Pre-commit review preferred.
contrib/libunwind dim,emaste,jhb Pre-commit review preferred.
contrib/llvm dim Pre-commit review preferred.
contrib/llvm/tools/lldb dim,emaste Pre-commit review preferred.
-contrib/netbsd-tests freebsd-testing,ngie Pre-commit review requested.
-contrib/pjdfstest freebsd-testing,asomers,ngie,pjd Pre-commit review requested.
+contrib/netbsd-tests ngie,#test Pre-commit review requested.
+contrib/pjdfstest asomers,ngie,pjd,#test Pre-commit review requested.
*env(3) secteam Due to the problematic security history of this
code, please have patches reviewed by secteam.
etc/mail gshapiro Pre-commit review requested. Keep in sync with -STABLE.
@@ -86,10 +88,15 @@ sh(1) jilles Pre-commit review requested. This also
to kill(1), printf(1) and test(1) which are
compiled in as builtins.
share/mk imp, bapt, bdrewery, emaste, sjg Make is hard.
-share/mk/*.test.mk freebsd-testing,ngie (same list as share/mk too) Pre-commit review requested.
+share/mk/*.test.mk imp,bapt,bdrewery, Pre-commit review requested.
+ emaste,ngie,sjg,#test
stand/forth dteske Pre-commit review requested.
stand/lua kevans Pre-commit review requested
-sys/compat/linuxkpi hselasky If in doubt, ask.
+sys/compat/linuxkpi hselasky If in doubt, ask.
+ zeising, johalun pre-commit review requested via
+ #x11 phabricator group.
+ (to avoid drm graphics drivers
+ impact)
sys/contrib/ipfilter cy Pre-commit review requested.
sys/dev/e1000 erj Pre-commit phabricator review requested.
sys/dev/ixgbe erj Pre-commit phabricator review requested.
@@ -101,7 +108,7 @@ sys/netinet/ip_carp.c glebius Pre-commit review recomm
sys/netpfil/pf kp,glebius Pre-commit review recommended.
sys/x86/xen royger Pre-commit review recommended.
sys/xen royger Pre-commit review recommended.
-tests freebsd-testing,ngie Pre-commit review requested.
+tests ngie,#test Pre-commit review requested.
tools/build imp Pre-commit review requested, especially to fix bootstrap issues.
top(1) eadler Pre-commit review requested.
usr.sbin/bsdconfig dteske Pre-commit phabricator review requested.
Modified: projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localsctp.ksh
==============================================================================
--- projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localsctp.ksh Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localsctp.ksh Mon Apr 29 20:19:21 2019 (r346925)
@@ -58,36 +58,52 @@ DIR=/var/tmp/dtest.$$
sctpport=1024
bound=5000
-while [ $sctpport -lt $bound ]; do
- ncat --sctp -z $local $sctpport > /dev/null || break
- sctpport=$(($sctpport + 1))
-done
-if [ $sctpport -eq $bound ]; then
- echo "couldn't find an available SCTP port"
- exit 1
-fi
mkdir $DIR
cd $DIR
-# ncat will exit when the association is closed.
-ncat --sctp --listen $local $sctpport &
-
-cat > test.pl <<-EOPERL
+cat > client.pl <<-EOPERL
use IO::Socket;
my \$s = IO::Socket::INET->new(
Type => SOCK_STREAM,
Proto => "sctp",
LocalAddr => "$local",
PeerAddr => "$local",
- PeerPort => $sctpport,
+ PeerPort => \$ARGV[0],
Timeout => 3);
- die "Could not connect to host $local port $sctpport \$@" unless \$s;
+ die "Could not connect to host $local port \$ARGV[0] \$@" unless \$s;
close \$s;
- sleep(2);
+ sleep(\$ARGV[1]);
EOPERL
-$dtrace -c 'perl test.pl' -qs /dev/stdin <<EODTRACE
+while [ $sctpport -lt $bound ]; do
+ perl client.pl $sctpport 0 2>&- || break
+ sctpport=$(($sctpport + 1))
+done
+if [ $sctpport -eq $bound ]; then
+ echo "couldn't find an available SCTP port"
+ exit 1
+fi
+
+cat > server.pl <<-EOPERL
+ use IO::Socket;
+ my \$l = IO::Socket::INET->new(
+ Type => SOCK_STREAM,
+ Proto => "sctp",
+ LocalAddr => "$local",
+ LocalPort => $sctpport,
+ Listen => 1,
+ Reuse => 1);
+ die "Could not listen on $local port $sctpport \$@" unless \$l;
+ my \$c = \$l->accept();
+ close \$l;
+ while (<\$c>) {};
+ close \$c;
+EOPERL
+
+perl server.pl &
+
+$dtrace -c "perl client.pl $sctpport 2" -qs /dev/stdin <<EODTRACE
BEGIN
{
ipsend = sctpsend = ipreceive = sctpreceive = 0;
@@ -122,10 +138,10 @@ sctp:::receive
END
{
printf("Minimum SCTP events seen\n\n");
- printf("ip:::send (%d) - %s\n", ipsend, ipsend >= 7 ? "yes" : "no");
- printf("ip:::receive (%d) - %s\n", ipreceive, ipreceive >= 7 ? "yes" : "no");
- printf("sctp:::send (%d) - %s\n", sctpsend, sctpsend >= 7 ? "yes" : "no");
- printf("sctp:::receive (%d) - %s\n", sctpreceive, sctpreceive >= 7 ? "yes" : "no");
+ printf("ip:::send - %s\n", ipsend >= 7 ? "yes" : "no");
+ printf("ip:::receive - %s\n", ipreceive >= 7 ? "yes" : "no");
+ printf("sctp:::send - %s\n", sctpsend >= 7 ? "yes" : "no");
+ printf("sctp:::receive - %s\n", sctpreceive >= 7 ? "yes" : "no");
}
EODTRACE
Modified: projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localsctpstate.ksh
==============================================================================
--- projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localsctpstate.ksh Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localsctpstate.ksh Mon Apr 29 20:19:21 2019 (r346925)
@@ -61,36 +61,52 @@ DIR=/var/tmp/dtest.$$
sctpport=1024
bound=5000
-while [ $sctpport -lt $bound ]; do
- ncat --sctp -z $local $sctpport > /dev/null || break
- sctpport=$(($sctpport + 1))
-done
-if [ $sctpport -eq $bound ]; then
- echo "couldn't find an available SCTP port"
- exit 1
-fi
mkdir $DIR
cd $DIR
-# ncat will exit when the association is closed.
-ncat --sctp --listen $local $sctpport &
-
-cat > test.pl <<-EOPERL
+cat > client.pl <<-EOPERL
use IO::Socket;
my \$s = IO::Socket::INET->new(
Type => SOCK_STREAM,
Proto => "sctp",
LocalAddr => "$local",
PeerAddr => "$local",
- PeerPort => $sctpport,
+ PeerPort => \$ARGV[0],
Timeout => 3);
- die "Could not connect to host $local port $sctpport \$@" unless \$s;
+ die "Could not connect to host $local port \$ARGV[0] \$@" unless \$s;
close \$s;
- sleep(2);
+ sleep(\$ARGV[1]);
EOPERL
-$dtrace -c 'perl test.pl' -qs /dev/stdin <<EODTRACE
+while [ $sctpport -lt $bound ]; do
+ perl client.pl $sctpport 0 2>&- || break
+ sctpport=$(($sctpport + 1))
+done
+if [ $sctpport -eq $bound ]; then
+ echo "couldn't find an available SCTP port"
+ exit 1
+fi
+
+cat > server.pl <<-EOPERL
+ use IO::Socket;
+ my \$l = IO::Socket::INET->new(
+ Type => SOCK_STREAM,
+ Proto => "sctp",
+ LocalAddr => "$local",
+ LocalPort => $sctpport,
+ Listen => 1,
+ Reuse => 1);
+ die "Could not listen on $local port $sctpport \$@" unless \$l;
+ my \$c = \$l->accept();
+ close \$l;
+ while (<\$c>) {};
+ close \$c;
+EOPERL
+
+perl server.pl &
+
+$dtrace -c "perl client.pl $sctpport 2" -qs /dev/stdin <<EODTRACE
BEGIN
{
ipsend = sctpsend = ipreceive = sctpreceive = 0;
Modified: projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localsctpstate.ksh.out
==============================================================================
--- projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localsctpstate.ksh.out Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localsctpstate.ksh.out Mon Apr 29 20:19:21 2019 (r346925)
@@ -10,3 +10,4 @@ sctp:::state-change to established - yes
sctp:::state-change to shutdown-sent - yes
sctp:::state-change to shutdown-received - yes
sctp:::state-change to shutdown-ack-sent - yes
+
Modified: projects/runtime-coverage-v2/lib/libvgl/main.c
==============================================================================
--- projects/runtime-coverage-v2/lib/libvgl/main.c Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/lib/libvgl/main.c Mon Apr 29 20:19:21 2019 (r346925)
@@ -77,7 +77,7 @@ struct vt_mode smode;
signal(SIGUSR2, SIG_IGN);
VGLSwitchPending = 0;
VGLAbortPending = 0;
- VGLMousePointerHide();
+ VGLMouseMode(VGL_MOUSEHIDE);
if (VGLMem != MAP_FAILED) {
VGLClear(VGLDisplay, 0);
Modified: projects/runtime-coverage-v2/lib/libvgl/mouse.c
==============================================================================
--- projects/runtime-coverage-v2/lib/libvgl/mouse.c Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/lib/libvgl/mouse.c Mon Apr 29 20:19:21 2019 (r346925)
@@ -39,56 +39,137 @@ __FBSDID("$FreeBSD$");
#include <sys/fbio.h>
#include "vgl.h"
+static void VGLMouseAction(int dummy);
+
#define BORDER 0xff /* default border -- light white in rgb 3:3:2 */
#define INTERIOR 0xa0 /* default interior -- red in rgb 3:3:2 */
+#define LARGE_MOUSE_IMG_XSIZE 19
+#define LARGE_MOUSE_IMG_YSIZE 32
+#define SMALL_MOUSE_IMG_XSIZE 10
+#define SMALL_MOUSE_IMG_YSIZE 16
#define X 0xff /* any nonzero in And mask means part of cursor */
#define B BORDER
#define I INTERIOR
-static byte StdAndMask[MOUSE_IMG_SIZE*MOUSE_IMG_SIZE] = {
- X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,
- X,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,
- X,X,X,X,X,0,0,0,0,0,0,0,0,0,0,0,
- X,X,X,X,X,X,0,0,0,0,0,0,0,0,0,0,
- X,X,X,X,X,X,X,0,0,0,0,0,0,0,0,0,
- X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,0,
- X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,
- X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,
- X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,
- X,X,X,X,X,X,X,0,0,0,0,0,0,0,0,0,
- X,X,X,0,X,X,X,X,0,0,0,0,0,0,0,0,
- X,X,0,0,X,X,X,X,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,X,X,X,X,0,0,0,0,0,0,0,
- 0,0,0,0,0,X,X,X,X,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,
+static byte LargeAndMask[] = {
+ X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ X,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ X,X,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ X,X,X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,X,X,X,X,X,X,0,0,0,0,0,0,0,
+ X,X,X,X,X,X,0,X,X,X,X,X,X,0,0,0,0,0,0,
+ X,X,X,X,X,0,0,X,X,X,X,X,X,0,0,0,0,0,0,
+ X,X,X,X,0,0,0,0,X,X,X,X,X,X,0,0,0,0,0,
+ X,X,X,0,0,0,0,0,X,X,X,X,X,X,0,0,0,0,0,
+ X,X,0,0,0,0,0,0,0,X,X,X,X,X,X,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,X,X,X,X,X,X,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,X,X,X,X,X,X,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,X,X,X,X,X,X,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,X,X,X,X,X,X,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,X,X,X,X,X,X,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,X,0,0,0,
};
-static byte StdOrMask[MOUSE_IMG_SIZE*MOUSE_IMG_SIZE] = {
- B,B,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- B,I,B,0,0,0,0,0,0,0,0,0,0,0,0,0,
- B,I,I,B,0,0,0,0,0,0,0,0,0,0,0,0,
- B,I,I,I,B,0,0,0,0,0,0,0,0,0,0,0,
- B,I,I,I,I,B,0,0,0,0,0,0,0,0,0,0,
- B,I,I,I,I,I,B,0,0,0,0,0,0,0,0,0,
- B,I,I,I,I,I,I,B,0,0,0,0,0,0,0,0,
- B,I,I,I,I,I,I,I,B,0,0,0,0,0,0,0,
- B,I,I,I,I,I,I,I,I,B,0,0,0,0,0,0,
- B,I,I,I,I,I,B,B,B,B,0,0,0,0,0,0,
- B,I,I,B,I,I,B,0,0,0,0,0,0,0,0,0,
- B,I,B,0,B,I,I,B,0,0,0,0,0,0,0,0,
- B,B,0,0,B,I,I,B,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,B,I,I,B,0,0,0,0,0,0,0,
- 0,0,0,0,0,B,I,I,B,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,B,B,0,0,0,0,0,0,0,0,
+static byte LargeOrMask[] = {
+ B,B,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ B,I,B,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ B,I,I,B,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ B,I,I,I,B,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ B,I,I,I,I,B,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ B,I,I,I,I,I,B,0,0,0,0,0,0,0,0,0,0,0,0,
+ B,I,I,I,I,I,I,B,0,0,0,0,0,0,0,0,0,0,0,
+ B,I,I,I,I,I,I,I,B,0,0,0,0,0,0,0,0,0,0,
+ B,I,I,I,I,I,I,I,I,B,0,0,0,0,0,0,0,0,0,
+ B,I,I,I,I,I,I,I,I,I,B,0,0,0,0,0,0,0,0,
+ B,I,I,I,I,I,I,I,I,I,I,B,0,0,0,0,0,0,0,
+ B,I,I,I,I,I,I,I,I,I,I,I,B,0,0,0,0,0,0,
+ B,I,I,I,I,I,I,I,I,I,I,I,I,B,0,0,0,0,0,
+ B,I,I,I,I,I,I,I,I,I,I,I,I,I,B,0,0,0,0,
+ B,I,I,I,I,I,I,I,I,I,I,I,I,I,I,B,0,0,0,
+ B,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,B,0,0,
+ B,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,B,0,
+ B,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,B,
+ B,I,I,I,I,I,I,I,I,I,I,B,B,B,B,B,B,B,B,
+ B,I,I,I,I,I,I,I,I,I,I,B,0,0,0,0,0,0,0,
+ B,I,I,I,I,I,B,I,I,I,I,B,0,0,0,0,0,0,0,
+ B,I,I,I,I,B,0,B,I,I,I,I,B,0,0,0,0,0,0,
+ B,I,I,I,B,0,0,B,I,I,I,I,B,0,0,0,0,0,0,
+ B,I,I,B,0,0,0,0,B,I,I,I,I,B,0,0,0,0,0,
+ B,I,B,0,0,0,0,0,B,I,I,I,I,B,0,0,0,0,0,
+ B,B,0,0,0,0,0,0,0,B,I,I,I,I,B,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,B,I,I,I,I,B,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,B,I,I,I,I,B,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,B,I,I,I,I,B,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,B,I,I,I,I,B,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,B,I,I,I,I,B,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,B,B,B,B,0,0,0,
};
+static byte SmallAndMask[] = {
+ X,X,0,0,0,0,0,0,0,0,
+ X,X,X,0,0,0,0,0,0,0,
+ X,X,X,X,0,0,0,0,0,0,
+ X,X,X,X,X,0,0,0,0,0,
+ X,X,X,X,X,X,0,0,0,0,
+ X,X,X,X,X,X,X,0,0,0,
+ X,X,X,X,X,X,X,X,0,0,
+ X,X,X,X,X,X,X,X,X,0,
+ X,X,X,X,X,X,X,X,X,X,
+ X,X,X,X,X,X,X,X,X,X,
+ X,X,X,X,X,X,X,0,0,0,
+ X,X,X,0,X,X,X,X,0,0,
+ X,X,0,0,X,X,X,X,0,0,
+ 0,0,0,0,0,X,X,X,X,0,
+ 0,0,0,0,0,X,X,X,X,0,
+ 0,0,0,0,0,0,X,X,0,0,
+};
+static byte SmallOrMask[] = {
+ B,B,0,0,0,0,0,0,0,0,
+ B,I,B,0,0,0,0,0,0,0,
+ B,I,I,B,0,0,0,0,0,0,
+ B,I,I,I,B,0,0,0,0,0,
+ B,I,I,I,I,B,0,0,0,0,
+ B,I,I,I,I,I,B,0,0,0,
+ B,I,I,I,I,I,I,B,0,0,
+ B,I,I,I,I,I,I,I,B,0,
+ B,I,I,I,I,I,I,I,I,B,
+ B,I,I,I,I,I,B,B,B,B,
+ B,I,I,B,I,I,B,0,0,0,
+ B,I,B,0,B,I,I,B,0,0,
+ B,B,0,0,B,I,I,B,0,0,
+ 0,0,0,0,0,B,I,I,B,0,
+ 0,0,0,0,0,B,I,I,B,0,
+ 0,0,0,0,0,0,B,B,0,0,
+};
#undef X
#undef B
#undef I
-static VGLBitmap VGLMouseStdAndMask =
- VGLBITMAP_INITIALIZER(MEMBUF, MOUSE_IMG_SIZE, MOUSE_IMG_SIZE, StdAndMask);
-static VGLBitmap VGLMouseStdOrMask =
- VGLBITMAP_INITIALIZER(MEMBUF, MOUSE_IMG_SIZE, MOUSE_IMG_SIZE, StdOrMask);
+static VGLBitmap VGLMouseLargeAndMask =
+ VGLBITMAP_INITIALIZER(MEMBUF, LARGE_MOUSE_IMG_XSIZE, LARGE_MOUSE_IMG_YSIZE,
+ LargeAndMask);
+static VGLBitmap VGLMouseLargeOrMask =
+ VGLBITMAP_INITIALIZER(MEMBUF, LARGE_MOUSE_IMG_XSIZE, LARGE_MOUSE_IMG_YSIZE,
+ LargeOrMask);
+static VGLBitmap VGLMouseSmallAndMask =
+ VGLBITMAP_INITIALIZER(MEMBUF, SMALL_MOUSE_IMG_XSIZE, SMALL_MOUSE_IMG_YSIZE,
+ SmallAndMask);
+static VGLBitmap VGLMouseSmallOrMask =
+ VGLBITMAP_INITIALIZER(MEMBUF, SMALL_MOUSE_IMG_XSIZE, SMALL_MOUSE_IMG_YSIZE,
+ SmallOrMask);
static VGLBitmap *VGLMouseAndMask, *VGLMouseOrMask;
-static int VGLMouseVisible = 0;
static int VGLMouseShown = VGL_MOUSEHIDE;
static int VGLMouseXpos = 0;
static int VGLMouseYpos = 0;
@@ -102,51 +183,44 @@ static volatile sig_atomic_t VGLMsuppressint;
VGLMouseAction(0); \
} while (0)
-void
-VGLMousePointerShow()
+int
+__VGLMouseMode(int mode)
{
- if (!VGLMouseVisible) {
- INTOFF();
- VGLMouseVisible = 1;
- __VGLBitmapCopy(&VGLVDisplay, VGLMouseXpos, VGLMouseYpos, VGLDisplay,
- VGLMouseXpos, VGLMouseYpos, MOUSE_IMG_SIZE, -MOUSE_IMG_SIZE);
- INTON();
- }
-}
+ int oldmode;
-void
-VGLMousePointerHide()
-{
- if (VGLMouseVisible) {
- INTOFF();
- VGLMouseVisible = 0;
- __VGLBitmapCopy(&VGLVDisplay, VGLMouseXpos, VGLMouseYpos, VGLDisplay,
- VGLMouseXpos, VGLMouseYpos, MOUSE_IMG_SIZE, MOUSE_IMG_SIZE);
- INTON();
- }
-}
-
-void
-VGLMouseMode(int mode)
-{
+ INTOFF();
+ oldmode = VGLMouseShown;
if (mode == VGL_MOUSESHOW) {
if (VGLMouseShown == VGL_MOUSEHIDE) {
- VGLMousePointerShow();
VGLMouseShown = VGL_MOUSESHOW;
+ __VGLBitmapCopy(&VGLVDisplay, VGLMouseXpos, VGLMouseYpos,
+ VGLDisplay, VGLMouseXpos, VGLMouseYpos,
+ VGLMouseAndMask->VXsize, -VGLMouseAndMask->VYsize);
}
}
else {
if (VGLMouseShown == VGL_MOUSESHOW) {
- VGLMousePointerHide();
VGLMouseShown = VGL_MOUSEHIDE;
+ __VGLBitmapCopy(&VGLVDisplay, VGLMouseXpos, VGLMouseYpos,
+ VGLDisplay, VGLMouseXpos, VGLMouseYpos,
+ VGLMouseAndMask->VXsize, VGLMouseAndMask->VYsize);
}
}
+ INTON();
+ return oldmode;
}
void
+VGLMouseMode(int mode)
+{
+ __VGLMouseMode(mode);
+}
+
+static void
VGLMouseAction(int dummy)
{
struct mouse_info mouseinfo;
+ int mousemode;
if (VGLMsuppressint) {
VGLMintpending = 1;
@@ -157,13 +231,14 @@ again:
VGLMintpending = 0;
mouseinfo.operation = MOUSE_GETINFO;
ioctl(0, CONS_MOUSECTL, &mouseinfo);
- if (VGLMouseShown == VGL_MOUSESHOW)
- VGLMousePointerHide();
- VGLMouseXpos = mouseinfo.u.data.x;
- VGLMouseYpos = mouseinfo.u.data.y;
+ if (VGLMouseXpos != mouseinfo.u.data.x ||
+ VGLMouseYpos != mouseinfo.u.data.y) {
+ mousemode = __VGLMouseMode(VGL_MOUSEHIDE);
+ VGLMouseXpos = mouseinfo.u.data.x;
+ VGLMouseYpos = mouseinfo.u.data.y;
+ __VGLMouseMode(mousemode);
+ }
VGLMouseButtons = mouseinfo.u.data.buttons;
- if (VGLMouseShown == VGL_MOUSESHOW)
- VGLMousePointerShow();
/*
* Loop to handle any new (suppressed) signals. This is INTON() without
@@ -178,9 +253,10 @@ again:
void
VGLMouseSetImage(VGLBitmap *AndMask, VGLBitmap *OrMask)
{
- if (VGLMouseShown == VGL_MOUSESHOW)
- VGLMousePointerHide();
+ int mousemode;
+ mousemode = __VGLMouseMode(VGL_MOUSEHIDE);
+
VGLMouseAndMask = AndMask;
if (VGLMouseOrMask != NULL) {
@@ -191,20 +267,23 @@ VGLMouseSetImage(VGLBitmap *AndMask, VGLBitmap *OrMask
VGLBitmapAllocateBits(VGLMouseOrMask);
VGLBitmapCvt(OrMask, VGLMouseOrMask);
- if (VGLMouseShown == VGL_MOUSESHOW)
- VGLMousePointerShow();
+ __VGLMouseMode(mousemode);
}
void
VGLMouseSetStdImage()
{
- VGLMouseSetImage(&VGLMouseStdAndMask, &VGLMouseStdOrMask);
+ if (VGLDisplay->VXsize > 800)
+ VGLMouseSetImage(&VGLMouseLargeAndMask, &VGLMouseLargeOrMask);
+ else
+ VGLMouseSetImage(&VGLMouseSmallAndMask, &VGLMouseSmallOrMask);
}
int
VGLMouseInit(int mode)
{
struct mouse_info mouseinfo;
+ VGLBitmap *ormask;
int andmask, border, error, i, interior;
switch (VGLModeInfo.vi_mem_model) {
@@ -231,9 +310,14 @@ VGLMouseInit(int mode)
border = strtoul(getenv("VGLMOUSEBORDERCOLOR"), NULL, 0);
if (getenv("VGLMOUSEINTERIORCOLOR") != NULL)
interior = strtoul(getenv("VGLMOUSEINTERIORCOLOR"), NULL, 0);
- for (i = 0; i < MOUSE_IMG_SIZE*MOUSE_IMG_SIZE; i++)
- VGLMouseStdOrMask.Bitmap[i] = VGLMouseStdOrMask.Bitmap[i] == BORDER ?
- border : VGLMouseStdOrMask.Bitmap[i] == INTERIOR ? interior : 0;
+ ormask = &VGLMouseLargeOrMask;
+ for (i = 0; i < ormask->VXsize * ormask->VYsize; i++)
+ ormask->Bitmap[i] = ormask->Bitmap[i] == BORDER ? border :
+ ormask->Bitmap[i] == INTERIOR ? interior : 0;
+ ormask = &VGLMouseSmallOrMask;
+ for (i = 0; i < ormask->VXsize * ormask->VYsize; i++)
+ ormask->Bitmap[i] = ormask->Bitmap[i] == BORDER ? border :
+ ormask->Bitmap[i] == INTERIOR ? interior : 0;
VGLMouseSetStdImage();
mouseinfo.operation = MOUSE_MODE;
mouseinfo.u.mode.signal = SIGUSR2;
@@ -288,9 +372,10 @@ VGLMouseFreezeXY(int x, int y)
INTOFF();
if (VGLMouseShown != VGL_MOUSESHOW)
return 0;
- if (x >= VGLMouseXpos && x < VGLMouseXpos + MOUSE_IMG_SIZE &&
- y >= VGLMouseYpos && y < VGLMouseYpos + MOUSE_IMG_SIZE &&
- VGLMouseAndMask->Bitmap[(y-VGLMouseYpos)*MOUSE_IMG_SIZE+(x-VGLMouseXpos)])
+ if (x >= VGLMouseXpos && x < VGLMouseXpos + VGLMouseAndMask->VXsize &&
+ y >= VGLMouseYpos && y < VGLMouseYpos + VGLMouseAndMask->VYsize &&
+ VGLMouseAndMask->Bitmap[(y-VGLMouseYpos)*VGLMouseAndMask->VXsize+
+ (x-VGLMouseXpos)])
return 1;
return 0;
}
@@ -303,13 +388,13 @@ VGLMouseOverlap(int x, int y, int width, int hight)
if (VGLMouseShown != VGL_MOUSESHOW)
return 0;
if (x > VGLMouseXpos)
- overlap = (VGLMouseXpos + MOUSE_IMG_SIZE) - x;
+ overlap = (VGLMouseXpos + VGLMouseAndMask->VXsize) - x;
else
overlap = (x + width) - VGLMouseXpos;
if (overlap <= 0)
return 0;
if (y > VGLMouseYpos)
- overlap = (VGLMouseYpos + MOUSE_IMG_SIZE) - y;
+ overlap = (VGLMouseYpos + VGLMouseAndMask->VYsize) - y;
else
overlap = (y + hight) - VGLMouseYpos;
return overlap > 0;
@@ -324,10 +409,10 @@ VGLMouseMerge(int x, int y, int width, byte *line)
if (xstart < VGLMouseXpos)
xstart = VGLMouseXpos;
xend = x + width;
- if (xend > VGLMouseXpos + MOUSE_IMG_SIZE)
- xend = VGLMouseXpos + MOUSE_IMG_SIZE;
+ if (xend > VGLMouseXpos + VGLMouseAndMask->VXsize)
+ xend = VGLMouseXpos + VGLMouseAndMask->VXsize;
for (x1 = xstart; x1 < xend; x1++) {
- pos = (y - VGLMouseYpos) * MOUSE_IMG_SIZE + x1 - VGLMouseXpos;
+ pos = (y - VGLMouseYpos) * VGLMouseAndMask->VXsize + x1 - VGLMouseXpos;
if (VGLMouseAndMask->Bitmap[pos])
bcopy(&VGLMouseOrMask->Bitmap[pos * VGLDisplay->PixelBytes],
&line[(x1 - x) * VGLDisplay->PixelBytes], VGLDisplay->PixelBytes);
Modified: projects/runtime-coverage-v2/lib/libvgl/simple.c
==============================================================================
--- projects/runtime-coverage-v2/lib/libvgl/simple.c Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/lib/libvgl/simple.c Mon Apr 29 20:19:21 2019 (r346925)
@@ -465,14 +465,11 @@ void
VGLClear(VGLBitmap *object, u_long color)
{
VGLBitmap src;
- int i, len, mouseoverlap, offset;
+ int i, len, mousemode, offset;
VGLCheckSwitch();
if (object == VGLDisplay) {
VGLMouseFreeze();
- mouseoverlap = VGLMouseOverlap(0, 0, object->VXsize, object->VYsize);
- if (mouseoverlap)
- VGLMousePointerHide();
VGLClear(&VGLVDisplay, color);
} else if (object->Type != MEMBUF)
return; /* invalid */
@@ -499,18 +496,21 @@ VGLClear(VGLBitmap *object, u_long color)
for (i = 0; i < object->VXsize; i++)
bcopy(&color, src.Bitmap + i * object->PixelBytes, object->PixelBytes);
for (i = 0; i < object->VYsize; i++)
- __VGLBitmapCopy(&src, 0, 0, object, 0, i, object->VXsize, 1);
+ __VGLBitmapCopy(&src, 0, 0, object, 0, i, object->VXsize, -1);
break;
case VIDBUF8X:
+ mousemode = __VGLMouseMode(VGL_MOUSEHIDE);
/* XXX works only for Xsize % 4 = 0 */
outb(0x3c6, 0xff);
outb(0x3c4, 0x02); outb(0x3c5, 0x0f);
memset(object->Bitmap, (byte)color, VGLAdpInfo.va_line_width*object->VYsize);
+ __VGLMouseMode(mousemode);
break;
case VIDBUF4:
case VIDBUF4S:
+ mousemode = __VGLMouseMode(VGL_MOUSEHIDE);
/* XXX works only for Xsize % 8 = 0 */
outb(0x3c4, 0x02); outb(0x3c5, 0x0f);
outb(0x3ce, 0x05); outb(0x3cf, 0x02); /* mode 2 */
@@ -524,13 +524,11 @@ VGLClear(VGLBitmap *object, u_long color)
offset += len;
}
outb(0x3ce, 0x05); outb(0x3cf, 0x00);
+ __VGLMouseMode(mousemode);
break;
}
- if (object == VGLDisplay) {
- if (mouseoverlap)
- VGLMousePointerShow();
+ if (object == VGLDisplay)
VGLMouseUnFreeze();
- }
}
static inline u_long
Modified: projects/runtime-coverage-v2/lib/libvgl/vgl.h
==============================================================================
--- projects/runtime-coverage-v2/lib/libvgl/vgl.h Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/lib/libvgl/vgl.h Mon Apr 29 20:19:21 2019 (r346925)
@@ -125,10 +125,8 @@ int VGLSetVScreenSize(VGLBitmap *object, int VXsize, i
int VGLPanScreen(VGLBitmap *object, int x, int y);
int VGLSetSegment(unsigned int offset);
/* mouse.c */
-void VGLMousePointerShow(void);
-void VGLMousePointerHide(void);
+int __VGLMouseMode(int mode);
void VGLMouseMode(int mode);
-void VGLMouseAction(int dummy);
void VGLMouseSetImage(VGLBitmap *AndMask, VGLBitmap *OrMask);
void VGLMouseSetStdImage(void);
int VGLMouseInit(int mode);
Modified: projects/runtime-coverage-v2/sbin/ipfw/ipfw2.c
==============================================================================
--- projects/runtime-coverage-v2/sbin/ipfw/ipfw2.c Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/sbin/ipfw/ipfw2.c Mon Apr 29 20:19:21 2019 (r346925)
@@ -1701,9 +1701,13 @@ print_instruction(struct buf_pr *bp, const struct form
IPFW_TLV_STATE_NAME));
break;
case O_IP6:
+ if (state->flags & HAVE_PROTO)
+ bprintf(bp, " proto");
bprintf(bp, " ip6");
break;
case O_IP4:
+ if (state->flags & HAVE_PROTO)
+ bprintf(bp, " proto");
bprintf(bp, " ip4");
break;
case O_ICMP6TYPE:
Modified: projects/runtime-coverage-v2/share/man/man4/Makefile
==============================================================================
--- projects/runtime-coverage-v2/share/man/man4/Makefile Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/share/man/man4/Makefile Mon Apr 29 20:19:21 2019 (r346925)
@@ -887,7 +887,8 @@ _ccd.4= ccd.4
.endif
.if ${MK_CDDL} != "no"
-_dtrace_provs= dtrace_io.4 \
+_dtrace_provs= dtrace_audit.4 \
+ dtrace_io.4 \
dtrace_ip.4 \
dtrace_lockstat.4 \
dtrace_proc.4 \
@@ -896,6 +897,8 @@ _dtrace_provs= dtrace_io.4 \
dtrace_tcp.4 \
dtrace_udp.4 \
dtrace_udplite.4
+
+MLINKS+= dtrace_audit.4 dtaudit.4
.endif
.if ${MK_EFI} != "no"
Modified: projects/runtime-coverage-v2/share/man/man4/audit.4
==============================================================================
--- projects/runtime-coverage-v2/share/man/man4/audit.4 Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/share/man/man4/audit.4 Mon Apr 29 20:19:21 2019 (r346925)
@@ -1,6 +1,11 @@
-.\" Copyright (c) 2006 Robert N. M. Watson
+.\" Copyright (c) 2006, 2019 Robert N. M. Watson
.\" All rights reserved.
.\"
+.\" This software was developed in part by BAE Systems, the University of
+.\" Cambridge Computer Laboratory, and Memorial University under DARPA/AFRL
+.\" contract FA8650-15-C-7558 ("CADETS"), as part of the DARPA Transparent
+.\" Computing (TC) research program.
+.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
@@ -24,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 31, 2009
+.Dd April 28, 2019
.Dt AUDIT 4
.Os
.Sh NAME
@@ -74,6 +79,12 @@ Audit pipe special devices, discussed in
provide a configurable live tracking mechanism to allow applications to
tee the audit trail, as well as to configure custom preselection parameters
to track users and events in a fine-grained manner.
+.Ss DTrace Audit Provider
+The DTrace Audit Provider,
+.Xr dtaudit 4 ,
+allows D scripts to enable capture of in-kernel audit records for kernel audit
+event types, and then process their contents during audit commit or BSM
+generation.
.Sh SEE ALSO
.Xr auditreduce 1 ,
.Xr praudit 1 ,
@@ -88,6 +99,7 @@ to track users and events in a fine-grained manner.
.Xr setauid 2 ,
.Xr libbsm 3 ,
.Xr auditpipe 4 ,
+.Xr dtaudit 4 ,
.Xr audit.log 5 ,
.Xr audit_class 5 ,
.Xr audit_control 5 ,
Modified: projects/runtime-coverage-v2/share/man/man4/auditpipe.4
==============================================================================
--- projects/runtime-coverage-v2/share/man/man4/auditpipe.4 Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/share/man/man4/auditpipe.4 Mon Apr 29 20:19:21 2019 (r346925)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 30, 2018
+.Dd April 28, 2019
.Dt AUDITPIPE 4
.Os
.Sh NAME
@@ -221,6 +221,7 @@ to review the default audit trail.
.Xr poll 2 ,
.Xr select 2 ,
.Xr audit 4 ,
+.Xr dtaudit 4 ,
.Xr audit_control 5 ,
.Xr audit 8 ,
.Xr auditd 8
Copied: projects/runtime-coverage-v2/share/man/man4/dtrace_audit.4 (from r346924, head/share/man/man4/dtrace_audit.4)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/runtime-coverage-v2/share/man/man4/dtrace_audit.4 Mon Apr 29 20:19:21 2019 (r346925, copy of r346924, head/share/man/man4/dtrace_audit.4)
@@ -0,0 +1,178 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2019 Robert N. M. Watson
+.\"
+.\" This software was developed by BAE Systems, the University of Cambridge
+.\" Computer Laboratory, and Memorial University under DARPA/AFRL contract
+.\" FA8650-15-C-7558 ("CADETS"), as part of the DARPA Transparent Computing
+.\" (TC) research program.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd April 28, 2019
+.Dt DTRACE_AUDIT 4
+.Os
+.Sh NAME
+.Nm dtrace_audit
+.Nd A DTrace provider for tracing
+.Xr audit 4
+events
+.Sh SYNOPSIS
+.Pp
+.Fn audit:event:aue_*:commit "char *eventname" "struct audit_record *ar"
+.Fn audit:event:aue_*:bsm "char *eventname" "struct audit_record *ar" "const void *" "size_t"
+.Pp
+To compile this module into the kernel, place the following in your kernel
+configuration file:
+.Pp
+.Bd -literal -offset indent
+.Cd "options DTAUDIT"
+.Ed
+.Pp
+Alternatively, to load the module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+dtaudit_load="YES"
+.Ed
+.Sh DESCRIPTION
+The DTrace
+.Nm dtaudit
+provider allows users to trace events in the kernel security auditing
+subsystem,
+.Xr audit 4 .
+.Xr audit 4
+provides detailed logging of a configurable set of security-relevant system
+calls, including key arguments (such as file paths) and return values that are
+copied race-free as the system call proceeds.
+The
+.Nm dtaudit
+provider allows DTrace scripts to selectively enable in-kernel audit-record
+capture for system calls, and then access those records in either the
+in-kernel format or BSM format (\c
+.Xr audit.log 5 )
+when the system call completes.
+While the in-kernel audit record data structure is subject to change as the
+kernel changes over time, it is a much more friendly interface for use in D
+scripts than either those available via the DTrace system-call provider or the
+BSM trail itself.
+.Ss Configuration
+The
+.Nm dtaudit
+provider relies on
+.Xr audit 4
+being compiled into the kernel.
+.Nm dtaudit
+probes become available only once there is an event-to-name mapping installed
+in the kernel, normally done by
+.Xr auditd 8
+during the boot process, if audit is enabled in
+.Xr rc.conf 5 :
+.Bd -literal -offset indent
+auditd_enable="YES"
+.Ed
+.Pp
+If
+.Nm dtaudit
+probes are required earlier in boot -- for example, in single-user mode -- or
+without enabling
+.Xr audit 4 ,
+they can be preloaded in the boot loader by adding this line to
+.Xr loader.conf 5 .
+.Bd -literal -offset indent
+audit_event_load="YES"
+.Ed
+.Ss Probes
+The
+.Fn audit:event:aue_*:commit
+probes fire synchronously during system-call return, giving access to two
+arguments: a
+.Vt char *
+audit event name, and
+the
+.Vt struct audit_record *
+in-kernel audit record.
+Because the probe fires in system-call return, the user thread has not yet
+regained control, and additional information from the thread and process
+remains available for capture by the script.
+.Pp
+The
+.Fn audit:event:aue_*:bsm
+probes fire asynchonously from system-call return, following BSM conversion
+and just prior to being written to disk, giving access to four arguments: a
+.Vt char *
+audit event name, the
+.Vt struct audit_record *
+in-kernel audit record, a
+.Vt const void *
+pointer to the converted BSM record, and a
+.Vt size_t
+for the length of the BSM record.
+.Sh IMPLEMENTATION NOTES
+When a set of
+.Nm dtaudit
+probes are registered, corresponding in-kernel audit records will be captured
+and their probes will fire regardless of whether the
+.Xr audit 4
+subsystem itself would have captured the record for the purposes of writing it
+to the audit trail, or for delivery to a
+.Xr auditpipe 4 .
+In-kernel audit records allocated only because of enabled
+.Xr dtaudit 4
+probes will not be unnecessarily written to the audit trail or enabled pipes.
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr audit 4 ,
+.Xr audit.log 5 ,
+.Xr loader.conf 5 ,
+.Xr rc.conf 5 ,
+.Xr auditd 8
+.Sh HISTORY
+The
+.Nm dtaudit
+provider first appeared in
+.Fx 12.0 .
+.Sh AUTHORS
+This software and this manual page were developed by BAE Systems, the
+University of Cambridge Computer Laboratory, and Memorial University under
+DARPA/AFRL contract
+.Pq FA8650-15-C-7558
+.Pq Do CADETS Dc ,
+as part of the DARPA Transparent Computing (TC) research program.
+The
+.Nm dtaudit
+provider and this manual page were written by
+.An Robert Watson Aq Mt rwatson at FreeBSD.org .
+.Sh BUGS
+Because
+.Xr audit 4
+maintains its primary event-to-name mapping database in userspace, that
+database must be loaded into the kernel before
+.Nm dtaudit
+probes become available.
+.Pp
+.Nm dtaudit
+is only able to provide access to system-call audit events, not the full
+scope of userspace events, such as those relating to login, password change,
+and so on.
Modified: projects/runtime-coverage-v2/stand/efi/loader/main.c
==============================================================================
--- projects/runtime-coverage-v2/stand/efi/loader/main.c Mon Apr 29 20:17:53 2019 (r346924)
+++ projects/runtime-coverage-v2/stand/efi/loader/main.c Mon Apr 29 20:19:21 2019 (r346925)
@@ -472,13 +472,35 @@ find_currdev(bool do_bootmgr, bool is_last,
*/
rootdev = getenv("rootdev");
if (rootdev != NULL) {
- printf("Setting currdev to configured rootdev %s\n", rootdev);
+ printf(" Setting currdev to configured rootdev %s\n",
+ rootdev);
set_currdev(rootdev);
return (0);
}
/*
- * Second choice: If we can find out image boot_info, and there's
+ * Second choice: If uefi_rootdev is set, translate that UEFI device
+ * path to the loader's internal name and use that.
+ */
+ do {
+ rootdev = getenv("uefi_rootdev");
+ if (rootdev == NULL)
+ break;
+ devpath = efi_name_to_devpath(rootdev);
+ if (devpath == NULL)
+ break;
+ dp = efiblk_get_pdinfo_by_device_path(devpath);
+ efi_devpath_free(devpath);
+ if (dp == NULL)
+ break;
+ printf(" Setting currdev to UEFI path %s\n",
+ rootdev);
+ set_currdev_pdinfo(dp);
+ return (0);
+ } while (0);
+
+ /*
+ * Third choice: If we can find out image boot_info, and there's
* a follow-on boot image in that boot_info, use that. In this
* case root will be the partition specified in that image and
* we'll load the kernel specified by the file path. Should there
@@ -742,6 +764,80 @@ out:
return (how);
}
+void
+parse_loader_efi_config(EFI_HANDLE h, const char *env_fn)
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list