From owner-svn-src-projects@FreeBSD.ORG Thu Jun 7 09:52:49 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E95B510656A8; Thu, 7 Jun 2012 09:52:49 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D13698FC1A; Thu, 7 Jun 2012 09:52:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q579qnqV075154; Thu, 7 Jun 2012 09:52:49 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q579qnZR075114; Thu, 7 Jun 2012 09:52:49 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201206070952.q579qnZR075114@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 7 Jun 2012 09:52:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r236711 - in projects/pf/head: cddl/contrib/opensolaris/lib/libzfs/common cddl/lib/libdtrace contrib/bind9 contrib/bind9/lib/dns contrib/bsnmp/snmp_mibII gnu/lib/libsupc++ include lib/l... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jun 2012 09:52:50 -0000 Author: glebius Date: Thu Jun 7 09:52:48 2012 New Revision: 236711 URL: http://svn.freebsd.org/changeset/base/236711 Log: Merge head r233826 through r236710. Added: projects/pf/head/cddl/lib/libdtrace/io.d - copied unchanged from r236710, head/cddl/lib/libdtrace/io.d projects/pf/head/share/man/man4/filemon.4 - copied unchanged from r236710, head/share/man/man4/filemon.4 projects/pf/head/sys/dev/filemon/ - copied from r236710, head/sys/dev/filemon/ projects/pf/head/sys/modules/filemon/ - copied from r236710, head/sys/modules/filemon/ projects/pf/head/tools/regression/filemon/ - copied from r236710, head/tools/regression/filemon/ projects/pf/head/tools/tools/ifpifa/ - copied from r236710, head/tools/tools/ifpifa/ Modified: projects/pf/head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c projects/pf/head/contrib/bind9/CHANGES projects/pf/head/contrib/bind9/lib/dns/rdata.c projects/pf/head/contrib/bind9/lib/dns/rdataslab.c projects/pf/head/contrib/bind9/version projects/pf/head/contrib/bsnmp/snmp_mibII/mibII_tcp.c projects/pf/head/gnu/lib/libsupc++/Version.map projects/pf/head/include/fmtmsg.h projects/pf/head/lib/libc/include/port_before.h projects/pf/head/lib/libc/net/getaddrinfo.c projects/pf/head/lib/libc/stdlib/realpath.c projects/pf/head/lib/libelf/elf_begin.3 projects/pf/head/lib/libgssapi/gss_unwrap.3 projects/pf/head/lib/libgssapi/gss_wrap.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_get_error.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_get_versions.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_getcred.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_is_installed.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_max_data_length.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_seccreate.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_set_callback.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_set_defaults.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 projects/pf/head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 projects/pf/head/sbin/camcontrol/camcontrol.8 projects/pf/head/sbin/ifconfig/ifconfig.8 projects/pf/head/share/man/man4/Makefile projects/pf/head/share/man/man4/bce.4 projects/pf/head/share/man/man4/io.4 projects/pf/head/share/man/man4/ip.4 projects/pf/head/share/man/man4/mpt.4 projects/pf/head/share/man/man4/ng_ksocket.4 projects/pf/head/share/man/man4/vlan.4 projects/pf/head/share/man/man5/make.conf.5 projects/pf/head/share/man/man5/rc.conf.5 projects/pf/head/share/man/man7/development.7 projects/pf/head/share/man/man9/rwlock.9 projects/pf/head/share/misc/committers-src.dot projects/pf/head/sys/arm/at91/at91.c projects/pf/head/sys/arm/at91/at91_machdep.c projects/pf/head/sys/arm/at91/at91_mci.c projects/pf/head/sys/arm/at91/at91_pmc.c projects/pf/head/sys/arm/at91/at91reg.h projects/pf/head/sys/arm/at91/at91rm9200.c projects/pf/head/sys/arm/at91/at91rm92reg.h projects/pf/head/sys/arm/at91/at91sam9260.c projects/pf/head/sys/arm/at91/at91sam9g20.c projects/pf/head/sys/arm/at91/at91var.h projects/pf/head/sys/boot/ofw/libofw/ofw_disk.c projects/pf/head/sys/boot/sparc64/loader/main.c projects/pf/head/sys/cam/ata/ata_da.c projects/pf/head/sys/cam/ata/ata_pmp.c projects/pf/head/sys/cam/ata/ata_xpt.c projects/pf/head/sys/cam/cam_xpt.c projects/pf/head/sys/cam/scsi/scsi_all.c projects/pf/head/sys/cam/scsi/scsi_all.h projects/pf/head/sys/cam/scsi/scsi_cd.c projects/pf/head/sys/cam/scsi/scsi_da.c projects/pf/head/sys/cam/scsi/scsi_pt.c projects/pf/head/sys/cam/scsi/scsi_xpt.c projects/pf/head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/pf/head/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/pf/head/sys/dev/ae/if_ae.c projects/pf/head/sys/dev/ahci/ahci.c projects/pf/head/sys/dev/aic7xxx/aicasm/Makefile projects/pf/head/sys/dev/aic7xxx/aicasm/aicasm.c projects/pf/head/sys/dev/ata/ata-all.c projects/pf/head/sys/dev/ath/if_ath.c projects/pf/head/sys/dev/ath/if_ath_misc.h projects/pf/head/sys/dev/ath/if_ath_rx.c projects/pf/head/sys/dev/bge/if_bgereg.h projects/pf/head/sys/dev/ixgbe/ixgbe.c projects/pf/head/sys/dev/jme/if_jme.c projects/pf/head/sys/dev/mvs/mvs.c projects/pf/head/sys/dev/siis/siis.c projects/pf/head/sys/fs/nfsclient/nfs_clbio.c projects/pf/head/sys/geom/multipath/g_multipath.c projects/pf/head/sys/kern/uipc_syscalls.c projects/pf/head/sys/modules/Makefile projects/pf/head/sys/net/bpf.c projects/pf/head/sys/netinet/libalias/libalias.3 projects/pf/head/sys/netinet/tcp_input.c projects/pf/head/sys/netinet6/in6.c projects/pf/head/tools/tools/syscall_timing/syscall_timing.c projects/pf/head/tools/tools/tinybsd/README projects/pf/head/usr.bin/find/find.1 projects/pf/head/usr.bin/gzip/zmore.1 projects/pf/head/usr.bin/kdump/kdump.1 projects/pf/head/usr.bin/kdump/kdump.c projects/pf/head/usr.bin/usbhidctl/usbhidctl.1 projects/pf/head/usr.sbin/inetd/inetd.c projects/pf/head/usr.sbin/inetd/inetd.h projects/pf/head/usr.sbin/pmcstat/pmcstat_log.c Directory Properties: projects/pf/head/ (props changed) projects/pf/head/cddl/contrib/opensolaris/ (props changed) projects/pf/head/contrib/bind9/ (props changed) projects/pf/head/gnu/lib/ (props changed) projects/pf/head/lib/libc/ (props changed) projects/pf/head/sbin/ (props changed) projects/pf/head/share/man/man4/ (props changed) projects/pf/head/sys/ (props changed) projects/pf/head/sys/boot/ (props changed) projects/pf/head/sys/contrib/pf/ (props changed) Modified: projects/pf/head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- projects/pf/head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Thu Jun 7 09:52:48 2012 (r236711) @@ -23,6 +23,7 @@ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2010 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 DEY Storage Systems, Inc. All rights reserved. * Copyright (c) 2011-2012 Pawel Jakub Dawidek . * All rights reserved. * Copyright (c) 2012 Martin Matuska . All rights reserved. @@ -2321,6 +2322,17 @@ zfs_prop_get(zfs_handle_t *zhp, zfs_prop } break; + case ZFS_PROP_GUID: + /* + * GUIDs are stored as numbers, but they are identifiers. + * We don't want them to be pretty printed, because pretty + * printing mangles the ID into a truncated and useless value. + */ + if (get_numeric_property(zhp, prop, src, &source, &val) != 0) + return (-1); + (void) snprintf(propbuf, proplen, "%llu", (u_longlong_t)val); + break; + default: switch (zfs_prop_get_type(prop)) { case PROP_TYPE_NUMBER: Copied: projects/pf/head/cddl/lib/libdtrace/io.d (from r236710, head/cddl/lib/libdtrace/io.d) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/head/cddl/lib/libdtrace/io.d Thu Jun 7 09:52:48 2012 (r236711, copy of r236710, head/cddl/lib/libdtrace/io.d) @@ -0,0 +1,220 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + * + * $FreeBSD$ + */ +/* + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +#pragma D depends_on module unix +#pragma D depends_on provider io + +inline int B_BUSY = B_BUSY; +#pragma D binding "1.0" B_BUSY +inline int B_DONE = 0x00000200; +#pragma D binding "1.0" B_DONE +inline int B_ERROR = B_ERROR; +#pragma D binding "1.0" B_ERROR +inline int B_PAGEIO = B_PAGEIO; +#pragma D binding "1.0" B_PAGEIO +inline int B_PHYS = B_PHYS; +#pragma D binding "1.0" B_PHYS +inline int B_READ = B_READ; +#pragma D binding "1.0" B_READ +inline int B_WRITE = B_WRITE; +#pragma D binding "1.0" B_WRITE +inline int B_ASYNC = 0x00000004; +#pragma D binding "1.0" B_ASYNC + +typedef struct bufinfo { + int b_flags; /* buffer status */ + size_t b_bcount; /* number of bytes */ + caddr_t b_addr; /* buffer address */ + uint64_t b_lblkno; /* block # on device */ + uint64_t b_blkno; /* expanded block # on device */ + size_t b_resid; /* # of bytes not transferred */ + size_t b_bufsize; /* size of allocated buffer */ + caddr_t b_iodone; /* I/O completion routine */ + int b_error; /* expanded error field */ + dev_t b_edev; /* extended device */ +} bufinfo_t; + +#pragma D binding "1.0" translator +translator bufinfo_t < struct buf *B > { + b_flags = B->b_flags; + b_addr = B->b_un.b_addr; + b_bcount = B->b_bcount; + b_lblkno = B->_b_blkno._f; + b_blkno = sizeof (long) == 8 ? B->_b_blkno._f : B->_b_blkno._p._l; + b_resid = B->b_resid; + b_bufsize = B->b_bufsize; + b_iodone = (caddr_t)B->b_iodone; + b_error = B->b_error; + b_edev = B->b_edev; +}; + +typedef struct devinfo { + int dev_major; /* major number */ + int dev_minor; /* minor number */ + int dev_instance; /* instance number */ + string dev_name; /* name of device */ + string dev_statname; /* name of device + instance/minor */ + string dev_pathname; /* pathname of device */ +} devinfo_t; + +#pragma D binding "1.0" translator +translator devinfo_t < struct buf *B > { + dev_major = B->b_dip != NULL ? getmajor(B->b_edev) : + getmajor(B->b_file->v_vfsp->vfs_dev); + dev_minor = B->b_dip != NULL ? getminor(B->b_edev) : + getminor(B->b_file->v_vfsp->vfs_dev); + dev_instance = B->b_dip == NULL ? + getminor(B->b_file->v_vfsp->vfs_dev) : + ((struct dev_info *)B->b_dip)->devi_instance; + dev_name = B->b_dip == NULL ? "nfs" : + stringof(`devnamesp[getmajor(B->b_edev)].dn_name); + dev_statname = strjoin(B->b_dip == NULL ? "nfs" : + stringof(`devnamesp[getmajor(B->b_edev)].dn_name), + lltostr(B->b_dip == NULL ? getminor(B->b_file->v_vfsp->vfs_dev) : + ((struct dev_info *)B->b_dip)->devi_instance == 0 && + ((struct dev_info *)B->b_dip)->devi_parent != NULL && + ((struct dev_info *)B->b_dip)->devi_parent->devi_node_name == + "pseudo" ? getminor(B->b_edev) : + ((struct dev_info *)B->b_dip)->devi_instance)); + dev_pathname = B->b_dip == NULL ? "" : + ddi_pathname(B->b_dip, getminor(B->b_edev)); +}; + +typedef struct fileinfo { + string fi_name; /* name (basename of fi_pathname) */ + string fi_dirname; /* directory (dirname of fi_pathname) */ + string fi_pathname; /* full pathname */ + offset_t fi_offset; /* offset within file */ + string fi_fs; /* filesystem */ + string fi_mount; /* mount point of file system */ + int fi_oflags; /* open(2) flags for file descriptor */ +} fileinfo_t; + +#pragma D binding "1.0" translator +translator fileinfo_t < struct buf *B > { + fi_name = B->b_file == NULL ? "" : + B->b_file->v_path == NULL ? "" : + basename(cleanpath(B->b_file->v_path)); + fi_dirname = B->b_file == NULL ? "" : + B->b_file->v_path == NULL ? "" : + dirname(cleanpath(B->b_file->v_path)); + fi_pathname = B->b_file == NULL ? "" : + B->b_file->v_path == NULL ? "" : + cleanpath(B->b_file->v_path); + fi_offset = B->b_offset; + fi_fs = B->b_file == NULL ? "" : + stringof(B->b_file->v_op->vnop_name); + fi_mount = B->b_file == NULL ? "" : + B->b_file->v_vfsp->vfs_vnodecovered == NULL ? "/" : + B->b_file->v_vfsp->vfs_vnodecovered->v_path == NULL ? "" : + cleanpath(B->b_file->v_vfsp->vfs_vnodecovered->v_path); + fi_oflags = 0; +}; + +/* + * The following inline constants can be used to examine fi_oflags when using + * the fds[] array or a translated fileinfo_t. Note that the various open + * flags behave as a bit-field *except* for O_RDONLY, O_WRONLY, and O_RDWR. + * To test the open mode, you write code similar to that used with the fcntl(2) + * F_GET[X]FL command, such as: if ((fi_oflags & O_ACCMODE) == O_WRONLY). + */ +inline int O_ACCMODE = 0x0003; +#pragma D binding "1.1" O_ACCMODE + +inline int O_RDONLY = 0x0000; +#pragma D binding "1.1" O_RDONLY +inline int O_WRONLY = 0x0001; +#pragma D binding "1.1" O_WRONLY +inline int O_RDWR = 0x0002; +#pragma D binding "1.1" O_RDWR + +inline int O_APPEND = 0x0008; +#pragma D binding "1.1" O_APPEND +inline int O_CREAT = 0x0200; +#pragma D binding "1.1" O_CREAT +inline int O_DSYNC = O_DSYNC; +#pragma D binding "1.1" O_DSYNC +inline int O_EXCL = 0x0800; +#pragma D binding "1.1" O_EXCL +inline int O_LARGEFILE = O_LARGEFILE; +#pragma D binding "1.1" O_LARGEFILE +inline int O_NOCTTY = 0x8000; +#pragma D binding "1.1" O_NOCTTY +inline int O_NONBLOCK = 0x0004; +#pragma D binding "1.1" O_NONBLOCK +inline int O_NDELAY = 0x0004; +#pragma D binding "1.1" O_NDELAY +inline int O_RSYNC = O_RSYNC; +#pragma D binding "1.1" O_RSYNC +inline int O_SYNC = 0x0080; +#pragma D binding "1.1" O_SYNC +inline int O_TRUNC = 0x0400; +#pragma D binding "1.1" O_TRUNC +inline int O_XATTR = O_XATTR; +#pragma D binding "1.1" O_XATTR + +#pragma D binding "1.1" translator +translator fileinfo_t < struct file *F > { + fi_name = F == NULL ? "" : + F->f_vnode->v_path == NULL ? "" : + basename(cleanpath(F->f_vnode->v_path)); + fi_dirname = F == NULL ? "" : + F->f_vnode->v_path == NULL ? "" : + dirname(cleanpath(F->f_vnode->v_path)); + fi_pathname = F == NULL ? "" : + F->f_vnode->v_path == NULL ? "" : + cleanpath(F->f_vnode->v_path); + fi_offset = F == NULL ? 0 : F->f_offset; + fi_fs = F == NULL ? "" : stringof(F->f_vnode->v_op->vnop_name); + fi_mount = F == NULL ? "" : + F->f_vnode->v_vfsp->vfs_vnodecovered == NULL ? "/" : + F->f_vnode->v_vfsp->vfs_vnodecovered->v_path == NULL ? "" : + cleanpath(F->f_vnode->v_vfsp->vfs_vnodecovered->v_path); + fi_oflags = F == NULL ? 0 : F->f_flag + (int)FOPEN; +}; + +inline fileinfo_t fds[int fd] = xlate ( + fd >= 0 && fd < curthread->t_procp->p_user.u_finfo.fi_nfiles ? + curthread->t_procp->p_user.u_finfo.fi_list[fd].uf_file : NULL); + +#pragma D attributes Stable/Stable/Common fds +#pragma D binding "1.1" fds + +#pragma D binding "1.2" translator +translator fileinfo_t < struct vnode *V > { + fi_name = V->v_path == NULL ? "" : + basename(cleanpath(V->v_path)); + fi_dirname = V->v_path == NULL ? "" : + dirname(cleanpath(V->v_path)); + fi_pathname = V->v_path == NULL ? "" : cleanpath(V->v_path); + fi_fs = stringof(V->v_op->vnop_name); + fi_mount = V->v_vfsp->vfs_vnodecovered == NULL ? "/" : + V->v_vfsp->vfs_vnodecovered->v_path == NULL ? "" : + cleanpath(V->v_vfsp->vfs_vnodecovered->v_path); +}; Modified: projects/pf/head/contrib/bind9/CHANGES ============================================================================== --- projects/pf/head/contrib/bind9/CHANGES Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/contrib/bind9/CHANGES Thu Jun 7 09:52:48 2012 (r236711) @@ -1,3 +1,8 @@ + --- 9.8.3-P1 released --- + +3331. [security] dns_rdataslab_fromrdataset could produce bad + rdataslabs. [RT #29644] + --- 9.8.3 released --- 3318. [tuning] Reduce the amount of work performed while holding a Modified: projects/pf/head/contrib/bind9/lib/dns/rdata.c ============================================================================== --- projects/pf/head/contrib/bind9/lib/dns/rdata.c Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/contrib/bind9/lib/dns/rdata.c Thu Jun 7 09:52:48 2012 (r236711) @@ -329,8 +329,8 @@ dns_rdata_compare(const dns_rdata_t *rda REQUIRE(rdata1 != NULL); REQUIRE(rdata2 != NULL); - REQUIRE(rdata1->data != NULL); - REQUIRE(rdata2->data != NULL); + REQUIRE(rdata1->length == 0 || rdata1->data != NULL); + REQUIRE(rdata2->length == 0 || rdata2->data != NULL); REQUIRE(DNS_RDATA_VALIDFLAGS(rdata1)); REQUIRE(DNS_RDATA_VALIDFLAGS(rdata2)); @@ -360,8 +360,8 @@ dns_rdata_casecompare(const dns_rdata_t REQUIRE(rdata1 != NULL); REQUIRE(rdata2 != NULL); - REQUIRE(rdata1->data != NULL); - REQUIRE(rdata2->data != NULL); + REQUIRE(rdata1->length == 0 || rdata1->data != NULL); + REQUIRE(rdata2->length == 0 || rdata2->data != NULL); REQUIRE(DNS_RDATA_VALIDFLAGS(rdata1)); REQUIRE(DNS_RDATA_VALIDFLAGS(rdata2)); Modified: projects/pf/head/contrib/bind9/lib/dns/rdataslab.c ============================================================================== --- projects/pf/head/contrib/bind9/lib/dns/rdataslab.c Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/contrib/bind9/lib/dns/rdataslab.c Thu Jun 7 09:52:48 2012 (r236711) @@ -126,6 +126,11 @@ isc_result_t dns_rdataslab_fromrdataset(dns_rdataset_t *rdataset, isc_mem_t *mctx, isc_region_t *region, unsigned int reservelen) { + /* + * Use &removed as a sentinal pointer for duplicate + * rdata as rdata.data == NULL is valid. + */ + static unsigned char removed; struct xrdata *x; unsigned char *rawbuf; #if DNS_RDATASET_FIXED @@ -169,6 +174,7 @@ dns_rdataslab_fromrdataset(dns_rdataset_ INSIST(result == ISC_R_SUCCESS); dns_rdata_init(&x[i].rdata); dns_rdataset_current(rdataset, &x[i].rdata); + INSIST(x[i].rdata.data != &removed); #if DNS_RDATASET_FIXED x[i].order = i; #endif @@ -201,8 +207,7 @@ dns_rdataslab_fromrdataset(dns_rdataset_ */ for (i = 1; i < nalloc; i++) { if (compare_rdata(&x[i-1].rdata, &x[i].rdata) == 0) { - x[i-1].rdata.data = NULL; - x[i-1].rdata.length = 0; + x[i-1].rdata.data = &removed; #if DNS_RDATASET_FIXED /* * Preserve the least order so A, B, A -> A, B @@ -292,7 +297,7 @@ dns_rdataslab_fromrdataset(dns_rdataset_ #endif for (i = 0; i < nalloc; i++) { - if (x[i].rdata.data == NULL) + if (x[i].rdata.data == &removed) continue; #if DNS_RDATASET_FIXED offsettable[x[i].order] = rawbuf - offsetbase; Modified: projects/pf/head/contrib/bind9/version ============================================================================== --- projects/pf/head/contrib/bind9/version Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/contrib/bind9/version Thu Jun 7 09:52:48 2012 (r236711) @@ -6,5 +6,5 @@ MAJORVER=9 MINORVER=8 PATCHVER=3 -RELEASETYPE= -RELEASEVER= +RELEASETYPE=-P +RELEASEVER=1 Modified: projects/pf/head/contrib/bsnmp/snmp_mibII/mibII_tcp.c ============================================================================== --- projects/pf/head/contrib/bsnmp/snmp_mibII/mibII_tcp.c Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/contrib/bsnmp/snmp_mibII/mibII_tcp.c Thu Jun 7 09:52:48 2012 (r236711) @@ -109,10 +109,12 @@ fetch_tcp(void) ptr = (struct xinpgen *)(void *)((char *)ptr + ptr->xig_len)) { tp = (struct xtcpcb *)ptr; if (tp->xt_inp.inp_gencnt > xinpgen->xig_gen || - (tp->xt_inp.inp_vflag & INP_IPV4) == 0) + (tp->xt_inp.inp_vflag & (INP_IPV4|INP_IPV6)) == 0) continue; - tcp_total++; + if (tp->xt_inp.inp_vflag & INP_IPV4) + tcp_total++; + if (tp->xt_tp.t_state == TCPS_ESTABLISHED || tp->xt_tp.t_state == TCPS_CLOSE_WAIT) tcp_count++; Modified: projects/pf/head/gnu/lib/libsupc++/Version.map ============================================================================== --- projects/pf/head/gnu/lib/libsupc++/Version.map Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/gnu/lib/libsupc++/Version.map Thu Jun 7 09:52:48 2012 (r236711) @@ -126,11 +126,19 @@ CXXABI_1.3 { # __gnu_cxx::_verbose_terminate_handler() _ZN9__gnu_cxx27__verbose_terminate_handlerEv; - # new / delete operators + # operator new and new[], 32-bit size_t _Znaj; _ZnajRKSt9nothrow_t; _Znwj; _ZnwjRKSt9nothrow_t; + + # operator new and new[], 64-bit size_t + _Znam; + _ZnamRKSt9nothrow_t; + _Znwm; + _ZnwmRKSt9nothrow_t; + + # operator delete and delete[] _ZdaPv; _ZdaPvRKSt9nothrow_t; _ZdlPv; Modified: projects/pf/head/include/fmtmsg.h ============================================================================== --- projects/pf/head/include/fmtmsg.h Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/include/fmtmsg.h Thu Jun 7 09:52:48 2012 (r236711) @@ -32,7 +32,7 @@ /* Source of condition is... */ #define MM_HARD 0x0001 /* ...hardware. */ #define MM_SOFT 0x0002 /* ...software. */ -#define MM_FIRM 0x0004 /* ...fireware. */ +#define MM_FIRM 0x0004 /* ...firmware. */ /* Condition detected by... */ #define MM_APPL 0x0010 /* ...application. */ Modified: projects/pf/head/lib/libc/include/port_before.h ============================================================================== --- projects/pf/head/lib/libc/include/port_before.h Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/libc/include/port_before.h Thu Jun 7 09:52:48 2012 (r236711) @@ -17,6 +17,6 @@ var = _u.v; \ } while (0) -#define UNUSED(x) (x) = (x) +#define UNUSED(x) (void)(x) #endif /* _PORT_BEFORE_H_ */ Modified: projects/pf/head/lib/libc/net/getaddrinfo.c ============================================================================== --- projects/pf/head/lib/libc/net/getaddrinfo.c Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/libc/net/getaddrinfo.c Thu Jun 7 09:52:48 2012 (r236711) @@ -464,7 +464,7 @@ getaddrinfo(const char *hostname, const } error = get_portmatch(pai, servname); if (error) - ERR(error); + goto bad; *pai = ai0; } Modified: projects/pf/head/lib/libc/stdlib/realpath.c ============================================================================== --- projects/pf/head/lib/libc/stdlib/realpath.c Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/libc/stdlib/realpath.c Thu Jun 7 09:52:48 2012 (r236711) @@ -54,7 +54,7 @@ realpath(const char * __restrict path, c char *p, *q, *s; size_t left_len, resolved_len; unsigned symlinks; - int m, serrno, slen; + int m, slen; char left[PATH_MAX], next_token[PATH_MAX], symlink[PATH_MAX]; if (path == NULL) { @@ -65,7 +65,6 @@ realpath(const char * __restrict path, c errno = ENOENT; return (NULL); } - serrno = errno; if (resolved == NULL) { resolved = malloc(PATH_MAX); if (resolved == NULL) Modified: projects/pf/head/lib/libelf/elf_begin.3 ============================================================================== --- projects/pf/head/lib/libelf/elf_begin.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/libelf/elf_begin.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -252,7 +252,7 @@ was created. .It Bq Er ELF_E_ARGUMENT An .Xr ar 1 -archive was opened with with +archive was opened with .Ar cmd set to .Dv ELF_C_RDWR . Modified: projects/pf/head/lib/libgssapi/gss_unwrap.3 ============================================================================== --- projects/pf/head/lib/libgssapi/gss_unwrap.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/libgssapi/gss_unwrap.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -100,7 +100,7 @@ Protected message. .It output_message_buffer Buffer to receive unwrapped message. Storage associated with this buffer must -be freed by the application after use use +be freed by the application after use with a call to .Xr gss_release_buffer 3 . .It conf_state Modified: projects/pf/head/lib/libgssapi/gss_wrap.3 ============================================================================== --- projects/pf/head/lib/libgssapi/gss_wrap.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/libgssapi/gss_wrap.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -118,7 +118,7 @@ Integrity and data origin services only .It output_message_buffer Buffer to receive protected message. Storage associated with this buffer must -be freed by the application after use use +be freed by the application after use with a call to .Xr gss_release_buffer 3 . .El Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_get_error.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_get_error.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_get_error.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -39,7 +39,7 @@ .Sh DESCRIPTION Get details of the last RPCSEC_GSS error. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It error" .It error A pointer to a structure where the error details will be returned .El Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -40,7 +40,7 @@ This function looks up a mechanism by name by reading the file /etc/gss/mech and queries it for its capabilities. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It service" .It mech The mechanism to search for .It service Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -46,7 +46,7 @@ This function can be used to generate a client principal name from various strings. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It principal" .It principal If the principal is created successfully, .Fa *principal Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_get_versions.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_get_versions.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_get_versions.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -39,7 +39,7 @@ .Sh DESCRIPTION Return the highest and lowest supported versions of the RPCSEC_GSS protocol. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It vers_lo" .It vers_hi The value of .Fa *vers_hi Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_getcred.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_getcred.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_getcred.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -45,7 +45,7 @@ This function returns the RPCSEC_GSS authenticated credentials associated with an RPC request. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It cookie" .It req The RPC request to query .It rcred Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_is_installed.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_is_installed.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_is_installed.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -40,7 +40,7 @@ This function looks up a mechanism by name by reading the file /etc/gss/mech. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It mech" .It mech The mechanism to search for .El Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_max_data_length.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_max_data_length.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_max_data_length.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -41,7 +41,7 @@ Calculate the maximum message size that .Fa max_tp_unit_len , given the current service and QoP setting. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It max_tp_unit_len" .It auth A handle to a RPCSEC_GSS security context .It max_tp_unit_len Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -40,7 +40,7 @@ This function looks up a mechanism by name by reading the file /etc/gss/mech. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It oid_ret" .It mech The mechanism name to search for .It oid_ret Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -40,7 +40,7 @@ This function looks up a mechanism by oid by reading the file /etc/gss/mech. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It mech_ret" .It oid The mechanism oid to search for .It mech_ret Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -40,7 +40,7 @@ This function looks up a quality of protection by name by reading the file /etc/gss/qop. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It number_ret" .It qop The quality of protection to search for .It mech Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_seccreate.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_seccreate.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_seccreate.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -48,7 +48,7 @@ This function is used to establish a security context between an application and a remote peer using the RPSEC_GSS protocol. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width "options_req" .It clnt An RPC handle which is connected to the remote peer .It principal @@ -62,7 +62,7 @@ The value of mechanism should be the nam mechanisms listed in /etc/gss/mech. .It service Type of service requested. -.Bl -tag +.Bl -tag -width "rpc_gss_svc_integrity" .It rpc_gss_svc_default The default - typically the same as .Dv rpc_gss_svc_none . Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_set_callback.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_set_callback.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_set_callback.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -62,7 +62,7 @@ protection used by the context. If a context is locked, any subsequent requests which use different values for service and quality of protection will be rejected. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It gss_context" .It cb A structure containing the RPC program and version for this callback and a function which will be called when new contexts are created for Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_set_defaults.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_set_defaults.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_set_defaults.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -45,7 +45,7 @@ Set the service and quality of protectio The new values apply for the rest of the lifetime of the context (unless changed again with this function). .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It service" .It service The service type to use for subsequent RPC requests .It qop Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -47,7 +47,7 @@ This function registers a service princi authenticate RPCSEC_GSS security contexts for a given RPC program and version. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It mechanism" .It principal A string representing the service principal in the form .Qq service@hostname Modified: projects/pf/head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 ============================================================================== --- projects/pf/head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 Thu Jun 7 09:52:48 2012 (r236711) @@ -41,7 +41,7 @@ Calculate the maximum message size that .Fa max_tp_unit_len , given the current service and QoP setting. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It max_tp_unit_len" .It req An RPC request .It max_tp_unit_len Modified: projects/pf/head/sbin/camcontrol/camcontrol.8 ============================================================================== --- projects/pf/head/sbin/camcontrol/camcontrol.8 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/sbin/camcontrol/camcontrol.8 Thu Jun 7 09:52:48 2012 (r236711) @@ -738,7 +738,7 @@ Set the partial pathway timeout value, i See the .Tn ANSI .Tn SAS -Protcol Layer (SPL) +Protocol Layer (SPL) specification for more information on this field. .It Fl a Ar enable|disable Enable or disable SATA slumber phy power conditions. @@ -1109,7 +1109,7 @@ Do not ask for confirmation. Run in simulation mode. Packet sizes that will be sent are shown, but no actual packet is sent to the device. -No confimation is asked in simulation mode. +No confirmation is asked in simulation mode. .It Fl v Besides showing sense information in case of a failure, the verbose option causes Modified: projects/pf/head/sbin/ifconfig/ifconfig.8 ============================================================================== --- projects/pf/head/sbin/ifconfig/ifconfig.8 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/sbin/ifconfig/ifconfig.8 Thu Jun 7 09:52:48 2012 (r236711) @@ -2051,7 +2051,7 @@ Send broadcast path requests every two s Nodes on the mesh without a path to this root mesh station with try to discover a path to us. .It Cm PROACTIVE -Send broadcast path requests every two seconds and every node must reply with +Send broadcast path requests every two seconds and every node must reply with a path reply even if it already has a path to this root mesh station. .It Cm RANN Send broadcast root announcement (RANN) frames. Modified: projects/pf/head/share/man/man4/Makefile ============================================================================== --- projects/pf/head/share/man/man4/Makefile Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/share/man/man4/Makefile Thu Jun 7 09:52:48 2012 (r236711) @@ -126,6 +126,7 @@ MAN= aac.4 \ fdt.4 \ fdtbus.4 \ ffclock.4 \ + filemon.4 \ firewire.4 \ fpa.4 \ fwe.4 \ Modified: projects/pf/head/share/man/man4/bce.4 ============================================================================== --- projects/pf/head/share/man/man4/bce.4 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/share/man/man4/bce.4 Thu Jun 7 09:52:48 2012 (r236711) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 1, 2012 +.Dd June 4, 2012 .Dt BCE 4 .Os .Sh NAME @@ -213,45 +213,58 @@ Enable/Disable strict RX frame size chec Enable/Disable frame header/payload splitting (default 1). .It Va hw.bce.rx_pages Set the number of memory pages assigned to recieve packets by the driver. -Due to alignment issues, this value can only be of the set 1, 2, 4 or 8 (default 2). +Due to alignment issues, this value can only be of the set +1, 2, 4 or 8 (default 2). .It Va hw.bce.tx_pages -Set the number of memory pages assigned to transmit packets by the driver. -Due to alignment issues, this value can only be of the set 1, 2, 4 or 8 (default 2). +Set the number of memory pages assigned to transmit packets +by the driver. +Due to alignment issues, this value can only be of the set +1, 2, 4 or 8 (default 2). .It Va hw.bce.rx_ticks -Time in microsecond ticks to wait before generating a status block updates due to RX processing activity. +Time in microsecond ticks to wait before generating a status +block updates due to RX processing activity. Values from 0-100 are valid. A value of 0 disables this status block update. -Cannot be set to 0 if hw.bce.rx_quick_cons_trip is also 0 (default 18). +Cannot be set to 0 if hw.bce.rx_quick_cons_trip is also 0 +(default 18). .It Va hw.bce.rx_ticks_int -Time in microsecond ticks to wait during RX interrupt processing before generating a status block update. +Time in microsecond ticks to wait during RX interrupt +processing before generating a status block update. Values from 0-100 are valid. Valid values are in the range from 0-100. A value of 0 disables this status block update (default 18). .It Va hw.bce.rx_quick_cons_trip -Number of RX Quick BD Chain entries that must be completed before a status block is generated. +Number of RX Quick BD Chain entries that must be completed +before a status block is generated. Values from 0-256 are valid. A value of 0 disables this status block update. Cannot be set to 0 if hw.bce.rx_ticks is also 0 (default 6). .It Va hw.bce.rx_quick_cons_trip_int -Number of RX quick BD entries that must be completed before a status block is generated duing interrupt processing. +Number of RX quick BD entries that must be completed before +a status block is generated duing interrupt processing. Values from 0-256 are valid. A value of 0 disables this status block update (default 6). .It Va hw.bce.tx_ticks -Time in microsecond ticks to wait before a status block update is generated due to TX activitiy. +Time in microsecond ticks to wait before a status block +update is generated due to TX activitiy. Values from 0-100 are valid. A value of 0 disables this status block update. -Cannot be set to 0 if hw.bce.tx_quick_cons_trip is also 0 (default 80). +Cannot be set to 0 if hw.bce.tx_quick_cons_trip is also 0 +(default 80). .It Va hw.bce.tx_ticks_int -Time in microsecond ticks to wait in interrupt processing before a status block update is generated due to TX activity +Time in microsecond ticks to wait in interrupt processing +before a status block update is generated due to TX activity Values from 0-100 are valid. A value of 0 disables this status block update (default 80). .It Va hw.bce.tx_cons_trip -How many TX Quick BD Chain entries that must be completed before a status block is generated. +How many TX Quick BD Chain entries that must be completed +before a status block is generated. Values from 0-100 are valid. A value of 0 disables this status block update. Cannot be set to 0 if hw.bce.tx_ticks is also 0 (default 20). .It Va hw.bce.tx_cons_trip_int -How many TX Quick BD Chain entries that must be completed before a status block is generated during an interrupt. +How many TX Quick BD Chain entries that must be completed +before a status block is generated during an interrupt. Values from 0-100 are valid. A value of 0 disables this status block update (default 20). .El Copied: projects/pf/head/share/man/man4/filemon.4 (from r236710, head/share/man/man4/filemon.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/head/share/man/man4/filemon.4 Thu Jun 7 09:52:48 2012 (r236711, copy of r236710, head/share/man/man4/filemon.4) @@ -0,0 +1,178 @@ +.\" Copyright (c) 2012 +.\" David E. O'Brien . All rights reserved. +.\" +.\" 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. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgment: +.\" This product includes software developed by David E. O'Brien and +.\" contributors. +.\" 4. Neither the name of the author nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" 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 MERCHANT ABILITY 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 May 30, 2012 +.Dt FILEMON 4 +.Os +.Sh NAME +.Nm filemon +.Nd the filemon device +.Sh SYNOPSIS +.In dev/filemon/filemon.h +.Sh DESCRIPTION +The +.Nm +device allows a process to collect file operations data of its children. +The device +.Pa /dev/filemon +responds to two +.Xr ioctl 2 +calls. +.Pp +System calls are denoted using the following single letters: +.Pp +.Bl -tag -width indent -compact +.It Ql C +.Xr chdir 2 +.It Ql D +.Xr unlink 2 +.It Ql E +.Xr exec 2 +.It Ql F +.Xr fork 2 , +.Xr vfork 2 +.It Ql L +.Xr link 2 , +.Xr linkat 2 , +.Xr symlink 2 , +.Xr symlinkat 2 +.It Ql M +.Xr rename 2 +.It Ql R +.Xr open 2 +for read +.It Ql S +.Xr stat 2 +.It Ql W +.Xr open 2 +for write +.It Ql X +.Xr _exit 2 +.El +.Pp +Note that +.Ql R +following +.Ql W +records can represent a single +.Xr open 2 +for R/W, +or two separate +.Xr open 2 +calls, one for +.Ql R +and one for +.Ql W . +Note that only successful system calls are captured. +.Sh IOCTLS +User mode programs communicate with the +.Nm +driver through a number of ioctls which are described below. +Each takes a single argument. +.Bl -tag -width ".Dv FILEMON_SET_PID" +.It Dv FILEMON_SET_FD +Write the internal tracing buffer to the supplied open file descriptor. +.It Dv FILEMON_SET_PID +Child process ID to trace. +.El +.Sh RETURN VALUES +.\" .Rv -std ioctl +The +.Fn ioctl +function returns the value 0 if successful; +otherwise the value \-1 is returned and the global variable +.Va errno +is set to indicate the error. +.Sh FILES +.Bl -tag -width ".Pa /dev/filemon" +.It Pa /dev/filemon +.El +.Sh EXAMPLES +.Bd -literal +#include +#include +#include +#include +#include +#include +#include + +static void +open_filemon(void) +{ + pid_t child; + int fm_fd, fm_log; + + if ((fm_fd = open("/dev/filemon", O_RDWR)) == -1) + err(1, "open(\e"/dev/filemon\e", O_RDWR)"); + if ((fm_log = open("filemon.out", + O_CREAT | O_WRONLY | O_TRUNC, DEFFILEMODE)) == -1) + err(1, "open(filemon.out)"); + + if (ioctl(fm_fd, FILEMON_SET_FD, &fm_log) == -1) + err(1, "Cannot set filemon log file descriptor"); + /* Set up these two fd's to close on exec. */ + (void)fcntl(fm_fd, F_SETFD, FD_CLOEXEC); + (void)fcntl(fm_log, F_SETFD, FD_CLOEXEC); + + if ((child = fork()) == 0) { + child = getpid(); + if (ioctl(fm_fd, FILEMON_SET_PID, &child) == -1) + err(1, "Cannot set filemon PID"); + /* Do something here. */ + return 0; + } else { + wait(&child); + close(fm_fd); + } + return 0; +} +.Ed +.Pp +Creates a file named +.Pa filemon.out +and configures the +.Nm +device to write the +.Nm +buffer contents to it. +.Sh SEE ALSO +.Xr dtrace 1 , +.Xr ktrace 1 , +.Xr truss 1 , +.Xr ioctl 2 +.Sh HISTORY +A +.Nm +device appeared in +.Fx 9.1 . Modified: projects/pf/head/share/man/man4/io.4 ============================================================================== --- projects/pf/head/share/man/man4/io.4 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/share/man/man4/io.4 Thu Jun 7 09:52:48 2012 (r236711) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 01, 2010 +.Dd June 1, 2010 .Dt IO 4 .Os .Sh NAME Modified: projects/pf/head/share/man/man4/ip.4 ============================================================================== --- projects/pf/head/share/man/man4/ip.4 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/share/man/man4/ip.4 Thu Jun 7 09:52:48 2012 (r236711) @@ -165,7 +165,7 @@ The .Vt cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(struct in_addr) +cmsg_len = CMSG_LEN(sizeof(struct in_addr)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVDSTADDR .Ed @@ -184,7 +184,7 @@ structure followed by the address. The cmsghdr fields should have the following values: .Bd -literal -cmsg_len = sizeof(struct in_addr) +cmsg_len = CMSG_LEN(sizeof(struct in_addr)) cmsg_level = IPPROTO_IP cmsg_type = IP_SENDSRCADDR .Ed @@ -279,7 +279,7 @@ that contains a cmsghdr structure follow .Tn TTL . The cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(u_char) +cmsg_len = CMSG_LEN(sizeof(u_char)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVTTL .Ed @@ -307,7 +307,7 @@ The .Vt cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(struct sockaddr_dl) +cmsg_len = CMSG_LEN(sizeof(struct sockaddr_dl)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVIF .Ed Modified: projects/pf/head/share/man/man4/mpt.4 ============================================================================== --- projects/pf/head/share/man/man4/mpt.4 Thu Jun 7 09:47:36 2012 (r236710) +++ projects/pf/head/share/man/man4/mpt.4 Thu Jun 7 09:52:48 2012 (r236711) @@ -124,15 +124,15 @@ Dell PowerEdge 1750 thru 2850 IBM eServer xSeries 335 .El .Pp -These systems also contain Integrated Raid Mirroring and Integrated -Raid Mirroring Enhanced which this driver also supports. +These systems also contain Integrated RAID Mirroring and Integrated +RAID Mirroring Enhanced which this driver also supports. .Pp *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***