From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 15:18:15 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B9091F9C; Sun, 17 Mar 2013 15:18:15 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 9C3C46F3; Sun, 17 Mar 2013 15:18:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HFIFMs042535; Sun, 17 Mar 2013 15:18:15 GMT (envelope-from pho@svn.freebsd.org) Received: (from pho@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HFIF6N042534; Sun, 17 Mar 2013 15:18:15 GMT (envelope-from pho@svn.freebsd.org) Message-Id: <201303171518.r2HFIF6N042534@svn.freebsd.org> From: Peter Holm Date: Sun, 17 Mar 2013 15:18:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248423 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 15:18:15 -0000 Author: pho Date: Sun Mar 17 15:18:15 2013 New Revision: 248423 URL: http://svnweb.freebsd.org/changeset/base/248423 Log: Added new negative name cache regression test. Added: user/pho/stress2/misc/namecache2.sh (contents, props changed) Added: user/pho/stress2/misc/namecache2.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/namecache2.sh Sun Mar 17 15:18:15 2013 (r248423) @@ -0,0 +1,185 @@ +#!/bin/sh + +# +# Copyright (c) 2013 Peter Holm +# 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. +# +# 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$ +# + +# UFS cache inconsistancy for rename(2) demonstrated +# Fails with: +# ls -ali /mnt +# ls: tfa1022: No such file or directory +# Fixed by r248422 + +# Test scenario obtained from Rick Miller + +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 + +. ../default.cfg + +odir=`pwd` +cd /tmp +sed '1,/^EOF/d' < $odir/$0 > namecache2.c +rm -f /tmp/namecache2 +cc -o namecache2 -Wall -Wextra -g -O2 namecache2.c -lpthread || exit 1 +rm -f namecache2.c +cd $odir + +mount | grep $mntpoint | grep -q /dev/md && umount -f $mntpoint +mdconfig -l | grep -q md$mdstart && mdconfig -d -u $mdstart +mdconfig -a -t swap -s 1g -u $mdstart +bsdlabel -w md$mdstart auto +newfs -U md${mdstart}$part > /dev/null +mount /dev/md${mdstart}$part $mntpoint + +(cd $mntpoint; /tmp/namecache2) + +f=`(cd $mntpoint; echo *)` +if [ "$f" != '*' ]; then + echo FAIL + echo "echo $mntpoint/*" + echo $mntpoint/* + echo "" + echo "ls -ali $mntpoint" + ls -ali $mntpoint + echo "" + echo "fsdb -r /dev/md${mdstart}$part" + fsdb -r /dev/md${mdstart}$part <<-EF + ls + quit + EF +fi + +while mount | grep $mntpoint | grep -q /dev/md; do + umount $mntpoint || sleep 1 +done +mdconfig -d -u $mdstart +rm -f /tmp/namecache2 +exit 0 +EOF +/* + * NOTE: This must be run with the current working directory on a local UFS + * disk partition, to demonstrate a FreeBSD namecache bug. I have never seen + * this bug happen with an NFS partition. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int stopping = false; +char *pFilename = 0; + +static void * +statThread(void *arg __unused) +{ + + struct stat statData; + int rc; + + for (;;) { + while (pFilename == 0) { + if (stopping) + return 0; + } + + rc = stat(pFilename, &statData); + if (rc < 0 && errno != ENOENT) { + printf(" statThread stat() on %s failed with errno %d\n", + pFilename, errno); + return 0; + } + } + + return 0; +} + +int +main(void) +{ + char filename1 [20], filename2[20], filename3[20]; + pthread_t threadId; + struct stat statData; + int result, fd; + unsigned int number; + struct timespec period; + + sprintf(filename1, "tfa0"); + fd = open(filename1, O_CREAT, S_IRWXU); + if (fd < 0) { + printf("open(O_CREAT) on %s failed with errno %d\n", filename1, errno); + return 0; + } + if (close(fd) < 0) { + printf("close() on %s failed with errno %d\n", filename1, errno); + return 0; + } + result = pthread_create(&threadId, NULL, statThread, NULL); + if (result < 0) + err(1, "pthread_create(): %s\n", strerror(result)); + + for (number = 0; number < 0x001FFFFF; number += 2) { + sprintf(filename1, "tfa%u", number); + sprintf(filename2, "tfa%u", number + 1); + sprintf(filename3, "tfa%u", number + 2); + if (rename(filename1, filename2) < 0) { + printf(" rename1() from %s to %s failed with errno %d\n", + filename1, filename2, errno); + return 0; + } + pFilename = filename3; + + if (rename(filename2, filename3) < 0) { + printf(" rename2() from %s to %s failed with errno %d\n", + filename2, filename3, errno); + return 0; + } + pFilename = 0; + period.tv_sec = 0; + period.tv_nsec = 500; + nanosleep(&period, 0); + + if (stat(filename3, &statData) < 0) { + printf("stat(%s) failed with errno %d\n", filename3, errno); + stopping = true; + period.tv_sec = 0; + period.tv_nsec = 500; + nanosleep(&period, 0); + return 0; + } + } + unlink(filename3); + + return 0; +} From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 15:27:27 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 3AAA4506; Sun, 17 Mar 2013 15:27:27 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 2BFD3752; Sun, 17 Mar 2013 15:27:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HFRRU1045462; Sun, 17 Mar 2013 15:27:27 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HFRR1f045461; Sun, 17 Mar 2013 15:27:27 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303171527.r2HFRR1f045461@svn.freebsd.org> From: Attilio Rao Date: Sun, 17 Mar 2013 15:27:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248424 - user/attilio/vmcontention/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 15:27:27 -0000 Author: attilio Date: Sun Mar 17 15:27:26 2013 New Revision: 248424 URL: http://svnweb.freebsd.org/changeset/base/248424 Log: Expand ambiguous comments some more. Requested by: alc Modified: user/attilio/vmcontention/sys/vm/vm_radix.c Modified: user/attilio/vmcontention/sys/vm/vm_radix.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 15:18:15 2013 (r248423) +++ user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 15:27:26 2013 (r248424) @@ -35,11 +35,17 @@ * of this code must achieve highest possible performance. * * The implementation takes into account the following rationale: - * - Size of the nodes should be as small as possible. - * - There is no bias toward lookup operations over inserts or removes, - * and vice-versa. - * - On average not many nodes are expected to be full, hence level - * compression may just complicate things. + * - Size of the nodes should be as small as possible but still big enough + * to avoid a large maximum depth for the trie. This is a balance + * between the necessity to not wire too much physical memory for the nodes + * and the necessity to avoid too much cache pollution during the trie + * operations. + * - There is not a huge bias toward the number of lookup operations over + * the number of insert and remove operations. This basically implies + * that optimizations supposedly helping one operation but hurting the + * other might be carefully evaluated. + * - On average not many nodes are expected to be fully populated, hence + * level compression may just complicate things. */ #include From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 15:35:26 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id BBF15804; Sun, 17 Mar 2013 15:35:26 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id AA15577C; Sun, 17 Mar 2013 15:35:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HFZQ48048741; Sun, 17 Mar 2013 15:35:26 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HFZO3g048723; Sun, 17 Mar 2013 15:35:24 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <201303171535.r2HFZO3g048723@svn.freebsd.org> From: Dmitry Chagin Date: Sun, 17 Mar 2013 15:35:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248425 - in user/dchagin/lemul/sys: amd64/linux32 compat/linux conf i386/linux modules/linux X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 15:35:26 -0000 Author: dchagin Date: Sun Mar 17 15:35:23 2013 New Revision: 248425 URL: http://svnweb.freebsd.org/changeset/base/248425 Log: Implement vdso - virtual dynamic shared object. Through vdso Linux exposes functions from kernel with proper DWARF CFI information so that it becomes easier to unwind through them. Using vdso is a mandatory for a thread cancelation && cleanup on a modern glibc. Added: user/dchagin/lemul/sys/amd64/linux32/linux32_vdso.lds.s (contents, props changed) user/dchagin/lemul/sys/compat/linux/linux_vdso.c (contents, props changed) user/dchagin/lemul/sys/compat/linux/linux_vdso.h (contents, props changed) user/dchagin/lemul/sys/i386/linux/linux_vdso.lds.s (contents, props changed) Modified: user/dchagin/lemul/sys/amd64/linux32/linux.h user/dchagin/lemul/sys/amd64/linux32/linux32_genassym.c user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c user/dchagin/lemul/sys/compat/linux/linux_misc.h user/dchagin/lemul/sys/conf/files.amd64 user/dchagin/lemul/sys/conf/files.i386 user/dchagin/lemul/sys/i386/linux/linux.h user/dchagin/lemul/sys/i386/linux/linux_genassym.c user/dchagin/lemul/sys/i386/linux/linux_locore.s user/dchagin/lemul/sys/i386/linux/linux_sysvec.c user/dchagin/lemul/sys/modules/linux/Makefile Modified: user/dchagin/lemul/sys/amd64/linux32/linux.h ============================================================================== --- user/dchagin/lemul/sys/amd64/linux32/linux.h Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/amd64/linux32/linux.h Sun Mar 17 15:35:23 2013 (r248425) @@ -109,7 +109,7 @@ typedef struct { /* * Miscellaneous */ -#define LINUX_AT_COUNT 16 /* Count of used aux entry types. +#define LINUX_AT_COUNT 18 /* Count of used aux entry types. * Keep this synchronized with * elf_linux_fixup() code. */ Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_genassym.c ============================================================================== --- user/dchagin/lemul/sys/amd64/linux32/linux32_genassym.c Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/amd64/linux32/linux32_genassym.c Sun Mar 17 15:35:23 2013 (r248425) @@ -6,9 +6,13 @@ __FBSDID("$FreeBSD$"); #include #include +#include ASSYM(LINUX_SIGF_HANDLER, offsetof(struct l_sigframe, sf_handler)); ASSYM(LINUX_SIGF_SC, offsetof(struct l_sigframe, sf_sc)); ASSYM(LINUX_RT_SIGF_HANDLER, offsetof(struct l_rt_sigframe, sf_handler)); ASSYM(LINUX_RT_SIGF_UC, offsetof(struct l_rt_sigframe, sf_sc)); ASSYM(LINUX_RT_SIGF_SC, offsetof(struct l_ucontext, uc_mcontext)); +ASSYM(LINUX32_SHAREDPAGE, LINUX32_SHAREDPAGE); +ASSYM(LINUX_VERSION_CODE, LINUX_VERSION_CODE); +ASSYM(LINUX_SC_ESP, offsetof(struct l_sigcontext, sc_esp)); Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s ============================================================================== --- user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s Sun Mar 17 15:35:23 2013 (r248425) @@ -8,31 +8,145 @@ .text .code32 -NON_GPROF_ENTRY(linux_sigcode) - call *LINUX_SIGF_HANDLER(%esp) - leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ - movl %esp, %ebx /* pass sigframe */ - push %eax /* fake ret addr */ +/* + * To avoid excess stack frame the signal trampoline code emulates + * the 'call' instruction. + */ +NON_GPROF_ENTRY(linux32_sigcode) + movl %esp, %ebx /* preserve sigframe */ + call .getip0 +.getip0: + popl %eax + add $11, %eax + push %eax + jmp *LINUX_SIGF_HANDLER(%ebx) +.startsigcode: + popl %eax movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ int $0x80 /* enter kernel with args */ +.endsigcode: 0: jmp 0b - ALIGN_TEXT -/* XXXXX */ -linux_rt_sigcode: - call *LINUX_RT_SIGF_HANDLER(%esp) + +NON_GPROF_ENTRY(linux32_rt_sigcode) leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ leal LINUX_RT_SIGF_SC(%ebx),%ecx /* linux sigcontext */ - push %eax /* fake ret addr */ + movl %esp, %edi + call .getip1 +.getip1: + popl %eax + add $11, %eax + push %eax + jmp *LINUX_RT_SIGF_HANDLER(%edi) +.startrtsigcode: movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */ int $0x80 /* enter kernel with args */ +.endrtsigcode: 0: jmp 0b - ALIGN_TEXT -/* XXXXX */ -linux_esigcode: - - .data - .globl linux_szsigcode, linux_sznonrtsigcode -linux_szsigcode: - .long linux_esigcode-linux_sigcode -linux_sznonrtsigcode: - .long linux_rt_sigcode-linux_sigcode + +NON_GPROF_ENTRY(linux32_vsyscall) +.startvsyscall: + int $0x80 + ret +.endvsyscall: + + .globl linux32_sharedpage + .set linux32_sharedpage, LINUX32_SHAREDPAGE + + .section .note.Linux, "a",@note + .long 2f - 1f /* namesz */ + .balign 4 + .long 4f - 3f /* descsz */ + .long 0 +1: + .asciz "Linux" +2: + .balign 4 +3: + .long LINUX_VERSION_CODE +4: + .balign 4 + .previous + + +#define do_cfa_expr(offset) \ + .byte 0x0f; /* DW_CFA_def_cfa_expression */ \ + .uleb128 11f-10f; /* length */ \ +10: .byte 0x74; /* DW_OP_breg4 */ \ + .sleb128 offset; /* offset */ \ + .byte 0x06; /* DW_OP_deref */ \ +11: + + + /* CIE */ + .section .eh_frame,"a",@progbits +.LSTARTFRAMEDLSI1: + .long .LENDCIEDLSI1-.LSTARTCIEDLSI1 +.LSTARTCIEDLSI1: + .long 0 /* CIE ID */ + .byte 1 /* Version number */ + .string "zRS" /* NULL-terminated + * augmentation string + */ + .uleb128 1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 8 /* Return address + * register column + */ + .uleb128 1 /* Augmentation value length */ + .byte 0x1b /* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */ + .byte 0 /* DW_CFA_nop */ + .align 4 +.LENDCIEDLSI1: + + /* FDE */ + .long .LENDFDEDLSI1-.LSTARTFDEDLSI1 /* Length FDE */ +.LSTARTFDEDLSI1: + .long .LSTARTFDEDLSI1-.LSTARTFRAMEDLSI1 /* CIE pointer */ + .long .startsigcode-. /* PC-relative start address */ + .long .endsigcode-.startsigcode + .uleb128 0 /* Augmentation */ + do_cfa_expr(LINUX_SIGF_SC-8) + .align 4 +.LENDFDEDLSI1: + + .long .LENDFDEDLSI2-.LSTARTFDEDLSI2 /* Length FDE */ +.LSTARTFDEDLSI2: + .long .LSTARTFDEDLSI2-.LSTARTFRAMEDLSI1 /* CIE pointer */ + .long .startrtsigcode-. /* PC-relative start address */ + .long .endrtsigcode-.startrtsigcode + .uleb128 0 /* Augmentation */ + do_cfa_expr(LINUX_RT_SIGF_SC-4+LINUX_SC_ESP) + .align 4 +.LENDFDEDLSI2: + .previous + + .section .eh_frame,"a",@progbits +.LSTARTFRAMEDLSI2: + .long .LENDCIEDLSI2-.LSTARTCIEDLSI2 +.LSTARTCIEDLSI2: + .long 0 /* CIE ID */ + .byte 1 /* Version number */ + .string "zR" /* NULL-terminated + * augmentation string + */ + .uleb128 1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 8 /* Return address register column */ + .uleb128 1 /* Augmentation value length */ + .byte 0x1b /* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */ + .byte 0x0c /* DW_CFA_def_cfa */ + .uleb128 4 + .uleb128 4 + .byte 0x88 /* DW_CFA_offset, column 0x8 */ + .uleb128 1 + .align 4 +.LENDCIEDLSI2: + .long .LENDFDEDLSI3-.LSTARTFDEDLSI3 /* Length FDE */ +.LSTARTFDEDLSI3: + .long .LSTARTFDEDLSI3-.LSTARTFRAMEDLSI2 /* CIE pointer */ + .long .startvsyscall-. /* PC-relative start address */ + .long .endvsyscall-.startvsyscall + .uleb128 0 + .align 4 +.LENDFDEDLSI3: + .previous Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c ============================================================================== --- user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c Sun Mar 17 15:35:23 2013 (r248425) @@ -83,6 +83,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include MODULE_VERSION(linux, 1); @@ -111,8 +112,11 @@ MALLOC_DEFINE(M_LINUX, "linux", "Linux m const char *linux_platform = "i686"; static int linux_szplatform; -extern char linux_sigcode[]; -extern int linux_szsigcode; +static int linux_szsigcode; +static vm_object_t linux_shared_page_obj; +static char *linux_shared_page_mapping; +extern char _binary_linux32_locore_o_start; +extern char _binary_linux32_locore_o_end; extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL]; @@ -127,6 +131,8 @@ static void exec_linux_setregs(struct th struct image_params *imgp, u_long stack); static void linux32_fixlimit(struct rlimit *rl, int which); static boolean_t linux32_trans_osrel(const Elf_Note *note, int32_t *osrel); +static void linux_vdso_install(void *param); +static void linux_vdso_deinstall(void *param); static eventhandler_tag linux_exec_tag; static eventhandler_tag linux_thread_dtor_tag; @@ -219,6 +225,10 @@ struct linux32_ps_strings { u_int ps_nenvstr; /* the number of environment strings */ }; +LINUX_VDSO_SYM_DEFINE(linux32_sigcode); +LINUX_VDSO_SYM_DEFINE(linux32_rt_sigcode); +LINUX_VDSO_SYM_DEFINE(linux32_vsyscall); + /* * If FreeBSD & Linux have a difference of opinion about what a trap * means, deal with it here. @@ -258,6 +268,11 @@ elf_linux_fixup(register_t **stack_base, args = (Elf32_Auxargs *)imgp->auxargs; pos = base + (imgp->args->argc + imgp->args->envc + 2); + AUXARGS_ENTRY_32(pos, LINUX_AT_SYSINFO_EHDR, + imgp->proc->p_sysent->sv_shared_page_base); + AUXARGS_ENTRY_32(pos, LINUX_AT_SYSINFO, + LINUX_VDSO_SYM_VALUE(linux32_vsyscall)); + AUXARGS_ENTRY_32(pos, LINUX_AT_HWCAP, cpu_feature); /* @@ -296,8 +311,6 @@ elf_linux_fixup(register_t **stack_base, return (0); } -extern unsigned long linux_sznonrtsigcode; - static void linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) { @@ -352,7 +365,8 @@ linux_rt_sendsig(sig_t catcher, ksiginfo ksiginfo_to_lsiginfo(ksi, &frame.sf_si, sig); /* - * Build the signal context to be used by sigreturn. + * Build the signal context to be used by sigreturn + * and libgcc unwind. */ frame.sf_sc.uc_flags = 0; /* XXX ??? */ frame.sf_sc.uc_link = 0; /* XXX ??? */ @@ -370,6 +384,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo frame.sf_sc.uc_mcontext.sc_esi = regs->tf_rsi; frame.sf_sc.uc_mcontext.sc_ebp = regs->tf_rbp; frame.sf_sc.uc_mcontext.sc_ebx = regs->tf_rbx; + frame.sf_sc.uc_mcontext.sc_esp = regs->tf_rsp; frame.sf_sc.uc_mcontext.sc_edx = regs->tf_rdx; frame.sf_sc.uc_mcontext.sc_ecx = regs->tf_rcx; frame.sf_sc.uc_mcontext.sc_eax = regs->tf_rax; @@ -411,7 +426,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo * Build context to run handler in. */ regs->tf_rsp = PTROUT(fp); - regs->tf_rip = p->p_sysent->sv_sigcode_base + linux_sznonrtsigcode; + regs->tf_rip = LINUX_VDSO_SYM_VALUE(linux32_rt_sigcode); regs->tf_rflags &= ~(PSL_T | PSL_D); regs->tf_cs = _ucode32sel; regs->tf_ss = _udatasel; @@ -506,6 +521,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t frame.sf_sc.sc_esi = regs->tf_rsi; frame.sf_sc.sc_ebp = regs->tf_rbp; frame.sf_sc.sc_ebx = regs->tf_rbx; + frame.sf_sc.sc_esp = regs->tf_rsp; frame.sf_sc.sc_edx = regs->tf_rdx; frame.sf_sc.sc_ecx = regs->tf_rcx; frame.sf_sc.sc_eax = regs->tf_rax; @@ -534,7 +550,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t * Build context to run handler in. */ regs->tf_rsp = PTROUT(fp); - regs->tf_rip = p->p_sysent->sv_sigcode_base; + regs->tf_rip = LINUX_VDSO_SYM_VALUE(linux32_sigcode); regs->tf_rflags &= ~(PSL_T | PSL_D); regs->tf_cs = _ucode32sel; regs->tf_ss = _udatasel; @@ -1034,7 +1050,7 @@ struct sysentvec elf_linux_sysvec = { .sv_transtrap = translate_traps, .sv_fixup = elf_linux_fixup, .sv_sendsig = linux_sendsig, - .sv_sigcode = linux_sigcode, + .sv_sigcode = &_binary_linux32_locore_o_start, .sv_szsigcode = &linux_szsigcode, .sv_prepsyscall = NULL, .sv_name = "Linux ELF32", @@ -1060,7 +1076,39 @@ struct sysentvec elf_linux_sysvec = { .sv_schedtail = linux_schedtail, .sv_thread_detach = linux_thread_detach }; -INIT_SYSENTVEC(elf_sysvec, &elf_linux_sysvec); + +static void +linux_vdso_install(void *param) +{ + + linux_szsigcode = (&_binary_linux32_locore_o_end - + &_binary_linux32_locore_o_start); + + if (linux_szsigcode > elf_linux_sysvec.sv_shared_page_len) + panic("Linux invalid vdso size\n"); + + __elfN(linux_vdso_fixup)(&elf_linux_sysvec); + + linux_shared_page_obj = __elfN(linux_shared_page_init) + (&linux_shared_page_mapping); + + __elfN(linux_vdso_reloc)(&elf_linux_sysvec, 0); + + bcopy(elf_linux_sysvec.sv_sigcode, linux_shared_page_mapping, + linux_szsigcode); + elf_linux_sysvec.sv_shared_page_obj = linux_shared_page_obj; +} +SYSINIT(elf_linux_vdso_init, SI_SUB_EXEC, SI_ORDER_ANY, + (sysinit_cfunc_t)linux_vdso_install, NULL); + +static void +linux_vdso_deinstall(void *param) +{ + + __elfN(linux_shared_page_fini)(linux_shared_page_obj); +}; +SYSUNINIT(elf_linux_vdso_uninit, SI_SUB_EXEC, SI_ORDER_FIRST, + (sysinit_cfunc_t)linux_vdso_deinstall, NULL); static char GNU_ABI_VENDOR[] = "GNU"; static int GNULINUX_ABI_DESC = 0; Added: user/dchagin/lemul/sys/amd64/linux32/linux32_vdso.lds.s ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/dchagin/lemul/sys/amd64/linux32/linux32_vdso.lds.s Sun Mar 17 15:35:23 2013 (r248425) @@ -0,0 +1,65 @@ +/* + * Linker script for 32-bit vDSO. + * Copied from Linux kernel arch/x86/vdso/vdso-layout.lds.S + * and arch/x86/vdso/vdso32/vdso32.lds.S + * + * $FreeBSD$ + */ + +SECTIONS +{ + . = linux32_sharedpage + SIZEOF_HEADERS; + + .hash : { *(.hash) } :text + .gnu.hash : { *(.gnu.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + + .note : { *(.note.*) } :text :note + + .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr + .eh_frame : { KEEP (*(.eh_frame)) } :text + + .dynamic : { *(.dynamic) } :text :dynamic + + .rodata : { *(.rodata*) } :text + .data : { + *(.data*) + *(.sdata*) + *(.got.plt) *(.got) + *(.gnu.linkonce.d.*) + *(.bss*) + *(.dynbss*) + *(.gnu.linkonce.b.*) + } + + .altinstructions : { *(.altinstructions) } + .altinstr_replacement : { *(.altinstr_replacement) } + + . = ALIGN(0x100); + .text : { *(.text*) } :text =0x90909090 +} + +PHDRS +{ + text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ + dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ + note PT_NOTE FLAGS(4); /* PF_R */ + eh_frame_hdr PT_GNU_EH_FRAME; +} + +ENTRY(linux32_vsyscall); + +VERSION +{ + LINUX_2.5 { + global: + linux32_vsyscall; + linux32_sigcode; + linux32_rt_sigcode; + local: *; + }; +} Modified: user/dchagin/lemul/sys/compat/linux/linux_misc.h ============================================================================== --- user/dchagin/lemul/sys/compat/linux/linux_misc.h Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/compat/linux/linux_misc.h Sun Mar 17 15:35:23 2013 (r248425) @@ -69,6 +69,8 @@ extern const char *linux_platform; * differ from AT_PLATFORM. */ #define LINUX_AT_EXECFN 31 /* filename of program */ +#define LINUX_AT_SYSINFO 32 /* vsyscall */ +#define LINUX_AT_SYSINFO_EHDR 33 /* vdso header */ /* Linux sets the i387 to extended precision. */ #if defined(__i386__) || defined(__amd64__) Added: user/dchagin/lemul/sys/compat/linux/linux_vdso.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/dchagin/lemul/sys/compat/linux/linux_vdso.c Sun Mar 17 15:35:23 2013 (r248425) @@ -0,0 +1,250 @@ +/*- + * Copyright (c) 2013 Dmitry Chagin + * 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 + * in this position and unchanged. + * 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 ``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 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_compat.h" + +#define __ELF_WORD_SIZE 32 + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +SLIST_HEAD(, linux_vdso_sym) __elfN(linux_vdso_syms) = + SLIST_HEAD_INITIALIZER(__elfN(linux_vdso_syms)); + +static int __elfN(symtabindex); +static int __elfN(symstrindex); + +static void +__elfN(linux_vdso_lookup)(Elf_Ehdr *, struct linux_vdso_sym *); + + +void +__elfN(linux_vdso_sym_init)(struct linux_vdso_sym *s) +{ + + SLIST_INSERT_HEAD(&__elfN(linux_vdso_syms), s, sym); +} + +vm_object_t +__elfN(linux_shared_page_init)(char **mapping) +{ + vm_page_t m; + vm_object_t obj; + vm_offset_t addr; + + obj = vm_pager_allocate(OBJT_PHYS, 0, PAGE_SIZE, + VM_PROT_DEFAULT, 0, NULL); + VM_OBJECT_LOCK(obj); + m = vm_page_grab(obj, 0, VM_ALLOC_RETRY | VM_ALLOC_NOBUSY | + VM_ALLOC_ZERO); + m->valid = VM_PAGE_BITS_ALL; + VM_OBJECT_UNLOCK(obj); + addr = kmem_alloc_nofault(kernel_map, PAGE_SIZE); + pmap_qenter(addr, &m, 1); + *mapping = (char *)addr; + return (obj); +} + +void +__elfN(linux_shared_page_fini)(vm_object_t obj) +{ + + vm_object_deallocate(obj); +} + +void +__elfN(linux_vdso_fixup)(struct sysentvec *sv) +{ + Elf_Ehdr *ehdr; + Elf_Shdr *shdr; + int i; + + ehdr = (Elf_Ehdr *) sv->sv_sigcode; + + if (!IS_ELF(*ehdr) || + ehdr->e_ident[EI_CLASS] != ELF_TARG_CLASS || + ehdr->e_ident[EI_DATA] != ELF_TARG_DATA || + ehdr->e_ident[EI_VERSION] != EV_CURRENT || + ehdr->e_shoff == 0 || + ehdr->e_shentsize != sizeof(Elf_Shdr)) + panic("Linux invalid vdso header.\n"); + + if (ehdr->e_type != ET_DYN) + panic("Linux invalid vdso header.\n"); + + shdr = (Elf_Shdr *) ((caddr_t)ehdr + ehdr->e_shoff); + + __elfN(symtabindex) = -1; + __elfN(symstrindex) = -1; + for (i = 0; i < ehdr->e_shnum; i++) { + if (shdr[i].sh_size == 0) + continue; + if (shdr[i].sh_type == SHT_DYNSYM) { + __elfN(symtabindex) = i; + __elfN(symstrindex) = shdr[i].sh_link; + } + } + + if (__elfN(symtabindex) == -1 || __elfN(symstrindex) == -1) + panic("Linux invalid vdso header.\n"); + + ehdr->e_ident[EI_OSABI] = ELFOSABI_LINUX; +} + +void +__elfN(linux_vdso_reloc)(struct sysentvec *sv, int vdso_adjust) +{ + struct linux_vdso_sym *lsym; + Elf_Ehdr *ehdr; + Elf_Phdr *phdr; + Elf_Shdr *shdr; + Elf_Dyn *dyn; + Elf_Sym *sym; + int i, symcnt; + + ehdr = (Elf_Ehdr *) sv->sv_sigcode; + + /* Adjust our so relative to the sigcode_base */ + if (vdso_adjust != 0) { + ehdr->e_entry += vdso_adjust; + phdr = (Elf_Phdr *)((caddr_t)ehdr + ehdr->e_phoff); + + /* phdrs */ + for (i = 0; i < ehdr->e_phnum; i++) { + phdr[i].p_vaddr += vdso_adjust; + if (phdr[i].p_type != PT_DYNAMIC) + continue; + dyn = (Elf_Dyn *)((caddr_t)ehdr + phdr[i].p_offset); + for(; dyn->d_tag != DT_NULL; dyn++) { + switch (dyn->d_tag) { + case DT_PLTGOT: + case DT_HASH: + case DT_STRTAB: + case DT_SYMTAB: + case DT_RELA: + case DT_INIT: + case DT_FINI: + case DT_REL: + case DT_DEBUG: + case DT_JMPREL: + case DT_VERSYM: + case DT_VERDEF: + case DT_VERNEED: + case DT_ADDRRNGLO ... DT_ADDRRNGHI: + dyn->d_un.d_ptr += vdso_adjust; + break; + case DT_ENCODING ... DT_LOOS-1: + case DT_LOOS ... DT_HIOS: + if (dyn->d_tag >= DT_ENCODING && + (dyn->d_tag & 1) == 0) + dyn->d_un.d_ptr += vdso_adjust; + break; + default: + break; + } + } + } + + /* sections */ + shdr = (Elf_Shdr *)((caddr_t)ehdr + ehdr->e_shoff); + for(i = 0; i < ehdr->e_shnum; i++) { + if (!(shdr[i].sh_flags & SHF_ALLOC)) + continue; + shdr[i].sh_addr += vdso_adjust; + if (shdr[i].sh_type != SHT_SYMTAB && + shdr[i].sh_type != SHT_DYNSYM) + continue; + + sym = (Elf_Sym *)((caddr_t)ehdr + shdr[i].sh_offset); + symcnt = shdr[i].sh_size / sizeof(*sym); + + for(i = 0; i < symcnt; i++, sym++) { + if (sym->st_shndx == SHN_UNDEF || + sym->st_shndx == SHN_ABS) + continue; + + switch (ELF_ST_TYPE(sym->st_info)) { + case STT_OBJECT: + case STT_FUNC: + case STT_SECTION: + case STT_FILE: + sym->st_value += vdso_adjust; + } + } + } + } + + SLIST_FOREACH(lsym, &__elfN(linux_vdso_syms), sym) + __elfN(linux_vdso_lookup)(ehdr, lsym); +} + +static void +__elfN(linux_vdso_lookup)(Elf_Ehdr *ehdr, struct linux_vdso_sym *vsym) +{ + vm_offset_t strtab, symname; + uint32_t symcnt; + Elf_Shdr *shdr; + int i; + + shdr = (Elf_Shdr *) ((caddr_t)ehdr + ehdr->e_shoff); + + strtab = (vm_offset_t)((caddr_t)ehdr + + shdr[__elfN(symstrindex)].sh_offset); + Elf_Sym *sym = (Elf_Sym *)((caddr_t)ehdr + + shdr[__elfN(symtabindex)].sh_offset); + symcnt = shdr[__elfN(symtabindex)].sh_size / sizeof(*sym); + + for (i = 0; i < symcnt; ++i, ++sym) { + if (ELF_ST_TYPE(sym->st_info) != STT_FUNC) + continue; + symname = strtab + sym->st_name; + if (strncmp(vsym->symname, (char *)symname, vsym->size) == 0) { + vsym->value = (vm_offset_t)sym->st_value; + break; + } + } +} Added: user/dchagin/lemul/sys/compat/linux/linux_vdso.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/dchagin/lemul/sys/compat/linux/linux_vdso.h Sun Mar 17 15:35:23 2013 (r248425) @@ -0,0 +1,59 @@ +/*- + * Copyright (c) 2013 Dmitry Chagin + * 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 + * in this position and unchanged. + * 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 ``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 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$ + */ + +#ifndef _LINUX_VDSO_H_ +#define _LINUX_VDSO_H_ + +#include + +struct linux_vdso_sym { + SLIST_ENTRY(linux_vdso_sym) sym; + uint32_t size; + vm_offset_t value; + char symname[]; +}; + +vm_object_t __elfN(linux_shared_page_init)(char **); +void __elfN(linux_shared_page_fini)(vm_object_t); +void __elfN(linux_vdso_fixup)(struct sysentvec *); +void __elfN(linux_vdso_reloc)(struct sysentvec *, int); +void __elfN(linux_vdso_sym_init)(struct linux_vdso_sym *); + +#define LINUX_VDSO_SYM_DEFINE(name) \ +static struct linux_vdso_sym name = { \ + .symname = #name, \ + .size = sizeof(#name), \ + .value = 0 \ +}; \ +SYSINIT(__elfN(name ## _sym_init), SI_SUB_EXEC, \ + SI_ORDER_FIRST, __elfN(linux_vdso_sym_init), &name);\ +struct __hack + +#define LINUX_VDSO_SYM_VALUE(name) name.value \ + +#endif /* _LINUX_VDSO_H_ */ Modified: user/dchagin/lemul/sys/conf/files.amd64 ============================================================================== --- user/dchagin/lemul/sys/conf/files.amd64 Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/conf/files.amd64 Sun Mar 17 15:35:23 2013 (r248425) @@ -20,6 +20,18 @@ linux32_assym.h optional compat_linux3 no-obj no-implicit-rule before-depend \ clean "linux32_assym.h" # +linux32_locore.o optional compat_linux32 \ + dependency "linux32_assym.h $S/amd64/linux32/linux32_locore.s" \ + compile-with "${CC} -x assembler-with-cpp -DLOCORE -m32 -shared -s -pipe -I. -I$S -Werror -Wall -fno-common -nostdinc -nostdlib -Wl,-T$S/amd64/linux32/linux32_vdso.lds.s -Wl,-soname=linux32_vdso.so,--eh-frame-hdr,-fPIC,-warn-common ${.IMPSRC} -o ${.TARGET}" \ + no-obj no-implicit-rule \ + clean "linux32_locore.o" +# +linux32_vdso.so optional compat_linux32 \ + dependency "linux32_locore.o" \ + compile-with "${OBJCOPY} --input binary --output elf64-x86-64-freebsd --binary-architecture i386 linux32_locore.o ${.TARGET}" \ + no-implicit-rule \ + clean "linux32_vdso.so" +# ia32_genassym.o standard \ dependency "$S/compat/ia32/ia32_genassym.c" \ compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \ @@ -418,8 +430,6 @@ compat/linsysfs/linsysfs.c optional lins # Linux/i386 binary support # amd64/linux32/linux32_dummy.c optional compat_linux32 -amd64/linux32/linux32_locore.s optional compat_linux32 \ - dependency "linux32_assym.h" amd64/linux32/linux32_machdep.c optional compat_linux32 amd64/linux32/linux32_support.s optional compat_linux32 \ dependency "linux32_assym.h" @@ -441,6 +451,7 @@ compat/linux/linux_sysctl.c optional com compat/linux/linux_time.c optional compat_linux32 compat/linux/linux_uid16.c optional compat_linux32 compat/linux/linux_util.c optional compat_linux32 +compat/linux/linux_vdso.c optional compat_linux32 dev/amr/amr_linux.c optional compat_linux32 amr dev/mfi/mfi_linux.c optional compat_linux32 mfi # Modified: user/dchagin/lemul/sys/conf/files.i386 ============================================================================== --- user/dchagin/lemul/sys/conf/files.i386 Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/conf/files.i386 Sun Mar 17 15:35:23 2013 (r248425) @@ -19,6 +19,18 @@ linux_assym.h optional compat_linux \ no-obj no-implicit-rule before-depend \ clean "linux_assym.h" # +linux_locore.o optional compat_linux \ + dependency "linux_assym.h $S/i386/linux/linux_locore.s" \ + compile-with "${CC} -x assembler-with-cpp -DLOCORE -shared -s -pipe -I. -I$S -Werror -Wall -fno-common -nostdinc -nostdlib -Wl,-T$S/i386/linux/linux_vdso.lds.s -Wl,-soname=linux_vdso.so,--eh-frame-hdr,-fPIC,-warn-common ${.IMPSRC} -o ${.TARGET}" \ + no-obj no-implicit-rule \ + clean "linux_locore.o" +# +linux_vdso.so optional compat_linux \ + dependency "linux_locore.o" \ + compile-with "${OBJCOPY} --input binary --output elf32-i386-freebsd --binary-architecture i386 linux_locore.o ${.TARGET}" \ + no-implicit-rule \ + clean "linux_vdso.so" +# svr4_genassym.o optional compat_svr4 \ dependency "$S/i386/svr4/svr4_genassym.c" \ compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \ @@ -90,6 +102,7 @@ compat/linux/linux_sysctl.c optional com compat/linux/linux_time.c optional compat_linux compat/linux/linux_uid16.c optional compat_linux compat/linux/linux_util.c optional compat_linux +compat/linux/linux_vdso.c optional compat_linux compat/ndis/kern_ndis.c optional ndisapi pci compat/ndis/kern_windrv.c optional ndisapi pci compat/ndis/subr_hal.c optional ndisapi pci @@ -481,8 +494,6 @@ i386/isa/prof_machdep.c optional profil i386/isa/spic.c optional spic i386/linux/imgact_linux.c optional compat_linux i386/linux/linux_dummy.c optional compat_linux -i386/linux/linux_locore.s optional compat_linux \ - dependency "linux_assym.h" i386/linux/linux_machdep.c optional compat_linux i386/linux/linux_ptrace.c optional compat_linux i386/linux/linux_support.s optional compat_linux \ Modified: user/dchagin/lemul/sys/i386/linux/linux.h ============================================================================== --- user/dchagin/lemul/sys/i386/linux/linux.h Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/i386/linux/linux.h Sun Mar 17 15:35:23 2013 (r248425) @@ -103,7 +103,7 @@ typedef struct { /* * Miscellaneous */ -#define LINUX_AT_COUNT 16 /* Count of used aux entry types. +#define LINUX_AT_COUNT 18 /* Count of used aux entry types. * Keep this synchronized with * elf_linux_fixup() code. */ Modified: user/dchagin/lemul/sys/i386/linux/linux_genassym.c ============================================================================== --- user/dchagin/lemul/sys/i386/linux/linux_genassym.c Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/i386/linux/linux_genassym.c Sun Mar 17 15:35:23 2013 (r248425) @@ -6,6 +6,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include ASSYM(LINUX_SIGF_HANDLER, offsetof(struct l_sigframe, sf_handler)); ASSYM(LINUX_SIGF_SC, offsetof(struct l_sigframe, sf_sc)); @@ -14,3 +15,5 @@ ASSYM(LINUX_SC_EFLAGS, offsetof(struct l ASSYM(LINUX_RT_SIGF_HANDLER, offsetof(struct l_rt_sigframe, sf_handler)); ASSYM(LINUX_RT_SIGF_UC, offsetof(struct l_rt_sigframe, sf_sc)); ASSYM(LINUX_RT_SIGF_SC, offsetof(struct l_ucontext, uc_mcontext)); +ASSYM(LINUX_SC_ESP, offsetof(struct l_sigcontext, sc_esp)); +ASSYM(LINUX_VERSION_CODE, LINUX_VERSION_CODE); Modified: user/dchagin/lemul/sys/i386/linux/linux_locore.s ============================================================================== --- user/dchagin/lemul/sys/i386/linux/linux_locore.s Sun Mar 17 15:27:26 2013 (r248424) +++ user/dchagin/lemul/sys/i386/linux/linux_locore.s Sun Mar 17 15:35:23 2013 (r248425) @@ -5,33 +5,147 @@ #include /* system call numbers */ +#include "assym.s" + +/* + * To avoid excess stack frame the signal trampoline code emulates + * the 'call' instruction. + */ NON_GPROF_ENTRY(linux_sigcode) - call *LINUX_SIGF_HANDLER(%esp) - leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ - mov LINUX_SC_GS(%ebx),%gs - movl %esp, %ebx /* pass sigframe */ - push %eax /* fake ret addr */ + movl %esp, %ebx /* preserve sigframe */ + call .getip0 +.getip0: + popl %eax + add $11, %eax + push %eax + jmp *LINUX_SIGF_HANDLER(%ebx) +.startsigcode: + popl %eax /* gcc unwind code need this */ movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ int $0x80 /* enter kernel with args */ +.endsigcode: 0: jmp 0b - ALIGN_TEXT -/* XXXXX */ -linux_rt_sigcode: - call *LINUX_RT_SIGF_HANDLER(%esp) + +NON_GPROF_ENTRY(linux_rt_sigcode) leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ leal LINUX_RT_SIGF_SC(%ebx),%ecx /* linux sigcontext */ - mov LINUX_SC_GS(%ecx),%gs - push %eax /* fake ret addr */ + movl %esp, %edi + call .getip1 +.getip1: + popl %eax + add $11, %eax + push %eax + jmp *LINUX_RT_SIGF_HANDLER(%edi) +.startrtsigcode: movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */ int $0x80 /* enter kernel with args */ +.endrtsigcode: 0: jmp 0b - ALIGN_TEXT -/* XXXXX */ -linux_esigcode: - - .data - .globl linux_szsigcode, linux_sznonrtsigcode -linux_szsigcode: - .long linux_esigcode-linux_sigcode -linux_sznonrtsigcode: - .long linux_rt_sigcode-linux_sigcode + +NON_GPROF_ENTRY(linux_vsyscall) +.startvsyscall: + int $0x80 + ret +.endvsyscall: + + .globl linux_sharedpage + .set linux_sharedpage, VM_MAXUSER_ADDRESS - PAGE_SIZE + + .section .note.Linux, "a",@note + .long 2f - 1f /* namesz */ + .balign 4 + .long 4f - 3f /* descsz */ + .long 0 +1: + .asciz "Linux" +2: + .balign 4 +3: + .long LINUX_VERSION_CODE +4: + .balign 4 + .previous + + +#define do_cfa_expr(offset) \ + .byte 0x0f; /* DW_CFA_def_cfa_expression */ \ + .uleb128 11f-10f; /* length */ \ +10: .byte 0x74; /* DW_OP_breg4 */ \ + .sleb128 offset; /* offset */ \ + .byte 0x06; /* DW_OP_deref */ \ +11: + + + /* CIE */ + .section .eh_frame,"a",@progbits +.LSTARTFRAMEDLSI1: + .long .LENDCIEDLSI1-.LSTARTCIEDLSI1 +.LSTARTCIEDLSI1: + .long 0 /* CIE ID */ + .byte 1 /* Version number */ + .string "zRS" /* NULL-terminated + * augmentation string + */ + .uleb128 1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 8 /* Return address + * register column + */ + .uleb128 1 /* Augmentation value length */ + .byte 0x1b /* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */ + .byte 0 /* DW_CFA_nop */ + .align 4 +.LENDCIEDLSI1: + + /* FDE */ + .long .LENDFDEDLSI1-.LSTARTFDEDLSI1 /* Length FDE */ +.LSTARTFDEDLSI1: + .long .LSTARTFDEDLSI1-.LSTARTFRAMEDLSI1 /* CIE pointer */ + .long .startsigcode-. /* PC-relative start address */ + .long .endsigcode-.startsigcode + .uleb128 0 /* Augmentation */ + do_cfa_expr(LINUX_SIGF_SC-8) + .align 4 +.LENDFDEDLSI1: + + .long .LENDFDEDLSI2-.LSTARTFDEDLSI2 /* Length FDE */ +.LSTARTFDEDLSI2: + .long .LSTARTFDEDLSI2-.LSTARTFRAMEDLSI1 /* CIE pointer */ + .long .startrtsigcode-. /* PC-relative start address */ + .long .endrtsigcode-.startrtsigcode + .uleb128 0 /* Augmentation */ + do_cfa_expr(LINUX_RT_SIGF_SC-4+LINUX_SC_ESP) + .align 4 +.LENDFDEDLSI2: + .previous + + .section .eh_frame,"a",@progbits +.LSTARTFRAMEDLSI2: + .long .LENDCIEDLSI2-.LSTARTCIEDLSI2 +.LSTARTCIEDLSI2: + .long 0 /* CIE ID */ + .byte 1 /* Version number */ + .string "zR" /* NULL-terminated + * augmentation string *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 15:59:49 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 56F36E7E; Sun, 17 Mar 2013 15:59:49 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 43B3A820; Sun, 17 Mar 2013 15:59:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HFxnJ8055090; Sun, 17 Mar 2013 15:59:49 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HFxjlJ055063; Sun, 17 Mar 2013 15:59:45 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <201303171559.r2HFxjlJ055063@svn.freebsd.org> From: Dmitry Chagin Date: Sun, 17 Mar 2013 15:59:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248427 - in user/dchagin/lemul: . bin/cp bin/ls bin/mkdir bin/mv bin/ps bin/rm bin/rmdir bin/sh cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolar... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 15:59:49 -0000 Author: dchagin Date: Sun Mar 17 15:59:44 2013 New Revision: 248427 URL: http://svnweb.freebsd.org/changeset/base/248427 Log: MFH Added: user/dchagin/lemul/contrib/libyaml/ - copied from r248425, head/contrib/libyaml/ user/dchagin/lemul/contrib/unvis/ - copied from r248425, head/contrib/unvis/ user/dchagin/lemul/contrib/vis/ - copied from r248425, head/contrib/vis/ user/dchagin/lemul/lib/libc/gen/cap_sandboxed.3 - copied unchanged from r248425, head/lib/libc/gen/cap_sandboxed.3 user/dchagin/lemul/lib/libc/gen/cap_sandboxed.c - copied unchanged from r248425, head/lib/libc/gen/cap_sandboxed.c user/dchagin/lemul/lib/libc/stdio/open_memstream.3 - copied unchanged from r248425, head/lib/libc/stdio/open_memstream.3 user/dchagin/lemul/lib/libc/stdio/open_memstream.c - copied unchanged from r248425, head/lib/libc/stdio/open_memstream.c user/dchagin/lemul/lib/libc/stdio/open_wmemstream.c - copied unchanged from r248425, head/lib/libc/stdio/open_wmemstream.c user/dchagin/lemul/lib/libc/sys/bindat.2 - copied unchanged from r248425, head/lib/libc/sys/bindat.2 user/dchagin/lemul/lib/libc/sys/cap_fcntls_limit.2 - copied unchanged from r248425, head/lib/libc/sys/cap_fcntls_limit.2 user/dchagin/lemul/lib/libc/sys/cap_ioctls_limit.2 - copied unchanged from r248425, head/lib/libc/sys/cap_ioctls_limit.2 user/dchagin/lemul/lib/libc/sys/cap_rights_limit.2 - copied unchanged from r248425, head/lib/libc/sys/cap_rights_limit.2 user/dchagin/lemul/lib/libc/sys/connectat.2 - copied unchanged from r248425, head/lib/libc/sys/connectat.2 user/dchagin/lemul/lib/libusb/libusb_global_linux.h - copied unchanged from r248425, head/lib/libusb/libusb_global_linux.h user/dchagin/lemul/lib/libyaml/ - copied from r248425, head/lib/libyaml/ user/dchagin/lemul/sys/arm/broadcom/bcm2835/bcm2835_dma.c - copied unchanged from r248425, head/sys/arm/broadcom/bcm2835/bcm2835_dma.c user/dchagin/lemul/sys/arm/broadcom/bcm2835/bcm2835_dma.h - copied unchanged from r248425, head/sys/arm/broadcom/bcm2835/bcm2835_dma.h user/dchagin/lemul/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c - copied unchanged from r248425, head/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c user/dchagin/lemul/sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h - copied unchanged from r248425, head/sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h user/dchagin/lemul/sys/cddl/compat/opensolaris/sys/vm.h - copied unchanged from r248425, head/sys/cddl/compat/opensolaris/sys/vm.h user/dchagin/lemul/sys/dev/drm2/drm_global.c - copied unchanged from r248425, head/sys/dev/drm2/drm_global.c user/dchagin/lemul/sys/dev/drm2/drm_global.h - copied unchanged from r248425, head/sys/dev/drm2/drm_global.h user/dchagin/lemul/sys/dev/drm2/ttm/ - copied from r248425, head/sys/dev/drm2/ttm/ user/dchagin/lemul/sys/libkern/arm/aeabi_unwind.c - copied unchanged from r248425, head/sys/libkern/arm/aeabi_unwind.c user/dchagin/lemul/sys/libkern/arm/memcpy.S - copied unchanged from r248425, head/sys/libkern/arm/memcpy.S user/dchagin/lemul/sys/libkern/arm/memset.S - copied unchanged from r248425, head/sys/libkern/arm/memset.S user/dchagin/lemul/tools/regression/bin/sh/builtins/trap12.0 - copied unchanged from r248425, head/tools/regression/bin/sh/builtins/trap12.0 user/dchagin/lemul/tools/regression/bin/sh/builtins/wait6.0 - copied unchanged from r248425, head/tools/regression/bin/sh/builtins/wait6.0 user/dchagin/lemul/tools/regression/bin/sh/builtins/wait7.0 - copied unchanged from r248425, head/tools/regression/bin/sh/builtins/wait7.0 user/dchagin/lemul/tools/regression/capsicum/ - copied from r248425, head/tools/regression/capsicum/ user/dchagin/lemul/tools/regression/lib/libc/stdio/test-open_memstream.c - copied unchanged from r248425, head/tools/regression/lib/libc/stdio/test-open_memstream.c user/dchagin/lemul/tools/regression/lib/libc/stdio/test-open_memstream.t - copied unchanged from r248425, head/tools/regression/lib/libc/stdio/test-open_memstream.t user/dchagin/lemul/tools/regression/lib/libc/stdio/test-open_wmemstream.c - copied unchanged from r248425, head/tools/regression/lib/libc/stdio/test-open_wmemstream.c user/dchagin/lemul/tools/regression/lib/libc/stdio/test-open_wmemstream.t - copied unchanged from r248425, head/tools/regression/lib/libc/stdio/test-open_wmemstream.t user/dchagin/lemul/usr.bin/truss/arm-fbsd.c - copied unchanged from r248425, head/usr.bin/truss/arm-fbsd.c user/dchagin/lemul/usr.sbin/pkg/config.c - copied unchanged from r248425, head/usr.sbin/pkg/config.c user/dchagin/lemul/usr.sbin/pkg/config.h - copied unchanged from r248425, head/usr.sbin/pkg/config.h Deleted: user/dchagin/lemul/games/fortune/datfiles/fortunes-o.fake user/dchagin/lemul/games/fortune/datfiles/fortunes-o.real user/dchagin/lemul/games/fortune/datfiles/fortunes-o.sp.ok user/dchagin/lemul/lib/libc/sys/cap_new.2 user/dchagin/lemul/lib/libncp/ user/dchagin/lemul/lib/libprocstat/ntfs.c user/dchagin/lemul/lib/libprocstat/nwfs.c user/dchagin/lemul/sbin/mount_ext2fs/ user/dchagin/lemul/sbin/mount_hpfs/ user/dchagin/lemul/sbin/mount_ntfs/ user/dchagin/lemul/sbin/mount_reiserfs/ user/dchagin/lemul/sbin/mount_std/ user/dchagin/lemul/share/examples/cvsup/ports-supfile user/dchagin/lemul/share/examples/cvsup/refuse user/dchagin/lemul/share/examples/cvsup/refuse.README user/dchagin/lemul/share/examples/nwclient/ user/dchagin/lemul/share/examples/portal/ user/dchagin/lemul/share/man/man4/coda.4 user/dchagin/lemul/share/man/man4/vinum.4 user/dchagin/lemul/share/man/man5/xfs.5 user/dchagin/lemul/sys/fs/coda/ user/dchagin/lemul/sys/fs/hpfs/ user/dchagin/lemul/sys/fs/ntfs/ user/dchagin/lemul/sys/fs/nwfs/ user/dchagin/lemul/sys/fs/portalfs/ user/dchagin/lemul/sys/gnu/fs/xfs/ user/dchagin/lemul/sys/modules/coda/ user/dchagin/lemul/sys/modules/coda5/ user/dchagin/lemul/sys/modules/hpfs/ user/dchagin/lemul/sys/modules/ncp/ user/dchagin/lemul/sys/modules/ntfs/ user/dchagin/lemul/sys/modules/ntfs_iconv/ user/dchagin/lemul/sys/modules/nwfs/ user/dchagin/lemul/sys/modules/portalfs/ user/dchagin/lemul/sys/modules/xfs/ user/dchagin/lemul/sys/netncp/ user/dchagin/lemul/usr.bin/ncplist/ user/dchagin/lemul/usr.bin/ncplogin/ user/dchagin/lemul/usr.bin/unvis/unvis.1 user/dchagin/lemul/usr.bin/unvis/unvis.c user/dchagin/lemul/usr.bin/vis/extern.h user/dchagin/lemul/usr.bin/vis/foldit.c user/dchagin/lemul/usr.bin/vis/vis.1 user/dchagin/lemul/usr.bin/vis/vis.c user/dchagin/lemul/usr.sbin/mount_nwfs/ user/dchagin/lemul/usr.sbin/mount_portalfs/ Modified: user/dchagin/lemul/MAINTAINERS (contents, props changed) user/dchagin/lemul/ObsoleteFiles.inc user/dchagin/lemul/UPDATING user/dchagin/lemul/bin/cp/cp.1 user/dchagin/lemul/bin/ls/ls.1 user/dchagin/lemul/bin/mkdir/mkdir.1 user/dchagin/lemul/bin/mv/mv.1 user/dchagin/lemul/bin/ps/ps.1 user/dchagin/lemul/bin/rm/rm.1 user/dchagin/lemul/bin/rmdir/rmdir.1 user/dchagin/lemul/bin/sh/jobs.c user/dchagin/lemul/bin/sh/trap.c user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zpool/zpool.8 user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/dchagin/lemul/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h user/dchagin/lemul/cddl/contrib/opensolaris/tools/ctf/cvt/output.c user/dchagin/lemul/contrib/libc-vis/unvis.3 user/dchagin/lemul/contrib/libc-vis/unvis.c user/dchagin/lemul/contrib/libc-vis/vis.3 user/dchagin/lemul/contrib/libc-vis/vis.c user/dchagin/lemul/contrib/libc-vis/vis.h user/dchagin/lemul/contrib/openbsm/bin/auditdistd/sender.c user/dchagin/lemul/contrib/openbsm/etc/audit_event user/dchagin/lemul/contrib/openpam/doc/man/openpam_straddch.3 user/dchagin/lemul/contrib/openpam/lib/openpam_readline.c user/dchagin/lemul/contrib/openpam/lib/openpam_readword.c user/dchagin/lemul/contrib/tzdata/africa user/dchagin/lemul/contrib/tzdata/antarctica user/dchagin/lemul/contrib/tzdata/asia user/dchagin/lemul/contrib/tzdata/australasia user/dchagin/lemul/contrib/tzdata/europe user/dchagin/lemul/contrib/tzdata/northamerica user/dchagin/lemul/contrib/tzdata/southamerica user/dchagin/lemul/contrib/tzdata/zone.tab user/dchagin/lemul/crypto/openssh/FREEBSD-upgrade user/dchagin/lemul/crypto/openssh/config.h user/dchagin/lemul/crypto/openssh/session.c user/dchagin/lemul/etc/devd.conf user/dchagin/lemul/etc/mtree/BSD.include.dist user/dchagin/lemul/etc/portsnap.conf user/dchagin/lemul/games/fortune/datfiles/Makefile user/dchagin/lemul/gnu/lib/libgcc/Makefile user/dchagin/lemul/include/stdio.h user/dchagin/lemul/include/wchar.h user/dchagin/lemul/lib/Makefile user/dchagin/lemul/lib/libc/gen/Makefile.inc user/dchagin/lemul/lib/libc/gen/Symbol.map user/dchagin/lemul/lib/libc/gen/getcontext.3 user/dchagin/lemul/lib/libc/include/compat.h user/dchagin/lemul/lib/libc/net/nscachedcli.c user/dchagin/lemul/lib/libc/regex/regcomp.c user/dchagin/lemul/lib/libc/rpc/clnt_vc.c user/dchagin/lemul/lib/libc/stdio/Makefile.inc user/dchagin/lemul/lib/libc/stdio/Symbol.map user/dchagin/lemul/lib/libc/string/Makefile.inc user/dchagin/lemul/lib/libc/sys/Makefile.inc user/dchagin/lemul/lib/libc/sys/Symbol.map user/dchagin/lemul/lib/libc/sys/cap_enter.2 user/dchagin/lemul/lib/libc/sys/chflags.2 user/dchagin/lemul/lib/libc/sys/dup.2 user/dchagin/lemul/lib/libipsec/test-policy.c user/dchagin/lemul/lib/libnetgraph/msg.c user/dchagin/lemul/lib/libprocstat/libprocstat.c user/dchagin/lemul/lib/libprocstat/libprocstat.h user/dchagin/lemul/lib/libstand/Makefile user/dchagin/lemul/lib/libstand/nandfs.c user/dchagin/lemul/lib/libusb/Makefile user/dchagin/lemul/lib/libusb/libusb.h user/dchagin/lemul/lib/libusb/libusb01.c user/dchagin/lemul/lib/libusb/libusb10.c user/dchagin/lemul/lib/libusb/libusb10.h user/dchagin/lemul/lib/libusb/libusb10_desc.c user/dchagin/lemul/lib/libusb/libusb10_io.c user/dchagin/lemul/lib/libusb/libusb20.c user/dchagin/lemul/lib/libusb/libusb20.h user/dchagin/lemul/lib/libusb/libusb20_desc.c user/dchagin/lemul/lib/libusb/libusb20_desc.h user/dchagin/lemul/lib/libusb/libusb20_ugen20.c user/dchagin/lemul/lib/libusb/usb.h user/dchagin/lemul/lib/libutil/gr_util.c user/dchagin/lemul/lib/libutil/kinfo_getproc.3 user/dchagin/lemul/lib/libutil/libutil.h user/dchagin/lemul/lib/libutil/pidfile.c user/dchagin/lemul/libexec/rtld-elf/map_object.c user/dchagin/lemul/sbin/ccdconfig/ccdconfig.8 user/dchagin/lemul/sbin/devd/devd.cc user/dchagin/lemul/sbin/devd/devd.hh user/dchagin/lemul/sbin/ffsinfo/ffsinfo.8 user/dchagin/lemul/sbin/geom/class/concat/gconcat.8 user/dchagin/lemul/sbin/geom/class/mirror/gmirror.8 user/dchagin/lemul/sbin/geom/class/raid/graid.8 user/dchagin/lemul/sbin/geom/class/stripe/gstripe.8 user/dchagin/lemul/sbin/gvinum/gvinum.8 user/dchagin/lemul/sbin/hastctl/hastctl.8 user/dchagin/lemul/sbin/hastctl/hastctl.c user/dchagin/lemul/sbin/hastd/hastd.8 user/dchagin/lemul/sbin/hastd/secondary.c user/dchagin/lemul/sbin/hastd/subr.c user/dchagin/lemul/sbin/ipfw/ipfw2.c user/dchagin/lemul/sbin/ipfw/ipfw2.h user/dchagin/lemul/sbin/ipfw/ipv6.c user/dchagin/lemul/sbin/mount_cd9660/mount_cd9660.8 user/dchagin/lemul/sbin/mount_cd9660/mount_cd9660.c user/dchagin/lemul/sbin/mount_msdosfs/mount_msdosfs.c user/dchagin/lemul/sbin/mount_nfs/mount_nfs.c user/dchagin/lemul/sbin/mount_nullfs/mount_nullfs.c user/dchagin/lemul/sbin/mount_udf/Makefile user/dchagin/lemul/sbin/mount_udf/mount_udf.c user/dchagin/lemul/sbin/mount_unionfs/mount_unionfs.c user/dchagin/lemul/sbin/recoverdisk/recoverdisk.c user/dchagin/lemul/sbin/tunefs/tunefs.c user/dchagin/lemul/share/examples/Makefile user/dchagin/lemul/share/examples/cvsup/README user/dchagin/lemul/share/examples/cvsup/cvs-supfile user/dchagin/lemul/share/examples/cvsup/stable-supfile user/dchagin/lemul/share/man/man4/Makefile user/dchagin/lemul/share/man/man4/arcmsr.4 user/dchagin/lemul/share/man/man4/cas.4 user/dchagin/lemul/share/man/man4/ccd.4 user/dchagin/lemul/share/man/man4/eventtimers.4 user/dchagin/lemul/share/man/man4/geom.4 user/dchagin/lemul/share/man/man4/mvs.4 user/dchagin/lemul/share/man/man4/sge.4 user/dchagin/lemul/share/man/man4/udp.4 user/dchagin/lemul/share/man/man4/zyd.4 user/dchagin/lemul/share/man/man7/development.7 user/dchagin/lemul/share/man/man7/ports.7 user/dchagin/lemul/share/man/man9/Makefile user/dchagin/lemul/share/man/man9/condvar.9 user/dchagin/lemul/share/man/man9/eventtimers.9 user/dchagin/lemul/share/man/man9/sleep.9 user/dchagin/lemul/share/man/man9/sleepqueue.9 user/dchagin/lemul/share/man/man9/timeout.9 user/dchagin/lemul/share/misc/bsd-family-tree user/dchagin/lemul/share/misc/committers-ports.dot user/dchagin/lemul/share/misc/organization.dot user/dchagin/lemul/share/mk/bsd.compiler.mk user/dchagin/lemul/share/mk/bsd.libnames.mk user/dchagin/lemul/sys/Makefile user/dchagin/lemul/sys/amd64/amd64/machdep.c user/dchagin/lemul/sys/amd64/amd64/pmap.c user/dchagin/lemul/sys/amd64/conf/GENERIC user/dchagin/lemul/sys/amd64/conf/NOTES user/dchagin/lemul/sys/amd64/include/pmap.h user/dchagin/lemul/sys/amd64/vmm/intel/vmx.c user/dchagin/lemul/sys/amd64/vmm/vmm.c user/dchagin/lemul/sys/amd64/vmm/vmm_stat.c user/dchagin/lemul/sys/amd64/vmm/vmm_stat.h user/dchagin/lemul/sys/arm/allwinner/files.a10 user/dchagin/lemul/sys/arm/allwinner/timer.c user/dchagin/lemul/sys/arm/arm/bcopy_page.S user/dchagin/lemul/sys/arm/arm/bcopyinout.S user/dchagin/lemul/sys/arm/arm/bcopyinout_xscale.S user/dchagin/lemul/sys/arm/arm/blockio.S user/dchagin/lemul/sys/arm/arm/bus_space_asm_generic.S user/dchagin/lemul/sys/arm/arm/busdma_machdep-v6.c user/dchagin/lemul/sys/arm/arm/copystr.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_arm10.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_arm11.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_arm11x6.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_arm7tdmi.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_arm8.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_arm9.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_armv4.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_armv5.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_armv5_ec.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_armv6.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_armv7.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_fa526.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_ixp12x0.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_pj4b.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_sa1.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_sa11x0.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_sheeva.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_xscale.S user/dchagin/lemul/sys/arm/arm/cpufunc_asm_xscale_c3.S user/dchagin/lemul/sys/arm/arm/db_trace.c user/dchagin/lemul/sys/arm/arm/disassem.c user/dchagin/lemul/sys/arm/arm/elf_trampoline.c user/dchagin/lemul/sys/arm/arm/exception.S user/dchagin/lemul/sys/arm/arm/fiq_subr.S user/dchagin/lemul/sys/arm/arm/fusu.S user/dchagin/lemul/sys/arm/arm/in_cksum_arm.S user/dchagin/lemul/sys/arm/arm/irq_dispatch.S user/dchagin/lemul/sys/arm/arm/locore.S user/dchagin/lemul/sys/arm/arm/machdep.c user/dchagin/lemul/sys/arm/arm/mpcore_timer.c user/dchagin/lemul/sys/arm/arm/pmap-v6.c user/dchagin/lemul/sys/arm/arm/pmap.c user/dchagin/lemul/sys/arm/arm/setcpsr.S user/dchagin/lemul/sys/arm/arm/support.S user/dchagin/lemul/sys/arm/arm/swtch.S user/dchagin/lemul/sys/arm/arm/vm_machdep.c user/dchagin/lemul/sys/arm/at91/if_ate.c user/dchagin/lemul/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c user/dchagin/lemul/sys/arm/broadcom/bcm2835/bcm2835_systimer.c user/dchagin/lemul/sys/arm/broadcom/bcm2835/files.bcm2835 user/dchagin/lemul/sys/arm/conf/CUBIEBOARD user/dchagin/lemul/sys/arm/conf/RPI-B user/dchagin/lemul/sys/arm/econa/econa_machdep.c user/dchagin/lemul/sys/arm/include/asm.h user/dchagin/lemul/sys/arm/include/bus.h user/dchagin/lemul/sys/arm/include/frame.h user/dchagin/lemul/sys/arm/include/param.h user/dchagin/lemul/sys/arm/include/pmap.h user/dchagin/lemul/sys/arm/include/signal.h user/dchagin/lemul/sys/arm/include/vmparam.h user/dchagin/lemul/sys/arm/lpc/lpc_timer.c user/dchagin/lemul/sys/arm/mv/timer.c user/dchagin/lemul/sys/arm/s3c2xx0/s3c24x0_machdep.c user/dchagin/lemul/sys/arm/ti/am335x/am335x_dmtimer.c user/dchagin/lemul/sys/arm/ti/cpsw/if_cpsw.c user/dchagin/lemul/sys/arm/ti/ti_mmchs.c user/dchagin/lemul/sys/arm/versatile/sp804.c user/dchagin/lemul/sys/arm/xscale/i80321/ep80219_machdep.c user/dchagin/lemul/sys/arm/xscale/i80321/iq31244_machdep.c user/dchagin/lemul/sys/arm/xscale/i8134x/crb_machdep.c user/dchagin/lemul/sys/arm/xscale/ixp425/avila_machdep.c user/dchagin/lemul/sys/arm/xscale/pxa/pxa_machdep.c user/dchagin/lemul/sys/boot/common/load_elf.c user/dchagin/lemul/sys/boot/fdt/dts/cubieboard.dts user/dchagin/lemul/sys/boot/fdt/fdt_loader_cmd.c user/dchagin/lemul/sys/bsm/audit_kevents.h user/dchagin/lemul/sys/cam/ctl/ctl.c user/dchagin/lemul/sys/cddl/compat/opensolaris/sys/file.h user/dchagin/lemul/sys/cddl/compat/opensolaris/sys/kcondvar.h user/dchagin/lemul/sys/cddl/compat/opensolaris/sys/vnode.h user/dchagin/lemul/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.h user/dchagin/lemul/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h user/dchagin/lemul/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c user/dchagin/lemul/sys/compat/freebsd32/freebsd32_proto.h user/dchagin/lemul/sys/compat/freebsd32/freebsd32_syscall.h user/dchagin/lemul/sys/compat/freebsd32/freebsd32_syscalls.c user/dchagin/lemul/sys/compat/freebsd32/freebsd32_sysent.c user/dchagin/lemul/sys/compat/freebsd32/freebsd32_systrace_args.c user/dchagin/lemul/sys/compat/freebsd32/syscalls.master user/dchagin/lemul/sys/compat/linprocfs/linprocfs.c user/dchagin/lemul/sys/compat/linux/linux_file.c user/dchagin/lemul/sys/compat/linux/linux_socket.c user/dchagin/lemul/sys/compat/ndis/kern_ndis.c user/dchagin/lemul/sys/compat/svr4/svr4_fcntl.c user/dchagin/lemul/sys/compat/svr4/svr4_filio.c user/dchagin/lemul/sys/compat/svr4/svr4_misc.c user/dchagin/lemul/sys/compat/svr4/svr4_stream.c user/dchagin/lemul/sys/conf/Makefile.arm user/dchagin/lemul/sys/conf/NOTES user/dchagin/lemul/sys/conf/files user/dchagin/lemul/sys/conf/files.amd64 user/dchagin/lemul/sys/conf/files.arm user/dchagin/lemul/sys/conf/files.i386 user/dchagin/lemul/sys/conf/ldscript.arm user/dchagin/lemul/sys/conf/options user/dchagin/lemul/sys/conf/options.sparc64 user/dchagin/lemul/sys/contrib/altq/altq/altq_hfsc.c user/dchagin/lemul/sys/contrib/altq/altq/altq_hfsc.h user/dchagin/lemul/sys/dev/aac/aac.c user/dchagin/lemul/sys/dev/aac/aac_cam.c user/dchagin/lemul/sys/dev/aac/aac_disk.c user/dchagin/lemul/sys/dev/aac/aac_pci.c user/dchagin/lemul/sys/dev/aac/aac_tables.h user/dchagin/lemul/sys/dev/aac/aacvar.h user/dchagin/lemul/sys/dev/acpica/acpi_cpu.c user/dchagin/lemul/sys/dev/acpica/acpi_hpet.c user/dchagin/lemul/sys/dev/acpica/acpi_powerres.c user/dchagin/lemul/sys/dev/agp/agp.c user/dchagin/lemul/sys/dev/agp/agp_i810.c user/dchagin/lemul/sys/dev/arcmsr/arcmsr.c user/dchagin/lemul/sys/dev/arcmsr/arcmsr.h user/dchagin/lemul/sys/dev/ath/ath_hal/ah.h user/dchagin/lemul/sys/dev/ath/ath_hal/ar5416/ar5416.h user/dchagin/lemul/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c user/dchagin/lemul/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c user/dchagin/lemul/sys/dev/ath/ath_hal/ar5416/ar5416reg.h user/dchagin/lemul/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c user/dchagin/lemul/sys/dev/ath/if_ath.c user/dchagin/lemul/sys/dev/ath/if_ath_rx.c user/dchagin/lemul/sys/dev/ath/if_ath_sysctl.c user/dchagin/lemul/sys/dev/ath/if_ath_tx.c user/dchagin/lemul/sys/dev/ath/if_ath_tx_ht.c user/dchagin/lemul/sys/dev/ath/if_athioctl.h user/dchagin/lemul/sys/dev/ath/if_athrate.h user/dchagin/lemul/sys/dev/ath/if_athvar.h user/dchagin/lemul/sys/dev/bce/if_bce.c user/dchagin/lemul/sys/dev/bce/if_bcereg.h user/dchagin/lemul/sys/dev/bge/if_bge.c user/dchagin/lemul/sys/dev/cas/if_cas.c user/dchagin/lemul/sys/dev/drm/drmP.h user/dchagin/lemul/sys/dev/drm2/drmP.h user/dchagin/lemul/sys/dev/drm2/drm_drv.c user/dchagin/lemul/sys/dev/drm2/drm_fb_helper.c user/dchagin/lemul/sys/dev/drm2/drm_gem.c user/dchagin/lemul/sys/dev/drm2/drm_mm.c user/dchagin/lemul/sys/dev/drm2/drm_mm.h user/dchagin/lemul/sys/dev/drm2/i915/i915_gem.c user/dchagin/lemul/sys/dev/hwpmc/hwpmc_mod.c user/dchagin/lemul/sys/dev/hwpmc/hwpmc_soft.c user/dchagin/lemul/sys/dev/ic/ns16550.h user/dchagin/lemul/sys/dev/ichwd/ichwd.c user/dchagin/lemul/sys/dev/iscsi/initiator/isc_soc.c user/dchagin/lemul/sys/dev/iscsi/initiator/iscsi.c user/dchagin/lemul/sys/dev/ixgbe/LICENSE user/dchagin/lemul/sys/dev/ixgbe/ixgbe.c user/dchagin/lemul/sys/dev/ixgbe/ixgbe_82598.c user/dchagin/lemul/sys/dev/ixgbe/ixgbe_82599.c user/dchagin/lemul/sys/dev/ixgbe/ixgbe_82599.h user/dchagin/lemul/sys/dev/ixgbe/ixgbe_api.c user/dchagin/lemul/sys/dev/ixgbe/ixgbe_api.h user/dchagin/lemul/sys/dev/ixgbe/ixgbe_common.c user/dchagin/lemul/sys/dev/ixgbe/ixgbe_common.h user/dchagin/lemul/sys/dev/ixgbe/ixgbe_mbx.h user/dchagin/lemul/sys/dev/ixgbe/ixgbe_osdep.h user/dchagin/lemul/sys/dev/ixgbe/ixgbe_phy.c user/dchagin/lemul/sys/dev/ixgbe/ixgbe_phy.h user/dchagin/lemul/sys/dev/ixgbe/ixgbe_type.h user/dchagin/lemul/sys/dev/ixgbe/ixgbe_vf.c user/dchagin/lemul/sys/dev/ixgbe/ixgbe_vf.h user/dchagin/lemul/sys/dev/ixgbe/ixgbe_x540.c user/dchagin/lemul/sys/dev/ixgbe/ixgbe_x540.h user/dchagin/lemul/sys/dev/ixgbe/ixv.c user/dchagin/lemul/sys/dev/md/md.c user/dchagin/lemul/sys/dev/mfi/mfi.c user/dchagin/lemul/sys/dev/mps/mps.c user/dchagin/lemul/sys/dev/netmap/netmap.c user/dchagin/lemul/sys/dev/nvme/nvme.c user/dchagin/lemul/sys/dev/nvme/nvme_ctrlr.c user/dchagin/lemul/sys/dev/oce/oce_hw.c user/dchagin/lemul/sys/dev/oce/oce_hw.h user/dchagin/lemul/sys/dev/oce/oce_if.c user/dchagin/lemul/sys/dev/oce/oce_if.h user/dchagin/lemul/sys/dev/oce/oce_mbox.c user/dchagin/lemul/sys/dev/oce/oce_queue.c user/dchagin/lemul/sys/dev/oce/oce_sysctl.c user/dchagin/lemul/sys/dev/oce/oce_util.c user/dchagin/lemul/sys/dev/pci/pci.c user/dchagin/lemul/sys/dev/puc/pucdata.c user/dchagin/lemul/sys/dev/random/randomdev_soft.c user/dchagin/lemul/sys/dev/re/if_re.c user/dchagin/lemul/sys/dev/sdhci/sdhci.c user/dchagin/lemul/sys/dev/sdhci/sdhci.h user/dchagin/lemul/sys/dev/sdhci/sdhci_if.m user/dchagin/lemul/sys/dev/sound/pci/hda/hdaa_patches.c user/dchagin/lemul/sys/dev/sound/pci/hda/hdac.h user/dchagin/lemul/sys/dev/sound/pci/hda/hdacc.c user/dchagin/lemul/sys/dev/sound/pcm/dsp.c user/dchagin/lemul/sys/dev/sound/pcm/sndstat.c user/dchagin/lemul/sys/dev/syscons/syscons.c user/dchagin/lemul/sys/dev/syscons/syscons.h user/dchagin/lemul/sys/dev/tws/tws_hdm.c user/dchagin/lemul/sys/dev/uart/uart_dev_ns8250.c user/dchagin/lemul/sys/dev/usb/serial/uftdi.c user/dchagin/lemul/sys/dev/usb/usb_device.c user/dchagin/lemul/sys/dev/usb/usb_request.c user/dchagin/lemul/sys/dev/usb/usbdevs user/dchagin/lemul/sys/dev/virtio/block/virtio_blk.c user/dchagin/lemul/sys/dev/watchdog/watchdog.c user/dchagin/lemul/sys/fs/cd9660/cd9660_vnops.c user/dchagin/lemul/sys/fs/ext2fs/ext2_balloc.c user/dchagin/lemul/sys/fs/ext2fs/ext2_vnops.c user/dchagin/lemul/sys/fs/fdescfs/fdesc_vfsops.c user/dchagin/lemul/sys/fs/fdescfs/fdesc_vnops.c user/dchagin/lemul/sys/fs/fuse/fuse_io.c user/dchagin/lemul/sys/fs/fuse/fuse_vnops.c user/dchagin/lemul/sys/fs/msdosfs/msdosfs_vnops.c user/dchagin/lemul/sys/fs/nfs/nfsdport.h user/dchagin/lemul/sys/fs/nfs/nfsport.h user/dchagin/lemul/sys/fs/nfsclient/nfs_clbio.c user/dchagin/lemul/sys/fs/nfsclient/nfs_clnode.c user/dchagin/lemul/sys/fs/nfsclient/nfs_clport.c user/dchagin/lemul/sys/fs/nfsclient/nfs_clvnops.c user/dchagin/lemul/sys/fs/nfsserver/nfs_nfsdport.c user/dchagin/lemul/sys/fs/nullfs/null_vfsops.c user/dchagin/lemul/sys/fs/procfs/procfs_map.c user/dchagin/lemul/sys/fs/smbfs/smbfs_smb.c user/dchagin/lemul/sys/fs/smbfs/smbfs_vnops.c user/dchagin/lemul/sys/fs/tmpfs/tmpfs_subr.c user/dchagin/lemul/sys/fs/tmpfs/tmpfs_vnops.c user/dchagin/lemul/sys/fs/udf/udf_vnops.c user/dchagin/lemul/sys/geom/gate/g_gate.c user/dchagin/lemul/sys/geom/label/g_label_ntfs.c user/dchagin/lemul/sys/geom/part/g_part.c user/dchagin/lemul/sys/geom/part/g_part.h user/dchagin/lemul/sys/geom/part/g_part_mbr.c user/dchagin/lemul/sys/geom/raid/g_raid.c user/dchagin/lemul/sys/geom/raid/md_ddf.c user/dchagin/lemul/sys/i386/conf/GENERIC user/dchagin/lemul/sys/i386/conf/NOTES user/dchagin/lemul/sys/i386/i386/machdep.c user/dchagin/lemul/sys/i386/i386/pmap.c user/dchagin/lemul/sys/i386/ibcs2/ibcs2_misc.c user/dchagin/lemul/sys/i386/include/pmap.h user/dchagin/lemul/sys/i386/xen/clock.c user/dchagin/lemul/sys/i386/xen/pmap.c user/dchagin/lemul/sys/ia64/ia64/clock.c user/dchagin/lemul/sys/ia64/ia64/machdep.c user/dchagin/lemul/sys/ia64/ia64/pmap.c user/dchagin/lemul/sys/kern/capabilities.conf user/dchagin/lemul/sys/kern/imgact_elf.c user/dchagin/lemul/sys/kern/init_sysent.c user/dchagin/lemul/sys/kern/kern_clock.c user/dchagin/lemul/sys/kern/kern_clocksource.c user/dchagin/lemul/sys/kern/kern_condvar.c user/dchagin/lemul/sys/kern/kern_descrip.c user/dchagin/lemul/sys/kern/kern_et.c user/dchagin/lemul/sys/kern/kern_event.c user/dchagin/lemul/sys/kern/kern_exec.c user/dchagin/lemul/sys/kern/kern_exit.c user/dchagin/lemul/sys/kern/kern_fork.c user/dchagin/lemul/sys/kern/kern_intr.c user/dchagin/lemul/sys/kern/kern_proc.c user/dchagin/lemul/sys/kern/kern_racct.c user/dchagin/lemul/sys/kern/kern_resource.c user/dchagin/lemul/sys/kern/kern_sharedpage.c user/dchagin/lemul/sys/kern/kern_shutdown.c user/dchagin/lemul/sys/kern/kern_synch.c user/dchagin/lemul/sys/kern/kern_sysctl.c user/dchagin/lemul/sys/kern/kern_tc.c user/dchagin/lemul/sys/kern/kern_time.c user/dchagin/lemul/sys/kern/kern_timeout.c user/dchagin/lemul/sys/kern/kern_umtx.c user/dchagin/lemul/sys/kern/subr_log.c user/dchagin/lemul/sys/kern/subr_param.c user/dchagin/lemul/sys/kern/subr_sleepqueue.c user/dchagin/lemul/sys/kern/subr_trap.c user/dchagin/lemul/sys/kern/subr_uio.c user/dchagin/lemul/sys/kern/subr_witness.c user/dchagin/lemul/sys/kern/sys_capability.c user/dchagin/lemul/sys/kern/sys_generic.c user/dchagin/lemul/sys/kern/sys_process.c user/dchagin/lemul/sys/kern/syscalls.c user/dchagin/lemul/sys/kern/syscalls.master user/dchagin/lemul/sys/kern/systrace_args.c user/dchagin/lemul/sys/kern/sysv_shm.c user/dchagin/lemul/sys/kern/tty.c user/dchagin/lemul/sys/kern/uipc_domain.c user/dchagin/lemul/sys/kern/uipc_mbuf.c user/dchagin/lemul/sys/kern/uipc_mqueue.c user/dchagin/lemul/sys/kern/uipc_sem.c user/dchagin/lemul/sys/kern/uipc_shm.c user/dchagin/lemul/sys/kern/uipc_sockbuf.c user/dchagin/lemul/sys/kern/uipc_socket.c user/dchagin/lemul/sys/kern/uipc_syscalls.c user/dchagin/lemul/sys/kern/uipc_usrreq.c user/dchagin/lemul/sys/kern/vfs_aio.c user/dchagin/lemul/sys/kern/vfs_bio.c user/dchagin/lemul/sys/kern/vfs_cluster.c user/dchagin/lemul/sys/kern/vfs_default.c user/dchagin/lemul/sys/kern/vfs_lookup.c user/dchagin/lemul/sys/kern/vfs_subr.c user/dchagin/lemul/sys/kern/vfs_syscalls.c user/dchagin/lemul/sys/kern/vfs_vnops.c user/dchagin/lemul/sys/libkern/arm/divsi3.S user/dchagin/lemul/sys/libkern/arm/ffs.S user/dchagin/lemul/sys/libkern/arm/ldivmod.S user/dchagin/lemul/sys/mips/mips/machdep.c user/dchagin/lemul/sys/mips/mips/pmap.c user/dchagin/lemul/sys/mips/mips/tick.c user/dchagin/lemul/sys/mips/nlm/tick.c user/dchagin/lemul/sys/mips/rmi/tick.c user/dchagin/lemul/sys/modules/ath/Makefile user/dchagin/lemul/sys/modules/drm2/drm2/Makefile user/dchagin/lemul/sys/modules/ixgbe/Makefile user/dchagin/lemul/sys/modules/mqueue/Makefile user/dchagin/lemul/sys/modules/uart/Makefile user/dchagin/lemul/sys/modules/zfs/Makefile user/dchagin/lemul/sys/net/bpf.c user/dchagin/lemul/sys/net/bridgestp.c user/dchagin/lemul/sys/net/if.c user/dchagin/lemul/sys/net/if_bridge.c user/dchagin/lemul/sys/net/if_gre.c user/dchagin/lemul/sys/net/route.c user/dchagin/lemul/sys/net/route.h user/dchagin/lemul/sys/net/rtsock.c user/dchagin/lemul/sys/net80211/ieee80211.c user/dchagin/lemul/sys/net80211/ieee80211_freebsd.c user/dchagin/lemul/sys/net80211/ieee80211_freebsd.h user/dchagin/lemul/sys/net80211/ieee80211_hostap.c user/dchagin/lemul/sys/net80211/ieee80211_ht.c user/dchagin/lemul/sys/net80211/ieee80211_hwmp.c user/dchagin/lemul/sys/net80211/ieee80211_mesh.c user/dchagin/lemul/sys/net80211/ieee80211_output.c user/dchagin/lemul/sys/net80211/ieee80211_power.c user/dchagin/lemul/sys/net80211/ieee80211_proto.h user/dchagin/lemul/sys/net80211/ieee80211_superg.c user/dchagin/lemul/sys/net80211/ieee80211_var.h user/dchagin/lemul/sys/net80211/ieee80211_wds.c user/dchagin/lemul/sys/netinet/igmp.c user/dchagin/lemul/sys/netinet/ip_carp.c user/dchagin/lemul/sys/netinet/ip_input.c user/dchagin/lemul/sys/netinet/ip_mroute.c user/dchagin/lemul/sys/netinet/ip_options.c user/dchagin/lemul/sys/netinet/ip_output.c user/dchagin/lemul/sys/netinet/libalias/alias.c user/dchagin/lemul/sys/netinet/libalias/alias_db.c user/dchagin/lemul/sys/netinet/sctputil.c user/dchagin/lemul/sys/netinet/siftr.c user/dchagin/lemul/sys/netinet/tcp_output.c user/dchagin/lemul/sys/netinet/tcp_subr.c user/dchagin/lemul/sys/netinet/tcp_timer.c user/dchagin/lemul/sys/netinet6/icmp6.c user/dchagin/lemul/sys/netinet6/ip6_input.c user/dchagin/lemul/sys/netinet6/ip6_mroute.c user/dchagin/lemul/sys/netinet6/ip6_output.c user/dchagin/lemul/sys/netinet6/mld6.c user/dchagin/lemul/sys/netinet6/nd6_nbr.c user/dchagin/lemul/sys/netinet6/raw_ip6.c user/dchagin/lemul/sys/netipsec/key.c user/dchagin/lemul/sys/netpfil/ipfw/ip_fw_dynamic.c user/dchagin/lemul/sys/netpfil/pf/if_pfsync.c user/dchagin/lemul/sys/netpfil/pf/pf.c user/dchagin/lemul/sys/netsmb/smb_dev.c user/dchagin/lemul/sys/nfs/krpc_subr.c user/dchagin/lemul/sys/nfs/nfs_common.c user/dchagin/lemul/sys/nfsclient/nfs_bio.c user/dchagin/lemul/sys/nfsclient/nfs_subs.c user/dchagin/lemul/sys/nfsclient/nfs_vfsops.c user/dchagin/lemul/sys/nfsclient/nfs_vnops.c user/dchagin/lemul/sys/nfsclient/nfsm_subs.h user/dchagin/lemul/sys/nfsclient/nfsmount.h user/dchagin/lemul/sys/nfsserver/nfs_serv.c user/dchagin/lemul/sys/nfsserver/nfs_srvkrpc.c user/dchagin/lemul/sys/ofed/drivers/infiniband/core/umem.c user/dchagin/lemul/sys/ofed/include/linux/file.h user/dchagin/lemul/sys/ofed/include/linux/linux_compat.c user/dchagin/lemul/sys/ofed/include/linux/timer.h user/dchagin/lemul/sys/pc98/pc98/machdep.c user/dchagin/lemul/sys/powerpc/aim/clock.c user/dchagin/lemul/sys/powerpc/aim/machdep.c user/dchagin/lemul/sys/powerpc/aim/mmu_oea.c user/dchagin/lemul/sys/powerpc/aim/mmu_oea64.c user/dchagin/lemul/sys/powerpc/booke/clock.c user/dchagin/lemul/sys/powerpc/booke/machdep.c user/dchagin/lemul/sys/powerpc/booke/pmap.c user/dchagin/lemul/sys/powerpc/powerpc/cpu.c user/dchagin/lemul/sys/powerpc/powerpc/mmu_if.m user/dchagin/lemul/sys/powerpc/powerpc/pmap_dispatch.c user/dchagin/lemul/sys/powerpc/ps3/platform_ps3.c user/dchagin/lemul/sys/powerpc/wii/platform_wii.c user/dchagin/lemul/sys/rpc/clnt_dg.c user/dchagin/lemul/sys/rpc/clnt_rc.c user/dchagin/lemul/sys/rpc/clnt_vc.c user/dchagin/lemul/sys/rpc/rpc_generic.c user/dchagin/lemul/sys/rpc/rpcm_subs.h user/dchagin/lemul/sys/rpc/svc.c user/dchagin/lemul/sys/rpc/svc_dg.c user/dchagin/lemul/sys/rpc/svc_vc.c user/dchagin/lemul/sys/security/audit/audit.h user/dchagin/lemul/sys/security/audit/audit_arg.c user/dchagin/lemul/sys/security/audit/audit_bsm.c user/dchagin/lemul/sys/security/audit/audit_private.h user/dchagin/lemul/sys/security/mac/mac_process.c user/dchagin/lemul/sys/sparc64/conf/GENERIC user/dchagin/lemul/sys/sparc64/pci/ofw_pcib.c user/dchagin/lemul/sys/sparc64/pci/psycho.c user/dchagin/lemul/sys/sparc64/pci/sbbc.c user/dchagin/lemul/sys/sparc64/sbus/sbus.c user/dchagin/lemul/sys/sparc64/sparc64/machdep.c user/dchagin/lemul/sys/sparc64/sparc64/pmap.c user/dchagin/lemul/sys/sparc64/sparc64/tick.c user/dchagin/lemul/sys/sys/_callout.h user/dchagin/lemul/sys/sys/buf.h user/dchagin/lemul/sys/sys/callout.h user/dchagin/lemul/sys/sys/capability.h user/dchagin/lemul/sys/sys/condvar.h user/dchagin/lemul/sys/sys/diskmbr.h user/dchagin/lemul/sys/sys/file.h user/dchagin/lemul/sys/sys/filedesc.h user/dchagin/lemul/sys/sys/mbuf.h user/dchagin/lemul/sys/sys/mutex.h user/dchagin/lemul/sys/sys/namei.h user/dchagin/lemul/sys/sys/param.h user/dchagin/lemul/sys/sys/pmckern.h user/dchagin/lemul/sys/sys/proc.h user/dchagin/lemul/sys/sys/protosw.h user/dchagin/lemul/sys/sys/rmlock.h user/dchagin/lemul/sys/sys/rwlock.h user/dchagin/lemul/sys/sys/sleepqueue.h user/dchagin/lemul/sys/sys/socket.h user/dchagin/lemul/sys/sys/socketvar.h user/dchagin/lemul/sys/sys/sx.h user/dchagin/lemul/sys/sys/syscall.h user/dchagin/lemul/sys/sys/syscall.mk user/dchagin/lemul/sys/sys/sysproto.h user/dchagin/lemul/sys/sys/systm.h user/dchagin/lemul/sys/sys/time.h user/dchagin/lemul/sys/sys/timeet.h user/dchagin/lemul/sys/sys/types.h user/dchagin/lemul/sys/sys/user.h user/dchagin/lemul/sys/sys/vnode.h user/dchagin/lemul/sys/sys/watchdog.h user/dchagin/lemul/sys/ufs/ffs/ffs_balloc.c user/dchagin/lemul/sys/ufs/ffs/ffs_rawread.c user/dchagin/lemul/sys/ufs/ffs/ffs_vnops.c user/dchagin/lemul/sys/ufs/ufs/ufs_vnops.c user/dchagin/lemul/sys/vm/default_pager.c user/dchagin/lemul/sys/vm/device_pager.c user/dchagin/lemul/sys/vm/phys_pager.c user/dchagin/lemul/sys/vm/pmap.h user/dchagin/lemul/sys/vm/sg_pager.c user/dchagin/lemul/sys/vm/swap_pager.c user/dchagin/lemul/sys/vm/uma_core.c user/dchagin/lemul/sys/vm/vm_fault.c user/dchagin/lemul/sys/vm/vm_glue.c user/dchagin/lemul/sys/vm/vm_init.c user/dchagin/lemul/sys/vm/vm_kern.c user/dchagin/lemul/sys/vm/vm_map.c user/dchagin/lemul/sys/vm/vm_meter.c user/dchagin/lemul/sys/vm/vm_mmap.c user/dchagin/lemul/sys/vm/vm_object.c user/dchagin/lemul/sys/vm/vm_object.h user/dchagin/lemul/sys/vm/vm_page.c user/dchagin/lemul/sys/vm/vm_pageout.c user/dchagin/lemul/sys/vm/vm_pager.c user/dchagin/lemul/sys/vm/vm_pager.h user/dchagin/lemul/sys/vm/vm_reserv.c user/dchagin/lemul/sys/vm/vnode_pager.c user/dchagin/lemul/sys/x86/isa/atrtc.c user/dchagin/lemul/sys/x86/isa/clock.c user/dchagin/lemul/sys/x86/x86/local_apic.c user/dchagin/lemul/sys/xdr/xdr_mbuf.c user/dchagin/lemul/tools/make_libdeps.sh user/dchagin/lemul/tools/regression/lib/libc/stdio/Makefile user/dchagin/lemul/tools/regression/pjdfstest/Makefile user/dchagin/lemul/tools/regression/pjdfstest/pjdfstest.c user/dchagin/lemul/tools/regression/pjdfstest/tests/misc.sh user/dchagin/lemul/tools/regression/security/cap_test/cap_test_capabilities.c user/dchagin/lemul/tools/regression/security/cap_test/cap_test_relative.c user/dchagin/lemul/tools/test/iconv/tablegen/cmp.sh user/dchagin/lemul/tools/tools/cxgbetool/cxgbetool.c user/dchagin/lemul/usr.bin/Makefile.arm user/dchagin/lemul/usr.bin/c89/c89.c user/dchagin/lemul/usr.bin/c99/c99.c user/dchagin/lemul/usr.bin/calendar/calendars/calendar.birthday user/dchagin/lemul/usr.bin/dc/dc.c user/dchagin/lemul/usr.bin/ee/nls/ru_RU.KOI8-R/ee.msg user/dchagin/lemul/usr.bin/find/extern.h user/dchagin/lemul/usr.bin/find/find.1 user/dchagin/lemul/usr.bin/find/function.c user/dchagin/lemul/usr.bin/find/option.c user/dchagin/lemul/usr.bin/grep/regex/tre-fastmatch.c user/dchagin/lemul/usr.bin/head/head.1 user/dchagin/lemul/usr.bin/hexdump/conv.c user/dchagin/lemul/usr.bin/kdump/kdump.c user/dchagin/lemul/usr.bin/kdump/mksubr user/dchagin/lemul/usr.bin/netstat/netstat.1 user/dchagin/lemul/usr.bin/procstat/procstat_files.c user/dchagin/lemul/usr.bin/renice/renice.8 user/dchagin/lemul/usr.bin/script/script.1 user/dchagin/lemul/usr.bin/tail/tail.1 user/dchagin/lemul/usr.bin/top/machine.c user/dchagin/lemul/usr.bin/truss/extern.h user/dchagin/lemul/usr.bin/truss/main.c user/dchagin/lemul/usr.bin/unifdef/unifdefall.sh user/dchagin/lemul/usr.bin/unvis/Makefile user/dchagin/lemul/usr.bin/vis/Makefile user/dchagin/lemul/usr.sbin/ac/ac.8 user/dchagin/lemul/usr.sbin/bhyve/acpi.c user/dchagin/lemul/usr.sbin/bhyve/bhyverun.c user/dchagin/lemul/usr.sbin/bhyve/bhyverun.h user/dchagin/lemul/usr.sbin/bhyve/mptbl.c user/dchagin/lemul/usr.sbin/bhyve/pci_passthru.c user/dchagin/lemul/usr.sbin/bhyve/pci_virtio_block.c user/dchagin/lemul/usr.sbin/bhyve/pci_virtio_net.c user/dchagin/lemul/usr.sbin/bhyve/virtio.h user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions-disk.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions-extractimage.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions-mountdisk.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions-newfs.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions-packages.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions-parse.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/functions.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/backend/parseconfig.sh user/dchagin/lemul/usr.sbin/pc-sysinstall/conf/pc-sysinstall.conf user/dchagin/lemul/usr.sbin/pc-sysinstall/examples/README user/dchagin/lemul/usr.sbin/pkg/Makefile user/dchagin/lemul/usr.sbin/pkg/pkg.c user/dchagin/lemul/usr.sbin/rtadvd/rtadvd.c user/dchagin/lemul/usr.sbin/tzsetup/tzsetup.c user/dchagin/lemul/usr.sbin/usbconfig/usbconfig.c user/dchagin/lemul/usr.sbin/watchdogd/watchdogd.8 user/dchagin/lemul/usr.sbin/watchdogd/watchdogd.c Directory Properties: user/dchagin/lemul/ (props changed) user/dchagin/lemul/cddl/contrib/opensolaris/ (props changed) user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/dchagin/lemul/cddl/contrib/opensolaris/lib/libzfs/ (props changed) user/dchagin/lemul/contrib/libc-vis/ (props changed) user/dchagin/lemul/contrib/openbsm/ (props changed) user/dchagin/lemul/contrib/openpam/ (props changed) user/dchagin/lemul/contrib/tzdata/ (props changed) user/dchagin/lemul/crypto/openssh/ (props changed) user/dchagin/lemul/gnu/lib/ (props changed) user/dchagin/lemul/lib/libc/ (props changed) user/dchagin/lemul/lib/libutil/ (props changed) user/dchagin/lemul/sbin/ (props changed) user/dchagin/lemul/sbin/ipfw/ (props changed) user/dchagin/lemul/share/man/man4/ (props changed) user/dchagin/lemul/sys/ (props changed) user/dchagin/lemul/sys/amd64/vmm/ (props changed) user/dchagin/lemul/sys/boot/ (props changed) user/dchagin/lemul/sys/cddl/contrib/opensolaris/ (props changed) user/dchagin/lemul/sys/conf/ (props changed) user/dchagin/lemul/usr.bin/calendar/ (props changed) user/dchagin/lemul/usr.bin/procstat/ (props changed) user/dchagin/lemul/usr.sbin/bhyve/ (props changed) user/dchagin/lemul/usr.sbin/rtadvd/ (props changed) Modified: user/dchagin/lemul/MAINTAINERS ============================================================================== --- user/dchagin/lemul/MAINTAINERS Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/MAINTAINERS Sun Mar 17 15:59:44 2013 (r248427) @@ -124,3 +124,6 @@ isci(4) jimharris Pre-commit review req cmx daniel@roe.ch Pre-commit review preferred. filemon obrien Pre-commit review preferred. sysdoc trhodes Pre-commit review preferred. +sh(1) jilles Pre-commit review requested. This also applies + to kill(1), printf(1) and test(1) which are + compiled in as builtins. Modified: user/dchagin/lemul/ObsoleteFiles.inc ============================================================================== --- user/dchagin/lemul/ObsoleteFiles.inc Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/ObsoleteFiles.inc Sun Mar 17 15:59:44 2013 (r248427) @@ -38,6 +38,81 @@ # xargs -n1 | sort | uniq -d; # done +OLD_FILES+=usr/share/man/man4/vinum.4.gz +# 20130311: Ports are no more available via cvsup +OLD_FILES+=usr/share/examples/cvsup/ports-supfile +OLD_FILES+=usr/share/examples/cvsup/refuse +OLD_FILES+=usr/share/examples/cvsup/refuse.README +# 20130309: NWFS and NCP supports removed +OLD_FILES+=usr/bin/ncplist +OLD_FILES+=usr/bin/ncplogin +OLD_FILES+=usr/bin/ncplogout +OLD_FILES+=usr/include/fs/nwfs/nwfs.h +OLD_FILES+=usr/include/fs/nwfs/nwfs_mount.h +OLD_FILES+=usr/include/fs/nwfs/nwfs_node.h +OLD_FILES+=usr/include/fs/nwfs/nwfs_subr.h +OLD_DIRS+=usr/include/fs/nwfs +OLD_FILES+=usr/include/netncp/ncp.h +OLD_FILES+=usr/include/netncp/ncp_cfg.h +OLD_FILES+=usr/include/netncp/ncp_conn.h +OLD_FILES+=usr/include/netncp/ncp_file.h +OLD_FILES+=usr/include/netncp/ncp_lib.h +OLD_FILES+=usr/include/netncp/ncp_ncp.h +OLD_FILES+=usr/include/netncp/ncp_nls.h +OLD_FILES+=usr/include/netncp/ncp_rcfile.h +OLD_FILES+=usr/include/netncp/ncp_rq.h +OLD_FILES+=usr/include/netncp/ncp_sock.h +OLD_FILES+=usr/include/netncp/ncp_subr.h +OLD_FILES+=usr/include/netncp/ncp_user.h +OLD_FILES+=usr/include/netncp/ncpio.h +OLD_FILES+=usr/include/netncp/nwerror.h +OLD_DIRS+=usr/include/netncp +OLD_FILES+=usr/lib/libncp.a +OLD_FILES+=usr/lib/libncp.so +OLD_LIBS+=usr/lib/libncp.so.4 +OLD_FILES+=usr/lib/libncp_p.a +OLD_FILES+=usr/lib32/libncp.a +OLD_FILES+=usr/lib32/libncp.so +OLD_LIBS+=usr/lib32/libncp.so.4 +OLD_FILES+=usr/lib32/libncp_p.a +OLD_FILES+=usr/sbin/mount_nwfs +OLD_FILES+=usr/share/examples/nwclient/dot.nwfsrc +OLD_FILES+=usr/share/examples/nwclient/nwfs.sh.sample +OLD_DIRS+=usr/share/examples/nwclient +OLD_FILES+=usr/share/man/man1/ncplist.1.gz +OLD_FILES+=usr/share/man/man1/ncplogin.1.gz +OLD_FILES+=usr/share/man/man1/ncplogout.1.gz +OLD_FILES+=usr/share/man/man8/mount_nwfs.8.gz +# 20130302: NTFS support removed +OLD_FILES+=rescue/mount_ntfs +OLD_FILES+=sbin/mount_ntfs +OLD_FILES+=usr/include/fs/ntfs/ntfs.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_compr.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_ihash.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_inode.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_subr.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_vfsops.h +OLD_FILES+=usr/include/fs/ntfs/ntfsmount.h +OLD_DIRS+=usr/include/fs/ntfs +OLD_FILES+=usr/share/man/man8/mount_ntfs.8.gz +# 20130302: PORTALFS support removed +OLD_FILES+=usr/include/fs/portalfs/portal.h +OLD_DIRS+=usr/include/fs/portalfs +OLD_FILES+=usr/sbin/mount_portalfs +OLD_FILES+=usr/share/examples/portal/README +OLD_FILES+=usr/share/examples/portal/portal.conf +OLD_DIRS+=usr/share/examples/portal +OLD_FILES+=usr/share/man/man8/mount_portalfs.8.gz +# 20130302: CODAFS support removed +OLD_FILES+=usr/share/man/man4/coda.4.gz +# 20130302: XFS support removed +OLD_FILES+=usr/share/man/man5/xfs.5.gz +# 20130302: Capsicum overhaul +OLD_FILES+=usr/share/man/man2/cap_getrights.2.gz +OLD_FILES+=usr/share/man/man2/cap_new.2.gz +# 20130213: OpenSSL 1.0.1e import +OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_verifyrecover.3.gz +OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_verifyrecover_init.3.gz # 20130116: removed long unused directories for .1aout section manpages OLD_FILES+=usr/share/man/en.ISO8859-1/man1aout OLD_FILES+=usr/share/man/en.UTF-8/man1aout @@ -58,9 +133,10 @@ OLD_DIRS+=var/remote # 20121114: zpool-features manual page moved from section 5 to 7 OLD_FILES+=usr/share/man/man5/zpool-features.5.gz # 20121022: remove harp, hfa and idt man page -OLD_FILES+=share/man/man4/harp.4 -OLD_FILES+=share/man/man4/hfa.4 -OLD_FILES+=share/man/man4/idt.4 +OLD_FILES+=usr/share/man/man4/harp.4.gz +OLD_FILES+=usr/share/man/man4/hfa.4.gz +OLD_FILES+=usr/share/man/man4/idt.4.gz +OLD_FILES+=usr/share/man/man4/if_idt.4.gz # 20121022: VFS_LOCK_GIANT elimination OLD_FILES+=usr/share/man/man9/VFS_LOCK_GIANT.9.gz OLD_FILES+=usr/share/man/man9/VFS_UNLOCK_GIANT.9.gz Modified: user/dchagin/lemul/UPDATING ============================================================================== --- user/dchagin/lemul/UPDATING Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/UPDATING Sun Mar 17 15:59:44 2013 (r248427) @@ -26,6 +26,37 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20130308: + CTL_DISABLE has also been added to the sparc64 GENERIC (for further + information, see the respective 20130304 entry). + +20130304: + Recent commits to callout(9) changed the size of struct callout, + so the KBI is probably heavily disturbed. Also, some functions + in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced + by macros. Every kernel module using it won't load, so rebuild + is requested. + + The ctl device has been re-enabled in GENERIC for i386 and amd64, + but does not initialize by default (because of the new CTL_DISABLE + option) to save memory. To re-enable it, remove the CTL_DISABLE + option from the kernel config file or set kern.cam.ctl.disable=0 + in /boot/loader.conf. + +20130301: + The ctl device has been disabled in GENERIC for i386 and amd64. + This was done due to the extra memory being allocated at system + initialisation time by the ctl driver which was only used if + a CAM target device was created. This makes a FreeBSD system + unusable on 128MB or less of RAM. + +20130208: + A new compression method (lz4) has been merged to -HEAD. Please + refer to zpool-features(7) for more information. + + Please refer to the "ZFS notes" section of this file for information + on upgrading boot ZFS pools. + 20130129: A BSD-licensed patch(1) variant has been added and is installed as bsdpatch, being the GNU version the default patch. @@ -39,8 +70,8 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 unlikely event that -M was the last option on the command line and the command line contained at least two files and a target directory the first file will have logs appended to it. The -M - option served little practical purpose in the last decade so it's - used expected to be extremely rare. + option served little practical purpose in the last decade so its + use is expected to be extremely rare. 20121223: After switching to Clang as the default compiler some users of ZFS Modified: user/dchagin/lemul/bin/cp/cp.1 ============================================================================== --- user/dchagin/lemul/bin/cp/cp.1 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/cp/cp.1 Sun Mar 17 15:59:44 2013 (r248427) @@ -32,7 +32,7 @@ .\" @(#)cp.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd September 4, 2012 +.Dd March 15, 2013 .Dt CP 1 .Os .Sh NAME @@ -251,6 +251,27 @@ signal, the current input and output fil will be written to the standard output. .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Make a copy of file +.Pa foo +named +.Pa bar : +.Pp +.Dl $ cp foo bar +.Pp +Copy a group of files to the +.Pa /tmp +directory: +.Pp +.Dl $ cp *.txt /tmp +.Pp +Copy the directory +.Pa junk +and all of its contents (including any subdirectories) to the +.Pa /tmp +directory: +.Pp +.Dl $ cp -R junk /tmp .Sh COMPATIBILITY Historic versions of the .Nm Modified: user/dchagin/lemul/bin/ls/ls.1 ============================================================================== --- user/dchagin/lemul/bin/ls/ls.1 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/ls/ls.1 Sun Mar 17 15:59:44 2013 (r248427) @@ -32,7 +32,7 @@ .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 .\" $FreeBSD$ .\" -.Dd November 8, 2012 +.Dd March 15, 2013 .Dt LS 1 .Os .Sh NAME @@ -718,6 +718,24 @@ for more information. .El .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +List the contents of the current working directory in long format: +.Pp +.Dl $ ls -l +.Pp +In addition to listing the contents of the current working directory in +long format, show inode numbers, file flags (see +.Xr chflags 1 ) , +and suffix each filename with a symbol representing its file type: +.Pp +.Dl $ ls -lioF +.Pp +List the files in +.Pa /var/log , +sorting the output such that the mostly recently modified entries are +printed first: +.Pp +.Dl $ ls -lt /var/log .Sh COMPATIBILITY The group field is now automatically included in the long listing for files in order to be compatible with the Modified: user/dchagin/lemul/bin/mkdir/mkdir.1 ============================================================================== --- user/dchagin/lemul/bin/mkdir/mkdir.1 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/mkdir/mkdir.1 Sun Mar 17 15:59:44 2013 (r248427) @@ -32,7 +32,7 @@ .\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94 .\" $FreeBSD$ .\" -.Dd January 25, 1994 +.Dd March 15, 2013 .Dt MKDIR 1 .Os .Sh NAME @@ -87,6 +87,23 @@ Be verbose when creating directories, li The user must have write permission in the parent directory. .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Create a directory named +.Pa foobar : +.Pp +.Dl $ mkdir foobar +.Pp +Create a directory named +.Pa foobar +and set its file mode to 700: +.Pp +.Dl $ mkdir -m 700 foobar +.Pp +Create a directory named +.Pa cow/horse/monkey , +creating any non-existent intermediate directories as necessary: +.Pp +.Dl $ mkdir -p cow/horse/monkey .Sh COMPATIBILITY The .Fl v Modified: user/dchagin/lemul/bin/mv/mv.1 ============================================================================== --- user/dchagin/lemul/bin/mv/mv.1 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/mv/mv.1 Sun Mar 17 15:59:44 2013 (r248427) @@ -32,7 +32,7 @@ .\" @(#)mv.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd August 28, 2012 +.Dd March 15, 2013 .Dt MV 1 .Os .Sh NAME @@ -155,6 +155,16 @@ rm -rf source_file .Ed .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Rename file +.Pa foo +to +.Pa bar , +overwriting +.Pa bar +if it already exists: +.Pp +.Dl $ mv -f foo bar .Sh COMPATIBILITY The .Fl h , Modified: user/dchagin/lemul/bin/ps/ps.1 ============================================================================== --- user/dchagin/lemul/bin/ps/ps.1 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/ps/ps.1 Sun Mar 17 15:59:44 2013 (r248427) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd February 7, 2013 +.Dd March 15, 2013 .Dt PS 1 .Os .Sh NAME @@ -689,6 +689,10 @@ attempts to automatically determine the .It Pa /boot/kernel/kernel default system namelist .El +.Sh EXAMPLES +Display information on all system processes: +.Pp +.Dl $ ps -auxw .Sh SEE ALSO .Xr kill 1 , .Xr pgrep 1 , Modified: user/dchagin/lemul/bin/rm/rm.1 ============================================================================== --- user/dchagin/lemul/bin/rm/rm.1 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/rm/rm.1 Sun Mar 17 15:59:44 2013 (r248427) @@ -32,7 +32,7 @@ .\" @(#)rm.1 8.5 (Berkeley) 12/5/94 .\" $FreeBSD$ .\" -.Dd October 31, 2010 +.Dd March 15, 2013 .Dt RM 1 .Os .Sh NAME @@ -193,6 +193,19 @@ When is specified with .Fl f the file will be overwritten and removed even if it has hard links. +.Sh EXAMPLES +Recursively remove all files contained within the +.Pa foobar +directory hierarchy: +.Pp +.Dl $ rm -rf foobar +.Pp +Either of these commands will remove the file +.Pa -f : +.Bd -literal -offset indent +$ rm -- -f +$ rm ./-f +.Ed .Sh COMPATIBILITY The .Nm Modified: user/dchagin/lemul/bin/rmdir/rmdir.1 ============================================================================== --- user/dchagin/lemul/bin/rmdir/rmdir.1 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/rmdir/rmdir.1 Sun Mar 17 15:59:44 2013 (r248427) @@ -32,7 +32,7 @@ .\" @(#)rmdir.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd March 21, 2004 +.Dd March 15, 2013 .Dt RMDIR 1 .Os .Sh NAME @@ -86,6 +86,18 @@ successfully. .It Li >0 An error occurred. .El +.Sh EXAMPLES +Remove the directory +.Pa foobar , +if it is empty: +.Pp +.Dl $ rmdir foobar +.Pp +Remove all directories up to and including +.Pa cow , +stopping at the first non-empty directory (if any): +.Pp +.Dl $ rmdir -p cow/horse/monkey .Sh SEE ALSO .Xr rm 1 .Sh STANDARDS Modified: user/dchagin/lemul/bin/sh/jobs.c ============================================================================== --- user/dchagin/lemul/bin/sh/jobs.c Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/sh/jobs.c Sun Mar 17 15:59:44 2013 (r248427) @@ -458,14 +458,15 @@ freejob(struct job *jp) int -waitcmd(int argc, char **argv) +waitcmd(int argc __unused, char **argv __unused) { struct job *job; int status, retval; struct job *jp; - if (argc > 1) { - job = getjob(argv[1]); + nextopt(""); + if (*argptr != NULL) { + job = getjob(*argptr); } else { job = NULL; } Modified: user/dchagin/lemul/bin/sh/trap.c ============================================================================== --- user/dchagin/lemul/bin/sh/trap.c Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/bin/sh/trap.c Sun Mar 17 15:59:44 2013 (r248427) @@ -455,7 +455,6 @@ dotrap(void) last_trapsig = i; savestatus = exitstatus; evalstring(trap[i], 0); - exitstatus = savestatus; /* * If such a command was not @@ -464,9 +463,11 @@ dotrap(void) * trap action to have an effect * outside of it. */ - if (prev_evalskip != 0) { + if (evalskip == 0 || + prev_evalskip != 0) { evalskip = prev_evalskip; skipcount = prev_skipcount; + exitstatus = savestatus; } if (i == SIGCHLD) Modified: user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sun Mar 17 15:59:44 2013 (r248427) @@ -545,7 +545,7 @@ static void dump_metaslab_stats(metaslab_t *msp) { char maxbuf[32]; - space_map_t *sm = &msp->ms_map; + space_map_t *sm = msp->ms_map; avl_tree_t *t = sm->sm_pp_root; int free_pct = sm->sm_space * 100 / sm->sm_size; @@ -561,7 +561,7 @@ dump_metaslab(metaslab_t *msp) { vdev_t *vd = msp->ms_group->mg_vd; spa_t *spa = vd->vdev_spa; - space_map_t *sm = &msp->ms_map; + space_map_t *sm = msp->ms_map; space_map_obj_t *smo = &msp->ms_smo; char freebuf[32]; @@ -1189,7 +1189,7 @@ dump_bpobj_cb(void *arg, const blkptr_t } static void -dump_bpobj(bpobj_t *bpo, char *name) +dump_bpobj(bpobj_t *bpo, char *name, int indent) { char bytes[32]; char comp[32]; @@ -1199,31 +1199,57 @@ dump_bpobj(bpobj_t *bpo, char *name) return; zdb_nicenum(bpo->bpo_phys->bpo_bytes, bytes); - if (bpo->bpo_havesubobj) { + if (bpo->bpo_havesubobj && bpo->bpo_phys->bpo_subobjs != 0) { zdb_nicenum(bpo->bpo_phys->bpo_comp, comp); zdb_nicenum(bpo->bpo_phys->bpo_uncomp, uncomp); - (void) printf("\n %s: %llu local blkptrs, %llu subobjs, " - "%s (%s/%s comp)\n", - name, (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, + (void) printf(" %*s: object %llu, %llu local blkptrs, " + "%llu subobjs, %s (%s/%s comp)\n", + indent * 8, name, + (u_longlong_t)bpo->bpo_object, + (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, (u_longlong_t)bpo->bpo_phys->bpo_num_subobjs, bytes, comp, uncomp); + + for (uint64_t i = 0; i < bpo->bpo_phys->bpo_num_subobjs; i++) { + uint64_t subobj; + bpobj_t subbpo; + int error; + VERIFY0(dmu_read(bpo->bpo_os, + bpo->bpo_phys->bpo_subobjs, + i * sizeof (subobj), sizeof (subobj), &subobj, 0)); + error = bpobj_open(&subbpo, bpo->bpo_os, subobj); + if (error != 0) { + (void) printf("ERROR %u while trying to open " + "subobj id %llu\n", + error, (u_longlong_t)subobj); + continue; + } + dump_bpobj(&subbpo, "subobj", indent + 1); + bpobj_close(&subbpo); + } } else { - (void) printf("\n %s: %llu blkptrs, %s\n", - name, (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, bytes); + (void) printf(" %*s: object %llu, %llu blkptrs, %s\n", + indent * 8, name, + (u_longlong_t)bpo->bpo_object, + (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, + bytes); } if (dump_opt['d'] < 5) return; - (void) printf("\n"); - (void) bpobj_iterate_nofree(bpo, dump_bpobj_cb, NULL, NULL); + if (indent == 0) { + (void) bpobj_iterate_nofree(bpo, dump_bpobj_cb, NULL, NULL); + (void) printf("\n"); + } } static void dump_deadlist(dsl_deadlist_t *dl) { dsl_deadlist_entry_t *dle; + uint64_t unused; char bytes[32]; char comp[32]; char uncomp[32]; @@ -1242,14 +1268,24 @@ dump_deadlist(dsl_deadlist_t *dl) (void) printf("\n"); + /* force the tree to be loaded */ + dsl_deadlist_space_range(dl, 0, UINT64_MAX, &unused, &unused, &unused); + for (dle = avl_first(&dl->dl_tree); dle; dle = AVL_NEXT(&dl->dl_tree, dle)) { - (void) printf(" mintxg %llu -> obj %llu\n", - (longlong_t)dle->dle_mintxg, - (longlong_t)dle->dle_bpobj.bpo_object); + if (dump_opt['d'] >= 5) { + char buf[128]; + (void) snprintf(buf, sizeof (buf), "mintxg %llu -> ", + (longlong_t)dle->dle_mintxg, + (longlong_t)dle->dle_bpobj.bpo_object); - if (dump_opt['d'] >= 5) - dump_bpobj(&dle->dle_bpobj, ""); + dump_bpobj(&dle->dle_bpobj, buf, 0); + } else { + (void) printf("mintxg %llu -> obj %llu\n", + (longlong_t)dle->dle_mintxg, + (longlong_t)dle->dle_bpobj.bpo_object); + + } } } @@ -1272,7 +1308,7 @@ fuid_table_destroy() * print uid or gid information. * For normal POSIX id just the id is printed in decimal format. * For CIFS files with FUID the fuid is printed in hex followed by - * the doman-rid string. + * the domain-rid string. */ static void print_idstr(uint64_t id, const char *id_type) @@ -2160,11 +2196,11 @@ zdb_leak_init(spa_t *spa, zdb_cb_t *zcb) for (int m = 0; m < vd->vdev_ms_count; m++) { metaslab_t *msp = vd->vdev_ms[m]; mutex_enter(&msp->ms_lock); - space_map_unload(&msp->ms_map); - VERIFY(space_map_load(&msp->ms_map, + space_map_unload(msp->ms_map); + VERIFY(space_map_load(msp->ms_map, &zdb_space_map_ops, SM_ALLOC, &msp->ms_smo, spa->spa_meta_objset) == 0); - msp->ms_map.sm_ppd = vd; + msp->ms_map->sm_ppd = vd; mutex_exit(&msp->ms_lock); } } @@ -2187,7 +2223,7 @@ zdb_leak_fini(spa_t *spa) for (int m = 0; m < vd->vdev_ms_count; m++) { metaslab_t *msp = vd->vdev_ms[m]; mutex_enter(&msp->ms_lock); - space_map_unload(&msp->ms_map); + space_map_unload(msp->ms_map); mutex_exit(&msp->ms_lock); } } @@ -2529,10 +2565,11 @@ dump_zpool(spa_t *spa) if (dump_opt['d'] || dump_opt['i']) { dump_dir(dp->dp_meta_objset); if (dump_opt['d'] >= 3) { - dump_bpobj(&spa->spa_deferred_bpobj, "Deferred frees"); + dump_bpobj(&spa->spa_deferred_bpobj, + "Deferred frees", 0); if (spa_version(spa) >= SPA_VERSION_DEADLISTS) { dump_bpobj(&spa->spa_dsl_pool->dp_free_bpobj, - "Pool snapshot frees"); + "Pool snapshot frees", 0); } if (spa_feature_is_active(spa, Modified: user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Sun Mar 17 15:59:44 2013 (r248427) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 10, 2013 +.Dd March 1, 2013 .Dt ZFS 8 .Os .Sh NAME @@ -526,6 +526,39 @@ if the snapshot has been marked for defe .Qq Nm Cm destroy -d command. Otherwise, the property is .Cm off . +.It Sy logicalreferenced +The amount of space that is +.Qq logically +accessible by this dataset. +See the +.Sy referenced +property. +The logical space ignores the effect of the +.Sy compression +and +.Sy copies +properties, giving a quantity closer to the amount of data that applications +see. +However, it does include space consumed by metadata. +.Pp +This property can also be referred to by its shortened column name, +.Sy lrefer . +.It Sy logicalused +The amount of space that is +.Qq logically +consumed by this dataset and all its descendents. +See the +.Sy used +property. +The logical space ignores the effect of the +.Sy compression +and +.Sy copies +properties, giving a quantity closer to the amount of data that applications +see. +.Pp +This property can also be referred to by its shortened column name, +.Sy lused . .It Sy mounted For file systems, indicates whether the file system is currently mounted. This property can be either Modified: user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zpool/zpool.8 ============================================================================== --- user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Sun Mar 17 15:59:44 2013 (r248427) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 15, 2012 +.Dd March 14, 2013 .Dt ZPOOL 8 .Os .Sh NAME @@ -1608,14 +1608,15 @@ is specified, the command exits after .Ar count reports are printed. .Pp -If a scrub or resilver is in progress, this command reports the percentage done -and the estimated time to completion. Both of these are only approximate, +If a scrub or resilver is in progress, this command reports the percentage +done and the estimated time to completion. Both of these are only approximate, because the amount of data in the pool and the other workloads on the system can change. .Bl -tag -width indent .It Fl x Only display status for pools that are exhibiting errors or are otherwise unavailable. +Warnings about pools not using the latest on-disk format will not be included. .It Fl v Displays verbose data error information, printing out a complete list of all data errors since the last complete pool scrub. Modified: user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sun Mar 17 15:59:44 2013 (r248427) @@ -4031,7 +4031,10 @@ status_callback(zpool_handle_t *zhp, voi * If we were given 'zpool status -x', only report those pools with * problems. */ - if (reason == ZPOOL_STATUS_OK && cbp->cb_explain) { + if (cbp->cb_explain && + (reason == ZPOOL_STATUS_OK || + reason == ZPOOL_STATUS_VERSION_OLDER || + reason == ZPOOL_STATUS_FEAT_DISABLED)) { if (!cbp->cb_allpools) { (void) printf(gettext("pool '%s' is healthy\n"), zpool_get_name(zhp)); Modified: user/dchagin/lemul/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h ============================================================================== --- user/dchagin/lemul/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h Sun Mar 17 15:59:44 2013 (r248427) @@ -24,6 +24,7 @@ * Copyright (c) 2011 Pawel Jakub Dawidek . * All rights reserved. * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2013 Martin Matuska . All rights reserved. */ #ifndef _LIBFS_IMPL_H @@ -216,6 +217,7 @@ extern void libzfs_fru_clear(libzfs_hand #ifndef sun static int zfs_kernel_version = 0; +static int zfs_ioctl_version = 0; /* * This is FreeBSD version of ioctl, because Solaris' ioctl() updates @@ -225,19 +227,34 @@ static int zfs_kernel_version = 0; static __inline int zcmd_ioctl(int fd, unsigned long cmd, zfs_cmd_t *zc) { - size_t oldsize, zfs_kernel_version_size; + size_t oldsize, zfs_kernel_version_size, zfs_ioctl_version_size; int version, ret, cflag = ZFS_CMD_COMPAT_NONE; - zfs_kernel_version_size = sizeof(zfs_kernel_version); - if (zfs_kernel_version == 0) { - sysctlbyname("vfs.zfs.version.spa", &zfs_kernel_version, - &zfs_kernel_version_size, NULL, 0); + zfs_ioctl_version_size = sizeof(zfs_ioctl_version); + if (zfs_ioctl_version == 0) { + sysctlbyname("vfs.zfs.version.ioctl", &zfs_ioctl_version, + &zfs_ioctl_version_size, NULL, 0); } - if (zfs_kernel_version == SPA_VERSION_15 || - zfs_kernel_version == SPA_VERSION_14 || - zfs_kernel_version == SPA_VERSION_13) - cflag = ZFS_CMD_COMPAT_V15; + /* + * If vfs.zfs.version.ioctl is not defined, assume we have v28 + * compatible binaries and use vfs.zfs.version.spa to test for v15 + */ + if (zfs_ioctl_version < ZFS_IOCVER_DEADMAN) { + cflag = ZFS_CMD_COMPAT_V28; + zfs_kernel_version_size = sizeof(zfs_kernel_version); + + if (zfs_kernel_version == 0) { + sysctlbyname("vfs.zfs.version.spa", + &zfs_kernel_version, + &zfs_kernel_version_size, NULL, 0); + } + + if (zfs_kernel_version == SPA_VERSION_15 || + zfs_kernel_version == SPA_VERSION_14 || + zfs_kernel_version == SPA_VERSION_13) + cflag = ZFS_CMD_COMPAT_V15; + } oldsize = zc->zc_nvlist_dst_size; ret = zcmd_ioctl_compat(fd, cmd, zc, cflag); Modified: user/dchagin/lemul/cddl/contrib/opensolaris/tools/ctf/cvt/output.c ============================================================================== --- user/dchagin/lemul/cddl/contrib/opensolaris/tools/ctf/cvt/output.c Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/cddl/contrib/opensolaris/tools/ctf/cvt/output.c Sun Mar 17 15:59:44 2013 (r248427) @@ -363,6 +363,7 @@ sort_iidescs(Elf *elf, const char *file, for (i = 0; i < nent; i++) { GElf_Sym sym; + char *bname; iidesc_t **tolist; GElf_Sym ssym; iidesc_match_t smatch; @@ -377,7 +378,8 @@ sort_iidescs(Elf *elf, const char *file, switch (GELF_ST_TYPE(sym.st_info)) { case STT_FILE: - match.iim_file = match.iim_name; + bname = strrchr(match.iim_name, '/'); + match.iim_file = bname == NULL ? match.iim_name : bname + 1; continue; case STT_OBJECT: tolist = iiburst->iib_objts; Modified: user/dchagin/lemul/contrib/libc-vis/unvis.3 ============================================================================== --- user/dchagin/lemul/contrib/libc-vis/unvis.3 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/contrib/libc-vis/unvis.3 Sun Mar 17 15:59:44 2013 (r248427) @@ -1,4 +1,4 @@ -.\" $NetBSD: unvis.3,v 1.23 2011/03/17 14:06:29 wiz Exp $ +.\" $NetBSD: unvis.3,v 1.27 2012/12/15 07:34:36 wiz Exp $ .\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 @@ -126,15 +126,17 @@ The function has several return codes that must be handled properly. They are: .Bl -tag -width UNVIS_VALIDPUSH -.It Li \&0 (zero) +.It Li \&0 No (zero) Another character is necessary; nothing has been recognized yet. .It Dv UNVIS_VALID A valid character has been recognized and is available at the location -pointed to by cp. +pointed to by +.Fa cp . .It Dv UNVIS_VALIDPUSH A valid character has been recognized and is available at the location -pointed to by cp; however, the character currently passed in should -be passed in again. +pointed to by +.Fa cp ; +however, the character currently passed in should be passed in again. .It Dv UNVIS_NOCHAR A valid sequence was detected, but no character was produced. This return code is necessary to indicate a logical break between characters. @@ -150,7 +152,7 @@ one more time with flag set to to extract any remaining character (the character passed in is ignored). .Pp The -.Ar flag +.Fa flag argument is also used to specify the encoding style of the source. If set to .Dv VIS_HTTPSTYLE @@ -161,7 +163,8 @@ will decode URI strings as specified in If set to .Dv VIS_HTTP1866 , .Fn unvis -will decode URI strings as specified in RFC 1866. +will decode entity references and numeric character references +as specified in RFC 1866. If set to .Dv VIS_MIMESTYLE , .Fn unvis @@ -169,7 +172,9 @@ will decode MIME Quoted-Printable string If set to .Dv VIS_NOESCAPE , .Fn unvis -will not decode \e quoted characters. +will not decode +.Ql \e +quoted characters. .Pp The following code fragment illustrates a proper use of .Fn unvis . @@ -204,7 +209,7 @@ The functions and .Fn strnunvisx will return \-1 on error and set -.Va errno +.Va errno to: .Bl -tag -width Er .It Bq Er EINVAL @@ -212,7 +217,7 @@ An invalid escape sequence was detected, .El .Pp In addition the functions -.Fn strnunvis +.Fn strnunvis and .Fn strnunvisx will can also set @@ -244,4 +249,14 @@ and functions appeared in .Nx 6.0 and -.Fx 10.0 . +.Fx 9.2 . +.Sh BUGS +The names +.Dv VIS_HTTP1808 +and +.Dv VIS_HTTP1866 +are wrong. +Percent-encoding was defined in RFC 1738, the original RFC for URL. +RFC 1866 defines HTML 2.0, an application of SGML, from which it +inherits concepts of numeric character references and entity +references. Modified: user/dchagin/lemul/contrib/libc-vis/unvis.c ============================================================================== --- user/dchagin/lemul/contrib/libc-vis/unvis.c Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/contrib/libc-vis/unvis.c Sun Mar 17 15:59:44 2013 (r248427) @@ -1,4 +1,4 @@ -/* $NetBSD: unvis.c,v 1.40 2012/12/14 21:31:01 christos Exp $ */ +/* $NetBSD: unvis.c,v 1.41 2012/12/15 04:29:53 matt Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)unvis.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: unvis.c,v 1.40 2012/12/14 21:31:01 christos Exp $"); +__RCSID("$NetBSD: unvis.c,v 1.41 2012/12/15 04:29:53 matt Exp $"); #endif #endif /* LIBC_SCCS and not lint */ __FBSDID("$FreeBSD$"); @@ -90,7 +90,7 @@ __weak_alias(strnunvisx,_strnunvisx) * RFC 1866 */ static const struct nv { - const char name[7]; + char name[7]; uint8_t value; } nv[] = { { "AElig", 198 }, /* capital AE diphthong (ligature) */ Modified: user/dchagin/lemul/contrib/libc-vis/vis.3 ============================================================================== --- user/dchagin/lemul/contrib/libc-vis/vis.3 Sun Mar 17 15:53:27 2013 (r248426) +++ user/dchagin/lemul/contrib/libc-vis/vis.3 Sun Mar 17 15:59:44 2013 (r248427) @@ -1,4 +1,4 @@ -.\" $NetBSD: vis.3,v 1.29 2012/12/14 22:55:59 christos Exp $ +.\" $NetBSD: vis.3,v 1.39 2013/02/20 20:05:26 christos Exp $ .\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 @@ -30,7 +30,7 @@ .\" .\" @(#)vis.3 8.1 (Berkeley) 6/9/93 .\" -.Dd December 14, 2012 +.Dd February 19, 2013 .Dt VIS 3 .Os .Sh NAME @@ -40,12 +40,14 @@ .Nm strnvis , .Nm strvisx , .Nm strnvisx , +.Nm strenvisx , .Nm svis , .Nm snvis , .Nm strsvis , .Nm strsnvis , -.Nm strsvisx -.Nm strsnvisx +.Nm strsvisx , +.Nm strsnvisx , +.Nm strsenvisx .Nd visually encode characters .Sh LIBRARY .Lb libc @@ -63,6 +65,8 @@ .Fn strvisx "char *dst" "const char *src" "size_t len" "int flag" .Ft int .Fn strnvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" +.Ft int +.Fn strenvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "int *cerr_ptr" .Ft char * .Fn svis "char *dst" "int c" "int flag" "int nextc" "const char *extra" .Ft char * @@ -75,6 +79,8 @@ .Fn strsvisx "char *dst" "const char *src" "size_t len" "int flag" "const char *extra" .Ft int .Fn strsnvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "const char *extra" +.Ft int +.Fn strsenvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "const char *extra" "int *cerr_ptr" .Sh DESCRIPTION The .Fn vis @@ -89,11 +95,11 @@ needs no encoding, it is copied in unalt The string is null terminated, and a pointer to the end of the string is returned. The maximum length of any encoding is four -characters (not including the trailing +bytes (not including the trailing .Dv NUL ) ; thus, when encoding a set of characters into a buffer, the size of the buffer should -be four times the number of characters encoded, plus one for the trailing +be four times the number of bytes encoded, plus one for the trailing .Dv NUL . The flag parameter is used for altering the default range of characters considered for encoding and for altering the visual @@ -142,16 +148,17 @@ terminate The size of .Fa dst must be four times the number -of characters encoded from +of bytes encoded from .Fa src (plus one for the .Dv NUL ) . Both -forms return the number of characters in dst (not including -the trailing +forms return the number of characters in +.Fa dst +(not including the trailing .Dv NUL ) . The -.Dq n +.Dq Nm n versions of the functions also take an additional argument .Fa dlen that indicates the length of the @@ -159,7 +166,7 @@ that indicates the length of the buffer. If .Fa dlen -is not large enough to fix the converted string then the +is not large enough to fit the converted string then the .Fn strnvis and .Fn strnvisx @@ -167,6 +174,14 @@ functions return \-1 and set .Va errno to .Dv ENOSPC . +The +.Fn strenvisx +function takes an additional argument, +.Fa cerr_ptr , +that is used to pass in and out a multibyte conversion error flag. +This is useful when processing single characters at a time when +it is possible that the locale may be set to something other +than the locale of the characters in the input data. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 16:06:05 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 1AF63FFA; Sun, 17 Mar 2013 16:06:05 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 080BF84A; Sun, 17 Mar 2013 16:06:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HG64wp057820; Sun, 17 Mar 2013 16:06:04 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HG64IC057814; Sun, 17 Mar 2013 16:06:04 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201303171606.r2HG64IC057814@svn.freebsd.org> From: Alan Cox Date: Sun, 17 Mar 2013 16:06:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248428 - in user/attilio/vmcontention/sys: amd64/amd64 i386/i386 vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 16:06:05 -0000 Author: alc Date: Sun Mar 17 16:06:03 2013 New Revision: 248428 URL: http://svnweb.freebsd.org/changeset/base/248428 Log: Simplify the interface to vm_radix_insert() by eliminating the parameter "index". The content of a radix tree leaf, or at least its "key", is not opaque to the other radix tree operations. Specifically, they know how to extract the "key" from a leaf. So, eliminating the parameter "index" isn't breaking the abstraction. Moreover, eliminating the parameter "index" effectively prevents the caller from passing an inconsistent "index" and leaf to vm_radix_insert(). Reviewed by: attilio Sponsored by: EMC / Isilon Storage Division Modified: user/attilio/vmcontention/sys/amd64/amd64/pmap.c user/attilio/vmcontention/sys/i386/i386/pmap.c user/attilio/vmcontention/sys/vm/vm_page.c user/attilio/vmcontention/sys/vm/vm_radix.c user/attilio/vmcontention/sys/vm/vm_radix.h Modified: user/attilio/vmcontention/sys/amd64/amd64/pmap.c ============================================================================== --- user/attilio/vmcontention/sys/amd64/amd64/pmap.c Sun Mar 17 15:59:44 2013 (r248427) +++ user/attilio/vmcontention/sys/amd64/amd64/pmap.c Sun Mar 17 16:06:03 2013 (r248428) @@ -1533,7 +1533,7 @@ pmap_insert_pt_page(pmap_t pmap, vm_page { PMAP_LOCK_ASSERT(pmap, MA_OWNED); - vm_radix_insert(&pmap->pm_root, mpte->pindex, mpte); + vm_radix_insert(&pmap->pm_root, mpte); } /* Modified: user/attilio/vmcontention/sys/i386/i386/pmap.c ============================================================================== --- user/attilio/vmcontention/sys/i386/i386/pmap.c Sun Mar 17 15:59:44 2013 (r248427) +++ user/attilio/vmcontention/sys/i386/i386/pmap.c Sun Mar 17 16:06:03 2013 (r248428) @@ -1609,7 +1609,7 @@ pmap_insert_pt_page(pmap_t pmap, vm_page { PMAP_LOCK_ASSERT(pmap, MA_OWNED); - vm_radix_insert(&pmap->pm_root, mpte->pindex, mpte); + vm_radix_insert(&pmap->pm_root, mpte); } /* Modified: user/attilio/vmcontention/sys/vm/vm_page.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_page.c Sun Mar 17 15:59:44 2013 (r248427) +++ user/attilio/vmcontention/sys/vm/vm_page.c Sun Mar 17 16:06:03 2013 (r248428) @@ -836,7 +836,7 @@ vm_page_insert(vm_page_t m, vm_object_t } else TAILQ_INSERT_TAIL(&object->memq, m, listq); } - vm_radix_insert(&object->rtree, pindex, m); + vm_radix_insert(&object->rtree, m); /* * Show that the object has one more resident page. @@ -1113,7 +1113,7 @@ vm_page_cache_transfer(vm_object_t orig_ /* Update the page's object and offset. */ m->object = new_object; m->pindex -= offidxstart; - vm_radix_insert(&new_object->cache, m->pindex, m); + vm_radix_insert(&new_object->cache, m); } mtx_unlock(&vm_page_queue_free_mtx); } @@ -2187,7 +2187,7 @@ vm_page_cache(vm_page_t m) m->flags |= PG_CACHED; cnt.v_cache_count++; cache_was_empty = vm_radix_is_empty(&object->cache); - vm_radix_insert(&object->cache, m->pindex, m); + vm_radix_insert(&object->cache, m); #if VM_NRESERVLEVEL > 0 if (!vm_reserv_free_page(m)) { #else Modified: user/attilio/vmcontention/sys/vm/vm_radix.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 15:59:44 2013 (r248427) +++ user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 16:06:03 2013 (r248428) @@ -373,16 +373,15 @@ vm_radix_init(void) * Panics if the key already exists. */ void -vm_radix_insert(struct vm_radix *rtree, vm_pindex_t index, vm_page_t page) +vm_radix_insert(struct vm_radix *rtree, vm_page_t page) { - vm_pindex_t newind; + vm_pindex_t index, newind; struct vm_radix_node *rnode, *tmp, *tmp2; vm_page_t m; int slot; uint16_t clev; - KASSERT(index == page->pindex, ("%s: index != page->pindex", - __func__)); + index = page->pindex; /* * The owner of record for root is not really important because it Modified: user/attilio/vmcontention/sys/vm/vm_radix.h ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_radix.h Sun Mar 17 15:59:44 2013 (r248427) +++ user/attilio/vmcontention/sys/vm/vm_radix.h Sun Mar 17 16:06:03 2013 (r248428) @@ -35,8 +35,7 @@ #ifdef _KERNEL void vm_radix_init(void); -void vm_radix_insert(struct vm_radix *rtree, vm_pindex_t index, - vm_page_t page); +void vm_radix_insert(struct vm_radix *rtree, vm_page_t page); vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index); vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index); vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index); From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 16:23:19 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E87DE6BE; Sun, 17 Mar 2013 16:23:19 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C37738C5; Sun, 17 Mar 2013 16:23:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HGNJIj063682; Sun, 17 Mar 2013 16:23:19 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HGNJHc063681; Sun, 17 Mar 2013 16:23:19 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201303171623.r2HGNJHc063681@svn.freebsd.org> From: Alan Cox Date: Sun, 17 Mar 2013 16:23:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248429 - user/attilio/vmcontention/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 16:23:20 -0000 Author: alc Date: Sun Mar 17 16:23:19 2013 New Revision: 248429 URL: http://svnweb.freebsd.org/changeset/base/248429 Log: Most allocation of pages to objects proceeds from lower to higher indices. Consequentially, vm_page_insert() should use vm_radix_lookup_le() instead of vm_radix_lookup_ge(). Here's why. In the expected case, vm_radix_lookup_le() will quickly find a page less than the specified key at the same radix node. In contrast, vm_radix_lookup_ge() is expected to return NULL, but to do that it must examine every slot in the radix tree that is greater than the key. Prior to this change, the average cost of a vm_page_insert() call on my test machine was 992 cycles. After this change, the average cost is only 532 cycles, a reduction of 46%. Reviewed by: attilio Sponsored by: EMC / Isilon Storage Division Modified: user/attilio/vmcontention/sys/vm/vm_page.c Modified: user/attilio/vmcontention/sys/vm/vm_page.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_page.c Sun Mar 17 16:06:03 2013 (r248428) +++ user/attilio/vmcontention/sys/vm/vm_page.c Sun Mar 17 16:23:19 2013 (r248429) @@ -827,14 +827,14 @@ vm_page_insert(vm_page_t m, vm_object_t if (object->resident_page_count == 0) { TAILQ_INSERT_TAIL(&object->memq, m, listq); } else { - neighbor = vm_radix_lookup_ge(&object->rtree, pindex); + neighbor = vm_radix_lookup_le(&object->rtree, pindex); if (neighbor != NULL) { - KASSERT(pindex < neighbor->pindex, - ("vm_page_insert: offset %ju not minor than %ju", + KASSERT(pindex > neighbor->pindex, + ("vm_page_insert: offset %ju less than %ju", (uintmax_t)pindex, (uintmax_t)neighbor->pindex)); - TAILQ_INSERT_BEFORE(neighbor, m, listq); + TAILQ_INSERT_AFTER(&object->memq, neighbor, m, listq); } else - TAILQ_INSERT_TAIL(&object->memq, m, listq); + TAILQ_INSERT_HEAD(&object->memq, m, listq); } vm_radix_insert(&object->rtree, m); From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 16:35:46 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 843C3B36; Sun, 17 Mar 2013 16:35:46 +0000 (UTC) (envelope-from pawel@dawidek.net) Received: from mail.dawidek.net (garage.dawidek.net [91.121.88.72]) by mx1.freebsd.org (Postfix) with ESMTP id 423EC91B; Sun, 17 Mar 2013 16:35:45 +0000 (UTC) Received: from localhost (89-73-195-149.dynamic.chello.pl [89.73.195.149]) by mail.dawidek.net (Postfix) with ESMTPSA id 9EEFC260; Sun, 17 Mar 2013 17:32:29 +0100 (CET) Date: Sun, 17 Mar 2013 17:37:17 +0100 From: Pawel Jakub Dawidek To: Peter Holm Subject: Re: svn commit: r248423 - user/pho/stress2/misc Message-ID: <20130317163717.GH1364@garage.freebsd.pl> References: <201303171518.r2HFIF6N042534@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="U3BNvdZEnlJXqmh+" Content-Disposition: inline In-Reply-To: <201303171518.r2HFIF6N042534@svn.freebsd.org> X-OS: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: src-committers@freebsd.org, svn-src-user@freebsd.org X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 16:35:46 -0000 --U3BNvdZEnlJXqmh+ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Mar 17, 2013 at 03:18:15PM +0000, Peter Holm wrote: > Author: pho > Date: Sun Mar 17 15:18:15 2013 > New Revision: 248423 > URL: http://svnweb.freebsd.org/changeset/base/248423 >=20 > Log: > Added new negative name cache regression test. I understand this is the test you were using to test kib's r248422? Would you mind trying it on ZFS? --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://tupytaj.pl --U3BNvdZEnlJXqmh+ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlFF8T0ACgkQForvXbEpPzTrvQCg7+/09vU9qBuER1nIUe+rFV6R U4MAn1SmDiSwNP9JSDQChmgT18ZxewCe =jgcv -----END PGP SIGNATURE----- --U3BNvdZEnlJXqmh+-- From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 16:49:38 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 64415264; Sun, 17 Mar 2013 16:49:38 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3D83E9A1; Sun, 17 Mar 2013 16:49:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HGncIk070870; Sun, 17 Mar 2013 16:49:38 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HGnc0I070869; Sun, 17 Mar 2013 16:49:38 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201303171649.r2HGnc0I070869@svn.freebsd.org> From: Alan Cox Date: Sun, 17 Mar 2013 16:49:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248431 - user/attilio/vmcontention/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 16:49:38 -0000 Author: alc Date: Sun Mar 17 16:49:37 2013 New Revision: 248431 URL: http://svnweb.freebsd.org/changeset/base/248431 Log: The M_ZERO can be eliminated from the uma_zalloc() call in vm_radix_node_get() with a small change to vm_radix_reclaim_allnodes_int(). This change further reduced the average number of cycles per vm_page_insert() call from 532 to 519. Reviewed by: attilio Sponsored by: EMC / Isilon Storage Division Modified: user/attilio/vmcontention/sys/vm/vm_radix.c Modified: user/attilio/vmcontention/sys/vm/vm_radix.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 16:31:09 2013 (r248430) +++ user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 16:49:37 2013 (r248431) @@ -110,7 +110,7 @@ vm_radix_node_get(vm_pindex_t owner, uin { struct vm_radix_node *rnode; - rnode = uma_zalloc(vm_radix_node_zone, M_NOWAIT | M_ZERO); + rnode = uma_zalloc(vm_radix_node_zone, M_NOWAIT); /* * The required number of nodes should already be pre-allocated @@ -314,6 +314,7 @@ vm_radix_reclaim_allnodes_int(struct vm_ continue; if (vm_radix_node_page(rnode->rn_child[slot]) == NULL) vm_radix_reclaim_allnodes_int(rnode->rn_child[slot]); + rnode->rn_child[slot] = NULL; rnode->rn_count--; } vm_radix_node_put(rnode); @@ -327,15 +328,32 @@ static void vm_radix_node_zone_dtor(void *mem, int size __unused, void *arg __unused) { struct vm_radix_node *rnode; + int slot; rnode = mem; KASSERT(rnode->rn_count == 0, - ("vm_radix_node_put: Freeing node %p with %d children\n", mem, + ("vm_radix_node_put: rnode %p has %d children", rnode, rnode->rn_count)); + for (slot = 0; slot < VM_RADIX_COUNT; slot++) + KASSERT(rnode->rn_child[slot] == NULL, + ("vm_radix_node_put: rnode %p has a child", rnode)); } #endif /* + * Radix node zone initializer. + */ +static int +vm_radix_node_zone_init(void *mem, int size __unused, int flags __unused) +{ + struct vm_radix_node *rnode; + + rnode = mem; + memset(rnode->rn_child, 0, sizeof(rnode->rn_child)); + return (0); +} + +/* * Pre-allocate intermediate nodes from the UMA slab zone. */ static void @@ -365,7 +383,8 @@ vm_radix_init(void) #else NULL, #endif - NULL, NULL, VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_NOFREE); + vm_radix_node_zone_init, NULL, VM_RADIX_PAD, UMA_ZONE_VM | + UMA_ZONE_NOFREE); } /* From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 18:05:30 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id BA3A67B6; Sun, 17 Mar 2013 18:05:30 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id ABA4EB6C; Sun, 17 Mar 2013 18:05:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HI5U81095593; Sun, 17 Mar 2013 18:05:30 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HI5UtJ095591; Sun, 17 Mar 2013 18:05:30 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <201303171805.r2HI5UtJ095591@svn.freebsd.org> From: Dmitry Chagin Date: Sun, 17 Mar 2013 18:05:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248434 - in user/dchagin/lemul/sys: amd64/linux32 i386/linux X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 18:05:30 -0000 Author: dchagin Date: Sun Mar 17 18:05:29 2013 New Revision: 248434 URL: http://svnweb.freebsd.org/changeset/base/248434 Log: Eliminate a now unused global declaration of elf_linux_sysvec. Modified: user/dchagin/lemul/sys/amd64/linux32/linux.h user/dchagin/lemul/sys/i386/linux/linux.h Modified: user/dchagin/lemul/sys/amd64/linux32/linux.h ============================================================================== --- user/dchagin/lemul/sys/amd64/linux32/linux.h Sun Mar 17 17:28:06 2013 (r248433) +++ user/dchagin/lemul/sys/amd64/linux32/linux.h Sun Mar 17 18:05:29 2013 (r248434) @@ -518,8 +518,6 @@ struct l_rt_sigframe { l_handler_t sf_handler; } __packed; -extern struct sysentvec elf_linux_sysvec; - /* * open/fcntl flags */ Modified: user/dchagin/lemul/sys/i386/linux/linux.h ============================================================================== --- user/dchagin/lemul/sys/i386/linux/linux.h Sun Mar 17 17:28:06 2013 (r248433) +++ user/dchagin/lemul/sys/i386/linux/linux.h Sun Mar 17 18:05:29 2013 (r248434) @@ -494,7 +494,6 @@ struct l_rt_sigframe { }; extern struct sysentvec linux_sysvec; -extern struct sysentvec elf_linux_sysvec; /* * open/fcntl flags From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 18:21:50 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 98512CEA for ; Sun, 17 Mar 2013 18:21:50 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay03.pair.com (relay03.pair.com [209.68.5.17]) by mx1.freebsd.org (Postfix) with SMTP id 3CB16CD9 for ; Sun, 17 Mar 2013 18:21:50 +0000 (UTC) Received: (qmail 30040 invoked from network); 17 Mar 2013 18:21:42 -0000 Received: from 87.58.146.155 (HELO x2.osted.lan) (87.58.146.155) by relay03.pair.com with SMTP; 17 Mar 2013 18:21:42 -0000 X-pair-Authenticated: 87.58.146.155 Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.5/8.14.5) with ESMTP id r2HILgp1011619; Sun, 17 Mar 2013 19:21:42 +0100 (CET) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.5/8.14.5/Submit) id r2HILfBF011618; Sun, 17 Mar 2013 19:21:41 +0100 (CET) (envelope-from pho) Date: Sun, 17 Mar 2013 19:21:41 +0100 From: Peter Holm To: Pawel Jakub Dawidek Subject: Re: svn commit: r248423 - user/pho/stress2/misc Message-ID: <20130317182141.GA11462@x2.osted.lan> References: <201303171518.r2HFIF6N042534@svn.freebsd.org> <20130317163717.GH1364@garage.freebsd.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130317163717.GH1364@garage.freebsd.pl> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: src-committers@freebsd.org, svn-src-user@freebsd.org X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 18:21:50 -0000 On Sun, Mar 17, 2013 at 05:37:17PM +0100, Pawel Jakub Dawidek wrote: > On Sun, Mar 17, 2013 at 03:18:15PM +0000, Peter Holm wrote: > > Author: pho > > Date: Sun Mar 17 15:18:15 2013 > > New Revision: 248423 > > URL: http://svnweb.freebsd.org/changeset/base/248423 > > > > Log: > > Added new negative name cache regression test. > > I understand this is the test you were using to test kib's r248422? Yes, that is right. > Would you mind trying it on ZFS? > The problem showed up immediately with UFS. I was not able to find any problems with a test on raidz, but then again nor was I able to show the problem on TMPFS. - Peter From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 18:34:10 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 458BE27F; Sun, 17 Mar 2013 18:34:10 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 240B9D5A; Sun, 17 Mar 2013 18:34:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HIYAXN005000; Sun, 17 Mar 2013 18:34:10 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HIYACQ004999; Sun, 17 Mar 2013 18:34:10 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <201303171834.r2HIYACQ004999@svn.freebsd.org> From: Dmitry Chagin Date: Sun, 17 Mar 2013 18:34:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248436 - user/dchagin/lemul/sys/compat/linux X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 18:34:10 -0000 Author: dchagin Date: Sun Mar 17 18:34:09 2013 New Revision: 248436 URL: http://svnweb.freebsd.org/changeset/base/248436 Log: Switch the vm_object mutex to be a rwlock as a r248084 do. Modified: user/dchagin/lemul/sys/compat/linux/linux_vdso.c Modified: user/dchagin/lemul/sys/compat/linux/linux_vdso.c ============================================================================== --- user/dchagin/lemul/sys/compat/linux/linux_vdso.c Sun Mar 17 18:33:06 2013 (r248435) +++ user/dchagin/lemul/sys/compat/linux/linux_vdso.c Sun Mar 17 18:34:09 2013 (r248436) @@ -36,7 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include @@ -78,11 +78,11 @@ __elfN(linux_shared_page_init)(char **ma obj = vm_pager_allocate(OBJT_PHYS, 0, PAGE_SIZE, VM_PROT_DEFAULT, 0, NULL); - VM_OBJECT_LOCK(obj); + VM_OBJECT_WLOCK(obj); m = vm_page_grab(obj, 0, VM_ALLOC_RETRY | VM_ALLOC_NOBUSY | VM_ALLOC_ZERO); m->valid = VM_PAGE_BITS_ALL; - VM_OBJECT_UNLOCK(obj); + VM_OBJECT_WUNLOCK(obj); addr = kmem_alloc_nofault(kernel_map, PAGE_SIZE); pmap_qenter(addr, &m, 1); *mapping = (char *)addr; From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 20:40:31 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A4581865; Sun, 17 Mar 2013 20:40:31 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 9279B1BF; Sun, 17 Mar 2013 20:40:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HKeVe5043531; Sun, 17 Mar 2013 20:40:31 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HKeV73043530; Sun, 17 Mar 2013 20:40:31 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201303172040.r2HKeV73043530@svn.freebsd.org> From: Alan Cox Date: Sun, 17 Mar 2013 20:40:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248443 - user/attilio/vmcontention/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 20:40:31 -0000 Author: alc Date: Sun Mar 17 20:40:31 2013 New Revision: 248443 URL: http://svnweb.freebsd.org/changeset/base/248443 Log: The calls to vm_radix_lookup_ge() by vm_reserv_alloc_{contig,page}() can be eliminated. If the calls to vm_radix_lookup_le() return NULL, then the page at the head of the object's memq must be the page with the least pindex greater than the specified pindex. Reviewed by: attilio Sponsored by: EMC / Isilon Storage Division Modified: user/attilio/vmcontention/sys/vm/vm_reserv.c Modified: user/attilio/vmcontention/sys/vm/vm_reserv.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_reserv.c Sun Mar 17 20:11:08 2013 (r248442) +++ user/attilio/vmcontention/sys/vm/vm_reserv.c Sun Mar 17 20:40:31 2013 (r248443) @@ -352,7 +352,7 @@ vm_reserv_alloc_contig(vm_object_t objec goto found; msucc = TAILQ_NEXT(mpred, listq); } else - msucc = vm_radix_lookup_ge(&object->rtree, pindex); + msucc = TAILQ_FIRST(&object->memq); if (msucc != NULL) { KASSERT(msucc->pindex > pindex, ("vm_reserv_alloc_page: pindex already allocated")); @@ -507,7 +507,7 @@ vm_reserv_alloc_page(vm_object_t object, goto found; msucc = TAILQ_NEXT(mpred, listq); } else - msucc = vm_radix_lookup_ge(&object->rtree, pindex); + msucc = TAILQ_FIRST(&object->memq); if (msucc != NULL) { KASSERT(msucc->pindex > pindex, ("vm_reserv_alloc_page: pindex already allocated")); From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 20:44:10 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 437C79F1; Sun, 17 Mar 2013 20:44:10 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 36FD71D1; Sun, 17 Mar 2013 20:44:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HKiASH045658; Sun, 17 Mar 2013 20:44:10 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HKiAZv045657; Sun, 17 Mar 2013 20:44:10 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201303172044.r2HKiAZv045657@svn.freebsd.org> From: Alan Cox Date: Sun, 17 Mar 2013 20:44:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248444 - user/attilio/vmcontention/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 20:44:10 -0000 Author: alc Date: Sun Mar 17 20:44:09 2013 New Revision: 248444 URL: http://svnweb.freebsd.org/changeset/base/248444 Log: Fix a couple typos. Sponsored by: EMC / Isilon Storage Division Modified: user/attilio/vmcontention/sys/vm/vm_radix.c Modified: user/attilio/vmcontention/sys/vm/vm_radix.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 20:40:31 2013 (r248443) +++ user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 20:44:09 2013 (r248444) @@ -531,7 +531,7 @@ restart: /* * If the keys differ before the current bisection node - * the search key might rollback to the earlierst + * the search key might rollback to the earliest * available bisection node, or to the smaller value * in the current domain (if the owner is bigger than the * search key). @@ -620,7 +620,7 @@ restart: /* * If the keys differ before the current bisection node - * the search key might rollback to the earlierst + * the search key might rollback to the earliest * available bisection node, or to the higher value * in the current domain (if the owner is smaller than the * search key). From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 23:39:56 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 0EA31880; Sun, 17 Mar 2013 23:39:56 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id F0F51913; Sun, 17 Mar 2013 23:39:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HNdtt1098610; Sun, 17 Mar 2013 23:39:55 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HNdqEJ098589; Sun, 17 Mar 2013 23:39:52 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303172339.r2HNdqEJ098589@svn.freebsd.org> From: Attilio Rao Date: Sun, 17 Mar 2013 23:39:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248447 - in user/attilio/vmcontention: . bin/cp bin/ls bin/mkdir bin/mv bin/ps bin/rm bin/rmdir bin/sh cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/op... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 23:39:56 -0000 Author: attilio Date: Sun Mar 17 23:39:52 2013 New Revision: 248447 URL: http://svnweb.freebsd.org/changeset/base/248447 Log: MFC Added: user/attilio/vmcontention/contrib/unvis/ - copied from r248446, head/contrib/unvis/ user/attilio/vmcontention/contrib/vis/ - copied from r248446, head/contrib/vis/ user/attilio/vmcontention/sys/libkern/arm/aeabi_unwind.c - copied unchanged from r248446, head/sys/libkern/arm/aeabi_unwind.c user/attilio/vmcontention/sys/libkern/arm/memset.S - copied unchanged from r248446, head/sys/libkern/arm/memset.S user/attilio/vmcontention/tools/regression/bin/sh/builtins/wait6.0 - copied unchanged from r248446, head/tools/regression/bin/sh/builtins/wait6.0 user/attilio/vmcontention/tools/regression/bin/sh/builtins/wait7.0 - copied unchanged from r248446, head/tools/regression/bin/sh/builtins/wait7.0 Deleted: user/attilio/vmcontention/share/man/man4/vinum.4 user/attilio/vmcontention/usr.bin/unvis/unvis.1 user/attilio/vmcontention/usr.bin/unvis/unvis.c user/attilio/vmcontention/usr.bin/vis/extern.h user/attilio/vmcontention/usr.bin/vis/foldit.c user/attilio/vmcontention/usr.bin/vis/vis.1 user/attilio/vmcontention/usr.bin/vis/vis.c Modified: user/attilio/vmcontention/ObsoleteFiles.inc user/attilio/vmcontention/bin/cp/cp.1 user/attilio/vmcontention/bin/ls/ls.1 user/attilio/vmcontention/bin/mkdir/mkdir.1 user/attilio/vmcontention/bin/mv/mv.1 user/attilio/vmcontention/bin/ps/ps.1 user/attilio/vmcontention/bin/rm/rm.1 user/attilio/vmcontention/bin/rmdir/rmdir.1 user/attilio/vmcontention/bin/sh/jobs.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool.8 user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/attilio/vmcontention/contrib/libc-vis/unvis.3 user/attilio/vmcontention/contrib/libc-vis/unvis.c user/attilio/vmcontention/contrib/libc-vis/vis.3 user/attilio/vmcontention/contrib/libc-vis/vis.c user/attilio/vmcontention/contrib/libc-vis/vis.h user/attilio/vmcontention/contrib/tzdata/africa user/attilio/vmcontention/contrib/tzdata/antarctica user/attilio/vmcontention/contrib/tzdata/asia user/attilio/vmcontention/contrib/tzdata/australasia user/attilio/vmcontention/contrib/tzdata/europe user/attilio/vmcontention/contrib/tzdata/northamerica user/attilio/vmcontention/contrib/tzdata/southamerica user/attilio/vmcontention/contrib/tzdata/zone.tab user/attilio/vmcontention/gnu/lib/libgcc/Makefile user/attilio/vmcontention/lib/libc/gen/Makefile.inc user/attilio/vmcontention/lib/libc/gen/Symbol.map user/attilio/vmcontention/lib/libc/sys/chflags.2 user/attilio/vmcontention/lib/libipsec/test-policy.c user/attilio/vmcontention/lib/libutil/pidfile.c user/attilio/vmcontention/sbin/ccdconfig/ccdconfig.8 user/attilio/vmcontention/sbin/ffsinfo/ffsinfo.8 user/attilio/vmcontention/sbin/geom/class/concat/gconcat.8 user/attilio/vmcontention/sbin/geom/class/mirror/gmirror.8 user/attilio/vmcontention/sbin/geom/class/raid/graid.8 user/attilio/vmcontention/sbin/geom/class/stripe/gstripe.8 user/attilio/vmcontention/sbin/gvinum/gvinum.8 user/attilio/vmcontention/sbin/hastctl/hastctl.8 user/attilio/vmcontention/sbin/hastctl/hastctl.c user/attilio/vmcontention/sbin/hastd/hastd.8 user/attilio/vmcontention/sbin/hastd/secondary.c user/attilio/vmcontention/sbin/hastd/subr.c user/attilio/vmcontention/sbin/recoverdisk/recoverdisk.c user/attilio/vmcontention/share/man/man4/Makefile user/attilio/vmcontention/share/man/man4/ccd.4 user/attilio/vmcontention/share/man/man4/geom.4 user/attilio/vmcontention/share/man/man4/udp.4 user/attilio/vmcontention/share/misc/bsd-family-tree user/attilio/vmcontention/sys/amd64/amd64/pmap.c user/attilio/vmcontention/sys/amd64/vmm/intel/vmx.c user/attilio/vmcontention/sys/amd64/vmm/vmm.c user/attilio/vmcontention/sys/amd64/vmm/vmm_stat.c user/attilio/vmcontention/sys/amd64/vmm/vmm_stat.h user/attilio/vmcontention/sys/arm/arm/bcopy_page.S user/attilio/vmcontention/sys/arm/arm/bcopyinout.S user/attilio/vmcontention/sys/arm/arm/bcopyinout_xscale.S user/attilio/vmcontention/sys/arm/arm/blockio.S user/attilio/vmcontention/sys/arm/arm/bus_space_asm_generic.S user/attilio/vmcontention/sys/arm/arm/copystr.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_arm10.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_arm11.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_arm11x6.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_arm7tdmi.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_arm8.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_arm9.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_armv4.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_armv5.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_armv5_ec.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_armv6.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_armv7.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_fa526.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_ixp12x0.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_pj4b.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_sa1.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_sa11x0.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_sheeva.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_xscale.S user/attilio/vmcontention/sys/arm/arm/cpufunc_asm_xscale_c3.S user/attilio/vmcontention/sys/arm/arm/db_trace.c user/attilio/vmcontention/sys/arm/arm/elf_trampoline.c user/attilio/vmcontention/sys/arm/arm/exception.S user/attilio/vmcontention/sys/arm/arm/fiq_subr.S user/attilio/vmcontention/sys/arm/arm/fusu.S user/attilio/vmcontention/sys/arm/arm/in_cksum_arm.S user/attilio/vmcontention/sys/arm/arm/irq_dispatch.S user/attilio/vmcontention/sys/arm/arm/locore.S user/attilio/vmcontention/sys/arm/arm/pmap-v6.c user/attilio/vmcontention/sys/arm/arm/pmap.c user/attilio/vmcontention/sys/arm/arm/setcpsr.S user/attilio/vmcontention/sys/arm/arm/support.S user/attilio/vmcontention/sys/arm/arm/swtch.S user/attilio/vmcontention/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c user/attilio/vmcontention/sys/arm/include/asm.h user/attilio/vmcontention/sys/arm/include/bus.h user/attilio/vmcontention/sys/arm/include/pmap.h user/attilio/vmcontention/sys/arm/ti/cpsw/if_cpsw.c user/attilio/vmcontention/sys/arm/ti/ti_mmchs.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/attilio/vmcontention/sys/compat/ndis/kern_ndis.c user/attilio/vmcontention/sys/conf/Makefile.arm user/attilio/vmcontention/sys/conf/NOTES user/attilio/vmcontention/sys/conf/files user/attilio/vmcontention/sys/conf/files.arm user/attilio/vmcontention/sys/dev/acpica/acpi_powerres.c user/attilio/vmcontention/sys/dev/ath/if_ath.c user/attilio/vmcontention/sys/dev/ath/if_ath_sysctl.c user/attilio/vmcontention/sys/dev/ath/if_ath_tx.c user/attilio/vmcontention/sys/dev/ath/if_athvar.h user/attilio/vmcontention/sys/dev/puc/pucdata.c user/attilio/vmcontention/sys/dev/sound/pcm/sndstat.c user/attilio/vmcontention/sys/fs/cd9660/cd9660_vnops.c user/attilio/vmcontention/sys/fs/ext2fs/ext2_balloc.c user/attilio/vmcontention/sys/fs/ext2fs/ext2_vnops.c user/attilio/vmcontention/sys/fs/msdosfs/msdosfs_vnops.c user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c user/attilio/vmcontention/sys/fs/udf/udf_vnops.c user/attilio/vmcontention/sys/geom/gate/g_gate.c user/attilio/vmcontention/sys/i386/i386/pmap.c user/attilio/vmcontention/sys/i386/xen/pmap.c user/attilio/vmcontention/sys/ia64/ia64/pmap.c user/attilio/vmcontention/sys/kern/capabilities.conf user/attilio/vmcontention/sys/kern/kern_racct.c user/attilio/vmcontention/sys/kern/subr_trap.c user/attilio/vmcontention/sys/kern/uipc_mbuf.c user/attilio/vmcontention/sys/kern/uipc_sockbuf.c user/attilio/vmcontention/sys/kern/uipc_syscalls.c user/attilio/vmcontention/sys/kern/vfs_bio.c user/attilio/vmcontention/sys/kern/vfs_cluster.c user/attilio/vmcontention/sys/kern/vfs_syscalls.c user/attilio/vmcontention/sys/kern/vfs_vnops.c user/attilio/vmcontention/sys/libkern/arm/divsi3.S user/attilio/vmcontention/sys/libkern/arm/ffs.S user/attilio/vmcontention/sys/libkern/arm/ldivmod.S user/attilio/vmcontention/sys/libkern/arm/memcpy.S user/attilio/vmcontention/sys/mips/mips/pmap.c user/attilio/vmcontention/sys/modules/uart/Makefile user/attilio/vmcontention/sys/net/bridgestp.c user/attilio/vmcontention/sys/net/if_gre.c user/attilio/vmcontention/sys/net/rtsock.c user/attilio/vmcontention/sys/netinet/igmp.c user/attilio/vmcontention/sys/netinet/ip_carp.c user/attilio/vmcontention/sys/netinet/ip_input.c user/attilio/vmcontention/sys/netinet/ip_mroute.c user/attilio/vmcontention/sys/netinet/ip_options.c user/attilio/vmcontention/sys/netinet/ip_output.c user/attilio/vmcontention/sys/netinet/libalias/alias.c user/attilio/vmcontention/sys/netinet/tcp_output.c user/attilio/vmcontention/sys/netinet/tcp_subr.c user/attilio/vmcontention/sys/netinet6/icmp6.c user/attilio/vmcontention/sys/netinet6/ip6_input.c user/attilio/vmcontention/sys/netinet6/ip6_mroute.c user/attilio/vmcontention/sys/netinet6/ip6_output.c user/attilio/vmcontention/sys/netinet6/mld6.c user/attilio/vmcontention/sys/netinet6/nd6_nbr.c user/attilio/vmcontention/sys/netipsec/key.c user/attilio/vmcontention/sys/netpfil/pf/pf.c user/attilio/vmcontention/sys/nfs/nfs_common.c user/attilio/vmcontention/sys/powerpc/aim/mmu_oea.c user/attilio/vmcontention/sys/powerpc/aim/mmu_oea64.c user/attilio/vmcontention/sys/powerpc/booke/pmap.c user/attilio/vmcontention/sys/powerpc/powerpc/mmu_if.m user/attilio/vmcontention/sys/powerpc/powerpc/pmap_dispatch.c user/attilio/vmcontention/sys/sparc64/sparc64/pmap.c user/attilio/vmcontention/sys/sys/buf.h user/attilio/vmcontention/sys/sys/mbuf.h user/attilio/vmcontention/sys/sys/vnode.h user/attilio/vmcontention/sys/ufs/ffs/ffs_balloc.c user/attilio/vmcontention/sys/ufs/ffs/ffs_vnops.c user/attilio/vmcontention/sys/ufs/ufs/ufs_vnops.c user/attilio/vmcontention/sys/vm/pmap.h user/attilio/vmcontention/sys/vm/vm_kern.c user/attilio/vmcontention/sys/vm/vnode_pager.c user/attilio/vmcontention/sys/xdr/xdr_mbuf.c user/attilio/vmcontention/tools/regression/pjdfstest/tests/misc.sh user/attilio/vmcontention/tools/regression/security/cap_test/cap_test_capabilities.c user/attilio/vmcontention/usr.bin/find/find.h user/attilio/vmcontention/usr.bin/find/function.c user/attilio/vmcontention/usr.bin/head/head.1 user/attilio/vmcontention/usr.bin/renice/renice.8 user/attilio/vmcontention/usr.bin/script/script.1 user/attilio/vmcontention/usr.bin/tail/tail.1 user/attilio/vmcontention/usr.bin/unvis/Makefile user/attilio/vmcontention/usr.bin/vis/Makefile user/attilio/vmcontention/usr.sbin/ac/ac.8 user/attilio/vmcontention/usr.sbin/bhyve/pci_virtio_net.c Directory Properties: user/attilio/vmcontention/ (props changed) user/attilio/vmcontention/cddl/contrib/opensolaris/ (props changed) user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/attilio/vmcontention/contrib/libc-vis/ (props changed) user/attilio/vmcontention/contrib/tzdata/ (props changed) user/attilio/vmcontention/gnu/lib/ (props changed) user/attilio/vmcontention/lib/libc/ (props changed) user/attilio/vmcontention/lib/libutil/ (props changed) user/attilio/vmcontention/sbin/ (props changed) user/attilio/vmcontention/share/man/man4/ (props changed) user/attilio/vmcontention/sys/ (props changed) user/attilio/vmcontention/sys/amd64/vmm/ (props changed) user/attilio/vmcontention/sys/cddl/contrib/opensolaris/ (props changed) user/attilio/vmcontention/sys/conf/ (props changed) user/attilio/vmcontention/usr.sbin/bhyve/ (props changed) Modified: user/attilio/vmcontention/ObsoleteFiles.inc ============================================================================== --- user/attilio/vmcontention/ObsoleteFiles.inc Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/ObsoleteFiles.inc Sun Mar 17 23:39:52 2013 (r248447) @@ -38,6 +38,7 @@ # xargs -n1 | sort | uniq -d; # done +OLD_FILES+=usr/share/man/man4/vinum.4.gz # 20130311: Ports are no more available via cvsup OLD_FILES+=usr/share/examples/cvsup/ports-supfile OLD_FILES+=usr/share/examples/cvsup/refuse Modified: user/attilio/vmcontention/bin/cp/cp.1 ============================================================================== --- user/attilio/vmcontention/bin/cp/cp.1 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/bin/cp/cp.1 Sun Mar 17 23:39:52 2013 (r248447) @@ -32,7 +32,7 @@ .\" @(#)cp.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd September 4, 2012 +.Dd March 15, 2013 .Dt CP 1 .Os .Sh NAME @@ -251,6 +251,27 @@ signal, the current input and output fil will be written to the standard output. .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Make a copy of file +.Pa foo +named +.Pa bar : +.Pp +.Dl $ cp foo bar +.Pp +Copy a group of files to the +.Pa /tmp +directory: +.Pp +.Dl $ cp *.txt /tmp +.Pp +Copy the directory +.Pa junk +and all of its contents (including any subdirectories) to the +.Pa /tmp +directory: +.Pp +.Dl $ cp -R junk /tmp .Sh COMPATIBILITY Historic versions of the .Nm Modified: user/attilio/vmcontention/bin/ls/ls.1 ============================================================================== --- user/attilio/vmcontention/bin/ls/ls.1 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/bin/ls/ls.1 Sun Mar 17 23:39:52 2013 (r248447) @@ -32,7 +32,7 @@ .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 .\" $FreeBSD$ .\" -.Dd November 8, 2012 +.Dd March 15, 2013 .Dt LS 1 .Os .Sh NAME @@ -718,6 +718,24 @@ for more information. .El .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +List the contents of the current working directory in long format: +.Pp +.Dl $ ls -l +.Pp +In addition to listing the contents of the current working directory in +long format, show inode numbers, file flags (see +.Xr chflags 1 ) , +and suffix each filename with a symbol representing its file type: +.Pp +.Dl $ ls -lioF +.Pp +List the files in +.Pa /var/log , +sorting the output such that the mostly recently modified entries are +printed first: +.Pp +.Dl $ ls -lt /var/log .Sh COMPATIBILITY The group field is now automatically included in the long listing for files in order to be compatible with the Modified: user/attilio/vmcontention/bin/mkdir/mkdir.1 ============================================================================== --- user/attilio/vmcontention/bin/mkdir/mkdir.1 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/bin/mkdir/mkdir.1 Sun Mar 17 23:39:52 2013 (r248447) @@ -32,7 +32,7 @@ .\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94 .\" $FreeBSD$ .\" -.Dd January 25, 1994 +.Dd March 15, 2013 .Dt MKDIR 1 .Os .Sh NAME @@ -87,6 +87,23 @@ Be verbose when creating directories, li The user must have write permission in the parent directory. .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Create a directory named +.Pa foobar : +.Pp +.Dl $ mkdir foobar +.Pp +Create a directory named +.Pa foobar +and set its file mode to 700: +.Pp +.Dl $ mkdir -m 700 foobar +.Pp +Create a directory named +.Pa cow/horse/monkey , +creating any non-existent intermediate directories as necessary: +.Pp +.Dl $ mkdir -p cow/horse/monkey .Sh COMPATIBILITY The .Fl v Modified: user/attilio/vmcontention/bin/mv/mv.1 ============================================================================== --- user/attilio/vmcontention/bin/mv/mv.1 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/bin/mv/mv.1 Sun Mar 17 23:39:52 2013 (r248447) @@ -32,7 +32,7 @@ .\" @(#)mv.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd August 28, 2012 +.Dd March 15, 2013 .Dt MV 1 .Os .Sh NAME @@ -155,6 +155,16 @@ rm -rf source_file .Ed .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Rename file +.Pa foo +to +.Pa bar , +overwriting +.Pa bar +if it already exists: +.Pp +.Dl $ mv -f foo bar .Sh COMPATIBILITY The .Fl h , Modified: user/attilio/vmcontention/bin/ps/ps.1 ============================================================================== --- user/attilio/vmcontention/bin/ps/ps.1 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/bin/ps/ps.1 Sun Mar 17 23:39:52 2013 (r248447) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd February 7, 2013 +.Dd March 15, 2013 .Dt PS 1 .Os .Sh NAME @@ -689,6 +689,10 @@ attempts to automatically determine the .It Pa /boot/kernel/kernel default system namelist .El +.Sh EXAMPLES +Display information on all system processes: +.Pp +.Dl $ ps -auxw .Sh SEE ALSO .Xr kill 1 , .Xr pgrep 1 , Modified: user/attilio/vmcontention/bin/rm/rm.1 ============================================================================== --- user/attilio/vmcontention/bin/rm/rm.1 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/bin/rm/rm.1 Sun Mar 17 23:39:52 2013 (r248447) @@ -32,7 +32,7 @@ .\" @(#)rm.1 8.5 (Berkeley) 12/5/94 .\" $FreeBSD$ .\" -.Dd October 31, 2010 +.Dd March 15, 2013 .Dt RM 1 .Os .Sh NAME @@ -193,6 +193,19 @@ When is specified with .Fl f the file will be overwritten and removed even if it has hard links. +.Sh EXAMPLES +Recursively remove all files contained within the +.Pa foobar +directory hierarchy: +.Pp +.Dl $ rm -rf foobar +.Pp +Either of these commands will remove the file +.Pa -f : +.Bd -literal -offset indent +$ rm -- -f +$ rm ./-f +.Ed .Sh COMPATIBILITY The .Nm Modified: user/attilio/vmcontention/bin/rmdir/rmdir.1 ============================================================================== --- user/attilio/vmcontention/bin/rmdir/rmdir.1 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/bin/rmdir/rmdir.1 Sun Mar 17 23:39:52 2013 (r248447) @@ -32,7 +32,7 @@ .\" @(#)rmdir.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd March 21, 2004 +.Dd March 15, 2013 .Dt RMDIR 1 .Os .Sh NAME @@ -86,6 +86,18 @@ successfully. .It Li >0 An error occurred. .El +.Sh EXAMPLES +Remove the directory +.Pa foobar , +if it is empty: +.Pp +.Dl $ rmdir foobar +.Pp +Remove all directories up to and including +.Pa cow , +stopping at the first non-empty directory (if any): +.Pp +.Dl $ rmdir -p cow/horse/monkey .Sh SEE ALSO .Xr rm 1 .Sh STANDARDS Modified: user/attilio/vmcontention/bin/sh/jobs.c ============================================================================== --- user/attilio/vmcontention/bin/sh/jobs.c Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/bin/sh/jobs.c Sun Mar 17 23:39:52 2013 (r248447) @@ -458,14 +458,15 @@ freejob(struct job *jp) int -waitcmd(int argc, char **argv) +waitcmd(int argc __unused, char **argv __unused) { struct job *job; int status, retval; struct job *jp; - if (argc > 1) { - job = getjob(argv[1]); + nextopt(""); + if (*argptr != NULL) { + job = getjob(*argptr); } else { job = NULL; } Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sun Mar 17 23:39:52 2013 (r248447) @@ -1225,6 +1225,7 @@ dump_bpobj(bpobj_t *bpo, char *name, int continue; } dump_bpobj(&subbpo, "subobj", indent + 1); + bpobj_close(&subbpo); } } else { (void) printf(" %*s: object %llu, %llu blkptrs, %s\n", Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Sun Mar 17 23:39:52 2013 (r248447) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 10, 2013 +.Dd March 1, 2013 .Dt ZFS 8 .Os .Sh NAME Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool.8 ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Sun Mar 17 23:39:52 2013 (r248447) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 15, 2012 +.Dd March 14, 2013 .Dt ZPOOL 8 .Os .Sh NAME @@ -1608,14 +1608,15 @@ is specified, the command exits after .Ar count reports are printed. .Pp -If a scrub or resilver is in progress, this command reports the percentage done -and the estimated time to completion. Both of these are only approximate, +If a scrub or resilver is in progress, this command reports the percentage +done and the estimated time to completion. Both of these are only approximate, because the amount of data in the pool and the other workloads on the system can change. .Bl -tag -width indent .It Fl x Only display status for pools that are exhibiting errors or are otherwise unavailable. +Warnings about pools not using the latest on-disk format will not be included. .It Fl v Displays verbose data error information, printing out a complete list of all data errors since the last complete pool scrub. Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sun Mar 17 23:39:52 2013 (r248447) @@ -4031,7 +4031,10 @@ status_callback(zpool_handle_t *zhp, voi * If we were given 'zpool status -x', only report those pools with * problems. */ - if (reason == ZPOOL_STATUS_OK && cbp->cb_explain) { + if (cbp->cb_explain && + (reason == ZPOOL_STATUS_OK || + reason == ZPOOL_STATUS_VERSION_OLDER || + reason == ZPOOL_STATUS_FEAT_DISABLED)) { if (!cbp->cb_allpools) { (void) printf(gettext("pool '%s' is healthy\n"), zpool_get_name(zhp)); Modified: user/attilio/vmcontention/contrib/libc-vis/unvis.3 ============================================================================== --- user/attilio/vmcontention/contrib/libc-vis/unvis.3 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/contrib/libc-vis/unvis.3 Sun Mar 17 23:39:52 2013 (r248447) @@ -1,4 +1,4 @@ -.\" $NetBSD: unvis.3,v 1.23 2011/03/17 14:06:29 wiz Exp $ +.\" $NetBSD: unvis.3,v 1.27 2012/12/15 07:34:36 wiz Exp $ .\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 @@ -126,15 +126,17 @@ The function has several return codes that must be handled properly. They are: .Bl -tag -width UNVIS_VALIDPUSH -.It Li \&0 (zero) +.It Li \&0 No (zero) Another character is necessary; nothing has been recognized yet. .It Dv UNVIS_VALID A valid character has been recognized and is available at the location -pointed to by cp. +pointed to by +.Fa cp . .It Dv UNVIS_VALIDPUSH A valid character has been recognized and is available at the location -pointed to by cp; however, the character currently passed in should -be passed in again. +pointed to by +.Fa cp ; +however, the character currently passed in should be passed in again. .It Dv UNVIS_NOCHAR A valid sequence was detected, but no character was produced. This return code is necessary to indicate a logical break between characters. @@ -150,7 +152,7 @@ one more time with flag set to to extract any remaining character (the character passed in is ignored). .Pp The -.Ar flag +.Fa flag argument is also used to specify the encoding style of the source. If set to .Dv VIS_HTTPSTYLE @@ -161,7 +163,8 @@ will decode URI strings as specified in If set to .Dv VIS_HTTP1866 , .Fn unvis -will decode URI strings as specified in RFC 1866. +will decode entity references and numeric character references +as specified in RFC 1866. If set to .Dv VIS_MIMESTYLE , .Fn unvis @@ -169,7 +172,9 @@ will decode MIME Quoted-Printable string If set to .Dv VIS_NOESCAPE , .Fn unvis -will not decode \e quoted characters. +will not decode +.Ql \e +quoted characters. .Pp The following code fragment illustrates a proper use of .Fn unvis . @@ -204,7 +209,7 @@ The functions and .Fn strnunvisx will return \-1 on error and set -.Va errno +.Va errno to: .Bl -tag -width Er .It Bq Er EINVAL @@ -212,7 +217,7 @@ An invalid escape sequence was detected, .El .Pp In addition the functions -.Fn strnunvis +.Fn strnunvis and .Fn strnunvisx will can also set @@ -244,4 +249,14 @@ and functions appeared in .Nx 6.0 and -.Fx 10.0 . +.Fx 9.2 . +.Sh BUGS +The names +.Dv VIS_HTTP1808 +and +.Dv VIS_HTTP1866 +are wrong. +Percent-encoding was defined in RFC 1738, the original RFC for URL. +RFC 1866 defines HTML 2.0, an application of SGML, from which it +inherits concepts of numeric character references and entity +references. Modified: user/attilio/vmcontention/contrib/libc-vis/unvis.c ============================================================================== --- user/attilio/vmcontention/contrib/libc-vis/unvis.c Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/contrib/libc-vis/unvis.c Sun Mar 17 23:39:52 2013 (r248447) @@ -1,4 +1,4 @@ -/* $NetBSD: unvis.c,v 1.40 2012/12/14 21:31:01 christos Exp $ */ +/* $NetBSD: unvis.c,v 1.41 2012/12/15 04:29:53 matt Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)unvis.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: unvis.c,v 1.40 2012/12/14 21:31:01 christos Exp $"); +__RCSID("$NetBSD: unvis.c,v 1.41 2012/12/15 04:29:53 matt Exp $"); #endif #endif /* LIBC_SCCS and not lint */ __FBSDID("$FreeBSD$"); @@ -90,7 +90,7 @@ __weak_alias(strnunvisx,_strnunvisx) * RFC 1866 */ static const struct nv { - const char name[7]; + char name[7]; uint8_t value; } nv[] = { { "AElig", 198 }, /* capital AE diphthong (ligature) */ Modified: user/attilio/vmcontention/contrib/libc-vis/vis.3 ============================================================================== --- user/attilio/vmcontention/contrib/libc-vis/vis.3 Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/contrib/libc-vis/vis.3 Sun Mar 17 23:39:52 2013 (r248447) @@ -1,4 +1,4 @@ -.\" $NetBSD: vis.3,v 1.29 2012/12/14 22:55:59 christos Exp $ +.\" $NetBSD: vis.3,v 1.39 2013/02/20 20:05:26 christos Exp $ .\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 @@ -30,7 +30,7 @@ .\" .\" @(#)vis.3 8.1 (Berkeley) 6/9/93 .\" -.Dd December 14, 2012 +.Dd February 19, 2013 .Dt VIS 3 .Os .Sh NAME @@ -40,12 +40,14 @@ .Nm strnvis , .Nm strvisx , .Nm strnvisx , +.Nm strenvisx , .Nm svis , .Nm snvis , .Nm strsvis , .Nm strsnvis , -.Nm strsvisx -.Nm strsnvisx +.Nm strsvisx , +.Nm strsnvisx , +.Nm strsenvisx .Nd visually encode characters .Sh LIBRARY .Lb libc @@ -63,6 +65,8 @@ .Fn strvisx "char *dst" "const char *src" "size_t len" "int flag" .Ft int .Fn strnvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" +.Ft int +.Fn strenvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "int *cerr_ptr" .Ft char * .Fn svis "char *dst" "int c" "int flag" "int nextc" "const char *extra" .Ft char * @@ -75,6 +79,8 @@ .Fn strsvisx "char *dst" "const char *src" "size_t len" "int flag" "const char *extra" .Ft int .Fn strsnvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "const char *extra" +.Ft int +.Fn strsenvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "const char *extra" "int *cerr_ptr" .Sh DESCRIPTION The .Fn vis @@ -89,11 +95,11 @@ needs no encoding, it is copied in unalt The string is null terminated, and a pointer to the end of the string is returned. The maximum length of any encoding is four -characters (not including the trailing +bytes (not including the trailing .Dv NUL ) ; thus, when encoding a set of characters into a buffer, the size of the buffer should -be four times the number of characters encoded, plus one for the trailing +be four times the number of bytes encoded, plus one for the trailing .Dv NUL . The flag parameter is used for altering the default range of characters considered for encoding and for altering the visual @@ -142,16 +148,17 @@ terminate The size of .Fa dst must be four times the number -of characters encoded from +of bytes encoded from .Fa src (plus one for the .Dv NUL ) . Both -forms return the number of characters in dst (not including -the trailing +forms return the number of characters in +.Fa dst +(not including the trailing .Dv NUL ) . The -.Dq n +.Dq Nm n versions of the functions also take an additional argument .Fa dlen that indicates the length of the @@ -159,7 +166,7 @@ that indicates the length of the buffer. If .Fa dlen -is not large enough to fix the converted string then the +is not large enough to fit the converted string then the .Fn strnvis and .Fn strnvisx @@ -167,6 +174,14 @@ functions return \-1 and set .Va errno to .Dv ENOSPC . +The +.Fn strenvisx +function takes an additional argument, +.Fa cerr_ptr , +that is used to pass in and out a multibyte conversion error flag. +This is useful when processing single characters at a time when +it is possible that the locale may be set to something other +than the locale of the characters in the input data. .Pp The functions .Fn svis , @@ -174,16 +189,18 @@ The functions .Fn strsvis , .Fn strsnvis , .Fn strsvisx , +.Fn strsnvisx , and -.Fn strsnvisx +.Fn strsenvisx correspond to .Fn vis , .Fn nvis , .Fn strvis , .Fn strnvis , .Fn strvisx , +.Fn strnvisx , and -.Fn strnvisx +.Fn strenvisx but have an additional argument .Fa extra , pointing to a @@ -214,14 +231,13 @@ and .Fn strnvisx ) , and the type of representation used. By default, all non-graphic characters, -except space, tab, and newline are encoded. -(See -.Xr isgraph 3 . ) +except space, tab, and newline are encoded (see +.Xr isgraph 3 ) . The following flags alter this: .Bl -tag -width VIS_WHITEX .It Dv VIS_GLOB -Also encode magic characters +Also encode the magic characters .Ql ( * , .Ql \&? , .Ql \&[ @@ -243,11 +259,13 @@ Synonym for \&| .Dv VIS_NL . .It Dv VIS_SAFE -Only encode "unsafe" characters. +Only encode +.Dq unsafe +characters. Unsafe means control characters which may cause common terminals to perform unexpected functions. Currently this form allows space, tab, newline, backspace, bell, and -return - in addition to all graphic characters - unencoded. +return \(em in addition to all graphic characters \(em unencoded. .El .Pp (The above flags have no effect for @@ -287,8 +305,8 @@ Use an to represent meta characters (characters with the 8th bit set), and use caret .Ql ^ -to represent control characters see -.Pf ( Xr iscntrl 3 ) . +to represent control characters (see +.Xr iscntrl 3 ) . The following formats are used: .Bl -tag -width xxxxx .It Dv \e^C @@ -335,19 +353,20 @@ Use C-style backslash sequences to repre characters. The following sequences are used to represent the indicated characters: .Bd -unfilled -offset indent -.Li \ea Tn - BEL No (007) -.Li \eb Tn - BS No (010) -.Li \ef Tn - NP No (014) -.Li \en Tn - NL No (012) -.Li \er Tn - CR No (015) -.Li \es Tn - SP No (040) -.Li \et Tn - HT No (011) -.Li \ev Tn - VT No (013) -.Li \e0 Tn - NUL No (000) +.Li \ea Tn \(em BEL No (007) +.Li \eb Tn \(em BS No (010) +.Li \ef Tn \(em NP No (014) +.Li \en Tn \(em NL No (012) +.Li \er Tn \(em CR No (015) +.Li \es Tn \(em SP No (040) +.Li \et Tn \(em HT No (011) +.Li \ev Tn \(em VT No (013) +.Li \e0 Tn \(em NUL No (000) .Ed .Pp -When using this format, the nextc parameter is looked at to determine -if a +When using this format, the +.Fa nextc +parameter is looked at to determine if a .Dv NUL character can be encoded as .Ql \e0 @@ -374,8 +393,8 @@ represents a lower case hexadecimal digi .It Dv VIS_MIMESTYLE Use MIME Quoted-Printable encoding as described in RFC 2045, only don't break lines and don't handle CRLF. -The form is: -.Ql %XX +The form is +.Ql =XX where .Em X represents an upper case hexadecimal digit. @@ -392,6 +411,41 @@ meta characters as .Ql M-C ) . With this flag set, the encoding is ambiguous and non-invertible. +.Sh MULTIBYTE CHARACTER SUPPORT +These functions support multibyte character input. +The encoding conversion is influenced by the setting of the +.Ev LC_CTYPE +environment variable which defines the set of characters +that can be copied without encoding. +.Pp +When 8-bit data is present in the input, +.Ev LC_CTYPE +must be set to the correct locale or to the C locale. +If the locales of the data and the conversion are mismatched, +multibyte character recognition may fail and encoding will be performed +byte-by-byte instead. +.Pp +As noted above, +.Fa dst +must be four times the number of bytes processed from +.Fa src . +But note that each multibyte character can be up to +.Dv MB_LEN_MAX +bytes +.\" (see +.\" .Xr multibyte 3 ) +so in terms of multibyte characters, +.Fa dst +must be four times +.Dv MB_LEN_MAX +times the number of characters processed from +.Fa src . +.Sh ENVIRONMENT +.Bl -tag -width ".Ev LC_CTYPE" +.It Ev LC_CTYPE +Specify the locale of the input data. +Set to C if the input data locale is unknown. +.El .Sh ERRORS The functions .Fn nvis @@ -407,11 +461,11 @@ and .Fn strsnvisx , will return \-1 when the .Fa dlen -destination buffer length size is not enough to perform the conversion while +destination buffer size is not enough to perform the conversion while setting .Va errno to: -.Bl -tag -width Er +.Bl -tag -width ".Bq Er ENOSPC" .It Bq Er ENOSPC The destination buffer size is not large enough to perform the conversion. .El @@ -419,18 +473,23 @@ The destination buffer size is not large .Xr unvis 1 , .Xr vis 1 , .Xr glob 3 , +.\" .Xr multibyte 3 , .Xr unvis 3 .Rs .%A T. Berners-Lee .%T Uniform Resource Locators (URL) -.%O RFC1738 +.%O "RFC 1738" +.Re +.Rs +.%T "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies" +.%O "RFC 2045" .Re .Sh HISTORY The .Fn vis , .Fn strvis , and -.Fa strvisx +.Fn strvisx functions first appeared in .Bx 4.4 . The @@ -441,7 +500,7 @@ and functions appeared in .Nx 1.5 and -.Fx 10.0 . +.Fx 9.2 . The buffer size limited versions of the functions .Po Fn nvis , .Fn strnvis , @@ -451,6 +510,9 @@ The buffer size limited versions of the and .Fn strsnvisx Pc appeared in -.Nx 6.0 and -.Fx 10.0 . +.Fx 9.2 . +Myltibyte character support was added in +.Nx 7.0 +and +.Fx 9.2 . Modified: user/attilio/vmcontention/contrib/libc-vis/vis.c ============================================================================== --- user/attilio/vmcontention/contrib/libc-vis/vis.c Sun Mar 17 22:51:58 2013 (r248446) +++ user/attilio/vmcontention/contrib/libc-vis/vis.c Sun Mar 17 23:39:52 2013 (r248447) @@ -1,4 +1,4 @@ -/* $NetBSD: vis.c,v 1.45 2012/12/14 21:38:18 christos Exp $ */ +/* $NetBSD: vis.c,v 1.60 2013/02/21 16:21:20 joerg Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -57,19 +57,23 @@ #include #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: vis.c,v 1.45 2012/12/14 21:38:18 christos Exp $"); +__RCSID("$NetBSD: vis.c,v 1.60 2013/02/21 16:21:20 joerg Exp $"); #endif /* LIBC_SCCS and not lint */ +#ifdef __FBSDID __FBSDID("$FreeBSD$"); +#define _DIAGASSERT(x) assert(x) +#endif #include "namespace.h" #include +#include #include #include #include #include - -#define _DIAGASSERT(x) assert(x) +#include +#include #ifdef __weak_alias __weak_alias(strvisx,_strvisx) @@ -81,65 +85,66 @@ __weak_alias(strvisx,_strvisx) #include #include -static char *do_svis(char *, size_t *, int, int, int, const char *); +/* + * The reason for going through the trouble to deal with character encodings + * in vis(3), is that we use this to safe encode output of commands. This + * safe encoding varies depending on the character set. For example if we + * display ps output in French, we don't want to display French characters + * as M-foo. + */ + +static wchar_t *do_svis(wchar_t *, wint_t, int, wint_t, const wchar_t *); #undef BELL -#define BELL '\a' +#define BELL L'\a' + +#define iswoctal(c) (((u_char)(c)) >= L'0' && ((u_char)(c)) <= L'7') +#define iswwhite(c) (c == L' ' || c == L'\t' || c == L'\n') +#define iswsafe(c) (c == L'\b' || c == BELL || c == L'\r') +#define xtoa(c) L"0123456789abcdef"[c] +#define XTOA(c) L"0123456789ABCDEF"[c] -#define isoctal(c) (((u_char)(c)) >= '0' && ((u_char)(c)) <= '7') -#define iswhite(c) (c == ' ' || c == '\t' || c == '\n') -#define issafe(c) (c == '\b' || c == BELL || c == '\r') -#define xtoa(c) "0123456789abcdef"[c] -#define XTOA(c) "0123456789ABCDEF"[c] - -#define MAXEXTRAS 9 - -#define MAKEEXTRALIST(flag, extra, orig_str) \ -do { \ - const char *orig = orig_str; \ - const char *o = orig; \ - char *e; \ - while (*o++) \ - continue; \ - extra = malloc((size_t)((o - orig) + MAXEXTRAS)); \ - if (!extra) break; \ - for (o = orig, e = extra; (*e++ = *o++) != '\0';) \ - continue; \ - e--; \ - if (flag & VIS_GLOB) { \ - *e++ = '*'; \ - *e++ = '?'; \ - *e++ = '['; \ - *e++ = '#'; \ - } \ - if (flag & VIS_SP) *e++ = ' '; \ - if (flag & VIS_TAB) *e++ = '\t'; \ - if (flag & VIS_NL) *e++ = '\n'; \ - if ((flag & VIS_NOSLASH) == 0) *e++ = '\\'; \ - *e = '\0'; \ -} while (/*CONSTCOND*/0) +#define MAXEXTRAS 10 + +#if !HAVE_NBTOOL_CONFIG_H +#ifndef __NetBSD__ +/* + * On NetBSD MB_LEN_MAX is currently 32 which does not fit on any integer + * integral type and it is probably wrong, since currently the maximum + * number of bytes and character needs is 6. Until this is fixed, the + * loops below are using sizeof(uint64_t) - 1 instead of MB_LEN_MAX, and + * the assertion is commented out. + */ +#ifdef __FreeBSD__ +/* + * On FreeBSD including for CTASSERT only works in kernel + * mode. + */ +#ifndef CTASSERT +#define CTASSERT(x) _CTASSERT(x, __LINE__) +#define _CTASSERT(x, y) __CTASSERT(x, y) +#define __CTASSERT(x, y) typedef char __assert ## y[(x) ? 1 : -1] +#endif +#endif /* __FreeBSD__ */ +CTASSERT(MB_LEN_MAX <= sizeof(uint64_t)); +#endif /* !__NetBSD__ */ +#endif /* * This is do_hvis, for HTTP style (RFC 1808) */ -static char * -do_hvis(char *dst, size_t *dlen, int c, int flag, int nextc, const char *extra) +static wchar_t * +do_hvis(wchar_t *dst, wint_t c, int flags, wint_t nextc, const wchar_t *extra) { - - if ((isascii(c) && isalnum(c)) + if (iswalnum(c) /* safe */ - || c == '$' || c == '-' || c == '_' || c == '.' || c == '+' + || c == L'$' || c == L'-' || c == L'_' || c == L'.' || c == L'+' /* extra */ - || c == '!' || c == '*' || c == '\'' || c == '(' || c == ')' - || c == ',') { - dst = do_svis(dst, dlen, c, flag, nextc, extra); - } else { - if (dlen) { - if (*dlen < 3) - return NULL; - *dlen -= 3; - } - *dst++ = '%'; + || c == L'!' || c == L'*' || c == L'\'' || c == L'(' || c == L')' + || c == L',') + dst = do_svis(dst, c, flags, nextc, extra); + else { + *dst++ = L'%'; *dst++ = xtoa(((unsigned int)c >> 4) & 0xf); *dst++ = xtoa((unsigned int)c & 0xf); } @@ -151,312 +156,448 @@ do_hvis(char *dst, size_t *dlen, int c, * This is do_mvis, for Quoted-Printable MIME (RFC 2045) * NB: No handling of long lines or CRLF. */ -static char * -do_mvis(char *dst, size_t *dlen, int c, int flag, int nextc, const char *extra) +static wchar_t * +do_mvis(wchar_t *dst, wint_t c, int flags, wint_t nextc, const wchar_t *extra) { - if ((c != '\n') && + if ((c != L'\n') && /* Space at the end of the line */ - ((isspace(c) && (nextc == '\r' || nextc == '\n')) || + ((iswspace(c) && (nextc == L'\r' || nextc == L'\n')) || /* Out of range */ - (!isspace(c) && (c < 33 || (c > 60 && c < 62) || c > 126)) || - /* Specific char to be escaped */ - strchr("#$@[\\]^`{|}~", c) != NULL)) { - if (dlen) { - if (*dlen < 3) - return NULL; - *dlen -= 3; - } - *dst++ = '='; + (!iswspace(c) && (c < 33 || (c > 60 && c < 62) || c > 126)) || + /* Specific char to be escaped */ + wcschr(L"#$@[\\]^`{|}~", c) != NULL)) { + *dst++ = L'='; *dst++ = XTOA(((unsigned int)c >> 4) & 0xf); *dst++ = XTOA((unsigned int)c & 0xf); - } else { - dst = do_svis(dst, dlen, c, flag, nextc, extra); - } + } else + dst = do_svis(dst, c, flags, nextc, extra); return dst; } /* - * This is do_vis, the central code of vis. - * dst: Pointer to the destination buffer - * c: Character to encode - * flag: Flag word - * nextc: The character following 'c' - * extra: Pointer to the list of extra characters to be - * backslash-protected. + * Output single byte of multibyte character. */ -static char * -do_svis(char *dst, size_t *dlen, int c, int flag, int nextc, const char *extra) +static wchar_t * +do_mbyte(wchar_t *dst, wint_t c, int flags, wint_t nextc, int iswextra) { - int isextra; - size_t odlen = dlen ? *dlen : 0; - - isextra = strchr(extra, c) != NULL; -#define HAVE(x) \ - do { \ - if (dlen) { \ - if (*dlen < (x)) \ - goto out; \ - *dlen -= (x); \ - } \ - } while (/*CONSTCOND*/0) - if (!isextra && isascii(c) && (isgraph(c) || iswhite(c) || - ((flag & VIS_SAFE) && issafe(c)))) { - HAVE(1); - *dst++ = c; - return dst; - } - if (flag & VIS_CSTYLE) { - HAVE(2); + if (flags & VIS_CSTYLE) { switch (c) { - case '\n': - *dst++ = '\\'; *dst++ = 'n'; + case L'\n': + *dst++ = L'\\'; *dst++ = L'n'; return dst; - case '\r': - *dst++ = '\\'; *dst++ = 'r'; + case L'\r': + *dst++ = L'\\'; *dst++ = L'r'; return dst; - case '\b': - *dst++ = '\\'; *dst++ = 'b'; + case L'\b': + *dst++ = L'\\'; *dst++ = L'b'; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Sun Mar 17 23:53:07 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 63109D98; Sun, 17 Mar 2013 23:53:07 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 44D8C96B; Sun, 17 Mar 2013 23:53:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HNr7MN003786; Sun, 17 Mar 2013 23:53:07 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2HNr6G8003783; Sun, 17 Mar 2013 23:53:06 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303172353.r2HNr6G8003783@svn.freebsd.org> From: Attilio Rao Date: Sun, 17 Mar 2013 23:53:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248448 - user/attilio/vmcontention/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 23:53:07 -0000 Author: attilio Date: Sun Mar 17 23:53:06 2013 New Revision: 248448 URL: http://svnweb.freebsd.org/changeset/base/248448 Log: Commit new file FreeBSD tags. Sponsored by: EMC / Isilon storage division Modified: user/attilio/vmcontention/sys/vm/_vm_radix.h user/attilio/vmcontention/sys/vm/vm_radix.c user/attilio/vmcontention/sys/vm/vm_radix.h Modified: user/attilio/vmcontention/sys/vm/_vm_radix.h ============================================================================== --- user/attilio/vmcontention/sys/vm/_vm_radix.h Sun Mar 17 23:39:52 2013 (r248447) +++ user/attilio/vmcontention/sys/vm/_vm_radix.h Sun Mar 17 23:53:06 2013 (r248448) @@ -25,6 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * + * $FreeBSD$ */ #ifndef __VM_RADIX_H_ Modified: user/attilio/vmcontention/sys/vm/vm_radix.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 23:39:52 2013 (r248447) +++ user/attilio/vmcontention/sys/vm/vm_radix.c Sun Mar 17 23:53:06 2013 (r248448) @@ -49,6 +49,7 @@ */ #include +__FBSDID("$FreeBSD$"); #include "opt_ddb.h" Modified: user/attilio/vmcontention/sys/vm/vm_radix.h ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_radix.h Sun Mar 17 23:39:52 2013 (r248447) +++ user/attilio/vmcontention/sys/vm/vm_radix.h Sun Mar 17 23:53:06 2013 (r248448) @@ -25,6 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * + * $FreeBSD$ */ #ifndef _VM_RADIX_H_ From owner-svn-src-user@FreeBSD.ORG Mon Mar 18 11:06:35 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 46C8481A; Mon, 18 Mar 2013 11:06:35 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 2A542A71; Mon, 18 Mar 2013 11:06:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2I9jCbV085588; Mon, 18 Mar 2013 09:45:12 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2I9jBpL085576; Mon, 18 Mar 2013 09:45:11 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303180945.r2I9jBpL085576@svn.freebsd.org> From: Attilio Rao Date: Mon, 18 Mar 2013 09:45:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248463 - in user/attilio/vmcontention: contrib/binutils/gas/config lib/libc/stdlib sys/cddl/contrib/opensolaris/uts/common/sys sys/cddl/dev/dtrace/powerpc sys/cddl/dev/fbt sys/dev/ath ... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2013 11:06:35 -0000 Author: attilio Date: Mon Mar 18 09:45:10 2013 New Revision: 248463 URL: http://svnweb.freebsd.org/changeset/base/248463 Log: MFC Added: user/attilio/vmcontention/sys/cddl/dev/fbt/fbt_powerpc.c - copied unchanged from r248462, head/sys/cddl/dev/fbt/fbt_powerpc.c Modified: user/attilio/vmcontention/contrib/binutils/gas/config/tc-arm.c user/attilio/vmcontention/lib/libc/stdlib/realpath.3 user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c user/attilio/vmcontention/sys/dev/ath/if_ath_rx_edma.c user/attilio/vmcontention/sys/dev/ath/if_ath_sysctl.c user/attilio/vmcontention/sys/dev/sis/if_sis.c user/attilio/vmcontention/sys/dev/sis/if_sisreg.h user/attilio/vmcontention/sys/dev/usb/usbdevs user/attilio/vmcontention/sys/dev/usb/wlan/if_run.c user/attilio/vmcontention/sys/modules/dtrace/Makefile user/attilio/vmcontention/sys/modules/dtrace/dtraceall/dtraceall.c user/attilio/vmcontention/sys/modules/dtrace/fbt/Makefile user/attilio/vmcontention/sys/powerpc/aim/trap.c user/attilio/vmcontention/sys/powerpc/aim/trap_subr32.S user/attilio/vmcontention/sys/powerpc/aim/trap_subr64.S Directory Properties: user/attilio/vmcontention/ (props changed) user/attilio/vmcontention/contrib/binutils/ (props changed) user/attilio/vmcontention/lib/libc/ (props changed) user/attilio/vmcontention/sys/ (props changed) user/attilio/vmcontention/sys/cddl/contrib/opensolaris/ (props changed) user/attilio/vmcontention/sys/conf/ (props changed) Modified: user/attilio/vmcontention/contrib/binutils/gas/config/tc-arm.c ============================================================================== --- user/attilio/vmcontention/contrib/binutils/gas/config/tc-arm.c Mon Mar 18 09:39:51 2013 (r248462) +++ user/attilio/vmcontention/contrib/binutils/gas/config/tc-arm.c Mon Mar 18 09:45:10 2013 (r248463) @@ -651,6 +651,7 @@ struct asm_opcode #define BAD_ARGS _("bad arguments to instruction") #define BAD_PC _("r15 not allowed here") +#define BAD_SP _("r13 not allowed here") #define BAD_COND _("instruction cannot be conditional") #define BAD_OVERLAP _("registers may not be the same") #define BAD_HIREG _("lo register required") @@ -659,6 +660,7 @@ struct asm_opcode #define BAD_BRANCH _("branch must be last instruction in IT block") #define BAD_NOT_IT _("instruction not allowed in IT block") #define BAD_FPU _("selected FPU does not support instruction") +#define BAD_VMRS _("APSR_nzcv may only be used with fpscr") static struct hash_control *arm_ops_hsh; static struct hash_control *arm_cond_hsh; @@ -5164,10 +5166,6 @@ parse_neon_mov (char **str, int *which_o Case 10: VMOV.F32 , # Case 11: VMOV.F64
, # */ inst.operands[i].immisfloat = 1; - else if (parse_big_immediate (&ptr, i) == SUCCESS) - /* Case 2: VMOV.
, # - Case 3: VMOV.
, # */ - ; else if ((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype, &optype)) != FAIL) { @@ -5207,6 +5205,10 @@ parse_neon_mov (char **str, int *which_o inst.operands[i++].present = 1; } } + else if (parse_big_immediate (&ptr, i) == SUCCESS) + /* Case 2: VMOV.
, # + Case 3: VMOV.
, # */ + ; else { first_error (_("expected or or operand")); @@ -7095,6 +7097,68 @@ do_vfp_nsyn_msr (void) return SUCCESS; } +static int +do_vfp_vmrs (void) +{ + int rt; + + /* The destination register can be r0-r14 or APSR_nzcv */ + if (inst.operands[0].reg > 14) + { + inst.error = BAD_PC; + return FAIL; + } + + /* If the destination is r13 and not in ARM mode then unprefictable */ + if (thumb_mode && inst.operands[0].reg == REG_SP) + { + inst.error = BAD_SP; + return FAIL; + } + + /* If the destination is APSR_nzcv */ + if (inst.operands[0].isvec && inst.operands[1].reg != 1) + { + inst.error = BAD_VMRS; + return FAIL; + } + + if (inst.operands[0].isvec) + rt = 15; + else + rt = inst.operands[0].reg; + + /* Or in the registers to use */ + inst.instruction |= rt << 12; + inst.instruction |= inst.operands[1].reg << 16; + + return SUCCESS; +} + +static int +do_vfp_vmsr (void) +{ + /* The destination register can be r0-r14 or APSR_nzcv */ + if (inst.operands[1].reg > 14) + { + inst.error = BAD_PC; + return FAIL; + } + + /* If the destination is r13 and not in ARM mode then unprefictable */ + if (thumb_mode && inst.operands[0].reg == REG_SP) + { + inst.error = BAD_SP; + return FAIL; + } + + /* Or in the registers to use */ + inst.instruction |= inst.operands[1].reg << 12; + inst.instruction |= inst.operands[0].reg << 16; + + return SUCCESS; +} + static void do_mrs (void) { @@ -15726,6 +15790,8 @@ static const struct asm_opcode insns[] = cCE(ftouizs, ebc0ac0, 2, (RVS, RVS), vfp_sp_monadic), cCE(fmrx, ef00a10, 2, (RR, RVC), rd_rn), cCE(fmxr, ee00a10, 2, (RVC, RR), rn_rd), + cCE(vmrs, ef00a10, 2, (APSR_RR, RVC), vfp_vmrs), + cCE(vmsr, ee00a10, 2, (RVC, RR), vfp_vmsr), /* Memory operations. */ cCE(flds, d100a00, 2, (RVS, ADDRGLDC), vfp_sp_ldst), Modified: user/attilio/vmcontention/lib/libc/stdlib/realpath.3 ============================================================================== --- user/attilio/vmcontention/lib/libc/stdlib/realpath.3 Mon Mar 18 09:39:51 2013 (r248462) +++ user/attilio/vmcontention/lib/libc/stdlib/realpath.3 Mon Mar 18 09:45:10 2013 (r248463) @@ -42,7 +42,7 @@ .Sh SYNOPSIS .In stdlib.h .Ft "char *" -.Fn realpath "const char *pathname" "char *resolved_path" +.Fn realpath "const char * restrict pathname" "char * restrict resolved_path" .Sh DESCRIPTION The .Fn realpath Modified: user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h ============================================================================== --- user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h Mon Mar 18 09:39:51 2013 (r248462) +++ user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h Mon Mar 18 09:45:10 2013 (r248463) @@ -2313,10 +2313,10 @@ extern int dtrace_mach_aframes(void); #if defined(__i386) || defined(__amd64) extern int dtrace_instr_size(uchar_t *instr); extern int dtrace_instr_size_isa(uchar_t *, model_t, int *); -extern void dtrace_invop_add(int (*)(uintptr_t, uintptr_t *, uintptr_t)); -extern void dtrace_invop_remove(int (*)(uintptr_t, uintptr_t *, uintptr_t)); extern void dtrace_invop_callsite(void); #endif +extern void dtrace_invop_add(int (*)(uintptr_t, uintptr_t *, uintptr_t)); +extern void dtrace_invop_remove(int (*)(uintptr_t, uintptr_t *, uintptr_t)); #ifdef __sparc extern int dtrace_blksuword32(uintptr_t, uint32_t *, int); @@ -2349,6 +2349,15 @@ extern void dtrace_helpers_destroy(proc_ #define DTRACE_INVOP_NOP 4 #define DTRACE_INVOP_RET 5 +#elif defined(__powerpc__) + +#define DTRACE_INVOP_RET 1 +#define DTRACE_INVOP_BCTR 2 +#define DTRACE_INVOP_BLR 3 +#define DTRACE_INVOP_JUMP 4 +#define DTRACE_INVOP_MFLR_R0 5 +#define DTRACE_INVOP_NOP 6 + #endif #ifdef __cplusplus Modified: user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S ============================================================================== --- user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S Mon Mar 18 09:39:51 2013 (r248462) +++ user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S Mon Mar 18 09:45:10 2013 (r248463) @@ -85,10 +85,10 @@ ASENTRY_NOPROF(dtrace_cas32) 1: lwarx %r0,0,%r3 cmpw %r4,%r0 - bne 2f + bne 2f stwcx. %r5,0,%r3 - bne 1b -2: mr %r3,%r0 + bne 1b +2: mr %r3,%r0 blr END(dtrace_cas32) @@ -100,22 +100,15 @@ ASENTRY_NOPROF(dtrace_casptr) 1: lwarx %r0,0,%r3 cmpw %r4,%r0 - bne 2f + bne 2f stwcx. %r5,0,%r3 - bne 1b -2: mr %r3,%r0 + bne 1b +2: mr %r3,%r0 blr END(dtrace_casptr) /* -uintptr_t -dtrace_fulword(void *addr) -*/ -ASENTRY_NOPROF(dtrace_fulword) -END(dtrace_fulword) - -/* XXX: unoptimized void dtrace_copy(uintptr_t src, uintptr_t dest, size_t size) @@ -127,7 +120,7 @@ ASENTRY_NOPROF(dtrace_copy) lbzu %r3,1(%r7) stbu %r3,1(%r8) addme %r5,%r5 - beq 2f + beq 2f 2: blr END(dtrace_copy) @@ -144,42 +137,19 @@ ASENTRY_NOPROF(dtrace_copystr) lbzu %r3,1(%r7) stbu %r3,1(%r8) addme %r5,%r5 - beq 2f - or %r3,%r3,%r3 - beq 2f + beq 2f + or %r3,%r3,%r3 + beq 2f andi. %r0,%r5,0x0fff - beq 2f - lwz %r0,0(%r6) + beq 2f + lwz %r0,0(%r6) andi. %r0,%r0,CPU_DTRACE_BADADDR - beq 1b + beq 1b 2: blr END(dtrace_copystr) /* -void dtrace_invop_init(void) -*/ -ASENTRY_NOPROF(dtrace_invop_init) - /* XXX: impement it properly -- implement dtrace_invop_start */ - li %r0,0 - li %r3,dtrace_invop_jump_addr@l - addis %r3,%r3,dtrace_invop_jump_addr@ha - stw %r0,0(%r3) - blr -END(dtrace_invop_init) - -/* -void dtrace_invop_uninit(void) -*/ -ASENTRY_NOPROF(dtrace_invop_uninit) - li %r0,0 - li %r3,dtrace_invop_jump_addr@l - addis %r3,%r3,dtrace_invop_jump_addr@ha - stw %r0,0(%r3) - blr -END(dtrace_invop_uninit) - -/* * The panic() and cmn_err() functions invoke vpanic() as a common entry point * into the panic code implemented in panicsys(). vpanic() is responsible * for passing through the format string and arguments, and constructing a Modified: user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c ============================================================================== --- user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c Mon Mar 18 09:39:51 2013 (r248462) +++ user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c Mon Mar 18 09:45:10 2013 (r248463) @@ -567,3 +567,17 @@ dtrace_fuword64(void *uaddr) } return ret; } + +uintptr_t +dtrace_fulword(void *uaddr) +{ + uintptr_t ret = 0; + + if (dtrace_copycheck((uintptr_t)uaddr, (uintptr_t)&ret, sizeof(ret))) { + if (copyin((const void *)uaddr, (void *)&ret, sizeof(ret))) { + DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR); + cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr; + } + } + return ret; +} Modified: user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c ============================================================================== --- user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c Mon Mar 18 09:39:51 2013 (r248462) +++ user/attilio/vmcontention/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c Mon Mar 18 09:45:10 2013 (r248463) @@ -49,8 +49,11 @@ __FBSDID("$FreeBSD$"); extern uintptr_t dtrace_in_probe_addr; extern int dtrace_in_probe; extern dtrace_id_t dtrace_probeid_error; +extern int (*dtrace_invop_jump_addr)(struct trapframe *); int dtrace_invop(uintptr_t, uintptr_t *, uintptr_t); +void dtrace_invop_init(void); +void dtrace_invop_uninit(void); typedef struct dtrace_invop_hdlr { int (*dtih_func)(uintptr_t, uintptr_t *, uintptr_t); @@ -72,6 +75,44 @@ dtrace_invop(uintptr_t addr, uintptr_t * return (0); } +void +dtrace_invop_add(int (*func)(uintptr_t, uintptr_t *, uintptr_t)) +{ + dtrace_invop_hdlr_t *hdlr; + + hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP); + hdlr->dtih_func = func; + hdlr->dtih_next = dtrace_invop_hdlr; + dtrace_invop_hdlr = hdlr; +} + +void +dtrace_invop_remove(int (*func)(uintptr_t, uintptr_t *, uintptr_t)) +{ + dtrace_invop_hdlr_t *hdlr = dtrace_invop_hdlr, *prev = NULL; + + for (;;) { + if (hdlr == NULL) + panic("attempt to remove non-existent invop handler"); + + if (hdlr->dtih_func == func) + break; + + prev = hdlr; + hdlr = hdlr->dtih_next; + } + + if (prev == NULL) { + ASSERT(dtrace_invop_hdlr == hdlr); + dtrace_invop_hdlr = hdlr->dtih_next; + } else { + ASSERT(dtrace_invop_hdlr != hdlr); + prev->dtih_next = hdlr->dtih_next; + } + + kmem_free(hdlr, 0); +} + /*ARGSUSED*/ void @@ -199,3 +240,36 @@ dtrace_probe_error(dtrace_state_t *state (uintptr_t)epid, (uintptr_t)which, (uintptr_t)fault, (uintptr_t)fltoffs); } + +static int +dtrace_invop_start(struct trapframe *frame) +{ + switch (dtrace_invop(frame->srr0, (uintptr_t *)frame, frame->fixreg[3])) { + case DTRACE_INVOP_JUMP: + break; + case DTRACE_INVOP_BCTR: + frame->srr0 = frame->ctr; + break; + case DTRACE_INVOP_BLR: + frame->srr0 = frame->lr; + break; + case DTRACE_INVOP_MFLR_R0: + frame->fixreg[0] = frame->lr ; + break; + default: + return (-1); + break; + } + + return (0); +} + +void dtrace_invop_init(void) +{ + dtrace_invop_jump_addr = dtrace_invop_start; +} + +void dtrace_invop_uninit(void) +{ + dtrace_invop_jump_addr = 0; +} Copied: user/attilio/vmcontention/sys/cddl/dev/fbt/fbt_powerpc.c (from r248462, head/sys/cddl/dev/fbt/fbt_powerpc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmcontention/sys/cddl/dev/fbt/fbt_powerpc.c Mon Mar 18 09:45:10 2013 (r248463, copy of r248462, head/sys/cddl/dev/fbt/fbt_powerpc.c) @@ -0,0 +1,1321 @@ +/* + * 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 + * + * Portions Copyright 2006-2008 John Birrell jb@freebsd.org + * Portions Copyright 2013 Justin Hibbits jhibbits@freebsd.org + * + * $FreeBSD$ + * + */ + +/* + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +static MALLOC_DEFINE(M_FBT, "fbt", "Function Boundary Tracing"); + +#define FBT_PATCHVAL 0x7c810808 +#define FBT_MFLR_R0 0x7c0802a6 +#define FBT_MTLR_R0 0x7c0803a6 +#define FBT_BLR 0x4e800020 +#define FBT_BCTR 0x4e800030 +#define FBT_BRANCH 0x48000000 +#define FBT_BR_MASK 0x03fffffc +#define FBT_IS_JUMP(instr) ((instr & ~FBT_BR_MASK) == FBT_BRANCH) + +static d_open_t fbt_open; +static int fbt_unload(void); +static void fbt_getargdesc(void *, dtrace_id_t, void *, dtrace_argdesc_t *); +static void fbt_provide_module(void *, modctl_t *); +static void fbt_destroy(void *, dtrace_id_t, void *); +static void fbt_enable(void *, dtrace_id_t, void *); +static void fbt_disable(void *, dtrace_id_t, void *); +static void fbt_load(void *); +static void fbt_suspend(void *, dtrace_id_t, void *); +static void fbt_resume(void *, dtrace_id_t, void *); + +#define FBT_ENTRY "entry" +#define FBT_RETURN "return" +#define FBT_ADDR2NDX(addr) ((((uintptr_t)(addr)) >> 4) & fbt_probetab_mask) +#define FBT_PROBETAB_SIZE 0x8000 /* 32k entries -- 128K total */ + +static struct cdevsw fbt_cdevsw = { + .d_version = D_VERSION, + .d_open = fbt_open, + .d_name = "fbt", +}; + +static dtrace_pattr_t fbt_attr = { +{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON }, +{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN }, +{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA }, +{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON }, +{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA }, +}; + +static dtrace_pops_t fbt_pops = { + NULL, + fbt_provide_module, + fbt_enable, + fbt_disable, + fbt_suspend, + fbt_resume, + fbt_getargdesc, + NULL, + NULL, + fbt_destroy +}; + +typedef struct fbt_probe { + struct fbt_probe *fbtp_hashnext; + uint32_t *fbtp_patchpoint; + int8_t fbtp_rval; + uint32_t fbtp_patchval; + uint32_t fbtp_savedval; + uintptr_t fbtp_roffset; + dtrace_id_t fbtp_id; + const char *fbtp_name; + modctl_t *fbtp_ctl; + int fbtp_loadcnt; + int fbtp_primary; + int fbtp_invop_cnt; + int fbtp_symindx; + struct fbt_probe *fbtp_next; +} fbt_probe_t; + +static struct cdev *fbt_cdev; +static dtrace_provider_id_t fbt_id; +static fbt_probe_t **fbt_probetab; +static int fbt_probetab_size; +static int fbt_probetab_mask; +static int fbt_verbose = 0; + +static int +fbt_invop(uintptr_t addr, uintptr_t *stack, uintptr_t rval) +{ + struct trapframe *frame = (struct trapframe *)stack; + solaris_cpu_t *cpu = &solaris_cpu[curcpu]; + fbt_probe_t *fbt = fbt_probetab[FBT_ADDR2NDX(addr)]; + uintptr_t tmp; + + for (; fbt != NULL; fbt = fbt->fbtp_hashnext) { + if ((uintptr_t)fbt->fbtp_patchpoint == addr) { + fbt->fbtp_invop_cnt++; + if (fbt->fbtp_roffset == 0) { + cpu->cpu_dtrace_caller = addr; + + dtrace_probe(fbt->fbtp_id, frame->fixreg[3], + frame->fixreg[4], frame->fixreg[5], + frame->fixreg[6], frame->fixreg[7]); + + cpu->cpu_dtrace_caller = 0; + } else { + + dtrace_probe(fbt->fbtp_id, fbt->fbtp_roffset, + rval, 0, 0, 0); + /* + * The caller doesn't have the fbt item, so + * fixup tail calls here. + */ + if (fbt->fbtp_rval == DTRACE_INVOP_JUMP) { + frame->srr0 = (uintptr_t)fbt->fbtp_patchpoint; + tmp = fbt->fbtp_savedval & FBT_BR_MASK; + /* Sign extend. */ + if (tmp & 0x02000000) + tmp |= 0xFC000000; + frame->srr0 += tmp; + } + cpu->cpu_dtrace_caller = 0; + } + + return (fbt->fbtp_rval); + } + } + + return (0); +} + +static int +fbt_provide_module_function(linker_file_t lf, int symindx, + linker_symval_t *symval, void *opaque) +{ + char *modname = opaque; + const char *name = symval->name; + fbt_probe_t *fbt, *retfbt; + int j; + int size; + u_int32_t *instr, *limit; + + if (strncmp(name, "dtrace_", 7) == 0 && + strncmp(name, "dtrace_safe_", 12) != 0) { + /* + * Anything beginning with "dtrace_" may be called + * from probe context unless it explicitly indicates + * that it won't be called from probe context by + * using the prefix "dtrace_safe_". + */ + return (0); + } + + if (name[0] == '_' && name[1] == '_') + return (0); + + size = symval->size; + + instr = (u_int32_t *) symval->value; + limit = (u_int32_t *) symval->value + symval->size; + + for (; instr < limit; instr++) + if (*instr == FBT_MFLR_R0) + break; + + if (*instr != FBT_MFLR_R0); + return (0); + + fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO); + fbt->fbtp_name = name; + fbt->fbtp_id = dtrace_probe_create(fbt_id, modname, + name, FBT_ENTRY, 3, fbt); + fbt->fbtp_patchpoint = instr; + fbt->fbtp_ctl = lf; + fbt->fbtp_loadcnt = lf->loadcnt; + fbt->fbtp_savedval = *instr; + fbt->fbtp_patchval = FBT_PATCHVAL; + fbt->fbtp_rval = DTRACE_INVOP_MFLR_R0; + fbt->fbtp_symindx = symindx; + + fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)]; + fbt_probetab[FBT_ADDR2NDX(instr)] = fbt; + + lf->fbt_nentries++; + + retfbt = NULL; +again: + if (instr >= limit) + return (0); + + /* + * We (desperately) want to avoid erroneously instrumenting a + * jump table To determine if we're looking at a true instruction + * sequence or an inline jump table that happens to contain the same + * byte sequences, we resort to some heuristic sleeze: we treat this + * instruction as being contained within a pointer, and see if that + * pointer points to within the body of the function. If it does, we + * refuse to instrument it. + */ + { + uint32_t *ptr; + + ptr = *(uint32_t **)instr; + + if (ptr >= (uint32_t *) symval->value && ptr < limit) { + instr++; + goto again; + } + } + + if (*instr == FBT_MFLR_R0) + return (0); + + if (*instr != FBT_MTLR_R0) { + instr++; + goto again; + } + + instr++; + + for (j = 0; j < 12 && instr < limit; j++, instr++) { + if ((*instr == FBT_BCTR) || (*instr == FBT_BLR) | + FBT_IS_JUMP(*instr)) + break; + } + + if (!(*instr == FBT_BCTR || *instr == FBT_BLR || FBT_IS_JUMP(*instr))) + goto again; + + /* + * We have a winner! + */ + fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO); + fbt->fbtp_name = name; + + if (retfbt == NULL) { + fbt->fbtp_id = dtrace_probe_create(fbt_id, modname, + name, FBT_RETURN, 3, fbt); + } else { + retfbt->fbtp_next = fbt; + fbt->fbtp_id = retfbt->fbtp_id; + } + + retfbt = fbt; + fbt->fbtp_patchpoint = instr; + fbt->fbtp_ctl = lf; + fbt->fbtp_loadcnt = lf->loadcnt; + fbt->fbtp_symindx = symindx; + + if (*instr == FBT_BCTR) + fbt->fbtp_rval = DTRACE_INVOP_BCTR; + else if (*instr == FBT_BLR) + fbt->fbtp_rval = DTRACE_INVOP_RET; + else + fbt->fbtp_rval = DTRACE_INVOP_JUMP; + + fbt->fbtp_savedval = *instr; + fbt->fbtp_patchval = FBT_PATCHVAL; + fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)]; + fbt_probetab[FBT_ADDR2NDX(instr)] = fbt; + + lf->fbt_nentries++; + + instr += size; + goto again; +} + +static void +fbt_provide_module(void *arg, modctl_t *lf) +{ + char modname[MAXPATHLEN]; + int i; + size_t len; + + strlcpy(modname, lf->filename, sizeof(modname)); + len = strlen(modname); + if (len > 3 && strcmp(modname + len - 3, ".ko") == 0) + modname[len - 3] = '\0'; + + /* + * Employees of dtrace and their families are ineligible. Void + * where prohibited. + */ + if (strcmp(modname, "dtrace") == 0) + return; + + /* + * The cyclic timer subsystem can be built as a module and DTrace + * depends on that, so it is ineligible too. + */ + if (strcmp(modname, "cyclic") == 0) + return; + + /* + * To register with DTrace, a module must list 'dtrace' as a + * dependency in order for the kernel linker to resolve + * symbols like dtrace_register(). All modules with such a + * dependency are ineligible for FBT tracing. + */ + for (i = 0; i < lf->ndeps; i++) + if (strncmp(lf->deps[i]->filename, "dtrace", 6) == 0) + return; + + if (lf->fbt_nentries) { + /* + * This module has some FBT entries allocated; we're afraid + * to screw with it. + */ + return; + } + + /* + * List the functions in the module and the symbol values. + */ + (void) linker_file_function_listall(lf, fbt_provide_module_function, modname); +} + +static void +fbt_destroy(void *arg, dtrace_id_t id, void *parg) +{ + fbt_probe_t *fbt = parg, *next, *hash, *last; + modctl_t *ctl; + int ndx; + + do { + ctl = fbt->fbtp_ctl; + + ctl->fbt_nentries--; + + /* + * Now we need to remove this probe from the fbt_probetab. + */ + ndx = FBT_ADDR2NDX(fbt->fbtp_patchpoint); + last = NULL; + hash = fbt_probetab[ndx]; + + while (hash != fbt) { + ASSERT(hash != NULL); + last = hash; + hash = hash->fbtp_hashnext; + } + + if (last != NULL) { + last->fbtp_hashnext = fbt->fbtp_hashnext; + } else { + fbt_probetab[ndx] = fbt->fbtp_hashnext; + } + + next = fbt->fbtp_next; + free(fbt, M_FBT); + + fbt = next; + } while (fbt != NULL); +} + +static void +fbt_enable(void *arg, dtrace_id_t id, void *parg) +{ + fbt_probe_t *fbt = parg; + modctl_t *ctl = fbt->fbtp_ctl; + + ctl->nenabled++; + + /* + * Now check that our modctl has the expected load count. If it + * doesn't, this module must have been unloaded and reloaded -- and + * we're not going to touch it. + */ + if (ctl->loadcnt != fbt->fbtp_loadcnt) { + if (fbt_verbose) { + printf("fbt is failing for probe %s " + "(module %s reloaded)", + fbt->fbtp_name, ctl->filename); + } + + return; + } + + for (; fbt != NULL; fbt = fbt->fbtp_next) { + *fbt->fbtp_patchpoint = fbt->fbtp_patchval; + } +} + +static void +fbt_disable(void *arg, dtrace_id_t id, void *parg) +{ + fbt_probe_t *fbt = parg; + modctl_t *ctl = fbt->fbtp_ctl; + + ASSERT(ctl->nenabled > 0); + ctl->nenabled--; + + if ((ctl->loadcnt != fbt->fbtp_loadcnt)) + return; + + for (; fbt != NULL; fbt = fbt->fbtp_next) + *fbt->fbtp_patchpoint = fbt->fbtp_savedval; +} + +static void +fbt_suspend(void *arg, dtrace_id_t id, void *parg) +{ + fbt_probe_t *fbt = parg; + modctl_t *ctl = fbt->fbtp_ctl; + + ASSERT(ctl->nenabled > 0); + + if ((ctl->loadcnt != fbt->fbtp_loadcnt)) + return; + + for (; fbt != NULL; fbt = fbt->fbtp_next) + *fbt->fbtp_patchpoint = fbt->fbtp_savedval; +} + +static void +fbt_resume(void *arg, dtrace_id_t id, void *parg) +{ + fbt_probe_t *fbt = parg; + modctl_t *ctl = fbt->fbtp_ctl; + + ASSERT(ctl->nenabled > 0); + + if ((ctl->loadcnt != fbt->fbtp_loadcnt)) + return; + + for (; fbt != NULL; fbt = fbt->fbtp_next) + *fbt->fbtp_patchpoint = fbt->fbtp_patchval; +} + +static int +fbt_ctfoff_init(modctl_t *lf, linker_ctf_t *lc) +{ + const Elf_Sym *symp = lc->symtab;; + const char *name; + const ctf_header_t *hp = (const ctf_header_t *) lc->ctftab; + const uint8_t *ctfdata = lc->ctftab + sizeof(ctf_header_t); + int i; + uint32_t *ctfoff; + uint32_t objtoff = hp->cth_objtoff; + uint32_t funcoff = hp->cth_funcoff; + ushort_t info; + ushort_t vlen; + + /* Sanity check. */ + if (hp->cth_magic != CTF_MAGIC) { + printf("Bad magic value in CTF data of '%s'\n",lf->pathname); + return (EINVAL); + } + + if (lc->symtab == NULL) { + printf("No symbol table in '%s'\n",lf->pathname); + return (EINVAL); + } + + if ((ctfoff = malloc(sizeof(uint32_t) * lc->nsym, M_LINKER, M_WAITOK)) == NULL) + return (ENOMEM); + + *lc->ctfoffp = ctfoff; + + for (i = 0; i < lc->nsym; i++, ctfoff++, symp++) { + if (symp->st_name == 0 || symp->st_shndx == SHN_UNDEF) { + *ctfoff = 0xffffffff; + continue; + } + + if (symp->st_name < lc->strcnt) + name = lc->strtab + symp->st_name; + else + name = "(?)"; + + switch (ELF_ST_TYPE(symp->st_info)) { + case STT_OBJECT: + if (objtoff >= hp->cth_funcoff || + (symp->st_shndx == SHN_ABS && symp->st_value == 0)) { + *ctfoff = 0xffffffff; + break; + } + + *ctfoff = objtoff; + objtoff += sizeof (ushort_t); + break; + + case STT_FUNC: + if (funcoff >= hp->cth_typeoff) { + *ctfoff = 0xffffffff; + break; + } + + *ctfoff = funcoff; + + info = *((const ushort_t *)(ctfdata + funcoff)); + vlen = CTF_INFO_VLEN(info); + + /* + * If we encounter a zero pad at the end, just skip it. + * Otherwise skip over the function and its return type + * (+2) and the argument list (vlen). + */ + if (CTF_INFO_KIND(info) == CTF_K_UNKNOWN && vlen == 0) + funcoff += sizeof (ushort_t); /* skip pad */ + else + funcoff += sizeof (ushort_t) * (vlen + 2); + break; + + default: + *ctfoff = 0xffffffff; + break; + } + } + + return (0); +} + +static ssize_t +fbt_get_ctt_size(uint8_t version, const ctf_type_t *tp, ssize_t *sizep, + ssize_t *incrementp) +{ + ssize_t size, increment; + + if (version > CTF_VERSION_1 && + tp->ctt_size == CTF_LSIZE_SENT) { + size = CTF_TYPE_LSIZE(tp); + increment = sizeof (ctf_type_t); + } else { + size = tp->ctt_size; + increment = sizeof (ctf_stype_t); + } + + if (sizep) + *sizep = size; + if (incrementp) + *incrementp = increment; + + return (size); +} + +static int +fbt_typoff_init(linker_ctf_t *lc) +{ + const ctf_header_t *hp = (const ctf_header_t *) lc->ctftab; + const ctf_type_t *tbuf; + const ctf_type_t *tend; + const ctf_type_t *tp; + const uint8_t *ctfdata = lc->ctftab + sizeof(ctf_header_t); + int ctf_typemax = 0; + uint32_t *xp; + ulong_t pop[CTF_K_MAX + 1] = { 0 }; + + + /* Sanity check. */ + if (hp->cth_magic != CTF_MAGIC) + return (EINVAL); + + tbuf = (const ctf_type_t *) (ctfdata + hp->cth_typeoff); + tend = (const ctf_type_t *) (ctfdata + hp->cth_stroff); + + int child = hp->cth_parname != 0; + + /* + * We make two passes through the entire type section. In this first + * pass, we count the number of each type and the total number of types. + */ + for (tp = tbuf; tp < tend; ctf_typemax++) { + ushort_t kind = CTF_INFO_KIND(tp->ctt_info); + ulong_t vlen = CTF_INFO_VLEN(tp->ctt_info); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Tue Mar 19 13:14:07 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 7B8B15B9; Tue, 19 Mar 2013 13:14:07 +0000 (UTC) (envelope-from andre@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 6D65C1F9; Tue, 19 Mar 2013 13:14:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2JDE7NR094071; Tue, 19 Mar 2013 13:14:07 GMT (envelope-from andre@svn.freebsd.org) Received: (from andre@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2JDE6CL094068; Tue, 19 Mar 2013 13:14:06 GMT (envelope-from andre@svn.freebsd.org) Message-Id: <201303191314.r2JDE6CL094068@svn.freebsd.org> From: Andre Oppermann Date: Tue, 19 Mar 2013 13:14:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248503 - user/andre/tcp-ao/sys/netinet X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 13:14:07 -0000 Author: andre Date: Tue Mar 19 13:14:06 2013 New Revision: 248503 URL: http://svnweb.freebsd.org/changeset/base/248503 Log: After careful evaluation decide for the setsockopt() method to TCP-AO key management. A description can be found in the comments to tcp_ao.h. The IPSEC key interface is only partially suited for use by TCP-AO. The concepts used by TCP-AO and IPSEC are very different. Requiring the IPSEC dependency for TCP-AO hinders deployment and considerably complicates the implementation and creates unnecessary inter-dependencies. The setsockopt() method to set TCP-AO keys is straight forward for the user/application and in implementation. It puts everything together at the socket the configuration applies to. Add netinet/tcp_ao.h to hold the TCP-AO specific structures. Parts of it may be move to netinet/tcp.h after the implementation has stabilized. Sponsored by: Juniper Networks Added: user/andre/tcp-ao/sys/netinet/tcp_ao.h Modified: user/andre/tcp-ao/sys/netinet/tcp.h user/andre/tcp-ao/sys/netinet/tcp_ao.c Modified: user/andre/tcp-ao/sys/netinet/tcp.h ============================================================================== --- user/andre/tcp-ao/sys/netinet/tcp.h Tue Mar 19 13:13:26 2013 (r248502) +++ user/andre/tcp-ao/sys/netinet/tcp.h Tue Mar 19 13:14:06 2013 (r248503) @@ -162,6 +162,7 @@ struct tcphdr { #define TCP_NOPUSH 4 /* don't push last block of write */ #define TCP_NOOPT 8 /* don't use TCP options */ #define TCP_MD5SIG 16 /* use MD5 digests (RFC2385) */ +#define TCP_AO 17 /* configure TCP-AO digests (RFC5925) */ #define TCP_INFO 32 /* retrieve tcp_info structure */ #define TCP_CONGESTION 64 /* get/set congestion control algorithm */ #define TCP_KEEPINIT 128 /* N, time to establish connection */ Modified: user/andre/tcp-ao/sys/netinet/tcp_ao.c ============================================================================== --- user/andre/tcp-ao/sys/netinet/tcp_ao.c Tue Mar 19 13:13:26 2013 (r248502) +++ user/andre/tcp-ao/sys/netinet/tcp_ao.c Tue Mar 19 13:14:06 2013 (r248503) @@ -45,7 +45,8 @@ * Discussion: * the key management can be done in two ways: via the ipsec key interface * or through the setsockopt() api. Analyse which one is better to handle - * in the kernel and for userspace applications. + * in the kernel and for userspace applications. The setsockopt() API is + * the winner and will be used. * * legacy tcp-md5 can be brought and integrated into the tcp-ao framework. */ Added: user/andre/tcp-ao/sys/netinet/tcp_ao.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/andre/tcp-ao/sys/netinet/tcp_ao.h Tue Mar 19 13:14:06 2013 (r248503) @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2013 Juniper Networks + * All rights reserved. + * + * Written by Andre Oppermann + * + * 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. + * + */ + +/* + * TCP-AO key interface through socket options. + * + * To set one or more keys for one or more peers: + * setsockopt(so, IPPROTO_TCP, TCP_AO, tcp_ao_sopt, sizeof(*tcp_ao_sopt)); + * + * An arbitrary number of keys can be specified on an unconnected or listen + * socket. The keys can be added, changed or removed at any time. Once an + * application has installed at least one key, TCP-AO is enabled on that + * socket for the specified peer. + * + * A listen socket searches for a matching key when it receives a SYN. + * After the 3WHS is completed a socket is created for the new connection. + * This socket inherits only the keys relevant to this peer address. + * + * On a connect all keys except those belonging to that peer are removed. + * + * If a key that is changed that is in active use, packet loss may result. + * + * Keys are not shared between sockets. Adding and removing keys has to be + * done on each socket where the peer address applies. This is not much + * overhead to the application and greatly simplifies the kernel implementation. + * + * Since applications tend to pass the key string unmodified it may be better + * to specify the socket interface to be in base64 instead of an array of + * uint8_t. That would allow a human readable string to represent more bit + * variance per byte. + * + * Configured keys on a socket can be retrieved as follows: + * getsockopt(so, IPPROTO_TCP, TCP_AO, tcp_ao_sopt, sizeof(*tcp_ao_sopt)); + * + * All configured peers and key indexs are returned in the supplied vector. + * If the vector is too small the result is truncated. The number of keys + * is returned in tao_keycnt. No actual keys are returned or exposed. + * + * This interface may continue to evolve as the implementation matures and + * handling experience is gained. These structs should be moved to tcp.h + * once stable. + */ + +/* + * TCP-AO key interface struct passed to setsockopt(). + */ +struct tcp_ao_sopt { + int tao_flags; /* flags for this operation */ + int tao_keycnt; /* number of keys in vector */ + struct tcp_ao_key *tao_keyv; /* pointer to key vector */ +}; + +/* + * Flags for the tao_flags field. + */ +#define TAO_SOPT_REPLACE 0x00000001 /* replace full set */ + +/* + * Per peer structures referenced from tcp_ao_sopt. + * The commands normally apply to a particular keyidx and peer combination. + */ +struct tcp_ao_key { + uint8_t taok_cmd; /* command, add, remove key */ + uint8_t taok_flags; /* flags for key */ + uint8_t taok_algo; /* MAC algorithm */ + uint8_t taok_keyidx; /* key index per peer */ + int taok_keylen; /* length of key */ + uint8_t *taok_key; /* key string */ + struct sockaddr *taok_peer; /* this key applies to ... */ +}; + +/* + * Commands for the taok_cmd field. + */ +#define TAOK_CMD_ADD 1 /* add or replace key */ +#define TAOK_CMD_DELETE 2 /* delete key keyidx|peer */ +#define TAOK_CMD_DELETEALL 3 /* delete all idx for peer */ + +/* + * Flags for the taok_flags field. + */ +#define TAOK_FLAGS_ACTIVE 0x01 /* active key index for SYN */ + +/* + * MAC and KDF pairs for keys. + */ +#define TAOK_ALGO_MD5SIG 1 /* legacy compatibility */ +#define TAOK_ALGO_HMAC-SHA-1-96 2 /* RFC5926, Section 2.2 */ +#define TAOK_ALGO_AES-128-CMAC-96 3 /* RFC5926, Section 2.2 */ + From owner-svn-src-user@FreeBSD.ORG Tue Mar 19 15:27:29 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id CB3E61D2; Tue, 19 Mar 2013 15:27:29 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B258BEAF; Tue, 19 Mar 2013 15:27:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2JFRTlB036345; Tue, 19 Mar 2013 15:27:29 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2JFRTG8036344; Tue, 19 Mar 2013 15:27:29 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <201303191527.r2JFRTG8036344@svn.freebsd.org> From: Dmitry Chagin Date: Tue, 19 Mar 2013 15:27:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248523 - user/dchagin/lemul/sys/sys X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 15:27:29 -0000 Author: dchagin Date: Tue Mar 19 15:27:29 2013 New Revision: 248523 URL: http://svnweb.freebsd.org/changeset/base/248523 Log: Return the p_emuldata as it is used by svr4. Modified: user/dchagin/lemul/sys/sys/proc.h Modified: user/dchagin/lemul/sys/sys/proc.h ============================================================================== --- user/dchagin/lemul/sys/sys/proc.h Tue Mar 19 15:09:32 2013 (r248522) +++ user/dchagin/lemul/sys/sys/proc.h Tue Mar 19 15:27:29 2013 (r248523) @@ -575,7 +575,7 @@ struct proc { u_short p_acflag; /* (c) Accounting flags. */ struct proc *p_peers; /* (r) */ struct proc *p_leader; /* (b) */ - void *p_unused; /* */ + void *p_emuldata; /* (c) Emulator state data. */ struct label *p_label; /* (*) Proc (not subject) MAC label. */ struct p_sched *p_sched; /* (*) Scheduler-specific data. */ STAILQ_HEAD(, ktr_request) p_ktr; /* (o) KTR event queue. */ From owner-svn-src-user@FreeBSD.ORG Tue Mar 19 16:33:49 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 5FFA4923; Tue, 19 Mar 2013 16:33:49 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 33DF434F; Tue, 19 Mar 2013 16:33:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2JGXnMR057643; Tue, 19 Mar 2013 16:33:49 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2JGXhtX057604; Tue, 19 Mar 2013 16:33:43 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303191633.r2JGXhtX057604@svn.freebsd.org> From: Attilio Rao Date: Tue, 19 Mar 2013 16:33:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248524 - in user/attilio/vmcontention: contrib/binutils/gas/config crypto/openssh etc/mtree etc/rc.d lib/libc/sys lib/libvmmapi sbin/geom/class/eli sbin/ldconfig share/examples share/e... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 16:33:49 -0000 Author: attilio Date: Tue Mar 19 16:33:43 2013 New Revision: 248524 URL: http://svnweb.freebsd.org/changeset/base/248524 Log: MFC Added: user/attilio/vmcontention/share/examples/bhyve/ - copied from r248523, head/share/examples/bhyve/ Modified: user/attilio/vmcontention/contrib/binutils/gas/config/tc-arm.c user/attilio/vmcontention/crypto/openssh/sshd_config user/attilio/vmcontention/etc/mtree/BSD.usr.dist user/attilio/vmcontention/etc/rc.d/savecore user/attilio/vmcontention/lib/libc/sys/mlock.2 user/attilio/vmcontention/lib/libvmmapi/vmmapi.c user/attilio/vmcontention/lib/libvmmapi/vmmapi.h user/attilio/vmcontention/sbin/geom/class/eli/geom_eli.c user/attilio/vmcontention/sbin/ldconfig/ldconfig.8 user/attilio/vmcontention/share/examples/Makefile user/attilio/vmcontention/share/man/man4/iwn.4 user/attilio/vmcontention/share/man/man4/psm.4 user/attilio/vmcontention/sys/amd64/amd64/pmap.c user/attilio/vmcontention/sys/arm/arm/pmap-v6.c user/attilio/vmcontention/sys/arm/arm/pmap.c user/attilio/vmcontention/sys/arm/include/bus.h user/attilio/vmcontention/sys/cam/ata/ata_da.c user/attilio/vmcontention/sys/cam/cam_ccb.h user/attilio/vmcontention/sys/cam/cam_periph.c user/attilio/vmcontention/sys/cam/scsi/scsi_all.c user/attilio/vmcontention/sys/cam/scsi/scsi_all.h user/attilio/vmcontention/sys/cam/scsi/scsi_cd.c user/attilio/vmcontention/sys/cam/scsi/scsi_da.c user/attilio/vmcontention/sys/cddl/compat/opensolaris/sys/sig.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/attilio/vmcontention/sys/dev/ahci/ahci.c user/attilio/vmcontention/sys/dev/atkbdc/psm.c user/attilio/vmcontention/sys/dev/fdt/fdt_common.c user/attilio/vmcontention/sys/dev/fdt/fdtbus.c user/attilio/vmcontention/sys/dev/fdt/simplebus.c user/attilio/vmcontention/sys/dev/md/md.c user/attilio/vmcontention/sys/dev/puc/pucdata.c user/attilio/vmcontention/sys/dev/siis/siis.c user/attilio/vmcontention/sys/dev/usb/serial/u3g.c user/attilio/vmcontention/sys/dev/usb/usbdevs user/attilio/vmcontention/sys/fs/nfsclient/nfs_clbio.c user/attilio/vmcontention/sys/geom/geom.h user/attilio/vmcontention/sys/geom/geom_disk.c user/attilio/vmcontention/sys/geom/geom_disk.h user/attilio/vmcontention/sys/geom/geom_io.c user/attilio/vmcontention/sys/geom/geom_vfs.c user/attilio/vmcontention/sys/geom/part/g_part.c user/attilio/vmcontention/sys/i386/i386/pmap.c user/attilio/vmcontention/sys/i386/xen/pmap.c user/attilio/vmcontention/sys/ia64/ia64/pmap.c user/attilio/vmcontention/sys/kern/kern_physio.c user/attilio/vmcontention/sys/kern/kern_sig.c user/attilio/vmcontention/sys/kern/kern_synch.c user/attilio/vmcontention/sys/kern/subr_bus_dma.c user/attilio/vmcontention/sys/kern/subr_param.c user/attilio/vmcontention/sys/kern/subr_sleepqueue.c user/attilio/vmcontention/sys/kern/subr_trap.c user/attilio/vmcontention/sys/kern/vfs_aio.c user/attilio/vmcontention/sys/kern/vfs_bio.c user/attilio/vmcontention/sys/kern/vfs_cluster.c user/attilio/vmcontention/sys/mips/mips/pmap.c user/attilio/vmcontention/sys/modules/dtrace/fbt/Makefile user/attilio/vmcontention/sys/net/pfil.c user/attilio/vmcontention/sys/net/pfil.h user/attilio/vmcontention/sys/netpfil/ipfw/ip_fw2.c user/attilio/vmcontention/sys/netpfil/ipfw/ip_fw_private.h user/attilio/vmcontention/sys/nfsclient/nfs_bio.c user/attilio/vmcontention/sys/powerpc/aim/mmu_oea64.c user/attilio/vmcontention/sys/powerpc/powerpc/pmap_dispatch.c user/attilio/vmcontention/sys/sparc64/sparc64/pmap.c user/attilio/vmcontention/sys/sys/bio.h user/attilio/vmcontention/sys/sys/buf.h user/attilio/vmcontention/sys/sys/mount.h user/attilio/vmcontention/sys/sys/mouse.h user/attilio/vmcontention/sys/sys/param.h user/attilio/vmcontention/sys/sys/signalvar.h user/attilio/vmcontention/sys/sys/sleepqueue.h user/attilio/vmcontention/sys/sys/systm.h user/attilio/vmcontention/sys/ufs/ffs/ffs_alloc.c user/attilio/vmcontention/sys/ufs/ffs/ffs_balloc.c user/attilio/vmcontention/sys/ufs/ffs/ffs_rawread.c user/attilio/vmcontention/sys/ufs/ffs/ffs_vfsops.c user/attilio/vmcontention/sys/ufs/ffs/ffs_vnops.c user/attilio/vmcontention/sys/ufs/ufs/ufs_extern.h user/attilio/vmcontention/sys/vm/swap_pager.c user/attilio/vmcontention/sys/vm/swap_pager.h user/attilio/vmcontention/sys/vm/vm.h user/attilio/vmcontention/sys/vm/vm_init.c user/attilio/vmcontention/sys/vm/vm_kern.c user/attilio/vmcontention/sys/vm/vnode_pager.c user/attilio/vmcontention/usr.sbin/bhyve/acpi.c user/attilio/vmcontention/usr.sbin/bhyve/bhyverun.c user/attilio/vmcontention/usr.sbin/bhyve/bhyverun.h user/attilio/vmcontention/usr.sbin/bhyve/mptbl.c user/attilio/vmcontention/usr.sbin/bhyve/pci_emul.c user/attilio/vmcontention/usr.sbin/bhyve/pci_virtio_block.c user/attilio/vmcontention/usr.sbin/bhyve/pci_virtio_net.c user/attilio/vmcontention/usr.sbin/bhyvectl/bhyvectl.c user/attilio/vmcontention/usr.sbin/bhyveload/bhyveload.8 user/attilio/vmcontention/usr.sbin/bhyveload/bhyveload.c user/attilio/vmcontention/usr.sbin/moused/moused.c Directory Properties: user/attilio/vmcontention/ (props changed) user/attilio/vmcontention/contrib/binutils/ (props changed) user/attilio/vmcontention/crypto/openssh/ (props changed) user/attilio/vmcontention/lib/libc/ (props changed) user/attilio/vmcontention/lib/libvmmapi/ (props changed) user/attilio/vmcontention/sbin/ (props changed) user/attilio/vmcontention/share/man/man4/ (props changed) user/attilio/vmcontention/sys/ (props changed) user/attilio/vmcontention/sys/cddl/contrib/opensolaris/ (props changed) user/attilio/vmcontention/usr.sbin/bhyve/ (props changed) user/attilio/vmcontention/usr.sbin/bhyvectl/ (props changed) user/attilio/vmcontention/usr.sbin/bhyveload/ (props changed) Modified: user/attilio/vmcontention/contrib/binutils/gas/config/tc-arm.c ============================================================================== --- user/attilio/vmcontention/contrib/binutils/gas/config/tc-arm.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/contrib/binutils/gas/config/tc-arm.c Tue Mar 19 16:33:43 2013 (r248524) @@ -7097,7 +7097,7 @@ do_vfp_nsyn_msr (void) return SUCCESS; } -static int +static void do_vfp_vmrs (void) { int rt; @@ -7106,21 +7106,21 @@ do_vfp_vmrs (void) if (inst.operands[0].reg > 14) { inst.error = BAD_PC; - return FAIL; + return; } /* If the destination is r13 and not in ARM mode then unprefictable */ if (thumb_mode && inst.operands[0].reg == REG_SP) { inst.error = BAD_SP; - return FAIL; + return; } /* If the destination is APSR_nzcv */ if (inst.operands[0].isvec && inst.operands[1].reg != 1) { inst.error = BAD_VMRS; - return FAIL; + return; } if (inst.operands[0].isvec) @@ -7131,32 +7131,28 @@ do_vfp_vmrs (void) /* Or in the registers to use */ inst.instruction |= rt << 12; inst.instruction |= inst.operands[1].reg << 16; - - return SUCCESS; } -static int +static void do_vfp_vmsr (void) { /* The destination register can be r0-r14 or APSR_nzcv */ if (inst.operands[1].reg > 14) { inst.error = BAD_PC; - return FAIL; + return; } /* If the destination is r13 and not in ARM mode then unprefictable */ if (thumb_mode && inst.operands[0].reg == REG_SP) { inst.error = BAD_SP; - return FAIL; + return; } /* Or in the registers to use */ inst.instruction |= inst.operands[1].reg << 12; inst.instruction |= inst.operands[0].reg << 16; - - return SUCCESS; } static void Modified: user/attilio/vmcontention/crypto/openssh/sshd_config ============================================================================== --- user/attilio/vmcontention/crypto/openssh/sshd_config Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/crypto/openssh/sshd_config Tue Mar 19 16:33:43 2013 (r248524) @@ -50,8 +50,7 @@ #PubkeyAuthentication yes # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 -# but this is overridden so installations will only check .ssh/authorized_keys -AuthorizedKeysFile .ssh/authorized_keys +#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 #AuthorizedPrincipalsFile none Modified: user/attilio/vmcontention/etc/mtree/BSD.usr.dist ============================================================================== --- user/attilio/vmcontention/etc/mtree/BSD.usr.dist Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/etc/mtree/BSD.usr.dist Tue Mar 19 16:33:43 2013 (r248524) @@ -217,6 +217,8 @@ .. atf .. + bhyve + .. bootforth .. csh Modified: user/attilio/vmcontention/etc/rc.d/savecore ============================================================================== --- user/attilio/vmcontention/etc/rc.d/savecore Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/etc/rc.d/savecore Tue Mar 19 16:33:43 2013 (r248524) @@ -23,6 +23,9 @@ savecore_prestart() return 1 ;; [Aa][Uu][Tt][Oo]) + if [ ! -L /dev/dumpdev ]; then + return 1 + fi dumpdev=`/bin/realpath /dev/dumpdev` ;; esac Modified: user/attilio/vmcontention/lib/libc/sys/mlock.2 ============================================================================== --- user/attilio/vmcontention/lib/libc/sys/mlock.2 Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/lib/libc/sys/mlock.2 Tue Mar 19 16:33:43 2013 (r248524) @@ -28,7 +28,7 @@ .\" @(#)mlock.2 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd December 25, 2012 +.Dd March 18, 2013 .Dt MLOCK 2 .Os .Sh NAME @@ -138,7 +138,12 @@ is set to 0 and the caller is not the su .It Bq Er EINVAL The address given is not page aligned or the length is negative. .It Bq Er ENOMEM -Some portion of the indicated address range is not allocated. +Some or all of the address range specified by the addr and len +arguments does not correspond to valid mapped pages in the address space +of the process. +.It Bq Er ENOMEM +Locking the pages mapped by the specified range would exceed a limit on +the amount of memory that the process may lock. .El .Sh "SEE ALSO" .Xr fork 2 , Modified: user/attilio/vmcontention/lib/libvmmapi/vmmapi.c ============================================================================== --- user/attilio/vmcontention/lib/libvmmapi/vmmapi.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/lib/libvmmapi/vmmapi.c Tue Mar 19 16:33:43 2013 (r248524) @@ -48,8 +48,16 @@ __FBSDID("$FreeBSD$"); #include "vmmapi.h" +#define GB (1024 * 1024 * 1024UL) + struct vmctx { int fd; + uint32_t lowmem_limit; + enum vm_mmap_style vms; + size_t lowmem; + char *lowmem_addr; + size_t highmem; + char *highmem_addr; char *name; }; @@ -90,6 +98,7 @@ vm_open(const char *name) assert(vm != NULL); vm->fd = -1; + vm->lowmem_limit = 3 * GB; vm->name = (char *)(vm + 1); strcpy(vm->name, name); @@ -151,8 +160,22 @@ vm_get_memory_seg(struct vmctx *ctx, vm_ return (error); } -int -vm_setup_memory(struct vmctx *ctx, vm_paddr_t gpa, size_t len, char **mapaddr) +uint32_t +vm_get_lowmem_limit(struct vmctx *ctx) +{ + + return (ctx->lowmem_limit); +} + +void +vm_set_lowmem_limit(struct vmctx *ctx, uint32_t limit) +{ + + ctx->lowmem_limit = limit; +} + +static int +setup_memory_segment(struct vmctx *ctx, vm_paddr_t gpa, size_t len, char **addr) { int error; struct vm_memory_segment seg; @@ -165,20 +188,69 @@ vm_setup_memory(struct vmctx *ctx, vm_pa seg.gpa = gpa; seg.len = len; error = ioctl(ctx->fd, VM_MAP_MEMORY, &seg); - if (error == 0 && mapaddr != NULL) { - *mapaddr = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, + if (error == 0 && addr != NULL) { + *addr = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, ctx->fd, gpa); } return (error); } -char * -vm_map_memory(struct vmctx *ctx, vm_paddr_t gpa, size_t len) +int +vm_setup_memory(struct vmctx *ctx, size_t memsize, enum vm_mmap_style vms) +{ + char **addr; + int error; + + /* XXX VM_MMAP_SPARSE not implemented yet */ + assert(vms == VM_MMAP_NONE || vms == VM_MMAP_ALL); + ctx->vms = vms; + + /* + * If 'memsize' cannot fit entirely in the 'lowmem' segment then + * create another 'highmem' segment above 4GB for the remainder. + */ + if (memsize > ctx->lowmem_limit) { + ctx->lowmem = ctx->lowmem_limit; + ctx->highmem = memsize - ctx->lowmem; + } else { + ctx->lowmem = memsize; + ctx->highmem = 0; + } + + if (ctx->lowmem > 0) { + addr = (vms == VM_MMAP_ALL) ? &ctx->lowmem_addr : NULL; + error = setup_memory_segment(ctx, 0, ctx->lowmem, addr); + if (error) + return (error); + } + + if (ctx->highmem > 0) { + addr = (vms == VM_MMAP_ALL) ? &ctx->highmem_addr : NULL; + error = setup_memory_segment(ctx, 4*GB, ctx->highmem, addr); + if (error) + return (error); + } + + return (0); +} + +void * +vm_map_gpa(struct vmctx *ctx, vm_paddr_t gaddr, size_t len) { - /* Map 'len' bytes of memory at guest physical address 'gpa' */ - return ((char *)mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, - ctx->fd, gpa)); + /* XXX VM_MMAP_SPARSE not implemented yet */ + assert(ctx->vms == VM_MMAP_ALL); + + if (gaddr < ctx->lowmem && gaddr + len <= ctx->lowmem) + return ((void *)(ctx->lowmem_addr + gaddr)); + + if (gaddr >= 4*GB) { + gaddr -= 4*GB; + if (gaddr < ctx->highmem && gaddr + len <= ctx->highmem) + return ((void *)(ctx->highmem_addr + gaddr)); + } + + return (NULL); } int Modified: user/attilio/vmcontention/lib/libvmmapi/vmmapi.h ============================================================================== --- user/attilio/vmcontention/lib/libvmmapi/vmmapi.h Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/lib/libvmmapi/vmmapi.h Tue Mar 19 16:33:43 2013 (r248524) @@ -32,24 +32,26 @@ struct vmctx; enum x2apic_state; +/* + * Different styles of mapping the memory assigned to a VM into the address + * space of the controlling process. + */ +enum vm_mmap_style { + VM_MMAP_NONE, /* no mapping */ + VM_MMAP_ALL, /* fully and statically mapped */ + VM_MMAP_SPARSE, /* mappings created on-demand */ +}; + int vm_create(const char *name); struct vmctx *vm_open(const char *name); void vm_destroy(struct vmctx *ctx); size_t vmm_get_mem_total(void); size_t vmm_get_mem_free(void); int vm_get_memory_seg(struct vmctx *ctx, vm_paddr_t gpa, size_t *ret_len); -/* - * Create a memory segment of 'len' bytes in the guest physical address space - * at offset 'gpa'. - * - * If 'mapaddr' is not NULL then this region is mmap'ed into the address - * space of the calling process. If there is an mmap error then *mapaddr - * will be set to MAP_FAILED. - */ - -int vm_setup_memory(struct vmctx *ctx, vm_paddr_t gpa, size_t len, - char **mapaddr); -char * vm_map_memory(struct vmctx *ctx, vm_paddr_t gpa, size_t len); +int vm_setup_memory(struct vmctx *ctx, size_t len, enum vm_mmap_style s); +void *vm_map_gpa(struct vmctx *ctx, vm_paddr_t gaddr, size_t len); +uint32_t vm_get_lowmem_limit(struct vmctx *ctx); +void vm_set_lowmem_limit(struct vmctx *ctx, uint32_t limit); int vm_set_desc(struct vmctx *ctx, int vcpu, int reg, uint64_t base, uint32_t limit, uint32_t access); int vm_get_desc(struct vmctx *ctx, int vcpu, int reg, Modified: user/attilio/vmcontention/sbin/geom/class/eli/geom_eli.c ============================================================================== --- user/attilio/vmcontention/sbin/geom/class/eli/geom_eli.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sbin/geom/class/eli/geom_eli.c Tue Mar 19 16:33:43 2013 (r248524) @@ -259,6 +259,8 @@ struct g_command class_commands[] = { static int verbose = 0; +#define BUFSIZE 1024 + static int eli_protect(struct gctl_req *req) { @@ -344,7 +346,7 @@ static int eli_genkey_files(struct gctl_req *req, bool new, const char *type, struct hmac_ctx *ctxp, char *passbuf, size_t passbufsize) { - char *p, buf[MAXPHYS], argname[16]; + char *p, buf[BUFSIZE], argname[16]; const char *file; int error, fd, i; ssize_t done; @@ -431,7 +433,7 @@ eli_genkey_passphrase_prompt(struct gctl } if (new) { - char tmpbuf[BUFSIZ]; + char tmpbuf[BUFSIZE]; p = readpassphrase("Reenter new passphrase: ", tmpbuf, sizeof(tmpbuf), @@ -460,7 +462,7 @@ static int eli_genkey_passphrase(struct gctl_req *req, struct g_eli_metadata *md, bool new, struct hmac_ctx *ctxp) { - char passbuf[MAXPHYS]; + char passbuf[BUFSIZE]; bool nopassphrase; int nfiles; Modified: user/attilio/vmcontention/sbin/ldconfig/ldconfig.8 ============================================================================== --- user/attilio/vmcontention/sbin/ldconfig/ldconfig.8 Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sbin/ldconfig/ldconfig.8 Tue Mar 19 16:33:43 2013 (r248524) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 11, 2005 +.Dd March 19, 2013 .Dt LDCONFIG 8 .Os .Sh NAME @@ -162,21 +162,6 @@ In addition to building a set of hints for quick lookup, it also serves to specify the trusted collection of directories from which shared objects can be safely loaded. -.Sh ENVIRONMENT -.Bl -tag -width OBJFORMATxxx -compact -.It Ev OBJFORMAT -Overrides -.Pa /etc/objformat -(see below) to determine whether -.Fl aout -or -.Fl elf -is the default. -If set, its value should be either -.Ql aout -or -.Ql elf . -.El .Sh FILES .Bl -tag -width /var/run/ld-elf.so.hintsxxx -compact .It Pa /var/run/ld.so.hints @@ -196,17 +181,6 @@ invocations with Conventional configuration files containing directory names for invocations with .Fl 32 . -.It Pa /etc/objformat -Determines whether -.Fl aout -or -.Fl elf -is the default. -If present, it must consist of a single line -containing either -.Ql OBJFORMAT=aout -or -.Ql OBJFORMAT=elf . .El .Sh SEE ALSO .Xr ld 1 , Modified: user/attilio/vmcontention/share/examples/Makefile ============================================================================== --- user/attilio/vmcontention/share/examples/Makefile Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/share/examples/Makefile Tue Mar 19 16:33:43 2013 (r248524) @@ -7,6 +7,7 @@ LDIRS= BSD_daemon \ FreeBSD_version \ IPv6 \ + bhyve \ bootforth \ csh \ cvsup \ @@ -42,6 +43,7 @@ XFILES= BSD_daemon/FreeBSD.pfa \ FreeBSD_version/Makefile \ FreeBSD_version/README \ IPv6/USAGE \ + bhyve/vmrun.sh \ bootforth/README \ bootforth/boot.4th \ bootforth/frames.4th \ Modified: user/attilio/vmcontention/share/man/man4/iwn.4 ============================================================================== --- user/attilio/vmcontention/share/man/man4/iwn.4 Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/share/man/man4/iwn.4 Tue Mar 19 16:33:43 2013 (r248524) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 27, 2012 +.Dd March 19, 2013 .Dt IWN 4 .Os .Sh NAME @@ -100,8 +100,7 @@ driver provides support for: .Pp .Nm supports -.Cm station , -.Cm adhoc , +.Cm station and .Cm monitor mode operation. Modified: user/attilio/vmcontention/share/man/man4/psm.4 ============================================================================== --- user/attilio/vmcontention/share/man/man4/psm.4 Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/share/man/man4/psm.4 Tue Mar 19 16:33:43 2013 (r248524) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 27, 2012 +.Dd March 18, 2013 .Dt PSM 4 .Os .Sh NAME @@ -339,6 +339,12 @@ at boot-time. This will enable .Nm to handle packets from guest devices (sticks) and extra buttons. +Similarly, extended support for IBM/Lenovo TrackPoint can be enabled +by setting +.Va hw.psm.trackpoint_support +to +.Em 1 +at boot-time. .Pp Tap and drag gestures can be disabled by setting .Va hw.psm.tap_enabled @@ -832,8 +838,8 @@ In contrast, some pad products, e.g.\& s and Interlink VersaPad, treat the tapping action as fourth button events. .Pp -It is reported that ALPS GlidePoint, Synaptics Touchpad, and -Interlink VersaPad require +It is reported that ALPS GlidePoint, Synaptics Touchpad, IBM/Lenovo +TrackPoint, and Interlink VersaPad require .Em INITAFTERSUSPEND flag in order to recover from suspended state. This flag is automatically set when one of these devices is detected by the Modified: user/attilio/vmcontention/sys/amd64/amd64/pmap.c ============================================================================== --- user/attilio/vmcontention/sys/amd64/amd64/pmap.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/amd64/amd64/pmap.c Tue Mar 19 16:33:43 2013 (r248524) @@ -4235,6 +4235,8 @@ pmap_copy_page(vm_page_t msrc, vm_page_t pagecopy((void *)src, (void *)dst); } +int unmapped_buf_allowed = 1; + void pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], vm_offset_t b_offset, int xfersize) Modified: user/attilio/vmcontention/sys/arm/arm/pmap-v6.c ============================================================================== --- user/attilio/vmcontention/sys/arm/arm/pmap-v6.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/arm/arm/pmap-v6.c Tue Mar 19 16:33:43 2013 (r248524) @@ -3312,6 +3312,8 @@ pmap_copy_page_generic(vm_paddr_t src, v mtx_unlock(&cmtx); } +int unmapped_buf_allowed = 1; + void pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], vm_offset_t b_offset, int xfersize) Modified: user/attilio/vmcontention/sys/arm/arm/pmap.c ============================================================================== --- user/attilio/vmcontention/sys/arm/arm/pmap.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/arm/arm/pmap.c Tue Mar 19 16:33:43 2013 (r248524) @@ -4428,6 +4428,8 @@ pmap_copy_page(vm_page_t src, vm_page_t #endif } +int unmapped_buf_allowed = 1; + void pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], vm_offset_t b_offset, int xfersize) Modified: user/attilio/vmcontention/sys/arm/include/bus.h ============================================================================== --- user/attilio/vmcontention/sys/arm/include/bus.h Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/arm/include/bus.h Tue Mar 19 16:33:43 2013 (r248524) @@ -731,6 +731,6 @@ bs_c_8_proto(f); * designed. It also serves to mark the locations needing that fix. */ #define BUS_SPACE_PHYSADDR(res, offs) \ - (vtophys(rman_get_start(res)+(offs))) + ((u_int)(rman_get_start(res)+(offs))) #endif /* _MACHINE_BUS_H_ */ Modified: user/attilio/vmcontention/sys/cam/ata/ata_da.c ============================================================================== --- user/attilio/vmcontention/sys/cam/ata/ata_da.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cam/ata/ata_da.c Tue Mar 19 16:33:43 2013 (r248524) @@ -1167,6 +1167,8 @@ adaregister(struct cam_periph *periph, v ((softc->flags & ADA_FLAG_CAN_CFA) && !(softc->flags & ADA_FLAG_CAN_48BIT))) softc->disk->d_flags |= DISKFLAG_CANDELETE; + if ((cpi.hba_misc & PIM_UNMAPPED) != 0) + softc->disk->d_flags |= DISKFLAG_UNMAPPED_BIO; strlcpy(softc->disk->d_descr, cgd->ident_data.model, MIN(sizeof(softc->disk->d_descr), sizeof(cgd->ident_data.model))); strlcpy(softc->disk->d_ident, cgd->ident_data.serial, @@ -1431,13 +1433,19 @@ adastart(struct cam_periph *periph, unio return; } #endif + KASSERT((bp->bio_flags & BIO_UNMAPPED) == 0 || + round_page(bp->bio_bcount + bp->bio_ma_offset) / + PAGE_SIZE == bp->bio_ma_n, + ("Short bio %p", bp)); cam_fill_ataio(ataio, ada_retry_count, adadone, - bp->bio_cmd == BIO_READ ? - CAM_DIR_IN : CAM_DIR_OUT, + (bp->bio_cmd == BIO_READ ? CAM_DIR_IN : + CAM_DIR_OUT) | ((bp->bio_flags & BIO_UNMAPPED) + != 0 ? CAM_DATA_BIO : 0), tag_code, - bp->bio_data, + ((bp->bio_flags & BIO_UNMAPPED) != 0) ? (void *)bp : + bp->bio_data, bp->bio_bcount, ada_default_timeout*1000); Modified: user/attilio/vmcontention/sys/cam/cam_ccb.h ============================================================================== --- user/attilio/vmcontention/sys/cam/cam_ccb.h Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cam/cam_ccb.h Tue Mar 19 16:33:43 2013 (r248524) @@ -42,7 +42,6 @@ #include #include - /* General allocation length definitions for CCB structures */ #define IOCDBLEN CAM_MAX_CDBLEN /* Space for CDB bytes/pointer */ #define VUHBALEN 14 /* Vendor Unique HBA length */ @@ -100,7 +99,7 @@ typedef enum { CAM_MSGB_VALID = 0x10000000,/* Message buffer valid */ CAM_STATUS_VALID = 0x20000000,/* Status buffer valid */ CAM_DATAB_VALID = 0x40000000,/* Data buffer valid */ - + /* Host target Mode flags */ CAM_SEND_SENSE = 0x08000000,/* Send sense data with status */ CAM_TERM_IO = 0x10000000,/* Terminate I/O Message sup. */ @@ -572,7 +571,8 @@ typedef enum { PIM_NOINITIATOR = 0x20, /* Initiator role not supported. */ PIM_NOBUSRESET = 0x10, /* User has disabled initial BUS RESET */ PIM_NO_6_BYTE = 0x08, /* Do not send 6-byte commands */ - PIM_SEQSCAN = 0x04 /* Do bus scans sequentially, not in parallel */ + PIM_SEQSCAN = 0x04, /* Do bus scans sequentially, not in parallel */ + PIM_UNMAPPED = 0x02, } pi_miscflag; /* Path Inquiry CCB */ Modified: user/attilio/vmcontention/sys/cam/cam_periph.c ============================================================================== --- user/attilio/vmcontention/sys/cam/cam_periph.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cam/cam_periph.c Tue Mar 19 16:33:43 2013 (r248524) @@ -734,6 +734,8 @@ cam_periph_mapmem(union ccb *ccb, struct case XPT_CONT_TARGET_IO: if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) return(0); + KASSERT((ccb->ccb_h.flags & CAM_DATA_MASK) == CAM_DATA_VADDR, + ("not VADDR for SCSI_IO %p %x\n", ccb, ccb->ccb_h.flags)); data_ptrs[0] = &ccb->csio.data_ptr; lengths[0] = ccb->csio.dxfer_len; @@ -743,6 +745,8 @@ cam_periph_mapmem(union ccb *ccb, struct case XPT_ATA_IO: if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) return(0); + KASSERT((ccb->ccb_h.flags & CAM_DATA_MASK) == CAM_DATA_VADDR, + ("not VADDR for ATA_IO %p %x\n", ccb, ccb->ccb_h.flags)); data_ptrs[0] = &ccb->ataio.data_ptr; lengths[0] = ccb->ataio.dxfer_len; @@ -846,7 +850,7 @@ cam_periph_mapmem(union ccb *ccb, struct * into a larger area of VM, or if userland races against * vmapbuf() after the useracc() check. */ - if (vmapbuf(mapinfo->bp[i]) < 0) { + if (vmapbuf(mapinfo->bp[i], 1) < 0) { for (j = 0; j < i; ++j) { *data_ptrs[j] = mapinfo->bp[j]->b_saveaddr; vunmapbuf(mapinfo->bp[j]); Modified: user/attilio/vmcontention/sys/cam/scsi/scsi_all.c ============================================================================== --- user/attilio/vmcontention/sys/cam/scsi/scsi_all.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cam/scsi/scsi_all.c Tue Mar 19 16:33:43 2013 (r248524) @@ -5679,7 +5679,11 @@ scsi_read_write(struct ccb_scsiio *csio, u_int8_t *data_ptr, u_int32_t dxfer_len, u_int8_t sense_len, u_int32_t timeout) { + int read; u_int8_t cdb_len; + + read = (readop & SCSI_RW_DIRMASK) == SCSI_RW_READ; + /* * Use the smallest possible command to perform the operation * as some legacy hardware does not support the 10 byte commands. @@ -5696,7 +5700,7 @@ scsi_read_write(struct ccb_scsiio *csio, struct scsi_rw_6 *scsi_cmd; scsi_cmd = (struct scsi_rw_6 *)&csio->cdb_io.cdb_bytes; - scsi_cmd->opcode = readop ? READ_6 : WRITE_6; + scsi_cmd->opcode = read ? READ_6 : WRITE_6; scsi_ulto3b(lba, scsi_cmd->addr); scsi_cmd->length = block_count & 0xff; scsi_cmd->control = 0; @@ -5715,7 +5719,7 @@ scsi_read_write(struct ccb_scsiio *csio, struct scsi_rw_10 *scsi_cmd; scsi_cmd = (struct scsi_rw_10 *)&csio->cdb_io.cdb_bytes; - scsi_cmd->opcode = readop ? READ_10 : WRITE_10; + scsi_cmd->opcode = read ? READ_10 : WRITE_10; scsi_cmd->byte2 = byte2; scsi_ulto4b(lba, scsi_cmd->addr); scsi_cmd->reserved = 0; @@ -5738,7 +5742,7 @@ scsi_read_write(struct ccb_scsiio *csio, struct scsi_rw_12 *scsi_cmd; scsi_cmd = (struct scsi_rw_12 *)&csio->cdb_io.cdb_bytes; - scsi_cmd->opcode = readop ? READ_12 : WRITE_12; + scsi_cmd->opcode = read ? READ_12 : WRITE_12; scsi_cmd->byte2 = byte2; scsi_ulto4b(lba, scsi_cmd->addr); scsi_cmd->reserved = 0; @@ -5760,7 +5764,7 @@ scsi_read_write(struct ccb_scsiio *csio, struct scsi_rw_16 *scsi_cmd; scsi_cmd = (struct scsi_rw_16 *)&csio->cdb_io.cdb_bytes; - scsi_cmd->opcode = readop ? READ_16 : WRITE_16; + scsi_cmd->opcode = read ? READ_16 : WRITE_16; scsi_cmd->byte2 = byte2; scsi_u64to8b(lba, scsi_cmd->addr); scsi_cmd->reserved = 0; @@ -5771,7 +5775,8 @@ scsi_read_write(struct ccb_scsiio *csio, cam_fill_csio(csio, retries, cbfcnp, - /*flags*/readop ? CAM_DIR_IN : CAM_DIR_OUT, + (read ? CAM_DIR_IN : CAM_DIR_OUT) | + ((readop & SCSI_RW_BIO) != 0 ? CAM_DATA_BIO : 0), tag_action, data_ptr, dxfer_len, Modified: user/attilio/vmcontention/sys/cam/scsi/scsi_all.h ============================================================================== --- user/attilio/vmcontention/sys/cam/scsi/scsi_all.h Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cam/scsi/scsi_all.h Tue Mar 19 16:33:43 2013 (r248524) @@ -2354,6 +2354,10 @@ void scsi_write_buffer(struct ccb_scsiio uint8_t *data_ptr, uint32_t param_list_length, uint8_t sense_len, uint32_t timeout); +#define SCSI_RW_READ 0x0001 +#define SCSI_RW_WRITE 0x0002 +#define SCSI_RW_DIRMASK 0x0003 +#define SCSI_RW_BIO 0x1000 void scsi_read_write(struct ccb_scsiio *csio, u_int32_t retries, void (*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int readop, u_int8_t byte2, Modified: user/attilio/vmcontention/sys/cam/scsi/scsi_cd.c ============================================================================== --- user/attilio/vmcontention/sys/cam/scsi/scsi_cd.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cam/scsi/scsi_cd.c Tue Mar 19 16:33:43 2013 (r248524) @@ -1575,7 +1575,8 @@ cdstart(struct cam_periph *periph, union /*retries*/ cd_retry_count, /* cbfcnp */ cddone, MSG_SIMPLE_Q_TAG, - /* read */bp->bio_cmd == BIO_READ, + /* read */bp->bio_cmd == BIO_READ ? + SCSI_RW_READ : SCSI_RW_WRITE, /* byte2 */ 0, /* minimum_cmd_size */ 10, /* lba */ bp->bio_offset / Modified: user/attilio/vmcontention/sys/cam/scsi/scsi_da.c ============================================================================== --- user/attilio/vmcontention/sys/cam/scsi/scsi_da.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cam/scsi/scsi_da.c Tue Mar 19 16:33:43 2013 (r248524) @@ -1184,7 +1184,7 @@ dadump(void *arg, void *virtual, vm_offs /*retries*/0, dadone, MSG_ORDERED_Q_TAG, - /*read*/FALSE, + /*read*/SCSI_RW_WRITE, /*byte2*/0, /*minimum_cmd_size*/ softc->minimum_cmd_size, offset / secsize, @@ -1757,6 +1757,8 @@ daregister(struct cam_periph *periph, vo softc->disk->d_flags = 0; if ((softc->quirks & DA_Q_NO_SYNC_CACHE) == 0) softc->disk->d_flags |= DISKFLAG_CANFLUSHCACHE; + if ((cpi.hba_misc & PIM_UNMAPPED) != 0) + softc->disk->d_flags |= DISKFLAG_UNMAPPED_BIO; cam_strvis(softc->disk->d_descr, cgd->inq_data.vendor, sizeof(cgd->inq_data.vendor), sizeof(softc->disk->d_descr)); strlcat(softc->disk->d_descr, " ", sizeof(softc->disk->d_descr)); @@ -1985,14 +1987,18 @@ dastart(struct cam_periph *periph, union /*retries*/da_retry_count, /*cbfcnp*/dadone, /*tag_action*/tag_code, - /*read_op*/bp->bio_cmd - == BIO_READ, + /*read_op*/(bp->bio_cmd == BIO_READ ? + SCSI_RW_READ : SCSI_RW_WRITE) | + ((bp->bio_flags & BIO_UNMAPPED) != 0 ? + SCSI_RW_BIO : 0), /*byte2*/0, softc->minimum_cmd_size, /*lba*/bp->bio_pblkno, /*block_count*/bp->bio_bcount / softc->params.secsize, - /*data_ptr*/ bp->bio_data, + /*data_ptr*/ (bp->bio_flags & + BIO_UNMAPPED) != 0 ? (void *)bp : + bp->bio_data, /*dxfer_len*/ bp->bio_bcount, /*sense_len*/SSD_FULL_SIZE, da_default_timeout * 1000); Modified: user/attilio/vmcontention/sys/cddl/compat/opensolaris/sys/sig.h ============================================================================== --- user/attilio/vmcontention/sys/cddl/compat/opensolaris/sys/sig.h Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cddl/compat/opensolaris/sys/sig.h Tue Mar 19 16:33:43 2013 (r248524) @@ -55,7 +55,7 @@ issig(int why) p = td->td_proc; PROC_LOCK(p); mtx_lock(&p->p_sigacts->ps_mtx); - sig = cursig(td, SIG_STOP_ALLOWED); + sig = cursig(td); mtx_unlock(&p->p_sigacts->ps_mtx); PROC_UNLOCK(p); if (sig != 0) Modified: user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c ============================================================================== --- user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c Tue Mar 19 16:33:43 2013 (r248524) @@ -919,7 +919,8 @@ dsl_check_snap_cb(const char *name, void char *dsname; dsname = kmem_asprintf("%s@%s", name, da->snapname); - VERIFY(nvlist_add_boolean(da->nvl, dsname) == 0); + fnvlist_add_boolean(da->nvl, dsname); + kmem_free(dsname, strlen(dsname) + 1); return (0); } Modified: user/attilio/vmcontention/sys/dev/ahci/ahci.c ============================================================================== --- user/attilio/vmcontention/sys/dev/ahci/ahci.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/dev/ahci/ahci.c Tue Mar 19 16:33:43 2013 (r248524) @@ -2903,7 +2903,7 @@ ahciaction(struct cam_sim *sim, union cc if (ch->caps & AHCI_CAP_SPM) cpi->hba_inquiry |= PI_SATAPM; cpi->target_sprt = 0; - cpi->hba_misc = PIM_SEQSCAN; + cpi->hba_misc = PIM_SEQSCAN | PIM_UNMAPPED; cpi->hba_eng_cnt = 0; if (ch->caps & AHCI_CAP_SPM) cpi->max_target = 15; Modified: user/attilio/vmcontention/sys/dev/atkbdc/psm.c ============================================================================== --- user/attilio/vmcontention/sys/dev/atkbdc/psm.c Tue Mar 19 15:27:29 2013 (r248523) +++ user/attilio/vmcontention/sys/dev/atkbdc/psm.c Tue Mar 19 16:33:43 2013 (r248524) @@ -260,6 +260,38 @@ typedef struct synapticsaction { int in_vscroll; } synapticsaction_t; +enum { + TRACKPOINT_SYSCTL_SENSITIVITY, + TRACKPOINT_SYSCTL_NEGATIVE_INERTIA, + TRACKPOINT_SYSCTL_UPPER_PLATEAU, + TRACKPOINT_SYSCTL_BACKUP_RANGE, + TRACKPOINT_SYSCTL_DRAG_HYSTERESIS, + TRACKPOINT_SYSCTL_MINIMUM_DRAG, + TRACKPOINT_SYSCTL_UP_THRESHOLD, + TRACKPOINT_SYSCTL_THRESHOLD, + TRACKPOINT_SYSCTL_JENKS_CURVATURE, + TRACKPOINT_SYSCTL_Z_TIME, + TRACKPOINT_SYSCTL_PRESS_TO_SELECT, + TRACKPOINT_SYSCTL_SKIP_BACKUPS +}; + +typedef struct trackpointinfo { + struct sysctl_ctx_list sysctl_ctx; + struct sysctl_oid *sysctl_tree; + int sensitivity; + int inertia; + int uplateau; + int reach; + int draghys; + int mindrag; + int upthresh; + int threshold; + int jenks; + int ztime; + int pts; + int skipback; +} trackpointinfo_t; + /* driver control block */ struct psm_softc { /* Driver status information */ int unit; @@ -274,6 +306,8 @@ struct psm_softc { /* Driver status inf synapticshw_t synhw; /* Synaptics hardware information */ synapticsinfo_t syninfo; /* Synaptics configuration */ synapticsaction_t synaction; /* Synaptics action context */ + int tphw; /* TrackPoint hardware information */ + trackpointinfo_t tpinfo; /* TrackPoint configuration */ mousemode_t mode; /* operation mode */ mousemode_t dflt_mode; /* default operation mode */ mousestatus_t status; /* accumulated mouse movement */ @@ -344,6 +378,9 @@ TUNABLE_INT("hw.psm.tap_enabled", &tap_e static int synaptics_support = 0; TUNABLE_INT("hw.psm.synaptics_support", &synaptics_support); +static int trackpoint_support = 0; +TUNABLE_INT("hw.psm.trackpoint_support", &trackpoint_support); + static int verbose = PSM_DEBUG; TUNABLE_INT("debug.psm.loglevel", &verbose); @@ -432,6 +469,7 @@ static probefunc_t enable_4dmouse; static probefunc_t enable_4dplus; static probefunc_t enable_mmanplus; static probefunc_t enable_synaptics; +static probefunc_t enable_trackpoint; static probefunc_t enable_versapad; static struct { @@ -466,6 +504,8 @@ static struct { 0x80, MOUSE_PS2_PACKETSIZE, enable_kmouse }, { MOUSE_MODEL_VERSAPAD, /* Interlink electronics VersaPad */ 0xe8, MOUSE_PS2VERSA_PACKETSIZE, enable_versapad }, + { MOUSE_MODEL_TRACKPOINT, /* IBM/Lenovo TrackPoint */ + 0xc0, MOUSE_PS2_PACKETSIZE, enable_trackpoint }, { MOUSE_MODEL_GENERIC, 0xc0, MOUSE_PS2_PACKETSIZE, NULL }, }; @@ -707,6 +747,7 @@ model_name(int model) { MOUSE_MODEL_4D, "4D Mouse" }, { MOUSE_MODEL_4DPLUS, "4D+ Mouse" }, { MOUSE_MODEL_SYNAPTICS, "Synaptics Touchpad" }, + { MOUSE_MODEL_TRACKPOINT, "IBM/Lenovo TrackPoint" }, { MOUSE_MODEL_GENERIC, "Generic PS/2 mouse" }, { MOUSE_MODEL_UNKNOWN, "Unknown" }, }; @@ -1452,7 +1493,7 @@ psmattach(device_t dev) sc->config |= PSM_CONFIG_INITAFTERSUSPEND; break; default: - if (sc->synhw.infoMajor >= 4) + if (sc->synhw.infoMajor >= 4 || sc->tphw > 0) sc->config |= PSM_CONFIG_INITAFTERSUSPEND; break; } @@ -3442,6 +3483,7 @@ psmsoftintr(void *arg) goto next; break; + case MOUSE_MODEL_TRACKPOINT: case MOUSE_MODEL_GENERIC: default: break; @@ -4474,6 +4516,233 @@ enable_synaptics(KBDC kbdc, struct psm_s return (TRUE); } +/* IBM/Lenovo TrackPoint */ +static int +trackpoint_command(KBDC kbdc, int cmd, int loc, int val) +{ + const int seq[] = { 0xe2, cmd, loc, val }; + int i; + + for (i = 0; i < nitems(seq); i++) + if (send_aux_command(kbdc, seq[i]) != PSM_ACK) + return (EIO); + return (0); +} + +#define PSM_TPINFO(x) offsetof(struct psm_softc, tpinfo.x) +#define TPMASK 0 +#define TPLOC 1 +#define TPINFO 2 + +static int +trackpoint_sysctl(SYSCTL_HANDLER_ARGS) +{ + static const int data[][3] = { + { 0x00, 0x4a, PSM_TPINFO(sensitivity) }, + { 0x00, 0x4d, PSM_TPINFO(inertia) }, + { 0x00, 0x60, PSM_TPINFO(uplateau) }, + { 0x00, 0x57, PSM_TPINFO(reach) }, + { 0x00, 0x58, PSM_TPINFO(draghys) }, + { 0x00, 0x59, PSM_TPINFO(mindrag) }, + { 0x00, 0x5a, PSM_TPINFO(upthresh) }, + { 0x00, 0x5c, PSM_TPINFO(threshold) }, + { 0x00, 0x5d, PSM_TPINFO(jenks) }, + { 0x00, 0x5e, PSM_TPINFO(ztime) }, + { 0x01, 0x2c, PSM_TPINFO(pts) }, + { 0x08, 0x2d, PSM_TPINFO(skipback) } + }; + struct psm_softc *sc; + int error, newval, *oldvalp; + const int *tp; + + if (arg1 == NULL || arg2 < 0 || arg2 >= nitems(data)) + return (EINVAL); + sc = arg1; + tp = data[arg2]; + oldvalp = (int *)((intptr_t)sc + tp[TPINFO]); + newval = *oldvalp; + error = sysctl_handle_int(oidp, &newval, 0, req); + if (error != 0) + return (error); + if (newval == *oldvalp) + return (0); + if (newval < 0 || newval > (tp[TPMASK] == 0 ? 255 : 1)) + return (EINVAL); + error = trackpoint_command(sc->kbdc, tp[TPMASK] == 0 ? 0x81 : 0x47, + tp[TPLOC], tp[TPMASK] == 0 ? newval : tp[TPMASK]); + if (error != 0) + return (error); + *oldvalp = newval; + + return (0); +} + +static void +trackpoint_sysctl_create_tree(struct psm_softc *sc) +{ + + if (sc->tpinfo.sysctl_tree != NULL) + return; + + /* Attach extra trackpoint sysctl nodes under hw.psm.trackpoint */ + sysctl_ctx_init(&sc->tpinfo.sysctl_ctx); + sc->tpinfo.sysctl_tree = SYSCTL_ADD_NODE(&sc->tpinfo.sysctl_ctx, + SYSCTL_STATIC_CHILDREN(_hw_psm), OID_AUTO, "trackpoint", CTLFLAG_RD, + 0, "IBM/Lenovo TrackPoint"); + + /* hw.psm.trackpoint.sensitivity */ + sc->tpinfo.sensitivity = 0x64; + SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, + SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, + "sensitivity", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, + sc, TRACKPOINT_SYSCTL_SENSITIVITY, + trackpoint_sysctl, "I", + "Sensitivity"); + + /* hw.psm.trackpoint.negative_inertia */ + sc->tpinfo.inertia = 0x06; + SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, + SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, + "negative_inertia", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, + sc, TRACKPOINT_SYSCTL_NEGATIVE_INERTIA, + trackpoint_sysctl, "I", + "Negative inertia factor"); + + /* hw.psm.trackpoint.upper_plateau */ + sc->tpinfo.uplateau = 0x61; + SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, + SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, + "upper_plateau", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, + sc, TRACKPOINT_SYSCTL_UPPER_PLATEAU, + trackpoint_sysctl, "I", + "Transfer function upper plateau speed"); + + /* hw.psm.trackpoint.backup_range */ + sc->tpinfo.reach = 0x0a; + SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, + SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, + "backup_range", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, + sc, TRACKPOINT_SYSCTL_BACKUP_RANGE, + trackpoint_sysctl, "I", + "Backup range"); + + /* hw.psm.trackpoint.drag_hysteresis */ + sc->tpinfo.draghys = 0xff; + SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, + SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, + "drag_hysteresis", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, + sc, TRACKPOINT_SYSCTL_DRAG_HYSTERESIS, + trackpoint_sysctl, "I", + "Drag hysteresis"); + + /* hw.psm.trackpoint.minimum_drag */ + sc->tpinfo.mindrag = 0x14; + SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, + SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, + "minimum_drag", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, + sc, TRACKPOINT_SYSCTL_MINIMUM_DRAG, + trackpoint_sysctl, "I", + "Minimum drag"); + + /* hw.psm.trackpoint.up_threshold */ + sc->tpinfo.upthresh = 0xff; + SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, + SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, + "up_threshold", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Tue Mar 19 17:13:51 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B616B460; Tue, 19 Mar 2013 17:13:51 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A586473A; Tue, 19 Mar 2013 17:13:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2JHDpKd070008; Tue, 19 Mar 2013 17:13:51 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2JHDmLK069983; Tue, 19 Mar 2013 17:13:48 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303191713.r2JHDmLK069983@svn.freebsd.org> From: Attilio Rao Date: Tue, 19 Mar 2013 17:13:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248526 - in user/attilio/vmobj-readlock: . bin/cp bin/ls bin/mkdir bin/mv bin/ps bin/rm bin/rmdir bin/sh cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 17:13:51 -0000 Author: attilio Date: Tue Mar 19 17:13:47 2013 New Revision: 248526 URL: http://svnweb.freebsd.org/changeset/base/248526 Log: Merge from vmcontention. Added: user/attilio/vmobj-readlock/contrib/unvis/ - copied from r248525, user/attilio/vmcontention/contrib/unvis/ user/attilio/vmobj-readlock/contrib/vis/ - copied from r248525, user/attilio/vmcontention/contrib/vis/ user/attilio/vmobj-readlock/share/examples/bhyve/ - copied from r248525, user/attilio/vmcontention/share/examples/bhyve/ user/attilio/vmobj-readlock/sys/cddl/dev/fbt/fbt_powerpc.c - copied unchanged from r248525, user/attilio/vmcontention/sys/cddl/dev/fbt/fbt_powerpc.c user/attilio/vmobj-readlock/sys/libkern/arm/aeabi_unwind.c - copied unchanged from r248525, user/attilio/vmcontention/sys/libkern/arm/aeabi_unwind.c user/attilio/vmobj-readlock/sys/libkern/arm/memset.S - copied unchanged from r248525, user/attilio/vmcontention/sys/libkern/arm/memset.S user/attilio/vmobj-readlock/tools/regression/bin/sh/builtins/wait6.0 - copied unchanged from r248525, user/attilio/vmcontention/tools/regression/bin/sh/builtins/wait6.0 user/attilio/vmobj-readlock/tools/regression/bin/sh/builtins/wait7.0 - copied unchanged from r248525, user/attilio/vmcontention/tools/regression/bin/sh/builtins/wait7.0 Deleted: user/attilio/vmobj-readlock/share/man/man4/vinum.4 user/attilio/vmobj-readlock/usr.bin/unvis/unvis.1 user/attilio/vmobj-readlock/usr.bin/unvis/unvis.c user/attilio/vmobj-readlock/usr.bin/vis/extern.h user/attilio/vmobj-readlock/usr.bin/vis/foldit.c user/attilio/vmobj-readlock/usr.bin/vis/vis.1 user/attilio/vmobj-readlock/usr.bin/vis/vis.c Modified: user/attilio/vmobj-readlock/ObsoleteFiles.inc user/attilio/vmobj-readlock/bin/cp/cp.1 user/attilio/vmobj-readlock/bin/ls/ls.1 user/attilio/vmobj-readlock/bin/mkdir/mkdir.1 user/attilio/vmobj-readlock/bin/mv/mv.1 user/attilio/vmobj-readlock/bin/ps/ps.1 user/attilio/vmobj-readlock/bin/rm/rm.1 user/attilio/vmobj-readlock/bin/rmdir/rmdir.1 user/attilio/vmobj-readlock/bin/sh/jobs.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool.8 user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/attilio/vmobj-readlock/contrib/binutils/gas/config/tc-arm.c user/attilio/vmobj-readlock/contrib/libc-vis/unvis.3 user/attilio/vmobj-readlock/contrib/libc-vis/unvis.c user/attilio/vmobj-readlock/contrib/libc-vis/vis.3 user/attilio/vmobj-readlock/contrib/libc-vis/vis.c user/attilio/vmobj-readlock/contrib/libc-vis/vis.h user/attilio/vmobj-readlock/contrib/tzdata/africa user/attilio/vmobj-readlock/contrib/tzdata/antarctica user/attilio/vmobj-readlock/contrib/tzdata/asia user/attilio/vmobj-readlock/contrib/tzdata/australasia user/attilio/vmobj-readlock/contrib/tzdata/europe user/attilio/vmobj-readlock/contrib/tzdata/northamerica user/attilio/vmobj-readlock/contrib/tzdata/southamerica user/attilio/vmobj-readlock/contrib/tzdata/zone.tab user/attilio/vmobj-readlock/crypto/openssh/sshd_config user/attilio/vmobj-readlock/etc/mtree/BSD.usr.dist user/attilio/vmobj-readlock/etc/rc.d/savecore user/attilio/vmobj-readlock/gnu/lib/libgcc/Makefile user/attilio/vmobj-readlock/lib/libc/gen/Makefile.inc user/attilio/vmobj-readlock/lib/libc/gen/Symbol.map user/attilio/vmobj-readlock/lib/libc/stdlib/realpath.3 user/attilio/vmobj-readlock/lib/libc/sys/chflags.2 user/attilio/vmobj-readlock/lib/libc/sys/mlock.2 user/attilio/vmobj-readlock/lib/libipsec/test-policy.c user/attilio/vmobj-readlock/lib/libutil/pidfile.c user/attilio/vmobj-readlock/lib/libvmmapi/vmmapi.c user/attilio/vmobj-readlock/lib/libvmmapi/vmmapi.h user/attilio/vmobj-readlock/sbin/ccdconfig/ccdconfig.8 user/attilio/vmobj-readlock/sbin/ffsinfo/ffsinfo.8 user/attilio/vmobj-readlock/sbin/geom/class/concat/gconcat.8 user/attilio/vmobj-readlock/sbin/geom/class/eli/geom_eli.c user/attilio/vmobj-readlock/sbin/geom/class/mirror/gmirror.8 user/attilio/vmobj-readlock/sbin/geom/class/raid/graid.8 user/attilio/vmobj-readlock/sbin/geom/class/stripe/gstripe.8 user/attilio/vmobj-readlock/sbin/gvinum/gvinum.8 user/attilio/vmobj-readlock/sbin/hastctl/hastctl.8 user/attilio/vmobj-readlock/sbin/hastctl/hastctl.c user/attilio/vmobj-readlock/sbin/hastd/hastd.8 user/attilio/vmobj-readlock/sbin/hastd/secondary.c user/attilio/vmobj-readlock/sbin/hastd/subr.c user/attilio/vmobj-readlock/sbin/ldconfig/ldconfig.8 user/attilio/vmobj-readlock/sbin/recoverdisk/recoverdisk.c user/attilio/vmobj-readlock/share/examples/Makefile user/attilio/vmobj-readlock/share/man/man4/Makefile user/attilio/vmobj-readlock/share/man/man4/ccd.4 user/attilio/vmobj-readlock/share/man/man4/geom.4 user/attilio/vmobj-readlock/share/man/man4/iwn.4 user/attilio/vmobj-readlock/share/man/man4/psm.4 user/attilio/vmobj-readlock/share/man/man4/udp.4 user/attilio/vmobj-readlock/share/misc/bsd-family-tree user/attilio/vmobj-readlock/sys/amd64/amd64/pmap.c user/attilio/vmobj-readlock/sys/amd64/vmm/intel/vmx.c user/attilio/vmobj-readlock/sys/amd64/vmm/vmm.c user/attilio/vmobj-readlock/sys/amd64/vmm/vmm_stat.c user/attilio/vmobj-readlock/sys/amd64/vmm/vmm_stat.h user/attilio/vmobj-readlock/sys/arm/arm/bcopy_page.S user/attilio/vmobj-readlock/sys/arm/arm/bcopyinout.S user/attilio/vmobj-readlock/sys/arm/arm/bcopyinout_xscale.S user/attilio/vmobj-readlock/sys/arm/arm/blockio.S user/attilio/vmobj-readlock/sys/arm/arm/bus_space_asm_generic.S user/attilio/vmobj-readlock/sys/arm/arm/copystr.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_arm10.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_arm11.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_arm11x6.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_arm7tdmi.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_arm8.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_arm9.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_armv4.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_armv5.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_armv5_ec.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_armv6.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_armv7.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_fa526.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_ixp12x0.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_pj4b.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_sa1.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_sa11x0.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_sheeva.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_xscale.S user/attilio/vmobj-readlock/sys/arm/arm/cpufunc_asm_xscale_c3.S user/attilio/vmobj-readlock/sys/arm/arm/db_trace.c user/attilio/vmobj-readlock/sys/arm/arm/elf_trampoline.c user/attilio/vmobj-readlock/sys/arm/arm/exception.S user/attilio/vmobj-readlock/sys/arm/arm/fiq_subr.S user/attilio/vmobj-readlock/sys/arm/arm/fusu.S user/attilio/vmobj-readlock/sys/arm/arm/in_cksum_arm.S user/attilio/vmobj-readlock/sys/arm/arm/irq_dispatch.S user/attilio/vmobj-readlock/sys/arm/arm/locore.S user/attilio/vmobj-readlock/sys/arm/arm/pmap-v6.c user/attilio/vmobj-readlock/sys/arm/arm/pmap.c user/attilio/vmobj-readlock/sys/arm/arm/setcpsr.S user/attilio/vmobj-readlock/sys/arm/arm/support.S user/attilio/vmobj-readlock/sys/arm/arm/swtch.S user/attilio/vmobj-readlock/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c user/attilio/vmobj-readlock/sys/arm/include/asm.h user/attilio/vmobj-readlock/sys/arm/include/bus.h user/attilio/vmobj-readlock/sys/arm/include/pmap.h user/attilio/vmobj-readlock/sys/arm/ti/cpsw/if_cpsw.c user/attilio/vmobj-readlock/sys/arm/ti/ti_mmchs.c user/attilio/vmobj-readlock/sys/cam/ata/ata_da.c user/attilio/vmobj-readlock/sys/cam/cam_ccb.h user/attilio/vmobj-readlock/sys/cam/cam_periph.c user/attilio/vmobj-readlock/sys/cam/scsi/scsi_all.c user/attilio/vmobj-readlock/sys/cam/scsi/scsi_all.h user/attilio/vmobj-readlock/sys/cam/scsi/scsi_cd.c user/attilio/vmobj-readlock/sys/cam/scsi/scsi_da.c user/attilio/vmobj-readlock/sys/cddl/compat/opensolaris/sys/sig.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h user/attilio/vmobj-readlock/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S user/attilio/vmobj-readlock/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c user/attilio/vmobj-readlock/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c user/attilio/vmobj-readlock/sys/compat/ndis/kern_ndis.c user/attilio/vmobj-readlock/sys/conf/Makefile.arm user/attilio/vmobj-readlock/sys/conf/NOTES user/attilio/vmobj-readlock/sys/conf/files user/attilio/vmobj-readlock/sys/conf/files.arm user/attilio/vmobj-readlock/sys/dev/acpica/acpi_powerres.c user/attilio/vmobj-readlock/sys/dev/ahci/ahci.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_rx_edma.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_sysctl.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_tx.c user/attilio/vmobj-readlock/sys/dev/ath/if_athvar.h user/attilio/vmobj-readlock/sys/dev/atkbdc/psm.c user/attilio/vmobj-readlock/sys/dev/fdt/fdt_common.c user/attilio/vmobj-readlock/sys/dev/fdt/fdtbus.c user/attilio/vmobj-readlock/sys/dev/fdt/simplebus.c user/attilio/vmobj-readlock/sys/dev/md/md.c user/attilio/vmobj-readlock/sys/dev/puc/pucdata.c user/attilio/vmobj-readlock/sys/dev/siis/siis.c user/attilio/vmobj-readlock/sys/dev/sis/if_sis.c user/attilio/vmobj-readlock/sys/dev/sis/if_sisreg.h user/attilio/vmobj-readlock/sys/dev/sound/pcm/sndstat.c user/attilio/vmobj-readlock/sys/dev/usb/serial/u3g.c user/attilio/vmobj-readlock/sys/dev/usb/usbdevs user/attilio/vmobj-readlock/sys/dev/usb/wlan/if_run.c user/attilio/vmobj-readlock/sys/fs/cd9660/cd9660_vnops.c user/attilio/vmobj-readlock/sys/fs/ext2fs/ext2_balloc.c user/attilio/vmobj-readlock/sys/fs/ext2fs/ext2_vnops.c user/attilio/vmobj-readlock/sys/fs/msdosfs/msdosfs_vnops.c user/attilio/vmobj-readlock/sys/fs/nfsclient/nfs_clbio.c user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_vnops.c user/attilio/vmobj-readlock/sys/fs/udf/udf_vnops.c user/attilio/vmobj-readlock/sys/geom/gate/g_gate.c user/attilio/vmobj-readlock/sys/geom/geom.h user/attilio/vmobj-readlock/sys/geom/geom_disk.c user/attilio/vmobj-readlock/sys/geom/geom_disk.h user/attilio/vmobj-readlock/sys/geom/geom_io.c user/attilio/vmobj-readlock/sys/geom/geom_vfs.c user/attilio/vmobj-readlock/sys/geom/part/g_part.c user/attilio/vmobj-readlock/sys/i386/i386/pmap.c user/attilio/vmobj-readlock/sys/i386/xen/pmap.c user/attilio/vmobj-readlock/sys/ia64/ia64/pmap.c user/attilio/vmobj-readlock/sys/kern/capabilities.conf user/attilio/vmobj-readlock/sys/kern/kern_physio.c user/attilio/vmobj-readlock/sys/kern/kern_racct.c user/attilio/vmobj-readlock/sys/kern/kern_sig.c user/attilio/vmobj-readlock/sys/kern/kern_synch.c user/attilio/vmobj-readlock/sys/kern/subr_bus_dma.c user/attilio/vmobj-readlock/sys/kern/subr_param.c user/attilio/vmobj-readlock/sys/kern/subr_sleepqueue.c user/attilio/vmobj-readlock/sys/kern/subr_trap.c user/attilio/vmobj-readlock/sys/kern/uipc_mbuf.c user/attilio/vmobj-readlock/sys/kern/uipc_sockbuf.c user/attilio/vmobj-readlock/sys/kern/uipc_syscalls.c user/attilio/vmobj-readlock/sys/kern/vfs_aio.c user/attilio/vmobj-readlock/sys/kern/vfs_bio.c user/attilio/vmobj-readlock/sys/kern/vfs_cluster.c user/attilio/vmobj-readlock/sys/kern/vfs_syscalls.c user/attilio/vmobj-readlock/sys/kern/vfs_vnops.c user/attilio/vmobj-readlock/sys/libkern/arm/divsi3.S user/attilio/vmobj-readlock/sys/libkern/arm/ffs.S user/attilio/vmobj-readlock/sys/libkern/arm/ldivmod.S user/attilio/vmobj-readlock/sys/libkern/arm/memcpy.S user/attilio/vmobj-readlock/sys/mips/mips/pmap.c user/attilio/vmobj-readlock/sys/modules/dtrace/Makefile user/attilio/vmobj-readlock/sys/modules/dtrace/dtraceall/dtraceall.c user/attilio/vmobj-readlock/sys/modules/dtrace/fbt/Makefile user/attilio/vmobj-readlock/sys/modules/uart/Makefile user/attilio/vmobj-readlock/sys/net/bridgestp.c user/attilio/vmobj-readlock/sys/net/if_gre.c user/attilio/vmobj-readlock/sys/net/pfil.c user/attilio/vmobj-readlock/sys/net/pfil.h user/attilio/vmobj-readlock/sys/net/rtsock.c user/attilio/vmobj-readlock/sys/netinet/igmp.c user/attilio/vmobj-readlock/sys/netinet/ip_carp.c user/attilio/vmobj-readlock/sys/netinet/ip_input.c user/attilio/vmobj-readlock/sys/netinet/ip_mroute.c user/attilio/vmobj-readlock/sys/netinet/ip_options.c user/attilio/vmobj-readlock/sys/netinet/ip_output.c user/attilio/vmobj-readlock/sys/netinet/libalias/alias.c user/attilio/vmobj-readlock/sys/netinet/tcp_output.c user/attilio/vmobj-readlock/sys/netinet/tcp_subr.c user/attilio/vmobj-readlock/sys/netinet6/icmp6.c user/attilio/vmobj-readlock/sys/netinet6/ip6_input.c user/attilio/vmobj-readlock/sys/netinet6/ip6_mroute.c user/attilio/vmobj-readlock/sys/netinet6/ip6_output.c user/attilio/vmobj-readlock/sys/netinet6/mld6.c user/attilio/vmobj-readlock/sys/netinet6/nd6_nbr.c user/attilio/vmobj-readlock/sys/netipsec/key.c user/attilio/vmobj-readlock/sys/netpfil/ipfw/ip_fw2.c user/attilio/vmobj-readlock/sys/netpfil/ipfw/ip_fw_private.h user/attilio/vmobj-readlock/sys/netpfil/pf/pf.c user/attilio/vmobj-readlock/sys/nfs/nfs_common.c user/attilio/vmobj-readlock/sys/nfsclient/nfs_bio.c user/attilio/vmobj-readlock/sys/powerpc/aim/mmu_oea.c user/attilio/vmobj-readlock/sys/powerpc/aim/mmu_oea64.c user/attilio/vmobj-readlock/sys/powerpc/aim/trap.c user/attilio/vmobj-readlock/sys/powerpc/aim/trap_subr32.S user/attilio/vmobj-readlock/sys/powerpc/aim/trap_subr64.S user/attilio/vmobj-readlock/sys/powerpc/booke/pmap.c user/attilio/vmobj-readlock/sys/powerpc/powerpc/mmu_if.m user/attilio/vmobj-readlock/sys/powerpc/powerpc/pmap_dispatch.c user/attilio/vmobj-readlock/sys/sparc64/sparc64/pmap.c user/attilio/vmobj-readlock/sys/sys/bio.h user/attilio/vmobj-readlock/sys/sys/buf.h user/attilio/vmobj-readlock/sys/sys/mbuf.h user/attilio/vmobj-readlock/sys/sys/mount.h user/attilio/vmobj-readlock/sys/sys/mouse.h user/attilio/vmobj-readlock/sys/sys/param.h user/attilio/vmobj-readlock/sys/sys/signalvar.h user/attilio/vmobj-readlock/sys/sys/sleepqueue.h user/attilio/vmobj-readlock/sys/sys/systm.h user/attilio/vmobj-readlock/sys/sys/vnode.h user/attilio/vmobj-readlock/sys/ufs/ffs/ffs_alloc.c user/attilio/vmobj-readlock/sys/ufs/ffs/ffs_balloc.c user/attilio/vmobj-readlock/sys/ufs/ffs/ffs_rawread.c user/attilio/vmobj-readlock/sys/ufs/ffs/ffs_vfsops.c user/attilio/vmobj-readlock/sys/ufs/ffs/ffs_vnops.c user/attilio/vmobj-readlock/sys/ufs/ufs/ufs_extern.h user/attilio/vmobj-readlock/sys/ufs/ufs/ufs_vnops.c user/attilio/vmobj-readlock/sys/vm/_vm_radix.h user/attilio/vmobj-readlock/sys/vm/pmap.h user/attilio/vmobj-readlock/sys/vm/swap_pager.c user/attilio/vmobj-readlock/sys/vm/swap_pager.h user/attilio/vmobj-readlock/sys/vm/vm.h user/attilio/vmobj-readlock/sys/vm/vm_init.c user/attilio/vmobj-readlock/sys/vm/vm_kern.c user/attilio/vmobj-readlock/sys/vm/vm_page.c user/attilio/vmobj-readlock/sys/vm/vm_radix.c user/attilio/vmobj-readlock/sys/vm/vm_radix.h user/attilio/vmobj-readlock/sys/vm/vm_reserv.c user/attilio/vmobj-readlock/sys/vm/vnode_pager.c user/attilio/vmobj-readlock/sys/xdr/xdr_mbuf.c user/attilio/vmobj-readlock/tools/regression/pjdfstest/tests/misc.sh user/attilio/vmobj-readlock/tools/regression/security/cap_test/cap_test_capabilities.c user/attilio/vmobj-readlock/usr.bin/find/find.h user/attilio/vmobj-readlock/usr.bin/find/function.c user/attilio/vmobj-readlock/usr.bin/head/head.1 user/attilio/vmobj-readlock/usr.bin/renice/renice.8 user/attilio/vmobj-readlock/usr.bin/script/script.1 user/attilio/vmobj-readlock/usr.bin/tail/tail.1 user/attilio/vmobj-readlock/usr.bin/unvis/Makefile user/attilio/vmobj-readlock/usr.bin/vis/Makefile user/attilio/vmobj-readlock/usr.sbin/ac/ac.8 user/attilio/vmobj-readlock/usr.sbin/bhyve/acpi.c user/attilio/vmobj-readlock/usr.sbin/bhyve/bhyverun.c user/attilio/vmobj-readlock/usr.sbin/bhyve/bhyverun.h user/attilio/vmobj-readlock/usr.sbin/bhyve/mptbl.c user/attilio/vmobj-readlock/usr.sbin/bhyve/pci_emul.c user/attilio/vmobj-readlock/usr.sbin/bhyve/pci_virtio_block.c user/attilio/vmobj-readlock/usr.sbin/bhyve/pci_virtio_net.c user/attilio/vmobj-readlock/usr.sbin/bhyvectl/bhyvectl.c user/attilio/vmobj-readlock/usr.sbin/bhyveload/bhyveload.8 user/attilio/vmobj-readlock/usr.sbin/bhyveload/bhyveload.c user/attilio/vmobj-readlock/usr.sbin/moused/moused.c Directory Properties: user/attilio/vmobj-readlock/ (props changed) user/attilio/vmobj-readlock/cddl/contrib/opensolaris/ (props changed) user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/attilio/vmobj-readlock/contrib/binutils/ (props changed) user/attilio/vmobj-readlock/contrib/libc-vis/ (props changed) user/attilio/vmobj-readlock/contrib/tzdata/ (props changed) user/attilio/vmobj-readlock/crypto/openssh/ (props changed) user/attilio/vmobj-readlock/gnu/lib/ (props changed) user/attilio/vmobj-readlock/lib/libc/ (props changed) user/attilio/vmobj-readlock/lib/libutil/ (props changed) user/attilio/vmobj-readlock/lib/libvmmapi/ (props changed) user/attilio/vmobj-readlock/sbin/ (props changed) user/attilio/vmobj-readlock/share/man/man4/ (props changed) user/attilio/vmobj-readlock/sys/ (props changed) user/attilio/vmobj-readlock/sys/amd64/vmm/ (props changed) user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/ (props changed) user/attilio/vmobj-readlock/sys/conf/ (props changed) user/attilio/vmobj-readlock/usr.sbin/bhyve/ (props changed) user/attilio/vmobj-readlock/usr.sbin/bhyvectl/ (props changed) user/attilio/vmobj-readlock/usr.sbin/bhyveload/ (props changed) Modified: user/attilio/vmobj-readlock/ObsoleteFiles.inc ============================================================================== --- user/attilio/vmobj-readlock/ObsoleteFiles.inc Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/ObsoleteFiles.inc Tue Mar 19 17:13:47 2013 (r248526) @@ -38,6 +38,7 @@ # xargs -n1 | sort | uniq -d; # done +OLD_FILES+=usr/share/man/man4/vinum.4.gz # 20130311: Ports are no more available via cvsup OLD_FILES+=usr/share/examples/cvsup/ports-supfile OLD_FILES+=usr/share/examples/cvsup/refuse Modified: user/attilio/vmobj-readlock/bin/cp/cp.1 ============================================================================== --- user/attilio/vmobj-readlock/bin/cp/cp.1 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/bin/cp/cp.1 Tue Mar 19 17:13:47 2013 (r248526) @@ -32,7 +32,7 @@ .\" @(#)cp.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd September 4, 2012 +.Dd March 15, 2013 .Dt CP 1 .Os .Sh NAME @@ -251,6 +251,27 @@ signal, the current input and output fil will be written to the standard output. .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Make a copy of file +.Pa foo +named +.Pa bar : +.Pp +.Dl $ cp foo bar +.Pp +Copy a group of files to the +.Pa /tmp +directory: +.Pp +.Dl $ cp *.txt /tmp +.Pp +Copy the directory +.Pa junk +and all of its contents (including any subdirectories) to the +.Pa /tmp +directory: +.Pp +.Dl $ cp -R junk /tmp .Sh COMPATIBILITY Historic versions of the .Nm Modified: user/attilio/vmobj-readlock/bin/ls/ls.1 ============================================================================== --- user/attilio/vmobj-readlock/bin/ls/ls.1 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/bin/ls/ls.1 Tue Mar 19 17:13:47 2013 (r248526) @@ -32,7 +32,7 @@ .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 .\" $FreeBSD$ .\" -.Dd November 8, 2012 +.Dd March 15, 2013 .Dt LS 1 .Os .Sh NAME @@ -718,6 +718,24 @@ for more information. .El .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +List the contents of the current working directory in long format: +.Pp +.Dl $ ls -l +.Pp +In addition to listing the contents of the current working directory in +long format, show inode numbers, file flags (see +.Xr chflags 1 ) , +and suffix each filename with a symbol representing its file type: +.Pp +.Dl $ ls -lioF +.Pp +List the files in +.Pa /var/log , +sorting the output such that the mostly recently modified entries are +printed first: +.Pp +.Dl $ ls -lt /var/log .Sh COMPATIBILITY The group field is now automatically included in the long listing for files in order to be compatible with the Modified: user/attilio/vmobj-readlock/bin/mkdir/mkdir.1 ============================================================================== --- user/attilio/vmobj-readlock/bin/mkdir/mkdir.1 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/bin/mkdir/mkdir.1 Tue Mar 19 17:13:47 2013 (r248526) @@ -32,7 +32,7 @@ .\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94 .\" $FreeBSD$ .\" -.Dd January 25, 1994 +.Dd March 15, 2013 .Dt MKDIR 1 .Os .Sh NAME @@ -87,6 +87,23 @@ Be verbose when creating directories, li The user must have write permission in the parent directory. .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Create a directory named +.Pa foobar : +.Pp +.Dl $ mkdir foobar +.Pp +Create a directory named +.Pa foobar +and set its file mode to 700: +.Pp +.Dl $ mkdir -m 700 foobar +.Pp +Create a directory named +.Pa cow/horse/monkey , +creating any non-existent intermediate directories as necessary: +.Pp +.Dl $ mkdir -p cow/horse/monkey .Sh COMPATIBILITY The .Fl v Modified: user/attilio/vmobj-readlock/bin/mv/mv.1 ============================================================================== --- user/attilio/vmobj-readlock/bin/mv/mv.1 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/bin/mv/mv.1 Tue Mar 19 17:13:47 2013 (r248526) @@ -32,7 +32,7 @@ .\" @(#)mv.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd August 28, 2012 +.Dd March 15, 2013 .Dt MV 1 .Os .Sh NAME @@ -155,6 +155,16 @@ rm -rf source_file .Ed .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Rename file +.Pa foo +to +.Pa bar , +overwriting +.Pa bar +if it already exists: +.Pp +.Dl $ mv -f foo bar .Sh COMPATIBILITY The .Fl h , Modified: user/attilio/vmobj-readlock/bin/ps/ps.1 ============================================================================== --- user/attilio/vmobj-readlock/bin/ps/ps.1 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/bin/ps/ps.1 Tue Mar 19 17:13:47 2013 (r248526) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd February 7, 2013 +.Dd March 15, 2013 .Dt PS 1 .Os .Sh NAME @@ -689,6 +689,10 @@ attempts to automatically determine the .It Pa /boot/kernel/kernel default system namelist .El +.Sh EXAMPLES +Display information on all system processes: +.Pp +.Dl $ ps -auxw .Sh SEE ALSO .Xr kill 1 , .Xr pgrep 1 , Modified: user/attilio/vmobj-readlock/bin/rm/rm.1 ============================================================================== --- user/attilio/vmobj-readlock/bin/rm/rm.1 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/bin/rm/rm.1 Tue Mar 19 17:13:47 2013 (r248526) @@ -32,7 +32,7 @@ .\" @(#)rm.1 8.5 (Berkeley) 12/5/94 .\" $FreeBSD$ .\" -.Dd October 31, 2010 +.Dd March 15, 2013 .Dt RM 1 .Os .Sh NAME @@ -193,6 +193,19 @@ When is specified with .Fl f the file will be overwritten and removed even if it has hard links. +.Sh EXAMPLES +Recursively remove all files contained within the +.Pa foobar +directory hierarchy: +.Pp +.Dl $ rm -rf foobar +.Pp +Either of these commands will remove the file +.Pa -f : +.Bd -literal -offset indent +$ rm -- -f +$ rm ./-f +.Ed .Sh COMPATIBILITY The .Nm Modified: user/attilio/vmobj-readlock/bin/rmdir/rmdir.1 ============================================================================== --- user/attilio/vmobj-readlock/bin/rmdir/rmdir.1 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/bin/rmdir/rmdir.1 Tue Mar 19 17:13:47 2013 (r248526) @@ -32,7 +32,7 @@ .\" @(#)rmdir.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd March 21, 2004 +.Dd March 15, 2013 .Dt RMDIR 1 .Os .Sh NAME @@ -86,6 +86,18 @@ successfully. .It Li >0 An error occurred. .El +.Sh EXAMPLES +Remove the directory +.Pa foobar , +if it is empty: +.Pp +.Dl $ rmdir foobar +.Pp +Remove all directories up to and including +.Pa cow , +stopping at the first non-empty directory (if any): +.Pp +.Dl $ rmdir -p cow/horse/monkey .Sh SEE ALSO .Xr rm 1 .Sh STANDARDS Modified: user/attilio/vmobj-readlock/bin/sh/jobs.c ============================================================================== --- user/attilio/vmobj-readlock/bin/sh/jobs.c Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/bin/sh/jobs.c Tue Mar 19 17:13:47 2013 (r248526) @@ -458,14 +458,15 @@ freejob(struct job *jp) int -waitcmd(int argc, char **argv) +waitcmd(int argc __unused, char **argv __unused) { struct job *job; int status, retval; struct job *jp; - if (argc > 1) { - job = getjob(argv[1]); + nextopt(""); + if (*argptr != NULL) { + job = getjob(*argptr); } else { job = NULL; } Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zdb/zdb.c Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zdb/zdb.c Tue Mar 19 17:13:47 2013 (r248526) @@ -1225,6 +1225,7 @@ dump_bpobj(bpobj_t *bpo, char *name, int continue; } dump_bpobj(&subbpo, "subobj", indent + 1); + bpobj_close(&subbpo); } } else { (void) printf(" %*s: object %llu, %llu blkptrs, %s\n", Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Tue Mar 19 17:13:47 2013 (r248526) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 10, 2013 +.Dd March 1, 2013 .Dt ZFS 8 .Os .Sh NAME Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool.8 ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Tue Mar 19 17:13:47 2013 (r248526) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 15, 2012 +.Dd March 14, 2013 .Dt ZPOOL 8 .Os .Sh NAME @@ -1608,14 +1608,15 @@ is specified, the command exits after .Ar count reports are printed. .Pp -If a scrub or resilver is in progress, this command reports the percentage done -and the estimated time to completion. Both of these are only approximate, +If a scrub or resilver is in progress, this command reports the percentage +done and the estimated time to completion. Both of these are only approximate, because the amount of data in the pool and the other workloads on the system can change. .Bl -tag -width indent .It Fl x Only display status for pools that are exhibiting errors or are otherwise unavailable. +Warnings about pools not using the latest on-disk format will not be included. .It Fl v Displays verbose data error information, printing out a complete list of all data errors since the last complete pool scrub. Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Tue Mar 19 17:13:47 2013 (r248526) @@ -4031,7 +4031,10 @@ status_callback(zpool_handle_t *zhp, voi * If we were given 'zpool status -x', only report those pools with * problems. */ - if (reason == ZPOOL_STATUS_OK && cbp->cb_explain) { + if (cbp->cb_explain && + (reason == ZPOOL_STATUS_OK || + reason == ZPOOL_STATUS_VERSION_OLDER || + reason == ZPOOL_STATUS_FEAT_DISABLED)) { if (!cbp->cb_allpools) { (void) printf(gettext("pool '%s' is healthy\n"), zpool_get_name(zhp)); Modified: user/attilio/vmobj-readlock/contrib/binutils/gas/config/tc-arm.c ============================================================================== --- user/attilio/vmobj-readlock/contrib/binutils/gas/config/tc-arm.c Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/contrib/binutils/gas/config/tc-arm.c Tue Mar 19 17:13:47 2013 (r248526) @@ -651,6 +651,7 @@ struct asm_opcode #define BAD_ARGS _("bad arguments to instruction") #define BAD_PC _("r15 not allowed here") +#define BAD_SP _("r13 not allowed here") #define BAD_COND _("instruction cannot be conditional") #define BAD_OVERLAP _("registers may not be the same") #define BAD_HIREG _("lo register required") @@ -659,6 +660,7 @@ struct asm_opcode #define BAD_BRANCH _("branch must be last instruction in IT block") #define BAD_NOT_IT _("instruction not allowed in IT block") #define BAD_FPU _("selected FPU does not support instruction") +#define BAD_VMRS _("APSR_nzcv may only be used with fpscr") static struct hash_control *arm_ops_hsh; static struct hash_control *arm_cond_hsh; @@ -5164,10 +5166,6 @@ parse_neon_mov (char **str, int *which_o Case 10: VMOV.F32 , # Case 11: VMOV.F64
, # */ inst.operands[i].immisfloat = 1; - else if (parse_big_immediate (&ptr, i) == SUCCESS) - /* Case 2: VMOV.
, # - Case 3: VMOV.
, # */ - ; else if ((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype, &optype)) != FAIL) { @@ -5207,6 +5205,10 @@ parse_neon_mov (char **str, int *which_o inst.operands[i++].present = 1; } } + else if (parse_big_immediate (&ptr, i) == SUCCESS) + /* Case 2: VMOV.
, # + Case 3: VMOV.
, # */ + ; else { first_error (_("expected or or operand")); @@ -7096,6 +7098,64 @@ do_vfp_nsyn_msr (void) } static void +do_vfp_vmrs (void) +{ + int rt; + + /* The destination register can be r0-r14 or APSR_nzcv */ + if (inst.operands[0].reg > 14) + { + inst.error = BAD_PC; + return; + } + + /* If the destination is r13 and not in ARM mode then unprefictable */ + if (thumb_mode && inst.operands[0].reg == REG_SP) + { + inst.error = BAD_SP; + return; + } + + /* If the destination is APSR_nzcv */ + if (inst.operands[0].isvec && inst.operands[1].reg != 1) + { + inst.error = BAD_VMRS; + return; + } + + if (inst.operands[0].isvec) + rt = 15; + else + rt = inst.operands[0].reg; + + /* Or in the registers to use */ + inst.instruction |= rt << 12; + inst.instruction |= inst.operands[1].reg << 16; +} + +static void +do_vfp_vmsr (void) +{ + /* The destination register can be r0-r14 or APSR_nzcv */ + if (inst.operands[1].reg > 14) + { + inst.error = BAD_PC; + return; + } + + /* If the destination is r13 and not in ARM mode then unprefictable */ + if (thumb_mode && inst.operands[0].reg == REG_SP) + { + inst.error = BAD_SP; + return; + } + + /* Or in the registers to use */ + inst.instruction |= inst.operands[1].reg << 12; + inst.instruction |= inst.operands[0].reg << 16; +} + +static void do_mrs (void) { if (do_vfp_nsyn_mrs () == SUCCESS) @@ -15726,6 +15786,8 @@ static const struct asm_opcode insns[] = cCE(ftouizs, ebc0ac0, 2, (RVS, RVS), vfp_sp_monadic), cCE(fmrx, ef00a10, 2, (RR, RVC), rd_rn), cCE(fmxr, ee00a10, 2, (RVC, RR), rn_rd), + cCE(vmrs, ef00a10, 2, (APSR_RR, RVC), vfp_vmrs), + cCE(vmsr, ee00a10, 2, (RVC, RR), vfp_vmsr), /* Memory operations. */ cCE(flds, d100a00, 2, (RVS, ADDRGLDC), vfp_sp_ldst), Modified: user/attilio/vmobj-readlock/contrib/libc-vis/unvis.3 ============================================================================== --- user/attilio/vmobj-readlock/contrib/libc-vis/unvis.3 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/contrib/libc-vis/unvis.3 Tue Mar 19 17:13:47 2013 (r248526) @@ -1,4 +1,4 @@ -.\" $NetBSD: unvis.3,v 1.23 2011/03/17 14:06:29 wiz Exp $ +.\" $NetBSD: unvis.3,v 1.27 2012/12/15 07:34:36 wiz Exp $ .\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 @@ -126,15 +126,17 @@ The function has several return codes that must be handled properly. They are: .Bl -tag -width UNVIS_VALIDPUSH -.It Li \&0 (zero) +.It Li \&0 No (zero) Another character is necessary; nothing has been recognized yet. .It Dv UNVIS_VALID A valid character has been recognized and is available at the location -pointed to by cp. +pointed to by +.Fa cp . .It Dv UNVIS_VALIDPUSH A valid character has been recognized and is available at the location -pointed to by cp; however, the character currently passed in should -be passed in again. +pointed to by +.Fa cp ; +however, the character currently passed in should be passed in again. .It Dv UNVIS_NOCHAR A valid sequence was detected, but no character was produced. This return code is necessary to indicate a logical break between characters. @@ -150,7 +152,7 @@ one more time with flag set to to extract any remaining character (the character passed in is ignored). .Pp The -.Ar flag +.Fa flag argument is also used to specify the encoding style of the source. If set to .Dv VIS_HTTPSTYLE @@ -161,7 +163,8 @@ will decode URI strings as specified in If set to .Dv VIS_HTTP1866 , .Fn unvis -will decode URI strings as specified in RFC 1866. +will decode entity references and numeric character references +as specified in RFC 1866. If set to .Dv VIS_MIMESTYLE , .Fn unvis @@ -169,7 +172,9 @@ will decode MIME Quoted-Printable string If set to .Dv VIS_NOESCAPE , .Fn unvis -will not decode \e quoted characters. +will not decode +.Ql \e +quoted characters. .Pp The following code fragment illustrates a proper use of .Fn unvis . @@ -204,7 +209,7 @@ The functions and .Fn strnunvisx will return \-1 on error and set -.Va errno +.Va errno to: .Bl -tag -width Er .It Bq Er EINVAL @@ -212,7 +217,7 @@ An invalid escape sequence was detected, .El .Pp In addition the functions -.Fn strnunvis +.Fn strnunvis and .Fn strnunvisx will can also set @@ -244,4 +249,14 @@ and functions appeared in .Nx 6.0 and -.Fx 10.0 . +.Fx 9.2 . +.Sh BUGS +The names +.Dv VIS_HTTP1808 +and +.Dv VIS_HTTP1866 +are wrong. +Percent-encoding was defined in RFC 1738, the original RFC for URL. +RFC 1866 defines HTML 2.0, an application of SGML, from which it +inherits concepts of numeric character references and entity +references. Modified: user/attilio/vmobj-readlock/contrib/libc-vis/unvis.c ============================================================================== --- user/attilio/vmobj-readlock/contrib/libc-vis/unvis.c Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/contrib/libc-vis/unvis.c Tue Mar 19 17:13:47 2013 (r248526) @@ -1,4 +1,4 @@ -/* $NetBSD: unvis.c,v 1.40 2012/12/14 21:31:01 christos Exp $ */ +/* $NetBSD: unvis.c,v 1.41 2012/12/15 04:29:53 matt Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)unvis.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: unvis.c,v 1.40 2012/12/14 21:31:01 christos Exp $"); +__RCSID("$NetBSD: unvis.c,v 1.41 2012/12/15 04:29:53 matt Exp $"); #endif #endif /* LIBC_SCCS and not lint */ __FBSDID("$FreeBSD$"); @@ -90,7 +90,7 @@ __weak_alias(strnunvisx,_strnunvisx) * RFC 1866 */ static const struct nv { - const char name[7]; + char name[7]; uint8_t value; } nv[] = { { "AElig", 198 }, /* capital AE diphthong (ligature) */ Modified: user/attilio/vmobj-readlock/contrib/libc-vis/vis.3 ============================================================================== --- user/attilio/vmobj-readlock/contrib/libc-vis/vis.3 Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/contrib/libc-vis/vis.3 Tue Mar 19 17:13:47 2013 (r248526) @@ -1,4 +1,4 @@ -.\" $NetBSD: vis.3,v 1.29 2012/12/14 22:55:59 christos Exp $ +.\" $NetBSD: vis.3,v 1.39 2013/02/20 20:05:26 christos Exp $ .\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 @@ -30,7 +30,7 @@ .\" .\" @(#)vis.3 8.1 (Berkeley) 6/9/93 .\" -.Dd December 14, 2012 +.Dd February 19, 2013 .Dt VIS 3 .Os .Sh NAME @@ -40,12 +40,14 @@ .Nm strnvis , .Nm strvisx , .Nm strnvisx , +.Nm strenvisx , .Nm svis , .Nm snvis , .Nm strsvis , .Nm strsnvis , -.Nm strsvisx -.Nm strsnvisx +.Nm strsvisx , +.Nm strsnvisx , +.Nm strsenvisx .Nd visually encode characters .Sh LIBRARY .Lb libc @@ -63,6 +65,8 @@ .Fn strvisx "char *dst" "const char *src" "size_t len" "int flag" .Ft int .Fn strnvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" +.Ft int +.Fn strenvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "int *cerr_ptr" .Ft char * .Fn svis "char *dst" "int c" "int flag" "int nextc" "const char *extra" .Ft char * @@ -75,6 +79,8 @@ .Fn strsvisx "char *dst" "const char *src" "size_t len" "int flag" "const char *extra" .Ft int .Fn strsnvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "const char *extra" +.Ft int +.Fn strsenvisx "char *dst" "size_t dlen" "const char *src" "size_t len" "int flag" "const char *extra" "int *cerr_ptr" .Sh DESCRIPTION The .Fn vis @@ -89,11 +95,11 @@ needs no encoding, it is copied in unalt The string is null terminated, and a pointer to the end of the string is returned. The maximum length of any encoding is four -characters (not including the trailing +bytes (not including the trailing .Dv NUL ) ; thus, when encoding a set of characters into a buffer, the size of the buffer should -be four times the number of characters encoded, plus one for the trailing +be four times the number of bytes encoded, plus one for the trailing .Dv NUL . The flag parameter is used for altering the default range of characters considered for encoding and for altering the visual @@ -142,16 +148,17 @@ terminate The size of .Fa dst must be four times the number -of characters encoded from +of bytes encoded from .Fa src (plus one for the .Dv NUL ) . Both -forms return the number of characters in dst (not including -the trailing +forms return the number of characters in +.Fa dst +(not including the trailing .Dv NUL ) . The -.Dq n +.Dq Nm n versions of the functions also take an additional argument .Fa dlen that indicates the length of the @@ -159,7 +166,7 @@ that indicates the length of the buffer. If .Fa dlen -is not large enough to fix the converted string then the +is not large enough to fit the converted string then the .Fn strnvis and .Fn strnvisx @@ -167,6 +174,14 @@ functions return \-1 and set .Va errno to .Dv ENOSPC . +The +.Fn strenvisx +function takes an additional argument, +.Fa cerr_ptr , +that is used to pass in and out a multibyte conversion error flag. +This is useful when processing single characters at a time when +it is possible that the locale may be set to something other +than the locale of the characters in the input data. .Pp The functions .Fn svis , @@ -174,16 +189,18 @@ The functions .Fn strsvis , .Fn strsnvis , .Fn strsvisx , +.Fn strsnvisx , and -.Fn strsnvisx +.Fn strsenvisx correspond to .Fn vis , .Fn nvis , .Fn strvis , .Fn strnvis , .Fn strvisx , +.Fn strnvisx , and -.Fn strnvisx +.Fn strenvisx but have an additional argument .Fa extra , pointing to a @@ -214,14 +231,13 @@ and .Fn strnvisx ) , and the type of representation used. By default, all non-graphic characters, -except space, tab, and newline are encoded. -(See -.Xr isgraph 3 . ) +except space, tab, and newline are encoded (see +.Xr isgraph 3 ) . The following flags alter this: .Bl -tag -width VIS_WHITEX .It Dv VIS_GLOB -Also encode magic characters +Also encode the magic characters .Ql ( * , .Ql \&? , .Ql \&[ @@ -243,11 +259,13 @@ Synonym for \&| .Dv VIS_NL . .It Dv VIS_SAFE -Only encode "unsafe" characters. +Only encode +.Dq unsafe +characters. Unsafe means control characters which may cause common terminals to perform unexpected functions. Currently this form allows space, tab, newline, backspace, bell, and -return - in addition to all graphic characters - unencoded. +return \(em in addition to all graphic characters \(em unencoded. .El .Pp (The above flags have no effect for @@ -287,8 +305,8 @@ Use an to represent meta characters (characters with the 8th bit set), and use caret .Ql ^ -to represent control characters see -.Pf ( Xr iscntrl 3 ) . +to represent control characters (see +.Xr iscntrl 3 ) . The following formats are used: .Bl -tag -width xxxxx .It Dv \e^C @@ -335,19 +353,20 @@ Use C-style backslash sequences to repre characters. The following sequences are used to represent the indicated characters: .Bd -unfilled -offset indent -.Li \ea Tn - BEL No (007) -.Li \eb Tn - BS No (010) -.Li \ef Tn - NP No (014) -.Li \en Tn - NL No (012) -.Li \er Tn - CR No (015) -.Li \es Tn - SP No (040) -.Li \et Tn - HT No (011) -.Li \ev Tn - VT No (013) -.Li \e0 Tn - NUL No (000) +.Li \ea Tn \(em BEL No (007) +.Li \eb Tn \(em BS No (010) +.Li \ef Tn \(em NP No (014) +.Li \en Tn \(em NL No (012) +.Li \er Tn \(em CR No (015) +.Li \es Tn \(em SP No (040) +.Li \et Tn \(em HT No (011) +.Li \ev Tn \(em VT No (013) +.Li \e0 Tn \(em NUL No (000) .Ed .Pp -When using this format, the nextc parameter is looked at to determine -if a +When using this format, the +.Fa nextc +parameter is looked at to determine if a .Dv NUL character can be encoded as .Ql \e0 @@ -374,8 +393,8 @@ represents a lower case hexadecimal digi .It Dv VIS_MIMESTYLE Use MIME Quoted-Printable encoding as described in RFC 2045, only don't break lines and don't handle CRLF. -The form is: -.Ql %XX +The form is +.Ql =XX where .Em X represents an upper case hexadecimal digit. @@ -392,6 +411,41 @@ meta characters as .Ql M-C ) . With this flag set, the encoding is ambiguous and non-invertible. +.Sh MULTIBYTE CHARACTER SUPPORT +These functions support multibyte character input. +The encoding conversion is influenced by the setting of the +.Ev LC_CTYPE +environment variable which defines the set of characters +that can be copied without encoding. +.Pp +When 8-bit data is present in the input, +.Ev LC_CTYPE +must be set to the correct locale or to the C locale. +If the locales of the data and the conversion are mismatched, +multibyte character recognition may fail and encoding will be performed +byte-by-byte instead. +.Pp +As noted above, +.Fa dst +must be four times the number of bytes processed from +.Fa src . +But note that each multibyte character can be up to +.Dv MB_LEN_MAX +bytes +.\" (see +.\" .Xr multibyte 3 ) +so in terms of multibyte characters, +.Fa dst +must be four times +.Dv MB_LEN_MAX +times the number of characters processed from +.Fa src . +.Sh ENVIRONMENT +.Bl -tag -width ".Ev LC_CTYPE" +.It Ev LC_CTYPE +Specify the locale of the input data. +Set to C if the input data locale is unknown. +.El .Sh ERRORS The functions .Fn nvis @@ -407,11 +461,11 @@ and .Fn strsnvisx , will return \-1 when the .Fa dlen -destination buffer length size is not enough to perform the conversion while +destination buffer size is not enough to perform the conversion while setting .Va errno to: -.Bl -tag -width Er +.Bl -tag -width ".Bq Er ENOSPC" .It Bq Er ENOSPC The destination buffer size is not large enough to perform the conversion. .El @@ -419,18 +473,23 @@ The destination buffer size is not large .Xr unvis 1 , .Xr vis 1 , .Xr glob 3 , +.\" .Xr multibyte 3 , .Xr unvis 3 .Rs .%A T. Berners-Lee .%T Uniform Resource Locators (URL) -.%O RFC1738 +.%O "RFC 1738" +.Re +.Rs +.%T "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies" +.%O "RFC 2045" .Re .Sh HISTORY The .Fn vis , .Fn strvis , and -.Fa strvisx +.Fn strvisx functions first appeared in .Bx 4.4 . The @@ -441,7 +500,7 @@ and functions appeared in .Nx 1.5 and -.Fx 10.0 . +.Fx 9.2 . The buffer size limited versions of the functions .Po Fn nvis , .Fn strnvis , @@ -451,6 +510,9 @@ The buffer size limited versions of the and .Fn strsnvisx Pc appeared in -.Nx 6.0 and -.Fx 10.0 . +.Fx 9.2 . +Myltibyte character support was added in +.Nx 7.0 +and +.Fx 9.2 . Modified: user/attilio/vmobj-readlock/contrib/libc-vis/vis.c ============================================================================== --- user/attilio/vmobj-readlock/contrib/libc-vis/vis.c Tue Mar 19 16:57:04 2013 (r248525) +++ user/attilio/vmobj-readlock/contrib/libc-vis/vis.c Tue Mar 19 17:13:47 2013 (r248526) @@ -1,4 +1,4 @@ -/* $NetBSD: vis.c,v 1.45 2012/12/14 21:38:18 christos Exp $ */ +/* $NetBSD: vis.c,v 1.60 2013/02/21 16:21:20 joerg Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -57,19 +57,23 @@ #include #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: vis.c,v 1.45 2012/12/14 21:38:18 christos Exp $"); +__RCSID("$NetBSD: vis.c,v 1.60 2013/02/21 16:21:20 joerg Exp $"); #endif /* LIBC_SCCS and not lint */ +#ifdef __FBSDID __FBSDID("$FreeBSD$"); +#define _DIAGASSERT(x) assert(x) +#endif #include "namespace.h" #include +#include #include #include #include #include - -#define _DIAGASSERT(x) assert(x) +#include +#include #ifdef __weak_alias __weak_alias(strvisx,_strvisx) @@ -81,65 +85,66 @@ __weak_alias(strvisx,_strvisx) #include #include -static char *do_svis(char *, size_t *, int, int, int, const char *); +/* + * The reason for going through the trouble to deal with character encodings + * in vis(3), is that we use this to safe encode output of commands. This + * safe encoding varies depending on the character set. For example if we + * display ps output in French, we don't want to display French characters + * as M-foo. + */ + +static wchar_t *do_svis(wchar_t *, wint_t, int, wint_t, const wchar_t *); #undef BELL -#define BELL '\a' +#define BELL L'\a' + +#define iswoctal(c) (((u_char)(c)) >= L'0' && ((u_char)(c)) <= L'7') +#define iswwhite(c) (c == L' ' || c == L'\t' || c == L'\n') +#define iswsafe(c) (c == L'\b' || c == BELL || c == L'\r') +#define xtoa(c) L"0123456789abcdef"[c] +#define XTOA(c) L"0123456789ABCDEF"[c] -#define isoctal(c) (((u_char)(c)) >= '0' && ((u_char)(c)) <= '7') -#define iswhite(c) (c == ' ' || c == '\t' || c == '\n') -#define issafe(c) (c == '\b' || c == BELL || c == '\r') -#define xtoa(c) "0123456789abcdef"[c] -#define XTOA(c) "0123456789ABCDEF"[c] - -#define MAXEXTRAS 9 - -#define MAKEEXTRALIST(flag, extra, orig_str) \ -do { \ - const char *orig = orig_str; \ - const char *o = orig; \ - char *e; \ - while (*o++) \ - continue; \ - extra = malloc((size_t)((o - orig) + MAXEXTRAS)); \ - if (!extra) break; \ - for (o = orig, e = extra; (*e++ = *o++) != '\0';) \ - continue; \ - e--; \ - if (flag & VIS_GLOB) { \ - *e++ = '*'; \ - *e++ = '?'; \ - *e++ = '['; \ - *e++ = '#'; \ - } \ - if (flag & VIS_SP) *e++ = ' '; \ - if (flag & VIS_TAB) *e++ = '\t'; \ - if (flag & VIS_NL) *e++ = '\n'; \ - if ((flag & VIS_NOSLASH) == 0) *e++ = '\\'; \ - *e = '\0'; \ -} while (/*CONSTCOND*/0) +#define MAXEXTRAS 10 + +#if !HAVE_NBTOOL_CONFIG_H +#ifndef __NetBSD__ +/* + * On NetBSD MB_LEN_MAX is currently 32 which does not fit on any integer + * integral type and it is probably wrong, since currently the maximum + * number of bytes and character needs is 6. Until this is fixed, the + * loops below are using sizeof(uint64_t) - 1 instead of MB_LEN_MAX, and + * the assertion is commented out. + */ +#ifdef __FreeBSD__ +/* + * On FreeBSD including for CTASSERT only works in kernel + * mode. + */ +#ifndef CTASSERT +#define CTASSERT(x) _CTASSERT(x, __LINE__) +#define _CTASSERT(x, y) __CTASSERT(x, y) +#define __CTASSERT(x, y) typedef char __assert ## y[(x) ? 1 : -1] +#endif +#endif /* __FreeBSD__ */ +CTASSERT(MB_LEN_MAX <= sizeof(uint64_t)); +#endif /* !__NetBSD__ */ +#endif /* * This is do_hvis, for HTTP style (RFC 1808) */ -static char * -do_hvis(char *dst, size_t *dlen, int c, int flag, int nextc, const char *extra) +static wchar_t * +do_hvis(wchar_t *dst, wint_t c, int flags, wint_t nextc, const wchar_t *extra) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Wed Mar 20 05:23:29 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 366C6B41; Wed, 20 Mar 2013 05:23:29 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 17472CF3; Wed, 20 Mar 2013 05:23:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2K5NTqM095545; Wed, 20 Mar 2013 05:23:29 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2K5NOp8095520; Wed, 20 Mar 2013 05:23:24 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201303200523.r2K5NOp8095520@svn.freebsd.org> From: Alfred Perlstein Date: Wed, 20 Mar 2013 05:23:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248541 - in user/alfred/ewatchdog: . bin/cp bin/ls bin/mkdir bin/mv bin/ps bin/rm bin/rmdir bin/sh cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/openso... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Mar 2013 05:23:29 -0000 Author: alfred Date: Wed Mar 20 05:23:23 2013 New Revision: 248541 URL: http://svnweb.freebsd.org/changeset/base/248541 Log: MFC to prep for phase II: Linux-like kpi and api. Added: user/alfred/ewatchdog/contrib/libyaml/ - copied from r248540, head/contrib/libyaml/ user/alfred/ewatchdog/contrib/unvis/ - copied from r248540, head/contrib/unvis/ user/alfred/ewatchdog/contrib/vis/ - copied from r248540, head/contrib/vis/ user/alfred/ewatchdog/lib/libc/gen/cap_sandboxed.3 - copied unchanged from r248540, head/lib/libc/gen/cap_sandboxed.3 user/alfred/ewatchdog/lib/libc/gen/cap_sandboxed.c - copied unchanged from r248540, head/lib/libc/gen/cap_sandboxed.c user/alfred/ewatchdog/lib/libc/stdio/open_memstream.3 - copied unchanged from r248540, head/lib/libc/stdio/open_memstream.3 user/alfred/ewatchdog/lib/libc/stdio/open_memstream.c - copied unchanged from r248540, head/lib/libc/stdio/open_memstream.c user/alfred/ewatchdog/lib/libc/stdio/open_wmemstream.c - copied unchanged from r248540, head/lib/libc/stdio/open_wmemstream.c user/alfred/ewatchdog/lib/libc/sys/bindat.2 - copied unchanged from r248540, head/lib/libc/sys/bindat.2 user/alfred/ewatchdog/lib/libc/sys/cap_fcntls_limit.2 - copied unchanged from r248540, head/lib/libc/sys/cap_fcntls_limit.2 user/alfred/ewatchdog/lib/libc/sys/cap_ioctls_limit.2 - copied unchanged from r248540, head/lib/libc/sys/cap_ioctls_limit.2 user/alfred/ewatchdog/lib/libc/sys/cap_rights_limit.2 - copied unchanged from r248540, head/lib/libc/sys/cap_rights_limit.2 user/alfred/ewatchdog/lib/libc/sys/connectat.2 - copied unchanged from r248540, head/lib/libc/sys/connectat.2 user/alfred/ewatchdog/lib/libusb/libusb_global_linux.h - copied unchanged from r248540, head/lib/libusb/libusb_global_linux.h user/alfred/ewatchdog/lib/libyaml/ - copied from r248540, head/lib/libyaml/ user/alfred/ewatchdog/share/examples/bhyve/ - copied from r248540, head/share/examples/bhyve/ user/alfred/ewatchdog/sys/arm/broadcom/bcm2835/bcm2835_dma.c - copied unchanged from r248540, head/sys/arm/broadcom/bcm2835/bcm2835_dma.c user/alfred/ewatchdog/sys/arm/broadcom/bcm2835/bcm2835_dma.h - copied unchanged from r248540, head/sys/arm/broadcom/bcm2835/bcm2835_dma.h user/alfred/ewatchdog/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c - copied unchanged from r248540, head/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c user/alfred/ewatchdog/sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h - copied unchanged from r248540, head/sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h user/alfred/ewatchdog/sys/cddl/compat/opensolaris/sys/vm.h - copied unchanged from r248540, head/sys/cddl/compat/opensolaris/sys/vm.h user/alfred/ewatchdog/sys/cddl/dev/fbt/fbt_powerpc.c - copied unchanged from r248540, head/sys/cddl/dev/fbt/fbt_powerpc.c user/alfred/ewatchdog/sys/dev/drm2/drm_global.c - copied unchanged from r248540, head/sys/dev/drm2/drm_global.c user/alfred/ewatchdog/sys/dev/drm2/drm_global.h - copied unchanged from r248540, head/sys/dev/drm2/drm_global.h user/alfred/ewatchdog/sys/dev/drm2/ttm/ - copied from r248540, head/sys/dev/drm2/ttm/ user/alfred/ewatchdog/sys/libkern/arm/aeabi_unwind.c - copied unchanged from r248540, head/sys/libkern/arm/aeabi_unwind.c user/alfred/ewatchdog/sys/libkern/arm/memcpy.S - copied unchanged from r248540, head/sys/libkern/arm/memcpy.S user/alfred/ewatchdog/sys/libkern/arm/memset.S - copied unchanged from r248540, head/sys/libkern/arm/memset.S user/alfred/ewatchdog/sys/vm/_vm_radix.h - copied unchanged from r248540, head/sys/vm/_vm_radix.h user/alfred/ewatchdog/sys/vm/vm_radix.c - copied unchanged from r248540, head/sys/vm/vm_radix.c user/alfred/ewatchdog/sys/vm/vm_radix.h - copied unchanged from r248540, head/sys/vm/vm_radix.h user/alfred/ewatchdog/tools/regression/bin/sh/builtins/trap12.0 - copied unchanged from r248540, head/tools/regression/bin/sh/builtins/trap12.0 user/alfred/ewatchdog/tools/regression/bin/sh/builtins/wait6.0 - copied unchanged from r248540, head/tools/regression/bin/sh/builtins/wait6.0 user/alfred/ewatchdog/tools/regression/bin/sh/builtins/wait7.0 - copied unchanged from r248540, head/tools/regression/bin/sh/builtins/wait7.0 user/alfred/ewatchdog/tools/regression/capsicum/ - copied from r248540, head/tools/regression/capsicum/ user/alfred/ewatchdog/tools/regression/lib/libc/stdio/test-open_memstream.c - copied unchanged from r248540, head/tools/regression/lib/libc/stdio/test-open_memstream.c user/alfred/ewatchdog/tools/regression/lib/libc/stdio/test-open_memstream.t - copied unchanged from r248540, head/tools/regression/lib/libc/stdio/test-open_memstream.t user/alfred/ewatchdog/tools/regression/lib/libc/stdio/test-open_wmemstream.c - copied unchanged from r248540, head/tools/regression/lib/libc/stdio/test-open_wmemstream.c user/alfred/ewatchdog/tools/regression/lib/libc/stdio/test-open_wmemstream.t - copied unchanged from r248540, head/tools/regression/lib/libc/stdio/test-open_wmemstream.t user/alfred/ewatchdog/usr.bin/truss/arm-fbsd.c - copied unchanged from r248540, head/usr.bin/truss/arm-fbsd.c user/alfred/ewatchdog/usr.sbin/pkg/config.c - copied unchanged from r248540, head/usr.sbin/pkg/config.c user/alfred/ewatchdog/usr.sbin/pkg/config.h - copied unchanged from r248540, head/usr.sbin/pkg/config.h Deleted: user/alfred/ewatchdog/games/fortune/datfiles/fortunes-o.fake user/alfred/ewatchdog/games/fortune/datfiles/fortunes-o.real user/alfred/ewatchdog/games/fortune/datfiles/fortunes-o.sp.ok user/alfred/ewatchdog/lib/libc/sys/cap_new.2 user/alfred/ewatchdog/lib/libncp/ user/alfred/ewatchdog/lib/libprocstat/ntfs.c user/alfred/ewatchdog/lib/libprocstat/nwfs.c user/alfred/ewatchdog/sbin/mount_ext2fs/ user/alfred/ewatchdog/sbin/mount_hpfs/ user/alfred/ewatchdog/sbin/mount_ntfs/ user/alfred/ewatchdog/sbin/mount_reiserfs/ user/alfred/ewatchdog/sbin/mount_std/ user/alfred/ewatchdog/share/examples/cvsup/ports-supfile user/alfred/ewatchdog/share/examples/cvsup/refuse user/alfred/ewatchdog/share/examples/cvsup/refuse.README user/alfred/ewatchdog/share/examples/nwclient/ user/alfred/ewatchdog/share/examples/portal/ user/alfred/ewatchdog/share/man/man4/coda.4 user/alfred/ewatchdog/share/man/man4/vinum.4 user/alfred/ewatchdog/share/man/man5/xfs.5 user/alfred/ewatchdog/sys/fs/coda/ user/alfred/ewatchdog/sys/fs/hpfs/ user/alfred/ewatchdog/sys/fs/ntfs/ user/alfred/ewatchdog/sys/fs/nwfs/ user/alfred/ewatchdog/sys/fs/portalfs/ user/alfred/ewatchdog/sys/gnu/fs/xfs/ user/alfred/ewatchdog/sys/modules/coda/ user/alfred/ewatchdog/sys/modules/coda5/ user/alfred/ewatchdog/sys/modules/hpfs/ user/alfred/ewatchdog/sys/modules/ncp/ user/alfred/ewatchdog/sys/modules/ntfs/ user/alfred/ewatchdog/sys/modules/ntfs_iconv/ user/alfred/ewatchdog/sys/modules/nwfs/ user/alfred/ewatchdog/sys/modules/portalfs/ user/alfred/ewatchdog/sys/modules/xfs/ user/alfred/ewatchdog/sys/netncp/ user/alfred/ewatchdog/usr.bin/ncplist/ user/alfred/ewatchdog/usr.bin/ncplogin/ user/alfred/ewatchdog/usr.bin/unvis/unvis.1 user/alfred/ewatchdog/usr.bin/unvis/unvis.c user/alfred/ewatchdog/usr.bin/vis/extern.h user/alfred/ewatchdog/usr.bin/vis/foldit.c user/alfred/ewatchdog/usr.bin/vis/vis.1 user/alfred/ewatchdog/usr.bin/vis/vis.c user/alfred/ewatchdog/usr.sbin/mount_nwfs/ user/alfred/ewatchdog/usr.sbin/mount_portalfs/ Modified: user/alfred/ewatchdog/MAINTAINERS (contents, props changed) user/alfred/ewatchdog/ObsoleteFiles.inc user/alfred/ewatchdog/UPDATING user/alfred/ewatchdog/bin/cp/cp.1 user/alfred/ewatchdog/bin/ls/ls.1 user/alfred/ewatchdog/bin/mkdir/mkdir.1 user/alfred/ewatchdog/bin/mv/mv.1 user/alfred/ewatchdog/bin/ps/ps.1 user/alfred/ewatchdog/bin/rm/rm.1 user/alfred/ewatchdog/bin/rmdir/rmdir.1 user/alfred/ewatchdog/bin/sh/jobs.c user/alfred/ewatchdog/bin/sh/trap.c user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zpool/zpool.8 user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/alfred/ewatchdog/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h user/alfred/ewatchdog/cddl/contrib/opensolaris/tools/ctf/cvt/output.c user/alfred/ewatchdog/contrib/binutils/gas/config/tc-arm.c user/alfred/ewatchdog/contrib/libc-vis/unvis.3 user/alfred/ewatchdog/contrib/libc-vis/unvis.c user/alfred/ewatchdog/contrib/libc-vis/vis.3 user/alfred/ewatchdog/contrib/libc-vis/vis.c user/alfred/ewatchdog/contrib/libc-vis/vis.h user/alfred/ewatchdog/contrib/openbsm/bin/auditdistd/sender.c user/alfred/ewatchdog/contrib/openbsm/etc/audit_event user/alfred/ewatchdog/contrib/openpam/doc/man/openpam_straddch.3 user/alfred/ewatchdog/contrib/openpam/lib/openpam_readline.c user/alfred/ewatchdog/contrib/openpam/lib/openpam_readword.c user/alfred/ewatchdog/contrib/tzdata/africa user/alfred/ewatchdog/contrib/tzdata/antarctica user/alfred/ewatchdog/contrib/tzdata/asia user/alfred/ewatchdog/contrib/tzdata/australasia user/alfred/ewatchdog/contrib/tzdata/europe user/alfred/ewatchdog/contrib/tzdata/northamerica user/alfred/ewatchdog/contrib/tzdata/southamerica user/alfred/ewatchdog/contrib/tzdata/zone.tab user/alfred/ewatchdog/crypto/openssh/FREEBSD-upgrade user/alfred/ewatchdog/crypto/openssh/config.h user/alfred/ewatchdog/crypto/openssh/session.c user/alfred/ewatchdog/crypto/openssh/sshd_config user/alfred/ewatchdog/etc/devd.conf user/alfred/ewatchdog/etc/mtree/BSD.include.dist user/alfred/ewatchdog/etc/mtree/BSD.usr.dist user/alfred/ewatchdog/etc/portsnap.conf user/alfred/ewatchdog/etc/rc.d/savecore user/alfred/ewatchdog/games/fortune/datfiles/Makefile user/alfred/ewatchdog/gnu/lib/libgcc/Makefile user/alfred/ewatchdog/include/stdio.h user/alfred/ewatchdog/include/wchar.h user/alfred/ewatchdog/lib/Makefile user/alfred/ewatchdog/lib/libc/gen/Makefile.inc user/alfred/ewatchdog/lib/libc/gen/Symbol.map user/alfred/ewatchdog/lib/libc/gen/getcontext.3 user/alfred/ewatchdog/lib/libc/include/compat.h user/alfred/ewatchdog/lib/libc/net/nscachedcli.c user/alfred/ewatchdog/lib/libc/regex/regcomp.c user/alfred/ewatchdog/lib/libc/rpc/clnt_vc.c user/alfred/ewatchdog/lib/libc/stdio/Makefile.inc user/alfred/ewatchdog/lib/libc/stdio/Symbol.map user/alfred/ewatchdog/lib/libc/stdlib/realpath.3 user/alfred/ewatchdog/lib/libc/string/Makefile.inc user/alfred/ewatchdog/lib/libc/sys/Makefile.inc user/alfred/ewatchdog/lib/libc/sys/Symbol.map user/alfred/ewatchdog/lib/libc/sys/cap_enter.2 user/alfred/ewatchdog/lib/libc/sys/chflags.2 user/alfred/ewatchdog/lib/libc/sys/dup.2 user/alfred/ewatchdog/lib/libc/sys/mlock.2 user/alfred/ewatchdog/lib/libc/sys/recv.2 user/alfred/ewatchdog/lib/libc/sys/socket.2 user/alfred/ewatchdog/lib/libc/sys/socketpair.2 user/alfred/ewatchdog/lib/libipsec/test-policy.c user/alfred/ewatchdog/lib/libnetgraph/msg.c user/alfred/ewatchdog/lib/libprocstat/libprocstat.c user/alfred/ewatchdog/lib/libprocstat/libprocstat.h user/alfred/ewatchdog/lib/libstand/Makefile user/alfred/ewatchdog/lib/libstand/nandfs.c user/alfred/ewatchdog/lib/libusb/Makefile user/alfred/ewatchdog/lib/libusb/libusb.h user/alfred/ewatchdog/lib/libusb/libusb01.c user/alfred/ewatchdog/lib/libusb/libusb10.c user/alfred/ewatchdog/lib/libusb/libusb10.h user/alfred/ewatchdog/lib/libusb/libusb10_desc.c user/alfred/ewatchdog/lib/libusb/libusb10_io.c user/alfred/ewatchdog/lib/libusb/libusb20.c user/alfred/ewatchdog/lib/libusb/libusb20.h user/alfred/ewatchdog/lib/libusb/libusb20_desc.c user/alfred/ewatchdog/lib/libusb/libusb20_desc.h user/alfred/ewatchdog/lib/libusb/libusb20_ugen20.c user/alfred/ewatchdog/lib/libusb/usb.h user/alfred/ewatchdog/lib/libutil/gr_util.c user/alfred/ewatchdog/lib/libutil/kinfo_getproc.3 user/alfred/ewatchdog/lib/libutil/libutil.h user/alfred/ewatchdog/lib/libutil/pidfile.c user/alfred/ewatchdog/lib/libvmmapi/vmmapi.c user/alfred/ewatchdog/lib/libvmmapi/vmmapi.h user/alfred/ewatchdog/libexec/rtld-elf/map_object.c user/alfred/ewatchdog/sbin/ccdconfig/ccdconfig.8 user/alfred/ewatchdog/sbin/devd/devd.cc user/alfred/ewatchdog/sbin/devd/devd.hh user/alfred/ewatchdog/sbin/ffsinfo/ffsinfo.8 user/alfred/ewatchdog/sbin/geom/class/concat/gconcat.8 user/alfred/ewatchdog/sbin/geom/class/eli/geom_eli.c user/alfred/ewatchdog/sbin/geom/class/mirror/gmirror.8 user/alfred/ewatchdog/sbin/geom/class/raid/graid.8 user/alfred/ewatchdog/sbin/geom/class/stripe/gstripe.8 user/alfred/ewatchdog/sbin/gvinum/gvinum.8 user/alfred/ewatchdog/sbin/hastctl/hastctl.8 user/alfred/ewatchdog/sbin/hastctl/hastctl.c user/alfred/ewatchdog/sbin/hastd/hastd.8 user/alfred/ewatchdog/sbin/hastd/secondary.c user/alfred/ewatchdog/sbin/hastd/subr.c user/alfred/ewatchdog/sbin/ipfw/ipfw2.c user/alfred/ewatchdog/sbin/ipfw/ipfw2.h user/alfred/ewatchdog/sbin/ipfw/ipv6.c user/alfred/ewatchdog/sbin/ldconfig/ldconfig.8 user/alfred/ewatchdog/sbin/ldconfig/ldconfig.c user/alfred/ewatchdog/sbin/mount_cd9660/mount_cd9660.8 user/alfred/ewatchdog/sbin/mount_cd9660/mount_cd9660.c user/alfred/ewatchdog/sbin/mount_msdosfs/mount_msdosfs.c user/alfred/ewatchdog/sbin/mount_nfs/mount_nfs.c user/alfred/ewatchdog/sbin/mount_nullfs/mount_nullfs.c user/alfred/ewatchdog/sbin/mount_udf/Makefile user/alfred/ewatchdog/sbin/mount_udf/mount_udf.c user/alfred/ewatchdog/sbin/mount_unionfs/mount_unionfs.c user/alfred/ewatchdog/sbin/recoverdisk/recoverdisk.c user/alfred/ewatchdog/sbin/shutdown/shutdown.8 user/alfred/ewatchdog/sbin/tunefs/tunefs.c user/alfred/ewatchdog/share/examples/Makefile user/alfred/ewatchdog/share/examples/cvsup/README user/alfred/ewatchdog/share/examples/cvsup/cvs-supfile user/alfred/ewatchdog/share/examples/cvsup/stable-supfile user/alfred/ewatchdog/share/man/man4/Makefile user/alfred/ewatchdog/share/man/man4/arcmsr.4 user/alfred/ewatchdog/share/man/man4/cas.4 user/alfred/ewatchdog/share/man/man4/ccd.4 user/alfred/ewatchdog/share/man/man4/eventtimers.4 user/alfred/ewatchdog/share/man/man4/geom.4 user/alfred/ewatchdog/share/man/man4/iwn.4 user/alfred/ewatchdog/share/man/man4/mvs.4 user/alfred/ewatchdog/share/man/man4/psm.4 user/alfred/ewatchdog/share/man/man4/sge.4 user/alfred/ewatchdog/share/man/man4/udp.4 user/alfred/ewatchdog/share/man/man4/unix.4 user/alfred/ewatchdog/share/man/man4/zyd.4 user/alfred/ewatchdog/share/man/man7/development.7 user/alfred/ewatchdog/share/man/man7/ports.7 user/alfred/ewatchdog/share/man/man9/Makefile user/alfred/ewatchdog/share/man/man9/condvar.9 user/alfred/ewatchdog/share/man/man9/eventtimers.9 user/alfred/ewatchdog/share/man/man9/sleep.9 user/alfred/ewatchdog/share/man/man9/sleepqueue.9 user/alfred/ewatchdog/share/man/man9/timeout.9 user/alfred/ewatchdog/share/misc/bsd-family-tree user/alfred/ewatchdog/share/misc/committers-ports.dot user/alfred/ewatchdog/share/misc/organization.dot user/alfred/ewatchdog/share/mk/bsd.compiler.mk user/alfred/ewatchdog/share/mk/bsd.libnames.mk user/alfred/ewatchdog/sys/Makefile user/alfred/ewatchdog/sys/amd64/amd64/machdep.c user/alfred/ewatchdog/sys/amd64/amd64/pmap.c user/alfred/ewatchdog/sys/amd64/conf/GENERIC user/alfred/ewatchdog/sys/amd64/conf/NOTES user/alfred/ewatchdog/sys/amd64/include/pmap.h user/alfred/ewatchdog/sys/amd64/vmm/intel/vmx.c user/alfred/ewatchdog/sys/amd64/vmm/vmm.c user/alfred/ewatchdog/sys/amd64/vmm/vmm_stat.c user/alfred/ewatchdog/sys/amd64/vmm/vmm_stat.h user/alfred/ewatchdog/sys/arm/allwinner/files.a10 user/alfred/ewatchdog/sys/arm/allwinner/timer.c user/alfred/ewatchdog/sys/arm/arm/bcopy_page.S user/alfred/ewatchdog/sys/arm/arm/bcopyinout.S user/alfred/ewatchdog/sys/arm/arm/bcopyinout_xscale.S user/alfred/ewatchdog/sys/arm/arm/blockio.S user/alfred/ewatchdog/sys/arm/arm/bus_space_asm_generic.S user/alfred/ewatchdog/sys/arm/arm/busdma_machdep-v6.c user/alfred/ewatchdog/sys/arm/arm/copystr.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_arm10.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_arm11.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_arm11x6.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_arm7tdmi.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_arm8.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_arm9.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_armv4.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_armv5.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_armv5_ec.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_armv6.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_armv7.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_fa526.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_ixp12x0.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_pj4b.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_sa1.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_sa11x0.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_sheeva.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_xscale.S user/alfred/ewatchdog/sys/arm/arm/cpufunc_asm_xscale_c3.S user/alfred/ewatchdog/sys/arm/arm/db_trace.c user/alfred/ewatchdog/sys/arm/arm/disassem.c user/alfred/ewatchdog/sys/arm/arm/elf_trampoline.c user/alfred/ewatchdog/sys/arm/arm/exception.S user/alfred/ewatchdog/sys/arm/arm/fiq_subr.S user/alfred/ewatchdog/sys/arm/arm/fusu.S user/alfred/ewatchdog/sys/arm/arm/in_cksum_arm.S user/alfred/ewatchdog/sys/arm/arm/irq_dispatch.S user/alfred/ewatchdog/sys/arm/arm/locore.S user/alfred/ewatchdog/sys/arm/arm/machdep.c user/alfred/ewatchdog/sys/arm/arm/mpcore_timer.c user/alfred/ewatchdog/sys/arm/arm/pmap-v6.c user/alfred/ewatchdog/sys/arm/arm/pmap.c user/alfred/ewatchdog/sys/arm/arm/setcpsr.S user/alfred/ewatchdog/sys/arm/arm/support.S user/alfred/ewatchdog/sys/arm/arm/swtch.S user/alfred/ewatchdog/sys/arm/arm/vm_machdep.c user/alfred/ewatchdog/sys/arm/at91/if_ate.c user/alfred/ewatchdog/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c user/alfred/ewatchdog/sys/arm/broadcom/bcm2835/bcm2835_systimer.c user/alfred/ewatchdog/sys/arm/broadcom/bcm2835/files.bcm2835 user/alfred/ewatchdog/sys/arm/conf/CUBIEBOARD user/alfred/ewatchdog/sys/arm/conf/RPI-B user/alfred/ewatchdog/sys/arm/econa/econa_machdep.c user/alfred/ewatchdog/sys/arm/include/asm.h user/alfred/ewatchdog/sys/arm/include/bus.h user/alfred/ewatchdog/sys/arm/include/frame.h user/alfred/ewatchdog/sys/arm/include/param.h user/alfred/ewatchdog/sys/arm/include/pmap.h user/alfred/ewatchdog/sys/arm/include/signal.h user/alfred/ewatchdog/sys/arm/include/vmparam.h user/alfred/ewatchdog/sys/arm/lpc/lpc_timer.c user/alfred/ewatchdog/sys/arm/mv/timer.c user/alfred/ewatchdog/sys/arm/s3c2xx0/s3c24x0_machdep.c user/alfred/ewatchdog/sys/arm/ti/am335x/am335x_dmtimer.c user/alfred/ewatchdog/sys/arm/ti/cpsw/if_cpsw.c user/alfred/ewatchdog/sys/arm/ti/ti_gpio.c user/alfred/ewatchdog/sys/arm/ti/ti_mmchs.c user/alfred/ewatchdog/sys/arm/versatile/sp804.c user/alfred/ewatchdog/sys/arm/xscale/i80321/ep80219_machdep.c user/alfred/ewatchdog/sys/arm/xscale/i80321/iq31244_machdep.c user/alfred/ewatchdog/sys/arm/xscale/i8134x/crb_machdep.c user/alfred/ewatchdog/sys/arm/xscale/ixp425/avila_machdep.c user/alfred/ewatchdog/sys/arm/xscale/pxa/pxa_machdep.c user/alfred/ewatchdog/sys/boot/common/load_elf.c user/alfred/ewatchdog/sys/boot/fdt/dts/cubieboard.dts user/alfred/ewatchdog/sys/boot/fdt/fdt_loader_cmd.c user/alfred/ewatchdog/sys/bsm/audit_kevents.h user/alfred/ewatchdog/sys/cam/ata/ata_da.c user/alfred/ewatchdog/sys/cam/cam_ccb.h user/alfred/ewatchdog/sys/cam/cam_periph.c user/alfred/ewatchdog/sys/cam/ctl/ctl.c user/alfred/ewatchdog/sys/cam/scsi/scsi_all.c user/alfred/ewatchdog/sys/cam/scsi/scsi_all.h user/alfred/ewatchdog/sys/cam/scsi/scsi_cd.c user/alfred/ewatchdog/sys/cam/scsi/scsi_da.c user/alfred/ewatchdog/sys/cddl/compat/opensolaris/sys/file.h user/alfred/ewatchdog/sys/cddl/compat/opensolaris/sys/kcondvar.h user/alfred/ewatchdog/sys/cddl/compat/opensolaris/sys/sig.h user/alfred/ewatchdog/sys/cddl/compat/opensolaris/sys/vnode.h user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.h user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c user/alfred/ewatchdog/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S user/alfred/ewatchdog/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c user/alfred/ewatchdog/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c user/alfred/ewatchdog/sys/compat/freebsd32/freebsd32_proto.h user/alfred/ewatchdog/sys/compat/freebsd32/freebsd32_syscall.h user/alfred/ewatchdog/sys/compat/freebsd32/freebsd32_syscalls.c user/alfred/ewatchdog/sys/compat/freebsd32/freebsd32_sysent.c user/alfred/ewatchdog/sys/compat/freebsd32/freebsd32_systrace_args.c user/alfred/ewatchdog/sys/compat/freebsd32/syscalls.master user/alfred/ewatchdog/sys/compat/linprocfs/linprocfs.c user/alfred/ewatchdog/sys/compat/linux/linux_file.c user/alfred/ewatchdog/sys/compat/linux/linux_socket.c user/alfred/ewatchdog/sys/compat/ndis/kern_ndis.c user/alfred/ewatchdog/sys/compat/svr4/svr4_fcntl.c user/alfred/ewatchdog/sys/compat/svr4/svr4_filio.c user/alfred/ewatchdog/sys/compat/svr4/svr4_misc.c user/alfred/ewatchdog/sys/compat/svr4/svr4_stream.c user/alfred/ewatchdog/sys/conf/Makefile.arm user/alfred/ewatchdog/sys/conf/NOTES user/alfred/ewatchdog/sys/conf/files user/alfred/ewatchdog/sys/conf/files.amd64 user/alfred/ewatchdog/sys/conf/files.arm user/alfred/ewatchdog/sys/conf/files.i386 user/alfred/ewatchdog/sys/conf/ldscript.arm user/alfred/ewatchdog/sys/conf/options user/alfred/ewatchdog/sys/conf/options.sparc64 user/alfred/ewatchdog/sys/contrib/altq/altq/altq_hfsc.c user/alfred/ewatchdog/sys/contrib/altq/altq/altq_hfsc.h user/alfred/ewatchdog/sys/dev/aac/aac.c user/alfred/ewatchdog/sys/dev/aac/aac_cam.c user/alfred/ewatchdog/sys/dev/aac/aac_disk.c user/alfred/ewatchdog/sys/dev/aac/aac_pci.c user/alfred/ewatchdog/sys/dev/aac/aac_tables.h user/alfred/ewatchdog/sys/dev/aac/aacvar.h user/alfred/ewatchdog/sys/dev/acpica/acpi_cpu.c user/alfred/ewatchdog/sys/dev/acpica/acpi_hpet.c user/alfred/ewatchdog/sys/dev/acpica/acpi_powerres.c user/alfred/ewatchdog/sys/dev/agp/agp.c user/alfred/ewatchdog/sys/dev/agp/agp_i810.c user/alfred/ewatchdog/sys/dev/ahci/ahci.c user/alfred/ewatchdog/sys/dev/arcmsr/arcmsr.c user/alfred/ewatchdog/sys/dev/arcmsr/arcmsr.h user/alfred/ewatchdog/sys/dev/ath/ath_hal/ah.h user/alfred/ewatchdog/sys/dev/ath/ath_hal/ar5416/ar5416.h user/alfred/ewatchdog/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c user/alfred/ewatchdog/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c user/alfred/ewatchdog/sys/dev/ath/ath_hal/ar5416/ar5416reg.h user/alfred/ewatchdog/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c user/alfred/ewatchdog/sys/dev/ath/if_ath.c user/alfred/ewatchdog/sys/dev/ath/if_ath_beacon.c user/alfred/ewatchdog/sys/dev/ath/if_ath_rx.c user/alfred/ewatchdog/sys/dev/ath/if_ath_rx_edma.c user/alfred/ewatchdog/sys/dev/ath/if_ath_sysctl.c user/alfred/ewatchdog/sys/dev/ath/if_ath_tx.c user/alfred/ewatchdog/sys/dev/ath/if_ath_tx_ht.c user/alfred/ewatchdog/sys/dev/ath/if_athioctl.h user/alfred/ewatchdog/sys/dev/ath/if_athrate.h user/alfred/ewatchdog/sys/dev/ath/if_athvar.h user/alfred/ewatchdog/sys/dev/atkbdc/psm.c user/alfred/ewatchdog/sys/dev/bce/if_bce.c user/alfred/ewatchdog/sys/dev/bce/if_bcereg.h user/alfred/ewatchdog/sys/dev/bge/if_bge.c user/alfred/ewatchdog/sys/dev/cas/if_cas.c user/alfred/ewatchdog/sys/dev/drm/drmP.h user/alfred/ewatchdog/sys/dev/drm2/drmP.h user/alfred/ewatchdog/sys/dev/drm2/drm_drv.c user/alfred/ewatchdog/sys/dev/drm2/drm_fb_helper.c user/alfred/ewatchdog/sys/dev/drm2/drm_gem.c user/alfred/ewatchdog/sys/dev/drm2/drm_mm.c user/alfred/ewatchdog/sys/dev/drm2/drm_mm.h user/alfred/ewatchdog/sys/dev/drm2/i915/i915_gem.c user/alfred/ewatchdog/sys/dev/fdt/fdt_common.c user/alfred/ewatchdog/sys/dev/fdt/fdtbus.c user/alfred/ewatchdog/sys/dev/fdt/simplebus.c user/alfred/ewatchdog/sys/dev/hwpmc/hwpmc_mod.c user/alfred/ewatchdog/sys/dev/hwpmc/hwpmc_soft.c user/alfred/ewatchdog/sys/dev/ic/ns16550.h user/alfred/ewatchdog/sys/dev/ichwd/ichwd.c user/alfred/ewatchdog/sys/dev/iscsi/initiator/isc_soc.c user/alfred/ewatchdog/sys/dev/iscsi/initiator/iscsi.c user/alfred/ewatchdog/sys/dev/ixgbe/LICENSE user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe.c user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_82598.c user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_82599.c user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_82599.h user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_api.c user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_api.h user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_common.c user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_common.h user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_mbx.h user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_osdep.h user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_phy.c user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_phy.h user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_type.h user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_vf.c user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_vf.h user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_x540.c user/alfred/ewatchdog/sys/dev/ixgbe/ixgbe_x540.h user/alfred/ewatchdog/sys/dev/ixgbe/ixv.c user/alfred/ewatchdog/sys/dev/md/md.c user/alfred/ewatchdog/sys/dev/mfi/mfi.c user/alfred/ewatchdog/sys/dev/mps/mps.c user/alfred/ewatchdog/sys/dev/msk/if_msk.c user/alfred/ewatchdog/sys/dev/netmap/netmap.c user/alfred/ewatchdog/sys/dev/nvme/nvme.c user/alfred/ewatchdog/sys/dev/nvme/nvme_ctrlr.c user/alfred/ewatchdog/sys/dev/oce/oce_hw.c user/alfred/ewatchdog/sys/dev/oce/oce_hw.h user/alfred/ewatchdog/sys/dev/oce/oce_if.c user/alfred/ewatchdog/sys/dev/oce/oce_if.h user/alfred/ewatchdog/sys/dev/oce/oce_mbox.c user/alfred/ewatchdog/sys/dev/oce/oce_queue.c user/alfred/ewatchdog/sys/dev/oce/oce_sysctl.c user/alfred/ewatchdog/sys/dev/oce/oce_util.c user/alfred/ewatchdog/sys/dev/pci/pci.c user/alfred/ewatchdog/sys/dev/puc/pucdata.c user/alfred/ewatchdog/sys/dev/random/randomdev_soft.c user/alfred/ewatchdog/sys/dev/re/if_re.c user/alfred/ewatchdog/sys/dev/sdhci/sdhci.c user/alfred/ewatchdog/sys/dev/sdhci/sdhci.h user/alfred/ewatchdog/sys/dev/sdhci/sdhci_if.m user/alfred/ewatchdog/sys/dev/siis/siis.c user/alfred/ewatchdog/sys/dev/sis/if_sis.c user/alfred/ewatchdog/sys/dev/sis/if_sisreg.h user/alfred/ewatchdog/sys/dev/sound/pci/hda/hdaa_patches.c user/alfred/ewatchdog/sys/dev/sound/pci/hda/hdac.h user/alfred/ewatchdog/sys/dev/sound/pci/hda/hdacc.c user/alfred/ewatchdog/sys/dev/sound/pcm/dsp.c user/alfred/ewatchdog/sys/dev/sound/pcm/sndstat.c user/alfred/ewatchdog/sys/dev/syscons/syscons.c user/alfred/ewatchdog/sys/dev/syscons/syscons.h user/alfred/ewatchdog/sys/dev/tws/tws_hdm.c user/alfred/ewatchdog/sys/dev/uart/uart_dev_ns8250.c user/alfred/ewatchdog/sys/dev/usb/serial/u3g.c user/alfred/ewatchdog/sys/dev/usb/serial/uftdi.c user/alfred/ewatchdog/sys/dev/usb/usb_device.c user/alfred/ewatchdog/sys/dev/usb/usb_request.c user/alfred/ewatchdog/sys/dev/usb/usbdevs user/alfred/ewatchdog/sys/dev/usb/wlan/if_run.c user/alfred/ewatchdog/sys/dev/virtio/block/virtio_blk.c user/alfred/ewatchdog/sys/fs/cd9660/cd9660_vnops.c user/alfred/ewatchdog/sys/fs/ext2fs/ext2_balloc.c user/alfred/ewatchdog/sys/fs/ext2fs/ext2_vnops.c user/alfred/ewatchdog/sys/fs/fdescfs/fdesc_vfsops.c user/alfred/ewatchdog/sys/fs/fdescfs/fdesc_vnops.c user/alfred/ewatchdog/sys/fs/fuse/fuse_io.c user/alfred/ewatchdog/sys/fs/fuse/fuse_vnops.c user/alfred/ewatchdog/sys/fs/msdosfs/msdosfs_vnops.c user/alfred/ewatchdog/sys/fs/nfs/nfsdport.h user/alfred/ewatchdog/sys/fs/nfs/nfsport.h user/alfred/ewatchdog/sys/fs/nfsclient/nfs_clbio.c user/alfred/ewatchdog/sys/fs/nfsclient/nfs_clnode.c user/alfred/ewatchdog/sys/fs/nfsclient/nfs_clport.c user/alfred/ewatchdog/sys/fs/nfsclient/nfs_clvnops.c user/alfred/ewatchdog/sys/fs/nfsserver/nfs_nfsdport.c user/alfred/ewatchdog/sys/fs/nullfs/null_vfsops.c user/alfred/ewatchdog/sys/fs/procfs/procfs_map.c user/alfred/ewatchdog/sys/fs/smbfs/smbfs_smb.c user/alfred/ewatchdog/sys/fs/smbfs/smbfs_vnops.c user/alfred/ewatchdog/sys/fs/tmpfs/tmpfs_subr.c user/alfred/ewatchdog/sys/fs/tmpfs/tmpfs_vnops.c user/alfred/ewatchdog/sys/fs/udf/udf_vnops.c user/alfred/ewatchdog/sys/geom/gate/g_gate.c user/alfred/ewatchdog/sys/geom/geom.h user/alfred/ewatchdog/sys/geom/geom_disk.c user/alfred/ewatchdog/sys/geom/geom_disk.h user/alfred/ewatchdog/sys/geom/geom_io.c user/alfred/ewatchdog/sys/geom/geom_vfs.c user/alfred/ewatchdog/sys/geom/label/g_label_ntfs.c user/alfred/ewatchdog/sys/geom/part/g_part.c user/alfred/ewatchdog/sys/geom/part/g_part.h user/alfred/ewatchdog/sys/geom/part/g_part_mbr.c user/alfred/ewatchdog/sys/geom/raid/g_raid.c user/alfred/ewatchdog/sys/geom/raid/md_ddf.c user/alfred/ewatchdog/sys/i386/conf/GENERIC user/alfred/ewatchdog/sys/i386/conf/NOTES user/alfred/ewatchdog/sys/i386/i386/machdep.c user/alfred/ewatchdog/sys/i386/i386/pmap.c user/alfred/ewatchdog/sys/i386/ibcs2/ibcs2_misc.c user/alfred/ewatchdog/sys/i386/include/pmap.h user/alfred/ewatchdog/sys/i386/xen/clock.c user/alfred/ewatchdog/sys/i386/xen/pmap.c user/alfred/ewatchdog/sys/ia64/ia64/clock.c user/alfred/ewatchdog/sys/ia64/ia64/machdep.c user/alfred/ewatchdog/sys/ia64/ia64/pmap.c user/alfred/ewatchdog/sys/kern/capabilities.conf user/alfred/ewatchdog/sys/kern/imgact_elf.c user/alfred/ewatchdog/sys/kern/init_sysent.c user/alfred/ewatchdog/sys/kern/kern_clock.c user/alfred/ewatchdog/sys/kern/kern_clocksource.c user/alfred/ewatchdog/sys/kern/kern_condvar.c user/alfred/ewatchdog/sys/kern/kern_descrip.c user/alfred/ewatchdog/sys/kern/kern_et.c user/alfred/ewatchdog/sys/kern/kern_event.c user/alfred/ewatchdog/sys/kern/kern_exec.c user/alfred/ewatchdog/sys/kern/kern_exit.c user/alfred/ewatchdog/sys/kern/kern_fork.c user/alfred/ewatchdog/sys/kern/kern_intr.c user/alfred/ewatchdog/sys/kern/kern_physio.c user/alfred/ewatchdog/sys/kern/kern_proc.c user/alfred/ewatchdog/sys/kern/kern_racct.c user/alfred/ewatchdog/sys/kern/kern_resource.c user/alfred/ewatchdog/sys/kern/kern_sharedpage.c user/alfred/ewatchdog/sys/kern/kern_shutdown.c user/alfred/ewatchdog/sys/kern/kern_sig.c user/alfred/ewatchdog/sys/kern/kern_synch.c user/alfred/ewatchdog/sys/kern/kern_sysctl.c user/alfred/ewatchdog/sys/kern/kern_tc.c user/alfred/ewatchdog/sys/kern/kern_time.c user/alfred/ewatchdog/sys/kern/kern_timeout.c user/alfred/ewatchdog/sys/kern/kern_umtx.c user/alfred/ewatchdog/sys/kern/subr_bus_dma.c user/alfred/ewatchdog/sys/kern/subr_log.c user/alfred/ewatchdog/sys/kern/subr_param.c user/alfred/ewatchdog/sys/kern/subr_sleepqueue.c user/alfred/ewatchdog/sys/kern/subr_trap.c user/alfred/ewatchdog/sys/kern/subr_uio.c user/alfred/ewatchdog/sys/kern/subr_witness.c user/alfred/ewatchdog/sys/kern/sys_capability.c user/alfred/ewatchdog/sys/kern/sys_generic.c user/alfred/ewatchdog/sys/kern/sys_process.c user/alfred/ewatchdog/sys/kern/syscalls.c user/alfred/ewatchdog/sys/kern/syscalls.master user/alfred/ewatchdog/sys/kern/systrace_args.c user/alfred/ewatchdog/sys/kern/sysv_shm.c user/alfred/ewatchdog/sys/kern/tty.c user/alfred/ewatchdog/sys/kern/uipc_domain.c user/alfred/ewatchdog/sys/kern/uipc_mbuf.c user/alfred/ewatchdog/sys/kern/uipc_mqueue.c user/alfred/ewatchdog/sys/kern/uipc_sem.c user/alfred/ewatchdog/sys/kern/uipc_shm.c user/alfred/ewatchdog/sys/kern/uipc_sockbuf.c user/alfred/ewatchdog/sys/kern/uipc_socket.c user/alfred/ewatchdog/sys/kern/uipc_syscalls.c user/alfred/ewatchdog/sys/kern/uipc_usrreq.c user/alfred/ewatchdog/sys/kern/vfs_aio.c user/alfred/ewatchdog/sys/kern/vfs_bio.c user/alfred/ewatchdog/sys/kern/vfs_cluster.c user/alfred/ewatchdog/sys/kern/vfs_default.c user/alfred/ewatchdog/sys/kern/vfs_lookup.c user/alfred/ewatchdog/sys/kern/vfs_subr.c user/alfred/ewatchdog/sys/kern/vfs_syscalls.c user/alfred/ewatchdog/sys/kern/vfs_vnops.c user/alfred/ewatchdog/sys/libkern/arm/divsi3.S user/alfred/ewatchdog/sys/libkern/arm/ffs.S user/alfred/ewatchdog/sys/libkern/arm/ldivmod.S user/alfred/ewatchdog/sys/mips/mips/machdep.c user/alfred/ewatchdog/sys/mips/mips/pmap.c user/alfred/ewatchdog/sys/mips/mips/tick.c user/alfred/ewatchdog/sys/mips/nlm/tick.c user/alfred/ewatchdog/sys/mips/rmi/tick.c user/alfred/ewatchdog/sys/modules/ath/Makefile user/alfred/ewatchdog/sys/modules/drm2/drm2/Makefile user/alfred/ewatchdog/sys/modules/dtrace/Makefile user/alfred/ewatchdog/sys/modules/dtrace/dtraceall/dtraceall.c user/alfred/ewatchdog/sys/modules/dtrace/fbt/Makefile user/alfred/ewatchdog/sys/modules/ixgbe/Makefile user/alfred/ewatchdog/sys/modules/mqueue/Makefile user/alfred/ewatchdog/sys/modules/uart/Makefile user/alfred/ewatchdog/sys/modules/zfs/Makefile user/alfred/ewatchdog/sys/net/bpf.c user/alfred/ewatchdog/sys/net/bridgestp.c user/alfred/ewatchdog/sys/net/if.c user/alfred/ewatchdog/sys/net/if_bridge.c user/alfred/ewatchdog/sys/net/if_gre.c user/alfred/ewatchdog/sys/net/pfil.c user/alfred/ewatchdog/sys/net/pfil.h user/alfred/ewatchdog/sys/net/route.c user/alfred/ewatchdog/sys/net/route.h user/alfred/ewatchdog/sys/net/rtsock.c user/alfred/ewatchdog/sys/net80211/ieee80211.c user/alfred/ewatchdog/sys/net80211/ieee80211_freebsd.c user/alfred/ewatchdog/sys/net80211/ieee80211_freebsd.h user/alfred/ewatchdog/sys/net80211/ieee80211_hostap.c user/alfred/ewatchdog/sys/net80211/ieee80211_ht.c user/alfred/ewatchdog/sys/net80211/ieee80211_hwmp.c user/alfred/ewatchdog/sys/net80211/ieee80211_mesh.c user/alfred/ewatchdog/sys/net80211/ieee80211_output.c user/alfred/ewatchdog/sys/net80211/ieee80211_power.c user/alfred/ewatchdog/sys/net80211/ieee80211_proto.h user/alfred/ewatchdog/sys/net80211/ieee80211_superg.c user/alfred/ewatchdog/sys/net80211/ieee80211_var.h user/alfred/ewatchdog/sys/net80211/ieee80211_wds.c user/alfred/ewatchdog/sys/netinet/igmp.c user/alfred/ewatchdog/sys/netinet/ip_carp.c user/alfred/ewatchdog/sys/netinet/ip_input.c user/alfred/ewatchdog/sys/netinet/ip_mroute.c user/alfred/ewatchdog/sys/netinet/ip_options.c user/alfred/ewatchdog/sys/netinet/ip_output.c user/alfred/ewatchdog/sys/netinet/libalias/alias.c user/alfred/ewatchdog/sys/netinet/libalias/alias_db.c user/alfred/ewatchdog/sys/netinet/sctputil.c user/alfred/ewatchdog/sys/netinet/siftr.c user/alfred/ewatchdog/sys/netinet/tcp_output.c user/alfred/ewatchdog/sys/netinet/tcp_subr.c user/alfred/ewatchdog/sys/netinet/tcp_timer.c user/alfred/ewatchdog/sys/netinet6/icmp6.c user/alfred/ewatchdog/sys/netinet6/ip6_input.c user/alfred/ewatchdog/sys/netinet6/ip6_mroute.c user/alfred/ewatchdog/sys/netinet6/ip6_output.c user/alfred/ewatchdog/sys/netinet6/mld6.c user/alfred/ewatchdog/sys/netinet6/nd6_nbr.c user/alfred/ewatchdog/sys/netinet6/raw_ip6.c user/alfred/ewatchdog/sys/netipsec/key.c user/alfred/ewatchdog/sys/netpfil/ipfw/ip_fw2.c user/alfred/ewatchdog/sys/netpfil/ipfw/ip_fw_dynamic.c user/alfred/ewatchdog/sys/netpfil/ipfw/ip_fw_private.h user/alfred/ewatchdog/sys/netpfil/pf/if_pfsync.c user/alfred/ewatchdog/sys/netpfil/pf/pf.c user/alfred/ewatchdog/sys/netsmb/smb_dev.c user/alfred/ewatchdog/sys/nfs/krpc_subr.c user/alfred/ewatchdog/sys/nfs/nfs_common.c user/alfred/ewatchdog/sys/nfsclient/nfs_bio.c user/alfred/ewatchdog/sys/nfsclient/nfs_subs.c user/alfred/ewatchdog/sys/nfsclient/nfs_vfsops.c user/alfred/ewatchdog/sys/nfsclient/nfs_vnops.c user/alfred/ewatchdog/sys/nfsclient/nfsm_subs.h user/alfred/ewatchdog/sys/nfsclient/nfsmount.h user/alfred/ewatchdog/sys/nfsserver/nfs_serv.c user/alfred/ewatchdog/sys/nfsserver/nfs_srvkrpc.c user/alfred/ewatchdog/sys/ofed/drivers/infiniband/core/umem.c user/alfred/ewatchdog/sys/ofed/include/linux/file.h user/alfred/ewatchdog/sys/ofed/include/linux/linux_compat.c user/alfred/ewatchdog/sys/ofed/include/linux/timer.h user/alfred/ewatchdog/sys/pc98/pc98/machdep.c user/alfred/ewatchdog/sys/powerpc/aim/clock.c user/alfred/ewatchdog/sys/powerpc/aim/machdep.c user/alfred/ewatchdog/sys/powerpc/aim/mmu_oea.c user/alfred/ewatchdog/sys/powerpc/aim/mmu_oea64.c user/alfred/ewatchdog/sys/powerpc/aim/trap.c user/alfred/ewatchdog/sys/powerpc/aim/trap_subr32.S user/alfred/ewatchdog/sys/powerpc/aim/trap_subr64.S user/alfred/ewatchdog/sys/powerpc/booke/clock.c user/alfred/ewatchdog/sys/powerpc/booke/machdep.c user/alfred/ewatchdog/sys/powerpc/booke/pmap.c user/alfred/ewatchdog/sys/powerpc/powerpc/cpu.c user/alfred/ewatchdog/sys/powerpc/powerpc/mmu_if.m user/alfred/ewatchdog/sys/powerpc/powerpc/pmap_dispatch.c user/alfred/ewatchdog/sys/powerpc/ps3/platform_ps3.c user/alfred/ewatchdog/sys/powerpc/wii/platform_wii.c user/alfred/ewatchdog/sys/rpc/clnt_dg.c user/alfred/ewatchdog/sys/rpc/clnt_rc.c user/alfred/ewatchdog/sys/rpc/clnt_vc.c user/alfred/ewatchdog/sys/rpc/rpc_generic.c user/alfred/ewatchdog/sys/rpc/rpcm_subs.h user/alfred/ewatchdog/sys/rpc/svc.c user/alfred/ewatchdog/sys/rpc/svc_dg.c user/alfred/ewatchdog/sys/rpc/svc_vc.c user/alfred/ewatchdog/sys/security/audit/audit.h user/alfred/ewatchdog/sys/security/audit/audit_arg.c user/alfred/ewatchdog/sys/security/audit/audit_bsm.c user/alfred/ewatchdog/sys/security/audit/audit_private.h user/alfred/ewatchdog/sys/security/mac/mac_process.c user/alfred/ewatchdog/sys/sparc64/conf/GENERIC user/alfred/ewatchdog/sys/sparc64/pci/ofw_pcib.c user/alfred/ewatchdog/sys/sparc64/pci/psycho.c user/alfred/ewatchdog/sys/sparc64/pci/sbbc.c user/alfred/ewatchdog/sys/sparc64/sbus/sbus.c user/alfred/ewatchdog/sys/sparc64/sparc64/machdep.c user/alfred/ewatchdog/sys/sparc64/sparc64/pmap.c user/alfred/ewatchdog/sys/sparc64/sparc64/tick.c user/alfred/ewatchdog/sys/sys/_callout.h user/alfred/ewatchdog/sys/sys/bio.h user/alfred/ewatchdog/sys/sys/buf.h user/alfred/ewatchdog/sys/sys/callout.h user/alfred/ewatchdog/sys/sys/capability.h user/alfred/ewatchdog/sys/sys/condvar.h user/alfred/ewatchdog/sys/sys/diskmbr.h user/alfred/ewatchdog/sys/sys/domain.h user/alfred/ewatchdog/sys/sys/file.h user/alfred/ewatchdog/sys/sys/filedesc.h user/alfred/ewatchdog/sys/sys/mbuf.h user/alfred/ewatchdog/sys/sys/mount.h user/alfred/ewatchdog/sys/sys/mouse.h user/alfred/ewatchdog/sys/sys/mutex.h user/alfred/ewatchdog/sys/sys/namei.h user/alfred/ewatchdog/sys/sys/param.h user/alfred/ewatchdog/sys/sys/pmckern.h user/alfred/ewatchdog/sys/sys/proc.h user/alfred/ewatchdog/sys/sys/protosw.h user/alfred/ewatchdog/sys/sys/rmlock.h user/alfred/ewatchdog/sys/sys/rwlock.h user/alfred/ewatchdog/sys/sys/signalvar.h user/alfred/ewatchdog/sys/sys/sleepqueue.h user/alfred/ewatchdog/sys/sys/socket.h user/alfred/ewatchdog/sys/sys/socketvar.h user/alfred/ewatchdog/sys/sys/sx.h user/alfred/ewatchdog/sys/sys/syscall.h user/alfred/ewatchdog/sys/sys/syscall.mk user/alfred/ewatchdog/sys/sys/sysproto.h user/alfred/ewatchdog/sys/sys/systm.h user/alfred/ewatchdog/sys/sys/time.h user/alfred/ewatchdog/sys/sys/timeet.h user/alfred/ewatchdog/sys/sys/types.h user/alfred/ewatchdog/sys/sys/user.h user/alfred/ewatchdog/sys/sys/vnode.h user/alfred/ewatchdog/sys/ufs/ffs/ffs_alloc.c user/alfred/ewatchdog/sys/ufs/ffs/ffs_balloc.c user/alfred/ewatchdog/sys/ufs/ffs/ffs_rawread.c user/alfred/ewatchdog/sys/ufs/ffs/ffs_softdep.c user/alfred/ewatchdog/sys/ufs/ffs/ffs_vfsops.c user/alfred/ewatchdog/sys/ufs/ffs/ffs_vnops.c user/alfred/ewatchdog/sys/ufs/ufs/ufs_extern.h user/alfred/ewatchdog/sys/ufs/ufs/ufs_quota.c user/alfred/ewatchdog/sys/ufs/ufs/ufs_vnops.c user/alfred/ewatchdog/sys/vm/default_pager.c user/alfred/ewatchdog/sys/vm/device_pager.c user/alfred/ewatchdog/sys/vm/phys_pager.c user/alfred/ewatchdog/sys/vm/pmap.h user/alfred/ewatchdog/sys/vm/sg_pager.c user/alfred/ewatchdog/sys/vm/swap_pager.c user/alfred/ewatchdog/sys/vm/swap_pager.h user/alfred/ewatchdog/sys/vm/uma_core.c user/alfred/ewatchdog/sys/vm/vm.h user/alfred/ewatchdog/sys/vm/vm_fault.c user/alfred/ewatchdog/sys/vm/vm_glue.c user/alfred/ewatchdog/sys/vm/vm_init.c user/alfred/ewatchdog/sys/vm/vm_kern.c user/alfred/ewatchdog/sys/vm/vm_map.c user/alfred/ewatchdog/sys/vm/vm_meter.c user/alfred/ewatchdog/sys/vm/vm_mmap.c user/alfred/ewatchdog/sys/vm/vm_object.c user/alfred/ewatchdog/sys/vm/vm_object.h user/alfred/ewatchdog/sys/vm/vm_page.c user/alfred/ewatchdog/sys/vm/vm_page.h user/alfred/ewatchdog/sys/vm/vm_pageout.c user/alfred/ewatchdog/sys/vm/vm_pager.c user/alfred/ewatchdog/sys/vm/vm_pager.h user/alfred/ewatchdog/sys/vm/vm_reserv.c user/alfred/ewatchdog/sys/vm/vnode_pager.c user/alfred/ewatchdog/sys/x86/isa/atrtc.c user/alfred/ewatchdog/sys/x86/isa/clock.c user/alfred/ewatchdog/sys/x86/x86/local_apic.c user/alfred/ewatchdog/sys/xdr/xdr_mbuf.c user/alfred/ewatchdog/tools/make_libdeps.sh user/alfred/ewatchdog/tools/regression/lib/libc/stdio/Makefile user/alfred/ewatchdog/tools/regression/pjdfstest/Makefile user/alfred/ewatchdog/tools/regression/pjdfstest/pjdfstest.c user/alfred/ewatchdog/tools/regression/pjdfstest/tests/misc.sh user/alfred/ewatchdog/tools/regression/security/cap_test/cap_test_capabilities.c user/alfred/ewatchdog/tools/regression/security/cap_test/cap_test_relative.c user/alfred/ewatchdog/tools/test/iconv/tablegen/cmp.sh user/alfred/ewatchdog/tools/tools/cxgbetool/cxgbetool.c user/alfred/ewatchdog/usr.bin/Makefile.arm user/alfred/ewatchdog/usr.bin/c89/c89.c user/alfred/ewatchdog/usr.bin/c99/c99.c user/alfred/ewatchdog/usr.bin/calendar/calendars/calendar.birthday user/alfred/ewatchdog/usr.bin/dc/dc.c user/alfred/ewatchdog/usr.bin/ee/nls/ru_RU.KOI8-R/ee.msg user/alfred/ewatchdog/usr.bin/find/extern.h user/alfred/ewatchdog/usr.bin/find/find.1 user/alfred/ewatchdog/usr.bin/find/find.h user/alfred/ewatchdog/usr.bin/find/function.c user/alfred/ewatchdog/usr.bin/find/option.c user/alfred/ewatchdog/usr.bin/grep/regex/tre-fastmatch.c user/alfred/ewatchdog/usr.bin/head/head.1 user/alfred/ewatchdog/usr.bin/hexdump/conv.c user/alfred/ewatchdog/usr.bin/kdump/kdump.c user/alfred/ewatchdog/usr.bin/kdump/mksubr user/alfred/ewatchdog/usr.bin/netstat/netstat.1 user/alfred/ewatchdog/usr.bin/procstat/procstat_files.c user/alfred/ewatchdog/usr.bin/renice/renice.8 user/alfred/ewatchdog/usr.bin/script/script.1 user/alfred/ewatchdog/usr.bin/tail/tail.1 user/alfred/ewatchdog/usr.bin/top/machine.c user/alfred/ewatchdog/usr.bin/truss/extern.h user/alfred/ewatchdog/usr.bin/truss/main.c user/alfred/ewatchdog/usr.bin/unifdef/unifdefall.sh user/alfred/ewatchdog/usr.bin/unvis/Makefile user/alfred/ewatchdog/usr.bin/vis/Makefile user/alfred/ewatchdog/usr.sbin/ac/ac.8 user/alfred/ewatchdog/usr.sbin/bhyve/acpi.c user/alfred/ewatchdog/usr.sbin/bhyve/bhyverun.c user/alfred/ewatchdog/usr.sbin/bhyve/bhyverun.h user/alfred/ewatchdog/usr.sbin/bhyve/mptbl.c user/alfred/ewatchdog/usr.sbin/bhyve/pci_emul.c user/alfred/ewatchdog/usr.sbin/bhyve/pci_passthru.c user/alfred/ewatchdog/usr.sbin/bhyve/pci_virtio_block.c user/alfred/ewatchdog/usr.sbin/bhyve/pci_virtio_net.c user/alfred/ewatchdog/usr.sbin/bhyve/virtio.h user/alfred/ewatchdog/usr.sbin/bhyvectl/bhyvectl.c user/alfred/ewatchdog/usr.sbin/bhyveload/bhyveload.8 user/alfred/ewatchdog/usr.sbin/bhyveload/bhyveload.c user/alfred/ewatchdog/usr.sbin/moused/moused.c user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions-disk.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions-extractimage.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions-mountdisk.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions-newfs.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions-packages.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions-parse.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/functions.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/backend/parseconfig.sh user/alfred/ewatchdog/usr.sbin/pc-sysinstall/conf/pc-sysinstall.conf user/alfred/ewatchdog/usr.sbin/pc-sysinstall/examples/README user/alfred/ewatchdog/usr.sbin/pkg/Makefile user/alfred/ewatchdog/usr.sbin/pkg/pkg.c user/alfred/ewatchdog/usr.sbin/rtadvd/rtadvd.c user/alfred/ewatchdog/usr.sbin/tzsetup/tzsetup.c user/alfred/ewatchdog/usr.sbin/usbconfig/usbconfig.c user/alfred/ewatchdog/usr.sbin/watchdogd/watchdogd.8 Directory Properties: user/alfred/ewatchdog/ (props changed) user/alfred/ewatchdog/cddl/contrib/opensolaris/ (props changed) user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/alfred/ewatchdog/cddl/contrib/opensolaris/lib/libzfs/ (props changed) user/alfred/ewatchdog/contrib/binutils/ (props changed) user/alfred/ewatchdog/contrib/libc-vis/ (props changed) user/alfred/ewatchdog/contrib/openbsm/ (props changed) user/alfred/ewatchdog/contrib/openpam/ (props changed) user/alfred/ewatchdog/contrib/tzdata/ (props changed) user/alfred/ewatchdog/crypto/openssh/ (props changed) user/alfred/ewatchdog/gnu/lib/ (props changed) user/alfred/ewatchdog/lib/libc/ (props changed) user/alfred/ewatchdog/lib/libutil/ (props changed) user/alfred/ewatchdog/lib/libvmmapi/ (props changed) user/alfred/ewatchdog/sbin/ (props changed) user/alfred/ewatchdog/sbin/ipfw/ (props changed) user/alfred/ewatchdog/share/man/man4/ (props changed) user/alfred/ewatchdog/sys/ (props changed) user/alfred/ewatchdog/sys/amd64/vmm/ (props changed) user/alfred/ewatchdog/sys/boot/ (props changed) user/alfred/ewatchdog/sys/cddl/contrib/opensolaris/ (props changed) user/alfred/ewatchdog/sys/conf/ (props changed) user/alfred/ewatchdog/usr.bin/calendar/ (props changed) user/alfred/ewatchdog/usr.bin/procstat/ (props changed) user/alfred/ewatchdog/usr.sbin/bhyve/ (props changed) user/alfred/ewatchdog/usr.sbin/bhyvectl/ (props changed) user/alfred/ewatchdog/usr.sbin/bhyveload/ (props changed) user/alfred/ewatchdog/usr.sbin/rtadvd/ (props changed) Modified: user/alfred/ewatchdog/MAINTAINERS ============================================================================== --- user/alfred/ewatchdog/MAINTAINERS Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/MAINTAINERS Wed Mar 20 05:23:23 2013 (r248541) @@ -124,3 +124,6 @@ isci(4) jimharris Pre-commit review req cmx daniel@roe.ch Pre-commit review preferred. filemon obrien Pre-commit review preferred. sysdoc trhodes Pre-commit review preferred. +sh(1) jilles Pre-commit review requested. This also applies + to kill(1), printf(1) and test(1) which are + compiled in as builtins. Modified: user/alfred/ewatchdog/ObsoleteFiles.inc ============================================================================== --- user/alfred/ewatchdog/ObsoleteFiles.inc Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/ObsoleteFiles.inc Wed Mar 20 05:23:23 2013 (r248541) @@ -38,6 +38,81 @@ # xargs -n1 | sort | uniq -d; # done +OLD_FILES+=usr/share/man/man4/vinum.4.gz +# 20130311: Ports are no more available via cvsup +OLD_FILES+=usr/share/examples/cvsup/ports-supfile +OLD_FILES+=usr/share/examples/cvsup/refuse +OLD_FILES+=usr/share/examples/cvsup/refuse.README +# 20130309: NWFS and NCP supports removed +OLD_FILES+=usr/bin/ncplist +OLD_FILES+=usr/bin/ncplogin +OLD_FILES+=usr/bin/ncplogout +OLD_FILES+=usr/include/fs/nwfs/nwfs.h +OLD_FILES+=usr/include/fs/nwfs/nwfs_mount.h +OLD_FILES+=usr/include/fs/nwfs/nwfs_node.h +OLD_FILES+=usr/include/fs/nwfs/nwfs_subr.h +OLD_DIRS+=usr/include/fs/nwfs +OLD_FILES+=usr/include/netncp/ncp.h +OLD_FILES+=usr/include/netncp/ncp_cfg.h +OLD_FILES+=usr/include/netncp/ncp_conn.h +OLD_FILES+=usr/include/netncp/ncp_file.h +OLD_FILES+=usr/include/netncp/ncp_lib.h +OLD_FILES+=usr/include/netncp/ncp_ncp.h +OLD_FILES+=usr/include/netncp/ncp_nls.h +OLD_FILES+=usr/include/netncp/ncp_rcfile.h +OLD_FILES+=usr/include/netncp/ncp_rq.h +OLD_FILES+=usr/include/netncp/ncp_sock.h +OLD_FILES+=usr/include/netncp/ncp_subr.h +OLD_FILES+=usr/include/netncp/ncp_user.h +OLD_FILES+=usr/include/netncp/ncpio.h +OLD_FILES+=usr/include/netncp/nwerror.h +OLD_DIRS+=usr/include/netncp +OLD_FILES+=usr/lib/libncp.a +OLD_FILES+=usr/lib/libncp.so +OLD_LIBS+=usr/lib/libncp.so.4 +OLD_FILES+=usr/lib/libncp_p.a +OLD_FILES+=usr/lib32/libncp.a +OLD_FILES+=usr/lib32/libncp.so +OLD_LIBS+=usr/lib32/libncp.so.4 +OLD_FILES+=usr/lib32/libncp_p.a +OLD_FILES+=usr/sbin/mount_nwfs +OLD_FILES+=usr/share/examples/nwclient/dot.nwfsrc +OLD_FILES+=usr/share/examples/nwclient/nwfs.sh.sample +OLD_DIRS+=usr/share/examples/nwclient +OLD_FILES+=usr/share/man/man1/ncplist.1.gz +OLD_FILES+=usr/share/man/man1/ncplogin.1.gz +OLD_FILES+=usr/share/man/man1/ncplogout.1.gz +OLD_FILES+=usr/share/man/man8/mount_nwfs.8.gz +# 20130302: NTFS support removed +OLD_FILES+=rescue/mount_ntfs +OLD_FILES+=sbin/mount_ntfs +OLD_FILES+=usr/include/fs/ntfs/ntfs.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_compr.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_ihash.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_inode.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_subr.h +OLD_FILES+=usr/include/fs/ntfs/ntfs_vfsops.h +OLD_FILES+=usr/include/fs/ntfs/ntfsmount.h +OLD_DIRS+=usr/include/fs/ntfs +OLD_FILES+=usr/share/man/man8/mount_ntfs.8.gz +# 20130302: PORTALFS support removed +OLD_FILES+=usr/include/fs/portalfs/portal.h +OLD_DIRS+=usr/include/fs/portalfs +OLD_FILES+=usr/sbin/mount_portalfs +OLD_FILES+=usr/share/examples/portal/README +OLD_FILES+=usr/share/examples/portal/portal.conf +OLD_DIRS+=usr/share/examples/portal +OLD_FILES+=usr/share/man/man8/mount_portalfs.8.gz +# 20130302: CODAFS support removed +OLD_FILES+=usr/share/man/man4/coda.4.gz +# 20130302: XFS support removed +OLD_FILES+=usr/share/man/man5/xfs.5.gz +# 20130302: Capsicum overhaul +OLD_FILES+=usr/share/man/man2/cap_getrights.2.gz +OLD_FILES+=usr/share/man/man2/cap_new.2.gz +# 20130213: OpenSSL 1.0.1e import +OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_verifyrecover.3.gz +OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_verifyrecover_init.3.gz # 20130116: removed long unused directories for .1aout section manpages OLD_FILES+=usr/share/man/en.ISO8859-1/man1aout OLD_FILES+=usr/share/man/en.UTF-8/man1aout @@ -58,9 +133,10 @@ OLD_DIRS+=var/remote # 20121114: zpool-features manual page moved from section 5 to 7 OLD_FILES+=usr/share/man/man5/zpool-features.5.gz # 20121022: remove harp, hfa and idt man page -OLD_FILES+=share/man/man4/harp.4 -OLD_FILES+=share/man/man4/hfa.4 -OLD_FILES+=share/man/man4/idt.4 +OLD_FILES+=usr/share/man/man4/harp.4.gz +OLD_FILES+=usr/share/man/man4/hfa.4.gz +OLD_FILES+=usr/share/man/man4/idt.4.gz +OLD_FILES+=usr/share/man/man4/if_idt.4.gz # 20121022: VFS_LOCK_GIANT elimination OLD_FILES+=usr/share/man/man9/VFS_LOCK_GIANT.9.gz OLD_FILES+=usr/share/man/man9/VFS_UNLOCK_GIANT.9.gz Modified: user/alfred/ewatchdog/UPDATING ============================================================================== --- user/alfred/ewatchdog/UPDATING Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/UPDATING Wed Mar 20 05:23:23 2013 (r248541) @@ -26,6 +26,37 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20130308: + CTL_DISABLE has also been added to the sparc64 GENERIC (for further + information, see the respective 20130304 entry). + +20130304: + Recent commits to callout(9) changed the size of struct callout, + so the KBI is probably heavily disturbed. Also, some functions + in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced + by macros. Every kernel module using it won't load, so rebuild + is requested. + + The ctl device has been re-enabled in GENERIC for i386 and amd64, + but does not initialize by default (because of the new CTL_DISABLE + option) to save memory. To re-enable it, remove the CTL_DISABLE + option from the kernel config file or set kern.cam.ctl.disable=0 + in /boot/loader.conf. + +20130301: + The ctl device has been disabled in GENERIC for i386 and amd64. + This was done due to the extra memory being allocated at system + initialisation time by the ctl driver which was only used if + a CAM target device was created. This makes a FreeBSD system + unusable on 128MB or less of RAM. + +20130208: + A new compression method (lz4) has been merged to -HEAD. Please + refer to zpool-features(7) for more information. + + Please refer to the "ZFS notes" section of this file for information + on upgrading boot ZFS pools. + 20130129: A BSD-licensed patch(1) variant has been added and is installed as bsdpatch, being the GNU version the default patch. @@ -39,8 +70,8 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 unlikely event that -M was the last option on the command line and the command line contained at least two files and a target directory the first file will have logs appended to it. The -M - option served little practical purpose in the last decade so it's - used expected to be extremely rare. + option served little practical purpose in the last decade so its + use is expected to be extremely rare. 20121223: After switching to Clang as the default compiler some users of ZFS Modified: user/alfred/ewatchdog/bin/cp/cp.1 ============================================================================== --- user/alfred/ewatchdog/bin/cp/cp.1 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/cp/cp.1 Wed Mar 20 05:23:23 2013 (r248541) @@ -32,7 +32,7 @@ .\" @(#)cp.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd September 4, 2012 +.Dd March 15, 2013 .Dt CP 1 .Os .Sh NAME @@ -251,6 +251,27 @@ signal, the current input and output fil will be written to the standard output. .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Make a copy of file +.Pa foo +named +.Pa bar : +.Pp +.Dl $ cp foo bar +.Pp +Copy a group of files to the +.Pa /tmp +directory: +.Pp +.Dl $ cp *.txt /tmp +.Pp +Copy the directory +.Pa junk +and all of its contents (including any subdirectories) to the +.Pa /tmp +directory: +.Pp +.Dl $ cp -R junk /tmp .Sh COMPATIBILITY Historic versions of the .Nm Modified: user/alfred/ewatchdog/bin/ls/ls.1 ============================================================================== --- user/alfred/ewatchdog/bin/ls/ls.1 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/ls/ls.1 Wed Mar 20 05:23:23 2013 (r248541) @@ -32,7 +32,7 @@ .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 .\" $FreeBSD$ .\" -.Dd November 8, 2012 +.Dd March 15, 2013 .Dt LS 1 .Os .Sh NAME @@ -718,6 +718,24 @@ for more information. .El .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +List the contents of the current working directory in long format: +.Pp +.Dl $ ls -l +.Pp +In addition to listing the contents of the current working directory in +long format, show inode numbers, file flags (see +.Xr chflags 1 ) , +and suffix each filename with a symbol representing its file type: +.Pp +.Dl $ ls -lioF +.Pp +List the files in +.Pa /var/log , +sorting the output such that the mostly recently modified entries are +printed first: +.Pp +.Dl $ ls -lt /var/log .Sh COMPATIBILITY The group field is now automatically included in the long listing for files in order to be compatible with the Modified: user/alfred/ewatchdog/bin/mkdir/mkdir.1 ============================================================================== --- user/alfred/ewatchdog/bin/mkdir/mkdir.1 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/mkdir/mkdir.1 Wed Mar 20 05:23:23 2013 (r248541) @@ -32,7 +32,7 @@ .\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94 .\" $FreeBSD$ .\" -.Dd January 25, 1994 +.Dd March 15, 2013 .Dt MKDIR 1 .Os .Sh NAME @@ -87,6 +87,23 @@ Be verbose when creating directories, li The user must have write permission in the parent directory. .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Create a directory named +.Pa foobar : +.Pp +.Dl $ mkdir foobar +.Pp +Create a directory named +.Pa foobar +and set its file mode to 700: +.Pp +.Dl $ mkdir -m 700 foobar +.Pp +Create a directory named +.Pa cow/horse/monkey , +creating any non-existent intermediate directories as necessary: +.Pp +.Dl $ mkdir -p cow/horse/monkey .Sh COMPATIBILITY The .Fl v Modified: user/alfred/ewatchdog/bin/mv/mv.1 ============================================================================== --- user/alfred/ewatchdog/bin/mv/mv.1 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/mv/mv.1 Wed Mar 20 05:23:23 2013 (r248541) @@ -32,7 +32,7 @@ .\" @(#)mv.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd August 28, 2012 +.Dd March 15, 2013 .Dt MV 1 .Os .Sh NAME @@ -155,6 +155,16 @@ rm -rf source_file .Ed .Sh EXIT STATUS .Ex -std +.Sh EXAMPLES +Rename file +.Pa foo +to +.Pa bar , +overwriting +.Pa bar +if it already exists: +.Pp +.Dl $ mv -f foo bar .Sh COMPATIBILITY The .Fl h , Modified: user/alfred/ewatchdog/bin/ps/ps.1 ============================================================================== --- user/alfred/ewatchdog/bin/ps/ps.1 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/ps/ps.1 Wed Mar 20 05:23:23 2013 (r248541) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd February 7, 2013 +.Dd March 15, 2013 .Dt PS 1 .Os .Sh NAME @@ -689,6 +689,10 @@ attempts to automatically determine the .It Pa /boot/kernel/kernel default system namelist .El +.Sh EXAMPLES +Display information on all system processes: +.Pp +.Dl $ ps -auxw .Sh SEE ALSO .Xr kill 1 , .Xr pgrep 1 , Modified: user/alfred/ewatchdog/bin/rm/rm.1 ============================================================================== --- user/alfred/ewatchdog/bin/rm/rm.1 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/rm/rm.1 Wed Mar 20 05:23:23 2013 (r248541) @@ -32,7 +32,7 @@ .\" @(#)rm.1 8.5 (Berkeley) 12/5/94 .\" $FreeBSD$ .\" -.Dd October 31, 2010 +.Dd March 15, 2013 .Dt RM 1 .Os .Sh NAME @@ -193,6 +193,19 @@ When is specified with .Fl f the file will be overwritten and removed even if it has hard links. +.Sh EXAMPLES +Recursively remove all files contained within the +.Pa foobar +directory hierarchy: +.Pp +.Dl $ rm -rf foobar +.Pp +Either of these commands will remove the file +.Pa -f : +.Bd -literal -offset indent +$ rm -- -f +$ rm ./-f +.Ed .Sh COMPATIBILITY The .Nm Modified: user/alfred/ewatchdog/bin/rmdir/rmdir.1 ============================================================================== --- user/alfred/ewatchdog/bin/rmdir/rmdir.1 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/rmdir/rmdir.1 Wed Mar 20 05:23:23 2013 (r248541) @@ -32,7 +32,7 @@ .\" @(#)rmdir.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd March 21, 2004 +.Dd March 15, 2013 .Dt RMDIR 1 .Os .Sh NAME @@ -86,6 +86,18 @@ successfully. .It Li >0 An error occurred. .El +.Sh EXAMPLES +Remove the directory +.Pa foobar , +if it is empty: +.Pp +.Dl $ rmdir foobar +.Pp +Remove all directories up to and including +.Pa cow , +stopping at the first non-empty directory (if any): +.Pp +.Dl $ rmdir -p cow/horse/monkey .Sh SEE ALSO .Xr rm 1 .Sh STANDARDS Modified: user/alfred/ewatchdog/bin/sh/jobs.c ============================================================================== --- user/alfred/ewatchdog/bin/sh/jobs.c Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/sh/jobs.c Wed Mar 20 05:23:23 2013 (r248541) @@ -458,14 +458,15 @@ freejob(struct job *jp) int -waitcmd(int argc, char **argv) +waitcmd(int argc __unused, char **argv __unused) { struct job *job; int status, retval; struct job *jp; - if (argc > 1) { - job = getjob(argv[1]); + nextopt(""); + if (*argptr != NULL) { + job = getjob(*argptr); } else { job = NULL; } Modified: user/alfred/ewatchdog/bin/sh/trap.c ============================================================================== --- user/alfred/ewatchdog/bin/sh/trap.c Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/bin/sh/trap.c Wed Mar 20 05:23:23 2013 (r248541) @@ -455,7 +455,6 @@ dotrap(void) last_trapsig = i; savestatus = exitstatus; evalstring(trap[i], 0); - exitstatus = savestatus; /* * If such a command was not @@ -464,9 +463,11 @@ dotrap(void) * trap action to have an effect * outside of it. */ - if (prev_evalskip != 0) { + if (evalskip == 0 || + prev_evalskip != 0) { evalskip = prev_evalskip; skipcount = prev_skipcount; + exitstatus = savestatus; } if (i == SIGCHLD) Modified: user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zdb/zdb.c Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zdb/zdb.c Wed Mar 20 05:23:23 2013 (r248541) @@ -545,7 +545,7 @@ static void dump_metaslab_stats(metaslab_t *msp) { char maxbuf[32]; - space_map_t *sm = &msp->ms_map; + space_map_t *sm = msp->ms_map; avl_tree_t *t = sm->sm_pp_root; int free_pct = sm->sm_space * 100 / sm->sm_size; @@ -561,7 +561,7 @@ dump_metaslab(metaslab_t *msp) { vdev_t *vd = msp->ms_group->mg_vd; spa_t *spa = vd->vdev_spa; - space_map_t *sm = &msp->ms_map; + space_map_t *sm = msp->ms_map; space_map_obj_t *smo = &msp->ms_smo; char freebuf[32]; @@ -1189,7 +1189,7 @@ dump_bpobj_cb(void *arg, const blkptr_t } static void -dump_bpobj(bpobj_t *bpo, char *name) +dump_bpobj(bpobj_t *bpo, char *name, int indent) { char bytes[32]; char comp[32]; @@ -1199,31 +1199,57 @@ dump_bpobj(bpobj_t *bpo, char *name) return; zdb_nicenum(bpo->bpo_phys->bpo_bytes, bytes); - if (bpo->bpo_havesubobj) { + if (bpo->bpo_havesubobj && bpo->bpo_phys->bpo_subobjs != 0) { zdb_nicenum(bpo->bpo_phys->bpo_comp, comp); zdb_nicenum(bpo->bpo_phys->bpo_uncomp, uncomp); - (void) printf("\n %s: %llu local blkptrs, %llu subobjs, " - "%s (%s/%s comp)\n", - name, (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, + (void) printf(" %*s: object %llu, %llu local blkptrs, " + "%llu subobjs, %s (%s/%s comp)\n", + indent * 8, name, + (u_longlong_t)bpo->bpo_object, + (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, (u_longlong_t)bpo->bpo_phys->bpo_num_subobjs, bytes, comp, uncomp); + + for (uint64_t i = 0; i < bpo->bpo_phys->bpo_num_subobjs; i++) { + uint64_t subobj; + bpobj_t subbpo; + int error; + VERIFY0(dmu_read(bpo->bpo_os, + bpo->bpo_phys->bpo_subobjs, + i * sizeof (subobj), sizeof (subobj), &subobj, 0)); + error = bpobj_open(&subbpo, bpo->bpo_os, subobj); + if (error != 0) { + (void) printf("ERROR %u while trying to open " + "subobj id %llu\n", + error, (u_longlong_t)subobj); + continue; + } + dump_bpobj(&subbpo, "subobj", indent + 1); + bpobj_close(&subbpo); + } } else { - (void) printf("\n %s: %llu blkptrs, %s\n", - name, (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, bytes); + (void) printf(" %*s: object %llu, %llu blkptrs, %s\n", + indent * 8, name, + (u_longlong_t)bpo->bpo_object, + (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, + bytes); } if (dump_opt['d'] < 5) return; - (void) printf("\n"); - (void) bpobj_iterate_nofree(bpo, dump_bpobj_cb, NULL, NULL); + if (indent == 0) { + (void) bpobj_iterate_nofree(bpo, dump_bpobj_cb, NULL, NULL); + (void) printf("\n"); + } } static void dump_deadlist(dsl_deadlist_t *dl) { dsl_deadlist_entry_t *dle; + uint64_t unused; char bytes[32]; char comp[32]; char uncomp[32]; @@ -1242,14 +1268,24 @@ dump_deadlist(dsl_deadlist_t *dl) (void) printf("\n"); + /* force the tree to be loaded */ + dsl_deadlist_space_range(dl, 0, UINT64_MAX, &unused, &unused, &unused); + for (dle = avl_first(&dl->dl_tree); dle; dle = AVL_NEXT(&dl->dl_tree, dle)) { - (void) printf(" mintxg %llu -> obj %llu\n", - (longlong_t)dle->dle_mintxg, - (longlong_t)dle->dle_bpobj.bpo_object); + if (dump_opt['d'] >= 5) { + char buf[128]; + (void) snprintf(buf, sizeof (buf), "mintxg %llu -> ", + (longlong_t)dle->dle_mintxg, + (longlong_t)dle->dle_bpobj.bpo_object); - if (dump_opt['d'] >= 5) - dump_bpobj(&dle->dle_bpobj, ""); + dump_bpobj(&dle->dle_bpobj, buf, 0); + } else { + (void) printf("mintxg %llu -> obj %llu\n", + (longlong_t)dle->dle_mintxg, + (longlong_t)dle->dle_bpobj.bpo_object); + + } } } @@ -1272,7 +1308,7 @@ fuid_table_destroy() * print uid or gid information. * For normal POSIX id just the id is printed in decimal format. * For CIFS files with FUID the fuid is printed in hex followed by - * the doman-rid string. + * the domain-rid string. */ static void print_idstr(uint64_t id, const char *id_type) @@ -2160,11 +2196,11 @@ zdb_leak_init(spa_t *spa, zdb_cb_t *zcb) for (int m = 0; m < vd->vdev_ms_count; m++) { metaslab_t *msp = vd->vdev_ms[m]; mutex_enter(&msp->ms_lock); - space_map_unload(&msp->ms_map); - VERIFY(space_map_load(&msp->ms_map, + space_map_unload(msp->ms_map); + VERIFY(space_map_load(msp->ms_map, &zdb_space_map_ops, SM_ALLOC, &msp->ms_smo, spa->spa_meta_objset) == 0); - msp->ms_map.sm_ppd = vd; + msp->ms_map->sm_ppd = vd; mutex_exit(&msp->ms_lock); } } @@ -2187,7 +2223,7 @@ zdb_leak_fini(spa_t *spa) for (int m = 0; m < vd->vdev_ms_count; m++) { metaslab_t *msp = vd->vdev_ms[m]; mutex_enter(&msp->ms_lock); - space_map_unload(&msp->ms_map); + space_map_unload(msp->ms_map); mutex_exit(&msp->ms_lock); } } @@ -2529,10 +2565,11 @@ dump_zpool(spa_t *spa) if (dump_opt['d'] || dump_opt['i']) { dump_dir(dp->dp_meta_objset); if (dump_opt['d'] >= 3) { - dump_bpobj(&spa->spa_deferred_bpobj, "Deferred frees"); + dump_bpobj(&spa->spa_deferred_bpobj, + "Deferred frees", 0); if (spa_version(spa) >= SPA_VERSION_DEADLISTS) { dump_bpobj(&spa->spa_dsl_pool->dp_free_bpobj, - "Pool snapshot frees"); + "Pool snapshot frees", 0); } if (spa_feature_is_active(spa, Modified: user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Wed Mar 20 05:23:23 2013 (r248541) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 10, 2013 +.Dd March 1, 2013 .Dt ZFS 8 .Os .Sh NAME @@ -526,6 +526,39 @@ if the snapshot has been marked for defe .Qq Nm Cm destroy -d command. Otherwise, the property is .Cm off . +.It Sy logicalreferenced +The amount of space that is +.Qq logically +accessible by this dataset. +See the +.Sy referenced +property. +The logical space ignores the effect of the +.Sy compression +and +.Sy copies +properties, giving a quantity closer to the amount of data that applications +see. +However, it does include space consumed by metadata. +.Pp +This property can also be referred to by its shortened column name, +.Sy lrefer . +.It Sy logicalused +The amount of space that is +.Qq logically +consumed by this dataset and all its descendents. +See the +.Sy used +property. +The logical space ignores the effect of the +.Sy compression +and +.Sy copies +properties, giving a quantity closer to the amount of data that applications +see. +.Pp +This property can also be referred to by its shortened column name, +.Sy lused . .It Sy mounted For file systems, indicates whether the file system is currently mounted. This property can be either Modified: user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zpool/zpool.8 ============================================================================== --- user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Wed Mar 20 05:23:23 2013 (r248541) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 15, 2012 +.Dd March 14, 2013 .Dt ZPOOL 8 .Os .Sh NAME @@ -1608,14 +1608,15 @@ is specified, the command exits after .Ar count reports are printed. .Pp -If a scrub or resilver is in progress, this command reports the percentage done -and the estimated time to completion. Both of these are only approximate, +If a scrub or resilver is in progress, this command reports the percentage +done and the estimated time to completion. Both of these are only approximate, because the amount of data in the pool and the other workloads on the system can change. .Bl -tag -width indent .It Fl x Only display status for pools that are exhibiting errors or are otherwise unavailable. +Warnings about pools not using the latest on-disk format will not be included. .It Fl v Displays verbose data error information, printing out a complete list of all data errors since the last complete pool scrub. Modified: user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Wed Mar 20 05:23:23 2013 (r248541) @@ -4031,7 +4031,10 @@ status_callback(zpool_handle_t *zhp, voi * If we were given 'zpool status -x', only report those pools with * problems. */ - if (reason == ZPOOL_STATUS_OK && cbp->cb_explain) { + if (cbp->cb_explain && + (reason == ZPOOL_STATUS_OK || + reason == ZPOOL_STATUS_VERSION_OLDER || + reason == ZPOOL_STATUS_FEAT_DISABLED)) { if (!cbp->cb_allpools) { (void) printf(gettext("pool '%s' is healthy\n"), zpool_get_name(zhp)); Modified: user/alfred/ewatchdog/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h ============================================================================== --- user/alfred/ewatchdog/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h Wed Mar 20 05:23:23 2013 (r248541) @@ -24,6 +24,7 @@ * Copyright (c) 2011 Pawel Jakub Dawidek . * All rights reserved. * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2013 Martin Matuska . All rights reserved. */ #ifndef _LIBFS_IMPL_H @@ -216,6 +217,7 @@ extern void libzfs_fru_clear(libzfs_hand #ifndef sun static int zfs_kernel_version = 0; +static int zfs_ioctl_version = 0; /* * This is FreeBSD version of ioctl, because Solaris' ioctl() updates @@ -225,19 +227,34 @@ static int zfs_kernel_version = 0; static __inline int zcmd_ioctl(int fd, unsigned long cmd, zfs_cmd_t *zc) { - size_t oldsize, zfs_kernel_version_size; + size_t oldsize, zfs_kernel_version_size, zfs_ioctl_version_size; int version, ret, cflag = ZFS_CMD_COMPAT_NONE; - zfs_kernel_version_size = sizeof(zfs_kernel_version); - if (zfs_kernel_version == 0) { - sysctlbyname("vfs.zfs.version.spa", &zfs_kernel_version, - &zfs_kernel_version_size, NULL, 0); + zfs_ioctl_version_size = sizeof(zfs_ioctl_version); + if (zfs_ioctl_version == 0) { + sysctlbyname("vfs.zfs.version.ioctl", &zfs_ioctl_version, + &zfs_ioctl_version_size, NULL, 0); } - if (zfs_kernel_version == SPA_VERSION_15 || - zfs_kernel_version == SPA_VERSION_14 || - zfs_kernel_version == SPA_VERSION_13) - cflag = ZFS_CMD_COMPAT_V15; + /* + * If vfs.zfs.version.ioctl is not defined, assume we have v28 + * compatible binaries and use vfs.zfs.version.spa to test for v15 + */ + if (zfs_ioctl_version < ZFS_IOCVER_DEADMAN) { + cflag = ZFS_CMD_COMPAT_V28; + zfs_kernel_version_size = sizeof(zfs_kernel_version); + + if (zfs_kernel_version == 0) { + sysctlbyname("vfs.zfs.version.spa", + &zfs_kernel_version, + &zfs_kernel_version_size, NULL, 0); + } + + if (zfs_kernel_version == SPA_VERSION_15 || + zfs_kernel_version == SPA_VERSION_14 || + zfs_kernel_version == SPA_VERSION_13) + cflag = ZFS_CMD_COMPAT_V15; + } oldsize = zc->zc_nvlist_dst_size; ret = zcmd_ioctl_compat(fd, cmd, zc, cflag); Modified: user/alfred/ewatchdog/cddl/contrib/opensolaris/tools/ctf/cvt/output.c ============================================================================== --- user/alfred/ewatchdog/cddl/contrib/opensolaris/tools/ctf/cvt/output.c Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/cddl/contrib/opensolaris/tools/ctf/cvt/output.c Wed Mar 20 05:23:23 2013 (r248541) @@ -363,6 +363,7 @@ sort_iidescs(Elf *elf, const char *file, for (i = 0; i < nent; i++) { GElf_Sym sym; + char *bname; iidesc_t **tolist; GElf_Sym ssym; iidesc_match_t smatch; @@ -377,7 +378,8 @@ sort_iidescs(Elf *elf, const char *file, switch (GELF_ST_TYPE(sym.st_info)) { case STT_FILE: - match.iim_file = match.iim_name; + bname = strrchr(match.iim_name, '/'); + match.iim_file = bname == NULL ? match.iim_name : bname + 1; continue; case STT_OBJECT: tolist = iiburst->iib_objts; Modified: user/alfred/ewatchdog/contrib/binutils/gas/config/tc-arm.c ============================================================================== --- user/alfred/ewatchdog/contrib/binutils/gas/config/tc-arm.c Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/contrib/binutils/gas/config/tc-arm.c Wed Mar 20 05:23:23 2013 (r248541) @@ -651,6 +651,7 @@ struct asm_opcode #define BAD_ARGS _("bad arguments to instruction") #define BAD_PC _("r15 not allowed here") +#define BAD_SP _("r13 not allowed here") #define BAD_COND _("instruction cannot be conditional") #define BAD_OVERLAP _("registers may not be the same") #define BAD_HIREG _("lo register required") @@ -659,6 +660,7 @@ struct asm_opcode #define BAD_BRANCH _("branch must be last instruction in IT block") #define BAD_NOT_IT _("instruction not allowed in IT block") #define BAD_FPU _("selected FPU does not support instruction") +#define BAD_VMRS _("APSR_nzcv may only be used with fpscr") static struct hash_control *arm_ops_hsh; static struct hash_control *arm_cond_hsh; @@ -3079,6 +3081,7 @@ s_arm_unwind_fnend (int ignored ATTRIBUT record_alignment (now_seg, 2); ptr = frag_more (8); + memset(ptr, 0, 8); where = frag_now_fix () - 8; /* Self relative offset of the function start. */ @@ -5163,10 +5166,6 @@ parse_neon_mov (char **str, int *which_o Case 10: VMOV.F32 , # Case 11: VMOV.F64
, # */ inst.operands[i].immisfloat = 1; - else if (parse_big_immediate (&ptr, i) == SUCCESS) - /* Case 2: VMOV.
, # - Case 3: VMOV.
, # */ - ; else if ((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype, &optype)) != FAIL) { @@ -5206,6 +5205,10 @@ parse_neon_mov (char **str, int *which_o inst.operands[i++].present = 1; } } + else if (parse_big_immediate (&ptr, i) == SUCCESS) + /* Case 2: VMOV.
, # + Case 3: VMOV.
, # */ + ; else { first_error (_("expected or or operand")); @@ -7095,6 +7098,64 @@ do_vfp_nsyn_msr (void) } static void +do_vfp_vmrs (void) +{ + int rt; + + /* The destination register can be r0-r14 or APSR_nzcv */ + if (inst.operands[0].reg > 14) + { + inst.error = BAD_PC; + return; + } + + /* If the destination is r13 and not in ARM mode then unprefictable */ + if (thumb_mode && inst.operands[0].reg == REG_SP) + { + inst.error = BAD_SP; + return; + } + + /* If the destination is APSR_nzcv */ + if (inst.operands[0].isvec && inst.operands[1].reg != 1) + { + inst.error = BAD_VMRS; + return; + } + + if (inst.operands[0].isvec) + rt = 15; + else + rt = inst.operands[0].reg; + + /* Or in the registers to use */ + inst.instruction |= rt << 12; + inst.instruction |= inst.operands[1].reg << 16; +} + +static void +do_vfp_vmsr (void) +{ + /* The destination register can be r0-r14 or APSR_nzcv */ + if (inst.operands[1].reg > 14) + { + inst.error = BAD_PC; + return; + } + + /* If the destination is r13 and not in ARM mode then unprefictable */ + if (thumb_mode && inst.operands[0].reg == REG_SP) + { + inst.error = BAD_SP; + return; + } + + /* Or in the registers to use */ + inst.instruction |= inst.operands[1].reg << 12; + inst.instruction |= inst.operands[0].reg << 16; +} + +static void do_mrs (void) { if (do_vfp_nsyn_mrs () == SUCCESS) @@ -15725,6 +15786,8 @@ static const struct asm_opcode insns[] = cCE(ftouizs, ebc0ac0, 2, (RVS, RVS), vfp_sp_monadic), cCE(fmrx, ef00a10, 2, (RR, RVC), rd_rn), cCE(fmxr, ee00a10, 2, (RVC, RR), rn_rd), + cCE(vmrs, ef00a10, 2, (APSR_RR, RVC), vfp_vmrs), + cCE(vmsr, ee00a10, 2, (RVC, RR), vfp_vmsr), /* Memory operations. */ cCE(flds, d100a00, 2, (RVS, ADDRGLDC), vfp_sp_ldst), @@ -17350,6 +17413,7 @@ create_unwind_entry (int have_data) /* Allocate the table entry. */ ptr = frag_more ((size << 2) + 4); + memset(ptr, 0, (size << 2) + 4); where = frag_now_fix () - ((size << 2) + 4); switch (unwind.personality_index) Modified: user/alfred/ewatchdog/contrib/libc-vis/unvis.3 ============================================================================== --- user/alfred/ewatchdog/contrib/libc-vis/unvis.3 Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/contrib/libc-vis/unvis.3 Wed Mar 20 05:23:23 2013 (r248541) @@ -1,4 +1,4 @@ -.\" $NetBSD: unvis.3,v 1.23 2011/03/17 14:06:29 wiz Exp $ +.\" $NetBSD: unvis.3,v 1.27 2012/12/15 07:34:36 wiz Exp $ .\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 @@ -126,15 +126,17 @@ The function has several return codes that must be handled properly. They are: .Bl -tag -width UNVIS_VALIDPUSH -.It Li \&0 (zero) +.It Li \&0 No (zero) Another character is necessary; nothing has been recognized yet. .It Dv UNVIS_VALID A valid character has been recognized and is available at the location -pointed to by cp. +pointed to by +.Fa cp . .It Dv UNVIS_VALIDPUSH A valid character has been recognized and is available at the location -pointed to by cp; however, the character currently passed in should -be passed in again. +pointed to by +.Fa cp ; +however, the character currently passed in should be passed in again. .It Dv UNVIS_NOCHAR A valid sequence was detected, but no character was produced. This return code is necessary to indicate a logical break between characters. @@ -150,7 +152,7 @@ one more time with flag set to to extract any remaining character (the character passed in is ignored). .Pp The -.Ar flag +.Fa flag argument is also used to specify the encoding style of the source. If set to .Dv VIS_HTTPSTYLE @@ -161,7 +163,8 @@ will decode URI strings as specified in If set to .Dv VIS_HTTP1866 , .Fn unvis -will decode URI strings as specified in RFC 1866. +will decode entity references and numeric character references +as specified in RFC 1866. If set to .Dv VIS_MIMESTYLE , .Fn unvis @@ -169,7 +172,9 @@ will decode MIME Quoted-Printable string If set to .Dv VIS_NOESCAPE , .Fn unvis -will not decode \e quoted characters. +will not decode +.Ql \e +quoted characters. .Pp The following code fragment illustrates a proper use of .Fn unvis . @@ -204,7 +209,7 @@ The functions and .Fn strnunvisx will return \-1 on error and set -.Va errno +.Va errno to: .Bl -tag -width Er .It Bq Er EINVAL @@ -212,7 +217,7 @@ An invalid escape sequence was detected, .El .Pp In addition the functions -.Fn strnunvis +.Fn strnunvis and .Fn strnunvisx will can also set @@ -244,4 +249,14 @@ and functions appeared in .Nx 6.0 and -.Fx 10.0 . +.Fx 9.2 . +.Sh BUGS +The names +.Dv VIS_HTTP1808 +and +.Dv VIS_HTTP1866 +are wrong. +Percent-encoding was defined in RFC 1738, the original RFC for URL. +RFC 1866 defines HTML 2.0, an application of SGML, from which it +inherits concepts of numeric character references and entity +references. Modified: user/alfred/ewatchdog/contrib/libc-vis/unvis.c ============================================================================== --- user/alfred/ewatchdog/contrib/libc-vis/unvis.c Wed Mar 20 03:34:24 2013 (r248540) +++ user/alfred/ewatchdog/contrib/libc-vis/unvis.c Wed Mar 20 05:23:23 2013 (r248541) @@ -1,4 +1,4 @@ -/* $NetBSD: unvis.c,v 1.40 2012/12/14 21:31:01 christos Exp $ */ +/* $NetBSD: unvis.c,v 1.41 2012/12/15 04:29:53 matt Exp $ */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Wed Mar 20 16:25:20 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 065E7902; Wed, 20 Mar 2013 16:25:20 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E2A6E2A3; Wed, 20 Mar 2013 16:25:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2KGPJAB097375; Wed, 20 Mar 2013 16:25:19 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2KGPJv9097373; Wed, 20 Mar 2013 16:25:19 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303201625.r2KGPJv9097373@svn.freebsd.org> From: Attilio Rao Date: Wed, 20 Mar 2013 16:25:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248558 - user/attilio/vmobj-readlock/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Mar 2013 16:25:20 -0000 Author: attilio Date: Wed Mar 20 16:25:19 2013 New Revision: 248558 URL: http://svnweb.freebsd.org/changeset/base/248558 Log: Fix up a vm_page_sleep() call that wasn't fixed in the locking scheme conversion. Sponsored by: EMC / Isilon storage division Reported by: flo, pho Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.c Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.c ============================================================================== --- user/attilio/vmobj-readlock/sys/vm/vm_page.c Wed Mar 20 15:39:27 2013 (r248557) +++ user/attilio/vmobj-readlock/sys/vm/vm_page.c Wed Mar 20 16:25:19 2013 (r248558) @@ -2337,7 +2337,9 @@ retrylookup: */ vm_page_aflag_set(m, PGA_REFERENCED); vm_page_lock(m); + VM_OBJECT_WUNLOCK(object); vm_page_sleep(m, "pgrbwt"); + VM_OBJECT_WLOCK(object); goto retrylookup; } else { if ((allocflags & VM_ALLOC_WIRED) != 0) { From owner-svn-src-user@FreeBSD.ORG Wed Mar 20 16:28:01 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 3F3C2A38; Wed, 20 Mar 2013 16:28:01 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 11D632BA; Wed, 20 Mar 2013 16:28:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2KGS1Qf097784; Wed, 20 Mar 2013 16:28:01 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2KGRwcU097759; Wed, 20 Mar 2013 16:27:58 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303201627.r2KGRwcU097759@svn.freebsd.org> From: Attilio Rao Date: Wed, 20 Mar 2013 16:27:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248559 - in user/attilio/vmcontention: contrib/llvm/tools/clang/lib/Driver lib/libc/sys sbin/ipfw sbin/ldconfig sbin/shutdown share/man/man4 sys/arm/conf sys/arm/freescale sys/boot/fdt... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Mar 2013 16:28:01 -0000 Author: attilio Date: Wed Mar 20 16:27:58 2013 New Revision: 248559 URL: http://svnweb.freebsd.org/changeset/base/248559 Log: MFC Added: user/attilio/vmcontention/sys/arm/conf/EFIKA_MX - copied unchanged from r248558, head/sys/arm/conf/EFIKA_MX user/attilio/vmcontention/sys/arm/freescale/ - copied from r248558, head/sys/arm/freescale/ user/attilio/vmcontention/sys/boot/fdt/dts/efikamx.dts - copied unchanged from r248558, head/sys/boot/fdt/dts/efikamx.dts user/attilio/vmcontention/sys/boot/fdt/dts/imx51x.dtsi - copied unchanged from r248558, head/sys/boot/fdt/dts/imx51x.dtsi user/attilio/vmcontention/sys/dev/ata/chipsets/ata-fsl.c - copied unchanged from r248558, head/sys/dev/ata/chipsets/ata-fsl.c user/attilio/vmcontention/sys/dev/uart/uart_dev_imx.c - copied unchanged from r248558, head/sys/dev/uart/uart_dev_imx.c user/attilio/vmcontention/sys/dev/uart/uart_dev_imx5xx.h - copied unchanged from r248558, head/sys/dev/uart/uart_dev_imx5xx.h user/attilio/vmcontention/sys/dev/usb/controller/ehci_imx.c - copied unchanged from r248558, head/sys/dev/usb/controller/ehci_imx.c Modified: user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Tools.cpp user/attilio/vmcontention/lib/libc/sys/recv.2 user/attilio/vmcontention/lib/libc/sys/socket.2 user/attilio/vmcontention/lib/libc/sys/socketpair.2 user/attilio/vmcontention/sbin/ipfw/ipfw.8 user/attilio/vmcontention/sbin/ipfw/ipfw2.c user/attilio/vmcontention/sbin/ipfw/ipfw2.h user/attilio/vmcontention/sbin/ldconfig/ldconfig.c user/attilio/vmcontention/sbin/shutdown/shutdown.8 user/attilio/vmcontention/share/man/man4/unix.4 user/attilio/vmcontention/sys/dev/ath/if_ath.c user/attilio/vmcontention/sys/dev/ath/if_ath_beacon.c user/attilio/vmcontention/sys/dev/ath/if_ath_rx.c user/attilio/vmcontention/sys/dev/ath/if_ath_rx_edma.c user/attilio/vmcontention/sys/dev/ath/if_ath_tx.c user/attilio/vmcontention/sys/dev/ath/if_ath_tx_edma.c user/attilio/vmcontention/sys/dev/ath/if_athvar.h user/attilio/vmcontention/sys/dev/mii/rgephy.c user/attilio/vmcontention/sys/dev/mii/rgephyreg.h user/attilio/vmcontention/sys/dev/uart/uart.h user/attilio/vmcontention/sys/dev/uart/uart_bus_fdt.c user/attilio/vmcontention/sys/dev/usb/controller/xhci.c user/attilio/vmcontention/sys/kern/uipc_socket.c user/attilio/vmcontention/sys/kern/uipc_syscalls.c user/attilio/vmcontention/sys/kern/uipc_usrreq.c user/attilio/vmcontention/sys/net80211/ieee80211_freebsd.c user/attilio/vmcontention/sys/netinet/ip_fw.h user/attilio/vmcontention/sys/netpfil/ipfw/ip_fw2.c user/attilio/vmcontention/sys/netpfil/ipfw/ip_fw_log.c user/attilio/vmcontention/sys/netpfil/ipfw/ip_fw_sockopt.c user/attilio/vmcontention/sys/sys/domain.h user/attilio/vmcontention/sys/sys/socket.h user/attilio/vmcontention/sys/vm/vnode_pager.c Directory Properties: user/attilio/vmcontention/ (props changed) user/attilio/vmcontention/contrib/llvm/ (props changed) user/attilio/vmcontention/contrib/llvm/tools/clang/ (props changed) user/attilio/vmcontention/lib/libc/ (props changed) user/attilio/vmcontention/sbin/ (props changed) user/attilio/vmcontention/sbin/ipfw/ (props changed) user/attilio/vmcontention/share/man/man4/ (props changed) user/attilio/vmcontention/sys/ (props changed) user/attilio/vmcontention/sys/boot/ (props changed) Modified: user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Tools.cpp ============================================================================== --- user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Wed Mar 20 16:27:58 2013 (r248559) @@ -5438,6 +5438,7 @@ void freebsd::Assemble::ConstructJob(Com switch(getToolChain().getTriple().getEnvironment()) { case llvm::Triple::GNUEABI: case llvm::Triple::EABI: + CmdArgs.push_back("-meabi=5"); break; default: Modified: user/attilio/vmcontention/lib/libc/sys/recv.2 ============================================================================== --- user/attilio/vmcontention/lib/libc/sys/recv.2 Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/lib/libc/sys/recv.2 Wed Mar 20 16:27:58 2013 (r248559) @@ -28,7 +28,7 @@ .\" @(#)recv.2 8.3 (Berkeley) 2/21/94 .\" $FreeBSD$ .\" -.Dd September 12, 2012 +.Dd March 19, 2013 .Dt RECV 2 .Os .Sh NAME @@ -121,11 +121,12 @@ argument to a function is formed by .Em or Ap ing one or more of the values: -.Bl -column ".Dv MSG_DONTWAIT" -offset indent +.Bl -column ".Dv MSG_CMSG_CLOEXEC" -offset indent .It Dv MSG_OOB Ta process out-of-band data .It Dv MSG_PEEK Ta peek at incoming message .It Dv MSG_WAITALL Ta wait for full request or error .It Dv MSG_DONTWAIT Ta do not block +.It Dv MSG_CMSG_CLOEXEC Ta set received fds close-on-exec .El .Pp The @@ -227,6 +228,10 @@ and .Fa cmsg_type set to .Dv SCM_RIGHTS . +The close-on-exec flag on received descriptors is set according to the +.Dv MSG_CMSG_CLOEXEC +flag passed to +.Fn recvmsg . .Pp Process credentials can also be passed as ancillary data for .Dv AF_UNIX Modified: user/attilio/vmcontention/lib/libc/sys/socket.2 ============================================================================== --- user/attilio/vmcontention/lib/libc/sys/socket.2 Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/lib/libc/sys/socket.2 Wed Mar 20 16:27:58 2013 (r248559) @@ -28,7 +28,7 @@ .\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd December 7, 2012 +.Dd March 19, 2013 .Dt SOCKET 2 .Os .Sh NAME @@ -115,6 +115,15 @@ which is available only to the super-use which is planned, but not yet implemented, are not described here. .Pp +Additionally, the following flags are allowed in the +.Fa type +argument: +.Pp +.Bd -literal -offset indent -compact +SOCK_CLOEXEC Set close-on-exec on the new descriptor, +SOCK_NONBLOCK Set non-blocking mode on the new socket +.Ed +.Pp The .Fa protocol argument Modified: user/attilio/vmcontention/lib/libc/sys/socketpair.2 ============================================================================== --- user/attilio/vmcontention/lib/libc/sys/socketpair.2 Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/lib/libc/sys/socketpair.2 Wed Mar 20 16:27:58 2013 (r248559) @@ -28,7 +28,7 @@ .\" @(#)socketpair.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd June 4, 1993 +.Dd March 19, 2013 .Dt SOCKETPAIR 2 .Os .Sh NAME @@ -57,6 +57,14 @@ are returned in and .Fa sv Ns [1] . The two sockets are indistinguishable. +.Pp +The +.Dv SOCK_CLOEXEC +and +.Dv SOCK_NONBLOCK +flags in the +.Fa type +argument apply to both descriptors. .Sh RETURN VALUES .Rv -std socketpair .Sh ERRORS @@ -79,6 +87,7 @@ process address space. .Sh SEE ALSO .Xr pipe 2 , .Xr read 2 , +.Xr socket 2 , .Xr write 2 .Sh HISTORY The Modified: user/attilio/vmcontention/sbin/ipfw/ipfw.8 ============================================================================== --- user/attilio/vmcontention/sbin/ipfw/ipfw.8 Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/sbin/ipfw/ipfw.8 Wed Mar 20 16:27:58 2013 (r248559) @@ -960,6 +960,61 @@ It is possible to use the keyword with setfib. If the tablearg value is not within the compiled range of fibs, the packet's fib is set to 0. +.It Cm setdscp Ar DSCP | number | tablearg +Set specified DiffServ codepoint for an IPv4/IPv6 packet. +Processing continues at the next rule. +Supported values are: +.Pp +.Cm CS0 +.Pq Dv 000000 , +.Cm CS1 +.Pq Dv 001000 , +.Cm CS2 +.Pq Dv 010000 , +.Cm CS3 +.Pq Dv 011000 , +.Cm CS4 +.Pq Dv 100000 , +.Cm CS5 +.Pq Dv 101000 , +.Cm CS6 +.Pq Dv 110000 , +.Cm CS7 +.Pq Dv 111000 , +.Cm AF11 +.Pq Dv 001010 , +.Cm AF12 +.Pq Dv 001100 , +.Cm AF13 +.Pq Dv 001110 , +.Cm AF21 +.Pq Dv 010010 , +.Cm AF22 +.Pq Dv 010100 , +.Cm AF23 +.Pq Dv 010110 , +.Cm AF31 +.Pq Dv 011010 , +.Cm AF32 +.Pq Dv 011100 , +.Cm AF33 +.Pq Dv 011110 , +.Cm AF41 +.Pq Dv 100010 , +.Cm AF42 +.Pq Dv 100100 , +.Cm AF43 +.Pq Dv 100110 , +.Cm EF +.Pq Dv 101110 , +.Cm BE +.Pq Dv 000000 . +Additionally, DSCP value can be specified by number (0..64). +It is also possible to use the +.Cm tablearg +keyword with setdscp. +If the tablearg value is not within the 0..64 range, lower 6 bits of supplied +value are used. .It Cm reass Queue and reassemble IP fragments. If the packet is not fragmented, counters are updated and @@ -1454,6 +1509,17 @@ The supported IP types of service are: The absence of a particular type may be denoted with a .Ql \&! . +.It Cm dscp spec Ns Op , Ns Ar spec +Matches IPv4/IPv6 packets whose +.Cm DS +field value is contained in +.Ar spec +mask. +Multiple values can be specified via +the comma separated list. +Value can be one of keywords used in +.Cm setdscp +action or exact number. .It Cm ipttl Ar ttl-list Matches IPv4 packets whose time to live is included in .Ar ttl-list , @@ -2976,6 +3042,23 @@ configured on but coming in on .Li fxp1 would be dropped. +.Pp +The +.Cm setdscp +option could be used to (re)mark user traffic, +by adding the following to the appropriate place in ruleset: +.Pp +.Dl "ipfw add setdscp be ip from any to any dscp af11,af21" +.Pp +This rule drops all incoming packets that appear to be coming from another +directly connected system but on the wrong interface. +For example, a packet with a source address of +.Li 192.168.0.0/24 , +configured on +.Li fxp0 , +but coming in on +.Li fxp1 +would be dropped. .Ss DYNAMIC RULES In order to protect a site from flood attacks involving fake TCP packets, it is safer to use dynamic rules: Modified: user/attilio/vmcontention/sbin/ipfw/ipfw2.c ============================================================================== --- user/attilio/vmcontention/sbin/ipfw/ipfw2.c Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/sbin/ipfw/ipfw2.c Wed Mar 20 16:27:58 2013 (r248559) @@ -167,6 +167,32 @@ static struct _s_x f_iptos[] = { { NULL, 0 } }; +static struct _s_x f_ipdscp[] = { + { "af11", IPTOS_DSCP_AF11 >> 2 }, /* 001010 */ + { "af12", IPTOS_DSCP_AF12 >> 2 }, /* 001100 */ + { "af13", IPTOS_DSCP_AF13 >> 2 }, /* 001110 */ + { "af21", IPTOS_DSCP_AF21 >> 2 }, /* 010010 */ + { "af22", IPTOS_DSCP_AF22 >> 2 }, /* 010100 */ + { "af23", IPTOS_DSCP_AF23 >> 2 }, /* 010110 */ + { "af31", IPTOS_DSCP_AF31 >> 2 }, /* 011010 */ + { "af32", IPTOS_DSCP_AF32 >> 2 }, /* 011100 */ + { "af33", IPTOS_DSCP_AF33 >> 2 }, /* 011110 */ + { "af41", IPTOS_DSCP_AF41 >> 2 }, /* 100010 */ + { "af42", IPTOS_DSCP_AF42 >> 2 }, /* 100100 */ + { "af43", IPTOS_DSCP_AF43 >> 2 }, /* 100110 */ + { "be", IPTOS_DSCP_CS0 >> 2 }, /* 000000 */ + { "ef", IPTOS_DSCP_EF >> 2 }, /* 101110 */ + { "cs0", IPTOS_DSCP_CS0 >> 2 }, /* 000000 */ + { "cs1", IPTOS_DSCP_CS1 >> 2 }, /* 001000 */ + { "cs2", IPTOS_DSCP_CS2 >> 2 }, /* 010000 */ + { "cs3", IPTOS_DSCP_CS3 >> 2 }, /* 011000 */ + { "cs4", IPTOS_DSCP_CS4 >> 2 }, /* 100000 */ + { "cs5", IPTOS_DSCP_CS5 >> 2 }, /* 101000 */ + { "cs6", IPTOS_DSCP_CS6 >> 2 }, /* 110000 */ + { "cs7", IPTOS_DSCP_CS7 >> 2 }, /* 100000 */ + { NULL, 0 } +}; + static struct _s_x limit_masks[] = { {"all", DYN_SRC_ADDR|DYN_SRC_PORT|DYN_DST_ADDR|DYN_DST_PORT}, {"src-addr", DYN_SRC_ADDR}, @@ -237,6 +263,7 @@ static struct _s_x rule_actions[] = { { "nat", TOK_NAT }, { "reass", TOK_REASS }, { "setfib", TOK_SETFIB }, + { "setdscp", TOK_SETDSCP }, { "call", TOK_CALL }, { "return", TOK_RETURN }, { NULL, 0 } /* terminator */ @@ -714,6 +741,51 @@ fill_newports(ipfw_insn_u16 *cmd, char * return (i); } +/* + * Fill the body of the command with the list of DiffServ codepoints. + */ +static void +fill_dscp(ipfw_insn *cmd, char *av, int cblen) +{ + uint32_t *low, *high; + char *s = av, *a; + int code; + + cmd->opcode = O_DSCP; + cmd->len |= F_INSN_SIZE(ipfw_insn_u32) + 1; + + CHECK_CMDLEN; + + low = (uint32_t *)(cmd + 1); + high = low + 1; + + *low = 0; + *high = 0; + + while (s != NULL) { + a = strchr(s, ','); + + if (a != NULL) + *a++ = '\0'; + + if (isalpha(*s)) { + if ((code = match_token(f_ipdscp, s)) == -1) + errx(EX_DATAERR, "Unknown DSCP code"); + } else { + code = strtoul(s, NULL, 10); + if (code < 0 || code > 63) + errx(EX_DATAERR, "Invalid DSCP value"); + } + + if (code > 32) + *high |= 1 << (code - 32); + else + *low |= 1 << code; + + s = a; + } +} + static struct _s_x icmpcodes[] = { { "net", ICMP_UNREACH_NET }, { "host", ICMP_UNREACH_HOST }, @@ -972,6 +1044,32 @@ print_icmptypes(ipfw_insn_u32 *cmd) } } +static void +print_dscp(ipfw_insn_u32 *cmd) +{ + int i, c; + uint32_t *v; + char sep= ' '; + const char *code; + + printf(" dscp"); + i = 0; + c = 0; + v = cmd->d; + while (i < 64) { + if (*v & (1 << i)) { + if ((code = match_value(f_ipdscp, i)) != NULL) + printf("%c%s", sep, code); + else + printf("%c%d", sep, i); + sep = ','; + } + + if ((++i % 32) == 0) + v++; + } +} + /* * show_ipfw() prints the body of an ipfw rule. * Because the standard rule has at least proto src_ip dst_ip, we use @@ -1205,6 +1303,17 @@ show_ipfw(struct ip_fw *rule, int pcwidt PRINT_UINT_ARG("setfib ", cmd->arg1); break; + case O_SETDSCP: + { + const char *code; + + if ((code = match_value(f_ipdscp, cmd->arg1)) != NULL) + printf("setdscp %s", code); + else + PRINT_UINT_ARG("setdscp ", cmd->arg1); + } + break; + case O_REASS: printf("reass"); break; @@ -1500,6 +1609,10 @@ show_ipfw(struct ip_fw *rule, int pcwidt printf(" ipprecedence %u", (cmd->arg1) >> 5 ); break; + case O_DSCP: + print_dscp((ipfw_insn_u32 *)cmd); + break; + case O_IPLEN: if (F_LEN(cmd) == 1) printf(" iplen %u", cmd->arg1 ); @@ -3036,6 +3149,24 @@ chkarg: break; } + case TOK_SETDSCP: + { + int code; + + action->opcode = O_SETDSCP; + NEED1("missing DSCP code"); + if (_substrcmp(*av, "tablearg") == 0) { + action->arg1 = IP_FW_TABLEARG; + } else if (isalpha(*av[0])) { + if ((code = match_token(f_ipdscp, *av)) == -1) + errx(EX_DATAERR, "Unknown DSCP code"); + action->arg1 = code; + } else + action->arg1 = strtoul(*av, NULL, 10); + av++; + break; + } + case TOK_REASS: action->opcode = O_REASS; break; @@ -3448,6 +3579,12 @@ read_options: av++; break; + case TOK_DSCP: + NEED1("missing DSCP code"); + fill_dscp(cmd, *av, cblen); + av++; + break; + case TOK_IPOPTS: NEED1("missing argument for ipoptions"); fill_flags(cmd, O_IPOPT, f_ipopts, *av); @@ -3985,10 +4122,9 @@ ipfw_table_handler(int ac, char *av[]) int do_add; int is_all; size_t len; - uint32_t a, mask; + uint32_t a; uint32_t tables_max; - mask = 0; // XXX uninitialized ? len = sizeof(tables_max); if (sysctlbyname("net.inet.ip.fw.tables_max", &tables_max, &len, NULL, 0) == -1) { Modified: user/attilio/vmcontention/sbin/ipfw/ipfw2.h ============================================================================== --- user/attilio/vmcontention/sbin/ipfw/ipfw2.h Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/sbin/ipfw/ipfw2.h Wed Mar 20 16:27:58 2013 (r248559) @@ -203,6 +203,7 @@ enum tokens { TOK_SETFIB, TOK_LOOKUP, TOK_SOCKARG, + TOK_SETDSCP, }; /* * the following macro returns an error message if we run out of Modified: user/attilio/vmcontention/sbin/ldconfig/ldconfig.c ============================================================================== --- user/attilio/vmcontention/sbin/ldconfig/ldconfig.c Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/sbin/ldconfig/ldconfig.c Wed Mar 20 16:27:58 2013 (r248559) @@ -97,6 +97,13 @@ static void listhints(void); static int readhints(void); static void usage(void); +/* + * Note on aout/a.out support. + * To properly support shared libraries for compat2x, which are a.out, we need + * to support a.out here. As of 2013, bug reports are still coming in for this + * feature (on amd64 no less), so we know it is still in use. + */ + int main(int argc, char **argv) { Modified: user/attilio/vmcontention/sbin/shutdown/shutdown.8 ============================================================================== --- user/attilio/vmcontention/sbin/shutdown/shutdown.8 Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/sbin/shutdown/shutdown.8 Wed Mar 20 16:27:58 2013 (r248559) @@ -28,7 +28,7 @@ .\" @(#)shutdown.8 8.2 (Berkeley) 4/27/95 .\" $FreeBSD$ .\" -.Dd July 13, 2011 +.Dd March 19, 2013 .Dt SHUTDOWN 8 .Os .Sh NAME @@ -189,6 +189,11 @@ tells .Xr login 1 not to let anyone log in .El +.Sh EXAMPLES +Reboot the system in 30 minutes and display a warning message on the terminals +of all users currently logged in: +.Pp +.Dl # shutdown -r +30 \&"System will reboot\&" .Sh COMPATIBILITY The hours and minutes in the second time format may be separated by a colon (``:'') for backward compatibility. Modified: user/attilio/vmcontention/share/man/man4/unix.4 ============================================================================== --- user/attilio/vmcontention/share/man/man4/unix.4 Wed Mar 20 16:25:19 2013 (r248558) +++ user/attilio/vmcontention/share/man/man4/unix.4 Wed Mar 20 16:27:58 2013 (r248559) @@ -32,7 +32,7 @@ .\" @(#)unix.4 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd November 16, 2012 +.Dd March 19, 2013 .Dt UNIX 4 .Os .Sh NAME @@ -153,13 +153,15 @@ plus the size of the array of file descr .Pp The received descriptor is a .Em duplicate -of the sender's descriptor, as if it were created with a call to -.Xr dup 2 . -Per-process descriptor flags, set with -.Xr fcntl 2 , -are -.Em not -passed to a receiver. +of the sender's descriptor, as if it were created via +.Li dup(fd) +or +.Li fcntl(fd, F_DUPFD_CLOEXEC, 0) +depending on whether +.Dv MSG_CMSG_CLOEXEC +is passed in the +.Xr recvmsg 2 +call. Descriptors that are awaiting delivery, or that are purposely not received, are automatically closed by the system when the destination socket is closed. Copied: user/attilio/vmcontention/sys/arm/conf/EFIKA_MX (from r248558, head/sys/arm/conf/EFIKA_MX) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmcontention/sys/arm/conf/EFIKA_MX Wed Mar 20 16:27:58 2013 (r248559, copy of r248558, head/sys/arm/conf/EFIKA_MX) @@ -0,0 +1,177 @@ +# Kernel configuration for Efika MX Smarttop/Smartbook boards +# +# For more information on this file, please read the config(5) manual page, +# and/or the handbook section on Kernel Configuration Files: +# +# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html +# +# The handbook is also available locally in /usr/share/doc/handbook +# if you've installed the doc distribution, otherwise always see the +# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the +# latest information. +# +# An exhaustive list of options and more detailed explanations of the +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first +# in NOTES. +# +# $FreeBSD$ + +ident EFIKA_MX + +include "../freescale/imx/std.imx" + +makeoptions WITHOUT_MODULES="ahc" + +makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +#options DEBUG + +options SCHED_4BSD # 4BSD scheduler +#options PREEMPTION # Enable kernel thread preemption +options INET # InterNETworking +#options INET6 # IPv6 communications protocols +#options SCTP # Stream Control Transmission Protocol +options FFS # Berkeley Fast Filesystem +options SOFTUPDATES # Enable FFS soft updates support +options UFS_ACL # Support for access control lists +options UFS_DIRHASH # Improve performance on big directories +options UFS_GJOURNAL # Enable gjournal-based UFS journaling +#options MD_ROOT # MD is a potential root device +options NFSCL # New Network Filesystem Client +#options NFSD # New Network Filesystem Server +options NFSLOCKD # Network Lock Manager +options NFS_ROOT # NFS usable as /, requires NFSCL +options MSDOSFS # MSDOS Filesystem +options CD9660 # ISO 9660 Filesystem +#options PROCFS # Process filesystem (requires PSEUDOFS) +options PSEUDOFS # Pseudo-filesystem framework +options TMPFS # TMP Memory Filesystem +options GEOM_PART_GPT # GUID Partition Tables. +options GEOM_LABEL # Provides labelization +#options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +#options COMPAT_FREEBSD6 # Compatible with FreeBSD6 +#options COMPAT_FREEBSD7 # Compatible with FreeBSD7 +options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI +options KTRACE # ktrace(1) support +options SYSVSHM # SYSV-style shared memory +options SYSVMSG # SYSV-style message queues +options SYSVSEM # SYSV-style semaphores +options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions +options INCLUDE_CONFIG_FILE # Include this file in kernel + +# required for netbooting +#options BOOTP +#options BOOTP_COMPAT +#options BOOTP_NFSROOT +#options BOOTP_NFSV3 +#options BOOTP_WIRED_TO=ue0 +# +options ROOTDEVNAME=\"ufs:ada0s2a\" + + +# kernel/memory size reduction +#options MUTEX_NOINLINE +#options NO_FFS_SNAPSHOT +#options NO_SWAPPING +#options NO_SYSCTL_DESCR +#options RWLOCK_NOINLINE + +# Debugging support. Always need this: +options KDB # Enable kernel debugger support. +# For minimum debugger support (stable branch) use: +#options KDB_TRACE # Print a stack trace for a panic. +# For full debugger support use this instead: +options DDB # Support DDB. +#options GDB # Support remote GDB. +options DEADLKRES # Enable the deadlock resolver +options INVARIANTS # Enable calls of extra sanity checking +options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS +options WITNESS # Enable checks to detect deadlocks and cycles + +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +# Note that 'bpf' is required for DHCP. +device bpf # Berkeley packet filter + +# Pseudo devices. +device loop # Network loopback +device random # Entropy device +device ether # Ethernet support +#device vlan # 802.1Q VLAN support +#device tun # Packet tunnel. +#device md # Memory "disks" +#device gif # IPv6 and IPv4 tunneling +#device faith # IPv6-to-IPv4 relaying (translation) +#device firmware # firmware assist module + +# Serial (COM) ports +device uart # Multi-uart driver +options ALT_BREAK_TO_DEBUGGER + +device ata +device atapci # Only for helper functions +device imxata +options ATA_CAM +options ATA_STATIC_ID # Static device numbering + +device iomux # IO Multiplexor + +device gpio +device gpioled + +device fsliic +device iic +device iicbus + +# SCSI peripherals +device scbus # SCSI bus (required for SCSI) +device da # Direct Access (disks) +device cd # CD +device pass # Passthrough device (direct SCSI access) + +# USB support +#options USB_DEBUG # enable debug msgs +device ehci # OHCI USB interface +device usb # USB Bus (required) +device umass # Disks/Mass storage - Requires scbus and da +device uhid # "Human Interface Devices" +device u3g + +# USB Ethernet, requires miibus +device miibus +device aue # ADMtek USB Ethernet +device axe # ASIX Electronics USB Ethernet +device cdce # Generic USB over Ethernet +device cue # CATC USB Ethernet +device kue # Kawasaki LSI USB Ethernet +device rue # RealTek RTL8150 USB Ethernet +device udav # Davicom DM9601E USB + +# USB Wireless +device rum # Ralink Technology RT2501USB wireless NICs + +# Watchdog timer. +# WARNING: can't be disabled!!! +device imxwdt # Watchdog + +# Wireless NIC cards +device wlan # 802.11 support +device wlan_wep # 802.11 WEP support +device wlan_ccmp # 802.11 CCMP support +device wlan_tkip # 802.11 TKIP support +device wlan_amrr # AMRR transmit rate control algorithm + +# Flattened Device Tree +options FDT +options FDT_DTB_STATIC +makeoptions FDT_DTS_FILE=efikamx.dts + +# NOTE: serial console will be disabled if syscons enabled +# Uncomment following lines for framebuffer/syscons support +device sc +device kbdmux +options SC_DFLT_FONT # compile font in +makeoptions SC_DFLT_FONT=cp437 +device ukbd # Allow keyboard like HIDs to control console + +device ums Copied: user/attilio/vmcontention/sys/boot/fdt/dts/efikamx.dts (from r248558, head/sys/boot/fdt/dts/efikamx.dts) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmcontention/sys/boot/fdt/dts/efikamx.dts Wed Mar 20 16:27:58 2013 (r248559, copy of r248558, head/sys/boot/fdt/dts/efikamx.dts) @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Semihalf under sponsorship from + * the FreeBSD Foundation. + * + * 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. + * + * Freescale i.MX515 Device Tree Source. + * + * $FreeBSD$ + */ + +/dts-v1/; +/include/ "imx51x.dtsi" + +/ { + model = "Genesi Efika MX"; + compatible = "genesi,imx51-efikamx"; + + memory { + /* RAM 512M */ + reg = <0x90000000 0x20000000>; + }; + + localbus@5e000000 { + ipu3@5e000000 { + status = "okay"; + }; + }; + + soc@70000000 { + aips@70000000 { + spba@70000000 { + esdhc@70004000 { + clock-frequency = <216000000>; + status = "okay"; + }; + esdhc@70008000 { + clock-frequency = <216000000>; + status = "okay"; + }; + SSI2: ssi@70014000 { + status = "okay"; + }; + }; + timer@73fa0000 { + status = "okay"; + }; + + /* UART1, console */ + UART1: serial@73fbc000 { + status = "okay"; + clock-frequency = <3000000>; /* XXX */ + }; + + clock@73fd4000 { + status = "okay"; + }; + gpio@73f84000 { + status = "okay"; + }; + gpio@73f88000 { + status = "okay"; + }; + gpio@73f8c000 { + status = "okay"; + }; + gpio@73f90000 { + status = "okay"; + }; + wdog@73f98000 { + status = "okay"; + }; + }; + aips@80000000 { + i2c@83fc4000 { + status = "okay"; + }; + i2c@83fc8000 { + status = "okay"; + }; + audmux@83fd4000 { + status = "okay"; + }; + ide@83fe0000 { + status = "okay"; + }; + }; + }; + + aliases { + UART1 = &UART1; + SSI2 = &SSI2; + }; + + chosen { + bootargs = "-v"; + stdin = "UART1"; + stdout = "UART1"; + }; +}; Copied: user/attilio/vmcontention/sys/boot/fdt/dts/imx51x.dtsi (from r248558, head/sys/boot/fdt/dts/imx51x.dtsi) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmcontention/sys/boot/fdt/dts/imx51x.dtsi Wed Mar 20 16:27:58 2013 (r248559, copy of r248558, head/sys/boot/fdt/dts/imx51x.dtsi) @@ -0,0 +1,590 @@ +/* + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Semihalf under sponsorship from + * the FreeBSD Foundation. + * + * 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. + * + * Freescale i.MX515 Device Tree Source. + * + * $FreeBSD$ + */ + +/ { + #address-cells = <1>; + #size-cells = <1>; + + aliases { + soc = &SOC; + }; + + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "ARM,MCIMX515"; + reg = <0x0>; + d-cache-line-size = <32>; + i-cache-line-size = <32>; + d-cache-size = <0x8000>; + i-cache-size = <0x8000>; + /* TODO: describe L2 cache also */ + timebase-frequency = <0>; + bus-frequency = <0>; + clock-frequency = <0>; + }; + }; + + localbus@e0000000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + + /* This reflects CPU decode windows setup. */ + ranges; + + tzic: tz-interrupt-controller@e0000000 { + compatible = "fsl,imx51-tzic", "fsl,tzic"; + interrupt-controller; + #interrupt-cells = <1>; + reg = <0xe0000000 0x00004000>; + }; + /* + * 60000000 60000FFF 4K Debug ROM + * 60001000 60001FFF 4K ETB + * 60002000 60002FFF 4K ETM + * 60003000 60003FFF 4K TPIU + * 60004000 60004FFF 4K CTI0 + * 60005000 60005FFF 4K CTI1 + * 60006000 60006FFF 4K CTI2 + * 60007000 60007FFF 4K CTI3 + * 60008000 60008FFF 4K Cortex Debug Unit + * + * E0000000 E0003FFF 0x4000 TZIC + */ + }; + + SOC: soc@70000000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&tzic>; + ranges = <0x70000000 0x70000000 0x14000000>; + + aips@70000000 { /* AIPS1 */ + compatible = "fsl,aips-bus", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&tzic>; + ranges; + + /* Required by many devices, so better to stay first */ + /* 73FD4000 0x4000 CCM */ + clock@73fd4000 { + compatible = "fsl,imx51-ccm"; + /* 83F80000 0x4000 DPLLIP1 */ + /* 83F84000 0x4000 DPLLIP2 */ + /* 83F88000 0x4000 DPLLIP3 */ + reg = <0x73fd4000 0x4000 + 0x83F80000 0x4000 + 0x83F84000 0x4000 + 0x83F88000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <71 72>; + status = "disabled"; + }; + + /* + * GPIO modules moved up - to have it attached for + * drivers which rely on GPIO + */ + /* 73F84000 0x4000 GPIO1 */ + gpio1: gpio@73f84000 { + compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; + reg = <0x73f84000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <50 51 42 43 44 45 46 47 48 49>; + /* TODO: use <> also */ + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + /* 73F88000 0x4000 GPIO2 */ + gpio2: gpio@73f88000 { + compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; + reg = <0x73f88000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <52 53>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + /* 73F8C000 0x4000 GPIO3 */ + gpio3: gpio@73f8c000 { + compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; + reg = <0x73f8c000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <54 55>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + /* 73F90000 0x4000 GPIO4 */ + gpio4: gpio@73f90000 { + compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; + reg = <0x73f90000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <56 57>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + spba@70000000 { + compatible = "fsl,spba-bus", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&tzic>; + ranges; + + /* 70004000 0x4000 ESDHC 1 */ + esdhc@70004000 { + compatible = "fsl,imx51-esdhc"; + reg = <0x70004000 0x4000>; + interrupt-parent = <&tzic>; interrupts = <1>; + status = "disabled"; + }; + + /* 70008000 0x4000 ESDHC 2 */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Wed Mar 20 16:30:20 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 3367BD15; Wed, 20 Mar 2013 16:30:20 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 236D32F1; Wed, 20 Mar 2013 16:30:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2KGUKKf098200; Wed, 20 Mar 2013 16:30:20 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2KGUH2s098183; Wed, 20 Mar 2013 16:30:17 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303201630.r2KGUH2s098183@svn.freebsd.org> From: Attilio Rao Date: Wed, 20 Mar 2013 16:30:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248560 - in user/attilio/vmobj-readlock: contrib/llvm/tools/clang/lib/Driver lib/libc/sys sbin/ipfw sbin/ldconfig sbin/shutdown share/man/man4 sys/arm/conf sys/arm/freescale sys/boot/f... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Mar 2013 16:30:20 -0000 Author: attilio Date: Wed Mar 20 16:30:17 2013 New Revision: 248560 URL: http://svnweb.freebsd.org/changeset/base/248560 Log: Merge from vmcontention Added: user/attilio/vmobj-readlock/sys/arm/conf/EFIKA_MX - copied unchanged from r248559, user/attilio/vmcontention/sys/arm/conf/EFIKA_MX user/attilio/vmobj-readlock/sys/arm/freescale/ - copied from r248559, user/attilio/vmcontention/sys/arm/freescale/ user/attilio/vmobj-readlock/sys/boot/fdt/dts/efikamx.dts - copied unchanged from r248559, user/attilio/vmcontention/sys/boot/fdt/dts/efikamx.dts user/attilio/vmobj-readlock/sys/boot/fdt/dts/imx51x.dtsi - copied unchanged from r248559, user/attilio/vmcontention/sys/boot/fdt/dts/imx51x.dtsi user/attilio/vmobj-readlock/sys/dev/ata/chipsets/ata-fsl.c - copied unchanged from r248559, user/attilio/vmcontention/sys/dev/ata/chipsets/ata-fsl.c user/attilio/vmobj-readlock/sys/dev/uart/uart_dev_imx.c - copied unchanged from r248559, user/attilio/vmcontention/sys/dev/uart/uart_dev_imx.c user/attilio/vmobj-readlock/sys/dev/uart/uart_dev_imx5xx.h - copied unchanged from r248559, user/attilio/vmcontention/sys/dev/uart/uart_dev_imx5xx.h user/attilio/vmobj-readlock/sys/dev/usb/controller/ehci_imx.c - copied unchanged from r248559, user/attilio/vmcontention/sys/dev/usb/controller/ehci_imx.c Modified: user/attilio/vmobj-readlock/contrib/llvm/tools/clang/lib/Driver/Tools.cpp user/attilio/vmobj-readlock/lib/libc/sys/recv.2 user/attilio/vmobj-readlock/lib/libc/sys/socket.2 user/attilio/vmobj-readlock/lib/libc/sys/socketpair.2 user/attilio/vmobj-readlock/sbin/ipfw/ipfw.8 user/attilio/vmobj-readlock/sbin/ipfw/ipfw2.c user/attilio/vmobj-readlock/sbin/ipfw/ipfw2.h user/attilio/vmobj-readlock/sbin/ldconfig/ldconfig.c user/attilio/vmobj-readlock/sbin/shutdown/shutdown.8 user/attilio/vmobj-readlock/share/man/man4/unix.4 user/attilio/vmobj-readlock/sys/dev/ath/if_ath.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_beacon.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_rx.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_rx_edma.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_tx.c user/attilio/vmobj-readlock/sys/dev/ath/if_ath_tx_edma.c user/attilio/vmobj-readlock/sys/dev/ath/if_athvar.h user/attilio/vmobj-readlock/sys/dev/mii/rgephy.c user/attilio/vmobj-readlock/sys/dev/mii/rgephyreg.h user/attilio/vmobj-readlock/sys/dev/uart/uart.h user/attilio/vmobj-readlock/sys/dev/uart/uart_bus_fdt.c user/attilio/vmobj-readlock/sys/dev/usb/controller/xhci.c user/attilio/vmobj-readlock/sys/kern/uipc_socket.c user/attilio/vmobj-readlock/sys/kern/uipc_syscalls.c user/attilio/vmobj-readlock/sys/kern/uipc_usrreq.c user/attilio/vmobj-readlock/sys/net80211/ieee80211_freebsd.c user/attilio/vmobj-readlock/sys/netinet/ip_fw.h user/attilio/vmobj-readlock/sys/netpfil/ipfw/ip_fw2.c user/attilio/vmobj-readlock/sys/netpfil/ipfw/ip_fw_log.c user/attilio/vmobj-readlock/sys/netpfil/ipfw/ip_fw_sockopt.c user/attilio/vmobj-readlock/sys/sys/domain.h user/attilio/vmobj-readlock/sys/sys/socket.h user/attilio/vmobj-readlock/sys/vm/vnode_pager.c Directory Properties: user/attilio/vmobj-readlock/ (props changed) user/attilio/vmobj-readlock/contrib/llvm/ (props changed) user/attilio/vmobj-readlock/contrib/llvm/tools/clang/ (props changed) user/attilio/vmobj-readlock/lib/libc/ (props changed) user/attilio/vmobj-readlock/sbin/ (props changed) user/attilio/vmobj-readlock/sbin/ipfw/ (props changed) user/attilio/vmobj-readlock/share/man/man4/ (props changed) user/attilio/vmobj-readlock/sys/ (props changed) user/attilio/vmobj-readlock/sys/boot/ (props changed) Modified: user/attilio/vmobj-readlock/contrib/llvm/tools/clang/lib/Driver/Tools.cpp ============================================================================== --- user/attilio/vmobj-readlock/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Wed Mar 20 16:30:17 2013 (r248560) @@ -5438,6 +5438,7 @@ void freebsd::Assemble::ConstructJob(Com switch(getToolChain().getTriple().getEnvironment()) { case llvm::Triple::GNUEABI: case llvm::Triple::EABI: + CmdArgs.push_back("-meabi=5"); break; default: Modified: user/attilio/vmobj-readlock/lib/libc/sys/recv.2 ============================================================================== --- user/attilio/vmobj-readlock/lib/libc/sys/recv.2 Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/lib/libc/sys/recv.2 Wed Mar 20 16:30:17 2013 (r248560) @@ -28,7 +28,7 @@ .\" @(#)recv.2 8.3 (Berkeley) 2/21/94 .\" $FreeBSD$ .\" -.Dd September 12, 2012 +.Dd March 19, 2013 .Dt RECV 2 .Os .Sh NAME @@ -121,11 +121,12 @@ argument to a function is formed by .Em or Ap ing one or more of the values: -.Bl -column ".Dv MSG_DONTWAIT" -offset indent +.Bl -column ".Dv MSG_CMSG_CLOEXEC" -offset indent .It Dv MSG_OOB Ta process out-of-band data .It Dv MSG_PEEK Ta peek at incoming message .It Dv MSG_WAITALL Ta wait for full request or error .It Dv MSG_DONTWAIT Ta do not block +.It Dv MSG_CMSG_CLOEXEC Ta set received fds close-on-exec .El .Pp The @@ -227,6 +228,10 @@ and .Fa cmsg_type set to .Dv SCM_RIGHTS . +The close-on-exec flag on received descriptors is set according to the +.Dv MSG_CMSG_CLOEXEC +flag passed to +.Fn recvmsg . .Pp Process credentials can also be passed as ancillary data for .Dv AF_UNIX Modified: user/attilio/vmobj-readlock/lib/libc/sys/socket.2 ============================================================================== --- user/attilio/vmobj-readlock/lib/libc/sys/socket.2 Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/lib/libc/sys/socket.2 Wed Mar 20 16:30:17 2013 (r248560) @@ -28,7 +28,7 @@ .\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd December 7, 2012 +.Dd March 19, 2013 .Dt SOCKET 2 .Os .Sh NAME @@ -115,6 +115,15 @@ which is available only to the super-use which is planned, but not yet implemented, are not described here. .Pp +Additionally, the following flags are allowed in the +.Fa type +argument: +.Pp +.Bd -literal -offset indent -compact +SOCK_CLOEXEC Set close-on-exec on the new descriptor, +SOCK_NONBLOCK Set non-blocking mode on the new socket +.Ed +.Pp The .Fa protocol argument Modified: user/attilio/vmobj-readlock/lib/libc/sys/socketpair.2 ============================================================================== --- user/attilio/vmobj-readlock/lib/libc/sys/socketpair.2 Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/lib/libc/sys/socketpair.2 Wed Mar 20 16:30:17 2013 (r248560) @@ -28,7 +28,7 @@ .\" @(#)socketpair.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd June 4, 1993 +.Dd March 19, 2013 .Dt SOCKETPAIR 2 .Os .Sh NAME @@ -57,6 +57,14 @@ are returned in and .Fa sv Ns [1] . The two sockets are indistinguishable. +.Pp +The +.Dv SOCK_CLOEXEC +and +.Dv SOCK_NONBLOCK +flags in the +.Fa type +argument apply to both descriptors. .Sh RETURN VALUES .Rv -std socketpair .Sh ERRORS @@ -79,6 +87,7 @@ process address space. .Sh SEE ALSO .Xr pipe 2 , .Xr read 2 , +.Xr socket 2 , .Xr write 2 .Sh HISTORY The Modified: user/attilio/vmobj-readlock/sbin/ipfw/ipfw.8 ============================================================================== --- user/attilio/vmobj-readlock/sbin/ipfw/ipfw.8 Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/sbin/ipfw/ipfw.8 Wed Mar 20 16:30:17 2013 (r248560) @@ -960,6 +960,61 @@ It is possible to use the keyword with setfib. If the tablearg value is not within the compiled range of fibs, the packet's fib is set to 0. +.It Cm setdscp Ar DSCP | number | tablearg +Set specified DiffServ codepoint for an IPv4/IPv6 packet. +Processing continues at the next rule. +Supported values are: +.Pp +.Cm CS0 +.Pq Dv 000000 , +.Cm CS1 +.Pq Dv 001000 , +.Cm CS2 +.Pq Dv 010000 , +.Cm CS3 +.Pq Dv 011000 , +.Cm CS4 +.Pq Dv 100000 , +.Cm CS5 +.Pq Dv 101000 , +.Cm CS6 +.Pq Dv 110000 , +.Cm CS7 +.Pq Dv 111000 , +.Cm AF11 +.Pq Dv 001010 , +.Cm AF12 +.Pq Dv 001100 , +.Cm AF13 +.Pq Dv 001110 , +.Cm AF21 +.Pq Dv 010010 , +.Cm AF22 +.Pq Dv 010100 , +.Cm AF23 +.Pq Dv 010110 , +.Cm AF31 +.Pq Dv 011010 , +.Cm AF32 +.Pq Dv 011100 , +.Cm AF33 +.Pq Dv 011110 , +.Cm AF41 +.Pq Dv 100010 , +.Cm AF42 +.Pq Dv 100100 , +.Cm AF43 +.Pq Dv 100110 , +.Cm EF +.Pq Dv 101110 , +.Cm BE +.Pq Dv 000000 . +Additionally, DSCP value can be specified by number (0..64). +It is also possible to use the +.Cm tablearg +keyword with setdscp. +If the tablearg value is not within the 0..64 range, lower 6 bits of supplied +value are used. .It Cm reass Queue and reassemble IP fragments. If the packet is not fragmented, counters are updated and @@ -1454,6 +1509,17 @@ The supported IP types of service are: The absence of a particular type may be denoted with a .Ql \&! . +.It Cm dscp spec Ns Op , Ns Ar spec +Matches IPv4/IPv6 packets whose +.Cm DS +field value is contained in +.Ar spec +mask. +Multiple values can be specified via +the comma separated list. +Value can be one of keywords used in +.Cm setdscp +action or exact number. .It Cm ipttl Ar ttl-list Matches IPv4 packets whose time to live is included in .Ar ttl-list , @@ -2976,6 +3042,23 @@ configured on but coming in on .Li fxp1 would be dropped. +.Pp +The +.Cm setdscp +option could be used to (re)mark user traffic, +by adding the following to the appropriate place in ruleset: +.Pp +.Dl "ipfw add setdscp be ip from any to any dscp af11,af21" +.Pp +This rule drops all incoming packets that appear to be coming from another +directly connected system but on the wrong interface. +For example, a packet with a source address of +.Li 192.168.0.0/24 , +configured on +.Li fxp0 , +but coming in on +.Li fxp1 +would be dropped. .Ss DYNAMIC RULES In order to protect a site from flood attacks involving fake TCP packets, it is safer to use dynamic rules: Modified: user/attilio/vmobj-readlock/sbin/ipfw/ipfw2.c ============================================================================== --- user/attilio/vmobj-readlock/sbin/ipfw/ipfw2.c Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/sbin/ipfw/ipfw2.c Wed Mar 20 16:30:17 2013 (r248560) @@ -167,6 +167,32 @@ static struct _s_x f_iptos[] = { { NULL, 0 } }; +static struct _s_x f_ipdscp[] = { + { "af11", IPTOS_DSCP_AF11 >> 2 }, /* 001010 */ + { "af12", IPTOS_DSCP_AF12 >> 2 }, /* 001100 */ + { "af13", IPTOS_DSCP_AF13 >> 2 }, /* 001110 */ + { "af21", IPTOS_DSCP_AF21 >> 2 }, /* 010010 */ + { "af22", IPTOS_DSCP_AF22 >> 2 }, /* 010100 */ + { "af23", IPTOS_DSCP_AF23 >> 2 }, /* 010110 */ + { "af31", IPTOS_DSCP_AF31 >> 2 }, /* 011010 */ + { "af32", IPTOS_DSCP_AF32 >> 2 }, /* 011100 */ + { "af33", IPTOS_DSCP_AF33 >> 2 }, /* 011110 */ + { "af41", IPTOS_DSCP_AF41 >> 2 }, /* 100010 */ + { "af42", IPTOS_DSCP_AF42 >> 2 }, /* 100100 */ + { "af43", IPTOS_DSCP_AF43 >> 2 }, /* 100110 */ + { "be", IPTOS_DSCP_CS0 >> 2 }, /* 000000 */ + { "ef", IPTOS_DSCP_EF >> 2 }, /* 101110 */ + { "cs0", IPTOS_DSCP_CS0 >> 2 }, /* 000000 */ + { "cs1", IPTOS_DSCP_CS1 >> 2 }, /* 001000 */ + { "cs2", IPTOS_DSCP_CS2 >> 2 }, /* 010000 */ + { "cs3", IPTOS_DSCP_CS3 >> 2 }, /* 011000 */ + { "cs4", IPTOS_DSCP_CS4 >> 2 }, /* 100000 */ + { "cs5", IPTOS_DSCP_CS5 >> 2 }, /* 101000 */ + { "cs6", IPTOS_DSCP_CS6 >> 2 }, /* 110000 */ + { "cs7", IPTOS_DSCP_CS7 >> 2 }, /* 100000 */ + { NULL, 0 } +}; + static struct _s_x limit_masks[] = { {"all", DYN_SRC_ADDR|DYN_SRC_PORT|DYN_DST_ADDR|DYN_DST_PORT}, {"src-addr", DYN_SRC_ADDR}, @@ -237,6 +263,7 @@ static struct _s_x rule_actions[] = { { "nat", TOK_NAT }, { "reass", TOK_REASS }, { "setfib", TOK_SETFIB }, + { "setdscp", TOK_SETDSCP }, { "call", TOK_CALL }, { "return", TOK_RETURN }, { NULL, 0 } /* terminator */ @@ -714,6 +741,51 @@ fill_newports(ipfw_insn_u16 *cmd, char * return (i); } +/* + * Fill the body of the command with the list of DiffServ codepoints. + */ +static void +fill_dscp(ipfw_insn *cmd, char *av, int cblen) +{ + uint32_t *low, *high; + char *s = av, *a; + int code; + + cmd->opcode = O_DSCP; + cmd->len |= F_INSN_SIZE(ipfw_insn_u32) + 1; + + CHECK_CMDLEN; + + low = (uint32_t *)(cmd + 1); + high = low + 1; + + *low = 0; + *high = 0; + + while (s != NULL) { + a = strchr(s, ','); + + if (a != NULL) + *a++ = '\0'; + + if (isalpha(*s)) { + if ((code = match_token(f_ipdscp, s)) == -1) + errx(EX_DATAERR, "Unknown DSCP code"); + } else { + code = strtoul(s, NULL, 10); + if (code < 0 || code > 63) + errx(EX_DATAERR, "Invalid DSCP value"); + } + + if (code > 32) + *high |= 1 << (code - 32); + else + *low |= 1 << code; + + s = a; + } +} + static struct _s_x icmpcodes[] = { { "net", ICMP_UNREACH_NET }, { "host", ICMP_UNREACH_HOST }, @@ -972,6 +1044,32 @@ print_icmptypes(ipfw_insn_u32 *cmd) } } +static void +print_dscp(ipfw_insn_u32 *cmd) +{ + int i, c; + uint32_t *v; + char sep= ' '; + const char *code; + + printf(" dscp"); + i = 0; + c = 0; + v = cmd->d; + while (i < 64) { + if (*v & (1 << i)) { + if ((code = match_value(f_ipdscp, i)) != NULL) + printf("%c%s", sep, code); + else + printf("%c%d", sep, i); + sep = ','; + } + + if ((++i % 32) == 0) + v++; + } +} + /* * show_ipfw() prints the body of an ipfw rule. * Because the standard rule has at least proto src_ip dst_ip, we use @@ -1205,6 +1303,17 @@ show_ipfw(struct ip_fw *rule, int pcwidt PRINT_UINT_ARG("setfib ", cmd->arg1); break; + case O_SETDSCP: + { + const char *code; + + if ((code = match_value(f_ipdscp, cmd->arg1)) != NULL) + printf("setdscp %s", code); + else + PRINT_UINT_ARG("setdscp ", cmd->arg1); + } + break; + case O_REASS: printf("reass"); break; @@ -1500,6 +1609,10 @@ show_ipfw(struct ip_fw *rule, int pcwidt printf(" ipprecedence %u", (cmd->arg1) >> 5 ); break; + case O_DSCP: + print_dscp((ipfw_insn_u32 *)cmd); + break; + case O_IPLEN: if (F_LEN(cmd) == 1) printf(" iplen %u", cmd->arg1 ); @@ -3036,6 +3149,24 @@ chkarg: break; } + case TOK_SETDSCP: + { + int code; + + action->opcode = O_SETDSCP; + NEED1("missing DSCP code"); + if (_substrcmp(*av, "tablearg") == 0) { + action->arg1 = IP_FW_TABLEARG; + } else if (isalpha(*av[0])) { + if ((code = match_token(f_ipdscp, *av)) == -1) + errx(EX_DATAERR, "Unknown DSCP code"); + action->arg1 = code; + } else + action->arg1 = strtoul(*av, NULL, 10); + av++; + break; + } + case TOK_REASS: action->opcode = O_REASS; break; @@ -3448,6 +3579,12 @@ read_options: av++; break; + case TOK_DSCP: + NEED1("missing DSCP code"); + fill_dscp(cmd, *av, cblen); + av++; + break; + case TOK_IPOPTS: NEED1("missing argument for ipoptions"); fill_flags(cmd, O_IPOPT, f_ipopts, *av); @@ -3985,10 +4122,9 @@ ipfw_table_handler(int ac, char *av[]) int do_add; int is_all; size_t len; - uint32_t a, mask; + uint32_t a; uint32_t tables_max; - mask = 0; // XXX uninitialized ? len = sizeof(tables_max); if (sysctlbyname("net.inet.ip.fw.tables_max", &tables_max, &len, NULL, 0) == -1) { Modified: user/attilio/vmobj-readlock/sbin/ipfw/ipfw2.h ============================================================================== --- user/attilio/vmobj-readlock/sbin/ipfw/ipfw2.h Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/sbin/ipfw/ipfw2.h Wed Mar 20 16:30:17 2013 (r248560) @@ -203,6 +203,7 @@ enum tokens { TOK_SETFIB, TOK_LOOKUP, TOK_SOCKARG, + TOK_SETDSCP, }; /* * the following macro returns an error message if we run out of Modified: user/attilio/vmobj-readlock/sbin/ldconfig/ldconfig.c ============================================================================== --- user/attilio/vmobj-readlock/sbin/ldconfig/ldconfig.c Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/sbin/ldconfig/ldconfig.c Wed Mar 20 16:30:17 2013 (r248560) @@ -97,6 +97,13 @@ static void listhints(void); static int readhints(void); static void usage(void); +/* + * Note on aout/a.out support. + * To properly support shared libraries for compat2x, which are a.out, we need + * to support a.out here. As of 2013, bug reports are still coming in for this + * feature (on amd64 no less), so we know it is still in use. + */ + int main(int argc, char **argv) { Modified: user/attilio/vmobj-readlock/sbin/shutdown/shutdown.8 ============================================================================== --- user/attilio/vmobj-readlock/sbin/shutdown/shutdown.8 Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/sbin/shutdown/shutdown.8 Wed Mar 20 16:30:17 2013 (r248560) @@ -28,7 +28,7 @@ .\" @(#)shutdown.8 8.2 (Berkeley) 4/27/95 .\" $FreeBSD$ .\" -.Dd July 13, 2011 +.Dd March 19, 2013 .Dt SHUTDOWN 8 .Os .Sh NAME @@ -189,6 +189,11 @@ tells .Xr login 1 not to let anyone log in .El +.Sh EXAMPLES +Reboot the system in 30 minutes and display a warning message on the terminals +of all users currently logged in: +.Pp +.Dl # shutdown -r +30 \&"System will reboot\&" .Sh COMPATIBILITY The hours and minutes in the second time format may be separated by a colon (``:'') for backward compatibility. Modified: user/attilio/vmobj-readlock/share/man/man4/unix.4 ============================================================================== --- user/attilio/vmobj-readlock/share/man/man4/unix.4 Wed Mar 20 16:27:58 2013 (r248559) +++ user/attilio/vmobj-readlock/share/man/man4/unix.4 Wed Mar 20 16:30:17 2013 (r248560) @@ -32,7 +32,7 @@ .\" @(#)unix.4 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd November 16, 2012 +.Dd March 19, 2013 .Dt UNIX 4 .Os .Sh NAME @@ -153,13 +153,15 @@ plus the size of the array of file descr .Pp The received descriptor is a .Em duplicate -of the sender's descriptor, as if it were created with a call to -.Xr dup 2 . -Per-process descriptor flags, set with -.Xr fcntl 2 , -are -.Em not -passed to a receiver. +of the sender's descriptor, as if it were created via +.Li dup(fd) +or +.Li fcntl(fd, F_DUPFD_CLOEXEC, 0) +depending on whether +.Dv MSG_CMSG_CLOEXEC +is passed in the +.Xr recvmsg 2 +call. Descriptors that are awaiting delivery, or that are purposely not received, are automatically closed by the system when the destination socket is closed. Copied: user/attilio/vmobj-readlock/sys/arm/conf/EFIKA_MX (from r248559, user/attilio/vmcontention/sys/arm/conf/EFIKA_MX) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmobj-readlock/sys/arm/conf/EFIKA_MX Wed Mar 20 16:30:17 2013 (r248560, copy of r248559, user/attilio/vmcontention/sys/arm/conf/EFIKA_MX) @@ -0,0 +1,177 @@ +# Kernel configuration for Efika MX Smarttop/Smartbook boards +# +# For more information on this file, please read the config(5) manual page, +# and/or the handbook section on Kernel Configuration Files: +# +# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html +# +# The handbook is also available locally in /usr/share/doc/handbook +# if you've installed the doc distribution, otherwise always see the +# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the +# latest information. +# +# An exhaustive list of options and more detailed explanations of the +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first +# in NOTES. +# +# $FreeBSD$ + +ident EFIKA_MX + +include "../freescale/imx/std.imx" + +makeoptions WITHOUT_MODULES="ahc" + +makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +#options DEBUG + +options SCHED_4BSD # 4BSD scheduler +#options PREEMPTION # Enable kernel thread preemption +options INET # InterNETworking +#options INET6 # IPv6 communications protocols +#options SCTP # Stream Control Transmission Protocol +options FFS # Berkeley Fast Filesystem +options SOFTUPDATES # Enable FFS soft updates support +options UFS_ACL # Support for access control lists +options UFS_DIRHASH # Improve performance on big directories +options UFS_GJOURNAL # Enable gjournal-based UFS journaling +#options MD_ROOT # MD is a potential root device +options NFSCL # New Network Filesystem Client +#options NFSD # New Network Filesystem Server +options NFSLOCKD # Network Lock Manager +options NFS_ROOT # NFS usable as /, requires NFSCL +options MSDOSFS # MSDOS Filesystem +options CD9660 # ISO 9660 Filesystem +#options PROCFS # Process filesystem (requires PSEUDOFS) +options PSEUDOFS # Pseudo-filesystem framework +options TMPFS # TMP Memory Filesystem +options GEOM_PART_GPT # GUID Partition Tables. +options GEOM_LABEL # Provides labelization +#options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +#options COMPAT_FREEBSD6 # Compatible with FreeBSD6 +#options COMPAT_FREEBSD7 # Compatible with FreeBSD7 +options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI +options KTRACE # ktrace(1) support +options SYSVSHM # SYSV-style shared memory +options SYSVMSG # SYSV-style message queues +options SYSVSEM # SYSV-style semaphores +options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions +options INCLUDE_CONFIG_FILE # Include this file in kernel + +# required for netbooting +#options BOOTP +#options BOOTP_COMPAT +#options BOOTP_NFSROOT +#options BOOTP_NFSV3 +#options BOOTP_WIRED_TO=ue0 +# +options ROOTDEVNAME=\"ufs:ada0s2a\" + + +# kernel/memory size reduction +#options MUTEX_NOINLINE +#options NO_FFS_SNAPSHOT +#options NO_SWAPPING +#options NO_SYSCTL_DESCR +#options RWLOCK_NOINLINE + +# Debugging support. Always need this: +options KDB # Enable kernel debugger support. +# For minimum debugger support (stable branch) use: +#options KDB_TRACE # Print a stack trace for a panic. +# For full debugger support use this instead: +options DDB # Support DDB. +#options GDB # Support remote GDB. +options DEADLKRES # Enable the deadlock resolver +options INVARIANTS # Enable calls of extra sanity checking +options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS +options WITNESS # Enable checks to detect deadlocks and cycles + +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +# Note that 'bpf' is required for DHCP. +device bpf # Berkeley packet filter + +# Pseudo devices. +device loop # Network loopback +device random # Entropy device +device ether # Ethernet support +#device vlan # 802.1Q VLAN support +#device tun # Packet tunnel. +#device md # Memory "disks" +#device gif # IPv6 and IPv4 tunneling +#device faith # IPv6-to-IPv4 relaying (translation) +#device firmware # firmware assist module + +# Serial (COM) ports +device uart # Multi-uart driver +options ALT_BREAK_TO_DEBUGGER + +device ata +device atapci # Only for helper functions +device imxata +options ATA_CAM +options ATA_STATIC_ID # Static device numbering + +device iomux # IO Multiplexor + +device gpio +device gpioled + +device fsliic +device iic +device iicbus + +# SCSI peripherals +device scbus # SCSI bus (required for SCSI) +device da # Direct Access (disks) +device cd # CD +device pass # Passthrough device (direct SCSI access) + +# USB support +#options USB_DEBUG # enable debug msgs +device ehci # OHCI USB interface +device usb # USB Bus (required) +device umass # Disks/Mass storage - Requires scbus and da +device uhid # "Human Interface Devices" +device u3g + +# USB Ethernet, requires miibus +device miibus +device aue # ADMtek USB Ethernet +device axe # ASIX Electronics USB Ethernet +device cdce # Generic USB over Ethernet +device cue # CATC USB Ethernet +device kue # Kawasaki LSI USB Ethernet +device rue # RealTek RTL8150 USB Ethernet +device udav # Davicom DM9601E USB + +# USB Wireless +device rum # Ralink Technology RT2501USB wireless NICs + +# Watchdog timer. +# WARNING: can't be disabled!!! +device imxwdt # Watchdog + +# Wireless NIC cards +device wlan # 802.11 support +device wlan_wep # 802.11 WEP support +device wlan_ccmp # 802.11 CCMP support +device wlan_tkip # 802.11 TKIP support +device wlan_amrr # AMRR transmit rate control algorithm + +# Flattened Device Tree +options FDT +options FDT_DTB_STATIC +makeoptions FDT_DTS_FILE=efikamx.dts + +# NOTE: serial console will be disabled if syscons enabled +# Uncomment following lines for framebuffer/syscons support +device sc +device kbdmux +options SC_DFLT_FONT # compile font in +makeoptions SC_DFLT_FONT=cp437 +device ukbd # Allow keyboard like HIDs to control console + +device ums Copied: user/attilio/vmobj-readlock/sys/boot/fdt/dts/efikamx.dts (from r248559, user/attilio/vmcontention/sys/boot/fdt/dts/efikamx.dts) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmobj-readlock/sys/boot/fdt/dts/efikamx.dts Wed Mar 20 16:30:17 2013 (r248560, copy of r248559, user/attilio/vmcontention/sys/boot/fdt/dts/efikamx.dts) @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Semihalf under sponsorship from + * the FreeBSD Foundation. + * + * 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. + * + * Freescale i.MX515 Device Tree Source. + * + * $FreeBSD$ + */ + +/dts-v1/; +/include/ "imx51x.dtsi" + +/ { + model = "Genesi Efika MX"; + compatible = "genesi,imx51-efikamx"; + + memory { + /* RAM 512M */ + reg = <0x90000000 0x20000000>; + }; + + localbus@5e000000 { + ipu3@5e000000 { + status = "okay"; + }; + }; + + soc@70000000 { + aips@70000000 { + spba@70000000 { + esdhc@70004000 { + clock-frequency = <216000000>; + status = "okay"; + }; + esdhc@70008000 { + clock-frequency = <216000000>; + status = "okay"; + }; + SSI2: ssi@70014000 { + status = "okay"; + }; + }; + timer@73fa0000 { + status = "okay"; + }; + + /* UART1, console */ + UART1: serial@73fbc000 { + status = "okay"; + clock-frequency = <3000000>; /* XXX */ + }; + + clock@73fd4000 { + status = "okay"; + }; + gpio@73f84000 { + status = "okay"; + }; + gpio@73f88000 { + status = "okay"; + }; + gpio@73f8c000 { + status = "okay"; + }; + gpio@73f90000 { + status = "okay"; + }; + wdog@73f98000 { + status = "okay"; + }; + }; + aips@80000000 { + i2c@83fc4000 { + status = "okay"; + }; + i2c@83fc8000 { + status = "okay"; + }; + audmux@83fd4000 { + status = "okay"; + }; + ide@83fe0000 { + status = "okay"; + }; + }; + }; + + aliases { + UART1 = &UART1; + SSI2 = &SSI2; + }; + + chosen { + bootargs = "-v"; + stdin = "UART1"; + stdout = "UART1"; + }; +}; Copied: user/attilio/vmobj-readlock/sys/boot/fdt/dts/imx51x.dtsi (from r248559, user/attilio/vmcontention/sys/boot/fdt/dts/imx51x.dtsi) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmobj-readlock/sys/boot/fdt/dts/imx51x.dtsi Wed Mar 20 16:30:17 2013 (r248560, copy of r248559, user/attilio/vmcontention/sys/boot/fdt/dts/imx51x.dtsi) @@ -0,0 +1,590 @@ +/* + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Semihalf under sponsorship from + * the FreeBSD Foundation. + * + * 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. + * + * Freescale i.MX515 Device Tree Source. + * + * $FreeBSD$ + */ + +/ { + #address-cells = <1>; + #size-cells = <1>; + + aliases { + soc = &SOC; + }; + + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "ARM,MCIMX515"; + reg = <0x0>; + d-cache-line-size = <32>; + i-cache-line-size = <32>; + d-cache-size = <0x8000>; + i-cache-size = <0x8000>; + /* TODO: describe L2 cache also */ + timebase-frequency = <0>; + bus-frequency = <0>; + clock-frequency = <0>; + }; + }; + + localbus@e0000000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + + /* This reflects CPU decode windows setup. */ + ranges; + + tzic: tz-interrupt-controller@e0000000 { + compatible = "fsl,imx51-tzic", "fsl,tzic"; + interrupt-controller; + #interrupt-cells = <1>; + reg = <0xe0000000 0x00004000>; + }; + /* + * 60000000 60000FFF 4K Debug ROM + * 60001000 60001FFF 4K ETB + * 60002000 60002FFF 4K ETM + * 60003000 60003FFF 4K TPIU + * 60004000 60004FFF 4K CTI0 + * 60005000 60005FFF 4K CTI1 + * 60006000 60006FFF 4K CTI2 + * 60007000 60007FFF 4K CTI3 + * 60008000 60008FFF 4K Cortex Debug Unit + * + * E0000000 E0003FFF 0x4000 TZIC + */ + }; + + SOC: soc@70000000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&tzic>; + ranges = <0x70000000 0x70000000 0x14000000>; + + aips@70000000 { /* AIPS1 */ + compatible = "fsl,aips-bus", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&tzic>; + ranges; + + /* Required by many devices, so better to stay first */ + /* 73FD4000 0x4000 CCM */ + clock@73fd4000 { + compatible = "fsl,imx51-ccm"; + /* 83F80000 0x4000 DPLLIP1 */ + /* 83F84000 0x4000 DPLLIP2 */ + /* 83F88000 0x4000 DPLLIP3 */ + reg = <0x73fd4000 0x4000 + 0x83F80000 0x4000 + 0x83F84000 0x4000 + 0x83F88000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <71 72>; + status = "disabled"; + }; + + /* + * GPIO modules moved up - to have it attached for + * drivers which rely on GPIO + */ + /* 73F84000 0x4000 GPIO1 */ + gpio1: gpio@73f84000 { + compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; + reg = <0x73f84000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <50 51 42 43 44 45 46 47 48 49>; + /* TODO: use <> also */ + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + /* 73F88000 0x4000 GPIO2 */ + gpio2: gpio@73f88000 { + compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; + reg = <0x73f88000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <52 53>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + /* 73F8C000 0x4000 GPIO3 */ + gpio3: gpio@73f8c000 { + compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; + reg = <0x73f8c000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <54 55>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + /* 73F90000 0x4000 GPIO4 */ + gpio4: gpio@73f90000 { + compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; + reg = <0x73f90000 0x4000>; + interrupt-parent = <&tzic>; + interrupts = <56 57>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + spba@70000000 { + compatible = "fsl,spba-bus", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&tzic>; + ranges; + + /* 70004000 0x4000 ESDHC 1 */ + esdhc@70004000 { + compatible = "fsl,imx51-esdhc"; + reg = <0x70004000 0x4000>; + interrupt-parent = <&tzic>; interrupts = <1>; + status = "disabled"; + }; + + /* 70008000 0x4000 ESDHC 2 */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Thu Mar 21 06:56:36 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 5B78FC1A; Thu, 21 Mar 2013 06:56:36 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 4D3F2CD3; Thu, 21 Mar 2013 06:56:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2L6uaJ8065799; Thu, 21 Mar 2013 06:56:36 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2L6uabL065797; Thu, 21 Mar 2013 06:56:36 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201303210656.r2L6uabL065797@svn.freebsd.org> From: Bryan Venteicher Date: Thu, 21 Mar 2013 06:56:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248565 - user/bryanv/vtnetmq/sys/dev/virtio/network X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 06:56:36 -0000 Author: bryanv Date: Thu Mar 21 06:56:35 2013 New Revision: 248565 URL: http://svnweb.freebsd.org/changeset/base/248565 Log: Commit development snapshot of the multiqueue driver This commit contains lots of cleanup, bug fixes, and enhancements such as: - improved Rx/Tx checksumming - better handling of deferred transmit and interrupt handlers - per-queue statistics, exported via sysctl A lot of work still remains. Modified: user/bryanv/vtnetmq/sys/dev/virtio/network/if_vtnet.c user/bryanv/vtnetmq/sys/dev/virtio/network/if_vtnetvar.h user/bryanv/vtnetmq/sys/dev/virtio/network/virtio_net.h Modified: user/bryanv/vtnetmq/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- user/bryanv/vtnetmq/sys/dev/virtio/network/if_vtnet.c Wed Mar 20 21:47:05 2013 (r248564) +++ user/bryanv/vtnetmq/sys/dev/virtio/network/if_vtnet.c Thu Mar 21 06:56:35 2013 (r248565) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -78,6 +79,9 @@ __FBSDID("$FreeBSD$"); #include "virtio_if.h" +#include "opt_inet.h" +#include "opt_inet6.h" + static int vtnet_modevent(module_t, int, void *); static int vtnet_probe(device_t); @@ -110,7 +114,7 @@ static int vtnet_rxq_replace_lro_nomgr_b static int vtnet_rxq_replace_buf(struct vtnet_rxq *, struct mbuf *, int); static int vtnet_rxq_enqueue_buf(struct vtnet_rxq *, struct mbuf *); static int vtnet_rxq_new_buf(struct vtnet_rxq *); -static int vtnet_rx_csum(struct vtnet_softc *, struct mbuf *, +static int vtnet_rxq_csum(struct vtnet_rxq *, struct mbuf *, struct virtio_net_hdr *); static void vtnet_rxq_discard_merged_bufs(struct vtnet_rxq *, int); static void vtnet_rxq_discard_buf(struct vtnet_rxq *, struct mbuf *); @@ -119,11 +123,15 @@ static void vtnet_rxq_input(struct vtnet struct virtio_net_hdr *); static int vtnet_rxq_eof(struct vtnet_rxq *); static void vtnet_rx_vq_intr(void *); -static void vtnet_rxq_taskqueue(void *, int); +static void vtnet_rxq_tq_intr(void *, int); static void vtnet_txq_free_mbufs(struct vtnet_txq *); +static int vtnet_txq_offload_ctx(struct vtnet_txq *, struct mbuf *, + int *, int *, int *); +static int vtnet_txq_offload_tso(struct vtnet_txq *, struct mbuf *, int, + int, struct virtio_net_hdr *); static struct mbuf * - vtnet_tx_offload(struct vtnet_softc *, struct mbuf *, + vtnet_txq_offload(struct vtnet_txq *, struct mbuf *, struct virtio_net_hdr *); static int vtnet_txq_enqueue_buf(struct vtnet_txq *, struct mbuf **, struct vtnet_tx_header *); @@ -134,9 +142,9 @@ static void vtnet_start(struct ifnet *); #else static int vtnet_txq_mq_start_locked(struct vtnet_txq *, struct mbuf *); static int vtnet_txq_mq_start(struct ifnet *, struct mbuf *); -static void vtnet_txq_taskqueue(void *, int); -static void vtnet_txq_tq_start(struct vtnet_txq *); +static void vtnet_txq_tq_deferred(void *, int); #endif +static void vtnet_txq_tq_intr(void *, int); static void vtnet_txq_eof(struct vtnet_txq *); static void vtnet_tx_vq_intr(void *); @@ -155,13 +163,15 @@ static void vtnet_drain_rxtx_queues(stru static void vtnet_stop_rendezvous(struct vtnet_softc *); static void vtnet_stop(struct vtnet_softc *); static int vtnet_virtio_reinit(struct vtnet_softc *); +static void vtnet_init_rx_filters(struct vtnet_softc *); static int vtnet_init_rx_queues(struct vtnet_softc *); +static int vtnet_init_tx_queues(struct vtnet_softc *); +static int vtnet_init_rxtx_queues(struct vtnet_softc *); static void vtnet_set_active_vq_pairs(struct vtnet_softc *); static int vtnet_reinit(struct vtnet_softc *); static void vtnet_init_locked(struct vtnet_softc *); static void vtnet_init(void *); -static void vtnet_init_rx_filters(struct vtnet_softc *); static void vtnet_free_ctrl_vq(struct vtnet_softc *); static void vtnet_exec_ctrl_cmd(struct vtnet_softc *, void *, struct sglist *, int, int); @@ -186,6 +196,11 @@ static void vtnet_get_hwaddr(struct vtne static void vtnet_set_hwaddr(struct vtnet_softc *); static void vtnet_vlan_tag_remove(struct mbuf *); +static void vtnet_setup_rxq_sysctl(struct sysctl_ctx_list *, + struct sysctl_oid_list *, struct vtnet_rxq *); +static void vtnet_setup_txq_sysctl(struct sysctl_ctx_list *, + struct sysctl_oid_list *, struct vtnet_txq *); +static void vtnet_setup_queue_sysctl(struct vtnet_softc *); static void vtnet_setup_sysctl(struct vtnet_softc *); static int vtnet_rxq_enable_intr(struct vtnet_rxq *); @@ -214,12 +229,14 @@ static int vtnet_rx_process_limit = 256; TUNABLE_INT("hw.vtnet.rx_process_limit", &vtnet_rx_process_limit); /* - * Reducing the number of transmit completed interrupts can - * improve performance. To do so, the define below keeps the - * Tx vq interrupt disabled and adds calls to vtnet_txeof() - * in the start and watchdog paths. The price to pay for this - * is the m_free'ing of transmitted mbufs may be delayed until - * the watchdog fires. + * Reducing the number of transmit completed interrupts can improve + * performance. To do so, the define below keeps the Tx vq interrupt + * disabled and adds calls to vtnet_txeof() in the start and watchdog + * paths. The price to pay for this is the m_free'ing of transmitted + * mbufs may be delayed until the watchdog fires. + * + * BMV: Reintroduce this later as a run-time option, if it makes + * sense after the EVENT_IDX feature is supported. */ #define VTNET_TX_INTR_MODERATION @@ -366,18 +383,15 @@ vtnet_attach(device_t dev) error = virtio_setup_intr(dev, INTR_TYPE_NET); if (error) { device_printf(dev, "cannot setup virtqueue interrupts\n"); + /* BMV: This will crash if during boot! */ ether_ifdetach(sc->vtnet_ifp); goto fail; } - vtnet_start_taskqueues(sc); - - /* - * Even though this is a polling operation, it must be done after - * interrupts have been setup. - */ vtnet_attach_disable_promisc(sc); + vtnet_start_taskqueues(sc); + fail: if (error) vtnet_detach(dev); @@ -610,7 +624,7 @@ vtnet_init_rxq(struct vtnet_softc *sc, i rxq->vtnrx_id = id; rxq->vtnrx_process_limit = vtnet_rx_process_limit; - TASK_INIT(&rxq->vtnrx_task, 0, vtnet_rxq_taskqueue, rxq); + TASK_INIT(&rxq->vtnrx_intrtask, 0, vtnet_rxq_tq_intr, rxq); rxq->vtnrx_tq = taskqueue_create(rxq->vtnrx_name, M_NOWAIT, taskqueue_thread_enqueue, &rxq->vtnrx_tq); @@ -637,12 +651,13 @@ vtnet_init_txq(struct vtnet_softc *sc, i if (txq->vtntx_br == NULL) return (ENOMEM); - TASK_INIT(&txq->vtntx_task, 0, vtnet_txq_taskqueue, txq); + TASK_INIT(&txq->vtntx_defrtask, 0, vtnet_txq_tq_deferred, txq); +#endif + TASK_INIT(&txq->vtntx_intrtask, 0, vtnet_txq_tq_intr, txq); txq->vtntx_tq = taskqueue_create(txq->vtntx_name, M_NOWAIT, taskqueue_thread_enqueue, &txq->vtntx_tq); if (txq->vtntx_tq == NULL) return (ENOMEM); -#endif return (0); } @@ -650,18 +665,18 @@ vtnet_init_txq(struct vtnet_softc *sc, i static int vtnet_alloc_rxtx_queues(struct vtnet_softc *sc) { - int i, pairs, error; + int i, npairs, error; - pairs = sc->vtnet_max_vq_pairs; + npairs = sc->vtnet_max_vq_pairs; - sc->vtnet_rxqs = malloc(sizeof(struct vtnet_rxq) * pairs, M_DEVBUF, + sc->vtnet_rxqs = malloc(sizeof(struct vtnet_rxq) * npairs, M_DEVBUF, M_NOWAIT | M_ZERO); - sc->vtnet_txqs = malloc(sizeof(struct vtnet_txq) * pairs, M_DEVBUF, + sc->vtnet_txqs = malloc(sizeof(struct vtnet_txq) * npairs, M_DEVBUF, M_NOWAIT | M_ZERO); if (sc->vtnet_rxqs == NULL || sc->vtnet_txqs == NULL) return (ENOMEM); - for (i = 0; i < pairs; i++) { + for (i = 0; i < npairs; i++) { error = vtnet_init_rxq(sc, i); if (error) return (error); @@ -670,6 +685,8 @@ vtnet_alloc_rxtx_queues(struct vtnet_sof return (error); } + vtnet_setup_queue_sysctl(sc); + return (0); } @@ -1051,10 +1068,7 @@ vtnet_ioctl(struct ifnet *ifp, u_long cm if (mask & (IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6 | IFCAP_LRO | IFCAP_VLAN_HWFILTER)) { - /* - * These Rx features require us to renegotiate with - * the host. - */ + /* These Rx features require us to renegotiate. */ reinit = 1; /* @@ -1152,6 +1166,9 @@ vtnet_rx_alloc_buf(struct vtnet_softc *s clsize = sc->vtnet_rx_clsize; + KASSERT(nbufs == 1 || sc->vtnet_flags & VTNET_FLAG_LRO_NOMRG, + ("%s: chained mbuf %d request without LRO_NOMRG", __func__, nbufs)); + m_head = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, clsize); if (m_head == NULL) goto fail; @@ -1159,19 +1176,15 @@ vtnet_rx_alloc_buf(struct vtnet_softc *s m_head->m_len = clsize; m_tail = m_head; - if (nbufs > 1) { - KASSERT(sc->vtnet_flags & VTNET_FLAG_LRO_NOMRG, - ("%s: chained mbuf request without LRO_NOMRG", __func__)); - - for (i = 1; i < nbufs; i++) { - m = m_getjcl(M_NOWAIT, MT_DATA, 0, clsize); - if (m == NULL) - goto fail; - - m->m_len = clsize; - m_tail->m_next = m; - m_tail = m; - } + /* Allocate the rest of the chain. */ + for (i = 1; i < nbufs; i++) { + m = m_getjcl(M_NOWAIT, MT_DATA, 0, clsize); + if (m == NULL) + goto fail; + + m->m_len = clsize; + m_tail->m_next = m; + m_tail = m; } if (m_tailp != NULL) @@ -1293,27 +1306,25 @@ vtnet_rxq_replace_buf(struct vtnet_rxq * ("%s: chained mbuf without LRO_NOMRG", __func__)); if (m->m_next == NULL) { - /* - * Simplified fast-path for the common case of just one mbuf. - * - * BMV: This is a lot like vtnet_rxq_new_buf(). - */ - m->m_len = MIN(m->m_len, len); /* BMV XXX */ + /* Fast-path for the common case of just one mbuf. */ + if (m->m_len < len) + return (EINVAL); m_new = vtnet_rx_alloc_buf(sc, 1, NULL); - if (m_new != NULL) { - error = vtnet_rxq_enqueue_buf(rxq, m_new); - if (error) { - /* - * The new mbuf is suppose to be an identical - * copy of the one just dequeued so this is an - * unexpected error. - */ - m_freem(m_new); - sc->vtnet_stats.rx_enq_replacement_failed++; - } + if (m_new == NULL) + return (ENOBUFS); + + error = vtnet_rxq_enqueue_buf(rxq, m_new); + if (error) { + /* + * The new mbuf is suppose to be an identical + * copy of the one just dequeued so this is an + * unexpected error. + */ + m_freem(m_new); + sc->vtnet_stats.rx_enq_replacement_failed++; } else - error = ENOBUFS; + m->m_len = len; } else error = vtnet_rxq_replace_lro_nomgr_buf(rxq, m, len); @@ -1327,7 +1338,6 @@ vtnet_rxq_enqueue_buf(struct vtnet_rxq * struct sglist_seg segs[VTNET_MAX_RX_SEGS]; struct vtnet_softc *sc; struct vtnet_rx_header *rxhdr; - struct virtio_net_hdr *hdr; uint8_t *mdata; int offset, error; @@ -1342,24 +1352,15 @@ vtnet_rxq_enqueue_buf(struct vtnet_rxq * if ((sc->vtnet_flags & VTNET_FLAG_MRG_RXBUFS) == 0) { MPASS(sc->vtnet_hdr_size == sizeof(struct virtio_net_hdr)); rxhdr = (struct vtnet_rx_header *) mdata; - hdr = &rxhdr->vrh_hdr; + sglist_append(&sg, &rxhdr->vrh_hdr, sc->vtnet_hdr_size); offset = sizeof(struct vtnet_rx_header); - sglist_append(&sg, hdr, sc->vtnet_hdr_size); } else offset = 0; - /* - * XXX BMV: Either sglist_append() should never fail here ... - */ - - error = sglist_append(&sg, mdata + offset, m->m_len - offset); - if (error) - return (error); - + sglist_append(&sg, mdata + offset, m->m_len - offset); if (m->m_next != NULL) { error = sglist_append_mbuf(&sg, m->m_next); - if (error) - return (error); + MPASS(error == 0); } error = virtqueue_enqueue(rxq->vtnrx_vq, m, &sg, 0, sg.sg_nseg); @@ -1388,39 +1389,35 @@ vtnet_rxq_new_buf(struct vtnet_rxq *rxq) } /* - * Set the appropriate CSUM_* flags. Unfortunately, the information - * provided is not directly useful to us. The VirtIO header gives the - * offset of the checksum, which is all Linux needs, but this is not - * how FreeBSD does things. We are forced to peek inside the packet - * a bit. - * - * It would be nice if VirtIO gave us the L4 protocol or if FreeBSD - * could accept the offsets and let the stack figure it out. + * Use the checksum offset in the VirtIO header to set the + * correct CSUM_* flags. */ static int -vtnet_rx_csum(struct vtnet_softc *sc, struct mbuf *m, - struct virtio_net_hdr *hdr) +vtnet_rxq_csum_by_offset(struct vtnet_rxq *rxq, struct mbuf *m, + uint16_t eth_type, int ip_start, struct virtio_net_hdr *hdr) { - struct ether_header *eh; - struct ether_vlan_header *evh; - int offset; - uint16_t eth_type; - - offset = hdr->csum_start + hdr->csum_offset; - - if (offset < sizeof(struct ether_header) + sizeof(struct ip)) - return (1); - if (m->m_len < offset) - return (1); + struct vtnet_softc *sc; +#if defined(INET) || defined(INET6) + int offset = hdr->csum_start + hdr->csum_offset; +#endif - eh = mtod(m, struct ether_header *); - eth_type = ntohs(eh->ether_type); - if (eth_type == ETHERTYPE_VLAN) { - evh = mtod(m, struct ether_vlan_header *); - eth_type = ntohs(evh->evl_proto); - } + sc = rxq->vtnrx_sc; - if (eth_type != ETHERTYPE_IP && eth_type != ETHERTYPE_IPV6) { + /* Only do a basic sanity check on the offset. */ + switch (eth_type) { +#if defined(INET) + case ETHERTYPE_IP: + if (__predict_false(offset < ip_start + sizeof(struct ip))) + return (1); + break; +#endif +#if defined(INET6) + case ETHERTYPE_IPV6: + if (__predict_false(offset < ip_start + sizeof(struct ip6_hdr))) + return (1); + break; +#endif + default: sc->vtnet_stats.rx_csum_bad_ethtype++; return (1); } @@ -1428,8 +1425,8 @@ vtnet_rx_csum(struct vtnet_softc *sc, st /* * Use the offset to determine the appropriate CSUM_* flags. This * is a bit dirty, but we can get by with it since the checksum - * offsets happen to be different. The implied assumption is that - * the host does not do IPv4 header checksum offloading. + * offsets happen to be different. We assume the host host does + * not do IPv4 header checksum offloading. */ switch (hdr->csum_offset) { case offsetof(struct udphdr, uh_sum): @@ -1437,21 +1434,116 @@ vtnet_rx_csum(struct vtnet_softc *sc, st m->m_pkthdr.csum_flags |= CSUM_DATA_VALID | CSUM_PSEUDO_HDR; m->m_pkthdr.csum_data = 0xFFFF; break; - case offsetof(struct sctphdr, checksum): m->m_pkthdr.csum_flags |= CSUM_SCTP_VALID; break; - default: sc->vtnet_stats.rx_csum_bad_offset++; return (1); } - sc->vtnet_stats.rx_csum_offloaded++; + return (0); +} + +static int +vtnet_rxq_csum_by_parse(struct vtnet_rxq *rxq, struct mbuf *m, + uint16_t eth_type, int ip_start, struct virtio_net_hdr *hdr) +{ + struct vtnet_softc *sc; + int offset, proto; + + sc = rxq->vtnrx_sc; + + switch (eth_type) { +#if defined(INET) + case ETHERTYPE_IP: { + struct ip *ip; + if (__predict_false(m->m_len < ip_start + sizeof(struct ip))) + return (1); + ip = (struct ip *)(m->m_data + ip_start); + proto = ip->ip_p; + offset = ip_start + (ip->ip_hl << 2); + break; + } +#endif +#if defined(INET6) + case ETHERTYPE_IPV6: + if (__predict_false(m->m_len < ip_start + + sizeof(struct ip6_hdr))) + return (1); + offset = ip6_lasthdr(m, ip_start, IPPROTO_IPV6, &proto); + if (__predict_false(offset < 0)) + return (1); + break; +#endif + default: + sc->vtnet_stats.rx_csum_bad_ethtype++; + return (1); + } + + switch (proto) { + case IPPROTO_TCP: + if (__predict_false(m->m_len < offset + sizeof(struct tcphdr))) + return (1); + m->m_pkthdr.csum_flags |= CSUM_DATA_VALID | CSUM_PSEUDO_HDR; + m->m_pkthdr.csum_data = 0xFFFF; + break; + case IPPROTO_UDP: + if (__predict_false(m->m_len < offset + sizeof(struct udphdr))) + return (1); + m->m_pkthdr.csum_flags |= CSUM_DATA_VALID | CSUM_PSEUDO_HDR; + m->m_pkthdr.csum_data = 0xFFFF; + break; + case IPPROTO_SCTP: + if (__predict_false(m->m_len < offset + sizeof(struct sctphdr))) + return (1); + m->m_pkthdr.csum_flags |= CSUM_SCTP_VALID; + break; + default: + sc->vtnet_stats.rx_csum_bad_proto++; + return (1); + } return (0); } +/* + * Set the appropriate CSUM_* flags. Unfortunately, the information + * provided is not directly useful to us. The VirtIO header gives the + * offset of the checksum, which is all Linux needs, but this is not + * how FreeBSD does things. We are forced to peek inside the packet + * a bit. + * + * It would be nice if VirtIO gave us the L4 protocol or if FreeBSD + * could accept the offsets and let the stack figure it out. + */ +static int +vtnet_rxq_csum(struct vtnet_rxq *rxq, struct mbuf *m, + struct virtio_net_hdr *hdr) +{ + struct ether_header *eh; + struct ether_vlan_header *evh; + uint16_t eth_type; + int offset, error; + + eh = mtod(m, struct ether_header *); + eth_type = ntohs(eh->ether_type); + if (eth_type == ETHERTYPE_VLAN) { + /* BMV: We should handle nested VLAN tags too. */ + evh = mtod(m, struct ether_vlan_header *); + eth_type = ntohs(evh->evl_proto); + offset = sizeof(struct ether_vlan_header); + } else + offset = sizeof(struct ether_header); + + if (hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) + error = vtnet_rxq_csum_by_offset(rxq, m, eth_type, offset, hdr); + else + error = vtnet_rxq_csum_by_parse(rxq, m, eth_type, offset, hdr); + + return (error); +} + static void vtnet_rxq_discard_merged_bufs(struct vtnet_rxq *rxq, int nbufs) { @@ -1496,12 +1588,12 @@ vtnet_rxq_merged_eof(struct vtnet_rxq *r while (--nbufs > 0) { m = virtqueue_dequeue(vq, &len); if (m == NULL) { - ifp->if_ierrors++; + rxq->vtnrx_stats.vrxs_ierrors++; goto fail; } if (vtnet_rxq_new_buf(rxq) != 0) { - ifp->if_iqdrops++; + rxq->vtnrx_stats.vrxs_discarded++; vtnet_rxq_discard_buf(rxq, m); if (nbufs > 1) vtnet_rxq_discard_merged_bufs(rxq, nbufs); @@ -1555,14 +1647,25 @@ vtnet_rxq_input(struct vtnet_rxq *rxq, s m->m_pkthdr.flowid = rxq->vtnrx_id; m->m_flags |= M_FLOWID; - if (ifp->if_capenable & IFCAP_RXCSUM && - hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) { - if (vtnet_rx_csum(sc, m, hdr) != 0) - sc->vtnet_stats.rx_csum_failed++; + /* + * BVM: FreeBSD does not have the UNNECESSARY and PARTIAL checksum + * distinction that Linux does. Need to reevaluate if performing + * offloading for the NEEDS_CSUM case is really appropriate. + */ + if (hdr->flags & (VIRTIO_NET_HDR_F_NEEDS_CSUM | + VIRTIO_NET_HDR_F_DATA_VALID)) { + if (vtnet_rxq_csum(rxq, m, hdr) == 0) + rxq->vtnrx_stats.vrxs_csum++; + else + rxq->vtnrx_stats.vrxs_csum_failed++; } - ifp->if_ipackets++; + rxq->vtnrx_stats.vrxs_ipackets++; + rxq->vtnrx_stats.vrxs_ibytes += m->m_pkthdr.len; + + /* VTNET_RXQ_UNLOCK(rxq); */ (*ifp->if_input)(ifp, m); + /* VTNET_RXQ_LOCK(rxq); */ } static int @@ -1587,10 +1690,6 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) VTNET_RXQ_LOCK_ASSERT(rxq); - /* - * `count` limits how many leading descriptors we dequeue. The - * actual number could be higher if there are merged buffers. - */ while (count-- > 0) { m = virtqueue_dequeue(vq, &len); if (m == NULL) @@ -1598,7 +1697,7 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) deq++; if (len < sc->vtnet_hdr_size + ETHER_HDR_LEN) { - ifp->if_ierrors++; + rxq->vtnrx_stats.vrxs_discarded++; vtnet_rxq_discard_buf(rxq, m); continue; } @@ -1618,7 +1717,7 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) } if (vtnet_rxq_replace_buf(rxq, m, len) != 0) { - ifp->if_iqdrops++; + rxq->vtnrx_stats.vrxs_discarded++; vtnet_rxq_discard_buf(rxq, m); if (nbufs > 1) vtnet_rxq_discard_merged_bufs(rxq, nbufs); @@ -1642,7 +1741,7 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) * regular header. * * BMV: Is this memcpy() expensive? We know the mbuf data is - * still valid after we adjust it. + * still valid even after the m_adj(). */ memcpy(hdr, mtod(m, void *), sizeof(struct virtio_net_hdr)); m_adj(m, adjsz); @@ -1662,18 +1761,19 @@ vtnet_rx_vq_intr(void *xrxq) struct vtnet_softc *sc; struct vtnet_rxq *rxq; struct ifnet *ifp; - int more; + int tries, more; rxq = xrxq; sc = rxq->vtnrx_sc; ifp = sc->vtnet_ifp; + tries = 0; if (__predict_false(rxq->vtnrx_id >= sc->vtnet_act_vq_pairs)) { /* - * Ignore this interrupt. Either the host generated a spurious - * interrupt (probably unlikely) or we have multiqueue without - * per-VQ MSIX so every queue needs to be polled (brain dead - * configuration we could try harder to avoid). + * Ignore this interrupt. Either this is a spurious interrupt + * or multiqueue without per-VQ MSIX so every queue needs to + * be polled (a brain dead configuration we could try harder + * to avoid). */ vtnet_rxq_disable_intr(rxq); return; @@ -1683,7 +1783,6 @@ again: VTNET_RXQ_LOCK(rxq); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - vtnet_rxq_enable_intr(rxq); VTNET_RXQ_UNLOCK(rxq); return; } @@ -1692,21 +1791,47 @@ again: if (more || vtnet_rxq_enable_intr(rxq) != 0) { if (!more) vtnet_rxq_disable_intr(rxq); - sc->vtnet_stats.rx_task_rescheduled++; + /* + * This is an occasional condition or race (when !more), + * so retry a few times before scheduling the taskqueue. + */ + rxq->vtnrx_stats.vrxs_rescheduled++; + VTNET_RXQ_UNLOCK(rxq); + if (tries++ < VTNET_INTR_DISABLE_RETRIES) + goto again; + taskqueue_enqueue(rxq->vtnrx_tq, &rxq->vtnrx_intrtask); + } else VTNET_RXQ_UNLOCK(rxq); - goto again; - } - - VTNET_RXQ_UNLOCK(rxq); } static void -vtnet_rxq_taskqueue(void *xrxq, int pending) +vtnet_rxq_tq_intr(void *xrxq, int pending) { + struct vtnet_softc *sc; + struct vtnet_rxq *rxq; + struct ifnet *ifp; + int more; - /* - * BMV: Do stuff here when we defer in vtnet_rx_vq_intr(). - */ + rxq = xrxq; + sc = rxq->vtnrx_sc; + ifp = sc->vtnet_ifp; + + VTNET_RXQ_LOCK(rxq); + + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { + VTNET_RXQ_UNLOCK(rxq); + return; + } + + more = vtnet_rxq_eof(rxq); + if (more || vtnet_rxq_enable_intr(rxq) != 0) { + if (!more) + vtnet_rxq_disable_intr(rxq); + rxq->vtnrx_stats.vrxs_rescheduled++; + taskqueue_enqueue(rxq->vtnrx_tq, &rxq->vtnrx_intrtask); + } + + VTNET_RXQ_UNLOCK(rxq); } static void @@ -1729,121 +1854,150 @@ vtnet_txq_free_mbufs(struct vtnet_txq *t } /* - * BMV: Uggg ... rewrite this function. + * BMV: Much of this can go away once we finally have offsets in + * the mbuf packet header. Bug andre@. */ -static struct mbuf * -vtnet_tx_offload(struct vtnet_softc *sc, struct mbuf *m, - struct virtio_net_hdr *hdr) +static int +vtnet_txq_offload_ctx(struct vtnet_txq *txq, struct mbuf *m, + int *etype, int *proto, int *start) { - struct ifnet *ifp; - struct ether_header *eh; + struct vtnet_softc *sc; struct ether_vlan_header *evh; - struct ip *ip; - struct ip6_hdr *ip6; - struct tcphdr *tcp; - int ip_offset; - uint16_t eth_type, csum_start; - uint8_t ip_proto, gso_type; + int offset; - ifp = sc->vtnet_ifp; + sc = txq->vtntx_sc; - ip_offset = sizeof(struct ether_header); - if (m->m_len < ip_offset) { - if ((m = m_pullup(m, ip_offset)) == NULL) - return (NULL); + evh = mtod(m, struct ether_vlan_header *); + if (evh->evl_encap_proto == htons(ETHERTYPE_VLAN)) { + /* BMV: We should handle nested VLAN tags too. */ + *etype = ntohs(evh->evl_proto); + offset = sizeof(struct ether_vlan_header); + } else { + *etype = ntohs(evh->evl_encap_proto); + offset = sizeof(struct ether_header); } - eh = mtod(m, struct ether_header *); - eth_type = ntohs(eh->ether_type); - if (eth_type == ETHERTYPE_VLAN) { - ip_offset = sizeof(struct ether_vlan_header); - if (m->m_len < ip_offset) { - if ((m = m_pullup(m, ip_offset)) == NULL) - return (NULL); - } - evh = mtod(m, struct ether_vlan_header *); - eth_type = ntohs(evh->evl_proto); + switch (*etype) { +#if defined(INET) + case ETHERTYPE_IP: { + struct ip *ip, iphdr; + if (__predict_false(m->m_len < offset + sizeof(struct ip))) { + m_copydata(m, offset, sizeof(struct ip), + (caddr_t) &iphdr); + ip = &iphdr; + } else + ip = (struct ip *)(m->m_data + offset); + *proto = ip->ip_p; + *start = offset + (ip->ip_hl << 2); + break; + } +#endif +#if defined(INET6) + case ETHERTYPE_IPV6: + *proto = -1; + *start = ip6_lasthdr(m, offset, IPPROTO_IPV6, proto); + /* Assert the network stack sends us a valid packet. */ + KASSERT(*start > offset, + ("%s: mbuf %p start %d offset %d proto %d", __func__, m, + *start, offset, *proto)); + break; +#endif + default: + sc->vtnet_stats.tx_csum_bad_ethtype++; + return (EINVAL); } - switch (eth_type) { - case ETHERTYPE_IP: - if (m->m_len < ip_offset + sizeof(struct ip)) { - m = m_pullup(m, ip_offset + sizeof(struct ip)); - if (m == NULL) - return (NULL); - } + return (0); +} - ip = (struct ip *)(mtod(m, uint8_t *) + ip_offset); - ip_proto = ip->ip_p; - csum_start = ip_offset + (ip->ip_hl << 2); - gso_type = VIRTIO_NET_HDR_GSO_TCPV4; - break; +static int +vtnet_txq_offload_tso(struct vtnet_txq *txq, struct mbuf *m, int eth_type, + int offset, struct virtio_net_hdr *hdr) +{ + static struct timeval lastecn; + static int curecn; + struct vtnet_softc *sc; + struct tcphdr *tcp, tcphdr; - case ETHERTYPE_IPV6: - if (m->m_len < ip_offset + sizeof(struct ip6_hdr)) { - m = m_pullup(m, ip_offset + sizeof(struct ip6_hdr)); - if (m == NULL) - return (NULL); - } + sc = txq->vtntx_sc; + + if (__predict_false(m->m_len < offset + sizeof(struct tcphdr))) { + m_copydata(m, offset, sizeof(struct tcphdr), (caddr_t) &tcphdr); + tcp = &tcphdr; + } else + tcp = (struct tcphdr *)(m->m_data + offset); + + hdr->hdr_len = offset + (tcp->th_off << 2); + hdr->gso_size = m->m_pkthdr.tso_segsz; + hdr->gso_type = eth_type == ETHERTYPE_IP ? VIRTIO_NET_HDR_GSO_TCPV4 : + VIRTIO_NET_HDR_GSO_TCPV6; - ip6 = (struct ip6_hdr *)(mtod(m, uint8_t *) + ip_offset); + if (tcp->th_flags & TH_CWR) { /* - * XXX Assume no extension headers are present. Presently, - * this will always be true in the case of TSO, and FreeBSD - * does not perform checksum offloading of IPv6 yet. + * Drop if VIRTIO_NET_F_HOST_ECN was not negotiated. In FreeBSD + * ECN support is not on a per-interface basis, but globally via + * the net.inet.tcp.ecn.enable sysctl knob. The default is off. */ - ip_proto = ip6->ip6_nxt; - csum_start = ip_offset + sizeof(struct ip6_hdr); - gso_type = VIRTIO_NET_HDR_GSO_TCPV6; - break; - - default: - return (m); + if ((sc->vtnet_flags & VTNET_FLAG_TSO_ECN) == 0) { + if (ppsratecheck(&lastecn, &curecn, 1)) + if_printf(sc->vtnet_ifp, + "TSO with ECN not negotiated with host\n"); + return (ENOTSUP); + } + hdr->gso_type |= VIRTIO_NET_HDR_GSO_ECN; } - if (m->m_pkthdr.csum_flags & VTNET_CSUM_OFFLOAD) { - hdr->flags |= VIRTIO_NET_HDR_F_NEEDS_CSUM; - hdr->csum_start = csum_start; - hdr->csum_offset = m->m_pkthdr.csum_data; + txq->vtntx_stats.vtxs_tso++; - sc->vtnet_stats.tx_csum_offloaded++; - } + return (0); +} - if (m->m_pkthdr.csum_flags & CSUM_TSO) { - if (ip_proto != IPPROTO_TCP) - return (m); +static struct mbuf * +vtnet_txq_offload(struct vtnet_txq *txq, struct mbuf *m, + struct virtio_net_hdr *hdr) +{ + struct vtnet_softc *sc; + int flags, etype, csum_start, proto, error; - if (m->m_len < csum_start + sizeof(struct tcphdr)) { - m = m_pullup(m, csum_start + sizeof(struct tcphdr)); - if (m == NULL) - return (NULL); - } + sc = txq->vtntx_sc; + flags = m->m_pkthdr.csum_flags; - tcp = (struct tcphdr *)(mtod(m, uint8_t *) + csum_start); - hdr->gso_type = gso_type; - hdr->hdr_len = csum_start + (tcp->th_off << 2); - hdr->gso_size = m->m_pkthdr.tso_segsz; + error = vtnet_txq_offload_ctx(txq, m, &etype, &csum_start, &proto); + if (error) + goto drop; - if (tcp->th_flags & TH_CWR) { - /* - * Drop if we did not negotiate VIRTIO_NET_F_HOST_ECN. - * ECN support is only configurable globally with the - * net.inet.tcp.ecn.enable sysctl knob. - */ - if ((sc->vtnet_flags & VTNET_FLAG_TSO_ECN) == 0) { - if_printf(ifp, "TSO with ECN not supported " - "by host\n"); - m_freem(m); - return (NULL); - } + if ((etype == ETHERTYPE_IP && flags & VTNET_CSUM_OFFLOAD) || + (etype == ETHERTYPE_IPV6 && flags & VTNET_CSUM_OFFLOAD_IPV6)) { + /* + * We could compare the IP protocol vs the CSUM_ flag too, + * but that really should not be necessary. + */ + hdr->flags |= VIRTIO_NET_HDR_F_NEEDS_CSUM; + hdr->csum_start = csum_start; + hdr->csum_offset = m->m_pkthdr.csum_data; + txq->vtntx_stats.vtxs_csum++; + } - hdr->flags |= VIRTIO_NET_HDR_GSO_ECN; + if (flags & CSUM_TSO) { + if (__predict_false(proto != IPPROTO_TCP)) { + /* Likely failed to correctly parse the mbuf. */ + sc->vtnet_stats.tx_tso_not_tcp++; + goto drop; } - sc->vtnet_stats.tx_tso_offloaded++; + KASSERT(hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM, + ("%s: mbuf %p TSO without checksum offload", __func__, m)); + + error = vtnet_txq_offload_tso(txq, m, etype, csum_start, hdr); + if (error) + goto drop; } return (m); + +drop: + m_freem(m); + return (NULL); } static int @@ -1879,6 +2033,7 @@ again: *m_head = m; collapsed = 1; + txq->vtntx_stats.vtxs_collapsed++; goto again; } @@ -1920,29 +2075,26 @@ vtnet_txq_encap(struct vtnet_txq *txq, s * The vtnet_hdr_size is used to enqueue the correct header size. */ hdr = &txhdr->vth_uhdr.hdr; - + error = ENOBUFS; if (m->m_flags & M_VLANTAG) { m = ether_vlanencap(m, m->m_pkthdr.ether_vtag); - if ((*m_head = m) == NULL) { - error = ENOBUFS; + if ((*m_head = m) == NULL) goto fail; - } m->m_flags &= ~M_VLANTAG; } - if (m->m_pkthdr.csum_flags != 0) { - m = vtnet_tx_offload(sc, m, hdr); - if ((*m_head = m) == NULL) { - error = ENOBUFS; + if (m->m_pkthdr.csum_flags & VTNET_CSUM_ALL_OFFLOAD) { + m = vtnet_txq_offload(txq, m, hdr); + if ((*m_head = m) == NULL) goto fail; - } } error = vtnet_txq_enqueue_buf(txq, m_head, txhdr); + if (error == 0) + return (0); fail: - if (error) - uma_zfree(vtnet_tx_header_zone, txhdr); + uma_zfree(vtnet_tx_header_zone, txhdr); return (error); } @@ -2071,7 +2223,6 @@ vtnet_txq_mq_start(struct ifnet *ifp, st sc = ifp->if_softc; npairs = sc->vtnet_act_vq_pairs; - /* BMV: Is this the best way to determine which queue? */ if (m->m_flags & M_FLOWID) i = m->m_pkthdr.flowid % npairs; else @@ -2084,14 +2235,14 @@ vtnet_txq_mq_start(struct ifnet *ifp, st VTNET_TXQ_UNLOCK(txq); } else { error = drbr_enqueue(ifp, txq->vtntx_br, m); - vtnet_txq_tq_start(txq); + taskqueue_enqueue(txq->vtntx_tq, &txq->vtntx_defrtask); } return (error); } static void -vtnet_txq_taskqueue(void *xtxq, int pending) +vtnet_txq_tq_deferred(void *xtxq, int pending) { struct vtnet_softc *sc; struct vtnet_txq *txq; @@ -2105,36 +2256,64 @@ vtnet_txq_taskqueue(void *xtxq, int pend *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Fri Mar 22 16:44:16 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 372C94B2; Fri, 22 Mar 2013 16:44:16 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 2A437D50; Fri, 22 Mar 2013 16:44:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2MGiGhK025270; Fri, 22 Mar 2013 16:44:16 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2MGiGFC025269; Fri, 22 Mar 2013 16:44:16 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303221644.r2MGiGFC025269@svn.freebsd.org> From: Attilio Rao Date: Fri, 22 Mar 2013 16:44:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248618 - user/attilio/vmobj-readlock/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Mar 2013 16:44:16 -0000 Author: attilio Date: Fri Mar 22 16:44:15 2013 New Revision: 248618 URL: http://svnweb.freebsd.org/changeset/base/248618 Log: Fix a problem when the page identity was changing after sleeping in vm_page_sleep* primitives. The lock can change as the page's object lock is not held, relocking then the wrong object in the end. Sponsored by: EMC / Isilon storage division Reported and tested by: pho Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.c Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.c ============================================================================== --- user/attilio/vmobj-readlock/sys/vm/vm_page.c Fri Mar 22 14:10:15 2013 (r248617) +++ user/attilio/vmobj-readlock/sys/vm/vm_page.c Fri Mar 22 16:44:15 2013 (r248618) @@ -757,12 +757,21 @@ vm_page_readahead_finish(vm_page_t m) int vm_page_sleep_if_busy(vm_page_t m, int also_m_busy, const char *msg) { + vm_object_t obj; VM_OBJECT_ASSERT_WLOCKED(m->object); if ((m->oflags & VPO_BUSY) || (also_m_busy && m->busy)) { - VM_OBJECT_WUNLOCK(m->object); + /* + * The page-specific object must be cached because page + * identity can change during the sleep, causing the + * re-lock of a different object. + * It is assumed that a reference to the object is already + * held by the callers. + */ + obj = m->object; + VM_OBJECT_WUNLOCK(obj); vm_page_sleep(m, msg); - VM_OBJECT_WLOCK(m->object); + VM_OBJECT_WLOCK(obj); return (TRUE); } return (FALSE); From owner-svn-src-user@FreeBSD.ORG Fri Mar 22 22:52:05 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 5C2DA164; Fri, 22 Mar 2013 22:52:05 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 4DF82324; Fri, 22 Mar 2013 22:52:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2MMq5dC067775; Fri, 22 Mar 2013 22:52:05 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2MMq2pL067757; Fri, 22 Mar 2013 22:52:02 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303222252.r2MMq2pL067757@svn.freebsd.org> From: Attilio Rao Date: Fri, 22 Mar 2013 22:52:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248629 - in user/attilio/vmobj-readlock/sys: dev/agp dev/drm2/i915 dev/md fs/fuse fs/tmpfs kern vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Mar 2013 22:52:05 -0000 Author: attilio Date: Fri Mar 22 22:52:02 2013 New Revision: 248629 URL: http://svnweb.freebsd.org/changeset/base/248629 Log: - Save some further atomics and introduce vm_page_wakeup_locked() that assumes vm_page_lock held. It is implemented as an hard function right now because it is only a WIP and it avoids a namespace pollution. It will be cleaned before to merge back. Maybe it makes sense to always acquire the vm_page_lock() in the users for vm_page_wakeup() and get rid of vm_page_wakeup_locked() finally. This will be discussed more. - Fix a bug where vm_page_remove() is called for UNNAMED pages and the page lock is not held. Don't make assumption about the lock in that case and just deal with the situation, even if it is a tricky pattern. We use a boolean_t rather than a mtx pointer. [0] Sponsored by: EMC / Isilon storage division [0] Reported by: pho Modified: user/attilio/vmobj-readlock/sys/dev/agp/agp.c user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c user/attilio/vmobj-readlock/sys/dev/md/md.c user/attilio/vmobj-readlock/sys/fs/fuse/fuse_vnops.c user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_subr.c user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_vnops.c user/attilio/vmobj-readlock/sys/kern/kern_exec.c user/attilio/vmobj-readlock/sys/kern/uipc_shm.c user/attilio/vmobj-readlock/sys/vm/swap_pager.c user/attilio/vmobj-readlock/sys/vm/vm_fault.c user/attilio/vmobj-readlock/sys/vm/vm_glue.c user/attilio/vmobj-readlock/sys/vm/vm_page.c user/attilio/vmobj-readlock/sys/vm/vm_page.h Modified: user/attilio/vmobj-readlock/sys/dev/agp/agp.c ============================================================================== --- user/attilio/vmobj-readlock/sys/dev/agp/agp.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/dev/agp/agp.c Fri Mar 22 22:52:02 2013 (r248629) @@ -626,9 +626,9 @@ bad: VM_OBJECT_ASSERT_WLOCKED(mem->am_obj); for (k = 0; k < mem->am_size; k += PAGE_SIZE) { m = vm_page_lookup(mem->am_obj, OFF_TO_IDX(k)); - if (k >= i) - vm_page_wakeup(m); vm_page_lock(m); + if (k >= i) + vm_page_wakeup_locked(m); vm_page_unwire(m, 0); vm_page_unlock(m); } Modified: user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c ============================================================================== --- user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c Fri Mar 22 22:52:02 2013 (r248629) @@ -2516,8 +2516,8 @@ i915_gem_wire_page(vm_object_t object, v } vm_page_lock(m); vm_page_wire(m); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); atomic_add_long(&i915_gem_wired_pages_cnt, 1); return (m); } Modified: user/attilio/vmobj-readlock/sys/dev/md/md.c ============================================================================== --- user/attilio/vmobj-readlock/sys/dev/md/md.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/dev/md/md.c Fri Mar 22 22:52:02 2013 (r248629) @@ -879,8 +879,8 @@ mdstart_swap(struct md_s *sc, struct bio } else vm_pager_page_unswapped(m); } - vm_page_wakeup(m); vm_page_lock(m); + vm_page_wakeup_locked(m); if (bp->bio_cmd == BIO_DELETE && len == PAGE_SIZE) vm_page_free(m); else Modified: user/attilio/vmobj-readlock/sys/fs/fuse/fuse_vnops.c ============================================================================== --- user/attilio/vmobj-readlock/sys/fs/fuse/fuse_vnops.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/fs/fuse/fuse_vnops.c Fri Mar 22 22:52:02 2013 (r248629) @@ -1873,8 +1873,8 @@ fuse_vnop_getpages(struct vop_getpages_a vm_page_activate(m); else vm_page_deactivate(m); + vm_page_wakeup_locked(m); fuse_vm_page_unlock(m); - vm_page_wakeup(m); } else { fuse_vm_page_lock(m); vm_page_free(m); Modified: user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_subr.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_subr.c Fri Mar 22 22:52:02 2013 (r248629) @@ -1309,8 +1309,8 @@ retry: vm_page_lock(m); if (rv == VM_PAGER_OK) { vm_page_deactivate(m); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); } else { vm_page_free(m); vm_page_unlock(m); Modified: user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_vnops.c ============================================================================== --- user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_vnops.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_vnops.c Fri Mar 22 22:52:02 2013 (r248629) @@ -468,8 +468,8 @@ tmpfs_nocacheread(vm_object_t tobj, vm_p VM_OBJECT_WLOCK(tobj); vm_page_lock(m); vm_page_unwire(m, TRUE); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); VM_OBJECT_WUNLOCK(tobj); return (error); @@ -696,8 +696,8 @@ lookupvpg: } vm_page_lock(tpg); vm_page_unwire(tpg, TRUE); + vm_page_wakeup_locked(tpg); vm_page_unlock(tpg); - vm_page_wakeup(tpg); out: VM_OBJECT_WUNLOCK(tobj); if (vpg != NULL) { Modified: user/attilio/vmobj-readlock/sys/kern/kern_exec.c ============================================================================== --- user/attilio/vmobj-readlock/sys/kern/kern_exec.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/kern/kern_exec.c Fri Mar 22 22:52:02 2013 (r248629) @@ -971,8 +971,8 @@ exec_map_first_page(imgp) } vm_page_lock(ma[0]); vm_page_hold(ma[0]); + vm_page_wakeup_locked(ma[0]); vm_page_unlock(ma[0]); - vm_page_wakeup(ma[0]); VM_OBJECT_WUNLOCK(object); imgp->firstpage = sf_buf_alloc(ma[0], 0); Modified: user/attilio/vmobj-readlock/sys/kern/uipc_shm.c ============================================================================== --- user/attilio/vmobj-readlock/sys/kern/uipc_shm.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/kern/uipc_shm.c Fri Mar 22 22:52:02 2013 (r248629) @@ -307,8 +307,8 @@ retry: vm_page_lock(m); if (rv == VM_PAGER_OK) { vm_page_deactivate(m); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); } else { vm_page_free(m); vm_page_unlock(m); Modified: user/attilio/vmobj-readlock/sys/vm/swap_pager.c ============================================================================== --- user/attilio/vmobj-readlock/sys/vm/swap_pager.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/vm/swap_pager.c Fri Mar 22 22:52:02 2013 (r248629) @@ -1597,8 +1597,8 @@ swp_pager_async_iodone(struct buf *bp) if (i != bp->b_pager.pg_reqpage) { vm_page_lock(m); vm_page_deactivate(m); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); } else { vm_page_lock(m); vm_page_flash(m); @@ -1718,8 +1718,8 @@ swp_pager_force_pagein(vm_object_t objec vm_page_dirty(m); vm_page_lock(m); vm_page_activate(m); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); vm_pager_page_unswapped(m); return; } @@ -1730,8 +1730,8 @@ swp_pager_force_pagein(vm_object_t objec vm_page_dirty(m); vm_page_lock(m); vm_page_deactivate(m); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); vm_pager_page_unswapped(m); } Modified: user/attilio/vmobj-readlock/sys/vm/vm_fault.c ============================================================================== --- user/attilio/vmobj-readlock/sys/vm/vm_fault.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/vm/vm_fault.c Fri Mar 22 22:52:02 2013 (r248629) @@ -141,8 +141,8 @@ static inline void release_page(struct faultstate *fs) { - vm_page_wakeup(fs->m); vm_page_lock(fs->m); + vm_page_wakeup_locked(fs->m); vm_page_deactivate(fs->m); vm_page_unlock(fs->m); fs->m = NULL; @@ -934,8 +934,8 @@ vnode_locked: *m_hold = fs.m; vm_page_hold(fs.m); } + vm_page_wakeup_locked(fs.m); vm_page_unlock(fs.m); - vm_page_wakeup(fs.m); /* * Unlock everything, and return @@ -1361,13 +1361,14 @@ vm_fault_copy_entry(vm_map_t dst_map, vm vm_page_lock(dst_m); vm_page_wire(dst_m); + vm_page_wakeup_locked(dst_m); vm_page_unlock(dst_m); } else { vm_page_lock(dst_m); vm_page_activate(dst_m); + vm_page_wakeup_locked(dst_m); vm_page_unlock(dst_m); } - vm_page_wakeup(dst_m); } VM_OBJECT_WUNLOCK(dst_object); if (upgrade) { Modified: user/attilio/vmobj-readlock/sys/vm/vm_glue.c ============================================================================== --- user/attilio/vmobj-readlock/sys/vm/vm_glue.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/vm/vm_glue.c Fri Mar 22 22:52:02 2013 (r248629) @@ -258,8 +258,8 @@ vm_imgact_hold_page(vm_object_t object, } vm_page_lock(m); vm_page_hold(m); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); out: VM_OBJECT_WUNLOCK(object); return (m); Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.c ============================================================================== --- user/attilio/vmobj-readlock/sys/vm/vm_page.c Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/vm/vm_page.c Fri Mar 22 22:52:02 2013 (r248629) @@ -493,22 +493,39 @@ vm_page_flash(vm_page_t m) } /* - * vm_page_wakeup: + * vm_page_wakeup: + * + * clear the VPO_BUSY flag and wakeup anyone waiting for the + * page. + * + * The object containing the page must be locked. + */ +void +vm_page_wakeup(vm_page_t m) +{ + + vm_page_lock(m); + vm_page_wakeup_locked(m); + vm_page_unlock(m); +} + +/* + * vm_page_wakeup_locked: * * clear the VPO_BUSY flag and wakeup anyone waiting for the * page. * + * The page and the object containing the page must be locked. */ void -vm_page_wakeup(vm_page_t m) +vm_page_wakeup_locked(vm_page_t m) { VM_OBJECT_ASSERT_WLOCKED(m->object); + vm_page_lock_assert(m, MA_OWNED); KASSERT(m->oflags & VPO_BUSY, ("vm_page_wakeup: page not busy!!!")); m->oflags &= ~VPO_BUSY; - vm_page_lock(m); vm_page_flash(m); - vm_page_unlock(m); } void @@ -729,8 +746,8 @@ vm_page_readahead_finish(vm_page_t m) vm_page_activate(m); else vm_page_deactivate(m); + vm_page_wakeup_locked(m); vm_page_unlock(m); - vm_page_wakeup(m); } else { /* * Free the completely invalid page. Such page state @@ -897,6 +914,7 @@ void vm_page_remove(vm_page_t m) { vm_object_t object; + boolean_t lockacq; if ((m->oflags & VPO_UNMANAGED) == 0) vm_page_lock_assert(m, MA_OWNED); @@ -905,7 +923,15 @@ vm_page_remove(vm_page_t m) VM_OBJECT_ASSERT_WLOCKED(object); if (m->oflags & VPO_BUSY) { m->oflags &= ~VPO_BUSY; + lockacq = FALSE; + if ((m->oflags & VPO_UNMANAGED) != 0 && + !mtx_owned(vm_page_lockptr(m))) { + lockacq = TRUE; + vm_page_lock(m); + } vm_page_flash(m); + if (lockacq) + vm_page_unlock(m); } /* Modified: user/attilio/vmobj-readlock/sys/vm/vm_page.h ============================================================================== --- user/attilio/vmobj-readlock/sys/vm/vm_page.h Fri Mar 22 22:50:48 2013 (r248628) +++ user/attilio/vmobj-readlock/sys/vm/vm_page.h Fri Mar 22 22:52:02 2013 (r248629) @@ -368,6 +368,7 @@ void vm_page_unhold(vm_page_t mem); void vm_page_free(vm_page_t m); void vm_page_free_zero(vm_page_t m); void vm_page_wakeup(vm_page_t m); +void vm_page_wakeup_locked(vm_page_t m); void vm_page_activate (vm_page_t); vm_page_t vm_page_alloc (vm_object_t, vm_pindex_t, int); From owner-svn-src-user@FreeBSD.ORG Fri Mar 22 22:55:39 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 8C6AF348; Fri, 22 Mar 2013 22:55:39 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 7B83A374; Fri, 22 Mar 2013 22:55:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2MMtdiu068322; Fri, 22 Mar 2013 22:55:39 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2MMtbU1068309; Fri, 22 Mar 2013 22:55:37 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303222255.r2MMtbU1068309@svn.freebsd.org> From: Attilio Rao Date: Fri, 22 Mar 2013 22:55:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248630 - in user/attilio/vmcontention: . bin/chflags bin/mv cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zhack cddl/contrib/opensolari... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Mar 2013 22:55:39 -0000 Author: attilio Date: Fri Mar 22 22:55:37 2013 New Revision: 248630 URL: http://svnweb.freebsd.org/changeset/base/248630 Log: MFC Added: user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_compat.c - copied unchanged from r248629, head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_compat.c user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_compat.h - copied unchanged from r248629, head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_compat.h user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs_core/ - copied from r248629, head/cddl/contrib/opensolaris/lib/libzfs_core/ user/attilio/vmcontention/cddl/lib/libzfs_core/ - copied from r248629, head/cddl/lib/libzfs_core/ user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.Z.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.Z.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.bz2.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.bz2.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.grz.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.grz.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.gz.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.gz.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.lrz.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.lrz.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.lz.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.lz.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.lzma.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.lzma.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.lzo.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.lzo.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.xz.uu - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract.cpio.xz.uu user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_Z.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_Z.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_bz2.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_bz2.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_grz.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_grz.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_gz.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_gz.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_lrz.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_lrz.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_lz.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_lz.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_lzma.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_lzma.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_lzo.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_lzo.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_xz.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_extract_cpio_xz.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_b64encode.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_option_b64encode.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_grzip.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_option_grzip.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_lrzip.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_option_lrzip.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_lzop.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_option_lzop.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_uuencode.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_option_uuencode.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_xz.c - copied unchanged from r248629, head/contrib/libarchive/cpio/test/test_option_xz.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_cmdline.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_cmdline.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_cmdline_private.h - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_cmdline_private.h user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_append_filter.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_read_append_filter.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_set_format.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_read_set_format.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_grzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_read_support_filter_grzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_lrzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_read_support_filter_lrzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_by_name.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_write_add_filter_by_name.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_grzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_write_add_filter_grzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_lrzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_write_add_filter_lrzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_lzop.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_write_add_filter_lzop.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c user/attilio/vmcontention/contrib/libarchive/libarchive/filter_fork_posix.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/filter_fork_posix.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_cmdline.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_archive_cmdline.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_multiple_data_objects.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_archive_read_multiple_data_objects.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_write_add_filter_by_name.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_archive_write_add_filter_by_name.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_write_set_format_by_name.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_archive_write_set_format_by_name.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzop.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_compat_lzop.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzop_1.tar.lzo.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_compat_lzop_1.tar.lzo.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzop_2.tar.lzo.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_compat_lzop_2.tar.lzo.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzop_3.tar.lzo.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_compat_lzop_3.tar.lzo.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_uudecode.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_compat_uudecode.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_grzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_grzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_grzip.tar.grz.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_grzip.tar.grz.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lrzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_lrzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lrzip.tar.lrz.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_lrzip.tar.lrz.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lzop.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_lzop.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lzop.tar.lzo.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_lzop.tar.lzo.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_program.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_program.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_program_signature.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_program_signature.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_uudecode.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_filter_uudecode.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored_1.zip.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored_1.zip.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored_2.zip.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored_2.zip.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.zip.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.zip.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_aa.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_aa.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ab.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ab.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ac.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ac.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ad.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ad.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ae.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ae.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_set_format.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_set_format.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_splitted_rar_aa.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_splitted_rar_aa.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_splitted_rar_ab.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_splitted_rar_ab.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_splitted_rar_ac.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_splitted_rar_ac.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_splitted_rar_ad.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_read_splitted_rar_ad.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_aa.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_aa.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_ab.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_ab.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_ac.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_ac.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_appledouble.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_disk_appledouble.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_appledouble.cpio.gz.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_disk_appledouble.cpio.gz.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_hfs_compression.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_disk_hfs_compression.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_hfs_compression.tgz.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_disk_hfs_compression.tgz.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_mac_metadata.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_disk_mac_metadata.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_no_hfs_compression.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_disk_no_hfs_compression.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_b64encode.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_b64encode.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_bzip2.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_bzip2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_compress.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_compress.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_gzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_gzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_gzip_timestamp.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_gzip_timestamp.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_lrzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_lrzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_lzip.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_lzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_lzma.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_lzma.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_lzop.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_lzop.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_program.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_program.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_uuencode.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_uuencode.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_xz.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_filter_xz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_7zip_empty.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_format_7zip_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_7zip_large.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_format_7zip_large.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_absolute_path.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_format_mtree_absolute_path.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_classic.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_format_mtree_classic.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_classic_indent.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_format_mtree_classic_indent.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_no_separator.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_format_mtree_no_separator.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_quoted_filename.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_format_mtree_quoted_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_tar_v7tar.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_format_tar_v7tar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_zip_set_compression_store.c - copied unchanged from r248629, head/contrib/libarchive/libarchive/test/test_write_zip_set_compression_store.c user/attilio/vmcontention/contrib/libarchive/tar/creation_set.c - copied unchanged from r248629, head/contrib/libarchive/tar/creation_set.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.Z.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.Z.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.bz2.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.bz2.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.grz.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.grz.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.gz.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.gz.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.lrz.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.lrz.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.lz.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.lz.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.lzma.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.lzma.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.lzo.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.lzo.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.xz.uu - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract.tar.xz.uu user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_Z.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_Z.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_bz2.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_bz2.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_grz.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_grz.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_gz.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_gz.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_lrz.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_lrz.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_lz.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_lz.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_lzma.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_lzma.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_lzo.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_lzo.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_xz.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_extract_tar_xz.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_a.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_a.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_b64encode.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_b64encode.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_grzip.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_grzip.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_j.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_j.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_lrzip.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_lrzip.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_lzma.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_lzma.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_lzop.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_lzop.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_older_than.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_older_than.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_uuencode.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_uuencode.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_xz.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_xz.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_z.c - copied unchanged from r248629, head/contrib/libarchive/tar/test/test_option_z.c user/attilio/vmcontention/contrib/libarchive/test_utils/ - copied from r248629, head/contrib/libarchive/test_utils/ user/attilio/vmcontention/crypto/openssh/PROTOCOL.krl - copied unchanged from r248629, head/crypto/openssh/PROTOCOL.krl user/attilio/vmcontention/crypto/openssh/krl.c - copied unchanged from r248629, head/crypto/openssh/krl.c user/attilio/vmcontention/crypto/openssh/krl.h - copied unchanged from r248629, head/crypto/openssh/krl.h user/attilio/vmcontention/crypto/openssh/openbsd-compat/bsd-setres_id.c - copied unchanged from r248629, head/crypto/openssh/openbsd-compat/bsd-setres_id.c user/attilio/vmcontention/crypto/openssh/openbsd-compat/bsd-setres_id.h - copied unchanged from r248629, head/crypto/openssh/openbsd-compat/bsd-setres_id.h user/attilio/vmcontention/crypto/openssh/openbsd-compat/strtoull.c - copied unchanged from r248629, head/crypto/openssh/openbsd-compat/strtoull.c user/attilio/vmcontention/crypto/openssh/scard/ - copied from r248629, head/crypto/openssh/scard/ user/attilio/vmcontention/crypto/openssh/umac128.c - copied unchanged from r248629, head/crypto/openssh/umac128.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c - copied unchanged from r248629, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c - copied unchanged from r248629, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_send.h - copied unchanged from r248629, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_send.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_destroy.h - copied unchanged from r248629, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_destroy.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_userhold.h - copied unchanged from r248629, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_userhold.h Deleted: user/attilio/vmcontention/contrib/libarchive/libarchive/filter_fork.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_acl_freebsd.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_compress_program.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_uu.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_compress.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_compress_bzip2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_compress_gzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_compress_lzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_compress_lzma.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_compress_program.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_compress_xz.c user/attilio/vmcontention/crypto/openssh/acss.c user/attilio/vmcontention/crypto/openssh/acss.h user/attilio/vmcontention/crypto/openssh/cipher-acss.c Modified: user/attilio/vmcontention/Makefile.inc1 user/attilio/vmcontention/bin/chflags/chflags.c user/attilio/vmcontention/bin/mv/mv.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zhack/zhack.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/ztest/ztest.c user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h user/attilio/vmcontention/cddl/lib/Makefile user/attilio/vmcontention/cddl/lib/libzfs/Makefile user/attilio/vmcontention/cddl/sbin/zfs/Makefile user/attilio/vmcontention/cddl/sbin/zpool/Makefile user/attilio/vmcontention/cddl/usr.bin/zinject/Makefile user/attilio/vmcontention/cddl/usr.bin/ztest/Makefile user/attilio/vmcontention/cddl/usr.sbin/zdb/Makefile user/attilio/vmcontention/cddl/usr.sbin/zhack/Makefile user/attilio/vmcontention/contrib/libarchive/NEWS user/attilio/vmcontention/contrib/libarchive/README user/attilio/vmcontention/contrib/libarchive/cpio/bsdcpio.1 user/attilio/vmcontention/contrib/libarchive/cpio/cmdline.c user/attilio/vmcontention/contrib/libarchive/cpio/cpio.c user/attilio/vmcontention/contrib/libarchive/cpio/cpio.h user/attilio/vmcontention/contrib/libarchive/cpio/test/main.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test.h user/attilio/vmcontention/contrib/libarchive/cpio/test/test_basic.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_format_newc.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_y.c user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_z.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive.h user/attilio/vmcontention/contrib/libarchive/libarchive/archive_crypto.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_entry.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_entry.h user/attilio/vmcontention/contrib/libarchive/libarchive/archive_entry_link_resolver.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_match.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_options.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_ppmd7.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_private.h user/attilio/vmcontention/contrib/libarchive/libarchive/archive_rb.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_disk_posix.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_extract.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_open_fd.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_open_file.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_open_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_private.h user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_all.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_bzip2.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_compress.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_program.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_rpm.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_uu.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_xz.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_7zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_ar.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_cab.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_cpio.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_lha.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_mtree.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_rar.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_raw.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_tar.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_xar.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_format_zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_string.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_util.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_virtual.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_compress.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_program.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_xz.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_disk_acl.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_disk_posix.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_free.3 user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_open_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_private.h user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_7zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_ar.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_by_name.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_mtree.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_pax.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_xar.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_options.c user/attilio/vmcontention/contrib/libarchive/libarchive/filter_fork.h user/attilio/vmcontention/contrib/libarchive/libarchive/libarchive-formats.5 user/attilio/vmcontention/contrib/libarchive/libarchive/test/main.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test.h user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_acl_nfs4.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_acl_pax.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_acl_posix1e.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_clear_error.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_close_twice.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_close_twice_open_fd.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_close_twice_open_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_set_filter_option.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_set_format_option.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_set_option.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_set_options.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_set_error.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_write_set_filter_option.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_write_set_format_option.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_write_set_option.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_write_set_options.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_bzip2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_cpio.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_gtar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_gzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzma.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_mac.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_tar_hardlink.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_xz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_empty_write.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_entry.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_filter_count.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_fuzz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_open_failure.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_open_fd.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_open_file.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_open_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_pax_filename_encoding.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_data_large.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_disk.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_extract.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_7zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_ar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cab.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cab_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_afio.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_bin.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_Z.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_be.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_bz2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_gz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_lzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_lzma.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_xz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_odc.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4c_Z.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_gtar_gz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_gtar_lzma.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_iso_Z.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_iso_multi_extent.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_iso_xorriso.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isojoliet_bz2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isojoliet_long.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isojoliet_rr.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isojoliet_versioned.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isorr_bz2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isorr_ce.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isorr_new_bz2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isorr_rr_moved.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_isozisofs_bz2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_lha.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_lha_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_mtree.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_pax_bz2.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_tar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_tar_empty_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_tbz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_tgz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_tlz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_txz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_tz.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_xar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_pax_truncated.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_truncated.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_truncated_filter.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_sparse_basic.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_tar_filenames.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_ustar_filenames.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_sparse.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_7zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_ar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_cpio.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_cpio_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_cpio_newc.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_cpio_odc.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_gnutar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_iso9660.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_iso9660_boot.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_iso9660_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_iso9660_filename.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_iso9660_zisofs.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_fflags.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_pax.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_shar_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_tar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_tar_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_tar_sparse.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_tar_ustar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_xar.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_xar_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_zip.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_zip_empty.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_zip_no_compression.c user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_open_memory.c user/attilio/vmcontention/contrib/libarchive/tar/bsdtar.1 user/attilio/vmcontention/contrib/libarchive/tar/bsdtar.c user/attilio/vmcontention/contrib/libarchive/tar/bsdtar.h user/attilio/vmcontention/contrib/libarchive/tar/cmdline.c user/attilio/vmcontention/contrib/libarchive/tar/read.c user/attilio/vmcontention/contrib/libarchive/tar/subst.c user/attilio/vmcontention/contrib/libarchive/tar/test/main.c user/attilio/vmcontention/contrib/libarchive/tar/test/test.h user/attilio/vmcontention/contrib/libarchive/tar/test/test_copy.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_newer_than.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_r.c user/attilio/vmcontention/contrib/libarchive/tar/test/test_stdio.c user/attilio/vmcontention/contrib/libarchive/tar/util.c user/attilio/vmcontention/contrib/libarchive/tar/write.c user/attilio/vmcontention/contrib/openbsm/etc/audit_event user/attilio/vmcontention/crypto/openssh/ChangeLog user/attilio/vmcontention/crypto/openssh/INSTALL user/attilio/vmcontention/crypto/openssh/PROTOCOL user/attilio/vmcontention/crypto/openssh/PROTOCOL.agent user/attilio/vmcontention/crypto/openssh/README user/attilio/vmcontention/crypto/openssh/auth-options.c user/attilio/vmcontention/crypto/openssh/auth-rsa.c user/attilio/vmcontention/crypto/openssh/auth.c user/attilio/vmcontention/crypto/openssh/auth.h user/attilio/vmcontention/crypto/openssh/auth1.c user/attilio/vmcontention/crypto/openssh/auth2-chall.c user/attilio/vmcontention/crypto/openssh/auth2-gss.c user/attilio/vmcontention/crypto/openssh/auth2-jpake.c user/attilio/vmcontention/crypto/openssh/auth2-pubkey.c user/attilio/vmcontention/crypto/openssh/auth2.c user/attilio/vmcontention/crypto/openssh/authfile.c user/attilio/vmcontention/crypto/openssh/channels.c user/attilio/vmcontention/crypto/openssh/cipher-aes.c user/attilio/vmcontention/crypto/openssh/cipher-ctr.c user/attilio/vmcontention/crypto/openssh/cipher.c user/attilio/vmcontention/crypto/openssh/cipher.h user/attilio/vmcontention/crypto/openssh/clientloop.c user/attilio/vmcontention/crypto/openssh/clientloop.h user/attilio/vmcontention/crypto/openssh/compat.c user/attilio/vmcontention/crypto/openssh/config.h user/attilio/vmcontention/crypto/openssh/config.h.in user/attilio/vmcontention/crypto/openssh/defines.h user/attilio/vmcontention/crypto/openssh/includes.h user/attilio/vmcontention/crypto/openssh/kex.c user/attilio/vmcontention/crypto/openssh/kex.h user/attilio/vmcontention/crypto/openssh/key.c user/attilio/vmcontention/crypto/openssh/key.h user/attilio/vmcontention/crypto/openssh/log.c user/attilio/vmcontention/crypto/openssh/log.h user/attilio/vmcontention/crypto/openssh/loginrec.c user/attilio/vmcontention/crypto/openssh/mac.c user/attilio/vmcontention/crypto/openssh/moduli user/attilio/vmcontention/crypto/openssh/moduli.5 user/attilio/vmcontention/crypto/openssh/monitor.c user/attilio/vmcontention/crypto/openssh/monitor.h user/attilio/vmcontention/crypto/openssh/monitor_wrap.c user/attilio/vmcontention/crypto/openssh/mux.c user/attilio/vmcontention/crypto/openssh/myproposal.h user/attilio/vmcontention/crypto/openssh/openbsd-compat/bsd-misc.c user/attilio/vmcontention/crypto/openssh/openbsd-compat/bsd-misc.h user/attilio/vmcontention/crypto/openssh/openbsd-compat/openbsd-compat.h user/attilio/vmcontention/crypto/openssh/openbsd-compat/openssl-compat.h user/attilio/vmcontention/crypto/openssh/openbsd-compat/sys-queue.h user/attilio/vmcontention/crypto/openssh/openbsd-compat/sys-tree.h user/attilio/vmcontention/crypto/openssh/openbsd-compat/vis.c user/attilio/vmcontention/crypto/openssh/openbsd-compat/vis.h user/attilio/vmcontention/crypto/openssh/packet.c user/attilio/vmcontention/crypto/openssh/platform.c user/attilio/vmcontention/crypto/openssh/platform.h user/attilio/vmcontention/crypto/openssh/scp.1 user/attilio/vmcontention/crypto/openssh/scp.c user/attilio/vmcontention/crypto/openssh/servconf.c user/attilio/vmcontention/crypto/openssh/servconf.h user/attilio/vmcontention/crypto/openssh/serverloop.c user/attilio/vmcontention/crypto/openssh/session.c user/attilio/vmcontention/crypto/openssh/sftp-server.8 user/attilio/vmcontention/crypto/openssh/sftp-server.c user/attilio/vmcontention/crypto/openssh/sftp.1 user/attilio/vmcontention/crypto/openssh/sftp.c user/attilio/vmcontention/crypto/openssh/ssh-add.1 user/attilio/vmcontention/crypto/openssh/ssh-add.c user/attilio/vmcontention/crypto/openssh/ssh-gss.h user/attilio/vmcontention/crypto/openssh/ssh-keygen.1 user/attilio/vmcontention/crypto/openssh/ssh-keygen.c user/attilio/vmcontention/crypto/openssh/ssh-keyscan.1 user/attilio/vmcontention/crypto/openssh/ssh.1 user/attilio/vmcontention/crypto/openssh/ssh_config user/attilio/vmcontention/crypto/openssh/ssh_config.5 user/attilio/vmcontention/crypto/openssh/ssh_namespace.h user/attilio/vmcontention/crypto/openssh/sshconnect.c user/attilio/vmcontention/crypto/openssh/sshconnect2.c user/attilio/vmcontention/crypto/openssh/sshd.8 user/attilio/vmcontention/crypto/openssh/sshd.c user/attilio/vmcontention/crypto/openssh/sshd_config user/attilio/vmcontention/crypto/openssh/sshd_config.5 user/attilio/vmcontention/crypto/openssh/uidswap.c user/attilio/vmcontention/crypto/openssh/umac.c user/attilio/vmcontention/crypto/openssh/umac.h user/attilio/vmcontention/crypto/openssh/version.h user/attilio/vmcontention/etc/rc.d/sysctl user/attilio/vmcontention/games/fortune/datfiles/freebsd-tips user/attilio/vmcontention/gnu/lib/libsupc++/Makefile user/attilio/vmcontention/lib/libarchive/Makefile user/attilio/vmcontention/lib/libarchive/config_freebsd.h user/attilio/vmcontention/lib/libarchive/test/Makefile user/attilio/vmcontention/lib/libc/sys/Makefile.inc user/attilio/vmcontention/lib/libc/sys/Symbol.map user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2 user/attilio/vmcontention/lib/libc/sys/chflags.2 user/attilio/vmcontention/lib/libc/sys/posix_openpt.2 user/attilio/vmcontention/rescue/rescue/Makefile user/attilio/vmcontention/sbin/dumpfs/dumpfs.c user/attilio/vmcontention/sbin/fsck_ffs/fsck.h user/attilio/vmcontention/sbin/fsck_ffs/fsutil.c user/attilio/vmcontention/sbin/fsck_ffs/inode.c user/attilio/vmcontention/sbin/fsck_ffs/pass1.c user/attilio/vmcontention/sbin/fsck_ffs/pass5.c user/attilio/vmcontention/sbin/fsck_ffs/setup.c user/attilio/vmcontention/sbin/fsck_ffs/suj.c user/attilio/vmcontention/sbin/ipfw/ipfw.8 user/attilio/vmcontention/sbin/newfs/mkfs.c user/attilio/vmcontention/sbin/newfs/newfs.8 user/attilio/vmcontention/sbin/newfs/newfs.c user/attilio/vmcontention/sbin/newfs/newfs.h user/attilio/vmcontention/sbin/tunefs/tunefs.8 user/attilio/vmcontention/sbin/tunefs/tunefs.c user/attilio/vmcontention/secure/lib/libssh/Makefile user/attilio/vmcontention/secure/libexec/ssh-keysign/Makefile user/attilio/vmcontention/share/examples/etc/make.conf user/attilio/vmcontention/share/man/man4/ng_nat.4 user/attilio/vmcontention/share/man/man5/make.conf.5 user/attilio/vmcontention/share/man/man9/zone.9 user/attilio/vmcontention/share/mk/bsd.libnames.mk user/attilio/vmcontention/sys/arm/broadcom/bcm2835/bcm2835_systimer.c user/attilio/vmcontention/sys/bsm/audit_kevents.h user/attilio/vmcontention/sys/cddl/compat/opensolaris/sys/cred.h user/attilio/vmcontention/sys/cddl/compat/opensolaris/sys/time.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/common/zfs/zprop_common.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/Makefile.files user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/feature_tests.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_proto.h user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscall.h user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscalls.c user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_sysent.c user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_systrace_args.c user/attilio/vmcontention/sys/compat/freebsd32/syscalls.master user/attilio/vmcontention/sys/dev/mfi/mfi_disk.c user/attilio/vmcontention/sys/dev/twa/tw_osl_cam.c user/attilio/vmcontention/sys/dev/twa/tw_osl_freebsd.c user/attilio/vmcontention/sys/dev/usb/wlan/if_rum.c user/attilio/vmcontention/sys/fs/nfsclient/nfs_clport.c user/attilio/vmcontention/sys/fs/tmpfs/tmpfs.h user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_subr.c user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c user/attilio/vmcontention/sys/geom/geom_io.c user/attilio/vmcontention/sys/kern/capabilities.conf user/attilio/vmcontention/sys/kern/init_sysent.c user/attilio/vmcontention/sys/kern/kern_thread.c user/attilio/vmcontention/sys/kern/kern_umtx.c user/attilio/vmcontention/sys/kern/syscalls.c user/attilio/vmcontention/sys/kern/syscalls.master user/attilio/vmcontention/sys/kern/systrace_args.c user/attilio/vmcontention/sys/kern/tty_pts.c user/attilio/vmcontention/sys/kern/vfs_bio.c user/attilio/vmcontention/sys/kern/vfs_cache.c user/attilio/vmcontention/sys/kern/vfs_mount.c user/attilio/vmcontention/sys/kern/vfs_syscalls.c user/attilio/vmcontention/sys/net/if_arcsubr.c user/attilio/vmcontention/sys/net/if_lagg.c user/attilio/vmcontention/sys/net/if_lagg.h user/attilio/vmcontention/sys/netgraph/ng_nat.c user/attilio/vmcontention/sys/netgraph/ng_nat.h user/attilio/vmcontention/sys/netinet6/in6_proto.c user/attilio/vmcontention/sys/netinet6/nd6.c user/attilio/vmcontention/sys/sys/capability.h user/attilio/vmcontention/sys/sys/stat.h user/attilio/vmcontention/sys/sys/syscall.h user/attilio/vmcontention/sys/sys/syscall.mk user/attilio/vmcontention/sys/sys/sysproto.h user/attilio/vmcontention/sys/sys/vnode.h user/attilio/vmcontention/sys/ufs/ffs/ffs_alloc.c user/attilio/vmcontention/sys/ufs/ffs/ffs_balloc.c user/attilio/vmcontention/sys/ufs/ffs/fs.h user/attilio/vmcontention/sys/ufs/ufs/ufs_lookup.c user/attilio/vmcontention/sys/vm/vm_init.c user/attilio/vmcontention/tools/regression/pjdfstest/Makefile user/attilio/vmcontention/tools/regression/pjdfstest/pjdfstest.c user/attilio/vmcontention/tools/regression/security/cap_test/cap_test_capabilities.c user/attilio/vmcontention/tools/tools/netrate/netreceive/Makefile user/attilio/vmcontention/usr.bin/ar/Makefile user/attilio/vmcontention/usr.bin/ar/acpyacc.y user/attilio/vmcontention/usr.bin/ar/read.c user/attilio/vmcontention/usr.bin/ar/write.c user/attilio/vmcontention/usr.bin/cpio/Makefile user/attilio/vmcontention/usr.bin/cpio/test/Makefile user/attilio/vmcontention/usr.bin/tar/Makefile user/attilio/vmcontention/usr.bin/tar/test/Makefile user/attilio/vmcontention/usr.bin/unzip/unzip.c user/attilio/vmcontention/usr.sbin/bsdinstall/distextract/distextract.c Directory Properties: user/attilio/vmcontention/ (props changed) user/attilio/vmcontention/cddl/ (props changed) user/attilio/vmcontention/cddl/contrib/opensolaris/ (props changed) user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/ (props changed) user/attilio/vmcontention/contrib/libarchive/ (props changed) user/attilio/vmcontention/contrib/libarchive/cpio/ (props changed) user/attilio/vmcontention/contrib/libarchive/libarchive/ (props changed) user/attilio/vmcontention/contrib/libarchive/tar/ (props changed) user/attilio/vmcontention/contrib/openbsm/ (props changed) user/attilio/vmcontention/crypto/openssh/ (props changed) user/attilio/vmcontention/gnu/lib/ (props changed) user/attilio/vmcontention/lib/libc/ (props changed) user/attilio/vmcontention/sbin/ (props changed) user/attilio/vmcontention/sbin/ipfw/ (props changed) user/attilio/vmcontention/share/man/man4/ (props changed) user/attilio/vmcontention/sys/ (props changed) user/attilio/vmcontention/sys/cddl/contrib/opensolaris/ (props changed) Modified: user/attilio/vmcontention/Makefile.inc1 ============================================================================== --- user/attilio/vmcontention/Makefile.inc1 Fri Mar 22 22:52:02 2013 (r248629) +++ user/attilio/vmcontention/Makefile.inc1 Fri Mar 22 22:55:37 2013 (r248630) @@ -1389,6 +1389,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 lib/libopie lib/libpam ${_lib_libthr} \ lib/libradius lib/libsbuf lib/libtacplus \ ${_cddl_lib_libumem} ${_cddl_lib_libnvpair} \ + ${_cddl_lib_libzfs_core} \ lib/libutil ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ ${_secure_lib_libssl} @@ -1417,7 +1418,9 @@ lib/libopie__L lib/libtacplus__L: lib/li .if ${MK_CDDL} != "no" _cddl_lib_libumem= cddl/lib/libumem _cddl_lib_libnvpair= cddl/lib/libnvpair +_cddl_lib_libzfs_core= cddl/lib/libzfs_core _cddl_lib= cddl/lib +cddl/lib/libzfs_core__L: cddl/lib/libnvpair__L .endif .if ${MK_CRYPT} != "no" Modified: user/attilio/vmcontention/bin/chflags/chflags.c ============================================================================== --- user/attilio/vmcontention/bin/chflags/chflags.c Fri Mar 22 22:52:02 2013 (r248629) +++ user/attilio/vmcontention/bin/chflags/chflags.c Fri Mar 22 22:55:37 2013 (r248630) @@ -117,11 +117,7 @@ main(int argc, char *argv[]) } else fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL; - /* XXX: Why don't chflags and lchflags have compatible prototypes? */ - if (hflag) - change_flags = (int (*)(const char *, unsigned long))lchflags; - else - change_flags = chflags; + change_flags = hflag ? lchflags : chflags; flags = *argv; if (*flags >= '0' && *flags <= '7') { Modified: user/attilio/vmcontention/bin/mv/mv.c ============================================================================== --- user/attilio/vmcontention/bin/mv/mv.c Fri Mar 22 22:52:02 2013 (r248629) +++ user/attilio/vmcontention/bin/mv/mv.c Fri Mar 22 22:55:37 2013 (r248630) @@ -337,7 +337,7 @@ err: if (unlink(to)) * on a file that we copied, i.e., that we didn't create.) */ errno = 0; - if (fchflags(to_fd, (u_long)sbp->st_flags)) + if (fchflags(to_fd, sbp->st_flags)) if (errno != EOPNOTSUPP || sbp->st_flags != 0) warn("%s: set flags (was: 0%07o)", to, sbp->st_flags); Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c Fri Mar 22 22:52:02 2013 (r248629) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c Fri Mar 22 22:55:37 2013 (r248630) @@ -57,6 +57,7 @@ #include #include #include +#include #undef ZFS_MAXNAMELEN #undef verify #include @@ -206,6 +207,27 @@ dump_packed_nvlist(objset_t *os, uint64_ nvlist_free(nv); } +/* ARGSUSED */ +static void +dump_history_offsets(objset_t *os, uint64_t object, void *data, size_t size) +{ + spa_history_phys_t *shp = data; + + if (shp == NULL) + return; + + (void) printf("\t\tpool_create_len = %llu\n", + (u_longlong_t)shp->sh_pool_create_len); + (void) printf("\t\tphys_max_off = %llu\n", + (u_longlong_t)shp->sh_phys_max_off); + (void) printf("\t\tbof = %llu\n", + (u_longlong_t)shp->sh_bof); + (void) printf("\t\teof = %llu\n", + (u_longlong_t)shp->sh_eof); + (void) printf("\t\trecords_lost = %llu\n", + (u_longlong_t)shp->sh_records_lost); +} + static void zdb_nicenum(uint64_t num, char *buf) { @@ -857,21 +879,22 @@ dump_history(spa_t *spa) for (int i = 0; i < num; i++) { uint64_t time, txg, ievent; char *cmd, *intstr; + boolean_t printed = B_FALSE; if (nvlist_lookup_uint64(events[i], ZPOOL_HIST_TIME, &time) != 0) - continue; + goto next; if (nvlist_lookup_string(events[i], ZPOOL_HIST_CMD, &cmd) != 0) { if (nvlist_lookup_uint64(events[i], ZPOOL_HIST_INT_EVENT, &ievent) != 0) - continue; + goto next; verify(nvlist_lookup_uint64(events[i], ZPOOL_HIST_TXG, &txg) == 0); verify(nvlist_lookup_string(events[i], ZPOOL_HIST_INT_STR, &intstr) == 0); - if (ievent >= LOG_END) - continue; + if (ievent >= ZFS_NUM_LEGACY_HISTORY_EVENTS) + goto next; (void) snprintf(internalstr, sizeof (internalstr), @@ -884,6 +907,14 @@ dump_history(spa_t *spa) (void) localtime_r(&tsec, &t); (void) strftime(tbuf, sizeof (tbuf), "%F.%T", &t); (void) printf("%s %s\n", tbuf, cmd); + printed = B_TRUE; + +next: + if (dump_opt['h'] > 1) { + if (!printed) + (void) printf("unrecognized record:\n"); + dump_nvlist(events[i], 2); + } } } @@ -1496,7 +1527,7 @@ static object_viewer_t *object_viewer[DM dump_zap, /* other ZAP */ dump_zap, /* persistent error log */ dump_uint8, /* SPA history */ - dump_uint64, /* SPA history offsets */ + dump_history_offsets, /* SPA history offsets */ dump_zap, /* Pool properties */ dump_zap, /* DSL permissions */ dump_acl, /* ZFS ACL */ @@ -1661,7 +1692,9 @@ dump_dir(objset_t *os) int print_header = 1; int i, error; + dsl_pool_config_enter(dmu_objset_pool(os), FTAG); dmu_objset_fast_stat(os, &dds); + dsl_pool_config_exit(dmu_objset_pool(os), FTAG); if (dds.dds_type < DMU_OST_NUMTYPES) type = objset_types[dds.dds_type]; @@ -2070,7 +2103,6 @@ zdb_blkptr_cb(spa_t *spa, zilog_t *zilog NULL, NULL, ZIO_PRIORITY_ASYNC_READ, flags, zb)); free(data); - if (ioerr && !(flags & ZIO_FLAG_SPECULATIVE)) { zcb->zcb_haderrors = 1; zcb->zcb_errors[ioerr]++; Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Mar 22 22:52:02 2013 (r248629) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Mar 22 22:55:37 2013 (r248630) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 1, 2013 +.Dd March 21, 2013 .Dt ZFS 8 .Os .Sh NAME @@ -65,6 +65,7 @@ .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... .Ar filesystem@snapname Ns | Ns Ar volume@snapname +.Ar filesystem@snapname Ns | Ns Ar volume@snapname Ns ... .Nm .Cm rollback .Op Fl rRf @@ -1617,7 +1618,11 @@ multiple snapshots. Destroy (or mark for deferred deletion) all snapshots with this name in descendent file systems. .It Fl R -Recursively destroy all dependents. +Recursively destroy all clones of these snapshots, including the clones, +snapshots, and children. +If this flag is specified, the +.Op fl d +flag will have no effect. .It Fl n Do a dry-run ("No-op") deletion. No data will be deleted. This is useful in conjunction with the @@ -1645,17 +1650,18 @@ behavior for mounted file systems in use .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... .Ar filesystem@snapname Ns | Ns volume@snapname +.Ar filesystem@snapname Ns | Ns volume@snapname Ns ... .Xc .Pp -Creates a snapshot with the given name. All previous modifications by -successful system calls to the file system are part of the snapshot. See the +Creates snapshots with the given names. All previous modifications by +successful system calls to the file system are part of the snapshots. +Snapshots are taken atomically, so that all snapshots correspond to the same +moment in time. See the .Qq Sx Snapshots section for details. .Bl -tag -width indent .It Fl r -Recursively create snapshots of all descendent datasets. Snapshots are taken -atomically, so that all recursive snapshots correspond to the same moment in -time. +Recursively create snapshots of all descendent datasets .It Fl o Ar property Ns = Ns Ar value Sets the specified property; see .Qq Nm Cm create Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Fri Mar 22 22:52:02 2013 (r248629) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Fri Mar 22 22:55:37 2013 (r248630) @@ -58,6 +58,7 @@ #include #include +#include #include #include #include @@ -74,6 +75,7 @@ libzfs_handle_t *g_zfs; static FILE *mnttab_file; static char history_str[HIS_MAX_RECORD_LEN]; +static boolean_t log_history = B_TRUE; static int zfs_do_clone(int argc, char **argv); static int zfs_do_create(int argc, char **argv); @@ -276,7 +278,7 @@ get_usage(zfs_help_t idx) return (gettext("\tshare <-a | filesystem>\n")); case HELP_SNAPSHOT: return (gettext("\tsnapshot [-r] [-o property=value] ... " - "\n")); + " ...\n")); case HELP_UNMOUNT: return (gettext("\tunmount [-f] " "<-a | filesystem|mountpoint>\n")); @@ -914,11 +916,12 @@ typedef struct destroy_cbdata { boolean_t cb_parsable; boolean_t cb_dryrun; nvlist_t *cb_nvl; + nvlist_t *cb_batchedsnaps; /* first snap in contiguous run */ - zfs_handle_t *cb_firstsnap; + char *cb_firstsnap; /* previous snap in contiguous run */ - zfs_handle_t *cb_prevsnap; + char *cb_prevsnap; int64_t cb_snapused; char *cb_snapspec; } destroy_cbdata_t; @@ -1010,9 +1013,27 @@ destroy_callback(zfs_handle_t *zhp, void zfs_close(zhp); return (0); } + if (cb->cb_dryrun) { + zfs_close(zhp); + return (0); + } + + /* + * We batch up all contiguous snapshots (even of different + * filesystems) and destroy them with one ioctl. We can't + * simply do all snap deletions and then all fs deletions, + * because we must delete a clone before its origin. + */ + if (zfs_get_type(zhp) == ZFS_TYPE_SNAPSHOT) { + fnvlist_add_boolean(cb->cb_batchedsnaps, name); + } else { + int error = zfs_destroy_snaps_nvl(g_zfs, + cb->cb_batchedsnaps, B_FALSE); + fnvlist_free(cb->cb_batchedsnaps); + cb->cb_batchedsnaps = fnvlist_alloc(); - if (!cb->cb_dryrun) { - if (zfs_unmount(zhp, NULL, cb->cb_force ? MS_FORCE : 0) != 0 || + if (error != 0 || + zfs_unmount(zhp, NULL, cb->cb_force ? MS_FORCE : 0) != 0 || zfs_destroy(zhp, cb->cb_defer_destroy) != 0) { zfs_close(zhp); return (-1); @@ -1032,11 +1053,13 @@ destroy_print_cb(zfs_handle_t *zhp, void if (nvlist_exists(cb->cb_nvl, name)) { if (cb->cb_firstsnap == NULL) - cb->cb_firstsnap = zfs_handle_dup(zhp); + cb->cb_firstsnap = strdup(name); if (cb->cb_prevsnap != NULL) - zfs_close(cb->cb_prevsnap); + free(cb->cb_prevsnap); /* this snap continues the current range */ - cb->cb_prevsnap = zfs_handle_dup(zhp); + cb->cb_prevsnap = strdup(name); + if (cb->cb_firstsnap == NULL || cb->cb_prevsnap == NULL) + nomem(); if (cb->cb_verbose) { if (cb->cb_parsable) { (void) printf("destroy\t%s\n", name); @@ -1051,12 +1074,12 @@ destroy_print_cb(zfs_handle_t *zhp, void } else if (cb->cb_firstsnap != NULL) { /* end of this range */ uint64_t used = 0; - err = zfs_get_snapused_int(cb->cb_firstsnap, + err = lzc_snaprange_space(cb->cb_firstsnap, cb->cb_prevsnap, &used); cb->cb_snapused += used; - zfs_close(cb->cb_firstsnap); + free(cb->cb_firstsnap); cb->cb_firstsnap = NULL; - zfs_close(cb->cb_prevsnap); + free(cb->cb_prevsnap); cb->cb_prevsnap = NULL; } zfs_close(zhp); @@ -1073,13 +1096,13 @@ destroy_print_snapshots(zfs_handle_t *fs if (cb->cb_firstsnap != NULL) { uint64_t used = 0; if (err == 0) { - err = zfs_get_snapused_int(cb->cb_firstsnap, + err = lzc_snaprange_space(cb->cb_firstsnap, cb->cb_prevsnap, &used); } cb->cb_snapused += used; - zfs_close(cb->cb_firstsnap); + free(cb->cb_firstsnap); cb->cb_firstsnap = NULL; - zfs_close(cb->cb_prevsnap); + free(cb->cb_prevsnap); cb->cb_prevsnap = NULL; } return (err); @@ -1166,8 +1189,10 @@ static int zfs_do_destroy(int argc, char **argv) { destroy_cbdata_t cb = { 0 }; + int rv = 0; + int err = 0; int c; - zfs_handle_t *zhp; + zfs_handle_t *zhp = NULL; char *at; zfs_type_t type = ZFS_TYPE_DATASET; @@ -1221,11 +1246,9 @@ zfs_do_destroy(int argc, char **argv) at = strchr(argv[0], '@'); if (at != NULL) { - int err = 0; /* Build the list of snaps to destroy in cb_nvl. */ - if (nvlist_alloc(&cb.cb_nvl, NV_UNIQUE_NAME, 0) != 0) - nomem(); + cb.cb_nvl = fnvlist_alloc(); *at = '\0'; zhp = zfs_open(g_zfs, argv[0], @@ -1236,17 +1259,15 @@ zfs_do_destroy(int argc, char **argv) cb.cb_snapspec = at + 1; if (gather_snapshots(zfs_handle_dup(zhp), &cb) != 0 || cb.cb_error) { - zfs_close(zhp); - nvlist_free(cb.cb_nvl); - return (1); + rv = 1; + goto out; } if (nvlist_empty(cb.cb_nvl)) { (void) fprintf(stderr, gettext("could not find any " "snapshots to destroy; check snapshot names.\n")); - zfs_close(zhp); - nvlist_free(cb.cb_nvl); - return (1); + rv = 1; + goto out; } if (cb.cb_verbose) { @@ -1265,18 +1286,26 @@ zfs_do_destroy(int argc, char **argv) } if (!cb.cb_dryrun) { - if (cb.cb_doclones) + if (cb.cb_doclones) { + cb.cb_batchedsnaps = fnvlist_alloc(); err = destroy_clones(&cb); + if (err == 0) { + err = zfs_destroy_snaps_nvl(g_zfs, + cb.cb_batchedsnaps, B_FALSE); + } + if (err != 0) { + rv = 1; + goto out; + } + } if (err == 0) { - err = zfs_destroy_snaps_nvl(zhp, cb.cb_nvl, + err = zfs_destroy_snaps_nvl(g_zfs, cb.cb_nvl, cb.cb_defer_destroy); } } - zfs_close(zhp); - nvlist_free(cb.cb_nvl); if (err != 0) - return (1); + rv = 1; } else { /* Open the given dataset */ if ((zhp = zfs_open(g_zfs, argv[0], type)) == NULL) @@ -1297,8 +1326,8 @@ zfs_do_destroy(int argc, char **argv) zfs_get_name(zhp)); (void) fprintf(stderr, gettext("use 'zpool destroy %s' " "to destroy the pool itself\n"), zfs_get_name(zhp)); - zfs_close(zhp); - return (1); + rv = 1; + goto out; } /* @@ -1308,30 +1337,42 @@ zfs_do_destroy(int argc, char **argv) if (!cb.cb_doclones && zfs_iter_dependents(zhp, B_TRUE, destroy_check_dependent, &cb) != 0) { - zfs_close(zhp); - return (1); + rv = 1; + goto out; } if (cb.cb_error) { - zfs_close(zhp); - return (1); + rv = 1; + goto out; } + cb.cb_batchedsnaps = fnvlist_alloc(); if (zfs_iter_dependents(zhp, B_FALSE, destroy_callback, &cb) != 0) { - zfs_close(zhp); - return (1); + rv = 1; + goto out; } /* * Do the real thing. The callback will close the * handle regardless of whether it succeeds or not. */ - if (destroy_callback(zhp, &cb) != 0) - return (1); + err = destroy_callback(zhp, &cb); + zhp = NULL; + if (err == 0) { + err = zfs_destroy_snaps_nvl(g_zfs, + cb.cb_batchedsnaps, cb.cb_defer_destroy); + } + if (err != 0) + rv = 1; } - return (0); +out: + fnvlist_free(cb.cb_batchedsnaps); + fnvlist_free(cb.cb_nvl); + if (zhp != NULL) + zfs_close(zhp); + return (rv); } static boolean_t @@ -1932,9 +1973,11 @@ upgrade_set_callback(zfs_handle_t *zhp, /* * If they did "zfs upgrade -a", then we could * be doing ioctls to different pools. We need - * to log this history once to each pool. + * to log this history once to each pool, and bypass + * the normal history logging that happens in main(). */ - verify(zpool_stage_history(g_zfs, history_str) == 0); + (void) zpool_log_history(g_zfs, history_str); + log_history = B_FALSE; } if (zfs_prop_set(zhp, "version", verstr) == 0) cb->cb_numupgraded++; @@ -3472,6 +3515,32 @@ zfs_do_set(int argc, char **argv) return (ret); } +typedef struct snap_cbdata { + nvlist_t *sd_nvl; + boolean_t sd_recursive; + const char *sd_snapname; +} snap_cbdata_t; + +static int +zfs_snapshot_cb(zfs_handle_t *zhp, void *arg) +{ + snap_cbdata_t *sd = arg; + char *name; + int rv = 0; + int error; + + error = asprintf(&name, "%s@%s", zfs_get_name(zhp), sd->sd_snapname); + if (error == -1) + nomem(); + fnvlist_add_boolean(sd->sd_nvl, name); + free(name); + + if (sd->sd_recursive) + rv = zfs_iter_filesystems(zhp, zfs_snapshot_cb, sd); + zfs_close(zhp); + return (rv); +} + /* * zfs snapshot [-r] [-o prop=value] ... * @@ -3481,13 +3550,16 @@ zfs_do_set(int argc, char **argv) static int zfs_do_snapshot(int argc, char **argv) { - boolean_t recursive = B_FALSE; int ret = 0; char c; nvlist_t *props; + snap_cbdata_t sd = { 0 }; + boolean_t multiple_snaps = B_FALSE; if (nvlist_alloc(&props, NV_UNIQUE_NAME, 0) != 0) nomem(); + if (nvlist_alloc(&sd.sd_nvl, NV_UNIQUE_NAME, 0) != 0) + nomem(); /* check options */ while ((c = getopt(argc, argv, "ro:")) != -1) { @@ -3497,7 +3569,8 @@ zfs_do_snapshot(int argc, char **argv) return (1); break; case 'r': - recursive = B_TRUE; + sd.sd_recursive = B_TRUE; + multiple_snaps = B_TRUE; break; case '?': (void) fprintf(stderr, gettext("invalid option '%c'\n"), @@ -3514,18 +3587,35 @@ zfs_do_snapshot(int argc, char **argv) (void) fprintf(stderr, gettext("missing snapshot argument\n")); goto usage; } - if (argc > 1) { - (void) fprintf(stderr, gettext("too many arguments\n")); - goto usage; + + if (argc > 1) + multiple_snaps = B_TRUE; + for (; argc > 0; argc--, argv++) { + char *atp; + zfs_handle_t *zhp; + + atp = strchr(argv[0], '@'); + if (atp == NULL) + goto usage; + *atp = '\0'; + sd.sd_snapname = atp + 1; + zhp = zfs_open(g_zfs, argv[0], + ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME); + if (zhp == NULL) + goto usage; + if (zfs_snapshot_cb(zhp, &sd) != 0) + goto usage; } - ret = zfs_snapshot(g_zfs, argv[0], recursive, props); + ret = zfs_snapshot_nvl(g_zfs, sd.sd_nvl, props); + nvlist_free(sd.sd_nvl); nvlist_free(props); - if (ret && recursive) + if (ret != 0 && multiple_snaps) (void) fprintf(stderr, gettext("no snapshots were created\n")); return (ret != 0); usage: + nvlist_free(sd.sd_nvl); nvlist_free(props); usage(B_FALSE); return (-1); @@ -5068,28 +5158,12 @@ cleanup2: return (error); } -/* - * zfs allow [-r] [-t] ... - * - * -r Recursively hold - * -t Temporary hold (hidden option) - * - * Apply a user-hold with the given tag to the list of snapshots. - */ static int zfs_do_allow(int argc, char **argv) { return (zfs_do_allow_unallow_impl(argc, argv, B_FALSE)); } -/* - * zfs unallow [-r] [-t] ... - * - * -r Recursively hold - * -t Temporary hold (hidden option) - * - * Apply a user-hold with the given tag to the list of snapshots. - */ static int zfs_do_unallow(int argc, char **argv) { @@ -5103,7 +5177,6 @@ zfs_do_hold_rele_impl(int argc, char **a int i; const char *tag; boolean_t recursive = B_FALSE; - boolean_t temphold = B_FALSE; const char *opts = holding ? "rt" : "r"; int c; @@ -5113,9 +5186,6 @@ zfs_do_hold_rele_impl(int argc, char **a case 'r': recursive = B_TRUE; break; - case 't': - temphold = B_TRUE; - break; case '?': (void) fprintf(stderr, gettext("invalid option '%c'\n"), optopt); @@ -5164,7 +5234,7 @@ zfs_do_hold_rele_impl(int argc, char **a } if (holding) { if (zfs_hold(zhp, delim+1, tag, recursive, - temphold, B_FALSE, -1, 0, 0) != 0) + B_FALSE, -1) != 0) ++errors; } else { if (zfs_release(zhp, delim+1, tag, recursive) != 0) @@ -5180,7 +5250,6 @@ zfs_do_hold_rele_impl(int argc, char **a * zfs hold [-r] [-t] ... * * -r Recursively hold - * -t Temporary hold (hidden option) * * Apply a user-hold with the given tag to the list of snapshots. */ @@ -6602,8 +6671,7 @@ main(int argc, char **argv) return (1); } - zpool_set_history_str("zfs", argc, argv, history_str); - verify(zpool_stage_history(g_zfs, history_str) == 0); + zfs_save_arguments(argc, argv, history_str, sizeof (history_str)); libzfs_print_on_error(g_zfs, B_TRUE); @@ -6672,6 +6740,9 @@ main(int argc, char **argv) (void) fclose(mnttab_file); + if (ret == 0 && log_history) + (void) zpool_log_history(g_zfs, history_str); + libzfs_fini(g_zfs); /* Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zhack/zhack.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zhack/zhack.c Fri Mar 22 22:52:02 2013 (r248629) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zhack/zhack.c Fri Mar 22 22:55:37 2013 (r248630) @@ -46,6 +46,7 @@ #include #include #include +#include #undef ZFS_MAXNAMELEN #undef verify #include @@ -273,12 +274,15 @@ zhack_do_feature_stat(int argc, char **a } static void -feature_enable_sync(void *arg1, void *arg2, dmu_tx_t *tx) +feature_enable_sync(void *arg, dmu_tx_t *tx) { - spa_t *spa = arg1; - zfeature_info_t *feature = arg2; + spa_t *spa = dmu_tx_pool(tx)->dp_spa; + zfeature_info_t *feature = arg; spa_feature_enable(spa, feature, tx); + spa_history_log_internal(spa, "zhack enable feature", tx, + "name=%s can_readonly=%u", + feature->fi_guid, feature->fi_can_readonly); } static void @@ -341,8 +345,8 @@ zhack_do_feature_enable(int argc, char * if (0 == zap_contains(mos, spa->spa_feat_desc_obj, feature.fi_guid)) fatal("feature already enabled: %s", feature.fi_guid); - VERIFY3U(0, ==, dsl_sync_task_do(spa->spa_dsl_pool, NULL, - feature_enable_sync, spa, &feature, 5)); + VERIFY0(dsl_sync_task(spa_name(spa), NULL, + feature_enable_sync, &feature, 5)); spa_close(spa, FTAG); @@ -350,21 +354,25 @@ zhack_do_feature_enable(int argc, char * } static void -feature_incr_sync(void *arg1, void *arg2, dmu_tx_t *tx) +feature_incr_sync(void *arg, dmu_tx_t *tx) { - spa_t *spa = arg1; - zfeature_info_t *feature = arg2; + spa_t *spa = dmu_tx_pool(tx)->dp_spa; + zfeature_info_t *feature = arg; spa_feature_incr(spa, feature, tx); + spa_history_log_internal(spa, "zhack feature incr", tx, + "name=%s", feature->fi_guid); } static void -feature_decr_sync(void *arg1, void *arg2, dmu_tx_t *tx) +feature_decr_sync(void *arg, dmu_tx_t *tx) { - spa_t *spa = arg1; - zfeature_info_t *feature = arg2; + spa_t *spa = dmu_tx_pool(tx)->dp_spa; + zfeature_info_t *feature = arg; spa_feature_decr(spa, feature, tx); + spa_history_log_internal(spa, "zhack feature decr", tx, + "name=%s", feature->fi_guid); } static void @@ -435,8 +443,8 @@ zhack_do_feature_ref(int argc, char **ar if (decr && !spa_feature_is_active(spa, &feature)) fatal("feature refcount already 0: %s", feature.fi_guid); - VERIFY3U(0, ==, dsl_sync_task_do(spa->spa_dsl_pool, NULL, - decr ? feature_decr_sync : feature_incr_sync, spa, &feature, 5)); + VERIFY0(dsl_sync_task(spa_name(spa), NULL, + decr ? feature_decr_sync : feature_incr_sync, &feature, 5)); spa_close(spa, FTAG); } Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Mar 22 22:52:02 2013 (r248629) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Mar 22 22:55:37 2013 (r248630) @@ -192,9 +192,9 @@ static zpool_command_t command_table[] = #define NCOMMAND (sizeof (command_table) / sizeof (command_table[0])) -zpool_command_t *current_command; +static zpool_command_t *current_command; static char history_str[HIS_MAX_RECORD_LEN]; - +static boolean_t log_history = B_TRUE; static uint_t timestamp_fmt = NODATE; static const char * @@ -1093,7 +1093,10 @@ zpool_do_destroy(int argc, char **argv) return (1); } - ret = (zpool_destroy(zhp) != 0); + /* The history must be logged as part of the export */ + log_history = B_FALSE; + + ret = (zpool_destroy(zhp, history_str) != 0); zpool_close(zhp); @@ -1157,10 +1160,13 @@ zpool_do_export(int argc, char **argv) continue; } + /* The history must be logged as part of the export */ + log_history = B_FALSE; + if (hardforce) { - if (zpool_export_force(zhp) != 0) + if (zpool_export_force(zhp, history_str) != 0) ret = 1; - } else if (zpool_export(zhp, force) != 0) { + } else if (zpool_export(zhp, force, history_str) != 0) { ret = 1; } @@ -4563,6 +4569,14 @@ upgrade_cb(zpool_handle_t *zhp, void *ar if (count > 0) { cbp->cb_first = B_FALSE; printnl = B_TRUE; + /* + * If they did "zpool upgrade -a", then we could + * be doing ioctls to different pools. We need + * to log this history once to each pool, and bypass + * the normal history logging that happens in main(). + */ + (void) zpool_log_history(g_zfs, history_str); + log_history = B_FALSE; } } @@ -4924,8 +4938,8 @@ zpool_do_upgrade(int argc, char **argv) typedef struct hist_cbdata { boolean_t first; - int longfmt; - int internal; + boolean_t longfmt; + boolean_t internal; } hist_cbdata_t; /* @@ -4937,21 +4951,8 @@ get_history_one(zpool_handle_t *zhp, voi nvlist_t *nvhis; nvlist_t **records; uint_t numrecords; - char *cmdstr; - char *pathstr; - uint64_t dst_time; - time_t tsec; - struct tm t; - char tbuf[30]; int ret, i; - uint64_t who; - struct passwd *pwd; - char *hostname; - char *zonename; - char internalstr[MAXPATHLEN]; hist_cbdata_t *cb = (hist_cbdata_t *)data; - uint64_t txg; - uint64_t ievent; cb->first = B_FALSE; @@ -4963,64 +4964,94 @@ get_history_one(zpool_handle_t *zhp, voi verify(nvlist_lookup_nvlist_array(nvhis, ZPOOL_HIST_RECORD, &records, &numrecords) == 0); for (i = 0; i < numrecords; i++) { - if (nvlist_lookup_uint64(records[i], ZPOOL_HIST_TIME, - &dst_time) != 0) - continue; + nvlist_t *rec = records[i]; + char tbuf[30] = ""; - /* is it an internal event or a standard event? */ - if (nvlist_lookup_string(records[i], ZPOOL_HIST_CMD, - &cmdstr) != 0) { - if (cb->internal == 0) + if (nvlist_exists(rec, ZPOOL_HIST_TIME)) { + time_t tsec; + struct tm t; + + tsec = fnvlist_lookup_uint64(records[i], + ZPOOL_HIST_TIME); + (void) localtime_r(&tsec, &t); + (void) strftime(tbuf, sizeof (tbuf), "%F.%T", &t); + } + + if (nvlist_exists(rec, ZPOOL_HIST_CMD)) { + (void) printf("%s %s", tbuf, + fnvlist_lookup_string(rec, ZPOOL_HIST_CMD)); + } else if (nvlist_exists(rec, ZPOOL_HIST_INT_EVENT)) { + int ievent = + fnvlist_lookup_uint64(rec, ZPOOL_HIST_INT_EVENT); + if (!cb->internal) continue; - - if (nvlist_lookup_uint64(records[i], - ZPOOL_HIST_INT_EVENT, &ievent) != 0) + if (ievent >= ZFS_NUM_LEGACY_HISTORY_EVENTS) { + (void) printf("%s unrecognized record:\n", + tbuf); + dump_nvlist(rec, 4); + continue; + } + (void) printf("%s [internal %s txg:%lld] %s", tbuf, + zfs_history_event_names[ievent], + fnvlist_lookup_uint64(rec, ZPOOL_HIST_TXG), + fnvlist_lookup_string(rec, ZPOOL_HIST_INT_STR)); + } else if (nvlist_exists(rec, ZPOOL_HIST_INT_NAME)) { + if (!cb->internal) continue; - verify(nvlist_lookup_uint64(records[i], - ZPOOL_HIST_TXG, &txg) == 0); - verify(nvlist_lookup_string(records[i], - ZPOOL_HIST_INT_STR, &pathstr) == 0); - if (ievent >= LOG_END) + (void) printf("%s [txg:%lld] %s", tbuf, + fnvlist_lookup_uint64(rec, ZPOOL_HIST_TXG), + fnvlist_lookup_string(rec, ZPOOL_HIST_INT_NAME)); + if (nvlist_exists(rec, ZPOOL_HIST_DSNAME)) { + (void) printf(" %s (%llu)", + fnvlist_lookup_string(rec, + ZPOOL_HIST_DSNAME), + fnvlist_lookup_uint64(rec, + ZPOOL_HIST_DSID)); + } + (void) printf(" %s", fnvlist_lookup_string(rec, + ZPOOL_HIST_INT_STR)); + } else if (nvlist_exists(rec, ZPOOL_HIST_IOCTL)) { + if (!cb->internal) continue; - (void) snprintf(internalstr, - sizeof (internalstr), - "[internal %s txg:%lld] %s", - zfs_history_event_names[ievent], txg, - pathstr); - cmdstr = internalstr; - } - tsec = dst_time; - (void) localtime_r(&tsec, &t); - (void) strftime(tbuf, sizeof (tbuf), "%F.%T", &t); - (void) printf("%s %s", tbuf, cmdstr); + (void) printf("%s ioctl %s\n", tbuf, + fnvlist_lookup_string(rec, ZPOOL_HIST_IOCTL)); + if (nvlist_exists(rec, ZPOOL_HIST_INPUT_NVL)) { + (void) printf(" input:\n"); + dump_nvlist(fnvlist_lookup_nvlist(rec, + ZPOOL_HIST_INPUT_NVL), 8); + } + if (nvlist_exists(rec, ZPOOL_HIST_OUTPUT_NVL)) { + (void) printf(" output:\n"); + dump_nvlist(fnvlist_lookup_nvlist(rec, + ZPOOL_HIST_OUTPUT_NVL), 8); + } + } else { + if (!cb->internal) + continue; + (void) printf("%s unrecognized record:\n", tbuf); + dump_nvlist(rec, 4); + } if (!cb->longfmt) { (void) printf("\n"); continue; } (void) printf(" ["); - if (nvlist_lookup_uint64(records[i], - ZPOOL_HIST_WHO, &who) == 0) { - pwd = getpwuid((uid_t)who); - if (pwd) - (void) printf("user %s on", - pwd->pw_name); - else - (void) printf("user %d on", - (int)who); - } else { - (void) printf(gettext("no info]\n")); - continue; + if (nvlist_exists(rec, ZPOOL_HIST_WHO)) { + uid_t who = fnvlist_lookup_uint64(rec, ZPOOL_HIST_WHO); + struct passwd *pwd = getpwuid(who); + (void) printf("user %d ", (int)who); + if (pwd != NULL) + (void) printf("(%s) ", pwd->pw_name); + } + if (nvlist_exists(rec, ZPOOL_HIST_HOST)) { + (void) printf("on %s", + fnvlist_lookup_string(rec, ZPOOL_HIST_HOST)); + } + if (nvlist_exists(rec, ZPOOL_HIST_ZONE)) { + (void) printf(":%s", + fnvlist_lookup_string(rec, ZPOOL_HIST_ZONE)); } - if (nvlist_lookup_string(records[i], - ZPOOL_HIST_HOST, &hostname) == 0) { - (void) printf(" %s", hostname); - } - if (nvlist_lookup_string(records[i], - ZPOOL_HIST_ZONE, &zonename) == 0) { - (void) printf(":%s", zonename); - } - (void) printf("]"); (void) printf("\n"); } @@ -5035,8 +5066,6 @@ get_history_one(zpool_handle_t *zhp, voi * * Displays the history of commands that modified pools. */ - - int zpool_do_history(int argc, char **argv) { @@ -5049,10 +5078,10 @@ zpool_do_history(int argc, char **argv) while ((c = getopt(argc, argv, "li")) != -1) { switch (c) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Fri Mar 22 22:58:38 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id ADAC44F1; Fri, 22 Mar 2013 22:58:38 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 9CE083DA; Fri, 22 Mar 2013 22:58:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2MMwcaf068749; Fri, 22 Mar 2013 22:58:38 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2MMwafO068738; Fri, 22 Mar 2013 22:58:36 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201303222258.r2MMwafO068738@svn.freebsd.org> From: Attilio Rao Date: Fri, 22 Mar 2013 22:58:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248631 - in user/attilio/vmobj-readlock: . bin/chflags bin/mv cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zhack cddl/contrib/opensola... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Mar 2013 22:58:38 -0000 Author: attilio Date: Fri Mar 22 22:58:36 2013 New Revision: 248631 URL: http://svnweb.freebsd.org/changeset/base/248631 Log: Merge from vmcontention Added: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_compat.c - copied unchanged from r248630, user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_compat.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_compat.h - copied unchanged from r248630, user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_compat.h user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs_core/ - copied from r248630, user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzfs_core/ user/attilio/vmobj-readlock/cddl/lib/libzfs_core/ - copied from r248630, user/attilio/vmcontention/cddl/lib/libzfs_core/ user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.Z.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.Z.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.bz2.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.bz2.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.grz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.grz.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.gz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.gz.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.lrz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.lrz.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.lz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.lz.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.lzma.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.lzma.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.lzo.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.lzo.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract.cpio.xz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract.cpio.xz.uu user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_Z.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_Z.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_bz2.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_bz2.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_grz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_grz.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_gz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_gz.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_lrz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_lrz.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_lz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_lz.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_lzma.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_lzma.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_lzo.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_lzo.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_extract_cpio_xz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_extract_cpio_xz.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_option_b64encode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_b64encode.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_option_grzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_grzip.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_option_lrzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_lrzip.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_option_lzop.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_lzop.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_option_uuencode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_uuencode.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_option_xz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/cpio/test/test_option_xz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_cmdline.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_cmdline.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_cmdline_private.h - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_cmdline_private.h user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_append_filter.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_append_filter.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_set_format.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_set_format.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_grzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_grzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_lrzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_lrzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_by_name.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_by_name.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_grzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_grzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_lrzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_lrzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_lzop.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_lzop.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/filter_fork_posix.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/filter_fork_posix.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_cmdline.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_cmdline.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_read_multiple_data_objects.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_read_multiple_data_objects.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_write_add_filter_by_name.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_write_add_filter_by_name.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_write_set_format_by_name.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_archive_write_set_format_by_name.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_lzop.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzop.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_lzop_1.tar.lzo.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzop_1.tar.lzo.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_lzop_2.tar.lzo.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzop_2.tar.lzo.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_lzop_3.tar.lzo.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_lzop_3.tar.lzo.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_uudecode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_compat_uudecode.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_grzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_grzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_grzip.tar.grz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_grzip.tar.grz.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_lrzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lrzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_lrzip.tar.lrz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lrzip.tar.lrz.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_lzop.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lzop.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_lzop.tar.lzo.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lzop.tar.lzo.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_program.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_program.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_program_signature.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_program_signature.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_filter_uudecode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_filter_uudecode.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored_1.zip.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored_1.zip.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored_2.zip.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored_2.zip.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.zip.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.zip.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_aa.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_aa.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ab.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ab.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ac.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ac.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ad.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ad.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ae.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_large_splitted_rar_ae.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_set_format.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_set_format.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_splitted_rar_aa.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_splitted_rar_aa.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_splitted_rar_ab.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_splitted_rar_ab.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_splitted_rar_ac.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_splitted_rar_ac.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_splitted_rar_ad.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_read_splitted_rar_ad.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_aa.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_aa.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_ab.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_ab.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_ac.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_splitted_rar_seek_support_ac.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_appledouble.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_appledouble.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_appledouble.cpio.gz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_appledouble.cpio.gz.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_hfs_compression.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_hfs_compression.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_hfs_compression.tgz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_hfs_compression.tgz.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_mac_metadata.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_mac_metadata.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_no_hfs_compression.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_no_hfs_compression.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_b64encode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_b64encode.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_bzip2.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_bzip2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_compress.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_compress.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_gzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_gzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_gzip_timestamp.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_gzip_timestamp.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_lrzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_lrzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_lzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_lzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_lzma.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_lzma.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_lzop.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_lzop.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_program.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_program.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_uuencode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_uuencode.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_filter_xz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_filter_xz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_7zip_empty.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_7zip_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_7zip_large.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_7zip_large.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_mtree_absolute_path.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_absolute_path.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_mtree_classic.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_classic.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_mtree_classic_indent.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_classic_indent.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_mtree_no_separator.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_no_separator.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_mtree_quoted_filename.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_mtree_quoted_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_tar_v7tar.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_format_tar_v7tar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_zip_set_compression_store.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/libarchive/test/test_write_zip_set_compression_store.c user/attilio/vmobj-readlock/contrib/libarchive/tar/creation_set.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/creation_set.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.Z.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.Z.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.bz2.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.bz2.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.grz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.grz.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.gz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.gz.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.lrz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.lrz.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.lz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.lz.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.lzma.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.lzma.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.lzo.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.lzo.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract.tar.xz.uu - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract.tar.xz.uu user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_Z.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_Z.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_bz2.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_bz2.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_grz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_grz.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_gz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_gz.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_lrz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_lrz.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_lz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_lz.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_lzma.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_lzma.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_lzo.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_lzo.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_extract_tar_xz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_extract_tar_xz.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_a.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_a.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_b64encode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_b64encode.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_grzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_grzip.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_j.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_j.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_lrzip.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_lrzip.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_lzma.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_lzma.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_lzop.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_lzop.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_older_than.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_older_than.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_uuencode.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_uuencode.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_xz.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_xz.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_z.c - copied unchanged from r248630, user/attilio/vmcontention/contrib/libarchive/tar/test/test_option_z.c user/attilio/vmobj-readlock/contrib/libarchive/test_utils/ - copied from r248630, user/attilio/vmcontention/contrib/libarchive/test_utils/ user/attilio/vmobj-readlock/crypto/openssh/PROTOCOL.krl - copied unchanged from r248630, user/attilio/vmcontention/crypto/openssh/PROTOCOL.krl user/attilio/vmobj-readlock/crypto/openssh/krl.c - copied unchanged from r248630, user/attilio/vmcontention/crypto/openssh/krl.c user/attilio/vmobj-readlock/crypto/openssh/krl.h - copied unchanged from r248630, user/attilio/vmcontention/crypto/openssh/krl.h user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/bsd-setres_id.c - copied unchanged from r248630, user/attilio/vmcontention/crypto/openssh/openbsd-compat/bsd-setres_id.c user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/bsd-setres_id.h - copied unchanged from r248630, user/attilio/vmcontention/crypto/openssh/openbsd-compat/bsd-setres_id.h user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/strtoull.c - copied unchanged from r248630, user/attilio/vmcontention/crypto/openssh/openbsd-compat/strtoull.c user/attilio/vmobj-readlock/crypto/openssh/scard/ - copied from r248630, user/attilio/vmcontention/crypto/openssh/scard/ user/attilio/vmobj-readlock/crypto/openssh/umac128.c - copied unchanged from r248630, user/attilio/vmcontention/crypto/openssh/umac128.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c - copied unchanged from r248630, user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c - copied unchanged from r248630, user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_send.h - copied unchanged from r248630, user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_send.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_destroy.h - copied unchanged from r248630, user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_destroy.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_userhold.h - copied unchanged from r248630, user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_userhold.h Deleted: user/attilio/vmobj-readlock/contrib/libarchive/libarchive/filter_fork.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_acl_freebsd.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_compress_program.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_uu.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_compress.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_compress_bzip2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_compress_gzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_compress_lzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_compress_lzma.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_compress_program.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_compress_xz.c user/attilio/vmobj-readlock/crypto/openssh/acss.c user/attilio/vmobj-readlock/crypto/openssh/acss.h user/attilio/vmobj-readlock/crypto/openssh/cipher-acss.c Modified: user/attilio/vmobj-readlock/Makefile.inc1 user/attilio/vmobj-readlock/bin/chflags/chflags.c user/attilio/vmobj-readlock/bin/mv/mv.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zhack/zhack.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/ztest/ztest.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h user/attilio/vmobj-readlock/cddl/lib/Makefile user/attilio/vmobj-readlock/cddl/lib/libzfs/Makefile user/attilio/vmobj-readlock/cddl/sbin/zfs/Makefile user/attilio/vmobj-readlock/cddl/sbin/zpool/Makefile user/attilio/vmobj-readlock/cddl/usr.bin/zinject/Makefile user/attilio/vmobj-readlock/cddl/usr.bin/ztest/Makefile user/attilio/vmobj-readlock/cddl/usr.sbin/zdb/Makefile user/attilio/vmobj-readlock/cddl/usr.sbin/zhack/Makefile user/attilio/vmobj-readlock/contrib/libarchive/NEWS user/attilio/vmobj-readlock/contrib/libarchive/README user/attilio/vmobj-readlock/contrib/libarchive/cpio/bsdcpio.1 user/attilio/vmobj-readlock/contrib/libarchive/cpio/cmdline.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/cpio.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/cpio.h user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/main.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test.h user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_basic.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_format_newc.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_option_y.c user/attilio/vmobj-readlock/contrib/libarchive/cpio/test/test_option_z.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive.h user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_crypto.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_entry.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_entry.h user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_entry_link_resolver.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_match.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_options.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_ppmd7.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_private.h user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_rb.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_disk_posix.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_extract.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_open_fd.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_open_file.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_open_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_private.h user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_all.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_bzip2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_compress.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_gzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_program.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_rpm.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_uu.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_filter_xz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_7zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_ar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_cab.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_cpio.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_lha.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_mtree.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_rar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_raw.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_tar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_xar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_read_support_format_zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_string.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_util.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_virtual.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_compress.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_program.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_add_filter_xz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_disk_acl.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_disk_posix.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_free.3 user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_open_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_private.h user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_7zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_ar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_by_name.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_mtree.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_pax.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_xar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_format_zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/archive_write_set_options.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/filter_fork.h user/attilio/vmobj-readlock/contrib/libarchive/libarchive/libarchive-formats.5 user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/main.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test.h user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_acl_freebsd_posix1e.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_acl_nfs4.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_acl_pax.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_acl_posix1e.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_clear_error.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_read_close_twice.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_read_close_twice_open_fd.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_read_close_twice_open_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_read_set_filter_option.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_read_set_format_option.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_read_set_option.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_read_set_options.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_set_error.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_write_set_filter_option.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_write_set_format_option.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_write_set_option.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_archive_write_set_options.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_bzip2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_cpio.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_gtar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_gzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_lzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_lzma.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_mac.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_tar_hardlink.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_xz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_compat_zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_empty_write.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_entry.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_filter_count.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_fuzz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_open_failure.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_open_fd.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_open_file.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_open_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_pax_filename_encoding.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_data_large.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_disk.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_extract.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_7zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_ar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cab.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cab_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_afio.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_bin.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_Z.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_be.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_bz2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_gz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_lzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_lzma.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_bin_xz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_odc.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4c_Z.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_gtar_gz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_gtar_lzma.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_iso_Z.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_iso_multi_extent.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_iso_xorriso.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isojoliet_bz2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isojoliet_long.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isojoliet_rr.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isojoliet_versioned.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isorr_bz2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isorr_ce.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isorr_new_bz2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isorr_rr_moved.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_isozisofs_bz2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_lha.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_lha_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_mtree.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_pax_bz2.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_rar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_tar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_tar_empty_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_tbz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_tgz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_tlz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_txz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_tz.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_xar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_format_zip_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_pax_truncated.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_truncated.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_read_truncated_filter.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_sparse_basic.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_tar_filenames.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_ustar_filenames.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_disk_sparse.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_7zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_ar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_cpio.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_cpio_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_cpio_newc.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_cpio_odc.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_gnutar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_iso9660.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_iso9660_boot.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_iso9660_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_iso9660_filename.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_iso9660_zisofs.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_mtree.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_mtree_fflags.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_pax.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_shar_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_tar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_tar_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_tar_sparse.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_tar_ustar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_xar.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_xar_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_zip.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_zip_empty.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_format_zip_no_compression.c user/attilio/vmobj-readlock/contrib/libarchive/libarchive/test/test_write_open_memory.c user/attilio/vmobj-readlock/contrib/libarchive/tar/bsdtar.1 user/attilio/vmobj-readlock/contrib/libarchive/tar/bsdtar.c user/attilio/vmobj-readlock/contrib/libarchive/tar/bsdtar.h user/attilio/vmobj-readlock/contrib/libarchive/tar/cmdline.c user/attilio/vmobj-readlock/contrib/libarchive/tar/read.c user/attilio/vmobj-readlock/contrib/libarchive/tar/subst.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/main.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test.h user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_copy.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_newer_than.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_option_r.c user/attilio/vmobj-readlock/contrib/libarchive/tar/test/test_stdio.c user/attilio/vmobj-readlock/contrib/libarchive/tar/util.c user/attilio/vmobj-readlock/contrib/libarchive/tar/write.c user/attilio/vmobj-readlock/contrib/openbsm/etc/audit_event user/attilio/vmobj-readlock/crypto/openssh/ChangeLog user/attilio/vmobj-readlock/crypto/openssh/INSTALL user/attilio/vmobj-readlock/crypto/openssh/PROTOCOL user/attilio/vmobj-readlock/crypto/openssh/PROTOCOL.agent user/attilio/vmobj-readlock/crypto/openssh/README user/attilio/vmobj-readlock/crypto/openssh/auth-options.c user/attilio/vmobj-readlock/crypto/openssh/auth-rsa.c user/attilio/vmobj-readlock/crypto/openssh/auth.c user/attilio/vmobj-readlock/crypto/openssh/auth.h user/attilio/vmobj-readlock/crypto/openssh/auth1.c user/attilio/vmobj-readlock/crypto/openssh/auth2-chall.c user/attilio/vmobj-readlock/crypto/openssh/auth2-gss.c user/attilio/vmobj-readlock/crypto/openssh/auth2-jpake.c user/attilio/vmobj-readlock/crypto/openssh/auth2-pubkey.c user/attilio/vmobj-readlock/crypto/openssh/auth2.c user/attilio/vmobj-readlock/crypto/openssh/authfile.c user/attilio/vmobj-readlock/crypto/openssh/channels.c user/attilio/vmobj-readlock/crypto/openssh/cipher-aes.c user/attilio/vmobj-readlock/crypto/openssh/cipher-ctr.c user/attilio/vmobj-readlock/crypto/openssh/cipher.c user/attilio/vmobj-readlock/crypto/openssh/cipher.h user/attilio/vmobj-readlock/crypto/openssh/clientloop.c user/attilio/vmobj-readlock/crypto/openssh/clientloop.h user/attilio/vmobj-readlock/crypto/openssh/compat.c user/attilio/vmobj-readlock/crypto/openssh/config.h user/attilio/vmobj-readlock/crypto/openssh/config.h.in user/attilio/vmobj-readlock/crypto/openssh/defines.h user/attilio/vmobj-readlock/crypto/openssh/includes.h user/attilio/vmobj-readlock/crypto/openssh/kex.c user/attilio/vmobj-readlock/crypto/openssh/kex.h user/attilio/vmobj-readlock/crypto/openssh/key.c user/attilio/vmobj-readlock/crypto/openssh/key.h user/attilio/vmobj-readlock/crypto/openssh/log.c user/attilio/vmobj-readlock/crypto/openssh/log.h user/attilio/vmobj-readlock/crypto/openssh/loginrec.c user/attilio/vmobj-readlock/crypto/openssh/mac.c user/attilio/vmobj-readlock/crypto/openssh/moduli user/attilio/vmobj-readlock/crypto/openssh/moduli.5 user/attilio/vmobj-readlock/crypto/openssh/monitor.c user/attilio/vmobj-readlock/crypto/openssh/monitor.h user/attilio/vmobj-readlock/crypto/openssh/monitor_wrap.c user/attilio/vmobj-readlock/crypto/openssh/mux.c user/attilio/vmobj-readlock/crypto/openssh/myproposal.h user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/bsd-misc.c user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/bsd-misc.h user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/openbsd-compat.h user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/openssl-compat.h user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/sys-queue.h user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/sys-tree.h user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/vis.c user/attilio/vmobj-readlock/crypto/openssh/openbsd-compat/vis.h user/attilio/vmobj-readlock/crypto/openssh/packet.c user/attilio/vmobj-readlock/crypto/openssh/platform.c user/attilio/vmobj-readlock/crypto/openssh/platform.h user/attilio/vmobj-readlock/crypto/openssh/scp.1 user/attilio/vmobj-readlock/crypto/openssh/scp.c user/attilio/vmobj-readlock/crypto/openssh/servconf.c user/attilio/vmobj-readlock/crypto/openssh/servconf.h user/attilio/vmobj-readlock/crypto/openssh/serverloop.c user/attilio/vmobj-readlock/crypto/openssh/session.c user/attilio/vmobj-readlock/crypto/openssh/sftp-server.8 user/attilio/vmobj-readlock/crypto/openssh/sftp-server.c user/attilio/vmobj-readlock/crypto/openssh/sftp.1 user/attilio/vmobj-readlock/crypto/openssh/sftp.c user/attilio/vmobj-readlock/crypto/openssh/ssh-add.1 user/attilio/vmobj-readlock/crypto/openssh/ssh-add.c user/attilio/vmobj-readlock/crypto/openssh/ssh-gss.h user/attilio/vmobj-readlock/crypto/openssh/ssh-keygen.1 user/attilio/vmobj-readlock/crypto/openssh/ssh-keygen.c user/attilio/vmobj-readlock/crypto/openssh/ssh-keyscan.1 user/attilio/vmobj-readlock/crypto/openssh/ssh.1 user/attilio/vmobj-readlock/crypto/openssh/ssh_config user/attilio/vmobj-readlock/crypto/openssh/ssh_config.5 user/attilio/vmobj-readlock/crypto/openssh/ssh_namespace.h user/attilio/vmobj-readlock/crypto/openssh/sshconnect.c user/attilio/vmobj-readlock/crypto/openssh/sshconnect2.c user/attilio/vmobj-readlock/crypto/openssh/sshd.8 user/attilio/vmobj-readlock/crypto/openssh/sshd.c user/attilio/vmobj-readlock/crypto/openssh/sshd_config user/attilio/vmobj-readlock/crypto/openssh/sshd_config.5 user/attilio/vmobj-readlock/crypto/openssh/uidswap.c user/attilio/vmobj-readlock/crypto/openssh/umac.c user/attilio/vmobj-readlock/crypto/openssh/umac.h user/attilio/vmobj-readlock/crypto/openssh/version.h user/attilio/vmobj-readlock/etc/rc.d/sysctl user/attilio/vmobj-readlock/games/fortune/datfiles/freebsd-tips user/attilio/vmobj-readlock/gnu/lib/libsupc++/Makefile user/attilio/vmobj-readlock/lib/libarchive/Makefile user/attilio/vmobj-readlock/lib/libarchive/config_freebsd.h user/attilio/vmobj-readlock/lib/libarchive/test/Makefile user/attilio/vmobj-readlock/lib/libc/sys/Makefile.inc user/attilio/vmobj-readlock/lib/libc/sys/Symbol.map user/attilio/vmobj-readlock/lib/libc/sys/cap_rights_limit.2 user/attilio/vmobj-readlock/lib/libc/sys/chflags.2 user/attilio/vmobj-readlock/lib/libc/sys/posix_openpt.2 user/attilio/vmobj-readlock/rescue/rescue/Makefile user/attilio/vmobj-readlock/sbin/dumpfs/dumpfs.c user/attilio/vmobj-readlock/sbin/fsck_ffs/fsck.h user/attilio/vmobj-readlock/sbin/fsck_ffs/fsutil.c user/attilio/vmobj-readlock/sbin/fsck_ffs/inode.c user/attilio/vmobj-readlock/sbin/fsck_ffs/pass1.c user/attilio/vmobj-readlock/sbin/fsck_ffs/pass5.c user/attilio/vmobj-readlock/sbin/fsck_ffs/setup.c user/attilio/vmobj-readlock/sbin/fsck_ffs/suj.c user/attilio/vmobj-readlock/sbin/ipfw/ipfw.8 user/attilio/vmobj-readlock/sbin/newfs/mkfs.c user/attilio/vmobj-readlock/sbin/newfs/newfs.8 user/attilio/vmobj-readlock/sbin/newfs/newfs.c user/attilio/vmobj-readlock/sbin/newfs/newfs.h user/attilio/vmobj-readlock/sbin/tunefs/tunefs.8 user/attilio/vmobj-readlock/sbin/tunefs/tunefs.c user/attilio/vmobj-readlock/secure/lib/libssh/Makefile user/attilio/vmobj-readlock/secure/libexec/ssh-keysign/Makefile user/attilio/vmobj-readlock/share/examples/etc/make.conf user/attilio/vmobj-readlock/share/man/man4/ng_nat.4 user/attilio/vmobj-readlock/share/man/man5/make.conf.5 user/attilio/vmobj-readlock/share/man/man9/zone.9 user/attilio/vmobj-readlock/share/mk/bsd.libnames.mk user/attilio/vmobj-readlock/sys/arm/broadcom/bcm2835/bcm2835_systimer.c user/attilio/vmobj-readlock/sys/bsm/audit_kevents.h user/attilio/vmobj-readlock/sys/cddl/compat/opensolaris/sys/cred.h user/attilio/vmobj-readlock/sys/cddl/compat/opensolaris/sys/time.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/common/zfs/zprop_common.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/Makefile.files user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/sys/feature_tests.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h user/attilio/vmobj-readlock/sys/compat/freebsd32/freebsd32_proto.h user/attilio/vmobj-readlock/sys/compat/freebsd32/freebsd32_syscall.h user/attilio/vmobj-readlock/sys/compat/freebsd32/freebsd32_syscalls.c user/attilio/vmobj-readlock/sys/compat/freebsd32/freebsd32_sysent.c user/attilio/vmobj-readlock/sys/compat/freebsd32/freebsd32_systrace_args.c user/attilio/vmobj-readlock/sys/compat/freebsd32/syscalls.master user/attilio/vmobj-readlock/sys/dev/mfi/mfi_disk.c user/attilio/vmobj-readlock/sys/dev/twa/tw_osl_cam.c user/attilio/vmobj-readlock/sys/dev/twa/tw_osl_freebsd.c user/attilio/vmobj-readlock/sys/dev/usb/wlan/if_rum.c user/attilio/vmobj-readlock/sys/fs/nfsclient/nfs_clport.c user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs.h user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_subr.c user/attilio/vmobj-readlock/sys/fs/tmpfs/tmpfs_vnops.c user/attilio/vmobj-readlock/sys/geom/geom_io.c user/attilio/vmobj-readlock/sys/kern/capabilities.conf user/attilio/vmobj-readlock/sys/kern/init_sysent.c user/attilio/vmobj-readlock/sys/kern/kern_thread.c user/attilio/vmobj-readlock/sys/kern/kern_umtx.c user/attilio/vmobj-readlock/sys/kern/syscalls.c user/attilio/vmobj-readlock/sys/kern/syscalls.master user/attilio/vmobj-readlock/sys/kern/systrace_args.c user/attilio/vmobj-readlock/sys/kern/tty_pts.c user/attilio/vmobj-readlock/sys/kern/vfs_bio.c user/attilio/vmobj-readlock/sys/kern/vfs_cache.c user/attilio/vmobj-readlock/sys/kern/vfs_mount.c user/attilio/vmobj-readlock/sys/kern/vfs_syscalls.c user/attilio/vmobj-readlock/sys/net/if_arcsubr.c user/attilio/vmobj-readlock/sys/net/if_lagg.c user/attilio/vmobj-readlock/sys/net/if_lagg.h user/attilio/vmobj-readlock/sys/netgraph/ng_nat.c user/attilio/vmobj-readlock/sys/netgraph/ng_nat.h user/attilio/vmobj-readlock/sys/netinet6/in6_proto.c user/attilio/vmobj-readlock/sys/netinet6/nd6.c user/attilio/vmobj-readlock/sys/sys/capability.h user/attilio/vmobj-readlock/sys/sys/stat.h user/attilio/vmobj-readlock/sys/sys/syscall.h user/attilio/vmobj-readlock/sys/sys/syscall.mk user/attilio/vmobj-readlock/sys/sys/sysproto.h user/attilio/vmobj-readlock/sys/sys/vnode.h user/attilio/vmobj-readlock/sys/ufs/ffs/ffs_alloc.c user/attilio/vmobj-readlock/sys/ufs/ffs/ffs_balloc.c user/attilio/vmobj-readlock/sys/ufs/ffs/fs.h user/attilio/vmobj-readlock/sys/ufs/ufs/ufs_lookup.c user/attilio/vmobj-readlock/sys/vm/vm_init.c user/attilio/vmobj-readlock/tools/regression/pjdfstest/Makefile user/attilio/vmobj-readlock/tools/regression/pjdfstest/pjdfstest.c user/attilio/vmobj-readlock/tools/regression/security/cap_test/cap_test_capabilities.c user/attilio/vmobj-readlock/tools/tools/netrate/netreceive/Makefile user/attilio/vmobj-readlock/usr.bin/ar/Makefile user/attilio/vmobj-readlock/usr.bin/ar/acpyacc.y user/attilio/vmobj-readlock/usr.bin/ar/read.c user/attilio/vmobj-readlock/usr.bin/ar/write.c user/attilio/vmobj-readlock/usr.bin/cpio/Makefile user/attilio/vmobj-readlock/usr.bin/cpio/test/Makefile user/attilio/vmobj-readlock/usr.bin/tar/Makefile user/attilio/vmobj-readlock/usr.bin/tar/test/Makefile user/attilio/vmobj-readlock/usr.bin/unzip/unzip.c user/attilio/vmobj-readlock/usr.sbin/bsdinstall/distextract/distextract.c Directory Properties: user/attilio/vmobj-readlock/ (props changed) user/attilio/vmobj-readlock/cddl/ (props changed) user/attilio/vmobj-readlock/cddl/contrib/opensolaris/ (props changed) user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/attilio/vmobj-readlock/cddl/contrib/opensolaris/lib/libzfs/ (props changed) user/attilio/vmobj-readlock/contrib/libarchive/ (props changed) user/attilio/vmobj-readlock/contrib/libarchive/cpio/ (props changed) user/attilio/vmobj-readlock/contrib/libarchive/libarchive/ (props changed) user/attilio/vmobj-readlock/contrib/libarchive/tar/ (props changed) user/attilio/vmobj-readlock/contrib/openbsm/ (props changed) user/attilio/vmobj-readlock/crypto/openssh/ (props changed) user/attilio/vmobj-readlock/gnu/lib/ (props changed) user/attilio/vmobj-readlock/lib/libc/ (props changed) user/attilio/vmobj-readlock/sbin/ (props changed) user/attilio/vmobj-readlock/sbin/ipfw/ (props changed) user/attilio/vmobj-readlock/share/man/man4/ (props changed) user/attilio/vmobj-readlock/sys/ (props changed) user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/ (props changed) Modified: user/attilio/vmobj-readlock/Makefile.inc1 ============================================================================== --- user/attilio/vmobj-readlock/Makefile.inc1 Fri Mar 22 22:55:37 2013 (r248630) +++ user/attilio/vmobj-readlock/Makefile.inc1 Fri Mar 22 22:58:36 2013 (r248631) @@ -1389,6 +1389,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 lib/libopie lib/libpam ${_lib_libthr} \ lib/libradius lib/libsbuf lib/libtacplus \ ${_cddl_lib_libumem} ${_cddl_lib_libnvpair} \ + ${_cddl_lib_libzfs_core} \ lib/libutil ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ ${_secure_lib_libssl} @@ -1417,7 +1418,9 @@ lib/libopie__L lib/libtacplus__L: lib/li .if ${MK_CDDL} != "no" _cddl_lib_libumem= cddl/lib/libumem _cddl_lib_libnvpair= cddl/lib/libnvpair +_cddl_lib_libzfs_core= cddl/lib/libzfs_core _cddl_lib= cddl/lib +cddl/lib/libzfs_core__L: cddl/lib/libnvpair__L .endif .if ${MK_CRYPT} != "no" Modified: user/attilio/vmobj-readlock/bin/chflags/chflags.c ============================================================================== --- user/attilio/vmobj-readlock/bin/chflags/chflags.c Fri Mar 22 22:55:37 2013 (r248630) +++ user/attilio/vmobj-readlock/bin/chflags/chflags.c Fri Mar 22 22:58:36 2013 (r248631) @@ -117,11 +117,7 @@ main(int argc, char *argv[]) } else fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL; - /* XXX: Why don't chflags and lchflags have compatible prototypes? */ - if (hflag) - change_flags = (int (*)(const char *, unsigned long))lchflags; - else - change_flags = chflags; + change_flags = hflag ? lchflags : chflags; flags = *argv; if (*flags >= '0' && *flags <= '7') { Modified: user/attilio/vmobj-readlock/bin/mv/mv.c ============================================================================== --- user/attilio/vmobj-readlock/bin/mv/mv.c Fri Mar 22 22:55:37 2013 (r248630) +++ user/attilio/vmobj-readlock/bin/mv/mv.c Fri Mar 22 22:58:36 2013 (r248631) @@ -337,7 +337,7 @@ err: if (unlink(to)) * on a file that we copied, i.e., that we didn't create.) */ errno = 0; - if (fchflags(to_fd, (u_long)sbp->st_flags)) + if (fchflags(to_fd, sbp->st_flags)) if (errno != EOPNOTSUPP || sbp->st_flags != 0) warn("%s: set flags (was: 0%07o)", to, sbp->st_flags); Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zdb/zdb.c Fri Mar 22 22:55:37 2013 (r248630) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zdb/zdb.c Fri Mar 22 22:58:36 2013 (r248631) @@ -57,6 +57,7 @@ #include #include #include +#include #undef ZFS_MAXNAMELEN #undef verify #include @@ -206,6 +207,27 @@ dump_packed_nvlist(objset_t *os, uint64_ nvlist_free(nv); } +/* ARGSUSED */ +static void +dump_history_offsets(objset_t *os, uint64_t object, void *data, size_t size) +{ + spa_history_phys_t *shp = data; + + if (shp == NULL) + return; + + (void) printf("\t\tpool_create_len = %llu\n", + (u_longlong_t)shp->sh_pool_create_len); + (void) printf("\t\tphys_max_off = %llu\n", + (u_longlong_t)shp->sh_phys_max_off); + (void) printf("\t\tbof = %llu\n", + (u_longlong_t)shp->sh_bof); + (void) printf("\t\teof = %llu\n", + (u_longlong_t)shp->sh_eof); + (void) printf("\t\trecords_lost = %llu\n", + (u_longlong_t)shp->sh_records_lost); +} + static void zdb_nicenum(uint64_t num, char *buf) { @@ -857,21 +879,22 @@ dump_history(spa_t *spa) for (int i = 0; i < num; i++) { uint64_t time, txg, ievent; char *cmd, *intstr; + boolean_t printed = B_FALSE; if (nvlist_lookup_uint64(events[i], ZPOOL_HIST_TIME, &time) != 0) - continue; + goto next; if (nvlist_lookup_string(events[i], ZPOOL_HIST_CMD, &cmd) != 0) { if (nvlist_lookup_uint64(events[i], ZPOOL_HIST_INT_EVENT, &ievent) != 0) - continue; + goto next; verify(nvlist_lookup_uint64(events[i], ZPOOL_HIST_TXG, &txg) == 0); verify(nvlist_lookup_string(events[i], ZPOOL_HIST_INT_STR, &intstr) == 0); - if (ievent >= LOG_END) - continue; + if (ievent >= ZFS_NUM_LEGACY_HISTORY_EVENTS) + goto next; (void) snprintf(internalstr, sizeof (internalstr), @@ -884,6 +907,14 @@ dump_history(spa_t *spa) (void) localtime_r(&tsec, &t); (void) strftime(tbuf, sizeof (tbuf), "%F.%T", &t); (void) printf("%s %s\n", tbuf, cmd); + printed = B_TRUE; + +next: + if (dump_opt['h'] > 1) { + if (!printed) + (void) printf("unrecognized record:\n"); + dump_nvlist(events[i], 2); + } } } @@ -1496,7 +1527,7 @@ static object_viewer_t *object_viewer[DM dump_zap, /* other ZAP */ dump_zap, /* persistent error log */ dump_uint8, /* SPA history */ - dump_uint64, /* SPA history offsets */ + dump_history_offsets, /* SPA history offsets */ dump_zap, /* Pool properties */ dump_zap, /* DSL permissions */ dump_acl, /* ZFS ACL */ @@ -1661,7 +1692,9 @@ dump_dir(objset_t *os) int print_header = 1; int i, error; + dsl_pool_config_enter(dmu_objset_pool(os), FTAG); dmu_objset_fast_stat(os, &dds); + dsl_pool_config_exit(dmu_objset_pool(os), FTAG); if (dds.dds_type < DMU_OST_NUMTYPES) type = objset_types[dds.dds_type]; @@ -2070,7 +2103,6 @@ zdb_blkptr_cb(spa_t *spa, zilog_t *zilog NULL, NULL, ZIO_PRIORITY_ASYNC_READ, flags, zb)); free(data); - if (ioerr && !(flags & ZIO_FLAG_SPECULATIVE)) { zcb->zcb_haderrors = 1; zcb->zcb_errors[ioerr]++; Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Mar 22 22:55:37 2013 (r248630) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Mar 22 22:58:36 2013 (r248631) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 1, 2013 +.Dd March 21, 2013 .Dt ZFS 8 .Os .Sh NAME @@ -65,6 +65,7 @@ .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... .Ar filesystem@snapname Ns | Ns Ar volume@snapname +.Ar filesystem@snapname Ns | Ns Ar volume@snapname Ns ... .Nm .Cm rollback .Op Fl rRf @@ -1617,7 +1618,11 @@ multiple snapshots. Destroy (or mark for deferred deletion) all snapshots with this name in descendent file systems. .It Fl R -Recursively destroy all dependents. +Recursively destroy all clones of these snapshots, including the clones, +snapshots, and children. +If this flag is specified, the +.Op fl d +flag will have no effect. .It Fl n Do a dry-run ("No-op") deletion. No data will be deleted. This is useful in conjunction with the @@ -1645,17 +1650,18 @@ behavior for mounted file systems in use .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... .Ar filesystem@snapname Ns | Ns volume@snapname +.Ar filesystem@snapname Ns | Ns volume@snapname Ns ... .Xc .Pp -Creates a snapshot with the given name. All previous modifications by -successful system calls to the file system are part of the snapshot. See the +Creates snapshots with the given names. All previous modifications by +successful system calls to the file system are part of the snapshots. +Snapshots are taken atomically, so that all snapshots correspond to the same +moment in time. See the .Qq Sx Snapshots section for details. .Bl -tag -width indent .It Fl r -Recursively create snapshots of all descendent datasets. Snapshots are taken -atomically, so that all recursive snapshots correspond to the same moment in -time. +Recursively create snapshots of all descendent datasets .It Fl o Ar property Ns = Ns Ar value Sets the specified property; see .Qq Nm Cm create Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Fri Mar 22 22:55:37 2013 (r248630) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Fri Mar 22 22:58:36 2013 (r248631) @@ -58,6 +58,7 @@ #include #include +#include #include #include #include @@ -74,6 +75,7 @@ libzfs_handle_t *g_zfs; static FILE *mnttab_file; static char history_str[HIS_MAX_RECORD_LEN]; +static boolean_t log_history = B_TRUE; static int zfs_do_clone(int argc, char **argv); static int zfs_do_create(int argc, char **argv); @@ -276,7 +278,7 @@ get_usage(zfs_help_t idx) return (gettext("\tshare <-a | filesystem>\n")); case HELP_SNAPSHOT: return (gettext("\tsnapshot [-r] [-o property=value] ... " - "\n")); + " ...\n")); case HELP_UNMOUNT: return (gettext("\tunmount [-f] " "<-a | filesystem|mountpoint>\n")); @@ -914,11 +916,12 @@ typedef struct destroy_cbdata { boolean_t cb_parsable; boolean_t cb_dryrun; nvlist_t *cb_nvl; + nvlist_t *cb_batchedsnaps; /* first snap in contiguous run */ - zfs_handle_t *cb_firstsnap; + char *cb_firstsnap; /* previous snap in contiguous run */ - zfs_handle_t *cb_prevsnap; + char *cb_prevsnap; int64_t cb_snapused; char *cb_snapspec; } destroy_cbdata_t; @@ -1010,9 +1013,27 @@ destroy_callback(zfs_handle_t *zhp, void zfs_close(zhp); return (0); } + if (cb->cb_dryrun) { + zfs_close(zhp); + return (0); + } + + /* + * We batch up all contiguous snapshots (even of different + * filesystems) and destroy them with one ioctl. We can't + * simply do all snap deletions and then all fs deletions, + * because we must delete a clone before its origin. + */ + if (zfs_get_type(zhp) == ZFS_TYPE_SNAPSHOT) { + fnvlist_add_boolean(cb->cb_batchedsnaps, name); + } else { + int error = zfs_destroy_snaps_nvl(g_zfs, + cb->cb_batchedsnaps, B_FALSE); + fnvlist_free(cb->cb_batchedsnaps); + cb->cb_batchedsnaps = fnvlist_alloc(); - if (!cb->cb_dryrun) { - if (zfs_unmount(zhp, NULL, cb->cb_force ? MS_FORCE : 0) != 0 || + if (error != 0 || + zfs_unmount(zhp, NULL, cb->cb_force ? MS_FORCE : 0) != 0 || zfs_destroy(zhp, cb->cb_defer_destroy) != 0) { zfs_close(zhp); return (-1); @@ -1032,11 +1053,13 @@ destroy_print_cb(zfs_handle_t *zhp, void if (nvlist_exists(cb->cb_nvl, name)) { if (cb->cb_firstsnap == NULL) - cb->cb_firstsnap = zfs_handle_dup(zhp); + cb->cb_firstsnap = strdup(name); if (cb->cb_prevsnap != NULL) - zfs_close(cb->cb_prevsnap); + free(cb->cb_prevsnap); /* this snap continues the current range */ - cb->cb_prevsnap = zfs_handle_dup(zhp); + cb->cb_prevsnap = strdup(name); + if (cb->cb_firstsnap == NULL || cb->cb_prevsnap == NULL) + nomem(); if (cb->cb_verbose) { if (cb->cb_parsable) { (void) printf("destroy\t%s\n", name); @@ -1051,12 +1074,12 @@ destroy_print_cb(zfs_handle_t *zhp, void } else if (cb->cb_firstsnap != NULL) { /* end of this range */ uint64_t used = 0; - err = zfs_get_snapused_int(cb->cb_firstsnap, + err = lzc_snaprange_space(cb->cb_firstsnap, cb->cb_prevsnap, &used); cb->cb_snapused += used; - zfs_close(cb->cb_firstsnap); + free(cb->cb_firstsnap); cb->cb_firstsnap = NULL; - zfs_close(cb->cb_prevsnap); + free(cb->cb_prevsnap); cb->cb_prevsnap = NULL; } zfs_close(zhp); @@ -1073,13 +1096,13 @@ destroy_print_snapshots(zfs_handle_t *fs if (cb->cb_firstsnap != NULL) { uint64_t used = 0; if (err == 0) { - err = zfs_get_snapused_int(cb->cb_firstsnap, + err = lzc_snaprange_space(cb->cb_firstsnap, cb->cb_prevsnap, &used); } cb->cb_snapused += used; - zfs_close(cb->cb_firstsnap); + free(cb->cb_firstsnap); cb->cb_firstsnap = NULL; - zfs_close(cb->cb_prevsnap); + free(cb->cb_prevsnap); cb->cb_prevsnap = NULL; } return (err); @@ -1166,8 +1189,10 @@ static int zfs_do_destroy(int argc, char **argv) { destroy_cbdata_t cb = { 0 }; + int rv = 0; + int err = 0; int c; - zfs_handle_t *zhp; + zfs_handle_t *zhp = NULL; char *at; zfs_type_t type = ZFS_TYPE_DATASET; @@ -1221,11 +1246,9 @@ zfs_do_destroy(int argc, char **argv) at = strchr(argv[0], '@'); if (at != NULL) { - int err = 0; /* Build the list of snaps to destroy in cb_nvl. */ - if (nvlist_alloc(&cb.cb_nvl, NV_UNIQUE_NAME, 0) != 0) - nomem(); + cb.cb_nvl = fnvlist_alloc(); *at = '\0'; zhp = zfs_open(g_zfs, argv[0], @@ -1236,17 +1259,15 @@ zfs_do_destroy(int argc, char **argv) cb.cb_snapspec = at + 1; if (gather_snapshots(zfs_handle_dup(zhp), &cb) != 0 || cb.cb_error) { - zfs_close(zhp); - nvlist_free(cb.cb_nvl); - return (1); + rv = 1; + goto out; } if (nvlist_empty(cb.cb_nvl)) { (void) fprintf(stderr, gettext("could not find any " "snapshots to destroy; check snapshot names.\n")); - zfs_close(zhp); - nvlist_free(cb.cb_nvl); - return (1); + rv = 1; + goto out; } if (cb.cb_verbose) { @@ -1265,18 +1286,26 @@ zfs_do_destroy(int argc, char **argv) } if (!cb.cb_dryrun) { - if (cb.cb_doclones) + if (cb.cb_doclones) { + cb.cb_batchedsnaps = fnvlist_alloc(); err = destroy_clones(&cb); + if (err == 0) { + err = zfs_destroy_snaps_nvl(g_zfs, + cb.cb_batchedsnaps, B_FALSE); + } + if (err != 0) { + rv = 1; + goto out; + } + } if (err == 0) { - err = zfs_destroy_snaps_nvl(zhp, cb.cb_nvl, + err = zfs_destroy_snaps_nvl(g_zfs, cb.cb_nvl, cb.cb_defer_destroy); } } - zfs_close(zhp); - nvlist_free(cb.cb_nvl); if (err != 0) - return (1); + rv = 1; } else { /* Open the given dataset */ if ((zhp = zfs_open(g_zfs, argv[0], type)) == NULL) @@ -1297,8 +1326,8 @@ zfs_do_destroy(int argc, char **argv) zfs_get_name(zhp)); (void) fprintf(stderr, gettext("use 'zpool destroy %s' " "to destroy the pool itself\n"), zfs_get_name(zhp)); - zfs_close(zhp); - return (1); + rv = 1; + goto out; } /* @@ -1308,30 +1337,42 @@ zfs_do_destroy(int argc, char **argv) if (!cb.cb_doclones && zfs_iter_dependents(zhp, B_TRUE, destroy_check_dependent, &cb) != 0) { - zfs_close(zhp); - return (1); + rv = 1; + goto out; } if (cb.cb_error) { - zfs_close(zhp); - return (1); + rv = 1; + goto out; } + cb.cb_batchedsnaps = fnvlist_alloc(); if (zfs_iter_dependents(zhp, B_FALSE, destroy_callback, &cb) != 0) { - zfs_close(zhp); - return (1); + rv = 1; + goto out; } /* * Do the real thing. The callback will close the * handle regardless of whether it succeeds or not. */ - if (destroy_callback(zhp, &cb) != 0) - return (1); + err = destroy_callback(zhp, &cb); + zhp = NULL; + if (err == 0) { + err = zfs_destroy_snaps_nvl(g_zfs, + cb.cb_batchedsnaps, cb.cb_defer_destroy); + } + if (err != 0) + rv = 1; } - return (0); +out: + fnvlist_free(cb.cb_batchedsnaps); + fnvlist_free(cb.cb_nvl); + if (zhp != NULL) + zfs_close(zhp); + return (rv); } static boolean_t @@ -1932,9 +1973,11 @@ upgrade_set_callback(zfs_handle_t *zhp, /* * If they did "zfs upgrade -a", then we could * be doing ioctls to different pools. We need - * to log this history once to each pool. + * to log this history once to each pool, and bypass + * the normal history logging that happens in main(). */ - verify(zpool_stage_history(g_zfs, history_str) == 0); + (void) zpool_log_history(g_zfs, history_str); + log_history = B_FALSE; } if (zfs_prop_set(zhp, "version", verstr) == 0) cb->cb_numupgraded++; @@ -3472,6 +3515,32 @@ zfs_do_set(int argc, char **argv) return (ret); } +typedef struct snap_cbdata { + nvlist_t *sd_nvl; + boolean_t sd_recursive; + const char *sd_snapname; +} snap_cbdata_t; + +static int +zfs_snapshot_cb(zfs_handle_t *zhp, void *arg) +{ + snap_cbdata_t *sd = arg; + char *name; + int rv = 0; + int error; + + error = asprintf(&name, "%s@%s", zfs_get_name(zhp), sd->sd_snapname); + if (error == -1) + nomem(); + fnvlist_add_boolean(sd->sd_nvl, name); + free(name); + + if (sd->sd_recursive) + rv = zfs_iter_filesystems(zhp, zfs_snapshot_cb, sd); + zfs_close(zhp); + return (rv); +} + /* * zfs snapshot [-r] [-o prop=value] ... * @@ -3481,13 +3550,16 @@ zfs_do_set(int argc, char **argv) static int zfs_do_snapshot(int argc, char **argv) { - boolean_t recursive = B_FALSE; int ret = 0; char c; nvlist_t *props; + snap_cbdata_t sd = { 0 }; + boolean_t multiple_snaps = B_FALSE; if (nvlist_alloc(&props, NV_UNIQUE_NAME, 0) != 0) nomem(); + if (nvlist_alloc(&sd.sd_nvl, NV_UNIQUE_NAME, 0) != 0) + nomem(); /* check options */ while ((c = getopt(argc, argv, "ro:")) != -1) { @@ -3497,7 +3569,8 @@ zfs_do_snapshot(int argc, char **argv) return (1); break; case 'r': - recursive = B_TRUE; + sd.sd_recursive = B_TRUE; + multiple_snaps = B_TRUE; break; case '?': (void) fprintf(stderr, gettext("invalid option '%c'\n"), @@ -3514,18 +3587,35 @@ zfs_do_snapshot(int argc, char **argv) (void) fprintf(stderr, gettext("missing snapshot argument\n")); goto usage; } - if (argc > 1) { - (void) fprintf(stderr, gettext("too many arguments\n")); - goto usage; + + if (argc > 1) + multiple_snaps = B_TRUE; + for (; argc > 0; argc--, argv++) { + char *atp; + zfs_handle_t *zhp; + + atp = strchr(argv[0], '@'); + if (atp == NULL) + goto usage; + *atp = '\0'; + sd.sd_snapname = atp + 1; + zhp = zfs_open(g_zfs, argv[0], + ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME); + if (zhp == NULL) + goto usage; + if (zfs_snapshot_cb(zhp, &sd) != 0) + goto usage; } - ret = zfs_snapshot(g_zfs, argv[0], recursive, props); + ret = zfs_snapshot_nvl(g_zfs, sd.sd_nvl, props); + nvlist_free(sd.sd_nvl); nvlist_free(props); - if (ret && recursive) + if (ret != 0 && multiple_snaps) (void) fprintf(stderr, gettext("no snapshots were created\n")); return (ret != 0); usage: + nvlist_free(sd.sd_nvl); nvlist_free(props); usage(B_FALSE); return (-1); @@ -5068,28 +5158,12 @@ cleanup2: return (error); } -/* - * zfs allow [-r] [-t] ... - * - * -r Recursively hold - * -t Temporary hold (hidden option) - * - * Apply a user-hold with the given tag to the list of snapshots. - */ static int zfs_do_allow(int argc, char **argv) { return (zfs_do_allow_unallow_impl(argc, argv, B_FALSE)); } -/* - * zfs unallow [-r] [-t] ... - * - * -r Recursively hold - * -t Temporary hold (hidden option) - * - * Apply a user-hold with the given tag to the list of snapshots. - */ static int zfs_do_unallow(int argc, char **argv) { @@ -5103,7 +5177,6 @@ zfs_do_hold_rele_impl(int argc, char **a int i; const char *tag; boolean_t recursive = B_FALSE; - boolean_t temphold = B_FALSE; const char *opts = holding ? "rt" : "r"; int c; @@ -5113,9 +5186,6 @@ zfs_do_hold_rele_impl(int argc, char **a case 'r': recursive = B_TRUE; break; - case 't': - temphold = B_TRUE; - break; case '?': (void) fprintf(stderr, gettext("invalid option '%c'\n"), optopt); @@ -5164,7 +5234,7 @@ zfs_do_hold_rele_impl(int argc, char **a } if (holding) { if (zfs_hold(zhp, delim+1, tag, recursive, - temphold, B_FALSE, -1, 0, 0) != 0) + B_FALSE, -1) != 0) ++errors; } else { if (zfs_release(zhp, delim+1, tag, recursive) != 0) @@ -5180,7 +5250,6 @@ zfs_do_hold_rele_impl(int argc, char **a * zfs hold [-r] [-t] ... * * -r Recursively hold - * -t Temporary hold (hidden option) * * Apply a user-hold with the given tag to the list of snapshots. */ @@ -6602,8 +6671,7 @@ main(int argc, char **argv) return (1); } - zpool_set_history_str("zfs", argc, argv, history_str); - verify(zpool_stage_history(g_zfs, history_str) == 0); + zfs_save_arguments(argc, argv, history_str, sizeof (history_str)); libzfs_print_on_error(g_zfs, B_TRUE); @@ -6672,6 +6740,9 @@ main(int argc, char **argv) (void) fclose(mnttab_file); + if (ret == 0 && log_history) + (void) zpool_log_history(g_zfs, history_str); + libzfs_fini(g_zfs); /* Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zhack/zhack.c ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zhack/zhack.c Fri Mar 22 22:55:37 2013 (r248630) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zhack/zhack.c Fri Mar 22 22:58:36 2013 (r248631) @@ -46,6 +46,7 @@ #include #include #include +#include #undef ZFS_MAXNAMELEN #undef verify #include @@ -273,12 +274,15 @@ zhack_do_feature_stat(int argc, char **a } static void -feature_enable_sync(void *arg1, void *arg2, dmu_tx_t *tx) +feature_enable_sync(void *arg, dmu_tx_t *tx) { - spa_t *spa = arg1; - zfeature_info_t *feature = arg2; + spa_t *spa = dmu_tx_pool(tx)->dp_spa; + zfeature_info_t *feature = arg; spa_feature_enable(spa, feature, tx); + spa_history_log_internal(spa, "zhack enable feature", tx, + "name=%s can_readonly=%u", + feature->fi_guid, feature->fi_can_readonly); } static void @@ -341,8 +345,8 @@ zhack_do_feature_enable(int argc, char * if (0 == zap_contains(mos, spa->spa_feat_desc_obj, feature.fi_guid)) fatal("feature already enabled: %s", feature.fi_guid); - VERIFY3U(0, ==, dsl_sync_task_do(spa->spa_dsl_pool, NULL, - feature_enable_sync, spa, &feature, 5)); + VERIFY0(dsl_sync_task(spa_name(spa), NULL, + feature_enable_sync, &feature, 5)); spa_close(spa, FTAG); @@ -350,21 +354,25 @@ zhack_do_feature_enable(int argc, char * } static void -feature_incr_sync(void *arg1, void *arg2, dmu_tx_t *tx) +feature_incr_sync(void *arg, dmu_tx_t *tx) { - spa_t *spa = arg1; - zfeature_info_t *feature = arg2; + spa_t *spa = dmu_tx_pool(tx)->dp_spa; + zfeature_info_t *feature = arg; spa_feature_incr(spa, feature, tx); + spa_history_log_internal(spa, "zhack feature incr", tx, + "name=%s", feature->fi_guid); } static void -feature_decr_sync(void *arg1, void *arg2, dmu_tx_t *tx) +feature_decr_sync(void *arg, dmu_tx_t *tx) { - spa_t *spa = arg1; - zfeature_info_t *feature = arg2; + spa_t *spa = dmu_tx_pool(tx)->dp_spa; + zfeature_info_t *feature = arg; spa_feature_decr(spa, feature, tx); + spa_history_log_internal(spa, "zhack feature decr", tx, + "name=%s", feature->fi_guid); } static void @@ -435,8 +443,8 @@ zhack_do_feature_ref(int argc, char **ar if (decr && !spa_feature_is_active(spa, &feature)) fatal("feature refcount already 0: %s", feature.fi_guid); - VERIFY3U(0, ==, dsl_sync_task_do(spa->spa_dsl_pool, NULL, - decr ? feature_decr_sync : feature_incr_sync, spa, &feature, 5)); + VERIFY0(dsl_sync_task(spa_name(spa), NULL, + decr ? feature_decr_sync : feature_incr_sync, &feature, 5)); spa_close(spa, FTAG); } Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Mar 22 22:55:37 2013 (r248630) +++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Mar 22 22:58:36 2013 (r248631) @@ -192,9 +192,9 @@ static zpool_command_t command_table[] = #define NCOMMAND (sizeof (command_table) / sizeof (command_table[0])) -zpool_command_t *current_command; +static zpool_command_t *current_command; static char history_str[HIS_MAX_RECORD_LEN]; - +static boolean_t log_history = B_TRUE; static uint_t timestamp_fmt = NODATE; static const char * @@ -1093,7 +1093,10 @@ zpool_do_destroy(int argc, char **argv) return (1); } - ret = (zpool_destroy(zhp) != 0); + /* The history must be logged as part of the export */ + log_history = B_FALSE; + + ret = (zpool_destroy(zhp, history_str) != 0); zpool_close(zhp); @@ -1157,10 +1160,13 @@ zpool_do_export(int argc, char **argv) continue; } + /* The history must be logged as part of the export */ + log_history = B_FALSE; + if (hardforce) { - if (zpool_export_force(zhp) != 0) + if (zpool_export_force(zhp, history_str) != 0) ret = 1; - } else if (zpool_export(zhp, force) != 0) { + } else if (zpool_export(zhp, force, history_str) != 0) { ret = 1; } @@ -4563,6 +4569,14 @@ upgrade_cb(zpool_handle_t *zhp, void *ar if (count > 0) { cbp->cb_first = B_FALSE; printnl = B_TRUE; + /* + * If they did "zpool upgrade -a", then we could + * be doing ioctls to different pools. We need + * to log this history once to each pool, and bypass + * the normal history logging that happens in main(). + */ + (void) zpool_log_history(g_zfs, history_str); + log_history = B_FALSE; } } @@ -4924,8 +4938,8 @@ zpool_do_upgrade(int argc, char **argv) typedef struct hist_cbdata { boolean_t first; - int longfmt; - int internal; + boolean_t longfmt; + boolean_t internal; } hist_cbdata_t; /* @@ -4937,21 +4951,8 @@ get_history_one(zpool_handle_t *zhp, voi nvlist_t *nvhis; nvlist_t **records; uint_t numrecords; - char *cmdstr; - char *pathstr; - uint64_t dst_time; - time_t tsec; - struct tm t; - char tbuf[30]; int ret, i; - uint64_t who; - struct passwd *pwd; - char *hostname; - char *zonename; - char internalstr[MAXPATHLEN]; hist_cbdata_t *cb = (hist_cbdata_t *)data; - uint64_t txg; - uint64_t ievent; cb->first = B_FALSE; @@ -4963,64 +4964,94 @@ get_history_one(zpool_handle_t *zhp, voi verify(nvlist_lookup_nvlist_array(nvhis, ZPOOL_HIST_RECORD, &records, &numrecords) == 0); for (i = 0; i < numrecords; i++) { - if (nvlist_lookup_uint64(records[i], ZPOOL_HIST_TIME, - &dst_time) != 0) - continue; + nvlist_t *rec = records[i]; + char tbuf[30] = ""; - /* is it an internal event or a standard event? */ - if (nvlist_lookup_string(records[i], ZPOOL_HIST_CMD, - &cmdstr) != 0) { - if (cb->internal == 0) + if (nvlist_exists(rec, ZPOOL_HIST_TIME)) { + time_t tsec; + struct tm t; + + tsec = fnvlist_lookup_uint64(records[i], + ZPOOL_HIST_TIME); + (void) localtime_r(&tsec, &t); + (void) strftime(tbuf, sizeof (tbuf), "%F.%T", &t); + } + + if (nvlist_exists(rec, ZPOOL_HIST_CMD)) { + (void) printf("%s %s", tbuf, + fnvlist_lookup_string(rec, ZPOOL_HIST_CMD)); + } else if (nvlist_exists(rec, ZPOOL_HIST_INT_EVENT)) { + int ievent = + fnvlist_lookup_uint64(rec, ZPOOL_HIST_INT_EVENT); + if (!cb->internal) continue; - - if (nvlist_lookup_uint64(records[i], - ZPOOL_HIST_INT_EVENT, &ievent) != 0) + if (ievent >= ZFS_NUM_LEGACY_HISTORY_EVENTS) { + (void) printf("%s unrecognized record:\n", + tbuf); + dump_nvlist(rec, 4); + continue; + } + (void) printf("%s [internal %s txg:%lld] %s", tbuf, + zfs_history_event_names[ievent], + fnvlist_lookup_uint64(rec, ZPOOL_HIST_TXG), + fnvlist_lookup_string(rec, ZPOOL_HIST_INT_STR)); + } else if (nvlist_exists(rec, ZPOOL_HIST_INT_NAME)) { + if (!cb->internal) continue; - verify(nvlist_lookup_uint64(records[i], - ZPOOL_HIST_TXG, &txg) == 0); - verify(nvlist_lookup_string(records[i], - ZPOOL_HIST_INT_STR, &pathstr) == 0); - if (ievent >= LOG_END) + (void) printf("%s [txg:%lld] %s", tbuf, + fnvlist_lookup_uint64(rec, ZPOOL_HIST_TXG), + fnvlist_lookup_string(rec, ZPOOL_HIST_INT_NAME)); + if (nvlist_exists(rec, ZPOOL_HIST_DSNAME)) { + (void) printf(" %s (%llu)", + fnvlist_lookup_string(rec, + ZPOOL_HIST_DSNAME), + fnvlist_lookup_uint64(rec, + ZPOOL_HIST_DSID)); + } + (void) printf(" %s", fnvlist_lookup_string(rec, + ZPOOL_HIST_INT_STR)); + } else if (nvlist_exists(rec, ZPOOL_HIST_IOCTL)) { + if (!cb->internal) continue; - (void) snprintf(internalstr, - sizeof (internalstr), - "[internal %s txg:%lld] %s", - zfs_history_event_names[ievent], txg, - pathstr); - cmdstr = internalstr; - } - tsec = dst_time; - (void) localtime_r(&tsec, &t); - (void) strftime(tbuf, sizeof (tbuf), "%F.%T", &t); - (void) printf("%s %s", tbuf, cmdstr); + (void) printf("%s ioctl %s\n", tbuf, + fnvlist_lookup_string(rec, ZPOOL_HIST_IOCTL)); + if (nvlist_exists(rec, ZPOOL_HIST_INPUT_NVL)) { + (void) printf(" input:\n"); + dump_nvlist(fnvlist_lookup_nvlist(rec, + ZPOOL_HIST_INPUT_NVL), 8); + } + if (nvlist_exists(rec, ZPOOL_HIST_OUTPUT_NVL)) { + (void) printf(" output:\n"); + dump_nvlist(fnvlist_lookup_nvlist(rec, + ZPOOL_HIST_OUTPUT_NVL), 8); + } + } else { + if (!cb->internal) + continue; + (void) printf("%s unrecognized record:\n", tbuf); + dump_nvlist(rec, 4); + } if (!cb->longfmt) { (void) printf("\n"); continue; } (void) printf(" ["); - if (nvlist_lookup_uint64(records[i], - ZPOOL_HIST_WHO, &who) == 0) { - pwd = getpwuid((uid_t)who); - if (pwd) - (void) printf("user %s on", - pwd->pw_name); - else - (void) printf("user %d on", - (int)who); - } else { - (void) printf(gettext("no info]\n")); - continue; + if (nvlist_exists(rec, ZPOOL_HIST_WHO)) { + uid_t who = fnvlist_lookup_uint64(rec, ZPOOL_HIST_WHO); + struct passwd *pwd = getpwuid(who); + (void) printf("user %d ", (int)who); + if (pwd != NULL) + (void) printf("(%s) ", pwd->pw_name); + } + if (nvlist_exists(rec, ZPOOL_HIST_HOST)) { + (void) printf("on %s", + fnvlist_lookup_string(rec, ZPOOL_HIST_HOST)); + } + if (nvlist_exists(rec, ZPOOL_HIST_ZONE)) { + (void) printf(":%s", + fnvlist_lookup_string(rec, ZPOOL_HIST_ZONE)); } - if (nvlist_lookup_string(records[i], - ZPOOL_HIST_HOST, &hostname) == 0) { - (void) printf(" %s", hostname); - } - if (nvlist_lookup_string(records[i], - ZPOOL_HIST_ZONE, &zonename) == 0) { - (void) printf(":%s", zonename); - } - (void) printf("]"); (void) printf("\n"); } @@ -5035,8 +5066,6 @@ get_history_one(zpool_handle_t *zhp, voi * * Displays the history of commands that modified pools. */ - - int zpool_do_history(int argc, char **argv) { @@ -5049,10 +5078,10 @@ zpool_do_history(int argc, char **argv) while ((c = getopt(argc, argv, "li")) != -1) { switch (c) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***