From owner-p4-projects@FreeBSD.ORG Sun Aug 2 00:06:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 455D51065670; Sun, 2 Aug 2009 00:06:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 056D5106566B for ; Sun, 2 Aug 2009 00:06:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E559F8FC13 for ; Sun, 2 Aug 2009 00:06:28 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7206SAC090350 for ; Sun, 2 Aug 2009 00:06:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7206SSA090348 for perforce@freebsd.org; Sun, 2 Aug 2009 00:06:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 2 Aug 2009 00:06:28 GMT Message-Id: <200908020006.n7206SSA090348@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166909 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 00:06:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=166909 Change 166909 by rwatson@rwatson_cinnamon on 2009/08/02 00:05:41 Prepare to cut an OpenBSM 1.1p2 with minor fixes for inclusion in FreeBSD 8.0. Affected files ... .. //depot/projects/trustedbsd/openbsm/NEWS#43 edit .. //depot/projects/trustedbsd/openbsm/README#37 edit .. //depot/projects/trustedbsd/openbsm/VERSION#26 edit .. //depot/projects/trustedbsd/openbsm/configure#55 edit .. //depot/projects/trustedbsd/openbsm/configure.ac#54 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/NEWS#43 (text+ko) ==== @@ -1,5 +1,11 @@ OpenBSM Version History +OpenBSM 1.1p2 + +- Fix audit_event definitions of AUE_OPENAT_RWT and AUE_OPENAT_RWTC. +- Fix build on Linux. +- Fix printing of class masks in the audump tool. + OpenBSM 1.1p1 - Fixes to AUT_SOCKUNIX token parsing. @@ -458,4 +464,4 @@ to support reloading of kernel event table. - Allow comments in /etc/security configuration files. -$P4: //depot/projects/trustedbsd/openbsm/NEWS#42 $ +$P4: //depot/projects/trustedbsd/openbsm/NEWS#43 $ ==== //depot/projects/trustedbsd/openbsm/README#37 (text+ko) ==== @@ -1,4 +1,4 @@ -OpenBSM 1.1 +OpenBSM 1.1p2 Introduction @@ -64,4 +64,4 @@ http://www.TrustedBSD.org/ -$P4: //depot/projects/trustedbsd/openbsm/README#36 $ +$P4: //depot/projects/trustedbsd/openbsm/README#37 $ ==== //depot/projects/trustedbsd/openbsm/VERSION#26 (text+ko) ==== @@ -1,1 +1,1 @@ -OPENBSM_1_1p1 +OPENBSM_1_1p2 ==== //depot/projects/trustedbsd/openbsm/configure#55 (xtext) ==== @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac P4: //depot/projects/trustedbsd/openbsm/configure.ac#52 . +# From configure.ac P4: //depot/projects/trustedbsd/openbsm/configure.ac#53 . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.62 for OpenBSM 1.1p1. +# Generated by GNU Autoconf 2.62 for OpenBSM 1.1p2. # # Report bugs to . # @@ -751,8 +751,8 @@ # Identity of this package. PACKAGE_NAME='OpenBSM' PACKAGE_TARNAME='openbsm' -PACKAGE_VERSION='1.1p1' -PACKAGE_STRING='OpenBSM 1.1p1' +PACKAGE_VERSION='1.1p2' +PACKAGE_STRING='OpenBSM 1.1p2' PACKAGE_BUGREPORT='trustedbsd-audit@TrustesdBSD.org' ac_unique_file="bin/auditreduce/auditreduce.c" @@ -1492,7 +1492,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures OpenBSM 1.1p1 to adapt to many kinds of systems. +\`configure' configures OpenBSM 1.1p2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1562,7 +1562,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OpenBSM 1.1p1:";; + short | recursive ) echo "Configuration of OpenBSM 1.1p2:";; esac cat <<\_ACEOF @@ -1671,7 +1671,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OpenBSM configure 1.1p1 +OpenBSM configure 1.1p2 generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1685,7 +1685,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by OpenBSM $as_me 1.1p1, which was +It was created by OpenBSM $as_me 1.1p2, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ @@ -19662,7 +19662,7 @@ # Define the identity of the package. PACKAGE=OpenBSM - VERSION=1.1p1 + VERSION=1.1p2 cat >>confdefs.h <<_ACEOF @@ -24400,7 +24400,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by OpenBSM $as_me 1.1p1, which was +This file was extended by OpenBSM $as_me 1.1p2, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -24453,7 +24453,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -OpenBSM config.status 1.1p1 +OpenBSM config.status 1.1p2 configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" ==== //depot/projects/trustedbsd/openbsm/configure.ac#54 (text+ko) ==== @@ -2,8 +2,8 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT([OpenBSM], [1.1p1], [trustedbsd-audit@TrustesdBSD.org],[openbsm]) -AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#53 $]) +AC_INIT([OpenBSM], [1.1p2], [trustedbsd-audit@TrustesdBSD.org],[openbsm]) +AC_REVISION([$P4: //depot/projects/trustedbsd/openbsm/configure.ac#54 $]) AC_CONFIG_SRCDIR([bin/auditreduce/auditreduce.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config/config.h]) From owner-p4-projects@FreeBSD.ORG Sun Aug 2 00:13:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2EA231065670; Sun, 2 Aug 2009 00:13:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2CE6106566B for ; Sun, 2 Aug 2009 00:13:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CEC808FC14 for ; Sun, 2 Aug 2009 00:13:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n720DaNZ091051 for ; Sun, 2 Aug 2009 00:13:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n720DaTx091049 for perforce@freebsd.org; Sun, 2 Aug 2009 00:13:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 2 Aug 2009 00:13:36 GMT Message-Id: <200908020013.n720DaTx091049@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166910 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 00:13:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=166910 Change 166910 by rwatson@rwatson_fledge on 2009/08/02 00:13:34 Ship an OpenBSM 1.1p2 release with further minor fixes for FreeBSD 8.0. Affected files ... .. //depot/projects/trustedbsd/www/downloads/openbsm-1.1-p2.tgz#1 add .. //depot/projects/trustedbsd/www/news.page#24 edit .. //depot/projects/trustedbsd/www/openbsm.page#40 edit Differences ... ==== //depot/projects/trustedbsd/www/news.page#24 (text+ko) ==== @@ -37,7 +37,7 @@ - $P4: //depot/projects/trustedbsd/www/news.page#23 $ + $P4: //depot/projects/trustedbsd/www/news.page#24 $ @@ -50,6 +50,14 @@
+
August 2, 2009 OpenBSM 1.1p2 released
+

OpenBSM 1.1p2 has been released; this is a production release + of OpenBSM, and consists primarily of minor improvements since + OpenBSM 1.1p1, including bug fixes for the openat(2) system call, + build on Linux, and printing of class masks in the audump tool. + See the OpenBSM web page for + more information.

+
July 17, 2009 OpenBSM 1.1p1 released

OpenBSM 1.1p1 has been released; this is a production release of OpenBSM, and consists primarily of minor improvements since ==== //depot/projects/trustedbsd/www/openbsm.page#40 (text+ko) ==== @@ -30,7 +30,7 @@ - $P4: //depot/projects/trustedbsd/www/openbsm.page#39 $ + $P4: //depot/projects/trustedbsd/www/openbsm.page#40 $ @@ -125,7 +125,7 @@ snapshot and release tarballs, vendor integrated source code (such as the FreeBSD source tree), cvsup, and the TrustedBSD Perforce repository. - The current release is OpenBSM 1.1p1, released on 17 July, 2009. + The current release is OpenBSM 1.1p2, released on 2 August, 2009. Please see the file README present in the OpenBSM distribution for build and installation instructions.

@@ -138,12 +138,25 @@ Description + 1.1p2 + openbsm-1.1-p2.tgz + 560K + 2009-08-02 + +

OpenBSM 1.1p2 is a minor patch release of the OpenBSM code base. + There are no significant changes from OpenBSM 1.1p1, but there + are several bug fixes relating to /etc/security/audit_event + entries for the openat(2) system call, build fixes for Linux, and + the printing of class masks by the audump tool.

+ + + 1.1p1 openbsm-1.1-p1.tgz 560K 2009-07-17 -

OpenBSM 1.1p is a minor patch release of the OpenBSM code base. +

OpenBSM 1.1p1 is a minor patch release of the OpenBSM code base. There are no significant changes from OpenBSM 1.1, but there are a number of bug fixes in token parsing and generation, and tolerance for whitespace variation in OpenBSM configuration From owner-p4-projects@FreeBSD.ORG Sun Aug 2 10:09:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 591F31065673; Sun, 2 Aug 2009 10:09:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19EFF106566C for ; Sun, 2 Aug 2009 10:09:28 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E1BA28FC0C for ; Sun, 2 Aug 2009 10:09:27 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72A9ReN076865 for ; Sun, 2 Aug 2009 10:09:27 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72A9RD8076863 for perforce@freebsd.org; Sun, 2 Aug 2009 10:09:27 GMT (envelope-from zec@fer.hr) Date: Sun, 2 Aug 2009 10:09:27 GMT Message-Id: <200908021009.n72A9RD8076863@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 166913 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 10:09:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=166913 Change 166913 by zec@zec_tpx32 on 2009/08/02 10:09:07 Unbreak build. Affected files ... .. //depot/projects/vimage-commit2/src/sys/kern/vfs_export.c#14 edit .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_dg.c#8 edit .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_vc.c#9 edit .. //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#4 edit .. //depot/projects/vimage-commit2/src/sys/rpc/svc_dg.c#6 edit .. //depot/projects/vimage-commit2/src/sys/rpc/svc_generic.c#5 edit .. //depot/projects/vimage-commit2/src/sys/rpc/svc_vc.c#10 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/kern/vfs_export.c#14 (text+ko) ==== @@ -51,10 +51,10 @@ #include #include #include -#include #include #include +#include static MALLOC_DEFINE(M_NETADDR, "export_host", "Export host address structure"); ==== //depot/projects/vimage-commit2/src/sys/rpc/clnt_dg.c#8 (text+ko) ==== @@ -56,12 +56,12 @@ #include #include #include -#include + +#include #include #include - #ifdef _FREEFALL_CONFIG /* * Disable RPC exponential back-off for FreeBSD.org systems. ==== //depot/projects/vimage-commit2/src/sys/rpc/clnt_vc.c#9 (text+ko) ==== @@ -70,7 +70,8 @@ #include #include #include -#include + +#include #include ==== //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#4 (text+ko) ==== @@ -55,7 +55,8 @@ #include #include #include -#include + +#include #include #include ==== //depot/projects/vimage-commit2/src/sys/rpc/svc_dg.c#6 (text+ko) ==== @@ -56,7 +56,8 @@ #include #include #include -#include + +#include #include ==== //depot/projects/vimage-commit2/src/sys/rpc/svc_generic.c#5 (text+ko) ==== @@ -60,7 +60,8 @@ #include #include #include -#include + +#include #include #include ==== //depot/projects/vimage-commit2/src/sys/rpc/svc_vc.c#10 (text+ko) ==== @@ -58,7 +58,8 @@ #include #include #include -#include + +#include #include From owner-p4-projects@FreeBSD.ORG Sun Aug 2 10:16:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1724F1065673; Sun, 2 Aug 2009 10:16:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CAE6C1065670 for ; Sun, 2 Aug 2009 10:16:35 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7D56D8FC0A for ; Sun, 2 Aug 2009 10:16:35 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72AGZjJ077409 for ; Sun, 2 Aug 2009 10:16:35 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72AGZW0077407 for perforce@freebsd.org; Sun, 2 Aug 2009 10:16:35 GMT (envelope-from trasz@freebsd.org) Date: Sun, 2 Aug 2009 10:16:35 GMT Message-Id: <200908021016.n72AGZW0077407@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166914 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 10:16:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=166914 Change 166914 by trasz@trasz_anger on 2009/08/02 10:16:29 Rework rule storage. It's not fully functional yet, but hey, at least it doesn't panic :-) Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#6 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#8 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#34 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#2 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#14 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#25 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/loginclass.h#1 add .. //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#10 edit .. //depot/projects/soc2009/trasz_limits/usr.bin/id/id.c#4 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#6 (text+ko) ==== @@ -1,5 +1,8 @@ + - Rework rule storage. + - Make sure we have all the gidinfos we need in the 'struct ucred'. + - Fix up (add/remove resource counters) when: - Adding a group to a process, - Removing a group from a process, ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#8 (text+ko) ==== @@ -56,6 +56,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#34 (text+ko) ==== @@ -31,9 +31,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -58,11 +60,6 @@ TUNABLE_INT("kern.hrl_group_accounting", &hrl_group_accounting); SYSCTL_INT(_kern, OID_AUTO, hrl_group_accounting, CTLFLAG_RD, &hrl_group_accounting, 0, ""); -struct hrl_node { - struct hrl_rule hn_rule; - RB_ENTRY(hrl_node) hn_next; -}; - struct dict { const char *d_name; int d_value; @@ -104,57 +101,14 @@ { "sigxfsz", HRL_ACTION_SIGXFSZ }, { NULL, -1 }}; -/* - * XXX: This is silly. Some better way of organising these - * will be required. - */ -static int -hn_compare(const struct hrl_node *a, const struct hrl_node *b) -{ - if (a->hn_rule.hr_subject < b->hn_rule.hr_subject) - return (-1); - else if (a->hn_rule.hr_subject > b->hn_rule.hr_subject) - return (1); - - if (a->hn_rule.hr_subject_id < b->hn_rule.hr_subject_id) - return (-1); - else if (a->hn_rule.hr_subject_id > b->hn_rule.hr_subject_id) - return (1); - - if (a->hn_rule.hr_per < b->hn_rule.hr_per) - return (-1); - else if (a->hn_rule.hr_per > b->hn_rule.hr_per) - return (1); - - if (a->hn_rule.hr_resource < b->hn_rule.hr_resource) - return (-1); - else if (a->hn_rule.hr_resource > b->hn_rule.hr_resource) - return (1); - - if (a->hn_rule.hr_action < b->hn_rule.hr_action) - return (-1); - else if (a->hn_rule.hr_action > b->hn_rule.hr_action) - return (1); - - return (0); -} - -/* - * hrl_lock must be held during all operations on hrls. - */ -RB_HEAD(hrl_tree, hrl_node) hrls = RB_INITIALIZER(hrls); -RB_GENERATE_STATIC(hrl_tree, hrl_node, hn_next, hn_compare); - static const char * hrl_resource_name(int resource); static void hrl_init(void); SYSINIT(hrl, SI_SUB_CPU, SI_ORDER_FIRST, hrl_init, NULL); -static uma_zone_t hrl_node_zone; static uma_zone_t hrl_limit_zone; +static uma_zone_t hrl_rule_zone; static struct mtx hrl_lock; -static void hrl_rule_remove_limits(struct hrl_rule *rule); -static void hrl_rule_add_limits(struct hrl_rule *rule); static void hrl_compute_available(struct proc *p, int64_t (*availablep)[], struct hrl_rule *(*rulesp)[]); static struct sbuf *hrl_rules_to_sbuf(struct hrl_rule *usage, int nrules); @@ -184,10 +138,13 @@ cred = p->p_ucred; mtx_assert(&hrl_lock, MA_OWNED); for (resource = 0; resource < HRL_RESOURCE_MAX; resource++) - KASSERT(p->p_usage.hu_resources[resource] >= 0, ("resource usage propagation meltdown")); - KASSERT(cred->cr_ruidinfo->ui_usage.hu_resources[resource] >= 0, ("resource usage propagation meltdown")); + KASSERT(p->p_usage.hu_resources[resource] >= 0, + ("resource usage propagation meltdown")); + KASSERT(cred->cr_ruidinfo->ui_usage.hu_resources[resource] >= 0, + ("resource usage propagation meltdown")); for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) - KASSERT(pr->pr_usage.hu_resources[resource] >= 0, ("resource usage propagation meltdown")); + KASSERT(pr->pr_usage.hu_resources[resource] >= 0, + ("resource usage propagation meltdown")); if (hrl_group_accounting) { for (i = 0; i < cred->cr_ngroups; i++) { for (resource = 0; resource < HRL_RESOURCE_MAX; resource++) @@ -269,27 +226,6 @@ panic("hrl_resource_name: unknown resource"); } -void -hrl_proc_fork(struct proc *parent, struct proc *child) -{ - int i; - - mtx_lock(&hrl_lock); - /* - * Inherit resources from the parent. - */ - for (i = 0; i < HRL_RESOURCE_MAX; i++) { - if (parent->p_usage.hu_resources[i] != 0 && hrl_resource_inheritable(i)) - hrl_allocated_proc(child, i, parent->p_usage.hu_resources[i]); - } - - /* - * Assign rules appropriate for the process. - */ - LIST_INIT(&child->p_limits); - mtx_unlock(&hrl_lock); -} - static void hrl_deferred_psignal(struct proc *p, int signum) { @@ -368,6 +304,46 @@ } /* + * Go through all the rules applicable to the process, fill first array + * with amount of resource left before hitting next limit, and the second + * with pointers to the limit to be hit. + */ +/* + * XXX: We should sort the rules somewhat, so that 'log' rules are enforced + * before 'deny', if both are for the same subject, resource and amount. + */ +static void +hrl_compute_available(struct proc *p, int64_t (*availablep)[], + struct hrl_rule *(*rulesp)[]) +{ + int i, resource; + int64_t available; + struct hrl_limit *limit; + + mtx_assert(&hrl_lock, MA_OWNED); + + for (i = 0; i < HRL_RESOURCE_MAX; i++) { + (*availablep)[i] = INT64_MAX; + (*rulesp)[i] = NULL; + } + + mtx_assert(&hrl_lock, MA_OWNED); + + LIST_FOREACH(limit, &p->p_limits, hl_next) { + resource = limit->hl_rule->hr_resource; + available = limit->hl_rule->hr_amount - + p->p_usage.hu_resources[resource]; + /* Skip limits that have been already exceeded. */ + if (available < 0) + continue; + if (available < (*availablep)[resource]) { + (*availablep)[resource] = available; + (*rulesp)[resource] = limit->hl_rule; + } + } +} + +/* * Increase allocation of 'resource' by 'amount' for process 'p'. * Return 0 if it's below limits, or errno, if it's not. */ @@ -563,53 +539,6 @@ } void -hrl_adjust(int subject, id_t subject_id, int per, int resource, int action, int64_t amount) -{ - struct hrl_node searched, *node, *existing; - - searched.hn_rule.hr_subject = subject; - searched.hn_rule.hr_subject_id = subject_id; - searched.hn_rule.hr_per = per; - searched.hn_rule.hr_resource = resource; - searched.hn_rule.hr_action = action; - - /* - * Removing a limit. - */ - if (amount == -1) { - mtx_lock(&hrl_lock); - node = RB_FIND(hrl_tree, &hrls, &searched); - if (node != NULL) { - node = RB_REMOVE(hrl_tree, &hrls, node); - KASSERT(node != NULL, ("hrl_adjust: node removal failed")); - } - mtx_unlock(&hrl_lock); - if (node != NULL) { - hrl_rule_remove_limits(&node->hn_rule); - uma_zfree(hrl_node_zone, node); - } - return; - } - - /* - * Adding a new limit or changing existing one. - */ - node = uma_zalloc(hrl_node_zone, M_WAITOK); - *node = searched; - mtx_lock(&hrl_lock); - existing = RB_INSERT(hrl_tree, &hrls, node); - if (existing != NULL) - existing->hn_rule.hr_amount = amount; - else - node->hn_rule.hr_amount = amount; - mtx_unlock(&hrl_lock); - if (existing != NULL) - uma_zfree(hrl_node_zone, node); - else - hrl_rule_add_limits(&node->hn_rule); -} - -void hrl_usage_add(struct hrl_usage *dest, const struct hrl_usage *src) { int i; @@ -651,12 +580,13 @@ static int hrl_rule_matches(const struct hrl_rule *rule, const struct hrl_rule *filter) { + if (filter->hr_subject != HRL_SUBJECT_UNDEFINED) { if (rule->hr_subject != filter->hr_subject) return (0); } - if (filter->hr_subject_id >= 0) { + if (filter->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED) { if (rule->hr_subject_id != filter->hr_subject_id) return (0); } @@ -733,120 +663,118 @@ } /* - * Add a new limit for a rule, if it's not already there. + * Add a new limit for a rule, increasing refcount for the rule. */ static void -hrl_limit_add_if_needed(struct hrl_limits_head *limits_head, struct hrl_rule *rule) +hrl_limit_add(struct hrl_limits_head *limits_head, struct hrl_rule *rule) +{ + struct hrl_limit *limit; + + hrl_rule_acquire(rule); + limit = uma_zalloc(hrl_limit_zone, M_WAITOK); + limit->hl_rule = rule; + + mtx_lock(&hrl_lock); + LIST_INSERT_HEAD(limits_head, limit, hl_next); + mtx_unlock(&hrl_lock); +} + +#if 0 +static int +hrl_limit_remove(struct hrl_limits_head *limits_head, struct hrl_rule *rule) { - struct hrl_limit *limit, *new_limit; + struct hrl_limit *limit, *limittmp; - new_limit = uma_zalloc(hrl_limit_zone, M_WAITOK); mtx_lock(&hrl_lock); - LIST_FOREACH(limit, limits_head, hl_next) { + LIST_FOREACH_SAFE(limit, limits_head, hl_next, limittmp) { if (limit->hl_rule == rule) { + LIST_REMOVE(limit, hl_next); mtx_unlock(&hrl_lock); - uma_zfree(hrl_limit_zone, new_limit); - return; + uma_zfree(hrl_limit_zone, limit); + hrl_rule_release(rule); + return (1); } } - new_limit->hl_rule = rule; - LIST_INSERT_HEAD(limits_head, new_limit, hl_next); mtx_unlock(&hrl_lock); + return (0); } +#endif /* - * Remove a limit for a rule. + * Remove limits for a rules matching the filter and release + * the refcounts for the rules, possibly freeing them. Returns + * the number of limit structures removed. */ -static void -hrl_limit_remove(struct hrl_limits_head *limits_head, struct hrl_rule *rule) +static int +hrl_limit_remove_matching(struct hrl_limits_head *limits_head, + const struct hrl_rule *filter) { + int removed = 0; struct hrl_limit *limit, *limittmp; +again: mtx_lock(&hrl_lock); LIST_FOREACH_SAFE(limit, limits_head, hl_next, limittmp) { - if (limit->hl_rule == rule) { + if (hrl_rule_matches(limit->hl_rule, filter)) { LIST_REMOVE(limit, hl_next); mtx_unlock(&hrl_lock); + hrl_rule_release(limit->hl_rule); uma_zfree(hrl_limit_zone, limit); - return; + removed++; + goto again; } } mtx_unlock(&hrl_lock); + return (removed); } -/* - * Bind a rule to subjects to which it applies. - */ -static void -hrl_rule_add_limits(struct hrl_rule *rule) +struct hrl_rule * +hrl_rule_alloc(void) { - struct proc *p; - struct uidinfo *uip; - struct gidinfo *gip; - struct prison *pr; + struct hrl_rule *rule; - switch (rule->hr_subject) { - case HRL_SUBJECT_PROCESS: - /* - * The sx lock is to keep the process from going away. - */ - sx_slock(&proctree_lock); - p = pfind(rule->hr_subject_id); - if (p == NULL) { - sx_sunlock(&proctree_lock); - return; - } + rule = uma_zalloc(hrl_rule_zone, M_WAITOK); + refcount_init(&rule->hr_refcount, 1); + return (rule); +} - PROC_UNLOCK(p); - hrl_limit_add_if_needed(&p->p_limits, rule); - sx_sunlock(&proctree_lock); - return; +void +hrl_rule_acquire(struct hrl_rule *rule) +{ - case HRL_SUBJECT_USER: - uip = uifind_existing(rule->hr_subject_id); - if (uip == NULL) - return; - hrl_limit_add_if_needed(&uip->ui_limits, rule); - uifree(uip); - return; + KASSERT(rule->hr_refcount > 0, ("rule->hr_refcount > 0")); - case HRL_SUBJECT_GROUP: - gip = gifind_existing(rule->hr_subject_id); - if (gip == NULL) - return; - hrl_limit_add_if_needed(&gip->gi_limits, rule); - gifree(gip); - return; + refcount_acquire(&rule->hr_refcount); +} - case HRL_SUBJECT_LOGINCLASS: - panic("hrl_rule_add_limits: HRL_SUBJECT_LOGINCLASS unimplemented"); - return; +void +hrl_rule_release(struct hrl_rule *rule) +{ - case HRL_SUBJECT_JAIL: - sx_xlock(&allprison_lock); - pr = prison_find(rule->hr_subject_id); - if (pr == NULL) { - sx_xunlock(&allprison_lock); - return; - } - hrl_limit_add_if_needed(&pr->pr_limits, rule); - prison_free(pr); - sx_xunlock(&allprison_lock); - return; + KASSERT(rule->hr_refcount > 0, ("rule->hr_refcount > 0")); - default: - panic("hrl_rule_add_limits: unknown subject %d", rule->hr_subject); - } + if (refcount_release(&rule->hr_refcount)) + uma_zfree(hrl_rule_zone, rule); } -static void -hrl_rule_remove_limits(struct hrl_rule *rule) +/* + * Link a rule with subjects to which it applies. + */ +int +hrl_rule_add(struct hrl_rule *rule) { struct proc *p; + struct ucred *cred; struct uidinfo *uip; struct gidinfo *gip; struct prison *pr; + struct loginclass *lc; + /* + * Make sure there are no duplicated rules. + */ + hrl_rule_remove(rule); + switch (rule->hr_subject) { case HRL_SUBJECT_PROCESS: /* @@ -856,83 +784,142 @@ p = pfind(rule->hr_subject_id); if (p == NULL) { sx_sunlock(&proctree_lock); - return; + return (ESRCH); } PROC_UNLOCK(p); - hrl_limit_remove(&p->p_limits, rule); + hrl_limit_add(&p->p_limits, rule); sx_sunlock(&proctree_lock); - return; + /* + * In case of per-process rule, we don't have anything more + * to do. + */ + return (0); case HRL_SUBJECT_USER: - uip = uifind_existing(rule->hr_subject_id); - if (uip == NULL) - return; - hrl_limit_remove(&uip->ui_limits, rule); - uifree(uip); - return; + uip = uifind(rule->hr_subject_id); + KASSERT(uip == NULL, ("hrl_rule_add: uifind failed")); + hrl_limit_add(&uip->ui_limits, rule); + /* + * Don't call uifree(2); we don't want the uidinfo + * to go away, because the rule should stay there even + * if there are no processes with that uid. The same + * applies to the cases below. + */ + break; case HRL_SUBJECT_GROUP: gip = gifind_existing(rule->hr_subject_id); - if (gip == NULL) - return; - hrl_limit_remove(&gip->gi_limits, rule); - gifree(gip); - return; + KASSERT(gip == NULL, ("hrl_rule_add: gifind failed")); + hrl_limit_add(&gip->gi_limits, rule); + break; case HRL_SUBJECT_LOGINCLASS: - panic("hrl_rule_remove: HRL_SUBJECT_LOGINCLASS unimplemented"); - return; + KASSERT(rule->hr_subject_id > 0, ("rule->hr_subject_id > 0")); + lc = (struct loginclass *)(long)rule->hr_subject_id; + hrl_limit_add(&lc->lc_limits, rule); + break; case HRL_SUBJECT_JAIL: sx_xlock(&allprison_lock); pr = prison_find(rule->hr_subject_id); if (pr == NULL) { sx_xunlock(&allprison_lock); - return; + return (ESRCH); } - hrl_limit_remove(&pr->pr_limits, rule); - prison_free(pr); + hrl_limit_add(&pr->pr_limits, rule); sx_xunlock(&allprison_lock); - return; + break; default: - panic("hrl_rule_remove: unknown subject %d", rule->hr_subject); + panic("hrl_rule_add_limits: unknown subject %d", + rule->hr_subject); + } + + /* + * Now go through all the processes and add the new rule to the ones + * it applies to. + */ + sx_slock(&proctree_lock); + FOREACH_PROC_IN_SYSTEM(p) { + cred = p->p_ucred; + switch (rule->hr_subject) { + case HRL_SUBJECT_USER: + if (cred->cr_uid == rule->hr_subject_id || + cred->cr_ruid == rule->hr_subject_id) + break; + continue; + case HRL_SUBJECT_GROUP: + if (groupmember(rule->hr_subject_id, cred)) + break; + continue; + case HRL_SUBJECT_LOGINCLASS: + lc = (struct loginclass *)(long)rule->hr_subject_id; /* XXX: This line is here to remove cc warning; investigate. */ + if (p->p_loginclass == lc) + break; + continue; + case HRL_SUBJECT_JAIL: + for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) + if (pr->pr_id == rule->hr_subject_id) + break; + continue; + default: + panic("hrl_rule_add_limits: unknown subject %d", + rule->hr_subject); + } + + hrl_limit_add(&p->p_limits, rule); } + sx_sunlock(&proctree_lock); + + return (0); } /* - * Add a rule to the ruleset or change the 'hr_amount' of existing - * rule. + * Remove all rules that match the filter. */ -static int -hrl_rule_add(struct hrl_rule *rule) +int +hrl_rule_remove(const struct hrl_rule *filter) { - struct hrl_node *node, *existing; + int error, found = 0; + struct proc *p; + + if (filter->hr_subject == HRL_SUBJECT_PROCESS && + filter->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED) { + sx_slock(&proctree_lock); + p = pfind(filter->hr_subject_id); + if (p == NULL) + return (ESRCH); + PROC_UNLOCK(p); + error = hrl_limit_remove_matching(&p->p_limits, filter); + sx_sunlock(&proctree_lock); + return (error); + } - node = uma_zalloc(hrl_node_zone, M_WAITOK); - node->hn_rule = *rule; + /* + * XXX: per-process, per-group, per-jail and per-class limits. + */ - mtx_lock(&hrl_lock); - existing = RB_INSERT(hrl_tree, &hrls, node); - if (existing != NULL) - existing->hn_rule.hr_amount = rule->hr_amount; - mtx_unlock(&hrl_lock); + sx_slock(&proctree_lock); + FOREACH_PROC_IN_SYSTEM(p) { + error = hrl_limit_remove_matching(&p->p_limits, filter); + if (error == 0) + found = 1; + } + sx_sunlock(&proctree_lock); - if (existing != NULL) - uma_zfree(hrl_node_zone, node); + if (found) + return (0); else - hrl_rule_add_limits(rule); - - return (0); + return (ESRCH); } - static int hrl_rule_parse(struct hrl_rule *rule, char *rulestr) { int error; - char *subjectstr, *subject_idstr, *resourcestr, *actionstr, *amountstr, *perstr; + char *subjectstr, *subject_idstr, *resourcestr, *actionstr, + *amountstr, *perstr; subjectstr = strsep(&rulestr, ":"); subject_idstr = strsep(&rulestr, ":"); @@ -950,7 +937,7 @@ } if (subject_idstr == NULL || subject_idstr[0] == '\0') - rule->hr_subject_id = -1; + rule->hr_subject_id = HRL_SUBJECT_ID_UNDEFINED; else { error = str2id(subject_idstr, &rule->hr_subject_id); if (error) @@ -960,7 +947,8 @@ if (resourcestr == NULL || resourcestr[0] == '\0') rule->hr_resource = HRL_RESOURCE_UNDEFINED; else { - error = str2value(resourcestr, &rule->hr_resource, resourcenames); + error = str2value(resourcestr, &rule->hr_resource, + resourcenames); if (error) return (EINVAL); } @@ -989,7 +977,8 @@ return (EINVAL); } - if (rule->hr_subject_id > 0 && rule->hr_subject == HRL_SUBJECT_UNDEFINED) + if (rule->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED && + rule->hr_subject == HRL_SUBJECT_UNDEFINED) return (EINVAL); return (0); @@ -1021,105 +1010,6 @@ } /* - * XXX: We should sort the rules somewhat, so that 'log' rules are enforced - * before 'deny', if both are for the same subject, resource and amount. - */ -static void -_hrl_compute_available(struct hrl_limits_head *limits_head, - struct hrl_usage *usage, int64_t (*availablep)[], - struct hrl_rule *(*rulesp)[]) -{ - int resource; - int64_t available; - struct hrl_limit *limit; - - mtx_assert(&hrl_lock, MA_OWNED); - - LIST_FOREACH(limit, limits_head, hl_next) { - resource = limit->hl_rule->hr_resource; - available = limit->hl_rule->hr_amount - - usage->hu_resources[resource]; - /* Skip limits that have been already exceeded. */ - if (available < 0) - continue; - if (available < (*availablep)[resource]) { - (*availablep)[resource] = available; - (*rulesp)[resource] = limit->hl_rule; - } - } -} - -/* - * Go through all the rules applicable to the process, fill first array - * with amount of resource left before hitting next limit, and the second - * with pointers to the limit to be hit. - */ -static void -hrl_compute_available(struct proc *p, int64_t (*availablep)[], - struct hrl_rule *(*rulesp)[]) -{ - int i; - struct ucred *cred; - struct uidinfo *ui, *rui; - struct prison *pr; - - mtx_assert(&hrl_lock, MA_OWNED); - - for (i = 0; i < HRL_RESOURCE_MAX; i++) { - (*availablep)[i] = INT64_MAX; - (*rulesp)[i] = NULL; - } - - cred = p->p_ucred; - ui = cred->cr_uidinfo; - rui = cred->cr_ruidinfo; - pr = cred->cr_prison; - _hrl_compute_available(&p->p_limits, &p->p_usage, availablep, rulesp); - _hrl_compute_available(&ui->ui_limits, &ui->ui_usage, availablep, rulesp); - _hrl_compute_available(&rui->ui_limits, &rui->ui_usage, availablep, - rulesp); - if (hrl_group_accounting) { - /* - * XXX: Groups. - */ - } - _hrl_compute_available(&pr->pr_limits, &pr->pr_usage, availablep, - rulesp); -} - -/* - * Remove a rule from the ruleset. - */ -static int -hrl_rule_remove(struct hrl_rule *rule) -{ - int found = 1; - struct hrl_node *node, *next; - -restart: - mtx_lock(&hrl_lock); - for (node = RB_MIN(hrl_tree, &hrls); node != NULL; node = next) { - next = RB_NEXT(hrl_tree, &hrls, node); - if (!hrl_rule_matches(&node->hn_rule, rule)) - continue; - found = 1; - node = RB_REMOVE(hrl_tree, &hrls, node); - KASSERT(node != NULL, ("hrl_rule_remove: node removal failed")); - - mtx_unlock(&hrl_lock); - hrl_rule_remove_limits(&node->hn_rule); - uma_zfree(hrl_node_zone, node); - goto restart; - } - mtx_unlock(&hrl_lock); - - if (found == 0) - return (ENOENT); - - return (0); -} - -/* * Routine used by HRL syscalls to read in input string. */ static int @@ -1159,7 +1049,8 @@ sbuf_delete(outputsbuf); return (ERANGE); } - error = copyout(sbuf_data(outputsbuf), outbufp, sbuf_len(outputsbuf) + 1); + error = copyout(sbuf_data(outputsbuf), outbufp, + sbuf_len(outputsbuf) + 1); sbuf_delete(outputsbuf); return (error); } @@ -1280,91 +1171,141 @@ return (EINVAL); } + if (error) + return (error); + error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); return (error); } -static int -hrl_get_rules_2(struct thread *td, char *inputstr, struct sbuf **outputsbuf) +int +hrl_get_rules(struct thread *td, struct hrl_get_rules_args *uap) { - int error = 0, copied = 0; - struct hrl_rule *buf, filter; - struct hrl_node *node; + int error, copied, maxcopied = HRL_MAX_RULES; + char *inputstr; + struct sbuf *outputsbuf; + struct hrl_rule filter, *buf; + struct hrl_limit *limit; + struct proc *p; + + error = hrl_read_inbuf(&inputstr, uap->inbufp, uap->inbuflen); + if (error) + return (error); error = hrl_rule_parse(&filter, inputstr); + free(inputstr, M_HRL); if (error) return (error); buf = malloc(HRL_MAX_RULES * sizeof(struct hrl_rule), M_HRL, M_WAITOK); - /* - * Copy the limits to the temporary buffer. We cannot - * copy it directly to the userland because of the mutex. - */ - mtx_lock(&hrl_lock); - RB_FOREACH(node, hrl_tree, &hrls) { - /* - * XXX: Do not show everything to the client; just the - * nodes that affect him. - */ - if (copied >= HRL_MAX_RULES) { - /* - * XXX: Hey, what to do now? - */ - error = EDOOFUS; - break; +again: + buf = malloc(maxcopied * sizeof(*buf), M_HRL, M_WAITOK); + copied = 0; + sx_slock(&proctree_lock); + FOREACH_PROC_IN_SYSTEM(p) { + mtx_lock(&hrl_lock); + LIST_FOREACH(limit, &p->p_limits, hl_next) { + if (copied >= HRL_MAX_RULES) { + mtx_unlock(&hrl_lock); + sx_sunlock(&proctree_lock); + maxcopied *= 4; + free(buf, M_HRL); + goto again; + } + if (!hrl_rule_matches(limit->hl_rule, &filter)) + continue; + *(buf + copied) = *limit->hl_rule; + copied++; } - - if (!hrl_rule_matches(&node->hn_rule, &filter)) - continue; - - *(buf + copied) = node->hn_rule; - copied++; + mtx_unlock(&hrl_lock); } - mtx_unlock(&hrl_lock); + sx_sunlock(&proctree_lock); if (error) goto out; - *outputsbuf = hrl_rules_to_sbuf(buf, copied); + /* + * XXX: Iterate over the rest (other than per-process) of the rules. + */ + + outputsbuf = hrl_rules_to_sbuf(buf, copied); + + error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); out: free(buf, M_HRL); - return (error); } - int -hrl_get_rules(struct thread *td, struct hrl_get_rules_args *uap) +hrl_get_limits(struct thread *td, struct hrl_get_limits_args *uap) { - int error; + int error, copied, maxcopied = HRL_MAX_RULES; char *inputstr; struct sbuf *outputsbuf; + struct hrl_rule filter, *buf; + struct hrl_limit *limit; + struct proc *p; error = hrl_read_inbuf(&inputstr, uap->inbufp, uap->inbuflen); if (error) return (error); - error = hrl_get_rules_2(td, inputstr, &outputsbuf); + error = hrl_rule_parse(&filter, inputstr); free(inputstr, M_HRL); if (error) return (error); + if (filter.hr_subject == HRL_SUBJECT_UNDEFINED) + return (EINVAL); + + if (filter.hr_subject_id == HRL_SUBJECT_ID_UNDEFINED) + return (EINVAL); + + if (filter.hr_subject != HRL_SUBJECT_PROCESS) + return (EOPNOTSUPP); + +again: + buf = malloc(maxcopied * sizeof(*buf), M_HRL, M_WAITOK); + copied = 0; + + p = pfind(filter.hr_subject_id); + if (p == NULL) { + error = ESRCH; + goto out; + } + mtx_lock(&hrl_lock); + LIST_FOREACH(limit, &p->p_limits, hl_next) { + if (copied >= HRL_MAX_RULES) { + mtx_unlock(&hrl_lock); + PROC_UNLOCK(p); + maxcopied *= 4; + free(buf, M_HRL); + goto again; + } + if (!hrl_rule_matches(limit->hl_rule, &filter)) + continue; + *(buf + copied) = *limit->hl_rule; + copied++; + } + mtx_unlock(&hrl_lock); + PROC_UNLOCK(p); + if (error) + goto out; + + outputsbuf = hrl_rules_to_sbuf(buf, copied); + error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); +out: + free(buf, M_HRL); return (error); } int -hrl_get_limits(struct thread *td, struct hrl_get_limits_args *uap) -{ - return (EDOOFUS); -} - -int hrl_add_rule(struct thread *td, struct hrl_add_rule_args *uap) { int error; - struct hrl_rule rule; + struct hrl_rule *rule; char *inputstr; error = priv_check(td, PRIV_HRL_SET); @@ -1375,20 +1316,36 @@ if (error) return (error); - error = hrl_rule_parse(&rule, inputstr); + rule = hrl_rule_alloc(); + + error = hrl_rule_parse(rule, inputstr); free(inputstr, M_HRL); if (error) - return (error); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 2 10:25:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 258871065672; Sun, 2 Aug 2009 10:25:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D9CDC106564A for ; Sun, 2 Aug 2009 10:25:45 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id ADE788FC0C for ; Sun, 2 Aug 2009 10:25:45 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72APjgY078075 for ; Sun, 2 Aug 2009 10:25:45 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72APjZm078073 for perforce@freebsd.org; Sun, 2 Aug 2009 10:25:45 GMT (envelope-from zec@fer.hr) Date: Sun, 2 Aug 2009 10:25:45 GMT Message-Id: <200908021025.n72APjZm078073@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 166916 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 10:25:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=166916 Change 166916 by zec@zec_tpx32 on 2009/08/02 10:24:55 Remove a file that no longer exist in vendor branch. Affected files ... .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_socket.c#11 delete Differences ... From owner-p4-projects@FreeBSD.ORG Sun Aug 2 10:33:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 098C71065673; Sun, 2 Aug 2009 10:33:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BCA5B106566C for ; Sun, 2 Aug 2009 10:33:54 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AB0218FC0C for ; Sun, 2 Aug 2009 10:33:54 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72AXsf4078682 for ; Sun, 2 Aug 2009 10:33:54 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72AXsRb078680 for perforce@freebsd.org; Sun, 2 Aug 2009 10:33:54 GMT (envelope-from zec@fer.hr) Date: Sun, 2 Aug 2009 10:33:54 GMT Message-Id: <200908021033.n72AXsRb078680@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 166917 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 10:33:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=166917 Change 166917 by zec@zec_tpx32 on 2009/08/02 10:33:40 Reduce diff against head. Affected files ... .. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_srvkrpc.c#14 edit .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_dg.c#9 edit .. //depot/projects/vimage-commit2/src/sys/rpc/svc_generic.c#6 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_srvkrpc.c#14 (text+ko) ==== @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/vimage-commit2/src/sys/rpc/clnt_dg.c#9 (text+ko) ==== @@ -62,6 +62,7 @@ #include #include + #ifdef _FREEFALL_CONFIG /* * Disable RPC exponential back-off for FreeBSD.org systems. ==== //depot/projects/vimage-commit2/src/sys/rpc/svc_generic.c#6 (text+ko) ==== @@ -48,7 +48,6 @@ #include "opt_inet6.h" #include -#include #include #include #include From owner-p4-projects@FreeBSD.ORG Sun Aug 2 11:10:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5C11A106568C; Sun, 2 Aug 2009 11:10:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19CD01065677 for ; Sun, 2 Aug 2009 11:10:35 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E13038FC08 for ; Sun, 2 Aug 2009 11:10:34 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72BAY4a082359 for ; Sun, 2 Aug 2009 11:10:34 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72BAYlH082357 for perforce@freebsd.org; Sun, 2 Aug 2009 11:10:34 GMT (envelope-from trasz@freebsd.org) Date: Sun, 2 Aug 2009 11:10:34 GMT Message-Id: <200908021110.n72BAYlH082357@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166919 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 11:10:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=166919 Change 166919 by trasz@trasz_anger on 2009/08/02 11:09:55 Fix rule inheritance. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#35 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#15 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#26 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#35 (text+ko) ==== @@ -738,6 +738,22 @@ return (rule); } +struct hrl_rule * +hrl_rule_duplicate(const struct hrl_rule *rule) +{ + struct hrl_rule *copy; + + copy = hrl_rule_alloc(); + copy->hr_subject = rule->hr_subject; + copy->hr_subject_id = rule->hr_subject_id; + copy->hr_per = rule->hr_per; + copy->hr_resource = rule->hr_resource; + copy->hr_action = rule->hr_action; + copy->hr_amount = rule->hr_amount; + + return (copy); +} + void hrl_rule_acquire(struct hrl_rule *rule) { @@ -1384,6 +1400,7 @@ { int i; struct hrl_limit *limit; + struct hrl_rule *rule; PROC_LOCK(parent); PROC_LOCK(child); @@ -1399,8 +1416,17 @@ /* * XXX: What about locking the parent? */ - LIST_FOREACH(limit, &parent->p_limits, hl_next) - hrl_limit_add(&child->p_limits, limit->hl_rule); + LIST_FOREACH(limit, &parent->p_limits, hl_next) { + if (limit->hl_rule->hr_subject == HRL_SUBJECT_PROCESS) { + rule = hrl_rule_duplicate(limit->hl_rule); + KASSERT(rule->hr_subject_id == parent->p_pid, + ("rule->hr_subject_id == parent->p_pid")); + rule->hr_subject_id = child->p_pid; + hrl_limit_add(&child->p_limits, rule); + hrl_rule_release(rule); + } else + hrl_limit_add(&child->p_limits, limit->hl_rule); + } } /* ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#15 (text+ko) ==== @@ -716,13 +716,8 @@ rule->hr_amount = lim->rlim_cur; hrl_rule_add(rule); if (rule->hr_action != HRL_ACTION_DENY) { - rule2 = hrl_rule_alloc(); - rule2->hr_subject = rule->hr_subject; - rule2->hr_subject_id = rule->hr_subject_id; - rule2->hr_per = rule->hr_per; - rule2->hr_resource = rule->hr_resource; + rule2 = hrl_rule_duplicate(rule); rule2->hr_action = HRL_ACTION_DENY; - rule2->hr_amount = rule->hr_amount; hrl_rule_add(rule2); hrl_rule_release(rule2); } ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#26 (text+ko) ==== @@ -139,6 +139,7 @@ void hrl_proc_exiting(struct proc *p); struct hrl_rule *hrl_rule_alloc(void); +struct hrl_rule *hrl_rule_duplicate(const struct hrl_rule *rule); void hrl_rule_acquire(struct hrl_rule *rule); void hrl_rule_release(struct hrl_rule *rule); int hrl_rule_add(struct hrl_rule *rule); From owner-p4-projects@FreeBSD.ORG Sun Aug 2 11:56:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E2F0F1065672; Sun, 2 Aug 2009 11:56:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A29B1106566B for ; Sun, 2 Aug 2009 11:56:25 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7638C8FC12 for ; Sun, 2 Aug 2009 11:56:25 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72BuPEr085605 for ; Sun, 2 Aug 2009 11:56:25 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72BuPfM085603 for perforce@freebsd.org; Sun, 2 Aug 2009 11:56:25 GMT (envelope-from trasz@freebsd.org) Date: Sun, 2 Aug 2009 11:56:25 GMT Message-Id: <200908021156.n72BuPfM085603@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166922 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 11:56:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=166922 Change 166922 by trasz@trasz_anger on 2009/08/02 11:56:19 Fix adding new rules via setrlimit(2). Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#36 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#16 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#36 (text+ko) ==== @@ -734,7 +734,14 @@ struct hrl_rule *rule; rule = uma_zalloc(hrl_rule_zone, M_WAITOK); + rule->hr_subject = HRL_SUBJECT_UNDEFINED; + rule->hr_subject_id = HRL_SUBJECT_ID_UNDEFINED; + rule->hr_per = HRL_SUBJECT_UNDEFINED; + rule->hr_resource = HRL_RESOURCE_UNDEFINED; + rule->hr_action = HRL_ACTION_UNDEFINED; + rule->hr_amount = -1; refcount_init(&rule->hr_refcount, 1); + return (rule); } @@ -743,13 +750,14 @@ { struct hrl_rule *copy; - copy = hrl_rule_alloc(); + copy = uma_zalloc(hrl_rule_zone, M_WAITOK); copy->hr_subject = rule->hr_subject; copy->hr_subject_id = rule->hr_subject_id; copy->hr_per = rule->hr_per; copy->hr_resource = rule->hr_resource; copy->hr_action = rule->hr_action; copy->hr_amount = rule->hr_amount; + refcount_init(©->hr_refcount, 1); return (copy); } ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#16 (text+ko) ==== @@ -712,23 +712,32 @@ panic("hrl_handle_setrlimit: unknown limit %d", which); } + /* + * Remove a previous limit that might exist for the resource + * with a different hr_amount. + */ + hrl_rule_remove(rule); + + /* + * For rules with action different than "deny", we add another + * rule, "deny". + */ + if (rule->hr_action != HRL_ACTION_DENY) { + rule2 = hrl_rule_duplicate(rule); + rule2->hr_action = HRL_ACTION_DENY; + hrl_rule_remove(rule2); + + if (lim->rlim_cur != RLIM_INFINITY) { + rule2->hr_amount = lim->rlim_cur; + hrl_rule_add(rule2); + } + hrl_rule_release(rule2); + } + if (lim->rlim_cur != RLIM_INFINITY) { rule->hr_amount = lim->rlim_cur; hrl_rule_add(rule); - if (rule->hr_action != HRL_ACTION_DENY) { - rule2 = hrl_rule_duplicate(rule); - rule2->hr_action = HRL_ACTION_DENY; - hrl_rule_add(rule2); - hrl_rule_release(rule2); - } - } else { - hrl_rule_remove(rule); - if (rule->hr_action != HRL_ACTION_DENY) { - rule->hr_action = HRL_ACTION_DENY; - hrl_rule_remove(rule); - } } - hrl_rule_release(rule); } From owner-p4-projects@FreeBSD.ORG Sun Aug 2 12:12:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6EFF210656C2; Sun, 2 Aug 2009 12:12:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E7DA10656C7 for ; Sun, 2 Aug 2009 12:12:43 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1CAD08FC1B for ; Sun, 2 Aug 2009 12:12:43 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72CCgbq087725 for ; Sun, 2 Aug 2009 12:12:43 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72CCgxM087723 for perforce@freebsd.org; Sun, 2 Aug 2009 12:12:42 GMT (envelope-from trasz@freebsd.org) Date: Sun, 2 Aug 2009 12:12:42 GMT Message-Id: <200908021212.n72CCgxM087723@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166923 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 12:12:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=166923 Change 166923 by trasz@trasz_anger on 2009/08/02 12:12:15 Add some more error checking. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#37 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#17 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#37 (text+ko) ==== @@ -112,6 +112,7 @@ static void hrl_compute_available(struct proc *p, int64_t (*availablep)[], struct hrl_rule *(*rulesp)[]); static struct sbuf *hrl_rules_to_sbuf(struct hrl_rule *usage, int nrules); +static int hrl_rule_fully_specified(const struct hrl_rule *rule); MALLOC_DEFINE(M_HRL, "hrl", "Hierarchical Resource Limits"); @@ -670,6 +671,8 @@ { struct hrl_limit *limit; + KASSERT(hrl_rule_fully_specified(rule), ("rule not fully specified")); + hrl_rule_acquire(rule); limit = uma_zalloc(hrl_limit_zone, M_WAITOK); limit->hl_rule = rule; @@ -781,6 +784,26 @@ uma_zfree(hrl_rule_zone, rule); } +static int +hrl_rule_fully_specified(const struct hrl_rule *rule) +{ + + if (rule->hr_subject == HRL_SUBJECT_UNDEFINED) + return (0); + if (rule->hr_subject_id == HRL_SUBJECT_ID_UNDEFINED) + return (0); + if (rule->hr_resource == HRL_RESOURCE_UNDEFINED) + return (0); + if (rule->hr_action == HRL_ACTION_UNDEFINED) + return (0); + if (rule->hr_amount < 0) + return (0); + if (rule->hr_per == HRL_SUBJECT_UNDEFINED) + return (0); + + return (1); +} + /* * Link a rule with subjects to which it applies. */ @@ -794,6 +817,8 @@ struct prison *pr; struct loginclass *lc; + KASSERT(hrl_rule_fully_specified(rule), ("rule not fully specified")); + /* * Make sure there are no duplicated rules. */ @@ -1347,24 +1372,10 @@ if (error) goto out; - if (rule->hr_subject == HRL_SUBJECT_UNDEFINED) + if (!hrl_rule_fully_specified(rule)) { error = EINVAL; goto out; - if (rule->hr_subject_id == HRL_SUBJECT_ID_UNDEFINED) - error = EINVAL; - goto out; - if (rule->hr_resource == HRL_RESOURCE_UNDEFINED) - error = EINVAL; - goto out; - if (rule->hr_action == HRL_ACTION_UNDEFINED) - error = EINVAL; - goto out; - if (rule->hr_amount < 0) - error = EINVAL; - goto out; - if (rule->hr_per == HRL_SUBJECT_UNDEFINED) - error = EINVAL; - goto out; + } error = hrl_rule_add(rule); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#17 (text+ko) ==== @@ -652,6 +652,7 @@ static void hrl_handle_setrlimit(u_int which, struct rlimit *lim, struct thread *td) { + int error; struct hrl_rule *rule, *rule2; rule = hrl_rule_alloc(); @@ -729,14 +730,16 @@ if (lim->rlim_cur != RLIM_INFINITY) { rule2->hr_amount = lim->rlim_cur; - hrl_rule_add(rule2); + error = hrl_rule_add(rule2); + KASSERT(error == 0, ("hrl_rule_add failed")); } hrl_rule_release(rule2); } if (lim->rlim_cur != RLIM_INFINITY) { rule->hr_amount = lim->rlim_cur; - hrl_rule_add(rule); + error = hrl_rule_add(rule); + KASSERT(error == 0, ("hrl_rule_add failed")); } hrl_rule_release(rule); } From owner-p4-projects@FreeBSD.ORG Sun Aug 2 13:36:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 184821065673; Sun, 2 Aug 2009 13:36:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CCA891065670 for ; Sun, 2 Aug 2009 13:36:21 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 854F28FC18 for ; Sun, 2 Aug 2009 13:36:21 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72DaLhD004888 for ; Sun, 2 Aug 2009 13:36:21 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72DaLAH004886 for perforce@freebsd.org; Sun, 2 Aug 2009 13:36:21 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 2 Aug 2009 13:36:21 GMT Message-Id: <200908021336.n72DaLAH004886@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166926 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 13:36:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=166926 Change 166926 by syl@syl_rincewind on 2009/08/02 13:35:53 Factorise pipe methods for at91dci. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#8 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#8 (text+ko) ==== @@ -1483,130 +1483,29 @@ USB_BUS_UNLOCK(&sc->sc_bus); } -/*------------------------------------------------------------------------* - * at91dci bulk support - *------------------------------------------------------------------------*/ -static void -at91dci_device_bulk_open(struct usb_xfer *xfer) -{ - return; -} +/* + * at91dci ctl/bulk/intr support + */ static void -at91dci_device_bulk_close(struct usb_xfer *xfer) +at91dci_device_dummy(struct usb_xfer *xfer) { - at91dci_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void -at91dci_device_bulk_enter(struct usb_xfer *xfer) +at91dci_device_xxx_start(struct usb_xfer *xfer) { - return; -} - -static void -at91dci_device_bulk_start(struct usb_xfer *xfer) -{ - /* setup TDs */ at91dci_setup_standard_chain(xfer); at91dci_start_standard_chain(xfer); + return ; } -struct usb_pipe_methods at91dci_device_bulk_methods = -{ - .open = at91dci_device_bulk_open, - .close = at91dci_device_bulk_close, - .enter = at91dci_device_bulk_enter, - .start = at91dci_device_bulk_start, -}; - -/*------------------------------------------------------------------------* - * at91dci control support - *------------------------------------------------------------------------*/ static void -at91dci_device_ctrl_open(struct usb_xfer *xfer) -{ - return; -} - -static void -at91dci_device_ctrl_close(struct usb_xfer *xfer) +at91dci_device_xxx_close(struct usb_xfer *xfer) { at91dci_device_done(xfer, USB_ERR_CANCELLED); -} - -static void -at91dci_device_ctrl_enter(struct usb_xfer *xfer) -{ - return; -} - -static void -at91dci_device_ctrl_start(struct usb_xfer *xfer) -{ - /* setup TDs */ - at91dci_setup_standard_chain(xfer); - at91dci_start_standard_chain(xfer); -} - -struct usb_pipe_methods at91dci_device_ctrl_methods = -{ - .open = at91dci_device_ctrl_open, - .close = at91dci_device_ctrl_close, - .enter = at91dci_device_ctrl_enter, - .start = at91dci_device_ctrl_start, -}; - -/*------------------------------------------------------------------------* - * at91dci interrupt support - *------------------------------------------------------------------------*/ -static void -at91dci_device_intr_open(struct usb_xfer *xfer) -{ - return; -} - -static void -at91dci_device_intr_close(struct usb_xfer *xfer) -{ - at91dci_device_done(xfer, USB_ERR_CANCELLED); -} - -static void -at91dci_device_intr_enter(struct usb_xfer *xfer) -{ - return; -} - -static void -at91dci_device_intr_start(struct usb_xfer *xfer) -{ - /* setup TDs */ - at91dci_setup_standard_chain(xfer); - at91dci_start_standard_chain(xfer); -} - -struct usb_pipe_methods at91dci_device_intr_methods = -{ - .open = at91dci_device_intr_open, - .close = at91dci_device_intr_close, - .enter = at91dci_device_intr_enter, - .start = at91dci_device_intr_start, -}; - -/*------------------------------------------------------------------------* - * at91dci full speed isochronous support - *------------------------------------------------------------------------*/ -static void -at91dci_device_isoc_fs_open(struct usb_xfer *xfer) -{ - return; -} - -static void -at91dci_device_isoc_fs_close(struct usb_xfer *xfer) -{ - at91dci_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void @@ -1668,10 +1567,35 @@ at91dci_start_standard_chain(xfer); } +struct usb_pipe_methods at91dci_device_bulk_methods = +{ + .open = at91dci_device_dummy, + .enter = at91dci_device_dummy, + .close = at91dci_device_xxx_close, + .start = at91dci_device_xxx_start, +}; + +struct usb_pipe_methods at91dci_device_ctrl_methods = +{ + .open = at91dci_device_dummy, + .enter = at91dci_device_dummy, + .close = at91dci_device_xxx_close, + .start = at91dci_device_xxx_start, +}; + +struct usb_pipe_methods at91dci_device_intr_methods = +{ + .open = at91dci_device_dummy, + .enter = at91dci_device_dummy, + .close = at91dci_device_xxx_close, + .start = at91dci_device_xxx_start, +}; + + struct usb_pipe_methods at91dci_device_isoc_fs_methods = { - .open = at91dci_device_isoc_fs_open, - .close = at91dci_device_isoc_fs_close, + .open = at91dci_device_dummy, + .close = at91dci_device_dummy, .enter = at91dci_device_isoc_fs_enter, .start = at91dci_device_isoc_fs_start, }; From owner-p4-projects@FreeBSD.ORG Sun Aug 2 13:38:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4BEB7106566C; Sun, 2 Aug 2009 13:38:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C10C1065673 for ; Sun, 2 Aug 2009 13:38:24 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D493E8FC19 for ; Sun, 2 Aug 2009 13:38:23 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72DcNt4005006 for ; Sun, 2 Aug 2009 13:38:23 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72DcNqX005004 for perforce@freebsd.org; Sun, 2 Aug 2009 13:38:23 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 2 Aug 2009 13:38:23 GMT Message-Id: <200908021338.n72DcNqX005004@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166927 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 13:38:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=166927 Change 166927 by syl@syl_rincewind on 2009/08/02 13:37:47 Factorise pipe methods for atmegadci. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#8 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#8 (text+ko) ==== @@ -1372,58 +1372,29 @@ USB_BUS_UNLOCK(&sc->sc_bus); } -/*------------------------------------------------------------------------* - * at91dci bulk support - * at91dci control support - * at91dci interrupt support - *------------------------------------------------------------------------*/ -static void -atmegadci_device_non_isoc_open(struct usb_xfer *xfer) -{ - return; -} +/* + * atmegadci ctl/bulk/intr support + */ static void -atmegadci_device_non_isoc_close(struct usb_xfer *xfer) +atmegadci_device_dummy(struct usb_xfer *xfer) { - atmegadci_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void -atmegadci_device_non_isoc_enter(struct usb_xfer *xfer) +atmegadci_device_xxx_start(struct usb_xfer *xfer) { - return; -} - -static void -atmegadci_device_non_isoc_start(struct usb_xfer *xfer) -{ - /* setup TDs */ atmegadci_setup_standard_chain(xfer); atmegadci_start_standard_chain(xfer); + return ; } -struct usb_pipe_methods atmegadci_device_non_isoc_methods = -{ - .open = atmegadci_device_non_isoc_open, - .close = atmegadci_device_non_isoc_close, - .enter = atmegadci_device_non_isoc_enter, - .start = atmegadci_device_non_isoc_start, -}; - -/*------------------------------------------------------------------------* - * at91dci full speed isochronous support - *------------------------------------------------------------------------*/ static void -atmegadci_device_isoc_fs_open(struct usb_xfer *xfer) +atmegadci_device_xxx_close(struct usb_xfer *xfer) { - return; -} - -static void -atmegadci_device_isoc_fs_close(struct usb_xfer *xfer) -{ atmegadci_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void @@ -1489,10 +1460,18 @@ atmegadci_start_standard_chain(xfer); } +struct usb_pipe_methods atmegadci_device_non_isoc_methods = +{ + .open = atmegadci_device_dummy, + .enter = atmegadci_device_dummy, + .start = atmegadci_device_xxx_start, + .close = atmegadci_device_xxx_close, +}; + struct usb_pipe_methods atmegadci_device_isoc_fs_methods = { - .open = atmegadci_device_isoc_fs_open, - .close = atmegadci_device_isoc_fs_close, + .open = atmegadci_device_dummy, + .close = atmegadci_device_xxx_close, .enter = atmegadci_device_isoc_fs_enter, .start = atmegadci_device_isoc_fs_start, }; From owner-p4-projects@FreeBSD.ORG Sun Aug 2 13:40:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 88C8B1065673; Sun, 2 Aug 2009 13:40:26 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 489B5106566C for ; Sun, 2 Aug 2009 13:40:26 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 359AD8FC0A for ; Sun, 2 Aug 2009 13:40:26 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72DeQDL005207 for ; Sun, 2 Aug 2009 13:40:26 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72DeQ0i005205 for perforce@freebsd.org; Sun, 2 Aug 2009 13:40:26 GMT (envelope-from trasz@freebsd.org) Date: Sun, 2 Aug 2009 13:40:26 GMT Message-Id: <200908021340.n72DeQ0i005205@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166928 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 13:40:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=166928 Change 166928 by trasz@trasz_anger on 2009/08/02 13:40:05 Some changes in preparation for per-class limits. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#38 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#38 (text+ko) ==== @@ -718,14 +718,18 @@ again: mtx_lock(&hrl_lock); LIST_FOREACH_SAFE(limit, limits_head, hl_next, limittmp) { - if (hrl_rule_matches(limit->hl_rule, filter)) { - LIST_REMOVE(limit, hl_next); - mtx_unlock(&hrl_lock); - hrl_rule_release(limit->hl_rule); - uma_zfree(hrl_limit_zone, limit); - removed++; - goto again; - } + if (!hrl_rule_matches(limit->hl_rule, filter)) + continue; + + LIST_REMOVE(limit, hl_next); + mtx_unlock(&hrl_lock); + hrl_rule_release(limit->hl_rule); + if (limit->hl_rule->hr_subject == HRL_SUBJECT_LOGINCLASS && + limit->hl_rule->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED) + loginclass_release((struct loginclass *)(long)limit->hl_rule->hr_subject_id); + uma_zfree(hrl_limit_zone, limit); + removed++; + goto again; } mtx_unlock(&hrl_lock); return (removed); @@ -804,6 +808,99 @@ return (1); } +static struct hrl_rule * +hrl_rule_from_string(char *rulestr) +{ + int error; + char *subjectstr, *subject_idstr, *resourcestr, *actionstr, + *amountstr, *perstr; + struct loginclass *lc; + struct hrl_rule *rule; + + rule = hrl_rule_alloc(); + + subjectstr = strsep(&rulestr, ":"); + subject_idstr = strsep(&rulestr, ":"); + resourcestr = strsep(&rulestr, ":"); + actionstr = strsep(&rulestr, "=/"); + amountstr = strsep(&rulestr, "/"); + perstr = rulestr; + + if (subjectstr == NULL || subjectstr[0] == '\0') + rule->hr_subject = HRL_SUBJECT_UNDEFINED; + else { + error = str2value(subjectstr, &rule->hr_subject, subjectnames); + if (error) + goto out; + } + + /* + * Login classes don't have any ID. Instead, we just put a pointer + * to the 'struct loginclass' into the hr_subject_id field. + */ + if (rule->hr_subject == HRL_SUBJECT_LOGINCLASS) { + if (subject_idstr == NULL || subject_idstr[0] == '\0') + goto out; + + lc = loginclass_find(subject_idstr); + rule->hr_subject_id = (long)lc; + } else { + if (subject_idstr == NULL || subject_idstr[0] == '\0') + rule->hr_subject_id = HRL_SUBJECT_ID_UNDEFINED; + else { + error = str2id(subject_idstr, &rule->hr_subject_id); + if (error) + goto out; + } + } + + if (resourcestr == NULL || resourcestr[0] == '\0') + rule->hr_resource = HRL_RESOURCE_UNDEFINED; + else { + error = str2value(resourcestr, &rule->hr_resource, + resourcenames); + if (error) + goto out; + } + + if (actionstr == NULL || actionstr[0] == '\0') + rule->hr_action = HRL_ACTION_UNDEFINED; + else { + error = str2value(actionstr, &rule->hr_action, actionnames); + if (error) + goto out; + } + + if (amountstr == NULL || amountstr[0] == '\0') + rule->hr_amount = -1; + else { + error = str2int64(amountstr, &rule->hr_amount); + if (error) + goto out; + } + + if (perstr == NULL || perstr[0] == '\0') + rule->hr_per = rule->hr_subject; + else { + error = str2value(perstr, &rule->hr_per, subjectnames); + if (error) + goto out; + } + + if (rule->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED && + rule->hr_subject == HRL_SUBJECT_UNDEFINED) + goto out; + +out: + if (error) { + hrl_rule_release(rule); + return (NULL); + } + + return (rule); +} + + /* * Link a rule with subjects to which it applies. */ @@ -963,93 +1060,34 @@ return (ESRCH); } -static int -hrl_rule_parse(struct hrl_rule *rule, char *rulestr) -{ - int error; - char *subjectstr, *subject_idstr, *resourcestr, *actionstr, - *amountstr, *perstr; - - subjectstr = strsep(&rulestr, ":"); - subject_idstr = strsep(&rulestr, ":"); - resourcestr = strsep(&rulestr, ":"); - actionstr = strsep(&rulestr, "=/"); - amountstr = strsep(&rulestr, "/"); - perstr = rulestr; - - if (subjectstr == NULL || subjectstr[0] == '\0') - rule->hr_subject = HRL_SUBJECT_UNDEFINED; - else { - error = str2value(subjectstr, &rule->hr_subject, subjectnames); - if (error) - return (EINVAL); - } - - if (subject_idstr == NULL || subject_idstr[0] == '\0') - rule->hr_subject_id = HRL_SUBJECT_ID_UNDEFINED; - else { - error = str2id(subject_idstr, &rule->hr_subject_id); - if (error) - return (EINVAL); - } - - if (resourcestr == NULL || resourcestr[0] == '\0') - rule->hr_resource = HRL_RESOURCE_UNDEFINED; - else { - error = str2value(resourcestr, &rule->hr_resource, - resourcenames); - if (error) - return (EINVAL); - } - - if (actionstr == NULL || actionstr[0] == '\0') - rule->hr_action = HRL_ACTION_UNDEFINED; - else { - error = str2value(actionstr, &rule->hr_action, actionnames); - if (error) - return (EINVAL); - } - - if (amountstr == NULL || amountstr[0] == '\0') - rule->hr_amount = -1; - else { - error = str2int64(amountstr, &rule->hr_amount); - if (error) - return (EINVAL); - } - - if (perstr == NULL || perstr[0] == '\0') - rule->hr_per = rule->hr_subject; - else { - error = str2value(perstr, &rule->hr_per, subjectnames); - if (error) - return (EINVAL); - } - - if (rule->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED && - rule->hr_subject == HRL_SUBJECT_UNDEFINED) - return (EINVAL); - - return (0); -} - static struct sbuf * -hrl_rules_to_sbuf(struct hrl_rule *usage, int nrules) +hrl_rules_to_sbuf(struct hrl_rule *rules, int nrules) { int i; struct sbuf *sb; sb = sbuf_new_auto(); for (i = 0; i < nrules; i++) { - sbuf_printf(sb, "%s:%d:%s:%s=%jd", - hrl_subject_name(usage[i].hr_subject), - (int)usage[i].hr_subject_id, - hrl_resource_name(usage[i].hr_resource), - hrl_action_name(usage[i].hr_action), - usage[i].hr_amount); - if (usage[i].hr_per != usage[i].hr_subject) + if (rules[i].hr_subject == HRL_SUBJECT_LOGINCLASS) { + KASSERT(rules[i].hr_subject_id != HRL_SUBJECT_ID_UNDEFINED, + ("rules[i].hr_subject_id != HRL_SUBJECT_ID_UNDEFINED")); + sbuf_printf(sb, "%s:%s:%s:%s=%jd", + hrl_subject_name(rules[i].hr_subject), + ((struct loginclass *)(long)rules[i].hr_subject_id)->lc_name, + hrl_resource_name(rules[i].hr_resource), + hrl_action_name(rules[i].hr_action), + rules[i].hr_amount); + } else { + sbuf_printf(sb, "%s:%d:%s:%s=%jd", + hrl_subject_name(rules[i].hr_subject), + (int)rules[i].hr_subject_id, + hrl_resource_name(rules[i].hr_resource), + hrl_action_name(rules[i].hr_action), + rules[i].hr_amount); + } + if (rules[i].hr_per != rules[i].hr_subject) sbuf_printf(sb, "/%s,", - hrl_subject_name(usage[i].hr_per)); + hrl_subject_name(rules[i].hr_per)); else sbuf_printf(sb, ","); } @@ -1191,35 +1229,35 @@ { int error; char *inputstr; - struct hrl_rule filter; + struct hrl_rule *filter; struct sbuf *outputsbuf = NULL; error = hrl_read_inbuf(&inputstr, uap->inbufp, uap->inbuflen); if (error) return (error); - error = hrl_rule_parse(&filter, inputstr); + filter = hrl_rule_from_string(inputstr); free(inputstr, M_HRL); - if (error) - return (error); + if (filter == NULL) + return (EINVAL); - switch (filter.hr_subject) { + switch (filter->hr_subject) { case HRL_SUBJECT_PROCESS: - error = hrl_get_usage_pid(td, filter.hr_subject_id, &outputsbuf); + error = hrl_get_usage_pid(td, filter->hr_subject_id, &outputsbuf); break; case HRL_SUBJECT_USER: - error = hrl_get_usage_uid(td, filter.hr_subject_id, &outputsbuf); + error = hrl_get_usage_uid(td, filter->hr_subject_id, &outputsbuf); break; case HRL_SUBJECT_GROUP: - error = hrl_get_usage_gid(td, filter.hr_subject_id, &outputsbuf); + error = hrl_get_usage_gid(td, filter->hr_subject_id, &outputsbuf); break; case HRL_SUBJECT_JAIL: - error = hrl_get_usage_jid(td, filter.hr_subject_id, &outputsbuf); + error = hrl_get_usage_jid(td, filter->hr_subject_id, &outputsbuf); break; default: - return (EINVAL); + error = EINVAL; } - + hrl_rule_release(filter); if (error) return (error); @@ -1234,7 +1272,7 @@ int error, copied, maxcopied = HRL_MAX_RULES; char *inputstr; struct sbuf *outputsbuf; - struct hrl_rule filter, *buf; + struct hrl_rule *filter, *buf; struct hrl_limit *limit; struct proc *p; @@ -1242,10 +1280,10 @@ if (error) return (error); - error = hrl_rule_parse(&filter, inputstr); + filter = hrl_rule_from_string(inputstr); free(inputstr, M_HRL); - if (error) - return (error); + if (filter == NULL) + return (EINVAL); buf = malloc(HRL_MAX_RULES * sizeof(struct hrl_rule), M_HRL, M_WAITOK); @@ -1263,7 +1301,7 @@ free(buf, M_HRL); goto again; } - if (!hrl_rule_matches(limit->hl_rule, &filter)) + if (!hrl_rule_matches(limit->hl_rule, filter)) continue; *(buf + copied) = *limit->hl_rule; copied++; @@ -1282,6 +1320,7 @@ error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); out: + hrl_rule_release(filter); free(buf, M_HRL); return (error); } @@ -1292,7 +1331,7 @@ int error, copied, maxcopied = HRL_MAX_RULES; char *inputstr; struct sbuf *outputsbuf; - struct hrl_rule filter, *buf; + struct hrl_rule *filter, *buf; struct hrl_limit *limit; struct proc *p; @@ -1300,25 +1339,31 @@ if (error) return (error); - error = hrl_rule_parse(&filter, inputstr); + filter = hrl_rule_from_string(inputstr); free(inputstr, M_HRL); - if (error) - return (error); + if (filter == NULL) + return (EINVAL); - if (filter.hr_subject == HRL_SUBJECT_UNDEFINED) - return (EINVAL); + if (filter->hr_subject == HRL_SUBJECT_UNDEFINED) { + error = EINVAL; + goto out; + } - if (filter.hr_subject_id == HRL_SUBJECT_ID_UNDEFINED) - return (EINVAL); + if (filter->hr_subject_id == HRL_SUBJECT_ID_UNDEFINED) { + error = EINVAL; + goto out; + } - if (filter.hr_subject != HRL_SUBJECT_PROCESS) - return (EOPNOTSUPP); + if (filter->hr_subject != HRL_SUBJECT_PROCESS) { + error = EOPNOTSUPP; + goto out; + } again: buf = malloc(maxcopied * sizeof(*buf), M_HRL, M_WAITOK); copied = 0; - p = pfind(filter.hr_subject_id); + p = pfind(filter->hr_subject_id); if (p == NULL) { error = ESRCH; goto out; @@ -1332,7 +1377,7 @@ free(buf, M_HRL); goto again; } - if (!hrl_rule_matches(limit->hl_rule, &filter)) + if (!hrl_rule_matches(limit->hl_rule, filter)) continue; *(buf + copied) = *limit->hl_rule; copied++; @@ -1346,6 +1391,7 @@ error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); out: + hrl_rule_release(filter); free(buf, M_HRL); return (error); } @@ -1365,12 +1411,12 @@ if (error) return (error); - rule = hrl_rule_alloc(); - - error = hrl_rule_parse(rule, inputstr); + rule = hrl_rule_from_string(inputstr); free(inputstr, M_HRL); - if (error) + if (rule == NULL) { + error = EINVAL; goto out; + } if (!hrl_rule_fully_specified(rule)) { error = EINVAL; @@ -1388,7 +1434,7 @@ hrl_remove_rule(struct thread *td, struct hrl_remove_rule_args *uap) { int error; - struct hrl_rule filter; + struct hrl_rule *filter; char *inputstr; error = priv_check(td, PRIV_HRL_SET); @@ -1399,12 +1445,13 @@ if (error) return (error); - error = hrl_rule_parse(&filter, inputstr); + filter = hrl_rule_from_string(inputstr); free(inputstr, M_HRL); - if (error) - return (error); + if (filter == NULL) + return (EINVAL); - error = hrl_rule_remove(&filter); + error = hrl_rule_remove(filter); + hrl_rule_release(filter); return (error); } From owner-p4-projects@FreeBSD.ORG Sun Aug 2 13:43:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1715E1065673; Sun, 2 Aug 2009 13:43:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB836106564A for ; Sun, 2 Aug 2009 13:43:29 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9F9B78FC18 for ; Sun, 2 Aug 2009 13:43:29 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72DhT6v005395 for ; Sun, 2 Aug 2009 13:43:29 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72DhTkJ005393 for perforce@freebsd.org; Sun, 2 Aug 2009 13:43:29 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 2 Aug 2009 13:43:29 GMT Message-Id: <200908021343.n72DhTkJ005393@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166929 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 13:43:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=166929 Change 166929 by syl@syl_rincewind on 2009/08/02 13:43:09 Factorise pipe methods for avr32dci. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#7 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#7 (text+ko) ==== @@ -1307,58 +1307,29 @@ USB_BUS_UNLOCK(&sc->sc_bus); } -/*------------------------------------------------------------------------* - * at91dci bulk support - * at91dci control support - * at91dci interrupt support - *------------------------------------------------------------------------*/ -static void -avr32dci_device_non_isoc_open(struct usb_xfer *xfer) -{ - return; -} +/* + * atmegadci ctl/bulk/intr support + */ static void -avr32dci_device_non_isoc_close(struct usb_xfer *xfer) +avr32dci_device_dummy(struct usb_xfer *xfer) { - avr32dci_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void -avr32dci_device_non_isoc_enter(struct usb_xfer *xfer) +avr32dci_device_xxx_start(struct usb_xfer *xfer) { - return; -} - -static void -avr32dci_device_non_isoc_start(struct usb_xfer *xfer) -{ - /* setup TDs */ avr32dci_setup_standard_chain(xfer); avr32dci_start_standard_chain(xfer); + return ; } -struct usb_pipe_methods avr32dci_device_non_isoc_methods = -{ - .open = avr32dci_device_non_isoc_open, - .close = avr32dci_device_non_isoc_close, - .enter = avr32dci_device_non_isoc_enter, - .start = avr32dci_device_non_isoc_start, -}; - -/*------------------------------------------------------------------------* - * at91dci full speed isochronous support - *------------------------------------------------------------------------*/ static void -avr32dci_device_isoc_fs_open(struct usb_xfer *xfer) +avr32dci_device_xxx_close(struct usb_xfer *xfer) { - return; -} - -static void -avr32dci_device_isoc_fs_close(struct usb_xfer *xfer) -{ avr32dci_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void @@ -1423,10 +1394,18 @@ avr32dci_start_standard_chain(xfer); } +struct usb_pipe_methods avr32dci_device_non_isoc_methods = +{ + .open = avr32dci_device_dummy, + .enter = avr32dci_device_dummy, + .start = avr32dci_device_xxx_start, + .close = avr32dci_device_xxx_close, +}; + struct usb_pipe_methods avr32dci_device_isoc_fs_methods = { - .open = avr32dci_device_isoc_fs_open, - .close = avr32dci_device_isoc_fs_close, + .open = avr32dci_device_dummy, + .close = avr32dci_device_xxx_close, .enter = avr32dci_device_isoc_fs_enter, .start = avr32dci_device_isoc_fs_start, }; From owner-p4-projects@FreeBSD.ORG Sun Aug 2 13:50:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 987211065670; Sun, 2 Aug 2009 13:50:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B05AB106566C for ; Sun, 2 Aug 2009 13:50:37 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9EBB68FC18 for ; Sun, 2 Aug 2009 13:50:37 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72Dobqp005927 for ; Sun, 2 Aug 2009 13:50:37 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72Dob0Y005925 for perforce@freebsd.org; Sun, 2 Aug 2009 13:50:37 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 2 Aug 2009 13:50:37 GMT Message-Id: <200908021350.n72Dob0Y005925@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166930 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 13:50:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=166930 Change 166930 by syl@syl_rincewind on 2009/08/02 13:50:10 Factorise pipe methods for musb_otg. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#8 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#8 (text+ko) ==== @@ -1883,133 +1883,32 @@ USB_BUS_UNLOCK(&sc->sc_bus); } -/*------------------------------------------------------------------------* - * musbotg bulk support - *------------------------------------------------------------------------*/ -static void -musbotg_device_bulk_open(struct usb_xfer *xfer) -{ - return; -} +/* + * musbotg ctl/bulk/intr support + */ static void -musbotg_device_bulk_close(struct usb_xfer *xfer) +musbotg_device_dummy(struct usb_xfer *xfer) { - musbotg_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void -musbotg_device_bulk_enter(struct usb_xfer *xfer) +musbotg_device_xxx_start(struct usb_xfer *xfer) { - return; -} - -static void -musbotg_device_bulk_start(struct usb_xfer *xfer) -{ - /* setup TDs */ musbotg_setup_standard_chain(xfer); musbotg_start_standard_chain(xfer); + return ; } -struct usb_pipe_methods musbotg_device_bulk_methods = -{ - .open = musbotg_device_bulk_open, - .close = musbotg_device_bulk_close, - .enter = musbotg_device_bulk_enter, - .start = musbotg_device_bulk_start, -}; - -/*------------------------------------------------------------------------* - * musbotg control support - *------------------------------------------------------------------------*/ static void -musbotg_device_ctrl_open(struct usb_xfer *xfer) -{ - return; -} - -static void -musbotg_device_ctrl_close(struct usb_xfer *xfer) +musbotg_device_xxx_close(struct usb_xfer *xfer) { musbotg_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void -musbotg_device_ctrl_enter(struct usb_xfer *xfer) -{ - return; -} - -static void -musbotg_device_ctrl_start(struct usb_xfer *xfer) -{ - /* setup TDs */ - musbotg_setup_standard_chain(xfer); - musbotg_start_standard_chain(xfer); -} - -struct usb_pipe_methods musbotg_device_ctrl_methods = -{ - .open = musbotg_device_ctrl_open, - .close = musbotg_device_ctrl_close, - .enter = musbotg_device_ctrl_enter, - .start = musbotg_device_ctrl_start, -}; - -/*------------------------------------------------------------------------* - * musbotg interrupt support - *------------------------------------------------------------------------*/ -static void -musbotg_device_intr_open(struct usb_xfer *xfer) -{ - return; -} - -static void -musbotg_device_intr_close(struct usb_xfer *xfer) -{ - musbotg_device_done(xfer, USB_ERR_CANCELLED); -} - -static void -musbotg_device_intr_enter(struct usb_xfer *xfer) -{ - return; -} - -static void -musbotg_device_intr_start(struct usb_xfer *xfer) -{ - /* setup TDs */ - musbotg_setup_standard_chain(xfer); - musbotg_start_standard_chain(xfer); -} - -struct usb_pipe_methods musbotg_device_intr_methods = -{ - .open = musbotg_device_intr_open, - .close = musbotg_device_intr_close, - .enter = musbotg_device_intr_enter, - .start = musbotg_device_intr_start, -}; - -/*------------------------------------------------------------------------* - * musbotg full speed isochronous support - *------------------------------------------------------------------------*/ -static void -musbotg_device_isoc_open(struct usb_xfer *xfer) -{ - return; -} - -static void -musbotg_device_isoc_close(struct usb_xfer *xfer) -{ - musbotg_device_done(xfer, USB_ERR_CANCELLED); -} - -static void musbotg_device_isoc_enter(struct usb_xfer *xfer) { struct musbotg_softc *sc = MUSBOTG_BUS2SC(xfer->xroot->bus); @@ -2075,10 +1974,34 @@ musbotg_start_standard_chain(xfer); } +struct usb_pipe_methods musbotg_device_bulk_methods = +{ + .open = musbotg_device_dummy, + .enter = musbotg_device_dummy, + .close = musbotg_device_xxx_close, + .start = musbotg_device_xxx_start, +}; + +struct usb_pipe_methods musbotg_device_ctrl_methods = +{ + .open = musbotg_device_dummy, + .enter = musbotg_device_dummy, + .close = musbotg_device_ctrl_close, + .start = musbotg_device_ctrl_start, +}; + +struct usb_pipe_methods musbotg_device_intr_methods = +{ + .open = musbotg_device_dummy, + .enter = musbotg_device_dummy, + .close = musbotg_device_xxx_close, + .start = musbotg_device_xxx_start, +}; + struct usb_pipe_methods musbotg_device_isoc_methods = { - .open = musbotg_device_isoc_open, - .close = musbotg_device_isoc_close, + .open = musbotg_device_dummy, + .close = musbotg_device_xxx_close, .enter = musbotg_device_isoc_enter, .start = musbotg_device_isoc_start, }; From owner-p4-projects@FreeBSD.ORG Sun Aug 2 13:56:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D31F41065673; Sun, 2 Aug 2009 13:56:44 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7885A106566B for ; Sun, 2 Aug 2009 13:56:44 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 66D6B8FC12 for ; Sun, 2 Aug 2009 13:56:44 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72DuiBN006350 for ; Sun, 2 Aug 2009 13:56:44 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72Duicp006348 for perforce@freebsd.org; Sun, 2 Aug 2009 13:56:44 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 2 Aug 2009 13:56:44 GMT Message-Id: <200908021356.n72Duicp006348@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166931 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 13:56:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=166931 Change 166931 by syl@syl_rincewind on 2009/08/02 13:56:11 Factorise pipe methods for uss820dci. Fix a typo in comment. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#8 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#8 (text+ko) ==== @@ -1526,133 +1526,32 @@ USB_BUS_UNLOCK(&sc->sc_bus); } -/*------------------------------------------------------------------------* - * at91dci bulk support - *------------------------------------------------------------------------*/ -static void -uss820dci_device_bulk_open(struct usb_xfer *xfer) -{ - return; -} +/* + * uss820dci ctl/bulk/intr support + */ static void -uss820dci_device_bulk_close(struct usb_xfer *xfer) +uss820dci_device_dummy(struct usb_xfer *xfer) { - uss820dci_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void -uss820dci_device_bulk_enter(struct usb_xfer *xfer) -{ - return; -} - -static void -uss820dci_device_bulk_start(struct usb_xfer *xfer) +uss820dci_device_xxx_start(struct usb_xfer *xfer) { - /* setup TDs */ uss820dci_setup_standard_chain(xfer); uss820dci_start_standard_chain(xfer); + return ; } -struct usb_pipe_methods uss820dci_device_bulk_methods = -{ - .open = uss820dci_device_bulk_open, - .close = uss820dci_device_bulk_close, - .enter = uss820dci_device_bulk_enter, - .start = uss820dci_device_bulk_start, -}; - -/*------------------------------------------------------------------------* - * at91dci control support - *------------------------------------------------------------------------*/ static void -uss820dci_device_ctrl_open(struct usb_xfer *xfer) +uss820dci_device_xxx_close(struct usb_xfer *xfer) { - return; -} - -static void -uss820dci_device_ctrl_close(struct usb_xfer *xfer) -{ uss820dci_device_done(xfer, USB_ERR_CANCELLED); + return ; } static void -uss820dci_device_ctrl_enter(struct usb_xfer *xfer) -{ - return; -} - -static void -uss820dci_device_ctrl_start(struct usb_xfer *xfer) -{ - /* setup TDs */ - uss820dci_setup_standard_chain(xfer); - uss820dci_start_standard_chain(xfer); -} - -struct usb_pipe_methods uss820dci_device_ctrl_methods = -{ - .open = uss820dci_device_ctrl_open, - .close = uss820dci_device_ctrl_close, - .enter = uss820dci_device_ctrl_enter, - .start = uss820dci_device_ctrl_start, -}; - -/*------------------------------------------------------------------------* - * at91dci interrupt support - *------------------------------------------------------------------------*/ -static void -uss820dci_device_intr_open(struct usb_xfer *xfer) -{ - return; -} - -static void -uss820dci_device_intr_close(struct usb_xfer *xfer) -{ - uss820dci_device_done(xfer, USB_ERR_CANCELLED); -} - -static void -uss820dci_device_intr_enter(struct usb_xfer *xfer) -{ - return; -} - -static void -uss820dci_device_intr_start(struct usb_xfer *xfer) -{ - /* setup TDs */ - uss820dci_setup_standard_chain(xfer); - uss820dci_start_standard_chain(xfer); -} - -struct usb_pipe_methods uss820dci_device_intr_methods = -{ - .open = uss820dci_device_intr_open, - .close = uss820dci_device_intr_close, - .enter = uss820dci_device_intr_enter, - .start = uss820dci_device_intr_start, -}; - -/*------------------------------------------------------------------------* - * at91dci full speed isochronous support - *------------------------------------------------------------------------*/ -static void -uss820dci_device_isoc_fs_open(struct usb_xfer *xfer) -{ - return; -} - -static void -uss820dci_device_isoc_fs_close(struct usb_xfer *xfer) -{ - uss820dci_device_done(xfer, USB_ERR_CANCELLED); -} - -static void uss820dci_device_isoc_fs_enter(struct usb_xfer *xfer) { struct uss820dci_softc *sc = USS820_DCI_BUS2SC(xfer->xroot->bus); @@ -1711,16 +1610,40 @@ uss820dci_start_standard_chain(xfer); } +struct usb_pipe_methods uss820dci_device_bulk_methods = +{ + .open = uss820dci_device_dummy, + .enter = uss820dci_device_dummy, + .close = uss820dci_device_xxx_close, + .start = uss820dci_device_xxx_start, +}; + +struct usb_pipe_methods uss820dci_device_ctrl_methods = +{ + .open = uss820dci_device_dummy, + .enter = uss820dci_device_dummy, + .close = uss820dci_device_xxx_close, + .start = uss820dci_device_xxx_start, +}; + +struct usb_pipe_methods uss820dci_device_intr_methods = +{ + .open = uss820dci_device_dummy, + .enter = uss820dci_device_dummy, + .close = uss820dci_device_xxx_close, + .start = uss820dci_device_xxx_start, +}; + struct usb_pipe_methods uss820dci_device_isoc_fs_methods = { - .open = uss820dci_device_isoc_fs_open, - .close = uss820dci_device_isoc_fs_close, + .open = uss820dci_device_dummy, + .close = uss820dci_device_xxx_close, .enter = uss820dci_device_isoc_fs_enter, .start = uss820dci_device_isoc_fs_start, }; /*------------------------------------------------------------------------* - * at91dci root control support + * uss820dci root control support *------------------------------------------------------------------------* * Simulate a hardware HUB by handling all the necessary requests. *------------------------------------------------------------------------*/ From owner-p4-projects@FreeBSD.ORG Sun Aug 2 14:05:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E80921065673; Sun, 2 Aug 2009 14:05:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A7ECC106566C for ; Sun, 2 Aug 2009 14:05:54 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7C1E78FC0A for ; Sun, 2 Aug 2009 14:05:54 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72E5sCB007981 for ; Sun, 2 Aug 2009 14:05:54 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72E5sBY007979 for perforce@freebsd.org; Sun, 2 Aug 2009 14:05:54 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 2 Aug 2009 14:05:54 GMT Message-Id: <200908021405.n72E5sBY007979@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166932 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 14:05:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=166932 Change 166932 by syl@syl_atuin on 2009/08/02 14:05:39 fix a typo. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#9 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#9 (text+ko) ==== @@ -1986,8 +1986,8 @@ { .open = musbotg_device_dummy, .enter = musbotg_device_dummy, - .close = musbotg_device_ctrl_close, - .start = musbotg_device_ctrl_start, + .close = musbotg_device_xxx_close, + .start = musbotg_device_xxx_start, }; struct usb_pipe_methods musbotg_device_intr_methods = From owner-p4-projects@FreeBSD.ORG Sun Aug 2 14:38:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2788B1065670; Sun, 2 Aug 2009 14:38:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB911106564A for ; Sun, 2 Aug 2009 14:38:30 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 93BAA8FC13 for ; Sun, 2 Aug 2009 14:38:30 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72EcUWD010817 for ; Sun, 2 Aug 2009 14:38:30 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72EcU1c010815 for perforce@freebsd.org; Sun, 2 Aug 2009 14:38:30 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 2 Aug 2009 14:38:30 GMT Message-Id: <200908021438.n72EcU1c010815@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 166934 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 14:38:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=166934 Change 166934 by rene@rene_self on 2009/08/02 14:38:29 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/gjournal-desktop/article.sgml#4 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#40 integrate .. //depot/projects/docproj_nl/www/en/donations/donors.sgml#18 integrate .. //depot/projects/docproj_nl/www/share/sgml/advisories.xml#12 integrate .. //depot/projects/docproj_nl/www/share/sgml/header.ent#5 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/gjournal-desktop/article.sgml#4 (text+ko) ==== @@ -28,7 +28,7 @@ Manolis Kiagias - $FreeBSD: doc/en_US.ISO8859-1/articles/gjournal-desktop/article.sgml,v 1.4 2008/09/30 11:56:52 manolis Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/gjournal-desktop/article.sgml,v 1.5 2009/07/31 06:37:47 manolis Exp $ &tm-attrib.freebsd; @@ -591,14 +591,14 @@ &prompt.root; shutdown now + Unmount the journaled partitions: + + &prompt.root; umount /usr /var + Synchronize the journals: &prompt.root; gjournal sync - Unmount the journaled partitions: - - &prompt.root; umount /usr /var - Stop the journaling providers: &prompt.root; gjournal stop ad0s1d.journal ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#40 (text+ko) ==== @@ -1,7 +1,7 @@ + 702105 + July 31, 2009 + 7.2-STABLE after MFC of the SYSVIPC ABI + change. + + + 800000 October 11, 2007 8.0-CURRENT. Separating wide and single byte ==== //depot/projects/docproj_nl/www/en/donations/donors.sgml#18 (text+ko) ==== @@ -1,6 +1,6 @@ - + %developers; @@ -2600,6 +2600,13 @@ glewis Received + + + bms + MPLS and Label Switching Networks book + rpaulo + Received + &footer; ==== //depot/projects/docproj_nl/www/share/sgml/advisories.xml#12 (text+ko) ==== @@ -2,7 +2,7 @@ - $FreeBSD: www/share/sgml/advisories.xml,v 1.230 2009/06/10 10:43:06 cperciva Exp $ + $FreeBSD: www/share/sgml/advisories.xml,v 1.231 2009/07/29 00:50:20 simon Exp $ @@ -10,6 +10,18 @@ 2009 + 7 + + + 29 + + + FreeBSD-SA-09:12.bind + + + + + 6 ==== //depot/projects/docproj_nl/www/share/sgml/header.ent#5 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -166,7 +166,7 @@

  • Handbook
  • Porter's Handbook
  • Developer's Handbook
  • -
  • Manual Pages
  • +
  • Manual Pages
  • @@ -195,7 +195,7 @@ From owner-p4-projects@FreeBSD.ORG Sun Aug 2 14:43:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 59BB51065673; Sun, 2 Aug 2009 14:43:36 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1A383106566C for ; Sun, 2 Aug 2009 14:43:36 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 08D738FC13 for ; Sun, 2 Aug 2009 14:43:36 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72EhZbQ011234 for ; Sun, 2 Aug 2009 14:43:35 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72EhZ0x011232 for perforce@freebsd.org; Sun, 2 Aug 2009 14:43:35 GMT (envelope-from truncs@FreeBSD.org) Date: Sun, 2 Aug 2009 14:43:35 GMT Message-Id: <200908021443.n72EhZ0x011232@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 166935 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 14:43:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=166935 Change 166935 by truncs@aditya on 2009/08/02 14:42:58 Fixed typo acces -> access Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dinode.h#2 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_dinode.h#2 (text+ko) ==== @@ -52,7 +52,7 @@ u_int16_t e2di_mode; /* 0: IFMT, permissions; see below. */ u_int16_t e2di_uid; /* 2: Owner UID */ u_int32_t e2di_size; /* 4: Size (in bytes) */ - u_int32_t e2di_atime; /* 8: Acces time */ + u_int32_t e2di_atime; /* 8: Access time */ u_int32_t e2di_ctime; /* 12: Create time */ u_int32_t e2di_mtime; /* 16: Modification time */ u_int32_t e2di_dtime; /* 20: Deletion time */ From owner-p4-projects@FreeBSD.ORG Sun Aug 2 14:59:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 717A61065672; Sun, 2 Aug 2009 14:59:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3169A106564A for ; Sun, 2 Aug 2009 14:59:54 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1FCBB8FC08 for ; Sun, 2 Aug 2009 14:59:54 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72ExrI4012387 for ; Sun, 2 Aug 2009 14:59:53 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72Exriq012385 for perforce@freebsd.org; Sun, 2 Aug 2009 14:59:53 GMT (envelope-from syl@FreeBSD.org) Date: Sun, 2 Aug 2009 14:59:53 GMT Message-Id: <200908021459.n72Exriq012385@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 166936 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 14:59:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=166936 Change 166936 by syl@syl_rincewind on 2009/08/02 14:59:12 Change DCI Root Hub to Generic RootHUB Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/template/usb_template_hub.c#3 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/template/usb_template_hub.c#3 (text+ko) ==== @@ -62,9 +62,9 @@ 'o', 0, 'n', 0, #define STRING_HUB_PRODUCT \ - 'D', 0, 'C', 0, 'I', 0, ' ', 0, 'R', 0, \ - 'o', 0, 'o', 0, 't', 0, ' ', 0, 'H', 0, \ - 'U', 0, 'B', 0, + 'G', 0, 'e', 0, 'n', 0, 'e', 0, 'r', 0, \ + 'i', 0, 'c', 0, ' ', 0, 'R', 0, 'o', 0, \ + 'o', 0, 't', 0, 'H', 0, 'U', 0, 'B', 0 USB_MAKE_STRING_DESC(STRING_HUB_LANG, string_hub_langtab); USB_MAKE_STRING_DESC(STRING_HUB_VENDOR, string_hub_vendor); From owner-p4-projects@FreeBSD.ORG Sun Aug 2 18:47:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 23F2F1065673; Sun, 2 Aug 2009 18:47:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D5CD5106564A for ; Sun, 2 Aug 2009 18:47:01 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C28A98FC1B for ; Sun, 2 Aug 2009 18:47:01 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72Il1Td042804 for ; Sun, 2 Aug 2009 18:47:01 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72Il1ch042802 for perforce@freebsd.org; Sun, 2 Aug 2009 18:47:01 GMT (envelope-from trasz@freebsd.org) Date: Sun, 2 Aug 2009 18:47:01 GMT Message-Id: <200908021847.n72Il1ch042802@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166939 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 18:47:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=166939 Change 166939 by trasz@trasz_anger on 2009/08/02 18:46:44 Add support for 'loginclass:' rules. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#39 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#18 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/loginclass.h#2 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#9 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#20 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#39 (text+ko) ==== @@ -724,9 +724,6 @@ LIST_REMOVE(limit, hl_next); mtx_unlock(&hrl_lock); hrl_rule_release(limit->hl_rule); - if (limit->hl_rule->hr_subject == HRL_SUBJECT_LOGINCLASS && - limit->hl_rule->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED) - loginclass_release((struct loginclass *)(long)limit->hl_rule->hr_subject_id); uma_zfree(hrl_limit_zone, limit); removed++; goto again; @@ -784,8 +781,13 @@ KASSERT(rule->hr_refcount > 0, ("rule->hr_refcount > 0")); - if (refcount_release(&rule->hr_refcount)) + if (refcount_release(&rule->hr_refcount)) { + if (rule->hr_subject == HRL_SUBJECT_LOGINCLASS && + rule->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED) + loginclass_release((struct loginclass *)(long) + rule->hr_subject_id); uma_zfree(hrl_rule_zone, rule); + } } static int @@ -839,11 +841,12 @@ * to the 'struct loginclass' into the hr_subject_id field. */ if (rule->hr_subject == HRL_SUBJECT_LOGINCLASS) { - if (subject_idstr == NULL || subject_idstr[0] == '\0') - goto out; - - lc = loginclass_find(subject_idstr); - rule->hr_subject_id = (long)lc; + if (subject_idstr == NULL || subject_idstr[0] == '\0') { + rule->hr_subject_id = HRL_SUBJECT_ID_UNDEFINED; + } else { + lc = loginclass_find(subject_idstr); + rule->hr_subject_id = (long)lc; + } } else { if (subject_idstr == NULL || subject_idstr[0] == '\0') rule->hr_subject_id = HRL_SUBJECT_ID_UNDEFINED; @@ -961,7 +964,6 @@ break; case HRL_SUBJECT_LOGINCLASS: - KASSERT(rule->hr_subject_id > 0, ("rule->hr_subject_id > 0")); lc = (struct loginclass *)(long)rule->hr_subject_id; hrl_limit_add(&lc->lc_limits, rule); break; @@ -1021,6 +1023,15 @@ return (0); } +static int +hrl_rule_remove_callback(struct hrl_limits_head *limits, const struct hrl_rule *filter, void *arg3, void *arg4 __unused) +{ + int *found = (int *)arg3; + + *found += hrl_limit_remove_matching(limits, filter); + return (0); +} + /* * Remove all rules that match the filter. */ @@ -1037,18 +1048,27 @@ if (p == NULL) return (ESRCH); PROC_UNLOCK(p); - error = hrl_limit_remove_matching(&p->p_limits, filter); + found = hrl_limit_remove_matching(&p->p_limits, filter); sx_sunlock(&proctree_lock); - return (error); + if (found) + return (0); + return (ESRCH); } + error = loginclass_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found, NULL); + KASSERT(error == 0, ("loginclass_limits_foreach failed")); + error = ui_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found, NULL); + KASSERT(error == 0, ("ui_limits_foreach failed")); + error = gi_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found, NULL); + KASSERT(error == 0, ("gi_limits_foreach failed")); + /* * XXX: per-process, per-group, per-jail and per-class limits. */ sx_slock(&proctree_lock); FOREACH_PROC_IN_SYSTEM(p) { - error = hrl_limit_remove_matching(&p->p_limits, filter); + found += hrl_limit_remove_matching(&p->p_limits, filter); if (error == 0) found = 1; } @@ -1056,8 +1076,7 @@ if (found) return (0); - else - return (ESRCH); + return (ESRCH); } static struct sbuf * @@ -1266,10 +1285,30 @@ return (error); } +static int +hrl_get_rules_callback(struct hrl_limits_head *limits, const struct hrl_rule *filter, void *arg3, void *arg4) +{ + struct hrl_limit *limit; + struct hrl_rule *buf = (struct hrl_rule *)arg3; + int copied = 0, *available = (int *)arg4; + + LIST_FOREACH(limit, limits, hl_next) { + if (copied >= *available) + return (ERANGE); + if (!hrl_rule_matches(limit->hl_rule, filter)) + continue; + *(buf + copied) = *limit->hl_rule; + copied++; + (*available)--; + } + + return (0); +} + int hrl_get_rules(struct thread *td, struct hrl_get_rules_args *uap) { - int error, copied, maxcopied = HRL_MAX_RULES; + int error, copied, maxcopied = HRL_MAX_RULES, available; char *inputstr; struct sbuf *outputsbuf; struct hrl_rule *filter, *buf; @@ -1285,8 +1324,6 @@ if (filter == NULL) return (EINVAL); - buf = malloc(HRL_MAX_RULES * sizeof(struct hrl_rule), M_HRL, M_WAITOK); - again: buf = malloc(maxcopied * sizeof(*buf), M_HRL, M_WAITOK); copied = 0; @@ -1294,7 +1331,7 @@ FOREACH_PROC_IN_SYSTEM(p) { mtx_lock(&hrl_lock); LIST_FOREACH(limit, &p->p_limits, hl_next) { - if (copied >= HRL_MAX_RULES) { + if (copied >= maxcopied) { mtx_unlock(&hrl_lock); sx_sunlock(&proctree_lock); maxcopied *= 4; @@ -1312,6 +1349,24 @@ if (error) goto out; + available = maxcopied - copied; + loginclass_limits_foreach(hrl_get_rules_callback, filter, + buf + copied, &available); + copied = maxcopied - available; + available = maxcopied - copied; + ui_limits_foreach(hrl_get_rules_callback, filter, + buf + copied, &available); + copied = maxcopied - available; + available = maxcopied - copied; + gi_limits_foreach(hrl_get_rules_callback, filter, + buf + copied, &available); + copied = maxcopied - available; + if (copied >= maxcopied) { + maxcopied *= 4; + free(buf, M_HRL); + goto again; + } + /* * XXX: Iterate over the rest (other than per-process) of the rules. */ @@ -1370,15 +1425,13 @@ } mtx_lock(&hrl_lock); LIST_FOREACH(limit, &p->p_limits, hl_next) { - if (copied >= HRL_MAX_RULES) { + if (copied >= maxcopied) { mtx_unlock(&hrl_lock); PROC_UNLOCK(p); maxcopied *= 4; free(buf, M_HRL); goto again; } - if (!hrl_rule_matches(limit->hl_rule, filter)) - continue; *(buf + copied) = *limit->hl_rule; copied++; } @@ -1413,10 +1466,8 @@ rule = hrl_rule_from_string(inputstr); free(inputstr, M_HRL); - if (rule == NULL) { - error = EINVAL; - goto out; - } + if (rule == NULL) + return (EINVAL); if (!hrl_rule_fully_specified(rule)) { error = EINVAL; ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#3 (text+ko) ==== @@ -201,6 +201,23 @@ return (0); } +int +loginclass_limits_foreach(int (*callback)(struct hrl_limits_head *limits, + const struct hrl_rule *filter, void *arg3, void *arg4), + const struct hrl_rule *filter, void *arg3, void *arg4) +{ + int error; + struct loginclass *lc; + + LIST_FOREACH(lc, &loginclasses, lc_next) { + error = (callback)(&lc->lc_limits, filter, arg3, arg4); + if (error) + return (error); + } + + return (0); +} + static void lc_proc_fork(void *arg __unused, struct proc *parent, struct proc *child, int flags __unused) ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#18 (text+ko) ==== @@ -1412,6 +1412,19 @@ rw_wunlock(&uihashtbl_lock); } +int +ui_limits_foreach(int (*callback)(struct hrl_limits_head *limits, + const struct hrl_rule *filter, void *arg3, void *arg4), + const struct hrl_rule *filter, void *arg3, void *arg4) +{ + + callback = callback; + filter = filter; + arg3 = arg3; + arg4 = arg4; + return (0); +} + /* * Find the gidinfo structure for a gid. This structure is used to * track the total resource consumption (process count, socket buffer @@ -1557,6 +1570,20 @@ rw_wunlock(&gihashtbl_lock); } +int +gi_limits_foreach(int (*callback)(struct hrl_limits_head *limits, + const struct hrl_rule *filter, void *arg3, void *arg4), + const struct hrl_rule *filter, void *arg3, void *arg4) +{ + + callback = callback; + filter = filter; + arg3 = arg3; + arg4 = arg4; + + return (0); +} + /* * Change the count associated with number of processes * a given user is using. When 'max' is 0, don't enforce a limit ==== //depot/projects/soc2009/trasz_limits/sys/sys/loginclass.h#2 (text+ko) ==== @@ -41,6 +41,9 @@ void loginclass_acquire(struct loginclass *lc); void loginclass_release(struct loginclass *lc); struct loginclass *loginclass_find(const char *name); +int loginclass_limits_foreach(int (*callback)(struct hrl_limits_head *limits, + const struct hrl_rule *filter, void *arg3, void *arg4), + const struct hrl_rule *filter, void *arg3, void *arg4); #endif /* !_SYS_LOGINCLASS_H_ */ ==== //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#9 (text+ko) ==== @@ -159,6 +159,9 @@ void uifree(struct uidinfo *uip); void uihashinit(void); void uihold(struct uidinfo *uip); +int ui_limits_foreach(int (*callback)(struct hrl_limits_head *limits, + const struct hrl_rule *filter, void *arg3, void *arg4), + const struct hrl_rule *filter, void *arg3, void *arg4); struct gidinfo *gifind(gid_t gid); struct gidinfo @@ -166,6 +169,9 @@ void gifree(struct gidinfo *gip); void gihashinit(void); void gihold(struct gidinfo *gip); +int gi_limits_foreach(int (*callback)(struct hrl_limits_head *limits, + const struct hrl_rule *filter, void *arg3, void *arg4), + const struct hrl_rule *filter, void *arg3, void *arg4); #endif /* _KERNEL */ #endif /* !_SYS_RESOURCEVAR_H_ */ ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#20 (text+ko) ==== @@ -107,7 +107,9 @@ subject = "group"; else if (strcasecmp(subject, "p") == 0) subject = "process"; - else if (strcasecmp(subject, "l") == 0 || strcasecmp(subject, "c") == 0) + else if (strcasecmp(subject, "l") == 0 || + strcasecmp(subject, "c") == 0 || + strcasecmp(subject, "class") == 0) subject = "loginclass"; if (strcasecmp(subject, "user") == 0 && strlen(textid) > 0) { From owner-p4-projects@FreeBSD.ORG Sun Aug 2 20:02:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A1F06106566C; Sun, 2 Aug 2009 20:02:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61AE9106564A for ; Sun, 2 Aug 2009 20:02:24 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4F8088FC1A for ; Sun, 2 Aug 2009 20:02:24 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72K2OH7077746 for ; Sun, 2 Aug 2009 20:02:24 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72K2OdA077744 for perforce@freebsd.org; Sun, 2 Aug 2009 20:02:24 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 2 Aug 2009 20:02:24 GMT Message-Id: <200908022002.n72K2OdA077744@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 166942 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 20:02:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=166942 Change 166942 by rene@rene_self on 2009/08/02 20:02:17 MFen header.l10n.ent 1.12 -> 1.13 Affected files ... .. //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#13 edit Differences ... ==== //depot/projects/docproj_nl/www/nl/share/sgml/header.l10n.ent#13 (text+ko) ==== @@ -1,6 +1,6 @@ @@ -169,7 +169,7 @@
  • Handboek
  • Porters Handboek
  • Ontwikkelaars Handboek
  • -
  • Handleiding-pagina's
  • +
  • Handleiding-pagina's
  • @@ -198,7 +198,7 @@ From owner-p4-projects@FreeBSD.ORG Sun Aug 2 20:16:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3936A1065673; Sun, 2 Aug 2009 20:16:40 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA79F106566C for ; Sun, 2 Aug 2009 20:16:39 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D73158FC16 for ; Sun, 2 Aug 2009 20:16:39 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72KGds8079825 for ; Sun, 2 Aug 2009 20:16:39 GMT (envelope-from tsel@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72KGd65079823 for perforce@freebsd.org; Sun, 2 Aug 2009 20:16:39 GMT (envelope-from tsel@FreeBSD.org) Date: Sun, 2 Aug 2009 20:16:39 GMT Message-Id: <200908022016.n72KGd65079823@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to tsel@FreeBSD.org using -f From: Tatsiana Elavaya To: Perforce Change Reviews Cc: Subject: PERFORCE change 166943 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 20:16:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=166943 Change 166943 by tsel@tsel_mz on 2009/08/02 20:16:15 Add regression tests Use call operator @ to refer to other condition sets/rulesets Implement shell-like variables Support escaped strings Add id and str tokens (also containing line number) Use cmd list to store rule actions Affected files ... .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/Makefile#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.c#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.h#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/parse.y#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/Makefile#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test0#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test0.output#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test1#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test1.err#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test2#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test2.err#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test3#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test3.output#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test4#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/token.l#2 edit Differences ... ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/Makefile#2 (text+ko) ==== @@ -13,4 +13,7 @@ DEBUG_FLAGS+= -g +.PHONY: test +test: + make -C ${.CURDIR}/test test .include ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.c#2 (text+ko) ==== @@ -133,7 +133,7 @@ } trace_entry_init(&t_rule, rule, trace_rule, t->flags); trace(stack, t, &t_rule); - rule = TAILQ_NEXT(rule, ruleset_entries); + rule = TAILQ_NEXT(rule, rule_entries); t->data = rule; if (rule == NULL) { return (0); @@ -146,19 +146,21 @@ { struct trace_entry t_cond; struct rule *rule = t->arg; + struct cmd *cmd; int flags = t->flags; if (flags & TRACE_ACTIONS) { - if (1 || rule->action_ruleset) { + if (0 || rule->action_ruleset) { #if 0 tnext = trace(stack, tnext, rule->action_ruleset, trace_ruleset, TRACE_ACTIONS); #endif } else { - trace_push_cmd(stack, rule->action); - if (rule->action_arg) - trace_push_cmd(stack, rule->action_arg); + TAILQ_FOREACH(cmd, &rule->actions, cmd_entries) { + trace_push_cmd(stack, cmd->cmd); + } } } + if (flags & TRACE_CONDS) { trace_entry_init(&t_cond, rule->cond, trace_cond, TRACE_CONDS); trace(stack, t, &t_cond); @@ -186,7 +188,7 @@ } trace_entry_init(&t_cond, cond, trace_cond, TRACE_CONDS); trace(stack, t, &t_cond); - t->data = TAILQ_NEXT(cond, condset_entries); + t->data = TAILQ_NEXT(cond, cond_entries); if (t->data == NULL) { return (0); } @@ -211,7 +213,7 @@ while (cmd) { if (cmd->cmd_condset) { trace_entry_init(&t_condset, cmd->cmd_condset, trace_condset, TRACE_CONDS); - cmd = TAILQ_NEXT(cmd, cond_entries); + cmd = TAILQ_NEXT(cmd, cmd_entries); if (cmd != NULL) { trace_entry_init(&t_next, cond, trace_cond, TRACE_CONDS); t_next.data = cmd; @@ -226,7 +228,7 @@ break; } trace_push_cmd(stack, cmd->cmd); - cmd = TAILQ_NEXT(cmd, cond_entries); + cmd = TAILQ_NEXT(cmd, cmd_entries); } return (0); } ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.h#2 (text+ko) ==== @@ -29,36 +29,37 @@ #define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __func__, ## __VA_ARGS__) struct ruleset { - TAILQ_ENTRY(ruleset) rulesets_entries; + TAILQ_ENTRY(ruleset) ruleset_entries; TAILQ_HEAD(, rule) rules; char *name; + int count; int lineno; }; struct rule { - TAILQ_ENTRY(rule) ruleset_entries; + TAILQ_ENTRY(rule) rule_entries; + TAILQ_HEAD(, cmd) actions; + struct ruleset *action_ruleset; struct cond *cond; - char *action; - char *action_arg; - struct ruleset *action_ruleset; int lineno; }; struct condset { - TAILQ_ENTRY(condset) condsets_entries; + TAILQ_ENTRY(condset) condset_entries; TAILQ_HEAD(, cond) conds; char *name; + int count; int lineno; }; struct cond { - TAILQ_ENTRY(cond) condset_entries; + TAILQ_ENTRY(cond) cond_entries; TAILQ_HEAD(, cmd) cmds; int lineno; }; struct cmd { - TAILQ_ENTRY(cmd) cond_entries; + TAILQ_ENTRY(cmd) cmd_entries; char *cmd; struct condset *cmd_condset; int lineno; ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/parse.y#2 (text+ko) ==== @@ -32,12 +32,20 @@ #include "ipfw.hll.h" +struct var { + TAILQ_ENTRY(var) vars_entries; + char *name; + char *value; + int lineno; +}; + extern char *yytext; extern int yyline; extern int yylex(); static TAILQ_HEAD(, ruleset) rulesets = TAILQ_HEAD_INITIALIZER(rulesets); static TAILQ_HEAD(, condset) condsets = TAILQ_HEAD_INITIALIZER(condsets); +static TAILQ_HEAD(, var) vars = TAILQ_HEAD_INITIALIZER(vars); static int valid_name(char *name) @@ -54,7 +62,7 @@ } static struct ruleset * -ruleset_alloc() +ruleset_alloc(void) { struct ruleset *r; @@ -69,7 +77,7 @@ { struct ruleset *r; - TAILQ_FOREACH(r, &rulesets, rulesets_entries) { + TAILQ_FOREACH(r, &rulesets, ruleset_entries) { if (strcmp(r->name, name) == 0) return (r); } @@ -81,28 +89,27 @@ { struct ruleset *dup; - if (!valid_name(ruleset->name)) - errx(EX_DATAERR, "line %d: invalid ruleset name '%s'", - ruleset->lineno, ruleset->name); dup = ruleset_lookup(ruleset->name); if (dup != NULL) errx(EX_DATAERR, "line %d: ruleset '%s' is already defined at line %d", ruleset->lineno, ruleset->name, dup->lineno); - TAILQ_INSERT_TAIL(&rulesets, ruleset, rulesets_entries); + TAILQ_INSERT_TAIL(&rulesets, ruleset, ruleset_entries); + ruleset->count++; } static struct rule * -rule_alloc() +rule_alloc(void) { struct rule *r; r = safe_calloc(sizeof(struct rule)); + TAILQ_INIT(&r->actions); r->lineno = yyline; return (r); } static struct condset * -condset_alloc() +condset_alloc(void) { struct condset *r; @@ -117,7 +124,7 @@ { struct condset *r; - TAILQ_FOREACH(r, &condsets, condsets_entries) { + TAILQ_FOREACH(r, &condsets, condset_entries) { if (strcmp(r->name, name) == 0) return (r); } @@ -129,18 +136,16 @@ { struct condset *dup; - if (!valid_name(condset->name)) - errx(EX_DATAERR, "line %d: invalid condition name '%s'", - condset->lineno, condset->name); dup = condset_lookup(condset->name); if (dup != NULL) errx(EX_DATAERR, "line %d: condition '%s' is already defined at line %d", condset->lineno, condset->name, dup->lineno); - TAILQ_INSERT_TAIL(&condsets, condset, condsets_entries); + TAILQ_INSERT_TAIL(&condsets, condset, condset_entries); + condset->count++; } static struct cond * -cond_alloc() +cond_alloc(void) { struct cond *r; @@ -151,7 +156,7 @@ } static struct cmd * -cmd_alloc() +cmd_alloc(void) { struct cmd *r; @@ -160,39 +165,81 @@ return (r); } +static struct var * +var_alloc(void) +{ + struct var *r; + + r = safe_calloc(sizeof(struct var)); + r->lineno = yyline; + return (r); +} + +static struct var * +var_lookup(char *name) +{ + struct var *r; + + TAILQ_FOREACH(r, &vars, vars_entries) { + if (strcmp(r->name, name) == 0) + return (r); + } + return (NULL); +} + +static void +var_insert(struct var *var) +{ + struct var *dup; + + dup = var_lookup(var->name); + if (dup != NULL) + errx(EX_DATAERR, "line %d: variable '%s' is already defined at line %d", + var->lineno, var->name, dup->lineno); + TAILQ_INSERT_TAIL(&vars, var, vars_entries); +} + %} %union { - char *str; + struct { + char *s; + int lineno; + } str; + struct cmd *cmd; struct cond *cond; struct condset *condset; struct rule *rule; struct ruleset *ruleset; + struct var *var; }; %token STR %token ACTION %token DEFINE %token RULESET +%token SET +%token CALL %token SEMICOLON %token IF %token THEN %token BLOCK_BEGIN %token BLOCK_END -%type define_cond cond_body cond_list cond_tail -%type cond cmd_list +%type define_cond cond_body cond_list +%type cond cond_cmd_list %type define_ruleset rule_body rule_list -%type rule rule_tail rule_action -%type rule_action_arg +%type rule rule_tail rule_action rule_action_list +%type cond_cmd cond_tail +%type id str +%type define_var %start begin %% begin - : - | define_list rule_list + : define_list rule_list { if ($2 == NULL) errx(EX_DATAERR, "line %d: top level ruleset is empty", yyline); @@ -207,26 +254,37 @@ define_block : SEMICOLON + | define_var | define_cond | define_ruleset ; +define_var + : id SET str SEMICOLON + { + $$ = var_alloc(); + $$->lineno = $1.lineno; + $$->name = $1.s; + $$->value = $3.s; + var_insert($$); + } + define_cond - : DEFINE STR cond_body SEMICOLON + : DEFINE id cond_body SEMICOLON { - DPRINTF("define cond: %s; bode=%p\n", $2, $3); $$ = $3; - $$->name = $2; + $$->lineno = $2.lineno; + $$->name = $2.s; condsets_insert($$); } ; define_ruleset - : RULESET STR rule_body SEMICOLON + : RULESET id rule_body SEMICOLON { - DPRINTF("define rule: %s; body=%p\n", $2, $3); $$ = $3; - $$->name = $2; + $$->lineno = $2.lineno; + $$->name = $2.s; rulesets_insert($$); } ; @@ -244,17 +302,13 @@ { $$ = NULL; } | cond_list cond cond_tail SEMICOLON { - struct cmd *cmd; - if ($2 != NULL) { if ($1 == NULL) $1 = condset_alloc(); if ($3 != NULL) { - cmd = cmd_alloc(); - cmd->cmd_condset = $3; - TAILQ_INSERT_TAIL(&$2->cmds, cmd, cond_entries); + TAILQ_INSERT_TAIL(&$2->cmds, $3, cmd_entries); } - TAILQ_INSERT_TAIL(&$1->conds, $2, condset_entries); + TAILQ_INSERT_TAIL(&$1->conds, $2, cond_entries); } $$ = $1; } @@ -268,7 +322,7 @@ if ($2 != NULL) { if ($1 == NULL) $1 = ruleset_alloc(); - TAILQ_INSERT_TAIL(&$1->rules, $2, ruleset_entries); + TAILQ_INSERT_TAIL(&$1->rules, $2, rule_entries); } $$ = $1; } @@ -277,7 +331,7 @@ cond : { $$ = NULL; } - | IF cmd_list + | IF cond_cmd_list { $$ = $2; } ; @@ -285,7 +339,10 @@ : { $$ = NULL; } | cond_body - { $$ = $1; } + { + $$ = cmd_alloc(); + $$->cmd_condset = $1; + } ; rule @@ -312,59 +369,147 @@ ; rule_action - : ACTION rule_action_arg + : CALL id { $$ = rule_alloc(); - $$->action = $1; - $$->action_arg = $2; - DPRINTF("rule action=%s action_arg=%s\n", $$->action, $$->action_arg); + $$->lineno = $2.lineno; + $$->action_ruleset = ruleset_lookup($2.s); + if ($$->action_ruleset == NULL) + errx(EX_DATAERR, "line %d: ruleset not found: %s", $$->lineno, $2.s); } - | STR + | rule_action_list { + $$ = $1; + } + ; + +rule_action_list + : ACTION + { + struct cmd *cmd; + $$ = rule_alloc(); - $$->action_ruleset = ruleset_lookup($1); - if ($$->action_ruleset == NULL) - errx(EX_DATAERR, "line %d: ruleset not found: %s", yyline, $1); + $$->lineno = $1.lineno; + cmd = cmd_alloc(); + cmd->lineno = $1.lineno; + cmd->cmd = $1.s; + TAILQ_INSERT_TAIL(&$$->actions, cmd, cmd_entries); + } + | rule_action_list ACTION + { + struct cmd *cmd; + + cmd = cmd_alloc(); + cmd->lineno = $2.lineno; + cmd->cmd = $2.s; + TAILQ_INSERT_TAIL(&$1->actions, cmd, cmd_entries); + $$ = $1; } - ; + | rule_action_list str + { + struct cmd *cmd; -rule_action_arg - : - { $$ = NULL; } - | STR - { $$ = $1; } + cmd = cmd_alloc(); + cmd->lineno = $2.lineno; + cmd->cmd = $2.s; + TAILQ_INSERT_TAIL(&$1->actions, cmd, cmd_entries); + $$ = $1; + } ; -cmd_list +cond_cmd_list : { $$ = NULL; } - | cmd_list STR + | cond_cmd_list cond_cmd { - struct cmd *cmd; - struct condset *cmd_condset; - if ($1 == NULL) { $1 = cond_alloc(); } - cmd_condset = condset_lookup($2); - cmd = cmd_alloc(); - if (cmd_condset != NULL) - cmd->cmd_condset = cmd_condset; - else - cmd->cmd = $2; - TAILQ_INSERT_TAIL(&$1->cmds, cmd, cond_entries); + TAILQ_INSERT_TAIL(&$1->cmds, $2, cmd_entries); + $$ = $1; + } + ; + +cond_cmd + : CALL id + { + $$ = cmd_alloc(); + $$->lineno = $2.lineno; + $$->cmd_condset = condset_lookup($2.s); + if ($$->cmd_condset == NULL) + errx(EX_DATAERR, "line %d: condition set not found: %s", $$->lineno, $2.s); + } + | str + { + $$ = cmd_alloc(); + $$->lineno = $1.lineno; + $$->cmd = $1.s; + } + ; + +id + : STR + { + if (!valid_name($1.s)) + errx(EX_DATAERR, "line %d: invalid name '%s'", $1.lineno, $1.s); $$ = $1; } ; +str + : STR + { + struct var *var; + char *p, *s, *sn, *v; + int l; + + s = $1.s; + while ((p = strchr(s, '$')) != NULL) { + v = p + 2; + if (p[1] != '{' || (p = strchr(v, '}')) == NULL) { + errx(EX_DATAERR, + "line %d: syntax error: variable expansion failed", yyline); + } else { + *p = '\0'; + var = var_lookup(v); + *p = '}'; + if (var == NULL) + errx(EX_DATAERR, "line %d: variable not found: %s", yyline, v); + l = (v - s - 2) + strlen(var->value) + strlen(p + 1) + 1; + sn = safe_calloc(l); + memcpy(sn, s, v - s - 2); + strlcat(sn, var->value, l); + strlcat(sn, p + 1, l); + s = sn; + } + } +/* + if (strchr(s, ' ') != NULL || strchr(s, '"') != NULL) { + sn = safe_calloc(strlen(s) * 2 + 3); + p = sn; + *(p++) = '"'; + for (; *s; s++, p++) { + if (*s == '"') + *(p++) = '\\'; + *p = *s; + } + *(p++) = '"'; + s = sn; + } +*/ + $$.s = s; + $$.lineno = $1.lineno; + } + ; + %% void yyerror(char *s) { if (yytext) - warnx("line %d: '%s': %s", yyline, yytext, s); + errx(EX_DATAERR, "line %d: '%s': %s", yyline, yytext, s); else - warnx("line %d: %s", yyline, s); + errx(EX_DATAERR, "line %d: %s", yyline, s); } ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/token.l#2 (text+ko) ==== @@ -68,7 +68,7 @@ %} -STR [-A-Za-z0-9,._&/!()]+ +STR [-A-Za-z0-9,._&/!()${}]+ %% @@ -80,6 +80,8 @@ [ \t]+ ; ";" { return SEMICOLON; } +"@" { return CALL; } +"=" { return SET; } "if" { return IF; } "cond" { return IF; } "then" { return THEN; } @@ -98,10 +100,26 @@ return BLOCK_END; } +\"(\\\"|[^"])*\"|\'(\\\'|[^'])*\' { + char *s, *d; + + yylval.str.lineno = yyline; + yylval.str.s = strdup(yytext + 1); + yylval.str.s[strlen(yylval.str.s) - 1] = '\0'; + for (s = yylval.str.s, d = s; *s; s++, d++) { + if (s[0] == '\\' && (s[1] == '\'' || s[1] == '"')) + s++; + if (s != d) + *d = *s; + } + *d = '\0'; + return STR; + } {STR} { int i; - yylval.str = strdup(yytext); + yylval.str.lineno = yyline; + yylval.str.s = strdup(yytext); for (i = 0; rule_actions[i].s != NULL; i++) { if (strcmp(yytext, rule_actions[i].s) == 0) return ACTION; From owner-p4-projects@FreeBSD.ORG Mon Aug 3 02:53:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 366821065675; Mon, 3 Aug 2009 02:53:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CEEC01065670 for ; Mon, 3 Aug 2009 02:53:53 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BB8E18FC13 for ; Mon, 3 Aug 2009 02:53:53 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n732rrto036113 for ; Mon, 3 Aug 2009 02:53:53 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n732rrg5036111 for perforce@freebsd.org; Mon, 3 Aug 2009 02:53:53 GMT (envelope-from zjriggl@FreeBSD.org) Date: Mon, 3 Aug 2009 02:53:53 GMT Message-Id: <200908030253.n732rrg5036111@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 166949 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 02:53:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=166949 Change 166949 by zjriggl@zjriggl_tcpregression on 2009/08/03 02:53:10 Periodic submit Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/echoServer.py#5 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#5 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/logging.conf#5 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/StringField.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/__init__.py#8 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/backup.tar#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/checksum.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/decorators.py#4 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/field.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/hwAddress.py#4 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/ipAddress.py#5 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/networkPort.py#4 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/payload.py#4 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/pseudoipv4.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/segmentBuffer.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/sniffLocalhost.py#5 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpConstructor.py#6 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpFilter.py#7 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcprecvdaemon.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#8 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/test.html#5 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/testconfig.py#7 edit Differences ... ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/echoServer.py#5 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#5 (text+ko) ==== @@ -6,12 +6,13 @@ logging.config.fileConfig( "logging.conf" ) ( logging.FIELD_CHANGE, - logging.RESPONSE_GENERATION, - logging.PACKET_TRANSMIT, + logging.RESPONSE_GENERATION ) = range( logging.DEBUG - 2, logging.DEBUG ) + +( logging.PACKET_TRANSMIT, logging.PACKET_RECEIVED, logging.PACKET_SENT, logging.VALIDATE, - logging.STATE_CHANGE ) = range( logging.INFO - 7, logging.INFO ) + logging.STATE_CHANGE ) = range( logging.INFO - 5, logging.INFO ) logging.addLevelName( logging.FIELD_CHANGE, "FIELD" ) logging.addLevelName( logging.RESPONSE_GENERATION, "\033[1;36mGENERATE\033[1;m" ) @@ -19,7 +20,9 @@ logging.addLevelName( logging.PACKET_RECEIVED, "\033[1;31mRECVD\033[1;m" ) logging.addLevelName( logging.PACKET_SENT, "\033[1;31mSENT\033[1;m" ) logging.addLevelName( logging.VALIDATE, "VALIDATE" ) -logging.addLevelName( logging.STATE_CHANGE, "STATE" ) +logging.addLevelName( logging.STATE_CHANGE, "\033[1;37;44mSTATE\033[1;m" ) + +# 1;37;44 # print '\033[1;36mGENERATE\033[1;m' # print '\033[1;36mCyan like Caribbean\033[1;m' ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/logging.conf#5 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/StringField.py#3 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/__init__.py#8 (text+ko) ==== @@ -3,7 +3,7 @@ import struct import socket import sys - +import re from pcs.packets.ipv4 import ipv4 from pcs.packets.tcp import tcp from pcs.packets.tcpv6 import tcpv6 @@ -41,3 +41,14 @@ def inet_atol( ipString ): return inet_ntol( socket.inet_aton( ipString ) ) + +def wireSharkFormatBytes(x): + twoBits = r"(\w\w)" + octet = "((%s ){8})" % twoBits + twoBytes = "((%s ){2})" % octet + + x = re.sub(twoBits,r"\1 ",x) + x = re.sub(octet,r"\1 ",x) + x = re.sub(twoBytes,r"\1\n",x) + return x + ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/backup.tar#3 (binary) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/checksum.py#2 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/decorators.py#4 (text+ko) ==== @@ -186,7 +186,7 @@ ''' ops = func() or {} - name=ops.get('prefix','_')+func.__name__ # property name + name=ops.get('name') or ops.get('prefix','_')+func.__name__ # property name fget=ops.get('fget',lambda self:getattr(self, name)) fset=ops.get('fset',lambda self,value:setattr(self,name,value)) fdel=ops.get('fdel',lambda self:delattr(self,name)) @@ -241,7 +241,7 @@ return property (fget, fset, fdel, func.__doc__) -def uint(max=2**32): +def uint(limit=2**32): ''' >>> from pcsextension.decorators import * >>> lim = 5 @@ -272,4 +272,4 @@ fset = lambda self,value: setattr(self, name, (value % max)) fdel = lambda self: delattr(self, value) return property(fget, fset, fdel) - return unsignedInteger + return unsignedInteger ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/field.py#2 (text+ko) ==== @@ -5,69 +5,118 @@ ''' class Field( object ): + ''' + Base class for an extensible field class. Allows the field to be represented + in various formats with ease, as needed by the developer. This allows byte- + order and representation issues to be alleviated, as well as string-of-bytes + representation to be simplified for any byte order. + ''' name = "" value = None width = 8 networkByteOrder = False - def __init__( self, default = 0, width = None, networkByteOrder = False ): + def __init__( self, default = 0, width = 8, networkByteOrder = False ): self.width = width self.networkByteOrder = networkByteOrder + if isinstance( default, int ): self.setInteger( default ) if isinstance( default, str ): self.setAscii( default ) + if isinstance( default, Field): + self.setNetworkBytes(default.getNetworkBytes()) def setAscii( self, x ): + ''' + Set the value, given its textual representation, e.g. '12345' or '127.0.0.1' + ''' pass def getAscii( self ): + ''' + @see setAscii + ''' return "" def setInteger( self, x ): + ''' + Set the value, given its numeric representation in host-byte-order, e.g. 12345. + ''' pass def getInteger( self ): + ''' + @see setInteger + ''' return 0 def setNetworkInteger( self, x ): + ''' + Set the value, given its numeric representation in network-byte-order, e.g. 14640 + ''' pass def getNetworkInteger( self ): + ''' + @see setNetworkInteger + ''' return 0 def setBytes( self, x ): + ''' + Set the value as a string of bytes in host-byte-order, e.g. '\x30\x39' + ''' pass def getBytes( self ): + ''' + @see setBytes + ''' return "" - def getBytesShifted( self, shiftedBits ): - pass - def setNetworkBytes( self, x ): + ''' + Sets the value as a string of bytes in network-byte-order, e.g. '\x39\x30' + ''' pass def getNetworkBytes( self ): + ''' + @see setNetworkBytes + ''' return "" - def getNetworkBytesShifted( self, shiftedBits ): - return getNetworkBytes() - def setPCS( self, x ): + ''' + Sets the value in the format native to the PCS (Packet Construction + Set) library. For example, network-byte-order integer for TCP ports, + or byte-string for Ethernet addresses. + ''' pass - def getPCS( self, x ): + def getPCS( self ): + ''' + @see setPCS + ''' return self.getNetworkBytes() def encode( self ): + ''' + Returns the same value as getBytes/getNetworkBytes as instructed by + __init__ or the networkByteOrder property. + ''' if self.networkByteOrder: return self.getNetworkBytes() else: return self.getBytes() def decode( self, bytes ): + ''' + Calls setBytes/setNetworkBytes as instructed by __init__ or the + networkByteOrder property. + ''' if self.networkByteOrder: self.setNetworkBytes( bytes ) else: @@ -88,41 +137,15 @@ return False def bound( self ): - if width == None: + ''' + Ensures that the value returned by getBytes() is no longer than + self.width bits and that the value returned by getInteger is no + larger than an integer of self.width bits would allow. + ''' + if self.width == None: return - elif width == 8: - if ( width == 8 and len( self.getBytes() ) > width * 8 ) or \ - ( getInteger() > ( ( 2 ** self.width ) - 1 ) ): - raise Exception, "Value exceeds bit-width" - - def __add__( self, x ): - - if isinstance( x, Field ): - f = Field( width = self.width + x.width ) - bytes = self.getNetworkBytes() - nextBytes = x.getNetworkBytes() - - # If either of the widths are NOT even mod 8 - # ord - # chr - if self.width % 8 != 0: - - lastByte = bytes[:-1] - - # Will the field fit in the remaining bits of the last byte - # In the below example 'X' = the appended bytes, 'O' = existing, current bytes - # Bit 1 2 3 4 5 6 7 8 - # O O O - # X X X X X - # O O O X X X X X - if x.width <= ( 8 - self.width ): - nextBits = ord( nextBytes[0] ) >> self.width - nextBits = nextBits | ord( lastByte ) - joined = struct.pack( "!B%d", nextBits ) - f.setNetworkBytes( self.getNetworkBytes()[:-1] + joined ) - - # The field will not fit in the remaining space - - else: - f.setNetworkBytes( self.getNetworkBytes() + x.getNetworkBytes() ) + elif self.width == 8: + if ( self.width == 8 and len( self.getBytes() ) > self.width * 8 ) or \ + ( self.getInteger() > ( ( 2 ** self.width ) - 1 ) ): + raise Exception, "Value exceeds bit-width %i" % self.width ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/hwAddress.py#4 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/ipAddress.py#5 (text+ko) ==== @@ -20,6 +20,12 @@ def __init__( self, default = 0, width = None, networkByteOrder = False, version = AF_INET ): self.version = version Field.__init__( self, width = width, default = default, networkByteOrder = networkByteOrder ) + + # Override the default Field.__init__ behavior. If the string's length is 4, it is obviously + # a byte-string as opposed to an IP address. + if type(default) == str: + if len(default) == 4: + self.nbo = default def setAscii( self, x ): self.nbo = inet_pton( self.version, x ) ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/networkPort.py#4 (text+ko) ==== @@ -30,10 +30,10 @@ return str( self.ho ) def setBytes( self, bytes ): - self.ho = unpack( "H", bytes ) + self.ho = unpack( "H", bytes )[0] def setNetworkBytes( self, bytes ): - self.ho = unpack( "!H", bytes ) + self.ho = unpack( "!H", bytes )[0] def getBytes( self ): return pack( "H", self.ho ) @@ -51,7 +51,11 @@ self.ho = ntohs( x ) def getNetworkInteger( self ): + print "%s %s" % (type(self.ho), self.ho) return htons( self.ho ) + + def getPCS(self): + return self.getInteger() def __eq__( self, x ): if isinstance( x, int ): ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/payload.py#4 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/pseudoipv4.py#3 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/segmentBuffer.py#3 (text+ko) ==== @@ -4,7 +4,9 @@ @author: zach ''' -class segmentBuffer(list): +from pcsextension.decorators import prop + +class segmentBuffer(object): ''' The segmentBuffer class allows pseudo-random access to a list, given an initial offset, and maximum offset. The benefit of this is that we get @@ -14,103 +16,219 @@ using 4GB+ of memory, or use the segmentBuffer class. Example: - >>> x = segmentBuffer(base=100,max=110) - >>> x += ['a','b','c'] - >>> len(x) - 3 - >>> x[100:102] - ['a','b','c'] - - >>> y = segmentBuffer(base = 5, max=10) - >>> y += range(0,10) - >>> y - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - >>> y[5] + >>> from segmentBuffer import * + >>> sb = segmentBuffer(base=10, limit=15) + >>> sb += range(8) + >>> sb[10] # The first item is at [10] 0 - >>> y[5:4] - [0, 1, 2, 3, 4, 5, 6, 7, 8] - >>> y[5:5] - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - - + >>> sb[11] # The second item is at [11] + 1 + >>> sb # However, the items are in the proper order + [0, 1, 2, 3, 4, 5, 6, 7] + >>> sb[10:] # And are properly sliced + [0, 1, 2, 3, 4, 5, 6, 7] + >>> sb[10:2] # And the slices wrap-around at limit + [0, 1, 2, 3, 4, 5, 6] + >>> sb[2:10] # And slices stop when it hits a gap. + [7] + >>> sb == sb[10:] # Truth works just fine. + True + >>> sb += 2 # The offset is incremented easily + >>> sb # Notice that the first two items are deleted + [2, 3, 4, 5, 6, 7] + >>> len(sb) # The length indeed goes down 8->2 + 6 + >>> sb += range(100,200) + >>> len(sb) # Adding 100 items keeps the correct length + 15 + >>> sb # Only items up to the limit are added + [2, 3, 4, 5, 6, 7, 100, 101, 102, 103, 104, 105, 106, 107, 108] + >>> sb2 = sb + range(300,400) + >>> sb is sb2 # Addition operator returns a new object. + False + >>> sb2 += 3 # The other object can be incremented + >>> [i for i in sb if i not in sb2] + [2, 3, 4] # Just an example to show the difference + >>> sb[12:15] # This shows that the items were taken off the front + [2, 3, 4] + >>> sb[12:2] + [2, 3, 4, 5, 6] + >>> sb2[12:2] # The indexes for the remaining items do not change + [5, 6] # Although the deleted items are gone. + >>> sb + [2, 3, 4, 5, 6, 7, 100, 101, 102, 103, 104, 105, 106, 107, 108] + >>> sb2 + [5, 6, 7, 100, 101, 102, 103, 104, 105, 106, 107, 108] ''' __MAX = (2**31) - 1 + limit = __MAX + buffer = [] + + @prop + def base(): + ''' + Base index. Advancing the base index will remote items from the front of the list. + The base can only be incremented in value, and will be wrapped at 'limit'. + + ''' + return {'fset': lambda self,x: self.setBase(x)} _base = 0 - _max = __MAX + + @prop + def nextIndex(): + return {'fget': lambda self: self.getNextIndex(),# (len(self) + self.base), + 'fset': None} + + def getNextIndex(self): + return len(self)+self.base + + def setBase(self, x): + ''' + Modifies the base. Erases any existing items up to, but excluding, the + new base. + ''' + # print "Setting base to %i" % x + # print "... %s if %s < %s else %s" % (self._getIndex(x), x, len(self), len(self)) + # deleteUpToOffset = self._getIndex(x) if x < len(self) else len(self) + deleteUpToOffset = min(self._getIndex(x),len(self)) + # print "Deleting up to offset %s" % deleteUpToOffset + self._base = x % self.limit + # print "_base is now %i" % self._base + # print "Buffer before delete: %s" % self.buffer + del self.buffer[0:deleteUpToOffset] + # print "Buffer after delete: %s" % self.buffer + + def __contains__(self,x): + return self.buffer.__contains__(x) + + def __iadd__(self,x): + ''' + Adding an integer has the effect of advancing the 'base', and + deleting the leading elements. 'base' is modulo'd by 'limit' so + that it will properly wrap around to zero if needed, while retaining + the same indexes for items that are not deleted. + + NOTE: If the list is full, no more items can be 'added'. + ''' + if type(x) in (int,long): + self.base += x + elif type(x) in (list,tuple,segmentBuffer): + + self.buffer += x + + # Prevent the list from being extended too long. + if len(self) > self.limit: + # Note that we are referring to the 'limit'th item directly, not + # its redirected index. This is because we are actually deleting + # items beyond the boundary that should not exist. + del self.buffer[self.limit:self.__MAX] + + + # retVal = segmentBuffer(base=self.base, limit=self.limit) + # retVal.buffer = self.buffer[:] + + return self + + def __add__(self,x): + tmp = segmentBuffer(self) + tmp += x + return tmp + + def __len__(self): + return self.buffer.__len__() def __eq__(self, x): - if not isinstance(x,list) and not isinstance(x,tuple): + ''' + Compares to a list or tuple object. + For whatever reason, list.__eq__ doesn't evaluate properly. + ''' + # Only compare to list, tuples, or the same class + if type(x) not in (list,tuple,type(self)): return False + # If we're not the same length, DEF not the same. if len(self) != len(x): return False - for i in range(0,len(self)): - if self[i] != x[i]: + # If we are comparing against a list or tuple, compare it to + # our internal buffer. + comparisonList = self.buffer + + # Otherwise, we are comparing against a segmentBuffer. Compare + # it to ourself. + if type(x) == type(self): + + # Check the other fields + if x.limit != self.limit or x.base != self.base: + return False + + comparisonList = self + + # Iterate over each item + for i in range(len(self)): + if comparisonList[i] != x[i]: return False - + + # Haven't found any differences. return True - def __init__(self, base=None, max=None): - list.__init__(self) + def __init__(self, copyList=None, base=0, limit=2**32): + if type(copyList) == segmentBuffer: + self.buffer = copyList.buffer[:] + self.base = copyList.base + self.limit = copyList.limit + + # Don't proceed to set other values below. Just use the + # copied values. + return + elif type(copyList) in (list,tuple): + self.buffer = copyList + else: + self.buffer = [] - if base > 0: - self._base = base - if max > 0: - self._max = max + if base >= 0: + self.base = base + if limit >= 0: + self.limit = limit def __delslice__(self, i, j): - # print "delslice(%s,%s)" % (i,j) - for item in range(i,j): - del self[item] + for (ii,jj) in self._getIndices(i, j): + self.buffer.__delslice__(ii,jj) def __delitem__(self,i): - # print "delitem(%s)" % (i) - index = self._getIndex(i) - if index is None: - raise IndexError, "list index out of range" - - list.__delitem__(self, index) + self.buffer.__delitem__(index) def __getslice__(self, i, j): - # # print "getslice(%s,%s)" % (i,j) # return [list.__getitem__(self,item) for item in self._getIndices(i, j)] # return [self[item] for item in range(i,j) ] - retVal = [] - for (a,b) in self._getIndices(i, j): - retVal += list.__getslice__(self, a, b) - return retVal + retVal = [] + for (a,b) in self._getIndices(i, j): + retVal += self.buffer.__getslice__(a, b) + return retVal def __getitem__(self,i): index = self._getIndex(i) if index is None: index = self.__MAX - return list.__getitem__(self,index) + return self.buffer.__getitem__(index) def __setslice__(self, i, j, k): - # print "setslice(%s,%s,%s)" % (i,j,k) - #for x,i in enumerate(self._getIndices(i, j)): - # self.__setitem__(x,k[i]) - indices = self._getIndices(i, j) - offset = 0 - print indices - for (a,b) in indices: num = b-a - list.__setslice__(self, a, b, k[offset:offset+num]) + self.buffer.__setslice__(a, b, k[offset:offset+num]) offset += num def __setitem__(self, i, x): index = self._getIndex(i) if index is None: index = self.__MAX - list.__setitem__(self, index, x) + self.buffer.__setitem__(index, x) def _getIndices(self, i, j): @@ -133,7 +251,7 @@ # else: # jj = self._getIndex(j) # if jj is None: -# jj = self._max - self._base +# jj = self.limit - self.base retVal = () @@ -160,92 +278,70 @@ Retrieves the actual index of an item. ''' - # For this method, assume that base=5, max=10. - print "getIndex(%i)" % i + # For this method, assume that base=5, limit=10. retVal = None # Special cases defined for quickness. # The base is always at ZERO offset. - if i == self._base: + if i == self.base: return 0 - # 'Max' is the "END" of the list, AND it is the 0th item. + # 'limit' is the "END" of the list, AND it is the 0th item. # '__MAX' is the absolute maximum value, and is the value provided # when we are given an empty-ended slice, i.e [3:] - elif i == self._max or i == self.__MAX: - return (self._max - self._base) - + elif i == self.limit: + return (self.limit - self.base) + elif i == self.__MAX: + return len(self) # elif i == self.__MAX: -# return self._getIndex(self._max) +# return self._getIndex(self.limit) # i.e. self[12], should refer to self[2]. # i.e. self[10], should refer to self[0] - elif self._max < i: - return self._getIndex(i - self._max) - # retVal = self._getIndex(i - self._max) + elif self.limit < i: + return self._getIndex(i - self.limit) + # retVal = self._getIndex(i - self.limit) # i.e. self[6] is stored at [1], or i-base. - elif self._base < i < self._max: - retVal = i - self._base + elif self.base < i < self.limit: + retVal = i - self.base - # i.e. self[2] is stored at [10+2], or max+i - elif 0 <= i < self._base: - retVal = self._getIndex(self._max) + i + # i.e. self[2] is stored at [10+2], or limit+i + elif 0 <= i < self.base: + retVal = self._getIndex(self.limit) + i # i.e. self[-1] is stored at the real self[-1]. elif i < 0: - retVal = self._getIndex(self._max + i) # Note we are adding a negative + retVal = len(self) + i + + if retVal > len(self): + return None return retVal -# -# if i == self.__MAX: -# # return self._getIndex(self._max - 1) + 1 -# return len(self) -# -# if i == self._max: -# return self._max - self._base -# -# # Negative indices count from the back... -# if i < 0: -# # Make sure it's not TOO negative... -# if abs(i) > self._max: -# retVal = self._getIndex(i + self._max) -# else: -# retVal = len(self) + i # Note that we "add" a negative -# -# elif self._max <= i: -# # retVal = None # Still none... -# return -# -# # If it's less than the base, then the index 0 is the max'th item, and -# # go from there. -# elif i < self._base: -# # Wrap... -# retVal = self._getIndex(self._max) + i -# -# # If it's over the max, decrement and re-do. -# # elif self._max <= i: -# # retVal = self._getIndex(i - self._max) -# -# # The N'th item is offset from the base. -# elif self._base <= i < self._max: -# retVal = i - self._base -# -# else: -# print 'error: could not calculate index for %s' % i -# # print "%s -> %s" % (i,retVal) -# -# # Don't return an out-of-bounds index... -# if retVal >= len(self): -# # print "OOB" -# return None -# -# return retVal + #def __repr__(self): + # # return str( [self[i] for i in self._getIndices(0,len(self))] ) + # return str( self.buffer[:] ) + # # return self.__repr__() + def __repr__(self): - print 'repr!!' - # return str( [self[i] for i in self._getIndices(0,len(self))] ) - return str( self[:] ) + return '%s(limit=%i,base=%i,copyList=%s+%s)' % \ + (self.__class__.__name__, self.limit, self.base, self[self.base:0], self[self.limit:] if self._getIndex(0) is not None else []) + + def __iter__(self): + return self.buffer.__iter__() + + def update(self, newBuffer): + + if newBuffer is self: + return self + + if type(newBuffer) == type(self): + # return '... is new buffer' + return newBuffer - def __str__(self): - print 'str!!' - return self.__repr__()+ if type(newBuffer) in (list,tuple): + # return '... is just a list or tuple' + self.buffer = newBuffer[:] + + return self + ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/sniffLocalhost.py#5 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpConstructor.py#6 (text+ko) ==== ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpFilter.py#7 (text+ko) ==== @@ -10,23 +10,31 @@ from pcs.packets.tcp import tcp from pcs.packets.tcpv6 import tcpv6 from pcs.packets.ethernet import ethernet +from pcsextension import wireSharkFormatBytes from pcsextension.ipAddress import IpAddress from pcsextension.networkPort import NetworkPort from pcsextension import findIpLayer, findTcpLayer +from pcsextension.decorators import prop import pprint +import binascii +from threading import RLock class tcpFilter( object ): log = None pcapHandle = None doRead = False - + lock = RLock() + @prop def interface(): - return {'doc': 'Interface used with the TCP Filter. If this interface is different from the' - ' current interface, the current one is closed, and the new one is opened automatically.', - 'fset': lambda self, x: self.openInterface( x ) } - self._interface = None - + ''' + Interface used with the TCP Filter. If this interface is different + from the current interface, the current one is closed, and the new + one is opened automatically. + ''' + return {'fset': lambda self, x: self.openInterface( x ) } + _interface = None + def __init__( self, interfaceName ): self.log = tcplog( self ) self.interface = interfaceName @@ -34,73 +42,143 @@ def openInterface( self, interfaceName ): # Is it already opened with this interface? if self.interface is interfaceName: - log.info( 'Tried to re - open same interface: % s' % self.interface ) - return - else: - self._interface = interfaceName + self.log.debug( 'Tried to re-open same interface: % s' % self.interface ) # Open the interface try: - self.pcapHandle = PcapConnector( self.interface ) - self.log.info( "Opened %s" % self.interface ) - # self.pcapHandle = IP4Connector(); + self.pcapHandle = PcapConnector( interfaceName ) + self.log.info( "Opened %s" % interfaceName ) + self._interface = interfaceName except: - self.log.error( "Could not open interface %s" % self.interface ) + self.log.error( "Could not open interface %s" % interfaceName ) + + def getPcapConnector(self): + ''' + Returns the PCAP handle. + ''' + return self.pcapHandle def read( self ): + ''' + Reads a packet in the form of a string of bytes from the PCAP handle. + ''' return self.pcapHandle.readpkt() def write( self, bytes ): - self.log.pktsent( pprint.pformat( bytes ) ) - self.pcapHandle.write( bytes, len( bytes ) ) + ''' + Writes a string of bytes to the PCAP handle. + ''' + return self.pcapHandle.write( bytes, len( bytes ) ) + + def setBlocking(self, block=False): + ''' + Sets the blocking mode on the PCAP handle. + ''' + self.log.debug("Setting blocking mode to %s" % block) + self.pcapHandle.file.setnonblock(block) + + def packetDestinedForIP(self, packet, ip): + ''' + Returns True if the provided packet has a IP layer and its destination + is the provided IP address. + Returns False otherwise. + ''' + # If the IP address is a string ("127.0.0.1") or byte array ('\x7f\x00\x00\x01') + # we need to convert it into an integer representation of the same. + ip = IpAddress(ip).getPCS() + + ipLayer = findIpLayer(packet) + if ipLayer is None: + return False + + if ip == ipLayer.dst: + return True + + return False + + def packetDestinedForPort(self, packet, port): + ''' + Returns True if the provided packet has a TCP layer and its destination + is the provided port. + Returns False otherwise. + ''' + port = NetworkPort( port ).getPCS() + + tcpLayer = findTcpLayer( packet ) + if tcpLayer is None: + return False + + if port == tcpLayer.dport: + return True + + return False + - def readFilteredByIP( self, ip ): + def readFilteredByIP( self, ip, block=True ): """ - Reads packets until a packet is found going either to or from the specified IP address - is discovered. Returns the first matching packet. + Reads packets until a packet is found that is destined to the specified + IP address is discovered. Returns the first matching packet. @param ip IpAddress or dotted-quad string - @return A pcs.Packet object + @return A pcs.Packet object, or None if there are no packets on the + queue and non-blocking IO is used. """ - -# if isinstance(ipAddress,int): -# ipAddress = intToBytes(ipAddress) - - # If the IP address is a string ("127.0.0.1") or byte array ('\x7f\x00\x00\x01') - # we need to convert it into an integer representation of the same. - if isinstance( ip, str ): - tmp = IpAddress() - tmp.setAscii( ip ) - ip = tmp - + + self.log.debug("Waiting on lock") + self.lock.acquire(blocking=True) + self.log.debug("Have lock") + self.setBlocking(block) + + packet = None + while True: + print "loop" packet = self.read() + + # None will only return [1] on error or [2] if using asynchronous + # I/O and there are no waiting packets. + if packet is None or self.packetDestinedForIP(packet, ip): + break + + self.lock.release() + self.log.debug("Released lock") + + if packet is None: + self.log.debug("Returning NONE") + + return packet - ipLayer = findIpLayer( packet ) - - if ipLayer == None: - continue - - # srcIP.setPCS( ipLayer.src ) - # dstIP.setPCS( ipLayer.dst ) - - if ipLayer.src == ip.getPCS() or ipLayer.dst == ip.getPCS(): - return packet - - def readFilteredByTuple( self, ipAddress, port ): + def readFilteredByTuple( self, ipAddress, port, block=True ): """ - Reads packets until a packet is found going either to or from [1] the specified - IP address and [2] the specified port. Returns the first matching packet. + Reads packets until a packet is found that is destined to: + [1] the specified IP address + [2] the specified port. + Returns the first matching packet. + @param IpAddress object or dotted-quad string ('127.0.0.1') @param NetworkPort object or integer port number. - @return A pcs.Packet object. >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 3 03:00:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA783106566B; Mon, 3 Aug 2009 03:00:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A2001065670 for ; Mon, 3 Aug 2009 03:00:00 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4E23F8FC0A for ; Mon, 3 Aug 2009 03:00:00 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73300qt036513 for ; Mon, 3 Aug 2009 03:00:00 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73300iX036511 for perforce@freebsd.org; Mon, 3 Aug 2009 03:00:00 GMT (envelope-from zjriggl@FreeBSD.org) Date: Mon, 3 Aug 2009 03:00:00 GMT Message-Id: <200908030300.n73300iX036511@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 166950 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 03:00:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=166950 Change 166950 by zjriggl@zjriggl_tcpregression on 2009/08/03 02:59:39 Adding two files I missed Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpsenddaemon.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/test.py#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Aug 3 06:04:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D8D7A1065675; Mon, 3 Aug 2009 06:04:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 97E4D106564A for ; Mon, 3 Aug 2009 06:04:21 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 84D438FC14 for ; Mon, 3 Aug 2009 06:04:21 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7364Lcr064330 for ; Mon, 3 Aug 2009 06:04:21 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7364LZd064328 for perforce@freebsd.org; Mon, 3 Aug 2009 06:04:21 GMT (envelope-from gabor@freebsd.org) Date: Mon, 3 Aug 2009 06:04:21 GMT Message-Id: <200908030604.n7364LZd064328@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 166953 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 06:04:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=166953 Change 166953 by gabor@gabor_aspire on 2009/08/03 06:03:49 MFHg: - Some nits for the build system Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/citrus_euctw.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/citrus_gbk2k.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/citrus_iso2022.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/Makefile.inc#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/citrus_ues.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/citrus_utf1632.c#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/citrus_utf8.c#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/citrus_viqr.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/citrus_zw.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/citrus_iconv_none.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std.c#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_parallel/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/Makefile#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/mapper.dir.GB.src#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/Makefile.part#6 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/Makefile#6 (text+ko) ==== @@ -27,6 +27,6 @@ citrus_stdenc.c CFLAGS+= --param max-inline-insns-single=128 -WARNS?= 6 +WARNS?= 3 .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/BIG5/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= BIG5 +SHLIB= BIG5 SRCS+= citrus_big5.c +WARNS?= 2 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= DECHanyu +SHLIB= DECHanyu SRCS+= citrus_dechanyu.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c#6 (text+ko) ==== @@ -51,7 +51,7 @@ */ typedef struct { - int chlen; + size_t chlen; char ch[4]; } _DECHanyuState; @@ -176,7 +176,7 @@ _DECHanyuState * __restrict psenc, size_t * __restrict nresult) { const char *s0; - int ch, i; + int ch; wchar_t wc; if (*s == NULL) { @@ -294,7 +294,7 @@ ch = wc & 0xFF; } else { if ((uint32_t)wc > 0xFFFF) { - if ((wc & ~0xFFFF) != HANYUBIT) + if ((wc & ~0xFFFF) != (wchar_t)HANYUBIT) goto ilseq; psenc->ch[psenc->chlen++] = (wc >> 24) & 0xFF; psenc->ch[psenc->chlen++] = (wc >> 16) & 0xFF; @@ -337,7 +337,7 @@ /* XXX: assume wchar_t as int */ if ((uint32_t)wc > 0x7F) { if ((uint32_t)wc > 0xFFFF) { - if ((wc & ~0xFFFF) != HANYUBIT) + if ((wc & ~0xFFFF) != (wchar_t)HANYUBIT) return EILSEQ; plane += 2; } ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUC/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= EUC +SHLIB= EUC SRCS+= citrus_euc.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= EUCTW +SHLIB= EUCTW SRCS+= citrus_euctw.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/EUCTW/citrus_euctw.c#6 (text+ko) ==== @@ -290,7 +290,8 @@ { wchar_t cs = wc & 0x7f000080; wchar_t v; - int i, len, clen, ret; + int i, clen, ret; + size_t len; clen = 1; if (wc & 0x00007f00) ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= GBK2K +SHLIB= GBK2K SRCS+= citrus_gbk2k.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/GBK2K/citrus_gbk2k.c#6 (text+ko) ==== @@ -264,7 +264,8 @@ _GBK2KState * __restrict psenc, size_t * __restrict nresult) { - int len, ret; + int ret; + size_t len; if (psenc->chlen != 0) { ret = EINVAL; ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/HZ/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= HZ +SHLIB= HZ SRCS+= citrus_hz.c +WARNS?= 2 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= ISO2022 +SHLIB= ISO2022 SRCS+= citrus_iso2022.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/citrus_iso2022.c#6 (text+ko) ==== @@ -94,7 +94,7 @@ singlegl:3, singlegr:3; char ch[7]; /* longest escape sequence (ESC & V ESC $ ( F) */ - int chlen; + size_t chlen; int flags; #define _ISO2022STATE_FLAG_INITIALIZED 1 } _ISO2022State; @@ -338,7 +338,8 @@ { char const *v, *e; char buf[20]; - int i, len, ret; + int i, ret; + size_t len; /* @@ -499,7 +500,8 @@ { -1, -1, -1, -1, -1, 2, { ESC, 'N', }, }, { -1, -1, -1, -1, -1, 2, { ESC, 'O', }, }, /* end of records */ - { 0, } +// { 0, } + { 0, 0, 0, 0, 0, 0, { ESC, 0, }, } }; static int @@ -509,7 +511,7 @@ const int *p; p = sp->chars; - while (p - sp->chars < n && p - sp->chars < sp->len) { + while ((size_t)(p - sp->chars) < n && p - sp->chars < sp->len) { switch (*p) { case ECMA: if (!isecma(*s)) @@ -591,7 +593,7 @@ /* look for a perfect match from escape sequences */ for (sp = &seqtable[0]; sp->len; sp++) { nmatch = seqmatch(string, n, sp); - if (sp->len == nmatch && n >= sp->len) + if (sp->len == nmatch && n >= (size_t)(sp->len)) break; } @@ -674,8 +676,8 @@ * if we are in the middle of escape sequence, * we still need to wait for more characters to come */ - if (n < sp->len) { - if (nmatch == n) { + if (n < (size_t)(sp->len)) { + if ((size_t)(nmatch) == n) { if (result) *result = string; return (_ISO2022INVALID); @@ -847,7 +849,7 @@ * if we have something in buffer, use that. * otherwise, skip here */ - if (psenc->chlen < 0 || psenc->chlen > sizeof(psenc->ch)) { + if (psenc->chlen > sizeof(psenc->ch)) { /* illgeal state */ _citrus_ISO2022_init_state(ei, psenc); goto encoding_error; @@ -857,7 +859,7 @@ /* buffer is not empty */ p = psenc->ch; - while (psenc->chlen < sizeof(psenc->ch) && n >= 0) { + while (psenc->chlen < sizeof(psenc->ch)) { if (n > 0) { psenc->ch[psenc->chlen++] = *s0++; n--; @@ -867,9 +869,9 @@ &result, psenc); c += result - p; if (wchar != _ISO2022INVALID) { - if (psenc->chlen > c) + if (psenc->chlen > (size_t)c) memmove(psenc->ch, result, psenc->chlen - c); - if (psenc->chlen < c) + if (psenc->chlen < (size_t)c) psenc->chlen = 0; else psenc->chlen -= c; @@ -877,7 +879,7 @@ } if (n == 0) { - if ((result - p) == psenc->chlen) + if ((size_t)(result - p) == psenc->chlen) /* complete shift sequence. */ psenc->chlen = 0; goto restart; @@ -944,7 +946,8 @@ recommendation(_ISO2022EncodingInfo * __restrict ei, _ISO2022Charset * __restrict cs) { - int i, j; + int i; + size_t j; _ISO2022Charset *recommend; /* first, try a exact match. */ ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/JOHAB/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= JOHAB +SHLIB= JOHAB SRCS+= citrus_johab.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/MSKanji/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= MSKanji +SHLIB= MSKanji SRCS+= citrus_mskanji.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/Makefile.inc#2 (text+ko) ==== @@ -4,6 +4,7 @@ SHLIB_MAJOR= 4 CFLAGS+= -I../../libiconv +DEBUG_FLAGS= -g -ggdb LIBDIR= /usr/lib/i18n SRCS+= _iconv.c \ citrus_bcs.c \ @@ -26,4 +27,4 @@ citrus_prop.c \ citrus_stdenc.c -WARNS?= 6 +NO_PROFILE= ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= UES +SHLIB= UES SRCS+= citrus_ues.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UES/citrus_ues.c#6 (text+ko) ==== @@ -198,7 +198,7 @@ _UESState * __restrict psenc, size_t * __restrict nresult) { const char *s0; - int ch, head, tail, i, num; + int ch, head, tail, num; wchar_t hi, wc; if (*s == NULL) { @@ -347,6 +347,7 @@ } /*ARGSUSED*/ +static int _citrus_UES_stdenc_wctocs(_UESEncodingInfo * __restrict ei, _csid_t * __restrict csid, _index_t * __restrict idx, wchar_t wc) { ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= UTF1632 +SHLIB= UTF1632 SRCS+= citrus_utf1632.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF1632/citrus_utf1632.c#7 (text+ko) ==== @@ -248,7 +248,6 @@ wchar_t wc, _UTF1632State *psenc, size_t *nresult) { - int ret; wchar_t wc2; static const char _bom[4] = { 0x00, 0x00, 0xFE, 0xFF, ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF7/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= UTF7 +SHLIB= UTF7 SRCS+= citrus_utf7.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= UTF8 +SHLIB= UTF8 SRCS+= citrus_utf8.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/UTF8/citrus_utf8.c#7 (text+ko) ==== @@ -143,10 +143,10 @@ #define _ENCODING_IS_STATE_DEPENDENT 0 #define _STATE_NEEDS_EXPLICIT_INIT(_ps_) 0 -static int +static size_t _UTF8_findlen(wchar_t v) { - int i; + size_t i; u_int32_t c; c = (u_int32_t)v; /*XXX*/ @@ -192,7 +192,7 @@ { wchar_t wchar; const char *s0; - int c; + uint8_t c; int i; s0 = *s; @@ -254,8 +254,9 @@ _citrus_UTF8_wcrtomb_priv(_UTF8EncodingInfo *ei, char *s, size_t n, wchar_t wc, _UTF8State *psenc, size_t *nresult) { - int cnt, i, ret; + int i, ret; wchar_t c; + size_t cnt; if (_UTF8_surrogate(wc)) { ret = EILSEQ; ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= VIQR +SHLIB= VIQR SRCS+= citrus_viqr.c +WARNS?= 2 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/VIQR/citrus_viqr.c#6 (text+ko) ==== @@ -332,7 +332,7 @@ _VIQRState * __restrict psenc, size_t * __restrict nresult) { mnemonic_t *m; - int ch, escape; + int ch; const char *p; switch (psenc->chlen) { ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= ZW +SHLIB= ZW SRCS+= citrus_zw.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ZW/citrus_zw.c#6 (text+ko) ==== @@ -422,7 +422,7 @@ _csid_t * __restrict csid, _index_t * __restrict idx, wchar_t wc) { - *csid = (_csid_t)(wc <= 0x7FU) ? 0 : 1; + *csid = (_csid_t)(wc <= (wchar_t)0x7FU) ? 0 : 1; *idx = (_index_t)wc; return 0; ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= iconv_none +SHLIB= iconv_none SRCS+= citrus_iconv_none.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_none/citrus_iconv_none.c#6 (text+ko) ==== @@ -84,6 +84,7 @@ _citrus_iconv_none_iconv_init_context(struct _citrus_iconv *cv) { cv->cv_closure = NULL; + return (0); } static void ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= iconv_std +SHLIB= iconv_std SRCS+= citrus_iconv_std.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std.c#6 (text+ko) ==== @@ -415,7 +415,6 @@ { const struct _citrus_iconv_std_shared *is = cv->cv_shared->ci_closure; struct _citrus_iconv_std_context *sc; - int ret; size_t szpssrc, szpsdst, sz; char *ptr; @@ -575,7 +574,6 @@ err: restore_encoding_state(&sc->sc_src_encoding); restore_encoding_state(&sc->sc_dst_encoding); -err_norestore: *invalids = inval; return ret; ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_646/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= mapper_646 +SHLIB= mapper_646 SRCS= citrus_mapper_646.c +WARNS?= 0 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_none/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= mapper_none +SHLIB= mapper_none SRCS+= citrus_mapper_none.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_parallel/Makefile#6 (text+ko) ==== @@ -2,7 +2,9 @@ .PATH: ../../libiconv ../mapper_serial -LIB= mapper_parallel +SHLIB= mapper_parallel SRCS+= citrus_mapper_serial.c +WARNS?= 0 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_serial/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= mapper_serial +SHLIB= mapper_serial SRCS+= citrus_mapper_serial.c +WARNS?= 0 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_std/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= mapper_std +SHLIB= mapper_std SRCS+= citrus_mapper_std.c +WARNS?= 3 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/mapper_zone/Makefile#8 (text+ko) ==== @@ -1,6 +1,8 @@ # $FreeBSD$ -LIB= mapper_zone +SHLIB= mapper_zone SRCS+= citrus_mapper_zone.c +WARNS?= 0 + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/GB/mapper.dir.GB.src#8 (text+ko) ==== @@ -30,7 +30,7 @@ UCS/GB2312:CP936 mapper_parallel UCS/GB2312GBK,UCS/GB2312EXT UCS/GB2312:GBK mapper_parallel UCS/GB2312:CP936,UCS/GB2312UDA1 UCS/GB2312:GB18030 mapper_parallel UCS/GB2312:GBK,UCS/GB2312UDA2 -UCS/GBK mapper_parallel UCS/CP936EXT,UCS/GBKEXT +UCS/GBK mapper_parallel UCS/GBKEXT,UCS/CP936EXT UCS/GBK:GB18030 mapper_parallel UCS/GBK,UCS/GBKUDA UCS/GBKUCS mapper_parallel UCS:BMP/GB18030 UCS/ISO-IR-165 mapper_parallel UCS/ISO-IR-165EXT,UCS/GB2312 ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/Makefile.part#6 (text+ko) ==== @@ -2,7 +2,9 @@ ESUBDIR?= ${CODE} PARTFILE?= ${CODE}.part +.if exists(${PARTFILE}) PART!= sed '/^\#/d;/^$$/d;' ${PARTFILE} +.endif TABLENAME?= ${CODE}-%%PART%%%UCS RTABLENAME?= UCS%${CODE}-%%PART%% From owner-p4-projects@FreeBSD.ORG Mon Aug 3 06:43:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4696B1065674; Mon, 3 Aug 2009 06:43:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 03D13106564A; Mon, 3 Aug 2009 06:43:08 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe06.swip.net [212.247.154.161]) by mx1.freebsd.org (Postfix) with ESMTP id 654948FC0C; Mon, 3 Aug 2009 06:43:07 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=h0kRmlu4ZukA:10 a=MnI1ikcADjEx7bvsp0jZvQ==:17 a=i9i_JOVLNBbsZrb7Xa0A:9 a=jyTFbD829Lu9K3-pXcGnzzU9CqUA:4 Received: from [188.126.201.140] (account mc467741@c2i.net HELO laptop.adsl.tele2.no) by mailfe06.swip.net (CommuniGate Pro SMTP 5.2.13) with ESMTPA id 1287617072; Mon, 03 Aug 2009 08:43:05 +0200 From: Hans Petter Selasky To: Sylvestre Gallon Date: Mon, 3 Aug 2009 08:43:04 +0200 User-Agent: KMail/1.11.4 (FreeBSD/8.0-BETA2; KDE/4.2.4; i386; ; ) References: <200908021336.n72DaLAH004886@repoman.freebsd.org> In-Reply-To: <200908021336.n72DaLAH004886@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200908030843.05408.hselasky@c2i.net> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 166926 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 06:43:09 -0000 On Sunday 02 August 2009 15:36:21 Sylvestre Gallon wrote: > _xxx_ Naming: Try to use isoc and non_isoc instead of _xxx_. --HPS From owner-p4-projects@FreeBSD.ORG Mon Aug 3 07:09:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1297E1065674; Mon, 3 Aug 2009 07:09:43 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C7039106564A for ; Mon, 3 Aug 2009 07:09:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B4AE78FC18 for ; Mon, 3 Aug 2009 07:09:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7379g6h070529 for ; Mon, 3 Aug 2009 07:09:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7379gRE070527 for perforce@freebsd.org; Mon, 3 Aug 2009 07:09:42 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 3 Aug 2009 07:09:42 GMT Message-Id: <200908030709.n7379gRE070527@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166957 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 07:09:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=166957 Change 166957 by hselasky@hselasky_laptop001 on 2009/08/03 07:09:06 USB input: - patch for cordump slowdown. Use microtime() instead of DELAY(). Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#25 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#25 (text+ko) ==== @@ -170,6 +170,7 @@ int32_t sc_state; /* shift/lock key state */ int32_t sc_accents; /* accent key index (> 0) */ + uint16_t sc_microtime; /* used when polling */ uint16_t sc_inputs; uint16_t sc_inputhead; uint16_t sc_inputtail; @@ -302,18 +303,32 @@ static void ukbd_do_poll(struct ukbd_softc *sc, uint8_t wait) { + struct timeval tv; + uint16_t temp; + DPRINTFN(2, "polling\n"); while (sc->sc_inputs == 0) { usbd_transfer_poll(sc->sc_xfer, UKBD_N_TRANSFER); - DELAY(1000); /* delay 1 ms */ + microtime(&tv); - sc->sc_time_ms++; + temp = tv.tv_usec / 25000; /* support repetition of keys: */ + if (sc->sc_microtime != temp) { + + /* wait for next delta */ + + sc->sc_microtime = temp; + + /* 25 milliseconds have passed */ + + sc->sc_time_ms += 25; + } + ukbd_interrupt(sc); if (!wait) From owner-p4-projects@FreeBSD.ORG Mon Aug 3 07:12:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7E0D51065675; Mon, 3 Aug 2009 07:12:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3E46D1065673 for ; Mon, 3 Aug 2009 07:12:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2BF918FC12 for ; Mon, 3 Aug 2009 07:12:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n737CkQI070831 for ; Mon, 3 Aug 2009 07:12:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n737CkSh070829 for perforce@freebsd.org; Mon, 3 Aug 2009 07:12:46 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 3 Aug 2009 07:12:46 GMT Message-Id: <200908030712.n737CkSh070829@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166958 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 07:12:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=166958 Change 166958 by hselasky@hselasky_laptop001 on 2009/08/03 07:12:40 IFC Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#26 integrate Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#26 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/input/ukbd.c,v 1.15 2009/07/30 00:14:34 alfred Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/input/ukbd.c,v 1.16 2009/08/02 14:28:40 attilio Exp $"); /*- @@ -760,7 +760,7 @@ uint16_t n; uint16_t hid_len; - mtx_assert(&Giant, MA_OWNED); + mtx_lock(&Giant); kbd_init_struct(kbd, UKBD_DRIVER_NAME, KB_OTHER, unit, 0, 0, 0); @@ -869,9 +869,6 @@ if (bootverbose) { genkbd_diag(kbd, bootverbose); } - /* lock keyboard mutex */ - - mtx_lock(&Giant); /* start the keyboard */ @@ -894,7 +891,7 @@ struct ukbd_softc *sc = device_get_softc(dev); int error; - mtx_assert(&Giant, MA_OWNED); + mtx_lock(&Giant); DPRINTF("\n"); @@ -931,6 +928,8 @@ usb_callout_drain(&sc->sc_callout); + mtx_unlock(&Giant); + DPRINTF("%s: disconnected\n", device_get_nameunit(dev)); @@ -942,9 +941,9 @@ { struct ukbd_softc *sc = device_get_softc(dev); - mtx_assert(&Giant, MA_OWNED); - + mtx_lock(&Giant); ukbd_clear_state(&sc->sc_kbd); + mtx_unlock(&Giant); return (0); } From owner-p4-projects@FreeBSD.ORG Mon Aug 3 07:59:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EAB7F1065675; Mon, 3 Aug 2009 07:59:37 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA6CB106564A for ; Mon, 3 Aug 2009 07:59:37 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 96E418FC1E for ; Mon, 3 Aug 2009 07:59:37 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n737xbUm098355 for ; Mon, 3 Aug 2009 07:59:37 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n737xbDF098351 for perforce@freebsd.org; Mon, 3 Aug 2009 07:59:37 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 3 Aug 2009 07:59:37 GMT Message-Id: <200908030759.n737xbDF098351@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 166959 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 07:59:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=166959 Change 166959 by dforsyth@squirrel on 2009/08/03 07:58:58 Start building pkg_info. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#41 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#36 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_command.c#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db.c#9 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb.c#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_error.h#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.c#12 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#3 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#16 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#13 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#27 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#8 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#41 (text+ko) ==== @@ -109,7 +109,7 @@ pkg_name(struct pkg *p) { pkg_check_magic(p, __func__); - if (pkg_parse_manifest(p) != OK) + if (pkg_parse_manifest(p) != PKG_OK) return (NULL); return (pkg_manifest_name(p->pm)); @@ -122,7 +122,7 @@ pkg_origin(struct pkg *p) { pkg_check_magic(p, __func__); - if (p->in_db != NULL && (pkg_parse_manifest(p) & NOT_OK)) + if (p->in_db != NULL && (pkg_parse_manifest(p) & PKG_NOT_OK)) return (NULL); return (pkg_manifest_origin(p->pm)); @@ -156,9 +156,9 @@ pkg_check_magic(p, __func__); - status = OK; + status = PKG_OK; status |= pkg_manifest_set_name(p->pm, name); - if (status != OK || p->in_db == NULL) + if (status != PKG_OK || p->in_db == NULL) return (status); /* Update manifest in db. */ return (status); @@ -173,9 +173,9 @@ pkg_check_magic(p, __func__); - status = OK; + status = PKG_OK; status |= pkg_manifest_set_origin(p->pm, origin); - if (status != OK || p->in_db == NULL) + if (status != PKG_OK || p->in_db == NULL) return (status); /* Update manifest in db. */ return (status); @@ -208,7 +208,7 @@ return (p->description); if (p->description == NULL && - pkg_read_pkg_element_from_db(p, PKG_ELEM_DESCRIPTION) != OK) + pkg_read_pkg_element_from_db(p, PKG_ELEM_DESCRIPTION) != PKG_OK) return (NULL); return (p->description); } @@ -288,7 +288,7 @@ pkg_check_magic(src, __func__); pkg_check_magic(dest, __func__); - status = OK; + status = PKG_OK; pkg_reset(dest); status |= pkg_set_ident(dest, src->ident); status |= pkg_set_comment(dest, src->comment); @@ -298,7 +298,7 @@ return (status); pm = pkg_manifest_new(); if (pm == NULL) - status |= MEMORY_ERR; + status |= PKG_MEMORY_ERR; else { status |= pkg_manifest_clone(pm, src->pm); dest->pm = pm; @@ -346,6 +346,26 @@ return (pkg_manifest_pkg_conflict_list(p->pm)); } +const char *const * +pkg_execs(struct pkg *p) +{ + pkg_check_magic(p, __func__); + if (p->pm == NULL && p->in_db != NULL) + pkg_parse_manifest(p); + + return (pkg_manifest_install_pkg_command_list(p->pm)); +} + +const char *const * +pkg_unexecs(struct pkg *p) +{ + pkg_check_magic(p, __func__); + if (p->pm == NULL && p->in_db != NULL) + pkg_parse_manifest(p); + + return (pkg_manifest_deinstall_pkg_command_list(p->pm)); +} + /* Add a file to a package. This is fairly useless at this point * because... well, there the hell is the file coming from? */ @@ -359,7 +379,7 @@ /* TODO: Add some sanity checks in here. */ - status = OK; + status = PKG_OK; pkg_parse_manifest(p); status |= pkg_manifest_insert_pkg_file(p->pm, path, md5, cwd, mode, owner, group); @@ -481,12 +501,12 @@ /* Manifest has been parsed already. */ if (p->pm != NULL) - return (OK); + return (PKG_OK); - status = OK; + status = PKG_OK; p->pm = pkg_manifest_new(); if (p->pm == NULL) - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); pkg_manifest_reset(p->pm); if (p->in_db != NULL) { status |= pkg_read_pkg_element_from_db(p, PKG_ELEM_MANIFEST); @@ -511,7 +531,7 @@ { pkg_check_magic(p, __func__); p->ident = ident_ptr; - return (OK); + return (PKG_OK); } int @@ -519,7 +539,7 @@ { pkg_check_magic(p, __func__); p->comment = comment_ptr; - return (OK); + return (PKG_OK); } int @@ -527,7 +547,7 @@ { pkg_check_magic(p, __func__); p->description = description_ptr; - return (OK); + return (PKG_OK); } int @@ -535,7 +555,7 @@ { pkg_check_magic(p, __func__); p->display = display_ptr; - return (OK); + return (PKG_OK); } int @@ -543,7 +563,7 @@ { pkg_check_magic(p, __func__); p->required_by = required_by_ptr; - return (OK); + return (PKG_OK); } int @@ -551,7 +571,7 @@ { pkg_check_magic(p, __func__); p->mtree_dirs = mtree_dirs_ptr; - return (OK); + return (PKG_OK); } int @@ -559,7 +579,7 @@ { pkg_check_magic(p, __func__); p->pm = pm_ptr; - return (OK); + return (PKG_OK); } int @@ -567,7 +587,7 @@ { pkg_check_magic(p, __func__); p->in_db = db; - return (OK); + return (PKG_OK); } int ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#36 (text+ko) ==== @@ -14,9 +14,9 @@ /* General Errors. */ -#define OK 0x00000000 -#define NOT_OK 0x00000001 -#define MEMORY_ERR 0x00000002 +#define PKG_OK 0x00000000 +#define PKG_NOT_OK 0x00000001 +#define PKG_MEMORY_ERR 0x00000002 #define FOREACH_PKG_IN_DB(p, db, list) \ while (*list != NULL && (p = pkg_db_select_pkg(db, *list++))) @@ -57,6 +57,8 @@ const char *const *pkg_files(struct pkg *p); const char *const *pkg_depends(struct pkg *p); const char *const *pkg_conflicts(struct pkg *p); +const char *const *pkg_execs(struct pkg *p); +const char *const *pkg_unexecs(struct pkg *p); int pkg_insert_pkg_file(struct pkg *p, const char *path, const char *cwd, const char *group, const char *md5, const char *mode, ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_command.c#3 (text+ko) ==== @@ -61,7 +61,7 @@ { pkg_command_check_magic(pe, __func__); pe->type = type; - return (OK); + return (PKG_OK); } int ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db.c#9 (text+ko) ==== @@ -53,7 +53,7 @@ int status; if (db->open) - return (OK); + return (PKG_OK); db->db_type = db_type; @@ -68,7 +68,7 @@ break; default: /* Bad type. */ - return (NOT_OK); + return (PKG_NOT_OK); } return (db->pkg_db_db_open(db, db_root)); @@ -84,7 +84,7 @@ db->open = 0; - return (OK); + return (PKG_OK); } void @@ -130,7 +130,7 @@ pkg_db_check_magic(db, __func__); /* do work. */ - return (OK); + return (PKG_OK); } /* Copy a package into a database. */ @@ -141,7 +141,6 @@ int status; char **list; struct pkg *entries; - if (db->pkg_count % 10 == 0) { entries = db->pkg_entries; list = db->pkg_list; ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb.c#7 (text+ko) ==== @@ -40,31 +40,31 @@ if (db->open) - return (OK); + return (PKG_OK); status = lstat(db_root, &sb); if (status < 0 || !S_ISDIR(sb.st_mode) || S_ISLNK(sb.st_mode)) - return (NOT_OK); + return (PKG_NOT_OK); db->db_root = strdup(db_root); if (db->db_root == NULL) - return (NOT_OK | MEMORY_ERR); + return (PKG_NOT_OK | PKG_MEMORY_ERR); - status = OK; + status = PKG_OK; c = scandir(db->db_root, &ents, pkg_dir_select, alphasort); if (c < 1) - return (NOT_OK | MEMORY_ERR); + return (PKG_NOT_OK | PKG_MEMORY_ERR); p = pkg_new(); for (i = 0; i < c; ++i) { status |= pkg_set_ident(p, ents[i]->d_name); status |= pkg_db_insert_pkg_entry(db, p); - if (status & NOT_OK) { + if (status & PKG_NOT_OK) { pkg_db_clear_pkg_entries(db); for (; i < c; ++i) free(ents[i]); free(ents); - return (NOT_OK | MEMORY_ERR); + return (PKG_NOT_OK | PKG_MEMORY_ERR); } free(ents[i]); pkg_reset(p); @@ -89,10 +89,10 @@ char *path; int status; - status = OK; + status = PKG_OK; ident = pkg_ident(p); if (ident == NULL) - return (NOT_OK); + return (PKG_NOT_OK); path = path_build(ident, COMMENT_FILE); status |= pkg_set_comment(p,pkg_db_hierdb_read_file_to_text(db, path)); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#3 (text+ko) ==== @@ -43,7 +43,7 @@ { int status; - status = OK; + status = PKG_OK; switch (element) { case (PKG_ELEM_COMMENT): status = pkg_db_hierdb_read_comment_to_pkg(db, p); @@ -64,7 +64,7 @@ status = pkg_db_hierdb_read_required_by_to_pkg(db, p); break; default: - status = NOT_OK; + status = PKG_NOT_OK; break; } @@ -99,7 +99,7 @@ char *text; struct stat sb; - status = OK; + status = PKG_OK; dir = path_build(db->db_root, p->ident); path = path_build(dir, filename); @@ -145,16 +145,16 @@ char *text; if (!pkg_db_hierdb_file_exists(db, p, COMMENT_FILE)) - return (NOT_OK); + return (PKG_NOT_OK); text = pkg_db_hierdb_read_file_to_text(db, p, COMMENT_FILE); if (text == NULL) - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); pkg_util_trim_newline(text); __pkg_set_comment_ptr(p, text); - return (OK); + return (PKG_OK); } static int @@ -163,16 +163,16 @@ char *text; if (!pkg_db_hierdb_file_exists(db, p, DESCRIPTION_FILE)) - return (NOT_OK); + return (PKG_NOT_OK); text = pkg_db_hierdb_read_file_to_text(db, p, DESCRIPTION_FILE); if (text == NULL) - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); pkg_util_trim_newline(text); __pkg_set_description_ptr(p, text); - return (OK); + return (PKG_OK); } static int @@ -181,16 +181,16 @@ char *text; if (!pkg_db_hierdb_file_exists(db, p, DISPLAY_FILE)) - return (NOT_OK); + return (PKG_NOT_OK); text = pkg_db_hierdb_read_file_to_text(db, p, DISPLAY_FILE); if (text == NULL) - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); pkg_util_trim_newline(text); __pkg_set_display_ptr(p, text); - return (OK); + return (PKG_OK); } static int @@ -199,16 +199,16 @@ char *text; if (!pkg_db_hierdb_file_exists(db, p, MTREE_DIRS_FILE)) - return (NOT_OK); + return (PKG_NOT_OK); text = pkg_db_hierdb_read_file_to_text(db, p, MTREE_DIRS_FILE); if (text == NULL) - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); pkg_util_trim_newline(text); __pkg_set_mtree_dirs_ptr(p, text); - return (OK); + return (PKG_OK); } static int @@ -217,22 +217,21 @@ char *text; if (!pkg_db_hierdb_file_exists(db, p, REQUIRED_BY_FILE)) - return (NOT_OK); + return (PKG_NOT_OK); text = pkg_db_hierdb_read_file_to_text(db, p, REQUIRED_BY_FILE); if (text == NULL) - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); pkg_util_trim_newline(text); __pkg_set_required_by_ptr(p, text); - return (OK); + return (PKG_OK); } static int pkg_db_hierdb_read_pkg_manifest_to_pkg(struct pkg_db *db, struct pkg *p) { - char *text; FILE *manifest_stream; int manifest_type; int status; @@ -241,11 +240,11 @@ /* Assume PLIST for now, because I want to go to sleep. */ if (!pkg_db_hierdb_file_exists(db, p, CONTENTS_FILE)) - return (NOT_OK); + return (PKG_NOT_OK); /* Open a stream. */ manifest_stream = pkg_db_hierdb_open_file_stream_read(db, p, CONTENTS_FILE); - status = OK; + status = PKG_OK; switch(manifest_type) { case (PLIST): status = pkg_manifest_parse_plist_from_stream(p->pm, manifest_stream); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_error.h#4 (text+ko) ==== @@ -1,9 +1,9 @@ #ifndef __PKG_ERROR_H__ #define __PKG_ERROR_H__ -#define OK 0x00000000 -#define NOT_OK 0x00000001 -#define MEMORY_ERR 0x00000002 +#define PKG_OK 0x00000000 +#define PKG_NOT_OK 0x00000001 +#define PKG_MEMORY_ERR 0x00000002 void pkg_error_msg(const char *errmsg); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_file.c#12 (text+ko) ==== @@ -153,7 +153,7 @@ { pkg_file_check_magic(pf, __func__); pf->ignore = 1; - return (OK); + return (PKG_OK); } int @@ -161,7 +161,7 @@ { pkg_file_check_magic(pf, __func__); pf->ignore = 0; - return (OK); + return (PKG_OK); } int ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#3 (text+ko) ==== @@ -208,6 +208,18 @@ return ((const char *const *)pm->pkg_file_list); } +const char *const * +pkg_manifest_install_pkg_command_list(struct pkg_manifest *pm) +{ + return ((const char *const *)pm->pkg_install_list); +} + +const char *const * +pkg_manifest_deinstall_pkg_command_list(struct pkg_manifest *pm) +{ + return ((const char *const *)pm->pkg_deinstall_list); +} + int pkg_manifest_insert_pkg_conflict(struct pkg_manifest *pm, const char *name, const char *version) @@ -230,11 +242,11 @@ if (pm->pkg_conflict_list == NULL || pm->pkg_conflict_entries == NULL) { pm->pkg_conflict_list = list; pm->pkg_conflict_entries = conflicts; - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); } } - status = OK; + status = PKG_OK; pc = &pm->pkg_conflict_entries[pm->pkg_conflict_count]; pkg_conflict_init(pc); @@ -269,11 +281,11 @@ if (pm->pkg_depend_list == NULL || pm->pkg_depend_entries == NULL) { pm->pkg_depend_list = list; pm->pkg_depend_entries = depends; - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); } } - status = OK; + status = PKG_OK; pd = &pm->pkg_depend_entries[pm->pkg_depend_count]; @@ -312,11 +324,11 @@ if (pm->pkg_file_list == NULL || pm->pkg_file_entries == NULL) { pm->pkg_file_list = list; pm->pkg_file_entries = files; - return (MEMORY_ERR | NOT_OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); } } - status = OK; + status = PKG_OK; pf = &pm->pkg_file_entries[pm->pkg_file_count]; pkg_file_init(pf); @@ -333,16 +345,84 @@ return (status); } +/* XXX: This method of storing commands is pretty much unacceptable. Take a look at + * previous attempts at a package library or try to devise a new way of storing this + * information. */ + int pkg_manifest_insert_install_pkg_command(struct pkg_manifest *pm, int type, const char *argument) { - return (0); + int status; + char **list; + struct pkg_command *commands; + struct pkg_command *pe; + + if (argument == NULL) { + pkg_error_msg(""); + rage_quit(); + } + + if (pm->pkg_install_count % 10 == 0) { + list = pm->pkg_install_list; + commands = pm->pkg_install_entries; + pm->pkg_install_list = realloc(list, sizeof(*list) * (pm->pkg_install_count + 11)); + pm->pkg_install_entries = realloc(commands, sizeof(*commands) * (pm->pkg_install_count + 11)); + if (pm->pkg_install_list == NULL || pm->pkg_install_entries == NULL) { + pm->pkg_install_list = list; + pm->pkg_install_entries = commands; + return (PKG_MEMORY_ERR | PKG_NOT_OK); + } + } + + status = PKG_OK; + + pe = &pm->pkg_install_entries[pm->pkg_install_count]; + pkg_command_init(pe); + status |= pkg_command_set_type(pe, type); + status |= pkg_command_set_argument(pe, argument); + + pm->pkg_install_list[pm->pkg_install_count++] = pkg_command_argument(pe); + pm->pkg_install_list[pm->pkg_install_count] = NULL; + + return (status); } int pkg_manifest_insert_deinstall_pkg_command(struct pkg_manifest *pm, int type, const char *argument) { - return (0); + int status; + char **list; + struct pkg_command *commands; + struct pkg_command *pe; + + if (argument == NULL) { + pkg_error_msg(""); + rage_quit(); + } + + if (pm->pkg_deinstall_count % 10 == 0) { + list = pm->pkg_deinstall_list; + commands = pm->pkg_deinstall_entries; + pm->pkg_deinstall_list = realloc(list, sizeof(*list) * (pm->pkg_deinstall_count + 11)); + pm->pkg_deinstall_entries = realloc(commands, sizeof(*commands) * (pm->pkg_deinstall_count + 11)); + if (pm->pkg_deinstall_list == NULL || pm->pkg_deinstall_entries == NULL) { + pm->pkg_deinstall_list = list; + pm->pkg_deinstall_entries = commands; + return (PKG_MEMORY_ERR | PKG_NOT_OK); + } + } + + status = PKG_OK; + + pe = &pm->pkg_deinstall_entries[pm->pkg_deinstall_count]; + pkg_command_init(pe); + status |= pkg_command_set_type(pe, type); + status |= pkg_command_set_argument(pe, argument); + + pm->pkg_deinstall_list[pm->pkg_deinstall_count++] = pkg_command_argument(pe); + pm->pkg_deinstall_list[pm->pkg_deinstall_count] = NULL; + + return (status); } void ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#3 (text+ko) ==== @@ -150,6 +150,10 @@ const char *const *pkg_manifest_pkg_file_list(struct pkg_manifest *pm); +const char *const *pkg_manifest_install_pkg_command_list(struct pkg_manifest *pm); + +const char *const *pkg_manifest_deinstall_pkg_command_list(struct pkg_manifest *pm); + struct pkg_conflict *pkg_manifest_select_pkg_conflict(struct pkg_manifest *pm, const char *name); struct pkg_depend *pkg_manifest_select_pkg_depend(struct pkg_manifest *pm, const char *name); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#3 (text+ko) ==== @@ -104,13 +104,14 @@ char *p; char *line; char *buff; + char *buffp; struct plist_parse_state st; int status; - status = OK; + status = PKG_OK; pkg_manifest_reset(pm); parse_state_set_default(&st); - buff = strdup(manifest_text); + buffp = buff = strdup(manifest_text); /* TODO: If we keep this, write a getline function for it. */ for (p = buff; *p != '\0'; p++) { if (*p == '\n') { @@ -118,7 +119,7 @@ line[p - buff] = '\0'; status = pkg_manifest_parse_plist_parse_line(pm, line, &st); /* - if (status != OK) { + if (status != PKG_OK) { pkg_manifest_reset(pm); free(buff); return (status); @@ -127,7 +128,7 @@ buff = p + 1; } } - // free(buff); + free(buffp); return (0); } @@ -139,19 +140,19 @@ struct plist_parse_state st; int status; - status = OK; + status = PKG_OK; pkg_manifest_reset(pm); parse_state_set_default(&st); while (fgets(line, LINE_MAX, manifest_stream) != NULL) { status |= pkg_manifest_parse_plist_parse_line(pm, line, &st); - /* - if (status != OK) { - printf("bad line: %s\n", line); + if (status != PKG_OK) { + /* TODO: Do something usefull here. */ + fprintf(stderr, "bad line: %s\n", line); } - */ + } - return (OK); + return (PKG_OK); } static int @@ -214,7 +215,7 @@ struct pkg_file *lpf; struct pkg_depend *lpd; - status = OK; + status = PKG_OK; argc = sscanf(line, "%s %[^\n]", cmd, argument); if (argc == 1 && line[0] != PLIST_PRE_CMD) { cmd_id = PM_FILE; @@ -222,7 +223,7 @@ else if (line[0] == PLIST_PRE_CMD) cmd_id = pkg_manifest_parse_plist_identify_plist_cmd(cmd + 1); else { - return (NOT_OK); + return (PKG_NOT_OK); } if (cmd_id < PM_COMMENT) { @@ -242,7 +243,7 @@ } if (strlen(argument) == 0) { pkg_error_msg("emtpy srdir command."); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_util_strdup(isolate, &pm->srcdir); @@ -250,7 +251,7 @@ case (PM_EXEC): if (strlen(argument) == 0) { pkg_error_msg("empty exec"); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_manifest_insert_install_pkg_command(pm, PM_EXEC, argument); @@ -258,7 +259,7 @@ case (PM_UNEXEC): if (strlen(argument) == 0) { pkg_error_msg("empty exec"); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_manifest_insert_deinstall_pkg_command(pm, PM_UNEXEC, argument); @@ -270,7 +271,7 @@ case (PM_OPTION): if (strlen(argument) == 0) { pkg_error_msg("empty option."); - status = NOT_OK; + status = PKG_NOT_OK; break; } if (strcmp(isolate, PLIST_OPTION_EXTRACT_IN_PLACE) == 0) @@ -281,7 +282,7 @@ pm->preserve = 1; else { pkg_error_msg("bad option."); - status = NOT_OK; + status = PKG_NOT_OK; } break; case (PM_OWNER): @@ -306,7 +307,7 @@ /* Do not support pkg names with spaces. */ if (strlen(isolate) == 0) { pkg_error_msg("empty name command."); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_util_strdup(isolate, &pm->name); @@ -314,7 +315,7 @@ case (PM_DIRRM): if (strlen(isolate) == 0) { pkg_error_msg("empty dirrm command."); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_manifest_insert_deinstall_pkg_command(pm, PM_DIRRM, isolate); @@ -322,7 +323,7 @@ case (PM_MTREE): if (strlen(isolate) == 0) { pkg_error_msg("empty mtree command."); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_util_strdup(isolate, &pm->mtree_file); @@ -330,7 +331,7 @@ case (PM_DISPLAY): if (strlen(isolate) == 0) { pkg_error_msg("empty display command."); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_util_strdup(isolate, &pm->display_file); @@ -338,7 +339,7 @@ case (PM_PKGDEP): if (strlen(isolate) == 0) { pkg_error_msg("empty pkgdep command."); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_manifest_insert_pkg_depend(pm, isolate, NULL); @@ -347,7 +348,7 @@ case (PM_CONFLICTS): if (strlen(isolate) == 0) { pkg_error_msg("empty conflict command."); - status = NOT_OK; + status = PKG_NOT_OK; break; } status = pkg_manifest_insert_pkg_conflict(pm, isolate, NULL); @@ -363,12 +364,12 @@ } else if (sscanf(argument, "DEPORIGIN:%s %[^\n]", isolate, trail) >= 1) { if (st->last_rel_depend == NULL) { pkg_error_msg("misplaced meta comment: deporigin."); - status = NOT_OK; + status = PKG_NOT_OK; break; } if (strlen(isolate) == 0) { pkg_error_msg("empty meta comment: deporigin"); - status = NOT_OK; + status = PKG_NOT_OK; break; } lpd = pkg_manifest_select_pkg_depend(pm, st->last_rel_depend); @@ -376,12 +377,12 @@ } else if (sscanf(argument, "MD5:%s %[^\n]", isolate, trail) >= 1) { if (st->last_rel_file == NULL) { pkg_error_msg("misplace meta comment: md5."); - status = NOT_OK; + status = PKG_NOT_OK; break; } if (strlen(isolate) == 0) { pkg_error_msg("empty meta comment: md5"); - status = NOT_OK; + status = PKG_NOT_OK; break; } lpf = pkg_manifest_select_pkg_file(pm, st->last_rel_file); @@ -402,7 +403,7 @@ case (PM_UNKNOWN): default: /* Unidentified command. */ - status = NOT_OK; + status = PKG_NOT_OK; break; } ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#16 (text+ko) ==== @@ -42,8 +42,8 @@ { *dest = (src != NULL) ? strdup(src) : NULL; if (src != NULL && *dest == NULL) - return (MEMORY_ERR | NOT_OK); - return (OK); + return (PKG_MEMORY_ERR | PKG_NOT_OK); + return (PKG_OK); } int @@ -110,6 +110,8 @@ const char *const *files; const char *const *conflicts; const char *const *depends; + const char *const *install_list; + const char *const *deinstall_list; const char *ident; const char *comment; @@ -214,4 +216,18 @@ fprintf(stream, "\ndescription:\n"); fprintf(stream, "%s\n", (desc != NULL ? desc : "None")); + + /* For now, just to show that it works, dump the "keys" */ + install_list = pkg_execs(p); + printf("\nEXEC:\n"); + if (install_list != NULL) + while (*install_list != NULL) + printf("%s\n", *install_list++); + + deinstall_list = pkg_unexecs(p); + printf("\nUNEXEC:\n"); + if (deinstall_list != NULL) + while (*deinstall_list != NULL) + printf("%s\n", *deinstall_list++); + printf("\n"); } ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#13 (text+ko) ==== @@ -17,4 +17,10 @@ void rage_quit(void); +#define APPEND_TO_ARRAY_AND_LIST(struct_type, entries, list, tmp_entries, tmp_list, current_count, increase) \ + tmp_list = list; \ + tmp_entries = entries; \ + list = realloc(tmp_list, sizeof(*tmp_list) * (current_count + increase)); \ + entries = realloc(tmp_entries, sizeof(tmp_entries) * (current_count + increase)); + #endif ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#27 (text+ko) ==== @@ -6,35 +6,23 @@ #include "pkg.h" #include "pkg_info.h" -/* DEBUG */ -short opt_debug_dump = 0; /* M */ +#define OK 0 +#define NOT_OK 1 + +void perform_on_db(struct pkg_db *db); +int print_pkg_information(struct pkg *p); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 3 12:37:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 135F410656C5; Mon, 3 Aug 2009 12:37:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B2638106564A for ; Mon, 3 Aug 2009 12:37:54 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2BD2C8FC13 for ; Mon, 3 Aug 2009 12:37:51 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73Cbp3O034522 for ; Mon, 3 Aug 2009 12:37:51 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73CboGC034520 for perforce@freebsd.org; Mon, 3 Aug 2009 12:37:50 GMT (envelope-from zec@fer.hr) Date: Mon, 3 Aug 2009 12:37:50 GMT Message-Id: <200908031237.n73CboGC034520@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 166961 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 12:37:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=166961 Change 166961 by zec@zec_tpx32 on 2009/08/03 12:37:40 Introduce socreate_vnet() function, which allows for sockets to be created in a vnet different from the current administrative vnet, i.e. the one defined by the curthread's ucred. Force RPC sockets to always beceme open in vnet0, which should allow NFS client mounts created in vnet0 to be accessible from non-default vnets. Ideally, NFS mounts would keep track in which vnet they have been created, in which case we wouldn't have to hardcode NFS to vnet0. Note that there's still nothing to prevent NFS mounts to be requested from non-default vnets, which will most probably never succed, and / or lead to cross-vnet leaks, and / or may lead to panics. Hence, we should impose some barriers to jailed processes from requesting any NFS mount / export operations. Affected files ... .. //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#30 edit .. //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#5 edit .. //depot/projects/vimage-commit2/src/sys/sys/socketvar.h#9 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#30 (text+ko) ==== @@ -342,6 +342,24 @@ socreate(int dom, struct socket **aso, int type, int proto, struct ucred *cred, struct thread *td) { + +#ifndef VIMAGE + return (socreate_vnet(dom, aso, type, proto, cred, td, NULL); +#else + return (socreate_vnet(dom, aso, type, proto, cred, td, + CRED_TO_VNET(cred))); +#endif +} + +/* + * socreate_vnet returns a socket with a ref count of 1 in a vnet possibly + * different from CRED_TO_VNET(cred). The socket should be closed with + * soclose(). + */ +int +socreate_vnet(int dom, struct socket **aso, int type, int proto, + struct ucred *cred, struct thread *td, struct vnet *vnet) +{ struct protosw *prp; struct socket *so; int error; @@ -360,7 +378,7 @@ if (prp->pr_type != type) return (EPROTOTYPE); - so = soalloc(CRED_TO_VNET(cred)); + so = soalloc(vnet); if (so == NULL) return (ENOBUFS); ==== //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#5 (text+ko) ==== @@ -258,8 +258,8 @@ return 0; so = NULL; - error = socreate(si.si_af, &so, si.si_socktype, si.si_proto, - curthread->td_ucred, curthread); + error = socreate_vnet(si.si_af, &so, si.si_socktype, si.si_proto, + curthread->td_ucred, curthread, vnet0); if (error) return NULL; ==== //depot/projects/vimage-commit2/src/sys/sys/socketvar.h#9 (text+ko) ==== @@ -329,6 +329,8 @@ int socow_setup(struct mbuf *m0, struct uio *uio); int socreate(int dom, struct socket **aso, int type, int proto, struct ucred *cred, struct thread *td); +int socreate_vnet(int dom, struct socket **aso, int type, int proto, + struct ucred *cred, struct thread *td, struct vnet *vnet); int sodisconnect(struct socket *so); struct sockaddr *sodupsockaddr(const struct sockaddr *sa, int mflags); void sofree(struct socket *so); From owner-p4-projects@FreeBSD.ORG Mon Aug 3 13:42:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BDEA41065673; Mon, 3 Aug 2009 13:42:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FB721065670 for ; Mon, 3 Aug 2009 13:42:01 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6DBC88FC14 for ; Mon, 3 Aug 2009 13:42:01 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73Dg11c050187 for ; Mon, 3 Aug 2009 13:42:01 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73Dg1j9050185 for perforce@freebsd.org; Mon, 3 Aug 2009 13:42:01 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 3 Aug 2009 13:42:01 GMT Message-Id: <200908031342.n73Dg1j9050185@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 166963 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 13:42:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=166963 Change 166963 by rene@rene_self on 2009/08/03 13:41:11 MFen handbook/desktop 1.87 -> 1.89 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#18 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#18 (text+ko) ==== @@ -2,10 +2,9 @@ The FreeBSD Dutch Documentation Project $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml,v 1.19 2009/04/10 22:11:37 rene Exp $ - $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml,v 1.37 2006/08/25 16:14:06 remko Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/desktop/chapter.sgml - %SRCID% 1.87 + %SRCID% 1.89 --> @@ -132,7 +131,7 @@ van deze complete bureaubladen. Lichtgewicht browsers uit de Portscollectie zijn onder andere - www/dillo, + www/dillo2, www/links of www/w3m. @@ -272,27 +271,55 @@ van de plugin te draaien. Deze wrapper ondersteunt ook &adobe; &acrobat; plugin, &realplayer; plugin en meer. - - De volgende tekst behandelt de installatie van &flash; 9.X - op een recente -STABLE-tak, &os; 7.1-RELEASE en verder. Als u - een oudere versie van &os; draait of problemen tegenkomt, - dient u www/linux-flashplugin7 te - installeren en het gedeelte over &man.linprocfs.5; over te - slaan. - + Afhankelijk van de versie van &os; die u draait zijn er + verschillende stappen nodig: + + + + Op &os; 7.X + + Installeer de port www/nspluginwrapper. Deze port heeft + emulators/linux_base-fc4 nodig, + wat een grote port is. + + De volgende stap is om de port www/linux-flashplugin9 te installeren. + Dit zal &flash; 9.X installeren, van deze versie is bekend dat + die correct werkt op &os; 7.X. + + + Op versies van &os; ouder dan 7.1-RELEASE dient u www/linux-flashplugin7 te installeren + en het gedeelte over &man.linprocfs.5; hieronder over te + slaan. + + + + + Op &os; 8.X + + Installeer de port www/nspluginwrapper. Deze port heeft + emulators/linux_base-f10 nodig, + wat een grote port is. + + De volgende stap is om de port www/linux-f10-flashplugin10 te + installeren. Dit zal &flash; 10.X installeren, van deze versie + is bekend dat die correct werkt op &os; 8.X. + + Voor deze versie is het nodig om de volgende koppeling aan te + maken: - Installeer de port www/nspluginwrapper. Deze is - afhankelijk van emulators/linux_base-fc4 wat een - grote port is. + &prompt.root; ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \ + /usr/local/lib/browser_plugins/ + + - De volgende stap is het installeren van de port www/linux-flashplugin9. Zodra de - plugin geïnstalleerd is, moet de plugin door elke gebruiker - geïnstalleerd worden met - nspluginwrapper: + Wanneer de juiste &flash; port, afhankelijk van de versie van &os; + die u draait, is geïnstalleerd, moet de plugin door elke gebruiker + worden geïnstalleerd met nspluginwrapper: &prompt.user; nspluginwrapper -v -a -i From owner-p4-projects@FreeBSD.ORG Mon Aug 3 14:06:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D30721065675; Mon, 3 Aug 2009 14:06:28 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 90DB51065673 for ; Mon, 3 Aug 2009 14:06:28 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 64AA38FC08 for ; Mon, 3 Aug 2009 14:06:28 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73E6SS3053067 for ; Mon, 3 Aug 2009 14:06:28 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73E6SoV053065 for perforce@freebsd.org; Mon, 3 Aug 2009 14:06:28 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 3 Aug 2009 14:06:28 GMT Message-Id: <200908031406.n73E6SoV053065@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 166965 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 14:06:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=166965 Change 166965 by rene@rene_self on 2009/08/03 14:06:11 MFen handbook/disks 1.290 -> 1.291 Remove old $FreeBSDnl$ line Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#10 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#10 (text+ko) ==== @@ -2,10 +2,9 @@ The FreeBSD Dutch Documentation Project $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml,v 1.12 2008/12/28 16:50:53 rene Exp $ - $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml,v 1.35 2006/01/05 21:21:23 siebrand Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/disks/chapter.sgml - %SRCID% 1.290 + %SRCID% 1.291 --> @@ -881,6 +880,7 @@ device pass device uhci device ohci +device ehci device usb device umass @@ -889,10 +889,12 @@ USB-apparaat wordt door het systeem als een SCSI-apparaat gezien. Afhankelijk van de chipset op het moederbord is slechts òf device uhci òf - device ohci nodig. Het kan echter geen - kwaad om ze beiden in het kernelinstellingenbestand te hebben. - Indien er regels zijn toegevoegd dient de kernel opnieuw - gecompileerd en geïnstalleerd te worden. + device ohci nodig voor ondersteuning van USB 1.X. + Het kan echter geen kwaad om ze beiden in het kernelinstellingenbestand + te hebben. Ondersteuning voor USB 2.0 wordt geleverd door het + stuurprogramma &man.ehci.4; (de regel met + device ehci). Indien er regels zijn toegevoegd dient + de kernel opnieuw gecompileerd en geïnstalleerd te worden. Indien het USB-apparaat een CD-R- of DVD-brander is, @@ -905,14 +907,6 @@ dient het stuurprogramma &man.atapicam.4; niet in de kernelinstellingen gebruikt te worden. - - Ondersteuning voor controllers voor USB 2.0 is aanwezig in - &os; echter het volgende dient te worden toegevoegd: - - device ehci - - De stuurprogramma's &man.uhci.4; en &man.ohci.4; zijn nog - steeds nodig voor USB 1.X-ondersteuning. @@ -1033,8 +1027,8 @@ toevoegen en Bestandssystemen aan- en afkoppelen, kunnen de volgende hulppagina's ook nuttig - zijn: &man.umass.4;, &man.camcontrol.8; en - &man.usbdevs.8;. + zijn: &man.umass.4;, &man.camcontrol.8; en &man.usbconfig.8; voor + &os; 8.X of &man.usbdevs.8; voor eerdere versies van &os;. From owner-p4-projects@FreeBSD.ORG Mon Aug 3 16:04:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B48971065676; Mon, 3 Aug 2009 16:04:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 751741065674 for ; Mon, 3 Aug 2009 16:04:42 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 62FD78FC18 for ; Mon, 3 Aug 2009 16:04:42 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73G4gr9063706 for ; Mon, 3 Aug 2009 16:04:42 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73G4gVq063704 for perforce@freebsd.org; Mon, 3 Aug 2009 16:04:42 GMT (envelope-from trasz@freebsd.org) Date: Mon, 3 Aug 2009 16:04:42 GMT Message-Id: <200908031604.n73G4gVq063704@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166967 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 16:04:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=166967 Change 166967 by trasz@trasz_anger on 2009/08/03 16:03:56 Add some documentation. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#40 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/Makefile#4 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#21 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#40 (text+ko) ==== @@ -1338,6 +1338,12 @@ free(buf, M_HRL); goto again; } + /* + * Non-process rules will be added to the buffer later. + * Adding them here would result in duplicated output. + */ + if (limit->hl_rule->hr_subject != HRL_SUBJECT_PROCESS) + continue; if (!hrl_rule_matches(limit->hl_rule, filter)) continue; *(buf + copied) = *limit->hl_rule; ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/Makefile#4 (text+ko) ==== @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= hrl -MAN= +MAN= hrl.8 WARNS?= 6 ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#21 (text+ko) ==== @@ -203,14 +203,14 @@ } static void -remove_rule(char *rule) +remove_rule(char *filter) { int error; - error = hrl_remove_rule(rule, strlen(rule) + 1, NULL, 0); + error = hrl_remove_rule(filter, strlen(filter) + 1, NULL, 0); if (error) err(1, "hrl_remove_rule"); - free(rule); + free(filter); } /* @@ -278,7 +278,7 @@ usage(void) { - fprintf(stderr, "usage: hrl [-a rule | -l filter | -r rule | -u filter | filter]\n"); + fprintf(stderr, "usage: hrl [-a rule | -l filter | -r filter | -u filter | filter]\n"); exit(1); } From owner-p4-projects@FreeBSD.ORG Mon Aug 3 16:19:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7D609106566C; Mon, 3 Aug 2009 16:19:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3CE75106564A for ; Mon, 3 Aug 2009 16:19:59 +0000 (UTC) (envelope-from marta@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 294AC8FC08 for ; Mon, 3 Aug 2009 16:19:59 +0000 (UTC) (envelope-from marta@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73GJxFY064809 for ; Mon, 3 Aug 2009 16:19:59 GMT (envelope-from marta@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73GJxOx064807 for perforce@freebsd.org; Mon, 3 Aug 2009 16:19:59 GMT (envelope-from marta@FreeBSD.org) Date: Mon, 3 Aug 2009 16:19:59 GMT Message-Id: <200908031619.n73GJxOx064807@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marta@FreeBSD.org using -f From: Marta Carbone To: Perforce Change Reviews Cc: Subject: PERFORCE change 166968 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 16:20:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=166968 Change 166968 by marta@marta_onelab1 on 2009/08/03 16:19:02 The ipfw_chk() which contains a huge switch statement with one block per microinstruction was substituted with a table of functions, one function for each microinstruction. Labels and goto across the big switch was removed, the pullup_to macro has been converted to a function. Affected files ... .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/Makefile#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/altq.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/dummynet.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/ipfw.8#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/ipfw2.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/ipfw2.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/ipv6.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/main.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/nat.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/accf_data.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/accf_dns.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/accf_http.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/icmp6.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/icmp_var.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/if_atm.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/if_atm.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/if_ether.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/if_ether.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/igmp.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/igmp.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/igmp_var.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_cksum.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_gif.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_gif.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_mcast.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_pcb.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_pcb.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_proto.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_rmx.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_systm.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in_var.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip6.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_carp.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_carp.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_divert.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_divert.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_dummynet.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_ecn.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_ecn.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_encap.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_encap.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_fastfwd.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_fw.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_gre.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_gre.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_icmp.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_icmp.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_id.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_input.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_ipsec.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_ipsec.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_mroute.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_mroute.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_options.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_options.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_output.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ip_var.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ipfw/ip_dummynet.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ipfw/ip_fw2.c#1 add .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ipfw/ip_fw_nat.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ipfw/ip_fw_pfil.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/HISTORY#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_cuseeme.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_db.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_dummy.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_ftp.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_irc.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_local.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_mod.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_mod.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_nbt.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_pptp.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_proxy.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_sctp.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_sctp.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_skinny.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_smedia.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/alias_util.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/libalias/libalias.3#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/pim.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/pim_var.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/raw_ip.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_asconf.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_asconf.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_auth.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_auth.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_bsd_addr.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_bsd_addr.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_cc_functions.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_cc_functions.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_constants.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_crc32.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_crc32.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_header.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_indata.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_indata.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_input.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_input.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_lock_bsd.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_os.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_os_bsd.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_output.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_output.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_pcb.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_pcb.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_peeloff.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_peeloff.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_structs.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_sysctl.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_sysctl.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_timer.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_timer.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_uio.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_usrreq.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctp_var.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctputil.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/sctputil.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_debug.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_debug.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_fsm.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_hostcache.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_hostcache.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_input.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_lro.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_lro.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_offload.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_offload.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_output.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_reass.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_sack.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_seq.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_subr.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_syncache.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_syncache.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_timer.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_timer.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_timewait.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_usrreq.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcp_var.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/tcpip.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/toedev.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/udp.h#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/udp_usrreq.c#1 branch .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/udp_var.h#1 branch Differences ... From owner-p4-projects@FreeBSD.ORG Mon Aug 3 16:38:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D1CC8106567E; Mon, 3 Aug 2009 16:38:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CCF6106566C for ; Mon, 3 Aug 2009 16:38:19 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 60BD98FC1E for ; Mon, 3 Aug 2009 16:38:19 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73GcJ05066186 for ; Mon, 3 Aug 2009 16:38:19 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73GcJl9066184 for perforce@freebsd.org; Mon, 3 Aug 2009 16:38:19 GMT (envelope-from trasz@freebsd.org) Date: Mon, 3 Aug 2009 16:38:19 GMT Message-Id: <200908031638.n73GcJl9066184@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166970 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 16:38:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=166970 Change 166970 by trasz@trasz_anger on 2009/08/03 16:38:18 Erm. Actually _do_ add some documentation. Affected files ... .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/Makefile#5 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.8#1 add Differences ... ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/Makefile#5 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Mon Aug 3 16:57:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 031EF1065675; Mon, 3 Aug 2009 16:57:41 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B207A106566B for ; Mon, 3 Aug 2009 16:57:40 +0000 (UTC) (envelope-from fangwang@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 976958FC1A for ; Mon, 3 Aug 2009 16:57:40 +0000 (UTC) (envelope-from fangwang@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73GvenE077609 for ; Mon, 3 Aug 2009 16:57:40 GMT (envelope-from fangwang@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73GvepS077607 for perforce@freebsd.org; Mon, 3 Aug 2009 16:57:40 GMT (envelope-from fangwang@FreeBSD.org) Date: Mon, 3 Aug 2009 16:57:40 GMT Message-Id: <200908031657.n73GvepS077607@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fangwang@FreeBSD.org using -f From: Fang Wang To: Perforce Change Reviews Cc: Subject: PERFORCE change 166971 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 16:57:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=166971 Change 166971 by fangwang@fangwang_utobsd on 2009/08/03 16:56:52 Tcputo regression test code, use libpcap to capture the retransmission packets Affected files ... .. //depot/projects/soc2009/tcputo/src/tools/regression/netinet/tcputo/Makefile#3 edit .. //depot/projects/soc2009/tcputo/src/tools/regression/netinet/tcputo/tcputo.c#5 edit Differences ... ==== //depot/projects/soc2009/tcputo/src/tools/regression/netinet/tcputo/Makefile#3 (text+ko) ==== @@ -3,6 +3,7 @@ # PROG= tcputo +CFLAGS+= -lpcap -lpthread NO_MAN= .include ==== //depot/projects/soc2009/tcputo/src/tools/regression/netinet/tcputo/tcputo.c#5 (text+ko) ==== @@ -29,8 +29,11 @@ #include #include +#include #include -#include +#include +//#include +#include "tcp.h" #include @@ -41,16 +44,171 @@ #include #include #include +#include +#include +#include + static void usage(void) { - fprintf(stderr, "tcpconnect server port [user timeout]\n"); - fprintf(stderr, "tcpconnect client ip port [user timeout]\n"); + fprintf(stderr, "tcpconnect [-e] server port [user timeout]\n"); + fprintf(stderr, "tcpconnect [-e] client ip port [user timeout]\n"); exit(-1); } +#define SIZE_ETHERNET sizeof(struct ether_header) + +struct tcprxt { + struct timeval ts; + u_int length; + u_int th_off; + tcp_seq th_seq; + tcp_seq th_ack; + u_char th_flags; +}; + +#define MAX_RXT 200 + +struct tcprxt rxts[MAX_RXT]; + +void +parse_packet(u_char *args, const struct pcap_pkthdr *pkt_header, const u_char *packet) +{ + const struct ip *ip; /* The IP header */ + const struct tcphdr *tcp; /* The TCP header */ + const u_char *tcpopt; /* Tcp option */ + struct tcprxt rxt; + u_int opt, optlen; + u_int hlen; + u_int length; + + length = pkt_header->len - SIZE_ETHERNET; + ip = (struct ip *)(packet + SIZE_ETHERNET); + hlen = ip->ip_hl * 4; + length -= hlen; + if (hlen < 20) { + printf(" * Invalid IP header length: %u bytes\n", hlen); + return; + } + tcp = (struct tcphdr *)((u_char *)ip + hlen); + hlen = tcp->th_off * 4; + length -= hlen; + if (hlen < 20) { + printf(" * Invalid TCP header length: %u bytes\n", hlen); + return; + } + tcpopt = (u_char *)tcp + sizeof(*tcp); + hlen -= sizeof(*tcp); + while (hlen > 0) { + opt = *tcpopt++; + hlen--; + if (opt == TCPOPT_EOL) + break; + if (opt == TCPOPT_NOP) + continue; + optlen = *tcpopt++; + if (opt == TCPOPT_UTO) { + u_int uto = htons(*(u_short *)tcpopt); + if (uto & 1) + uto = (uto >> 1) * 60; + else + uto >>= 1; + printf("Time:%u.%u Seq:%u Ack:%u Win:%u Length:%u UTO:%u\n", pkt_header->ts.tv_sec, pkt_header->ts.tv_usec, htonl(tcp->th_seq), htonl(tcp->th_ack), htons(tcp->th_win), length, uto); + } + hlen -= optlen - 1; + tcpopt += optlen - 2; + } + if (length > 0 || tcp->th_flags & TH_RST) { + memset(&rxt, 0, sizeof(rxt)); + memcpy(&rxt.ts, &pkt_header->ts, sizeof(rxt.ts)); + rxt.length = length; + rxt.th_off = tcp->th_off; + rxt.th_ack = tcp->th_ack; + rxt.th_seq = tcp->th_seq; + rxt.th_flags = tcp->th_flags; + memcpy(&rxts[0], &rxts[1], sizeof(struct tcprxt) * (MAX_RXT - 1)); + memcpy(&rxts[MAX_RXT - 1], &rxt, sizeof(rxt)); + } +} + +void +dump_packet(void *arg) +{ + pcap_t *handle; /* Session handle */ + char *dev; /* The device to sniff on */ + //char dev[] = "le1"; /* The device to sniff on */ + char errbuf[PCAP_ERRBUF_SIZE]; /* Error string */ + struct bpf_program fp; /* The compiled filter */ + char filter_exp[] = "tcp port 8000"; /* The filter expression */ + bpf_u_int32 mask; /* Our netmask */ + bpf_u_int32 net; /* Our IP */ + struct pcap_pkthdr header; /* The header that pcap gives us */ + const u_char *packet; /* The actual packet */ + + /* Define the device */ + dev = pcap_lookupdev(errbuf); + if (dev == NULL) { + fprintf(stderr, "Couldn't find default device: %s\n", errbuf); + exit(-1); + } + /* Find the properties for the device */ + if (pcap_lookupnet(dev, &net, &mask, errbuf) == -1) { + fprintf(stderr, "Couldn't get netmask for device %s: %s\n", dev, errbuf); + net = 0; + mask = 0; + } + /* Open the session in promiscuous mode */ + handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf); + if (handle == NULL) { + fprintf(stderr, "Couldn't open device %s: %s\n", dev, errbuf); + exit(-1); + } + /* Compile and apply the filter */ + if (pcap_compile(handle, &fp, filter_exp, 0, net) == -1) { + fprintf(stderr, "Couldn't parse filter %s: %s\n", filter_exp, pcap_geterr(handle)); + exit(-1); + } + if (pcap_setfilter(handle, &fp) == -1) { + fprintf(stderr, "Couldn't install filter %s: %s\n", filter_exp, pcap_geterr(handle)); + exit(-1); + } + pcap_loop(handle, -1, parse_packet, NULL); + pcap_close(handle); +} + +void print_result() +{ + tcp_seq rxt_seq; + int i, last, rxt_nr; + struct tm *p; + + rxt_seq = rxts[MAX_RXT - 2].th_seq; + for (last = -1, rxt_nr = 0, i = 0; i < MAX_RXT; i++) { + if (rxts[i].th_seq == rxt_seq || rxts[i].th_flags & TH_RST) { + if (rxts[i].th_flags & TH_RST) + printf("reset packet, "); + else if (rxt_nr) + printf("retransmit %d, ", rxt_nr); + else if (!rxt_nr) + printf("send packet, "); + p = localtime(&rxts[i].ts.tv_sec); + printf("time %d:%d:%d.%-6u, ", p->tm_hour, p->tm_min, p->tm_sec, rxts[i].ts.tv_usec); + printf("seq %u, ack %u, ", rxts[i].th_seq, rxts[i].th_ack); + if (last != -1) { + if (rxts[i].ts.tv_usec < rxts[last].ts.tv_usec) + printf("interval %u.%-6u, ", rxts[i].ts.tv_sec - rxts[last].ts.tv_sec - 1, 1000000 + rxts[i].ts.tv_usec - rxts[last].ts.tv_usec); + else + printf("interval %u.%-6u, ", rxts[i].ts.tv_sec - rxts[last].ts.tv_sec, rxts[i].ts.tv_usec - rxts[last].ts.tv_usec); + } + printf("length %u\n", rxts[i].length); + last = i; + rxt_nr++; + } + } +} + static int tcputo_timer(void) { @@ -82,6 +240,7 @@ int user_timeout; int optval; struct tcputo uto; + pthread_t tid; if (argc != 1 && argc != 2) usage(); @@ -121,6 +280,8 @@ if (setsockopt(accept_sock, IPPROTO_TCP, TCP_UTO, &uto, sizeof(uto)) == -1) err(-1, "setsockopt"); close(listen_sock); + if (pthread_create(&tid, NULL, dump_packet, NULL)) + err(-1, "create thread"); while(1) { sleep(1); printf("server again %d\n", optval++); @@ -130,12 +291,13 @@ (void)tcputo_timer(); continue; } - puts(strerror(errno)); user_timeout = tcputo_timer(); printf("Connection timeout, %d seconds.\n", user_timeout); break; } - + /* wait for the reset packet to be captured */ + sleep(1); + pthread_kill(tid, SIGTERM); close(accept_sock); } @@ -150,6 +312,7 @@ int user_timeout; int optval = 4*1024; struct tcputo uto; + pthread_t tid; if (argc != 2 && argc != 3) usage(); @@ -179,7 +342,8 @@ } if (connect(sock, (struct sockaddr *)&sin, sizeof(sin)) == -1) err(-1, "connect"); - + if (pthread_create(&tid, NULL, dump_packet, NULL)) + err(-1, "create thread"); while (1) { sleep(1); printf("client again %d\n", optval++); @@ -189,19 +353,19 @@ (void)tcputo_timer(); continue; } - puts(strerror(errno)); user_timeout = tcputo_timer(); printf("Connection timeout, %d seconds.\n", user_timeout); break; } - + /* wait for the reset packet to be captured */ + sleep(1); + pthread_kill(tid, SIGTERM); close(sock); } int main(int argc, char *argv[]) { - if (argc < 2) usage(); @@ -211,6 +375,6 @@ tcputo_client(argc - 2, argv + 2); else usage(); - + print_result(); exit(0); } From owner-p4-projects@FreeBSD.ORG Mon Aug 3 17:55:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3A95D1065672; Mon, 3 Aug 2009 17:55:45 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8BDB106566C for ; Mon, 3 Aug 2009 17:55:44 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9BE0A8FC0A for ; Mon, 3 Aug 2009 17:55:44 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73HtiSB083015 for ; Mon, 3 Aug 2009 17:55:44 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73HtiIg083013 for perforce@freebsd.org; Mon, 3 Aug 2009 17:55:44 GMT (envelope-from trasz@freebsd.org) Date: Mon, 3 Aug 2009 17:55:44 GMT Message-Id: <200908031755.n73HtiIg083013@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166975 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 17:55:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=166975 Change 166975 by trasz@trasz_anger on 2009/08/03 17:55:17 Add support for per-uid and per-gid rules. Also, fix removing rules with 'per' different from 'subject'. Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#7 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#41 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#19 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#10 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#7 (text+ko) ==== @@ -1,5 +1,6 @@ - - Rework rule storage. + - In hrl_rule, instead of keeping subject ids, keep links to a process, + uidinfo and gidinfo, the same way we do with loginclasses. - Make sure we have all the gidinfos we need in the 'struct ucred'. ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#41 (text+ko) ==== @@ -883,7 +883,7 @@ } if (perstr == NULL || perstr[0] == '\0') - rule->hr_per = rule->hr_subject; + rule->hr_per = HRL_SUBJECT_UNDEFINED; else { error = str2value(perstr, &rule->hr_per, subjectnames); if (error) @@ -947,7 +947,7 @@ case HRL_SUBJECT_USER: uip = uifind(rule->hr_subject_id); - KASSERT(uip == NULL, ("hrl_rule_add: uifind failed")); + KASSERT(uip != NULL, ("hrl_rule_add: uifind failed")); hrl_limit_add(&uip->ui_limits, rule); /* * Don't call uifree(2); we don't want the uidinfo @@ -959,7 +959,7 @@ case HRL_SUBJECT_GROUP: gip = gifind_existing(rule->hr_subject_id); - KASSERT(gip == NULL, ("hrl_rule_add: gifind failed")); + KASSERT(gip != NULL, ("hrl_rule_add: gifind failed")); hrl_limit_add(&gip->gi_limits, rule); break; @@ -1292,8 +1292,10 @@ struct hrl_rule *buf = (struct hrl_rule *)arg3; int copied = 0, *available = (int *)arg4; + mtx_assert(&hrl_lock, MA_OWNED); + LIST_FOREACH(limit, limits, hl_next) { - if (copied >= *available) + if (*available <= 0) return (ERANGE); if (!hrl_rule_matches(limit->hl_rule, filter)) continue; @@ -1308,7 +1310,7 @@ int hrl_get_rules(struct thread *td, struct hrl_get_rules_args *uap) { - int error, copied, maxcopied = HRL_MAX_RULES, available; + int error, copied, bufsize = HRL_MAX_RULES, available; char *inputstr; struct sbuf *outputsbuf; struct hrl_rule *filter, *buf; @@ -1325,16 +1327,17 @@ return (EINVAL); again: - buf = malloc(maxcopied * sizeof(*buf), M_HRL, M_WAITOK); + buf = malloc(bufsize * sizeof(*buf), M_HRL, M_WAITOK); + available = bufsize; copied = 0; sx_slock(&proctree_lock); FOREACH_PROC_IN_SYSTEM(p) { mtx_lock(&hrl_lock); LIST_FOREACH(limit, &p->p_limits, hl_next) { - if (copied >= maxcopied) { + if (available <= 0) { mtx_unlock(&hrl_lock); sx_sunlock(&proctree_lock); - maxcopied *= 4; + bufsize *= 4; free(buf, M_HRL); goto again; } @@ -1348,39 +1351,32 @@ continue; *(buf + copied) = *limit->hl_rule; copied++; + available--; } mtx_unlock(&hrl_lock); } sx_sunlock(&proctree_lock); - if (error) - goto out; - available = maxcopied - copied; + mtx_lock(&hrl_lock); loginclass_limits_foreach(hrl_get_rules_callback, filter, buf + copied, &available); - copied = maxcopied - available; - available = maxcopied - copied; + copied = bufsize - available; ui_limits_foreach(hrl_get_rules_callback, filter, buf + copied, &available); - copied = maxcopied - available; - available = maxcopied - copied; + copied = bufsize - available; gi_limits_foreach(hrl_get_rules_callback, filter, buf + copied, &available); - copied = maxcopied - available; - if (copied >= maxcopied) { - maxcopied *= 4; + mtx_unlock(&hrl_lock); + if (available <= 0) { + bufsize *= 4; free(buf, M_HRL); goto again; } - /* - * XXX: Iterate over the rest (other than per-process) of the rules. - */ - outputsbuf = hrl_rules_to_sbuf(buf, copied); error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); -out: + hrl_rule_release(filter); free(buf, M_HRL); return (error); @@ -1474,6 +1470,12 @@ free(inputstr, M_HRL); if (rule == NULL) return (EINVAL); + /* + * The 'per' part of a rule is optional. + */ + if (rule->hr_per == HRL_SUBJECT_UNDEFINED && + rule->hr_subject != HRL_SUBJECT_UNDEFINED) + rule->hr_per = rule->hr_subject; if (!hrl_rule_fully_specified(rule)) { error = EINVAL; ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#19 (text+ko) ==== @@ -1417,11 +1417,23 @@ const struct hrl_rule *filter, void *arg3, void *arg4), const struct hrl_rule *filter, void *arg3, void *arg4) { + int error; + struct uidinfo *uip, *nextuip; + struct uihashhead *uih; + + rw_rlock(&uihashtbl_lock); + for (uih = &uihashtbl[uihash]; uih >= uihashtbl; uih--) { + for (uip = LIST_FIRST(uih); uip; uip = nextuip) { + nextuip = LIST_NEXT(uip, ui_hash); + error = (callback)(&uip->ui_limits, filter, arg3, arg4); + if (error) { + rw_runlock(&uihashtbl_lock); + return (error); + } + } + } + rw_runlock(&uihashtbl_lock); - callback = callback; - filter = filter; - arg3 = arg3; - arg4 = arg4; return (0); } @@ -1575,11 +1587,22 @@ const struct hrl_rule *filter, void *arg3, void *arg4), const struct hrl_rule *filter, void *arg3, void *arg4) { + int error; + struct gidinfo *gip, *nextgip; + struct gihashhead *gih; - callback = callback; - filter = filter; - arg3 = arg3; - arg4 = arg4; + rw_rlock(&gihashtbl_lock); + for (gih = &gihashtbl[gihash]; gih >= gihashtbl; gih--) { + for (gip = LIST_FIRST(gih); gip; gip = nextgip) { + nextgip = LIST_NEXT(gip, gi_hash); + error = (callback)(&gip->gi_limits, filter, arg3, arg4); + if (error) { + rw_runlock(&gihashtbl_lock); + return (error); + } + } + } + rw_runlock(&gihashtbl_lock); return (0); } ==== //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#10 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Mon Aug 3 18:24:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9919E106566C; Mon, 3 Aug 2009 18:24:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5855B106566B for ; Mon, 3 Aug 2009 18:24:16 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 470438FC15 for ; Mon, 3 Aug 2009 18:24:16 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73IOGpK086078 for ; Mon, 3 Aug 2009 18:24:16 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73IOFxa086076 for perforce@freebsd.org; Mon, 3 Aug 2009 18:24:15 GMT (envelope-from zec@fer.hr) Date: Mon, 3 Aug 2009 18:24:15 GMT Message-Id: <200908031824.n73IOFxa086076@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 166977 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 18:24:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=166977 Change 166977 by zec@zec_tpx32 on 2009/08/03 18:24:12 Back out CURVNET_SET() / CURVNET_RESTORE() sequence for which I fail to see / recall any purpose. Affected files ... .. //depot/projects/vimage-commit2/src/sys/kern/vfs_export.c#15 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/kern/vfs_export.c#15 (text+ko) ==== @@ -48,13 +48,11 @@ #include #include #include -#include #include #include #include #include -#include static MALLOC_DEFINE(M_NETADDR, "export_host", "Export host address structure"); @@ -141,7 +139,6 @@ } #endif - CURVNET_SET(TD_TO_VNET(curthread)); /* XXX revisit */ i = sizeof(struct netcred) + argp->ex_addrlen + argp->ex_masklen; np = (struct netcred *) malloc(i, M_NETADDR, M_WAITOK | M_ZERO); saddr = (struct sockaddr *) (np + 1); @@ -212,11 +209,9 @@ np->netc_numsecflavors = argp->ex_numsecflavors; bcopy(argp->ex_secflavors, np->netc_secflavors, sizeof(np->netc_secflavors)); - CURVNET_RESTORE(); return (0); out: free(np, M_NETADDR); - CURVNET_RESTORE(); return (error); } From owner-p4-projects@FreeBSD.ORG Mon Aug 3 18:29:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4B49D1065672; Mon, 3 Aug 2009 18:29:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 090E6106566C for ; Mon, 3 Aug 2009 18:29:22 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EB9818FC12 for ; Mon, 3 Aug 2009 18:29:21 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73ITLBL086432 for ; Mon, 3 Aug 2009 18:29:21 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73ITLBd086430 for perforce@freebsd.org; Mon, 3 Aug 2009 18:29:21 GMT (envelope-from zec@fer.hr) Date: Mon, 3 Aug 2009 18:29:21 GMT Message-Id: <200908031829.n73ITLBd086430@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 166978 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 18:29:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=166978 Change 166978 by zec@zec_tpx32 on 2009/08/03 18:28:56 More hard-coding of NFS ops to vnet0. Affected files ... .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vnops.c#26 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vnops.c#26 (text+ko) ==== @@ -1552,18 +1552,16 @@ *tl = txdr_unsigned(NFSV3CREATE_EXCLUSIVE); tl = nfsm_build(u_int32_t *, NFSX_V3CREATEVERF); #ifdef INET -#ifndef VIMAGE + CURVNET_SET(vnet0); IN_IFADDR_RLOCK(); if (!TAILQ_EMPTY(&V_in_ifaddrhead)) *tl++ = IA_SIN(TAILQ_FIRST(&V_in_ifaddrhead))->sin_addr.s_addr; else #endif -#endif *tl++ = create_verf; #ifdef INET -#ifndef VIMAGE IN_IFADDR_RUNLOCK(); -#endif + CURVNET_RESTORE(); #endif *tl = ++create_verf; } else { From owner-p4-projects@FreeBSD.ORG Mon Aug 3 18:40:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B9A081065677; Mon, 3 Aug 2009 18:40:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 771EF1065670 for ; Mon, 3 Aug 2009 18:40:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 654A48FC12 for ; Mon, 3 Aug 2009 18:40:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n73IeYCs087326 for ; Mon, 3 Aug 2009 18:40:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n73IeY7L087324 for perforce@freebsd.org; Mon, 3 Aug 2009 18:40:34 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 3 Aug 2009 18:40:34 GMT Message-Id: <200908031840.n73IeY7L087324@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 166980 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Aug 2009 18:40:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=166980 Change 166980 by hselasky@hselasky_laptop001 on 2009/08/03 18:39:51 Avoid using microtime() in polling mode. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#27 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#27 (text+ko) ==== @@ -170,7 +170,6 @@ int32_t sc_state; /* shift/lock key state */ int32_t sc_accents; /* accent key index (> 0) */ - uint16_t sc_microtime; /* used when polling */ uint16_t sc_inputs; uint16_t sc_inputhead; uint16_t sc_inputtail; @@ -303,8 +302,8 @@ static void ukbd_do_poll(struct ukbd_softc *sc, uint8_t wait) { - struct timeval tv; - uint16_t temp; + uint8_t i; + uint8_t j; DPRINTFN(2, "polling\n"); @@ -312,21 +311,17 @@ usbd_transfer_poll(sc->sc_xfer, UKBD_N_TRANSFER); - microtime(&tv); + /* Delay-optimised support for repetition of keys */ - temp = tv.tv_usec / 25000; + for (j = i = 0; i < UKBD_NKEYCODE; i++) + j |= sc->sc_odata.keycode[i]; - /* support repetition of keys: */ + if (j) { + /* a key is pressed - need timekeeping */ + DELAY(1000); - if (sc->sc_microtime != temp) { - - /* wait for next delta */ - - sc->sc_microtime = temp; - - /* 25 milliseconds have passed */ - - sc->sc_time_ms += 25; + /* 1 millisecond has passed */ + sc->sc_time_ms += 1; } ukbd_interrupt(sc); From owner-p4-projects@FreeBSD.ORG Tue Aug 4 05:43:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0D22C1065672; Tue, 4 Aug 2009 05:43:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B0C78106564A for ; Tue, 4 Aug 2009 05:43:39 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 84A1B8FC0A for ; Tue, 4 Aug 2009 05:43:39 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n745hdNx077133 for ; Tue, 4 Aug 2009 05:43:39 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n745hdun077131 for perforce@freebsd.org; Tue, 4 Aug 2009 05:43:39 GMT (envelope-from trasz@freebsd.org) Date: Tue, 4 Aug 2009 05:43:39 GMT Message-Id: <200908040543.n745hdun077131@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166994 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 05:43:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=166994 Change 166994 by trasz@trasz_anger on 2009/08/04 05:42:40 Update TODO. Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#8 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#8 (text+ko) ==== @@ -2,6 +2,8 @@ - In hrl_rule, instead of keeping subject ids, keep links to a process, uidinfo and gidinfo, the same way we do with loginclasses. + - Why did I put the loginclass pointer into the proc and not into the cred? + - Make sure we have all the gidinfos we need in the 'struct ucred'. - Fix up (add/remove resource counters) when: From owner-p4-projects@FreeBSD.ORG Tue Aug 4 06:09:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A9D15106566C; Tue, 4 Aug 2009 06:09:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 50737106566B for ; Tue, 4 Aug 2009 06:09:15 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3C6C28FC08 for ; Tue, 4 Aug 2009 06:09:15 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7469FIK079850 for ; Tue, 4 Aug 2009 06:09:15 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n746970H079844 for perforce@freebsd.org; Tue, 4 Aug 2009 06:09:07 GMT (envelope-from trasz@freebsd.org) Date: Tue, 4 Aug 2009 06:09:07 GMT Message-Id: <200908040609.n746970H079844@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 166995 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 06:09:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=166995 Change 166995 by trasz@trasz_anger on 2009/08/04 06:08:25 IFC. Affected files ... .. //depot/projects/soc2009/trasz_limits/ObsoleteFiles.inc#11 integrate .. //depot/projects/soc2009/trasz_limits/UPDATING#11 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/CHANGES#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/named/update.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/version#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/LICENSE#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.aut#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.dsb#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.dsg#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.dsu#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.o2e#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.o9c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.o9u#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.wnb#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.wnm#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/NEWS#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/README#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/brac.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/ch.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/charset.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/charset.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/cmd.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/cmdbuf.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/command.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/configure.ac#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/cvt.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/less/decode.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/defines.ds#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/defines.o2#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/defines.o9#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/defines.wn#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/edit.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/filename.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/forwback.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/funcs.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/ifile.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/input.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/jump.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/less.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/less.man#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/less.nro#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lessecho.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lessecho.man#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lessecho.nro#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lesskey.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lesskey.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lesskey.man#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lesskey.nro#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lglob.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/line.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/linenum.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/lsystem.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/main.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/mark.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/mkhelp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/optfunc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/option.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/option.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/opttbl.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/os.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/output.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/pattern.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/less/pattern.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/less/pckeys.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/position.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/position.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/prompt.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/screen.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/scrsize.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/search.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/signal.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/tags.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/ttyin.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/less/version.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/openbsm/NEWS#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/openbsm/README#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/openbsm/VERSION#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/openbsm/config/config.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/openbsm/configure#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/openbsm/configure.ac#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/openbsm/etc/audit_event#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/openbsm/tools/audump.c#2 integrate .. //depot/projects/soc2009/trasz_limits/etc/portsnap.conf#2 integrate .. //depot/projects/soc2009/trasz_limits/etc/rc.d/Makefile#6 integrate .. //depot/projects/soc2009/trasz_limits/etc/rc.d/hostid#2 integrate .. //depot/projects/soc2009/trasz_limits/etc/rc.d/hostid_save#1 branch .. //depot/projects/soc2009/trasz_limits/etc/rc.d/zfs#2 integrate .. //depot/projects/soc2009/trasz_limits/etc/rc.d/zvol#1 branch .. //depot/projects/soc2009/trasz_limits/lib/libarchive/archive_read_support_format_iso9660.c#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libc/sys/mmap.2#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libkvm/kvm_vnet.c#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb.3#7 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb.h#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10.c#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10.h#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10_desc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb10_io.c#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb20.3#2 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb20_compat01.c#3 integrate .. //depot/projects/soc2009/trasz_limits/lib/libusb/libusb20_int.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sbin/ifconfig/ifconfig.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sbin/ifconfig/ifieee80211.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sbin/mount_nfs/mount_nfs.8#4 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/Makefile#9 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/ahci.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/altq.4#4 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/asmc.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/epair.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/u3g.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/urtw.4#3 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man9/netisr.9#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/amd64/amd64/machdep.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/boot/forth/loader.conf#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/cam_ccb.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/cam/cam_xpt.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/freebsd32/freebsd32_misc.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/linprocfs/linprocfs.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_ioctl.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_socket.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/compat/svr4/svr4_sockio.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/NOTES#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/conf/files#14 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/altq/altq/altq_subr.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/ipfilter/netinet/fil.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/pf/net/pf.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/pf/net/pf_if.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/pf/net/pf_ioctl.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/pf/net/pf_subr.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/contrib/rdma/rdma_cma.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/ddb/db_sym.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/aac/aac.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_battery.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_cpu.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_dock.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/acpica/acpi_thermal.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/adb/adb_bus.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/alc/if_alc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/amr/amr.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ata/ata-all.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/atkbdc/psm.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/bktr/bktr_os.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/drm/drm_drv.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ips/ips_pci.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_freebsd.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_freebsd.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_ioctl.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_library.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_library.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_pci.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_sbus.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_stds.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_target.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/isp_target.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/ispmbox.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/ispreg.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/isp/ispvar.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ispfw/asm_2300.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/soc2009/trasz_limits/sys/dev/ispfw/ispfw.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mfi/mfi.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mlx/mlx.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/mmc/mmc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/pccbb/pccbb.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/pst/pst-iop.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/rp/rp.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/sound/pci/hda/hdac.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/sound/usb/uaudio.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/twe/twe.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/at91dci.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/atmegadci.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/avr32dci.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/ehci.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/ehci_pci.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/musb_otg.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/ohci.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/ohci_pci.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/uhci.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/uhci_pci.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/usb_controller.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/controller/uss820dci.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/input/ukbd.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/input/ums.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/net/usb_ethernet.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/serial/u3g.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/serial/ulpt.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_compat_linux.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_compat_linux.h#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_controller.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_dev.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_dev.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_device.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_handle_request.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_hid.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_hub.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_parse.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_request.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usb_transfer.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usbdevs#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/usbdi.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/wlan/if_uath.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/usb/wlan/if_upgt.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/xen/blkback/blkback.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/dev/xen/netback/netback.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfs/nfsport.h#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsclient/nfs_clvnops.c#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/fs/unionfs/union_subr.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/acpica/acpi_machdep.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/bios/smapi.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/bios/smbios.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/bios/vpd.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/initcpu.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/machdep.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/pmap.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/i386/vm_machdep.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/include/cpufunc.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/include/md_var.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/include/pmap.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/xen/pmap.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_exec.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_jail.c#10 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_linker.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_poll.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_sysctl.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_uuid.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_vimage.c#8 delete .. //depot/projects/soc2009/trasz_limits/sys/kern/subr_bus.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/sys_socket.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/tty_pts.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/tty_ttydisc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_domain.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_socket.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_syscalls.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_usrreq.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_lookup.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_mount.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_syscalls.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/Makefile#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/soc2009/trasz_limits/sys/modules/ispfw/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/soc2009/trasz_limits/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/soc2009/trasz_limits/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/soc2009/trasz_limits/sys/net/bpf.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/bridgestp.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/flowtable.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if.c#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_bridge.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_clone.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_ef.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_enc.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_epair.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_ethersubr.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_faith.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_gif.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_gre.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_llatbl.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_loop.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_mib.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_spppsubr.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_stf.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_tun.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_var.h#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_vlan.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/netisr.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/netisr.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/raw_cb.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/raw_usrreq.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/route.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/rtsock.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/vnet.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/vnet.h#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211.c#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_ddb.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_freebsd.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_hwmp.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_ioctl.h#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_mesh.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_mesh.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_scan_sta.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/atm/ng_atm.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_base.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_bridge.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_eiface.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_ether.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_gif.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_iface.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_pipe.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netgraph/ng_source.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/icmp6.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/icmp_var.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/if_ether.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/igmp.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/in.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/in_gif.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/in_mcast.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/in_pcb.c#11 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/in_pcb.h#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/in_proto.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/in_rmx.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_carp.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_divert.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_fastfwd.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_icmp.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_input.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_ipsec.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_mroute.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_options.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_output.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ip_var.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ipfw/ip_fw2.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ipfw/ip_fw_nat.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/raw_ip.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_auth.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_indata.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_os_bsd.h#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_sysctl.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_sysctl.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_uio.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctputil.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctputil.h#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_hostcache.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_input.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_offload.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_output.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_reass.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_sack.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_subr.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_syncache.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_timer.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_timewait.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_usrreq.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_var.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/udp_usrreq.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/udp_var.h#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/dest6.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/frag6.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/icmp6.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6_gif.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6_ifattach.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6_mcast.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6_pcb.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6_proto.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6_rmx.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/in6_src.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/ip6_forward.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/ip6_input.c#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/ip6_ipsec.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/ip6_mroute.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/ip6_output.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/mld6.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/nd6.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/nd6_nbr.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/nd6_rtr.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/raw_ip6.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/route6.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/scope6.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet6/udp6_usrreq.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/ipsec.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/ipsec_input.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/ipsec_mbuf.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/ipsec_output.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/key.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/keysock.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/xform_ah.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/xform_esp.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/xform_ipcomp.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/xform_ipip.c#5 integrate .. //depot/projects/soc2009/trasz_limits/sys/netipsec/xform_tcp.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/nfsclient/bootp_subr.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/nfsclient/nfs_diskless.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/nfsclient/nfs_vnops.c#6 integrate .. //depot/projects/soc2009/trasz_limits/sys/pc98/cbus/fdc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/security/audit/audit.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/security/audit/audit.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/security/audit/audit_arg.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/security/audit/audit_bsm.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/security/audit/audit_bsm_klib.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/security/audit/audit_private.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/bus.h#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/param.h#12 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/priv.h#9 integrate .. //depot/projects/soc2009/trasz_limits/sys/sys/vimage.h#9 delete .. //depot/projects/soc2009/trasz_limits/sys/xen/xenbus/xenbus_probe.c#2 integrate .. //depot/projects/soc2009/trasz_limits/tools/regression/poll/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/gzip/gzip.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/less/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/acpi/acpidump/acpi.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/acpi/acpidump/acpidump.h#2 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/getpmac/getpmac.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/jail/jail.c#5 integrate Differences ... ==== //depot/projects/soc2009/trasz_limits/ObsoleteFiles.inc#11 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.204 2009/07/20 19:51:47 antoine Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.205 2009/08/01 19:26:27 rwatson Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20090801: vimage.h removed in favour of vnet.h +OLD_FILES+=usr/include/sys/vimage.h # 20090719: library version bump for 8.0 OLD_LIBS+=lib/libalias.so.6 OLD_LIBS+=lib/libavl.so.1 ==== //depot/projects/soc2009/trasz_limits/UPDATING#11 (text+ko) ==== @@ -65,9 +65,9 @@ 20090624: The ABI of various structures related to the SYSV IPC API have - been changed. As a result, the COMPAT_FREEBSD[456] kernel - options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version - to 800100. + been changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 + kernel options now all require COMPAT_FREEBSD7. + Bump __FreeBSD_version to 800100. 20090622: Layout of struct vnet has changed as routing related variables @@ -1665,4 +1665,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.631 2009/07/19 17:25:24 kensmith Exp $ +$FreeBSD: src/UPDATING,v 1.632 2009/07/26 20:12:06 kib Exp $ ==== //depot/projects/soc2009/trasz_limits/contrib/bind9/CHANGES#4 (text+ko) ==== @@ -1,3 +1,7 @@ + --- 9.6.1-P1 released --- + +2640. [security] A specially crafted update packet will cause named + to exit. [RT #20000] --- 9.6.1 released --- ==== //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/named/update.c#3 (text+ko) ==== @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: update.c,v 1.151.12.5 2009/04/30 07:03:37 marka Exp $ */ +/* $Id: update.c,v 1.151.12.5.12.1 2009/07/28 14:18:08 marka Exp $ */ #include @@ -979,7 +979,11 @@ if (type == dns_rdatatype_rrsig || type == dns_rdatatype_sig) covers = dns_rdata_covers(&t->rdata); - else + else if (type == dns_rdatatype_any) { + dns_db_detachnode(db, &node); + dns_diff_clear(&trash); + return (DNS_R_NXRRSET); + } else covers = 0; /* ==== //depot/projects/soc2009/trasz_limits/contrib/bind9/version#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $Id: version,v 1.43.12.5 2009/06/04 04:02:41 marka Exp $ +# $Id: version,v 1.43.12.5.8.1 2009/07/28 14:18:08 marka Exp $ # # This file must follow /bin/sh rules. It is imported directly via # configure. @@ -6,5 +6,5 @@ MAJORVER=9 MINORVER=6 PATCHVER=1 -RELEASETYPE= -RELEASEVER= +RELEASETYPE=-P +RELEASEVER=1 ==== //depot/projects/soc2009/trasz_limits/contrib/less/LICENSE#2 (text+ko) ==== @@ -2,7 +2,7 @@ ------------ Less -Copyright (C) 1984-2008 Mark Nudelman +Copyright (C) 1984-2009 Mark Nudelman Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.aut#2 (text+ko) ==== @@ -10,10 +10,10 @@ SRC = \ main.c screen.c brac.c ch.c charset.c cmdbuf.c \ - command.c decode.c edit.c filename.c forwback.c \ + command.c cvt.c decode.c edit.c filename.c forwback.c \ help.c ifile.c input.c jump.c line.c linenum.c \ lsystem.c mark.c optfunc.c option.c opttbl.c os.c \ - output.c position.c prompt.c search.c signal.c \ + output.c pattern.c position.c prompt.c search.c signal.c \ tags.c ttyin.c version.c DISTFILES_W = \ defines.ds Makefile.dsb Makefile.dsg Makefile.dsu \ @@ -24,7 +24,8 @@ ${SRC} regexp.c regexp.h \ COPYING INSTALL LICENSE Makefile.in Makefile.aut NEWS README \ configure configure.ac lesskey.c lessecho.c scrsize.c \ - charset.h cmd.h funcs.h lglob.h less.h lesskey.h option.h pckeys.h position.h \ + charset.h cmd.h funcs.h lglob.h less.h lesskey.h option.h \ + pckeys.h pattern.h position.h \ install.sh defines.h.in mkinstalldirs \ less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man \ less.hlp \ @@ -109,6 +110,8 @@ cd $$REL; chmod +w ${DISTFILES_W}; cd ..; \ echo "Creating release/$$REL/$$REL.tar.gz"; \ tar -cf - $$REL | gzip -c >release/$$REL/$$REL.tar.gz; \ + echo "Signing release/$$REL/$$REL.tar.gz"; \ + gpg --detach-sign release/$$REL/$$REL.tar.gz; \ echo "Creating release/$$REL/$$REL.zip"; \ zip -rq release/$$REL/$$REL.zip $$REL; \ rm -rf $$REL ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.dsb#2 (text+ko) ==== @@ -18,12 +18,13 @@ .c.obj: $(CC) -c -I. $(CPPFLAGS) $(CFLAGS) $< -OBJ = main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj command.obj \ - decode.obj edit.obj filename.obj forwback.obj help.obj ifile.obj \ - input.obj jump.obj line.obj linenum.obj lsystem.obj \ - mark.obj optfunc.obj option.obj opttbl.obj os.obj output.obj \ - position.obj prompt.obj search.obj signal.obj tags.obj \ - ttyin.obj version.obj +OBJ = \ + main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj \ + command.obj cvt.obj decode.obj edit.obj filename.obj forwback.obj \ + help.obj ifile.obj input.obj jump.obj line.obj linenum.obj \ + lsystem.obj mark.obj optfunc.obj option.obj opttbl.obj os.obj \ + output.obj pattern.obj position.obj prompt.obj search.obj signal.obj \ + tags.obj ttyin.obj version.obj all: less$(EXT) lesskey$(EXT) ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.dsg#2 (text+ko) ==== @@ -33,11 +33,12 @@ .c.o: ${CC} -I. ${CFLAGS_COMPILE_ONLY} -DBINDIR=\"${bindir}\" -DSYSDIR=\"${sysconfdir}\" ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} all: less lesskey lessecho ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.dsu#2 (text+ko) ==== @@ -27,12 +27,13 @@ .c.obj: $(CC) -c -I. -I$(INCDIR) $(CPPFLAGS) $(CFLAGS) $< -OBJ = main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj command.obj \ - decode.obj edit.obj filename.obj forwback.obj help.obj ifile.obj \ - input.obj jump.obj line.obj linenum.obj lsystem.obj \ - mark.obj optfunc.obj option.obj opttbl.obj os.obj output.obj \ - position.obj prompt.obj search.obj signal.obj tags.obj \ - ttyin.obj version.obj +OBJ = \ + main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj \ + command.obj cvt.obj decode.obj edit.obj filename.obj forwback.obj \ + help.obj ifile.obj input.obj jump.obj line.obj linenum.obj \ + lsystem.obj mark.obj optfunc.obj option.obj opttbl.obj os.obj \ + output.obj pattern.obj position.obj prompt.obj search.obj signal.obj \ + tags.obj ttyin.obj version.obj all: less lesskey ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.in#2 (text+ko) ==== @@ -43,11 +43,12 @@ .c.o: ${CC} -I. ${CFLAGS_COMPILE_ONLY} -DBINDIR=\"${bindir}\" -DSYSDIR=\"${sysconfdir}\" ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} @REGEX_O@ all: less$(EXEEXT) lesskey$(EXEEXT) lessecho$(EXEEXT) ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.o2e#2 (text+ko) ==== @@ -18,11 +18,12 @@ .c.${O}: ${CC} -c ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} regexp.${O} all: less.exe lesskey.exe scrsize.exe ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.o9c#2 (text+ko) ==== @@ -22,11 +22,12 @@ .c.${O}: ${CC} ${CFLAGS_COMPILE_ONLY} ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} regexp.${O} all: less lessecho lesskey ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.o9u#2 (text+ko) ==== @@ -21,11 +21,12 @@ .c.${O}: ${CC} ${CFLAGS_COMPILE_ONLY} ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} regexp.${O} all: less lesskey ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.wnb#2 (text+ko) ==== @@ -25,12 +25,13 @@ .c.obj: ${CC} -c -I. ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj command.obj \ - decode.obj edit.obj filename.obj forwback.obj help.obj ifile.obj \ - input.obj jump.obj line.obj linenum.obj lsystem.obj \ - mark.obj optfunc.obj option.obj opttbl.obj os.obj output.obj \ - position.obj prompt.obj search.obj signal.obj tags.obj \ - ttyin.obj version.obj regexp.obj +OBJ = \ + main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj \ + command.obj cvt.obj decode.obj edit.obj filename.obj forwback.obj \ + help.obj ifile.obj input.obj jump.obj line.obj linenum.obj \ + lsystem.obj mark.obj optfunc.obj option.obj opttbl.obj os.obj \ + output.obj pattern.obj position.obj prompt.obj search.obj signal.obj \ + tags.obj ttyin.obj version.obj regexp.obj all: less lesskey lessecho ==== //depot/projects/soc2009/trasz_limits/contrib/less/Makefile.wnm#2 (text+ko) ==== @@ -23,12 +23,13 @@ .c.obj: $(CC) $(CFLAGS) $< -OBJ = main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj command.obj \ - decode.obj edit.obj filename.obj forwback.obj help.obj ifile.obj \ - input.obj jump.obj line.obj linenum.obj lsystem.obj \ - mark.obj optfunc.obj option.obj opttbl.obj os.obj output.obj \ - position.obj prompt.obj search.obj signal.obj tags.obj \ - ttyin.obj version.obj regexp.obj +OBJ = \ + main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj \ + command.obj cvt.obj decode.obj edit.obj filename.obj forwback.obj \ + help.obj ifile.obj input.obj jump.obj line.obj linenum.obj \ + lsystem.obj mark.obj optfunc.obj option.obj opttbl.obj os.obj \ + output.obj pattern.obj position.obj prompt.obj search.obj signal.obj \ + tags.obj ttyin.obj version.obj regexp.obj all: less.exe lesskey.exe ==== //depot/projects/soc2009/trasz_limits/contrib/less/NEWS#2 (text+ko) ==== @@ -12,6 +12,18 @@ ====================================================================== + Major changes between "less" versions 429 and 436 + +* Don't pass "-" to non-pipe LESSOPEN unless it starts with "-". + +* Allow a fraction as the argument to the -# (--shift) option. + +* Fix highlight bug when underlined/overstruck text matches at end of line. + +* Fix non-regex searches with ctrl-R. + +====================================================================== + Major changes between "less" versions 424 and 429 * LESSOPEN pipe will now be used on standard input, if the LESSOPEN ==== //depot/projects/soc2009/trasz_limits/contrib/less/README#2 (text+ko) ==== @@ -1,7 +1,7 @@ - Less, version 429 + Less, version 436 - This is the distribution of less, version 429, released 11 Apr 2009. + This is the distribution of less, version 436, released 07 Jul 2009. This program is part of the GNU project (http://www.gnu.org). This program is free software. You may redistribute it and/or ==== //depot/projects/soc2009/trasz_limits/contrib/less/brac.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/ch.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/charset.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. @@ -425,7 +425,7 @@ c &= 0377; if ((c < 128 || !utf_mode) && !control_char(c)) - SNPRINTF1(buf, sizeof(buf), "%c", c); + SNPRINTF1(buf, sizeof(buf), "%c", (int) c); else if (c == ESC) strcpy(buf, "ESC"); #if IS_EBCDIC_HOST @@ -442,7 +442,7 @@ "..V....D....TU.Z"[c]); #else else if (c < 128 && !control_char(c ^ 0100)) - SNPRINTF1(buf, sizeof(buf), "^%c", c ^ 0100); + SNPRINTF1(buf, sizeof(buf), "^%c", (int) (c ^ 0100)); #endif else SNPRINTF1(buf, sizeof(buf), binfmt, c); ==== //depot/projects/soc2009/trasz_limits/contrib/less/charset.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2008 Mark Nudelman + * Copyright (C) 2005-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/cmd.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/cmdbuf.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/command.c#2 (text+ko) ==== @@ -1,6 +1,6 @@ -/* $FreeBSD: src/contrib/less/command.c,v 1.10 2009/05/09 01:35:27 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/command.c,v 1.11 2009/07/29 09:20:32 delphij Exp $ */ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/configure.ac#2 (text+ko) ==== @@ -1,6 +1,6 @@ # Process this file with autoconf to produce a configure script. -# Copyright (C) 1984-2008 Mark Nudelman +# Copyright (C) 1984-2009 Mark Nudelman # # You may distribute under the terms of either the GNU General Public # License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/decode.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/defines.ds#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/defines.o2#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/defines.o9#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/defines.wn#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/edit.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/filename.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. @@ -843,17 +843,17 @@ #else lessopen++; returnfd = 1; - if (*lessopen == '-') { - /* - * Lessopen preprocessor will accept "-" as a filename. - */ - lessopen++; - } else { - if (strcmp(filename, "-") == 0) - return (NULL); - } #endif } + if (*lessopen == '-') { + /* + * Lessopen preprocessor will accept "-" as a filename. + */ + lessopen++; + } else { + if (strcmp(filename, "-") == 0) + return (NULL); + } len = strlen(lessopen) + strlen(filename) + 2; cmd = (char *) ecalloc(len, sizeof(char)); ==== //depot/projects/soc2009/trasz_limits/contrib/less/forwback.c#2 (text+ko) ==== @@ -1,6 +1,6 @@ -/* $FreeBSD: src/contrib/less/forwback.c,v 1.8 2009/05/09 01:35:27 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/forwback.c,v 1.9 2009/07/29 09:20:32 delphij Exp $ */ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/soc2009/trasz_limits/contrib/less/funcs.h#2 (text+ko) ==== @@ -83,6 +83,9 @@ public void ungetcc (); public void ungetsc (); public void commands (); + public int cvt_length (); + public int * cvt_alloc_chpos (); + public void cvt_text (); public void init_cmds (); public void add_fcmd_table (); public void add_ecmd_table (); @@ -193,6 +196,8 @@ public void opt_l (); public void opt_j (); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 4 16:02:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4CC961065675; Tue, 4 Aug 2009 16:02:40 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E36121065670 for ; Tue, 4 Aug 2009 16:02:39 +0000 (UTC) (envelope-from yohanes@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CF83F8FC0A for ; Tue, 4 Aug 2009 16:02:39 +0000 (UTC) (envelope-from yohanes@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n74G2dxi051944 for ; Tue, 4 Aug 2009 16:02:39 GMT (envelope-from yohanes@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n74G2BWP051920 for perforce@freebsd.org; Tue, 4 Aug 2009 16:02:11 GMT (envelope-from yohanes@FreeBSD.org) Date: Tue, 4 Aug 2009 16:02:11 GMT Message-Id: <200908041602.n74G2BWP051920@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to yohanes@FreeBSD.org using -f From: Yohanes Nugroho To: Perforce Change Reviews Cc: Subject: PERFORCE change 166998 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 16:02:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=166998 Change 166998 by yohanes@econa on 2009/08/04 16:02:06 Synchronize with latest tree Submitted by: Yohanes Nugroho Affected files ... .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/articles/contributing/article.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/articles/explaining-bsd/article.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/developers-handbook/secure/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/developers-handbook/tools/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/faq/book.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/porters-handbook/book.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/articles/gjournal-desktop/article.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/firewalls/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/install/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/share/sgml/trademarks.ent#2 integrate .. //depot/projects/str91xx/doc/el_GR.ISO8859-7/share/tools/checkupdate/checkupdate.py#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/committers-guide/article.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/explaining-bsd/article.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/gjournal-desktop/article.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/linux-emulation/article.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/linux-users/article.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/nanobsd/article.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/portbuild/article.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/releng/article.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/dev-model/book.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/developers-handbook/x86/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/faq/book.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/jails/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/handbook/virtualization/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/share/sgml/authors.ent#3 integrate .. //depot/projects/str91xx/doc/fr_FR.ISO8859-1/articles/Makefile#2 integrate .. //depot/projects/str91xx/doc/fr_FR.ISO8859-1/articles/explaining-bsd/Makefile#1 branch .. //depot/projects/str91xx/doc/fr_FR.ISO8859-1/articles/explaining-bsd/article.sgml#1 branch .. //depot/projects/str91xx/doc/fr_FR.ISO8859-1/share/sgml/trademarks.ent#2 integrate .. //depot/projects/str91xx/doc/fr_FR.ISO8859-1/share/sgml/translators.ent#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/articles/explaining-bsd/article.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/articles/linux-users/article.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/faq/book.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/fdp-primer/sgml-markup/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/geom/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#2 integrate .. //depot/projects/str91xx/doc/ja_JP.eucJP/books/handbook/book.sgml#2 integrate .. //depot/projects/str91xx/doc/ja_JP.eucJP/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/ja_JP.eucJP/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/ja_JP.eucJP/books/handbook/pgpkeys/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/ja_JP.eucJP/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/jails/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/books/handbook/virtualization/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/mn_MN.UTF-8/share/sgml/trademarks.ent#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/articles/explaining-bsd/article.sgml#3 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/jails/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/books/handbook/virtualization/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/share/sgml/trademarks.ent#2 integrate .. //depot/projects/str91xx/doc/nl_NL.ISO8859-1/share/sgml/transtable.xml#2 integrate .. //depot/projects/str91xx/doc/ru_RU.KOI8-R/books/handbook/geom/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/share/pgpkeys/des.key#2 integrate .. //depot/projects/str91xx/doc/share/pgpkeys/gavin.key#1 branch .. //depot/projects/str91xx/doc/share/pgpkeys/np.key#1 branch .. //depot/projects/str91xx/doc/share/pgpkeys/pgpkeys-developers.sgml#3 integrate .. //depot/projects/str91xx/doc/share/pgpkeys/pgpkeys.ent#3 integrate .. //depot/projects/str91xx/doc/share/pgpkeys/tuexen.key#1 branch .. //depot/projects/str91xx/doc/share/pgpkeys/yzlin.key#1 branch .. //depot/projects/str91xx/doc/share/sgml/man-refs.ent#2 integrate .. //depot/projects/str91xx/doc/share/sgml/trademarks.ent#2 integrate .. //depot/projects/str91xx/ports/GIDs#2 integrate .. //depot/projects/str91xx/ports/LEGAL#2 integrate .. //depot/projects/str91xx/ports/MOVED#3 integrate .. //depot/projects/str91xx/ports/Mk/bsd.autotools.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.commands.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.database.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.emacs.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.fpc.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.gcc.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.gecko.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.gnome.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.kde.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.kde4.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.ldap.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.linux-apps.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.linux-rpm.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.openssl.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.perl.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.php.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.port.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.python.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.ruby.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.scons.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.sdl.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.sites.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.tcl.mk#2 integrate .. //depot/projects/str91xx/ports/Mk/bsd.wx.mk#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/portbuild.conf#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/dopackagestats#2 integrate .. //depot/projects/str91xx/ports/Tools/portbuild/scripts/prunepkgs#2 integrate .. //depot/projects/str91xx/ports/Tools/scripts/check-latest-link#2 integrate .. //depot/projects/str91xx/ports/Tools/scripts/tindex#3 integrate .. //depot/projects/str91xx/ports/UIDs#2 integrate .. //depot/projects/str91xx/ports/UPDATING#3 integrate .. //depot/projects/str91xx/src/MAINTAINERS#2 integrate .. //depot/projects/str91xx/src/Makefile.inc1#2 integrate .. //depot/projects/str91xx/src/ObsoleteFiles.inc#3 integrate .. //depot/projects/str91xx/src/UPDATING#3 integrate .. //depot/projects/str91xx/src/bin/chflags/chflags.c#2 integrate .. //depot/projects/str91xx/src/bin/chmod/chmod.c#2 integrate .. //depot/projects/str91xx/src/bin/df/df.1#2 integrate .. //depot/projects/str91xx/src/bin/df/df.c#2 integrate .. //depot/projects/str91xx/src/bin/hostname/hostname.c#2 integrate .. //depot/projects/str91xx/src/bin/ln/ln.1#2 integrate .. //depot/projects/str91xx/src/bin/ln/ln.c#2 integrate .. //depot/projects/str91xx/src/bin/ps/ps.1#2 integrate .. //depot/projects/str91xx/src/bin/ps/ps.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/alias.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/eval.c#3 integrate .. //depot/projects/str91xx/src/bin/sh/eval.h#3 integrate .. //depot/projects/str91xx/src/bin/sh/exec.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/expand.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/histedit.c#3 integrate .. //depot/projects/str91xx/src/bin/sh/input.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/input.h#2 integrate .. //depot/projects/str91xx/src/bin/sh/main.c#3 integrate .. //depot/projects/str91xx/src/bin/sh/memalloc.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/memalloc.h#2 integrate .. //depot/projects/str91xx/src/bin/sh/miscbltin.c#3 integrate .. //depot/projects/str91xx/src/bin/sh/mkinit.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/mksyntax.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/output.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/parser.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/redir.c#2 integrate .. //depot/projects/str91xx/src/bin/sh/sh.1#3 integrate .. //depot/projects/str91xx/src/bin/sh/trap.c#3 integrate .. //depot/projects/str91xx/src/bin/sh/trap.h#2 integrate .. //depot/projects/str91xx/src/bin/sh/var.c#2 integrate .. //depot/projects/str91xx/src/cddl/contrib/opensolaris/head/thread.h#2 integrate .. //depot/projects/str91xx/src/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#2 integrate .. //depot/projects/str91xx/src/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#2 integrate .. //depot/projects/str91xx/src/cddl/lib/Makefile.inc#2 integrate .. //depot/projects/str91xx/src/cddl/lib/libctf/Makefile#2 integrate .. //depot/projects/str91xx/src/cddl/lib/libdtrace/Makefile#2 integrate .. //depot/projects/str91xx/src/contrib/amd/amd/get_args.c#2 integrate .. //depot/projects/str91xx/src/contrib/bind9/CHANGES#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/KNOWN-DEFECTS#1 branch .. //depot/projects/str91xx/src/contrib/bind9/bin/check/named-checkzone.c#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/bin/dnssec/dnssec-signzone.8#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/bin/dnssec/dnssec-signzone.c#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/bin/dnssec/dnssec-signzone.docbook#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/bin/dnssec/dnssec-signzone.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/bin/dnssec/dnssectool.c#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/bin/named/update.c#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/Bv9ARM-book.xml#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/Bv9ARM.ch06.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/Bv9ARM.ch07.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/Bv9ARM.ch08.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/Bv9ARM.ch09.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/Bv9ARM.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.dig.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.dnssec-dsfromkey.html#2 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.dnssec-keyfromlabel.html#2 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.dnssec-keygen.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.dnssec-signzone.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.host.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.named-checkconf.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.named-checkzone.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.named.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.nsupdate.html#2 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.rndc-confgen.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.rndc.conf.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/doc/arm/man.rndc.html#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/bind9/api#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/bind9/check.c#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/dns/api#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/dns/dnssec.c#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/dns/include/dns/dnssec.h#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/dns/include/dns/keyvalues.h#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/dns/nsec3.c#2 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/dns/resolver.c#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/lib/isc/ia64/include/isc/atomic.h#3 integrate .. //depot/projects/str91xx/src/contrib/bind9/version#3 integrate .. //depot/projects/str91xx/src/contrib/csup/rcsfile.c#2 integrate .. //depot/projects/str91xx/src/contrib/csup/updater.c#2 integrate .. //depot/projects/str91xx/src/contrib/gcc/config/freebsd-spec.h#2 integrate .. //depot/projects/str91xx/src/contrib/gcc/dwarf2out.c#2 integrate .. //depot/projects/str91xx/src/contrib/gdb/gdb/stack.c#2 integrate .. //depot/projects/str91xx/src/contrib/ipfilter/tools/ipfcomp.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/LICENSE#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.aut#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.dsb#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.dsg#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.dsu#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.in#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.o2e#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.o9c#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.o9u#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.wnb#2 integrate .. //depot/projects/str91xx/src/contrib/less/Makefile.wnm#2 integrate .. //depot/projects/str91xx/src/contrib/less/NEWS#2 integrate .. //depot/projects/str91xx/src/contrib/less/README#2 integrate .. //depot/projects/str91xx/src/contrib/less/brac.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/ch.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/charset.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/charset.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/cmd.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/cmdbuf.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/command.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/configure.ac#2 integrate .. //depot/projects/str91xx/src/contrib/less/cvt.c#1 branch .. //depot/projects/str91xx/src/contrib/less/decode.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/defines.ds#2 integrate .. //depot/projects/str91xx/src/contrib/less/defines.o2#2 integrate .. //depot/projects/str91xx/src/contrib/less/defines.o9#2 integrate .. //depot/projects/str91xx/src/contrib/less/defines.wn#2 integrate .. //depot/projects/str91xx/src/contrib/less/edit.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/filename.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/forwback.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/funcs.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/ifile.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/input.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/jump.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/less.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/less.man#2 integrate .. //depot/projects/str91xx/src/contrib/less/less.nro#2 integrate .. //depot/projects/str91xx/src/contrib/less/lessecho.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/lessecho.man#2 integrate .. //depot/projects/str91xx/src/contrib/less/lessecho.nro#2 integrate .. //depot/projects/str91xx/src/contrib/less/lesskey.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/lesskey.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/lesskey.man#2 integrate .. //depot/projects/str91xx/src/contrib/less/lesskey.nro#2 integrate .. //depot/projects/str91xx/src/contrib/less/lglob.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/line.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/linenum.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/lsystem.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/main.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/mark.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/mkhelp.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/optfunc.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/option.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/option.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/opttbl.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/os.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/output.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/pattern.c#1 branch .. //depot/projects/str91xx/src/contrib/less/pattern.h#1 branch .. //depot/projects/str91xx/src/contrib/less/pckeys.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/position.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/position.h#2 integrate .. //depot/projects/str91xx/src/contrib/less/prompt.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/screen.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/scrsize.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/search.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/signal.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/tags.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/ttyin.c#2 integrate .. //depot/projects/str91xx/src/contrib/less/version.c#2 integrate .. //depot/projects/str91xx/src/contrib/netcat/nc.1#3 integrate .. //depot/projects/str91xx/src/contrib/ntp/ntpd/ntp_crypto.c#2 integrate .. //depot/projects/str91xx/src/contrib/ntp/scripts/mkver.in#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/NEWS#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/README#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/VERSION#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/config/config.h#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/configure#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/configure.ac#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/etc/audit_event#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/libauditd/auditd_lib.c#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/libbsm/bsm_control.c#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/libbsm/bsm_errno.c#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/libbsm/bsm_io.c#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/libbsm/bsm_token.c#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/man/audit_control.5#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/sys/bsm/audit.h#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/str91xx/src/contrib/openbsm/tools/audump.c#2 integrate .. //depot/projects/str91xx/src/contrib/sendmail/cf/sh/makeinfo.sh#2 integrate .. //depot/projects/str91xx/src/contrib/tcpdump/ieee802_11.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcpdump/ieee802_11_radio.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcpdump/print-802_11.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/Fixes#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/Imakefile#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/Makefile.ADMIN#2 delete .. //depot/projects/str91xx/src/contrib/tcsh/Makefile.in#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/README#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/RELEASE-PROCEDURE#2 delete .. //depot/projects/str91xx/src/contrib/tcsh/complete.tcsh#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/config.guess#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/config.h.in#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/config.rpath#1 branch .. //depot/projects/str91xx/src/contrib/tcsh/config.sub#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/config_f.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/configure#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/configure.in#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/ed.chared.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/ed.decls.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/ed.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/ed.inputl.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/ed.screen.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/ed.term.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/ed.xmap.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/glob.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/host.defs#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/ma.setp.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/patchlevel.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.char.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.char.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.decls.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.dir.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.dol.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.err.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.exec.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.exp.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.file.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.func.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.glob.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.lex.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.proc.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.proc.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.sem.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/sh.set.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/snames.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tc.bind.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tc.const.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tc.decls.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tc.func.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tc.os.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tc.sig.h#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tc.str.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tcsh.man#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tw.color.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tw.comp.c#2 integrate .. //depot/projects/str91xx/src/contrib/tcsh/tw.parse.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssh/config.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssh/ssh_namespace.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/CHANGES#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/ChangeLog.0_9_7-stable_not-in-head#2 delete .. //depot/projects/str91xx/src/crypto/openssl/ChangeLog.0_9_7-stable_not-in-head_FIPS#2 delete .. //depot/projects/str91xx/src/crypto/openssl/Configure#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/FAQ#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/INSTALL#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/LICENSE#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/Makefile.org#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/Makefile.shared#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/NEWS#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/README#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/apps.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/apps.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/asn1pars.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/ca.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/cms.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/apps/crl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/dgst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/dsa.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/ec.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/enc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/engine.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/gendsa.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/genpkey.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/apps/genrsa.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/md4.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/apps/nseq.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/ocsp.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/openssl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/pkcs12.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/pkcs8.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/pkey.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/apps/pkeyparam.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/apps/pkeyutl.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/apps/progs.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/progs.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/rand.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/req.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/rsa.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/rsautl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/s_apps.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/s_cb.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/s_client.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/s_server.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/smime.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/speed.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/spkac.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/ts.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/apps/tsget#1 branch .. //depot/projects/str91xx/src/crypto/openssl/apps/version.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/apps/x509.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/certs/README.RootCerts#1 branch .. //depot/projects/str91xx/src/crypto/openssl/certs/RegTP-5R.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/RegTP-6R.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/aol1.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/aol2.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/aoltw1.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/aoltw2.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/argena.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/argeng.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/demo/nortelCA.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/demo/timCA.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/demo/tjhCA.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/demo/vsigntca.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/eng1.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/eng2.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/eng3.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/eng4.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/eng5.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/ICE-CA.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/ICE-root.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/ICE-user.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/RegTP-4R.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/factory.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/rsa-cca.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/rsa-ssca.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/vsign2.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/expired/vsign3.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/thawteCb.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/thawteCp.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/vsign1.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/vsign3.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/vsignss.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/certs/wellsfgo.pem#2 delete .. //depot/projects/str91xx/src/crypto/openssl/config#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/aes.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/aes_cbc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/aes_core.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/aes_ige.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/aes_wrap.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/aes_x86core.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/asm/aes-586.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/asm/aes-armv4.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/asm/aes-ia64.S#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/asm/aes-ppc.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/asm/aes-s390x.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/asm/aes-sparcv9.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/aes/asm/aes-x86_64.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/a_bytes.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/a_mbstr.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/a_object.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/a_sign.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/a_strex.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/a_strnid.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/a_type.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/a_verify.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/ameth_lib.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn1.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn1_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn1_gen.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn1_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn1_locl.h#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn1_par.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn1t.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn_mime.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn_moid.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/asn_pack.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/bio_asn1.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/bio_ndef.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/nsseq.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/p5_pbe.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/p5_pbev2.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/p8_pkey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/t_bitst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/t_crl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/t_req.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/t_spki.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/t_x509.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/t_x509a.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/tasn_dec.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/tasn_enc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/tasn_fre.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/tasn_new.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/tasn_prn.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/tasn_typ.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/tasn_utl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/x_algor.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/x_bignum.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/x_crl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/x_exten.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/x_long.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/x_name.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/x_nx509.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/asn1/x_x509a.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bf/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bf/bf_skey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bf/blowfish.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/b_print.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/b_sock.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/bio.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/bss_bio.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/bss_dgram.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/bss_file.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/bss_mem.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bio/bss_sock.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/alpha-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/armv4-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/ia64.S#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/mips3-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/mo-586.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/ppc-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/ppc64-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/s390x-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/s390x.S#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/sparcv9-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/sparcv9a-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/via-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/x86-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/asm/x86_64-mont.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_blind.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_div.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_exp.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_gcd.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_gf2m.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_lcl.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_mont.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_mul.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_nist.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_opt.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_prime.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_prime.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_prime.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_rand.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_shift.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bn_x931p.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/bn/bntest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/buffer/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/buffer/buf_str.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/buffer/buffer.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/camellia/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/camellia/asm/cmll-x86.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/camellia/asm/cmll-x86_64.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/camellia/camellia.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/camellia/cmll_misc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/cast/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/cast/c_skey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/cast/cast.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/Makefile#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms.h#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_asn1.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_att.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_cd.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_dd.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_enc.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_env.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_err.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_ess.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_io.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_lcl.h#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_lib.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_sd.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/cms/cms_smime.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/comp/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/comp/c_zlib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/comp/comp.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/comp/comp_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/conf/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/conf/conf.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/conf/conf_api.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/conf/conf_mall.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/conf/conf_mod.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/conf/conf_sap.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/cryptlib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/cryptlib.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/crypto.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/asm/des_enc.m4#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/des.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/des_enc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/des_lib.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/des_old.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/des_old.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/ecb_enc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/enc_read.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/enc_writ.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/set_key.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/times/usparc.cc#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/des/xcbc_enc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dh/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dh/dh.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dh/dh_asn1.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dh/dh_check.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dh/dh_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dh/dh_gen.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dh/dh_key.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_asn1.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_gen.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_key.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_ossl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_sign.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_utl.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/dsa/dsa_vrf.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dso/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/dyn_lck.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/ec/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ec/ec.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ec/ec_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ec/ec_key.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ec/ec_mult.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ec/ectest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ecdh/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ecdh/ecdhtest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ecdsa/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ecdsa/ecdsatest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ecdsa/ecs_ossl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/eng_all.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/eng_cnf.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/eng_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/eng_int.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/eng_padlock.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/eng_pkey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/eng_table.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/engine.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/engine/enginetest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/err.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/err_all.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/err_bio.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/err_def.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/err_prn.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/err_str.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/err/openssl.ec#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/bio_md.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/c_allc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/dig_eng.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/digest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/e_aes.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/e_camellia.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/e_des.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/e_des3.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/e_null.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/e_rc4.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/e_seed.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/enc_min.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_acnf.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_cnf.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_enc.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_locl.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_pbe.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_pkey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evp_test.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/evptests.txt#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/m_dss.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/m_dss1.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/m_md2.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/m_md4.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/m_md5.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/m_mdc2.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/m_sha.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/m_sha1.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/names.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/p5_crpt.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/p5_crpt2.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/p_sign.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/evp/p_verify.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ex_data.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/fips_err.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/fips_err.h#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/hmac/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/hmac/hmac.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/hmac/hmac.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/idea/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/idea/i_skey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/idea/idea.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/jpake/Makefile#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/jpake/jpake.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/jpake/jpake.h#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/jpake/jpake_err.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/jpake/jpaketest.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/krb5/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/lhash/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md2/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md2/md2.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md2/md2_dgst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md32_common.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md4/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md4/md4.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md4/md4_dgst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md4/md4_locl.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md4/md4test.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md5/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md5/asm/md5-586.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md5/asm/md5-sparcv9.S#2 delete .. //depot/projects/str91xx/src/crypto/openssl/crypto/md5/asm/md5-x86_64.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md5/md5.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md5/md5_dgst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md5/md5_locl.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/md5/md5test.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/mdc2/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/mdc2/mdc2.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/mdc2/mdc2dgst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/mem.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/mem_clr.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/mem_dbg.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/o_init.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/o_str.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/objects/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/objects/obj_dat.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/objects/obj_dat.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/objects/obj_dat.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/objects/obj_mac.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/objects/obj_mac.num#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/objects/objects.txt#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ocsp/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ocsp/ocsp.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ocsp/ocsp_asn.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ocsp/ocsp_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ocsp/ocsp_ht.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ocsp/ocsp_srv.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ocsp/ocsp_vfy.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/opensslconf.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/opensslconf.h.in#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/opensslv.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ossl_typ.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pem/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pem/pem.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pem/pem_all.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pem/pem_info.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pem/pem_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pem/pem_x509.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pem/pem_xaux.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/perlasm/x86_64-xlate.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/perlasm/x86ms.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/perlasm/x86nasm.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/perlasm/x86unix.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_add.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_asn.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_attr.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_crpt.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_crt.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_decr.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_init.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_key.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_kiss.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_mutl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_npas.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_p8d.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_p8e.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/p12_utl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs12/pkcs12.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs7/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs7/pk7_asn1.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs7/pk7_attr.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs7/pk7_mime.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pkcs7/pk7_smime.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ppccpuid.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/pqueue/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/pqueue/pq_compat.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/md_rand.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/rand.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/rand_eng.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/rand_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/rand_lcl.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/rand_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/rand_nw.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/rand_unix.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rand/randfile.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc2/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc2/rc2.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc2/rc2_skey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc4/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc4/asm/rc4-586.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc4/asm/rc4-ia64.S#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc4/asm/rc4-x86_64.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc4/rc4.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc4/rc4_fblk.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc4/rc4_skey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc5/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc5/rc5.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rc5/rc5_skey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ripemd/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ripemd/README#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ripemd/asm/rmd-586.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ripemd/ripemd.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ripemd/rmd_dgst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ripemd/rmd_locl.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ripemd/rmdtest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_asn1.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_eay.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_eng.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_err.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_gen.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_null.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_oaep.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_pss.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_sign.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_ssl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_test.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_x931.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/rsa/rsa_x931g.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/s390xcpuid.S#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/seed/Makefile#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/seed/seed.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/seed/seed.h#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/seed/seed_cbc.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/seed/seed_cfb.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/seed/seed_ecb.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/seed/seed_locl.h#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/seed/seed_ofb.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/asm/sha1-586.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/asm/sha1-ia64.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/asm/sha1-x86_64.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/asm/sha512-ia64.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/asm/sha512-x86_64.pl#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/sha.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/sha1_one.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/sha1dgst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/sha1test.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/sha256.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/sha512.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/sha_dgst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/sha_locl.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sha/shatest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/sparcv9cap.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/crypto/stack/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/stack/safestack.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/store/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/store/str_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/symhacks.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/txt_db/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ui/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ui/ui_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/ui/ui_openssl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/by_dir.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509_att.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509_cmp.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509_trs.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509_txt.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509_vfy.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509_vpm.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509cset.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509/x509spki.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/ext_dat.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/pcy_cache.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/pcy_data.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/pcy_int.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/pcy_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/pcy_map.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/pcy_node.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/pcy_tree.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/tabtest.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_addr.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_akey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_akeya.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_alt.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_asid.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_bcons.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_bitst.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_conf.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_cpols.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_crld.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_enum.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_extku.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_genn.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_ia5.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_info.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_int.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_lib.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_ncons.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_ocsp.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_pci.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_pcons.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_pku.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_pmaps.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_prn.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_purp.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_skey.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_sxnet.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3_utl.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3conf.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/v3prin.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x509v3/x509v3.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x86_64cpuid.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/crypto/x86cpuid.pl#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/demos/asn1/ocsp.c#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/demos/engines/cluster_labs/hw_cluster_labs_err.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/demos/engines/ibmca/hw_ibmca_err.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/demos/engines/zencod/hw_zencod_err.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/demos/jpake/Makefile#1 branch .. //depot/projects/str91xx/src/crypto/openssl/demos/jpake/jpakedemo.c#1 branch .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/ciphers.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/dgst.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/enc.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/ocsp.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/openssl.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/rand.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/rsautl.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/s_client.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/s_server.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/verify.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/apps/x509.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/c-indentation.el#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/ASN1_generate_nconf.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/DH_set_method.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/DSA_set_method.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/OPENSSL_ia32cap.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/RAND_bytes.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/RAND_egd.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/RAND_set_rand_method.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/RSA_set_method.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/X509_NAME_print_ex.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/des_modes.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/crypto/engine.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/ssl/SSL_CIPHER_get_name.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/ssl/SSL_CTX_set_options.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/ssl/SSL_CTX_set_verify.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/ssl/SSL_SESSION_free.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/ssl/SSL_free.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/ssl/SSL_read.pod#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/ssleay.txt#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/doc/standards.txt#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/e_os.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/engines/Makefile#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/engines/e_4758cca_err.h#2 integrate .. //depot/projects/str91xx/src/crypto/openssl/engines/e_aep.c#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 4 18:23:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E1FE310656A6; Tue, 4 Aug 2009 18:23:13 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9CB0E1065697 for ; Tue, 4 Aug 2009 18:23:13 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 889148FC19 for ; Tue, 4 Aug 2009 18:23:13 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n74INDes075424 for ; Tue, 4 Aug 2009 18:23:13 GMT (envelope-from sson@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n74INDwD075422 for perforce@freebsd.org; Tue, 4 Aug 2009 18:23:13 GMT (envelope-from sson@FreeBSD.org) Date: Tue, 4 Aug 2009 18:23:13 GMT Message-Id: <200908041823.n74INDwD075422@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sson@FreeBSD.org using -f From: Stacey Son To: Perforce Change Reviews Cc: Subject: PERFORCE change 167001 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 18:23:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=167001 Change 167001 by sson@sson_amd64 on 2009/08/04 18:22:38 Addition of au_write_tok() to au_io(3) API. We consolidate the 'raw', 'xml', and 'sfrm' (short format) flag arguments into a single bit field argument for all the bsm_io.c output formatting functions. This cleans up the code and makes it much easier to add new formatting flags in the future. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#46 edit .. //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#6 edit .. //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#64 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#46 (text+ko) ==== @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#45 $ + * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#46 $ */ #ifndef _LIBBSM_H_ @@ -100,6 +100,14 @@ #define AU_TO_NO_WRITE 0 /* Abandon audit record. */ #define AU_TO_WRITE 1 /* Commit audit record. */ +/* + * Output format flags to au_write_tok(). + */ +#define AU_OFLAG_NONE 0x0000 /* Default form. */ +#define AU_OFLAG_RAW 0x0001 /* Raw, numeric form. */ +#define AU_OFLAG_SHORT 0x0002 /* Short form. */ +#define AU_OFLAG_XML 0x0004 /* XML form. */ + __BEGIN_DECLS struct au_event_ent { au_event_t ae_number; @@ -823,6 +831,8 @@ char *del, char raw, char sfrm); void au_print_tok_xml(FILE *outfp, tokenstr_t *tok, char *del, char raw, char sfrm); +void au_write_tok(FILE *outfp, tokenstr_t *tok, + char *del, int oflags); /* * Functions relating to XML output. ==== //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#6 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#5 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#6 $ .\" -.Dd April 19, 2005 +.Dd August 4, 2009 .Dt AU_IO 3 .Os .Sh NAME @@ -45,6 +45,10 @@ .Fc .Ft int .Fn au_read_rec "FILE *fp" "u_char **buf" +.Ft void +.Fo au_write_tok +.Fa "FILE *outfp" "tokenstr_t *tok" "char *del" "int oflags" +.Fc .Sh DESCRIPTION These interfaces support input and output (I/O) involving audit records, internalizing an audit record from a byte stream, converting a token to @@ -73,7 +77,29 @@ The delimiter .Fa del is used when printing. +The +.Fn au_write_tok +function is a replacement for +.Fn au_print_tok . +The +.Fa oflags +controls how the output should be formatted and is specified by +or'ing the following flags: .Pp +.Bl -tag -width AU_OFLAG_SHORT -compact -offset indent +.It Li AU_OFLAG_NONE +Use the default form. +.It Li AU_OFLAG_RAW +Use the raw, numeric form. +.It Li AU_OFLAG_SHORT +Use the short form. +.It Li AU_OFLAG_XML +Use the XML form. +.El +.Pp +The flags options AU_OFLAG_SHORT and AU_OFLAG_RAW are exclusive and +should not be used together. +.Pp The .Fn au_read_rec function @@ -92,7 +118,7 @@ calls to .Fn au_fetch_tok on the buffer, and then invoking -.Fn au_print_tok +.Fn au_write_tok to print each token to an output stream such as .Dv stdout . On completion of the processing of each record, a call to ==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#64 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2004-2008 Apple Inc. + * Copyright (c) 2004-2009 Apple Inc. * Copyright (c) 2005 SPARTA, Inc. * Copyright (c) 2006 Robert N. M. Watson * Copyright (c) 2006 Martin Voros @@ -32,7 +32,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#63 $ + * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#64 $ */ #include @@ -407,10 +407,10 @@ * Prints the token type in either the raw or the default form. */ static void -print_tok_type(FILE *fp, u_char type, const char *tokname, char raw, int xml) +print_tok_type(FILE *fp, u_char type, const char *tokname, int oflags) { - if (xml) { + if (oflags & AU_OFLAG_XML) { switch(type) { case AUT_HEADER32: fprintf(fp, "id, "header", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "header", oflags); + if (oflags & AU_OFLAG_RAW) { open_attr(fp, "version"); print_1_byte(fp, tok->tt.hdr32.version, "%u"); close_attr(fp); open_attr(fp, "event"); - print_event(fp, tok->tt.hdr32.e_type, raw, sfrm); + print_event(fp, tok->tt.hdr32.e_type, oflags); close_attr(fp); open_attr(fp, "modifier"); - print_evmod(fp, tok->tt.hdr32.e_mod, raw); + print_evmod(fp, tok->tt.hdr32.e_mod, oflags); close_attr(fp); open_attr(fp, "time"); - print_sec32(fp, tok->tt.hdr32.s, raw); + print_sec32(fp, tok->tt.hdr32.s, oflags); close_attr(fp); open_attr(fp, "msec"); - print_msec32(fp, tok->tt.hdr32.ms, 1); + print_msec32(fp, tok->tt.hdr32.ms, oflags); close_attr(fp); close_tag(fp, tok->id); } else { @@ -919,13 +918,13 @@ print_delim(fp, del); print_1_byte(fp, tok->tt.hdr32.version, "%u"); print_delim(fp, del); - print_event(fp, tok->tt.hdr32.e_type, raw, sfrm); + print_event(fp, tok->tt.hdr32.e_type, oflags); print_delim(fp, del); - print_evmod(fp, tok->tt.hdr32.e_mod, raw); + print_evmod(fp, tok->tt.hdr32.e_mod, oflags); print_delim(fp, del); - print_sec32(fp, tok->tt.hdr32.s, raw); + print_sec32(fp, tok->tt.hdr32.s, oflags); print_delim(fp, del); - print_msec32(fp, tok->tt.hdr32.ms, raw); + print_msec32(fp, tok->tt.hdr32.ms, oflags); } } @@ -999,30 +998,29 @@ } static void -print_header32_ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - char sfrm, int xml) +print_header32_ex_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "header_ex", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "header_ex", oflags); + if (oflags & AU_OFLAG_RAW) { open_attr(fp, "version"); print_1_byte(fp, tok->tt.hdr32_ex.version, "%u"); close_attr(fp); open_attr(fp, "event"); - print_event(fp, tok->tt.hdr32_ex.e_type, raw, sfrm); + print_event(fp, tok->tt.hdr32_ex.e_type, oflags); close_attr(fp); open_attr(fp, "modifier"); - print_evmod(fp, tok->tt.hdr32_ex.e_mod, raw); + print_evmod(fp, tok->tt.hdr32_ex.e_mod, oflags); close_attr(fp); open_attr(fp, "host"); print_ip_ex_address(fp, tok->tt.hdr32_ex.ad_type, tok->tt.hdr32_ex.addr); close_attr(fp); open_attr(fp, "time"); - print_sec32(fp, tok->tt.hdr32_ex.s, raw); + print_sec32(fp, tok->tt.hdr32_ex.s, oflags); close_attr(fp); open_attr(fp, "msec"); - print_msec32(fp, tok->tt.hdr32_ex.ms, raw); + print_msec32(fp, tok->tt.hdr32_ex.ms, oflags); close_attr(fp); close_tag(fp, tok->id); } else { @@ -1031,16 +1029,16 @@ print_delim(fp, del); print_1_byte(fp, tok->tt.hdr32_ex.version, "%u"); print_delim(fp, del); - print_event(fp, tok->tt.hdr32_ex.e_type, raw, sfrm); + print_event(fp, tok->tt.hdr32_ex.e_type, oflags); print_delim(fp, del); - print_evmod(fp, tok->tt.hdr32_ex.e_mod, raw); + print_evmod(fp, tok->tt.hdr32_ex.e_mod, oflags); print_delim(fp, del); print_ip_ex_address(fp, tok->tt.hdr32_ex.ad_type, tok->tt.hdr32_ex.addr); print_delim(fp, del); - print_sec32(fp, tok->tt.hdr32_ex.s, raw); + print_sec32(fp, tok->tt.hdr32_ex.s, oflags); print_delim(fp, del); - print_msec32(fp, tok->tt.hdr32_ex.ms, raw); + print_msec32(fp, tok->tt.hdr32_ex.ms, oflags); } } @@ -1085,26 +1083,25 @@ } static void -print_header64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, char sfrm, - int xml) +print_header64_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "header", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "header", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "version"); print_1_byte(fp, tok->tt.hdr64.version, "%u"); close_attr(fp); open_attr(fp, "event"); - print_event(fp, tok->tt.hdr64.e_type, raw, sfrm); + print_event(fp, tok->tt.hdr64.e_type, oflags); close_attr(fp); open_attr(fp, "modifier"); - print_evmod(fp, tok->tt.hdr64.e_mod, raw); + print_evmod(fp, tok->tt.hdr64.e_mod, oflags); close_attr(fp); open_attr(fp, "time"); - print_sec64(fp, tok->tt.hdr64.s, raw); + print_sec64(fp, tok->tt.hdr64.s, oflags); close_attr(fp); open_attr(fp, "msec"); - print_msec64(fp, tok->tt.hdr64.ms, raw); + print_msec64(fp, tok->tt.hdr64.ms, oflags); close_attr(fp); close_tag(fp, tok->id); } else { @@ -1113,13 +1110,13 @@ print_delim(fp, del); print_1_byte(fp, tok->tt.hdr64.version, "%u"); print_delim(fp, del); - print_event(fp, tok->tt.hdr64.e_type, raw, sfrm); + print_event(fp, tok->tt.hdr64.e_type, oflags); print_delim(fp, del); - print_evmod(fp, tok->tt.hdr64.e_mod, raw); + print_evmod(fp, tok->tt.hdr64.e_mod, oflags); print_delim(fp, del); - print_sec64(fp, tok->tt.hdr64.s, raw); + print_sec64(fp, tok->tt.hdr64.s, oflags); print_delim(fp, del); - print_msec64(fp, tok->tt.hdr64.ms, raw); + print_msec64(fp, tok->tt.hdr64.ms, oflags); } } @@ -1189,30 +1186,29 @@ } static void -print_header64_ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - char sfrm, int xml) +print_header64_ex_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "header_ex", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "header_ex", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "version"); print_1_byte(fp, tok->tt.hdr64_ex.version, "%u"); close_attr(fp); open_attr(fp, "event"); - print_event(fp, tok->tt.hdr64_ex.e_type, raw, sfrm); + print_event(fp, tok->tt.hdr64_ex.e_type, oflags); close_attr(fp); open_attr(fp, "modifier"); - print_evmod(fp, tok->tt.hdr64_ex.e_mod, raw); + print_evmod(fp, tok->tt.hdr64_ex.e_mod, oflags); close_attr(fp); open_attr(fp, "host"); print_ip_ex_address(fp, tok->tt.hdr64_ex.ad_type, tok->tt.hdr64_ex.addr); close_attr(fp); open_attr(fp, "time"); - print_sec64(fp, tok->tt.hdr64_ex.s, raw); + print_sec64(fp, tok->tt.hdr64_ex.s, oflags); close_attr(fp); open_attr(fp, "msec"); - print_msec64(fp, tok->tt.hdr64_ex.ms, raw); + print_msec64(fp, tok->tt.hdr64_ex.ms, oflags); close_attr(fp); close_tag(fp, tok->id); } else { @@ -1221,16 +1217,16 @@ print_delim(fp, del); print_1_byte(fp, tok->tt.hdr64_ex.version, "%u"); print_delim(fp, del); - print_event(fp, tok->tt.hdr64_ex.e_type, raw, sfrm); + print_event(fp, tok->tt.hdr64_ex.e_type, oflags); print_delim(fp, del); - print_evmod(fp, tok->tt.hdr64_ex.e_mod, raw); + print_evmod(fp, tok->tt.hdr64_ex.e_mod, oflags); print_delim(fp, del); print_ip_ex_address(fp, tok->tt.hdr64_ex.ad_type, tok->tt.hdr64_ex.addr); print_delim(fp, del); - print_sec64(fp, tok->tt.hdr64_ex.s, raw); + print_sec64(fp, tok->tt.hdr64_ex.s, oflags); print_delim(fp, del); - print_msec64(fp, tok->tt.hdr64_ex.ms, raw); + print_msec64(fp, tok->tt.hdr64_ex.ms, oflags); } } @@ -1255,12 +1251,11 @@ } static void -print_trailer_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_trailer_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "trailer", raw, xml); - if (!xml) { + print_tok_type(fp, tok->id, "trailer", oflags); + if (!(oflags & AU_OFLAG_XML)) { print_delim(fp, del); print_4_bytes(fp, tok->tt.trail.count, "%u"); } @@ -1298,12 +1293,11 @@ } static void -print_arg32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_arg32_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "argument", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "argument", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "arg-num"); print_1_byte(fp, tok->tt.arg32.no, "%u"); close_attr(fp); @@ -1350,12 +1344,11 @@ } static void -print_arg64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_arg64_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "argument", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "argument", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "arg-num"); print_1_byte(fp, tok->tt.arg64.no, "%u"); close_attr(fp); @@ -1435,16 +1428,15 @@ } static void -print_arb_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_arb_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { char *str; char *format; size_t size; int i; - print_tok_type(fp, tok->id, "arbitrary", raw, xml); - if (!xml) + print_tok_type(fp, tok->id, "arbitrary", oflags); + if (!(oflags & AU_OFLAG_XML)) print_delim(fp, del); switch(tok->tt.arb.howtopr) { @@ -1477,7 +1469,7 @@ return; } - if (xml) { + if (oflags & AU_OFLAG_XML) { open_attr(fp, "print"); fprintf(fp, "%s",str); close_attr(fp); @@ -1490,7 +1482,7 @@ /* case AUR_CHAR: */ str = "byte"; size = AUR_BYTE_SIZE; - if (xml) { + if (oflags & AU_OFLAG_XML) { open_attr(fp, "type"); fprintf(fp, "%zu", size); close_attr(fp); @@ -1516,7 +1508,7 @@ case AUR_SHORT: str = "short"; size = AUR_SHORT_SIZE; - if (xml) { + if (oflags & AU_OFLAG_XML) { open_attr(fp, "type"); fprintf(fp, "%zu", size); close_attr(fp); @@ -1545,7 +1537,7 @@ /* case AUR_INT: */ str = "int"; size = AUR_INT32_SIZE; - if (xml) { + if (oflags & AU_OFLAG_XML) { open_attr(fp, "type"); fprintf(fp, "%zu", size); close_attr(fp); @@ -1573,7 +1565,7 @@ case AUR_INT64: str = "int64"; size = AUR_INT64_SIZE; - if (xml) { + if (oflags & AU_OFLAG_XML) { open_attr(fp, "type"); fprintf(fp, "%zu", size); close_attr(fp); @@ -1644,20 +1636,19 @@ } static void -print_attr32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_attr32_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "attribute", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "attribute", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "mode"); print_4_bytes(fp, tok->tt.attr32.mode, "%o"); close_attr(fp); open_attr(fp, "uid"); - print_user(fp, tok->tt.attr32.uid, raw); + print_user(fp, tok->tt.attr32.uid, oflags); close_attr(fp); open_attr(fp, "gid"); - print_group(fp, tok->tt.attr32.gid, raw); + print_group(fp, tok->tt.attr32.gid, oflags); close_attr(fp); open_attr(fp, "fsid"); print_4_bytes(fp, tok->tt.attr32.fsid, "%u"); @@ -1673,9 +1664,9 @@ print_delim(fp, del); print_4_bytes(fp, tok->tt.attr32.mode, "%o"); print_delim(fp, del); - print_user(fp, tok->tt.attr32.uid, raw); + print_user(fp, tok->tt.attr32.uid, oflags); print_delim(fp, del); - print_group(fp, tok->tt.attr32.gid, raw); + print_group(fp, tok->tt.attr32.gid, oflags); print_delim(fp, del); print_4_bytes(fp, tok->tt.attr32.fsid, "%u"); print_delim(fp, del); @@ -1726,20 +1717,19 @@ } static void -print_attr64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_attr64_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "attribute", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "attribute", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "mode"); print_4_bytes(fp, tok->tt.attr64.mode, "%o"); close_attr(fp); open_attr(fp, "uid"); - print_user(fp, tok->tt.attr64.uid, raw); + print_user(fp, tok->tt.attr64.uid, oflags); close_attr(fp); open_attr(fp, "gid"); - print_group(fp, tok->tt.attr64.gid, raw); + print_group(fp, tok->tt.attr64.gid, oflags); close_attr(fp); open_attr(fp, "fsid"); print_4_bytes(fp, tok->tt.attr64.fsid, "%u"); @@ -1755,9 +1745,9 @@ print_delim(fp, del); print_4_bytes(fp, tok->tt.attr64.mode, "%o"); print_delim(fp, del); - print_user(fp, tok->tt.attr64.uid, raw); + print_user(fp, tok->tt.attr64.uid, oflags); print_delim(fp, del); - print_group(fp, tok->tt.attr64.gid, raw); + print_group(fp, tok->tt.attr64.gid, oflags); print_delim(fp, del); print_4_bytes(fp, tok->tt.attr64.fsid, "%u"); print_delim(fp, del); @@ -1788,12 +1778,11 @@ } static void -print_exit_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_exit_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "exit", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "exit", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "errval"); print_errval(fp, tok->tt.exit.status); close_attr(fp); @@ -1846,14 +1835,13 @@ } static void -print_execarg_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_execarg_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { u_int32_t i; - print_tok_type(fp, tok->id, "exec arg", raw, xml); + print_tok_type(fp, tok->id, "exec arg", oflags); for (i = 0; i < tok->tt.execarg.count; i++) { - if (xml) { + if (oflags & AU_OFLAG_XML) { fprintf(fp, ""); print_string(fp, tok->tt.execarg.text[i], strlen(tok->tt.execarg.text[i])); @@ -1864,7 +1852,7 @@ strlen(tok->tt.execarg.text[i])); } } - if (xml) + if (oflags & AU_OFLAG_XML) close_tag(fp, tok->id); } @@ -1905,14 +1893,13 @@ } static void -print_execenv_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_execenv_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { u_int32_t i; - print_tok_type(fp, tok->id, "exec env", raw, xml); + print_tok_type(fp, tok->id, "exec env", oflags); for (i = 0; i< tok->tt.execenv.count; i++) { - if (xml) { + if (oflags & AU_OFLAG_XML) { fprintf(fp, ""); print_string(fp, tok->tt.execenv.text[i], strlen(tok->tt.execenv.text[i])); @@ -1923,7 +1910,7 @@ strlen(tok->tt.execenv.text[i])); } } - if (xml) + if (oflags & AU_OFLAG_XML) close_tag(fp, tok->id); } @@ -1959,26 +1946,25 @@ } static void -print_file_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_file_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "file", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "file", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "time"); - print_sec32(fp, tok->tt.file.s, raw); + print_sec32(fp, tok->tt.file.s, oflags); close_attr(fp); open_attr(fp, "msec"); - print_msec32(fp, tok->tt.file.ms, raw); + print_msec32(fp, tok->tt.file.ms, oflags); close_attr(fp); fprintf(fp, ">"); print_string(fp, tok->tt.file.name, tok->tt.file.len); close_tag(fp, tok->id); } else { print_delim(fp, del); - print_sec32(fp, tok->tt.file.s, raw); + print_sec32(fp, tok->tt.file.s, oflags); print_delim(fp, del); - print_msec32(fp, tok->tt.file.ms, raw); + print_msec32(fp, tok->tt.file.ms, oflags); print_delim(fp, del); print_string(fp, tok->tt.file.name, tok->tt.file.len); } @@ -2009,21 +1995,20 @@ } static void -print_newgroups_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_newgroups_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { int i; - print_tok_type(fp, tok->id, "group", raw, xml); + print_tok_type(fp, tok->id, "group", oflags); for (i = 0; i < tok->tt.grps.no; i++) { - if (xml) { + if (oflags & AU_OFLAG_XML) { fprintf(fp, ""); - print_group(fp, tok->tt.grps.list[i], raw); + print_group(fp, tok->tt.grps.list[i], oflags); fprintf(fp, ""); close_tag(fp, tok->id); } else { print_delim(fp, del); - print_group(fp, tok->tt.grps.list[i], raw); + print_group(fp, tok->tt.grps.list[i], oflags); } } } @@ -2046,12 +2031,11 @@ } static void -print_inaddr_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_inaddr_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "ip addr", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "ip addr", oflags); + if (oflags & AU_OFLAG_XML) { print_ip_address(fp, tok->tt.inaddr.addr); close_tag(fp, tok->id); } else { @@ -2090,12 +2074,11 @@ } static void -print_inaddr_ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_inaddr_ex_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "ip addr ex", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "ip addr ex", oflags); + if (oflags & AU_OFLAG_XML) { print_ip_ex_address(fp, tok->tt.inaddr_ex.type, tok->tt.inaddr_ex.addr); close_tag(fp, tok->id); @@ -2164,12 +2147,11 @@ } static void -print_ip_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_ip_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "ip", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "ip", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "version"); print_mem(fp, (u_char *)(&tok->tt.ip.version), sizeof(u_char)); @@ -2248,14 +2230,13 @@ } static void -print_ipc_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_ipc_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "IPC", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "IPC", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "ipc-type"); - print_ipctype(fp, tok->tt.ipc.type, raw); + print_ipctype(fp, tok->tt.ipc.type, oflags); close_attr(fp); open_attr(fp, "ipc-id"); print_4_bytes(fp, tok->tt.ipc.id, "%u"); @@ -2263,7 +2244,7 @@ close_tag(fp, tok->id); } else { print_delim(fp, del); - print_ipctype(fp, tok->tt.ipc.type, raw); + print_ipctype(fp, tok->tt.ipc.type, oflags); print_delim(fp, del); print_4_bytes(fp, tok->tt.ipc.id, "%u"); } @@ -2315,23 +2296,22 @@ } static void -print_ipcperm_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_ipcperm_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "IPC perm", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "IPC perm", oflags); + if (oflags & AU_OFLAG_XML) { open_attr(fp, "uid"); - print_user(fp, tok->tt.ipcperm.uid, raw); + print_user(fp, tok->tt.ipcperm.uid, oflags); close_attr(fp); open_attr(fp, "gid"); - print_group(fp, tok->tt.ipcperm.gid, raw); + print_group(fp, tok->tt.ipcperm.gid, oflags); close_attr(fp); open_attr(fp, "creator-uid"); - print_user(fp, tok->tt.ipcperm.puid, raw); + print_user(fp, tok->tt.ipcperm.puid, oflags); close_attr(fp); open_attr(fp, "creator-gid"); - print_group(fp, tok->tt.ipcperm.pgid, raw); + print_group(fp, tok->tt.ipcperm.pgid, oflags); close_attr(fp); open_attr(fp, "mode"); print_4_bytes(fp, tok->tt.ipcperm.mode, "%o"); @@ -2345,13 +2325,13 @@ close_tag(fp, tok->id); } else { print_delim(fp, del); - print_user(fp, tok->tt.ipcperm.uid, raw); + print_user(fp, tok->tt.ipcperm.uid, oflags); print_delim(fp, del); - print_group(fp, tok->tt.ipcperm.gid, raw); + print_group(fp, tok->tt.ipcperm.gid, oflags); print_delim(fp, del); - print_user(fp, tok->tt.ipcperm.puid, raw); + print_user(fp, tok->tt.ipcperm.puid, oflags); print_delim(fp, del); - print_group(fp, tok->tt.ipcperm.pgid, raw); + print_group(fp, tok->tt.ipcperm.pgid, oflags); print_delim(fp, del); print_4_bytes(fp, tok->tt.ipcperm.mode, "%o"); print_delim(fp, del); @@ -2378,12 +2358,11 @@ } static void -print_iport_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_iport_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "ip port", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "ip port", oflags); + if (oflags & AU_OFLAG_XML) { print_2_bytes(fp, ntohs(tok->tt.iport.port), "%#x"); close_tag(fp, tok->id); } else { @@ -2414,12 +2393,11 @@ } static void -print_opaque_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, - __unused char sfrm, int xml) +print_opaque_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags) { - print_tok_type(fp, tok->id, "opaque", raw, xml); - if (xml) { + print_tok_type(fp, tok->id, "opaque", oflags); + if (oflags & AU_OFLAG_XML) { print_mem(fp, (u_char*)tok->tt.opaque.data, tok->tt.opaque.size); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 4 19:09:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B221F1065675; Tue, 4 Aug 2009 19:09:03 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7181C1065670 for ; Tue, 4 Aug 2009 19:09:03 +0000 (UTC) (envelope-from yohanes@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5D9E48FC14 for ; Tue, 4 Aug 2009 19:09:03 +0000 (UTC) (envelope-from yohanes@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n74J93dK079853 for ; Tue, 4 Aug 2009 19:09:03 GMT (envelope-from yohanes@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n74J93hv079851 for perforce@freebsd.org; Tue, 4 Aug 2009 19:09:03 GMT (envelope-from yohanes@FreeBSD.org) Date: Tue, 4 Aug 2009 19:09:03 GMT Message-Id: <200908041909.n74J93hv079851@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to yohanes@FreeBSD.org using -f From: Yohanes Nugroho To: Perforce Change Reviews Cc: Subject: PERFORCE change 167002 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 19:09:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=167002 Change 167002 by yohanes@econa on 2009/08/04 19:08:49 Sync with latest source Submitted by: Yohanes Nugroho Affected files ... .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/users/chapter.sgml#2 integrate .. //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml#3 integrate .. //depot/projects/str91xx/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#4 integrate .. //depot/projects/str91xx/src/sys/netinet6/vinet6.h#3 delete Differences ... ==== //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml#2 (text+ko) ==== @@ -27,10 +27,10 @@ ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - $FreeBSD: doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml,v 1.9 2008/12/14 18:45:32 jkois Exp $ - $FreeBSDde: de-docproj/books/fdp-primer/sgml-markup/chapter.sgml,v 1.24 2008/12/14 18:34:06 jkois Exp $ + $FreeBSD: doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml,v 1.10 2009/08/04 18:03:01 bcr Exp $ + $FreeBSDde: de-docproj/books/fdp-primer/sgml-markup/chapter.sgml,v 1.25 2009/07/20 17:16:06 bcr Exp $ - basiert auf: 1.77 + basiert auf: 1.78 --> @@ -741,7 +741,7 @@ Einen kurzen historischen Abriss finden Sie unter . + url="http://www.oasis-open.org/docbook/intro.shtml#d0e41">http://www.oasis-open.org/docbook/intro.shtml#d0e41. . Seit 1998 wird es vom @@ -677,6 +677,151 @@ Informationen zu Datei-Flags finden sich in den Manualpages &man.chflags.1; und &man.chflags.2;. + + + + + + Tom + Rhodes + Beigetragen von + + + + + Die Berechtigungen setuid, setgid, und sticky + + Anders als die Berechtigungen, die bereits angesprochen wurden, + existieren drei weitere Einstellungen, über die alle + Administratoren Bescheid wissen sollten. Dies sind die Berechtigungen + setuid, setgid und + sticky. + + Diese Einstellungen sind wichtig für manche &unix;-Operationen, + da sie Funktionalitäten zur Verfügung stellen, die + normalerweise nicht an gewöhnliche Anwender vergeben wird. + Um diese zu verstehen, muss der Unterschied zwischen der realen + und der effektiven Benutzer-ID erwähnt werden. + + Die reale Benutzer-ID ist die UID, welche den + Prozess besitzt oder gestartet hat. Die effektive + UID ist diejenige, als die der Prozess läuft. + Beispielsweise wird &man.passwd.1; mit der realen ID des Benutzers + ausgeführt, der sein Passwort ändert. Um jedoch die + Passwortdatenbank zu bearbeiten, wird es effektiv als + root-Benutzer ausgeführt. Das + ermöglicht es normalen Benutzern, ihr Passwort zu ändern, ohne + einen Permission Denied-Fehler angezeigt zu + bekommen. + + + Die nosuid &man.mount.8;-Option wird dafür + sorgen, dass diese Anwendungen stillschweigend scheitern. Genauer + gesagt, sie werden nicht ausgeführt und der Anwender wird + darüber auch nicht informiert. Auf diese Option kann man sich + nicht vollständig verlassen, da ein + nosuid-Wrapper in der Lage wäre, dies zu + umgehen, wie in der &man.mount.8; Manualpage zu lesen ist. + + + Die setuid-Berechtigung kann durch das Voranstellen bei einer + Berechtigungsgruppe mit der Nummer Vier (4) gesetzt werden, wie im + folgenden Beispiel gezeigt wird: + + &prompt.root; chmod 4755 suidexample.sh + + Die Berechtigungen auf der + suidexample.sh-Datei + sollten jetzt wie folgt aussehen: + + -rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh + + In dem Beispiel sollte auffallen, dass ein s + jetzt Teil der Berechtigungen des Dateibesitzers geworden ist, welches + das Ausführen-Bit ersetzt. Dies ermöglicht es Werkzeugen + mit erhöhten Berechtigungen zu laufen, wie z.B. + passwd. + + Um dies in Echtzeit zu beobachten, öffnen Sie zwei Terminals. + Starten Sie auf einem den passwd-Prozess als normaler + Benutzer. Während es auf die Passworteingabe wartet, + überprüfen Sie die Prozesstabelle und sehen Sie sich die + Informationen des passwd-Kommandos an. + + Im Terminal A: + + Changing local password for trhodes +Old Password: + + Im Terminal B: + + &prompt.root; ps aux | grep passwd + + trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd + root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd + + Wie oben erwähnt, wird passwd von einem + normalen Benutzer ausgeführt, benutzt aber die effektive + UID von root. + + Die setgid-Berechtigung führt die gleiche + Aktion wie die setuid-Berechtigung durch, allerdings + verändert sie die Gruppenberechtigungen. Wenn eine Anwendung + oder ein Werkzeug mit dieser Berechtigung ausgeführt wird, + erhält es die Berechtigungen basierend auf der Gruppe, welche die + Datei besitzt und nicht die des Benutzers, der den Prozess gestartet + hat. + + Um die setgid-Berechtigung auf einer Datei zu + setzen, geben Sie dem chmod-Befehl eine + führende Zwei (2) mit, wie im folgenden gezeigt: + + &prompt.root; chmod 2755 sgidexample.sh + + Die neue Einstellung kann wie zuvor betrachtet werden. Beachten Sie, + dass das s sich jetzt in dem Feld befindet, das + für die Berechtigungen der Gruppe bestimmt ist: + + -rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh + + + Obwohl es sich bei dem in diesen Beispielen gezeigten Shellskript + um eine ausführbare Datei handelt, wird es nicht mit einer + anderen EUID oder effektiven Benutzer-ID + ausgeführt. Das ist so, weil Shellskripte keinen Zugriff auf + &man.setuid.2;-Systemaufrufe erhalten. + + + Diese beiden ersten angesprochenen Spezialberechtigungen (die + setuid und setgid + Berechtigungs-Bits) können die Systemsicherheit verringern, da + sie erhöhte Rechte ermöglichen. Es gibt noch ein drittes + Berechtigungs-Bit, das die Sicherheit eines Systems erhöhen kann: + das sticky bit. + + Das sticky bit erlaubt, wenn es auf ein + Verzeichnis angewendet wird, nur dem Besitzer der Datei diese Dateien + auch zu löschen. Dieses Recht ist nützlich, um die + Löschung von Dateien in öffentlichen Verzeichnissen durch + Benutzer, denen diese Dateien nicht gehören, zu verhindern, wie + z.B. in /tmp. Um diese Berechtigung anzuwenden, + stellen Sie der Berechtigung eine Eins (1) voran, beispielsweise + so: + + &prompt.root; chmod 1777 /tmp + + Den Effekt können Sie sich ansehen, indem Sie + das Kommando ls ausführen: + + &prompt.root; ls -al / | grep tmp + + drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp + + Das sticky bit kann anhand des + t ganz am Ende der Berechtigungen abgelesen + werden. + @@ -2403,6 +2548,12 @@ editieren, sparen Sie auf lange Sicht mehr Zeit durch das Erlernen von Editoren wie vim oder emacs ein. + + Viele Anwendungen, die Dateien verändern oder Texteingabe + erwarten, werden automatisch einen Texteditor öffnen. Um den + Standardeditor zu ändern, setzen Sie die Umgebungsvariable + EDITOR. Um mehr darüber zu erfahren, lesen Sie den + Abschnitt Shells. ==== //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml#3 (text+ko) ==== @@ -2,8 +2,8 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml,v 1.2 2009/06/28 17:05:49 bcr Exp $ - $FreeBSDde: de-docproj/books/handbook/filesystems/chapter.sgml,v 1.2 2009/06/24 18:56:02 bcr Exp $ + $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml,v 1.3 2009/08/04 18:03:01 bcr Exp $ + $FreeBSDde: de-docproj/books/handbook/filesystems/chapter.sgml,v 1.3 2009/06/28 16:25:19 jkois Exp $ basiert auf: 1.5 --> ==== //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#2 (text+ko) ==== @@ -2,9 +2,9 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.34 2008/03/25 19:04:26 jkois Exp $ - $FreeBSDde: de-docproj/books/handbook/ppp-and-slip/chapter.sgml,v 1.75 2008/03/02 11:05:21 jkois Exp $ - basiert auf: 1.177 + $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.35 2009/08/04 18:03:01 bcr Exp $ + $FreeBSDde: de-docproj/books/handbook/ppp-and-slip/chapter.sgml,v 1.90 2009/07/22 18:47:22 bcr Exp $ + basiert auf: 1.192 --> @@ -199,7 +199,7 @@ Ihren Login-Namen und Ihr Passwort (entweder ein - reguläres Login/Passwort-Paar im UNIX-Stil oder + reguläres Login/Passwort-Paar im &unix;-Stil oder ein PAP bzw. CHAP Login/Passwort-Paar). @@ -281,9 +281,11 @@ Sowohl ppp als auch pppd (die PPP-Implementierung auf Kernelebene) verwenden die - Konfigurationsdateien im Verzeichnis /etc/ppp. - Beispiele für User-PPP sind in - /usr/share/examples/ppp/ zu finden. + Konfigurationsdateien im Verzeichnis /etc/ppp. + Beispiele für User-PPP sind in /usr/share/examples/ppp/ + zu finden. Die Konfiguration von ppp erfordert, je nach Ihren besonderen Bedingungen, die Bearbeitung @@ -315,7 +317,7 @@ 1 default: 2 set log Phase Chat LCP IPCP CCP tun command 3 ident user-ppp VERSION (built COMPILATIONDATE) -4 set device /dev/cuaa0 +4 set device /dev/cuad0 5 set speed 115200 6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ 7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" @@ -377,10 +379,10 @@ Gibt das Device an, an dem das Modem angeschlossen ist. - COM1 entspricht - /dev/cuaa0 und - COM2 entspricht - /dev/cuaa1. + COM1 entspricht /dev/cuad0 und + COM2 entspricht /dev/cuad1. @@ -414,8 +416,9 @@ Beachten Sie, dass dieser Befehl aufgrund der besseren Lesbarkeit auf der nächsten Zeile weitergeht. Das kann für jeden Befehl in - ppp.conf gelten, wenn ``\'' - das letzte Zeichen in einer Zeile ist. + ppp.conf gelten, wenn + \ das letzte Zeichen in einer Zeile + ist. @@ -457,7 +460,8 @@ Bestimmt einen Provider, namens provider. Wenn Sie hier den Namen Ihres ISP einsetzen, können Sie später die Verbindung - mit aufbauen. + mit + aufbauen. @@ -612,7 +616,8 @@ von Sendmail erklärt. Beispiele für Konfigurationsdateien finden Sie - im Verzeichnis /usr/share/examples/ppp/. + im Verzeichnis /usr/share/examples/ppp/. @@ -779,7 +784,7 @@ diesem Benutzer die Rechte erteilen, ppp auszuführen, indem Sie ihn in der Datei /etc/group der Gruppe - network hinzufügen. + network hinzufügen. Sie werden ihm ebenfalls den Zugriff auf einen oder mehrere Abschnitte der Konfigurationsdatei geben müssen, indem Sie @@ -833,9 +838,10 @@ pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup - Erstellen Sie ein Verzeichnis /home/ppp, - das von allen Benutzern gelesen werden kann und die folgenden leeren - Dateien enthält: + Erstellen Sie ein Verzeichnis /home/ppp, das von allen Benutzern + gelesen werden kann und die folgenden leeren Dateien + enthält: -r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin -r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts @@ -1300,9 +1306,10 @@ tun Device in den Kernel eingebaut ist. - Vergewissern Sie sich, dass die Gerätedatei - tunN - im Verzeichnis /dev vorhanden ist. + Vergewissern Sie sich, dass die Gerätedatei tunN + im Verzeichnis /dev vorhanden ist. @@ -1404,9 +1411,9 @@ Bevor Sie PPP auf Ihrem Computer einrichten, sollten Sie - dafür sorgen, dass pppd im Verzeichnis - /usr/sbin vorhanden ist und - /etc/ppp existiert. + dafür sorgen, dass pppd im Verzeichnis /usr/sbin vorhanden ist und /etc/ppp existiert. pppd kann auf zweierlei Weise arbeiten: @@ -1471,10 +1478,10 @@ passive # wait for LCP packets domain ppp.foo.com # put your domain name here -:<remote_ip> # put the IP of remote PPP host here +:remote_ip # put the IP of remote PPP host here # it will be used to route packets via PPP link # if you didn't specified the noipdefault option - # change this line to <local_ip>:<remote_ip> + # change this line to local_ip:remote_ip defaultroute # put this if you want that PPP server will be your # default router @@ -1500,7 +1507,7 @@ Folgendes eingeben: - &prompt.root; /usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200 + &prompt.root; /usr/sbin/pppd /dev/tty01 19200 Achten Sie darauf, dass sie eine geeignete Geschwindigkeit wählen und das richtige Device verwenden. @@ -1613,7 +1620,7 @@ /etc/ppp/options: - /dev/cuaa1 115200 + /dev/cuad1 115200 crtscts # enable hardware flow control modem # modem control line @@ -1627,7 +1634,7 @@ : # put the IP of remote PPP host here # it will be used to route packets via PPP link # if you didn't specified the noipdefault option - # change this line to <local_ip>:<remote_ip> + # change this line to local_ip:remote_ip; defaultroute # put this if you want that PPP server will be # your default router @@ -1638,9 +1645,9 @@ Die folgenden Angaben sollten in einer Zeile stehen. - ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number> - CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id> - TIMEOUT 5 sword: <password> + ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTphone.number + CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id + TIMEOUT 5 sword: password Wenn diese Dateien richtig installiert und modifiziert sind, müssen Sie pppd, nur noch wie folgt @@ -1902,11 +1909,16 @@ Gerätedateien überprüfen - Wenn Sie den Kernel neu konfiguriert haben, werden - Sie such an das sio-Gerät - erinnern. Falls Sie keinen Kernel konfiguriert haben, - machen Sie sich keine Sorgen. Die seriellen Geräte - finden Sie in der Ausgabe von dmesg: + Wenn Sie einen eigenen Kernel verwenden, stellen Sie sicher, dass + die folgende Zeile in der Kernelkonfigurationsdatei vorhanden + ist: + + device sio + + Das sio-Gerät ist bereits + im GENERIC-Kernel vorhanden, deshalb sind in + diesem Fall keine zusätzlichen Schritte vonnöten. + Kontrollieren Sie die Ausgabe von dmesg: &prompt.root; dmesg | grep sio @@ -1918,9 +1930,9 @@ keinen neuen Kernel zu erstellen. Wenn Ihr Modem an sio1 angeschlossen ist (in DOS ist dieser Anschluss als - COM2 bekannt), ist - /dev/cuaa1 die - dazugehörende Gerätedatei. + COM2 bekannt), ist /dev/cuad1 die dazugehörende + Gerätedatei. @@ -1943,10 +1955,10 @@ Wir haben ppp nun gestartet. - ppp ON example> set device /dev/cuaa1 + ppp ON example> set device /dev/cuad1 Wir geben das Device an, an das unser Modem angeschlossen ist. - In diesem Fall ist es cuaa1. + In diesem Fall ist es cuad1. ppp ON example> set speed 115200 @@ -1967,7 +1979,7 @@ Wir wechseln in den Terminal-Modus, um das Modem manuell kontrollieren zu können. - deflink: Entering terminal mode on /dev/cuaa1 + deflink: Entering terminal mode on /dev/cuad1 type '~h' for help at @@ -2401,15 +2413,16 @@ mpd entsprechend Ihren Anforderungen und den Vorgaben Ihres Providers konfigurieren zu können. Der Port installiert auch einige - gut dokumentierte Beispielkonfigurationsdateien in - PREFIX/etc/mpd/. + gut dokumentierte Beispielkonfigurationsdateien in PREFIX/etc/mpd/. Beachten Sie, dass PREFIX hier das Verzeichnis angibt, in das Ihre Ports installiert werden. Standardmäßig - ist dies das Verzeichnis /usr/local/. + ist dies das Verzeichnis /usr/local/. Ein kompletter Leitfaden zur Konfiguration von mpd ist im HTML-Format verfügbar, - sobald der Port installiert ist. Dieser ist in - PREFIX/share/doc/mpd/ + sobald der Port installiert ist. Dieser ist in PREFIX/share/doc/mpd/ zu finden. Hier ist eine Beispielkonfiguration, um mit mpd eine Verbindung zu einem ADSL-Dienst aufzubauen. Die Konfiguration ist auf zwei Dateien @@ -2633,23 +2646,24 @@ Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem angeschlossen ist. Viele Leute erzeugen einen symbolischen Link, - wie etwa /dev/modem, der auf den - wirklichen Gerätenamen /dev/cuaaN - (/dev/cuadN unter &os; 6.X) - verweist. Damit ist es Ihnen möglich, - vom eigentlichen Gerätenamen zu abstrahieren, sollten Sie - das Modem einmal an eine andere Schnittstelle anschließen - müssen. Es kann ziemlich umständlich sein, wenn Sie - eine viele Dateien in /etc und - .kermrc-Dateien, die über - das ganze System verstreut sind, anpassen müssen! + wie etwa /dev/modem, der auf den wirklichen + Gerätenamen /dev/cuadN verweist. Damit ist es Ihnen + möglich, vom eigentlichen Gerätenamen zu abstrahieren, + sollten Sie das Modem einmal an eine andere Schnittstelle + anschließen müssen. Es kann ziemlich umständlich sein, + wenn Sie eine viele Dateien in /etc und + .kermrc-Dateien, die über das ganze System + verstreut sind, anpassen müssen! - /dev/cuaa0 - (/dev/cuad0 unter &os; 6.X) ist - COM1, /dev/cuaa1 - (/dev/cuad1 unter &os; 6.X) ist - COM2, etc. + /dev/cuad0 ist + COM1, /dev/cuad1 + ist COM2, etc. Stellen Sie sicher, dass Folgendes in Ihrer @@ -2679,13 +2693,9 @@ Vergewissern Sie sich, dass in der Datei - /etc/host.conf - hosts vor bind steht, wenn - Sie ein System vor FreeBSD 5.0 verwenden. Ab - FreeBSD 5.0 wird die Datei - /etc/nsswitch.conf verwendet, in deren - -Zeile files vor - dns stehen sollte. Ohne diese Reihenfolge + /etc/host.conf im Abschnitt + hosts: files vor + dns steht. Ohne diese Reihenfolge könnten lustige Dinge passieren. @@ -3039,10 +3049,13 @@ Router einsetzen möchten, müssen Sie die Datei /etc/rc.conf bearbeiten und den Wert der Variable gateway_enable auf - setzen. + setzen. Dadurch ist sichergestellt, dass + die Routingoptionen auch nach einem Neustart erhalten bleiben. - Danach sollten Sie Ihren Rechner neu starten, damit die neuen - Einstellungen wirksam werden. + Um die Einstellungen sofort anzuwenden, führen Sie den + folgenden Befehl als root-Benutzer aus: + + &prompt.root; /etc/rc.d/routing start Weitere Informationen zur Konfiguration Ihres Kernels, finden Sie in dieses Handbuches. @@ -3051,8 +3064,8 @@ Konfiguration des Sliplogin - Wie bereits erwähnt, gibt es im Verzeichnis - /etc/sliphome drei Dateien, die Teil der + Wie bereits erwähnt, gibt es im Verzeichnis /etc/sliphome drei Dateien, die Teil der Konfiguration für /usr/sbin/sliplogin sind (sliplogin ist in &man.sliplogin.8; beschrieben): slip.hosts, @@ -3165,8 +3178,8 @@ Skripte /etc/sliphome/slip.login /etc/sliphome/slip.logout anpassen müssen, damit diese &man.arp.8; zur Verwaltung der - proxy-ARP-Einträge in der ARP-Tabelle Ihres SLIP-Servers - verwenden + proxy ARP-Einträge in der ARP-Tabelle Ihres + SLIP-Servers verwenden. @@ -3343,109 +3356,6 @@ statischen Routen basierendes Routing erfolgreich einzurichten. - - - Der Einsatz von <application>&gated;</application> - - &gated - - - - &gated; ist inzwischen - proprietäre Software und steht der Öffentlichkeit - nicht mehr als Sourcecode zur Verfügung - (weitere Informationen hierzu sind auf der - &gated; - Webseite zu finden). Dieser Abschnitt existiert lediglich, - um die Rückwärtskompatibilität für - diejenigen sicherzustellen, die noch eine ältere Version - verwenden. - - - Eine Alternative zu dem aufwändigen Einsatz von - statischen Routen ist die Installation von - &gated; auf Ihrem FreeBSD-SLIP-Server. - &gated; kann so konfiguriert - werden, dass er die passenden Routingprotokolle (RIP/OSPF/BGP/EGP) - verwendet, um die anderen Router über Ihr SLIP-Subnetz zu - informieren. Sie müssen die Datei - /etc/gated.conf erstellen, - um &gated; zu konfigurieren. - Hier ist eine Beispieldatei, ähnlich derjenigen, - die der Autor auf einem FreeBSD-SLIP-Server verwendet hat: - - # -# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5 -# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface -# -# -# tracing options -# -traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ; - -rip yes { - interface sl noripout noripin ; - interface ed ripin ripout version 1 ; - traceoptions route ; -} ; - -# -# Turn on a bunch of tracing info for the interface to the kernel: -kernel { - traceoptions remnants request routes info interface ; -} ; - -# -# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP -# - -export proto rip interface ed { - proto direct { - xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections - } ; -} ; - -# -# Accept routes from RIP via ed Ethernet interfaces - -import proto rip interface ed { - all ; -} ; - - RIP - Die oben angegebene Beispieldatei - gated.conf sendet Routinginformationen, - die das SLIP-Subnetz xxx.xxx.yy - betreffen, mit Hilfe von RIP zum Ethernet. Wenn Sie einen - anderen Ethernet-Treiber als ed - verwenden, werden Sie die Einträge, - die sich auf ed beziehen, entsprechend - abändern müssen. Mit dieser Beispieldatei wird auch - die Aufzeichnung der Aktivitäten von - &gated; in der Datei - /var/tmp/gated.output - eingerichtet, was für eine eventuelle Fehlersuche - nützlich sein kann. Sie können diese Option - natürlich auch abschalten, wenn - &gated; - bei Ihnen ohne Probleme läuft. Sie müssen - xxx.xxx.yy noch durch die - Netzwerkadresse Ihres SLIP-Subnetzes ersetzen (ändern - Sie die Netzmaske im Abschnitt proto direct - ebenfalls). - - Wenn Sie &gated; auf Ihrem System - installiert und konfiguriert haben, müssen Sie die - FreeBSD-Startskripten noch anweisen, - &gated; - statt routed zu verwenden. Am - einfachsten können Sie dies erreichen, indem Sie - die Variablen router und - router_flags in der Datei - /etc/rc.conf entsprechend setzen. - Die Manual-Seite für &gated; bietet - weitere Informationen zu den Kommandozeilenparametern. - ==== //depot/projects/str91xx/doc/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml#2 (text+ko) ==== @@ -2,9 +2,9 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml,v 1.36 2008/12/27 14:19:15 jkois Exp $ - $FreeBSDde: de-docproj/books/handbook/serialcomms/chapter.sgml,v 1.72 2008/12/27 13:40:25 jkois Exp $ - basiert auf: 1.120 + $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml,v 1.37 2009/08/04 18:03:01 bcr Exp $ + $FreeBSDde: de-docproj/books/handbook/serialcomms/chapter.sgml,v 1.85 2009/08/01 17:16:26 bcr Exp $ + basiert auf: 1.133 --> @@ -513,13 +513,7 @@ verwendet. Dieser Port wird normalerweise nur von Modems genutzt. Sie können ihn allerdings für Terminals benutzen, die das Data Carrier Detect - Signal nicht unterstützen. - - Unter &os;5.X wurden Ports für ausgehende - Verbindungen mit - /dev/cuaaN - bezeichnet. - + Signal nicht unterstützen. @@ -613,25 +607,18 @@ /dev/cuadN für ausgehende Verbindungen angesprochen. Zum Initialisieren der Geräte stellt FreeBSD die Dateien - /dev/ttydN und - /dev/cuadN (unter - &os; 6.X) beziehungsweise - /dev/ttyidN und - /dev/cuaiaN + /dev/ttydN.init und + /dev/cuadN.init zur Verfügung. Zusätzlich existieren Dateien für das Sperren von Gerätedateien (Locking). Dabei handelt es sich um die Dateien /dev/ttydN.lock und - /dev/cuadN.lock - (unter &os; 6.X) beziehungsweise um die Dateien - /dev/ttyldN und - /dev/cualaN. - Diese Dateien werden - benutzt, um Kommunikationsparameter beim Öffnen eines Ports - vorzugeben. Für Modems, die zur Flusskontrolle - RTS/CTS benutzen, kann damit + /dev/cuadN.lock. + Diese Dateien werden benutzt, um Kommunikationsparameter beim + Öffnen eines Ports vorzugeben. Für Modems, die zur + Flusskontrolle RTS/CTS benutzen, kann damit crtscts gesetzt werden. Die Geräte /dev/ttyldN und /dev/cualaN (locking @@ -815,12 +802,9 @@ serial-port-device ist hier der Name der Gerätedatei, die einer bestimmten seriellen Schnittstelle - Ihres Systems zugewiesen ist. Diese Gerätedateien wurden - vor &os; 6.0 als - /dev/cuaaN, - seither als + Ihres Systems zugewiesen ist. Diese Gerätedateien werden /dev/cuadN - bezeichnet. + genannt. Der Buchstabe N muss dabei durch die Nummer des seriellen Ports Ihres Systems ersetzt werden. @@ -926,7 +910,7 @@ aufgeführt, an denen Sie sich auf dem FreeBSD-System anmelden können. Hier findet sich zum Beispiel ein Eintrag für die erste virtuelle Konsole - /dev/ttyv0, der es Ihnen ermöglicht, + /dev/ttyv0, der es Ihnen ermöglicht, sich dort anzumelden. Die Datei enthält des Weiteren Einträge für andere virtuelle Konsolen, serielle Schnittstellen und Pseudoterminals. Wenn Sie einen Terminal @@ -938,7 +922,8 @@ In der Voreinstellung enthält /etc/ttys Einträge für die ersten - vier seriellen Schnittstellen. Wenn Sie an eine von diesen einen + vier seriellen Schnittstellen: ttyd0 bis + ttyd3. Wenn Sie an eine von diesen einen Terminal anschließen, brauchen Sie keinen weiteren Eintrag hinzuzufügen. @@ -1117,8 +1102,8 @@ Für jeden Terminal sollten Sie einen Eintrag sehen. Aus dem folgenden Beispiel erkennen Sie, dass getty auf der zweiten seriellen - Schnittstelle läuft und den Verbindungstyp - std.38400 aus + Schnittstelle tyyd1 läuft und den + Verbindungstyp std.38400 aus /etc/gettytab benutzt: 22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1 @@ -1528,7 +1513,7 @@ ttyd0 "/usr/libexec/getty xxx" dialup on Das erste Feld der obigen Zeile gibt die Gerätedatei - für diesen Eintrag an – ttyd0 + für diesen Eintrag an – ttyd0 bedeutet, dass getty mit /dev/ttyd0 arbeitet. Das zweite Feld "/usr/libexec/getty xxx" @@ -1634,11 +1619,11 @@ Wenn Sie ein Modem besitzen, das seine Konfiguration in nicht flüchtigem RAM speichert, werden Sie ein Terminalprogramm wie - Telix unter &ms-dos; oder tip unter FreeBSD - benötigen, um die Parameter einzustellen. Verbinden Sie sich - mit derselben Geschwindigkeit, die getty - zuerst benutzen würde, mit dem Modem und treffen Sie folgende - Einstellungen: + Telix unter &ms-dos; oder + tip unter &os; benötigen, um die Parameter + einzustellen. Verbinden Sie sich mit derselben Geschwindigkeit, die + getty zuerst benutzen würde, mit dem Modem und + treffen Sie folgende Einstellungen: @@ -1829,7 +1814,7 @@ Modem anliegt. Wenn Sie keine getty-Prozesse auf den - gewünschten ttydN + gewünschten ttydN Ports finden, untersuchen Sie bitte /etc/ttys auf Fehler. Suchen Sie auch in /var/log/messages nach Meldungen von init oder @@ -1916,7 +1901,7 @@ führen dort die FTP-Sitzung durch. Die Dateien können Sie danach mit zmodem auf den lokalen Rechner übertragen. - + Mein Hayes Modem wird nicht unterstützt – was kann ich tun? @@ -1938,21 +1923,6 @@ tip denkt, dass ein Kommunikationsfehler vorliegt. Versuchen Sie es mit ATS7=45&W. - - - Tatsächlich unterstützt die ausgelieferte Version - von tip Hayes Modems noch nicht - vollständig. Die Lösung ist, - tipconf.h in - /usr/src/usr.bin/tip/tip zu editieren. - Dafür benötigen Sie natürlich die Quellcode - Distribution. - - Ändern Sie die Zeile #define HAYES 0 - zu #define HAYES 1. Dann führen Sie - make und make install aus. - Es sollte jetzt funktionieren. - @@ -1983,10 +1953,10 @@ Schnittstelle (/dev/cuad0) und speed für die Geschwindigkeit (57600). Wenn Sie mit dem Eingeben der AT - Befehle fertig sind, beenden Sie mit ~.. + Befehle fertig sind, beenden Sie mit ~.. - + Wieso funktioniert das <literal>@</literal> Zeichen für die pn Fähigkeit nicht? @@ -2001,7 +1971,7 @@ pn=\@ - + Wie kann ich von der Kommandozeile eine Telefonnummer wählen? @@ -2030,7 +2000,7 @@ &prompt.root; cu 5551234 -s 115200 - + Muss ich dabei jedes Mal die bps-Rate angeben? Schreiben Sie einen tip1200- oder einen @@ -2042,7 +2012,7 @@ benutzen. - + Wie kann ich möglichst komfortabel über einen Terminal-Server auf verschiedene Rechner zugreifen? @@ -2066,7 +2036,7 @@ Terminalserver. - + Kann <command>tip</command> mehr als eine Verbindung für jede Seite ausprobieren? @@ -2099,7 +2069,7 @@ laufen. - + Warum muss ich zweimal <keycombo action="simul"> <keycap>Ctrl</keycap> @@ -2150,10 +2120,10 @@ bestimmen, indem Sie in <filename>$HOME/.tiprc</filename> das Folgende einstellen:</para> - <programlisting>force=<single-char></programlisting> + <programlisting>force=<replaceable>single-char</replaceable></programlisting> </sect2> - <sect2> + <sect2 id="uppercase"> <title>Warum ist auf einmal alles was ich schreibe in GROSSBUCHSTABEN?? @@ -2191,7 +2161,7 @@ - + Wie kann ich Dateien mit <command>tip</command> übertragen? @@ -2218,7 +2188,7 @@ anderes Protokoll, wie zmodem, benutzen. - + Wie kann ich zmodem mit <command>tip</command> laufen lassen? @@ -2284,8 +2254,8 @@ - Verbinden Sie die serielle Konsole mit COM1 sowie - dem Kontrollterminal. + Verbinden Sie die serielle Konsole mit + COM1 sowie dem Kontrollterminal. @@ -2298,7 +2268,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 4 20:15:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B6591065706; Tue, 4 Aug 2009 20:15:16 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B6FD1065714 for ; Tue, 4 Aug 2009 20:15:16 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 283AE8FC19 for ; Tue, 4 Aug 2009 20:15:16 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n74KFGF2088133 for ; Tue, 4 Aug 2009 20:15:16 GMT (envelope-from sson@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n74KFF7U088131 for perforce@freebsd.org; Tue, 4 Aug 2009 20:15:15 GMT (envelope-from sson@FreeBSD.org) Date: Tue, 4 Aug 2009 20:15:15 GMT Message-Id: <200908042015.n74KFF7U088131@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sson@FreeBSD.org using -f From: Stacey Son To: Perforce Change Reviews Cc: Subject: PERFORCE change 167006 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 20:15:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=167006 Change 167006 by sson@sson_amd64 on 2009/08/04 20:15:05 Change au_write_tok() to au_print_flags_tok() to avoid confusion with other API functions. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#47 edit .. //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#7 edit .. //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#65 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#47 (text+ko) ==== @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#46 $ + * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#47 $ */ #ifndef _LIBBSM_H_ @@ -101,7 +101,7 @@ #define AU_TO_WRITE 1 /* Commit audit record. */ /* - * Output format flags to au_write_tok(). + * Output format flags for au_print_flags_tok(). */ #define AU_OFLAG_NONE 0x0000 /* Default form. */ #define AU_OFLAG_RAW 0x0001 /* Raw, numeric form. */ @@ -829,10 +829,10 @@ //XXX The following interface has different prototype from BSM void au_print_tok(FILE *outfp, tokenstr_t *tok, char *del, char raw, char sfrm); +void au_print_flags_tok(FILE *outfp, tokenstr_t *tok, + char *del, int oflags); void au_print_tok_xml(FILE *outfp, tokenstr_t *tok, char *del, char raw, char sfrm); -void au_write_tok(FILE *outfp, tokenstr_t *tok, - char *del, int oflags); /* * Functions relating to XML output. ==== //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#7 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#6 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#7 $ .\" .Dd August 4, 2009 .Dt AU_IO 3 @@ -31,6 +31,7 @@ .Sh NAME .Nm au_fetch_tok , .Nm au_print_tok , +.Nm au_print_flags_tok , .Nm au_read_rec .Nd "perform I/O involving an audit record" .Sh LIBRARY @@ -43,12 +44,12 @@ .Fo au_print_tok .Fa "FILE *outfp" "tokenstr_t *tok" "char *del" "char raw" "char sfrm" .Fc -.Ft int -.Fn au_read_rec "FILE *fp" "u_char **buf" .Ft void -.Fo au_write_tok +.Fo au_print_flags_tok .Fa "FILE *outfp" "tokenstr_t *tok" "char *del" "int oflags" .Fc +.Ft int +.Fn au_read_rec "FILE *fp" "u_char **buf" .Sh DESCRIPTION These interfaces support input and output (I/O) involving audit records, internalizing an audit record from a byte stream, converting a token to @@ -78,7 +79,7 @@ .Fa del is used when printing. The -.Fn au_write_tok +.Fn au_print_flags_tok function is a replacement for .Fn au_print_tok . The @@ -118,7 +119,7 @@ calls to .Fn au_fetch_tok on the buffer, and then invoking -.Fn au_write_tok +.Fn au_print_flags_tok to print each token to an output stream such as .Dv stdout . On completion of the processing of each record, a call to @@ -143,6 +144,15 @@ division of McAfee Inc., under contract to Apple Computer, Inc., in 2004. It was subsequently adopted by the TrustedBSD Project as the foundation for the OpenBSM distribution. +.Pp +The +.Fn au_print_flags_tok +function was added by Stacey Son as a replacement for the +.Fn au_print_tok +so new output formatting flags can be easily added without changing the API. +The +.Fn au_print_tok +is obsolete but remains in the API to support legacy code. .Sh AUTHORS .An -nosplit This software was created by ==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#65 (text+ko) ==== @@ -32,7 +32,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#64 $ + * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#65 $ */ #include @@ -4116,7 +4116,7 @@ } void -au_write_tok(FILE *outfp, tokenstr_t *tok, char *del, int oflags) +au_print_flags_tok(FILE *outfp, tokenstr_t *tok, char *del, int oflags) { switch(tok->id) { @@ -4302,7 +4302,7 @@ if (sfrm) oflags |= AU_OFLAG_SHORT; - au_write_tok(outfp, tok, del, oflags); + au_print_flags_tok(outfp, tok, del, oflags); } /* @@ -4319,7 +4319,7 @@ if (sfrm) oflags |= AU_OFLAG_SHORT; - au_write_tok(outfp, tok, del, oflags); + au_print_flags_tok(outfp, tok, del, oflags); } /* From owner-p4-projects@FreeBSD.ORG Tue Aug 4 22:52:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 263161065674; Tue, 4 Aug 2009 22:52:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D92C61065670 for ; Tue, 4 Aug 2009 22:52:10 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AEFA18FC08 for ; Tue, 4 Aug 2009 22:52:10 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n74MqAvH014711 for ; Tue, 4 Aug 2009 22:52:10 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n74MqAvf014709 for perforce@freebsd.org; Tue, 4 Aug 2009 22:52:10 GMT (envelope-from zec@fer.hr) Date: Tue, 4 Aug 2009 22:52:10 GMT Message-Id: <200908042252.n74MqAvf014709@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167012 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 22:52:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=167012 Change 167012 by zec@zec_tpx32 on 2009/08/04 22:52:07 Fix a typo. Affected files ... .. //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#31 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#31 (text+ko) ==== @@ -344,7 +344,7 @@ { #ifndef VIMAGE - return (socreate_vnet(dom, aso, type, proto, cred, td, NULL); + return (socreate_vnet(dom, aso, type, proto, cred, td, NULL)); #else return (socreate_vnet(dom, aso, type, proto, cred, td, CRED_TO_VNET(cred))); From owner-p4-projects@FreeBSD.ORG Tue Aug 4 23:04:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E3AA71065679; Tue, 4 Aug 2009 23:04:24 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3AF3106566B for ; Tue, 4 Aug 2009 23:04:24 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7987C8FC17 for ; Tue, 4 Aug 2009 23:04:24 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n74N4Ojn016518 for ; Tue, 4 Aug 2009 23:04:24 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n74N4OU1016516 for perforce@freebsd.org; Tue, 4 Aug 2009 23:04:24 GMT (envelope-from zec@fer.hr) Date: Tue, 4 Aug 2009 23:04:24 GMT Message-Id: <200908042304.n74N4OU1016516@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167013 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 23:04:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=167013 Change 167013 by zec@zec_tpx32 on 2009/08/04 23:03:43 Unbreak nooptions VIMAGE build. Affected files ... .. //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#6 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#6 (text+ko) ==== @@ -258,8 +258,13 @@ return 0; so = NULL; +#ifndef VIMAGE + error = socreate(si.si_af, &so, si.si_socktype, si.si_proto, + curthread->td_ucred, curthread); +#else error = socreate_vnet(si.si_af, &so, si.si_socktype, si.si_proto, curthread->td_ucred, curthread, vnet0); +#endif if (error) return NULL; From owner-p4-projects@FreeBSD.ORG Tue Aug 4 23:31:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D089E1065676; Tue, 4 Aug 2009 23:31:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 905321065673 for ; Tue, 4 Aug 2009 23:31:37 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outN.internet-mail-service.net (outn.internet-mail-service.net [216.240.47.237]) by mx1.freebsd.org (Postfix) with ESMTP id 791F58FC1F for ; Tue, 4 Aug 2009 23:31:37 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 51255B98D9; Tue, 4 Aug 2009 16:18:33 -0700 (PDT) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (home.elischer.org [216.240.48.38]) by idiom.com (Postfix) with ESMTP id 7B34C2D6012; Tue, 4 Aug 2009 16:18:32 -0700 (PDT) Message-ID: <4A78C1DC.9060008@elischer.org> Date: Tue, 04 Aug 2009 16:18:52 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Marko Zec References: <200908042304.n74N4OU1016516@repoman.freebsd.org> In-Reply-To: <200908042304.n74N4OU1016516@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Perforce Change Reviews Subject: Re: PERFORCE change 167013 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 23:31:39 -0000 Marko Zec wrote: > http://perforce.freebsd.org/chv.cgi?CH=167013 > > Change 167013 by zec@zec_tpx32 on 2009/08/04 23:03:43 > > Unbreak nooptions VIMAGE build. > > Affected files ... > > .. //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#6 edit > > Differences ... > > ==== //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#6 (text+ko) ==== > > @@ -258,8 +258,13 @@ > return 0; > > so = NULL; > +#ifndef VIMAGE > + error = socreate(si.si_af, &so, si.si_socktype, si.si_proto, > + curthread->td_ucred, curthread); > +#else > error = socreate_vnet(si.si_af, &so, si.si_socktype, si.si_proto, > curthread->td_ucred, curthread, vnet0); > +#endif > > if (error) > return NULL; does your sent patch include this? if not you might resend to all... From owner-p4-projects@FreeBSD.ORG Tue Aug 4 23:56:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 690291065677; Tue, 4 Aug 2009 23:56:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 267371065675 for ; Tue, 4 Aug 2009 23:56:03 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outS.internet-mail-service.net (outs.internet-mail-service.net [216.240.47.242]) by mx1.freebsd.org (Postfix) with ESMTP id 0EE858FC16 for ; Tue, 4 Aug 2009 23:56:02 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id BDB80B9836; Tue, 4 Aug 2009 16:56:02 -0700 (PDT) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (home.elischer.org [216.240.48.38]) by idiom.com (Postfix) with ESMTP id 3FA042D6020; Tue, 4 Aug 2009 16:56:02 -0700 (PDT) Message-ID: <4A78CAA6.1000006@elischer.org> Date: Tue, 04 Aug 2009 16:56:22 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Marko Zec References: <200908042304.n74N4OU1016516@repoman.freebsd.org> <4A78C1DC.9060008@elischer.org> In-Reply-To: <4A78C1DC.9060008@elischer.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Perforce Change Reviews Subject: Re: PERFORCE change 167013 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Aug 2009 23:56:04 -0000 Julian Elischer wrote: > Marko Zec wrote: >> http://perforce.freebsd.org/chv.cgi?CH=167013 >> >> Change 167013 by zec@zec_tpx32 on 2009/08/04 23:03:43 >> >> Unbreak nooptions VIMAGE build. >> >> Affected files ... >> >> .. //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#6 edit >> >> Differences ... >> >> ==== //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#6 >> (text+ko) ==== >> >> @@ -258,8 +258,13 @@ >> return 0; >> >> so = NULL; >> +#ifndef VIMAGE >> + error = socreate(si.si_af, &so, si.si_socktype, si.si_proto, >> + curthread->td_ucred, curthread); >> +#else >> error = socreate_vnet(si.si_af, &so, si.si_socktype, si.si_proto, >> curthread->td_ucred, curthread, vnet0); >> +#endif >> >> if (error) >> return NULL; > > > does your sent patch include this? > if not you might resend to all... don't worry, I see it does.. right at the beginning.. From owner-p4-projects@FreeBSD.ORG Wed Aug 5 00:59:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33A3B1065675; Wed, 5 Aug 2009 00:59:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E62B1106564A for ; Wed, 5 Aug 2009 00:59:22 +0000 (UTC) (envelope-from zec@freebsd.org) Received: from labs3.cc.fer.hr (labs3.cc.fer.hr [161.53.72.21]) by mx1.freebsd.org (Postfix) with ESMTP id 7B6468FC1B for ; Wed, 5 Aug 2009 00:59:22 +0000 (UTC) (envelope-from zec@freebsd.org) Received: from sluga.fer.hr (sluga.cc.fer.hr [161.53.72.14]) by labs3.cc.fer.hr (8.13.8+Sun/8.12.10) with ESMTP id n750Jtrr020595 for ; Wed, 5 Aug 2009 02:19:55 +0200 (CEST) Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.3959); Wed, 5 Aug 2009 02:19:55 +0200 From: Marko Zec To: Julian Elischer Date: Wed, 5 Aug 2009 02:19:52 +0200 User-Agent: KMail/1.9.10 References: <200908042304.n74N4OU1016516@repoman.freebsd.org> <4A78C1DC.9060008@elischer.org> <4A78CAA6.1000006@elischer.org> In-Reply-To: <4A78CAA6.1000006@elischer.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200908050219.52389.zec@freebsd.org> X-OriginalArrivalTime: 05 Aug 2009 00:19:55.0750 (UTC) FILETIME=[759A3860:01CA1562] Cc: Perforce Change Reviews Subject: Re: PERFORCE change 167013 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 00:59:23 -0000 On Wednesday 05 August 2009 01:56:22 Julian Elischer wrote: > Julian Elischer wrote: > > Marko Zec wrote: > >> http://perforce.freebsd.org/chv.cgi?CH=167013 > >> > >> Change 167013 by zec@zec_tpx32 on 2009/08/04 23:03:43 > >> > >> Unbreak nooptions VIMAGE build. > >> > >> Affected files ... > >> > >> .. //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#6 edit > >> > >> Differences ... > >> > >> ==== //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#6 > >> (text+ko) ==== > >> > >> @@ -258,8 +258,13 @@ > >> return 0; > >> > >> so = NULL; > >> +#ifndef VIMAGE > >> + error = socreate(si.si_af, &so, si.si_socktype, si.si_proto, > >> + curthread->td_ucred, curthread); > >> +#else > >> error = socreate_vnet(si.si_af, &so, si.si_socktype, si.si_proto, > >> curthread->td_ucred, curthread, vnet0); > >> +#endif > >> > >> if (error) > >> return NULL; > > > > does your sent patch include this? > > if not you might resend to all... > > don't worry, I see it does.. right at the beginning.. Yup I first fixed non-VIMAGE builds in a local svn copy, then moved those fixes back here to p4. Marko From owner-p4-projects@FreeBSD.ORG Wed Aug 5 01:16:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 61A271065673; Wed, 5 Aug 2009 01:16:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 217BA106566C for ; Wed, 5 Aug 2009 01:16:49 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0F6658FC16 for ; Wed, 5 Aug 2009 01:16:49 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n751Gmll039008 for ; Wed, 5 Aug 2009 01:16:48 GMT (envelope-from sson@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n751Gm6O039006 for perforce@freebsd.org; Wed, 5 Aug 2009 01:16:48 GMT (envelope-from sson@FreeBSD.org) Date: Wed, 5 Aug 2009 01:16:48 GMT Message-Id: <200908050116.n751Gm6O039006@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sson@FreeBSD.org using -f From: Stacey Son To: Perforce Change Reviews Cc: Subject: PERFORCE change 167014 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 01:16:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=167014 Change 167014 by sson@sson_amd64 on 2009/08/05 01:15:48 Add '-n' option to 'praudit'. The '-n' option keeps the user and group IDs in their numeric forms which is useful when examing a audit trail on a different system that has different symbolic names. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.1#14 edit .. //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.c#15 edit .. //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#48 edit .. //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#8 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.1#14 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2004 Apple Inc. +.\" Copyright (c) 2004-2009 Apple Inc. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,9 +25,9 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.1#13 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.1#14 $ .\" -.Dd November 5, 2006 +.Dd August 4, 2009 .Dt PRAUDIT 1 .Os .Sh NAME @@ -35,7 +35,7 @@ .Nd "print the contents of audit trail files" .Sh SYNOPSIS .Nm -.Op Fl lpx +.Op Fl lnpx .Op Fl r | s .Op Fl d Ar del .Op Ar @@ -58,6 +58,9 @@ Prints the entire record on the same line. If this option is not specified, every token is displayed on a different line. +.It Fl n +Do not convert user and group IDs to their names but leave in their +numeric forms. .It Fl p Specify this option if input to .Nm ==== //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.c#15 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2004-2008 Apple Inc. + * Copyright (c) 2004-2009 Apple Inc. * Copyright (c) 2006 Martin Voros * All rights reserved. * @@ -27,7 +27,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.c#14 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.c#15 $ */ /* @@ -35,7 +35,7 @@ */ /* - * praudit [-lpx] [-r | -s] [-d del] [file ...] + * praudit [-lnpx] [-r | -s] [-d del] [file ...] */ #include @@ -49,16 +49,14 @@ static char *del = ","; /* Default delimiter. */ static int oneline = 0; -static int raw = 0; -static int shortfrm = 0; static int partial = 0; -static int xml = 0; +static int oflags = AU_OFLAG_NONE; static void usage(void) { - fprintf(stderr, "usage: praudit [-lpx] [-r | -s] [-d del] " + fprintf(stderr, "usage: praudit [-lnpx] [-r | -s] [-d del] " "[file ...]\n"); exit(1); } @@ -91,15 +89,10 @@ if (-1 == au_fetch_tok(&tok, buf + bytesread, reclen - bytesread)) break; - if (xml) - au_print_tok_xml(stdout, &tok, del, raw, - shortfrm); - else - au_print_tok(stdout, &tok, del, raw, - shortfrm); + au_print_flags_tok(stdout, &tok, del, oflags); bytesread += tok.len; if (oneline) { - if (!xml) + if (!(oflags & AU_OFLAG_XML)) printf("%s", del); } else printf("\n"); @@ -119,7 +112,7 @@ int i; FILE *fp; - while ((ch = getopt(argc, argv, "d:lprsx")) != -1) { + while ((ch = getopt(argc, argv, "d:lnprsx")) != -1) { switch(ch) { case 'd': del = optarg; @@ -129,24 +122,28 @@ oneline = 1; break; + case 'n': + oflags |= AU_OFLAG_NORESOLVE; + break; + case 'p': partial = 1; break; case 'r': - if (shortfrm) + if (oflags & AU_OFLAG_SHORT) usage(); /* Exclusive from shortfrm. */ - raw = 1; + oflags |= AU_OFLAG_RAW; break; case 's': - if (raw) + if (oflags & AU_OFLAG_RAW) usage(); /* Exclusive from raw. */ - shortfrm = 1; + oflags |= AU_OFLAG_SHORT; break; case 'x': - xml = 1; + oflags |= AU_OFLAG_XML; break; case '?': @@ -155,7 +152,7 @@ } } - if (xml) + if (oflags & AU_OFLAG_XML) au_print_xml_header(stdout); /* For each of the files passed as arguments dump the contents. */ @@ -171,7 +168,7 @@ fclose(fp); } - if (xml) + if (oflags & AU_OFLAG_XML) au_print_xml_footer(stdout); return (1); ==== //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#48 (text+ko) ==== @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#47 $ + * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#48 $ */ #ifndef _LIBBSM_H_ @@ -107,6 +107,7 @@ #define AU_OFLAG_RAW 0x0001 /* Raw, numeric form. */ #define AU_OFLAG_SHORT 0x0002 /* Short form. */ #define AU_OFLAG_XML 0x0004 /* XML form. */ +#define AU_OFLAG_NORESOLVE 0x0008 /* No user/group name resolution. */ __BEGIN_DECLS struct au_event_ent { ==== //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#8 (text+ko) ==== @@ -1,4 +1,5 @@ .\"- +.\" Copyright (c) 2009 Apple, Inc. .\" Copyright (c) 2005 Robert N. M. Watson .\" All rights reserved. .\" @@ -23,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#7 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#8 $ .\" .Dd August 4, 2009 .Dt AU_IO 3 @@ -87,9 +88,11 @@ controls how the output should be formatted and is specified by or'ing the following flags: .Pp -.Bl -tag -width AU_OFLAG_SHORT -compact -offset indent +.Bl -tag -width AU_OFLAG_NORESOLVE -compact -offset indent .It Li AU_OFLAG_NONE Use the default form. +.It Li AU_OFLAG_NORESOLVE +Leave user and group IDs in their numeric form. .It Li AU_OFLAG_RAW Use the raw, numeric form. .It Li AU_OFLAG_SHORT From owner-p4-projects@FreeBSD.ORG Wed Aug 5 05:18:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0325B1065672; Wed, 5 Aug 2009 05:18:13 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AADA7106566C for ; Wed, 5 Aug 2009 05:18:12 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 991008FC0C for ; Wed, 5 Aug 2009 05:18:12 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n755ICcE071596 for ; Wed, 5 Aug 2009 05:18:12 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n755ICeN071594 for perforce@freebsd.org; Wed, 5 Aug 2009 05:18:12 GMT (envelope-from trasz@freebsd.org) Date: Wed, 5 Aug 2009 05:18:12 GMT Message-Id: <200908050518.n755ICeN071594@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167017 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 05:18:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=167017 Change 167017 by trasz@trasz_anger on 2009/08/05 05:17:58 Don't add group rules if group accounting is disabled. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#42 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#42 (text+ko) ==== @@ -919,6 +919,10 @@ KASSERT(hrl_rule_fully_specified(rule), ("rule not fully specified")); + if ((rule->hr_subject == HRL_SUBJECT_GROUP || + rule->hr_per == HRL_SUBJECT_GROUP) && !hrl_group_accounting) + return (EOPNOTSUPP); + /* * Make sure there are no duplicated rules. */ From owner-p4-projects@FreeBSD.ORG Wed Aug 5 07:24:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ADFD81065670; Wed, 5 Aug 2009 07:24:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D220106564A for ; Wed, 5 Aug 2009 07:24:30 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5AA258FC17 for ; Wed, 5 Aug 2009 07:24:30 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n757OUUe082643 for ; Wed, 5 Aug 2009 07:24:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n757OUsi082641 for perforce@freebsd.org; Wed, 5 Aug 2009 07:24:30 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 5 Aug 2009 07:24:30 GMT Message-Id: <200908050724.n757OUsi082641@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167018 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 07:24:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=167018 Change 167018 by hselasky@hselasky_laptop001 on 2009/08/05 07:23:49 USB serial: - fix uvisor support, mostly correct buffer sizes used. - correct device info flag for SONY Clié NR70V - patch was tested and reported by: Marc Fonvieille Affected files ... .. //depot/projects/usb/src/sys/dev/usb/serial/uvisor.c#14 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/serial/uvisor.c#14 (text+ko) ==== @@ -95,7 +95,15 @@ #define UVISOR_CONFIG_INDEX 0 #define UVISOR_IFACE_INDEX 0 -#define UVISOR_BUFSIZE 1024 /* bytes */ + +/* + * The following buffer sizes are hardcoded due to the way the Palm + * firmware works. It looks like the device is not short terminating + * the data transferred. + */ +#define UVISORIBUFSIZE 0 /* Use wMaxPacketSize */ +#define UVISOROBUFSIZE 32 /* bytes */ +#define UVISOROFRAMES 32 /* units */ /* From the Linux driver */ /* @@ -208,7 +216,8 @@ .type = UE_BULK, .endpoint = UE_ADDR_ANY, .direction = UE_DIR_OUT, - .bufsize = UVISOR_BUFSIZE, /* bytes */ + .bufsize = UVISOROBUFSIZE * UVISOROFRAMES, + .frames = UVISOROFRAMES, .flags = {.pipe_bof = 1,.force_short_xfer = 1,}, .callback = &uvisor_write_callback, }, @@ -217,7 +226,7 @@ .type = UE_BULK, .endpoint = UE_ADDR_ANY, .direction = UE_DIR_IN, - .bufsize = UVISOR_BUFSIZE, /* bytes */ + .bufsize = UVISORIBUFSIZE, .flags = {.pipe_bof = 1,.short_xfer_ok = 1,}, .callback = &uvisor_read_callback, }, @@ -270,7 +279,7 @@ {USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_ZIRE31, UVISOR_FLAG_PALM4)}, {USB_VPI(USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_I500, UVISOR_FLAG_PALM4)}, {USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40, 0)}, - {USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_41, UVISOR_FLAG_PALM4)}, + {USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_41, 0)}, {USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_S360, UVISOR_FLAG_PALM4)}, {USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_NX60, UVISOR_FLAG_PALM4)}, {USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_35, UVISOR_FLAG_PALM35)}, @@ -375,7 +384,6 @@ struct uvisor_connection_info coninfo; struct uvisor_palm_connection_info pconinfo; uint16_t actlen; - uWord wAvail; uint8_t buffer[256]; if (sc->sc_flag & UVISOR_FLAG_VISOR) { @@ -496,6 +504,9 @@ goto done; } } +#if 0 + uWord wAvail; + DPRINTF("getting available bytes\n"); req.bmRequestType = UT_READ_VENDOR_ENDPOINT; req.bRequest = UVISOR_REQUEST_BYTES_AVAILABLE; @@ -507,6 +518,7 @@ goto done; } DPRINTF("avail=%d\n", UGETW(wAvail)); +#endif DPRINTF("done\n"); done: @@ -579,19 +591,31 @@ struct uvisor_softc *sc = usbd_xfer_softc(xfer); struct usb_page_cache *pc; uint32_t actlen; + uint8_t x; switch (USB_GET_STATE(xfer)) { case USB_ST_SETUP: case USB_ST_TRANSFERRED: tr_setup: - pc = usbd_xfer_get_frame(xfer, 0); - if (ucom_get_data(&sc->sc_ucom, pc, 0, - UVISOR_BUFSIZE, &actlen)) { + for (x = 0; x != UVISOROFRAMES; x++) { + + usbd_xfer_set_frame_offset(xfer, + x * UVISOROBUFSIZE, x); - usbd_xfer_set_frame_len(xfer, 0, actlen); + pc = usbd_xfer_get_frame(xfer, x); + if (ucom_get_data(&sc->sc_ucom, pc, 0, + UVISOROBUFSIZE, &actlen)) { + usbd_xfer_set_frame_len(xfer, x, actlen); + } else { + break; + } + } + /* check for data */ + if (x != 0) { + usbd_xfer_set_frames(xfer, x); usbd_transfer_submit(xfer); } - return; + break; default: /* Error */ if (error != USB_ERR_CANCELLED) { @@ -599,7 +623,7 @@ usbd_xfer_set_stall(xfer); goto tr_setup; } - return; + break; } } From owner-p4-projects@FreeBSD.ORG Wed Aug 5 08:29:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 651271065673; Wed, 5 Aug 2009 08:29:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2445B106566C for ; Wed, 5 Aug 2009 08:29:42 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 111DB8FC13 for ; Wed, 5 Aug 2009 08:29:42 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n758TfU0088512 for ; Wed, 5 Aug 2009 08:29:41 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n758TfWc088510 for perforce@freebsd.org; Wed, 5 Aug 2009 08:29:41 GMT (envelope-from zec@fer.hr) Date: Wed, 5 Aug 2009 08:29:41 GMT Message-Id: <200908050829.n758TfWc088510@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167019 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 08:29:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=167019 Change 167019 by zec@zec_tpx32 on 2009/08/05 08:29:02 IFC @ 167016 Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/dev/aac/aac.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_battery.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_cpu.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_dock.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_thermal.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/adb/adb_bus.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/amr/amr.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ata/ata-all.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/atkbdc/psm.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/bktr/bktr_os.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#25 integrate .. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_drv.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ips/ips_pci.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mfi/mfi.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mlx/mlx.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mmc/mmc.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pccbb/pccbb.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/pst/pst-iop.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/rp/rp.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/hda/hdac.c#19 integrate .. //depot/projects/vimage-commit2/src/sys/dev/twe/twe.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/usb_controller.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/input/ukbd.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/net/usb_ethernet.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_compat_linux.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_dev.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_handle_request.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_hub.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/wlan/if_upgt.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/xen/blkback/blkback.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/xen/netback/netback.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/i386/acpica/acpi_machdep.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/i386/bios/smapi.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/i386/bios/smbios.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/i386/bios/vpd.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/machdep.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_uuid.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/kern/subr_bus.c#11 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty_pts.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/kern/tty_ttydisc.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_bridge.c#23 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/icmp6.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/icmp_var.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_gif.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in_pcb.h#24 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_divert.c#35 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_icmp.c#22 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_input.c#50 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_var.h#22 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_input.c#43 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/tcp_var.h#21 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/udp_usrreq.c#46 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/udp_var.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/icmp6.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/pc98/cbus/fdc.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/sys/bus.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/sys/param.h#51 integrate .. //depot/projects/vimage-commit2/src/sys/xen/xenbus/xenbus_probe.c#7 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#15 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -214,6 +214,7 @@ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBook3,1", 10) == 0 || strncmp(sysenv, "MacBookPro1,1", 13) == 0 || strncmp(sysenv, "MacBookPro1,2", 13) == 0 || strncmp(sysenv, "Macmini1,1", 10) == 0) { ==== //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf.c#18 (text+ko) ==== @@ -41,7 +41,7 @@ #include "opt_inet6.h" #include -__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.68 2009/08/01 19:26:27 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.69 2009/08/02 19:43:32 rwatson Exp $"); #endif #ifdef __FreeBSD__ @@ -6141,7 +6141,7 @@ if (r->rt == PF_FASTROUTE) { in_rtalloc(ro, 0); if (ro->ro_rt == 0) { - IPSTAT_INC(ips_noroute); + KMOD_IPSTAT_INC(ips_noroute); goto bad; } @@ -6272,16 +6272,16 @@ if ((ifp->if_capabilities & IFCAP_CSUM_IPv4) && ifp->if_bridge == NULL) { m0->m_pkthdr.csum_flags |= M_IPV4_CSUM_OUT; - IPSTAT_INC(ips_outhwcsum); + KMOD_IPSTAT_INC(ips_outhwcsum); } else { ip->ip_sum = 0; ip->ip_sum = in_cksum(m0, ip->ip_hl << 2); } /* Update relevant hardware checksum stats for TCP/UDP */ if (m0->m_pkthdr.csum_flags & M_TCPV4_CSUM_OUT) - TCPSTAT_INC(tcpstat.tcps_outhwcsum); + KMOD_TCPSTAT_INC(tcps_outhwcsum); else if (m0->m_pkthdr.csum_flags & M_UDPV4_CSUM_OUT) - UDPSTAT_INC(udps_outhwcsum); + KMOD_UDPSTAT_INC(udps_outhwcsum); error = (*ifp->if_output)(ifp, m0, sintosa(dst), NULL); goto done; } @@ -6291,7 +6291,7 @@ * Must be able to put at least 8 bytes per fragment. */ if (ip->ip_off & htons(IP_DF)) { - IPSTAT_INC(ips_cantfrag); + KMOD_IPSTAT_INC(ips_cantfrag); if (r->rt != PF_DUPTO) { #ifdef __FreeBSD__ /* icmp_error() expects host byte ordering */ @@ -6348,7 +6348,7 @@ } if (error == 0) - IPSTAT_INC(ips_fragmented); + KMOD_IPSTAT_INC(ips_fragmented); done: if (r->rt != PF_DUPTO) @@ -6622,23 +6622,23 @@ switch (p) { case IPPROTO_TCP: { - TCPSTAT_INC(tcps_rcvbadsum); + KMOD_TCPSTAT_INC(tcps_rcvbadsum); break; } case IPPROTO_UDP: { - UDPSTAT_INC(udps_badsum); + KMOD_UDPSTAT_INC(udps_badsum); break; } case IPPROTO_ICMP: { - ICMPSTAT_INC(icps_checksum); + KMOD_ICMPSTAT_INC(icps_checksum); break; } #ifdef INET6 case IPPROTO_ICMPV6: { - ICMP6STAT_INC(icp6s_checksum); + KMOD_ICMP6STAT_INC(icp6s_checksum); break; } #endif /* INET6 */ @@ -6725,17 +6725,17 @@ m->m_pkthdr.csum_flags |= flag_bad; switch (p) { case IPPROTO_TCP: - TCPSTAT_INC(tcps_rcvbadsum); + KMOD_TCPSTAT_INC(tcps_rcvbadsum); break; case IPPROTO_UDP: - UDPSTAT_INC(udps_badsum); + KMOD_UDPSTAT_INC(udps_badsum); break; case IPPROTO_ICMP: - ICMPSTAT_INC(icps_checksum); + KMOD_ICMPSTAT_INC(icps_checksum); break; #ifdef INET6 case IPPROTO_ICMPV6: - ICMP6STAT_INC(icp6s_checksum); + KMOD_ICMP6STAT_INC(icp6s_checksum); break; #endif /* INET6 */ } ==== //depot/projects/vimage-commit2/src/sys/dev/aac/aac.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.142 2009/05/20 17:29:21 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.143 2009/08/02 14:28:40 attilio Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -3270,10 +3270,10 @@ while (co != NULL) { if (co->co_found == 0) { mtx_unlock(&sc->aac_io_lock); - mtx_lock(&Giant); + newbus_xlock(); device_delete_child(sc->aac_dev, co->co_disk); - mtx_unlock(&Giant); + newbus_xunlock(); mtx_lock(&sc->aac_io_lock); co_next = TAILQ_NEXT(co, co_link); mtx_lock(&sc->aac_container_lock); @@ -3291,9 +3291,9 @@ /* Attach the newly created containers */ if (added) { mtx_unlock(&sc->aac_io_lock); - mtx_lock(&Giant); + newbus_xlock(); bus_generic_attach(sc->aac_dev); - mtx_unlock(&Giant); + newbus_xunlock(); mtx_lock(&sc->aac_io_lock); } ==== //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi.c#12 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.264 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.265 2009/08/02 14:28:40 attilio Exp $"); #include "opt_acpi.h" #include @@ -675,8 +675,6 @@ device_t child, *devlist; int error, i, numdevs, pstate; - GIANT_REQUIRED; - /* First give child devices a chance to suspend. */ error = bus_generic_suspend(dev); if (error) @@ -719,8 +717,6 @@ int i, numdevs, error; device_t child, *devlist; - GIANT_REQUIRED; - /* * Put all devices in D0 before resuming them. Call _S0D on each one * since some systems expect this. @@ -745,8 +741,6 @@ acpi_shutdown(device_t dev) { - GIANT_REQUIRED; - /* Allow children to shutdown first. */ bus_generic_shutdown(dev); @@ -2534,11 +2528,7 @@ thread_unlock(curthread); #endif - /* - * Be sure to hold Giant across DEVICE_SUSPEND/RESUME since non-MPSAFE - * drivers need this. - */ - mtx_lock(&Giant); + newbus_xlock(); slp_state = ACPI_SS_NONE; @@ -2611,7 +2601,7 @@ if (slp_state >= ACPI_SS_SLEPT) acpi_enable_fixed_events(sc); - mtx_unlock(&Giant); + newbus_xunlock(); #ifdef SMP thread_lock(curthread); ==== //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_battery.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.28 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.29 2009/08/02 14:28:40 attilio Exp $"); #include "opt_acpi.h" #include @@ -329,6 +329,7 @@ dev = NULL; found_unit = 0; + newbus_slock(); batt_dc = devclass_find("battery"); maxunit = devclass_get_maxunit(batt_dc); for (i = 0; i < maxunit; i++) { @@ -340,6 +341,7 @@ found_unit++; dev = NULL; } + newbus_sunlock(); return (dev); } @@ -369,13 +371,17 @@ */ switch (cmd) { case ACPIIO_BATT_GET_UNITS: + newbus_slock(); *(int *)addr = acpi_battery_get_units(); + newbus_sunlock(); error = 0; break; case ACPIIO_BATT_GET_BATTINFO: if (dev != NULL || unit == ACPI_BATTERY_ALL_UNITS) { bzero(&ioctl_arg->battinfo, sizeof(ioctl_arg->battinfo)); + newbus_slock(); error = acpi_battery_get_battinfo(dev, &ioctl_arg->battinfo); + newbus_sunlock(); } break; case ACPIIO_BATT_GET_BIF: @@ -416,6 +422,11 @@ { int val, error; + /* + * Tolerate a race here because newbus lock can't be acquired before + * acpi_battery_get_battinfo() as it can create a LOR with the sysctl + * lock. + */ acpi_battery_get_battinfo(NULL, &acpi_battery_battinfo); val = *(u_int *)oidp->oid_arg1; error = sysctl_handle_int(oidp, &val, 0, req); @@ -427,6 +438,10 @@ { int count, error; + /* + * Tolerate a race here in order to avoid a LOR between sysctl lock + * and newbus lock. + */ count = acpi_battery_get_units(); error = sysctl_handle_int(oidp, &count, 0, req); return (error); ==== //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_cpu.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.78 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.79 2009/08/02 14:28:40 attilio Exp $"); #include "opt_acpi.h" #include @@ -732,7 +732,9 @@ int i; /* Get set of CPU devices */ + newbus_slock(); devclass_get_devices(acpi_cpu_devclass, &cpu_devices, &cpu_ndevices); + newbus_sunlock(); /* * Setup any quirks that might necessary now that we have probed ==== //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_dock.c#3 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_dock.c,v 1.7 2009/06/05 18:44:36 jkim Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_dock.c,v 1.8 2009/08/02 14:28:40 attilio Exp $ */ #include "opt_acpi.h" @@ -188,12 +188,12 @@ dev = (device_t)context; + newbus_xlock(); if (!device_is_enabled(dev)) device_enable(dev); - mtx_lock(&Giant); device_probe_and_attach(dev); - mtx_unlock(&Giant); + newbus_xunlock(); } static ACPI_STATUS @@ -299,11 +299,11 @@ "ejecting device for %s\n", acpi_name(handle)); dev = acpi_get_device(handle); + newbus_xlock(); if (dev != NULL && device_is_attached(dev)) { - mtx_lock(&Giant); device_detach(dev); - mtx_unlock(&Giant); } + newbus_xunlock(); acpi_SetInteger(handle, "_EJ0", 0); out: ==== //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_thermal.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.71 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.72 2009/08/02 14:28:40 attilio Exp $"); #include "opt_acpi.h" #include @@ -936,6 +936,8 @@ sc = NULL; for (;;) { + newbus_slock(); + /* If the number of devices has changed, re-evaluate. */ if (devclass_get_count(acpi_tz_devclass) != devcount) { if (devs != NULL) { @@ -948,6 +950,7 @@ for (i = 0; i < devcount; i++) sc[i] = device_get_softc(devs[i]); } + newbus_sunlock(); /* Check for temperature events and act on them. */ for (i = 0; i < devcount; i++) { ==== //depot/projects/vimage-commit2/src/sys/dev/adb/adb_bus.c#5 (text+ko) ==== @@ -22,7 +22,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/adb/adb_bus.c,v 1.4 2008/12/06 23:26:02 nwhitehorn Exp $ + * $FreeBSD: src/sys/dev/adb/adb_bus.c,v 1.5 2009/08/02 14:28:40 attilio Exp $ */ #include @@ -113,6 +113,7 @@ uint8_t i, next_free; uint16_t r3; + newbus_xlock(); sc->sc_dev = dev; sc->parent = device_get_parent(dev); @@ -187,6 +188,7 @@ } bus_generic_attach(dev); + newbus_xunlock(); config_intrhook_disestablish(&sc->enum_hook); } ==== //depot/projects/vimage-commit2/src/sys/dev/amdtemp/amdtemp.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/amdtemp/amdtemp.c,v 1.3 2009/03/13 16:43:31 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/amdtemp/amdtemp.c,v 1.4 2009/08/02 14:28:40 attilio Exp $"); #include #include @@ -269,6 +269,7 @@ /* * dev.cpu.N.temperature. */ + newbus_xlock(); nexus = device_find_child(root_bus, "nexus", 0); acpi = device_find_child(nexus, "acpi", 0); @@ -285,6 +286,7 @@ "Max of sensor 0 / 1"); } } + newbus_xunlock(); config_intrhook_disestablish(&sc->sc_ich); } ==== //depot/projects/vimage-commit2/src/sys/dev/amr/amr.c#6 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.89 2009/05/20 17:29:21 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.90 2009/08/02 14:28:40 attilio Exp $"); /* * Driver for the AMI MegaRaid family of controllers. @@ -90,6 +90,10 @@ SYSCTL_NODE(_hw, OID_AUTO, amr, CTLFLAG_RD, 0, "AMR driver parameters"); +/* + * In order to get rid of Giant, amr_state should be protected by + * a proper softc lock for the cdev operations. + */ static d_open_t amr_open; static d_close_t amr_close; static d_ioctl_t amr_ioctl; @@ -312,9 +316,11 @@ config_intrhook_disestablish(&sc->amr_ich); sc->amr_ich.ich_func = NULL; + newbus_xlock(); /* get up-to-date drive information */ if (amr_query_controller(sc)) { device_printf(sc->amr_dev, "can't scan controller for drives\n"); + newbus_xunlock(); return; } @@ -347,6 +353,7 @@ /* interrupts will be enabled before we do anything more */ sc->amr_state |= AMR_STATE_INTEN; + newbus_xunlock(); /* * Start the timeout routine. @@ -434,7 +441,11 @@ amr_open(struct cdev *dev, int flags, int fmt, struct thread *td) { int unit = dev2unit(dev); - struct amr_softc *sc = devclass_get_softc(devclass_find("amr"), unit); + struct amr_softc *sc; + + newbus_slock(); + sc = devclass_get_softc(devclass_find("amr"), unit); + newbus_sunlock(); debug_called(1); @@ -490,7 +501,11 @@ amr_close(struct cdev *dev, int flags, int fmt, struct thread *td) { int unit = dev2unit(dev); - struct amr_softc *sc = devclass_get_softc(devclass_find("amr"), unit); + struct amr_softc *sc; + + newbus_slock(); + sc = devclass_get_softc(devclass_find("amr"), unit); + newbus_sunlock(); debug_called(1); @@ -507,6 +522,7 @@ struct amr_softc *sc = (struct amr_softc *)dev->si_drv1; int i, error = 0; + newbus_xlock(); sc->amr_state |= AMR_STATE_REMAP_LD; while (sc->amr_busyslots) { device_printf(sc->amr_dev, "idle controller\n"); @@ -530,6 +546,7 @@ sc->amr_drive[i].al_disk = 0; } } + newbus_xunlock(); shutdown_out: amr_startup(sc); @@ -805,7 +822,9 @@ struct amr_linux_ioctl ali; int adapter, error; + newbus_slock(); devclass = devclass_find("amr"); + newbus_sunlock(); if (devclass == NULL) return (ENOENT); ==== //depot/projects/vimage-commit2/src/sys/dev/ata/ata-all.c#9 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.307 2009/07/26 14:04:48 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.308 2009/08/02 14:28:40 attilio Exp $"); #include "opt_ata.h" #include @@ -54,7 +54,6 @@ static d_ioctl_t ata_ioctl; static struct cdevsw ata_cdevsw = { .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, /* we need this as newbus isn't mpsafe */ .d_ioctl = ata_ioctl, .d_name = "ata", }; @@ -204,7 +203,9 @@ { device_t dev = (device_t)context; + newbus_xlock(); ata_reinit(dev); + newbus_xunlock(); } int @@ -246,7 +247,6 @@ /* reinit the children and delete any that fails */ if (!device_get_children(dev, &children, &nchildren)) { - mtx_lock(&Giant); /* newbus suckage it needs Giant */ for (i = 0; i < nchildren; i++) { /* did any children go missing ? */ if (children[i] && device_is_attached(children[i]) && @@ -269,7 +269,6 @@ } } free(children, M_TEMP); - mtx_unlock(&Giant); /* newbus suckage dealt with, release Giant */ } /* if we still have a good request put it on the queue again */ @@ -395,6 +394,7 @@ int *value = (int *)data; int i, nchildren, error = ENOTTY; + newbus_xlock(); switch (cmd) { case IOCATAGMAXCHANNEL: /* In case we have channel 0..n this will return n+1. */ @@ -405,32 +405,40 @@ case IOCATAREINIT: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) + !device_is_attached(device)) { + newbus_xunlock(); return ENXIO; + } error = ata_reinit(device); break; case IOCATAATTACH: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) + !device_is_attached(device)) { + newbus_xunlock(); return ENXIO; + } error = DEVICE_ATTACH(device); break; case IOCATADETACH: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) + !device_is_attached(device)) { + newbus_xunlock(); return ENXIO; + } error = DEVICE_DETACH(device); break; case IOCATADEVICES: if (devices->channel >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, devices->channel)) || - !device_is_attached(device)) + !device_is_attached(device)) { + newbus_xunlock(); return ENXIO; + } bzero(devices->name[0], 32); bzero(&devices->params[0], sizeof(struct ata_params)); bzero(devices->name[1], 32); @@ -465,6 +473,7 @@ if (ata_raid_ioctl_func) error = ata_raid_ioctl_func(cmd, data); } + newbus_xunlock(); return error; } @@ -572,7 +581,7 @@ struct ata_channel *ch; int ctlr; - mtx_lock(&Giant); /* newbus suckage it needs Giant */ + newbus_xlock(); /* kick of probe and attach on all channels */ for (ctlr = 0; ctlr < devclass_get_maxunit(ata_devclass); ctlr++) { @@ -587,8 +596,7 @@ free(ata_delayed_attach, M_TEMP); ata_delayed_attach = NULL; } - - mtx_unlock(&Giant); /* newbus suckage dealt with, release Giant */ + newbus_xunlock(); } @@ -717,7 +725,6 @@ if (bootverbose) device_printf(dev, "Identifying devices: %08x\n", ch->devices); - mtx_lock(&Giant); /* Skip existing devices. */ if (!device_get_children(dev, &children, &nchildren)) { for (i = 0; i < nchildren; i++) { @@ -729,10 +736,8 @@ /* Create new devices. */ if (bootverbose) device_printf(dev, "New devices: %08x\n", n); - if (n == 0) { - mtx_unlock(&Giant); + if (n == 0) return (0); - } for (i = 0; i < ATA_PM; ++i) { if (n & (((ATA_ATA_MASTER | ATA_ATAPI_MASTER) << i))) { int unit = -1; @@ -775,7 +780,6 @@ } bus_generic_probe(dev); bus_generic_attach(dev); - mtx_unlock(&Giant); return 0; } ==== //depot/projects/vimage-commit2/src/sys/dev/atkbdc/psm.c#7 (text+ko) ==== @@ -59,7 +59,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/atkbdc/psm.c,v 1.103 2009/03/16 08:21:51 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/atkbdc/psm.c,v 1.104 2009/08/02 14:28:40 attilio Exp $"); #include "opt_isa.h" #include "opt_psm.h" @@ -1488,7 +1488,9 @@ if (sc->state & PSM_OPEN) return (EBUSY); + newbus_xlock(); device_busy(devclass_get_device(psm_devclass, unit)); + newbus_xunlock(); /* Initialize state */ sc->mode.level = sc->dflt_mode.level; @@ -1643,7 +1645,9 @@ /* close is almost always successful */ sc->state &= ~PSM_OPEN; kbdc_lock(sc->kbdc, FALSE); + newbus_xlock(); device_unbusy(devclass_get_device(psm_devclass, unit)); + newbus_xunlock(); return (0); } ==== //depot/projects/vimage-commit2/src/sys/dev/bktr/bktr_os.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/bktr/bktr_os.c,v 1.57 2009/05/26 12:01:37 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/bktr/bktr_os.c,v 1.58 2009/08/02 14:28:40 attilio Exp $"); /* * This is part of the Driver for Video Capture Cards (Frame grabbers) @@ -597,7 +597,9 @@ return( ENXIO ); /* Record that the device is now busy */ + newbus_xlock(); device_busy(devclass_get_device(bktr_devclass, unit)); + newbus_xunlock(); if (bt848_card != -1) { @@ -668,8 +670,11 @@ } /* If there was an error opening the device, undo the busy status */ - if (result != 0) + if (result != 0) { + newbus_xlock(); device_unbusy(devclass_get_device(bktr_devclass, unit)); + newbus_xunlock(); + } return( result ); } @@ -689,6 +694,7 @@ /* Get the device data */ bktr = (struct bktr_softc*)devclass_get_softc(bktr_devclass, unit); if (bktr == NULL) { + /* the device is no longer valid/functioning */ return (ENXIO); } @@ -705,10 +711,11 @@ break; default: return (ENXIO); - break; } + newbus_xlock(); device_unbusy(devclass_get_device(bktr_devclass, unit)); + newbus_xunlock(); return( result ); } ==== //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#25 (text+ko) ==== @@ -28,7 +28,7 @@ ***************************************************************************/ #include -__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.36 2009/08/01 19:26:27 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.37 2009/08/02 19:43:32 rwatson Exp $"); #include #include @@ -3821,7 +3821,7 @@ #endif toep->tp_state = tp->t_state; - TCPSTAT_INC(tcps_connects); + KMOD_TCPSTAT_INC(tcps_connects); } ==== //depot/projects/vimage-commit2/src/sys/dev/drm/drm_drv.c#13 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.27 2009/06/23 18:24:09 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.28 2009/08/02 14:28:40 attilio Exp $"); /** @file drm_drv.c * The catch-all file for DRM device support, including module setup/teardown, @@ -614,11 +614,13 @@ if (!retcode) { atomic_inc(&dev->counts[_DRM_STAT_OPENS]); + newbus_xlock(); DRM_LOCK(); device_busy(dev->device); if (!dev->open_count++) retcode = drm_firstopen(dev); DRM_UNLOCK(); + newbus_xunlock(); } return retcode; @@ -632,6 +634,11 @@ DRM_DEBUG("open_count = %d\n", dev->open_count); + /* + * We require to lock newbus here for handling device_unbusy() and + * avoid a LOR with DRM_LOCK. + */ + newbus_xlock(); DRM_LOCK(); if (dev->driver->preclose != NULL) @@ -708,6 +715,7 @@ } DRM_UNLOCK(); + newbus_xunlock(); } /* drm_ioctl is called whenever a process performs an ioctl on /dev/drm. ==== //depot/projects/vimage-commit2/src/sys/dev/ips/ips_pci.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ips/ips_pci.c,v 1.15 2007/02/23 12:18:44 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ips/ips_pci.c,v 1.16 2009/08/02 14:28:40 attilio Exp $"); #include #include @@ -173,10 +173,12 @@ struct ips_softc *sc = (struct ips_softc *)arg; config_intrhook_disestablish(&sc->ips_ich); + newbus_xlock(); if (ips_adapter_init(sc)) ips_pci_free(sc); else sc->configured = 1; + newbus_xunlock(); } static int ips_pci_free(ips_softc_t *sc) ==== //depot/projects/vimage-commit2/src/sys/dev/mfi/mfi.c#9 (text) ==== @@ -51,7 +51,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.50 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.51 2009/08/02 14:28:40 attilio Exp $"); #include "opt_mfi.h" @@ -1327,11 +1327,11 @@ mfi_release_command(cm); mtx_unlock(&sc->mfi_io_lock); - mtx_lock(&Giant); + newbus_xlock(); if ((child = device_add_child(sc->mfi_dev, "mfid", -1)) == NULL) { device_printf(sc->mfi_dev, "Failed to add logical disk\n"); free(ld_info, M_MFIBUF); - mtx_unlock(&Giant); + newbus_xunlock(); mtx_lock(&sc->mfi_io_lock); return; } @@ -1339,7 +1339,7 @@ device_set_ivars(child, ld_info); device_set_desc(child, "MFI Logical Disk"); bus_generic_attach(sc->mfi_dev); - mtx_unlock(&Giant); + newbus_xunlock(); mtx_lock(&sc->mfi_io_lock); } @@ -1805,9 +1805,9 @@ KASSERT(ld != NULL, ("volume dissappeared")); if (cm->cm_frame->header.cmd_status == MFI_STAT_OK) { mtx_unlock(&sc->mfi_io_lock); - mtx_lock(&Giant); + newbus_xlock(); device_delete_child(sc->mfi_dev, ld->ld_dev); - mtx_unlock(&Giant); + newbus_xunlock(); mtx_lock(&sc->mfi_io_lock); } else mfi_disk_enable(ld); @@ -1815,11 +1815,11 @@ case MFI_DCMD_CFG_CLEAR: if (cm->cm_frame->header.cmd_status == MFI_STAT_OK) { mtx_unlock(&sc->mfi_io_lock); - mtx_lock(&Giant); + newbus_xlock(); TAILQ_FOREACH_SAFE(ld, &sc->mfi_ld_tqh, ld_link, ldn) { device_delete_child(sc->mfi_dev, ld->ld_dev); } - mtx_unlock(&Giant); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 5 08:35:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EAE4A106566B; Wed, 5 Aug 2009 08:35:48 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA5891065672 for ; Wed, 5 Aug 2009 08:35:48 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 97B8D8FC0C for ; Wed, 5 Aug 2009 08:35:48 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n758ZmHI089117 for ; Wed, 5 Aug 2009 08:35:48 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n758ZmeK089115 for perforce@freebsd.org; Wed, 5 Aug 2009 08:35:48 GMT (envelope-from dforsyth@FreeBSD.org) Date: Wed, 5 Aug 2009 08:35:48 GMT Message-Id: <200908050835.n758ZmeK089115@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 167020 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 08:35:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=167020 Change 167020 by dforsyth@squirrel on 2009/08/05 08:35:42 Add basic support for the rest of the pkg_info flags (at least the ones that the lib can easily handle). Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#42 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#37 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#4 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#28 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#42 (text+ko) ==== @@ -115,6 +115,16 @@ return (pkg_manifest_name(p->pm)); } +const char * +pkg_cwd(struct pkg *p) +{ + pkg_check_magic(p, __func__); + if (pkg_parse_manifest(p) != PKG_OK) + return (NULL); + + return ((const char *)pkg_manifest_cwd(p->pm)); +} + /* Retrieve pkg origin. @origin in plist. The directory of the port that * this pkg was create from. */ @@ -214,6 +224,19 @@ } const char * +pkg_mtree_dirs(struct pkg *p) +{ + pkg_check_magic(p, __func__); + if (p->in_db == NULL) + return (p->mtree_dirs); + + if (p->mtree_dirs == NULL && + pkg_read_pkg_element_from_db(p, PKG_ELEM_MTREE) != PKG_OK) + return (NULL); + return (p->mtree_dirs); +} + +const char * pkg_required_by(struct pkg *p) { if (p->in_db != NULL) @@ -453,6 +476,13 @@ return ((const char *)pkg_manifest_mtree_file(p->pm)); } +const char * +pkg_format_revision(struct pkg *p) +{ + pkg_parse_manifest(p); + return ((const char *)pkg_manifest_revision(p->pm)); +} + int pkg_extract_in_place(struct pkg *p) { ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#37 (text+ko) ==== @@ -44,6 +44,7 @@ const char *pkg_comment(struct pkg *p); const char *pkg_description(struct pkg *p); const char *pkg_display(struct pkg *p); +const char *pkg_mtree_dirs(struct pkg *p); /* tmp */ int pkg_set_mtree_dirs(struct pkg *p, const char *mtree_dirs); @@ -81,6 +82,7 @@ const char *pkg_mtree_file(struct pkg *p); +const char * pkg_format_revision(struct pkg *p); int pkg_extract_in_place(struct pkg *p); int pkg_preserve(struct pkg *p); int pkg_complete(struct pkg *p); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#4 (text+ko) ==== @@ -233,7 +233,7 @@ switch (cmd_id) { case (PM_CWD): status = (strlen(isolate) == 0) ? - pkg_util_strdup(NULL, &st->cwd) : pkg_util_strdup(isolate, &st->cwd); + pkg_util_strdup(NULL, &pm->cwd) : pkg_util_strdup(isolate, &pm->cwd); break; case (PM_SRCDIR): if (pm->srcdir != NULL) { @@ -392,6 +392,9 @@ } break; case (PM_FILE): + /* Lazy chomp, fix it later. */ + if (line[strlen(line) - 1] == '\n') + line[strlen(line) - 1] = '\0'; status = pkg_manifest_insert_pkg_file(pm, line, NULL, st->cwd, st->mode, st->owner, st->group); lpf = pkg_manifest_select_pkg_file(pm, line); ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#28 (text+ko) ==== @@ -90,6 +90,12 @@ { int opt; + if (argc == 1) { + flags |= OPT_MATCH_ALL; + flags |= OPT_SHOW_INDEX; + return; + } + while ((opt = getopt_long(argc, argv, opts, lopts, NULL)) != -1) { switch (opt) { case ('a'): @@ -251,9 +257,13 @@ print_pkg_information(struct pkg *p) { int status; + const char *block_text; const char *const *keylist; status = OK; + if (info_prefix == NULL) + info_prefix = ""; + if (flags & OPT_DEBUG_DUMP) { pkg_dump(p, stdout); return (status); @@ -265,9 +275,6 @@ return (status); } - if (info_prefix == NULL) - info_prefix = ""; - if (!(flags & OPT_QUIET)) printf("%sInformation for %s:\n\n", info_prefix, pkg_ident(p)); else if (flags & OPT_QUIET) @@ -277,12 +284,74 @@ if (flags & OPT_SHOW_DEPENDS) { keylist = pkg_depends(p); printf("Depends on:\n"); - if (keylist != NULL) - /* For now use the keylist. Add pkg_depend_name function later. */ - while (*keylist != NULL) printf("Dependency: %s\n", *keylist++); + while (keylist != NULL && *keylist != NULL) + printf("Dependency: %s\n", *keylist++); printf("\n"); } + if (flags & OPT_SHOW_REQUIRED_BY) { + block_text = pkg_required_by(p); + if (block_text != NULL) + printf("Required by:\n%s\n\n", block_text); + } + if (flags & OPT_SHOW_DESCRIPTION) { + block_text = pkg_description(p); + if (block_text != NULL) + printf("Description:\n%s\n\n", block_text); + } + if (flags & OPT_SHOW_DISPLAY) { + block_text = pkg_display(p); + if (block_text != NULL) + printf("Install notice:\n%s\n\n", block_text); + } + if (flags & OPT_SHOW_PLIST) { + printf("Packing list:\n"); + printf("\tComment: PKG_FORMAT_REVISION:%s\n", pkg_format_revision(p)); + printf("\tPackage name: %s\n", pkg_name(p)); + printf("\tPackage origin: %s\n", pkg_origin(p)); + printf("\tCWD to %s\n", pkg_cwd(p)); + for (keylist = pkg_depends(p); keylist != NULL && *keylist != NULL; *keylist++) + printf("Dependency: %s\n\tdependency origin: %s\n", + *keylist, pkg_pkg_depend_origin(p, *keylist)); + for (keylist = pkg_files(p); keylist != NULL && *keylist != NULL; *keylist++) + printf("File: %s\n\tComment: MD5: %s\n", + *keylist, pkg_pkg_file_md5(p, *keylist)); + for (keylist = pkg_execs(p); keylist != NULL && *keylist != NULL; *keylist++) + printf("\tEXEC '%s'\n", *keylist); + for (keylist = pkg_unexecs(p); keylist != NULL && *keylist != NULL; *keylist++) + printf("\tUNEXEC '%s'\n", *keylist); + } + if (flags & OPT_SHOW_REQUIRE) + /* LOLWAT */;; + if (flags & OPT_SHOW_INSTALL) + /* LOLWAT */;; + if (flags & OPT_SHOW_DEINSTALL) + /* LOLWAT */;; + if (flags & OPT_SHOW_MTREE) { + block_text = pkg_mtree_dirs(p); + if (block_text != NULL) + printf("mtree file:\n%s\n", block_text); + } + if (flags & OPT_SHOW_PREFIX) + printf("Prefix(s):\n\tCWD to %s\n", pkg_cwd(p)); + if (flags & OPT_SHOW_FILES) { + printf("Files:\n"); + for (keylist = pkg_files(p); keylist != NULL && *keylist != NULL; *keylist++) + printf("%s/%s\n", pkg_cwd(p), *keylist); + printf("\n"); + } + if (flags & OPT_SHOW_SIZE) { + /* Make a util function for this. */ + } + if (flags & OPT_SHOW_CHECKSUM) { + for (keylist = pkg_files(p); keylist != NULL && *keylist != NULL; *keylist++) + /* Make a util function to handle this. */;; + } + if (flags & OPT_SHOW_ORIGIN) + printf("Origin:\n%s\n\n", pkg_origin(p)); + if (flags & OPT_SHOW_FORMAT_REVISION) + printf("Packing list format revision:\n%s\n\n", pkg_format_revision(p)); + return (status); } From owner-p4-projects@FreeBSD.ORG Wed Aug 5 11:32:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9C1231065672; Wed, 5 Aug 2009 11:32:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A049106566C for ; Wed, 5 Aug 2009 11:32:01 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 47A818FC08 for ; Wed, 5 Aug 2009 11:32:01 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75BW1wA018171 for ; Wed, 5 Aug 2009 11:32:01 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75BW1Zt018169 for perforce@freebsd.org; Wed, 5 Aug 2009 11:32:01 GMT (envelope-from syl@FreeBSD.org) Date: Wed, 5 Aug 2009 11:32:01 GMT Message-Id: <200908051132.n75BW1Zt018169@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 167026 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 11:32:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=167026 Change 167026 by syl@syl_atuin on 2009/08/05 11:31:07 Replace xxxdci_device_xxx_start by xxxdci_device_nonisoc_start. Replace xxxdci_device_xxx_close by xxxdci_device_close. Change requested by Hans Petter Selasky. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#9 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#9 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#8 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#10 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#17 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#9 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#9 (text+ko) ==== @@ -1494,7 +1494,7 @@ } static void -at91dci_device_xxx_start(struct usb_xfer *xfer) +at91dci_device_nonisoc_start(struct usb_xfer *xfer) { at91dci_setup_standard_chain(xfer); at91dci_start_standard_chain(xfer); @@ -1502,7 +1502,7 @@ } static void -at91dci_device_xxx_close(struct usb_xfer *xfer) +at91dci_device_close(struct usb_xfer *xfer) { at91dci_device_done(xfer, USB_ERR_CANCELLED); return ; @@ -1571,31 +1571,31 @@ { .open = at91dci_device_dummy, .enter = at91dci_device_dummy, - .close = at91dci_device_xxx_close, - .start = at91dci_device_xxx_start, + .close = at91dci_device_close, + .start = at91dci_device_nonisoc_start, }; struct usb_pipe_methods at91dci_device_ctrl_methods = { .open = at91dci_device_dummy, .enter = at91dci_device_dummy, - .close = at91dci_device_xxx_close, - .start = at91dci_device_xxx_start, + .close = at91dci_device_close, + .start = at91dci_device_nonisoc_start, }; struct usb_pipe_methods at91dci_device_intr_methods = { .open = at91dci_device_dummy, .enter = at91dci_device_dummy, - .close = at91dci_device_xxx_close, - .start = at91dci_device_xxx_start, + .close = at91dci_device_close, + .start = at91dci_device_nonisoc_start, }; struct usb_pipe_methods at91dci_device_isoc_fs_methods = { .open = at91dci_device_dummy, - .close = at91dci_device_dummy, + .close = at91dci_device_close, .enter = at91dci_device_isoc_fs_enter, .start = at91dci_device_isoc_fs_start, }; ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#9 (text+ko) ==== @@ -1383,7 +1383,7 @@ } static void -atmegadci_device_xxx_start(struct usb_xfer *xfer) +atmegadci_device_nonisoc_start(struct usb_xfer *xfer) { atmegadci_setup_standard_chain(xfer); atmegadci_start_standard_chain(xfer); @@ -1391,7 +1391,7 @@ } static void -atmegadci_device_xxx_close(struct usb_xfer *xfer) +atmegadci_device_close(struct usb_xfer *xfer) { atmegadci_device_done(xfer, USB_ERR_CANCELLED); return ; @@ -1464,14 +1464,14 @@ { .open = atmegadci_device_dummy, .enter = atmegadci_device_dummy, - .start = atmegadci_device_xxx_start, - .close = atmegadci_device_xxx_close, + .start = atmegadci_device_nonisoc_start, + .close = atmegadci_device_close, }; struct usb_pipe_methods atmegadci_device_isoc_fs_methods = { .open = atmegadci_device_dummy, - .close = atmegadci_device_xxx_close, + .close = atmegadci_device_close, .enter = atmegadci_device_isoc_fs_enter, .start = atmegadci_device_isoc_fs_start, }; ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#8 (text+ko) ==== @@ -1318,7 +1318,7 @@ } static void -avr32dci_device_xxx_start(struct usb_xfer *xfer) +avr32dci_device_nonisoc_start(struct usb_xfer *xfer) { avr32dci_setup_standard_chain(xfer); avr32dci_start_standard_chain(xfer); @@ -1326,7 +1326,7 @@ } static void -avr32dci_device_xxx_close(struct usb_xfer *xfer) +avr32dci_device_close(struct usb_xfer *xfer) { avr32dci_device_done(xfer, USB_ERR_CANCELLED); return ; @@ -1398,14 +1398,14 @@ { .open = avr32dci_device_dummy, .enter = avr32dci_device_dummy, - .start = avr32dci_device_xxx_start, - .close = avr32dci_device_xxx_close, + .start = avr32dci_device_nonisoc_start, + .close = avr32dci_device_close, }; struct usb_pipe_methods avr32dci_device_isoc_fs_methods = { .open = avr32dci_device_dummy, - .close = avr32dci_device_xxx_close, + .close = avr32dci_device_close, .enter = avr32dci_device_isoc_fs_enter, .start = avr32dci_device_isoc_fs_start, }; ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#10 (text+ko) ==== @@ -1894,7 +1894,7 @@ } static void -musbotg_device_xxx_start(struct usb_xfer *xfer) +musbotg_device_nonisoc_start(struct usb_xfer *xfer) { musbotg_setup_standard_chain(xfer); musbotg_start_standard_chain(xfer); @@ -1902,7 +1902,7 @@ } static void -musbotg_device_xxx_close(struct usb_xfer *xfer) +musbotg_device_close(struct usb_xfer *xfer) { musbotg_device_done(xfer, USB_ERR_CANCELLED); return ; @@ -1978,30 +1978,30 @@ { .open = musbotg_device_dummy, .enter = musbotg_device_dummy, - .close = musbotg_device_xxx_close, - .start = musbotg_device_xxx_start, + .close = musbotg_device_close, + .start = musbotg_device_nonisoc_start, }; struct usb_pipe_methods musbotg_device_ctrl_methods = { .open = musbotg_device_dummy, .enter = musbotg_device_dummy, - .close = musbotg_device_xxx_close, - .start = musbotg_device_xxx_start, + .close = musbotg_device_close, + .start = musbotg_device_nonisoc_start, }; struct usb_pipe_methods musbotg_device_intr_methods = { .open = musbotg_device_dummy, .enter = musbotg_device_dummy, - .close = musbotg_device_xxx_close, - .start = musbotg_device_xxx_start, + .close = musbotg_device_close, + .start = musbotg_device_nonisoc_start, }; struct usb_pipe_methods musbotg_device_isoc_methods = { .open = musbotg_device_dummy, - .close = musbotg_device_xxx_close, + .close = musbotg_device_close, .enter = musbotg_device_isoc_enter, .start = musbotg_device_isoc_start, }; ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#17 (text+ko) ==== @@ -832,7 +832,7 @@ } static void -s3c24dci_device_xxx_start(struct usb_xfer *xfer) +s3c24dci_device_nonisoc_start(struct usb_xfer *xfer) { s3c24dci_setup_standard_chain(xfer); s3c24dci_start_standard_chain(xfer); @@ -840,7 +840,7 @@ } static void -s3c24dci_device_xxx_close(struct usb_xfer *xfer) +s3c24dci_device_close(struct usb_xfer *xfer) { s3c24dci_device_done(xfer, USB_ERR_CANCELLED); return ; @@ -849,22 +849,22 @@ struct usb_pipe_methods s3c24dci_device_ctrl_methods = { .open = s3c24dci_device_dummy, .enter = s3c24dci_device_dummy, - .close = s3c24dci_device_xxx_close, - .start = s3c24dci_device_xxx_start, + .close = s3c24dci_device_close, + .start = s3c24dci_device_nonisoc_start, }; struct usb_pipe_methods s3c24dci_device_bulk_methods = { .open = s3c24dci_device_dummy, .enter = s3c24dci_device_dummy, - .close = s3c24dci_device_xxx_close, - .start = s3c24dci_device_xxx_start, + .close = s3c24dci_device_close, + .start = s3c24dci_device_nonisoc_start, }; struct usb_pipe_methods s3c24dci_device_intr_methods = { .open = s3c24dci_device_dummy, .enter = s3c24dci_device_dummy, - .close = s3c24dci_device_xxx_close, - .start = s3c24dci_device_xxx_start, + .close = s3c24dci_device_close, + .start = s3c24dci_device_nonisoc_start, }; /* ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#9 (text+ko) ==== @@ -1537,7 +1537,7 @@ } static void -uss820dci_device_xxx_start(struct usb_xfer *xfer) +uss820dci_device_nonisoc_start(struct usb_xfer *xfer) { uss820dci_setup_standard_chain(xfer); uss820dci_start_standard_chain(xfer); @@ -1545,7 +1545,7 @@ } static void -uss820dci_device_xxx_close(struct usb_xfer *xfer) +uss820dci_device_close(struct usb_xfer *xfer) { uss820dci_device_done(xfer, USB_ERR_CANCELLED); return ; @@ -1614,30 +1614,30 @@ { .open = uss820dci_device_dummy, .enter = uss820dci_device_dummy, - .close = uss820dci_device_xxx_close, - .start = uss820dci_device_xxx_start, + .close = uss820dci_device_close, + .start = uss820dci_device_nonisoc_start, }; struct usb_pipe_methods uss820dci_device_ctrl_methods = { .open = uss820dci_device_dummy, .enter = uss820dci_device_dummy, - .close = uss820dci_device_xxx_close, - .start = uss820dci_device_xxx_start, + .close = uss820dci_device_close, + .start = uss820dci_device_nonisoc_start, }; struct usb_pipe_methods uss820dci_device_intr_methods = { .open = uss820dci_device_dummy, .enter = uss820dci_device_dummy, - .close = uss820dci_device_xxx_close, - .start = uss820dci_device_xxx_start, + .close = uss820dci_device_close, + .start = uss820dci_device_nonisoc_start, }; struct usb_pipe_methods uss820dci_device_isoc_fs_methods = { .open = uss820dci_device_dummy, - .close = uss820dci_device_xxx_close, + .close = uss820dci_device_close, .enter = uss820dci_device_isoc_fs_enter, .start = uss820dci_device_isoc_fs_start, }; From owner-p4-projects@FreeBSD.ORG Wed Aug 5 14:02:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A4C910656A7; Wed, 5 Aug 2009 14:02:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 45EC7106568F for ; Wed, 5 Aug 2009 14:02:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 338688FC24 for ; Wed, 5 Aug 2009 14:02:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75E2kle044751 for ; Wed, 5 Aug 2009 14:02:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75E2kwe044749 for perforce@freebsd.org; Wed, 5 Aug 2009 14:02:46 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 5 Aug 2009 14:02:46 GMT Message-Id: <200908051402.n75E2kwe044749@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167030 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 14:02:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=167030 Change 167030 by hselasky@hselasky_laptop001 on 2009/08/05 14:01:49 USB audio: - no need to assert Giant. Use NULL mutex. Affected files ... .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#56 edit Differences ... ==== //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#56 (text+ko) ==== @@ -2958,7 +2958,7 @@ USETW(req.wIndex, mc->wIndex); USETW(req.wLength, len); - err = usbd_do_request(udev, &Giant, &req, data); + err = usbd_do_request(udev, NULL, &req, data); if (err) { DPRINTF("err=%s\n", usbd_errstr(err)); return (0); @@ -3081,7 +3081,7 @@ data[1] = speed >> 8; data[2] = speed >> 16; - return (usbd_do_request(udev, &Giant, &req, data)); + return (usbd_do_request(udev, NULL, &req, data)); } static int From owner-p4-projects@FreeBSD.ORG Wed Aug 5 14:15:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BBEC41065672; Wed, 5 Aug 2009 14:15:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 743BA106564A for ; Wed, 5 Aug 2009 14:15:15 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5F2288FC17 for ; Wed, 5 Aug 2009 14:15:15 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75EFFFA046877 for ; Wed, 5 Aug 2009 14:15:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75EExiQ046809 for perforce@freebsd.org; Wed, 5 Aug 2009 14:14:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 14:14:59 GMT Message-Id: <200908051414.n75EExiQ046809@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167031 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 14:15:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=167031 Change 167031 by rwatson@rwatson_cinnamon on 2009/08/05 14:14:35 Integrate trustedbsd_capabilities branch from beta3(ish) FreeBSD 8.0. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/contrib/tcpdump/ieee802_11.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcpdump/ieee802_11_radio.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcpdump/print-802_11.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/arm/stdlib/Makefile.inc#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/arm/string/strncmp.S#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/db/btree/bt_split.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/db/mpool/mpool.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Makefile.inc#10 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/Symbol.map#10 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/dlopen.3#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/fmtcheck.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/ftok.3#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/msgctl.3#3 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/msgget.3#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/msgrcv.3#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/msgsnd.3#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/pw_scan.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/gen/semctl.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/i386/stdlib/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/i386/stdlib/abs.S#3 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/i386/stdlib/div.S#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/i386/stdlib/labs.S#3 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/i386/stdlib/ldiv.S#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/ia64/stdlib/Makefile.inc#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/include/compat.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/mips/stdlib/Makefile.inc#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/Symbol.map#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl.3#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_add_flag_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_add_perm.3#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_branding.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_calc_mask.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_clear_flags_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_copy.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_create_entry.3#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_delete_entry.3#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_delete_entry.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_delete_flag_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_entry.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_flag.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_from_text.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_from_text_nfs4.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_get.3#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_get.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_get_brand_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_get_entry_type_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_get_flag_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_get_flagset_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_init.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_is_trivial_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_set.3#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_set.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_set_entry_type_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_set_flagset_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_set_tag_type.3#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_strip.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_strip_np.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_support.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_support.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_support_nfs4.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_to_text.3#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_to_text.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_to_text_nfs4.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/posix1e/acl_valid.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/rpc/getnetconfig.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sparc64/stdlib/Makefile.inc#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libc/stdio/fread.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/stdio/fwrite.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/stdlib/Makefile.inc#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/stdtime/localtime.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/stdtime/strptime.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/Makefile.inc#9 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/Symbol.map#17 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/execve.2#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/getrlimit.2#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/getsockopt.2#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/jail.2#5 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/link.2#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/mmap.2#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/msgctl.2#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/msgget.2#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/msgrcv.2#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/msgsnd.2#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/pathconf.2#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/semctl.2#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/shmctl.2#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libc/sys/stack_protector.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/Makefile#5 integrate .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/map_object.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#23 integrate .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/Makefile#11 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/aac.4#3 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/acpi_hp.4#1 branch .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/acpi_wmi.4#1 branch .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/ahci.4#1 branch .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/altq.4#7 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/asmc.4#3 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/ata.4#4 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/ath.4#7 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/bridge.4#1 branch .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/cpuctl.4#4 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/epair.4#1 branch .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/gem.4#3 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/ieee80211.4#2 delete .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/if_bridge.4#6 delete .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/mwl.4#2 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/mxge.4#3 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/net80211.4#1 branch .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/pcm.4#3 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/pts.4#4 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/ral.4#4 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/siis.4#1 branch .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/u3g.4#4 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/urtw.4#3 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/usb.4#4 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man4/wlan.4#5 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man5/procfs.5#2 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man7/tuning.7#4 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man8/picobsd.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man8/yp.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man9/Makefile#8 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man9/netisr.9#2 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man9/stack.9#3 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man9/usbdi.9#2 integrate .. //depot/projects/trustedbsd/capabilities/src/share/man/man9/vm_map.9#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/cpu_switch.S#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/exception.S#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/genassym.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/identcpu.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/initcpu.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/intr_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/io_apic.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/local_apic.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/machdep.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/mp_machdep.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/msi.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/pmap.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/sys_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/vm_machdep.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/conf/GENERIC#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/ia32/ia32_exception.S#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/ia32/ia32_reg.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/ia32/ia32_signal.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/include/cpufunc.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/include/intr_machdep.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/include/md_var.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/include/param.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/include/pcb.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/include/pmap.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/include/vm.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/isa/atpic.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/isa/clock.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/linux32/linux32_sysvec.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/pci/pci_bus.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/arm/busdma_machdep.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/arm/cpufunc.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/arm/elf_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/arm/elf_trampoline.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/arm/pmap.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/arm/vm_machdep.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/at91/at91_machdep.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/at91/if_ate.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/conf/AVILA#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/conf/AVILA.hints#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/conf/CAMBRIA#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/conf/CAMBRIA.hints#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/conf/DB-78XXX#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/conf/DB-88F5XXX#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/conf/DB-88F6XXX#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/include/param.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/include/pmap.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/include/vm.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/arm/mv/discovery/discovery.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/mv/files.mv#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/mv/kirkwood/kirkwood.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/mv/mv_machdep.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/mv/mv_sata.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/arm/mv/mvreg.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/mv/mvwin.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/mv/orion/orion.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/sa11x0/assabet_machdep.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/i80321/ep80219_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/i80321/iq31244_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/i8134x/crb_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/avila_ata.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/avila_machdep.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/cambria_exp_space.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/files.avila#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/if_npe.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/ixp425.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/ixp425reg.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/ixp425var.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/ixp425/uart_bus_ixp425.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/arm/xscale/pxa/pxa_machdep.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/boot/forth/loader.conf#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/boot/i386/libi386/biosdisk.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/boot/powerpc/uboot/version#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/bsm/audit.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/bsm/audit_kevents.h#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/ata/ata_all.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/cam/ata/ata_all.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/cam/ata/ata_da.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/cam/ata/ata_xpt.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam_ccb.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam_periph.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam_periph.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam_xpt.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam_xpt.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam_xpt_internal.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_all.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_cd.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_ch.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_da.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_pass.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_pt.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_sa.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_ses.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_sg.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_target.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cam/scsi/scsi_xpt.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/compat/opensolaris/sys/sig.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/compat/opensolaris/sys/vnode.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/dev/dtrace/amd64/dtrace_isa.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_ipc.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_misc.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_proto.h#15 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_syscall.h#15 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_syscalls.c#15 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_sysent.c#15 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/syscalls.master#12 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/linprocfs/linprocfs.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/linux/linux_ioctl.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/linux/linux_ipc.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/linux/linux_mib.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/linux/linux_signal.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/linux/linux_socket.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/ndis/kern_ndis.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/ndis/subr_ndis.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/ndis/subr_usbd.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/svr4/svr4_ipc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/svr4/svr4_sockio.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/compat/svr4/svr4_stat.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/conf/NOTES#12 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/conf/files#17 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/conf/files.amd64#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/conf/files.i386#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/conf/files.powerpc#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/conf/kmod.mk#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/conf/newvers.sh#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/conf/options#13 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/altq/altq/altq_subr.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/dev/acpica/compiler/aslcompile.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/dev/acpica/compiler/aslutils.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/dev/mwl/mw88W8363.fw.uu#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/ipfilter/netinet/fil.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/ngatm/netnatm/sig/sig_uni.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/pf/net/pf.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/pf/net/pf_if.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/pf/net/pf_ioctl.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/pf/net/pf_subr.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/pf/net/pfvar.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/rdma/rdma_addr.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/contrib/rdma/rdma_cma.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ddb/db_expr.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ddb/db_sym.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ddb/db_variables.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ddb/db_variables.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ddb/ddb.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/aac/aac.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/aac/aac_disk.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpi_support/acpi_hp.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpi_support/acpi_wmi.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpi_support/acpi_wmi_if.m#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpica/Osd/OsdSynch.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpica/acpi.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpica/acpi_battery.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpica/acpi_cpu.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpica/acpi_dock.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpica/acpi_pcib_acpi.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/acpica/acpi_thermal.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/adb/adb_bus.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/advansys/advlib.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ae/if_ae.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/age/if_age.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ahci/ahci.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ahci/ahci.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/alc/if_alc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ale/if_ale.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/amd/amd.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/amr/amr.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/asmc/asmc.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/asmc/asmcvar.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/ata-all.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/ata-all.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/ata-dma.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/ata-pci.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/ata-sata.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/ata-usb.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/atapi-cam.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/atapi-cd.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-acard.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-acerlabs.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-adaptec.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-ahci.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-amd.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-ati.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-cenatek.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-cypress.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-cyrix.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-highpoint.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-intel.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-ite.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-jmicron.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-marvell.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-micron.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-national.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-netcell.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-nvidia.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-promise.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-serverworks.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-siliconimage.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-sis.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ata/chipsets/ata-via.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ah_osdep.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ah_osdep.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ath_hal/ah.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ath_hal/ah.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ath_hal/ah_internal.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/if_ath.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ath/if_athvar.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/atkbdc/psm.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/bce/if_bce.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/bce/if_bcereg.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/bfe/if_bfe.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/bge/if_bge.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/bktr/bktr_os.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/bm/if_bm.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cas/if_cas.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cas/if_casvar.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ciss/ciss.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ciss/cissvar.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cpuctl/cpuctl.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cs/if_cs.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cxgb/cxgb_adapter.h#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cxgb/cxgb_main.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cxgb/cxgb_sge.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cxgb/sys/mvec.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cxgb/sys/uipc_mvec.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/dc/if_dc.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/de/if_de.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/drmP.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/drm_bufs.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/drm_context.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/drm_drv.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/drm_irq.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/drm_pciids.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/drm_sysctl.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/i915_dma.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/i915_drv.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/i915_drv.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/i915_irq.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/r600_cp.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/radeon_cp.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/radeon_drv.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/drm/radeon_irq.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_82540.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_82541.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_82542.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_82571.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_82575.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_82575.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_api.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_defines.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_hw.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_ich8lan.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_ich8lan.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_mac.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_osdep.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_phy.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_phy.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/e1000_regs.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/if_em.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/if_em.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/if_igb.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/e1000/if_igb.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ed/if_ed.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/et/if_et.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ex/if_ex.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/fdc/fdc.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/fe/if_fe.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/firewire/fwdev.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/fxp/if_fxp.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/fxp/if_fxpvar.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/gem/if_gem.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/gem/if_gem_pci.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/gem/if_gem_sbus.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/gem/if_gemreg.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/gem/if_gemvar.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/hme/if_hme.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/hptmv/atapi.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/hptrr/hptrr_config.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/hwpmc/hwpmc_logging.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/hwpmc/hwpmc_mod.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ic/ns16550.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ie/if_ie.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/if_ndis/if_ndis.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/if_ndis/if_ndis_pccard.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/if_ndis/if_ndis_pci.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/if_ndis/if_ndis_usb.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ips/ips_pci.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ipw/if_ipw.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/iscsi/initiator/isc_soc.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_freebsd.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_freebsd.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_ioctl.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_library.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_library.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_pci.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_sbus.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_stds.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_target.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/isp_target.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/ispmbox.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/ispreg.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/isp/ispvar.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ispfw/asm_2300.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ispfw/ispfw.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/iwi/if_iwi.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/iwn/if_iwn.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgb/if_ixgb.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_82598.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_82599.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_api.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_api.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_common.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_osdep.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_phy.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_phy.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ixgbe/ixgbe_type.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/jme/if_jme.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/le/lance.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/lge/if_lge.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/malo/if_malo.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/md/md.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mfi/mfi.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mfi/mfivar.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mge/if_mge.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mlx/mlx.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mlx/mlxvar.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mmc/mmc.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mpt/mpt.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mpt/mpt_cam.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mpt/mpt_pci.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/msk/if_msk.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mwl/if_mwl.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mwl/if_mwlvar.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mwl/mwlhal.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mwl/mwlhal.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mwl/mwlreg.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mxge/eth_z8e.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mxge/ethp_z8e.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mxge/if_mxge.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mxge/if_mxge_var.h#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mxge/mxge_lro.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mxge/rss_eth_z8e.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/mxge/rss_ethp_z8e.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/my/if_my.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/nfe/if_nfe.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/nge/if_nge.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/nve/if_nve.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/nxge/if_nxge.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/pccbb/pccbb.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/pci/pci.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/pcn/if_pcn.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/pdq/pdq_ifsubr.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/pst/pst-iop.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ral/rt2560.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ral/rt2661.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/re/if_re.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/rp/rp.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sf/if_sf.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/siis/siis.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/siis/siis.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sis/if_sis.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sk/if_sk.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sn/if_sn.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/snc/dp83932.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sound/midi/midi.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sound/midi/sequencer.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sound/pci/hda/hdac.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sound/pcm/feeder_rate.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/sound/usb/uaudio.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/speaker/spkr.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ste/if_ste.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/stge/if_stge.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/ti/if_ti.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/tl/if_tl.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/trm/trm.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/tsec/if_tsec.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/twe/twe.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/tx/if_tx.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/txp/if_txp.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/uart/uart_cpu_powerpc.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/at91dci.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/at91dci_atmelarm.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/atmegadci.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/atmegadci_atmelarm.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/avr32dci.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/ehci.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/ehci_ixp4xx.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/ehci_mbus.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/ehci_pci.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/musb_otg.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/musb_otg_atmelarm.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/ohci.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/ohci_atmelarm.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/ohci_pci.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/uhci.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/uhci_pci.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/usb_controller.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/uss820dci.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/controller/uss820dci_atmelarm.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/input/uhid.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/input/ukbd.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/input/ums.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/misc/udbp.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/misc/ufm.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/net/if_aue.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/net/if_axe.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/net/if_cdce.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/net/if_cue.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/net/if_kue.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/net/if_rue.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/net/if_udav.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/net/usb_ethernet.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/quirk/usb_quirk.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/quirk/usb_quirk.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/u3g.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/uark.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/ubsa.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/ubser.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/uchcom.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/ucycom.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/ufoma.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/uftdi.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/ugensa.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/uipaq.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/ulpt.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/umct.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/umodem.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/umoscom.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/uplcom.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/usb_serial.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/uslcom.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/uvisor.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/serial/uvscom.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/storage/umass.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/storage/urio.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/storage/ustorage_fs.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/template/usb_template.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/template/usb_template_cdce.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/template/usb_template_msc.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/template/usb_template_mtp.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb.h#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_busdma.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_busdma.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_compat_linux.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_compat_linux.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_controller.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_core.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_core.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_debug.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_debug.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_defs.h#5 delete .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_dev.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_dev.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_device.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_device.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_dynamic.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_dynamic.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_error.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_error.h#5 delete .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_freebsd.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_generic.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_handle_request.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_handle_request.h#5 delete .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_hid.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_hid.h#6 delete .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_hub.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_if.m#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_ioctl.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_lookup.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_lookup.h#6 delete .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_mbuf.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_mbuf.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_mfunc.h#5 delete .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_msctest.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_parse.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_parse.h#6 delete .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_process.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_process.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_request.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_request.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_revision.h#6 delete .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_transfer.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_transfer.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_util.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usb_util.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usbdevs#15 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usbdi.h#5 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usbdi_util.h#3 branch .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/usbhid.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/wlan/if_rum.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/wlan/if_uath.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/wlan/if_upgt.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/wlan/if_ural.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/wlan/if_urtw.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/usb/wlan/if_zyd.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/vge/if_vge.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/vr/if_vr.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/wb/if_wb.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/wi/if_wi.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/wl/if_wl.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/wpi/if_wpi.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/xe/if_xe.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/xen/blkback/blkback.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/xen/netback/netback.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/dev/xl/if_xl.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/cd9660/cd9660_lookup.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/coda/coda_psdev.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/coda/coda_vnops.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/devfs/devfs_vnops.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/fifofs/fifo_vnops.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfs/nfs.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfs/nfs_commonkrpc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfs/nfs_var.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfs/nfsport.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfsclient/nfs_clbio.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfsclient/nfs_clport.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfsclient/nfs_clrpcops.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfsclient/nfs_clstate.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfsclient/nfs_clvfsops.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfsclient/nfs_clvnops.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nfsserver/nfs_nfsdport.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/ntfs/ntfs.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/nullfs/null_vnops.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/procfs/procfs_map.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/pseudofs/pseudofs_vnops.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/tmpfs/tmpfs_subr.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/fs/unionfs/union_subr.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/geom.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/geom_dev.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/geom_io.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/geom_redboot.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/geom_subr.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/geom_vfs.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/journal/g_journal.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/linux_lvm/g_linux_lvm.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/part/g_part.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/part/g_part_if.m#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/geom/vinum/geom_vinum.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/gnu/fs/xfs/FreeBSD/xfs_ioctl.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/gnu/fs/xfs/FreeBSD/xfs_iops.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/gnu/fs/xfs/xfs_rw.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/gnu/fs/xfs/xfs_vnodeops.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/acpica/acpi_machdep.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/bios/smapi.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/bios/smbios.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/bios/vpd.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/conf/GENERIC#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/conf/NOTES#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/elf_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/genassym.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/initcpu.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/intr_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/io_apic.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/local_apic.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/machdep.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/mp_machdep.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/msi.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/pmap.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/sys_machdep.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/i386/vm_machdep.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/ibcs2/ibcs2_ipc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/ibcs2/ibcs2_misc.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/include/cpufunc.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/include/intr_machdep.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/include/md_var.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/include/param.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/include/pmap.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/include/vm.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/i386/isa/atpic.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/isa/clock.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/linux/linux_machdep.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/pci/pci_bus.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/xen/mp_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/i386/xen/pmap.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ia64/conf/GENERIC#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ia64/ia64/elf_machdep.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ia64/ia64/machdep.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ia64/ia64/mp_machdep.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ia64/ia64/pmap.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ia64/include/param.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ia64/include/pmap.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/ia64/include/vm.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/kern/init_main.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#37 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_alq.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_cpuset.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_descrip.c#27 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_event.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_exec.c#19 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_exit.c#17 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_fork.c#12 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_intr.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_jail.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_linker.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_lockf.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_mbuf.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_poll.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_proc.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_prot.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_resource.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_sig.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_switch.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_synch.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_sysctl.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_thr.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_thread.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_uuid.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_vimage.c#5 delete .. //depot/projects/trustedbsd/capabilities/src/sys/kern/link_elf.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/link_elf_obj.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sched_ule.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/subr_bus.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/subr_param.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/subr_pcpu.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/subr_sleepqueue.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/subr_stack.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/subr_trap.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_generic.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_pipe.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_process.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_socket.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#37 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.master#20 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#37 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sysv_ipc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sysv_msg.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sysv_sem.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sysv_shm.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/tty.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/tty_pts.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/tty_ttydisc.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_domain.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_mbuf.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_shm.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_sockbuf.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_socket.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_syscalls.c#15 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/uipc_usrreq.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_bio.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_cache.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_cluster.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_default.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_export.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_extattr.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_lookup.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_mount.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_subr.c#12 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_syscalls.c#16 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_vnops.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vnode_if.src#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/libkern/iconv.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/libkern/iconv_converter_if.m#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/libkern/iconv_xlat16.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/adm5120/if_admsw.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/include/param.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/include/pmap.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/include/vm.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/mips/malta/yamon.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/mips/busdma_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/mips/dump_machdep.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/mips/elf_machdep.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/mips/intr_machdep.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/mips/mp_machdep.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/mips/mips/pmap.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/Makefile#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/acpi/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/acpi/acpi_hp/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/acpi/acpi_wmi/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/ahci/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/cam/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/gem/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/geom/geom_label/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/igb/Makefile#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/ispfw/Makefile#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/ixgbe/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/mxge/mxge/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/netgraph/Makefile#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/netgraph/pipe/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/nfsclient/Makefile#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/nfsserver/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/modules/siis/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/modules/wlan/Makefile#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/bpf.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/bridgestp.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/fddi.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/firewire.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/flowtable.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/flowtable.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_arc.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_arcsubr.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_bridge.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_clone.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_clone.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_ef.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_enc.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_epair.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_ethersubr.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_faith.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_fddisubr.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_fwsubr.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_gif.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_gif.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_gre.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_iso88025subr.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_llatbl.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_loop.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_media.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_mib.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_spppsubr.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_stf.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_tap.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_tun.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_var.h#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/if_vlan.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/iso88025.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/netisr.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/netisr.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/raw_cb.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/raw_cb.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/raw_usrreq.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/route.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/route.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/rtsock.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net/vnet.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net/vnet.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/_ieee80211.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211.h#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_action.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_action.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_adhoc.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_ageq.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_ageq.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_crypto.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_crypto.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_ddb.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_freebsd.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_freebsd.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_hostap.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_ht.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_ht.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_hwmp.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_input.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_input.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_ioctl.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_ioctl.h#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_mesh.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_mesh.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_node.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_node.h#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_output.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_proto.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_proto.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_scan.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_scan.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_scan_sta.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_sta.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_var.h#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/net80211/ieee80211_wds.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/COPYRIGHT#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/aarp.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/at_control.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/at_extern.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/at_rmx.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/at_var.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/ddp_input.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/ddp_output.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/ddp_pcb.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netatalk/ddp_usrreq.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/atm/ng_atm.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/atm/uni/ng_uni.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/netgraph.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_base.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_bridge.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_eiface.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_ether.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_gif.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_iface.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_ksocket.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_pipe.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_socket.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netgraph/ng_source.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/icmp6.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/icmp_var.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/if_ether.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/igmp.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/in.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/in_gif.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/in_mcast.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/in_pcb.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/in_pcb.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/in_proto.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/in_rmx.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/in_var.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_carp.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_divert.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_dummynet.h#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_fastfwd.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_fw.h#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_icmp.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_input.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_ipsec.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_mroute.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_mroute.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_options.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_output.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ip_var.h#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ipfw/ip_dummynet.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ipfw/ip_fw2.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ipfw/ip_fw_nat.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/raw_ip.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/sctp_auth.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/sctp_indata.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/sctp_os_bsd.h#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/sctp_sysctl.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/sctp_sysctl.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/sctp_uio.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/sctputil.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/sctputil.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/tcp_hostcache.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/tcp_input.c#11 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/tcp_offload.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/tcp_offload.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/tcp_output.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/tcp_reass.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/tcp_sack.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/netinet/tcp_subr.c#10 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 5 14:17:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 128161065674; Wed, 5 Aug 2009 14:17:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3153106566C for ; Wed, 5 Aug 2009 14:17:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B16BA8FC1B for ; Wed, 5 Aug 2009 14:17:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75EHH7n047042 for ; Wed, 5 Aug 2009 14:17:17 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75EHHUQ047040 for perforce@freebsd.org; Wed, 5 Aug 2009 14:17:17 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 5 Aug 2009 14:17:17 GMT Message-Id: <200908051417.n75EHHUQ047040@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167032 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 14:17:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=167032 Change 167032 by hselasky@hselasky_laptop001 on 2009/08/05 14:17:08 USB input: - don't need to assert Giant at attach Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#28 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#28 (text+ko) ==== @@ -841,7 +841,7 @@ } /* ignore if SETIDLE fails, hence it is not crucial */ - err = usbd_req_set_idle(sc->sc_udev, &Giant, sc->sc_iface_index, 0, 0); + err = usbd_req_set_idle(sc->sc_udev, NULL, sc->sc_iface_index, 0, 0); ukbd_ioctl(kbd, KDSETLED, (caddr_t)&sc->sc_state); From owner-p4-projects@FreeBSD.ORG Wed Aug 5 14:41:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D38B91065670; Wed, 5 Aug 2009 14:41:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89FAD106566B for ; Wed, 5 Aug 2009 14:41:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 74E0C8FC08 for ; Wed, 5 Aug 2009 14:41:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75EfiZQ049343 for ; Wed, 5 Aug 2009 14:41:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75Efiq3049341 for perforce@freebsd.org; Wed, 5 Aug 2009 14:41:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 14:41:44 GMT Message-Id: <200908051441.n75Efiq3049341@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167033 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 14:41:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=167033 Change 167033 by rwatson@rwatson_cinnamon on 2009/08/05 14:41:18 Add pd* syscalls to freebsd32 system call table. Regenerate native and freebsd32 generated system call files. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_proto.h#16 edit .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_syscall.h#16 edit .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_syscalls.c#16 edit .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_sysent.c#16 edit .. //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/syscalls.master#13 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#38 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/makesyscalls.sh#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sys/kern/syscalls.c#38 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/systrace_args.c#38 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.h#38 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/syscall.mk#38 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/sysproto.h#38 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_proto.h#16 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.106 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -453,6 +453,37 @@ char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)]; char buf_l_[PADL_(struct shmid_ds32 *)]; struct shmid_ds32 * buf; char buf_r_[PADR_(struct shmid_ds32 *)]; }; +struct cap_new_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char rights_l_[PADL_(u_int64_t)]; u_int64_t rights; char rights_r_[PADR_(u_int64_t)]; +}; +struct cap_getrights_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char rightsp_l_[PADL_(u_int64_t *)]; u_int64_t * rightsp; char rightsp_r_[PADR_(u_int64_t *)]; +}; +struct cap_enter_args { + register_t dummy; +}; +struct cap_getmode_args { + char modep_l_[PADL_(u_int *)]; u_int * modep; char modep_r_[PADR_(u_int *)]; +}; +struct pdfork_args { + char fdp_l_[PADL_(int *)]; int * fdp; char fdp_r_[PADR_(int *)]; +}; +struct pdkill_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char signum_l_[PADL_(int)]; int signum; char signum_r_[PADR_(int)]; +}; +struct pdgetpid_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char pidp_l_[PADL_(pid_t *)]; pid_t * pidp; char pidp_r_[PADR_(pid_t *)]; +}; +struct pdwait_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char status_l_[PADL_(int *)]; int * status; char status_r_[PADR_(int *)]; + char options_l_[PADL_(int)]; int options; char options_r_[PADR_(int)]; + char rusage_l_[PADL_(struct rusage *)]; struct rusage * rusage; char rusage_r_[PADR_(struct rusage *)]; +}; int freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *); int freebsd32_recvmsg(struct thread *, struct freebsd32_recvmsg_args *); int freebsd32_sendmsg(struct thread *, struct freebsd32_sendmsg_args *); @@ -536,6 +567,14 @@ int freebsd32_semctl(struct thread *, struct freebsd32_semctl_args *); int freebsd32_msgctl(struct thread *, struct freebsd32_msgctl_args *); int freebsd32_shmctl(struct thread *, struct freebsd32_shmctl_args *); +int cap_new(struct thread *, struct cap_new_args *); +int cap_getrights(struct thread *, struct cap_getrights_args *); +int cap_enter(struct thread *, struct cap_enter_args *); +int cap_getmode(struct thread *, struct cap_getmode_args *); +int pdfork(struct thread *, struct pdfork_args *); +int pdkill(struct thread *, struct pdkill_args *); +int pdgetpid(struct thread *, struct pdgetpid_args *); +int pdwait(struct thread *, struct pdwait_args *); #ifdef COMPAT_43 @@ -814,6 +853,14 @@ #define FREEBSD32_SYS_AUE_freebsd32_semctl AUE_SEMCTL #define FREEBSD32_SYS_AUE_freebsd32_msgctl AUE_MSGCTL #define FREEBSD32_SYS_AUE_freebsd32_shmctl AUE_SHMCTL +#define FREEBSD32_SYS_AUE_cap_new AUE_CAP_NEW +#define FREEBSD32_SYS_AUE_cap_getrights AUE_CAP_GETRIGHTS +#define FREEBSD32_SYS_AUE_cap_enter AUE_CAP_ENTER +#define FREEBSD32_SYS_AUE_cap_getmode AUE_CAP_GETMODE +#define FREEBSD32_SYS_AUE_pdfork AUE_NULL +#define FREEBSD32_SYS_AUE_pdkill AUE_NULL +#define FREEBSD32_SYS_AUE_pdgetpid AUE_NULL +#define FREEBSD32_SYS_AUE_pdwait AUE_NULL #undef PAD_ #undef PADL_ ==== //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_syscall.h#16 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.105 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #define FREEBSD32_SYS_syscall 0 @@ -382,4 +382,12 @@ #define FREEBSD32_SYS_freebsd32_msgctl 511 #define FREEBSD32_SYS_freebsd32_shmctl 512 #define FREEBSD32_SYS_lpathconf 513 -#define FREEBSD32_SYS_MAXSYSCALL 514 +#define FREEBSD32_SYS_cap_new 514 +#define FREEBSD32_SYS_cap_getrights 515 +#define FREEBSD32_SYS_cap_enter 516 +#define FREEBSD32_SYS_cap_getmode 517 +#define FREEBSD32_SYS_pdfork 518 +#define FREEBSD32_SYS_pdkill 519 +#define FREEBSD32_SYS_pdgetpid 520 +#define FREEBSD32_SYS_pdwait 521 +#define FREEBSD32_SYS_MAXSYSCALL 522 ==== //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_syscalls.c#16 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.96 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ const char *freebsd32_syscallnames[] = { @@ -521,4 +521,12 @@ "freebsd32_msgctl", /* 511 = freebsd32_msgctl */ "freebsd32_shmctl", /* 512 = freebsd32_shmctl */ "lpathconf", /* 513 = lpathconf */ + "cap_new", /* 514 = cap_new */ + "cap_getrights", /* 515 = cap_getrights */ + "cap_enter", /* 516 = cap_enter */ + "cap_getmode", /* 517 = cap_getmode */ + "pdfork", /* 518 = pdfork */ + "pdkill", /* 519 = pdkill */ + "pdgetpid", /* 520 = pdgetpid */ + "pdwait", /* 521 = pdwait */ }; ==== //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/freebsd32_sysent.c#16 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.107 2009/07/08 16:30:34 trasz Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 195468 2009-07-08 16:26:43Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.123 2009/07/08 16:26:43 trasz Exp */ #include "opt_compat.h" @@ -558,4 +558,12 @@ { AS(freebsd32_msgctl_args), (sy_call_t *)freebsd32_msgctl, AUE_MSGCTL, NULL, 0, 0, 0 }, /* 511 = freebsd32_msgctl */ { AS(freebsd32_shmctl_args), (sy_call_t *)freebsd32_shmctl, AUE_SHMCTL, NULL, 0, 0, 0 }, /* 512 = freebsd32_shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ + { AS(cap_new_args), (sy_call_t *)cap_new, AUE_CAP_NEW, NULL, 0, 0, 0 }, /* 514 = cap_new */ + { AS(cap_getrights_args), (sy_call_t *)cap_getrights, AUE_CAP_GETRIGHTS, NULL, 0, 0, 0 }, /* 515 = cap_getrights */ + { 0, (sy_call_t *)cap_enter, AUE_CAP_ENTER, NULL, 0, 0, 0 }, /* 516 = cap_enter */ + { AS(cap_getmode_args), (sy_call_t *)cap_getmode, AUE_CAP_GETMODE, NULL, 0, 0, 0 }, /* 517 = cap_getmode */ + { AS(pdfork_args), (sy_call_t *)pdfork, AUE_NULL, NULL, 0, 0, 0 }, /* 518 = pdfork */ + { AS(pdkill_args), (sy_call_t *)pdkill, AUE_NULL, NULL, 0, 0, 0 }, /* 519 = pdkill */ + { AS(pdgetpid_args), (sy_call_t *)pdgetpid, AUE_NULL, NULL, 0, 0, 0 }, /* 520 = pdgetpid */ + { AS(pdwait_args), (sy_call_t *)pdwait, AUE_NULL, NULL, 0, 0, 0 }, /* 521 = pdwait */ }; ==== //depot/projects/trustedbsd/capabilities/src/sys/compat/freebsd32/syscalls.master#13 (text+ko) ==== @@ -906,3 +906,8 @@ u_int64_t *rightsp); } 516 AUE_CAP_ENTER STD { int cap_enter(void); } 517 AUE_CAP_GETMODE STD { int cap_getmode(u_int *modep); } +518 AUE_NULL STD { int pdfork(int *fdp); } +519 AUE_NULL STD { int pdkill(int fd, int signum); } +520 AUE_NULL STD { int pdgetpid(int fd, pid_t *pidp); } +521 AUE_NULL STD { int pdwait(int fd, int *status, \ + int options, struct rusage *rusage); } ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/init_sysent.c#38 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/init_sysent.c,v 1.253 2009/07/08 15:25:27 trasz Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 195458 2009-07-08 15:23:18Z trasz + * $FreeBSD$ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.259 2009/07/08 15:23:18 trasz Exp */ #include "opt_compat.h" @@ -35,12 +35,12 @@ /* The casts are bogus but will do for now. */ struct sysent sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 0 = syscall */ - { AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT, NULL, 0, 0, 0 }, /* 1 = exit */ - { 0, (sy_call_t *)fork, AUE_FORK, NULL, 0, 0, 0 }, /* 2 = fork */ - { AS(read_args), (sy_call_t *)read, AUE_NULL, NULL, 0, 0, 0 }, /* 3 = read */ - { AS(write_args), (sy_call_t *)write, AUE_NULL, NULL, 0, 0, 0 }, /* 4 = write */ + { AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT, NULL, 0, 0, SYF_CAPENABLED }, /* 1 = exit */ + { 0, (sy_call_t *)fork, AUE_FORK, NULL, 0, 0, SYF_CAPENABLED }, /* 2 = fork */ + { AS(read_args), (sy_call_t *)read, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 3 = read */ + { AS(write_args), (sy_call_t *)write, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 4 = write */ { AS(open_args), (sy_call_t *)open, AUE_OPEN_RWTC, NULL, 0, 0, 0 }, /* 5 = open */ - { AS(close_args), (sy_call_t *)close, AUE_CLOSE, NULL, 0, 0, 0 }, /* 6 = close */ + { AS(close_args), (sy_call_t *)close, AUE_CLOSE, NULL, 0, 0, SYF_CAPENABLED }, /* 6 = close */ { AS(wait_args), (sy_call_t *)wait4, AUE_WAIT4, NULL, 0, 0, 0 }, /* 7 = wait4 */ { compat(AS(ocreat_args),creat), AUE_CREAT, NULL, 0, 0, 0 }, /* 8 = old creat */ { AS(link_args), (sy_call_t *)link, AUE_LINK, NULL, 0, 0, 0 }, /* 9 = link */ @@ -51,199 +51,199 @@ { AS(mknod_args), (sy_call_t *)mknod, AUE_MKNOD, NULL, 0, 0, 0 }, /* 14 = mknod */ { AS(chmod_args), (sy_call_t *)chmod, AUE_CHMOD, NULL, 0, 0, 0 }, /* 15 = chmod */ { AS(chown_args), (sy_call_t *)chown, AUE_CHOWN, NULL, 0, 0, 0 }, /* 16 = chown */ - { AS(obreak_args), (sy_call_t *)obreak, AUE_NULL, NULL, 0, 0, 0 }, /* 17 = break */ + { AS(obreak_args), (sy_call_t *)obreak, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 17 = break */ { compat4(AS(freebsd4_getfsstat_args),getfsstat), AUE_GETFSSTAT, NULL, 0, 0, 0 }, /* 18 = freebsd4 getfsstat */ - { compat(AS(olseek_args),lseek), AUE_LSEEK, NULL, 0, 0, 0 }, /* 19 = old lseek */ - { 0, (sy_call_t *)getpid, AUE_GETPID, NULL, 0, 0, 0 }, /* 20 = getpid */ + { compat(AS(olseek_args),lseek), AUE_LSEEK, NULL, 0, 0, SYF_CAPENABLED }, /* 19 = old lseek */ + { 0, (sy_call_t *)getpid, AUE_GETPID, NULL, 0, 0, SYF_CAPENABLED }, /* 20 = getpid */ { AS(mount_args), (sy_call_t *)mount, AUE_MOUNT, NULL, 0, 0, 0 }, /* 21 = mount */ { AS(unmount_args), (sy_call_t *)unmount, AUE_UMOUNT, NULL, 0, 0, 0 }, /* 22 = unmount */ - { AS(setuid_args), (sy_call_t *)setuid, AUE_SETUID, NULL, 0, 0, 0 }, /* 23 = setuid */ - { 0, (sy_call_t *)getuid, AUE_GETUID, NULL, 0, 0, 0 }, /* 24 = getuid */ - { 0, (sy_call_t *)geteuid, AUE_GETEUID, NULL, 0, 0, 0 }, /* 25 = geteuid */ + { AS(setuid_args), (sy_call_t *)setuid, AUE_SETUID, NULL, 0, 0, SYF_CAPENABLED }, /* 23 = setuid */ + { 0, (sy_call_t *)getuid, AUE_GETUID, NULL, 0, 0, SYF_CAPENABLED }, /* 24 = getuid */ + { 0, (sy_call_t *)geteuid, AUE_GETEUID, NULL, 0, 0, SYF_CAPENABLED }, /* 25 = geteuid */ { AS(ptrace_args), (sy_call_t *)ptrace, AUE_PTRACE, NULL, 0, 0, 0 }, /* 26 = ptrace */ - { AS(recvmsg_args), (sy_call_t *)recvmsg, AUE_RECVMSG, NULL, 0, 0, 0 }, /* 27 = recvmsg */ - { AS(sendmsg_args), (sy_call_t *)sendmsg, AUE_SENDMSG, NULL, 0, 0, 0 }, /* 28 = sendmsg */ - { AS(recvfrom_args), (sy_call_t *)recvfrom, AUE_RECVFROM, NULL, 0, 0, 0 }, /* 29 = recvfrom */ - { AS(accept_args), (sy_call_t *)accept, AUE_ACCEPT, NULL, 0, 0, 0 }, /* 30 = accept */ - { AS(getpeername_args), (sy_call_t *)getpeername, AUE_GETPEERNAME, NULL, 0, 0, 0 }, /* 31 = getpeername */ - { AS(getsockname_args), (sy_call_t *)getsockname, AUE_GETSOCKNAME, NULL, 0, 0, 0 }, /* 32 = getsockname */ + { AS(recvmsg_args), (sy_call_t *)recvmsg, AUE_RECVMSG, NULL, 0, 0, SYF_CAPENABLED }, /* 27 = recvmsg */ + { AS(sendmsg_args), (sy_call_t *)sendmsg, AUE_SENDMSG, NULL, 0, 0, SYF_CAPENABLED }, /* 28 = sendmsg */ + { AS(recvfrom_args), (sy_call_t *)recvfrom, AUE_RECVFROM, NULL, 0, 0, SYF_CAPENABLED }, /* 29 = recvfrom */ + { AS(accept_args), (sy_call_t *)accept, AUE_ACCEPT, NULL, 0, 0, SYF_CAPENABLED }, /* 30 = accept */ + { AS(getpeername_args), (sy_call_t *)getpeername, AUE_GETPEERNAME, NULL, 0, 0, SYF_CAPENABLED }, /* 31 = getpeername */ + { AS(getsockname_args), (sy_call_t *)getsockname, AUE_GETSOCKNAME, NULL, 0, 0, SYF_CAPENABLED }, /* 32 = getsockname */ { AS(access_args), (sy_call_t *)access, AUE_ACCESS, NULL, 0, 0, 0 }, /* 33 = access */ { AS(chflags_args), (sy_call_t *)chflags, AUE_CHFLAGS, NULL, 0, 0, 0 }, /* 34 = chflags */ - { AS(fchflags_args), (sy_call_t *)fchflags, AUE_FCHFLAGS, NULL, 0, 0, 0 }, /* 35 = fchflags */ - { 0, (sy_call_t *)sync, AUE_SYNC, NULL, 0, 0, 0 }, /* 36 = sync */ + { AS(fchflags_args), (sy_call_t *)fchflags, AUE_FCHFLAGS, NULL, 0, 0, SYF_CAPENABLED }, /* 35 = fchflags */ + { 0, (sy_call_t *)sync, AUE_SYNC, NULL, 0, 0, SYF_CAPENABLED }, /* 36 = sync */ { AS(kill_args), (sy_call_t *)kill, AUE_KILL, NULL, 0, 0, 0 }, /* 37 = kill */ { compat(AS(ostat_args),stat), AUE_STAT, NULL, 0, 0, 0 }, /* 38 = old stat */ - { 0, (sy_call_t *)getppid, AUE_GETPPID, NULL, 0, 0, 0 }, /* 39 = getppid */ + { 0, (sy_call_t *)getppid, AUE_GETPPID, NULL, 0, 0, SYF_CAPENABLED }, /* 39 = getppid */ { compat(AS(olstat_args),lstat), AUE_LSTAT, NULL, 0, 0, 0 }, /* 40 = old lstat */ - { AS(dup_args), (sy_call_t *)dup, AUE_DUP, NULL, 0, 0, 0 }, /* 41 = dup */ - { 0, (sy_call_t *)pipe, AUE_PIPE, NULL, 0, 0, 0 }, /* 42 = pipe */ - { 0, (sy_call_t *)getegid, AUE_GETEGID, NULL, 0, 0, 0 }, /* 43 = getegid */ - { AS(profil_args), (sy_call_t *)profil, AUE_PROFILE, NULL, 0, 0, 0 }, /* 44 = profil */ + { AS(dup_args), (sy_call_t *)dup, AUE_DUP, NULL, 0, 0, SYF_CAPENABLED }, /* 41 = dup */ + { 0, (sy_call_t *)pipe, AUE_PIPE, NULL, 0, 0, SYF_CAPENABLED }, /* 42 = pipe */ + { 0, (sy_call_t *)getegid, AUE_GETEGID, NULL, 0, 0, SYF_CAPENABLED }, /* 43 = getegid */ + { AS(profil_args), (sy_call_t *)profil, AUE_PROFILE, NULL, 0, 0, SYF_CAPENABLED }, /* 44 = profil */ { AS(ktrace_args), (sy_call_t *)ktrace, AUE_KTRACE, NULL, 0, 0, 0 }, /* 45 = ktrace */ - { compat(AS(osigaction_args),sigaction), AUE_SIGACTION, NULL, 0, 0, 0 }, /* 46 = old sigaction */ - { 0, (sy_call_t *)getgid, AUE_GETGID, NULL, 0, 0, 0 }, /* 47 = getgid */ - { compat(AS(osigprocmask_args),sigprocmask), AUE_SIGPROCMASK, NULL, 0, 0, 0 }, /* 48 = old sigprocmask */ - { AS(getlogin_args), (sy_call_t *)getlogin, AUE_GETLOGIN, NULL, 0, 0, 0 }, /* 49 = getlogin */ + { compat(AS(osigaction_args),sigaction), AUE_SIGACTION, NULL, 0, 0, SYF_CAPENABLED }, /* 46 = old sigaction */ + { 0, (sy_call_t *)getgid, AUE_GETGID, NULL, 0, 0, SYF_CAPENABLED }, /* 47 = getgid */ + { compat(AS(osigprocmask_args),sigprocmask), AUE_SIGPROCMASK, NULL, 0, 0, SYF_CAPENABLED }, /* 48 = old sigprocmask */ + { AS(getlogin_args), (sy_call_t *)getlogin, AUE_GETLOGIN, NULL, 0, 0, SYF_CAPENABLED }, /* 49 = getlogin */ { AS(setlogin_args), (sy_call_t *)setlogin, AUE_SETLOGIN, NULL, 0, 0, 0 }, /* 50 = setlogin */ { AS(acct_args), (sy_call_t *)acct, AUE_ACCT, NULL, 0, 0, 0 }, /* 51 = acct */ - { compat(0,sigpending), AUE_SIGPENDING, NULL, 0, 0, 0 }, /* 52 = old sigpending */ - { AS(sigaltstack_args), (sy_call_t *)sigaltstack, AUE_SIGALTSTACK, NULL, 0, 0, 0 }, /* 53 = sigaltstack */ + { compat(0,sigpending), AUE_SIGPENDING, NULL, 0, 0, SYF_CAPENABLED }, /* 52 = old sigpending */ + { AS(sigaltstack_args), (sy_call_t *)sigaltstack, AUE_SIGALTSTACK, NULL, 0, 0, SYF_CAPENABLED }, /* 53 = sigaltstack */ { AS(ioctl_args), (sy_call_t *)ioctl, AUE_IOCTL, NULL, 0, 0, 0 }, /* 54 = ioctl */ { AS(reboot_args), (sy_call_t *)reboot, AUE_REBOOT, NULL, 0, 0, 0 }, /* 55 = reboot */ { AS(revoke_args), (sy_call_t *)revoke, AUE_REVOKE, NULL, 0, 0, 0 }, /* 56 = revoke */ { AS(symlink_args), (sy_call_t *)symlink, AUE_SYMLINK, NULL, 0, 0, 0 }, /* 57 = symlink */ { AS(readlink_args), (sy_call_t *)readlink, AUE_READLINK, NULL, 0, 0, 0 }, /* 58 = readlink */ { AS(execve_args), (sy_call_t *)execve, AUE_EXECVE, NULL, 0, 0, 0 }, /* 59 = execve */ - { AS(umask_args), (sy_call_t *)umask, AUE_UMASK, NULL, 0, 0, 0 }, /* 60 = umask */ + { AS(umask_args), (sy_call_t *)umask, AUE_UMASK, NULL, 0, 0, SYF_CAPENABLED }, /* 60 = umask */ { AS(chroot_args), (sy_call_t *)chroot, AUE_CHROOT, NULL, 0, 0, 0 }, /* 61 = chroot */ - { compat(AS(ofstat_args),fstat), AUE_FSTAT, NULL, 0, 0, 0 }, /* 62 = old fstat */ + { compat(AS(ofstat_args),fstat), AUE_FSTAT, NULL, 0, 0, SYF_CAPENABLED }, /* 62 = old fstat */ { compat(AS(getkerninfo_args),getkerninfo), AUE_NULL, NULL, 0, 0, 0 }, /* 63 = old getkerninfo */ - { compat(0,getpagesize), AUE_NULL, NULL, 0, 0, 0 }, /* 64 = old getpagesize */ - { AS(msync_args), (sy_call_t *)msync, AUE_MSYNC, NULL, 0, 0, 0 }, /* 65 = msync */ + { compat(0,getpagesize), AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 64 = old getpagesize */ + { AS(msync_args), (sy_call_t *)msync, AUE_MSYNC, NULL, 0, 0, SYF_CAPENABLED }, /* 65 = msync */ { 0, (sy_call_t *)vfork, AUE_VFORK, NULL, 0, 0, 0 }, /* 66 = vfork */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 67 = obsolete vread */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 68 = obsolete vwrite */ - { AS(sbrk_args), (sy_call_t *)sbrk, AUE_SBRK, NULL, 0, 0, 0 }, /* 69 = sbrk */ - { AS(sstk_args), (sy_call_t *)sstk, AUE_SSTK, NULL, 0, 0, 0 }, /* 70 = sstk */ - { compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0, 0 }, /* 71 = old mmap */ + { AS(sbrk_args), (sy_call_t *)sbrk, AUE_SBRK, NULL, 0, 0, SYF_CAPENABLED }, /* 69 = sbrk */ + { AS(sstk_args), (sy_call_t *)sstk, AUE_SSTK, NULL, 0, 0, SYF_CAPENABLED }, /* 70 = sstk */ + { compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0, SYF_CAPENABLED }, /* 71 = old mmap */ { AS(ovadvise_args), (sy_call_t *)ovadvise, AUE_O_VADVISE, NULL, 0, 0, 0 }, /* 72 = vadvise */ - { AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP, NULL, 0, 0, 0 }, /* 73 = munmap */ - { AS(mprotect_args), (sy_call_t *)mprotect, AUE_MPROTECT, NULL, 0, 0, 0 }, /* 74 = mprotect */ - { AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE, NULL, 0, 0, 0 }, /* 75 = madvise */ + { AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP, NULL, 0, 0, SYF_CAPENABLED }, /* 73 = munmap */ + { AS(mprotect_args), (sy_call_t *)mprotect, AUE_MPROTECT, NULL, 0, 0, SYF_CAPENABLED }, /* 74 = mprotect */ + { AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE, NULL, 0, 0, SYF_CAPENABLED }, /* 75 = madvise */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 76 = obsolete vhangup */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 77 = obsolete vlimit */ - { AS(mincore_args), (sy_call_t *)mincore, AUE_MINCORE, NULL, 0, 0, 0 }, /* 78 = mincore */ - { AS(getgroups_args), (sy_call_t *)getgroups, AUE_GETGROUPS, NULL, 0, 0, 0 }, /* 79 = getgroups */ + { AS(mincore_args), (sy_call_t *)mincore, AUE_MINCORE, NULL, 0, 0, SYF_CAPENABLED }, /* 78 = mincore */ + { AS(getgroups_args), (sy_call_t *)getgroups, AUE_GETGROUPS, NULL, 0, 0, SYF_CAPENABLED }, /* 79 = getgroups */ { AS(setgroups_args), (sy_call_t *)setgroups, AUE_SETGROUPS, NULL, 0, 0, 0 }, /* 80 = setgroups */ - { 0, (sy_call_t *)getpgrp, AUE_GETPGRP, NULL, 0, 0, 0 }, /* 81 = getpgrp */ + { 0, (sy_call_t *)getpgrp, AUE_GETPGRP, NULL, 0, 0, SYF_CAPENABLED }, /* 81 = getpgrp */ { AS(setpgid_args), (sy_call_t *)setpgid, AUE_SETPGRP, NULL, 0, 0, 0 }, /* 82 = setpgid */ - { AS(setitimer_args), (sy_call_t *)setitimer, AUE_SETITIMER, NULL, 0, 0, 0 }, /* 83 = setitimer */ + { AS(setitimer_args), (sy_call_t *)setitimer, AUE_SETITIMER, NULL, 0, 0, SYF_CAPENABLED }, /* 83 = setitimer */ { compat(0,wait), AUE_WAIT4, NULL, 0, 0, 0 }, /* 84 = old wait */ { AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON, NULL, 0, 0, 0 }, /* 85 = swapon */ - { AS(getitimer_args), (sy_call_t *)getitimer, AUE_GETITIMER, NULL, 0, 0, 0 }, /* 86 = getitimer */ - { compat(AS(gethostname_args),gethostname), AUE_SYSCTL, NULL, 0, 0, 0 }, /* 87 = old gethostname */ + { AS(getitimer_args), (sy_call_t *)getitimer, AUE_GETITIMER, NULL, 0, 0, SYF_CAPENABLED }, /* 86 = getitimer */ + { compat(AS(gethostname_args),gethostname), AUE_SYSCTL, NULL, 0, 0, SYF_CAPENABLED }, /* 87 = old gethostname */ { compat(AS(sethostname_args),sethostname), AUE_SYSCTL, NULL, 0, 0, 0 }, /* 88 = old sethostname */ { 0, (sy_call_t *)getdtablesize, AUE_GETDTABLESIZE, NULL, 0, 0, 0 }, /* 89 = getdtablesize */ - { AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2, NULL, 0, 0, 0 }, /* 90 = dup2 */ + { AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2, NULL, 0, 0, SYF_CAPENABLED }, /* 90 = dup2 */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 91 = getdopt */ - { AS(fcntl_args), (sy_call_t *)fcntl, AUE_FCNTL, NULL, 0, 0, 0 }, /* 92 = fcntl */ - { AS(select_args), (sy_call_t *)select, AUE_SELECT, NULL, 0, 0, 0 }, /* 93 = select */ + { AS(fcntl_args), (sy_call_t *)fcntl, AUE_FCNTL, NULL, 0, 0, SYF_CAPENABLED }, /* 92 = fcntl */ + { AS(select_args), (sy_call_t *)select, AUE_SELECT, NULL, 0, 0, SYF_CAPENABLED }, /* 93 = select */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 94 = setdopt */ - { AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0, 0 }, /* 95 = fsync */ - { AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY, NULL, 0, 0, 0 }, /* 96 = setpriority */ - { AS(socket_args), (sy_call_t *)socket, AUE_SOCKET, NULL, 0, 0, 0 }, /* 97 = socket */ + { AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0, SYF_CAPENABLED }, /* 95 = fsync */ + { AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY, NULL, 0, 0, SYF_CAPENABLED }, /* 96 = setpriority */ + { AS(socket_args), (sy_call_t *)socket, AUE_SOCKET, NULL, 0, 0, SYF_CAPENABLED }, /* 97 = socket */ { AS(connect_args), (sy_call_t *)connect, AUE_CONNECT, NULL, 0, 0, 0 }, /* 98 = connect */ - { compat(AS(accept_args),accept), AUE_ACCEPT, NULL, 0, 0, 0 }, /* 99 = old accept */ - { AS(getpriority_args), (sy_call_t *)getpriority, AUE_GETPRIORITY, NULL, 0, 0, 0 }, /* 100 = getpriority */ - { compat(AS(osend_args),send), AUE_SEND, NULL, 0, 0, 0 }, /* 101 = old send */ - { compat(AS(orecv_args),recv), AUE_RECV, NULL, 0, 0, 0 }, /* 102 = old recv */ - { compat(AS(osigreturn_args),sigreturn), AUE_SIGRETURN, NULL, 0, 0, 0 }, /* 103 = old sigreturn */ + { compat(AS(accept_args),accept), AUE_ACCEPT, NULL, 0, 0, SYF_CAPENABLED }, /* 99 = old accept */ + { AS(getpriority_args), (sy_call_t *)getpriority, AUE_GETPRIORITY, NULL, 0, 0, SYF_CAPENABLED }, /* 100 = getpriority */ + { compat(AS(osend_args),send), AUE_SEND, NULL, 0, 0, SYF_CAPENABLED }, /* 101 = old send */ + { compat(AS(orecv_args),recv), AUE_RECV, NULL, 0, 0, SYF_CAPENABLED }, /* 102 = old recv */ + { compat(AS(osigreturn_args),sigreturn), AUE_SIGRETURN, NULL, 0, 0, SYF_CAPENABLED }, /* 103 = old sigreturn */ { AS(bind_args), (sy_call_t *)bind, AUE_BIND, NULL, 0, 0, 0 }, /* 104 = bind */ - { AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT, NULL, 0, 0, 0 }, /* 105 = setsockopt */ - { AS(listen_args), (sy_call_t *)listen, AUE_LISTEN, NULL, 0, 0, 0 }, /* 106 = listen */ + { AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT, NULL, 0, 0, SYF_CAPENABLED }, /* 105 = setsockopt */ + { AS(listen_args), (sy_call_t *)listen, AUE_LISTEN, NULL, 0, 0, SYF_CAPENABLED }, /* 106 = listen */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 107 = obsolete vtimes */ - { compat(AS(osigvec_args),sigvec), AUE_NULL, NULL, 0, 0, 0 }, /* 108 = old sigvec */ - { compat(AS(osigblock_args),sigblock), AUE_NULL, NULL, 0, 0, 0 }, /* 109 = old sigblock */ - { compat(AS(osigsetmask_args),sigsetmask), AUE_NULL, NULL, 0, 0, 0 }, /* 110 = old sigsetmask */ - { compat(AS(osigsuspend_args),sigsuspend), AUE_NULL, NULL, 0, 0, 0 }, /* 111 = old sigsuspend */ - { compat(AS(osigstack_args),sigstack), AUE_NULL, NULL, 0, 0, 0 }, /* 112 = old sigstack */ - { compat(AS(orecvmsg_args),recvmsg), AUE_RECVMSG, NULL, 0, 0, 0 }, /* 113 = old recvmsg */ - { compat(AS(osendmsg_args),sendmsg), AUE_SENDMSG, NULL, 0, 0, 0 }, /* 114 = old sendmsg */ + { compat(AS(osigvec_args),sigvec), AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 108 = old sigvec */ + { compat(AS(osigblock_args),sigblock), AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 109 = old sigblock */ + { compat(AS(osigsetmask_args),sigsetmask), AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 110 = old sigsetmask */ + { compat(AS(osigsuspend_args),sigsuspend), AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 111 = old sigsuspend */ + { compat(AS(osigstack_args),sigstack), AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 112 = old sigstack */ + { compat(AS(orecvmsg_args),recvmsg), AUE_RECVMSG, NULL, 0, 0, SYF_CAPENABLED }, /* 113 = old recvmsg */ + { compat(AS(osendmsg_args),sendmsg), AUE_SENDMSG, NULL, 0, 0, SYF_CAPENABLED }, /* 114 = old sendmsg */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 115 = obsolete vtrace */ - { AS(gettimeofday_args), (sy_call_t *)gettimeofday, AUE_GETTIMEOFDAY, NULL, 0, 0, 0 }, /* 116 = gettimeofday */ - { AS(getrusage_args), (sy_call_t *)getrusage, AUE_GETRUSAGE, NULL, 0, 0, 0 }, /* 117 = getrusage */ - { AS(getsockopt_args), (sy_call_t *)getsockopt, AUE_GETSOCKOPT, NULL, 0, 0, 0 }, /* 118 = getsockopt */ + { AS(gettimeofday_args), (sy_call_t *)gettimeofday, AUE_GETTIMEOFDAY, NULL, 0, 0, SYF_CAPENABLED }, /* 116 = gettimeofday */ + { AS(getrusage_args), (sy_call_t *)getrusage, AUE_GETRUSAGE, NULL, 0, 0, SYF_CAPENABLED }, /* 117 = getrusage */ + { AS(getsockopt_args), (sy_call_t *)getsockopt, AUE_GETSOCKOPT, NULL, 0, 0, SYF_CAPENABLED }, /* 118 = getsockopt */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 119 = resuba */ - { AS(readv_args), (sy_call_t *)readv, AUE_READV, NULL, 0, 0, 0 }, /* 120 = readv */ - { AS(writev_args), (sy_call_t *)writev, AUE_WRITEV, NULL, 0, 0, 0 }, /* 121 = writev */ + { AS(readv_args), (sy_call_t *)readv, AUE_READV, NULL, 0, 0, SYF_CAPENABLED }, /* 120 = readv */ + { AS(writev_args), (sy_call_t *)writev, AUE_WRITEV, NULL, 0, 0, SYF_CAPENABLED }, /* 121 = writev */ { AS(settimeofday_args), (sy_call_t *)settimeofday, AUE_SETTIMEOFDAY, NULL, 0, 0, 0 }, /* 122 = settimeofday */ - { AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN, NULL, 0, 0, 0 }, /* 123 = fchown */ - { AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD, NULL, 0, 0, 0 }, /* 124 = fchmod */ - { compat(AS(recvfrom_args),recvfrom), AUE_RECVFROM, NULL, 0, 0, 0 }, /* 125 = old recvfrom */ - { AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID, NULL, 0, 0, 0 }, /* 126 = setreuid */ - { AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID, NULL, 0, 0, 0 }, /* 127 = setregid */ + { AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN, NULL, 0, 0, SYF_CAPENABLED }, /* 123 = fchown */ + { AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD, NULL, 0, 0, SYF_CAPENABLED }, /* 124 = fchmod */ + { compat(AS(recvfrom_args),recvfrom), AUE_RECVFROM, NULL, 0, 0, SYF_CAPENABLED }, /* 125 = old recvfrom */ + { AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID, NULL, 0, 0, SYF_CAPENABLED }, /* 126 = setreuid */ + { AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID, NULL, 0, 0, SYF_CAPENABLED }, /* 127 = setregid */ { AS(rename_args), (sy_call_t *)rename, AUE_RENAME, NULL, 0, 0, 0 }, /* 128 = rename */ { compat(AS(otruncate_args),truncate), AUE_TRUNCATE, NULL, 0, 0, 0 }, /* 129 = old truncate */ - { compat(AS(oftruncate_args),ftruncate), AUE_FTRUNCATE, NULL, 0, 0, 0 }, /* 130 = old ftruncate */ - { AS(flock_args), (sy_call_t *)flock, AUE_FLOCK, NULL, 0, 0, 0 }, /* 131 = flock */ + { compat(AS(oftruncate_args),ftruncate), AUE_FTRUNCATE, NULL, 0, 0, SYF_CAPENABLED }, /* 130 = old ftruncate */ + { AS(flock_args), (sy_call_t *)flock, AUE_FLOCK, NULL, 0, 0, SYF_CAPENABLED }, /* 131 = flock */ { AS(mkfifo_args), (sy_call_t *)mkfifo, AUE_MKFIFO, NULL, 0, 0, 0 }, /* 132 = mkfifo */ - { AS(sendto_args), (sy_call_t *)sendto, AUE_SENDTO, NULL, 0, 0, 0 }, /* 133 = sendto */ - { AS(shutdown_args), (sy_call_t *)shutdown, AUE_SHUTDOWN, NULL, 0, 0, 0 }, /* 134 = shutdown */ - { AS(socketpair_args), (sy_call_t *)socketpair, AUE_SOCKETPAIR, NULL, 0, 0, 0 }, /* 135 = socketpair */ + { AS(sendto_args), (sy_call_t *)sendto, AUE_SENDTO, NULL, 0, 0, SYF_CAPENABLED }, /* 133 = sendto */ + { AS(shutdown_args), (sy_call_t *)shutdown, AUE_SHUTDOWN, NULL, 0, 0, SYF_CAPENABLED }, /* 134 = shutdown */ + { AS(socketpair_args), (sy_call_t *)socketpair, AUE_SOCKETPAIR, NULL, 0, 0, SYF_CAPENABLED }, /* 135 = socketpair */ { AS(mkdir_args), (sy_call_t *)mkdir, AUE_MKDIR, NULL, 0, 0, 0 }, /* 136 = mkdir */ { AS(rmdir_args), (sy_call_t *)rmdir, AUE_RMDIR, NULL, 0, 0, 0 }, /* 137 = rmdir */ { AS(utimes_args), (sy_call_t *)utimes, AUE_UTIMES, NULL, 0, 0, 0 }, /* 138 = utimes */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 139 = obsolete 4.2 sigreturn */ { AS(adjtime_args), (sy_call_t *)adjtime, AUE_ADJTIME, NULL, 0, 0, 0 }, /* 140 = adjtime */ - { compat(AS(ogetpeername_args),getpeername), AUE_GETPEERNAME, NULL, 0, 0, 0 }, /* 141 = old getpeername */ - { compat(0,gethostid), AUE_SYSCTL, NULL, 0, 0, 0 }, /* 142 = old gethostid */ + { compat(AS(ogetpeername_args),getpeername), AUE_GETPEERNAME, NULL, 0, 0, SYF_CAPENABLED }, /* 141 = old getpeername */ + { compat(0,gethostid), AUE_SYSCTL, NULL, 0, 0, SYF_CAPENABLED }, /* 142 = old gethostid */ { compat(AS(osethostid_args),sethostid), AUE_SYSCTL, NULL, 0, 0, 0 }, /* 143 = old sethostid */ - { compat(AS(ogetrlimit_args),getrlimit), AUE_GETRLIMIT, NULL, 0, 0, 0 }, /* 144 = old getrlimit */ - { compat(AS(osetrlimit_args),setrlimit), AUE_SETRLIMIT, NULL, 0, 0, 0 }, /* 145 = old setrlimit */ + { compat(AS(ogetrlimit_args),getrlimit), AUE_GETRLIMIT, NULL, 0, 0, SYF_CAPENABLED }, /* 144 = old getrlimit */ + { compat(AS(osetrlimit_args),setrlimit), AUE_SETRLIMIT, NULL, 0, 0, SYF_CAPENABLED }, /* 145 = old setrlimit */ { compat(AS(okillpg_args),killpg), AUE_KILLPG, NULL, 0, 0, 0 }, /* 146 = old killpg */ - { 0, (sy_call_t *)setsid, AUE_SETSID, NULL, 0, 0, 0 }, /* 147 = setsid */ + { 0, (sy_call_t *)setsid, AUE_SETSID, NULL, 0, 0, SYF_CAPENABLED }, /* 147 = setsid */ { AS(quotactl_args), (sy_call_t *)quotactl, AUE_QUOTACTL, NULL, 0, 0, 0 }, /* 148 = quotactl */ { compat(0,quota), AUE_O_QUOTA, NULL, 0, 0, 0 }, /* 149 = old quota */ - { compat(AS(getsockname_args),getsockname), AUE_GETSOCKNAME, NULL, 0, 0, 0 }, /* 150 = old getsockname */ + { compat(AS(getsockname_args),getsockname), AUE_GETSOCKNAME, NULL, 0, 0, SYF_CAPENABLED }, /* 150 = old getsockname */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 151 = sem_lock */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 152 = sem_wakeup */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 153 = asyncdaemon */ { AS(nlm_syscall_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 154 = nlm_syscall */ { AS(nfssvc_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 155 = nfssvc */ - { compat(AS(ogetdirentries_args),getdirentries), AUE_GETDIRENTRIES, NULL, 0, 0, 0 }, /* 156 = old getdirentries */ + { compat(AS(ogetdirentries_args),getdirentries), AUE_GETDIRENTRIES, NULL, 0, 0, SYF_CAPENABLED }, /* 156 = old getdirentries */ { compat4(AS(freebsd4_statfs_args),statfs), AUE_STATFS, NULL, 0, 0, 0 }, /* 157 = freebsd4 statfs */ - { compat4(AS(freebsd4_fstatfs_args),fstatfs), AUE_FSTATFS, NULL, 0, 0, 0 }, /* 158 = freebsd4 fstatfs */ + { compat4(AS(freebsd4_fstatfs_args),fstatfs), AUE_FSTATFS, NULL, 0, 0, SYF_CAPENABLED }, /* 158 = freebsd4 fstatfs */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 159 = nosys */ { AS(lgetfh_args), (sy_call_t *)lgetfh, AUE_LGETFH, NULL, 0, 0, 0 }, /* 160 = lgetfh */ { AS(getfh_args), (sy_call_t *)getfh, AUE_NFS_GETFH, NULL, 0, 0, 0 }, /* 161 = getfh */ - { compat4(AS(freebsd4_getdomainname_args),getdomainname), AUE_SYSCTL, NULL, 0, 0, 0 }, /* 162 = freebsd4 getdomainname */ + { compat4(AS(freebsd4_getdomainname_args),getdomainname), AUE_SYSCTL, NULL, 0, 0, SYF_CAPENABLED }, /* 162 = freebsd4 getdomainname */ { compat4(AS(freebsd4_setdomainname_args),setdomainname), AUE_SYSCTL, NULL, 0, 0, 0 }, /* 163 = freebsd4 setdomainname */ { compat4(AS(freebsd4_uname_args),uname), AUE_NULL, NULL, 0, 0, 0 }, /* 164 = freebsd4 uname */ - { AS(sysarch_args), (sy_call_t *)sysarch, AUE_SYSARCH, NULL, 0, 0, 0 }, /* 165 = sysarch */ - { AS(rtprio_args), (sy_call_t *)rtprio, AUE_RTPRIO, NULL, 0, 0, 0 }, /* 166 = rtprio */ + { AS(sysarch_args), (sy_call_t *)sysarch, AUE_SYSARCH, NULL, 0, 0, SYF_CAPENABLED }, /* 165 = sysarch */ + { AS(rtprio_args), (sy_call_t *)rtprio, AUE_RTPRIO, NULL, 0, 0, SYF_CAPENABLED }, /* 166 = rtprio */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 167 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 168 = nosys */ { AS(semsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 169 = semsys */ { AS(msgsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 170 = msgsys */ { AS(shmsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 171 = shmsys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 172 = nosys */ - { AS(freebsd6_pread_args), (sy_call_t *)freebsd6_pread, AUE_PREAD, NULL, 0, 0, 0 }, /* 173 = freebsd6_pread */ - { AS(freebsd6_pwrite_args), (sy_call_t *)freebsd6_pwrite, AUE_PWRITE, NULL, 0, 0, 0 }, /* 174 = freebsd6_pwrite */ + { AS(freebsd6_pread_args), (sy_call_t *)freebsd6_pread, AUE_PREAD, NULL, 0, 0, SYF_CAPENABLED }, /* 173 = freebsd6_pread */ + { AS(freebsd6_pwrite_args), (sy_call_t *)freebsd6_pwrite, AUE_PWRITE, NULL, 0, 0, SYF_CAPENABLED }, /* 174 = freebsd6_pwrite */ { AS(setfib_args), (sy_call_t *)setfib, AUE_NULL, NULL, 0, 0, 0 }, /* 175 = setfib */ { AS(ntp_adjtime_args), (sy_call_t *)ntp_adjtime, AUE_NTP_ADJTIME, NULL, 0, 0, 0 }, /* 176 = ntp_adjtime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 177 = sfork */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 178 = getdescriptor */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 179 = setdescriptor */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 180 = nosys */ - { AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID, NULL, 0, 0, 0 }, /* 181 = setgid */ - { AS(setegid_args), (sy_call_t *)setegid, AUE_SETEGID, NULL, 0, 0, 0 }, /* 182 = setegid */ - { AS(seteuid_args), (sy_call_t *)seteuid, AUE_SETEUID, NULL, 0, 0, 0 }, /* 183 = seteuid */ + { AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID, NULL, 0, 0, SYF_CAPENABLED }, /* 181 = setgid */ + { AS(setegid_args), (sy_call_t *)setegid, AUE_SETEGID, NULL, 0, 0, SYF_CAPENABLED }, /* 182 = setegid */ + { AS(seteuid_args), (sy_call_t *)seteuid, AUE_SETEUID, NULL, 0, 0, SYF_CAPENABLED }, /* 183 = seteuid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 184 = lfs_bmapv */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 185 = lfs_markv */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 186 = lfs_segclean */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 187 = lfs_segwait */ { AS(stat_args), (sy_call_t *)stat, AUE_STAT, NULL, 0, 0, 0 }, /* 188 = stat */ - { AS(fstat_args), (sy_call_t *)fstat, AUE_FSTAT, NULL, 0, 0, 0 }, /* 189 = fstat */ + { AS(fstat_args), (sy_call_t *)fstat, AUE_FSTAT, NULL, 0, 0, SYF_CAPENABLED }, /* 189 = fstat */ { AS(lstat_args), (sy_call_t *)lstat, AUE_LSTAT, NULL, 0, 0, 0 }, /* 190 = lstat */ { AS(pathconf_args), (sy_call_t *)pathconf, AUE_PATHCONF, NULL, 0, 0, 0 }, /* 191 = pathconf */ - { AS(fpathconf_args), (sy_call_t *)fpathconf, AUE_FPATHCONF, NULL, 0, 0, 0 }, /* 192 = fpathconf */ + { AS(fpathconf_args), (sy_call_t *)fpathconf, AUE_FPATHCONF, NULL, 0, 0, SYF_CAPENABLED }, /* 192 = fpathconf */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 193 = nosys */ - { AS(__getrlimit_args), (sy_call_t *)getrlimit, AUE_GETRLIMIT, NULL, 0, 0, 0 }, /* 194 = getrlimit */ - { AS(__setrlimit_args), (sy_call_t *)setrlimit, AUE_SETRLIMIT, NULL, 0, 0, 0 }, /* 195 = setrlimit */ - { AS(getdirentries_args), (sy_call_t *)getdirentries, AUE_GETDIRENTRIES, NULL, 0, 0, 0 }, /* 196 = getdirentries */ - { AS(freebsd6_mmap_args), (sy_call_t *)freebsd6_mmap, AUE_MMAP, NULL, 0, 0, 0 }, /* 197 = freebsd6_mmap */ + { AS(__getrlimit_args), (sy_call_t *)getrlimit, AUE_GETRLIMIT, NULL, 0, 0, SYF_CAPENABLED }, /* 194 = getrlimit */ + { AS(__setrlimit_args), (sy_call_t *)setrlimit, AUE_SETRLIMIT, NULL, 0, 0, SYF_CAPENABLED }, /* 195 = setrlimit */ + { AS(getdirentries_args), (sy_call_t *)getdirentries, AUE_GETDIRENTRIES, NULL, 0, 0, SYF_CAPENABLED }, /* 196 = getdirentries */ + { AS(freebsd6_mmap_args), (sy_call_t *)freebsd6_mmap, AUE_MMAP, NULL, 0, 0, SYF_CAPENABLED }, /* 197 = freebsd6_mmap */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 198 = __syscall */ - { AS(freebsd6_lseek_args), (sy_call_t *)freebsd6_lseek, AUE_LSEEK, NULL, 0, 0, 0 }, /* 199 = freebsd6_lseek */ + { AS(freebsd6_lseek_args), (sy_call_t *)freebsd6_lseek, AUE_LSEEK, NULL, 0, 0, SYF_CAPENABLED }, /* 199 = freebsd6_lseek */ { AS(freebsd6_truncate_args), (sy_call_t *)freebsd6_truncate, AUE_TRUNCATE, NULL, 0, 0, 0 }, /* 200 = freebsd6_truncate */ - { AS(freebsd6_ftruncate_args), (sy_call_t *)freebsd6_ftruncate, AUE_FTRUNCATE, NULL, 0, 0, 0 }, /* 201 = freebsd6_ftruncate */ - { AS(sysctl_args), (sy_call_t *)__sysctl, AUE_SYSCTL, NULL, 0, 0, 0 }, /* 202 = __sysctl */ - { AS(mlock_args), (sy_call_t *)mlock, AUE_MLOCK, NULL, 0, 0, 0 }, /* 203 = mlock */ - { AS(munlock_args), (sy_call_t *)munlock, AUE_MUNLOCK, NULL, 0, 0, 0 }, /* 204 = munlock */ + { AS(freebsd6_ftruncate_args), (sy_call_t *)freebsd6_ftruncate, AUE_FTRUNCATE, NULL, 0, 0, SYF_CAPENABLED }, /* 201 = freebsd6_ftruncate */ + { AS(sysctl_args), (sy_call_t *)__sysctl, AUE_SYSCTL, NULL, 0, 0, SYF_CAPENABLED }, /* 202 = __sysctl */ + { AS(mlock_args), (sy_call_t *)mlock, AUE_MLOCK, NULL, 0, 0, SYF_CAPENABLED }, /* 203 = mlock */ + { AS(munlock_args), (sy_call_t *)munlock, AUE_MUNLOCK, NULL, 0, 0, SYF_CAPENABLED }, /* 204 = munlock */ { AS(undelete_args), (sy_call_t *)undelete, AUE_UNDELETE, NULL, 0, 0, 0 }, /* 205 = undelete */ - { AS(futimes_args), (sy_call_t *)futimes, AUE_FUTIMES, NULL, 0, 0, 0 }, /* 206 = futimes */ - { AS(getpgid_args), (sy_call_t *)getpgid, AUE_GETPGID, NULL, 0, 0, 0 }, /* 207 = getpgid */ + { AS(futimes_args), (sy_call_t *)futimes, AUE_FUTIMES, NULL, 0, 0, SYF_CAPENABLED }, /* 206 = futimes */ + { AS(getpgid_args), (sy_call_t *)getpgid, AUE_GETPGID, NULL, 0, 0, SYF_CAPENABLED }, /* 207 = getpgid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 208 = newreboot */ - { AS(poll_args), (sy_call_t *)poll, AUE_POLL, NULL, 0, 0, 0 }, /* 209 = poll */ + { AS(poll_args), (sy_call_t *)poll, AUE_POLL, NULL, 0, 0, SYF_CAPENABLED }, /* 209 = poll */ { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0, 0 }, /* 210 = lkmnosys */ { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0, 0 }, /* 211 = lkmnosys */ { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0, 0 }, /* 212 = lkmnosys */ @@ -266,15 +266,15 @@ { 0, (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 229 = freebsd7 shmctl */ { AS(shmdt_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 230 = shmdt */ { AS(shmget_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 231 = shmget */ - { AS(clock_gettime_args), (sy_call_t *)clock_gettime, AUE_NULL, NULL, 0, 0, 0 }, /* 232 = clock_gettime */ + { AS(clock_gettime_args), (sy_call_t *)clock_gettime, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 232 = clock_gettime */ { AS(clock_settime_args), (sy_call_t *)clock_settime, AUE_CLOCK_SETTIME, NULL, 0, 0, 0 }, /* 233 = clock_settime */ - { AS(clock_getres_args), (sy_call_t *)clock_getres, AUE_NULL, NULL, 0, 0, 0 }, /* 234 = clock_getres */ - { AS(ktimer_create_args), (sy_call_t *)ktimer_create, AUE_NULL, NULL, 0, 0, 0 }, /* 235 = ktimer_create */ - { AS(ktimer_delete_args), (sy_call_t *)ktimer_delete, AUE_NULL, NULL, 0, 0, 0 }, /* 236 = ktimer_delete */ - { AS(ktimer_settime_args), (sy_call_t *)ktimer_settime, AUE_NULL, NULL, 0, 0, 0 }, /* 237 = ktimer_settime */ - { AS(ktimer_gettime_args), (sy_call_t *)ktimer_gettime, AUE_NULL, NULL, 0, 0, 0 }, /* 238 = ktimer_gettime */ - { AS(ktimer_getoverrun_args), (sy_call_t *)ktimer_getoverrun, AUE_NULL, NULL, 0, 0, 0 }, /* 239 = ktimer_getoverrun */ - { AS(nanosleep_args), (sy_call_t *)nanosleep, AUE_NULL, NULL, 0, 0, 0 }, /* 240 = nanosleep */ + { AS(clock_getres_args), (sy_call_t *)clock_getres, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 234 = clock_getres */ + { AS(ktimer_create_args), (sy_call_t *)ktimer_create, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 235 = ktimer_create */ + { AS(ktimer_delete_args), (sy_call_t *)ktimer_delete, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 236 = ktimer_delete */ + { AS(ktimer_settime_args), (sy_call_t *)ktimer_settime, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 237 = ktimer_settime */ + { AS(ktimer_gettime_args), (sy_call_t *)ktimer_gettime, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 238 = ktimer_gettime */ + { AS(ktimer_getoverrun_args), (sy_call_t *)ktimer_getoverrun, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 239 = ktimer_getoverrun */ + { AS(nanosleep_args), (sy_call_t *)nanosleep, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 240 = nanosleep */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 241 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 242 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 243 = nosys */ @@ -282,12 +282,12 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 245 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 246 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 247 = nosys */ - { AS(ntp_gettime_args), (sy_call_t *)ntp_gettime, AUE_NULL, NULL, 0, 0, 0 }, /* 248 = ntp_gettime */ + { AS(ntp_gettime_args), (sy_call_t *)ntp_gettime, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 248 = ntp_gettime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 249 = nosys */ - { AS(minherit_args), (sy_call_t *)minherit, AUE_MINHERIT, NULL, 0, 0, 0 }, /* 250 = minherit */ + { AS(minherit_args), (sy_call_t *)minherit, AUE_MINHERIT, NULL, 0, 0, SYF_CAPENABLED }, /* 250 = minherit */ { AS(rfork_args), (sy_call_t *)rfork, AUE_RFORK, NULL, 0, 0, 0 }, /* 251 = rfork */ - { AS(openbsd_poll_args), (sy_call_t *)openbsd_poll, AUE_POLL, NULL, 0, 0, 0 }, /* 252 = openbsd_poll */ - { 0, (sy_call_t *)issetugid, AUE_ISSETUGID, NULL, 0, 0, 0 }, /* 253 = issetugid */ + { AS(openbsd_poll_args), (sy_call_t *)openbsd_poll, AUE_POLL, NULL, 0, 0, SYF_CAPENABLED }, /* 252 = openbsd_poll */ + { 0, (sy_call_t *)issetugid, AUE_ISSETUGID, NULL, 0, 0, SYF_CAPENABLED }, /* 253 = issetugid */ { AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN, NULL, 0, 0, 0 }, /* 254 = lchown */ { AS(aio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 255 = aio_read */ { AS(aio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 256 = aio_write */ @@ -306,12 +306,12 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 269 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 270 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 271 = nosys */ - { AS(getdents_args), (sy_call_t *)getdents, AUE_O_GETDENTS, NULL, 0, 0, 0 }, /* 272 = getdents */ + { AS(getdents_args), (sy_call_t *)getdents, AUE_O_GETDENTS, NULL, 0, 0, SYF_CAPENABLED }, /* 272 = getdents */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 273 = nosys */ { AS(lchmod_args), (sy_call_t *)lchmod, AUE_LCHMOD, NULL, 0, 0, 0 }, /* 274 = lchmod */ { AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN, NULL, 0, 0, 0 }, /* 275 = netbsd_lchown */ { AS(lutimes_args), (sy_call_t *)lutimes, AUE_LUTIMES, NULL, 0, 0, 0 }, /* 276 = lutimes */ - { AS(msync_args), (sy_call_t *)msync, AUE_MSYNC, NULL, 0, 0, 0 }, /* 277 = netbsd_msync */ + { AS(msync_args), (sy_call_t *)msync, AUE_MSYNC, NULL, 0, 0, SYF_CAPENABLED }, /* 277 = netbsd_msync */ { AS(nstat_args), (sy_call_t *)nstat, AUE_STAT, NULL, 0, 0, 0 }, /* 278 = nstat */ { AS(nfstat_args), (sy_call_t *)nfstat, AUE_FSTAT, NULL, 0, 0, 0 }, /* 279 = nfstat */ { AS(nlstat_args), (sy_call_t *)nlstat, AUE_LSTAT, NULL, 0, 0, 0 }, /* 280 = nlstat */ @@ -323,8 +323,8 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 286 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 287 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 288 = nosys */ - { AS(preadv_args), (sy_call_t *)preadv, AUE_PREADV, NULL, 0, 0, 0 }, /* 289 = preadv */ - { AS(pwritev_args), (sy_call_t *)pwritev, AUE_PWRITEV, NULL, 0, 0, 0 }, /* 290 = pwritev */ + { AS(preadv_args), (sy_call_t *)preadv, AUE_PREADV, NULL, 0, 0, SYF_CAPENABLED }, /* 289 = preadv */ + { AS(pwritev_args), (sy_call_t *)pwritev, AUE_PWRITEV, NULL, 0, 0, SYF_CAPENABLED }, /* 290 = pwritev */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 291 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 292 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 293 = nosys */ @@ -344,9 +344,9 @@ { AS(kldnext_args), (sy_call_t *)kldnext, AUE_NULL, NULL, 0, 0, 0 }, /* 307 = kldnext */ { AS(kldstat_args), (sy_call_t *)kldstat, AUE_NULL, NULL, 0, 0, 0 }, /* 308 = kldstat */ { AS(kldfirstmod_args), (sy_call_t *)kldfirstmod, AUE_NULL, NULL, 0, 0, 0 }, /* 309 = kldfirstmod */ - { AS(getsid_args), (sy_call_t *)getsid, AUE_GETSID, NULL, 0, 0, 0 }, /* 310 = getsid */ - { AS(setresuid_args), (sy_call_t *)setresuid, AUE_SETRESUID, NULL, 0, 0, 0 }, /* 311 = setresuid */ - { AS(setresgid_args), (sy_call_t *)setresgid, AUE_SETRESGID, NULL, 0, 0, 0 }, /* 312 = setresgid */ + { AS(getsid_args), (sy_call_t *)getsid, AUE_GETSID, NULL, 0, 0, SYF_CAPENABLED }, /* 310 = getsid */ + { AS(setresuid_args), (sy_call_t *)setresuid, AUE_SETRESUID, NULL, 0, 0, SYF_CAPENABLED }, /* 311 = setresuid */ + { AS(setresgid_args), (sy_call_t *)setresgid, AUE_SETRESGID, NULL, 0, 0, SYF_CAPENABLED }, /* 312 = setresgid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 313 = obsolete signanosleep */ { AS(aio_return_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 314 = aio_return */ { AS(aio_suspend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 315 = aio_suspend */ @@ -355,49 +355,49 @@ { AS(oaio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 318 = oaio_read */ { AS(oaio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 319 = oaio_write */ { AS(olio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 320 = olio_listio */ - { 0, (sy_call_t *)yield, AUE_NULL, NULL, 0, 0, 0 }, /* 321 = yield */ + { 0, (sy_call_t *)yield, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 321 = yield */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 322 = obsolete thr_sleep */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 323 = obsolete thr_wakeup */ - { AS(mlockall_args), (sy_call_t *)mlockall, AUE_MLOCKALL, NULL, 0, 0, 0 }, /* 324 = mlockall */ - { 0, (sy_call_t *)munlockall, AUE_MUNLOCKALL, NULL, 0, 0, 0 }, /* 325 = munlockall */ + { AS(mlockall_args), (sy_call_t *)mlockall, AUE_MLOCKALL, NULL, 0, 0, SYF_CAPENABLED }, /* 324 = mlockall */ + { 0, (sy_call_t *)munlockall, AUE_MUNLOCKALL, NULL, 0, 0, SYF_CAPENABLED }, /* 325 = munlockall */ { AS(__getcwd_args), (sy_call_t *)__getcwd, AUE_GETCWD, NULL, 0, 0, 0 }, /* 326 = __getcwd */ - { AS(sched_setparam_args), (sy_call_t *)sched_setparam, AUE_NULL, NULL, 0, 0, 0 }, /* 327 = sched_setparam */ - { AS(sched_getparam_args), (sy_call_t *)sched_getparam, AUE_NULL, NULL, 0, 0, 0 }, /* 328 = sched_getparam */ - { AS(sched_setscheduler_args), (sy_call_t *)sched_setscheduler, AUE_NULL, NULL, 0, 0, 0 }, /* 329 = sched_setscheduler */ - { AS(sched_getscheduler_args), (sy_call_t *)sched_getscheduler, AUE_NULL, NULL, 0, 0, 0 }, /* 330 = sched_getscheduler */ - { 0, (sy_call_t *)sched_yield, AUE_NULL, NULL, 0, 0, 0 }, /* 331 = sched_yield */ - { AS(sched_get_priority_max_args), (sy_call_t *)sched_get_priority_max, AUE_NULL, NULL, 0, 0, 0 }, /* 332 = sched_get_priority_max */ - { AS(sched_get_priority_min_args), (sy_call_t *)sched_get_priority_min, AUE_NULL, NULL, 0, 0, 0 }, /* 333 = sched_get_priority_min */ + { AS(sched_setparam_args), (sy_call_t *)sched_setparam, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 327 = sched_setparam */ + { AS(sched_getparam_args), (sy_call_t *)sched_getparam, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 328 = sched_getparam */ + { AS(sched_setscheduler_args), (sy_call_t *)sched_setscheduler, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 329 = sched_setscheduler */ + { AS(sched_getscheduler_args), (sy_call_t *)sched_getscheduler, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 330 = sched_getscheduler */ + { 0, (sy_call_t *)sched_yield, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 331 = sched_yield */ + { AS(sched_get_priority_max_args), (sy_call_t *)sched_get_priority_max, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 332 = sched_get_priority_max */ + { AS(sched_get_priority_min_args), (sy_call_t *)sched_get_priority_min, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 333 = sched_get_priority_min */ { AS(sched_rr_get_interval_args), (sy_call_t *)sched_rr_get_interval, AUE_NULL, NULL, 0, 0, 0 }, /* 334 = sched_rr_get_interval */ - { AS(utrace_args), (sy_call_t *)utrace, AUE_NULL, NULL, 0, 0, 0 }, /* 335 = utrace */ - { compat4(AS(freebsd4_sendfile_args),sendfile), AUE_SENDFILE, NULL, 0, 0, 0 }, /* 336 = freebsd4 sendfile */ + { AS(utrace_args), (sy_call_t *)utrace, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 335 = utrace */ + { compat4(AS(freebsd4_sendfile_args),sendfile), AUE_SENDFILE, NULL, 0, 0, SYF_CAPENABLED }, /* 336 = freebsd4 sendfile */ { AS(kldsym_args), (sy_call_t *)kldsym, AUE_NULL, NULL, 0, 0, 0 }, /* 337 = kldsym */ { AS(jail_args), (sy_call_t *)jail, AUE_JAIL, NULL, 0, 0, 0 }, /* 338 = jail */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 339 = pioctl */ - { AS(sigprocmask_args), (sy_call_t *)sigprocmask, AUE_SIGPROCMASK, NULL, 0, 0, 0 }, /* 340 = sigprocmask */ - { AS(sigsuspend_args), (sy_call_t *)sigsuspend, AUE_SIGSUSPEND, NULL, 0, 0, 0 }, /* 341 = sigsuspend */ - { compat4(AS(freebsd4_sigaction_args),sigaction), AUE_SIGACTION, NULL, 0, 0, 0 }, /* 342 = freebsd4 sigaction */ - { AS(sigpending_args), (sy_call_t *)sigpending, AUE_SIGPENDING, NULL, 0, 0, 0 }, /* 343 = sigpending */ - { compat4(AS(freebsd4_sigreturn_args),sigreturn), AUE_SIGRETURN, NULL, 0, 0, 0 }, /* 344 = freebsd4 sigreturn */ - { AS(sigtimedwait_args), (sy_call_t *)sigtimedwait, AUE_SIGWAIT, NULL, 0, 0, 0 }, /* 345 = sigtimedwait */ - { AS(sigwaitinfo_args), (sy_call_t *)sigwaitinfo, AUE_NULL, NULL, 0, 0, 0 }, /* 346 = sigwaitinfo */ + { AS(sigprocmask_args), (sy_call_t *)sigprocmask, AUE_SIGPROCMASK, NULL, 0, 0, SYF_CAPENABLED }, /* 340 = sigprocmask */ + { AS(sigsuspend_args), (sy_call_t *)sigsuspend, AUE_SIGSUSPEND, NULL, 0, 0, SYF_CAPENABLED }, /* 341 = sigsuspend */ + { compat4(AS(freebsd4_sigaction_args),sigaction), AUE_SIGACTION, NULL, 0, 0, SYF_CAPENABLED }, /* 342 = freebsd4 sigaction */ + { AS(sigpending_args), (sy_call_t *)sigpending, AUE_SIGPENDING, NULL, 0, 0, SYF_CAPENABLED }, /* 343 = sigpending */ + { compat4(AS(freebsd4_sigreturn_args),sigreturn), AUE_SIGRETURN, NULL, 0, 0, SYF_CAPENABLED }, /* 344 = freebsd4 sigreturn */ + { AS(sigtimedwait_args), (sy_call_t *)sigtimedwait, AUE_SIGWAIT, NULL, 0, 0, SYF_CAPENABLED }, /* 345 = sigtimedwait */ + { AS(sigwaitinfo_args), (sy_call_t *)sigwaitinfo, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 346 = sigwaitinfo */ { AS(__acl_get_file_args), (sy_call_t *)__acl_get_file, AUE_NULL, NULL, 0, 0, 0 }, /* 347 = __acl_get_file */ { AS(__acl_set_file_args), (sy_call_t *)__acl_set_file, AUE_NULL, NULL, 0, 0, 0 }, /* 348 = __acl_set_file */ - { AS(__acl_get_fd_args), (sy_call_t *)__acl_get_fd, AUE_NULL, NULL, 0, 0, 0 }, /* 349 = __acl_get_fd */ - { AS(__acl_set_fd_args), (sy_call_t *)__acl_set_fd, AUE_NULL, NULL, 0, 0, 0 }, /* 350 = __acl_set_fd */ + { AS(__acl_get_fd_args), (sy_call_t *)__acl_get_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 349 = __acl_get_fd */ + { AS(__acl_set_fd_args), (sy_call_t *)__acl_set_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 350 = __acl_set_fd */ { AS(__acl_delete_file_args), (sy_call_t *)__acl_delete_file, AUE_NULL, NULL, 0, 0, 0 }, /* 351 = __acl_delete_file */ - { AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd, AUE_NULL, NULL, 0, 0, 0 }, /* 352 = __acl_delete_fd */ + { AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 352 = __acl_delete_fd */ { AS(__acl_aclcheck_file_args), (sy_call_t *)__acl_aclcheck_file, AUE_NULL, NULL, 0, 0, 0 }, /* 353 = __acl_aclcheck_file */ - { AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd, AUE_NULL, NULL, 0, 0, 0 }, /* 354 = __acl_aclcheck_fd */ + { AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 354 = __acl_aclcheck_fd */ { AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_EXTATTRCTL, NULL, 0, 0, 0 }, /* 355 = extattrctl */ { AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_EXTATTR_SET_FILE, NULL, 0, 0, 0 }, /* 356 = extattr_set_file */ { AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_EXTATTR_GET_FILE, NULL, 0, 0, 0 }, /* 357 = extattr_get_file */ { AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_EXTATTR_DELETE_FILE, NULL, 0, 0, 0 }, /* 358 = extattr_delete_file */ { AS(aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 359 = aio_waitcomplete */ - { AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID, NULL, 0, 0, 0 }, /* 360 = getresuid */ - { AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID, NULL, 0, 0, 0 }, /* 361 = getresgid */ - { 0, (sy_call_t *)kqueue, AUE_KQUEUE, NULL, 0, 0, 0 }, /* 362 = kqueue */ - { AS(kevent_args), (sy_call_t *)kevent, AUE_NULL, NULL, 0, 0, 0 }, /* 363 = kevent */ + { AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID, NULL, 0, 0, SYF_CAPENABLED }, /* 360 = getresuid */ + { AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID, NULL, 0, 0, SYF_CAPENABLED }, /* 361 = getresgid */ + { 0, (sy_call_t *)kqueue, AUE_KQUEUE, NULL, 0, 0, SYF_CAPENABLED }, /* 362 = kqueue */ + { AS(kevent_args), (sy_call_t *)kevent, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 363 = kevent */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 364 = __cap_get_proc */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 365 = __cap_set_proc */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 366 = __cap_get_fd */ @@ -405,9 +405,9 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 368 = __cap_set_fd */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 369 = __cap_set_file */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 370 = nosys */ - { AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_EXTATTR_SET_FD, NULL, 0, 0, 0 }, /* 371 = extattr_set_fd */ - { AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_EXTATTR_GET_FD, NULL, 0, 0, 0 }, /* 372 = extattr_get_fd */ - { AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_EXTATTR_DELETE_FD, NULL, 0, 0, 0 }, /* 373 = extattr_delete_fd */ + { AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_EXTATTR_SET_FD, NULL, 0, 0, SYF_CAPENABLED }, /* 371 = extattr_set_fd */ + { AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_EXTATTR_GET_FD, NULL, 0, 0, SYF_CAPENABLED }, /* 372 = extattr_get_fd */ + { AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_EXTATTR_DELETE_FD, NULL, 0, 0, SYF_CAPENABLED }, /* 373 = extattr_delete_fd */ { AS(__setugid_args), (sy_call_t *)__setugid, AUE_NULL, NULL, 0, 0, 0 }, /* 374 = __setugid */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 375 = nfsclnt */ { AS(eaccess_args), (sy_call_t *)eaccess, AUE_EACCESS, NULL, 0, 0, 0 }, /* 376 = eaccess */ @@ -418,20 +418,20 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 381 = kse_create */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 382 = kse_thr_interrupt */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 383 = kse_release */ - { AS(__mac_get_proc_args), (sy_call_t *)__mac_get_proc, AUE_NULL, NULL, 0, 0, 0 }, /* 384 = __mac_get_proc */ - { AS(__mac_set_proc_args), (sy_call_t *)__mac_set_proc, AUE_NULL, NULL, 0, 0, 0 }, /* 385 = __mac_set_proc */ - { AS(__mac_get_fd_args), (sy_call_t *)__mac_get_fd, AUE_NULL, NULL, 0, 0, 0 }, /* 386 = __mac_get_fd */ + { AS(__mac_get_proc_args), (sy_call_t *)__mac_get_proc, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 384 = __mac_get_proc */ + { AS(__mac_set_proc_args), (sy_call_t *)__mac_set_proc, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 385 = __mac_set_proc */ + { AS(__mac_get_fd_args), (sy_call_t *)__mac_get_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 386 = __mac_get_fd */ { AS(__mac_get_file_args), (sy_call_t *)__mac_get_file, AUE_NULL, NULL, 0, 0, 0 }, /* 387 = __mac_get_file */ - { AS(__mac_set_fd_args), (sy_call_t *)__mac_set_fd, AUE_NULL, NULL, 0, 0, 0 }, /* 388 = __mac_set_fd */ + { AS(__mac_set_fd_args), (sy_call_t *)__mac_set_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 388 = __mac_set_fd */ { AS(__mac_set_file_args), (sy_call_t *)__mac_set_file, AUE_NULL, NULL, 0, 0, 0 }, /* 389 = __mac_set_file */ { AS(kenv_args), (sy_call_t *)kenv, AUE_NULL, NULL, 0, 0, 0 }, /* 390 = kenv */ { AS(lchflags_args), (sy_call_t *)lchflags, AUE_LCHFLAGS, NULL, 0, 0, 0 }, /* 391 = lchflags */ - { AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL, NULL, 0, 0, 0 }, /* 392 = uuidgen */ - { AS(sendfile_args), (sy_call_t *)sendfile, AUE_SENDFILE, NULL, 0, 0, 0 }, /* 393 = sendfile */ + { AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 392 = uuidgen */ + { AS(sendfile_args), (sy_call_t *)sendfile, AUE_SENDFILE, NULL, 0, 0, SYF_CAPENABLED }, /* 393 = sendfile */ { AS(mac_syscall_args), (sy_call_t *)mac_syscall, AUE_NULL, NULL, 0, 0, 0 }, /* 394 = mac_syscall */ { AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0 }, /* 395 = getfsstat */ { AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS, NULL, 0, 0, 0 }, /* 396 = statfs */ - { AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS, NULL, 0, 0, 0 }, /* 397 = fstatfs */ + { AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS, NULL, 0, 0, SYF_CAPENABLED }, /* 397 = fstatfs */ { AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0 }, /* 398 = fhstatfs */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 399 = nosys */ { AS(ksem_close_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 400 = ksem_close */ @@ -450,13 +450,13 @@ { AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK, NULL, 0, 0, 0 }, /* 413 = extattr_get_link */ { AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK, NULL, 0, 0, 0 }, /* 414 = extattr_delete_link */ { AS(__mac_execve_args), (sy_call_t *)__mac_execve, AUE_NULL, NULL, 0, 0, 0 }, /* 415 = __mac_execve */ - { AS(sigaction_args), (sy_call_t *)sigaction, AUE_SIGACTION, NULL, 0, 0, 0 }, /* 416 = sigaction */ - { AS(sigreturn_args), (sy_call_t *)sigreturn, AUE_SIGRETURN, NULL, 0, 0, 0 }, /* 417 = sigreturn */ + { AS(sigaction_args), (sy_call_t *)sigaction, AUE_SIGACTION, NULL, 0, 0, SYF_CAPENABLED }, /* 416 = sigaction */ + { AS(sigreturn_args), (sy_call_t *)sigreturn, AUE_SIGRETURN, NULL, 0, 0, SYF_CAPENABLED }, /* 417 = sigreturn */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 418 = __xstat */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 419 = __xfstat */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 420 = __xlstat */ - { AS(getcontext_args), (sy_call_t *)getcontext, AUE_NULL, NULL, 0, 0, 0 }, /* 421 = getcontext */ - { AS(setcontext_args), (sy_call_t *)setcontext, AUE_NULL, NULL, 0, 0, 0 }, /* 422 = setcontext */ + { AS(getcontext_args), (sy_call_t *)getcontext, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 421 = getcontext */ + { AS(setcontext_args), (sy_call_t *)setcontext, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 422 = setcontext */ { AS(swapcontext_args), (sy_call_t *)swapcontext, AUE_NULL, NULL, 0, 0, 0 }, /* 423 = swapcontext */ { AS(swapoff_args), (sy_call_t *)swapoff, AUE_SWAPOFF, NULL, 0, 0, 0 }, /* 424 = swapoff */ { AS(__acl_get_link_args), (sy_call_t *)__acl_get_link, AUE_NULL, NULL, 0, 0, 0 }, /* 425 = __acl_get_link */ @@ -464,59 +464,59 @@ { AS(__acl_delete_link_args), (sy_call_t *)__acl_delete_link, AUE_NULL, NULL, 0, 0, 0 }, /* 427 = __acl_delete_link */ { AS(__acl_aclcheck_link_args), (sy_call_t *)__acl_aclcheck_link, AUE_NULL, NULL, 0, 0, 0 }, /* 428 = __acl_aclcheck_link */ { AS(sigwait_args), (sy_call_t *)sigwait, AUE_SIGWAIT, NULL, 0, 0, 0 }, /* 429 = sigwait */ - { AS(thr_create_args), (sy_call_t *)thr_create, AUE_NULL, NULL, 0, 0, 0 }, /* 430 = thr_create */ - { AS(thr_exit_args), (sy_call_t *)thr_exit, AUE_NULL, NULL, 0, 0, 0 }, /* 431 = thr_exit */ - { AS(thr_self_args), (sy_call_t *)thr_self, AUE_NULL, NULL, 0, 0, 0 }, /* 432 = thr_self */ - { AS(thr_kill_args), (sy_call_t *)thr_kill, AUE_NULL, NULL, 0, 0, 0 }, /* 433 = thr_kill */ - { AS(_umtx_lock_args), (sy_call_t *)_umtx_lock, AUE_NULL, NULL, 0, 0, 0 }, /* 434 = _umtx_lock */ - { AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock, AUE_NULL, NULL, 0, 0, 0 }, /* 435 = _umtx_unlock */ + { AS(thr_create_args), (sy_call_t *)thr_create, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 430 = thr_create */ + { AS(thr_exit_args), (sy_call_t *)thr_exit, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 431 = thr_exit */ + { AS(thr_self_args), (sy_call_t *)thr_self, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 432 = thr_self */ + { AS(thr_kill_args), (sy_call_t *)thr_kill, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 433 = thr_kill */ + { AS(_umtx_lock_args), (sy_call_t *)_umtx_lock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 434 = _umtx_lock */ + { AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 435 = _umtx_unlock */ { AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL, NULL, 0, 0, 0 }, /* 436 = jail_attach */ - { AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, 0 }, /* 437 = extattr_list_fd */ + { AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, SYF_CAPENABLED }, /* 437 = extattr_list_fd */ { AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0, 0 }, /* 438 = extattr_list_file */ { AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0, 0 }, /* 439 = extattr_list_link */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 440 = kse_switchin */ { AS(ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 441 = ksem_timedwait */ - { AS(thr_suspend_args), (sy_call_t *)thr_suspend, AUE_NULL, NULL, 0, 0, 0 }, /* 442 = thr_suspend */ - { AS(thr_wake_args), (sy_call_t *)thr_wake, AUE_NULL, NULL, 0, 0, 0 }, /* 443 = thr_wake */ + { AS(thr_suspend_args), (sy_call_t *)thr_suspend, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 442 = thr_suspend */ + { AS(thr_wake_args), (sy_call_t *)thr_wake, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 443 = thr_wake */ { AS(kldunloadf_args), (sy_call_t *)kldunloadf, AUE_MODUNLOAD, NULL, 0, 0, 0 }, /* 444 = kldunloadf */ { AS(audit_args), (sy_call_t *)audit, AUE_AUDIT, NULL, 0, 0, 0 }, /* 445 = audit */ { AS(auditon_args), (sy_call_t *)auditon, AUE_AUDITON, NULL, 0, 0, 0 }, /* 446 = auditon */ - { AS(getauid_args), (sy_call_t *)getauid, AUE_GETAUID, NULL, 0, 0, 0 }, /* 447 = getauid */ - { AS(setauid_args), (sy_call_t *)setauid, AUE_SETAUID, NULL, 0, 0, 0 }, /* 448 = setauid */ - { AS(getaudit_args), (sy_call_t *)getaudit, AUE_GETAUDIT, NULL, 0, 0, 0 }, /* 449 = getaudit */ - { AS(setaudit_args), (sy_call_t *)setaudit, AUE_SETAUDIT, NULL, 0, 0, 0 }, /* 450 = setaudit */ - { AS(getaudit_addr_args), (sy_call_t *)getaudit_addr, AUE_GETAUDIT_ADDR, NULL, 0, 0, 0 }, /* 451 = getaudit_addr */ - { AS(setaudit_addr_args), (sy_call_t *)setaudit_addr, AUE_SETAUDIT_ADDR, NULL, 0, 0, 0 }, /* 452 = setaudit_addr */ + { AS(getauid_args), (sy_call_t *)getauid, AUE_GETAUID, NULL, 0, 0, SYF_CAPENABLED }, /* 447 = getauid */ + { AS(setauid_args), (sy_call_t *)setauid, AUE_SETAUID, NULL, 0, 0, SYF_CAPENABLED }, /* 448 = setauid */ + { AS(getaudit_args), (sy_call_t *)getaudit, AUE_GETAUDIT, NULL, 0, 0, SYF_CAPENABLED }, /* 449 = getaudit */ + { AS(setaudit_args), (sy_call_t *)setaudit, AUE_SETAUDIT, NULL, 0, 0, SYF_CAPENABLED }, /* 450 = setaudit */ + { AS(getaudit_addr_args), (sy_call_t *)getaudit_addr, AUE_GETAUDIT_ADDR, NULL, 0, 0, SYF_CAPENABLED }, /* 451 = getaudit_addr */ + { AS(setaudit_addr_args), (sy_call_t *)setaudit_addr, AUE_SETAUDIT_ADDR, NULL, 0, 0, SYF_CAPENABLED }, /* 452 = setaudit_addr */ { AS(auditctl_args), (sy_call_t *)auditctl, AUE_AUDITCTL, NULL, 0, 0, 0 }, /* 453 = auditctl */ - { AS(_umtx_op_args), (sy_call_t *)_umtx_op, AUE_NULL, NULL, 0, 0, 0 }, /* 454 = _umtx_op */ - { AS(thr_new_args), (sy_call_t *)thr_new, AUE_NULL, NULL, 0, 0, 0 }, /* 455 = thr_new */ - { AS(sigqueue_args), (sy_call_t *)sigqueue, AUE_NULL, NULL, 0, 0, 0 }, /* 456 = sigqueue */ + { AS(_umtx_op_args), (sy_call_t *)_umtx_op, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 454 = _umtx_op */ + { AS(thr_new_args), (sy_call_t *)thr_new, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 455 = thr_new */ + { AS(sigqueue_args), (sy_call_t *)sigqueue, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 456 = sigqueue */ { AS(kmq_open_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 457 = kmq_open */ { AS(kmq_setattr_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 458 = kmq_setattr */ { AS(kmq_timedreceive_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 459 = kmq_timedreceive */ { AS(kmq_timedsend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 460 = kmq_timedsend */ { AS(kmq_notify_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 461 = kmq_notify */ { AS(kmq_unlink_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 462 = kmq_unlink */ - { AS(abort2_args), (sy_call_t *)abort2, AUE_NULL, NULL, 0, 0, 0 }, /* 463 = abort2 */ - { AS(thr_set_name_args), (sy_call_t *)thr_set_name, AUE_NULL, NULL, 0, 0, 0 }, /* 464 = thr_set_name */ + { AS(abort2_args), (sy_call_t *)abort2, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 463 = abort2 */ + { AS(thr_set_name_args), (sy_call_t *)thr_set_name, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 464 = thr_set_name */ { AS(aio_fsync_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 465 = aio_fsync */ - { AS(rtprio_thread_args), (sy_call_t *)rtprio_thread, AUE_RTPRIO, NULL, 0, 0, 0 }, /* 466 = rtprio_thread */ + { AS(rtprio_thread_args), (sy_call_t *)rtprio_thread, AUE_RTPRIO, NULL, 0, 0, SYF_CAPENABLED }, /* 466 = rtprio_thread */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 467 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 468 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 469 = __getpath_fromfd */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 470 = __getpath_fromaddr */ - { AS(sctp_peeloff_args), (sy_call_t *)sctp_peeloff, AUE_NULL, NULL, 0, 0, 0 }, /* 471 = sctp_peeloff */ - { AS(sctp_generic_sendmsg_args), (sy_call_t *)sctp_generic_sendmsg, AUE_NULL, NULL, 0, 0, 0 }, /* 472 = sctp_generic_sendmsg */ - { AS(sctp_generic_sendmsg_iov_args), (sy_call_t *)sctp_generic_sendmsg_iov, AUE_NULL, NULL, 0, 0, 0 }, /* 473 = sctp_generic_sendmsg_iov */ - { AS(sctp_generic_recvmsg_args), (sy_call_t *)sctp_generic_recvmsg, AUE_NULL, NULL, 0, 0, 0 }, /* 474 = sctp_generic_recvmsg */ - { AS(pread_args), (sy_call_t *)pread, AUE_PREAD, NULL, 0, 0, 0 }, /* 475 = pread */ - { AS(pwrite_args), (sy_call_t *)pwrite, AUE_PWRITE, NULL, 0, 0, 0 }, /* 476 = pwrite */ - { AS(mmap_args), (sy_call_t *)mmap, AUE_MMAP, NULL, 0, 0, 0 }, /* 477 = mmap */ - { AS(lseek_args), (sy_call_t *)lseek, AUE_LSEEK, NULL, 0, 0, 0 }, /* 478 = lseek */ + { AS(sctp_peeloff_args), (sy_call_t *)sctp_peeloff, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 471 = sctp_peeloff */ + { AS(sctp_generic_sendmsg_args), (sy_call_t *)sctp_generic_sendmsg, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 472 = sctp_generic_sendmsg */ + { AS(sctp_generic_sendmsg_iov_args), (sy_call_t *)sctp_generic_sendmsg_iov, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 473 = sctp_generic_sendmsg_iov */ + { AS(sctp_generic_recvmsg_args), (sy_call_t *)sctp_generic_recvmsg, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 474 = sctp_generic_recvmsg */ + { AS(pread_args), (sy_call_t *)pread, AUE_PREAD, NULL, 0, 0, SYF_CAPENABLED }, /* 475 = pread */ + { AS(pwrite_args), (sy_call_t *)pwrite, AUE_PWRITE, NULL, 0, 0, SYF_CAPENABLED }, /* 476 = pwrite */ + { AS(mmap_args), (sy_call_t *)mmap, AUE_MMAP, NULL, 0, 0, SYF_CAPENABLED }, /* 477 = mmap */ + { AS(lseek_args), (sy_call_t *)lseek, AUE_LSEEK, NULL, 0, 0, SYF_CAPENABLED }, /* 478 = lseek */ { AS(truncate_args), (sy_call_t *)truncate, AUE_TRUNCATE, NULL, 0, 0, 0 }, /* 479 = truncate */ - { AS(ftruncate_args), (sy_call_t *)ftruncate, AUE_FTRUNCATE, NULL, 0, 0, 0 }, /* 480 = ftruncate */ + { AS(ftruncate_args), (sy_call_t *)ftruncate, AUE_FTRUNCATE, NULL, 0, 0, SYF_CAPENABLED }, /* 480 = ftruncate */ { AS(thr_kill2_args), (sy_call_t *)thr_kill2, AUE_KILL, NULL, 0, 0, 0 }, /* 481 = thr_kill2 */ - { AS(shm_open_args), (sy_call_t *)shm_open, AUE_SHMOPEN, NULL, 0, 0, 0 }, /* 482 = shm_open */ + { AS(shm_open_args), (sy_call_t *)shm_open, AUE_SHMOPEN, NULL, 0, 0, SYF_CAPENABLED }, /* 482 = shm_open */ { AS(shm_unlink_args), (sy_call_t *)shm_unlink, AUE_SHMUNLINK, NULL, 0, 0, 0 }, /* 483 = shm_unlink */ { AS(cpuset_args), (sy_call_t *)cpuset, AUE_NULL, NULL, 0, 0, 0 }, /* 484 = cpuset */ { AS(cpuset_setid_args), (sy_call_t *)cpuset_setid, AUE_NULL, NULL, 0, 0, 0 }, /* 485 = cpuset_setid */ @@ -526,7 +526,7 @@ { AS(faccessat_args), (sy_call_t *)faccessat, AUE_FACCESSAT, NULL, 0, 0, 0 }, /* 489 = faccessat */ { AS(fchmodat_args), (sy_call_t *)fchmodat, AUE_FCHMODAT, NULL, 0, 0, 0 }, /* 490 = fchmodat */ { AS(fchownat_args), (sy_call_t *)fchownat, AUE_FCHOWNAT, NULL, 0, 0, 0 }, /* 491 = fchownat */ - { AS(fexecve_args), (sy_call_t *)fexecve, AUE_FEXECVE, NULL, 0, 0, 0 }, /* 492 = fexecve */ + { AS(fexecve_args), (sy_call_t *)fexecve, AUE_FEXECVE, NULL, 0, 0, SYF_CAPENABLED }, /* 492 = fexecve */ { AS(fstatat_args), (sy_call_t *)fstatat, AUE_FSTATAT, NULL, 0, 0, 0 }, /* 493 = fstatat */ { AS(futimesat_args), (sy_call_t *)futimesat, AUE_FUTIMESAT, NULL, 0, 0, 0 }, /* 494 = futimesat */ { AS(linkat_args), (sy_call_t *)linkat, AUE_LINKAT, NULL, 0, 0, 0 }, /* 495 = linkat */ @@ -543,9 +543,17 @@ { AS(jail_get_args), (sy_call_t *)jail_get, AUE_NULL, NULL, 0, 0, 0 }, /* 506 = jail_get */ { AS(jail_set_args), (sy_call_t *)jail_set, AUE_NULL, NULL, 0, 0, 0 }, /* 507 = jail_set */ { AS(jail_remove_args), (sy_call_t *)jail_remove, AUE_NULL, NULL, 0, 0, 0 }, /* 508 = jail_remove */ - { AS(closefrom_args), (sy_call_t *)closefrom, AUE_CLOSEFROM, NULL, 0, 0, 0 }, /* 509 = closefrom */ + { AS(closefrom_args), (sy_call_t *)closefrom, AUE_CLOSEFROM, NULL, 0, 0, SYF_CAPENABLED }, /* 509 = closefrom */ { AS(__semctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 510 = __semctl */ { AS(msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 511 = msgctl */ { AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 512 = shmctl */ { AS(lpathconf_args), (sy_call_t *)lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0 }, /* 513 = lpathconf */ + { AS(cap_new_args), (sy_call_t *)cap_new, AUE_CAP_NEW, NULL, 0, 0, SYF_CAPENABLED }, /* 514 = cap_new */ + { AS(cap_getrights_args), (sy_call_t *)cap_getrights, AUE_CAP_GETRIGHTS, NULL, 0, 0, SYF_CAPENABLED }, /* 515 = cap_getrights */ + { 0, (sy_call_t *)cap_enter, AUE_CAP_ENTER, NULL, 0, 0, SYF_CAPENABLED }, /* 516 = cap_enter */ + { AS(cap_getmode_args), (sy_call_t *)cap_getmode, AUE_CAP_GETMODE, NULL, 0, 0, SYF_CAPENABLED }, /* 517 = cap_getmode */ + { AS(pdfork_args), (sy_call_t *)pdfork, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 518 = pdfork */ + { AS(pdkill_args), (sy_call_t *)pdkill, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 519 = pdkill */ + { AS(pdgetpid_args), (sy_call_t *)pdgetpid, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED }, /* 520 = pdgetpid */ + { AS(pdwait_args), (sy_call_t *)pdwait, AUE_NULL, NULL, 0, 0, 0 }, /* 521 = pdwait */ }; ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/makesyscalls.sh#8 (text+ko) ==== @@ -1,6 +1,6 @@ #! /bin/sh - # @(#)makesyscalls.sh 8.1 (Berkeley) 6/10/93 -# $FreeBSD: src/sys/kern/makesyscalls.sh,v 1.74 2009/06/17 19:50:38 jhb Exp $ +# $FreeBSD: src/sys/kern/makesyscalls.sh,v 1.76 2009/06/24 13:36:37 jhb Exp $ set -e @@ -8,6 +8,7 @@ compat=COMPAT_43 compat4=COMPAT_FREEBSD4 compat6=COMPAT_FREEBSD6 +compat7=COMPAT_FREEBSD7 # output files: sysnames="syscalls.c" @@ -30,6 +31,8 @@ syscompat4dcl="sysent.compat4dcl.$$" syscompat6="sysent.compat6.$$" syscompat6dcl="sysent.compat6dcl.$$" +syscompat7="sysent.compat7.$$" +syscompat7dcl="sysent.compat7dcl.$$" sysent="sysent.switch.$$" sysinc="sysinc.switch.$$" sysarg="sysarg.switch.$$" @@ -43,9 +46,9 @@ capenabled="" fi -trap "rm $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp" 0 +trap "rm $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp" 0 -touch $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp +touch $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp case $# in 0) echo "usage: $0 input-file " 1>&2 @@ -82,6 +85,8 @@ syscompat4dcl = \"$syscompat4dcl\" syscompat6 = \"$syscompat6\" syscompat6dcl = \"$syscompat6dcl\" + syscompat7 = \"$syscompat7\" + syscompat7dcl = \"$syscompat7dcl\" sysent = \"$sysent\" syssw = \"$syssw\" sysinc = \"$sysinc\" @@ -94,6 +99,7 @@ compat = \"$compat\" compat4 = \"$compat4\" compat6 = \"$compat6\" + compat7 = \"$compat7\" syscallprefix = \"$syscallprefix\" switchname = \"$switchname\" namesname = \"$namesname\" @@ -114,6 +120,7 @@ printf "\n#ifdef %s\n\n", compat > syscompat printf "\n#ifdef %s\n\n", compat4 > syscompat4 printf "\n#ifdef %s\n\n", compat6 > syscompat6 + printf "\n#ifdef %s\n\n", compat7 > syscompat7 printf "/*\n * System call names.\n *\n" > sysnames printf " * DO NOT EDIT-- this file is automatically generated.\n" > sysnames @@ -191,6 +198,7 @@ print > syscompat print > syscompat4 print > syscompat6 + print > syscompat7 print > sysnames savesyscall = syscall next @@ -202,6 +210,7 @@ print > syscompat print > syscompat4 print > syscompat6 + print > syscompat7 print > sysnames syscall = savesyscall next @@ -213,6 +222,7 @@ print > syscompat print > syscompat4 print > syscompat6 + print > syscompat7 print > sysnames next } @@ -310,6 +320,8 @@ argalias = "freebsd4_" argalias if (flag("COMPAT6")) argalias = "freebsd6_" argalias + if (flag("COMPAT7")) + argalias = "freebsd7_" argalias } f++ @@ -431,7 +443,8 @@ syscall++ next } - type("COMPAT") || type("COMPAT4") || type("COMPAT6") { + type("COMPAT") || type("COMPAT4") || type("COMPAT6") || \ + type("COMPAT7") { if (flag("COMPAT")) { ncompat++ out = syscompat @@ -453,6 +466,13 @@ wrap = "compat6" prefix = "freebsd6_" descr = "freebsd6" + } else if (flag("COMPAT7")) { + ncompat7++ + out = syscompat7 + outdcl = syscompat7dcl + wrap = "compat7" + prefix = "freebsd7_" + descr = "freebsd7" } parseline() if (argc != 0 && !flag("NOARGS") && !flag("NOPROTO") && \ @@ -472,6 +492,8 @@ if (!flag("NOPROTO") && !flag("NODEF")) { printf("%s\t%s%s(struct thread *, struct %s *);\n", rettype, prefix, funcname, argalias) > outdcl + printf("#define\t%sAUE_%s%s\t%s\n", syscallprefix, + prefix, funcname, auditev) > sysaue } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 5 16:12:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1FB01065670; Wed, 5 Aug 2009 16:12:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1CE5106566B for ; Wed, 5 Aug 2009 16:12:23 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9F7048FC18 for ; Wed, 5 Aug 2009 16:12:23 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75GCNLK059497 for ; Wed, 5 Aug 2009 16:12:23 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75GCNxk059495 for perforce@freebsd.org; Wed, 5 Aug 2009 16:12:23 GMT (envelope-from trasz@freebsd.org) Date: Wed, 5 Aug 2009 16:12:23 GMT Message-Id: <200908051612.n75GCNxk059495@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167035 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 16:12:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=167035 Change 167035 by trasz@trasz_anger on 2009/08/05 16:11:26 Improve locking. Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#9 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#43 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#20 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#27 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#9 (text+ko) ==== @@ -4,6 +4,9 @@ - Why did I put the loginclass pointer into the proc and not into the cred? + - Make the limits lists protected by the subjects lock (e.g. process lock) + instead of hrl_lock. + - Make sure we have all the gidinfos we need in the 'struct ucred'. - Fix up (add/remove resource counters) when: ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#43 (text+ko) ==== @@ -682,26 +682,23 @@ mtx_unlock(&hrl_lock); } -#if 0 static int -hrl_limit_remove(struct hrl_limits_head *limits_head, struct hrl_rule *rule) +hrl_limit_add_locked(struct hrl_limits_head *limits_head, struct hrl_rule *rule) { - struct hrl_limit *limit, *limittmp; + struct hrl_limit *limit; + + KASSERT(hrl_rule_fully_specified(rule), ("rule not fully specified")); + mtx_assert(&hrl_lock, MA_OWNED); + + limit = uma_zalloc(hrl_limit_zone, M_NOWAIT); + if (limit == NULL) + return (ENOMEM); + hrl_rule_acquire(rule); + limit->hl_rule = rule; - mtx_lock(&hrl_lock); - LIST_FOREACH_SAFE(limit, limits_head, hl_next, limittmp) { - if (limit->hl_rule == rule) { - LIST_REMOVE(limit, hl_next); - mtx_unlock(&hrl_lock); - uma_zfree(hrl_limit_zone, limit); - hrl_rule_release(rule); - return (1); - } - } - mtx_unlock(&hrl_lock); + LIST_INSERT_HEAD(limits_head, limit, hl_next); return (0); } -#endif /* * Remove limits for a rules matching the filter and release @@ -715,29 +712,28 @@ int removed = 0; struct hrl_limit *limit, *limittmp; -again: mtx_lock(&hrl_lock); LIST_FOREACH_SAFE(limit, limits_head, hl_next, limittmp) { if (!hrl_rule_matches(limit->hl_rule, filter)) continue; LIST_REMOVE(limit, hl_next); - mtx_unlock(&hrl_lock); hrl_rule_release(limit->hl_rule); uma_zfree(hrl_limit_zone, limit); removed++; - goto again; } mtx_unlock(&hrl_lock); return (removed); } struct hrl_rule * -hrl_rule_alloc(void) +hrl_rule_alloc(int flags) { struct hrl_rule *rule; - rule = uma_zalloc(hrl_rule_zone, M_WAITOK); + rule = uma_zalloc(hrl_rule_zone, flags); + if (rule == NULL) + return (NULL); rule->hr_subject = HRL_SUBJECT_UNDEFINED; rule->hr_subject_id = HRL_SUBJECT_ID_UNDEFINED; rule->hr_per = HRL_SUBJECT_UNDEFINED; @@ -750,11 +746,13 @@ } struct hrl_rule * -hrl_rule_duplicate(const struct hrl_rule *rule) +hrl_rule_duplicate(const struct hrl_rule *rule, int flags) { struct hrl_rule *copy; - copy = uma_zalloc(hrl_rule_zone, M_WAITOK); + copy = uma_zalloc(hrl_rule_zone, flags); + if (copy == NULL) + return (NULL); copy->hr_subject = rule->hr_subject; copy->hr_subject_id = rule->hr_subject_id; copy->hr_per = rule->hr_per; @@ -819,7 +817,7 @@ struct loginclass *lc; struct hrl_rule *rule; - rule = hrl_rule_alloc(); + rule = hrl_rule_alloc(M_WAITOK); subjectstr = strsep(&rulestr, ":"); subject_idstr = strsep(&rulestr, ":"); @@ -1066,10 +1064,6 @@ error = gi_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found, NULL); KASSERT(error == 0, ("gi_limits_foreach failed")); - /* - * XXX: per-process, per-group, per-jail and per-class limits. - */ - sx_slock(&proctree_lock); FOREACH_PROC_IN_SYSTEM(p) { found += hrl_limit_remove_matching(&p->p_limits, filter); @@ -1527,35 +1521,40 @@ hrl_proc_fork(void *arg __unused, struct proc *parent, struct proc *child, int flags __unused) { - int i; + int error, i; struct hrl_limit *limit; struct hrl_rule *rule; PROC_LOCK(parent); PROC_LOCK(child); + mtx_lock(&hrl_lock); + for (i = 0; i < HRL_RESOURCE_MAX; i++) { if (parent->p_usage.hu_resources[i] != 0 && hrl_resource_inheritable(i)) hrl_allocated_proc(child, i, parent->p_usage.hu_resources[i]); } - PROC_UNLOCK(child); - PROC_UNLOCK(parent); - /* - * XXX: What about locking the parent? - */ LIST_FOREACH(limit, &parent->p_limits, hl_next) { if (limit->hl_rule->hr_subject == HRL_SUBJECT_PROCESS) { - rule = hrl_rule_duplicate(limit->hl_rule); + rule = hrl_rule_duplicate(limit->hl_rule, M_NOWAIT); + KASSERT(rule != NULL, ("XXX: better error handling needed")); KASSERT(rule->hr_subject_id == parent->p_pid, ("rule->hr_subject_id == parent->p_pid")); rule->hr_subject_id = child->p_pid; - hrl_limit_add(&child->p_limits, rule); + error = hrl_limit_add_locked(&child->p_limits, rule); + KASSERT(error == 0, ("XXX: better error handling needed")); hrl_rule_release(rule); - } else - hrl_limit_add(&child->p_limits, limit->hl_rule); + } else { + error = hrl_limit_add_locked(&child->p_limits, limit->hl_rule); + KASSERT(error == 0, ("XXX: better error handling needed")); + } } + + mtx_unlock(&hrl_lock); + PROC_UNLOCK(child); + PROC_UNLOCK(parent); } /* ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#20 (text+ko) ==== @@ -655,7 +655,7 @@ int error; struct hrl_rule *rule, *rule2; - rule = hrl_rule_alloc(); + rule = hrl_rule_alloc(M_WAITOK); rule->hr_subject = HRL_SUBJECT_PROCESS; rule->hr_subject_id = td->td_proc->p_pid; rule->hr_per = HRL_SUBJECT_PROCESS; @@ -724,7 +724,7 @@ * rule, "deny". */ if (rule->hr_action != HRL_ACTION_DENY) { - rule2 = hrl_rule_duplicate(rule); + rule2 = hrl_rule_duplicate(rule, M_WAITOK); rule2->hr_action = HRL_ACTION_DENY; hrl_rule_remove(rule2); ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#27 (text+ko) ==== @@ -138,8 +138,8 @@ void hrl_usage_subtract(struct hrl_usage *dest, const struct hrl_usage *src); void hrl_proc_exiting(struct proc *p); -struct hrl_rule *hrl_rule_alloc(void); -struct hrl_rule *hrl_rule_duplicate(const struct hrl_rule *rule); +struct hrl_rule *hrl_rule_alloc(int flags); +struct hrl_rule *hrl_rule_duplicate(const struct hrl_rule *rule, int flags); void hrl_rule_acquire(struct hrl_rule *rule); void hrl_rule_release(struct hrl_rule *rule); int hrl_rule_add(struct hrl_rule *rule); From owner-p4-projects@FreeBSD.ORG Wed Aug 5 17:34:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F08EA1065670; Wed, 5 Aug 2009 17:34:53 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B02FB106564A for ; Wed, 5 Aug 2009 17:34:53 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8365F8FC0A for ; Wed, 5 Aug 2009 17:34:53 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75HYr01078185 for ; Wed, 5 Aug 2009 17:34:53 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75HYrMZ078183 for perforce@freebsd.org; Wed, 5 Aug 2009 17:34:53 GMT (envelope-from trasz@freebsd.org) Date: Wed, 5 Aug 2009 17:34:53 GMT Message-Id: <200908051734.n75HYrMZ078183@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167036 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 17:34:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=167036 Change 167036 by trasz@trasz_anger on 2009/08/05 17:34:09 When changing loginclass, update process limits properly. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#44 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#28 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#44 (text+ko) ==== @@ -1514,6 +1514,42 @@ } /* + * Called after loginclass change, to adjust p_limits. + */ +void +hrl_proc_loginclass_changed(struct proc *p) +{ + int error; + struct hrl_limit *limit; + + PROC_LOCK_ASSERT(p, MA_OWNED); + + mtx_lock(&hrl_lock); + + /* + * Remove rules for the old loginclass. + */ + LIST_FOREACH(limit, &p->p_limits, hl_next) { + if (limit->hl_rule->hr_subject != HRL_SUBJECT_LOGINCLASS) + continue; + + LIST_REMOVE(limit, hl_next); + hrl_rule_release(limit->hl_rule); + uma_zfree(hrl_limit_zone, limit); + } + + /* + * Now add rules for the current loginclass. + */ + LIST_FOREACH(limit, &p->p_loginclass->lc_limits, hl_next) { + error = hrl_limit_add_locked(&p->p_limits, limit->hl_rule); + KASSERT(error == 0, ("XXX: better error handling needed")); + } + + mtx_unlock(&hrl_lock); +} + +/* * Inherit resource usage information and copy limits from the parent * process to the child. */ @@ -1565,15 +1601,12 @@ { struct hrl_limit *limit; -restart: mtx_lock(&hrl_lock); while (!LIST_EMPTY(&p->p_limits)) { limit = LIST_FIRST(&p->p_limits); LIST_REMOVE(limit, hl_next); - mtx_unlock(&hrl_lock); hrl_rule_release(limit->hl_rule); uma_zfree(hrl_limit_zone, limit); - goto restart; } mtx_unlock(&hrl_lock); } ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#4 (text+ko) ==== @@ -194,6 +194,7 @@ PROC_LOCK(p); oldlc = p->p_loginclass; p->p_loginclass = newlc; + hrl_proc_loginclass_changed(p); PROC_UNLOCK(p); loginclass_release(oldlc); ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#28 (text+ko) ==== @@ -138,6 +138,10 @@ void hrl_usage_subtract(struct hrl_usage *dest, const struct hrl_usage *src); void hrl_proc_exiting(struct proc *p); + +void hrl_proc_loginclass_changed(struct proc *p); +void hrl_proc_ucred_changed(struct proc *p); + struct hrl_rule *hrl_rule_alloc(int flags); struct hrl_rule *hrl_rule_duplicate(const struct hrl_rule *rule, int flags); void hrl_rule_acquire(struct hrl_rule *rule); From owner-p4-projects@FreeBSD.ORG Wed Aug 5 17:53:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5EC281065674; Wed, 5 Aug 2009 17:53:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F1C11065670 for ; Wed, 5 Aug 2009 17:53:14 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0BDD18FC08 for ; Wed, 5 Aug 2009 17:53:14 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75HrDTC079948 for ; Wed, 5 Aug 2009 17:53:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75HrDuK079946 for perforce@freebsd.org; Wed, 5 Aug 2009 17:53:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 17:53:13 GMT Message-Id: <200908051753.n75HrDuK079946@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167037 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 17:53:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=167037 Change 167037 by rwatson@rwatson_cinnamon on 2009/08/05 17:52:35 Minor style tweak: #defineconstantvalue in style(9). Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/bsm/audit.h#4 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/bsm/audit.h#4 (text) ==== @@ -126,10 +126,10 @@ #define A_SETQCTRL 36 #define A_GETCOND 37 #define A_SETCOND 38 -#define A_CREATESLICE 39 -#define A_UPDATESLICE 40 -#define A_GETSLICE 41 -#define A_REMOVESLICE 42 +#define A_CREATESLICE 39 +#define A_UPDATESLICE 40 +#define A_GETSLICE 41 +#define A_REMOVESLICE 42 /* * Audit policy controls. From owner-p4-projects@FreeBSD.ORG Wed Aug 5 17:56:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC54C1065670; Wed, 5 Aug 2009 17:56:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56811106566C for ; Wed, 5 Aug 2009 17:56:17 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 430908FC0A for ; Wed, 5 Aug 2009 17:56:17 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75HuHFV080253 for ; Wed, 5 Aug 2009 17:56:17 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75HuHku080251 for perforce@freebsd.org; Wed, 5 Aug 2009 17:56:17 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 17:56:17 GMT Message-Id: <200908051756.n75HuHku080251@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167038 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 17:56:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=167038 Change 167038 by rwatson@rwatson_cinnamon on 2009/08/05 17:56:11 Mark bsm header and trailer structs as packed so that we can cast byte sequences to the type -- otherwise the compiler adds padding between fields that won't be in the BSM byte stream. Add an XXX that using struct timespec here has similar issues, we should use fixed-length types to avoid struct layout and field type problems that will vary by architecture/OS. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/bsm/audit_internal.h#5 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/bsm/audit_internal.h#5 (text) ==== @@ -128,6 +128,8 @@ * event modifier 2 bytes * seconds of time 4 bytes/8 bytes (32-bit/64-bit value) * milliseconds of time 4 bytes/8 bytes (32-bit/64-bit value) + * + * XXXRW: Should use fixed-length types here rather than struct timespec. */ struct bsm_rec_hdr { u_char token_id; @@ -136,7 +138,7 @@ u_int16_t e_type; u_int16_t e_mod; struct timespec tm; -}; +} __packed; /* * token ID 1 byte @@ -147,6 +149,6 @@ u_char token_id; u_int16_t trailer_num; u_int32_t rec_byte_count; -}; +} __packed; #endif /* !_AUDIT_INTERNAL_H_ */ From owner-p4-projects@FreeBSD.ORG Wed Aug 5 18:00:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F7301065678; Wed, 5 Aug 2009 18:00:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB9CF1065672 for ; Wed, 5 Aug 2009 18:00:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C93BF8FC0C for ; Wed, 5 Aug 2009 18:00:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75I0L5H080638 for ; Wed, 5 Aug 2009 18:00:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75I0LRU080636 for perforce@freebsd.org; Wed, 5 Aug 2009 18:00:21 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 5 Aug 2009 18:00:21 GMT Message-Id: <200908051800.n75I0LRU080636@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167039 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 18:00:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=167039 Change 167039 by hselasky@hselasky_laptop001 on 2009/08/05 17:59:59 USB network: - fix CDC ethernet matching order so that the match flags get correct. - reported by Juergen Lock Affected files ... .. //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#19 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#19 (text+ko) ==== @@ -197,9 +197,6 @@ }; static const struct usb_device_id cdce_devs[] = { - {USB_IF_CSI(UICLASS_CDC, UISUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL, 0)}, - {USB_IF_CSI(UICLASS_CDC, UISUBCLASS_MOBILE_DIRECT_LINE_MODEL, 0)}, - {USB_VPI(USB_VENDOR_ACERLABS, USB_PRODUCT_ACERLABS_M5632, CDCE_FLAG_NO_UNION)}, {USB_VPI(USB_VENDOR_AMBIT, USB_PRODUCT_AMBIT_NTL_250, CDCE_FLAG_NO_UNION)}, {USB_VPI(USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_IPAQLINUX, CDCE_FLAG_NO_UNION)}, @@ -213,6 +210,9 @@ {USB_VPI(USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLA300, CDCE_FLAG_ZAURUS | CDCE_FLAG_NO_UNION)}, {USB_VPI(USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLC700, CDCE_FLAG_ZAURUS | CDCE_FLAG_NO_UNION)}, {USB_VPI(USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLC750, CDCE_FLAG_ZAURUS | CDCE_FLAG_NO_UNION)}, + + {USB_IF_CSI(UICLASS_CDC, UISUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL, 0)}, + {USB_IF_CSI(UICLASS_CDC, UISUBCLASS_MOBILE_DIRECT_LINE_MODEL, 0)}, }; static int From owner-p4-projects@FreeBSD.ORG Wed Aug 5 18:03:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 997071065676; Wed, 5 Aug 2009 18:03:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56CF81065674 for ; Wed, 5 Aug 2009 18:03:25 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 426FD8FC15 for ; Wed, 5 Aug 2009 18:03:25 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75I3PDK081848 for ; Wed, 5 Aug 2009 18:03:25 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75I3PPS081846 for perforce@freebsd.org; Wed, 5 Aug 2009 18:03:25 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 18:03:25 GMT Message-Id: <200908051803.n75I3PPS081846@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167040 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 18:03:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=167040 Change 167040 by rwatson@rwatson_cinnamon on 2009/08/05 18:03:06 Minor style cleanups -- remove trailing whitespace, add punctuation, remove typedef for an in-kernel structure, clean up blank lines, comment formatting, and add header guards to help handle nested/multiple include problems. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.h#8 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.h#8 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2009 Ilias Marinos + * Copyright (c) 2009 Ilias Marinos * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,6 +24,10 @@ * POSSIBILITY OF SUCH DAMAGE. * */ + +#ifndef _SECURITY_AUDIT_SLICE_H_ +#define _SECURITY_AUDIT_SLICE_H_ + #include #include #include @@ -31,10 +35,8 @@ #include #include - -#define AUDIT_SLICE_NAME_LEN 20 -#define AUDIT_DEV_NAME_LEN 20 - +#define AUDIT_SLICE_NAME_LEN 20 +#define AUDIT_DEV_NAME_LEN 20 struct kaudit_record; @@ -45,10 +47,8 @@ * XXX: Needs work. */ struct audit_slice { - char as_name[AUDIT_SLICE_NAME_LEN]; - /* * Define the audit control flags. */ @@ -56,7 +56,7 @@ int audit_suspended; /* - * The actual slice private queue + * The actual slice private queue. */ struct kaudit_queue audit_q; int audit_q_len; @@ -64,7 +64,8 @@ /* * Flags controlling behavior in low storage situations. Should we - * panic if a write fails? Should we fail stop if we're out of disk space? + * panic if a write fails? Should we fail stop if we're out of disk + * space? */ int audit_panic_on_write_fail; int audit_fail_stop; @@ -77,7 +78,7 @@ int audit_in_failure; /* - * Slice specific statistics + * Slice specific statistics. */ struct audit_fstat audit_fstat; @@ -87,8 +88,8 @@ struct au_mask audit_nae_mask; /* - * Mutex to protect global variables shared between various threads and - * processes. + * Mutex to protect global variables shared between various threads + * and processes. */ struct mtx audit_mtx; @@ -109,15 +110,15 @@ /* - * Condition variable to flag when crossing the low watermark, meaning - * that threads blocked due to hitting the high watermark can wake up - * and continue to commit records. + * Condition variable to flag when crossing the low watermark, + * meaning that threads blocked due to hitting the high watermark can + * wake up and continue to commit records. */ struct cv audit_watermark_cv; /* - * Condition variable for auditing threads wait on when in fail-stop - * mode. Threads wait on this CV forever (and ever), never seeing the + * Condition variable for auditing threads wait on when in fail-stop + * mode. Threads wait on this CV forever (and ever), never seeing the * light of day again. */ struct cv audit_fail_cv; @@ -128,27 +129,26 @@ struct proc *audit_thread; /* - * audit_cred and audit_vp are the stored credential and vnode to use - * for active audit trail. They are protected by the audit worker lock, - * which will be held across all I/O and all rotation to prevent them - * from being replaced (rotated) while in use. The - * audit_file_rotate_wait flag is set when the kernel has delivered a - * trigger to auditd to rotate the trail, and is cleared when the next - * rotation takes place. It is also protected by the audit worker lock. + * audit_cred and audit_vp are the stored credential and vnode to use + * for active audit trail. They are protected by the audit worker + * lock, which will be held across all I/O and all rotation to + * prevent them from being replaced (rotated) while in use. The + * audit_file_rotate_wait flag is set when the kernel has delivered a + * trigger to auditd to rotate the trail, and is cleared when the + * next rotation takes place. It is also protected by the audit + * worker lock. */ int audit_file_rotate_wait; struct ucred *audit_cred; struct vnode *audit_vp; struct sx audit_worker_lock; - - /* - * Applications need their slice device to submit their audit records. - * Device specific variables here. + * Applications need their slice device to submit their audit + * records. Device specific variables here. */ struct cdev *as_dev; - char as_dev_name[AUDIT_DEV_NAME_LEN]; + char as_dev_name[AUDIT_DEV_NAME_LEN]; int unit; uid_t uid; gid_t gid; @@ -157,22 +157,21 @@ struct mtx as_dev_mtx; int as_dev_isopen; - /* - * Keep the several audit slices in a list + /* + * Keep the several audit slices in a list. */ TAILQ_ENTRY(audit_slice) as_q; }; -typedef struct audit_slice audit_slice_t; TAILQ_HEAD(audit_slice_queue, audit_slice); -/* Static allocation of the base slice */ +/* Static allocation of the base slice. */ extern struct audit_slice *audit_base_slice; -/* Audit slice ptr - helper */ +/* Audit slice ptr - helper. */ extern struct audit_slice *as_ptr; -/* Audit slices queue */ +/* Audit slices queue. */ extern struct audit_slice_queue audit_slice_q; @@ -181,16 +180,17 @@ * records and require audit_slice struct as arguments. */ struct kaudit_record *audit_new(int event, struct thread *td, - struct audit_slice *as); + struct audit_slice *as); /* - * Audit related functions prototypes + * Audit related functions prototypes. */ -void audit_rotate_vnode(struct ucred *cred, - struct vnode *vp); -void audit_worker_init(void *arg); -void audit_slice_init(struct audit_slice *as, char *name); -void audit_slice_create(char *name); -void audit_slice_destroy(struct audit_slice *as); -void audit_slice_cdev_init(struct audit_slice *as); -void audit_slice_commit_rec(void *rec, struct audit_slice *as); +void audit_rotate_vnode(struct ucred *cred, struct vnode *vp); +void audit_worker_init(void *arg); +void audit_slice_init(struct audit_slice *as, char *name); +void audit_slice_create(char *name); +void audit_slice_destroy(struct audit_slice *as); +void audit_slice_cdev_init(struct audit_slice *as); +void audit_slice_commit_rec(void *rec, struct audit_slice *as); + +#endif /* ! _SECURITY_AUDIT_SLICE_H_ */ From owner-p4-projects@FreeBSD.ORG Wed Aug 5 18:09:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 970D91065673; Wed, 5 Aug 2009 18:09:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56E27106566C for ; Wed, 5 Aug 2009 18:09:32 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 436C78FC08 for ; Wed, 5 Aug 2009 18:09:32 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75I9VMM082403 for ; Wed, 5 Aug 2009 18:09:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75I9Vl4082401 for perforce@freebsd.org; Wed, 5 Aug 2009 18:09:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 18:09:31 GMT Message-Id: <200908051809.n75I9Vl4082401@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167041 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 18:09:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=167041 Change 167041 by rwatson@rwatson_cinnamon on 2009/08/05 18:09:08 More minor style tweaks. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.h#9 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.h#9 (text+ko) ==== @@ -93,7 +93,6 @@ */ struct mtx audit_mtx; - /* * Audit queue control settings (minimum free, low/high water marks, * etc.) @@ -107,8 +106,6 @@ */ struct cv audit_worker_cv; - - /* * Condition variable to flag when crossing the low watermark, * meaning that threads blocked due to hitting the high watermark can From owner-p4-projects@FreeBSD.ORG Wed Aug 5 18:10:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 982BD1065673; Wed, 5 Aug 2009 18:10:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57D5A106564A for ; Wed, 5 Aug 2009 18:10:33 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 45E098FC0A for ; Wed, 5 Aug 2009 18:10:33 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75IAXYM082558 for ; Wed, 5 Aug 2009 18:10:33 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75IAXit082556 for perforce@freebsd.org; Wed, 5 Aug 2009 18:10:33 GMT (envelope-from trasz@freebsd.org) Date: Wed, 5 Aug 2009 18:10:33 GMT Message-Id: <200908051810.n75IAXit082556@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167042 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 18:10:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=167042 Change 167042 by trasz@trasz_anger on 2009/08/05 18:10:30 Update process limits after credentials change. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#45 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#17 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#45 (text+ko) ==== @@ -1550,6 +1550,60 @@ } /* + * Called after credentials change, to adjust p_limits. + * + * XXX: This should be merged with the routine above, after moving + * the loginclass pointer from 'struct proc' to 'struct ucred'. + * + * XXX: What about jails? + */ +void +hrl_proc_ucred_changed(struct proc *p) +{ + int error, i; + struct ucred *cred = p->p_ucred; + struct hrl_limit *limit; + + PROC_LOCK_ASSERT(p, MA_OWNED); + + mtx_lock(&hrl_lock); + + /* + * Remove rules for the old user credentials. + */ + LIST_FOREACH(limit, &p->p_limits, hl_next) { + if (limit->hl_rule->hr_subject != HRL_SUBJECT_USER && + limit->hl_rule->hr_subject != HRL_SUBJECT_GROUP) + continue; + + LIST_REMOVE(limit, hl_next); + hrl_rule_release(limit->hl_rule); + uma_zfree(hrl_limit_zone, limit); + } + + /* + * Now add rules for the current user credentials. + */ + LIST_FOREACH(limit, &cred->cr_ruidinfo->ui_limits, hl_next) { + error = hrl_limit_add_locked(&p->p_limits, limit->hl_rule); + KASSERT(error == 0, ("XXX: better error handling needed")); + } + if (hrl_group_accounting) { + for (i = 0; i < cred->cr_ngroups; i++) { + LIST_FOREACH(limit, + &cred->cr_gidinfos[i]->gi_limits, hl_next) { + error = hrl_limit_add_locked(&p->p_limits, + limit->hl_rule); + KASSERT(error == 0, + ("XXX: better error handling needed")); + } + } + } + + mtx_unlock(&hrl_lock); +} + +/* * Inherit resource usage information and copy limits from the parent * process to the child. */ ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#17 (text+ko) ==== @@ -2186,6 +2186,8 @@ int i; struct uidinfo *olduip, *newuip; + PROC_LOCK_ASSERT(p, MA_OWNED); + /* * Fix up per-euid resource consumption. */ @@ -2217,6 +2219,7 @@ } p->p_ucred = newcred; + hrl_proc_ucred_changed(p); } /*- From owner-p4-projects@FreeBSD.ORG Wed Aug 5 18:27:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BD9F1106566C; Wed, 5 Aug 2009 18:27:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 64FD11065672 for ; Wed, 5 Aug 2009 18:27:52 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4962C8FC0A for ; Wed, 5 Aug 2009 18:27:52 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75IRqjB084217 for ; Wed, 5 Aug 2009 18:27:52 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75IRqaZ084215 for perforce@freebsd.org; Wed, 5 Aug 2009 18:27:52 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 18:27:52 GMT Message-Id: <200908051827.n75IRqaZ084215@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167043 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 18:27:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=167043 Change 167043 by rwatson@rwatson_cinnamon on 2009/08/05 18:27:20 Add a few comments/annotations in the audit slice code about possibly design choices. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.c#6 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.c#6 (text+ko) ==== @@ -90,7 +90,7 @@ /* * Audit slice's device open method. Explicit privilege check isn't used as * this allows file permissions on the special device to be used to grant - * audit review access. Those file permissions should be managed carefully. + * audit submit access. Those file permissions should be managed carefully. */ static int audit_slice_dev_open(struct cdev *dev, int oflags, int devtype, @@ -107,7 +107,16 @@ as = as_ptr; dev->si_drv1 = as; - /* Only one process may open the device at a time. */ + /* + * Only one process may open the device at a time. + * + * XXXRW: It would be desirable to allow concurrent writers to block + * or otherwise be serialized in order to avoid application threads + * having to loop waiting for the device to be free while another + * thread is writing a record. Because we want to support buffered + * writes spread over multiple syscalls, this is a little tricky -- + * we should think more about what the right way to handle this is. + */ mtx_lock(&(as->as_dev_mtx)); if (!as->as_dev_isopen) { error = 0; @@ -170,6 +179,13 @@ audit_slice_dev_buf = malloc(sizeof(*audit_slice_dev_buf), M_TEMP, M_WAITOK); + /* + * XXXRW: This seems to handle multiple records/system call, but not + * multiple system calls/record. To handle the latter, we need to + * have a buffer that potentially spans system calls that we can copy + * into until we have a complete record which we can then submit to + * audit. + */ while (uio->uio_resid > 0) { c = MIN((int)uio->uio_resid, sizeof(*audit_slice_dev_buf)); if ( c == (int)uio->uio_resid ) @@ -183,6 +199,10 @@ /* * Store the actual record's size. Add some checks before * this. + * + * XXXRW: for example, perhaps we shouldn't accept records + * longer than MAX_AUDIT_RECORD_SIZE, or less than + * sizeof(*audit_slice_dev_buf). */ recsz = be32dec (audit_slice_dev_buf->rec_byte_count); as_rec = (void *)malloc((unsigned long)recsz, M_AUDITBSM, @@ -200,6 +220,9 @@ audit_slice_commit_rec( as_rec, as); } + /* + * XXXRW: Only free as_rec if we allocated it. + */ free(audit_slice_dev_buf, M_TEMP); free(as_rec, M_AUDITBSM); @@ -207,7 +230,12 @@ } /* - * Ioctl method + * Ioctl method. + * + * XXXRW: Possibly we should allow querying per-slice audit properties here, + * such as event masks so that userspace can decide whether an event is + * wanted -- i.e., similar to what we do with auditon(2) to query the current + * mask. */ static int audit_slice_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, @@ -219,6 +247,9 @@ /* * Poll method.(if needed) + * + * XXXRW: Interesting design question -- probably, it's OK to submit a record + * and then block waiting for it to commit. */ static int audit_slice_dev_poll(struct cdev *dev, int events, struct thread *td) From owner-p4-projects@FreeBSD.ORG Wed Aug 5 19:12:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0BFB9106567A; Wed, 5 Aug 2009 19:12:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B88B2106564A for ; Wed, 5 Aug 2009 19:12:41 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A56158FC1A for ; Wed, 5 Aug 2009 19:12:41 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75J8a1w088956 for ; Wed, 5 Aug 2009 19:08:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75J8atq088954 for perforce@freebsd.org; Wed, 5 Aug 2009 19:08:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 19:08:36 GMT Message-Id: <200908051908.n75J8atq088954@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167044 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 19:12:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=167044 Change 167044 by rwatson@rwatson_cinnamon on 2009/08/05 19:08:03 Various questions, comments, and annotations. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#10 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.h#3 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_private.h#6 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.h#10 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#10 (text) ==== @@ -92,7 +92,11 @@ /* Audit slice ptr -helper */ struct audit_slice *as_ptr = NULL; -/* Audit slices queue */ +/* + * Audit slices queue. + * + * XXXRW: What synchronizes access to this list? + */ struct audit_slice_queue audit_slice_q; /* @@ -209,6 +213,9 @@ * base(no reason to be in the queue). We want the queue initialized * once, even if there are no other slices except the base one and * thus this is happening in audit_init(). + * + * XXXRW: Why might audit_init() ever be called with a non-NULL base + * slice? */ TAILQ_INIT(&audit_slice_q); if ( audit_base_slice == NULL ) { @@ -220,6 +227,10 @@ as = audit_base_slice; } + /* + * XXXRW: as should always be non-NULL here so should make this + * unconditional. + */ if ( as != NULL ) audit_slice_init(as, "base_slice"); @@ -250,6 +261,8 @@ * * XXXRW: In FreeBSD 7.x and 8.x, this fails to wait for the record queue to * drain before returning, which could lead to lost records on shutdown. + * + * XXXRW: Presumably we need this to iterate over all slices? */ void audit_shutdown(void *arg, int howto) @@ -314,6 +327,9 @@ uma_zfree(audit_record_zone, ar); } +/* + * XXXRW: Should this accept an audit slice argument? + */ void audit_commit(struct kaudit_record *ar, int error, int retval) { @@ -639,17 +655,34 @@ struct audit_slice *as = NULL; int err; + /* + * XXXRW: With M_WAITOK, malloc(9) never fails, so no error handling + * needed here. + * + * XXXRW: It might be desirable to wrap all of this in an sx lock + * to serialize the creation of audit slices, probably the same lock + * used to serialize access to audit_slice_q. That would prevent + * attempts to remove a slice while it was still being added, etc. + */ err = 0; as = malloc(sizeof(*as), M_AUDITSLICE, M_WAITOK | M_ZERO); if ( as == NULL ) err = 1; /* Failed to allocate slice */ + /* + * XXXRW: Locking needed here. Possibly we should fully initialize + * the slice before inserting it on the list? + */ as_ptr = as; TAILQ_INSERT_TAIL(&audit_slice_q, as, as_q); /* Initialize the base slice */ audit_slice_init(as, name); + /* + * XXXRW: Possibly start worker before creating the device? + */ + /* Create the special device node */ audit_slice_cdev_init(as); @@ -664,6 +697,8 @@ void audit_slice_init(struct audit_slice *as, char *name) { + + /* XXXRW: Does the caller validate the length limit? */ strcpy(as->as_name, name); /* @@ -698,6 +733,10 @@ audit_kinfo.ai_termid.at_type = AU_IPv4; audit_kinfo.ai_termid.at_addr[0] = INADDR_ANY; + /* + * XXXRW: KINFO_LOCK_INIT() should be in audit_init() rather than + * here conditionally? + */ mtx_init(&(as->audit_mtx), "audit_mtx", NULL, MTX_DEF); if ( as == audit_base_slice ) KINFO_LOCK_INIT(); @@ -712,10 +751,25 @@ /* * audit_slice_destroy() is called through A_REMOVESLICE command of auditon() * syscall to remove an existing slice ( except the base one!) + * + * XXXRW: likewise, should acquire an sx lock around all of this to avoid + * simultaneous add/remove being a problem. + * + * XXXR: Does the caller validate that as != audit_base_slice? Perhaps + * audit_slice_destroy() should do the name->slice lookup and potentially + * return an error here. */ void audit_slice_destroy(struct audit_slice *as) { + + /* + * XXXRW: Should either assert the record queue is empty, or drain + * it, depending on invariants. + * + * XXXRW: Need to mtx_destroy the lock, cv_destroy the condition + * variables? + */ if (as != NULL) { TAILQ_REMOVE(&audit_slice_q, as, as_q); destroy_dev(as->as_dev); @@ -735,7 +789,14 @@ int error; - + /* + * XXXRW: Audit slices other than the base should probably never + * touch td->td_ar, so the below should unconditionally allocate the + * container record. + * + * XXXRW: Asser that this isn't audit_base_slice, since we'll handle + * that improperly? + */ /* struct thread uninitialized! */ if (ar == NULL) { @@ -746,6 +807,10 @@ * * XXXAUDIT: Maybe AUE_AUDIT in the system call context and * special pre-select handling? + * + * XXXRW: Not sure we need to use td->td_ar here at all? The + * base slice may already be using it to record the write + * syscall. */ td->td_ar = audit_new(AUE_NULL, td, as); if (td->td_ar == NULL) @@ -755,6 +820,11 @@ ar = td->td_ar; } + /* + * XXXRW: This error value seems never to be used? Possibly we + * should validate the record before calling audit_new, and return + * the error to the caller so it can return to userspace? + */ /* Verify the record. */ if (bsm_rec_verify(rec) == 0) error = EINVAL; ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.h#3 (text) ==== @@ -52,6 +52,8 @@ * observed but should not be directly manipulated. The audit suspension * flag permits audit to be temporarily disabled without reconfiguring the * audit target. + * + * XXXRW: These are no longer needed if they're per-slice. */ extern int audit_enabled; extern int audit_suspended; @@ -190,6 +192,11 @@ audit_arg_ ## op (args); \ } while (0) + +/* + * XXXRW: Perhaps we should have audit_base_enabled or such as a global to + * avoid an extra pointer deref for every syscall? + */ #define AUDIT_SYSCALL_ENTER(code, td) do { \ if (audit_base_slice->audit_enabled) { \ audit_syscall_enter(code, td); \ ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_private.h#6 (text) ==== @@ -138,6 +138,11 @@ * Helper data structure that keeps the data that are needed for new audit * slice creation/modification/removal.This structure will be used with the * auditon() syscall for all the audit slices except the base. + * + * XXXRW: Don't expose kernel data structures/pointers to userspace -- for + * example, audit_cred and audit_vp. I wonder if we should have an + * auditon_slice(2) system call that accepts regular auditon(2) arguments + * with the addition of a string pointer identifying the slice to operate on? */ struct au_slice_data { char as_name[AUDIT_SLICE_NAME_LEN]; ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.h#10 (text+ko) ==== @@ -69,6 +69,11 @@ */ int audit_panic_on_write_fail; int audit_fail_stop; + + /* + * XXXRW: Maybe these should remain global rather than per-slice, as + * they apply only to the base slice? + */ int audit_argv; int audit_arge; From owner-p4-projects@FreeBSD.ORG Wed Aug 5 19:13:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E4CEC1065677; Wed, 5 Aug 2009 19:13:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E1601065673 for ; Wed, 5 Aug 2009 19:13:42 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8BD608FC1C for ; Wed, 5 Aug 2009 19:13:42 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75JDgLR089444 for ; Wed, 5 Aug 2009 19:13:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75JDgeJ089442 for perforce@freebsd.org; Wed, 5 Aug 2009 19:13:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 19:13:42 GMT Message-Id: <200908051913.n75JDgeJ089442@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167045 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 19:13:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=167045 Change 167045 by rwatson@rwatson_cinnamon on 2009/08/05 19:13:26 Comment for the syscall code. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_syscalls.c#6 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_syscalls.c#6 (text) ==== @@ -540,6 +540,15 @@ return (EINVAL); return (audit_send_trigger(udata.au_trigger)); + /* + * XXXRW: as_name use a userspace character array, not a kernel space + * string pointer. We need to copyinstr() to a kernel character + * array for the purposes of looking it up, etc. + * + * XXXRW: Possibly audit_slice_*() should be able to return errors-- + * for example, if there's a name collision on creating slices, or i + * a slice can't be found for removal. + */ case A_CREATESLICE: if (uap->length != sizeof(udata.au_slice)) return (EINVAL); From owner-p4-projects@FreeBSD.ORG Wed Aug 5 19:18:48 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8ED081065670; Wed, 5 Aug 2009 19:18:48 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D280106564A for ; Wed, 5 Aug 2009 19:18:48 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3AE268FC13 for ; Wed, 5 Aug 2009 19:18:48 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75JImq9089975 for ; Wed, 5 Aug 2009 19:18:48 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75JImbT089973 for perforce@freebsd.org; Wed, 5 Aug 2009 19:18:48 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 19:18:48 GMT Message-Id: <200908051918.n75JImbT089973@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167046 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 19:18:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=167046 Change 167046 by rwatson@rwatson_cinnamon on 2009/08/05 19:17:49 More comments. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_worker.c#4 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_worker.c#4 (text) ==== @@ -75,7 +75,10 @@ /* - * Slice-worker private mtx handling macros + * Slice-worker private mtx handling macros. + * + * XXXRW: 'as' should be passed in as an explicit macro argument to avoid + * side effect semantics. */ #define AUDIT_WORKER_LOCK_INIT() sx_init(&(as->audit_worker_lock), \ "audit_worker_lock"); @@ -377,6 +380,10 @@ * * Note: this means that the effect bound on the size of the pending record * queue is 2x the length of the global queue. + * + * XXXRW: The audit worker needs to detect when an audit slice is being shut + * down, and exit. Perhaps using a state flag in struct audit_slice that is + * checked when waking up, or more probably, when going to sleep? */ static void audit_worker(void *arg) @@ -434,6 +441,9 @@ * both should be NULL, and this is used to indicate that audit is being * disabled. Any previous cred/vnode will be closed and freed. We re-enable * generating rotation requests to auditd. + * + * XXXRW: We'd like to be able to rotate for slices other than + * audit_base_slice in the future, as well. */ void audit_rotate_vnode(struct ucred *cred, struct vnode *vp) @@ -473,6 +483,10 @@ } } +/* + * XXXRW: Can replace void *arg with a simple audit_slice pointer now. + * Perhaps rename to audit_worker_start() and need an audit_worker_stop(). + */ void audit_worker_init(void *arg) { From owner-p4-projects@FreeBSD.ORG Wed Aug 5 19:36:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 975B51065672; Wed, 5 Aug 2009 19:36:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 572A5106564A for ; Wed, 5 Aug 2009 19:36:07 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 44BAD8FC08 for ; Wed, 5 Aug 2009 19:36:07 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75Ja7Rg091679 for ; Wed, 5 Aug 2009 19:36:07 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75Ja7Jk091677 for perforce@freebsd.org; Wed, 5 Aug 2009 19:36:07 GMT (envelope-from trasz@freebsd.org) Date: Wed, 5 Aug 2009 19:36:07 GMT Message-Id: <200908051936.n75Ja7Jk091677@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167048 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 19:36:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=167048 Change 167048 by trasz@trasz_anger on 2009/08/05 19:35:23 Rewrite hrl_get_rules(2) and hrl_get_limits(2). Previous approach was racy. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#46 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#5 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#21 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#29 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/loginclass.h#3 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#11 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#46 (text+ko) ==== @@ -111,8 +111,8 @@ static void hrl_compute_available(struct proc *p, int64_t (*availablep)[], struct hrl_rule *(*rulesp)[]); -static struct sbuf *hrl_rules_to_sbuf(struct hrl_rule *usage, int nrules); static int hrl_rule_fully_specified(const struct hrl_rule *rule); +static void hrl_rule_to_sbuf(struct sbuf *sb, const struct hrl_rule *rule); MALLOC_DEFINE(M_HRL, "hrl", "Hierarchical Resource Limits"); @@ -273,7 +273,8 @@ printf("hrl_enforce_proc: XXX, \"delay\" unimplemented.\n"); return (0); case HRL_ACTION_LOG: - sb = hrl_rules_to_sbuf(rules[resource], 1); + sb = sbuf_new_auto(); + hrl_rule_to_sbuf(sb, rules[resource]); sbuf_finish(sb); printf("resource limit \"%s\" exceeded by process %d (%s), " "uid %d\n", sbuf_data(sb), p->p_pid, p->p_comm, @@ -1026,7 +1027,7 @@ } static int -hrl_rule_remove_callback(struct hrl_limits_head *limits, const struct hrl_rule *filter, void *arg3, void *arg4 __unused) +hrl_rule_remove_callback(struct hrl_limits_head *limits, const struct hrl_rule *filter, void *arg3) { int *found = (int *)arg3; @@ -1057,11 +1058,11 @@ return (ESRCH); } - error = loginclass_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found, NULL); + error = loginclass_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found); KASSERT(error == 0, ("loginclass_limits_foreach failed")); - error = ui_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found, NULL); + error = ui_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found); KASSERT(error == 0, ("ui_limits_foreach failed")); - error = gi_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found, NULL); + error = gi_limits_foreach(hrl_rule_remove_callback, filter, (void *)&found); KASSERT(error == 0, ("gi_limits_foreach failed")); sx_slock(&proctree_lock); @@ -1077,40 +1078,31 @@ return (ESRCH); } -static struct sbuf * -hrl_rules_to_sbuf(struct hrl_rule *rules, int nrules) +/* + * Appends a rule to the sbuf. + */ +static void +hrl_rule_to_sbuf(struct sbuf *sb, const struct hrl_rule *rule) { - int i; - struct sbuf *sb; - - sb = sbuf_new_auto(); - for (i = 0; i < nrules; i++) { - if (rules[i].hr_subject == HRL_SUBJECT_LOGINCLASS) { - KASSERT(rules[i].hr_subject_id != HRL_SUBJECT_ID_UNDEFINED, - ("rules[i].hr_subject_id != HRL_SUBJECT_ID_UNDEFINED")); - sbuf_printf(sb, "%s:%s:%s:%s=%jd", - hrl_subject_name(rules[i].hr_subject), - ((struct loginclass *)(long)rules[i].hr_subject_id)->lc_name, - hrl_resource_name(rules[i].hr_resource), - hrl_action_name(rules[i].hr_action), - rules[i].hr_amount); - } else { - sbuf_printf(sb, "%s:%d:%s:%s=%jd", - hrl_subject_name(rules[i].hr_subject), - (int)rules[i].hr_subject_id, - hrl_resource_name(rules[i].hr_resource), - hrl_action_name(rules[i].hr_action), - rules[i].hr_amount); - } - if (rules[i].hr_per != rules[i].hr_subject) - sbuf_printf(sb, "/%s,", - hrl_subject_name(rules[i].hr_per)); - else - sbuf_printf(sb, ","); + if (rule->hr_subject == HRL_SUBJECT_LOGINCLASS) { + KASSERT(rule->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED, + ("rule->hr_subject_id != HRL_SUBJECT_ID_UNDEFINED")); + sbuf_printf(sb, "%s:%s:%s:%s=%jd", + hrl_subject_name(rule->hr_subject), + ((struct loginclass *)(long)rule->hr_subject_id)->lc_name, + hrl_resource_name(rule->hr_resource), + hrl_action_name(rule->hr_action), + rule->hr_amount); + } else { + sbuf_printf(sb, "%s:%d:%s:%s=%jd", + hrl_subject_name(rule->hr_subject), + (int)rule->hr_subject_id, + hrl_resource_name(rule->hr_resource), + hrl_action_name(rule->hr_action), + rule->hr_amount); } - if (sbuf_len(sb) > 0) - sbuf_setpos(sb, sbuf_len(sb) - 1); - return (sb); + if (rule->hr_per != rule->hr_subject) + sbuf_printf(sb, "/%s", hrl_subject_name(rule->hr_per)); } /* @@ -1284,22 +1276,18 @@ } static int -hrl_get_rules_callback(struct hrl_limits_head *limits, const struct hrl_rule *filter, void *arg3, void *arg4) +hrl_get_rules_callback(struct hrl_limits_head *limits, const struct hrl_rule *filter, void *arg3) { struct hrl_limit *limit; - struct hrl_rule *buf = (struct hrl_rule *)arg3; - int copied = 0, *available = (int *)arg4; + struct sbuf *sb = (struct sbuf *)arg3; mtx_assert(&hrl_lock, MA_OWNED); LIST_FOREACH(limit, limits, hl_next) { - if (*available <= 0) - return (ERANGE); if (!hrl_rule_matches(limit->hl_rule, filter)) continue; - *(buf + copied) = *limit->hl_rule; - copied++; - (*available)--; + hrl_rule_to_sbuf(sb, limit->hl_rule); + sbuf_printf(sb, ","); } return (0); @@ -1308,10 +1296,11 @@ int hrl_get_rules(struct thread *td, struct hrl_get_rules_args *uap) { - int error, copied, bufsize = HRL_MAX_RULES, available; - char *inputstr; - struct sbuf *outputsbuf; - struct hrl_rule *filter, *buf; + int error; + size_t bufsize = HRL_MAX_RULES; + char *inputstr, *buf; + struct sbuf *sb; + struct hrl_rule *filter; struct hrl_limit *limit; struct proc *p; @@ -1325,20 +1314,14 @@ return (EINVAL); again: - buf = malloc(bufsize * sizeof(*buf), M_HRL, M_WAITOK); - available = bufsize; - copied = 0; + buf = malloc(bufsize, M_HRL, M_WAITOK); + sb = sbuf_new(NULL, buf, bufsize, SBUF_FIXEDLEN); + KASSERT(sb != NULL, ("sbuf_new failed")); + sx_slock(&proctree_lock); FOREACH_PROC_IN_SYSTEM(p) { mtx_lock(&hrl_lock); LIST_FOREACH(limit, &p->p_limits, hl_next) { - if (available <= 0) { - mtx_unlock(&hrl_lock); - sx_sunlock(&proctree_lock); - bufsize *= 4; - free(buf, M_HRL); - goto again; - } /* * Non-process rules will be added to the buffer later. * Adding them here would result in duplicated output. @@ -1347,33 +1330,32 @@ continue; if (!hrl_rule_matches(limit->hl_rule, filter)) continue; - *(buf + copied) = *limit->hl_rule; - copied++; - available--; + hrl_rule_to_sbuf(sb, limit->hl_rule); + sbuf_printf(sb, ","); } mtx_unlock(&hrl_lock); } sx_sunlock(&proctree_lock); mtx_lock(&hrl_lock); - loginclass_limits_foreach(hrl_get_rules_callback, filter, - buf + copied, &available); - copied = bufsize - available; - ui_limits_foreach(hrl_get_rules_callback, filter, - buf + copied, &available); - copied = bufsize - available; - gi_limits_foreach(hrl_get_rules_callback, filter, - buf + copied, &available); + loginclass_limits_foreach(hrl_get_rules_callback, filter, sb); + ui_limits_foreach(hrl_get_rules_callback, filter, sb); + gi_limits_foreach(hrl_get_rules_callback, filter, sb); mtx_unlock(&hrl_lock); - if (available <= 0) { + if (sbuf_overflowed(sb)) { + sbuf_delete(sb); + free(buf, M_HRL); bufsize *= 4; - free(buf, M_HRL); goto again; } - outputsbuf = hrl_rules_to_sbuf(buf, copied); + /* + * Remove trailing ",". + */ + if (sbuf_len(sb) > 0) + sbuf_setpos(sb, sbuf_len(sb) - 1); - error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); + error = hrl_write_outbuf(sb, uap->outbufp, uap->outbuflen); hrl_rule_release(filter); free(buf, M_HRL); @@ -1383,10 +1365,11 @@ int hrl_get_limits(struct thread *td, struct hrl_get_limits_args *uap) { - int error, copied, maxcopied = HRL_MAX_RULES; - char *inputstr; - struct sbuf *outputsbuf; - struct hrl_rule *filter, *buf; + int error; + size_t bufsize = HRL_MAX_RULES; + char *inputstr, *buf; + struct sbuf *sb; + struct hrl_rule *filter; struct hrl_limit *limit; struct proc *p; @@ -1400,50 +1383,52 @@ return (EINVAL); if (filter->hr_subject == HRL_SUBJECT_UNDEFINED) { - error = EINVAL; - goto out; + hrl_rule_release(filter); + return (EINVAL); } if (filter->hr_subject_id == HRL_SUBJECT_ID_UNDEFINED) { - error = EINVAL; - goto out; + hrl_rule_release(filter); + return (EINVAL); } if (filter->hr_subject != HRL_SUBJECT_PROCESS) { - error = EOPNOTSUPP; - goto out; + hrl_rule_release(filter); + return (EOPNOTSUPP); } -again: - buf = malloc(maxcopied * sizeof(*buf), M_HRL, M_WAITOK); - copied = 0; - p = pfind(filter->hr_subject_id); if (p == NULL) { - error = ESRCH; - goto out; + hrl_rule_release(filter); + return (ESRCH); } + +again: + buf = malloc(bufsize, M_HRL, M_WAITOK); + sb = sbuf_new(NULL, buf, bufsize, SBUF_FIXEDLEN); + KASSERT(sb != NULL, ("sbuf_new failed")); + mtx_lock(&hrl_lock); LIST_FOREACH(limit, &p->p_limits, hl_next) { - if (copied >= maxcopied) { - mtx_unlock(&hrl_lock); - PROC_UNLOCK(p); - maxcopied *= 4; - free(buf, M_HRL); - goto again; - } - *(buf + copied) = *limit->hl_rule; - copied++; + hrl_rule_to_sbuf(sb, limit->hl_rule); + sbuf_printf(sb, ","); } mtx_unlock(&hrl_lock); PROC_UNLOCK(p); - if (error) - goto out; + if (sbuf_overflowed(sb)) { + sbuf_delete(sb); + free(buf, M_HRL); + bufsize *= 4; + goto again; + } - outputsbuf = hrl_rules_to_sbuf(buf, copied); + /* + * Remove trailing ",". + */ + if (sbuf_len(sb) > 0) + sbuf_setpos(sb, sbuf_len(sb) - 1); - error = hrl_write_outbuf(outputsbuf, uap->outbufp, uap->outbuflen); -out: + error = hrl_write_outbuf(sb, uap->outbufp, uap->outbuflen); hrl_rule_release(filter); free(buf, M_HRL); return (error); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#5 (text+ko) ==== @@ -204,14 +204,14 @@ int loginclass_limits_foreach(int (*callback)(struct hrl_limits_head *limits, - const struct hrl_rule *filter, void *arg3, void *arg4), - const struct hrl_rule *filter, void *arg3, void *arg4) + const struct hrl_rule *filter, void *arg3), + const struct hrl_rule *filter, void *arg3) { int error; struct loginclass *lc; LIST_FOREACH(lc, &loginclasses, lc_next) { - error = (callback)(&lc->lc_limits, filter, arg3, arg4); + error = (callback)(&lc->lc_limits, filter, arg3); if (error) return (error); } ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#21 (text+ko) ==== @@ -1414,8 +1414,8 @@ int ui_limits_foreach(int (*callback)(struct hrl_limits_head *limits, - const struct hrl_rule *filter, void *arg3, void *arg4), - const struct hrl_rule *filter, void *arg3, void *arg4) + const struct hrl_rule *filter, void *arg3), + const struct hrl_rule *filter, void *arg3) { int error; struct uidinfo *uip, *nextuip; @@ -1425,7 +1425,7 @@ for (uih = &uihashtbl[uihash]; uih >= uihashtbl; uih--) { for (uip = LIST_FIRST(uih); uip; uip = nextuip) { nextuip = LIST_NEXT(uip, ui_hash); - error = (callback)(&uip->ui_limits, filter, arg3, arg4); + error = (callback)(&uip->ui_limits, filter, arg3); if (error) { rw_runlock(&uihashtbl_lock); return (error); @@ -1584,8 +1584,8 @@ int gi_limits_foreach(int (*callback)(struct hrl_limits_head *limits, - const struct hrl_rule *filter, void *arg3, void *arg4), - const struct hrl_rule *filter, void *arg3, void *arg4) + const struct hrl_rule *filter, void *arg3), + const struct hrl_rule *filter, void *arg3) { int error; struct gidinfo *gip, *nextgip; @@ -1595,7 +1595,7 @@ for (gih = &gihashtbl[gihash]; gih >= gihashtbl; gih--) { for (gip = LIST_FIRST(gih); gip; gip = nextgip) { nextgip = LIST_NEXT(gip, gi_hash); - error = (callback)(&gip->gi_limits, filter, arg3, arg4); + error = (callback)(&gip->gi_limits, filter, arg3); if (error) { rw_runlock(&gihashtbl_lock); return (error); ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#29 (text+ko) ==== @@ -138,7 +138,6 @@ void hrl_usage_subtract(struct hrl_usage *dest, const struct hrl_usage *src); void hrl_proc_exiting(struct proc *p); - void hrl_proc_loginclass_changed(struct proc *p); void hrl_proc_ucred_changed(struct proc *p); ==== //depot/projects/soc2009/trasz_limits/sys/sys/loginclass.h#3 (text+ko) ==== @@ -42,8 +42,8 @@ void loginclass_release(struct loginclass *lc); struct loginclass *loginclass_find(const char *name); int loginclass_limits_foreach(int (*callback)(struct hrl_limits_head *limits, - const struct hrl_rule *filter, void *arg3, void *arg4), - const struct hrl_rule *filter, void *arg3, void *arg4); + const struct hrl_rule *filter, void *arg3), + const struct hrl_rule *filter, void *arg3); #endif /* !_SYS_LOGINCLASS_H_ */ ==== //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#11 (text+ko) ==== @@ -160,8 +160,8 @@ void uihashinit(void); void uihold(struct uidinfo *uip); int ui_limits_foreach(int (*callback)(struct hrl_limits_head *limits, - const struct hrl_rule *filter, void *arg3, void *arg4), - const struct hrl_rule *filter, void *arg3, void *arg4); + const struct hrl_rule *filter, void *arg3), + const struct hrl_rule *filter, void *arg3); struct gidinfo *gifind(gid_t gid); struct gidinfo @@ -170,8 +170,8 @@ void gihashinit(void); void gihold(struct gidinfo *gip); int gi_limits_foreach(int (*callback)(struct hrl_limits_head *limits, - const struct hrl_rule *filter, void *arg3, void *arg4), - const struct hrl_rule *filter, void *arg3, void *arg4); + const struct hrl_rule *filter, void *arg3), + const struct hrl_rule *filter, void *arg3); #endif /* _KERNEL */ #endif /* !_SYS_RESOURCEVAR_H_ */ From owner-p4-projects@FreeBSD.ORG Wed Aug 5 19:37:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CAE7C1065673; Wed, 5 Aug 2009 19:37:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8AF061065670 for ; Wed, 5 Aug 2009 19:37:08 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 79DC78FC0C for ; Wed, 5 Aug 2009 19:37:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75Jb8rB091759 for ; Wed, 5 Aug 2009 19:37:08 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75Jb8Ol091757 for perforce@freebsd.org; Wed, 5 Aug 2009 19:37:08 GMT (envelope-from trasz@freebsd.org) Date: Wed, 5 Aug 2009 19:37:08 GMT Message-Id: <200908051937.n75Jb8Ol091757@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167049 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 19:37:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=167049 Change 167049 by trasz@trasz_anger on 2009/08/05 19:36:57 Reduce chattiness. User should know what he's asking about. Affected files ... .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#22 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#22 (text+ko) ==== @@ -196,7 +196,6 @@ err(1, "hrl_get_limits"); } while (error && errno == ERANGE); - printf("Resource utilisation:\n"); print_rules(outbuf); free(filter); free(outbuf); @@ -238,7 +237,7 @@ if (*tmp == ',') *tmp = '\n'; - printf("Resource utilisation:\n%s\n", outbuf); + printf("%s\n", outbuf); free(filter); free(outbuf); } @@ -269,7 +268,6 @@ err(1, "hrl_get_rules"); } while (error && errno == ERANGE); - printf("Defined resource limits:\n"); print_rules(outbuf); free(outbuf); } From owner-p4-projects@FreeBSD.ORG Wed Aug 5 19:56:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2A3A61065670; Wed, 5 Aug 2009 19:56:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB36D106564A for ; Wed, 5 Aug 2009 19:56:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B67FF8FC17 for ; Wed, 5 Aug 2009 19:56:29 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75JuTiZ093591 for ; Wed, 5 Aug 2009 19:56:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75JuTlT093589 for perforce@freebsd.org; Wed, 5 Aug 2009 19:56:29 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 19:56:29 GMT Message-Id: <200908051956.n75JuTlT093589@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167050 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 19:56:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=167050 Change 167050 by rwatson@rwatson_cinnamon on 2009/08/05 19:55:43 Fix warnings. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.c#7 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.c#7 (text+ko) ==== @@ -171,7 +171,7 @@ int nbytes = 0; /*Remaining bytes */ struct bsm_rec_hdr *audit_slice_dev_buf; struct audit_slice *as; - void *as_rec; + void *as_rec = NULL; as = dev->si_drv1; @@ -204,7 +204,7 @@ * longer than MAX_AUDIT_RECORD_SIZE, or less than * sizeof(*audit_slice_dev_buf). */ - recsz = be32dec (audit_slice_dev_buf->rec_byte_count); + recsz = be32toh(audit_slice_dev_buf->rec_byte_count); as_rec = (void *)malloc((unsigned long)recsz, M_AUDITBSM, M_WAITOK | M_ZERO); @@ -224,7 +224,8 @@ * XXXRW: Only free as_rec if we allocated it. */ free(audit_slice_dev_buf, M_TEMP); - free(as_rec, M_AUDITBSM); + if (as_rec != NULL) + free(as_rec, M_AUDITBSM); return (error); } From owner-p4-projects@FreeBSD.ORG Wed Aug 5 20:45:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B9B7C1065670; Wed, 5 Aug 2009 20:45:23 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 794D0106566B for ; Wed, 5 Aug 2009 20:45:23 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 673428FC1B for ; Wed, 5 Aug 2009 20:45:23 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75KjNcF099115 for ; Wed, 5 Aug 2009 20:45:23 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75KjNbG099113 for perforce@freebsd.org; Wed, 5 Aug 2009 20:45:23 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 5 Aug 2009 20:45:23 GMT Message-Id: <200908052045.n75KjNbG099113@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 167051 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 20:45:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=167051 Change 167051 by pgj@petymeg-current on 2009/08/05 20:44:26 - Introduce session_type, as a possibility for handling multiple network stack instances (in the future) and create access to the kernel in a more abstract way (suggested by: rwatson). - Move an IPsec-related section into an #ifdef in netstat.h, because it caused problems when compiling applications. - Chase the API changes in the applications. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/contrib/bsnmp/snmp_mibII/mibII_tcp.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/contrib/bsnmp/snmp_mibII/mibII_udp.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#58 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_bpf.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_if.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#55 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_mbuf.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_socket.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#25 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#63 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/bpf.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#35 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/if.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#33 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#45 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/mbuf.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/unix.c#21 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/nettop/main.c#12 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/contrib/bsnmp/snmp_mibII/mibII_tcp.c#5 (text+ko) ==== @@ -72,11 +72,14 @@ struct socket_type_iterator *stip; const struct socket_type *stp; struct sockaddr_type *satp; + struct session_type *session; int error; struct in_addr in; in_addr_t inaddr; + session = netstat_session_new(NULL); + len = sizeof(tcpstat); if (sysctlbyname("net.inet.tcp.stats", &tcpstat, &len, NULL, 0) == -1) { syslog(LOG_ERR, "net.inet.tcp.stats: %m"); @@ -92,8 +95,8 @@ syslog(LOG_ERR, "netstat_stl_alloc() in fetch_tcp()"); return (-1); } - if (netstat_socket(PF_INET, 0, IPPROTO_TCP, stlp, NETSTAT_SOCKET_ALL, - NULL) < 0) { + if (netstat_socket(session, PF_INET, 0, IPPROTO_TCP, stlp, + NETSTAT_SOCKET_ALL) < 0) { error = netstat_stl_geterror(stlp); syslog(LOG_ERR, "netstat_socket: %s", netstat_strerror(error)); return (-1); @@ -155,6 +158,7 @@ qsort(tcpoids, tcp_total, sizeof(tcpoids[0]), tcp_compare); netstat_sti_free(stip); netstat_stl_free(stlp); + netstat_session_free(session); return (0); } ==== //depot/projects/soc2009/pgj_libstat/src/contrib/bsnmp/snmp_mibII/mibII_udp.c#5 (text+ko) ==== @@ -63,12 +63,15 @@ struct socket_type_iterator *stip; const struct socket_type *stp; struct sockaddr_type *satp; + struct session_type *session; int error; struct asn_oid *oid; struct in_addr in; in_addr_t inaddr; + session = netstat_session_new(NULL); + len = sizeof(udpstat); if (sysctlbyname("net.inet.udp.stats", &udpstat, &len, NULL, 0) == -1) { syslog(LOG_ERR, "net.inet.udp.stats: %m"); @@ -84,8 +87,8 @@ syslog(LOG_ERR, "netstat_stl_alloc() in fetch_udp()"); return (-1); } - if (netstat_socket(PF_INET, 0, IPPROTO_UDP, stlp, NETSTAT_SOCKET_ALL, - NULL) < 0) { + if (netstat_socket(session, PF_INET, 0, IPPROTO_UDP, stlp, + NETSTAT_SOCKET_ALL) < 0) { error = netstat_stl_geterror(stlp); syslog(LOG_ERR, "netstat_socket: %s", netstat_strerror(error)); return (-1); @@ -129,6 +132,7 @@ qsort(udpoids, udp_total, sizeof(udpoids[0]), udp_compare); netstat_sti_free(stip); netstat_stl_free(stlp); + netstat_session_free(session); return (0); } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#58 (text+ko) ==== @@ -60,22 +60,11 @@ #define NETSTAT_ERROR_INVALID 7 /* Flags for netstat_socket(): */ -#define NETSTAT_SOCKET_KVM 0x01 /* Use KVM. */ -#define NETSTAT_SOCKET_ALL 0x02 /* Return all connections. */ - -/* netstat_mbuf(): */ -#define NETSTAT_MBUF_KVM 0x01 +#define NETSTAT_SOCKET_ALL 0x01 /* Return all connections. */ /* netstat_interface(): */ -#define NETSTAT_INTERFACE_KVM 0x01 -#define NETSTAT_INTERFACE_ALL 0x02 - -/* netstat_bpf(): */ -#define NETSTAT_BPF_KVM 0x01 +#define NETSTAT_INTERFACE_ALL 0x01 -/* netstat_stat(): */ -#define NETSTAT_STAT_KVM 0x01 - /* Testing flags for interface_type: */ #define NETSTAT_IF_UP 0x01 /* interface is up */ @@ -137,11 +126,13 @@ bpfdir_MAX, }; +#ifdef IPSEC enum pfkey_msgtarget { pfkey_Sendup_One = KEY_SENDUP_ONE, pfkey_Sendup_All = KEY_SENDUP_ALL, pfkey_Sendup_Registered = KEY_SENDUP_REGISTERED, }; +#endif /* !IPSEC */ enum stat { stat_TCP = 0, @@ -182,6 +173,8 @@ stat_Invalid, }; +struct session_type; + struct socket_type; struct sockaddr_type; struct sockbuf_type; @@ -241,7 +234,13 @@ __BEGIN_DECLS const char *netstat_strerror(int); +const char *netstat_kvmerror(const struct session_type *); + +/* "Session" */ +struct session_type *netstat_session_new(void* kvm_handle); +void netstat_session_free(struct session_type *); + /* "Socket" */ /* Socket list: */ @@ -265,8 +264,8 @@ void netstat_st_free(struct socket_type *stp); void netstat_sat_free(struct sockaddr_type *satp); -int netstat_socket(int domain, int type, int protocol, - struct socket_type_list *, int flags, void *kvm_handle); +int netstat_socket(const struct session_type *, int domain, int type, + int protocol, struct socket_type_list *, int flags); /* Accessor functions: */ int netstat_st_get_family(const struct socket_type *stp); @@ -311,7 +310,8 @@ void netstat_mbt_free(struct mbuf_type *); int netstat_mbt_geterror(const struct mbuf_type *); -int netstat_mbuf(struct mbuf_type *stats, int flags, void *kvm_handle); +int netstat_mbuf(const struct session_type *, struct mbuf_type *stats, + int flags); const struct buffer_type *netstat_mbt_get_mbuf(const struct mbuf_type *); const struct buffer_type *netstat_mbt_get_cluster(const struct mbuf_type *); @@ -353,8 +353,8 @@ void netstat_it_free(struct interface_type *); void netstat_iat_free(struct intfaddr_type *); -int netstat_interface(const char *name, int domain, - struct interface_type_list *list, int flags, void *kvm_handle); +int netstat_interface(const struct session_type *, const char *name, + int domain, struct interface_type_list *list, int flags); const char *netstat_it_get_name(const struct interface_type *); u_int64_t netstat_it_get_mtu(const struct interface_type *); @@ -402,8 +402,8 @@ void netstat_bpti_free(struct bpf_type_iterator *); void netstat_bpt_free(struct bpf_type *); -int netstat_bpf(const char *name, struct bpf_type_list *list, int flags, - void *kvm_handle); +int netstat_bpf(const struct session_type *, const char *name, + struct bpf_type_list *list, int flags); int netstat_bpt_get_flags(const struct bpf_type *); enum bpf_dir netstat_bpt_get_direction(const struct bpf_type *); @@ -425,9 +425,9 @@ void netstat_stat_free(struct stat_type *); int netstat_stat_geterror(const struct stat_type *); -int netstat_stat(enum stat, struct stat_type *, int flags, - void *kvm_handle); -int netstat_zerostat(enum stat); +int netstat_stat(const struct session_type *, enum stat, struct stat_type *, + int flags); +int netstat_zerostat(const struct session_type *, enum stat); const struct tcp_stat *netstat_get_tcpstats(const struct stat_type *); @@ -614,7 +614,7 @@ #ifdef INET6 const char *netstat_icmp6name(int); #endif -int netstat_icmp_get_maskrepl(void *kvm_handle); +int netstat_icmp_get_maskrepl(const struct session_type *); const struct pim_stat *netstat_get_pimstats(const struct stat_type *); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_bpf.c#2 (text+ko) ==== @@ -75,16 +75,14 @@ static const char *get_procname_kvm(kvm_t *kvm, pid_t pid, u_long ap); int -netstat_bpf(const char *name, struct bpf_type_list *list, int flags, - void *kvm_handle) +netstat_bpf(const struct session_type *session, const char *name, + struct bpf_type_list *list, __unused int flags) { - kvm_t *kvm; int result; result = -1; - if (flags & NETSTAT_BPF_KVM) { - kvm = (kvm_t *)kvm_handle; - result = bpf_iflist_kvm(list, name, kvm); + if (session->sst_flags & NETSTAT_SESSION_KVM) { + result = bpf_iflist_kvm(list, name, session->sst_kvm); } else result = bpf_iflist_sysctl(list, name); return (result); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_if.c#4 (text+ko) ==== @@ -61,18 +61,17 @@ void *saddr, struct interface_type *itp); #define KREAD(off, dst) do { \ - if ((list->itl_error = (kread_data(kvm, (uintptr_t)(off), &(dst), \ - sizeof(dst)))) != 0) { \ + if ((list->itl_error = (kread_data(session->sst_kvm, \ + (uintptr_t)(off), &(dst), sizeof(dst)))) != 0) { \ result = -1; \ goto end; \ } \ } while (0); int -netstat_interface(const char *name, int domain, - struct interface_type_list *list, int flags, void *kvm_handle) +netstat_interface(const struct session_type *session, const char *name, + int domain, struct interface_type_list *list, __unused int flags) { - kvm_t *kvm; int result, i; struct nlist nls[nlIF_MAX + 1]; @@ -104,14 +103,12 @@ result = -1; bzero(nls, sizeof(nls)); - if (flags & NETSTAT_INTERFACE_KVM) { + if (session->sst_flags & NETSTAT_SESSION_KVM) { /* Using kvm(3). */ - kvm = (kvm_t *)kvm_handle; - nls[nlIF_ifnet].n_name = strdup(if_symbol[nlIF_ifnet]); nls[nlIF_MAX].n_name = NULL; - if (kvm_nlist(kvm, nls) < 0) { + if (kvm_nlist(session->sst_kvm, nls) < 0) { list->itl_error = NETSTAT_ERROR_KVM; goto end; } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#55 (text+ko) ==== @@ -81,6 +81,11 @@ #include "netstat.h" +struct session_type { + int sst_flags; + kvm_t *sst_kvm; +}; + /* Address type: * local, foreign, node (Netgraph), raw (domain) */ @@ -125,6 +130,8 @@ #define NETSTAT_IF_IFADDR 0 #define NETSTAT_IF_IFMULTIADDR 1 +#define NETSTAT_SESSION_KVM 0x01 + /* Socket (PCB) type: a connection. */ struct socket_type { /* Static properties. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_mbuf.c#3 (text+ko) ==== @@ -60,7 +60,8 @@ static int fill_bt(struct memory_type_list *mtlp, struct buffer_type *btp, int allocator, const char *name); -int netstat_mbuf(struct mbuf_type *stats, int flags, void *kvm_handle) +int netstat_mbuf(const struct session_type *session, struct mbuf_type *stats, + __unused int flags) { struct memory_type_list *mtlp; struct nlist nls[nlMBF_MAX + 1]; @@ -68,7 +69,6 @@ struct mbstat_data mbsd; struct mbstat mbstat; - kvm_t *kvm; int error, result, i, len, bucket; const char *sfstats_mib = "kern.ipc.sfbstats"; @@ -85,15 +85,13 @@ bzero(&mbsd, sizeof(struct mbstat_data)); bzero(nls, sizeof(nls)); - if (flags & NETSTAT_MBUF_KVM) { + if (session->sst_flags & NETSTAT_SESSION_KVM) { /* kvm(3)-based monitoring */ - kvm = (kvm_t *)kvm_handle; - - if (memstat_kvm_all(mtlp, kvm_handle) < 0) { + if (memstat_kvm_all(mtlp, session->sst_kvm) < 0) { error = memstat_mtl_geterror(mtlp); if (error == MEMSTAT_ERROR_KVM) warnx("netstat_mbuf: memstat_kvm_all: %s", - kvm_geterr(kvm_handle)); + kvm_geterr(session->sst_kvm)); else warnx("netstat_mbuf: memstat_kvm_all: %s", memstat_strerror(error)); @@ -105,13 +103,14 @@ nls[i].n_name = strdup(mbstat_symbol[i]); nls[nlMBF_MAX].n_name = NULL; - if (kvm_nlist(kvm, nls) < 0) { + if (kvm_nlist(session->sst_kvm, nls) < 0) { stats->mbt_error = NETSTAT_ERROR_KVM; goto out; } #define KREAD(idx, dst) do { \ - if (kread_data(kvm, nls[idx].n_value, &(dst), sizeof(dst)) != 0) { \ + if (kread_data(session->sst_kvm, nls[idx].n_value, &(dst), \ + sizeof(dst)) != 0) { \ stats->mbt_error = NETSTAT_ERROR_KVM; \ goto out; \ } \ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_socket.c#3 (text+ko) ==== @@ -97,9 +97,9 @@ int type, struct in6_addr *in, u_short port); static int netstat_local_sockets(int, struct socket_type_list *, kvm_t *, - struct nlist *, int); + struct nlist *, int, int); static int netstat_inet_sockets(int, int, struct socket_type_list *, - kvm_t *, struct nlist *, int); + kvm_t *, struct nlist *, int, int); /* type names */ static const char *const socktype[] = @@ -494,10 +494,8 @@ int netstat_local_sockets(int type, struct socket_type_list *list, kvm_t *kvm, - struct nlist *nlp, int flags) + struct nlist *nlp, int flags, int use_kvm) { - int use_kvm = flags & NETSTAT_SOCKET_KVM; - switch (type) { case SOCK_STREAM: case SOCK_DGRAM: @@ -531,10 +529,8 @@ int netstat_inet_sockets(int domain, int protocol, struct socket_type_list *list, - kvm_t *kvm, struct nlist *nlp, int flags) + kvm_t *kvm, struct nlist *nlp, int flags, int use_kvm) { - int use_kvm = flags & NETSTAT_SOCKET_KVM; - switch (protocol) { case IPPROTO_TCP: case IPPROTO_UDP: @@ -585,17 +581,16 @@ int -netstat_socket(int domain, int type, int protocol, - struct socket_type_list *list, int flags, void *kvm_handle) +netstat_socket(const struct session_type *session, int domain, int type, + int protocol, struct socket_type_list *list, int flags) { - kvm_t *kvm; + int use_kvm = session->sst_flags & NETSTAT_SESSION_KVM; int result, i; struct nlist nls[nlUNP_MAX + 1 + nlINP_MAX + 1]; bzero(nls, sizeof(nls)); - if (flags & NETSTAT_SOCKET_KVM) { + if (use_kvm) { /* Use KVM to retrieve data. */ - kvm = (kvm_t *)kvm_handle; switch (domain) { case PF_UNSPEC: for (i = 0; i < nlUNP_MAX; i++) @@ -621,7 +616,7 @@ default: break; } - if (kvm_nlist(kvm, nls) < 0) { + if (kvm_nlist(session->sst_kvm, nls) < 0) { list->stl_error = NETSTAT_ERROR_KVM; result = -1; goto end; @@ -630,26 +625,28 @@ switch (domain) { case PF_UNSPEC: /* "Everything" */ - result = netstat_local_sockets(0, list, kvm, nls, flags); + result = netstat_local_sockets(0, list, session->sst_kvm, nls, + flags, use_kvm); if (result < 0) goto end; - result = netstat_inet_sockets(PF_INET, 0, list, kvm, - &nls[nlUNP_MAX + 1], flags); + result = netstat_inet_sockets(PF_INET, 0, list, + session->sst_kvm, &nls[nlUNP_MAX + 1], flags, use_kvm); if (result < 0) goto end; - result = netstat_inet_sockets(PF_INET6, 0, list, kvm, - &nls[nlUNP_MAX + 1], flags); + result = netstat_inet_sockets(PF_INET6, 0, list, + session->sst_kvm, &nls[nlUNP_MAX + 1], flags, use_kvm); if (result < 0) goto end; break; case PF_LOCAL: - result = (netstat_local_sockets(type, list, kvm, nls, flags)); + result = (netstat_local_sockets(type, list, session->sst_kvm, + nls, flags, use_kvm)); goto end; break; case PF_INET: case PF_INET6: - result = (netstat_inet_sockets(domain, protocol, list, kvm, - nls, flags)); + result = (netstat_inet_sockets(domain, protocol, list, + session->sst_kvm, nls, flags, use_kvm)); goto end; break; default: ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#25 (text+ko) ==== @@ -102,8 +102,8 @@ }; int -netstat_stat(enum stat type, struct stat_type *sttp, int flags, - void *kvm_handle) +netstat_stat(const struct session_type *session, enum stat type, + struct stat_type *sttp, __unused int flags) { char *buffer; char symbuf[64]; @@ -123,9 +123,9 @@ sttp->stt_type = type; bzero(&head, sizeof(head)); - if (flags & NETSTAT_STAT_KVM) { + if (session->sst_flags & NETSTAT_SESSION_KVM) { sprintf(symbuf, "%s_header", stat_info[sttp->stt_type].kvm); - res = read_kvm(kvm_handle, symbuf, &head, sizeof(head)); + res = read_kvm(session->sst_kvm, symbuf, &head, sizeof(head)); if (res != 0) { sttp->stt_error = NETSTAT_ERROR_KVM; return (-1); @@ -139,7 +139,7 @@ sttp->stt_error = NETSTAT_ERROR_NOMEMORY; return (-1); } - res = read_kvm(kvm_handle, stat_info[sttp->stt_type].kvm, + res = read_kvm(session->sst_kvm, stat_info[sttp->stt_type].kvm, buffer, head.sth_len); if (res != 0) { sttp->stt_error = NETSTAT_ERROR_KVM; @@ -188,20 +188,20 @@ } int -netstat_icmp_get_maskrepl(void *kvm_handle) +netstat_icmp_get_maskrepl(const struct session_type *session) { int res; res = 0; - if (kvm_handle == NULL) { - if (read_sysctl("net.inet.icmp.maskrepl", &res, + if (session->sst_flags & NETSTAT_SESSION_KVM) { + if (read_kvm(session->sst_kvm, "_icmpmaskrepl", &res, sizeof(res)) < 0) { warn("netstat_icmp_get_maskrepl"); return (res); } } else { - if (read_kvm(kvm_handle, "_icmpmaskrepl", &res, + if (read_sysctl("net.inet.icmp.maskrepl", &res, sizeof(res)) < 0) { warn("netstat_icmp_get_maskrepl"); return (res); @@ -249,12 +249,15 @@ } int -netstat_zerostat(enum stat type) +netstat_zerostat(const struct session_type *session, enum stat type) { char symbuf[64]; char buffer[1024]; struct stat_header head; + if (session->sst_flags & NETSTAT_SESSION_KVM) + return (-1); /* unsupported */ + if (type >= stat_MAX) { return (-1); } ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#63 (text+ko) ==== @@ -152,6 +152,38 @@ } } +const char * +netstat_kvmerror(const struct session_type *session) +{ + if (session->sst_flags & NETSTAT_SESSION_KVM) + return (kvm_geterr(session->sst_kvm)); + return ("Unknown error"); +} + +struct session_type * +netstat_session_new(void *kvm_handle) +{ + struct session_type *sstp; + + sstp = malloc(sizeof(*sstp)); + if (sstp == NULL) + return (NULL); + + bzero(sstp, sizeof(*sstp)); + + if (kvm_handle != NULL) { + sstp->sst_flags |= NETSTAT_SESSION_KVM; + sstp->sst_kvm = (kvm_t *)kvm_handle; + } + return (sstp); +} + +void +netstat_session_free(struct session_type *session) +{ + free(session); +} + struct socket_type_list * netstat_stl_alloc(void) { ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/bpf.c#4 (text+ko) ==== @@ -56,21 +56,15 @@ /* print bpf stats */ void -bpf_stats(char *ifname, void *kvmd) +bpf_stats(const struct session_type *session, char *ifname) { struct bpf_type_list *bptlp; struct bpf_type_iterator *bptip = NULL; const struct bpf_type *bptp; - int bpt_flags, error; + int error; char flagbuf[12]; - kvm_t *kvm; - - kvm = (kvm_t *)kvmd; - bpt_flags = 0; - if (kvmd != NULL) - bpt_flags |= NETSTAT_BPF_KVM; bptlp = netstat_bptl_alloc(); if (bptlp == NULL) { @@ -78,10 +72,10 @@ return; } - if (netstat_bpf(ifname, bptlp, bpt_flags, kvm)) { + if (netstat_bpf(session, ifname, bptlp, 0)) { error = netstat_bptl_geterror(bptlp); if (error == NETSTAT_ERROR_KVM) { - warnx("netstat_bpf: %s", kvm_geterr(kvm)); + warnx("netstat_bpf: %s", netstat_kvmerror(session)); } else { warnx("netstat_bpf: %s", netstat_strerror(error)); } ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/extern.h#35 (text+ko) ==== @@ -71,7 +71,7 @@ const char *pluralies(uintmax_t); int sotoxsocket(struct socket *, struct xsocket *); -void inetpr(void *, int, int); +void inetpr(const struct session_type *, int, int); void inetppr(const struct socket_type *); void unixdomainpr(const struct socket_type *); void tcp_stats(const struct stat_type *); @@ -111,12 +111,12 @@ void inet6print(struct in6_addr *, int, const char *, int); #endif /*INET6*/ -void mbpr(void *); +void mbpr(const struct session_type *); void hostpr(u_long, u_long); void impstats(u_long, u_long); -void intpr(int, void *, void (*)(char *)); +void intpr(const struct session_type *, int, void (*)(char *)); void pr_rthdr(int); void pr_family(int); @@ -151,7 +151,7 @@ void netgraphprotopr(u_long, const char *, int, int); #endif -void unixpr(void *); +void unixpr(const struct session_type *); void esis_stats(u_long, const char *, int, int); void clnp_stats(u_long, const char *, int, int); @@ -164,4 +164,4 @@ void mroutepr(u_long, u_long, u_long); void mrt_stats(const struct stat_type *); -void bpf_stats(char *, void *); +void bpf_stats(const struct session_type *, char *); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/if.c#5 (text+ko) ==== @@ -79,7 +79,7 @@ #define YES 1 #define NO 0 -static void sidewaysintpr(int, void *); +static void sidewaysintpr(const struct session_type *, int); static void catchalarm(int); /* @@ -160,10 +160,9 @@ * Print a description of the network interfaces. */ void -intpr(int interval1, void *kvm_handle, void (*pfunc)(char *)) +intpr(const struct session_type *session, int interval1, void (*pfunc)(char *)) { int it_flags; - kvm_t *kvm; struct interface_type_list *itlp; struct interface_type_iterator *itip; @@ -175,18 +174,13 @@ char if_name[16]; int error, i, network_layer, link_layer; - if (kvm_handle == NULL) - return; - if (interval1) { - sidewaysintpr(interval1, kvm_handle); + sidewaysintpr(session, interval1); return; } - kvm = (kvm_t *)kvm_handle; it_flags = 0; it_flags |= NETSTAT_INTERFACE_ALL; - it_flags |= NETSTAT_INTERFACE_KVM; itlp = netstat_itl_alloc(); if (itlp == NULL) { @@ -194,10 +188,11 @@ return; } - if (netstat_interface(interface, af, itlp, it_flags, kvm) < 0) { + if (netstat_interface(session, interface, af, itlp, it_flags) < 0) { error = netstat_itl_geterror(itlp); if (error == NETSTAT_ERROR_KVM) { - warnx("netstat_interface: %s", kvm_geterr(kvm)); + warnx("netstat_interface: %s", + netstat_kvmerror(session)); } else warnx("netstat_interface: %s", netstat_strerror(error)); goto out; @@ -342,9 +337,8 @@ * First line printed at top of screen is always cumulative. */ static void -sidewaysintpr(int interval1, void *kvm_handle) +sidewaysintpr(const struct session_type *session, int interval1) { - kvm_t *kvm; int it_flags; struct itimerval interval_it; @@ -359,13 +353,8 @@ const struct face_type *fin, *fout; const struct interface_type *itp; - if (kvm_handle == NULL) - return; - it_flags = 0; - it_flags |= NETSTAT_INTERFACE_KVM; it_flags |= NETSTAT_INTERFACE_ALL; - kvm = (kvm_t *)kvm_handle; (void)signal(SIGALRM, catchalarm); signalled = NO; @@ -380,10 +369,11 @@ warn("netstat_itl_alloc()"); return; } - if (netstat_interface(interface, PF_UNSPEC, itlp, it_flags, kvm) < 0) { + if (netstat_interface(session, interface, PF_UNSPEC, itlp, + it_flags) < 0) { error = netstat_itl_geterror(itlp); if (error == NETSTAT_ERROR_KVM) { - warnx("netstat_interface: %s", kvm_geterr(kvm)); + warnx("netstat_interface: %s", netstat_kvmerror(session)); } else warnx("netstat_interface: %s", netstat_strerror(error)); netstat_itl_free(itlp); @@ -413,10 +403,12 @@ warn("netstat_itl_alloc()"); return; } - if (netstat_interface(interface, PF_UNSPEC, itlp, it_flags, kvm) < 0) { + if (netstat_interface(session, interface, PF_UNSPEC, itlp, + it_flags) < 0) { error = netstat_itl_geterror(itlp); if (error == NETSTAT_ERROR_KVM) { - warnx("netstat_interface: %s", kvm_geterr(kvm)); + warnx("netstat_interface: %s", + netstat_kvmerror(session)); } else warnx("netstat_interface: %s", netstat_strerror(error)); netstat_itl_free(itlp); ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/inet.c#33 (text+ko) ==== @@ -105,17 +105,15 @@ * -a (all) flag is specified. */ void -inetpr(void *kvmd, int family, int proto) +inetpr(const struct session_type *session, int family, int proto) { struct socket_type_list *stlp; int error, st_flags; - kvm_t *kvm; #ifdef USE_ITERATOR_TYPE struct socket_type_iterator *stip; const struct socket_type *stp; #endif - kvm = (kvm_t *)kvmd; stlp = netstat_stl_alloc(); if (stlp == NULL) { warn("netstat_stl_alloc"); @@ -123,15 +121,13 @@ } st_flags = 0; - if (!live) - st_flags |= NETSTAT_SOCKET_KVM; if (aflag) st_flags |= NETSTAT_SOCKET_ALL; - if (netstat_socket(family, 0, proto, stlp, st_flags, kvm) < 0) { + if (netstat_socket(session, family, 0, proto, stlp, st_flags) < 0) { error = netstat_stl_geterror(stlp); if (error == NETSTAT_ERROR_KVM) - warnx("netstat_socket: %s", kvm_geterr(kvm)); + warnx("netstat_socket: %s", netstat_kvmerror(session)); else warnx("netstat_socket: %s", netstat_strerror(error)); return; @@ -546,9 +542,6 @@ #undef p #undef p1a #undef p2 - if (live) - printf("\tICMP address mask responses are %sabled\n", - netstat_icmp_get_maskrepl(NULL) ? "en" : "dis"); } /* ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#45 (text+ko) ==== @@ -222,8 +222,10 @@ atalkprotox, NULL }; static void connpr(const struct socket_type *); -static void statpr(void (*)(const struct stat_type *), enum stat, const char *); -static void printproto(struct protox *, const char *); +static void statpr(const struct session_type *, + void (*)(const struct stat_type *), enum stat, const char *); +static void printproto(const struct session_type *, struct protox *, + const char *); static void usage(void); static struct protox *name2protox(const char *); static struct protox *knownname(const char *); @@ -269,6 +271,7 @@ int error, st_flags; struct socket_type_iterator *stip; const struct socket_type *stp; + struct session_type *session; af = AF_UNSPEC; @@ -423,13 +426,17 @@ if (Bflag) { if (!live) kread(0, NULL, 0); - bpf_stats(interface, kvmd); + session = netstat_session_new(kvmd); + bpf_stats(session, interface); + netstat_session_free(session); exit(0); } if (mflag) { if (!live) kread(0, NULL, 0); - mbpr(kvmd); + session = netstat_session_new(kvmd); + mbpr(session); + netstat_session_free(session); exit(0); } #if 0 @@ -448,30 +455,35 @@ #endif if (iflag && !sflag) { kread(0, NULL, 0); - intpr(interval, kvmd, NULL); + session = netstat_session_new(kvmd); + intpr(session, interval, NULL); + netstat_session_free(session); exit(0); } if (rflag) { if (sflag) { if (!live) kread(0, NULL, 0); - statpr(rt_stats, stat_route, "routing"); + session = netstat_session_new(kvmd); + statpr(session, rt_stats, stat_route, "routing"); + netstat_session_free(session); } else { kread(0, NULL, 0); routepr(nl[N_RTREE].n_value); - } + } exit(0); } if (gflag) { kread(0, NULL, 0); + session = netstat_session_new(kvmd); if (sflag) { if (af == AF_INET || af == AF_UNSPEC) - statpr(mrt_stats, stat_mroute, + statpr(session, mrt_stats, stat_mroute, "IPv4 multicast forwarding"); #ifdef INET6 if (af == AF_INET6 || af == AF_UNSPEC) - statpr(mrt6_stats, stat_mroute6, + statpr(session, mrt6_stats, stat_mroute6, "IPv6 multicast forwarding"); #endif } else { @@ -485,38 +497,54 @@ nl[N_MIF6TABLE].n_value); #endif } + netstat_session_free(session); exit(0); } if (tp) { if (!live) kread(0, NULL, 0); - printproto(tp, tp->pr_name); + session = netstat_session_new(kvmd); + printproto(session, tp, tp->pr_name); + netstat_session_free(session); exit(0); } #ifdef IPSEC - if (af == PF_KEY || af == AF_UNSPEC) + if (af == PF_KEY || af == AF_UNSPEC) { + session = netstat_session_new(kvmd); for (tp = pfkeyprotox; tp->pr_name; tp++) - printproto(tp, tp->pr_name); + printproto(session, tp, tp->pr_name); + netstat_session_free(session); + } #endif /*IPSEC*/ #ifdef IPX if (af == AF_IPX || af == AF_UNSPEC) { + session = netstat_session_new(kvmd); for (tp = ipxprotox; tp->pr_name; tp++) - printproto(tp, tp->pr_name); + printproto(session, tp, tp->pr_name); + netstat_session_free(session); } #endif /* IPX */ - if (af == AF_APPLETALK || af == AF_UNSPEC) + if (af == AF_APPLETALK || af == AF_UNSPEC) { + session = netstat_session_new(kvmd); for (tp = atalkprotox; tp->pr_name; tp++) - printproto(tp, tp->pr_name); + printproto(session, tp, tp->pr_name); + netstat_session_free(session); + } #ifdef NETGRAPH - if (af == AF_NETGRAPH || af == AF_UNSPEC) + if (af == AF_NETGRAPH || af == AF_UNSPEC) { + session = netstat_session_new(kvmd); for (tp = netgraphprotox; tp->pr_name; tp++) - printproto(tp, tp->pr_name); + printproto(session, tp, tp->pr_name); + netstat_session_free(session); + } #endif /* NETGRAPH */ if (af == AF_UNIX && !sflag) { if (!live) kread(0, NULL, 0); - unixpr(kvmd); + session = netstat_session_new(kvmd); + unixpr(session); + netstat_session_free(session); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 5 21:16:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33F8B1065675; Wed, 5 Aug 2009 21:16:58 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E4B8E1065674 for ; Wed, 5 Aug 2009 21:16:57 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CA8248FC23 for ; Wed, 5 Aug 2009 21:16:57 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75LGvrZ013106 for ; Wed, 5 Aug 2009 21:16:57 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75LGv2Q013104 for perforce@freebsd.org; Wed, 5 Aug 2009 21:16:57 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 21:16:57 GMT Message-Id: <200908052116.n75LGv2Q013104@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167052 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 21:16:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=167052 Change 167052 by rwatson@rwatson_cinnamon on 2009/08/05 21:15:57 For now, rather than exposing audit_slice throughout the kernel, cache audit_base_slice's enabled/suspended flags in the previously used globals. Possibly not just "for now" since this also makes the per-syscall check more performant. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#11 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.h#4 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_syscalls.c#7 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_worker.c#5 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#11 (text) ==== @@ -84,6 +84,19 @@ SYSCTL_NODE(_security, OID_AUTO, audit, CTLFLAG_RW, 0, "TrustedBSD audit controls"); +/* + * Audit control settings that are set/read by system calls and are hence + * non-static. + * + * Define the audit control flags. + * + * XXXRW: Cache audit_base_slice->audit_enabled and + * audit_base_slice->audit_suspended in globals so that we can avoid + * dereferencing audit_base_slice for every system call entry. + */ +int audit_enabled; +int audit_suspended; + /* * The base audit slice statically declared. */ ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.h#4 (text) ==== @@ -52,8 +52,6 @@ * observed but should not be directly manipulated. The audit suspension * flag permits audit to be temporarily disabled without reconfiguring the * audit target. - * - * XXXRW: These are no longer needed if they're per-slice. */ extern int audit_enabled; extern int audit_suspended; @@ -193,12 +191,8 @@ } while (0) -/* - * XXXRW: Perhaps we should have audit_base_enabled or such as a global to - * avoid an extra pointer deref for every syscall? - */ #define AUDIT_SYSCALL_ENTER(code, td) do { \ - if (audit_base_slice->audit_enabled) { \ + if (audit_enabled) { \ audit_syscall_enter(code, td); \ } \ } while (0) ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_syscalls.c#7 (text) ==== @@ -397,6 +397,7 @@ audit_base_slice->audit_suspended = 1; audit_shutdown(NULL, 0); } + audit_suspended = audit_base_slice->audit_suspended; break; } if (uap->length != sizeof(udata.au_cond)) @@ -409,6 +410,7 @@ audit_base_slice->audit_suspended = 1; audit_shutdown(NULL, 0); } + audit_suspended = audit_base_slice->audit_suspended; break; case A_GETCLASS: @@ -856,6 +858,7 @@ * audit_worker? */ audit_base_slice->audit_suspended = 0; + audit_suspended = audit_base_slice->audit_suspended; audit_rotate_vnode(cred, vp); ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_worker.c#5 (text) ==== @@ -265,6 +265,7 @@ } (void)audit_send_trigger(AUDIT_TRIGGER_NO_SPACE); as->audit_suspended = 1; + audit_suspended = as->audit_suspended; /* FALLTHROUGH */ fail: @@ -469,6 +470,7 @@ as->audit_vp = vp; as->audit_file_rotate_wait = 0; as->audit_enabled = (as->audit_vp != NULL); + audit_enabled = as->audit_enabled; AUDIT_WORKER_UNLOCK(); /* From owner-p4-projects@FreeBSD.ORG Wed Aug 5 22:00:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 020161065672; Wed, 5 Aug 2009 22:00:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5D21106564A for ; Wed, 5 Aug 2009 22:00:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A40A48FC1C for ; Wed, 5 Aug 2009 22:00:45 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75M0j5r017199 for ; Wed, 5 Aug 2009 22:00:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75M0j47017197 for perforce@freebsd.org; Wed, 5 Aug 2009 22:00:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 5 Aug 2009 22:00:45 GMT Message-Id: <200908052200.n75M0j47017197@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167053 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 22:00:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=167053 Change 167053 by rwatson@rwatson_cinnamon on 2009/08/05 21:59:53 Correct syntax bug that prevented audit_new() from ever succeeding. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#12 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#12 (text) ==== @@ -312,8 +312,7 @@ return (NULL); mtx_lock(&(as->audit_mtx)); - no_record = (&(as->audit_suspended) || - !(as->audit_enabled)); + no_record = (as->audit_suspended || !as->audit_enabled); mtx_unlock(&(as->audit_mtx)); if (no_record) return (NULL); From owner-p4-projects@FreeBSD.ORG Wed Aug 5 22:33:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0BE731065670; Wed, 5 Aug 2009 22:33:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB0A4106566C for ; Wed, 5 Aug 2009 22:33:21 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9FDB48FC0C for ; Wed, 5 Aug 2009 22:33:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n75MXLG6021285 for ; Wed, 5 Aug 2009 22:33:21 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n75MXL15021282 for perforce@freebsd.org; Wed, 5 Aug 2009 22:33:21 GMT (envelope-from zec@fer.hr) Date: Wed, 5 Aug 2009 22:33:21 GMT Message-Id: <200908052233.n75MXL15021282@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167054 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Aug 2009 22:33:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=167054 Change 167054 by zec@zec_tpx32 on 2009/08/05 22:33:04 Back out socreate_vnet(), and merge in Rick Macklem's proposed kludge for sneaking in mount's creds as temporary td's creds when calling __rpc_nconf2socket. Having all this in place, NFS TCP sockets will be properly reconnected in the mount's vnet, even if this would be triggered by a FS operation from another jail / vnet. Affected files ... .. //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#32 edit .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_rc.c#9 edit .. //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#7 edit .. //depot/projects/vimage-commit2/src/sys/sys/socketvar.h#10 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#32 (text+ko) ==== @@ -342,24 +342,6 @@ socreate(int dom, struct socket **aso, int type, int proto, struct ucred *cred, struct thread *td) { - -#ifndef VIMAGE - return (socreate_vnet(dom, aso, type, proto, cred, td, NULL)); -#else - return (socreate_vnet(dom, aso, type, proto, cred, td, - CRED_TO_VNET(cred))); -#endif -} - -/* - * socreate_vnet returns a socket with a ref count of 1 in a vnet possibly - * different from CRED_TO_VNET(cred). The socket should be closed with - * soclose(). - */ -int -socreate_vnet(int dom, struct socket **aso, int type, int proto, - struct ucred *cred, struct thread *td, struct vnet *vnet) -{ struct protosw *prp; struct socket *so; int error; @@ -378,7 +360,7 @@ if (prp->pr_type != type) return (EPROTOTYPE); - so = soalloc(vnet); + so = soalloc(CRED_TO_VNET(cred)); if (so == NULL) return (ENOBUFS); ==== //depot/projects/vimage-commit2/src/sys/rpc/clnt_rc.c#9 (text+ko) ==== @@ -175,15 +175,16 @@ rc->rc_connecting = TRUE; mtx_unlock(&rc->rc_lock); + oldcred = td->td_ucred; + td->td_ucred = rc->rc_ucred; so = __rpc_nconf2socket(rc->rc_nconf); if (!so) { stat = rpc_createerr.cf_stat = RPC_TLIERROR; rpc_createerr.cf_error.re_errno = 0; + td->td_ucred = oldcred; goto out; } - oldcred = td->td_ucred; - td->td_ucred = rc->rc_ucred; if (rc->rc_privport) bindresvport(so, NULL); ==== //depot/projects/vimage-commit2/src/sys/rpc/rpc_generic.c#7 (text+ko) ==== @@ -258,13 +258,8 @@ return 0; so = NULL; -#ifndef VIMAGE error = socreate(si.si_af, &so, si.si_socktype, si.si_proto, curthread->td_ucred, curthread); -#else - error = socreate_vnet(si.si_af, &so, si.si_socktype, si.si_proto, - curthread->td_ucred, curthread, vnet0); -#endif if (error) return NULL; ==== //depot/projects/vimage-commit2/src/sys/sys/socketvar.h#10 (text+ko) ==== @@ -329,8 +329,6 @@ int socow_setup(struct mbuf *m0, struct uio *uio); int socreate(int dom, struct socket **aso, int type, int proto, struct ucred *cred, struct thread *td); -int socreate_vnet(int dom, struct socket **aso, int type, int proto, - struct ucred *cred, struct thread *td, struct vnet *vnet); int sodisconnect(struct socket *so); struct sockaddr *sodupsockaddr(const struct sockaddr *sa, int mflags); void sofree(struct socket *so); From owner-p4-projects@FreeBSD.ORG Thu Aug 6 06:56:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4815E1065670; Thu, 6 Aug 2009 06:56:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1328106566B for ; Thu, 6 Aug 2009 06:56:30 +0000 (UTC) (envelope-from tatsianka@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BF82B8FC1A for ; Thu, 6 Aug 2009 06:56:30 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n766uUO5089777 for ; Thu, 6 Aug 2009 06:56:30 GMT (envelope-from tatsianka@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n766uUTe089775 for perforce@freebsd.org; Thu, 6 Aug 2009 06:56:30 GMT (envelope-from tatsianka@FreeBSD.org) Date: Thu, 6 Aug 2009 06:56:30 GMT Message-Id: <200908060656.n766uUTe089775@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to tatsianka@FreeBSD.org using -f From: Tatsiana Severyna To: Perforce Change Reviews Cc: Subject: PERFORCE change 167058 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 06:56:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=167058 Change 167058 by tatsianka@tatsianka_zonder on 2009/08/06 06:55:53 puffs_vnop_pathconf: fix usage after free puffs_vnop_fsync: do not unlock/lock vnode if faf is set Nuke DTRACE. Reduce DPRINTF's I've added while porting. Comments Affected files ... .. //depot/projects/soc2009/tatsianka_puffs/libpuffs/callcontext.c#5 edit .. //depot/projects/soc2009/tatsianka_puffs/libpuffs/null.c#5 edit .. //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_msgif.c#7 edit .. //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_node.c#9 edit .. //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_subr.c#6 edit .. //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_sys.h#6 edit .. //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_vfsops.c#8 edit .. //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_vnops.c#9 edit .. //depot/projects/soc2009/tatsianka_puffs/putter/putter.c#6 edit Differences ... ==== //depot/projects/soc2009/tatsianka_puffs/libpuffs/callcontext.c#5 (text+ko) ==== @@ -47,7 +47,7 @@ #include "puffs_priv.h" -#if 1 +#if 0 #define DPRINTF(x) printf x #else #define DPRINTF(x) @@ -186,7 +186,10 @@ if (puffs_fakecc) return &fakecc; - /* XXX_TS MAP_ALIGNED(pu->pu_cc_stackshift) */ + /* + * Emulate MAP_ALIGNED(pu->pu_cc_stackshift) by allocating stacksize*2 + * bytes and unmapping extra pages + */ sp = mmap(NULL, stacksize * 2, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, -1, 0); if (sp == MAP_FAILED) ==== //depot/projects/soc2009/tatsianka_puffs/libpuffs/null.c#5 (text+ko) ==== @@ -207,7 +207,7 @@ * * Yes, this really really needs fixing. Yes, *REALLY*. * - * XXX_TS: Directly use struct fid, as fh larger then MAXFIDSZ is unsupported + * FreeBSD: Use struct fid, as file handles larger then MAXFIDSZ are unsupported */ /*ARGSUSED*/ ==== //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_msgif.c#7 (text+ko) ==== @@ -238,7 +238,6 @@ struct puffs_msgpark *park; void *m; - /* XXX check if M_NOWAIT if needed */ /* XXX_TS cansleep is always true */ m = malloc(len, M_PUFFS, (cansleep ? M_NOWAIT : M_WAITOK) | M_ZERO); if (m == NULL) { @@ -436,7 +435,6 @@ if (__predict_false((park->park_flags & PARKFLAG_DONE) || (park->park_flags & PARKFLAG_HASERROR))) { rv = park->park_preq->preq_rv; - DPRINTF(("puffs_msg_wait: park has error: %d; park=%p\n", rv, park)); mtx_unlock(&park->park_mtx); goto skipwait; } @@ -781,7 +779,7 @@ static void puffsop_suspend(struct puffs_mount *pmp) { - /* XXX: ignore */ + /* XXX ignore */ } static void ==== //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_node.c#9 (text+ko) ==== @@ -88,7 +88,6 @@ struct puffs_node_hashlist *plist; int error; - DTRACE(); KASSERT(mp != NULL, ("mp == NULL")); pmp = MPTOPUFFSMP(mp); @@ -105,11 +104,9 @@ goto bad; } - pnode = uma_zalloc(puffs_pnpool, M_WAITOK); - memset(pnode, 0, sizeof(struct puffs_node)); + pnode = uma_zalloc(puffs_pnpool, M_WAITOK | M_ZERO); error = getnewvnode("puffs", mp, &puffs_vnodeops, &vp); - DPRINTF(("puffs_getvnode: getnewvnode => %d; vp=%p mp=%p lock=%s\n", error, vp, mp, vp->v_interlock.lock_object.lo_name)); if (error) { uma_zfree(puffs_pnpool, pnode); goto bad; @@ -207,9 +204,7 @@ struct vnode *vp; int error; - DTRACE(); KASSERT(mp != NULL, ("mp == NULL")); - pmp = MPTOPUFFSMP(mp); /* userspace probably has this as a NULL op */ @@ -314,7 +309,6 @@ struct vnode *vp; int rv; - DTRACE(); /* * pmp_lock must be held if vref()'ing or vrele()'ing the * root vnode. the latter is controlled by puffs_inactive(). @@ -327,7 +321,6 @@ if (vp) { VI_LOCK(vp); mtx_unlock(&pmp->pmp_lock); - DPRINTF(("puffs_makeroot: vnode found: vp=%p mp=%p\n", vp, vp->v_mount)); vholdl(vp); vget(vp, lkflag | LK_INTERLOCK | LK_RETRY, curthread); vdrop(vp); @@ -383,14 +376,11 @@ struct vnode *vp; int rv; - DPRINTF(("puffs_cookie2vnode lkflag=%x\n", lkflag)); - /* * Handle root in a special manner, since we want to make sure * pmp_root is properly set. */ if (ck == pmp->pmp_root_cookie) { - DPRINTF(("puffs_cookie2vnode make root lkflag=%x\n", lkflag)); if ((rv = puffs_makeroot(pmp, lkflag))) return rv; *vpp = pmp->pmp_root; @@ -415,13 +405,9 @@ VI_LOCK(vp); mtx_unlock(&pmp->pmp_lock); - DPRINTF(("puffs_cookie2vnode vget vp=%p lkflag=%x lock=%x\n", vp, lkflag, lkflag & LK_TYPE_MASK)); vget(vp, lkflag | LK_INTERLOCK | LK_RETRY, curthread); *vpp = vp; - - ASSERT_VI_UNLOCKED(vp, "puffs_cookie2vnode"); - return 0; } @@ -480,7 +466,7 @@ mtx_lock(&pn->pn_mtx); if (--pn->pn_refcount == 0) { - DPRINTF(("puffs_releasenode: destroy puffs_node; pn_refcount=%d pn_vp=%p\n", pn->pn_refcount, pn->pn_vp)); + DPRINTF(("puffs_releasenode: destroy puffs_node pn_vp=%p\n", pn->pn_vp)); mtx_unlock(&pn->pn_mtx); mtx_destroy(&pn->pn_mtx); knlist_destroy(&pn->pn_sel.si_note); ==== //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_subr.c#6 (text+ko) ==== @@ -104,7 +104,7 @@ struct buf *bp = arg; size_t moved; - DTRACE(); + DPRINTF(("%s\n", __func__)); bp->b_error = checkerr(pmp, preq->preq_rv, __func__); if (bp->b_error == 0) { @@ -130,7 +130,7 @@ struct puffs_vnmsg_write *write_msg = (void *)preq; struct buf *bp = arg; - DTRACE(); + DPRINTF(("%s\n", __func__)); bp->b_error = checkerr(pmp, preq->preq_rv, __func__); if (bp->b_error == 0) { ==== //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_sys.h#6 (text+ko) ==== @@ -58,11 +58,9 @@ #ifdef PUFFSDEBUG extern int puffsdebug; /* puffs_subr.c */ -#define DTRACE() if (puffsdebug > 0) printf("%s\n", __func__) #define DPRINTF(x) if (puffsdebug > 0) printf x #define DPRINTF_VERBOSE(x) if (puffsdebug > 1) printf x #else -#define DTRACE() #define DPRINTF(x) #define DPRINTF_VERBOSE(x) #endif ==== //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_vfsops.c#8 (text+ko) ==== @@ -88,8 +88,6 @@ int error = 0, i; pid_t mntpid = curthread->td_proc->p_pid; - DTRACE(); - if (vfs_filteropt(mp->mnt_optnew, puffs_opts)) return EINVAL; @@ -126,7 +124,6 @@ args->pa_fhsize = MAXFIDSZ; /* sanitize file handle length */ - /* TODO increase pa_fhsize */ if (PUFFS_TOFHSIZE(args->pa_fhsize) > sizeof(struct fid)) { printf("puffs_mount: handle size %zu too large\n", args->pa_fhsize); @@ -220,7 +217,6 @@ if ((pmp->pmp_pi = putter_attach(mntpid, args->pa_fd, pmp, &puffs_putter)) == NULL) { error = ENOENT; - DPRINTF(("puffs_vfsop_mount: putter_attach attach error\n")); goto out; } @@ -241,9 +237,6 @@ mp, MPTOPUFFSMP(mp))); mp->mnt_data = pmp; - - DPRINTF(("puffs mount from: %s\n", args->pa_mntfromname)); - vfs_getnewfsid(mp); vfs_mountedfrom(mp, args->pa_mntfromname); @@ -263,7 +256,6 @@ struct puffs_mount *pmp; int error, force; - DTRACE(); error = 0; force = mntflags & MNT_FORCE; pmp = MPTOPUFFSMP(mp); @@ -359,7 +351,6 @@ int rv; - DTRACE(); rv = puffs_cookie2vnode(pmp, pmp->pmp_root_cookie, flags, 1, vpp); KASSERT(rv != PUFFS_NOSUCHCOOKIE, ("rv != PUFFS_NOSUCHCOOKIE")); @@ -390,10 +381,8 @@ * requesting statvfs from userspace would mean a deadlock. * Compensate. */ - if (pmp->pmp_status == PUFFSTAT_MOUNTING) { - DPRINTF(("puffs_vfsop_statfs: mounting\n")); + if (pmp->pmp_status == PUFFSTAT_MOUNTING) return EINPROGRESS; - } PUFFS_MSG_ALLOC(vfs, statvfs); puffs_msg_setinfo(park_statvfs, PUFFSOP_VFS, PUFFS_VFS_STATVFS, NULL); @@ -468,7 +457,6 @@ size_t argsize, fhlen; int error; - DTRACE(); if (pmp->pmp_args.pa_fhsize == 0) return EOPNOTSUPP; @@ -527,7 +515,6 @@ KASSERT(VNOVAL == VSIZENOTSET, ("VNOVAL == VSIZENOTSET")); #endif - DTRACE(); puffs_pnpool = uma_zcreate("puffpnpl", sizeof(struct puffs_node), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_ZINIT); puffs_msgif_init(); @@ -539,7 +526,6 @@ puffs_vfsop_uninit(struct vfsconf *vfsp) { - DTRACE(); puffs_msgif_destroy(); uma_zdestroy(puffs_pnpool); ==== //depot/projects/soc2009/tatsianka_puffs/puffs/puffs_vnops.c#9 (text+ko) ==== @@ -128,7 +128,6 @@ size_t argsize, fhlen; int error, ltype; - DTRACE(); if (pmp->pmp_args.pa_fhsize == 0) return EOPNOTSUPP; @@ -199,6 +198,9 @@ isdot = cnp->cn_namelen == 1 && *cnp->cn_nameptr == '.'; + DPRINTF(("puffs_lookup: \"%s\", parent vnode %p, op: %lx\n", + cnp->cn_nameptr, dvp, cnp->cn_nameiop)); + /* * Check if someone fed it into the cache */ @@ -227,8 +229,6 @@ puffs_msg_setinfo(park_lookup, PUFFSOP_VN, PUFFS_VN_LOOKUP, VPTOPNC(dvp)); - DPRINTF(("puffs_lookup: enqueue message: %.*s\n", (int) cnp->cn_namelen, cnp->cn_nameptr)); - puffs_msg_enqueue(pmp, park_lookup); puffs_unlockvnode(dpn, &dltype); error = puffs_msg_wait2(pmp, park_lookup, dpn, NULL); @@ -327,6 +327,9 @@ int dltype; int error; + DPRINTF(("puffs_create: dvp %p, cnp: %s\n", + dvp, ap->a_cnp->cn_nameptr)); + PUFFS_MSG_ALLOC(vn, create); puffs_makecn(&create_msg->pvnr_cn, &create_msg->pvnr_cn_cred, cnp, PUFFS_USE_FULLPNBUF(pmp)); @@ -375,7 +378,6 @@ int dltype; int error; - DTRACE(); PUFFS_MSG_ALLOC(vn, mknod); puffs_makecn(&mknod_msg->pvnr_cn, &mknod_msg->pvnr_cn_cred, cnp, PUFFS_USE_FULLPNBUF(pmp)); @@ -418,6 +420,8 @@ int ltype; int error; + DPRINTF(("puffs_open: vp %p, mode 0x%x\n", vp, mode)); + if (vp->v_type == VREG && mode & FWRITE && !EXISTSOP(pmp, WRITE)) return EROFS; @@ -697,7 +701,6 @@ puffs_msg_enqueue(pmp, park_inactive); PUFFS_MSG_RELEASE(inactive); } - DPRINTF(("puffs_vnop_inactive: vp=%p\n", vp)); pnode->pn_stat &= ~PNODE_DOINACT; /* @@ -736,7 +739,6 @@ struct vnode *vp = ap->a_vp; struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount); - DTRACE(); /* * first things first: check if someone is trying to reclaim the * root vnode. do not allow that to travel to userspace. @@ -931,12 +933,15 @@ PUFFS_VN_FSYNC, VPTOPNC(vp)); puffs_msg_enqueue(pmp, park_fsync); - puffs_unlockvnode(pn, <ype); - error = puffs_msg_wait2(pmp, park_fsync, pn, NULL); - error = checkerr(pmp, error, __func__); - + if (!dofaf) { + puffs_unlockvnode(pn, <ype); + error = puffs_msg_wait2(pmp, park_fsync, pn, NULL); + error = checkerr(pmp, error, __func__); + PUFFS_LOCKVNODE(pn, ltype, error); + } else { + error = 0; + } PUFFS_MSG_RELEASE(fsync); - PUFFS_LOCKVNODE(pn, ltype, error); return error; } @@ -1621,12 +1626,11 @@ puffs_unlockvnode(pn, <ype); error = puffs_msg_wait2(pmp, park_pathconf, pn, NULL); error = checkerr(pmp, error, __func__); - - PUFFS_MSG_RELEASE(pathconf); PUFFS_LOCKVNODE(pn, ltype, error); if (!error) *ap->a_retval = pathconf_msg->pvnr_retval; + PUFFS_MSG_RELEASE(pathconf); return error; } @@ -1680,7 +1684,6 @@ size_t tomove, moved; int error, dofaf, dobiodone; - DTRACE(); pmp = MPTOPUFFSMP(vp->v_mount); bp = ap->a_bp; error = 0; ==== //depot/projects/soc2009/tatsianka_puffs/putter/putter.c#6 (text+ko) ==== @@ -40,7 +40,6 @@ */ #include -#include #include #include #include @@ -115,7 +114,6 @@ size_t origres, moved; int error; - DPRINTF(("putter_fop_read (%p)\n", pi)); if (pi->pi_private == PUTTER_EMBRYO || pi->pi_private == PUTTER_DEAD) { printf("putter_fop_read: private %d not inited\n", pi->pi_idx); return ENOENT; @@ -200,8 +198,6 @@ struct putter_instance *pi = dev->si_drv1; int revents; - DPRINTF(("putter_fop_poll\n")); - if (pi->pi_private == PUTTER_EMBRYO || pi->pi_private == PUTTER_DEAD) { printf("putter_fop_ioctl: putter %d not inited\n", pi->pi_idx); return ENOENT; @@ -209,7 +205,6 @@ revents = events & (POLLOUT | POLLWRNORM | POLLWRBAND); if ((events & PUTTERPOLL_EVSET) == 0) { - DPRINTF(("putter_fop_poll => %d: (events & PUTTERPOLL_EVSET) == 0\n", revents)); return revents; } @@ -219,7 +214,6 @@ else selrecord(curthread, &pi->pi_sel); - DPRINTF(("putter_fop_poll => %d\n", revents)); return revents; } @@ -321,19 +315,16 @@ struct putter_instance *pi = kn->kn_hook; int error, rv; - DPRINTF(("filt_putter: pi=%p\n", pi)); mtx_assert(&pi_mtx, MA_OWNED); error = 0; if (pi->pi_private == PUTTER_EMBRYO || pi->pi_private == PUTTER_DEAD) error = 1; if (error) { - DPRINTF(("filt_putter: error: PUTTER_EMBRYO || PUTTER_DEAD\n")); return 0; } kn->kn_data = pi->pi_pop->pop_waitcount(pi->pi_private); rv = kn->kn_data != 0; - DPRINTF(("filt_putter: rv=%d kn_data=%d\n", rv, kn->kn_data)); return rv; } @@ -381,7 +372,6 @@ switch (kn->kn_filter) { case EVFILT_READ: - DPRINTF(("putter_fop_kqfilter: read\n")); kn->kn_fop = &putter_filtops; kn->kn_hook = pi; @@ -391,11 +381,9 @@ break; case EVFILT_WRITE: - DPRINTF(("putter_fop_kqfilter: write\n")); kn->kn_fop = &putter_seltrue_filtops; break; default: - DPRINTF(("putter_fop_kqfilter: default\n")); return EINVAL; } @@ -428,8 +416,6 @@ pid = td->td_proc->p_pid; pi = dev->si_drv1; - DPRINTF(("PUTTER: open: pid=%d, pi=%p\n", pid, pi)); - if (pi != NULL) { mtx_lock(&pi_mtx); error = (pi->pi_pid == pid ? 0 : EBUSY); @@ -449,11 +435,9 @@ TAILQ_INSERT_TAIL(&putter_ilist, pi, pi_entries); - DPRINTF(("PUTTER: open: pid=%d, unit=%u\n", pi->pi_pid, pi->pi_idx)); + DPRINTF(("puttercdopen: registered embryonic pmp for pid: %d\n", + pi->pi_pid)); - DPRINTF(("puttercdopen: registered embryonic pmp for: %d/%d\n", - pi->pi_pid, pi->pi_idx)); - return (0); } @@ -472,13 +456,9 @@ { struct putter_instance *pi = NULL; - DPRINTF(("putter_attach: pid=%u, unit=%d, pprivate=%p\n", pid, unit, ppriv)); - mtx_lock(&pi_mtx); TAILQ_FOREACH(pi, &putter_ilist, pi_entries) { - DPRINTF(("putter_attach: try pid=%u, unit=%d\n", pi->pi_pid, pi->pi_idx)); - if (pi->pi_pid == pid && /* XXX_TS pi->pi_idx == unit && */ - pi->pi_private == PUTTER_EMBRYO) { + if (pi->pi_pid == pid && pi->pi_private == PUTTER_EMBRYO) { pi->pi_private = ppriv; pi->pi_pop = pop; break; @@ -511,7 +491,6 @@ putter_notify(struct putter_instance *pi) { - DPRINTF(("putter_notify: pi=%p\n", pi)); selwakeup(&pi->pi_sel); KNOTE_UNLOCKED(&pi->pi_sel.si_note, 0); } From owner-p4-projects@FreeBSD.ORG Thu Aug 6 13:02:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A9421065672; Thu, 6 Aug 2009 13:02:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 496D1106564A for ; Thu, 6 Aug 2009 13:02:10 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 37A588FC08 for ; Thu, 6 Aug 2009 13:02:10 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76D2Afb042171 for ; Thu, 6 Aug 2009 13:02:10 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76D2Aoq042169 for perforce@freebsd.org; Thu, 6 Aug 2009 13:02:10 GMT (envelope-from stas@freebsd.org) Date: Thu, 6 Aug 2009 13:02:10 GMT Message-Id: <200908061302.n76D2Aoq042169@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167063 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 13:02:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=167063 Change 167063 by stas@stas_deglitch on 2009/08/06 13:01:34 - Add FreeBSD/i386 coredump handler for valgrind based on amd64 work done by Attilio. Affected files ... .. //depot/projects/valgrind/coregrind/Makefile.am#9 edit .. //depot/projects/valgrind/coregrind/m_coredump/coredump-x86-freebsd.c#5 add .. //depot/projects/valgrind/include/vki/vki-x86-freebsd.h#7 edit Differences ... ==== //depot/projects/valgrind/coregrind/Makefile.am#9 (text+ko) ==== @@ -255,7 +255,7 @@ libcoregrind_x86_freebsd_a_SOURCES = \ $(COREGRIND_SOURCES_COMMON) \ $(COREGRIND_FREEBSD_SOURCE) \ - m_coredump/coredump-x86-linux.c \ + m_coredump/coredump-x86-freebsd.c \ m_dispatch/dispatch-x86-linux.S \ m_sigframe/sigframe-x86-freebsd.c \ m_syswrap/syscall-x86-freebsd.S \ ==== //depot/projects/valgrind/include/vki/vki-x86-freebsd.h#7 (text+ko) ==== @@ -1,12 +1,13 @@ /*--------------------------------------------------------------------*/ -/*--- x86/Linux-specific kernel interface. vki-x86-linux.h ---*/ +/*--- x86/FreeBSD-specific kernel interface. vki-x86-freebsd.h ---*/ /*--------------------------------------------------------------------*/ /* This file is part of Valgrind, a dynamic binary instrumentation framework. + Copyright (C) 2009 Stanislav Sedov Copyright (C) 2000-2005 Julian Seward jseward@acm.org @@ -28,8 +29,8 @@ The GNU General Public License is contained in the file COPYING. */ -#ifndef __VKI_X86_LINUX_H -#define __VKI_X86_LINUX_H +#ifndef __VKI_X86_FREEBSD_H +#define __VKI_X86_FREEBSD_H //---------------------------------------------------------------------- // From somewhere @@ -42,63 +43,81 @@ #define VKI_MAX_PAGE_SIZE VKI_PAGE_SIZE //---------------------------------------------------------------------- -// From sys/signal.h +// From sys/i386/include/_limits.h and sys/sys/_sigset.h //---------------------------------------------------------------------- -#define VKI_MINSIGSTKSZ 2048 +#define VKI_MINSIGSTKSZ (512 * 4) #define _VKI_NSIG 128 -#define _VKI_NSIG_BPW 32 -#define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW) +#define _VKI_NSIG_BPW ((_VKI_NSIG) / (_VKI_NSIG_WORDS)) +#define _VKI_NSIG_WORDS 4 typedef struct { vki_uint32_t sig[_VKI_NSIG_WORDS]; } vki_sigset_t; + //---------------------------------------------------------------------- -// From linux-2.6.8.1/include/asm-i386/sigcontext.h +// From sys/i386/include/npx.h //---------------------------------------------------------------------- -/* QQQ not right */ -struct _vki_fpreg { - unsigned short significand[4]; - unsigned short exponent; +struct _vki_env87 { + long en_cw; + long en_sw; + long en_tw; + long en_fip; + unsigned short en_fcs; + unsigned short en_opcode; + long en_foo; + long en_fos; +}; + +struct _vki_fpacc87 { + unsigned char fp_bytes[10]; +}; + +struct _vki_save87 { + struct _vki_env87 sv_env; + struct _vki_fpacc87 sv_ac[8]; + unsigned char sv_pad0[4]; + unsigned char sv_pad[64]; }; -/* QQQ not right */ -struct _vki_fpxreg { - unsigned short significand[4]; - unsigned short exponent; - unsigned short padding[3]; +struct _vki_xmmacc { + unsigned char xmm_bytes[16]; }; -struct _vki_xmmreg { - unsigned long element[4]; +struct _vki_envxmm { + unsigned short en_cw; + unsigned short en_sw; + unsigned short en_tw; + unsigned short en_opcode; + unsigned int en_fip; + unsigned short en_fcs; + unsigned short en_pad0; + unsigned int en_foo; + unsigned short en_fos; + unsigned short en_pad1; + unsigned int en_mxcsr; + unsigned int en_mxcsr_mask; }; -struct _vki_fpstate { - /* Regular FPU environment */ - unsigned long cw; - unsigned long sw; - unsigned long tag; - unsigned long ipoff; - unsigned long cssel; - unsigned long dataoff; - unsigned long datasel; - struct _vki_fpreg _st[8]; - unsigned short status; - unsigned short magic; /* 0xffff = regular FPU data only */ +struct _vki_savexmm { + struct _vki_envxmm sv_env; + struct { + struct _vki_fpacc87 fp_acc; + unsigned char fp_pad[6]; + } sv_fp[8]; + struct _vki_xmmacc sv_xmm[8]; + unsigned char sv_pad[224]; +}; - /* FXSR FPU environment */ - unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */ - unsigned long mxcsr; - unsigned long reserved; - struct _vki_fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */ - struct _vki_xmmreg _xmm[8]; - unsigned long padding[56]; +union _vki_fpstate { + struct _vki_save87 sv_87; + struct _vki_savexmm sv_xmm; }; -struct vki_sigcontext6 { +struct vki_sigcontext { vki_sigset_t sc_mask; int onstack; int gs; @@ -120,130 +139,46 @@ int eflags; int esp; int ss; - int len; /* sizeof (mcontext_t) */ + int len; int fpformat; int ownedfp; int spare1[1]; - struct _vki_fpstate fpstate; - int spare2[8]; -}; - -struct vki_sigcontext { - vki_sigset_t sc_mask; - int onstack; - int gs; - int fs; - int es; - int ds; - int edi; - int esi; - int ebp; - int isp; - int ebx; - int edx; - int ecx; - int eax; - int trapno; - int err; - int eip; - int cs; - int eflags; - int esp; - int ss; - int sc_fpregs[28]; - int sc_spare[17]; + union _vki_fpstate fpstate __aligned(16); + int fsbase; + int gsbase; + int spare2[6]; }; -//---------------------------------------------------------------------- -// From linux-2.6.8.1/include/asm-i386/user.h -//---------------------------------------------------------------------- - -struct vki_user_i387_struct { - long cwd; - long swd; - long twd; - long fip; - long fcs; - long foo; - long fos; - long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ - long ex_sw; - char pad[64]; -}; - -struct vki_user_fxsr_struct { - unsigned short cwd; - unsigned short swd; - unsigned short twd; - unsigned short fop; - long fip; - long fcs; - long foo; - long fos; - long mxcsr; - long reserved; - long st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ - long xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */ - long padding[56]; -}; - -/* - * This is the old layout of "struct pt_regs", and - * is still the layout used by user mode. - */ struct vki_user_regs_struct { - int fs, es, ds; - int edi, esi, ebp, isp, ebx, edx, ecx, eax; - int trapno, err, eip, cs, eflags, esp, ss, gs; + unsigned int fs; + unsigned int es; + unsigned int ds; + unsigned int edi; + unsigned int esi; + unsigned int ebp; + unsigned int isp; + unsigned int ebx; + unsigned int edx; + unsigned int ecx; + unsigned int eax; + unsigned int trapno; + unsigned int err; + unsigned int eip; + unsigned int cs; + unsigned int eflags; + unsigned int esp; + unsigned int ss; + unsigned int gs; }; +typedef unsigned int vki_elf_greg_t; +typedef union _vki_fpstate vki_elf_fpregset_t; +typedef union _vki_fpstate vki_elf_fpxregset_t; -//---------------------------------------------------------------------- -// From linux-2.6.8.1/include/asm-i386/elf.h -//---------------------------------------------------------------------- - -typedef unsigned long vki_elf_greg_t; - +#define VKI_AT_SYSINFO 32 #define VKI_ELF_NGREG (sizeof (struct vki_user_regs_struct) / sizeof(vki_elf_greg_t)) typedef vki_elf_greg_t vki_elf_gregset_t[VKI_ELF_NGREG]; -typedef struct vki_user_i387_struct vki_elf_fpregset_t; -typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t; - -#define VKI_AT_SYSINFO 32 - -//---------------------------------------------------------------------- -// From linux-2.6.8.1/include/asm-i386/ucontext.h -//---------------------------------------------------------------------- - -struct vki_mcontext6 { - int onstack; - int gs; - int fs; - int es; - int ds; - int edi; - int esi; - int ebp; - int isp; - int ebx; - int edx; - int ecx; - int eax; - int trapno; - int err; - int eip; - int cs; - int eflags; - int esp; - int ss; - int len; - int fpformat; - int ownedfp; - int spare1[1]; - struct _vki_fpstate fpstate; - int spare2[8]; -}; #define VKI_FPFMT_NODEV 0x10000 #define VKI_FPFMT_387 0x10001 #define VKI_FPFMT_XMM 0x10002 @@ -273,48 +208,18 @@ int eflags; int esp; int ss; - int fpregs[28]; - int spare[17]; + + int len; + int fpformat; + int ownedfp; + int spare1[1]; + union _vki_fpstate fpstate __aligned(16); + int fsbase; + int gsbase; + int spare2[6]; }; -#if 0 - -//---------------------------------------------------------------------- -// From linux-2.6.8.1/include/asm-i386/ldt.h -//---------------------------------------------------------------------- - -/* [[Nb: This is the structure passed to the modify_ldt syscall. Just so as - to confuse and annoy everyone, this is _not_ the same as an - VgLdtEntry and has to be translated into such. The logic for doing - so, in vg_ldt.c, is copied from the kernel sources.]] */ -struct vki_user_desc { - unsigned int entry_number; - unsigned long base_addr; - unsigned int limit; - unsigned int seg_32bit:1; - unsigned int contents:2; - unsigned int read_exec_only:1; - unsigned int limit_in_pages:1; - unsigned int seg_not_present:1; - unsigned int useable:1; - // [[Nb: this field is not in the kernel sources, but it has always - // been in the Valgrind sources so I will keep it there in case it's - // important... this is an x86-defined data structure so who - // knows; maybe it's important to set this field to zero at some - // point. --njn]] - unsigned int reserved:25; -}; - -// [[Nb: for our convenience within Valgrind, use a more specific name]] -typedef struct vki_user_desc vki_modify_ldt_t; - -#endif - -//---------------------------------------------------------------------- -// And that's it! -//---------------------------------------------------------------------- - -#endif // __VKI_X86_LINUX_H +#endif // __VKI_X86_FREEBSD_H /*--------------------------------------------------------------------*/ /*--- end ---*/ From owner-p4-projects@FreeBSD.ORG Thu Aug 6 13:52:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F80E1065670; Thu, 6 Aug 2009 13:52:05 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1FC991065673 for ; Thu, 6 Aug 2009 13:52:05 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0F7E88FC1B for ; Thu, 6 Aug 2009 13:52:05 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76Dq4CG046708 for ; Thu, 6 Aug 2009 13:52:04 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76Dq4Vu046706 for perforce@freebsd.org; Thu, 6 Aug 2009 13:52:04 GMT (envelope-from zec@fer.hr) Date: Thu, 6 Aug 2009 13:52:04 GMT Message-Id: <200908061352.n76Dq4Vu046706@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167064 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 13:52:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=167064 Change 167064 by zec@zec_tpx32 on 2009/08/06 13:51:19 No hard-coding NFS to vnet0. Affected files ... .. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vnops.c#27 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vnops.c#27 (text+ko) ==== @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include @@ -1552,7 +1553,7 @@ *tl = txdr_unsigned(NFSV3CREATE_EXCLUSIVE); tl = nfsm_build(u_int32_t *, NFSX_V3CREATEVERF); #ifdef INET - CURVNET_SET(vnet0); + CURVNET_SET(CRED_TO_VNET(cnp->cn_cred)); IN_IFADDR_RLOCK(); if (!TAILQ_EMPTY(&V_in_ifaddrhead)) *tl++ = IA_SIN(TAILQ_FIRST(&V_in_ifaddrhead))->sin_addr.s_addr; From owner-p4-projects@FreeBSD.ORG Thu Aug 6 14:04:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B9CA21065670; Thu, 6 Aug 2009 14:04:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7760C106566B for ; Thu, 6 Aug 2009 14:04:18 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6590A8FC14 for ; Thu, 6 Aug 2009 14:04:18 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76E4I5r048505 for ; Thu, 6 Aug 2009 14:04:18 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76E4IIF048503 for perforce@freebsd.org; Thu, 6 Aug 2009 14:04:18 GMT (envelope-from zec@fer.hr) Date: Thu, 6 Aug 2009 14:04:18 GMT Message-Id: <200908061404.n76E4IIF048503@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167065 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 14:04:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=167065 Change 167065 by zec@zec_tpx32 on 2009/08/06 14:03:58 Merge Julian's updates to V_ instructions document. Submitted by: julian Affected files ... .. //depot/projects/vimage/porting_to_vimage.txt#10 edit Differences ... ==== //depot/projects/vimage/porting_to_vimage.txt#10 (text+ko) ==== @@ -7,76 +7,96 @@ Vimage is a framework in the BSD kernel which allows a co-operating module to operate on multiple independent instances of its state so that it can -participate in a virtual machine / virtual environment scenario. +participate in a virtual machine / virtual environment scenario. It refers +to a part of the Jail infrastructure in FreeBSD. For historical reasons +Virtual network stack enabled jails are know a vimage enabled jails or vnet +enabled jails. The currently correct term is the latter, which is a +contraction ofthe first. In the future other parts of the system may be +virtualized using the same technology and the term to cover all such components +would be VIMAGE enhanced modules. + +The implementation approach taken by the vimage framework is a redefinition +of selected global state variables to evaluate to constructs that allow for +the virtualized state to be stored and resolved in appropriate instances of +'jail' specific container storage regions. The code operating on virtualized +state has to conform to a set of rules described further below, among other +things in order to allow for all the changes to be conditionally compilable, +i.e. permitting the virtualized code to fall back to operation on global state. -The implementation approach taken by the vimage framwork is a replacement -of selected global state variables with constructs that allow for the -virtualized state to be stored and resolved in appropriate instances of -module-specific container structures. The code operating on virtualized state -has to conform to a set of rules described further below, among other things -in order to allow for all the changes to be conditionally compilable, i.e. -permitting the virtualized code to fall back to operation on global state. +The rest of this documant will discuss NETWORK virtualization +thoughthe concepts will be true in the future for other parts of the +system. The most visible change throughout the existing code is typically replacement of direct references to global variables with macros; foo_bar thus becomes V_foo_bar. V_foo_bar macros will resolve back to foo_bar global in default -kernel builds, and alternatively to some_base_pointer->_foo_bar for "options -VIMAGE" kernel configs. Prepending of "V_" prefixes to variable references -helps in visual discrimination between global and virtualized state. The -framework extends the sysctl infrastructure to support access to virtualized -state through introduction of the SYSCTL_V family of macros; those also -automatically fall back to their standard SYSCTL counterparts in default -kernel builds. Transparent kldsym(2) lookups are provided to virtualized -variables explicitly marked for visibility to kldsym interface, which permits -userland binaries such as netstat to operate unmodified on "options VIMAGE" -kernels, though this may have wide security implications. +kernel builds, and alternatively to teh logical equivalent of +some_base_pointer->_foo_bar for "options VIMAGE" kernel configs. + +Prepending of "V_" prefixes to variable references +helps in visual discrimination between global and virtualized state. +It is also possible to use an alternative syntax, of VNET(foo_bar) to +achieve the same thing. The deveopers felt that V_foo_bar was less +visually distracting while still providing enough clues to the reader +that the variable is virtualized. In fact the V_foo_bar symtac is +locally defined near the definition of foo_bar to be an alias for +VNET(foo_bar) so the two are not only equivalent, they are the same. + +The framework extends the sysctl infrastructure to support access to +virtualized state through introduction of the SYSCTL_VNET family of macros; +those also automatically fall back to their standard SYSCTL counterparts +in default kernel builds. -The vimage struct is currently primarily a placeholder for pointers to -module-specific struct instances; currently V_NET (networking), V_CPU -(CPU scheduling), and V_PROCG (jail-style interprocess protection) major -module classes are defined. Each vimage module may or may not be further -split into minor or submodules; the networking subsystem (vimage id V_NET; -struct vnet) in particular is organized in submodules such as VNET_MOD_NET -(mandatory shared infrastructure: routing tables, interface lists etc.); -VNET_MOD_INET (IPv4 state including transport protocols); VNET_MOD_INET6, -VNET_MOD_IPSEC, VNET_MOD_IPFW, VNET_MOD_NETGRAPH etc. The speciality of -VNET submodules is in that they not only provide storage for virtualized -data, but also enforce ordering of initialization and cleanup. Hence, not -all submodules must necessarily allocate private storage for their specific -data; they may be defined solely for to support proper initialization -ordering. +Transparent libkvm(3) lookups are provided to virtualized variables +which permits userland binaries such as netstat to operate unmodified +on "options VIMAGE" kernels, though this may have some security implications. -Each process is associated with a vimage, and vimages currently hang off of +Vnets are associated with jails. Each process is associated with a jail, +usually the default (null) jail, and jails currently hang off of ucred-s. This relationship defines a process's administrative affinity -to a vimage and thus indirectly to all of its modules (NET, CPU, PROCG) -as well as to any submodules. All network interfaces and sockets hold -pointers back to their parent vnets; this relationship is obviously entirely -independent from proc->ucred->vimage bindings. Hence, when a process -opens a socket, the socket will get bound to a vnet instance hanging off of -proc->ucred->vimage->vnet, but once such a socket->vnet binding gets -established, it cannot be changed for the entire socket lifetime. Certain -classes of network interfaces (Ethernet in particular) can be assigned -from one vnet to another at any time. By definition all vnets are -are independent and can communicate only if they are explicitly provided -with communication paths; currently only netgraph can be used to establish -inter-vnet datapaths. +to a vnet and thus indirectly to all of its state. All network interfaces +and sockets hold pointers back to their parent vnets; this relationship +is obviously entirely independent from proc->ucred->jail bindings. +Hence, when a process opens a socket, the socket will get bound to a vnet +instance hanging off of proc->ucred->jail->vnet, but once such a socket->vnet +binding gets established, it cannot be changed for the entire socket lifetime. +The mapping of a from a thread to a vnet is should always be doen via the +TD_TO_VNET macro as the path may change in the future as we get more +experience with usinghte system. + +Certain classes of network interfaces (Ethernet in particular) can be +assigned from one vnet to another at any time. By definition all vnets +are are independent and can communicate only if they are explicitly +provided with communication paths; currently mainly netgraph is used to +establish inter-vnet datapaths, though other paths are being explored +such as the 'epair' back-to-back virtual interface pair, in which +teh different sides may exist in different jails. In network traffic processing the vnet affinity is defined either by the inbound interface or by the socket / pcb -> vnet binding. However, there are many functions in the network stack that cannot implicitly fetch the vnet context from their standard arguments. Instead of explicitly extending argument lists of such functions with a struct vnet *, -a per-thread variable td_vnet was introduced, which can be fetched via -the curvnet macro (#define curvnet curthread->td_vnet). The curvnet -context has to be set on entry to the network stack (socket operations, -packet reception, or timer-driven functions) and cleared on exit. This -must be done via provided CURVNET_SET() / CURVNET_RESTORE() family of +the concept of a "current vnet", a per-thread variable was introduced, +which can be fetched efficiently via the curvnet macro. The correct +network context has to be set on entry to the network stack (socket +operations, packet reception, or timer-driven functions) and cleared on exit. +This must be done via provided CURVNET_SET() / CURVNET_RESTORE() family of macros, which allow for "stacking" of curvnet context setting and provide additional debugging info in INVARIANTS kernel configs. In most cases however a developer writing virtualized code will not have to set / restore the curvnet context unless the code would include timer-driven events, given that those are inherently vnet-contextless on entry. +The current rule is that when not in networking code, the result of +the curvnet macro will return NULL and evaluating a V_xxx (or VNET(xxx)) +macro will result in an kernel page-fault error. While this is not strictly +necessary, it aids in debugging and assurance of program correctness. +Note this does NOT mean that TD_TO_VNET(curthread) is invalid. +A thread is always associated with a vnet, but just the efficient +"curvnet" access method is disabled along with the ability to resolve +virtualized symbols. + Converting / virtualizing existing code ======================================= @@ -90,22 +110,10 @@ physical hardware. There are changes in the networking code to allow physical (or virtual) interfaces to be moved between vnets. This generally requires NO changes to the network drivers of the classes - covered (e.g. ethernet). + covered (e.g. ethernet). Currently if your module is doe snot have any + networking facet, the answer is "no" by default. -2/ decide if your module is part of one of the major module groups. - These are currently V_NET V_PROCG V_CPU. - - The reader will note that the descriptions below use the acronym VNET - a lot. The vimage system has been at this time broken into a number of - subsections. One of these is the "VNET" group. The idea of these - subsections is that they might be individually selected as - virtualizable in a particular virtual machine instance. - - As an example, in a virtualization, one might to allocate a couple of - processors to it, but keep the same filesystem and network setup, or - alternatively to share processors but to have virtualised networking. - -3/ If the module is to be virtualised, decide which attributes of the +2/ If the module is to be virtualised, decide which attributes of the module should be virtualised. For example, It may make sense that there be a single central pool @@ -115,10 +123,10 @@ "foo_mode" sysctl might make better sense if it were controllable on a virtual system by virtual system basis. -4/ Work out what global variables and structures are to be virtualised to +3/ Work out what global variables and structures are to be virtualised to achieve the behaviour required for part #3. -5/ Work out for all the code paths through the module, how the path entering +4/ Work out for all the code paths through the module, how the path entering the module can divine which virtual environment it is on. Some examples: @@ -128,9 +136,9 @@ by the time your code is called anyhow. * Similarly, on any request from outside the kernel, (direct or indirect) the current thread has a way to get to the current virtual environment - instance via td->ucred->vimage. For existing sockets the vnet context - must be used via so->so_vnet since td->ucred->vimage might change after - socket creation. + instance via TD_TO_VNET(curthread). For existing sockets the vnet + context must be used via so->so_vnet since the thread's vnet might + change after socket creation. * Timer initiated actions usually have a (void *) argument which points to some private structure for the module. It should be possible to add a pointer to the appropriate module instance into whatever structure @@ -138,225 +146,235 @@ * Sometimes an action (timer trigerred or trigerred by module load or unload simply has to check all the vimage or module instances. There are macro (pairs) for this which will iterate through all the - VNET or VPROCG instances. + VNET or instances. This covers most of the cases, however in some cases it may still be required for the module to stash away the virtual environment instance somewhere, and make associated changes in the code. -6/ Add the code described below to the files that make up the module +5/ Add the code described below to the files that make up the module + +Details: (VNET implementation details) + +Firstly the file must be included. Depending on what +code you use you may find you also need one of more of: , + and . These requirements may change slightly +as the ABI settles. + +Having decided which variables need to be virtualized, the definition +of thosvariables needs to be modified to use the VNET_DEFINE() macro. +For example: + +static int foo = 3; +struct bar thebar = { 1,2,3 }; + +would become: + +static VNET_DEFINE(int, foo) = 3; +VNET_DEFINE(struct bar, thebar) = { 1,2,3 }; -Details: +Normal rules regarding 'static/extern' apply. The initial values that you +give in this way will be stored and used as teh initial values for +EACH NEW INSTANCE of these variables as new jails/vnets are created. -temp. note: for module FOO add a definition for VNET_MOD_FOO in sys/vimage.h. -This will eventually be dynamically assigned. +As mentioned above, accesses to virtualised symbols are achieved via macros, +which generally are of the same name as the original symbol but with a "V_" +prepended, thus the head of the interface list, called 'ifnet' is replaced +whereever used with "V_ifnet". We do this, by adding the following +lines after the definitions above: -For now these instructions refer mainly to VNET and not VCPU, VPROCG etc. +#define V_foo VNET(foo) +#define V_thebar VNET(thebar) -Symbols defined in other modules that have been virtualised will have been -moved to a module-specific virtualisation structure. It will be defined in a -.h file for just this purpose. If a module will never export virtualise -symbols beyond it's borders, then this structure may well just be in a common -include file for that module. As an example, common networking -(but not protocol) variables have been moved to a file called net/vnet.h, but -the gre module has simply added the virtualisation structure to if_gre.h as -no code outside the gre interface will access those values. +--- side-note --- +In SCTP, because the code is shared with +other OS's they are replaced with a macro MODULE_GLOBAL(modulename, symbol). +(this may simplify in light of recent changes). +-------------- -Accesses to virtualised symbols are achieved via macros, which generally -are of the same name as the original symbol but with a "V_" prepended, -thus the head of the interface list, called 'ifnet' is replaced whereever -used with "V_ifnet". In SCTP, because the code is shared with other OS's -they are replaced with a macro MODULE_GLOBAL(modulename, symbol). -In the current version of vimage, when VIMAGE is not compiled into -the kernel, the macros evaluate to a direct reference to the symbol. -In future versions it will evaluate to a global version of the virtualisation -structure with the offset to the entry in quesiton, which will result in -a single direct memory reference, so that the speed will be as it is now. +In addition, should any of your values need to be changed or viewed +via sysctl, the following SYSCTL definitions would be needed: -When VIMAGE is compiled in, the macro will evaluate to an access to an -element in a structure pointed to by a local varible. -For this reason, it is necessary to also add, at the beginning of -these functions another macro that will instantiate this local variable -and point it at the correct place. -As an example, prior to using the "V_ifnet" structure in a program block, -we must add the following macro at the head of a code block enclosing the -references to set up module-specific base pointer variable: +SYSCTL_VNET_PROC(_net_inet, OID_AUTO, thebar, + CTLTYPE_?? | CTLFLAG_RW | CTLFLAG_SECURE3, &VNET_NAME(thebar), 0, + thebar, "?", "the bar is open"); +{[XXX] robert fix this is possible ^^^} +SYSCTL_VNET_INT(_net_inet, OID_AUTO, foo, + CTLFLAG_RW, &VNET_NAME(foo), 0, "size of foo"); - INIT_VNET_NET(initial_value); /* initial value is usually curvnet */ -When VIMAGE is not defined, this will evaluate to nothing but when it -IS defined, it will evaluate to: +In the current version of vimage, when VIMAGE is not compiled into +the kernel, the macros evaluate to a direct reference to the one and only +symbol/variable, so that there is no speed penalty for those not using vnets. - struct vnet_net *vnet_net = (initial_value); +When VIMAGE is compiled in, the macro will evaluate to an access to an offset +into a data structure that is accessed on a per-vet basis. The vnet +used for this is always curvnet. For this reason an attempt to access +such a variable while curvnet is not valid, will result in an exception. -The initial value is usually something like "curvnet" which in turn -is a macro that derives the vnet affinity from the current thread. -It could also be (m->m_ifp->if_vnet) if we were receiving an mbuf. +To ensure that curvnet has a valid value when needed one needs to +add the following code on all entry code paths into the networking code: +int +my_func(int arg) +{ + CURVNET_SET(TD_TO_VNET(curthread)); + do_my_network_stuff(arg); + CURVNET_RESTORE(); + return (0); +} -In the case where it is just one function in a module calling -another (static), the porter might decide to simply pass the local -variable as an argument, rather than to reevaluate it in the function, -but should be prepared to cope with the fact that the code might be -compiled in the "no-VIMAGE" manner (in which case the argument would be -marked as "unused"). +The initial value is usually something like "TD_TO_VNET(curthread) +which in turn is a macro that derives the vnet affinity from the current +thread. It could also be (m->m_ifp->if_vnet) if we were receiving an mbuf, +or so->so_vnet if we had a socket involved. Usually, when a packet enters the system it is carried through the processing path via a single thread, and that thread will set its virtual environment reference to that indicated by the packet on picking up that new packet. This means that in the normal inbound processing path as well as the outgoing process path the current thread can be used to indicate the -current virtual environment. In the case of timer initiated events, best -practice would also be to set the current virtual module reference to that -indicated calculated by whatever way that would be done, so that any functions -called could rely on the current thread being a good reference for the correct -virtual module. +current virtual environment and curvet will always be valid once most +user supplied code is reached. In timer events, it is sometimes +necessary to add an "outer loop" to iterate through all the possible vnets +if there is just one timer for all instances. -When a new VNET submodule is defined for virtualisation, the following -structure defining macro is used to define it to the framework. +When a new loadable module is virtualised the module definitions +and intializers need to be examined. The following example illustrates +what is needed: +============= sample skeleton code ========== -#define VNET_MOD_DECLARE(m_name_uc, m_name_lc, m_iattach, m_idetach, \ - m_dependson, m_symmap) \ - static const struct vnet_modinfo vnet_##m_name_lc##_modinfo = { \ - .vmi_id = VNET_MOD_##m_name_uc, \ - .vmi_dependson = VNET_MOD_##m_dependson, \ - .vmi_name = #m_name_lc, \ - .vmi_iattach = m_iattach, \ - .vmi_idetach = m_idetach, \ - .vmi_struct_size = \ - sizeof(struct vnet_##m_name_lc), \ - .vmi_symmap = m_symmap \ +/* init on boot or module load */ +static int +mymod_init(void) +{ + return (error); +} -The ID we allocated in the temporary first step in "Details" is -the first entry here; eventually this should be automatically done -by module name. The DEPENDSON field tells us the order that modules -should be initialised in a new virtual environment. This may later need -to be changed to a list of text module names for dynamic calculation. -The rest of the fields are self explanatory, with the exception of the -symmap entry. -The symmap allows us to intercept calls by libkvm to the -linker when it is looking up symbols and to redirect it -dynamically. this allows for example "netstat -r" to find the -routing tables for THIS virtual environment. -(of course that won't work for core dumps). (XXX *needs thought *) +/**************** + * Stuff that must be initialized for every instance + * (including the first of course). + */ +static int +mymod_vnet_init(const void *unused) +{ + return (0); +} -As example of virtualising a dummy module named the FOO module -the following code might be added to a special vfoo.h or at least to -the exisitng foo.h file: +/********************** + * Called for the removal of the last instance only on module unload. + */ +static void +mymod_destroy(void) +{ +} -======================================================== +/*********************** + * Called for the removal of each instance. + */ +static int +mymod_vnet_uninit(const void *unused) +{ + return (0) +} -#ifndef _DIR_VFOO_H_ -#define _DIR_VFOO_H_ +mymod_modevent(module_t mod, int type, void *unused) +{ + int err = 0; -#include /* for struct foo_bar */ + switch (type) { + case MOD_LOAD: + /* check that loading is ok */ + break; + + case MOD_UNLOAD: + /* checkthat unloading is ok */ + break; + + case MOD_QUIESCE: + /* warning: try stop processing */ + /* maybe sleep 1 mSec or something to let threads get out */ + break; + + default: + err = EOPNOTSUPP; + break; + } + return err; +} + +static moduledata_t mymodmod = { + "mymod", + mymod_modevent, + 0 +}; -#define INIT_VNET_FOO(vnet) \ - INIT_FROM_VNET(vnet, VNET_MOD_FOO, \ - struct vnet_foo, vnet_foo) +#define MYMOD_SYSINIT_ORDER SI_SUB_PROTO_IFATTACHDOMAIN +#define MYMOD_MODEVENT_ORDER (SI_ORDER_ANY - 255) +#define MYMOD_MODULE_ORDER (MYMOD_MODEVENT_ORDER + 1) +#define MYMOD_VNET_ORDER (MYMOD_MODULE_ORDER + 1 ) + +DECLARE_MODULE(mymod, mymodmod, MYMOD_SYSINIT_ORDER, MYMOD_MODEVENT_ORDER); +MODULE_VERSION(mymod, 2); -#define VNET_FOO(sym) VSYM(vnet_foo, sym) +SYSINIT(mymod_init, MYMOD_SYSINIT_ORDER, MYMOD_MODULE_ORDER, + mymod_init, NULL); +SYSUNINIT(mymod_destroy, MYMOD_SYSINIT_ORDER, MYMOD_MODULE_ORDER, + mymod_destroy, NULL); -#if (defined(VIMAGE) || defined(FUTURE)) -struct vnet_foo { - int _foo_counter - struct foo_bar _foo_barx; -}; -#endif +VNET_SYSINIT(mymod_vnet_init, MYMOD_SYSINIT_ORDER, MYMOD_VNET_ORDER, + mymod_vnet_init, NULL); +VNET_SYSUNINIT(mymod_vnet_uninit, MYMOD_SYSINIT_ORDER, MYMOD_VNET_ORDER, + mymod_vnet_uninit, NULL); -/* Symbol translation macros */ -#define V_foo_counter VNET_FOO(foo_counter) -#define V_foo_barx VNET_FOO(foo_barx) +========== end sample code ======= -#endif /* !_FOO_VFOO_H_ */ -========================================================= +On BOOT, the order of evaluation will be: + In a NON-VIMAGE kernel where the module is compiled: + MODEVENT, SYSINIT and VNET_SYSINIT both runm with order defined by their + order declarations. {good foot shooting aterial if you get it wrong!} -For each time the foo module is initiated for a new virtual environment, -the foo_bar structure must be initiated, so a new foo_creator and destructor -functions are defined for the module. The Module will call these when a new -virtual environment is created or destroyed. The constructor must be called -once for the base machine when the system is booted, even when options VIMAGE -is not defined. + In a VIMAGE kernel where the module is compiled: + MODEVNET, SYSINIT and VNET_SYSINIT both runm with order defined by their + order declarations. AND in addition, the VNET_SYSINIT being + repeated once for every new jail/vnet. -==================== in module foo.c ====== -#include "opt_vimage.h" -[...] -#include -[...] -#include -[...] +On loading a vnet enabled kernel module after boot: + MODEVENT("event = load"); + SYSINIT() + VNET_SYSINIT() for every existing jail + AND in addition, VNET_SYSINIT being called for each new jail created. -#ifndef VIMAGE - /* initially the globals would have been here, - * and for now we will leave them here when not using VIMAGE. - * In the future we will instead have a static version of the structure. - */ -# if defined(FUTURE) - struct vnet_foo vnet_foo_globals; -# else /* !FUTURE */ - int foo_counter = 0; - struct foo_bar foo_barx = {}; -# endif /* !FUTURE */ -#endif /* !VIMAGE */ +On unloading of module: + MODEVENT("event = quiesce") + MODEVENT("event = unload") + VNET_SYSUNINIT called for every jail/vnet + SYSUNINIT -[...] +On system shutdown: + effectively the same as unload + {with exception of modevent?} -#if (defined(VIMAGE) || defined(FUTURE)) -static vnet_attach_fn vnet_foo_iattach; -static vnet_detach_fn vnet_foo_idetach; -#endif - -#ifdef VIMAGE -/* If we have symbols we need to divert for libkvm - * then put them in here. We may not need to do anything if - * the symbols are not used by libkvm. - */ -static struct vnet_symmap vnet_net_symmap[] = { - VNET_SYMMAP(foo, foo_counter), - VNET_SYMMAP(foo, foo_barx), - VNET_SYMMAP_END -}; -/* - * Declare our module and state that we want to be done after the - * loopback interface is initialised for the virtual environment. - */ -VNET_MOD_DECLARE(FOO, foo, vnet_foo_iattach, - vnet_foo_idetach, LOIF, vnet_foo_symmap) -#endif /* VIMAGE */ - -[...] +NOTICE that while the order of the SYSINIT and VNET_SYSINIT is reversed from +that of SYSUNINIT and VNET_SYSUNINIT, MODEVENTS do not follow +this rule and thus it is dangerous to initialise and uninitialise +things which are order dependent using MODEVENTs. -/* a pre-exisiting 'foo' function that will be converted. */ -void -foo_work(void) -{ - INIT_VNET_FOO(curvnet); /* Add this at the front */ +Since initial values are copied into the virtualized variables +on each new instantiatin, it is quite possible to have modules for which +some of the above methods are not needed, and they may be left out. +(but not the modevent). - V_foo_counter++; /* add "V_" to the front of the symbol */ - [...] - V_foo_barx.mumble = V_foo_counter; /* and here too */ - [...] -} +Sometimes there is a need to iterate through the vnets. +The following code should be used as a guide. -/* - * A function which on entry has no idea of which vnet it is on - * and needs to look at them all for some reason. - * NOTE! if this code is running in a thread that - * does nothing else, or otherwise doesn't care about which - * vnet it is on then the steps that save and restore the previous vnet - * need not be done. (Marked with /* XXX */) - */ -void -foo_tick(void) -{ VNET_ITERATOR_DECL(vnet_iter); [...] [...] VNET_LIST_RLOCK(); - VNET_LIST_FOREACH(vnet_iter) { + VNET_FOREACH(vnet_iter) { CURVNET_SET(vnet_iter); - INIT_VNET_NET(vnet_iter); [...] do work, including calling code that assumes we have curvnet set. @@ -367,64 +385,8 @@ [...] } -#if (defined(VIMAGE) || defined(FUTURE)) -static int vnet_foo_iattach(const void *unused) -{ - INIT_VNET_FOO(curvnet); - V_foo_counter = 0; - bzero (&V_foo_barx, sizeof (V_foo_barx)); - return 0; -} -#endif - -#ifdef VIMAGE -static int vnet_foo_idetach(const void *unused) -{ - INIT_VNET_FOO(curvnet); - - /* prove we are ready to remove the module */ - /* code here to do work required */ - return 0; -} -#endif /* VIMAGE */ - -/* - * Handle loading and unloading for this code. - * The only thing we need to link into is the NETISR strucure. - */ -static int -foo_mod_event(module_t mod, int event, void *data) -{ - int error = 0; +finally: +The command to make a new jail with a new vnet: +jail -c host.hostname=test path=/ vnet command=/bin/tcsh - switch (event) { - case MOD_LOAD: - /* Initialize everything. */ - /* put your code here */ -#ifdef VIMAGE - /* This will do the work for each vortual environment. */ - vnet_mod_register(&vnet_foo_modinfo); -#else /* !VIMAGE */ -#ifdef FUTURE - /* otherwise do the initialisation directly */ - vnet_foo_iattach(NULL); -#else /* !FUTURE */ -/* otherwise the intialisation is done statically */ -#endif /* !FUTURE */ -#endif /* !VIMAGE */ - break; - case MOD_UNLOAD: - /* You can't unload it because an interface may be using it. */ - /* this needs work */ - /* Should refuse to unload if any virtual environment */ - /* are using this still. */ - /* MARKO, fill in here */ - error = EBUSY; - break; - default: - error = EOPNOTSUPP; - break; - } - return (error); -} From owner-p4-projects@FreeBSD.ORG Thu Aug 6 15:08:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7244C106566B; Thu, 6 Aug 2009 15:08:53 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 252B1106566C; Thu, 6 Aug 2009 15:08:53 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id EB8178FC17; Thu, 6 Aug 2009 15:08:52 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 8870746B03; Thu, 6 Aug 2009 11:08:52 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id B38238A0A8; Thu, 6 Aug 2009 11:08:51 -0400 (EDT) From: John Baldwin To: Marko Zec Date: Thu, 6 Aug 2009 11:08:42 -0400 User-Agent: KMail/1.9.7 References: <200908061404.n76E4IIF048503@repoman.freebsd.org> In-Reply-To: <200908061404.n76E4IIF048503@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200908061108.42372.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Thu, 06 Aug 2009 11:08:51 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: Perforce Change Reviews , Julian Elischer Subject: Re: PERFORCE change 167065 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 15:08:54 -0000 On Thursday 06 August 2009 10:04:18 am Marko Zec wrote: > http://perforce.freebsd.org/chv.cgi?CH=167065 > > Change 167065 by zec@zec_tpx32 on 2009/08/06 14:03:58 > > Merge Julian's updates to V_ instructions document. > Submitted by: julian > > Affected files ... > > .. //depot/projects/vimage/porting_to_vimage.txt#10 edit > > Differences ... > > ==== //depot/projects/vimage/porting_to_vimage.txt#10 (text+ko) ==== > > -#endif /* !_FOO_VFOO_H_ */ > -========================================================= > +On BOOT, the order of evaluation will be: > + In a NON-VIMAGE kernel where the module is compiled: > + MODEVENT, SYSINIT and VNET_SYSINIT both runm with order defined by their > + order declarations. {good foot shooting aterial if you get it wrong!} > > + In a VIMAGE kernel where the module is compiled: > + MODEVNET, SYSINIT and VNET_SYSINIT both runm with order defined by their > + order declarations. AND in addition, the VNET_SYSINIT being > + repeated once for every new jail/vnet. > > +On loading a vnet enabled kernel module after boot: > + MODEVENT("event = load"); > + SYSINIT() > + VNET_SYSINIT() for every existing jail > + AND in addition, VNET_SYSINIT being called for each new jail created. > > +On unloading of module: > + MODEVENT("event = quiesce") > + MODEVENT("event = unload") > + VNET_SYSUNINIT called for every jail/vnet > + SYSUNINIT > > +On system shutdown: > + effectively the same as unload > + {with exception of modevent?} On system shutdown MOD_SHUTDOWN is the only MODEVENT handler invoked. > +NOTICE that while the order of the SYSINIT and VNET_SYSINIT is reversed from > +that of SYSUNINIT and VNET_SYSUNINIT, MODEVENTS do not follow > +this rule and thus it is dangerous to initialise and uninitialise > +things which are order dependent using MODEVENTs. This is no longer true. MOD_QUIESCE and MOD_UNLOAD events now run in the reverse of the order that MOD_LOAD is invoked for a given kld during kldunload. This is true in both 7 and 8 now for several months. -- John Baldwin From owner-p4-projects@FreeBSD.ORG Thu Aug 6 15:16:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 679911065678; Thu, 6 Aug 2009 15:16:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C8521065673 for ; Thu, 6 Aug 2009 15:16:43 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outT.internet-mail-service.net (outt.internet-mail-service.net [216.240.47.243]) by mx1.freebsd.org (Postfix) with ESMTP id E54768FC1F for ; Thu, 6 Aug 2009 15:16:42 +0000 (UTC) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id BC9A422D3; Thu, 6 Aug 2009 08:16:42 -0700 (PDT) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (home.elischer.org [216.240.48.38]) by idiom.com (Postfix) with ESMTP id 12C0D2D601A; Thu, 6 Aug 2009 08:16:41 -0700 (PDT) Message-ID: <4A7AF3D9.6080601@elischer.org> Date: Thu, 06 Aug 2009 08:16:41 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: John Baldwin References: <200908061404.n76E4IIF048503@repoman.freebsd.org> <200908061108.42372.jhb@freebsd.org> In-Reply-To: <200908061108.42372.jhb@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Julian Elischer , Perforce Change Reviews , Marko Zec Subject: Re: PERFORCE change 167065 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 15:16:45 -0000 John Baldwin wrote: > On Thursday 06 August 2009 10:04:18 am Marko Zec wrote: >> http://perforce.freebsd.org/chv.cgi?CH=167065 >> >> Change 167065 by zec@zec_tpx32 on 2009/08/06 14:03:58 >> >> Merge Julian's updates to V_ instructions document. >> Submitted by: julian >> >> Affected files ... >> >> .. //depot/projects/vimage/porting_to_vimage.txt#10 edit >> >> Differences ... >> >> ==== //depot/projects/vimage/porting_to_vimage.txt#10 (text+ko) ==== >> >> -#endif /* !_FOO_VFOO_H_ */ >> -========================================================= >> +On BOOT, the order of evaluation will be: >> + In a NON-VIMAGE kernel where the module is compiled: >> + MODEVENT, SYSINIT and VNET_SYSINIT both runm with order defined by > their >> + order declarations. {good foot shooting aterial if you get it wrong!} >> >> + In a VIMAGE kernel where the module is compiled: >> + MODEVNET, SYSINIT and VNET_SYSINIT both runm with order defined by > their >> + order declarations. AND in addition, the VNET_SYSINIT being >> + repeated once for every new jail/vnet. >> >> +On loading a vnet enabled kernel module after boot: >> + MODEVENT("event = load"); >> + SYSINIT() >> + VNET_SYSINIT() for every existing jail >> + AND in addition, VNET_SYSINIT being called for each new jail > created. >> >> +On unloading of module: >> + MODEVENT("event = quiesce") >> + MODEVENT("event = unload") >> + VNET_SYSUNINIT called for every jail/vnet >> + SYSUNINIT >> >> +On system shutdown: >> + effectively the same as unload >> + {with exception of modevent?} > > On system shutdown MOD_SHUTDOWN is the only MODEVENT handler invoked. > >> +NOTICE that while the order of the SYSINIT and VNET_SYSINIT is reversed > from >> +that of SYSUNINIT and VNET_SYSUNINIT, MODEVENTS do not follow >> +this rule and thus it is dangerous to initialise and uninitialise >> +things which are order dependent using MODEVENTs. > > This is no longer true. MOD_QUIESCE and MOD_UNLOAD events now run in the > reverse of the order that MOD_LOAD is invoked for a given kld during > kldunload. This is true in both 7 and 8 now for several months. I meant the order within the entries for the same module. Since MODEVENT is called first during load, it would, by the assumption that everything is reversed easy to assume that MODEVENT is called AFTER the SYSINITS during unload. This is in fact not the case, and I have the scars to prove it. It might be make some sense if the "QUIESCE" was called before the SYSINIT/SYSUNINIT and the UNLOAD called after.. with a millisecond sleep between them. > thanks for the comments.. could you possibly change the doc to suite? I don't have a p4 tree right now. From owner-p4-projects@FreeBSD.ORG Thu Aug 6 16:00:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 716B81065688; Thu, 6 Aug 2009 16:00:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2F1F51065686 for ; Thu, 6 Aug 2009 16:00:33 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1D1698FC1B for ; Thu, 6 Aug 2009 16:00:33 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76G0X8N057903 for ; Thu, 6 Aug 2009 16:00:33 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76G0Onf057893 for perforce@freebsd.org; Thu, 6 Aug 2009 16:00:24 GMT (envelope-from zec@fer.hr) Date: Thu, 6 Aug 2009 16:00:24 GMT Message-Id: <200908061600.n76G0Onf057893@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167066 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 16:00:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=167066 Change 167066 by zec@zec_tpx32 on 2009/08/06 15:59:33 IFC @ 167016 Affected files ... .. //depot/projects/vimage/src/share/man/man4/Makefile#16 integrate .. //depot/projects/vimage/src/share/man/man4/ahci.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/altq.4#8 integrate .. //depot/projects/vimage/src/share/man/man4/asmc.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/epair.4#5 integrate .. //depot/projects/vimage/src/share/man/man4/mxge.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/siis.4#1 branch .. //depot/projects/vimage/src/share/man/man4/u3g.4#5 integrate .. //depot/projects/vimage/src/share/man/man4/urtw.4#3 integrate .. //depot/projects/vimage/src/share/man/man9/netisr.9#3 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/initcpu.c#5 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#22 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#32 integrate .. //depot/projects/vimage/src/sys/amd64/include/cpufunc.h#6 integrate .. //depot/projects/vimage/src/sys/amd64/include/md_var.h#8 integrate .. //depot/projects/vimage/src/sys/arm/arm/busdma_machdep.c#17 integrate .. //depot/projects/vimage/src/sys/arm/arm/cpufunc.c#10 integrate .. //depot/projects/vimage/src/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/vimage/src/sys/arm/arm/pmap.c#22 integrate .. //depot/projects/vimage/src/sys/arm/arm/vm_machdep.c#11 integrate .. //depot/projects/vimage/src/sys/arm/conf/AVILA#18 integrate .. //depot/projects/vimage/src/sys/arm/conf/CAMBRIA#7 integrate .. //depot/projects/vimage/src/sys/boot/forth/loader.conf#23 integrate .. //depot/projects/vimage/src/sys/bsm/audit.h#11 integrate .. //depot/projects/vimage/src/sys/bsm/audit_kevents.h#13 integrate .. //depot/projects/vimage/src/sys/cam/ata/ata_da.c#2 integrate .. //depot/projects/vimage/src/sys/cam/cam_ccb.h#5 integrate .. //depot/projects/vimage/src/sys/cam/cam_xpt.c#20 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#3 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#4 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#4 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#13 integrate .. //depot/projects/vimage/src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#3 integrate .. //depot/projects/vimage/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#3 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#24 integrate .. //depot/projects/vimage/src/sys/compat/linprocfs/linprocfs.c#40 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#26 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_mib.c#9 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_socket.c#25 integrate .. //depot/projects/vimage/src/sys/compat/svr4/svr4_sockio.c#15 integrate .. //depot/projects/vimage/src/sys/conf/NOTES#60 integrate .. //depot/projects/vimage/src/sys/conf/files#76 integrate .. //depot/projects/vimage/src/sys/conf/newvers.sh#10 integrate .. //depot/projects/vimage/src/sys/contrib/altq/altq/altq_subr.c#23 integrate .. //depot/projects/vimage/src/sys/contrib/ipfilter/netinet/fil.c#6 integrate .. //depot/projects/vimage/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#22 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pf.c#25 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pf_if.c#20 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pf_ioctl.c#27 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pf_subr.c#17 integrate .. //depot/projects/vimage/src/sys/contrib/rdma/rdma_cma.c#10 integrate .. //depot/projects/vimage/src/sys/ddb/db_sym.c#3 integrate .. //depot/projects/vimage/src/sys/dev/aac/aac.c#11 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi.c#22 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_battery.c#7 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_cpu.c#13 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_dock.c#5 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_thermal.c#8 integrate .. //depot/projects/vimage/src/sys/dev/adb/adb_bus.c#5 integrate .. //depot/projects/vimage/src/sys/dev/alc/if_alc.c#3 integrate .. //depot/projects/vimage/src/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/vimage/src/sys/dev/amr/amr.c#9 integrate .. //depot/projects/vimage/src/sys/dev/ata/ata-all.c#16 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/if_ath.c#43 integrate .. //depot/projects/vimage/src/sys/dev/ath/if_athvar.h#24 integrate .. //depot/projects/vimage/src/sys/dev/atkbdc/psm.c#13 integrate .. //depot/projects/vimage/src/sys/dev/bktr/bktr_os.c#5 integrate .. //depot/projects/vimage/src/sys/dev/ciss/ciss.c#18 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#14 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#25 integrate .. //depot/projects/vimage/src/sys/dev/drm/drm_drv.c#16 integrate .. //depot/projects/vimage/src/sys/dev/e1000/e1000_ich8lan.c#5 integrate .. //depot/projects/vimage/src/sys/dev/e1000/if_em.c#14 integrate .. //depot/projects/vimage/src/sys/dev/e1000/if_igb.c#12 integrate .. //depot/projects/vimage/src/sys/dev/if_ndis/if_ndis.c#31 integrate .. //depot/projects/vimage/src/sys/dev/ips/ips_pci.c#3 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp.c#12 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_freebsd.c#15 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_freebsd.h#9 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_ioctl.h#4 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_library.c#4 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_library.h#3 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_pci.c#10 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_sbus.c#9 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_stds.h#3 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_target.c#6 integrate .. //depot/projects/vimage/src/sys/dev/isp/isp_target.h#4 integrate .. //depot/projects/vimage/src/sys/dev/isp/ispmbox.h#5 integrate .. //depot/projects/vimage/src/sys/dev/isp/ispreg.h#3 integrate .. //depot/projects/vimage/src/sys/dev/isp/ispvar.h#6 integrate .. //depot/projects/vimage/src/sys/dev/ispfw/asm_2300.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/vimage/src/sys/dev/ispfw/ispfw.c#4 integrate .. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe.c#9 integrate .. //depot/projects/vimage/src/sys/dev/mfi/mfi.c#20 integrate .. //depot/projects/vimage/src/sys/dev/mlx/mlx.c#7 integrate .. //depot/projects/vimage/src/sys/dev/mmc/mmc.c#14 integrate .. //depot/projects/vimage/src/sys/dev/mxge/if_mxge.c#19 integrate .. //depot/projects/vimage/src/sys/dev/pccbb/pccbb.c#12 integrate .. //depot/projects/vimage/src/sys/dev/pci/pci.c#27 integrate .. //depot/projects/vimage/src/sys/dev/pst/pst-iop.c#3 integrate .. //depot/projects/vimage/src/sys/dev/rp/rp.c#6 integrate .. //depot/projects/vimage/src/sys/dev/siis/siis.c#1 branch .. //depot/projects/vimage/src/sys/dev/siis/siis.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac.c#37 integrate .. //depot/projects/vimage/src/sys/dev/sound/usb/uaudio.c#18 integrate .. //depot/projects/vimage/src/sys/dev/twe/twe.c#3 integrate .. //depot/projects/vimage/src/sys/dev/uart/uart_cpu_powerpc.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/at91dci.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/atmegadci.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/avr32dci.c#6 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/ehci.c#14 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/ehci_pci.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/musb_otg.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/ohci.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/ohci_pci.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/uhci.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/uhci_pci.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/usb_controller.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/controller/uss820dci.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/input/ukbd.c#10 integrate .. //depot/projects/vimage/src/sys/dev/usb/input/ums.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/net/usb_ethernet.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/serial/u3g.c#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/serial/ulpt.c#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_compat_linux.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_compat_linux.h#9 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_controller.h#12 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_dev.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_dev.h#8 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_device.c#16 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_handle_request.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_hid.c#10 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_hub.c#15 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_parse.c#6 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_request.c#13 integrate .. //depot/projects/vimage/src/sys/dev/usb/usb_transfer.c#14 integrate .. //depot/projects/vimage/src/sys/dev/usb/usbdevs#53 integrate .. //depot/projects/vimage/src/sys/dev/usb/usbdi.h#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/wlan/if_uath.c#6 integrate .. //depot/projects/vimage/src/sys/dev/usb/wlan/if_upgt.c#6 integrate .. //depot/projects/vimage/src/sys/dev/xen/blkback/blkback.c#4 integrate .. //depot/projects/vimage/src/sys/dev/xen/netback/netback.c#3 integrate .. //depot/projects/vimage/src/sys/fs/nfs/nfsport.h#7 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clbio.c#7 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clrpcops.c#4 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clstate.c#7 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clvfsops.c#6 integrate .. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clvnops.c#8 integrate .. //depot/projects/vimage/src/sys/fs/procfs/procfs_map.c#11 integrate .. //depot/projects/vimage/src/sys/fs/unionfs/union_subr.c#17 integrate .. //depot/projects/vimage/src/sys/geom/vinum/geom_vinum.c#8 integrate .. //depot/projects/vimage/src/sys/i386/acpica/acpi_machdep.c#11 integrate .. //depot/projects/vimage/src/sys/i386/bios/smapi.c#5 integrate .. //depot/projects/vimage/src/sys/i386/bios/smbios.c#3 integrate .. //depot/projects/vimage/src/sys/i386/bios/vpd.c#3 integrate .. //depot/projects/vimage/src/sys/i386/i386/initcpu.c#7 integrate .. //depot/projects/vimage/src/sys/i386/i386/machdep.c#24 integrate .. //depot/projects/vimage/src/sys/i386/i386/pmap.c#30 integrate .. //depot/projects/vimage/src/sys/i386/i386/vm_machdep.c#15 integrate .. //depot/projects/vimage/src/sys/i386/include/cpufunc.h#11 integrate .. //depot/projects/vimage/src/sys/i386/include/md_var.h#4 integrate .. //depot/projects/vimage/src/sys/i386/include/pmap.h#13 integrate .. //depot/projects/vimage/src/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/vimage/src/sys/i386/xen/pmap.c#11 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/pmap.c#15 integrate .. //depot/projects/vimage/src/sys/kern/init_main.c#30 integrate .. //depot/projects/vimage/src/sys/kern/kern_exec.c#25 integrate .. //depot/projects/vimage/src/sys/kern/kern_exit.c#35 integrate .. //depot/projects/vimage/src/sys/kern/kern_fork.c#31 integrate .. //depot/projects/vimage/src/sys/kern/kern_jail.c#33 integrate .. //depot/projects/vimage/src/sys/kern/kern_linker.c#31 integrate .. //depot/projects/vimage/src/sys/kern/kern_poll.c#24 integrate .. //depot/projects/vimage/src/sys/kern/kern_proc.c#27 integrate .. //depot/projects/vimage/src/sys/kern/kern_prot.c#21 integrate .. //depot/projects/vimage/src/sys/kern/kern_sysctl.c#28 integrate .. //depot/projects/vimage/src/sys/kern/kern_uuid.c#19 integrate .. //depot/projects/vimage/src/sys/kern/kern_vimage.c#101 delete .. //depot/projects/vimage/src/sys/kern/link_elf_obj.c#16 integrate .. //depot/projects/vimage/src/sys/kern/subr_bus.c#20 integrate .. //depot/projects/vimage/src/sys/kern/sys_socket.c#19 integrate .. //depot/projects/vimage/src/sys/kern/tty_pts.c#18 integrate .. //depot/projects/vimage/src/sys/kern/tty_ttydisc.c#8 integrate .. //depot/projects/vimage/src/sys/kern/uipc_domain.c#24 integrate .. //depot/projects/vimage/src/sys/kern/uipc_socket.c#41 integrate .. //depot/projects/vimage/src/sys/kern/uipc_syscalls.c#32 integrate .. //depot/projects/vimage/src/sys/kern/uipc_usrreq.c#30 integrate .. //depot/projects/vimage/src/sys/kern/vfs_bio.c#27 integrate .. //depot/projects/vimage/src/sys/kern/vfs_lookup.c#26 integrate .. //depot/projects/vimage/src/sys/kern/vfs_mount.c#37 integrate .. //depot/projects/vimage/src/sys/kern/vfs_syscalls.c#31 integrate .. //depot/projects/vimage/src/sys/mips/mips/pmap.c#15 integrate .. //depot/projects/vimage/src/sys/modules/Makefile#53 integrate .. //depot/projects/vimage/src/sys/modules/if_epair/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/ispfw/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/vimage/src/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/vimage/src/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/vimage/src/sys/modules/siis/Makefile#1 branch .. //depot/projects/vimage/src/sys/modules/wlan/Makefile#11 integrate .. //depot/projects/vimage/src/sys/net/bpf.c#40 integrate .. //depot/projects/vimage/src/sys/net/bridgestp.c#24 integrate .. //depot/projects/vimage/src/sys/net/flowtable.c#7 integrate .. //depot/projects/vimage/src/sys/net/flowtable.h#6 integrate .. //depot/projects/vimage/src/sys/net/if.c#90 integrate .. //depot/projects/vimage/src/sys/net/if_bridge.c#33 integrate .. //depot/projects/vimage/src/sys/net/if_clone.c#18 integrate .. //depot/projects/vimage/src/sys/net/if_clone.h#3 integrate .. //depot/projects/vimage/src/sys/net/if_ef.c#17 integrate .. //depot/projects/vimage/src/sys/net/if_enc.c#11 integrate .. //depot/projects/vimage/src/sys/net/if_epair.c#9 integrate .. //depot/projects/vimage/src/sys/net/if_ethersubr.c#47 integrate .. //depot/projects/vimage/src/sys/net/if_faith.c#11 integrate .. //depot/projects/vimage/src/sys/net/if_gif.c#35 integrate .. //depot/projects/vimage/src/sys/net/if_gif.h#16 integrate .. //depot/projects/vimage/src/sys/net/if_gre.c#16 integrate .. //depot/projects/vimage/src/sys/net/if_llatbl.c#7 integrate .. //depot/projects/vimage/src/sys/net/if_loop.c#53 integrate .. //depot/projects/vimage/src/sys/net/if_mib.c#19 integrate .. //depot/projects/vimage/src/sys/net/if_spppsubr.c#20 integrate .. //depot/projects/vimage/src/sys/net/if_stf.c#21 integrate .. //depot/projects/vimage/src/sys/net/if_tun.c#21 integrate .. //depot/projects/vimage/src/sys/net/if_var.h#44 integrate .. //depot/projects/vimage/src/sys/net/if_vlan.c#22 integrate .. //depot/projects/vimage/src/sys/net/netisr.c#23 integrate .. //depot/projects/vimage/src/sys/net/netisr.h#11 integrate .. //depot/projects/vimage/src/sys/net/raw_cb.c#17 integrate .. //depot/projects/vimage/src/sys/net/raw_cb.h#8 integrate .. //depot/projects/vimage/src/sys/net/raw_usrreq.c#16 integrate .. //depot/projects/vimage/src/sys/net/route.c#57 integrate .. //depot/projects/vimage/src/sys/net/rtsock.c#42 integrate .. //depot/projects/vimage/src/sys/net/vnet.c#2 integrate .. //depot/projects/vimage/src/sys/net/vnet.h#30 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211.c#40 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto.c#9 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto.h#11 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ddb.c#30 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_freebsd.c#25 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_hwmp.c#2 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_input.c#21 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_input.h#4 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.h#16 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_mesh.c#2 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_mesh.h#2 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_output.c#29 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_scan_sta.c#19 integrate .. //depot/projects/vimage/src/sys/netgraph/atm/ng_atm.c#15 integrate .. //depot/projects/vimage/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#3 integrate .. //depot/projects/vimage/src/sys/netgraph/netgraph.h#24 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_base.c#63 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_bridge.c#10 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#33 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_ether.c#31 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_gif.c#16 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_iface.c#31 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_pipe.c#11 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_socket.c#7 integrate .. //depot/projects/vimage/src/sys/netgraph/ng_source.c#6 integrate .. //depot/projects/vimage/src/sys/netinet/icmp6.h#7 integrate .. //depot/projects/vimage/src/sys/netinet/icmp_var.h#10 integrate .. //depot/projects/vimage/src/sys/netinet/if_ether.c#49 integrate .. //depot/projects/vimage/src/sys/netinet/igmp.c#46 integrate .. //depot/projects/vimage/src/sys/netinet/in.c#40 integrate .. //depot/projects/vimage/src/sys/netinet/in_gif.c#24 integrate .. //depot/projects/vimage/src/sys/netinet/in_mcast.c#31 integrate .. //depot/projects/vimage/src/sys/netinet/in_pcb.c#64 integrate .. //depot/projects/vimage/src/sys/netinet/in_pcb.h#37 integrate .. //depot/projects/vimage/src/sys/netinet/in_proto.c#23 integrate .. //depot/projects/vimage/src/sys/netinet/in_rmx.c#40 integrate .. //depot/projects/vimage/src/sys/netinet/in_var.h#23 integrate .. //depot/projects/vimage/src/sys/netinet/ip_carp.c#26 integrate .. //depot/projects/vimage/src/sys/netinet/ip_divert.c#37 integrate .. //depot/projects/vimage/src/sys/netinet/ip_fastfwd.c#21 integrate .. //depot/projects/vimage/src/sys/netinet/ip_fw.h#36 integrate .. //depot/projects/vimage/src/sys/netinet/ip_icmp.c#31 integrate .. //depot/projects/vimage/src/sys/netinet/ip_input.c#64 integrate .. //depot/projects/vimage/src/sys/netinet/ip_ipsec.c#26 integrate .. //depot/projects/vimage/src/sys/netinet/ip_mroute.c#27 integrate .. //depot/projects/vimage/src/sys/netinet/ip_options.c#24 integrate .. //depot/projects/vimage/src/sys/netinet/ip_output.c#43 integrate .. //depot/projects/vimage/src/sys/netinet/ip_var.h#23 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#7 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_nat.c#5 integrate .. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_pfil.c#4 integrate .. //depot/projects/vimage/src/sys/netinet/raw_ip.c#53 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_auth.c#16 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#35 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_os_bsd.h#32 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_sysctl.c#19 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_sysctl.h#14 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_uio.h#26 integrate .. //depot/projects/vimage/src/sys/netinet/sctputil.c#40 integrate .. //depot/projects/vimage/src/sys/netinet/sctputil.h#21 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_hostcache.c#43 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_input.c#59 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_offload.c#14 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_output.c#33 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_reass.c#17 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_sack.c#22 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_subr.c#89 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_syncache.c#57 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_timer.c#30 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_timewait.c#36 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_usrreq.c#39 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_var.h#39 integrate .. //depot/projects/vimage/src/sys/netinet/udp_usrreq.c#60 integrate .. //depot/projects/vimage/src/sys/netinet/udp_var.h#17 integrate .. //depot/projects/vimage/src/sys/netinet6/dest6.c#13 integrate .. //depot/projects/vimage/src/sys/netinet6/frag6.c#31 integrate .. //depot/projects/vimage/src/sys/netinet6/icmp6.c#49 integrate .. //depot/projects/vimage/src/sys/netinet6/in6.c#41 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_gif.c#22 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#45 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_mcast.c#6 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_pcb.c#39 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_proto.c#46 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_rmx.c#40 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_src.c#40 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_var.h#14 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_forward.c#22 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_input.c#61 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_ipsec.c#19 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_mroute.c#30 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_output.c#34 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_var.h#24 integrate .. //depot/projects/vimage/src/sys/netinet6/mld6.c#32 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6.c#57 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6.h#19 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6_nbr.c#39 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6_rtr.c#39 integrate .. //depot/projects/vimage/src/sys/netinet6/raw_ip6.c#44 integrate .. //depot/projects/vimage/src/sys/netinet6/raw_ip6.h#5 integrate .. //depot/projects/vimage/src/sys/netinet6/route6.c#16 integrate .. //depot/projects/vimage/src/sys/netinet6/scope6.c#29 integrate .. //depot/projects/vimage/src/sys/netinet6/tcp6_var.h#7 integrate .. //depot/projects/vimage/src/sys/netinet6/udp6_usrreq.c#47 integrate .. //depot/projects/vimage/src/sys/netipsec/ah_var.h#3 integrate .. //depot/projects/vimage/src/sys/netipsec/esp_var.h#3 integrate .. //depot/projects/vimage/src/sys/netipsec/ipcomp_var.h#3 integrate .. //depot/projects/vimage/src/sys/netipsec/ipip_var.h#4 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec.c#52 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec.h#17 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec6.h#9 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec_input.c#24 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec_mbuf.c#11 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec_output.c#24 integrate .. //depot/projects/vimage/src/sys/netipsec/key.c#47 integrate .. //depot/projects/vimage/src/sys/netipsec/key_debug.h#5 integrate .. //depot/projects/vimage/src/sys/netipsec/keysock.c#28 integrate .. //depot/projects/vimage/src/sys/netipsec/keysock.h#7 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_ah.c#28 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_esp.c#28 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_ipcomp.c#23 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_ipip.c#34 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_tcp.c#9 integrate .. //depot/projects/vimage/src/sys/nfsclient/bootp_subr.c#24 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_diskless.c#19 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_vnops.c#40 integrate .. //depot/projects/vimage/src/sys/pc98/cbus/fdc.c#3 integrate .. //depot/projects/vimage/src/sys/powerpc/booke/pmap.c#15 integrate .. //depot/projects/vimage/src/sys/powerpc/mpc85xx/lbc.h#3 integrate .. //depot/projects/vimage/src/sys/security/audit/audit.c#19 integrate .. //depot/projects/vimage/src/sys/security/audit/audit.h#13 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_arg.c#15 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_bsm.c#16 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_bsm_errno.c#3 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_bsm_klib.c#13 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_bsm_token.c#14 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_private.h#12 integrate .. //depot/projects/vimage/src/sys/sparc64/include/param.h#6 integrate .. //depot/projects/vimage/src/sys/sparc64/sparc64/pmap.c#15 integrate .. //depot/projects/vimage/src/sys/sys/bus.h#7 integrate .. //depot/projects/vimage/src/sys/sys/domain.h#7 integrate .. //depot/projects/vimage/src/sys/sys/jail.h#17 integrate .. //depot/projects/vimage/src/sys/sys/kernel.h#20 integrate .. //depot/projects/vimage/src/sys/sys/param.h#60 integrate .. //depot/projects/vimage/src/sys/sys/priv.h#22 integrate .. //depot/projects/vimage/src/sys/sys/sockio.h#7 integrate .. //depot/projects/vimage/src/sys/sys/sysctl.h#41 integrate .. //depot/projects/vimage/src/sys/sys/ucred.h#13 integrate .. //depot/projects/vimage/src/sys/sys/user.h#13 integrate .. //depot/projects/vimage/src/sys/vm/device_pager.c#9 integrate .. //depot/projects/vimage/src/sys/vm/sg_pager.c#1 branch .. //depot/projects/vimage/src/sys/vm/vm.h#5 integrate .. //depot/projects/vimage/src/sys/vm/vm_fault.c#20 integrate .. //depot/projects/vimage/src/sys/vm/vm_map.c#21 integrate .. //depot/projects/vimage/src/sys/vm/vm_meter.c#12 integrate .. //depot/projects/vimage/src/sys/vm/vm_object.c#26 integrate .. //depot/projects/vimage/src/sys/vm/vm_object.h#9 integrate .. //depot/projects/vimage/src/sys/vm/vm_page.c#25 integrate .. //depot/projects/vimage/src/sys/vm/vm_pageout.c#19 integrate .. //depot/projects/vimage/src/sys/vm/vm_pager.c#5 integrate .. //depot/projects/vimage/src/sys/vm/vm_pager.h#4 integrate .. //depot/projects/vimage/src/sys/xen/evtchn/evtchn.c#10 integrate .. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_probe.c#7 integrate .. //depot/projects/vimage/src/usr.bin/kdump/mkioctls#6 integrate Differences ... ==== //depot/projects/vimage/src/share/man/man4/Makefile#16 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 -# $FreeBSD: src/share/man/man4/Makefile,v 1.458 2009/07/12 03:19:25 sam Exp $ +# $FreeBSD: src/share/man/man4/Makefile,v 1.460 2009/07/26 12:20:07 bz Exp $ MAN= aac.4 \ acpi.4 \ @@ -94,6 +94,7 @@ em.4 \ en.4 \ enc.4 \ + epair.4 \ esp.4 \ et.4 \ exca.4 \ @@ -332,6 +333,7 @@ sf.4 \ si.4 \ sio.4 \ + siis.4 \ sis.4 \ sk.4 \ smb.4 \ @@ -489,6 +491,7 @@ MLINKS+=em.4 if_em.4 MLINKS+=en.4 if_en.4 MLINKS+=enc.4 if_enc.4 +MLINKS+=epair.4 if_epair.4 MLINKS+=et.4 if_et.4 MLINKS+=faith.4 if_faith.4 MLINKS+=fatm.4 if_fatm.4 ==== //depot/projects/vimage/src/share/man/man4/ahci.4#2 (text+ko) ==== @@ -23,7 +23,7 @@ .\" (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: src/share/man/man4/ahci.4,v 1.1 2009/07/10 08:18:08 scottl Exp $ +.\" $FreeBSD: src/share/man/man4/ahci.4,v 1.2 2009/07/25 18:19:31 mav Exp $ .\" .Dd June 26, 2009 .Dt AHCI 4 @@ -87,7 +87,7 @@ .Tn SATA ports of AHCI-compatible controllers. Each SATA port found is represented to CAM as a separate bus with one -target, or, if HBA supports Port Multipliers, 15 targets. +target, or, if HBA supports Port Multipliers, 16 targets. Most of the bus-management details are handled by the SATA-specific transport of CAM. Connected ATA disks are handled by the ATA protocol disk peripheral driver ==== //depot/projects/vimage/src/share/man/man4/altq.4#8 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/altq.4,v 1.41 2009/06/15 18:24:04 marius Exp $ +.\" $FreeBSD: src/share/man/man4/altq.4,v 1.42 2009/07/26 12:20:07 bz Exp $ .\" -.Dd June 14, 2009 +.Dd July 26, 2009 .Dt ALTQ 4 .Os .Sh NAME ==== //depot/projects/vimage/src/share/man/man4/asmc.4#2 (text+ko) ==== @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2007, 2008 Rui Paulo +.\" Copyright (c) 2007, 2008, 2009 Rui Paulo .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -23,9 +23,9 @@ .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/asmc.4,v 1.4 2008/04/07 11:27:16 rpaulo Exp $ +.\" $FreeBSD: src/share/man/man4/asmc.4,v 1.5 2009/07/27 13:36:35 rpaulo Exp $ .\" -.Dd April 7, 2008 +.Dd July 27, 2009 .Dt ASMC 4 .Os .Sh NAME @@ -54,11 +54,17 @@ .Pp .Bl -bullet -offset indent -compact .It -MacBook (any generation) +MacBook .It -MacBook Pro (any generation) +MacBook Pro .It Intel MacMini +.It +Mac Pro +.It +MacBook Air +.It +Intel iMac .El .Pp With this driver, you can configure your keyboard backlight @@ -72,15 +78,16 @@ .Sh KEYBOARD BACKLIGHT On .Tn MacBook Pro -systems, you can control the keyboard brightness by writing values to +systems, you can control the keyboard brightness by writing a value to the +.Va dev.asmc.%d.light.control +sysctl MIB. +.Pp +The following sysctl MIBs contains the raw value returned by the left +and right light sensors: .Va dev.asmc.%d.light.left or -.Va dev.asmc.%d.light.right -sysctl MIBs. -.Pp -Each of these sysctl MIBs contains the raw value returned by the left -and right light sensors. +.Va dev.asmc.%d.light.right . .Sh TEMPERATURES The number of temperature sensors and their description varies among systems. ==== //depot/projects/vimage/src/share/man/man4/epair.4#5 (text+ko) ==== @@ -26,14 +26,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/epair.4,v 1.1 2009/06/24 22:21:30 bz Exp $ +.\" $FreeBSD: src/share/man/man4/epair.4,v 1.2 2009/07/26 12:20:07 bz Exp $ .\" -.Dd December 15, 2008 +.Dd July 26, 2009 .Dt EPAIR 4 .Os .Sh NAME .Nm epair -.Nd Virtual cross-over Ethernet-like interface pair. +.Nd A pair of virtual back-to-back connected Ethernet interfaces. .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your @@ -52,7 +52,7 @@ The .Nm is a pair of Ethernet-like software interfaces, -which are directly connected by a virtual cross-over cable. +which are connected back-to-back with a virtual cross-over cable. .Pp Each .Nm ==== //depot/projects/vimage/src/share/man/man4/mxge.4#2 (text+ko) ==== @@ -29,7 +29,7 @@ .\" .\" * Other names and brands may be claimed as the property of others. .\" -.\" $FreeBSD: src/share/man/man4/mxge.4,v 1.9 2008/02/13 08:09:55 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/mxge.4,v 1.10 2009/07/22 11:57:34 gallatin Exp $ .\" .Dd February 13, 2008 .Dt MXGE 4 @@ -125,14 +125,14 @@ of a set of receive queues and an associated interrupt thread. When using multiple slices, the NIC hashes traffic to different slices based on the value of -.Va hw.mxge.rss_hash_type . +.Va hw.mxge.rss_hashtype . Using multiple slices requires that your motherboard and Myri10GE NIC both be capable of MSI-X. Older Myri10GE NICs can be field upgraded to add MSI-X using the "10G NIC Tool Kit" for FreeBSD which is available from .Pa http://www.myri.com/scs/download-10g-tools.html . .Pp -.It Va hw.mxge.rss_hash_type +.It Va hw.mxge.rss_hashtype This value determines how incoming traffic is steered to different slices. This tunable is ignored when using just a single slice. ==== //depot/projects/vimage/src/share/man/man4/u3g.4#5 (text+ko) ==== @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.\" $FreeBSD: src/share/man/man4/u3g.4,v 1.11 2009/05/02 11:59:56 hrs Exp $ +.\" $FreeBSD: src/share/man/man4/u3g.4,v 1.12 2009/07/30 00:15:17 alfred Exp $ .\" .Dd October 7, 2008 .Dt U3G 4 @@ -64,7 +64,7 @@ .It Qualcomm Inc. CDMA MSM .It -Huawei B190, E220 ('') +Huawei B190, E180v, E220 ('') .It Novatel U740, MC950D, X950D, etc. .It ==== //depot/projects/vimage/src/share/man/man4/urtw.4#3 (text+ko) ==== @@ -22,14 +22,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/urtw.4,v 1.2 2009/05/16 12:11:06 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/urtw.4,v 1.3 2009/07/27 18:07:44 weongyo Exp $ .\" -.Dd November 15, 2008 +.Dd July 25, 2009 .Dt URTW 4 .Os .Sh NAME .Nm urtw -.Nd Realtek RTL8187L USB IEEE 802.11b/g wireless network device +.Nd Realtek RTL8187B/L USB IEEE 802.11b/g wireless network device .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: @@ -52,7 +52,7 @@ The .Nm driver supports USB 802.11b/g wireless adapters based on the -Realtek RTL8187L. +Realtek RTL8187B/L. .Pp .Nm supports @@ -66,7 +66,7 @@ .Sh HARDWARE The .Nm -driver supports Realtek RTL8187L based wireless network devices, including: +driver supports Realtek RTL8187B/L based wireless network devices, including: .Pp .Bl -column "Shuttle XPC Accessory PN20" "RTL8225" "USB" -compact -offset 6n .It Em "Card Radio Bus" ==== //depot/projects/vimage/src/share/man/man9/netisr.9#3 (text+ko) ==== @@ -25,9 +25,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/netisr.9,v 1.3 2009/06/14 17:15:18 bz Exp $ +.\" $FreeBSD: src/share/man/man9/netisr.9,v 1.4 2009/07/26 12:20:07 bz Exp $ .\" -.Dd June 14, 2009 +.Dd July 26, 2009 .Dt NETISR 9 .Os .Sh NAME @@ -208,6 +208,8 @@ IPv6 .It Dv NETISR_NATM ATM +.It Dv NETISR_EPAIR +.Xr epair 4 .El .Sh AUTHORS This manual page and the ==== //depot/projects/vimage/src/sys/amd64/amd64/initcpu.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.53 2009/01/12 19:17:35 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.54 2009/07/22 14:32:38 kib Exp $"); #include "opt_cpu.h" @@ -65,6 +65,7 @@ u_int cpu_vendor_id; /* CPU vendor ID */ u_int cpu_fxsr; /* SSE enabled */ u_int cpu_mxcsr_mask; /* Valid bits in mxcsr */ +u_int cpu_clflush_line_size = 32; SYSCTL_UINT(_hw, OID_AUTO, via_feature_rng, CTLFLAG_RD, &via_feature_rng, 0, "VIA C3/C7 RNG feature available in CPU"); @@ -156,4 +157,12 @@ AMD64_CPU_FAMILY(cpu_id) == 0x6 && AMD64_CPU_MODEL(cpu_id) >= 0xf) init_via(); + + /* + * CPUID with %eax = 1, %ebx returns + * Bits 15-8: CLFLUSH line size + * (Value * 8 = cache line size in bytes) + */ + if ((cpu_feature & CPUID_CLFSH) != 0) + cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8; } ==== //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#22 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -213,7 +213,11 @@ */ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { - if (strncmp(sysenv, "MacBook", 7) == 0) { + if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBook3,1", 10) == 0 || + strncmp(sysenv, "MacBookPro1,1", 13) == 0 || + strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " "Intel ICH.\n"); ==== //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#32 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.663 2009/07/12 23:31:20 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); /* * Manages physical address maps. @@ -231,6 +231,7 @@ vm_page_t m, vm_prot_t prot, vm_page_t mpte); static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte); static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte); +static void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva); static boolean_t pmap_is_modified_pvh(struct md_page *pvh); static void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode); static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va); @@ -752,21 +753,6 @@ /* The PAT bit is different for PTE's and PDE's. */ pat_flag = is_pde ? PG_PDE_PAT : PG_PTE_PAT; - /* If we don't support PAT, map extended modes to older ones. */ - if (!(cpu_feature & CPUID_PAT)) { - switch (mode) { - case PAT_UNCACHEABLE: - case PAT_WRITE_THROUGH: - case PAT_WRITE_BACK: - break; - case PAT_UNCACHED: - case PAT_WRITE_COMBINING: - case PAT_WRITE_PROTECTED: - mode = PAT_UNCACHEABLE; - break; - } - } - /* Map the caching mode to a PAT index. */ switch (mode) { case PAT_UNCACHEABLE: @@ -936,6 +922,40 @@ } #endif /* !SMP */ +static void +pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva) +{ + + KASSERT((sva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: sva not page-aligned")); + KASSERT((eva & PAGE_MASK) == 0, + ("pmap_invalidate_cache_range: eva not page-aligned")); + + if (cpu_feature & CPUID_SS) + ; /* If "Self Snoop" is supported, do nothing. */ + else if (cpu_feature & CPUID_CLFSH) { + + /* + * Otherwise, do per-cache line flush. Use the mfence + * instruction to insure that previous stores are + * included in the write-back. The processor + * propagates flush to other processors in the cache + * coherence domain. + */ + mfence(); + for (; eva < sva; eva += cpu_clflush_line_size) + clflush(eva); + mfence(); + } else { + + /* + * No targeted cache flush methods are supported by CPU, + * globally invalidate cache as a last resort. + */ + pmap_invalidate_cache(); + } +} + /* * Are we current address space or kernel? */ @@ -3339,7 +3359,7 @@ int pat_mode; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT(object->type == OBJT_DEVICE, + KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG, ("pmap_object_init_pt: non-device object")); if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) { if (!vm_object_populate(object, pindex, pindex + atop(size))) @@ -4271,7 +4291,8 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode) { - vm_offset_t va, tmpva, offset; + vm_offset_t va, offset; + vm_size_t tmpsize; /* * If the specified range of physical addresses fits within the direct @@ -4288,14 +4309,10 @@ if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); pa = trunc_page(pa); - for (tmpva = va; size > 0; ) { - pmap_kenter_attr(tmpva, pa, mode); - size -= PAGE_SIZE; - tmpva += PAGE_SIZE; - pa += PAGE_SIZE; - } - pmap_invalidate_range(kernel_pmap, va, tmpva); - pmap_invalidate_cache(); + for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE) + pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode); + pmap_invalidate_range(kernel_pmap, va, va + tmpsize); + pmap_invalidate_cache_range(va, va + tmpsize); return ((void *)(va + offset)); } @@ -4394,9 +4411,12 @@ m->md.pat_mode = ma; /* - * Update the direct mapping and flush the cache. + * If "m" is a normal page, update its direct mapping. This update + * can be relied upon to perform any cache operations that are + * required for data coherence. */ - if (pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, + if ((m->flags & PG_FICTITIOUS) == 0 && + pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE, m->md.pat_mode)) panic("memory attribute change on the direct map failed"); } @@ -4634,7 +4654,7 @@ */ if (changed) { pmap_invalidate_range(kernel_pmap, base, tmpva); - pmap_invalidate_cache(); + pmap_invalidate_cache_range(base, tmpva); } return (error); } ==== //depot/projects/vimage/src/sys/amd64/include/cpufunc.h#6 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.153 2009/04/11 14:01:01 ed Exp $ + * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.154 2009/07/22 14:32:38 kib Exp $ */ /* @@ -100,6 +100,13 @@ } static __inline void +clflush(u_long addr) +{ + + __asm __volatile("clflush %0" : : "m" (*(char *)addr)); +} + +static __inline void disable_intr(void) { __asm __volatile("cli" : : : "memory"); @@ -267,6 +274,13 @@ } static __inline void +mfence(void) +{ + + __asm__ __volatile("mfence" : : : "memory"); +} + +static __inline void ia32_pause(void) { __asm __volatile("pause"); ==== //depot/projects/vimage/src/sys/amd64/include/md_var.h#8 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.85 2009/04/01 13:09:26 kib Exp $ + * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.86 2009/07/22 14:32:38 kib Exp $ */ #ifndef _MACHINE_MD_VAR_H_ @@ -47,6 +47,7 @@ extern u_int amd_pminfo; extern u_int via_feature_rng; extern u_int via_feature_xcrypt; +extern u_int cpu_clflush_line_size; extern u_int cpu_fxsr; extern u_int cpu_high; extern u_int cpu_id; ==== //depot/projects/vimage/src/sys/arm/arm/busdma_machdep.c#17 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.47 2009/04/23 20:24:19 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.48 2009/07/20 07:53:07 raj Exp $"); /* * ARM bus dma support routines @@ -630,10 +630,6 @@ ((vm_offset_t)*vaddr & PAGE_MASK)); newmap->origbuffer = *vaddr; newmap->allocbuffer = tmpaddr; - cpu_idcache_wbinv_range((vm_offset_t)*vaddr, - dmat->maxsize); - cpu_l2cache_wbinv_range((vm_offset_t)*vaddr, - dmat->maxsize); *vaddr = tmpaddr; } else newmap->origbuffer = newmap->allocbuffer = NULL; ==== //depot/projects/vimage/src/sys/arm/arm/cpufunc.c#10 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.26 2009/05/05 12:57:16 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.27 2009/07/21 08:29:19 raj Exp $"); #include #include @@ -265,7 +265,7 @@ arm9_dcache_wbinv_all, /* dcache_wbinv_all */ arm9_dcache_wbinv_range, /* dcache_wbinv_range */ -/*XXX*/ arm9_dcache_wbinv_range, /* dcache_inv_range */ + arm9_dcache_inv_range, /* dcache_inv_range */ arm9_dcache_wb_range, /* dcache_wb_range */ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ @@ -327,7 +327,7 @@ armv5_ec_dcache_wbinv_all, /* dcache_wbinv_all */ armv5_ec_dcache_wbinv_range, /* dcache_wbinv_range */ -/*XXX*/ armv5_ec_dcache_wbinv_range, /* dcache_inv_range */ + armv5_ec_dcache_inv_range, /* dcache_inv_range */ armv5_ec_dcache_wb_range, /* dcache_wb_range */ armv5_ec_idcache_wbinv_all, /* idcache_wbinv_all */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 6 16:04:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 38E371065670; Thu, 6 Aug 2009 16:04:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ECDDA106564A for ; Thu, 6 Aug 2009 16:04:37 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DCD0B8FC19 for ; Thu, 6 Aug 2009 16:04:37 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76G4bVG059106 for ; Thu, 6 Aug 2009 16:04:37 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76G4bCb059104 for perforce@freebsd.org; Thu, 6 Aug 2009 16:04:37 GMT (envelope-from zec@fer.hr) Date: Thu, 6 Aug 2009 16:04:37 GMT Message-Id: <200908061604.n76G4bCb059104@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167067 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 16:04:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=167067 Change 167067 by zec@zec_tpx32 on 2009/08/06 16:03:41 Garbage collect random config files. Affected files ... .. //depot/projects/vimage/src/sys/amd64/conf/GENERIC_NODEBUG#2 delete .. //depot/projects/vimage/src/sys/amd64/conf/VIMAGE#2 delete .. //depot/projects/vimage/src/sys/amd64/conf/VIMAGE_NODEBUG#2 delete .. //depot/projects/vimage/src/sys/amd64/conf/VLINT#2 delete .. //depot/projects/vimage/src/sys/i386/conf/GENERIC_NODEBUG#2 delete .. //depot/projects/vimage/src/sys/i386/conf/VIMAGE#14 delete .. //depot/projects/vimage/src/sys/i386/conf/VIMAGE_NODEBUG#2 delete .. //depot/projects/vimage/src/sys/i386/conf/VLINT#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 6 16:06:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 794121065679; Thu, 6 Aug 2009 16:06:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30987106566B for ; Thu, 6 Aug 2009 16:06:40 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 057228FC1F for ; Thu, 6 Aug 2009 16:06:40 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76G6dxW059305 for ; Thu, 6 Aug 2009 16:06:39 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76G6dKQ059303 for perforce@freebsd.org; Thu, 6 Aug 2009 16:06:39 GMT (envelope-from zec@fer.hr) Date: Thu, 6 Aug 2009 16:06:39 GMT Message-Id: <200908061606.n76G6dKQ059303@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167068 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 16:06:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=167068 Change 167068 by zec@zec_tpx32 on 2009/08/06 16:06:30 prune vimage.h Affected files ... .. //depot/projects/vimage/src/sys/sys/vimage.h#102 delete Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 6 18:50:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 44D8F1065674; Thu, 6 Aug 2009 18:50:39 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 055141065672 for ; Thu, 6 Aug 2009 18:50:39 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CE3FD8FC08 for ; Thu, 6 Aug 2009 18:50:38 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76Iockp083261 for ; Thu, 6 Aug 2009 18:50:38 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76IocRx083259 for perforce@freebsd.org; Thu, 6 Aug 2009 18:50:38 GMT (envelope-from trasz@freebsd.org) Date: Thu, 6 Aug 2009 18:50:38 GMT Message-Id: <200908061850.n76IocRx083259@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167069 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 18:50:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=167069 Change 167069 by trasz@trasz_anger on 2009/08/06 18:49:56 Use only cr_ruidinfo, not cr_uidinfo - for simplicity. Might add it back later, should it prove useful. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#47 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#18 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#47 (text+ko) ==== @@ -249,9 +249,6 @@ struct sbuf *sb; /* - * XXX: Check maxfilesperproc. - */ - /* * XXX: Do this just before we start running on a CPU, not all the time. */ hrl_compute_available(p, &available, &rules); @@ -266,12 +263,6 @@ * into proper one for the situation - EFSIZ, ENOMEM etc. */ return (EDOOFUS); - case HRL_ACTION_DELAY: - /* - * XXX: Think whether we actually can and want to do this. - */ - printf("hrl_enforce_proc: XXX, \"delay\" unimplemented.\n"); - return (0); case HRL_ACTION_LOG: sb = sbuf_new_auto(); hrl_rule_to_sbuf(sb, rules[resource]); @@ -372,8 +363,6 @@ p->p_usage.hu_resources[resource] += amount; cred = p->p_ucred; cred->cr_ruidinfo->ui_usage.hu_resources[resource] += amount; - if (cred->cr_ruidinfo != cred->cr_uidinfo) - cred->cr_uidinfo->ui_usage.hu_resources[resource] += amount; for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) pr->pr_usage.hu_resources[resource] += amount; /* @@ -436,8 +425,6 @@ p->p_usage.hu_resources[resource] = amount; cred = p->p_ucred; cred->cr_ruidinfo->ui_usage.hu_resources[resource] += diff; - if (cred->cr_ruidinfo != cred->cr_uidinfo) - cred->cr_uidinfo->ui_usage.hu_resources[resource] += diff; for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) pr->pr_usage.hu_resources[resource] += diff; /* @@ -493,8 +480,6 @@ p->p_usage.hu_resources[resource] -= amount; cred = p->p_ucred; cred->cr_ruidinfo->ui_usage.hu_resources[resource] -= amount; - if (cred->cr_ruidinfo != cred->cr_uidinfo) - cred->cr_uidinfo->ui_usage.hu_resources[resource] -= amount; for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) pr->pr_usage.hu_resources[resource] -= amount; /* @@ -922,6 +907,9 @@ rule->hr_per == HRL_SUBJECT_GROUP) && !hrl_group_accounting) return (EOPNOTSUPP); + if (rule->hr_action == HRL_ACTION_DELAY) + return (EOPNOTSUPP); + /* * Make sure there are no duplicated rules. */ ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#18 (text+ko) ==== @@ -2189,16 +2189,6 @@ PROC_LOCK_ASSERT(p, MA_OWNED); /* - * Fix up per-euid resource consumption. - */ - newuip = newcred->cr_uidinfo; - olduip = p->p_ucred->cr_uidinfo; - if (newuip != olduip) { - hrl_usage_subtract(&olduip->ui_usage, &p->p_usage); - hrl_usage_add(&newuip->ui_usage, &p->p_usage); - } - - /* * Fix up per-ruid resource consumption. */ newuip = newcred->cr_ruidinfo; From owner-p4-projects@FreeBSD.ORG Thu Aug 6 19:04:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DF3891065672; Thu, 6 Aug 2009 19:04:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9EFA9106566B for ; Thu, 6 Aug 2009 19:04:54 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8CE5B8FC0A for ; Thu, 6 Aug 2009 19:04:54 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76J4sgw085198 for ; Thu, 6 Aug 2009 19:04:54 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76J4s2l085196 for perforce@freebsd.org; Thu, 6 Aug 2009 19:04:54 GMT (envelope-from syl@FreeBSD.org) Date: Thu, 6 Aug 2009 19:04:54 GMT Message-Id: <200908061904.n76J4s2l085196@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 167070 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 19:04:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=167070 Change 167070 by syl@syl_atuin on 2009/08/06 19:04:02 Factorising all controllers. All controller have now only one usb_pipe_methods for isochronous endpoint. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#10 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#10 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#9 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#11 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#18 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#10 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#10 (text+ko) ==== @@ -102,10 +102,6 @@ /* prototypes */ struct usb_bus_methods at91dci_bus_methods; -struct usb_pipe_methods at91dci_device_bulk_methods; -struct usb_pipe_methods at91dci_device_ctrl_methods; -struct usb_pipe_methods at91dci_device_intr_methods; -struct usb_pipe_methods at91dci_device_isoc_fs_methods; static at91dci_cmd_t at91dci_setup_rx; static at91dci_cmd_t at91dci_data_rx; @@ -1567,7 +1563,7 @@ at91dci_start_standard_chain(xfer); } -struct usb_pipe_methods at91dci_device_bulk_methods = +struct usb_pipe_methods at91dci_device_nonisoc_methods = { .open = at91dci_device_dummy, .enter = at91dci_device_dummy, @@ -1575,23 +1571,7 @@ .start = at91dci_device_nonisoc_start, }; -struct usb_pipe_methods at91dci_device_ctrl_methods = -{ - .open = at91dci_device_dummy, - .enter = at91dci_device_dummy, - .close = at91dci_device_close, - .start = at91dci_device_nonisoc_start, -}; -struct usb_pipe_methods at91dci_device_intr_methods = -{ - .open = at91dci_device_dummy, - .enter = at91dci_device_dummy, - .close = at91dci_device_close, - .start = at91dci_device_nonisoc_start, -}; - - struct usb_pipe_methods at91dci_device_isoc_fs_methods = { .open = at91dci_device_dummy, @@ -2113,28 +2093,11 @@ /* * compute maximum number of TDs */ - if (parm->methods == &at91dci_device_ctrl_methods) { - - ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC 1 */ - + 1 /* SYNC 2 */ ; - - } else if (parm->methods == &at91dci_device_bulk_methods) { - - ntd = xfer->nframes + 1 /* SYNC */ ; - - } else if (parm->methods == &at91dci_device_intr_methods) { - - ntd = xfer->nframes + 1 /* SYNC */ ; - - } else if (parm->methods == &at91dci_device_isoc_fs_methods) { - + if ((xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE) == UE_CONTROL) + ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC 1 */ + 1 /* SYNC 2 */ ; + else ntd = xfer->nframes + 1 /* SYNC */ ; - } else { - - ntd = 0; - } - /* * check if "usbd_transfer_setup_sub" set an error */ @@ -2223,17 +2186,13 @@ } switch (edesc->bmAttributes & UE_XFERTYPE) { case UE_CONTROL: - ep->methods = &at91dci_device_ctrl_methods; - break; case UE_INTERRUPT: - ep->methods = &at91dci_device_intr_methods; + case UE_BULK: + ep->methods = &at91dci_device_nonisoc_methods; break; case UE_ISOCHRONOUS: ep->methods = &at91dci_device_isoc_fs_methods; break; - case UE_BULK: - ep->methods = &at91dci_device_bulk_methods; - break; default: /* do nothing */ break; ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#10 (text+ko) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#9 (text+ko) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#11 (text+ko) ==== @@ -94,10 +94,6 @@ /* prototypes */ struct usb_bus_methods musbotg_bus_methods; -struct usb_pipe_methods musbotg_device_bulk_methods; -struct usb_pipe_methods musbotg_device_ctrl_methods; -struct usb_pipe_methods musbotg_device_intr_methods; -struct usb_pipe_methods musbotg_device_isoc_methods; static musbotg_cmd_t musbotg_setup_rx; static musbotg_cmd_t musbotg_setup_data_rx; @@ -1974,15 +1970,7 @@ musbotg_start_standard_chain(xfer); } -struct usb_pipe_methods musbotg_device_bulk_methods = -{ - .open = musbotg_device_dummy, - .enter = musbotg_device_dummy, - .close = musbotg_device_close, - .start = musbotg_device_nonisoc_start, -}; - -struct usb_pipe_methods musbotg_device_ctrl_methods = +struct usb_pipe_methods musbotg_device_nonisoc_methods = { .open = musbotg_device_dummy, .enter = musbotg_device_dummy, @@ -1990,14 +1978,6 @@ .start = musbotg_device_nonisoc_start, }; -struct usb_pipe_methods musbotg_device_intr_methods = -{ - .open = musbotg_device_dummy, - .enter = musbotg_device_dummy, - .close = musbotg_device_close, - .start = musbotg_device_nonisoc_start, -}; - struct usb_pipe_methods musbotg_device_isoc_methods = { .open = musbotg_device_dummy, @@ -2518,7 +2498,7 @@ parm->hc_max_frame_size = 0x400; if ((parm->methods == &musbotg_device_isoc_methods) || - (parm->methods == &musbotg_device_intr_methods)) + xfer->endpoint->edesc->bmAttributes == UE_INTERRUPT) parm->hc_max_packet_count = 3; else parm->hc_max_packet_count = 1; @@ -2528,27 +2508,10 @@ /* * compute maximum number of TDs */ - if (parm->methods == &musbotg_device_ctrl_methods) { - - ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC */ ; - - } else if (parm->methods == &musbotg_device_bulk_methods) { - - ntd = xfer->nframes + 1 /* SYNC */ ; - - } else if (parm->methods == &musbotg_device_intr_methods) { - + if ((xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE) == UE_CONTROL) + ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC 1 */ + 1 /* SYNC 2 */ ; + else ntd = xfer->nframes + 1 /* SYNC */ ; - - } else if (parm->methods == &musbotg_device_isoc_methods) { - - ntd = xfer->nframes + 1 /* SYNC */ ; - - } else { - - ntd = 0; - } - /* * check if "usbd_transfer_setup_sub" set an error */ @@ -2632,17 +2595,13 @@ } switch (edesc->bmAttributes & UE_XFERTYPE) { case UE_CONTROL: - ep->methods = &musbotg_device_ctrl_methods; - break; + case UE_BULK: case UE_INTERRUPT: - ep->methods = &musbotg_device_intr_methods; + ep->methods = &musbotg_device_nonisoc_methods; break; case UE_ISOCHRONOUS: ep->methods = &musbotg_device_isoc_methods; break; - case UE_BULK: - ep->methods = &musbotg_device_bulk_methods; - break; default: /* do nothing */ break; ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#18 (text+ko) ==== @@ -846,27 +846,13 @@ return ; } -struct usb_pipe_methods s3c24dci_device_ctrl_methods = { +struct usb_pipe_methods s3c24dci_device_nonisoc_methods = { .open = s3c24dci_device_dummy, .enter = s3c24dci_device_dummy, .close = s3c24dci_device_close, .start = s3c24dci_device_nonisoc_start, }; -struct usb_pipe_methods s3c24dci_device_bulk_methods = { - .open = s3c24dci_device_dummy, - .enter = s3c24dci_device_dummy, - .close = s3c24dci_device_close, - .start = s3c24dci_device_nonisoc_start, -}; - -struct usb_pipe_methods s3c24dci_device_intr_methods = { - .open = s3c24dci_device_dummy, - .enter = s3c24dci_device_dummy, - .close = s3c24dci_device_close, - .start = s3c24dci_device_nonisoc_start, -}; - /* * s3c24dci root control support * Simulate a hardware HUB by handling all the necessary requests. @@ -1374,24 +1360,11 @@ /* * compute maximum number of TDs */ - if (parm->methods == &s3c24dci_device_ctrl_methods) { - - ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC 1 */ - + 1 /* SYNC 2 */ ; - - } else if (parm->methods == &s3c24dci_device_bulk_methods) { - + if ((xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE) == UE_CONTROL) + ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC 1 */ + 1 /* SYNC 2 */ ; + else ntd = xfer->nframes + 1 /* SYNC */ ; - } else if (parm->methods == &s3c24dci_device_intr_methods) { - - ntd = xfer->nframes + 1 /* SYNC */ ; - - } else { - - ntd = 0; - } - /* * check if "usbd_transfer_setup_sub" set an error */ @@ -1476,13 +1449,9 @@ } switch (edesc->bmAttributes & UE_XFERTYPE) { case UE_CONTROL: - ep->methods = &s3c24dci_device_ctrl_methods; - break; case UE_INTERRUPT: - ep->methods = &s3c24dci_device_intr_methods; - break; case UE_BULK: - ep->methods = &s3c24dci_device_bulk_methods; + ep->methods = &s3c24dci_device_nonisoc_methods; break; default: break; ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#10 (text+ko) ==== @@ -90,9 +90,6 @@ /* prototypes */ struct usb_bus_methods uss820dci_bus_methods; -struct usb_pipe_methods uss820dci_device_bulk_methods; -struct usb_pipe_methods uss820dci_device_ctrl_methods; -struct usb_pipe_methods uss820dci_device_intr_methods; struct usb_pipe_methods uss820dci_device_isoc_fs_methods; static uss820dci_cmd_t uss820dci_setup_rx; @@ -1610,15 +1607,7 @@ uss820dci_start_standard_chain(xfer); } -struct usb_pipe_methods uss820dci_device_bulk_methods = -{ - .open = uss820dci_device_dummy, - .enter = uss820dci_device_dummy, - .close = uss820dci_device_close, - .start = uss820dci_device_nonisoc_start, -}; - -struct usb_pipe_methods uss820dci_device_ctrl_methods = +struct usb_pipe_methods uss820dci_device_nonisoc_methods = { .open = uss820dci_device_dummy, .enter = uss820dci_device_dummy, @@ -1626,14 +1615,6 @@ .start = uss820dci_device_nonisoc_start, }; -struct usb_pipe_methods uss820dci_device_intr_methods = -{ - .open = uss820dci_device_dummy, - .enter = uss820dci_device_dummy, - .close = uss820dci_device_close, - .start = uss820dci_device_nonisoc_start, -}; - struct usb_pipe_methods uss820dci_device_isoc_fs_methods = { .open = uss820dci_device_dummy, @@ -2147,27 +2128,11 @@ /* * compute maximum number of TDs */ - if (parm->methods == &uss820dci_device_ctrl_methods) { - - ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC */ ; - - } else if (parm->methods == &uss820dci_device_bulk_methods) { - - ntd = xfer->nframes + 1 /* SYNC */ ; - - } else if (parm->methods == &uss820dci_device_intr_methods) { - + if ((xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE) == UE_CONTROL) + ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC 1 */ + 1 /* SYNC 2 */ ; + else ntd = xfer->nframes + 1 /* SYNC */ ; - } else if (parm->methods == &uss820dci_device_isoc_fs_methods) { - - ntd = xfer->nframes + 1 /* SYNC */ ; - - } else { - - ntd = 0; - } - /* * check if "usbd_transfer_setup_sub" set an error */ @@ -2214,7 +2179,7 @@ td->max_packet_size = xfer->max_packet_size; td->ep_index = ep_no; if (pf->support_multi_buffer && - (parm->methods != &uss820dci_device_ctrl_methods)) { + (xfer->endpoint->edesc->bmAttributes != UE_CONTROL)) { td->support_multi_buffer = 1; } td->obj_next = last_obj; @@ -2256,17 +2221,13 @@ } switch (edesc->bmAttributes & UE_XFERTYPE) { case UE_CONTROL: - ep->methods = &uss820dci_device_ctrl_methods; - break; case UE_INTERRUPT: - ep->methods = &uss820dci_device_intr_methods; + case UE_BULK: + ep->methods = &uss820dci_device_nonisoc_methods; break; case UE_ISOCHRONOUS: ep->methods = &uss820dci_device_isoc_fs_methods; break; - case UE_BULK: - ep->methods = &uss820dci_device_bulk_methods; - break; default: /* do nothing */ break; From owner-p4-projects@FreeBSD.ORG Thu Aug 6 19:05:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 663AD1065675; Thu, 6 Aug 2009 19:05:58 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EEC8B106566C for ; Thu, 6 Aug 2009 19:05:55 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C49348FC21 for ; Thu, 6 Aug 2009 19:05:55 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76J5tOj085343 for ; Thu, 6 Aug 2009 19:05:55 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76J5thE085341 for perforce@freebsd.org; Thu, 6 Aug 2009 19:05:55 GMT (envelope-from syl@FreeBSD.org) Date: Thu, 6 Aug 2009 19:05:55 GMT Message-Id: <200908061905.n76J5thE085341@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 167071 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 19:05:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=167071 Change 167071 by syl@syl_atuin on 2009/08/06 19:05:08 Add usb_roothub_exec.c in the conf file. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/conf/files#10 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/conf/files#10 (text+ko) ==== @@ -1608,6 +1608,7 @@ dev/usb/usb_parse.c optional usb dev/usb/usb_process.c optional usb dev/usb/usb_request.c optional usb +dev/usb/usb_roothub_exec.c optional usb dev/usb/usb_transfer.c optional usb dev/usb/usb_util.c optional usb # From owner-p4-projects@FreeBSD.ORG Thu Aug 6 19:06:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 64D9A1065673; Thu, 6 Aug 2009 19:06:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2217D1065672 for ; Thu, 6 Aug 2009 19:06:57 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 05C098FC0A for ; Thu, 6 Aug 2009 19:06:57 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76J6uEm085408 for ; Thu, 6 Aug 2009 19:06:56 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76J6uDF085406 for perforce@freebsd.org; Thu, 6 Aug 2009 19:06:56 GMT (envelope-from syl@FreeBSD.org) Date: Thu, 6 Aug 2009 19:06:56 GMT Message-Id: <200908061906.n76J6uDF085406@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 167072 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 19:06:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=167072 Change 167072 by syl@syl_atuin on 2009/08/06 19:06:40 Start the roothub_exec factorisation. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_roothub_exec.c#2 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_roothub_exec.c#2 (text+ko) ==== @@ -1,0 +1,91 @@ +/*- + * Copyright (c) 2009 Sylvestre Gallon. 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. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define USB_DEBUG_VAR s3c24dcidebug + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +struct usb_generic_flags { + +}; + +struct usb_generic_hub_temp { + uWord wValue; + struct usb_port_status ps; +}; + +struct usb_generic_softc { + struct usb_bus sc_bus; + struct usb_generic_hub_temp sc_hub_temp; + + uint8_t sc_rt_addr; + uint8_t sc_conf; + + struct usb_generic_flags sc_flags; +}; + +static usb_error_t +genric_roothub_exec(struct usb_device *udev, + struct usb_device_request *req, const void **pptr, uint16_t *plength) +{ + const void *ptr; + uint16_t len; + uint16_t value; + uint16_t index; + usb_error_t err; +} From owner-p4-projects@FreeBSD.ORG Thu Aug 6 19:09:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B33EF106567A; Thu, 6 Aug 2009 19:08:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FE991065673 for ; Thu, 6 Aug 2009 19:08:59 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5E6458FC08 for ; Thu, 6 Aug 2009 19:08:59 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76J8xCu085520 for ; Thu, 6 Aug 2009 19:08:59 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76J8xIt085518 for perforce@freebsd.org; Thu, 6 Aug 2009 19:08:59 GMT (envelope-from syl@FreeBSD.org) Date: Thu, 6 Aug 2009 19:08:59 GMT Message-Id: <200908061908.n76J8xIt085518@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 167073 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 19:09:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=167073 Change 167073 by syl@syl_atuin on 2009/08/06 19:08:09 Change field order in xxxdci_softc to permit structure aggregation in the generic_roothub_exec. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.h#3 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.h#3 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.h#2 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/ehci.h#3 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.h#3 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/ohci.h#3 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.h#12 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uhci.h#3 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.h#3 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.h#3 (text+ko) ==== @@ -205,6 +205,17 @@ struct usb_bus sc_bus; union at91dci_hub_temp sc_hub_temp; + uint8_t sc_rt_addr; /* root HUB address */ + uint8_t sc_conf; /* root HUB config */ + + struct at91dci_flags sc_flags; + + /* + * The fields before this comment must not change + * it is need by the structure agregation in + * usb_generic_flags + */ + struct usb_device *sc_devices[AT91_MAX_DEVICES]; struct resource *sc_io_res; struct resource *sc_irq_res; @@ -221,13 +232,10 @@ void (*sc_pull_down) (void *arg); void *sc_pull_arg; - uint8_t sc_rt_addr; /* root HUB address */ uint8_t sc_dv_addr; /* device address */ - uint8_t sc_conf; /* root HUB config */ uint8_t sc_hub_idata[1]; - struct at91dci_flags sc_flags; struct at91dci_ep_flags sc_ep_flags[AT91_UDP_EP_MAX]; }; ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.h#3 (text+ko) ==== @@ -254,6 +254,17 @@ struct usb_bus sc_bus; union atmegadci_hub_temp sc_hub_temp; + uint8_t sc_rt_addr; /* root hub address */ + uint8_t sc_conf; /* root hub config */ + + struct atmegadci_flags sc_flags; + + /* + * The fields before this comment must not change + * it is need by the structure agregation in + * usb_generic_flags + */ + /* must be set by by the bus interface layer */ atmegadci_clocks_t *sc_clocks_on; atmegadci_clocks_t *sc_clocks_off; @@ -265,13 +276,9 @@ bus_space_tag_t sc_io_tag; bus_space_handle_t sc_io_hdl; - uint8_t sc_rt_addr; /* root hub address */ uint8_t sc_dv_addr; /* device address */ - uint8_t sc_conf; /* root hub config */ uint8_t sc_hub_idata[1]; - - struct atmegadci_flags sc_flags; }; /* prototypes */ ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.h#2 (text+ko) ==== @@ -221,6 +221,17 @@ struct usb_bus sc_bus; union avr32dci_hub_temp sc_hub_temp; + uint8_t sc_rt_addr; /* root hub address */ + uint8_t sc_conf; /* root hub config */ + + struct avr32dci_flags sc_flags; + + /* + * The fields before this comment must not change + * it is need by the structure agregation in + * usb_generic_flags + */ + /* must be set by by the bus interface layer */ avr32dci_clocks_t *sc_clocks_on; avr32dci_clocks_t *sc_clocks_off; @@ -233,13 +244,9 @@ bus_space_handle_t sc_io_hdl; uint8_t *physdata; - uint8_t sc_rt_addr; /* root hub address */ uint8_t sc_dv_addr; /* device address */ - uint8_t sc_conf; /* root hub config */ uint8_t sc_hub_idata[1]; - - struct avr32dci_flags sc_flags; }; /* prototypes */ ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/ehci.h#3 (text+ko) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.h#3 (text+ko) ==== @@ -364,6 +364,18 @@ struct musbotg_softc { struct usb_bus sc_bus; union musbotg_hub_temp sc_hub_temp; + + uint8_t sc_rt_addr; /* root HUB address */ + uint8_t sc_conf; /* root HUB config */ + + struct musbotg_flags sc_flags; + + /* + * The fields before this comment must not change + * it is need by the structure agregation in + * usb_generic_flags + */ + struct usb_hw_ep_profile sc_hw_ep_profile[16]; struct usb_device *sc_devices[MUSB2_MAX_DEVICES]; @@ -382,16 +394,12 @@ uint8_t sc_ep_max; /* maximum number of RX and TX * endpoints supported */ - uint8_t sc_rt_addr; /* root HUB address */ uint8_t sc_dv_addr; /* device address */ - uint8_t sc_conf; /* root HUB config */ uint8_t sc_ep0_busy; /* set if ep0 is busy */ uint8_t sc_ep0_cmd; /* pending commands */ uint8_t sc_conf_data; /* copy of hardware register */ uint8_t sc_hub_idata[1]; - - struct musbotg_flags sc_flags; }; /* prototypes */ ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/ohci.h#3 (text+ko) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.h#12 (text+ko) ==== @@ -241,6 +241,17 @@ struct usb_bus sc_bus; union s3c24dci_hub_temp sc_hub_temp; + uint8_t sc_rt_addr; /* root HUB address */ + uint8_t sc_conf; /* root HUB config */ + + struct s3c24dci_flags sc_flags; + + /* + * The fields before this comment must not change + * it is need by the structure agregation in + * usb_generic_flags + */ + struct usb_device *sc_devices[2]; bus_space_tag_t sc_io_tag; bus_space_handle_t sc_io_hdl; @@ -253,13 +264,9 @@ void (*sc_pull_down) (void *arg); void *sc_pull_arg; - uint8_t sc_rt_addr; /* root HUB address */ uint8_t sc_dv_addr; /* device address */ - uint8_t sc_conf; /* root HUB config */ uint8_t sc_hub_idata[1]; - - struct s3c24dci_flags sc_flags; }; usb_error_t s3c24dci_init(struct s3c24dci_softc *sc); ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uhci.h#3 (text+ko) ==== ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.h#3 (text+ko) ==== @@ -328,6 +328,17 @@ struct usb_bus sc_bus; union uss820_hub_temp sc_hub_temp; + uint8_t sc_rt_addr; /* root HUB address */ + uint8_t sc_conf; /* root HUB config */ + + struct uss820_flags sc_flags; + + /* + * The fields before this comment must not change + * it is need by the structure agregation in + * usb_generic_flags + */ + struct usb_device *sc_devices[USS820_MAX_DEVICES]; struct resource *sc_io_res; struct resource *sc_irq_res; @@ -336,13 +347,9 @@ bus_space_tag_t sc_io_tag; bus_space_handle_t sc_io_hdl; - uint8_t sc_rt_addr; /* root HUB address */ uint8_t sc_dv_addr; /* device address */ - uint8_t sc_conf; /* root HUB config */ uint8_t sc_hub_idata[1]; - - struct uss820_flags sc_flags; }; /* prototypes */ From owner-p4-projects@FreeBSD.ORG Thu Aug 6 22:23:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 572831065672; Thu, 6 Aug 2009 22:23:31 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12276106566C for ; Thu, 6 Aug 2009 22:23:31 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 011328FC19 for ; Thu, 6 Aug 2009 22:23:31 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76MNUt4012627 for ; Thu, 6 Aug 2009 22:23:30 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76MNUTu012625 for perforce@freebsd.org; Thu, 6 Aug 2009 22:23:30 GMT (envelope-from julian@freebsd.org) Date: Thu, 6 Aug 2009 22:23:30 GMT Message-Id: <200908062223.n76MNUTu012625@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Cc: Subject: PERFORCE change 167074 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 22:23:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=167074 Change 167074 by julian@julian-mac on 2009/08/06 22:22:52 wordsmithing. Add a comment to clear up somethings that I didn't express well originally. Still needs a lot of work. Affected files ... .. //depot/projects/vimage/porting_to_vimage.txt#11 edit Differences ... ==== //depot/projects/vimage/porting_to_vimage.txt#11 (text+ko) ==== @@ -9,9 +9,9 @@ to operate on multiple independent instances of its state so that it can participate in a virtual machine / virtual environment scenario. It refers to a part of the Jail infrastructure in FreeBSD. For historical reasons -Virtual network stack enabled jails are know a vimage enabled jails or vnet +Virtual network stack enabled jails are known a vimage enabled jails or vnet enabled jails. The currently correct term is the latter, which is a -contraction ofthe first. In the future other parts of the system may be +contraction of the first. In the future other parts of the system may be virtualized using the same technology and the term to cover all such components would be VIMAGE enhanced modules. @@ -23,26 +23,26 @@ things in order to allow for all the changes to be conditionally compilable, i.e. permitting the virtualized code to fall back to operation on global state. -The rest of this documant will discuss NETWORK virtualization -thoughthe concepts will be true in the future for other parts of the +The rest of this document will discuss NETWORK virtualization +though the concepts may be true in the future for other parts of the system. The most visible change throughout the existing code is typically replacement of direct references to global variables with macros; foo_bar thus becomes -V_foo_bar. V_foo_bar macros will resolve back to foo_bar global in default -kernel builds, and alternatively to teh logical equivalent of +V_foo_bar. V_foo_bar macros will resolve back to the foo_bar global in +default kernel builds, and alternatively to the logical equivalent of some_base_pointer->_foo_bar for "options VIMAGE" kernel configs. -Prepending of "V_" prefixes to variable references -helps in visual discrimination between global and virtualized state. +Prepending of "V_" prefixes to variable references helps in +visual discrimination between global and virtualized state. It is also possible to use an alternative syntax, of VNET(foo_bar) to achieve the same thing. The deveopers felt that V_foo_bar was less visually distracting while still providing enough clues to the reader -that the variable is virtualized. In fact the V_foo_bar symtac is +that the variable is virtualized. In fact the V_foo_bar macro is locally defined near the definition of foo_bar to be an alias for VNET(foo_bar) so the two are not only equivalent, they are the same. -The framework extends the sysctl infrastructure to support access to +The framework also extends the sysctl infrastructure to support access to virtualized state through introduction of the SYSCTL_VNET family of macros; those also automatically fall back to their standard SYSCTL counterparts in default kernel builds. @@ -51,26 +51,28 @@ which permits userland binaries such as netstat to operate unmodified on "options VIMAGE" kernels, though this may have some security implications. -Vnets are associated with jails. Each process is associated with a jail, -usually the default (null) jail, and jails currently hang off of -ucred-s. This relationship defines a process's administrative affinity -to a vnet and thus indirectly to all of its state. All network interfaces -and sockets hold pointers back to their parent vnets; this relationship -is obviously entirely independent from proc->ucred->jail bindings. -Hence, when a process opens a socket, the socket will get bound to a vnet -instance hanging off of proc->ucred->jail->vnet, but once such a socket->vnet -binding gets established, it cannot be changed for the entire socket lifetime. +Vnets are associated with jails. In 8.0, every process is associated with +a jail, usually the default (null) jail, and jails currently hang off of +a processes ucred. This relationship defines a process's administrative +affinity to a vnet and thus indirectly to all of its state. All network +interfaces and sockets hold pointers back to their parent vnets. +This relationship is obviously entirely independent from proc->ucred->jail +bindings. Hence, when a process opens a socket, the socket will get bound +to a vnet instance hanging off of proc->ucred->jail->vnet, but once such a +socket->vnet binding gets established, it cannot be changed for the entire +socket lifetime. + The mapping of a from a thread to a vnet is should always be doen via the TD_TO_VNET macro as the path may change in the future as we get more -experience with usinghte system. +experience with using the system. Certain classes of network interfaces (Ethernet in particular) can be -assigned from one vnet to another at any time. By definition all vnets -are are independent and can communicate only if they are explicitly -provided with communication paths; currently mainly netgraph is used to +reassigned from one vnet to another at any time. By definition all vnets +are independent and can communicate only if they are explicitly +provided with communication paths. Currently mainly netgraph is used to establish inter-vnet datapaths, though other paths are being explored such as the 'epair' back-to-back virtual interface pair, in which -teh different sides may exist in different jails. +the different sides may exist in different jails. In network traffic processing the vnet affinity is defined either by the inbound interface or by the socket / pcb -> vnet binding. However, there @@ -89,7 +91,7 @@ events, given that those are inherently vnet-contextless on entry. The current rule is that when not in networking code, the result of -the curvnet macro will return NULL and evaluating a V_xxx (or VNET(xxx)) +the 'curvnet' macro will return NULL and evaluating a V_xxx (or VNET(xxx)) macro will result in an kernel page-fault error. While this is not strictly necessary, it aids in debugging and assurance of program correctness. Note this does NOT mean that TD_TO_VNET(curthread) is invalid. @@ -105,12 +107,12 @@ 1/ decide whether the module needs to be virtualised. - if the module is a driver for specific hardware, it makes sense that + If the module is a driver for specific hardware, it makes sense that there be only one instance of the driver as there is only one piece of physical hardware. There are changes in the networking code to allow physical (or virtual) interfaces to be moved between vnets. This generally requires NO changes to the network drivers of the classes - covered (e.g. ethernet). Currently if your module is doe snot have any + covered (e.g. ethernet). Currently if your module is does not have any networking facet, the answer is "no" by default. 2/ If the module is to be virtualised, decide which attributes of the @@ -121,12 +123,12 @@ lock guarding it. It might also make sense if the "foo_debug" sysctl controls all the instances at once, while on the other hand, the "foo_mode" sysctl might make better sense if it were controllable - on a virtual system by virtual system basis. + on a virtual system by virtual system basis. 3/ Work out what global variables and structures are to be virtualised to - achieve the behaviour required for part #3. + achieve the behaviour required for part #2. -4/ Work out for all the code paths through the module, how the path entering +4/ Work out for all the code paths through the module, how the thread entering the module can divine which virtual environment it is on. Some examples: @@ -296,6 +298,9 @@ /* maybe sleep 1 mSec or something to let threads get out */ break; + case MOD_SHUTDOWN: + break; + default: err = EOPNOTSUPP; break; @@ -351,15 +356,26 @@ VNET_SYSUNINIT called for every jail/vnet SYSUNINIT -On system shutdown: - effectively the same as unload - {with exception of modevent?} +On system shutdown: [check/fix this ] + MODEVENT(shutdown) + ? VNET_SYSUNINIT called for every jail/vnet + ? SYSUNINIT NOTICE that while the order of the SYSINIT and VNET_SYSINIT is reversed from that of SYSUNINIT and VNET_SYSUNINIT, MODEVENTS do not follow this rule and thus it is dangerous to initialise and uninitialise things which are order dependent using MODEVENTs. +Or, put another way, +Since MODEVENT is called first during l module load, it would, by the +assumption that everything is reversed, be easy to assume that MODEVENT +is called AFTER the SYSINITS during unload. This is in fact not +the case. (and I have the scars to prove it). + +It might be make some sense if the "QUIESCE" was called before the +SYSINIT/SYSUNINIT and the UNLOAD called after.. with a millisecond +sleep between them, but this is not the case either. + Since initial values are copied into the virtualized variables on each new instantiatin, it is quite possible to have modules for which some of the above methods are not needed, and they may be left out. From owner-p4-projects@FreeBSD.ORG Thu Aug 6 22:24:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 715261065679; Thu, 6 Aug 2009 22:24:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 314211065673 for ; Thu, 6 Aug 2009 22:24:46 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outC.internet-mail-service.net (outc.internet-mail-service.net [216.240.47.226]) by mx1.freebsd.org (Postfix) with ESMTP id 19E1A8FC1A for ; Thu, 6 Aug 2009 22:24:46 +0000 (UTC) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id A8348C317; Thu, 6 Aug 2009 15:24:47 -0700 (PDT) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (home.elischer.org [216.240.48.38]) by idiom.com (Postfix) with ESMTP id 706E52D600D; Thu, 6 Aug 2009 15:24:45 -0700 (PDT) Message-ID: <4A7B582D.90207@elischer.org> Date: Thu, 06 Aug 2009 15:24:45 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Julian Elischer References: <200908062223.n76MNUTu012625@repoman.freebsd.org> In-Reply-To: <200908062223.n76MNUTu012625@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Robert Watson , Perforce Change Reviews , Marko Zec Subject: Re: PERFORCE change 167074 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 22:24:47 -0000 Julian Elischer wrote: > http://perforce.freebsd.org/chv.cgi?CH=167074 > > Change 167074 by julian@julian-mac on 2009/08/06 22:22:52 > > wordsmithing. > Add a comment to clear up somethings that I didn't > express well originally. > Still needs a lot of work. > note: I got access to the p4 tree working again. From owner-p4-projects@FreeBSD.ORG Thu Aug 6 22:56:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC2D31065676; Thu, 6 Aug 2009 22:56:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ABE97106566B for ; Thu, 6 Aug 2009 22:56:06 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 82A238FC15 for ; Thu, 6 Aug 2009 22:56:06 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76Mu6oo015002 for ; Thu, 6 Aug 2009 22:56:06 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76Mu6lQ015000 for perforce@freebsd.org; Thu, 6 Aug 2009 22:56:06 GMT (envelope-from delphij@freebsd.org) Date: Thu, 6 Aug 2009 22:56:06 GMT Message-Id: <200908062256.n76Mu6lQ015000@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 167075 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 22:56:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=167075 Change 167075 by delphij@charlie on 2009/08/06 22:55:06 Make it possible for build to be completed after 'make obj'. Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/Makefile.inc#3 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/Makefile.inc#3 (text+ko) ==== @@ -1,9 +1,9 @@ # $FreeBSD$ -.PATH: ../../libiconv +.PATH: ${.CURDIR}/../../libiconv SHLIB_MAJOR= 4 -CFLAGS+= -I../../libiconv +CFLAGS+= -I${.CURDIR}/../../libiconv DEBUG_FLAGS= -g -ggdb LIBDIR= /usr/lib/i18n SRCS+= _iconv.c \ From owner-p4-projects@FreeBSD.ORG Thu Aug 6 22:56:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EA96D1065735; Thu, 6 Aug 2009 22:56:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D6A6A1065674 for ; Thu, 6 Aug 2009 22:56:06 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id ACA198FC16 for ; Thu, 6 Aug 2009 22:56:06 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76Mu6oE015007 for ; Thu, 6 Aug 2009 22:56:06 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76Mu6C8015005 for perforce@freebsd.org; Thu, 6 Aug 2009 22:56:06 GMT (envelope-from delphij@freebsd.org) Date: Thu, 6 Aug 2009 22:56:06 GMT Message-Id: <200908062256.n76Mu6C8015005@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 167076 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 22:56:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=167076 Change 167076 by delphij@charlie on 2009/08/06 22:55:52 Fix build on amd64. Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/citrus_iso2022.c#7 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/ISO2022/citrus_iso2022.c#7 (text+ko) ==== @@ -373,7 +373,7 @@ break; if (len>=sizeof(buf)) goto parsefail; - snprintf(buf, sizeof(buf), "%.*s", len, v); + snprintf(buf, sizeof(buf), "%.*s", (int)len, v); if ((ret = get_recommend(ei, buf)) != _NOTMATCH) ; From owner-p4-projects@FreeBSD.ORG Thu Aug 6 23:06:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 46242106566C; Thu, 6 Aug 2009 23:06:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DEDD4106564A for ; Thu, 6 Aug 2009 23:06:17 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CF44F8FC16 for ; Thu, 6 Aug 2009 23:06:17 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76N6HM6016752 for ; Thu, 6 Aug 2009 23:06:17 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76N6Hm2016750 for perforce@freebsd.org; Thu, 6 Aug 2009 23:06:17 GMT (envelope-from delphij@freebsd.org) Date: Thu, 6 Aug 2009 23:06:17 GMT Message-Id: <200908062306.n76N6Hm2016750@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 167077 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 23:06:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=167077 Change 167077 by delphij@charlie on 2009/08/06 23:05:56 - Make usr.bin/ build after a 'make obj'. - While I'm there, remove dependency to libroken, the only reference to it seems to be 'estrdup', which is being handled by code after it. Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/iconv.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/mkcsmapper/Makefile#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/mkesdb/Makefile#5 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/Makefile#5 (text+ko) ==== @@ -2,7 +2,7 @@ .include -.PATH: ../../lib/libiconv +.PATH: ${.CURDIR}/../../lib/libiconv PROG= iconv SRCS= iconv.c \ @@ -19,12 +19,12 @@ citrus_bcs.c \ citrus_bcs_strtol.c \ citrus_db_hash.c -CFLAGS+= -I. -I${.CURDIR} -I../../lib/libiconv +CFLAGS+= -I. -I${.CURDIR} -I${.CURDIR}/../../lib/libiconv MAN= iconv.1 WARNS?= 6 -LDADD+=-lroken -lcrypt -DPADD+=${LIBROKEN} ${LIBCRYPT} +LDADD+= -lcrypt +DPADD+= ${LIBCRYPT} .include ==== //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/iconv.c#5 (text+ko) ==== @@ -32,7 +32,6 @@ #include #include #include -#include #include #include #include @@ -186,11 +185,11 @@ break; case 'f': /* from */ - opt_f = estrdup(optarg); + opt_f = strdup(optarg); break; case 't': /* to */ - opt_t = estrdup(optarg); + opt_t = strdup(optarg); break; default: usage(); ==== //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/mkcsmapper/Makefile#5 (text+ko) ==== @@ -1,12 +1,12 @@ # $NetBSD: Makefile,v 1.6 2009/04/20 16:05:30 drochner Exp $ -.PATH: ../../lib/libiconv ../../lib/libiconv_modules/mapper_std +.PATH: ${.CURDIR}/../../lib/libiconv ${.CURDIR}/../../lib/libiconv_modules/mapper_std PROG= mkcsmapper SRCS= yacc.y lex.l \ citrus_db_factory.c citrus_bcs.c citrus_db_hash.c \ citrus_lookup_factory.c citrus_pivot_factory.c -CFLAGS+= -I. -I../../lib/libiconv -I../../lib/libiconv_modules/mapper_std +CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../lib/libiconv -I${.CURDIR}/../../lib/libiconv_modules/mapper_std NO_MAN= yes WARNS?= 6 ==== //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/mkesdb/Makefile#5 (text+ko) ==== @@ -1,12 +1,12 @@ # $NetBSD: Makefile,v 1.6 2009/04/20 16:05:30 drochner Exp $ -.PATH: ../../lib/libiconv +.PATH: ${.CURDIR}/../../lib/libiconv PROG= mkesdb SRCS= yacc.y lex.l \ citrus_bcs.c citrus_db_factory.c citrus_db_hash.c \ citrus_lookup_factory.c -CFLAGS+= -I. -I../../lib/libiconv +CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../lib/libiconv NO_MAN= yes WARNS?= 6 From owner-p4-projects@FreeBSD.ORG Thu Aug 6 23:55:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 85D771065673; Thu, 6 Aug 2009 23:55:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2D31C106564A for ; Thu, 6 Aug 2009 23:55:11 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1D85C8FC16 for ; Thu, 6 Aug 2009 23:55:11 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n76NtBmc020210 for ; Thu, 6 Aug 2009 23:55:11 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n76NtA3R020208 for perforce@freebsd.org; Thu, 6 Aug 2009 23:55:10 GMT (envelope-from delphij@freebsd.org) Date: Thu, 6 Aug 2009 23:55:10 GMT Message-Id: <200908062355.n76NtA3R020208@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 167078 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 23:55:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=167078 Change 167078 by delphij@charlie on 2009/08/06 23:55:05 Make this build when 'make obj' is executed before making. Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/Makefile.part#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/BIG5/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.inc#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.part#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/UTF/Makefile#6 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/CP/Makefile#6 (text+ko) ==== @@ -14,7 +14,7 @@ printf '%-32s%-16s%s\n' UCS/CP$$i \ mapper_std CP/UCS%CP$$f'.mps';\ done;\ - cat mapper.dir.CP.src;\ + cat ${.CURDIR}/mapper.dir.CP.src;\ echo;\ ) > ${.TARGET} @@ -25,7 +25,7 @@ printf "%-32s%-32s%d\n" CP$$i UCS 1;\ printf "%-32s%-32s%d\n" UCS CP$$i 1;\ done;\ - cat charset.pivot.CP.src;\ + cat ${.CURDIR}/charset.pivot.CP.src;\ echo;\ ) > ${.TARGET} ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/ISO646/Makefile#6 (text+ko) ==== @@ -7,7 +7,7 @@ RTABLENAME= ${TABLENAME} MAPPER= mapper_646 -FILES_646!= ls . | grep '\.646$$' +FILES_646!= ls ${.CURDIR} | grep '\.646$$' FILES+= ${FILES_646} .include "../Makefile.part" ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/KOI/Makefile#6 (text+ko) ==== @@ -1,7 +1,7 @@ # $NetBSD: Makefile.inc,v 1.3 2008/10/25 22:35:36 apb Exp $ CODE= KOI -PARTFILE= KOI8.part +PARTFILE= ${.CURDIR}/KOI8.part MAPS= GOST19768-74%UCS.mps \ ISO-5427%UCS.mps \ @@ -28,7 +28,7 @@ mapper.dir.KOI: KOI8.part mapper.dir.KOI.src ( \ - cat mapper.dir.KOI.src; \ + cat ${.CURDIR}/mapper.dir.KOI.src; \ for i in ${PART}; do \ printf "%-31s %-31s %s\n" KOI$$i"EXT/UCS" \ mapper_std KOI/KOI$$i"%UCS.mps"; \ @@ -46,7 +46,7 @@ charset.pivot.KOI: KOI8.part charset.pivot.KOI.src ( \ - cat charset.pivot.KOI.src; \ + cat ${.CURDIR}/charset.pivot.KOI.src; \ for i in ${PART}; do \ printf "%-31s %-31s%d\n" KOI$$i UCS 1; \ printf "%-31s %-31s%d\n" UCS KOI$$i 1; \ ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/csmapper/Makefile.part#7 (text+ko) ==== @@ -1,7 +1,7 @@ # $NetBSD: Makefile,v 1.13 2007/03/13 16:34:37 tnozaki Exp $ ESUBDIR?= ${CODE} -PARTFILE?= ${CODE}.part +PARTFILE?= ${.CURDIR}/${CODE}.part .if exists(${PARTFILE}) PART!= sed '/^\#/d;/^$$/d;' ${PARTFILE} .endif ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/BIG5/Makefile#6 (text+ko) ==== @@ -9,7 +9,7 @@ .for i in ${PART:S/:/@/} Big5_$i_variable!= sed \ '/^\#/d;/^ *$$/d;/^${i:S/@/:/}[ ]/!d;s/^[^ ]*[ ]*//' \ - Big5.variable + ${.CURDIR}/Big5.variable .endfor .for i in ${PART} .if !exists(Big5-${i:S/:/@/}.src) @@ -17,7 +17,7 @@ Big5-${i:S/:/@/}.src: Big5.src Big5.variable sed -e 's/encoding/Big5-$i/' \ -e 's/variable/${Big5_$i_variable}/' \ - Big5.src > $@ + ${.CURDIR}/Big5.src > $@ @echo Big5-${i:S/:/@/}.src >>.tmpfiles .endif .endfor ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.inc#6 (text+ko) ==== @@ -1,5 +1,7 @@ # $FreeBSD$ +.PATH: ${.CURDIR} + ESDBDIR?= /usr/share/i18n/esdb MKESDB?= /usr/bin/mkesdb ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.part#7 (text+ko) ==== @@ -1,7 +1,7 @@ # $NetBSD: Makefile.part,v 1.6 2008/10/25 22:35:36 apb Exp $ -PARTFILE?= ${CODE}.part -ALIASFILE?= ${CODE}.alias +PARTFILE?= ${.CURDIR}/${CODE}.part +ALIASFILE?= ${.CURDIR}/${CODE}.alias .if !defined(NO_SEP) SEP?= - .endif @@ -67,7 +67,7 @@ .for i in ${PART} .if !exists(${EPREFIX}${i:S/:/@/}.src) ${EPREFIX}${i:S/:/@/}.src: ${CODE}.src - sed ${SED_EXP:S@%%PART%%@${i}@} ${CODE}.src > ${EPREFIX}${i:S/:/@/}.src + sed ${SED_EXP:S@%%PART%%@${i}@} ${.CURDIR}/${CODE}.src > ${EPREFIX}${i:S/:/@/}.src @echo ${EPREFIX}${i:S/:/@/}.src >>.tmpfiles .endif .endfor ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/UTF/Makefile#6 (text+ko) ==== @@ -35,6 +35,6 @@ sed -e 's/UTF-x/UTF-${i}/' \ -e 's/UTF-mod/${UTF-${i}-mod}/' \ -e 's/UTF-var/${UTF-${i}-var}/' \ - ${CODE}.src > ${EPREFIX}${i:S/:/@/}.src + ${.CURDIR}/${CODE}.src > ${EPREFIX}${i:S/:/@/}.src @echo ${EPREFIX}${i:S/:/@/}.src >>.tmpfiles .endfor From owner-p4-projects@FreeBSD.ORG Fri Aug 7 00:28:48 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 482581065674; Fri, 7 Aug 2009 00:28:48 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06803106566B for ; Fri, 7 Aug 2009 00:28:48 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EB0FF8FC43 for ; Fri, 7 Aug 2009 00:28:47 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n770SldC023836 for ; Fri, 7 Aug 2009 00:28:47 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n770SlGd023834 for perforce@freebsd.org; Fri, 7 Aug 2009 00:28:47 GMT (envelope-from delphij@freebsd.org) Date: Fri, 7 Aug 2009 00:28:47 GMT Message-Id: <200908070028.n770SlGd023834@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 167079 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 00:28:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=167079 Change 167079 by delphij@charlie on 2009/08/07 00:27:50 iconv(3) would mangle the pointer every time, so reset them at the beginning of loop. Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/gen-rev.c#2 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/gen-rev.c#2 (text+ko) ==== @@ -64,17 +64,19 @@ iconv_t cd; uint8_t outbuf[4]; uint32_t inbuf; - size_t inbytes = 4, outbytesleft, ret; - char *outbuf_ = (char *)outbuf; - const char *inbuf_ = (const char *)inbuf; + size_t inbytesleft, outbytesleft, ret; + char *outbuf_; + const char *inbuf_; if ((cd = iconv_open(argv[1], "UCS-4-INTERNAL")) == (iconv_t)-1) err(1, NULL); for (inbuf = 0;; inbuf += 1) { - outbytesleft = 4; + inbytesleft = outbytesleft = 4; + outbuf_ = (char*) outbuf; + inbuf_ = (const char *)&inbuf; iconv(cd,NULL,NULL,NULL,NULL); - ret = iconv(cd, &inbuf_, &inbytes, &outbuf_, &outbytesleft); + ret = iconv(cd, &inbuf_, &inbytesleft, &outbuf_, &outbytesleft); if (ret == (size_t)-1) { switch(errno) { case EILSEQ: @@ -83,9 +85,9 @@ continue; } } - format(inbuf_, 4); + format((const char*)&inbuf, 4); printf(" = "); - format(outbuf_, outbytesleft); + format((const char*)outbuf, 4 - outbytesleft); printf("\n"); } From owner-p4-projects@FreeBSD.ORG Fri Aug 7 08:01:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4C3401065675; Fri, 7 Aug 2009 08:01:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E8939106566B for ; Fri, 7 Aug 2009 08:01:01 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D7CD88FC33 for ; Fri, 7 Aug 2009 08:01:01 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77811GO083186 for ; Fri, 7 Aug 2009 08:01:01 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77811er083184 for perforce@freebsd.org; Fri, 7 Aug 2009 08:01:01 GMT (envelope-from stas@freebsd.org) Date: Fri, 7 Aug 2009 08:01:01 GMT Message-Id: <200908070801.n77811er083184@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167082 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 08:01:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=167082 Change 167082 by stas@stas_deglitch on 2009/08/07 08:00:33 - Make valgrind build with ordinary sed by using standard POSIX regular expressions. Affected files ... .. //depot/projects/valgrind/Makefile.am#10 edit .. //depot/projects/valgrind/configure.in#9 edit Differences ... ==== //depot/projects/valgrind/Makefile.am#10 (text+ko) ==== @@ -214,44 +214,44 @@ # So we search for the line with a hex value "+ SIZEOF_HEADERS", and replace # all the hex values in that line with "valt_load_address". valt_load_address_x86_freebsd.lds: Makefile - $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | $(SED) \ - -e '1,/^=====\+$$/d' \ - -e '/^=====\+$$/d' \ - -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | $(SED) -E \ + -e '1,/^=====+$$/d' \ + -e '/^=====+$$/d' \ + -e '/\. = 0x[0-9A-Fa-f]+ \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ || rm -f $@ valt_load_address_amd64_freebsd.lds: Makefile - $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | $(SED) \ - -e '1,/^=====\+$$/d' \ - -e '/^=====\+$$/d' \ + $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | $(SED) -E \ + -e '1,/^=====+$$/d' \ + -e '/^=====+$$/d' \ -e '/ALIGN/s/0x100000/0x1000/g' \ - -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + -e '/\. = 0x[0-9A-Fa-f]+ \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ || rm -f $@ valt_load_address_x86_linux.lds: Makefile - $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | $(SED) \ - -e '1,/^=====\+$$/d' \ - -e '/^=====\+$$/d' \ - -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | $(SED) -E \ + -e '1,/^=====+$$/d' \ + -e '/^=====+$$/d' \ + -e '/\. = 0x[0-9A-Fa-f]+ \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ || rm -f $@ valt_load_address_amd64_linux.lds: Makefile - $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | $(SED) \ - -e '1,/^=====\+$$/d' \ - -e '/^=====\+$$/d' \ - -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | $(SED) -E \ + -e '1,/^=====+$$/d' \ + -e '/^=====+$$/d' \ + -e '/\. = 0x[0-9A-Fa-f]+ \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ || rm -f $@ valt_load_address_ppc32_linux.lds: Makefile - $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | $(SED) \ - -e '1,/^=====\+$$/d' \ - -e '/^=====\+$$/d' \ - -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | $(SED) -E \ + -e '1,/^=====+$$/d' \ + -e '/^=====+$$/d' \ + -e '/\. = 0x[0-9A-Fa-f]+ \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ || rm -f $@ valt_load_address_ppc64_linux.lds: Makefile - $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | $(SED) \ - -e '1,/^=====\+$$/d' \ - -e '/^=====\+$$/d' \ - -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | $(SED) -E \ + -e '1,/^=====+$$/d' \ + -e '/^=====+$$/d' \ + -e '/\. = 0x[0-9A-Fa-f]+ \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ || rm -f $@ ==== //depot/projects/valgrind/configure.in#9 (text+ko) ==== @@ -93,27 +93,6 @@ AC_SUBST(ASFLAGS) ]) - -# Check we have GNU sed: some of the stuff done by "make install" relies -# on some pretty fancy sed expressions, and AIX sed doesn't produce the -# same results, causing install to fail - -AC_MSG_CHECKING([for GNU sed]) - -[sed_firstline=`${SED} --version | head -n 1`] - -case "${sed_firstline}" in - GNU*) - AC_MSG_RESULT([ok, looks like GNU sed]) - ;; - *) - AC_MSG_RESULT([please specify the path to GNU 'sed' in the SED environment variable]) - AC_MSG_RESULT([note: GNU sed is only required at build/install time, not run time]) - AC_MSG_ERROR([build/install requires that 'sed' is GNU sed]) - ;; -esac - - # We don't want gcc < 3.0 AC_MSG_CHECKING([for a supported version of gcc]) From owner-p4-projects@FreeBSD.ORG Fri Aug 7 09:22:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B57CA106567C; Fri, 7 Aug 2009 09:22:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5C32A106567A for ; Fri, 7 Aug 2009 09:22:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 416818FC15 for ; Fri, 7 Aug 2009 09:22:12 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n779MB9o001034 for ; Fri, 7 Aug 2009 09:22:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n779MBSG001032 for perforce@freebsd.org; Fri, 7 Aug 2009 09:22:11 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 7 Aug 2009 09:22:11 GMT Message-Id: <200908070922.n779MBSG001032@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167084 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 09:22:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=167084 Change 167084 by hselasky@hselasky_laptop001 on 2009/08/07 09:21:13 USB core: - patch to allow USB controller to resume operation after being polled. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#26 edit .. //depot/projects/usb/src/sys/dev/usb/usb_process.c#10 edit .. //depot/projects/usb/src/sys/dev/usb/usb_process.h#8 edit .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#163 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#26 (text+ko) ==== @@ -226,6 +226,15 @@ /* avoid zero, hence that is memory default */ bus->driver_added_refcount = 1; } + + /* + * The following three lines of code are only here to + * recover from DDB: + */ + usb_proc_rewakeup(&bus->control_xfer_proc); + usb_proc_rewakeup(&bus->giant_callback_proc); + usb_proc_rewakeup(&bus->non_giant_callback_proc); + USB_BUS_UNLOCK(bus); mtx_lock(&Giant); @@ -297,6 +306,12 @@ usb_callout_reset(&bus->power_wdog, 4 * hz, usb_power_wdog, arg); + /* + * The following line of code is only here to recover from + * DDB: + */ + usb_proc_rewakeup(&bus->explore_proc); /* recover from DDB */ + USB_BUS_UNLOCK(bus); usb_bus_power_update(bus); ==== //depot/projects/usb/src/sys/dev/usb/usb_process.c#10 (text+ko) ==== @@ -446,3 +446,29 @@ } mtx_unlock(up->up_mtx); } + +/*------------------------------------------------------------------------* + * usb_proc_rewakeup + * + * This function is called to re-wakeup the the given USB + * process. This usually happens after that the USB system has been in + * polling mode, like during a panic. This function must be called + * having "up->up_mtx" locked. + *------------------------------------------------------------------------*/ +void +usb_proc_rewakeup(struct usb_process *up) +{ + /* check if not initialised */ + if (up->up_mtx == NULL) + return; + /* check if gone */ + if (up->up_gone) + return; + + mtx_assert(up->up_mtx, MA_OWNED); + + if (up->up_msleep == 0) { + /* re-wakeup */ + cv_signal(&up->up_cv); + } +} ==== //depot/projects/usb/src/sys/dev/usb/usb_process.h#8 (text+ko) ==== @@ -71,5 +71,6 @@ void usb_proc_mwait(struct usb_process *up, void *pm0, void *pm1); void usb_proc_free(struct usb_process *up); void *usb_proc_msignal(struct usb_process *up, void *pm0, void *pm1); +void usb_proc_rewakeup(struct usb_process *up); #endif /* _USB_PROCESS_H_ */ ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#163 (text+ko) ==== @@ -2907,13 +2907,9 @@ } /* Make sure cv_signal() and cv_broadcast() is not called */ - udev->bus->control_xfer_proc.up_dsleep = 0; udev->bus->control_xfer_proc.up_msleep = 0; - udev->bus->explore_proc.up_dsleep = 0; udev->bus->explore_proc.up_msleep = 0; - udev->bus->giant_callback_proc.up_dsleep = 0; udev->bus->giant_callback_proc.up_msleep = 0; - udev->bus->non_giant_callback_proc.up_dsleep = 0; udev->bus->non_giant_callback_proc.up_msleep = 0; /* poll USB hardware */ From owner-p4-projects@FreeBSD.ORG Fri Aug 7 11:12:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8003B1065673; Fri, 7 Aug 2009 11:12:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3ED931065670 for ; Fri, 7 Aug 2009 11:12:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2AB7A8FC15 for ; Fri, 7 Aug 2009 11:12:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77BCJBR010384 for ; Fri, 7 Aug 2009 11:12:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77BCBtx010374 for perforce@freebsd.org; Fri, 7 Aug 2009 11:12:11 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 7 Aug 2009 11:12:11 GMT Message-Id: <200908071112.n77BCBtx010374@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167085 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 11:12:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167085 Change 167085 by hselasky@hselasky_laptop001 on 2009/08/07 11:11:35 IFC @167060 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#24 integrate .. //depot/projects/usb/src/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/usb/src/sys/cam/cam_ccb.h#6 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.c#19 integrate .. //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#22 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#16 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_socket.c#16 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_sockio.c#10 integrate .. //depot/projects/usb/src/sys/conf/files#76 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#13 integrate .. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/fil.c#6 integrate .. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#15 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf.c#14 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_if.c#12 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#18 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_subr.c#7 integrate .. //depot/projects/usb/src/sys/contrib/rdma/rdma_cma.c#7 integrate .. //depot/projects/usb/src/sys/ddb/db_sym.c#4 integrate .. //depot/projects/usb/src/sys/dev/aac/aac.c#8 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi.c#19 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_battery.c#7 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#11 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_dock.c#6 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_thermal.c#8 integrate .. //depot/projects/usb/src/sys/dev/adb/adb_bus.c#4 integrate .. //depot/projects/usb/src/sys/dev/alc/if_alc.c#3 integrate .. //depot/projects/usb/src/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/usb/src/sys/dev/amr/amr.c#9 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#18 integrate .. //depot/projects/usb/src/sys/dev/atkbdc/psm.c#11 integrate .. //depot/projects/usb/src/sys/dev/bktr/bktr_os.c#5 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#10 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#13 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_drv.c#13 integrate .. //depot/projects/usb/src/sys/dev/ips/ips_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp.c#8 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.c#10 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.h#9 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_ioctl.h#5 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_library.c#6 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_library.h#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_pci.c#7 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_sbus.c#7 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_stds.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_target.c#6 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_target.h#5 integrate .. //depot/projects/usb/src/sys/dev/isp/ispmbox.h#5 integrate .. //depot/projects/usb/src/sys/dev/isp/ispreg.h#5 integrate .. //depot/projects/usb/src/sys/dev/isp/ispvar.h#6 integrate .. //depot/projects/usb/src/sys/dev/ispfw/asm_2300.h#3 integrate .. //depot/projects/usb/src/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/usb/src/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/usb/src/sys/dev/ispfw/ispfw.c#5 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi.c#17 integrate .. //depot/projects/usb/src/sys/dev/mlx/mlx.c#7 integrate .. //depot/projects/usb/src/sys/dev/mmc/mmc.c#10 integrate .. //depot/projects/usb/src/sys/dev/pccbb/pccbb.c#13 integrate .. //depot/projects/usb/src/sys/dev/pst/pst-iop.c#3 integrate .. //depot/projects/usb/src/sys/dev/rp/rp.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#33 integrate .. //depot/projects/usb/src/sys/dev/twe/twe.c#3 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#27 integrate .. //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#47 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#34 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#19 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#29 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdevs#73 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#13 integrate .. //depot/projects/usb/src/sys/dev/xen/blkback/blkback.c#3 integrate .. //depot/projects/usb/src/sys/dev/xen/netback/netback.c#3 integrate .. //depot/projects/usb/src/sys/fs/nfs/nfsport.h#8 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union_subr.c#13 integrate .. //depot/projects/usb/src/sys/i386/acpica/acpi_machdep.c#10 integrate .. //depot/projects/usb/src/sys/i386/bios/smapi.c#5 integrate .. //depot/projects/usb/src/sys/i386/bios/smbios.c#3 integrate .. //depot/projects/usb/src/sys/i386/bios/vpd.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/machdep.c#20 integrate .. //depot/projects/usb/src/sys/kern/kern_exec.c#20 integrate .. //depot/projects/usb/src/sys/kern/kern_jail.c#28 integrate .. //depot/projects/usb/src/sys/kern/kern_linker.c#20 integrate .. //depot/projects/usb/src/sys/kern/kern_poll.c#16 integrate .. //depot/projects/usb/src/sys/kern/kern_sysctl.c#21 integrate .. //depot/projects/usb/src/sys/kern/kern_uuid.c#12 integrate .. //depot/projects/usb/src/sys/kern/kern_vimage.c#13 delete .. //depot/projects/usb/src/sys/kern/subr_bus.c#24 integrate .. //depot/projects/usb/src/sys/kern/sys_socket.c#13 integrate .. //depot/projects/usb/src/sys/kern/tty_pts.c#16 integrate .. //depot/projects/usb/src/sys/kern/tty_ttydisc.c#6 integrate .. //depot/projects/usb/src/sys/kern/uipc_domain.c#13 integrate .. //depot/projects/usb/src/sys/kern/uipc_socket.c#26 integrate .. //depot/projects/usb/src/sys/kern/uipc_syscalls.c#18 integrate .. //depot/projects/usb/src/sys/kern/uipc_usrreq.c#20 integrate .. //depot/projects/usb/src/sys/kern/vfs_mount.c#29 integrate .. //depot/projects/usb/src/sys/kern/vfs_syscalls.c#28 integrate .. //depot/projects/usb/src/sys/modules/ispfw/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/usb/src/sys/net/bpf.c#22 integrate .. //depot/projects/usb/src/sys/net/bridgestp.c#17 integrate .. //depot/projects/usb/src/sys/net/flowtable.c#8 integrate .. //depot/projects/usb/src/sys/net/if.c#37 integrate .. //depot/projects/usb/src/sys/net/if_bridge.c#18 integrate .. //depot/projects/usb/src/sys/net/if_clone.c#9 integrate .. //depot/projects/usb/src/sys/net/if_ef.c#11 integrate .. //depot/projects/usb/src/sys/net/if_enc.c#9 integrate .. //depot/projects/usb/src/sys/net/if_epair.c#3 integrate .. //depot/projects/usb/src/sys/net/if_ethersubr.c#23 integrate .. //depot/projects/usb/src/sys/net/if_faith.c#8 integrate .. //depot/projects/usb/src/sys/net/if_gif.c#18 integrate .. //depot/projects/usb/src/sys/net/if_gre.c#14 integrate .. //depot/projects/usb/src/sys/net/if_llatbl.c#5 integrate .. //depot/projects/usb/src/sys/net/if_loop.c#24 integrate .. //depot/projects/usb/src/sys/net/if_mib.c#11 integrate .. //depot/projects/usb/src/sys/net/if_spppsubr.c#14 integrate .. //depot/projects/usb/src/sys/net/if_stf.c#15 integrate .. //depot/projects/usb/src/sys/net/if_tun.c#16 integrate .. //depot/projects/usb/src/sys/net/if_vlan.c#17 integrate .. //depot/projects/usb/src/sys/net/netisr.c#13 integrate .. //depot/projects/usb/src/sys/net/raw_cb.c#14 integrate .. //depot/projects/usb/src/sys/net/raw_usrreq.c#13 integrate .. //depot/projects/usb/src/sys/net/route.c#24 integrate .. //depot/projects/usb/src/sys/net/rtsock.c#30 integrate .. //depot/projects/usb/src/sys/net/vnet.c#3 integrate .. //depot/projects/usb/src/sys/net/vnet.h#17 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.c#28 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#19 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.c#21 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_scan_sta.c#16 integrate .. //depot/projects/usb/src/sys/netgraph/atm/ng_atm.c#9 integrate .. //depot/projects/usb/src/sys/netgraph/ng_base.c#21 integrate .. //depot/projects/usb/src/sys/netgraph/ng_bridge.c#5 integrate .. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#15 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ether.c#16 integrate .. //depot/projects/usb/src/sys/netgraph/ng_gif.c#9 integrate .. //depot/projects/usb/src/sys/netgraph/ng_iface.c#18 integrate .. //depot/projects/usb/src/sys/netgraph/ng_pipe.c#3 integrate .. //depot/projects/usb/src/sys/netgraph/ng_source.c#5 integrate .. //depot/projects/usb/src/sys/netinet/icmp6.h#8 integrate .. //depot/projects/usb/src/sys/netinet/icmp_var.h#7 integrate .. //depot/projects/usb/src/sys/netinet/if_ether.c#27 integrate .. //depot/projects/usb/src/sys/netinet/igmp.c#23 integrate .. //depot/projects/usb/src/sys/netinet/in.c#33 integrate .. //depot/projects/usb/src/sys/netinet/in_gif.c#15 integrate .. //depot/projects/usb/src/sys/netinet/in_mcast.c#18 integrate .. //depot/projects/usb/src/sys/netinet/in_pcb.c#31 integrate .. //depot/projects/usb/src/sys/netinet/in_pcb.h#24 integrate .. //depot/projects/usb/src/sys/netinet/in_proto.c#14 integrate .. //depot/projects/usb/src/sys/netinet/in_rmx.c#21 integrate .. //depot/projects/usb/src/sys/netinet/ip_carp.c#18 integrate .. //depot/projects/usb/src/sys/netinet/ip_divert.c#23 integrate .. //depot/projects/usb/src/sys/netinet/ip_fastfwd.c#13 integrate .. //depot/projects/usb/src/sys/netinet/ip_icmp.c#19 integrate .. //depot/projects/usb/src/sys/netinet/ip_input.c#30 integrate .. //depot/projects/usb/src/sys/netinet/ip_ipsec.c#17 integrate .. //depot/projects/usb/src/sys/netinet/ip_mroute.c#17 integrate .. //depot/projects/usb/src/sys/netinet/ip_options.c#16 integrate .. //depot/projects/usb/src/sys/netinet/ip_output.c#25 integrate .. //depot/projects/usb/src/sys/netinet/ip_var.h#14 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#8 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_nat.c#5 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/usb/src/sys/netinet/raw_ip.c#28 integrate .. //depot/projects/usb/src/sys/netinet/sctp_os_bsd.h#18 integrate .. //depot/projects/usb/src/sys/netinet/tcp_hostcache.c#16 integrate .. //depot/projects/usb/src/sys/netinet/tcp_input.c#28 integrate .. //depot/projects/usb/src/sys/netinet/tcp_offload.c#8 integrate .. //depot/projects/usb/src/sys/netinet/tcp_output.c#20 integrate .. //depot/projects/usb/src/sys/netinet/tcp_reass.c#12 integrate .. //depot/projects/usb/src/sys/netinet/tcp_sack.c#12 integrate .. //depot/projects/usb/src/sys/netinet/tcp_subr.c#28 integrate .. //depot/projects/usb/src/sys/netinet/tcp_syncache.c#26 integrate .. //depot/projects/usb/src/sys/netinet/tcp_timer.c#18 integrate .. //depot/projects/usb/src/sys/netinet/tcp_timewait.c#16 integrate .. //depot/projects/usb/src/sys/netinet/tcp_usrreq.c#23 integrate .. //depot/projects/usb/src/sys/netinet/tcp_var.h#22 integrate .. //depot/projects/usb/src/sys/netinet/udp_usrreq.c#26 integrate .. //depot/projects/usb/src/sys/netinet/udp_var.h#12 integrate .. //depot/projects/usb/src/sys/netinet6/dest6.c#8 integrate .. //depot/projects/usb/src/sys/netinet6/frag6.c#18 integrate .. //depot/projects/usb/src/sys/netinet6/icmp6.c#25 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#30 integrate .. //depot/projects/usb/src/sys/netinet6/in6_gif.c#14 integrate .. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#28 integrate .. //depot/projects/usb/src/sys/netinet6/in6_mcast.c#7 integrate .. //depot/projects/usb/src/sys/netinet6/in6_pcb.c#22 integrate .. //depot/projects/usb/src/sys/netinet6/in6_proto.c#19 integrate .. //depot/projects/usb/src/sys/netinet6/in6_rmx.c#20 integrate .. //depot/projects/usb/src/sys/netinet6/in6_src.c#21 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_forward.c#14 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_input.c#28 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_ipsec.c#12 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#21 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_output.c#19 integrate .. //depot/projects/usb/src/sys/netinet6/mld6.c#22 integrate .. //depot/projects/usb/src/sys/netinet6/nd6.c#24 integrate .. //depot/projects/usb/src/sys/netinet6/nd6_nbr.c#19 integrate .. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#22 integrate .. //depot/projects/usb/src/sys/netinet6/raw_ip6.c#25 integrate .. //depot/projects/usb/src/sys/netinet6/route6.c#11 integrate .. //depot/projects/usb/src/sys/netinet6/scope6.c#15 integrate .. //depot/projects/usb/src/sys/netinet6/udp6_usrreq.c#23 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec.c#23 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec_input.c#14 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec_mbuf.c#7 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec_output.c#13 integrate .. //depot/projects/usb/src/sys/netipsec/key.c#24 integrate .. //depot/projects/usb/src/sys/netipsec/keysock.c#15 integrate .. //depot/projects/usb/src/sys/netipsec/xform_ah.c#10 integrate .. //depot/projects/usb/src/sys/netipsec/xform_esp.c#11 integrate .. //depot/projects/usb/src/sys/netipsec/xform_ipcomp.c#10 integrate .. //depot/projects/usb/src/sys/netipsec/xform_ipip.c#16 integrate .. //depot/projects/usb/src/sys/netipsec/xform_tcp.c#6 integrate .. //depot/projects/usb/src/sys/nfsclient/bootp_subr.c#18 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_diskless.c#14 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#29 integrate .. //depot/projects/usb/src/sys/pc98/cbus/fdc.c#5 integrate .. //depot/projects/usb/src/sys/sys/bus.h#8 integrate .. //depot/projects/usb/src/sys/sys/param.h#43 integrate .. //depot/projects/usb/src/sys/sys/priv.h#21 integrate .. //depot/projects/usb/src/sys/sys/vimage.h#20 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_probe.c#5 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/machdep.c#24 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -214,6 +214,7 @@ sysenv = getenv("smbios.system.product"); if (sysenv != NULL) { if (strncmp(sysenv, "MacBook1,1", 10) == 0 || + strncmp(sysenv, "MacBook3,1", 10) == 0 || strncmp(sysenv, "MacBookPro1,1", 13) == 0 || strncmp(sysenv, "MacBookPro1,2", 13) == 0 || strncmp(sysenv, "Macmini1,1", 10) == 0) { ==== //depot/projects/usb/src/sys/arm/arm/minidump_machdep.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/minidump_machdep.c,v 1.1 2008/11/06 16:20:27 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/minidump_machdep.c,v 1.2 2009/08/01 19:26:27 rwatson Exp $"); #include #include @@ -36,7 +36,6 @@ #include #include #include -#include #include #include #include ==== //depot/projects/usb/src/sys/cam/cam_ccb.h#6 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.36 2009/07/10 08:18:08 scottl Exp $ + * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.37 2009/08/01 01:04:26 mjacob Exp $ */ #ifndef _CAM_CAM_CCB_H @@ -173,6 +173,15 @@ XPT_ATA_IO = 0x18 | XPT_FC_DEV_QUEUED, /* Execute the requested ATA I/O operation */ + XPT_GET_SIM_KNOB = 0x18, + /* + * Get SIM specific knob values. + */ + + XPT_SET_SIM_KNOB = 0x19, + /* + * Set SIM specific knob values. + */ /* HBA engine commands 0x20->0x2F */ XPT_ENG_INQ = 0x20 | XPT_FC_XPT_ONLY, /* HBA engine feature inquiry */ @@ -189,8 +198,12 @@ XPT_CONT_TARGET_IO = 0x33 | XPT_FC_DEV_QUEUED, /* Continue Host Target I/O Connection */ XPT_IMMED_NOTIFY = 0x34 | XPT_FC_QUEUED | XPT_FC_USER_CCB, + /* Notify Host Target driver of event (obsolete) */ + XPT_NOTIFY_ACK = 0x35, + /* Acknowledgement of event (obsolete) */ + XPT_IMMEDIATE_NOTIFY = 0x36 | XPT_FC_QUEUED | XPT_FC_USER_CCB, /* Notify Host Target driver of event */ - XPT_NOTIFY_ACK = 0x35, + XPT_NOTIFY_ACKNOWLEDGE = 0x37 | XPT_FC_QUEUED | XPT_FC_USER_CCB, /* Acknowledgement of event */ /* Vendor Unique codes: 0x80->0x8F */ @@ -531,12 +544,14 @@ struct ccb_pathinq_settings_spi { u_int8_t ppr_options; }; + struct ccb_pathinq_settings_fc { u_int64_t wwnn; /* world wide node name */ u_int64_t wwpn; /* world wide port name */ u_int32_t port; /* 24 bit port id, if known */ u_int32_t bitrate; /* Mbps */ }; + struct ccb_pathinq_settings_sas { u_int32_t bitrate; /* Mbps */ }; @@ -678,6 +693,7 @@ * Definitions for the asynchronous callback CCB fields. */ typedef enum { + AC_CONTRACT = 0x1000,/* A contractual callback */ AC_GETDEV_CHANGED = 0x800,/* Getdev info might have changed */ AC_INQ_CHANGED = 0x400,/* Inquiry info might have changed */ AC_TRANSFER_NEG = 0x200,/* New transfer settings in effect */ @@ -694,6 +710,26 @@ typedef void ac_callback_t (void *softc, u_int32_t code, struct cam_path *path, void *args); +/* + * Generic Asynchronous callbacks. + * + * Generic arguments passed bac which are then interpreted between a per-system + * contract number. + */ +#define AC_CONTRACT_DATA_MAX (128 - sizeof (u_int64_t)) +struct ac_contract { + u_int64_t contract_number; + u_int8_t contract_data[AC_CONTRACT_DATA_MAX]; +}; + +#define AC_CONTRACT_DEV_CHG 1 +struct ac_device_changed { + u_int64_t wwpn; + u_int32_t port; + target_id_t target; + u_int8_t arrived; +}; + /* Set Asynchronous Callback CCB */ struct ccb_setasync { struct ccb_hdr ccb_h; @@ -823,6 +859,50 @@ }; /* + * Set or get SIM (and transport) specific knobs + */ + +#define KNOB_VALID_ADDRESS 0x1 +#define KNOB_VALID_ROLE 0x2 + + +#define KNOB_ROLE_NONE 0x0 +#define KNOB_ROLE_INITIATOR 0x1 +#define KNOB_ROLE_TARGET 0x2 +#define KNOB_ROLE_BOTH 0x3 + +struct ccb_sim_knob_settings_spi { + u_int valid; + u_int initiator_id; + u_int role; +}; + +struct ccb_sim_knob_settings_fc { + u_int valid; + u_int64_t wwnn; /* world wide node name */ + u_int64_t wwpn; /* world wide port name */ + u_int role; +}; + +struct ccb_sim_knob_settings_sas { + u_int valid; + u_int64_t wwnn; /* world wide node name */ + u_int role; +}; +#define KNOB_SETTINGS_SIZE 128 + +struct ccb_sim_knob { + struct ccb_hdr ccb_h; + union { + u_int valid; /* Which fields to honor */ + struct ccb_sim_knob_settings_spi spi; + struct ccb_sim_knob_settings_fc fc; + struct ccb_sim_knob_settings_sas sas; + char pad[KNOB_SETTINGS_SIZE]; + } xport_specific; +}; + +/* * Rescan the given bus, or bus/target/lun */ struct ccb_rescan { @@ -847,6 +927,7 @@ u_int8_t enable; }; +/* old, barely used immediate notify, binary compatibility */ struct ccb_immed_notify { struct ccb_hdr ccb_h; struct scsi_sense_data sense_data; @@ -861,6 +942,22 @@ u_int8_t event; /* Event flags */ }; +struct ccb_immediate_notify { + struct ccb_hdr ccb_h; + u_int tag_id; /* Tag for immediate notify */ + u_int seq_id; /* Tag for target of notify */ + u_int initiator_id; /* Initiator Identifier */ + u_int arg; /* Function specific */ +}; + +struct ccb_notify_acknowledge { + struct ccb_hdr ccb_h; + u_int tag_id; /* Tag for immediate notify */ + u_int seq_id; /* Tar for target of notify */ + u_int initiator_id; /* Initiator Identifier */ + u_int arg; /* Function specific */ +}; + /* HBA engine structures. */ typedef enum { @@ -935,6 +1032,7 @@ struct ccb_dev_match cdm; struct ccb_trans_settings cts; struct ccb_calc_geometry ccg; + struct ccb_sim_knob knob; struct ccb_abort cab; struct ccb_resetbus crb; struct ccb_resetdev crd; @@ -944,6 +1042,8 @@ struct ccb_en_lun cel; struct ccb_immed_notify cin; struct ccb_notify_ack cna; + struct ccb_immediate_notify cin1; + struct ccb_notify_acknowledge cna2; struct ccb_eng_inq cei; struct ccb_eng_exec cee; struct ccb_rescan crcn; ==== //depot/projects/usb/src/sys/cam/cam_xpt.c#19 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.216 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.217 2009/08/01 01:04:26 mjacob Exp $"); #include #include @@ -2565,6 +2565,10 @@ case XPT_IMMED_NOTIFY: case XPT_NOTIFY_ACK: case XPT_RESET_BUS: + case XPT_IMMEDIATE_NOTIFY: + case XPT_NOTIFY_ACKNOWLEDGE: + case XPT_GET_SIM_KNOB: + case XPT_SET_SIM_KNOB: { struct cam_sim *sim; ==== //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#22 (text+ko) ==== @@ -42,7 +42,7 @@ #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.141 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.142 2009/08/01 19:26:27 rwatson Exp $"); #include #include @@ -73,7 +73,6 @@ #include #include #include -#include #include #include ==== //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#16 (text+ko) ==== @@ -29,7 +29,7 @@ #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.154 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.155 2009/08/01 19:26:27 rwatson Exp $"); #include #include @@ -59,7 +59,6 @@ #include #include #include -#include #include #include ==== //depot/projects/usb/src/sys/compat/linux/linux_socket.c#16 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.100 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.101 2009/08/01 19:26:27 rwatson Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -50,7 +50,6 @@ #include #include #include -#include #include #include ==== //depot/projects/usb/src/sys/compat/svr4/svr4_sockio.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.26 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.27 2009/08/01 19:26:27 rwatson Exp $"); #include #include @@ -36,7 +36,6 @@ #include #include #include -#include #include #include ==== //depot/projects/usb/src/sys/conf/files#76 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1457 2009/07/26 12:20:07 bz Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1459 2009/08/01 19:26:27 rwatson Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1627,6 +1627,7 @@ # dev/usb/wlan/if_rum.c optional rum dev/usb/wlan/if_uath.c optional uath +dev/usb/wlan/if_upgt.c optional upgt dev/usb/wlan/if_ural.c optional ural dev/usb/wlan/if_urtw.c optional urtw dev/usb/wlan/if_zyd.c optional zyd @@ -1991,7 +1992,6 @@ kern/kern_timeout.c standard kern/kern_umtx.c standard kern/kern_uuid.c standard -kern/kern_vimage.c optional vimage kern/kern_xxx.c standard kern/link_elf.c standard kern/linker_if.m standard ==== //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#13 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.24 2009/07/14 22:48:30 rwatson Exp $ */ +/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.25 2009/08/01 19:26:27 rwatson Exp $ */ /* $KAME: altq_subr.c,v 1.21 2003/11/06 06:32:53 kjc Exp $ */ /* @@ -47,9 +47,6 @@ #include #include #include -#ifdef __FreeBSD__ -#include -#endif #include #include ==== //depot/projects/usb/src/sys/contrib/ipfilter/netinet/fil.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.56 2008/08/17 23:27:27 bz Exp $ */ +/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.57 2009/08/01 19:26:27 rwatson Exp $ */ /* * Copyright (C) 1993-2003 by Darren Reed. @@ -33,9 +33,6 @@ # if (__FreeBSD_version == 400019) # define CSUM_DELAY_DATA # endif -# if (__FreeBSD_version >= 800044) -# include -# endif # endif # include #else @@ -158,7 +155,7 @@ #if !defined(lint) static const char sccsid[] = "@(#)fil.c 1.36 6/5/96 (C) 1993-2000 Darren Reed"; -static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.56 2008/08/17 23:27:27 bz Exp $"; +static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.57 2009/08/01 19:26:27 rwatson Exp $"; /* static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.125 2007/10/10 09:27:20 darrenr Exp $"; */ #endif ==== //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#15 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c,v 1.19 2009/07/14 22:48:30 rwatson Exp $ */ +/* $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c,v 1.20 2009/08/01 19:26:27 rwatson Exp $ */ /* * Copyright (C) 1993-2003 by Darren Reed. @@ -63,7 +63,6 @@ # include #endif #if __FreeBSD_version >= 800044 -# include # include #else #define V_path_mtu_discovery path_mtu_discovery ==== //depot/projects/usb/src/sys/contrib/pf/net/pf.c#14 (text+ko) ==== @@ -41,7 +41,7 @@ #include "opt_inet6.h" #include -__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.67 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.69 2009/08/02 19:43:32 rwatson Exp $"); #endif #ifdef __FreeBSD__ @@ -91,7 +91,6 @@ #include #include #include -#include #else #include #endif @@ -6142,7 +6141,7 @@ if (r->rt == PF_FASTROUTE) { in_rtalloc(ro, 0); if (ro->ro_rt == 0) { - IPSTAT_INC(ips_noroute); + KMOD_IPSTAT_INC(ips_noroute); goto bad; } @@ -6273,16 +6272,16 @@ if ((ifp->if_capabilities & IFCAP_CSUM_IPv4) && ifp->if_bridge == NULL) { m0->m_pkthdr.csum_flags |= M_IPV4_CSUM_OUT; - IPSTAT_INC(ips_outhwcsum); + KMOD_IPSTAT_INC(ips_outhwcsum); } else { ip->ip_sum = 0; ip->ip_sum = in_cksum(m0, ip->ip_hl << 2); } /* Update relevant hardware checksum stats for TCP/UDP */ if (m0->m_pkthdr.csum_flags & M_TCPV4_CSUM_OUT) - TCPSTAT_INC(tcpstat.tcps_outhwcsum); + KMOD_TCPSTAT_INC(tcps_outhwcsum); else if (m0->m_pkthdr.csum_flags & M_UDPV4_CSUM_OUT) - UDPSTAT_INC(udps_outhwcsum); + KMOD_UDPSTAT_INC(udps_outhwcsum); error = (*ifp->if_output)(ifp, m0, sintosa(dst), NULL); goto done; } @@ -6292,7 +6291,7 @@ * Must be able to put at least 8 bytes per fragment. */ if (ip->ip_off & htons(IP_DF)) { - IPSTAT_INC(ips_cantfrag); + KMOD_IPSTAT_INC(ips_cantfrag); if (r->rt != PF_DUPTO) { #ifdef __FreeBSD__ /* icmp_error() expects host byte ordering */ @@ -6349,7 +6348,7 @@ } if (error == 0) - IPSTAT_INC(ips_fragmented); + KMOD_IPSTAT_INC(ips_fragmented); done: if (r->rt != PF_DUPTO) @@ -6623,23 +6622,23 @@ switch (p) { case IPPROTO_TCP: { - TCPSTAT_INC(tcps_rcvbadsum); + KMOD_TCPSTAT_INC(tcps_rcvbadsum); break; } case IPPROTO_UDP: { - UDPSTAT_INC(udps_badsum); + KMOD_UDPSTAT_INC(udps_badsum); break; } case IPPROTO_ICMP: { - ICMPSTAT_INC(icps_checksum); + KMOD_ICMPSTAT_INC(icps_checksum); break; } #ifdef INET6 case IPPROTO_ICMPV6: { - ICMP6STAT_INC(icp6s_checksum); + KMOD_ICMP6STAT_INC(icp6s_checksum); break; } #endif /* INET6 */ @@ -6726,17 +6725,17 @@ m->m_pkthdr.csum_flags |= flag_bad; switch (p) { case IPPROTO_TCP: - TCPSTAT_INC(tcps_rcvbadsum); + KMOD_TCPSTAT_INC(tcps_rcvbadsum); break; case IPPROTO_UDP: - UDPSTAT_INC(udps_badsum); + KMOD_UDPSTAT_INC(udps_badsum); break; case IPPROTO_ICMP: - ICMPSTAT_INC(icps_checksum); + KMOD_ICMPSTAT_INC(icps_checksum); break; #ifdef INET6 case IPPROTO_ICMPV6: - ICMP6STAT_INC(icp6s_checksum); + KMOD_ICMP6STAT_INC(icp6s_checksum); break; #endif /* INET6 */ } ==== //depot/projects/usb/src/sys/contrib/pf/net/pf_if.c#12 (text+ko) ==== @@ -37,7 +37,7 @@ #include "opt_inet6.h" #include -__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_if.c,v 1.23 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_if.c,v 1.24 2009/08/01 19:26:27 rwatson Exp $"); #endif #include @@ -54,9 +54,6 @@ #include #endif #include -#ifdef __FreeBSD__ -#include -#endif #include #include ==== //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#18 (text+ko) ==== @@ -37,7 +37,7 @@ #ifdef __FreeBSD__ #include -__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.46 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.47 2009/08/01 19:26:27 rwatson Exp $"); #include "opt_inet.h" #include "opt_inet6.h" @@ -83,7 +83,6 @@ #include #include #include -#include #else #include #include ==== //depot/projects/usb/src/sys/contrib/pf/net/pf_subr.c#7 (text+ko) ==== @@ -32,7 +32,7 @@ #include "opt_inet6.h" #include -__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_subr.c,v 1.10 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_subr.c,v 1.11 2009/08/01 19:26:27 rwatson Exp $"); #include #include @@ -45,7 +45,6 @@ #include #include #include -#include #include #include ==== //depot/projects/usb/src/sys/contrib/rdma/rdma_cma.c#7 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/contrib/rdma/rdma_cma.c,v 1.6 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/contrib/rdma/rdma_cma.c,v 1.7 2009/08/01 19:26:27 rwatson Exp $"); #include #include @@ -46,7 +46,6 @@ #include #include #include -#include #include #include ==== //depot/projects/usb/src/sys/ddb/db_sym.c#4 (text+ko) ==== @@ -29,12 +29,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ddb/db_sym.c,v 1.38 2009/07/14 22:48:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/ddb/db_sym.c,v 1.39 2009/08/01 19:26:27 rwatson Exp $"); #include +#include #include #include -#include #include ==== //depot/projects/usb/src/sys/dev/aac/aac.c#8 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.142 2009/05/20 17:29:21 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.143 2009/08/02 14:28:40 attilio Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -3270,10 +3270,10 @@ while (co != NULL) { if (co->co_found == 0) { mtx_unlock(&sc->aac_io_lock); - mtx_lock(&Giant); + newbus_xlock(); device_delete_child(sc->aac_dev, co->co_disk); - mtx_unlock(&Giant); + newbus_xunlock(); mtx_lock(&sc->aac_io_lock); co_next = TAILQ_NEXT(co, co_link); mtx_lock(&sc->aac_container_lock); @@ -3291,9 +3291,9 @@ /* Attach the newly created containers */ if (added) { mtx_unlock(&sc->aac_io_lock); - mtx_lock(&Giant); + newbus_xlock(); bus_generic_attach(sc->aac_dev); - mtx_unlock(&Giant); + newbus_xunlock(); mtx_lock(&sc->aac_io_lock); } ==== //depot/projects/usb/src/sys/dev/acpica/acpi.c#19 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.264 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.265 2009/08/02 14:28:40 attilio Exp $"); #include "opt_acpi.h" #include @@ -675,8 +675,6 @@ device_t child, *devlist; int error, i, numdevs, pstate; - GIANT_REQUIRED; - /* First give child devices a chance to suspend. */ error = bus_generic_suspend(dev); if (error) @@ -719,8 +717,6 @@ int i, numdevs, error; device_t child, *devlist; - GIANT_REQUIRED; - /* * Put all devices in D0 before resuming them. Call _S0D on each one * since some systems expect this. @@ -745,8 +741,6 @@ acpi_shutdown(device_t dev) { - GIANT_REQUIRED; - /* Allow children to shutdown first. */ bus_generic_shutdown(dev); @@ -2534,11 +2528,7 @@ thread_unlock(curthread); #endif - /* - * Be sure to hold Giant across DEVICE_SUSPEND/RESUME since non-MPSAFE - * drivers need this. - */ - mtx_lock(&Giant); + newbus_xlock(); slp_state = ACPI_SS_NONE; @@ -2611,7 +2601,7 @@ if (slp_state >= ACPI_SS_SLEPT) acpi_enable_fixed_events(sc); - mtx_unlock(&Giant); + newbus_xunlock(); #ifdef SMP thread_lock(curthread); ==== //depot/projects/usb/src/sys/dev/acpica/acpi_battery.c#7 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.28 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.29 2009/08/02 14:28:40 attilio Exp $"); #include "opt_acpi.h" #include @@ -329,6 +329,7 @@ dev = NULL; found_unit = 0; + newbus_slock(); batt_dc = devclass_find("battery"); maxunit = devclass_get_maxunit(batt_dc); for (i = 0; i < maxunit; i++) { @@ -340,6 +341,7 @@ found_unit++; dev = NULL; } + newbus_sunlock(); return (dev); } @@ -369,13 +371,17 @@ */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 7 11:13:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B2EB51065744; Fri, 7 Aug 2009 11:13:20 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 712201065740 for ; Fri, 7 Aug 2009 11:13:20 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5FFCD8FC16 for ; Fri, 7 Aug 2009 11:13:20 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77BDKc0010435 for ; Fri, 7 Aug 2009 11:13:20 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77BDK9o010433 for perforce@freebsd.org; Fri, 7 Aug 2009 11:13:20 GMT (envelope-from stas@freebsd.org) Date: Fri, 7 Aug 2009 11:13:20 GMT Message-Id: <200908071113.n77BDK9o010433@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167086 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 11:13:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=167086 Change 167086 by stas@stas_deglitch on 2009/08/07 11:13:12 Fix 32-bit libraries built on amd64 platform. Affected files ... .. //depot/projects/valgrind/configure.in#10 edit Differences ... ==== //depot/projects/valgrind/configure.in#10 (text+ko) ==== @@ -392,6 +392,7 @@ VG_PLATFORM_PRI="AMD64_FREEBSD" VG_PLATFORM_SEC="X86_FREEBSD" fi + FLAG_32ON64="-B/usr/lib32" AC_MSG_RESULT([ok (${host_cpu}-${host_os})]) ;; *) @@ -877,13 +878,13 @@ AC_MSG_CHECKING([if gcc accepts -m32]) safe_CFLAGS=$CFLAGS -CFLAGS="-m32" +CFLAGS="${FLAG_32ON64} -m32" AC_TRY_COMPILE(, [ int main () { return 0 ; } ], [ -FLAG_M32="-m32" +FLAG_M32="${FLAG_32ON64} -m32" AC_MSG_RESULT([yes]) ], [ FLAG_M32="" From owner-p4-projects@FreeBSD.ORG Fri Aug 7 12:20:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3464E1065670; Fri, 7 Aug 2009 12:20:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0746106566B for ; Fri, 7 Aug 2009 12:20:33 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BE0088FC21 for ; Fri, 7 Aug 2009 12:20:33 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77CKXRR016252 for ; Fri, 7 Aug 2009 12:20:33 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77CKXhP016250 for perforce@freebsd.org; Fri, 7 Aug 2009 12:20:33 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 7 Aug 2009 12:20:33 GMT Message-Id: <200908071220.n77CKXhP016250@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167087 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 12:20:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=167087 Change 167087 by hselasky@hselasky_laptop001 on 2009/08/07 12:20:27 USB CORE: - newbus lock cleanup Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#28 edit .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#35 edit .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#47 edit .. //depot/projects/usb/src/sys/dev/usb/usb_device.h#29 edit .. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#20 edit .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#30 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#28 (text+ko) ==== @@ -67,7 +67,6 @@ static device_detach_t usb_detach; static void usb_attach_sub(device_t, struct usb_bus *); -static void usb_post_init(void *); /* static variables */ @@ -84,8 +83,6 @@ SYSCTL_INT(_hw_usb, OID_AUTO, no_boot_wait, CTLFLAG_RDTUN, &usb_no_boot_wait, 0, "No device enumerate waiting at boot."); -static uint8_t usb_post_init_called = 0; - static devclass_t usb_devclass; static device_method_t usb_methods[] = { @@ -142,10 +139,8 @@ bus->bus_roothold = root_mount_hold(device_get_nameunit(dev)); } - if (usb_post_init_called) { - usb_attach_sub(dev, bus); - usb_needs_explore(bus, 1); - } + usb_attach_sub(dev, bus); + return (0); /* return success */ } @@ -269,10 +264,10 @@ device_set_softc(dev, NULL); USB_BUS_UNLOCK(bus); + /* detach children first */ newbus_xlock(); - - /* detach children first */ bus_generic_detach(dev); + newbus_xunlock(); /* * Free USB Root device, but not any sub-devices, hence they @@ -281,7 +276,6 @@ usb_free_device(udev, USB_UNCFG_FLAG_FREE_EP0); - newbus_xunlock(); USB_BUS_LOCK(bus); /* clear bdev variable last */ bus->bdev = NULL; @@ -356,7 +350,6 @@ } USB_BUS_UNLOCK(bus); - newbus_xlock(); /* default power_mask value */ bus->hw_power_state = @@ -389,7 +382,6 @@ err = USB_ERR_NOMEM; } - newbus_xunlock(); USB_BUS_LOCK(bus); if (err) { @@ -407,17 +399,18 @@ /*------------------------------------------------------------------------* * usb_attach_sub * - * This function creates a thread which runs the USB attach code. It - * is factored out, hence it can be called at two different places in - * time. During bootup this function is called from - * "usb_post_init". During hot-plug it is called directly from the - * "usb_attach()" method. + * This function creates a thread which runs the USB attach code. *------------------------------------------------------------------------*/ static void usb_attach_sub(device_t dev, struct usb_bus *bus) { const char *pname = device_get_nameunit(dev); + newbus_xlock(); + if (usb_devclass_ptr == NULL) + usb_devclass_ptr = devclass_find("usbus"); + newbus_xunlock(); + /* Initialise USB process messages */ bus->explore_msg[0].hdr.pm_callback = &usb_bus_explore; bus->explore_msg[0].bus = bus; @@ -460,52 +453,12 @@ /* ignore */ } USB_BUS_UNLOCK(bus); - } -} -/*------------------------------------------------------------------------* - * usb_post_init - * - * This function is called to attach all USB busses that were found - * during bootup. - *------------------------------------------------------------------------*/ -static void -usb_post_init(void *arg) -{ - struct usb_bus *bus; - devclass_t dc; - device_t dev; - int max; - int n; - - newbus_xlock(); - - usb_devclass_ptr = devclass_find("usbus"); - - dc = usb_devclass_ptr; - if (dc) { - max = devclass_get_maxunit(dc) + 1; - for (n = 0; n != max; n++) { - dev = devclass_get_device(dc, n); - if (dev && device_is_attached(dev)) { - bus = device_get_ivars(dev); - if (bus) - usb_attach_sub(dev, bus); - } - } - } else { - DPRINTFN(0, "no devclass\n"); + /* Do initial explore */ + usb_needs_explore(bus, 1); } - usb_post_init_called = 1; - - /* explore all USB busses in parallell */ - - usb_needs_explore_all(); - - newbus_xunlock(); } -SYSINIT(usb_post_init, SI_SUB_KICK_SCHEDULER, SI_ORDER_ANY, usb_post_init, NULL); SYSUNINIT(usb_bus_unload, SI_SUB_KLD, SI_ORDER_ANY, usb_bus_unload, NULL); /*------------------------------------------------------------------------* ==== //depot/projects/usb/src/sys/dev/usb/usb_dev.c#35 (text+ko) ==== @@ -217,7 +217,7 @@ * We need to grab the sx-lock before grabbing the * FIFO refs to avoid deadlock at detach! */ - sx_xlock(cpd->udev->default_sx + 1); + usbd_enum_lock(cpd->udev); mtx_lock(&usb_ref_lock); @@ -275,14 +275,12 @@ } mtx_unlock(&usb_ref_lock); - if (crd->is_uref) { - mtx_lock(&Giant); /* XXX */ - } return (0); error: if (crd->is_uref) { - sx_unlock(cpd->udev->default_sx + 1); + usbd_enum_unlock(cpd->udev); + if (--(cpd->udev->refcount) == 0) { cv_signal(cpd->udev->default_cv + 1); } @@ -334,10 +332,9 @@ DPRINTFN(2, "cpd=%p is_uref=%d\n", cpd, crd->is_uref); - if (crd->is_uref) { - mtx_unlock(&Giant); /* XXX */ - sx_unlock(cpd->udev->default_sx + 1); - } + if (crd->is_uref) + usbd_enum_unlock(cpd->udev); + mtx_lock(&usb_ref_lock); if (crd->is_read) { if (--(crd->rxfifo->refcount) == 0) { @@ -1040,16 +1037,11 @@ * Performance optimisation: We try to check for IOCTL's that * don't need the USB reference first. Then we grab the USB * reference if we need it! - * Note that some ioctl_post handlers would need to run with the - * newbus lock held. It cannot be acquired later because it can - * introduce a LOR, so acquire it here. */ - newbus_xlock(); err = usb_ref_device(cpd, &refs, 0 /* no uref */ ); - if (err) { - newbus_xunlock(); + if (err) return (ENXIO); - } + fflags = cpd->fflags; f = NULL; /* set default value */ @@ -1081,7 +1073,6 @@ } done: usb_unref_device(cpd, &refs); - newbus_xunlock(); return (err); } ==== //depot/projects/usb/src/sys/dev/usb/usb_device.c#47 (text+ko) ==== @@ -402,11 +402,11 @@ uint8_t do_unlock; /* automatic locking */ - if (sx_xlocked(udev->default_sx + 1)) { + if (usbd_enum_is_locked(udev)) { do_unlock = 0; } else { do_unlock = 1; - sx_xlock(udev->default_sx + 1); + usbd_enum_lock(udev); } /* detach all interface drivers */ @@ -442,9 +442,8 @@ udev->curr_config_no = USB_UNCONFIG_NO; udev->curr_config_index = USB_UNCONFIG_INDEX; - if (do_unlock) { - sx_unlock(udev->default_sx + 1); - } + if (do_unlock) + usbd_enum_unlock(udev); } /*------------------------------------------------------------------------* @@ -472,11 +471,11 @@ DPRINTFN(6, "udev=%p index=%d\n", udev, index); /* automatic locking */ - if (sx_xlocked(udev->default_sx + 1)) { + if (usbd_enum_is_locked(udev)) { do_unlock = 0; } else { do_unlock = 1; - sx_xlock(udev->default_sx + 1); + usbd_enum_lock(udev); } usb_unconfigure(udev, USB_UNCFG_FLAG_FREE_SUBDEV); @@ -585,9 +584,8 @@ if (err) { usb_unconfigure(udev, USB_UNCFG_FLAG_FREE_SUBDEV); } - if (do_unlock) { - sx_unlock(udev->default_sx + 1); - } + if (do_unlock) + usbd_enum_unlock(udev); return (err); } @@ -823,11 +821,11 @@ uint8_t do_unlock; /* automatic locking */ - if (sx_xlocked(udev->default_sx + 1)) { + if (usbd_enum_is_locked(udev)) { do_unlock = 0; } else { do_unlock = 1; - sx_xlock(udev->default_sx + 1); + usbd_enum_lock(udev); } if (iface == NULL) { err = USB_ERR_INVAL; @@ -863,9 +861,9 @@ iface->idesc->bAlternateSetting); done: - if (do_unlock) { - sx_unlock(udev->default_sx + 1); - } + if (do_unlock) + usbd_enum_unlock(udev); + return (err); } @@ -1230,11 +1228,11 @@ return (USB_ERR_INVAL); } /* automatic locking */ - if (sx_xlocked(udev->default_sx + 1)) { + if (usbd_enum_is_locked(udev)) { do_unlock = 0; } else { do_unlock = 1; - sx_xlock(udev->default_sx + 1); + usbd_enum_lock(udev); } if (udev->curr_config_index == USB_UNCONFIG_INDEX) { @@ -1315,9 +1313,9 @@ } } done: - if (do_unlock) { - sx_unlock(udev->default_sx + 1); - } + if (do_unlock) + usbd_enum_unlock(udev); + return (0); } @@ -2448,3 +2446,32 @@ { return (udev->state > USB_STATE_DETACHED); } + +/* The following function locks enumerating the given USB device. */ + +void +usbd_enum_lock(struct usb_device *udev) +{ + newbus_xlock(); + sx_xlock(udev->default_sx + 1); +} + +/* The following function unlocks enumerating the given USB device. */ + +void +usbd_enum_unlock(struct usb_device *udev) +{ + sx_xunlock(udev->default_sx + 1); + newbus_xunlock(); +} + +/* + * The following function checks the enumerating lock for the given + * USB device. + */ + +uint8_t +usbd_enum_is_locked(struct usb_device *udev) +{ + return (sx_xlocked(udev->default_sx + 1)); +} ==== //depot/projects/usb/src/sys/dev/usb/usb_device.h#29 (text+ko) ==== @@ -211,5 +211,8 @@ struct usb_endpoint *usb_endpoint_foreach(struct usb_device *udev, struct usb_endpoint *ep); void usb_set_device_state(struct usb_device *udev, enum usb_dev_state state); +void usbd_enum_lock(struct usb_device *); +void usbd_enum_unlock(struct usb_device *); +uint8_t usbd_enum_is_locked(struct usb_device *); #endif /* _USB_DEVICE_H_ */ ==== //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#20 (text+ko) ==== @@ -152,8 +152,8 @@ * attach: */ USB_XFER_UNLOCK(xfer); - newbus_xlock(); - sx_xlock(udev->default_sx + 1); + + usbd_enum_lock(udev); if (conf_no == USB_UNCONFIG_NO) { conf_no = USB_UNCONFIG_INDEX; @@ -176,8 +176,7 @@ goto done; } done: - sx_unlock(udev->default_sx + 1); - newbus_xunlock(); + usbd_enum_unlock(udev); USB_XFER_LOCK(xfer); return (err); } @@ -190,19 +189,19 @@ usb_error_t err = 0; /* automatic locking */ - if (sx_xlocked(udev->default_sx + 1)) { + if (usbd_enum_is_locked(udev)) { do_unlock = 0; } else { do_unlock = 1; - sx_xlock(udev->default_sx + 1); + usbd_enum_lock(udev); } if (alt_index >= usbd_get_no_alts(udev->cdesc, iface->idesc)) err = USB_ERR_INVAL; - if (do_unlock) { - sx_unlock(udev->default_sx + 1); - } + if (do_unlock) + usbd_enum_unlock(udev); + return (err); } @@ -236,8 +235,8 @@ * attach: */ USB_XFER_UNLOCK(xfer); - newbus_xlock(); - sx_xlock(udev->default_sx + 1); + + usbd_enum_lock(udev); error = ENXIO; @@ -353,20 +352,17 @@ goto tr_stalled; } tr_valid: - sx_unlock(udev->default_sx + 1); - newbus_xunlock(); + usbd_enum_unlock(udev); USB_XFER_LOCK(xfer); return (0); tr_short: - sx_unlock(udev->default_sx + 1); - newbus_xunlock(); + usbd_enum_unlock(udev); USB_XFER_LOCK(xfer); return (USB_ERR_SHORT_XFER); tr_stalled: - sx_unlock(udev->default_sx + 1); - newbus_xunlock(); + usbd_enum_unlock(udev); USB_XFER_LOCK(xfer); return (USB_ERR_STALLED); } ==== //depot/projects/usb/src/sys/dev/usb/usb_hub.c#30 (text+ko) ==== @@ -96,6 +96,7 @@ struct uhub_softc { struct uhub_current_state sc_st;/* current state */ device_t sc_dev; /* base device */ + struct mtx sc_mtx; /* our mutex */ struct usb_device *sc_udev; /* USB device */ struct usb_xfer *sc_xfer[UHUB_N_TRANSFER]; /* interrupt xfer */ uint8_t sc_flags; @@ -234,10 +235,8 @@ if (child->driver_added_refcount != refcount) { child->driver_added_refcount = refcount; - newbus_xlock(); err = usb_probe_and_attach(child, USB_IFACE_INDEX_ANY); - newbus_xunlock(); if (err) { goto done; } @@ -320,11 +319,9 @@ /* detach any existing devices */ if (child) { - newbus_xlock(); usb_free_device(child, USB_UNCFG_FLAG_FREE_SUBDEV | USB_UNCFG_FLAG_FREE_EP0); - newbus_xunlock(); child = NULL; } /* get fresh status */ @@ -432,10 +429,8 @@ mode = USB_MODE_HOST; /* need to create a new child */ - newbus_xlock(); child = usb_alloc_device(sc->sc_dev, udev->bus, udev, udev->depth + 1, portno - 1, portno, speed, mode); - newbus_xunlock(); if (child == NULL) { DPRINTFN(0, "could not allocate new device!\n"); goto error; @@ -444,11 +439,9 @@ error: if (child) { - newbus_xlock(); usb_free_device(child, USB_UNCFG_FLAG_FREE_SUBDEV | USB_UNCFG_FLAG_FREE_EP0); - newbus_xunlock(); child = NULL; } if (err == 0) { @@ -698,6 +691,8 @@ sc->sc_udev = udev; sc->sc_dev = dev; + mtx_init(&sc->sc_mtx, "USB HUB mutex", NULL, MTX_DEF); + snprintf(sc->sc_name, sizeof(sc->sc_name), "%s", device_get_nameunit(dev)); @@ -781,7 +776,7 @@ } else { /* normal HUB */ err = usbd_transfer_setup(udev, &iface_index, sc->sc_xfer, - uhub_config, UHUB_N_TRANSFER, sc, &Giant); + uhub_config, UHUB_N_TRANSFER, sc, &sc->sc_mtx); } if (err) { DPRINTFN(0, "cannot setup interrupt transfer, " @@ -857,9 +852,9 @@ /* Start the interrupt endpoint, if any */ if (sc->sc_xfer[0] != NULL) { - USB_XFER_LOCK(sc->sc_xfer[0]); + mtx_lock(&sc->sc_mtx); usbd_transfer_start(sc->sc_xfer[0]); - USB_XFER_UNLOCK(sc->sc_xfer[0]); + mtx_unlock(&sc->sc_mtx); } /* Enable automatic power save on all USB HUBs */ @@ -875,6 +870,9 @@ free(udev->hub, M_USBDEV); udev->hub = NULL; } + + mtx_destroy(&sc->sc_mtx); + return (ENXIO); } @@ -915,6 +913,9 @@ free(hub, M_USBDEV); sc->sc_udev->hub = NULL; + + mtx_destroy(&sc->sc_mtx); + return (0); } @@ -1778,13 +1779,13 @@ /* always update hardware power! */ (bus->methods->set_hw_power) (bus); } - newbus_xlock(); - sx_xlock(udev->default_sx + 1); + + usbd_enum_lock(udev); /* notify all sub-devices about resume */ err = usb_suspend_resume(udev, 0); - sx_unlock(udev->default_sx + 1); - newbus_xunlock(); + + usbd_enum_unlock(udev); /* check if peer has wakeup capability */ if (usb_peer_can_wakeup(udev)) { @@ -1850,13 +1851,12 @@ } } - newbus_xlock(); - sx_xlock(udev->default_sx + 1); + usbd_enum_lock(udev); /* notify all sub-devices about suspend */ err = usb_suspend_resume(udev, 1); - sx_unlock(udev->default_sx + 1); - newbus_xunlock(); + + usbd_enum_unlock(udev); if (usb_peer_can_wakeup(udev)) { /* allow device to do remote wakeup */ From owner-p4-projects@FreeBSD.ORG Fri Aug 7 12:31:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F116106566B; Fri, 7 Aug 2009 12:31:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3B721065670 for ; Fri, 7 Aug 2009 12:31:45 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D25278FC21 for ; Fri, 7 Aug 2009 12:31:45 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77CVj7q017009 for ; Fri, 7 Aug 2009 12:31:45 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77CVjEY017007 for perforce@freebsd.org; Fri, 7 Aug 2009 12:31:45 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 7 Aug 2009 12:31:45 GMT Message-Id: <200908071231.n77CVjEY017007@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167088 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 12:31:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=167088 Change 167088 by hselasky@hselasky_laptop001 on 2009/08/07 12:31:04 USB CORE: - patch to fix busdma sync flag usage on ARM and PowerPC - patch was made by Grzegorz Bernacki & more @semihalf.com Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_busdma.c#15 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_busdma.c#15 (text+ko) ==== @@ -679,8 +679,14 @@ /* nothing has been loaded into this page cache! */ return; } - bus_dmamap_sync(pc->tag, pc->map, - BUS_DMASYNC_POSTWRITE | BUS_DMASYNC_POSTREAD); + + /* + * TODO: We currently do XXX_POSTREAD and XXX_PREREAD at the + * same time, but in the future we should try to isolate the + * differen cases to optimise the code. --HPS + */ + bus_dmamap_sync(pc->tag, pc->map, BUS_DMASYNC_POSTREAD); + bus_dmamap_sync(pc->tag, pc->map, BUS_DMASYNC_PREREAD); } /*------------------------------------------------------------------------* @@ -693,8 +699,7 @@ /* nothing has been loaded into this page cache! */ return; } - bus_dmamap_sync(pc->tag, pc->map, - BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD); + bus_dmamap_sync(pc->tag, pc->map, BUS_DMASYNC_PREWRITE); } /*------------------------------------------------------------------------* From owner-p4-projects@FreeBSD.ORG Fri Aug 7 12:44:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C126B10656A7; Fri, 7 Aug 2009 12:44:45 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 767DD1065680; Fri, 7 Aug 2009 12:44:45 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 30EF28FC20; Fri, 7 Aug 2009 12:44:45 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id BB70146B2A; Fri, 7 Aug 2009 08:44:44 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 1990B8A0AD; Fri, 7 Aug 2009 08:44:44 -0400 (EDT) From: John Baldwin To: Julian Elischer Date: Fri, 7 Aug 2009 08:41:12 -0400 User-Agent: KMail/1.9.7 References: <200908061404.n76E4IIF048503@repoman.freebsd.org> <200908061108.42372.jhb@freebsd.org> <4A7AF3D9.6080601@elischer.org> In-Reply-To: <4A7AF3D9.6080601@elischer.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200908070841.12785.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Fri, 07 Aug 2009 08:44:44 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: Julian Elischer , Perforce Change Reviews , Marko Zec Subject: Re: PERFORCE change 167065 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 12:44:47 -0000 On Thursday 06 August 2009 11:16:41 am Julian Elischer wrote: > John Baldwin wrote: > > On Thursday 06 August 2009 10:04:18 am Marko Zec wrote: > >> http://perforce.freebsd.org/chv.cgi?CH=167065 > >> > >> Change 167065 by zec@zec_tpx32 on 2009/08/06 14:03:58 > >> > >> Merge Julian's updates to V_ instructions document. > >> Submitted by: julian > >> > >> Affected files ... > >> > >> .. //depot/projects/vimage/porting_to_vimage.txt#10 edit > >> > >> Differences ... > >> > >> ==== //depot/projects/vimage/porting_to_vimage.txt#10 (text+ko) ==== > >> > >> -#endif /* !_FOO_VFOO_H_ */ > >> -========================================================= > >> +On BOOT, the order of evaluation will be: > >> + In a NON-VIMAGE kernel where the module is compiled: > >> + MODEVENT, SYSINIT and VNET_SYSINIT both runm with order defined by > > their > >> + order declarations. {good foot shooting aterial if you get it wrong!} > >> > >> + In a VIMAGE kernel where the module is compiled: > >> + MODEVNET, SYSINIT and VNET_SYSINIT both runm with order defined by > > their > >> + order declarations. AND in addition, the VNET_SYSINIT being > >> + repeated once for every new jail/vnet. > >> > >> +On loading a vnet enabled kernel module after boot: > >> + MODEVENT("event = load"); > >> + SYSINIT() > >> + VNET_SYSINIT() for every existing jail > >> + AND in addition, VNET_SYSINIT being called for each new jail > > created. > >> > >> +On unloading of module: > >> + MODEVENT("event = quiesce") > >> + MODEVENT("event = unload") > >> + VNET_SYSUNINIT called for every jail/vnet > >> + SYSUNINIT > >> > >> +On system shutdown: > >> + effectively the same as unload > >> + {with exception of modevent?} > > > > On system shutdown MOD_SHUTDOWN is the only MODEVENT handler invoked. > > > >> +NOTICE that while the order of the SYSINIT and VNET_SYSINIT is reversed > > from > >> +that of SYSUNINIT and VNET_SYSUNINIT, MODEVENTS do not follow > >> +this rule and thus it is dangerous to initialise and uninitialise > >> +things which are order dependent using MODEVENTs. > > > > This is no longer true. MOD_QUIESCE and MOD_UNLOAD events now run in the > > reverse of the order that MOD_LOAD is invoked for a given kld during > > kldunload. This is true in both 7 and 8 now for several months. > > I meant the order within the entries for the same module. > Since MODEVENT is called first during load, it would, by the > assumption that everything is reversed easy to assume that MODEVENT > is called AFTER the SYSINITS during unload. This is in fact not the > case, and I have the scars to prove it. > It might be make some sense if the "QUIESCE" was called before the > SYSINIT/SYSUNINIT and the UNLOAD called after.. with a millisecond > sleep between them. I'm not sure you need the millisecond sleep. This is a bit tricky to resolve and is a general problem with mixing module events with sysuninit. I'm not really entirely sure what the best answer to that is aside from documenting it as such for now. -- John Baldwin From owner-p4-projects@FreeBSD.ORG Fri Aug 7 12:44:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A56B106574F; Fri, 7 Aug 2009 12:44:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 50DBC1065749; Fri, 7 Aug 2009 12:44:46 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 0309C8FC28; Fri, 7 Aug 2009 12:44:46 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id A8D8046B03; Fri, 7 Aug 2009 08:44:45 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id F1D3F8A0AB; Fri, 7 Aug 2009 08:44:44 -0400 (EDT) From: John Baldwin To: Julian Elischer Date: Fri, 7 Aug 2009 08:42:36 -0400 User-Agent: KMail/1.9.7 References: <200908062223.n76MNUTu012625@repoman.freebsd.org> In-Reply-To: <200908062223.n76MNUTu012625@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200908070842.36975.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Fri, 07 Aug 2009 08:44:45 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: Perforce Change Reviews Subject: Re: PERFORCE change 167074 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 12:44:50 -0000 On Thursday 06 August 2009 6:23:30 pm Julian Elischer wrote: > http://perforce.freebsd.org/chv.cgi?CH=167074 > > Change 167074 by julian@julian-mac on 2009/08/06 22:22:52 > > wordsmithing. > Add a comment to clear up somethings that I didn't > express well originally. > Still needs a lot of work. > > Affected files ... > > .. //depot/projects/vimage/porting_to_vimage.txt#11 edit > > Differences ... > > ==== //depot/projects/vimage/porting_to_vimage.txt#11 (text+ko) ==== > > @@ -351,15 +356,26 @@ > VNET_SYSUNINIT called for every jail/vnet > SYSUNINIT > > -On system shutdown: > - effectively the same as unload > - {with exception of modevent?} > +On system shutdown: [check/fix this ] > + MODEVENT(shutdown) > + ? VNET_SYSUNINIT called for every jail/vnet > + ? SYSUNINIT Just one more note. SYSUNINITs are not invoked on shutdown, only when a module is unloaded. This means that SYSUNINTs in the base kernel are never used. -- John Baldwin From owner-p4-projects@FreeBSD.ORG Fri Aug 7 12:52:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F89C1065677; Fri, 7 Aug 2009 12:52:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BA7A1065672 for ; Fri, 7 Aug 2009 12:52:08 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2A32C8FC15 for ; Fri, 7 Aug 2009 12:52:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77Cq82E028698 for ; Fri, 7 Aug 2009 12:52:08 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77Cq8xq028696 for perforce@freebsd.org; Fri, 7 Aug 2009 12:52:08 GMT (envelope-from stas@freebsd.org) Date: Fri, 7 Aug 2009 12:52:08 GMT Message-Id: <200908071252.n77Cq8xq028696@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167089 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 12:52:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=167089 Change 167089 by stas@stas_deglitch on 2009/08/07 12:51:52 - Fix a couple of other SED invocations. Affected files ... .. //depot/projects/valgrind/Makefile.install.am#4 edit .. //depot/projects/valgrind/Makefile.tool-inplace.am#4 edit Differences ... ==== //depot/projects/valgrind/Makefile.install.am#4 (text+ko) ==== @@ -25,8 +25,8 @@ install-exec-local: if [ -n "$(noinst_PROGRAMS)" ] ; then \ for f in $(noinst_PROGRAMS); do \ - name=`echo $$f | $(SED) -e 's/-\([^-]*-[^-.]*\)\(\..*\)\?$$/\2/'`; \ - plat=`echo $$f | $(SED) -e 's/^.*-\([^-]*-[^-.]*\)\(\..*\)\?$$/\1/'`; \ + name=`echo $$f | $(SED) -E -e 's/-([^-]*-[^-\.]*)(.\.*)?$$/\2/'`; \ + plat=`echo $$f | $(SED) -E -e 's/^.*-([^-]*-[^-\.]*)(.\.*)?$$/\1/'`; \ $(mkinstalldirs) $(DESTDIR)$(valdir)/$$plat; \ $(INSTALL_PROGRAM) $$f $(DESTDIR)$(valdir)/$$plat/$$name; \ done ; \ ==== //depot/projects/valgrind/Makefile.tool-inplace.am#4 (text+ko) ==== @@ -5,8 +5,8 @@ all-local: if [ -n "$(noinst_PROGRAMS)" ] ; then \ for f in $(noinst_PROGRAMS); do \ - name=`echo $$f | $(SED) -e 's/-\([^-]*-[^-.]*\)\(\..*\)\?$$/\2/'`; \ - plat=`echo $$f | $(SED) -e 's/^.*-\([^-]*-[^-.]*\)\(\..*\)\?$$/\1/'`; \ + name=`echo $$f | $(SED) -E -e 's/-([^-]*-[^-\.]*)(.\.*)?$$/\2/'`; \ + plat=`echo $$f | $(SED) -E -e 's/^.*-([^-]*-[^-\.]*)(.\.*)?$$/\1/'`; \ mkdir -p $(inplacedir)/$$plat; \ rm -f $(inplacedir)/$$plat/$$name; \ ln -f -s ../../$(subdir)/$$f $(inplacedir)/$$plat/$$name; \ From owner-p4-projects@FreeBSD.ORG Fri Aug 7 16:54:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C816E1065670; Fri, 7 Aug 2009 16:54:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A990106564A for ; Fri, 7 Aug 2009 16:54:32 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6A1B48FC1F for ; Fri, 7 Aug 2009 16:54:32 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77GsWoW060568 for ; Fri, 7 Aug 2009 16:54:32 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77GsWsG060566 for perforce@freebsd.org; Fri, 7 Aug 2009 16:54:32 GMT (envelope-from julian@freebsd.org) Date: Fri, 7 Aug 2009 16:54:32 GMT Message-Id: <200908071654.n77GsWsG060566@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Cc: Subject: PERFORCE change 167090 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 16:54:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=167090 Change 167090 by julian@julian-mac on 2009/08/07 16:54:11 Better examples for shutdown Affected files ... .. //depot/projects/vimage/porting_to_vimage.txt#12 edit Differences ... ==== //depot/projects/vimage/porting_to_vimage.txt#12 (text+ko) ==== @@ -1,4 +1,4 @@ -July 13 2008 +July 7 2009 Julian Elischer =================== @@ -299,6 +299,22 @@ break; case MOD_SHUTDOWN: + /* + * this is called once but you may want to shut down + * things in each jail. + */ + { + VNET_ITERATOR_DECL(vnet_iter); + VNET_LIST_RLOCK(); + VNET_FOREACH(vnet_iter) { + CURVNET_SET(vnet_iter); + mymod_vnet_uninit(NULL); + CURVNET_RESTORE(); + } + VNET_LIST_RUNLOCK(); + } + /* you may need to shutdown something global. */ + mymod_destroy(); break; default: @@ -358,8 +374,6 @@ On system shutdown: [check/fix this ] MODEVENT(shutdown) - ? VNET_SYSUNINIT called for every jail/vnet - ? SYSUNINIT NOTICE that while the order of the SYSINIT and VNET_SYSINIT is reversed from that of SYSUNINIT and VNET_SYSUNINIT, MODEVENTS do not follow @@ -382,25 +396,7 @@ (but not the modevent). Sometimes there is a need to iterate through the vnets. -The following code should be used as a guide. - - VNET_ITERATOR_DECL(vnet_iter); - [...] - - [...] - VNET_LIST_RLOCK(); - VNET_FOREACH(vnet_iter) { - CURVNET_SET(vnet_iter); - [...] - do work, - including calling code that assumes we have curvnet set. - [...] - CURVNET_RESTORE(); - } - VNET_LIST_RUNLOCK(); - [...] -} - +See the modevent shutdown handler (above) for an example of how to do this. finally: The command to make a new jail with a new vnet: From owner-p4-projects@FreeBSD.ORG Fri Aug 7 17:01:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9F3F41065686; Fri, 7 Aug 2009 17:01:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5E5F0106568B for ; Fri, 7 Aug 2009 17:01:40 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4DEA08FC25 for ; Fri, 7 Aug 2009 17:01:40 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77H1efJ061143 for ; Fri, 7 Aug 2009 17:01:40 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77H1eew061141 for perforce@freebsd.org; Fri, 7 Aug 2009 17:01:40 GMT (envelope-from julian@freebsd.org) Date: Fri, 7 Aug 2009 17:01:40 GMT Message-Id: <200908071701.n77H1eew061141@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Cc: Subject: PERFORCE change 167091 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 17:01:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=167091 Change 167091 by julian@julian-mac on 2009/08/07 17:01:05 Describe the init/teardown a bit more. Affected files ... .. //depot/projects/vimage/porting_to_vimage.txt#13 edit Differences ... ==== //depot/projects/vimage/porting_to_vimage.txt#13 (text+ko) ==== @@ -154,7 +154,19 @@ required for the module to stash away the virtual environment instance somewhere, and make associated changes in the code. -5/ Add the code described below to the files that make up the module +5/ Decide which parts of the initialization and teardown are per jail and + which parts are global, and separate out the code accordingly. + Global initialization is done using the SYSINIT facility. + Per jail initialization is done using VNET_SYSINIT(). + Per jail teardown is doen using VNET_SYSUNINIT(). + Global teardown is done using SYSUNIT(). + In addition, the modevent handler is called with various event types before + any of these are called. The modevent handler may veto load or teardown. + On Shutdown, only the modevent handler is called so it may have to simulate + the calling of the other handlers if clean shutdown is a requirement + of your module. (see sample code below). + +6/ Add the code described below to the files that make up the module Details: (VNET implementation details) From owner-p4-projects@FreeBSD.ORG Fri Aug 7 17:50:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 59E1E1065706; Fri, 7 Aug 2009 17:50:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1B411065700 for ; Fri, 7 Aug 2009 17:50:33 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C0C9D8FC2A for ; Fri, 7 Aug 2009 17:50:33 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77HoXuc066263 for ; Fri, 7 Aug 2009 17:50:33 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77HoXZY066261 for perforce@freebsd.org; Fri, 7 Aug 2009 17:50:33 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 7 Aug 2009 17:50:33 GMT Message-Id: <200908071750.n77HoXZY066261@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167092 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 17:50:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=167092 Change 167092 by hselasky@hselasky_laptop001 on 2009/08/07 17:50:13 USB CORE: - Leave device unconfigured instead of disabling the USB port when Huawei Autoinstall disk detection triggers. This should fix problems that the Huawei device is not detected after Autoinstall eject is issued. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#48 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_device.c#48 (text+ko) ==== @@ -1777,7 +1777,8 @@ } } else if (usb_test_huawei_autoinst_p(udev, &uaa) == 0) { DPRINTFN(0, "Found Huawei auto-install disk!\n"); - err = USB_ERR_STALLED; /* fake an error */ + /* leave device unconfigured */ + usb_unconfigure(udev, USB_UNCFG_FLAG_FREE_SUBDEV); } } else { err = 0; /* set success */ @@ -2452,7 +2453,7 @@ void usbd_enum_lock(struct usb_device *udev) { - newbus_xlock(); + newbus_slock(); sx_xlock(udev->default_sx + 1); } @@ -2462,7 +2463,7 @@ usbd_enum_unlock(struct usb_device *udev) { sx_xunlock(udev->default_sx + 1); - newbus_xunlock(); + newbus_sunlock(); } /* From owner-p4-projects@FreeBSD.ORG Fri Aug 7 17:52:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BCF06106570D; Fri, 7 Aug 2009 17:52:36 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 471031065670 for ; Fri, 7 Aug 2009 17:52:36 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 361168FC0A for ; Fri, 7 Aug 2009 17:52:36 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77HqaO4066463 for ; Fri, 7 Aug 2009 17:52:36 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77HqZgv066461 for perforce@freebsd.org; Fri, 7 Aug 2009 17:52:35 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 7 Aug 2009 17:52:35 GMT Message-Id: <200908071752.n77HqZgv066461@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167093 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 17:52:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=167093 Change 167093 by hselasky@hselasky_laptop001 on 2009/08/07 17:52:11 USB CORE: - fix recent newbus deadlock with regard to USB - all parts of the USB stack except the Linux Compat Layer, shall use the shared lock version of the newbus lock! - remove redundant locking in "if_upgt.c" Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#29 edit .. //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.c#10 edit .. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#14 edit .. //depot/projects/usb/src/sys/kern/subr_bus.c#25 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#29 (text+ko) ==== @@ -265,9 +265,9 @@ USB_BUS_UNLOCK(bus); /* detach children first */ - newbus_xlock(); + newbus_slock(); bus_generic_detach(dev); - newbus_xunlock(); + newbus_sunlock(); /* * Free USB Root device, but not any sub-devices, hence they @@ -406,10 +406,10 @@ { const char *pname = device_get_nameunit(dev); - newbus_xlock(); + newbus_slock(); if (usb_devclass_ptr == NULL) usb_devclass_ptr = devclass_find("usbus"); - newbus_xunlock(); + newbus_sunlock(); /* Initialise USB process messages */ bus->explore_msg[0].hdr.pm_callback = &usb_bus_explore; ==== //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.c#10 (text+ko) ==== @@ -221,10 +221,10 @@ if (ue->ue_methods->ue_mii_upd != NULL && ue->ue_methods->ue_mii_sts != NULL) { - newbus_xlock(); + newbus_slock(); error = mii_phy_probe(ue->ue_dev, &ue->ue_miibus, ue_ifmedia_upd, ue->ue_methods->ue_mii_sts); - newbus_xunlock(); + newbus_sunlock(); if (error) { device_printf(ue->ue_dev, "MII without any PHY\n"); goto error; ==== //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#14 (text+ko) ==== @@ -465,7 +465,6 @@ switch (cmd) { case SIOCSIFFLAGS: - newbus_xlock(); if (ifp->if_flags & IFF_UP) { if (ifp->if_drv_flags & IFF_DRV_RUNNING) { if ((ifp->if_flags ^ sc->sc_if_flags) & @@ -482,7 +481,6 @@ sc->sc_if_flags = ifp->if_flags; if (startall) ieee80211_start_all(ic); - newbus_xunlock(); break; case SIOCGIFMEDIA: error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd); ==== //depot/projects/usb/src/sys/kern/subr_bus.c#25 (text+ko) ==== @@ -1109,7 +1109,7 @@ int i; int error; - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); PDEBUG(("%s from devclass %s", driver->name, DEVCLANAME(busclass))); if (!dc) @@ -1808,7 +1808,7 @@ int error; device_t grandchild; - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); PDEBUG(("%s from %s", DEVICENAME(child), DEVICENAME(dev))); /* remove children first */ @@ -1907,7 +1907,7 @@ int result, pri = 0; int hasclass = (child->devclass != NULL); - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); dc = dev->devclass; if (!dc) @@ -2558,7 +2558,7 @@ { int error; - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); if (dev->state >= DS_ALIVE && (dev->flags & DF_REBID) == 0) return (-1); @@ -2592,7 +2592,7 @@ { int error; - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); error = device_probe(dev); if (error == -1) @@ -2626,7 +2626,7 @@ { int error; - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); device_sysctl_init(dev); if (!device_is_quiet(dev)) @@ -2669,7 +2669,7 @@ { int error; - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); PDEBUG(("%s", DEVICENAME(dev))); if (dev->state == DS_BUSY) @@ -2713,7 +2713,7 @@ device_quiesce(device_t dev) { - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); PDEBUG(("%s", DEVICENAME(dev))); if (dev->state == DS_BUSY) @@ -3151,7 +3151,7 @@ { device_t child; - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); TAILQ_FOREACH(child, &dev->children, link) { device_probe_and_attach(child); @@ -3173,7 +3173,7 @@ device_t child; int error; - NBL_ASSERT(SA_XLOCKED); + NBL_ASSERT(SA_LOCKED); if (dev->state != DS_ATTACHED) return (EBUSY); From owner-p4-projects@FreeBSD.ORG Fri Aug 7 18:27:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 702361065672; Fri, 7 Aug 2009 18:27:14 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3074B106566C for ; Fri, 7 Aug 2009 18:27:14 +0000 (UTC) (envelope-from marinosi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1EBD58FC16 for ; Fri, 7 Aug 2009 18:27:14 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n77IREmP070096 for ; Fri, 7 Aug 2009 18:27:14 GMT (envelope-from marinosi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n77IRDIY070094 for perforce@freebsd.org; Fri, 7 Aug 2009 18:27:13 GMT (envelope-from marinosi@FreeBSD.org) Date: Fri, 7 Aug 2009 18:27:13 GMT Message-Id: <200908071827.n77IRDIY070094@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marinosi@FreeBSD.org using -f From: Ilias Marinos To: Perforce Change Reviews Cc: Subject: PERFORCE change 167094 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 18:27:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=167094 Change 167094 by marinosi@marinosi_redrum on 2009/08/07 18:26:35 Fix several bugs -- restructure several things as pointed by rwatson. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#13 edit .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.h#11 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit.c#13 (text) ==== @@ -54,6 +54,7 @@ #include #include #include +#include #include #include #include @@ -113,6 +114,18 @@ struct audit_slice_queue audit_slice_q; /* + * Serialize the creation of audit slices using this lock to ensure it. + */ +static struct sx audit_slices_lock; + +#define AUDIT_SLICES_LOCK_INIT() sx_init(&audit_slices_lock, \ + "audit_slices_lock"); +#define AUDIT_SLICES_LOCK_ASSERT() sx_assert(&audit_slices_lock, \ + SA_XLOCKED) +#define AUDIT_SLICES_LOCK() sx_xlock(&audit_slices_lock) +#define AUDIT_SLICES_UNLOCK() sx_xunlock(&audit_slices_lock) + +/* * Kernel audit information. This will store the current audit address * or host information that the kernel will use when it's generating * audit records. This data is modified by the A_GET{SET}KAUDIT auditon(2) @@ -226,11 +239,21 @@ * base(no reason to be in the queue). We want the queue initialized * once, even if there are no other slices except the base one and * thus this is happening in audit_init(). - * + */ + TAILQ_INIT(&audit_slice_q); + + /* + * Initialize the lock that will be used to ensure the audit slice + * serial creation. + */ + AUDIT_SLICES_LOCK_INIT(); + + KINFO_LOCK_INIT(); + + /* * XXXRW: Why might audit_init() ever be called with a non-NULL base * slice? */ - TAILQ_INIT(&audit_slice_q); if ( audit_base_slice == NULL ) { /* * If base slice is null, allocate the base slice. @@ -665,21 +688,21 @@ audit_slice_create(char *name) { struct audit_slice *as = NULL; - int err; /* * XXXRW: With M_WAITOK, malloc(9) never fails, so no error handling * needed here. + * FIXED. * * XXXRW: It might be desirable to wrap all of this in an sx lock * to serialize the creation of audit slices, probably the same lock * used to serialize access to audit_slice_q. That would prevent * attempts to remove a slice while it was still being added, etc. + * IMPLEMENTED. */ - err = 0; + AUDIT_SLICES_LOCK(); + AUDIT_SLICES_LOCK_ASSERT(); as = malloc(sizeof(*as), M_AUDITSLICE, M_WAITOK | M_ZERO); - if ( as == NULL ) - err = 1; /* Failed to allocate slice */ /* * XXXRW: Locking needed here. Possibly we should fully initialize @@ -693,13 +716,17 @@ /* * XXXRW: Possibly start worker before creating the device? + * FIXED. */ + /* Start audit worker thread. */ + audit_worker_init(as); + /* Create the special device node */ audit_slice_cdev_init(as); - /* Start audit worker thread. */ - audit_worker_init(as); + AUDIT_SLICES_UNLOCK(); + } /* @@ -748,10 +775,9 @@ /* * XXXRW: KINFO_LOCK_INIT() should be in audit_init() rather than * here conditionally? + * FIXED. */ mtx_init(&(as->audit_mtx), "audit_mtx", NULL, MTX_DEF); - if ( as == audit_base_slice ) - KINFO_LOCK_INIT(); cv_init(&(as->audit_worker_cv), "audit_worker_cv"); cv_init(&(as->audit_watermark_cv), "audit_watermark_cv"); @@ -766,15 +792,20 @@ * * XXXRW: likewise, should acquire an sx lock around all of this to avoid * simultaneous add/remove being a problem. + * FIXED. * * XXXR: Does the caller validate that as != audit_base_slice? Perhaps * audit_slice_destroy() should do the name->slice lookup and potentially * return an error here. + * PENDING. Maybe A_REMOVESLICE should iterate in slice queue (doing the + * name->slice lookup) and call this function.This guarantees that 'as' will + * never be the base slice as it is not a slice queue element. */ -void +int audit_slice_destroy(struct audit_slice *as) { + AUDIT_SLICES_LOCK(); /* * XXXRW: Should either assert the record queue is empty, or drain * it, depending on invariants. @@ -783,33 +814,56 @@ * variables? */ if (as != NULL) { + AUDIT_SLICES_LOCK_ASSERT(); TAILQ_REMOVE(&audit_slice_q, as, as_q); destroy_dev(as->as_dev); free(as, M_AUDITSLICE); } + AUDIT_SLICES_UNLOCK(); + return (0); /* Success */ } /* * audit_slice_commit_rec() is used to commit a BSM record that was fetched - * from a special device node, to the appropriate slice-owner. + * from a special device node, to the appropriate slice-owner. This function + * is not used for the base audit slice. + * Return '0' if record was committed successfully or else return the error + * code. */ -void +int audit_slice_commit_rec(void *rec, struct audit_slice *as) { struct kaudit_record *ar = NULL; - struct thread *td = NULL; /* CHECK THIS */ int error; + struct thread *td = NULL; /* + * XXXRW: This error value seems never to be used? Possibly we + * should validate the record before calling audit_new, and return + * the error to the caller so it can return to userspace? + * + * FIXED. + * Note: This function is called from the write method of the slice's + * special device node.We should find a way to return the error to + * userspace. + */ + /* Verify the record. */ + if (bsm_rec_verify(rec) == 0) { + error = EINVAL; + return (error); + } + + /* * XXXRW: Audit slices other than the base should probably never * touch td->td_ar, so the below should unconditionally allocate the * container record. + * FIXED. * * XXXRW: Asser that this isn't audit_base_slice, since we'll handle * that improperly? + * Base slice should never call audit_slice_commit_rec. */ - /* struct thread uninitialized! */ if (ar == NULL) { /* @@ -824,25 +878,12 @@ * base slice may already be using it to record the write * syscall. */ - td->td_ar = audit_new(AUE_NULL, td, as); - if (td->td_ar == NULL) - //return (ENOTSUP); - return; - td->td_pflags |= TDP_AUDITREC; - ar = td->td_ar; + ar = audit_new(AUE_NULL, td, as); + if (ar == NULL) + return (1); } /* - * XXXRW: This error value seems never to be used? Possibly we - * should validate the record before calling audit_new, and return - * the error to the caller so it can return to userspace? - */ - /* Verify the record. */ - if (bsm_rec_verify(rec) == 0) - error = EINVAL; - - - /* * Note: it could be that some records initiated while audit was * enabled should still be committed? */ @@ -852,7 +893,7 @@ as->audit_pre_q_len--; mtx_unlock(&(as->audit_mtx)); audit_free(ar); - return; + return (1); } /* @@ -869,4 +910,5 @@ as->audit_pre_q_len--; cv_signal(&(as->audit_worker_cv)); mtx_unlock(&(as->audit_mtx)); + return (0); } ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_slice.h#11 (text+ko) ==== @@ -191,8 +191,8 @@ void audit_worker_init(void *arg); void audit_slice_init(struct audit_slice *as, char *name); void audit_slice_create(char *name); -void audit_slice_destroy(struct audit_slice *as); +int audit_slice_destroy(struct audit_slice *as); void audit_slice_cdev_init(struct audit_slice *as); -void audit_slice_commit_rec(void *rec, struct audit_slice *as); +int audit_slice_commit_rec(void *rec, struct audit_slice *as); #endif /* ! _SECURITY_AUDIT_SLICE_H_ */ From owner-p4-projects@FreeBSD.ORG Sat Aug 8 05:05:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD929106566C; Sat, 8 Aug 2009 05:05:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6AF6B1065674 for ; Sat, 8 Aug 2009 05:05:51 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5AF018FC1F for ; Sat, 8 Aug 2009 05:05:51 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7855pA4057992 for ; Sat, 8 Aug 2009 05:05:51 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7855pQ5057988 for perforce@freebsd.org; Sat, 8 Aug 2009 05:05:51 GMT (envelope-from mav@freebsd.org) Date: Sat, 8 Aug 2009 05:05:51 GMT Message-Id: <200908080505.n7855pQ5057988@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167096 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 05:05:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=167096 Change 167096 by mav@mav_mavbook on 2009/08/08 05:05:15 Fix iSCSI initiator. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#25 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#95 edit .. //depot/projects/scottl-camlock/src/sys/dev/iscsi/initiator/isc_cam.c#3 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#25 (text+ko) ==== @@ -230,6 +230,7 @@ XPORT_ATA, /* AT Attachment */ XPORT_SAS, /* Serial Attached SCSI */ XPORT_SATA, /* Serial AT Attachment */ + XPORT_ISCSI, /* iSCSI */ } cam_xport; #define PROTO_VERSION_UNKNOWN (UINT_MAX - 1) ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#95 (text+ko) ==== @@ -3799,6 +3799,7 @@ case XPORT_SAS: case XPORT_FC: case XPORT_USB: + case XPORT_ISCSI: new_bus->xport = scsi_get_xport(); break; case XPORT_ATA: ==== //depot/projects/scottl-camlock/src/sys/dev/iscsi/initiator/isc_cam.c#3 (text+ko) ==== @@ -190,6 +190,8 @@ strncpy(cpi->hba_vid, "iSCSI", HBA_IDLEN); strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN); cpi->unit_number = cam_sim_unit(sim); + cpi->transport = XPORT_ISCSI; + cpi->transport_version = 0; cpi->ccb_h.status = CAM_REQ_CMP; } From owner-p4-projects@FreeBSD.ORG Sat Aug 8 09:03:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BC0F01065672; Sat, 8 Aug 2009 09:03:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 608D1106564A for ; Sat, 8 Aug 2009 09:03:10 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4ED3B8FC08 for ; Sat, 8 Aug 2009 09:03:10 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7893AUD089618 for ; Sat, 8 Aug 2009 09:03:10 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7893AYr089616 for perforce@freebsd.org; Sat, 8 Aug 2009 09:03:10 GMT (envelope-from trasz@freebsd.org) Date: Sat, 8 Aug 2009 09:03:10 GMT Message-Id: <200908080903.n7893AYr089616@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167098 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 09:03:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=167098 Change 167098 by trasz@trasz_anger on 2009/08/08 09:02:56 Catch up with groups changes _somewhat_. This is ugly and should be done in some other way - however, I hadn't yet figured out how. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#9 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#19 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/ucred.h#8 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#9 (text+ko) ==== @@ -452,7 +452,8 @@ /* Create credentials. */ p->p_ucred = crget(); p->p_ucred->cr_ngroups = 1; /* group 0 */ - p->p_ucred->cr_gidinfos[0] = gifind(0); + if (p->p_ucred->cr_gidinfos != NULL) + p->p_ucred->cr_gidinfos[0] = gifind(0); p->p_ucred->cr_uidinfo = uifind(0); p->p_ucred->cr_ruidinfo = uifind(0); p->p_ucred->cr_prison = &prison0; ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#19 (text+ko) ==== @@ -824,10 +824,8 @@ { struct proc *p = td->td_proc; struct ucred *newcred, *oldcred; -#if 0 - struct gidinfo *gidinfos[NGROUPS], *oldgidinfos[NGROUPS]; + struct gidinfo **gidinfos, **oldgidinfos; int i, oldngroups = 0; -#endif int error; if (ngrp > NGROUPS) @@ -835,10 +833,12 @@ AUDIT_ARG_GROUPSET(groups, ngrp); newcred = crget(); crextend(newcred, ngrp); -#if 0 - for (i = 0; i < ngrp; i++) - gidinfos[i] = gifind(groups[i]); -#endif + if (hrl_group_accounting) { + gidinfos = malloc(ngrp * sizeof(struct gidinfo *), M_CRED, + M_WAITOK | M_ZERO); + for (i = 0; i < ngrp; i++) + gidinfos[i] = gifind(groups[i]); + } PROC_LOCK(p); oldcred = crcopysafe(p, newcred); @@ -859,52 +859,53 @@ * have the egid in the groups[0]). We risk security holes * when running non-BSD software if we do not do the same. */ -#if 0 - oldngroups = newcred->cr_ngroups - 1; - for (i = 0; i < oldngroups; i++) - oldgidinfos[i] = newcred->cr_gidinfos[i + 1]; -#endif + if (hrl_group_accounting) { + oldngroups = newcred->cr_ngroups - 1; + for (i = 0; i < oldngroups; i++) + oldgidinfos[i] = newcred->cr_gidinfos[i + 1]; + } newcred->cr_ngroups = 1; } else { crsetgroups_locked(newcred, ngrp, groups); -#if 0 - oldngroups = newcred->cr_ngroups; - for (i = 0; i < oldngroups; i++) - oldgidinfos[i] = newcred->cr_gidinfos[i]; - bcopy(groups, newcred->cr_groups, ngrp * sizeof(gid_t)); - newcred->cr_ngroups = ngrp; - for (i = 0; i < newcred->cr_ngroups; i++) - newcred->cr_gidinfos[i] = gidinfos[i]; -#endif + if (hrl_group_accounting) { + oldngroups = newcred->cr_ngroups; + for (i = 0; i < oldngroups; i++) + oldgidinfos[i] = newcred->cr_gidinfos[i]; + newcred->cr_ngroups = ngrp; + for (i = 0; i < newcred->cr_ngroups; i++) + newcred->cr_gidinfos[i] = gidinfos[i]; + } } setsugid(p); change_cred(p, newcred); PROC_UNLOCK(p); -#if 0 - for (i = 0; i < oldngroups; i++) - gifree(oldgidinfos[i]); -#endif + if (hrl_group_accounting) { + for (i = 0; i < oldngroups; i++) + gifree(oldgidinfos[i]); + } /* Don't free gidinfos[]. */ crfree(oldcred); -#if 0 - for (i = 0; i < newcred->cr_ngroups; i++) - KASSERT(newcred->cr_gidinfos[i]->gi_gid == newcred->cr_groups[i], ("Whoops.")); -#endif + if (hrl_group_accounting) { + for (i = 0; i < newcred->cr_ngroups; i++) + KASSERT(newcred->cr_gidinfos[i]->gi_gid == newcred->cr_groups[i], ("Whoops.")); + } return (0); fail: PROC_UNLOCK(p); -#if 0 - for (i = 0; i < oldngroups; i++) - gifree(oldgidinfos[i]); - for (i = 0; i < ngrp; i++) - gifree(gidinfos[i]); -#endif + if (hrl_group_accounting) { + for (i = 0; i < oldngroups; i++) + gifree(oldgidinfos[i]); + free(oldgidinfos, M_CRED); + for (i = 0; i < ngrp; i++) + gifree(gidinfos[i]); + free(gidinfos, M_CRED); + } crfree(newcred); -#if 0 - for (i = 0; i < newcred->cr_ngroups; i++) - KASSERT(newcred->cr_gidinfos[i]->gi_gid == newcred->cr_groups[i], ("Whoops.")); -#endif + if (hrl_group_accounting) { + for (i = 0; i < newcred->cr_ngroups; i++) + KASSERT(newcred->cr_gidinfos[i]->gi_gid == newcred->cr_groups[i], ("Whoops.")); + } return (error); } @@ -2049,10 +2050,16 @@ cnt = roundup2(n, PAGE_SIZE / sizeof(gid_t)); /* Free the old array. */ - if (cr->cr_groups) + if (cr->cr_groups) { free(cr->cr_groups, M_CRED); + if (hrl_group_accounting) + free(cr->cr_gidinfos, M_CRED); + } cr->cr_groups = malloc(cnt * sizeof(gid_t), M_CRED, M_WAITOK | M_ZERO); + if (hrl_group_accounting) + cr->cr_gidinfos = malloc(cnt * sizeof(struct gidinfo *), M_CRED, + M_WAITOK | M_ZERO); cr->cr_agroups = cnt; } ==== //depot/projects/soc2009/trasz_limits/sys/sys/ucred.h#8 (text+ko) ==== @@ -49,8 +49,6 @@ uid_t cr_ruid; /* real user id */ uid_t cr_svuid; /* saved user id */ int cr_ngroups; /* number of groups */ - /* XXX: Broken after Brooks' changes. */ - struct gidinfo *cr_gidinfos[NGROUPS]; /* group resource consumption */ gid_t cr_rgid; /* real group id */ gid_t cr_svgid; /* saved group id */ struct uidinfo *cr_uidinfo; /* per euid resource consumption */ @@ -63,6 +61,7 @@ struct label *cr_label; /* MAC label */ struct auditinfo_addr cr_audit; /* Audit properties. */ gid_t *cr_groups; /* groups */ + struct gidinfo **cr_gidinfos; /* per group resource consumption */ int cr_agroups; /* Available groups */ }; #define NOCRED ((struct ucred *)0) /* no credential available */ From owner-p4-projects@FreeBSD.ORG Sat Aug 8 09:30:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E62381065674; Sat, 8 Aug 2009 09:30:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8BBFC1065670 for ; Sat, 8 Aug 2009 09:30:40 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7A1CA8FC0A for ; Sat, 8 Aug 2009 09:30:40 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n789UeGk091673 for ; Sat, 8 Aug 2009 09:30:40 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n789UeI5091671 for perforce@freebsd.org; Sat, 8 Aug 2009 09:30:40 GMT (envelope-from trasz@freebsd.org) Date: Sat, 8 Aug 2009 09:30:40 GMT Message-Id: <200908080930.n789UeI5091671@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167099 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 09:30:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=167099 Change 167099 by trasz@trasz_anger on 2009/08/08 09:30:39 Style fixes. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#48 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#30 edit .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#23 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#48 (text+ko) ==== @@ -55,6 +55,9 @@ #define HRF_DONT_INHERIT 1 #define HRF_DONT_ACCUMULATE 2 +/* Default buffer size for hrl_get_rules(2). */ +#define HRL_DEFAULT_BUFSIZE 4096 + int hrl_group_accounting = 0; TUNABLE_INT("kern.hrl_group_accounting", &hrl_group_accounting); @@ -588,7 +591,7 @@ return (0); } - if (filter->hr_amount >= 0) { + if (filter->hr_amount != HRL_AMOUNT_UNDEFINED) { if (rule->hr_amount != filter->hr_amount) return (0); } @@ -725,7 +728,7 @@ rule->hr_per = HRL_SUBJECT_UNDEFINED; rule->hr_resource = HRL_RESOURCE_UNDEFINED; rule->hr_action = HRL_ACTION_UNDEFINED; - rule->hr_amount = -1; + rule->hr_amount = HRL_AMOUNT_UNDEFINED; refcount_init(&rule->hr_refcount, 1); return (rule); @@ -786,7 +789,7 @@ return (0); if (rule->hr_action == HRL_ACTION_UNDEFINED) return (0); - if (rule->hr_amount < 0) + if (rule->hr_amount == HRL_AMOUNT_UNDEFINED) return (0); if (rule->hr_per == HRL_SUBJECT_UNDEFINED) return (0); @@ -859,7 +862,7 @@ } if (amountstr == NULL || amountstr[0] == '\0') - rule->hr_amount = -1; + rule->hr_amount = HRL_AMOUNT_UNDEFINED; else { error = str2int64(amountstr, &rule->hr_amount); if (error) @@ -1285,7 +1288,7 @@ hrl_get_rules(struct thread *td, struct hrl_get_rules_args *uap) { int error; - size_t bufsize = HRL_MAX_RULES; + size_t bufsize = HRL_DEFAULT_BUFSIZE; char *inputstr, *buf; struct sbuf *sb; struct hrl_rule *filter; @@ -1354,7 +1357,7 @@ hrl_get_limits(struct thread *td, struct hrl_get_limits_args *uap) { int error; - size_t bufsize = HRL_MAX_RULES; + size_t bufsize = HRL_DEFAULT_BUFSIZE; char *inputstr, *buf; struct sbuf *sb; struct hrl_rule *filter; ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#30 (text+ko) ==== @@ -48,6 +48,10 @@ * * 'hr_refcount' is equal to the number of hrl_limit structures * pointing to the rule. + * + * This structure must never change after being added, via hrl_limit + * structures, to subjects. In order to change a limit, add a new + * rule and remove the previous one. */ struct hrl_rule { int hr_subject; @@ -101,7 +105,7 @@ #define HRL_ACTION_SIGXFSZ 0x0009 #define HRL_ACTION_MAX HRL_ACTION_SIGXFSZ -#define HRL_MAX_RULES 1024 +#define HRL_AMOUNT_UNDEFINED -1 /* * 'hrl_usage' defines resource consumption for a particular @@ -138,8 +142,8 @@ void hrl_usage_subtract(struct hrl_usage *dest, const struct hrl_usage *src); void hrl_proc_exiting(struct proc *p); -void hrl_proc_loginclass_changed(struct proc *p); -void hrl_proc_ucred_changed(struct proc *p); +void hrl_proc_loginclass_changed(struct proc *p); +void hrl_proc_ucred_changed(struct proc *p); struct hrl_rule *hrl_rule_alloc(int flags); struct hrl_rule *hrl_rule_duplicate(const struct hrl_rule *rule, int flags); @@ -149,6 +153,9 @@ int hrl_rule_remove(const struct hrl_rule *filter); #else /* !_KERNEL */ +/* + * Syscall interface. + */ __BEGIN_DECLS int hrl_get_usage(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); int hrl_get_rules(const char *inbufp, size_t inbuflen, char *outbufp, size_t outbuflen); ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.c#23 (text+ko) ==== @@ -38,7 +38,7 @@ #include #include -#define BUFLEN_DEFAULT 1024 +#define HRL_DEFAULT_BUFSIZE 4096 static id_t parse_user(const char *s) @@ -183,7 +183,7 @@ { int error; char *outbuf = NULL; - size_t outbuflen = BUFLEN_DEFAULT / 4; + size_t outbuflen = HRL_DEFAULT_BUFSIZE / 4; do { outbuflen *= 4; @@ -220,7 +220,7 @@ { int error; char *outbuf = NULL, *tmp; - size_t outbuflen = BUFLEN_DEFAULT / 4; + size_t outbuflen = HRL_DEFAULT_BUFSIZE / 4; do { outbuflen *= 4; @@ -250,7 +250,7 @@ { int error; char *outbuf = NULL; - size_t filterlen, outbuflen = BUFLEN_DEFAULT / 4; + size_t filterlen, outbuflen = HRL_DEFAULT_BUFSIZE / 4; if (filter != NULL) filterlen = strlen(filter) + 1; From owner-p4-projects@FreeBSD.ORG Sat Aug 8 11:01:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E1681065679; Sat, 8 Aug 2009 11:01:20 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BEE731065672 for ; Sat, 8 Aug 2009 11:01:19 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A293A8FC19 for ; Sat, 8 Aug 2009 11:01:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78B1JSK099132 for ; Sat, 8 Aug 2009 11:01:19 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78B1JrT099130 for perforce@freebsd.org; Sat, 8 Aug 2009 11:01:19 GMT (envelope-from mav@freebsd.org) Date: Sat, 8 Aug 2009 11:01:19 GMT Message-Id: <200908081101.n78B1JrT099130@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167100 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 11:01:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167100 Change 167100 by mav@mav_mavbook on 2009/08/08 11:00:24 Tune identify output. Affected files ... .. //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#14 edit Differences ... ==== //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#14 (text+ko) ==== @@ -1016,16 +1016,17 @@ printf("\n"); printf("Protocol "); + printf("ATA/ATAPI-%d", ata_version(parm->version_major)); if (parm->satacapabilities && parm->satacapabilities != 0xffff) { if (parm->satacapabilities & ATA_SATA_GEN2) - printf("SATA revision 2.x\n"); + printf(" SATA 2.x\n"); else if (parm->satacapabilities & ATA_SATA_GEN1) - printf("SATA revision 1.x\n"); + printf(" SATA 1.x\n"); else - printf("Unknown SATA revision\n"); + printf(" SATA x.x\n"); } else - printf("ATA/ATAPI revision %d\n", ata_version(parm->version_major)); + printf("\n"); printf("device model %.40s\n", parm->model); printf("serial number %.20s\n", parm->serial); printf("firmware revision %.8s\n", parm->revision); @@ -1038,22 +1039,54 @@ (parm->support.command2 & ATA_SUPPORT_CFA)) printf("CFA supported\n"); - printf("lba%ssupported ", + printf("LBA%ssupported ", parm->capabilities1 & ATA_SUPPORT_LBA ? " " : " not "); if (lbasize) printf("%d sectors\n", lbasize); else printf("\n"); - printf("lba48%ssupported ", + printf("LBA48%ssupported ", parm->support.command2 & ATA_SUPPORT_ADDRESS48 ? " " : " not "); if (lbasize48) printf("%ju sectors\n", (uintmax_t)lbasize48); else printf("\n"); - printf("dma%ssupported\n", + printf("DMA%ssupported ", parm->capabilities1 & ATA_SUPPORT_DMA ? " " : " not "); + if (parm->capabilities1 & ATA_SUPPORT_DMA) { + if (parm->mwdmamodes & 0xff) { + printf("WDMA"); + if (parm->mwdmamodes & 0x04) + printf("2"); + else if (parm->mwdmamodes & 0x02) + printf("1"); + else if (parm->mwdmamodes & 0x01) + printf("0"); + printf(" "); + } + if ((parm->atavalid & ATA_FLAG_88) && + (parm->udmamodes & 0xff)) { + printf("UDMA"); + if (parm->udmamodes & 0x40) + printf("6"); + else if (parm->udmamodes & 0x20) + printf("5"); + else if (parm->udmamodes & 0x10) + printf("4"); + else if (parm->udmamodes & 0x08) + printf("3"); + else if (parm->udmamodes & 0x04) + printf("2"); + else if (parm->udmamodes & 0x02) + printf("1"); + else if (parm->udmamodes & 0x01) + printf("0"); + printf(" "); + } + } + printf("\n"); printf("overlap%ssupported\n", parm->capabilities1 & ATA_SUPPORT_OVERLAP ? " " : " not "); @@ -1070,10 +1103,10 @@ parm->enabled.command1 & ATA_SUPPORT_LOOKAHEAD ? "yes" : "no"); if (parm->satacapabilities && parm->satacapabilities != 0xffff) { - printf("Native Command Queuing (NCQ) %s %s" + printf("Native Command Queuing (NCQ) %s " " %d/0x%02X\n", parm->satacapabilities & ATA_SUPPORT_NCQ ? - "yes" : "no", " -", + "yes" : "no", (parm->satacapabilities & ATA_SUPPORT_NCQ) ? ATA_QUEUE_LEN(parm->queue) : 0, (parm->satacapabilities & ATA_SUPPORT_NCQ) ? From owner-p4-projects@FreeBSD.ORG Sat Aug 8 12:24:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F32321065673; Sat, 8 Aug 2009 12:24:50 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3711106566B for ; Sat, 8 Aug 2009 12:24:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A1EC68FC27 for ; Sat, 8 Aug 2009 12:24:50 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78COob2007251 for ; Sat, 8 Aug 2009 12:24:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78COoTi007249 for perforce@freebsd.org; Sat, 8 Aug 2009 12:24:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 8 Aug 2009 12:24:50 GMT Message-Id: <200908081224.n78COoTi007249@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167101 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 12:24:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=167101 Change 167101 by rwatson@rwatson_freebsd_capabilities on 2009/08/08 12:23:56 Improve commenting. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzsandbox.c#7 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzsandbox.c#7 (text+ko) ==== @@ -49,6 +49,10 @@ #include "gzip.h" +/* + * In the future, these library dependencies won't need to be explicit, so + * this will go away. + */ #define LC_LIB_LIBZ_SO "/lib/libz.so.4" #define LC_LIBZ_SO "libz.so.4" @@ -344,6 +348,9 @@ return (unbzip2(in, out, pre, prelen, bytes_in)); } +/* + * Main entry point for capability-mode + */ int cap_main(__unused int argc, __unused char *argv[]) { From owner-p4-projects@FreeBSD.ORG Sat Aug 8 13:14:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 84BFA1065670; Sat, 8 Aug 2009 13:14:45 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44CA3106566C for ; Sat, 8 Aug 2009 13:14:45 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 340648FC1F for ; Sat, 8 Aug 2009 13:14:45 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78DEjPP021952 for ; Sat, 8 Aug 2009 13:14:45 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78DEjnt021950 for perforce@freebsd.org; Sat, 8 Aug 2009 13:14:45 GMT (envelope-from mav@freebsd.org) Date: Sat, 8 Aug 2009 13:14:45 GMT Message-Id: <200908081314.n78DEjnt021950@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167102 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 13:14:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=167102 Change 167102 by mav@mav_mavbook on 2009/08/08 13:13:58 Add PIO mode support for DMA incapable devices. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#23 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#23 (text+ko) ==== @@ -63,7 +63,8 @@ #define ATA_MAX_28BIT_LBA 268435455UL typedef enum { - ADA_STATE_NORMAL + ADA_STATE_NORMAL, + ADA_STATE_SET_MULTI } ada_state; typedef enum { @@ -71,6 +72,7 @@ ADA_FLAG_CAN_48BIT = 0x002, ADA_FLAG_CAN_FLUSHCACHE = 0x004, ADA_FLAG_CAN_NCQ = 0x008, + ADA_FLAG_CAN_DMA = 0x010, ADA_FLAG_NEED_OTAG = 0x020, ADA_FLAG_WENT_IDLE = 0x040, ADA_FLAG_RETRY_UA = 0x080, @@ -83,8 +85,7 @@ } ada_quirks; typedef enum { - ADA_CCB_PROBE = 0x01, - ADA_CCB_PROBE2 = 0x02, + ADA_CCB_SET_MULTI = 0x01, ADA_CCB_BUFFER_IO = 0x03, ADA_CCB_WAITING = 0x04, ADA_CCB_DUMP = 0x05, @@ -113,6 +114,7 @@ ada_quirks quirks; int ordered_tag_count; int outstanding_cmds; + int secsperint; struct disk_params params; struct disk *disk; union ccb saved_ccb; @@ -565,6 +567,12 @@ softc = (struct ada_softc *)periph->softc; /* + * Restore device configuration. + */ + softc->state = ADA_STATE_SET_MULTI; + (void)cam_periph_hold(periph, PRIBIO); + xpt_schedule(periph, CAM_PRIORITY_DEV); + /* * Don't fail on the expected unit attention * that will occur. */ @@ -640,9 +648,10 @@ } LIST_INIT(&softc->pending_ccbs); - softc->state = ADA_STATE_NORMAL; bioq_init(&softc->bio_queue); + if (cgd->ident_data.capabilities1 & ATA_SUPPORT_DMA) + softc->flags |= ADA_FLAG_CAN_DMA; if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48) softc->flags |= ADA_FLAG_CAN_48BIT; if (cgd->ident_data.support.command2 & ATA_SUPPORT_FLUSHCACHE) @@ -650,6 +659,8 @@ if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ && cgd->ident_data.queue >= 31) softc->flags |= ADA_FLAG_CAN_NCQ; + softc->secsperint = max(1, min(cgd->ident_data.sectors_intr, 16)); + softc->state = ADA_STATE_SET_MULTI; periph->softc = softc; @@ -695,9 +706,9 @@ else if (maxio > MAXPHYS) maxio = MAXPHYS; /* for safety */ if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48) - maxio = min(maxio, 65535 * 512); + maxio = min(maxio, 65536 * 512); else /* 28bit ATA command limit */ - maxio = min(maxio, 255 * 512); + maxio = min(maxio, 256 * 512); softc->disk->d_maxsize = maxio; softc->disk->d_unit = periph->unit_number; softc->disk->d_flags = 0; @@ -744,8 +755,8 @@ * to finish the probe. The reference will be dropped in adadone at * the end of probe. */ -// (void)cam_periph_hold(periph, PRIBIO); -// xpt_schedule(periph, CAM_PRIORITY_DEV); + (void)cam_periph_hold(periph, PRIBIO); + xpt_schedule(periph, CAM_PRIORITY_DEV); /* * Schedule a periodic event to occasionally send an @@ -762,9 +773,8 @@ static void adastart(struct cam_periph *periph, union ccb *start_ccb) { - struct ada_softc *softc; - - softc = (struct ada_softc *)periph->softc; + struct ada_softc *softc = (struct ada_softc *)periph->softc; + struct ccb_ataio *ataio = &start_ccb->ataio; switch (softc->state) { case ADA_STATE_NORMAL: @@ -787,7 +797,6 @@ } else if (bp == NULL) { xpt_release_ccb(start_ccb); } else { - struct ccb_ataio *ataio = &start_ccb->ataio; u_int8_t tag_code; bioq_remove(&softc->bio_queue, bp); @@ -826,21 +835,43 @@ } } else if ((softc->flags & ADA_FLAG_CAN_48BIT) && (lba + count >= ATA_MAX_28BIT_LBA || - count >= 256)) { - if (bp->bio_cmd == BIO_READ) { - ata_48bit_cmd(ataio, ATA_READ_DMA48, - 0, lba, count); + count > 256)) { + if (softc->flags & ADA_FLAG_CAN_DMA) { + if (bp->bio_cmd == BIO_READ) { + ata_48bit_cmd(ataio, ATA_READ_DMA48, + 0, lba, count); + } else { + ata_48bit_cmd(ataio, ATA_WRITE_DMA48, + 0, lba, count); + } } else { - ata_48bit_cmd(ataio, ATA_WRITE_DMA48, - 0, lba, count); + if (bp->bio_cmd == BIO_READ) { + ata_48bit_cmd(ataio, ATA_READ_MUL48, + 0, lba, count); + } else { + ata_48bit_cmd(ataio, ATA_WRITE_MUL48, + 0, lba, count); + } } } else { - if (bp->bio_cmd == BIO_READ) { - ata_36bit_cmd(ataio, ATA_READ_DMA, - 0, lba, count); + if (count == 256) + count = 0; + if (softc->flags & ADA_FLAG_CAN_DMA) { + if (bp->bio_cmd == BIO_READ) { + ata_36bit_cmd(ataio, ATA_READ_DMA, + 0, lba, count); + } else { + ata_36bit_cmd(ataio, ATA_WRITE_DMA, + 0, lba, count); + } } else { - ata_36bit_cmd(ataio, ATA_WRITE_DMA, - 0, lba, count); + if (bp->bio_cmd == BIO_READ) { + ata_36bit_cmd(ataio, ATA_READ_MUL, + 0, lba, count); + } else { + ata_36bit_cmd(ataio, ATA_WRITE_MUL, + 0, lba, count); + } } } } @@ -858,7 +889,7 @@ if (softc->flags & ADA_FLAG_CAN_48BIT) ata_48bit_cmd(ataio, ATA_FLUSHCACHE48, 0, 0, 0); else - ata_48bit_cmd(ataio, ATA_FLUSHCACHE, 0, 0, 0); + ata_36bit_cmd(ataio, ATA_FLUSHCACHE, 0, 0, 0); break; } start_ccb->ccb_h.ccb_state = ADA_CCB_BUFFER_IO; @@ -889,6 +920,21 @@ } break; } + case ADA_STATE_SET_MULTI: + { + cam_fill_ataio(ataio, + ada_retry_count, + adadone, + CAM_DIR_NONE, + 0, + NULL, + 0, + ada_default_timeout*1000); + + ata_36bit_cmd(ataio, ATA_SET_MULTI, 0, 0, softc->secsperint); + start_ccb->ccb_h.ccb_state = ADA_CCB_SET_MULTI; + xpt_action(start_ccb); + } } } @@ -909,7 +955,7 @@ if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { int error; - error = adaerror(done_ccb, CAM_RETRY_SELTO, 0); + error = adaerror(done_ccb, 0, 0); if (error == ERESTART) { /* * A retry was scheuled, so @@ -980,6 +1026,34 @@ wakeup(&done_ccb->ccb_h.cbfcnp); return; } + case ADA_CCB_SET_MULTI: + { + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + } else { + int error; + + error = adaerror(done_ccb, 0, 0); + if (error == ERESTART) { + /* + * A retry was scheuled, so + * just return. + */ + return; + } + } + softc->state = ADA_STATE_NORMAL; + /* + * Since our peripheral may be invalidated by an error + * above or an external event, we must release our CCB + * before releasing the probe lock on the peripheral. + * The peripheral will only go away once the last lock + * is removed, and we need it around for the CCB release + * operation. + */ + xpt_release_ccb(done_ccb); + cam_periph_unhold(periph); + return; + } case ADA_CCB_DUMP: /* No-op. We're polling */ return; From owner-p4-projects@FreeBSD.ORG Sat Aug 8 14:16:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 13CDF1065674; Sat, 8 Aug 2009 14:16:53 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5517A1065680 for ; Sat, 8 Aug 2009 14:16:53 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 445828FC24 for ; Sat, 8 Aug 2009 14:16:53 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78EGrnJ027825 for ; Sat, 8 Aug 2009 14:16:53 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78EGqL6027823 for perforce@freebsd.org; Sat, 8 Aug 2009 14:16:52 GMT (envelope-from mav@freebsd.org) Date: Sat, 8 Aug 2009 14:16:52 GMT Message-Id: <200908081416.n78EGqL6027823@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167103 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 14:16:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=167103 Change 167103 by mav@mav_mavbook on 2009/08/08 14:16:31 Make identify command work for ATAPI devices. Affected files ... .. //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#15 edit Differences ... ==== //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#15 (text+ko) ==== @@ -206,6 +206,7 @@ struct ccb_trans_settings *cts); static void cpi_print(struct ccb_pathinq *cpi); static int get_cpi(struct cam_device *device, struct ccb_pathinq *cpi); +static int get_cgd(struct cam_device *device, struct ccb_getdev *cgd); static int get_print_cts(struct cam_device *device, int user_settings, int quiet, struct ccb_trans_settings *cts); static int ratecontrol(struct cam_device *device, int retry_count, @@ -1015,7 +1016,7 @@ ((u_int64_t)parm->lba_size48_4 << 48); printf("\n"); - printf("Protocol "); + printf("protocol "); printf("ATA/ATAPI-%d", ata_version(parm->version_major)); if (parm->satacapabilities && parm->satacapabilities != 0xffff) { if (parm->satacapabilities & ATA_SATA_GEN2) @@ -1154,9 +1155,14 @@ { union ccb *ccb; struct ata_params *ident_buf; + struct ccb_getdev cgd; u_int i, error = 0; int16_t *ptr; - + + if (get_cgd(device, &cgd) != 0) { + warnx("couldn't get CGD"); + return(1); + } ccb = cam_getccb(device); if (ccb == NULL) { @@ -1185,10 +1191,10 @@ /*data_ptr*/(u_int8_t *)ptr, /*dxfer_len*/sizeof(struct ata_params), timeout ? timeout : 30 * 1000); -// if (periph->path->device->protocol == PROTO_ATA) + if (cgd.protocol == PROTO_ATA) ata_36bit_cmd(&ccb->ataio, ATA_ATA_IDENTIFY, 0, 0, 0); -// else -// ata_36bit_cmd(&ccb->ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0); + else + ata_36bit_cmd(&ccb->ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0); /* Disable freezing the device queue */ ccb->ccb_h.flags |= CAM_DEV_QFRZDIS; @@ -2621,46 +2627,71 @@ int retval = 0; ccb = cam_getccb(device); - if (ccb == NULL) { warnx("get_cpi: couldn't allocate CCB"); return(1); } - bzero(&(&ccb->ccb_h)[1], sizeof(struct ccb_pathinq) - sizeof(struct ccb_hdr)); - ccb->ccb_h.func_code = XPT_PATH_INQ; - if (cam_send_ccb(device, ccb) < 0) { warn("get_cpi: error sending Path Inquiry CCB"); - if (arglist & CAM_ARG_VERBOSE) cam_error_print(device, ccb, CAM_ESF_ALL, CAM_EPF_ALL, stderr); - retval = 1; - goto get_cpi_bailout; } - if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - if (arglist & CAM_ARG_VERBOSE) cam_error_print(device, ccb, CAM_ESF_ALL, CAM_EPF_ALL, stderr); - retval = 1; - goto get_cpi_bailout; } - bcopy(&ccb->cpi, cpi, sizeof(struct ccb_pathinq)); get_cpi_bailout: + cam_freeccb(ccb); + return(retval); +} +/* + * Get a get device CCB for the specified device. + */ +static int +get_cgd(struct cam_device *device, struct ccb_getdev *cgd) +{ + union ccb *ccb; + int retval = 0; + + ccb = cam_getccb(device); + if (ccb == NULL) { + warnx("get_cgd: couldn't allocate CCB"); + return(1); + } + bzero(&(&ccb->ccb_h)[1], + sizeof(struct ccb_pathinq) - sizeof(struct ccb_hdr)); + ccb->ccb_h.func_code = XPT_GDEV_TYPE; + if (cam_send_ccb(device, ccb) < 0) { + warn("get_cgd: error sending Path Inquiry CCB"); + if (arglist & CAM_ARG_VERBOSE) + cam_error_print(device, ccb, CAM_ESF_ALL, + CAM_EPF_ALL, stderr); + retval = 1; + goto get_cgd_bailout; + } + if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (arglist & CAM_ARG_VERBOSE) + cam_error_print(device, ccb, CAM_ESF_ALL, + CAM_EPF_ALL, stderr); + retval = 1; + goto get_cgd_bailout; + } + bcopy(&ccb->cgd, cgd, sizeof(struct ccb_getdev)); + +get_cgd_bailout: cam_freeccb(ccb); - return(retval); } From owner-p4-projects@FreeBSD.ORG Sat Aug 8 15:04:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 004B31065674; Sat, 8 Aug 2009 15:04:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A83E0106566B for ; Sat, 8 Aug 2009 15:04:45 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 97FD78FC08 for ; Sat, 8 Aug 2009 15:04:45 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78F4jxJ032112 for ; Sat, 8 Aug 2009 15:04:45 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78F4jaa032110 for perforce@freebsd.org; Sat, 8 Aug 2009 15:04:45 GMT (envelope-from mav@freebsd.org) Date: Sat, 8 Aug 2009 15:04:45 GMT Message-Id: <200908081504.n78F4jaa032110@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167104 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 15:04:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=167104 Change 167104 by mav@mav_mavbook on 2009/08/08 15:04:13 Add some SIM flags. Affected files ... .. //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#16 edit Differences ... ==== //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#16 (text+ko) ==== @@ -2737,6 +2737,9 @@ case PI_SOFT_RST: str = "soft reset alternative"; break; + case PI_SATAPM: + str = "SATA Port Multiplier"; + break; default: str = "unknown PI bit set"; break; @@ -2766,6 +2769,12 @@ str = "user has disabled initial BUS RESET or" " controller is in target/mixed mode"; break; + case PIM_NO_6_BYTE: + str = "do not send 6-byte commands"; + break; + case PIM_SEQSCAN: + str = "scan bus sequentially"; + break; default: str = "unknown PIM bit set"; break; From owner-p4-projects@FreeBSD.ORG Sat Aug 8 15:07:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC8DB1065670; Sat, 8 Aug 2009 15:07:50 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB694106566B for ; Sat, 8 Aug 2009 15:07:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 979918FC08 for ; Sat, 8 Aug 2009 15:07:50 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78F7od3032363 for ; Sat, 8 Aug 2009 15:07:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78F7mQd032361 for perforce@freebsd.org; Sat, 8 Aug 2009 15:07:48 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 8 Aug 2009 15:07:48 GMT Message-Id: <200908081507.n78F7mQd032361@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167105 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 15:07:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=167105 Change 167105 by rwatson@rwatson_cinnamon on 2009/08/08 15:07:46 Integrate the remainder of trustedbsd_capabilities up to 8.0beta2(ish); the previous integrate covered only portions of the tree due to user error. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/MAINTAINERS#5 integrate .. //depot/projects/trustedbsd/capabilities/src/Makefile.inc1#9 integrate .. //depot/projects/trustedbsd/capabilities/src/ObsoleteFiles.inc#10 integrate .. //depot/projects/trustedbsd/capabilities/src/UPDATING#10 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/chflags/chflags.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/chmod/chmod.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/df/df.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/hostname/hostname.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/ln/ln.1#4 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/ln/ln.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/ps/ps.1#4 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/ps/ps.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/eval.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/exec.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/expand.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/histedit.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/miscbltin.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/parser.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/redir.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/sh.1#5 integrate .. //depot/projects/trustedbsd/capabilities/src/bin/sh/var.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/cddl/contrib/opensolaris/head/thread.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/cddl/lib/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/capabilities/src/cddl/lib/libctf/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/cddl/lib/libdtrace/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/amd/amd/get_args.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/CHANGES#6 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/KNOWN-DEFECTS#1 branch .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/bin/check/named-checkzone.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/bin/dnssec/dnssec-signzone.8#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/bin/dnssec/dnssec-signzone.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/bin/dnssec/dnssec-signzone.docbook#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/bin/dnssec/dnssec-signzone.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/bin/dnssec/dnssectool.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/bin/named/update.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/Bv9ARM-book.xml#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/Bv9ARM.ch06.html#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/Bv9ARM.ch07.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/Bv9ARM.ch08.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/Bv9ARM.ch09.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/Bv9ARM.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.dig.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.dnssec-dsfromkey.html#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.dnssec-keyfromlabel.html#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.dnssec-keygen.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.dnssec-signzone.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.host.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.named-checkconf.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.named-checkzone.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.named.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.nsupdate.html#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.rndc-confgen.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.rndc.conf.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/doc/arm/man.rndc.html#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/bind9/api#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/bind9/check.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/dns/api#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/dns/dnssec.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/dns/include/dns/dnssec.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/dns/include/dns/keyvalues.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/dns/nsec3.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/dns/resolver.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/lib/isc/ia64/include/isc/atomic.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/bind9/version#6 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/gcc/config/freebsd-spec.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/gcc/dwarf2out.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/LICENSE#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.aut#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.dsb#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.dsg#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.dsu#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.in#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.o2e#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.o9c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.o9u#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.wnb#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/Makefile.wnm#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/NEWS#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/README#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/brac.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/ch.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/charset.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/charset.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/cmd.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/cmdbuf.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/command.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/configure.ac#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/cvt.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/contrib/less/decode.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/defines.ds#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/defines.o2#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/defines.o9#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/defines.wn#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/edit.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/filename.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/forwback.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/funcs.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/ifile.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/input.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/jump.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/less.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/less.man#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/less.nro#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lessecho.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lessecho.man#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lessecho.nro#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lesskey.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lesskey.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lesskey.man#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lesskey.nro#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lglob.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/line.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/linenum.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/lsystem.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/main.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/mark.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/mkhelp.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/optfunc.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/option.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/option.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/opttbl.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/os.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/output.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/pattern.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/contrib/less/pattern.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/contrib/less/pckeys.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/position.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/position.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/prompt.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/screen.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/scrsize.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/search.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/signal.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/tags.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/ttyin.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/less/version.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/netcat/nc.1#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/ntp/scripts/mkver.in#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/NEWS#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/README#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/VERSION#6 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/config/config.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/configure#6 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/configure.ac#6 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/etc/audit_event#6 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/libauditd/auditd_lib.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/libbsm/bsm_control.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/libbsm/bsm_errno.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/libbsm/bsm_io.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/libbsm/bsm_token.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/man/audit_control.5#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/sys/bsm/audit.h#5 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/sys/bsm/audit_kevents.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/openbsm/tools/audump.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/sendmail/cf/sh/makeinfo.sh#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/Fixes#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/Imakefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/Makefile.ADMIN#2 delete .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/Makefile.in#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/README#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/RELEASE-PROCEDURE#2 delete .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/complete.tcsh#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/config.guess#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/config.h.in#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/config.rpath#1 branch .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/config.sub#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/config_f.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/configure#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/configure.in#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/ed.chared.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/ed.decls.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/ed.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/ed.inputl.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/ed.screen.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/ed.term.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/ed.xmap.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/glob.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/host.defs#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/ma.setp.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/patchlevel.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.char.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.char.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.decls.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.dir.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.dol.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.err.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.exec.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.exp.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.file.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.func.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.glob.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.lex.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.proc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.proc.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.sem.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/sh.set.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/snames.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tc.bind.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tc.const.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tc.decls.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tc.func.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tc.os.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tc.sig.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tc.str.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tcsh.man#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tw.color.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tw.comp.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/contrib/tcsh/tw.parse.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/login.conf#3 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/mtree/BSD.include.dist#6 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/network.subr#6 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/ntp.conf#2 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/pam.d/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/pam.d/gdm#2 delete .. //depot/projects/trustedbsd/capabilities/src/etc/portsnap.conf#3 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/Makefile#6 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/NETWORKING#3 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/hostid#3 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/hostid_save#1 branch .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/ipfw#6 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/netif#6 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/pf#4 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/pflog#3 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/pfsync#3 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/zfs#3 integrate .. //depot/projects/trustedbsd/capabilities/src/etc/rc.d/zvol#1 branch .. //depot/projects/trustedbsd/capabilities/src/games/fortune/datfiles/fortunes#8 integrate .. //depot/projects/trustedbsd/capabilities/src/games/fortune/datfiles/fortunes-o.real#3 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/lib/libdialog/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/lib/libg2c/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/lib/libgcc/Makefile#5 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/lib/libgcov/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/lib/libobjc/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/lib/libreadline/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/lib/libregex/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/lib/libssp/libssp_nonshared/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/usr.bin/cc/cc_tools/freebsd-native.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/gnu/usr.bin/groff/tmac/mdoc.local#7 integrate .. //depot/projects/trustedbsd/capabilities/src/include/Makefile#6 integrate .. //depot/projects/trustedbsd/capabilities/src/include/dlfcn.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/include/stdio.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/include/unistd.h#9 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/Makefile#10 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libalias/libalias/Makefile#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libarchive/Makefile#6 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libarchive/archive_read_support_format_iso9660.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libautofs/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libbegemot/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libbluetooth/Makefile#5 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libbsm/Makefile#5 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libbsnmp/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libbz2/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libcam/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libcompat/4.3/cfree.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libcompat/4.3/regex.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libcompat/4.4/cuserid.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libcrypt/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libdevstat/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libdwarf/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libdwarf/dwarf_loc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libedit/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libexpat/Makefile#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libfetch/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libftpio/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libgpib/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libipsec/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libjail/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libjail/jail.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libjail/jail.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libjail/jail.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libjail/jail_getid.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libkiconv/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkiconv/kiconv_sysctl.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libkiconv/quirks.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkiconv/xlat16_iconv.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkiconv/xlat16_sysctl.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkse/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkvm/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkvm/kvm.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkvm/kvm_private.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkvm/kvm_proc.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libkvm/kvm_vnet.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libmagic/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libmemstat/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libncp/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libnetgraph/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libngatm/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libopie/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libpam/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libpam/modules/pam_unix/pam_unix.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libpcap/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libproc/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libradius/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libsdp/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libsmb/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libtacplus/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libthr/thread/thr_rtld.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libthr/thread/thr_rwlock.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libugidfw/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb.3#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb10.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb10.h#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb10_desc.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb10_io.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb20.3#1 branch .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb20_compat01.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb20_compat10.c#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb20_compat10.h#2 delete .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb20_int.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libusb/libusb20_ugen20.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libusbhid/Makefile#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libutil/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libutil/humanize_number.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libutil/kinfo_getvmmap.3#3 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libutil/login_class.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libvgl/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libwrap/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/libypclnt/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/ncurses/ncurses/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/lib/ncurses/ncurses/pathnames.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/release/Makefile#6 integrate .. //depot/projects/trustedbsd/capabilities/src/release/amd64/boot_crunch.conf#5 integrate .. //depot/projects/trustedbsd/capabilities/src/release/i386/boot_crunch.conf#5 integrate .. //depot/projects/trustedbsd/capabilities/src/release/ia64/boot_crunch.conf#5 integrate .. //depot/projects/trustedbsd/capabilities/src/release/pc98/boot_crunch.conf#4 integrate .. //depot/projects/trustedbsd/capabilities/src/release/picobsd/build/picobsd#4 integrate .. //depot/projects/trustedbsd/capabilities/src/release/powerpc/boot_crunch.conf#5 integrate .. //depot/projects/trustedbsd/capabilities/src/release/scripts/package-split.py#2 integrate .. //depot/projects/trustedbsd/capabilities/src/release/sparc64/boot_crunch.conf#5 integrate .. //depot/projects/trustedbsd/capabilities/src/release/sun4v/boot_crunch.conf#5 integrate .. //depot/projects/trustedbsd/capabilities/src/rescue/rescue/Makefile#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/camcontrol/camcontrol.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/camcontrol/camcontrol.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/dhclient/dispatch.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/Makefile#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/af_atalk.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/af_inet.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/af_inet6.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifclone.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifconfig.8#6 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifconfig.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifconfig.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifgif.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifgre.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifieee80211.c#10 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifmac.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifmedia.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ifconfig/ifvlan.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ipfw/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ipfw/dummynet.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ipfw/ipfw.8#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/ipfw/ipfw2.h#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/kldload/kldload.8#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/mount_nfs/mount_nfs.8#5 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/mount_nfs/mount_nfs.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/sysctl/sysctl.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/sbin/umount/umount.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/secure/lib/libcrypto/Makefile#3 integrate .. //depot/projects/trustedbsd/capabilities/src/secure/lib/libssh/Makefile#6 integrate .. //depot/projects/trustedbsd/capabilities/src/secure/lib/libssl/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/share/doc/bind9/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/share/misc/bsd-family-tree#7 integrate .. //depot/projects/trustedbsd/capabilities/src/share/misc/committers-ports.dot#8 integrate .. //depot/projects/trustedbsd/capabilities/src/share/mk/bsd.lib.mk#3 integrate .. //depot/projects/trustedbsd/capabilities/src/share/mk/bsd.libnames.mk#8 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/build/mk/OptionalObsoleteFiles.inc#6 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/regression/acltools/tools-posix.test#3 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/regression/bin/sh/builtins/command5.0.stdout#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/regression/bin/sh/builtins/eval2.0#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/bin/sh/execution/fork2.0#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/bin/sh/expansion/ifs1.0#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/netipx/spxloopback/spxloopback.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/4/pipepoll.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/4/pipeselect.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/7/pipepoll.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/7/pipeselect.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/Readme#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/l/pipepoll.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/l/pipeselect.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/m/pipepoll.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/m/pipeselect.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/n/pipepoll.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/n/pipeselect.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/pipepoll.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/poll/pipeselect.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/usr.bin/jot/regress.dddd.out#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/regression/usr.bin/jot/regress.sh#3 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/ath/athpoke/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/ath/athpoke/athpoke.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/nanobsd/gateworks/G2348#3 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/nanobsd/gateworks/G2358#4 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/nanobsd/nanobsd.sh#5 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/scripts/config#3 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/scripts/mesh/common#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/scripts/mesh/config.mesh#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/scripts/mesh/setup.simple#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/scripts/mesh/topology.line#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/scripts/mesh/topology.ring#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/scripts/mesh/topology.star#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/scripts/mesh/topology.tree#1 branch .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/stumbler/stumbler.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/w00t/README#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/w00t/ap/ap.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/w00t/assoc/assoc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/w00t/expand/expand.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/w00t/prga/prga.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/w00t/redir/redir.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/wesside/wesside/wesside.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/wlaninject/wlaninject.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/net80211/wlanstats/wlanstats.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/tinybsd/tinybsd#3 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/vimage/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/tools/tools/vimage/vimage.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/calendar/calendars/calendar.freebsd#7 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/catman/catman.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/cpio/cmdline.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/cpio/cpio.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/cpio/test/test_owner_parse.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/fstat/fstat.1#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/fstat/fstat.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzip.1#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/gzip.c#8 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/unpack.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/usr.bin/gzip/zuncompress.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/hexdump/parse.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/ipcs/ipcs.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/jot/jot.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/kdump/mkioctls#6 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/keylogout/keylogout.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/killall/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/killall/killall.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/less/Makefile#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/limits/limits.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/locate/locate/fastfind.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/locate/locate/locate.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/make/arch.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/makewhatis/makewhatis.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/mklocale/yacc.y#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/netstat/netstat.1#6 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/nfsstat/nfsstat.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/procstat/procstat_cred.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/procstat/procstat_vm.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/showmount/showmount.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/sockstat/sockstat.1#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/usbhidctl/usbhid.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/ypcat/ypcat.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/ypmatch/ypmatch.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.bin/ypwhich/ypwhich.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/Makefile#10 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/acpi/acpidump/acpi.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/acpi/acpidump/acpidump.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/amd/include/config.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/bsnmpd/modules/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/cpucontrol/cpucontrol.8#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/cpucontrol/cpucontrol.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/cxgbtool/cxgbtool.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/fdcontrol/fdcontrol.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/fdformat/fdformat.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/fdread/fdread.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/fdwrite/fdwrite.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/getpmac/getpmac.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/jail/Makefile#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/jail/jail.8#6 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/jail/jail.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/jexec/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/jexec/jexec.c#7 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/jls/Makefile#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/jls/jls.8#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/jls/jls.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/lpr/common_source/displayq.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/mountd/mountd.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/nfsd/nfsd.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/pkg_install/add/perform.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/pkg_install/lib/url.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/ppp/nat_cmd.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/ppp/ppp.8.m4#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/rpc.lockd/kern.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/rpc.umntall/mounttab.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/rpc.umntall/mounttab.h#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/rpc.umntall/rpc.umntall.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/Makefile#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/devices.c#9 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/disks.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/dispatch.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/dist.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/dist.h#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/doc.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/help/usage.hlp#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/install.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/label.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/media.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/menus.c#6 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/options.c#5 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/sysinstall.h#6 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/ufs.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/usb.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/sysinstall/user.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/tzsetup/tzsetup.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/tzsetup/tzsetup.c#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wake/Makefile#1 branch .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wake/wake.8#1 branch .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wake/wake.c#1 branch .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wlandebug/wlandebug.8#3 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wlandebug/wlandebug.c#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wpa/hostapd/hostapd.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wpa/hostapd/hostapd.conf.5#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wpa/hostapd_cli/hostapd_cli.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wpa/ndis_events/ndis_events.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wpa/wpa_cli/wpa_cli.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wpa/wpa_passphrase/wpa_passphrase.8#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.8#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5#4 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/ypserv/Makefile.yp#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/ypserv/yp_access.c#2 integrate .. //depot/projects/trustedbsd/capabilities/src/usr.sbin/ypserv/ypserv.8#3 integrate Differences ... ==== //depot/projects/trustedbsd/capabilities/src/MAINTAINERS#5 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/MAINTAINERS,v 1.152 2009/03/20 18:51:13 rnoland Exp $ +$FreeBSD: src/MAINTAINERS,v 1.154 2009/07/06 11:46:18 flz Exp $ Please note that the content of this file is strictly advisory. No locks listed here are valid. The only strict review requirements @@ -111,7 +111,7 @@ rpc alfred Pre-commit review requested. xfs kan@FreeBSD.org,rodrigc@FreeBSD.org,cattelan@xfs.org Pre-commit review preferred. -pkg_install krion Pre-commit review or approval from portmgr@ requested. +pkg_install portmgr Pre-commit review or approval from portmgr@ requested. linux emul emulation Please discuss changes here. bs{diff,patch} cperciva Pre-commit review requested. portsnap cperciva Pre-commit review requested. @@ -123,8 +123,6 @@ usr.bin/bluetooth emax Pre-commit review preferred. usr.sbin/bluetooth emax Pre-commit review preferred. gnu/usr.bin/send-pr bugmaster Pre-commit review requested. -BSD.{local,x11*}.dist portmgr Pre-commit review requested, since these files interface with ports. -usb core Please contact core@ before any major changes ncurses rafan Heads-up appreciated, try not to break it. Following are the entries from the Makefiles, and a few other sources. ==== //depot/projects/trustedbsd/capabilities/src/Makefile.inc1#9 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.625 2009/06/14 15:16:24 markm Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.628 2009/07/14 21:19:13 kan Exp $ # # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir @@ -1069,7 +1069,7 @@ # # static libgcc.a prerequisite for shared libc # -_prereq_libs= gnu/lib/libgcc +_prereq_libs= gnu/lib/libssp/libssp_nonshared gnu/lib/libgcc # These dependencies are not automatically generated: # ==== //depot/projects/trustedbsd/capabilities/src/ObsoleteFiles.inc#10 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.196 2009/06/05 15:31:38 ed Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.205 2009/08/01 19:26:27 rwatson Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,11 +14,301 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20090801: vimage.h removed in favour of vnet.h +OLD_FILES+=usr/include/sys/vimage.h +# 20090719: library version bump for 8.0 +OLD_LIBS+=lib/libalias.so.6 +OLD_LIBS+=lib/libavl.so.1 +OLD_LIBS+=lib/libbegemot.so.3 +OLD_LIBS+=lib/libbsdxml.so.3 +OLD_LIBS+=lib/libbsnmp.so.4 +OLD_LIBS+=lib/libcam.so.4 +OLD_LIBS+=lib/libcrypt.so.4 +OLD_LIBS+=lib/libcrypto.so.5 +OLD_LIBS+=lib/libctf.so.1 +OLD_LIBS+=lib/libdevstat.so.6 +OLD_LIBS+=lib/libdtrace.so.1 +OLD_LIBS+=lib/libedit.so.6 +OLD_LIBS+=lib/libgeom.so.4 +OLD_LIBS+=lib/libipsec.so.3 +OLD_LIBS+=lib/libipx.so.4 +OLD_LIBS+=lib/libkiconv.so.3 +OLD_LIBS+=lib/libkvm.so.4 +OLD_LIBS+=lib/libmd.so.4 +OLD_LIBS+=lib/libncurses.so.7 +OLD_LIBS+=lib/libncursesw.so.7 +OLD_LIBS+=lib/libnvpair.so.1 +OLD_LIBS+=lib/libpcap.so.6 +OLD_LIBS+=lib/libreadline.so.7 +OLD_LIBS+=lib/libsbuf.so.4 +OLD_LIBS+=lib/libufs.so.4 +OLD_LIBS+=lib/libumem.so.1 +OLD_LIBS+=lib/libutil.so.7 +OLD_LIBS+=lib/libuutil.so.1 +OLD_LIBS+=lib/libz.so.4 +OLD_LIBS+=lib/libzfs.so.1 +OLD_LIBS+=lib/libzpool.so.1 +OLD_LIBS+=usr/lib/libarchive.so.4 +OLD_LIBS+=usr/lib/libauditd.so.4 +OLD_LIBS+=usr/lib/libbluetooth.so.3 +OLD_LIBS+=usr/lib/libbsm.so.2 +OLD_LIBS+=usr/lib/libbz2.so.3 +OLD_LIBS+=usr/lib/libcalendar.so.4 +OLD_LIBS+=usr/lib/libcom_err.so.4 +OLD_LIBS+=usr/lib/libdevinfo.so.4 +OLD_LIBS+=usr/lib/libdialog.so.6 +OLD_LIBS+=usr/lib/libdwarf.so.1 +OLD_LIBS+=usr/lib/libfetch.so.5 +OLD_LIBS+=usr/lib/libform.so.4 +OLD_LIBS+=usr/lib/libformw.so.4 +OLD_LIBS+=usr/lib/libftpio.so.7 +OLD_LIBS+=usr/lib/libgnuregex.so.4 +OLD_LIBS+=usr/lib/libgpib.so.2 +OLD_LIBS+=usr/lib/libhistory.so.7 +OLD_LIBS+=usr/lib/libmagic.so.3 +OLD_LIBS+=usr/lib/libmemstat.so.2 +OLD_LIBS+=usr/lib/libmenu.so.4 +OLD_LIBS+=usr/lib/libmenuw.so.4 +OLD_LIBS+=usr/lib/libmilter.so.4 +OLD_LIBS+=usr/lib/libncp.so.3 +OLD_LIBS+=usr/lib/libnetgraph.so.3 +OLD_LIBS+=usr/lib/libngatm.so.3 +OLD_LIBS+=usr/lib/libobjc.so.3 +OLD_LIBS+=usr/lib/libopie.so.5 +OLD_LIBS+=usr/lib/libpam.so.4 +OLD_LIBS+=usr/lib/libpanel.so.4 +OLD_LIBS+=usr/lib/libpanelw.so.4 +OLD_LIBS+=usr/lib/libpmc.so.4 +OLD_LIBS+=usr/lib/libproc.so.1 +OLD_LIBS+=usr/lib/libradius.so.3 +OLD_LIBS+=usr/lib/librpcsvc.so.4 +OLD_LIBS+=usr/lib/libsdp.so.3 +OLD_LIBS+=usr/lib/libsmb.so.3 +OLD_LIBS+=usr/lib/libssh.so.4 +OLD_LIBS+=usr/lib/libssl.so.5 +OLD_LIBS+=usr/lib/libtacplus.so.3 +OLD_LIBS+=usr/lib/libugidfw.so.3 +OLD_LIBS+=usr/lib/libusb.so.1 +OLD_LIBS+=usr/lib/libusbhid.so.3 +OLD_LIBS+=usr/lib/libvgl.so.5 +OLD_LIBS+=usr/lib/libwrap.so.5 +OLD_LIBS+=usr/lib/libypclnt.so.3 +OLD_LIBS+=usr/lib/pam_chroot.so.4 +OLD_LIBS+=usr/lib/pam_deny.so.4 +OLD_LIBS+=usr/lib/pam_echo.so.4 +OLD_LIBS+=usr/lib/pam_exec.so.4 +OLD_LIBS+=usr/lib/pam_ftpusers.so.4 +OLD_LIBS+=usr/lib/pam_group.so.4 +OLD_LIBS+=usr/lib/pam_guest.so.4 +OLD_LIBS+=usr/lib/pam_krb5.so.4 +OLD_LIBS+=usr/lib/pam_ksu.so.4 +OLD_LIBS+=usr/lib/pam_lastlog.so.4 +OLD_LIBS+=usr/lib/pam_login_access.so.4 +OLD_LIBS+=usr/lib/pam_nologin.so.4 +OLD_LIBS+=usr/lib/pam_opie.so.4 +OLD_LIBS+=usr/lib/pam_opieaccess.so.4 +OLD_LIBS+=usr/lib/pam_passwdqc.so.4 +OLD_LIBS+=usr/lib/pam_permit.so.4 +OLD_LIBS+=usr/lib/pam_radius.so.4 +OLD_LIBS+=usr/lib/pam_rhosts.so.4 +OLD_LIBS+=usr/lib/pam_rootok.so.4 +OLD_LIBS+=usr/lib/pam_securetty.so.4 +OLD_LIBS+=usr/lib/pam_self.so.4 +OLD_LIBS+=usr/lib/pam_ssh.so.4 +OLD_LIBS+=usr/lib/pam_tacplus.so.4 +OLD_LIBS+=usr/lib/pam_unix.so.4 +OLD_LIBS+=usr/lib/snmp_atm.so.5 +OLD_LIBS+=usr/lib/snmp_bridge.so.5 +OLD_LIBS+=usr/lib/snmp_hostres.so.5 +OLD_LIBS+=usr/lib/snmp_mibII.so.5 +OLD_LIBS+=usr/lib/snmp_netgraph.so.5 +OLD_LIBS+=usr/lib/snmp_pf.so.5 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libalias.so.6 +OLD_LIBS+=usr/lib32/libarchive.so.4 +OLD_LIBS+=usr/lib32/libauditd.so.4 +OLD_LIBS+=usr/lib32/libavl.so.1 +OLD_LIBS+=usr/lib32/libbegemot.so.3 +OLD_LIBS+=usr/lib32/libbluetooth.so.3 +OLD_LIBS+=usr/lib32/libbsdxml.so.3 +OLD_LIBS+=usr/lib32/libbsm.so.2 +OLD_LIBS+=usr/lib32/libbsnmp.so.4 +OLD_LIBS+=usr/lib32/libbz2.so.3 +OLD_LIBS+=usr/lib32/libcalendar.so.4 +OLD_LIBS+=usr/lib32/libcam.so.4 +OLD_LIBS+=usr/lib32/libcom_err.so.4 +OLD_LIBS+=usr/lib32/libcrypt.so.4 +OLD_LIBS+=usr/lib32/libcrypto.so.5 +OLD_LIBS+=usr/lib32/libctf.so.1 +OLD_LIBS+=usr/lib32/libdevinfo.so.4 +OLD_LIBS+=usr/lib32/libdevstat.so.6 +OLD_LIBS+=usr/lib32/libdialog.so.6 +OLD_LIBS+=usr/lib32/libdtrace.so.1 +OLD_LIBS+=usr/lib32/libdwarf.so.1 +OLD_LIBS+=usr/lib32/libedit.so.6 +OLD_LIBS+=usr/lib32/libfetch.so.5 +OLD_LIBS+=usr/lib32/libform.so.4 +OLD_LIBS+=usr/lib32/libformw.so.4 +OLD_LIBS+=usr/lib32/libftpio.so.7 +OLD_LIBS+=usr/lib32/libgeom.so.4 +OLD_LIBS+=usr/lib32/libgnuregex.so.4 +OLD_LIBS+=usr/lib32/libgpib.so.2 +OLD_LIBS+=usr/lib32/libhistory.so.7 +OLD_LIBS+=usr/lib32/libipsec.so.3 +OLD_LIBS+=usr/lib32/libipx.so.4 +OLD_LIBS+=usr/lib32/libkiconv.so.3 +OLD_LIBS+=usr/lib32/libkvm.so.4 +OLD_LIBS+=usr/lib32/libmagic.so.3 +OLD_LIBS+=usr/lib32/libmd.so.4 +OLD_LIBS+=usr/lib32/libmemstat.so.2 +OLD_LIBS+=usr/lib32/libmenu.so.4 +OLD_LIBS+=usr/lib32/libmenuw.so.4 +OLD_LIBS+=usr/lib32/libmilter.so.4 +OLD_LIBS+=usr/lib32/libncp.so.3 +OLD_LIBS+=usr/lib32/libncurses.so.7 +OLD_LIBS+=usr/lib32/libncursesw.so.7 +OLD_LIBS+=usr/lib32/libnetgraph.so.3 +OLD_LIBS+=usr/lib32/libngatm.so.3 +OLD_LIBS+=usr/lib32/libnvpair.so.1 +OLD_LIBS+=usr/lib32/libobjc.so.3 +OLD_LIBS+=usr/lib32/libopie.so.5 +OLD_LIBS+=usr/lib32/libpam.so.4 +OLD_LIBS+=usr/lib32/libpanel.so.4 +OLD_LIBS+=usr/lib32/libpanelw.so.4 +OLD_LIBS+=usr/lib32/libpcap.so.6 +OLD_LIBS+=usr/lib32/libpmc.so.4 +OLD_LIBS+=usr/lib32/libproc.so.1 +OLD_LIBS+=usr/lib32/libradius.so.3 +OLD_LIBS+=usr/lib32/libreadline.so.7 +OLD_LIBS+=usr/lib32/librpcsvc.so.4 +OLD_LIBS+=usr/lib32/libsbuf.so.4 +OLD_LIBS+=usr/lib32/libsdp.so.3 +OLD_LIBS+=usr/lib32/libsmb.so.3 +OLD_LIBS+=usr/lib32/libssh.so.4 +OLD_LIBS+=usr/lib32/libssl.so.5 +OLD_LIBS+=usr/lib32/libtacplus.so.3 +OLD_LIBS+=usr/lib32/libufs.so.4 +OLD_LIBS+=usr/lib32/libugidfw.so.3 +OLD_LIBS+=usr/lib32/libumem.so.1 +OLD_LIBS+=usr/lib32/libusb.so.1 +OLD_LIBS+=usr/lib32/libusbhid.so.3 +OLD_LIBS+=usr/lib32/libutil.so.7 +OLD_LIBS+=usr/lib32/libuutil.so.1 +OLD_LIBS+=usr/lib32/libvgl.so.5 +OLD_LIBS+=usr/lib32/libwrap.so.5 +OLD_LIBS+=usr/lib32/libypclnt.so.3 +OLD_LIBS+=usr/lib32/libz.so.4 +OLD_LIBS+=usr/lib32/libzfs.so.1 +OLD_LIBS+=usr/lib32/libzpool.so.1 +OLD_LIBS+=usr/lib32/pam_chroot.so.4 +OLD_LIBS+=usr/lib32/pam_deny.so.4 +OLD_LIBS+=usr/lib32/pam_echo.so.4 +OLD_LIBS+=usr/lib32/pam_exec.so.4 +OLD_LIBS+=usr/lib32/pam_ftpusers.so.4 +OLD_LIBS+=usr/lib32/pam_group.so.4 +OLD_LIBS+=usr/lib32/pam_guest.so.4 +OLD_LIBS+=usr/lib32/pam_krb5.so.4 +OLD_LIBS+=usr/lib32/pam_ksu.so.4 +OLD_LIBS+=usr/lib32/pam_lastlog.so.4 +OLD_LIBS+=usr/lib32/pam_login_access.so.4 +OLD_LIBS+=usr/lib32/pam_nologin.so.4 +OLD_LIBS+=usr/lib32/pam_opie.so.4 +OLD_LIBS+=usr/lib32/pam_opieaccess.so.4 +OLD_LIBS+=usr/lib32/pam_passwdqc.so.4 +OLD_LIBS+=usr/lib32/pam_permit.so.4 +OLD_LIBS+=usr/lib32/pam_radius.so.4 +OLD_LIBS+=usr/lib32/pam_rhosts.so.4 +OLD_LIBS+=usr/lib32/pam_rootok.so.4 +OLD_LIBS+=usr/lib32/pam_securetty.so.4 +OLD_LIBS+=usr/lib32/pam_self.so.4 +OLD_LIBS+=usr/lib32/pam_ssh.so.4 +OLD_LIBS+=usr/lib32/pam_tacplus.so.4 +OLD_LIBS+=usr/lib32/pam_unix.so.4 +.endif +# 20090718: the gdm pam.d file is no longer required. +OLD_FILES+=etc/pam.d/gdm +# 20090713: vimage container structs removed. +OLD_FILES+=usr/include/netinet/vinet.h +OLD_FILES+=usr/include/netinet6/vinet6.h +OLD_FILES+=usr/include/netipsec/vipsec.h +# 20090712: ieee80211.4 -> net80211.4 +OLD_FILES+=usr/share/man/man4/ieee80211.4.gz +# 20090711: typo fixed, kproc_resume,.9 -> kproc_resume.9 +OLD_FILES+=usr/share/man/man9/kproc_resume,.9.gz +# 20090709: msgctl.3 msgget.3 msgrcv.3 msgsnd.3 manual pages moved +OLD_FILES+=usr/share/man/man3/msgctl.3.gz +OLD_FILES+=usr/share/man/man3/msgget.3.gz +OLD_FILES+=usr/share/man/man3/msgrcv.3.gz +OLD_FILES+=usr/share/man/man3/msgsnd.3.gz +# 20090630: old kernel RPC implementation removal +OLD_FILES+=usr/include/nfs/rpcv2.h +# 20090624: update usbdi(9) +OLD_FILES+=usr/share/man/man9/usbd_abort_default_pipe.9.gz +OLD_FILES+=usr/share/man/man9/usbd_abort_pipe.9.gz +OLD_FILES+=usr/share/man/man9/usbd_alloc_buffer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_alloc_xfer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_clear_endpoint_stall.9.gz +OLD_FILES+=usr/share/man/man9/usbd_clear_endpoint_stall_async.9.gz +OLD_FILES+=usr/share/man/man9/usbd_clear_endpoint_toggle.9.gz +OLD_FILES+=usr/share/man/man9/usbd_close_pipe.9.gz +OLD_FILES+=usr/share/man/man9/usbd_device2interface_handle.9.gz +OLD_FILES+=usr/share/man/man9/usbd_do_request_async.9.gz +OLD_FILES+=usr/share/man/man9/usbd_do_request_flags_pipe.9.gz +OLD_FILES+=usr/share/man/man9/usbd_endpoint_count.9.gz +OLD_FILES+=usr/share/man/man9/usbd_find_edesc.9.gz +OLD_FILES+=usr/share/man/man9/usbd_find_idesc.9.gz +OLD_FILES+=usr/share/man/man9/usbd_free_buffer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_free_xfer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_buffer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_config.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_config_desc.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_config_desc_full.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_config_descriptor.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_device_descriptor.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_endpoint_descriptor.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_interface_altindex.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_interface_descriptor.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_no_alts.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_quirks.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_speed.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_string.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_string_desc.9.gz +OLD_FILES+=usr/share/man/man9/usbd_get_xfer_status.9.gz +OLD_FILES+=usr/share/man/man9/usbd_interface2device_handle.9.gz +OLD_FILES+=usr/share/man/man9/usbd_interface2endpoint_descriptor.9.gz +OLD_FILES+=usr/share/man/man9/usbd_interface_count.9.gz +OLD_FILES+=usr/share/man/man9/usbd_open_pipe.9.gz +OLD_FILES+=usr/share/man/man9/usbd_open_pipe_intr.9.gz +OLD_FILES+=usr/share/man/man9/usbd_pipe2device_handle.9.gz +OLD_FILES+=usr/share/man/man9/usbd_set_config_index.9.gz +OLD_FILES+=usr/share/man/man9/usbd_set_config_no.9.gz +OLD_FILES+=usr/share/man/man9/usbd_set_interface.9.gz +OLD_FILES+=usr/share/man/man9/usbd_setup_default_xfer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_setup_isoc_xfer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_setup_xfer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_sync_transfer.9.gz +OLD_FILES+=usr/share/man/man9/usbd_transfer.9.gz +OLD_FILES+=usr/share/man/man9/usb_find_desc.9.gz +# 20090623: number of headers needed for a usb driver reduced +OLD_FILES+=usr/include/dev/usb/usb_defs.h +OLD_FILES+=usr/include/dev/usb/usb_error.h +OLD_FILES+=usr/include/dev/usb/usb_handle_request.h +OLD_FILES+=usr/include/dev/usb/usb_hid.h +OLD_FILES+=usr/include/dev/usb/usb_lookup.h +OLD_FILES+=usr/include/dev/usb/usb_mfunc.h +OLD_FILES+=usr/include/dev/usb/usb_parse.h +OLD_FILES+=usr/include/dev/usb/usb_revision.h +# 20090609: devclass_add_driver is no longer public +OLD_FILES+=usr/share/man/man9/devclass_add_driver.9.gz +OLD_FILES+=usr/share/man/man9/devclass_delete_driver.9.gz +OLD_FILES+=usr/share/man/man9/devclass_find_driver.9.gz # 20090605: removal of clists OLD_FILES+=usr/include/sys/clist.h # 20090602: removal of window(1) OLD_FILES+=usr/bin/window OLD_FILES+=usr/share/man/man1/window.1.gz +# 20090531: bind 9.6.1rc1 import +OLD_LIBS+=usr/lib/liblwres.so.30 # 20090530: removal of early.sh OLD_FILES+=etc/rc.d/early.sh # 20090527: renaming of S{LIST,TAILQ}_REMOVE_NEXT() to _REMOVE_AFTER() @@ -58,7 +348,7 @@ OLD_DIRS+=usr/include/legacy/dev OLD_DIRS+=usr/include/legacy # 20090526: removal of makekey(8) -OLD_FILES+=libexec/makekey +OLD_FILES+=usr/libexec/makekey OLD_FILES+=usr/share/man/man8/makekey.8.gz # 20090522: removal of University of Michigan NFSv4 client OLD_FILES+=etc/rc.d/idmapd @@ -199,8 +489,6 @@ OLD_FILES+=usr/include/dev/usb/usb_port.h OLD_FILES+=usr/include/dev/usb/usb_quirks.h OLD_FILES+=usr/include/dev/usb/usbcdc.h -OLD_FILES+=usr/include/dev/usb/usbdi.h -OLD_FILES+=usr/include/dev/usb/usbdi_util.h OLD_FILES+=usr/include/dev/usb/usbdivar.h OLD_FILES+=usr/include/dev/usb/uxb360gp_rdesc.h # 20090203: removal of pccard header files @@ -1788,7 +2076,6 @@ OLD_FILES+=usr/bin/kenv OLD_FILES+=usr/sbin/elf2aout # 200210XX -OLD_FILES+=usr/include/libusb.h OLD_FILES+=usr/include/libusbhid.h OLD_FILES+=usr/share/man/man3/All_FreeBSD.3.gz OLD_FILES+=usr/share/man/man3/CheckRules.3.gz ==== //depot/projects/trustedbsd/capabilities/src/UPDATING#10 (text+ko) ==== @@ -22,6 +22,58 @@ to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090719: + Bump the shared library version numbers for all libraries that + do not use symbol versioning as part of the 8.0-RELEASE cycle. + Bump __FreeBSD_version to 800105. + +20090714: + Due to changes in the implementation of virtual network stack + support, all network-related kernel modules must be recompiled. + As this change breaks the ABI, bump __FreeBSD_version to 800104. + +20090713: + The TOE interface to the TCP syncache has been modified to remove struct + tcpopt () from the ABI of the network stack. The + cxgb driver is the only TOE consumer affected by this change, and needs + to be recompiled along with the kernel. As this change breaks the ABI, + bump __FreeBSD_version to 800103. + +20090712: + Padding has been added to struct tcpcb, sackhint and tcpstat in + to facilitate future MFCs and bug fixes whilst + maintainig the ABI. However, this change breaks the ABI, so bump + __FreeBSD_version to 800102. User space tools that rely on the size of + any of these structs (e.g. sockstat) need to be recompiled. + +20090630: + The NFS_LEGACYRPC option has been removed along with the old + kernel RPC implementation that this option selected. Kernel + configurations may need to be adjusted. + +20090629: + The network interface device nodes at /dev/net/ have + been removed. All ioctl operations can be performed the normal + way using routing sockets. The kqueue functionality can + generally be replaced with routing sockets. + +20090628: + The documentation from the FreeBSD Documentation Project + (Handbook, FAQ, etc.) is now installed via packages by + sysinstall(8) and under the /usr/local/share/doc/freebsd + directory instead of /usr/share/doc. + +20090624: + The ABI of various structures related to the SYSV IPC API have + been changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 + kernel options now all require COMPAT_FREEBSD7. + Bump __FreeBSD_version to 800100. + +20090622: + Layout of struct vnet has changed as routing related variables + were moved to their own Vimage module. Modules need to be + recompiled. Bump __FreeBSD_version to 800099. + 20090619: NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024 respectively. As long as no more than 16 groups per @@ -75,12 +127,6 @@ rebuilt. Bump __FreeBSD_version to 800096. -20090531: - For those who use ipfw and especially pf, those two firewalls - are now started BEFORE the network is initialized (i.e., before - rc.d/netif). Please review your rules to make sure that your - interfaces will be properly described. - 20090530: Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no more valid. @@ -1619,4 +1665,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.620 2009/06/19 17:10:35 brooks Exp $ +$FreeBSD: src/UPDATING,v 1.632 2009/07/26 20:12:06 kib Exp $ ==== //depot/projects/trustedbsd/capabilities/src/bin/chflags/chflags.c#4 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 8 15:52:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F0F6810656D6; Sat, 8 Aug 2009 15:52:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3CB310656C7 for ; Sat, 8 Aug 2009 15:52:39 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 90F268FC31 for ; Sat, 8 Aug 2009 15:52:39 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78FqddS036300 for ; Sat, 8 Aug 2009 15:52:39 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78Fqd0D036298 for perforce@freebsd.org; Sat, 8 Aug 2009 15:52:39 GMT (envelope-from gk@FreeBSD.org) Date: Sat, 8 Aug 2009 15:52:39 GMT Message-Id: <200908081552.n78Fqd0D036298@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Cc: Subject: PERFORCE change 167106 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 15:52:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=167106 Change 167106 by gk@gk_h1 on 2009/08/08 15:52:18 readdir improvements: skip unknown entries in encrypted directories, merge cookies encrypt key chains use tailq for keychains implement randomchain do not call pefs_node_lookup_name from pefs_enccn_get (it's not needed) simplify readdir and pefs_enccn_lookup_dirent: use continious buffer (maximum size is page size) remove unused pefs_chunk_get (direct access to iovec is preferred) increase max key size to 512 bits. userspace always generates 512 bits of key material. particular algorithm is to use as much of it as it needs minor style improvements Affected files ... .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.c#3 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.h#3 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#3 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_keychain.c#2 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_keychain.h#2 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs.h#8 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#6 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_subr.c#8 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vfsops.c#7 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#9 edit Differences ... ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.c#3 (text+ko) ==== @@ -47,6 +47,7 @@ #include "pefs_keychain.h" #define PATH_UMOUNT "/sbin/umount" +#define PATH_DEVRANDOM "/dev/random" static int pefs_unmount(int argc, char *argv[]); static int pefs_addkey(int argc, char *argv[]); @@ -60,7 +61,7 @@ static int pefs_showchain(int argc, char *argv[]); typedef int (*command_func_t)(int argc, char **argv); -typedef int (*keyop_func_t)(struct pefs_keychain *kc, int fd); +typedef int (*keyop_func_t)(struct pefs_keychain_head *kch, int fd); struct command { const char *name; @@ -124,7 +125,7 @@ pefs_keyop(keyop_func_t func, int argc, char *argv[]) { struct pefs_xkey k; - struct pefs_keychain *kc; + struct pefs_keychain_head kch; struct pefs_keyparam kp; int error, fd, i; int chain = PEFS_KEYCHAIN_IGNORE_MISSING; @@ -169,19 +170,18 @@ if (error != 0) return (error); - kc = pefs_keychain_get(argv[0], chain, &k); + error = pefs_keychain_get(&kch, argv[0], chain, &k); bzero(&k, sizeof(k)); - if (kc == NULL) { + if (error) return (EX_DATAERR); - } fd = open(argv[0], O_RDONLY); if (fd == -1) { err(EX_IOERR, "cannot open %s", argv[0]); } - error = func(kc, fd); + error = func(&kch, fd); - pefs_keychain_free(kc); + pefs_keychain_free(&kch); close(fd); @@ -189,9 +189,11 @@ } static int -pefs_addkey_op(struct pefs_keychain *kc, int fd) +pefs_addkey_op(struct pefs_keychain_head *kch, int fd) { - for (; kc; kc = kc->kc_next) { + struct pefs_keychain *kc; + + TAILQ_FOREACH(kc, kch, kc_entry) { if (ioctl(fd, PEFS_ADDKEY, &kc->kc_key) == -1) { warn("cannot add key"); return (-1); @@ -202,9 +204,11 @@ } static int -pefs_delkey_op(struct pefs_keychain *kc, int fd) +pefs_delkey_op(struct pefs_keychain_head *kch, int fd) { - for (; kc; kc = kc->kc_next) { + struct pefs_keychain *kc; + + TAILQ_FOREACH(kc, kch, kc_entry) { if (ioctl(fd, PEFS_DELKEY, &kc->kc_key) == -1) { warn("cannot delete key"); } @@ -229,7 +233,7 @@ pefs_setkey(int argc, char *argv[]) { struct pefs_xkey k; - struct pefs_keychain *kc; + struct pefs_keychain_head kch; struct pefs_keyparam kp; int error, fd, i; int addkey = 0; @@ -285,11 +289,11 @@ if (error != 0) return (error); - kc = pefs_keychain_get(argv[0], chain, &k); - if (kc == NULL) { + error = pefs_keychain_get(&kch, argv[0], chain, &k); + bzero(&k, sizeof(k)); + if (error) return (EX_DATAERR); - } - pefs_keychain_free(kc); + pefs_keychain_free(&kch); bzero(k.pxk_key, PEFS_KEY_SIZE); @@ -414,18 +418,23 @@ static int pefs_setchain(int argc, char *argv[]) { - struct pefs_keychain *kc, *kci; + struct pefs_keychain *kc; + struct pefs_keychain_head kch; struct { struct pefs_xkey k; struct pefs_keyparam kp; } p[2]; struct pefs_xkey *k1 = &p[0].k, *k2 = &p[1].k; + int verbose = 0; int error, i; pefs_keyparam_init(&p[0].kp); pefs_keyparam_init(&p[1].kp); - while ((i = getopt(argc, argv, "pPa:A:i:I:k:K:")) != -1) + while ((i = getopt(argc, argv, "vpPa:A:i:I:k:K:")) != -1) switch(i) { + case 'v': + verbose = 1; + break; case 'a': case 'A': p[isupper(i) ? 1 : 0].kp.kp_alg = optarg; @@ -468,10 +477,10 @@ return (error); } - kc = pefs_keychain_get(argv[0], PEFS_KEYCHAIN_IGNORE_MISSING, k1); - for (kci = kc; kci; kci = kci->kc_next) { - if (memcmp(k2->pxk_keyid, kci->kc_key.pxk_keyid, PEFS_KEYID_SIZE) == 0) { - pefs_keychain_free(kc); + pefs_keychain_get(&kch, argv[0], PEFS_KEYCHAIN_IGNORE_MISSING, k1); + TAILQ_FOREACH(kc, &kch, kc_entry) { + if (memcmp(k2->pxk_keyid, kc->kc_key.pxk_keyid, PEFS_KEYID_SIZE) == 0) { + pefs_keychain_free(&kch); bzero(k1->pxk_key, PEFS_KEY_SIZE); bzero(k2->pxk_key, PEFS_KEY_SIZE); errx(EX_DATAERR, "key chain is already set: %016jx -> %016jx", @@ -479,19 +488,25 @@ pefs_keyid_as_int(k2->pxk_keyid)); } } - if (kc->kc_next != NULL) { + kc = TAILQ_FIRST(&kch); + if (TAILQ_NEXT(kc, kc_entry) != NULL) { bzero(k1->pxk_key, PEFS_KEY_SIZE); bzero(k2->pxk_key, PEFS_KEY_SIZE); warnx("key chain for parent key is already set: %016jx -> %016jx", pefs_keyid_as_int(kc->kc_key.pxk_keyid), - pefs_keyid_as_int(kc->kc_next->kc_key.pxk_keyid)); - pefs_keychain_free(kc); + pefs_keyid_as_int(TAILQ_NEXT(kc, kc_entry)->kc_key.pxk_keyid)); + pefs_keychain_free(&kch); exit(EX_DATAERR); } error = pefs_keychain_set(argv[0], k1, k2); if (error) return (EX_DATAERR); + if (verbose) { + printf("Key chain set: %016jx -> %016jx\n", + pefs_keyid_as_int(k1->pxk_keyid), + pefs_keyid_as_int(k2->pxk_keyid)); + } return (0); } @@ -501,16 +516,20 @@ { struct pefs_xkey k; struct pefs_keyparam kp; - struct pefs_keychain *kc, *kci; + struct pefs_keychain *kc; + struct pefs_keychain_head kch; + int force = 0, verbose = 0;; int error, i; - int force = 0; pefs_keyparam_init(&kp); - while ((i = getopt(argc, argv, "fpa:i:k:")) != -1) + while ((i = getopt(argc, argv, "fvpa:i:k:")) != -1) switch(i) { case 'f': force = 1; break; + case 'v': + verbose = 1; + break; case 'a': kp.kp_alg = optarg; break; @@ -541,18 +560,25 @@ if (error != 0) return (error); - kc = pefs_keychain_get(argv[0], PEFS_KEYCHAIN_USE, &k); - if (kc == NULL) { + error = pefs_keychain_get(&kch, argv[0], PEFS_KEYCHAIN_USE, &k); + if (error) { bzero(&k, sizeof(k)); return (EX_DATAERR); } - for (kci = kc; kci != NULL && kci->kc_next != NULL; kci = kci->kc_next) { - pefs_keychain_del(argv[0], &kci->kc_key); + TAILQ_FOREACH(kc, &kch, kc_entry) { + if (!TAILQ_NEXT(kc, kc_entry)) + break; + pefs_keychain_del(argv[0], &kc->kc_key); + if (verbose) { + printf("Key chain deleted: %016jx -> %016jx\n", + pefs_keyid_as_int(kc->kc_key.pxk_keyid), + pefs_keyid_as_int(TAILQ_NEXT(kc, kc_entry)->kc_key.pxk_keyid)); + } if (!force) break; } - pefs_keychain_free(kc); + pefs_keychain_free(&kch); return (0); } @@ -562,7 +588,8 @@ { struct pefs_xkey k; struct pefs_keyparam kp; - struct pefs_keychain *kc, *kci; + struct pefs_keychain *kc; + struct pefs_keychain_head kch; int error, i; pefs_keyparam_init(&kp); @@ -598,25 +625,87 @@ if (error != 0) return (error); - kc = pefs_keychain_get(argv[0], PEFS_KEYCHAIN_USE, &k); - if (kc == NULL) { - bzero(&k, sizeof(k)); + error = pefs_keychain_get(&kch, argv[0], PEFS_KEYCHAIN_USE, &k); + bzero(&k, sizeof(k)); + if (error) { return (EX_DATAERR); } printf("Key chain:\n"); - bzero(&k, sizeof(k)); - for (i = 1, kci = kc; kci != NULL; i++, kci = kci->kc_next) { - pefs_key_show(&kci->kc_key, i); + i = 1; + TAILQ_FOREACH(kc, &kch, kc_entry) { + pefs_key_show(&kc->kc_key, i++); } - pefs_keychain_free(kc); + pefs_keychain_free(&kch); return (0); } static int -pefs_randomchain(int argc __unused, char *argv[] __unused) +pefs_randomchain(int argc, char *argv[]) { + struct pefs_xkey k[2]; + int nmin = PEFS_RANDOMCHAIN_MIN, nmax = PEFS_RANDOMCHAIN_MAX; + int verbose = 0; + int i, n, fd; + + k[0].pxk_index = k[1].pxk_index = -1; + while ((i = getopt(argc, argv, "va:n:N:")) != -1) + switch(i) { + case 'v': + verbose = 1; + break; + case 'a': + k[0].pxk_alg = k[1].pxk_alg = pefs_alg_id(optarg); + if (k[0].pxk_alg < 0) + errx(EX_USAGE, "invalid algorithm %s", optarg); + break; + case 'n': + if ((nmin = atoi(optarg)) <= 0) { + warnx("invalid lower bound argument: %s", optarg); + pefs_usage(); + } + break; + case 'N': + if ((nmax = atoi(optarg)) <= 0) { + warnx("invalid lower bound argument: %s", optarg); + pefs_usage(); + } + break; + default: + pefs_usage(); + } + argc -= optind; + argv += optind; + + if (nmin >= nmax) { + errx(EX_USAGE, "invalid arguments: lower bound (%d) >= upper bound (%d)", nmin, nmax); + } + + if (!checkargs_fs(argc, argv)) { + pefs_usage(); + } + + n = arc4random_uniform(nmax - nmin) + nmin; + + fd = open(PATH_DEVRANDOM, O_RDONLY); + if (fd == -1) + err(EX_IOERR, "%s", PATH_DEVRANDOM); + + for (i = 1; i <= n; i++) { + read(fd, k, 2 * sizeof(struct pefs_keychain)); + if (i % 2 == 0) { + pefs_keychain_set(argv[0], &k[0], &k[1]); + if (verbose) { + printf("Key chain set: %016jx -> %016jx\n", + pefs_keyid_as_int(k[0].pxk_keyid), + pefs_keyid_as_int(k[1].pxk_keyid)); + } + } + } + + close(fd); + return (0); } @@ -627,15 +716,15 @@ fprintf(stderr, "usage: pefs mount [-o options] target filesystem\n" " pefs unmount [-fv] filesystem\n" " pefs addkey [-cCp] [-a alg] [-i iterations] [-k keyfile] filesystem\n" - " pefs setkey [-xcCp] [-a alg] [-i iterations] [-k keyfile] directory\n" + " pefs setkey [-cCpx] [-a alg] [-i iterations] [-k keyfile] directory\n" " pefs delkey [-cCp] [-a alg] [-i iterations] [-k keyfile] filesystem\n" " pefs flushkeys filesystem\n" - " pefs setchain [-pP] [-a alg] [-i iterations] [-k keyfile]\n" + " pefs setchain [-pPv] [-a alg] [-i iterations] [-k keyfile]\n" " [-A alg] [-I iterations] [-K keyfile] filesystem\n" - " pefs delchain [-pP] [-a alg] [-i iterations] [-k keyfile]\n" + " pefs delchain [-pPv] [-a alg] [-i iterations] [-k keyfile]\n" " [-A alg] [-I iterations] [-K keyfile] filesystem\n" " pefs showchain [-a alg] [-n min] [-N max] filesystem\n" - " pefs randomchain [-a alg] [-n min] [-N max] filesystem\n" + " pefs randomchain [-v] [-a alg] [-n min] [-N max] filesystem\n" " pefs showkeys filesystem\n"); exit(EX_USAGE); } ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.h#3 (text+ko) ==== @@ -25,10 +25,14 @@ * * $FreeBSD$ */ + #define PEFS_ALG_DEFAULT PEFS_ALG_SALSA20 #define PEFS_KDF_ITERATIONS 50000 +#define PEFS_RANDOMCHAIN_MIN 16 +#define PEFS_RANDOMCHAIN_MAX 64 + struct pefs_xkey; struct pefs_keyparam { @@ -48,10 +52,12 @@ } void pefs_usage(void); -int pefs_key_get(struct pefs_xkey *xk, const char *prompt, int verify, - struct pefs_keyparam *kp); int pefs_mount(int argc, char *argv[]); int pefs_mount_prog(int argc, char *argv[]); +int pefs_key_get(struct pefs_xkey *xk, const char *prompt, int verify, struct pefs_keyparam *kp); +int pefs_key_encrypt(struct pefs_xkey *xk, const struct pefs_xkey *xk_parent); +int pefs_key_decrypt(struct pefs_xkey *xk, const struct pefs_xkey *xk_parent); uintmax_t pefs_keyid_as_int(char *keyid); const char * pefs_alg_name(int alg_id); +int pefs_alg_id(const char *name); ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#3 (text+ko) ==== @@ -28,6 +28,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -42,10 +43,14 @@ #include #include +#include + #include "pefs_ctl.h" #define PEFS_KEY_PROMPT_DEFAULT "passphrase" +#define PEFS_CIPHERKEY_ITERATIONS 1000 + struct algorithm { const char *name; int id; @@ -70,10 +75,22 @@ } int +pefs_alg_id(const char *algname) +{ + struct algorithm *alg; + + for (alg = algs; alg->name != NULL; alg++) { + if (strcmp(algname, alg->name) == 0) + return (alg->id); + } + + return (-1); +} + +int pefs_key_get(struct pefs_xkey *xk, const char *prompt, int verify, struct pefs_keyparam *kp) { struct hmac_ctx ctx; - struct algorithm *alg; char promptbuf[64], buf[BUFSIZ], buf2[BUFSIZ], *p; ssize_t done; int fd, i; @@ -82,11 +99,9 @@ xk->pxk_alg = PEFS_ALG_DEFAULT; if (kp->kp_alg != NULL) { - for (alg = algs; alg->name != NULL; alg++) { - if (strcmp(kp->kp_alg, alg->name) == 0) - xk->pxk_alg = alg->id; - } - errx(EX_USAGE, "invalid algorithm %s", optarg); + xk->pxk_alg = pefs_alg_id(kp->kp_alg); + if (xk->pxk_alg < 0) + errx(EX_USAGE, "invalid algorithm %s", kp->kp_alg); } g_eli_crypto_hmac_init(&ctx, NULL, 0); @@ -153,3 +168,53 @@ return (0); } +static int +pefs_key_cipher(struct pefs_xkey *xk, int enc, const struct pefs_xkey *xk_parent) +{ + const int keysize = 128 / 8; + const int datasize = sizeof(struct pefs_xkey); + u_char *data = (u_char *) xk; + EVP_CIPHER_CTX ctx; + u_char iv[keysize]; + u_char key[keysize]; + int outsize; + + pkcs5v2_genkey(key, keysize, NULL, 0, xk_parent->pxk_key, PEFS_CIPHERKEY_ITERATIONS); + + EVP_CIPHER_CTX_init(&ctx); + + EVP_CipherInit_ex(&ctx, EVP_aes_128_cfb(), NULL, NULL, NULL, enc); + EVP_CIPHER_CTX_set_key_length(&ctx, keysize); + EVP_CIPHER_CTX_set_padding(&ctx, 0); + bzero(iv, sizeof(iv)); + EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, enc); + bzero(key, sizeof(key)); + + if (EVP_CipherUpdate(&ctx, data, &outsize, data, datasize) == 0) { + EVP_CIPHER_CTX_cleanup(&ctx); + return (EINVAL); + } + assert(outsize == (int)datasize); + + if (EVP_CipherFinal_ex(&ctx, data + outsize, &outsize) == 0) { + EVP_CIPHER_CTX_cleanup(&ctx); + return (EINVAL); + } + assert(outsize == 0); + + EVP_CIPHER_CTX_cleanup(&ctx); + return (0); +} + +int +pefs_key_encrypt(struct pefs_xkey *xk, const struct pefs_xkey *xk_parent) +{ + return (pefs_key_cipher(xk, 1, xk_parent)); +} + +int +pefs_key_decrypt(struct pefs_xkey *xk, const struct pefs_xkey *xk_parent) +{ + return (pefs_key_cipher(xk, 0, xk_parent)); +} + ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_keychain.c#2 (text+ko) ==== @@ -62,120 +62,129 @@ return (db); } -void pefs_keychain_free(struct pefs_keychain *kc) +void +pefs_keychain_free(struct pefs_keychain_head *kch) { - struct pefs_keychain *prev; + struct pefs_keychain *kc; - while (kc) { - if (kc == NULL) - break; - + if (kch == NULL) + return; + while ((kc = TAILQ_FIRST(kch)) != NULL) { + TAILQ_REMOVE(kch, kc, kc_entry); bzero(kc, sizeof(struct pefs_keychain)); - prev = kc; - kc = kc->kc_next; - free(prev); + free(kc); } } -static struct pefs_keychain * -pefs_keychain_get_db(DB *db, struct pefs_xkey *xk) +static int +pefs_keychain_get_db(DB *db, struct pefs_keychain_head *kch) { - struct pefs_keychain *kc_head = NULL, **kc_prev = NULL, *kc; + struct pefs_keychain *kc_parent = NULL, *kc; DBT db_key, db_data; int error; while (1) { - for (kc = kc_head; kc != NULL; kc = kc->kc_next) { - if (memcmp(xk->pxk_keyid, kc->kc_key.pxk_keyid, PEFS_KEYID_SIZE) == 0) { - pefs_keychain_free(kc_head); + kc_parent = TAILQ_LAST(kch, pefs_keychain_head); + TAILQ_FOREACH(kc, kch, kc_entry) { + if (kc != kc_parent && memcmp(kc->kc_key.pxk_keyid, + kc_parent->kc_key.pxk_keyid, PEFS_KEYID_SIZE) == 0) { + pefs_keychain_free(kch); errx(EX_DATAERR, "keychain: loop detected: %016jx", - pefs_keyid_as_int(xk->pxk_keyid)); + pefs_keyid_as_int(kc->kc_key.pxk_keyid)); } } - - kc = calloc(1, sizeof(struct pefs_keychain)); - if (kc == NULL) - err(EX_OSERR, "calloc"); - if (kc_head == NULL) - kc_head = kc; - if (kc_prev != NULL) - *kc_prev = kc; - kc_prev = &kc->kc_next; - kc->kc_key = *xk; - - db_key.data = kc->kc_key.pxk_keyid; + db_key.data = kc_parent->kc_key.pxk_keyid; db_key.size = PEFS_KEYID_SIZE; error = db->get(db, &db_key, &db_data, 0); if (error != 0) { if (error == -1) warn("keychain"); - if (kc == kc_head) { - pefs_keychain_free(kc); - kc_head = NULL; - } + if (TAILQ_FIRST(kch) != kc_parent) + error = 0; break; } if (db_data.size != sizeof(struct pefs_xkey)) errx(EX_DATAERR, "keychain: db damaged"); - xk = db_data.data; + + kc = calloc(1, sizeof(struct pefs_keychain)); + if (kc == NULL) + err(EX_OSERR, "calloc"); + + memcpy(&kc->kc_key, db_data.data, sizeof(struct pefs_xkey)); + error = pefs_key_decrypt(&kc->kc_key, &kc_parent->kc_key); + if (error) + break; + if (pefs_alg_name(kc->kc_key.pxk_alg) == NULL) { + bzero(&kc->kc_key, sizeof(struct pefs_xkey)); + warn("keychain %016jx -> %016jx: invalid algorithm (decyption failed)", + pefs_keyid_as_int(kc_parent->kc_key.pxk_keyid), + pefs_keyid_as_int(kc->kc_key.pxk_keyid)); + } + TAILQ_INSERT_TAIL(kch, kc, kc_entry); } - return (kc_head); + return (error); } -struct pefs_keychain * -pefs_keychain_get(const char *filesystem, int flags, struct pefs_xkey *xk) +int +pefs_keychain_get(struct pefs_keychain_head *kch, const char *filesystem, + int flags, struct pefs_xkey *xk) { struct pefs_keychain *kc; DB *db; + int error; - assert(filesystem != NULL && xk != NULL); + assert(filesystem != NULL && kch != NULL && xk != NULL); - if (flags == 0) { - kc = calloc(1, sizeof(struct pefs_keychain)); - if (kc == NULL) - err(EX_OSERR, "calloc"); - kc->kc_key = *xk; + TAILQ_INIT(kch); - return (kc); - } + kc = calloc(1, sizeof(struct pefs_keychain)); + if (kc == NULL) + err(EX_OSERR, "calloc"); + kc->kc_key = *xk; + TAILQ_INSERT_HEAD(kch, kc, kc_entry); db = keychain_dbopen(filesystem, flags, O_RDONLY); if (db == NULL) { if (flags & PEFS_KEYCHAIN_IGNORE_MISSING) - return (pefs_keychain_get(filesystem, 0, xk)); - return (NULL); + return (0); + return (ENOENT); } - kc = pefs_keychain_get_db(db, xk); + error = pefs_keychain_get_db(db, kch); db->close(db); - if (kc == NULL) { + if (error) { if (flags & PEFS_KEYCHAIN_USE) errx(EX_DATAERR, "keychain: Key not found %016jx", pefs_keyid_as_int(xk->pxk_keyid)); - else if (flags & PEFS_KEYCHAIN_IGNORE_MISSING) - return (pefs_keychain_get(filesystem, 0, xk)); } - return (kc); + return (0); } int pefs_keychain_set(const char *filesystem, struct pefs_xkey *xk, struct pefs_xkey *xknext) { + struct pefs_xkey k; DBT db_key, db_data; DB *db; int error; + k = *xknext; + if (pefs_key_encrypt(&k, xk) != 0) + return (-1); + db = keychain_dbopen(filesystem, PEFS_KEYCHAIN_USE, O_RDWR | O_CREAT); if (db == NULL) return (-1); + + db_data.data = &k; + db_data.size = sizeof(struct pefs_xkey); db_key.data = xk->pxk_keyid; db_key.size = PEFS_KEYID_SIZE; - db_data.data = xknext; - db_data.size = sizeof(struct pefs_xkey); error = db->put(db, &db_key, &db_data, R_NOOVERWRITE); + bzero(&k, sizeof(struct pefs_xkey)); if (error != 0) { if (error == -1) warn("keychain"); ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_keychain.h#2 (text+ko) ==== @@ -26,17 +26,23 @@ * $FreeBSD$ */ +#include + #define PEFS_KEYCHAIN_USE 0x0001 #define PEFS_KEYCHAIN_IGNORE_MISSING 0x0002 struct pefs_keychain { + TAILQ_ENTRY(pefs_keychain) kc_entry; struct pefs_xkey kc_key; - struct pefs_keychain *kc_next; }; -struct pefs_keychain * pefs_keychain_get(const char *filesystem, int flags, struct pefs_xkey *xk); -int pefs_keychain_set(const char *filesystem, struct pefs_xkey *xk, struct pefs_xkey *xknext); -int pefs_keychain_del(const char *filesystem, struct pefs_xkey *xk); -void pefs_keychain_free(struct pefs_keychain *kc); +TAILQ_HEAD(pefs_keychain_head, pefs_keychain); + +int pefs_keychain_get(struct pefs_keychain_head *kch, + const char *filesystem, int flags, struct pefs_xkey *xk); +int pefs_keychain_set(const char *filesystem, struct pefs_xkey *xk, + struct pefs_xkey *xknext); +int pefs_keychain_del(const char *filesystem, struct pefs_xkey *xk); +void pefs_keychain_free(struct pefs_keychain_head *kch); ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs.h#8 (text+ko) ==== @@ -47,7 +47,7 @@ #define PEFS_ALG_SALSA20 1 #define PEFS_TWEAK_SIZE 8 -#define PEFS_KEY_BITS 256 +#define PEFS_KEY_BITS 512 #define PEFS_KEY_SIZE (PEFS_KEY_BITS / 8) #define PEFS_KEYID_SIZE 8 #define PEFS_NAME_CSUM_SIZE 2 @@ -164,7 +164,6 @@ int pefs_node_get(struct mount *mp, struct vnode *lvp, struct vnode *ldvp, struct vnode **vpp, struct ucred *cred, struct pefs_tkey *ptk); void pefs_node_free(struct pefs_node *xp); -int pefs_node_lookup_name(struct vnode *lvp, struct vnode *ldvp, struct ucred *cred, char *encname, int *encname_len); struct pefs_key * pefs_node_key(struct pefs_node *pn); struct pefs_ctx * pefs_ctx_get(void); @@ -194,7 +193,6 @@ void* pefs_chunk_pullup(struct pefs_chunk *pc, size_t size); struct uio * pefs_chunk_uio(struct pefs_chunk *pc, off_t uio_offset, enum uio_rw uio_rw); struct uio * pefs_chunk_uio_range(struct pefs_chunk *pc, size_t skip, size_t size, off_t uio_offset, enum uio_rw uio_rw); -void* pefs_chunk_get(struct pefs_chunk *pc, size_t *size, long *_state); void pefs_chunk_zero(struct pefs_chunk *pc); int pefs_chunk_copy(struct pefs_chunk *pc, size_t skip, struct uio *uio); void pefs_chunk_crop(struct pefs_chunk *pc, size_t skip_begin, size_t skip_end); @@ -228,7 +226,7 @@ #ifdef PEFS_DEBUG #define PEFSDEBUG(format, args...) printf(format ,## args) #else -#define PEFSDEBUG(format, args...) +#define PEFSDEBUG(format, args...) do { } while (0) #endif /* PEFS_DEBUG */ #endif /* _KERNEL */ ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#6 (text+ko) ==== @@ -79,7 +79,7 @@ struct pefs_ctx * pefs_ctx_get(void) { - return uma_zalloc(pefs_ctx_zone, M_WAITOK); + return (uma_zalloc(pefs_ctx_zone, M_WAITOK)); } void @@ -244,9 +244,7 @@ void pefs_data_encrypt(struct pefs_ctx *ctx, struct pefs_tkey *ptk, off_t offset, struct pefs_chunk *pc) { - long arg = 0; - char *mem; - size_t size; + struct iovec *iov; int free_ctx = 0; if (ptk->ptk_key == NULL) { @@ -260,11 +258,9 @@ salsa20_keysetup(&ctx->pctx_salsa, ptk->ptk_key->pk_data, PEFS_KEY_BITS); salsa20_ivsetup(&ctx->pctx_salsa, ptk->ptk_tweak, offset); - while (1) { - mem = pefs_chunk_get(pc, &size, &arg); - if (mem == NULL) - break; - salsa20_crypt(&ctx->pctx_salsa, mem, mem, size); + for (iov = pc->pc_iov; iov < pc->pc_iov + pc->pc_iovcnt; iov++) { + salsa20_crypt(&ctx->pctx_salsa, iov->iov_base, iov->iov_base, + iov->iov_len); } if (free_ctx) @@ -356,7 +352,7 @@ free(buf, M_PEFSBUF); - return r; + return (r); } int @@ -395,7 +391,6 @@ else dec = plain; do { - PEFSDEBUG("pefs_name_decrypt: check key %p\n", ki); salsa20_keysetup(&ctx->pctx_salsa, ki->pk_name, PEFS_KEY_BITS); salsa20_ivsetup(&ctx->pctx_salsa, magic_tweak_name, 0); salsa20_crypt(&ctx->pctx_salsa, plain, dec, r); @@ -411,7 +406,6 @@ if (!ki_rev) { ki = TAILQ_NEXT(ki, pk_entry); - PEFSDEBUG("pefs_name_decrypt: next key %p\n", ki); if (ki == NULL) { ki_rev = 1; ki = pk; @@ -419,7 +413,6 @@ } if (ki_rev) { ki = TAILQ_PREV(ki, pefs_key_head, pk_entry); - PEFSDEBUG("pefs_name_decrypt: prev key %p\n", ki); } } while (ki != NULL); @@ -438,8 +431,8 @@ memcpy(plain, dec + PEFS_TWEAK_SIZE, r); plain[r] = '\0'; - PEFSDEBUG("pefs_name_decrypt: %d; %.*s => %.*s\n", r, enc_len, enc, r < 0 ? 0 : r, plain); + // PEFSDEBUG("pefs_name_decrypt: %d; %.*s => %.*s\n", r, enc_len, enc, r < 0 ? 0 : r, plain); - return r; + return (r); } ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_subr.c#8 (text+ko) ==== @@ -191,7 +191,7 @@ vput(vp); } -int +static int pefs_node_lookup_name(struct vnode *lvp, struct vnode *ldvp, struct ucred *cred, char *encname, int *encname_len) { struct vnode *nldvp; @@ -229,7 +229,7 @@ encname[*encname_len] = '\0'; PEFSDEBUG("%s: len=%d %s\n", __func__, *encname_len, encname); - return 0; + return (0); } static int @@ -463,7 +463,7 @@ struct uio* pefs_chunk_uio(struct pefs_chunk *pc, off_t uio_offset, enum uio_rw uio_rw) { - return pefs_chunk_uio_range(pc, 0, pc->pc_size, uio_offset, uio_rw); + return (pefs_chunk_uio_range(pc, 0, pc->pc_size, uio_offset, uio_rw)); } struct uio* @@ -497,23 +497,6 @@ return (&pc->pc_uio); } -void* -pefs_chunk_get(struct pefs_chunk *pc, size_t *size, long *state) -{ - void *mem; - - if (!size || !state || *state < 0) - panic("pefs_chunk_get: invalid args"); - if (*state >= pc->pc_iovcnt) { - *size = 0; - return (NULL); - } - mem = pc->pc_iov[*state].iov_base; - *size = pc->pc_iov[*state].iov_len; - (*state)++; - return (mem); -} - void pefs_chunk_zero(struct pefs_chunk *pc) { @@ -653,6 +636,6 @@ a->pn_lowervp, vrefcnt(a->pn_lowervp), fil, lno); #endif - return a->pn_lowervp; + return (a->pn_lowervp); } #endif ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vfsops.c#7 (text+ko) ==== @@ -62,7 +62,7 @@ int error = 0; struct vnode *lowerrootvp, *vp; struct vnode *pm_rootvp; - struct pefs_mount *xmp; + struct pefs_mount *pm; char *target; int isvnunlocked = 0, len; struct nameidata nd, *ndp = &nd; @@ -129,16 +129,16 @@ return (EDEADLK); } - xmp = (struct pefs_mount *) malloc(sizeof(struct pefs_mount), - M_PEFSMNT, M_WAITOK | M_ZERO); /* XXX */ + pm = (struct pefs_mount *)malloc(sizeof(struct pefs_mount), M_PEFSMNT, + M_WAITOK | M_ZERO); - mtx_init(&xmp->pm_keys_lock, "pefs_mount lock", NULL, MTX_DEF); - TAILQ_INIT(&xmp->pm_keys); + mtx_init(&pm->pm_keys_lock, "pefs_mount lock", NULL, MTX_DEF); + TAILQ_INIT(&pm->pm_keys); /* * Save reference to underlying FS */ - xmp->pm_lowervfs = lowerrootvp->v_mount; + pm->pm_lowervfs = lowerrootvp->v_mount; /* * Save reference. Each mount also holds @@ -151,7 +151,7 @@ if (error) { VOP_UNLOCK(vp, 0); vrele(lowerrootvp); - free(xmp, M_PEFSMNT); /* XXX */ + free(pm, M_PEFSMNT); return (error); } @@ -161,7 +161,7 @@ */ pm_rootvp = vp; pm_rootvp->v_vflag |= VV_ROOT; - xmp->pm_rootvp = pm_rootvp; + pm->pm_rootvp = pm_rootvp; /* * Unlock the node (either the lower or the alias) @@ -176,7 +176,7 @@ MNT_ILOCK(mp); mp->mnt_kern_flag |= lowerrootvp->v_mount->mnt_kern_flag & MNTK_MPSAFE; MNT_IUNLOCK(mp); - mp->mnt_data = xmp; + mp->mnt_data = pm; vfs_getnewfsid(mp); vfs_mountedfrom(mp, target); @@ -214,7 +214,7 @@ pefs_key_remove_all(pm); mtx_destroy(&pm->pm_keys_lock); free(pm, M_PEFSMNT); - return 0; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 8 16:13:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 57DDF1065674; Sat, 8 Aug 2009 16:13:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19E15106566C for ; Sat, 8 Aug 2009 16:13:02 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E388E8FC15 for ; Sat, 8 Aug 2009 16:13:01 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78GD1c4040183 for ; Sat, 8 Aug 2009 16:13:01 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78GD1vM040181 for perforce@freebsd.org; Sat, 8 Aug 2009 16:13:01 GMT (envelope-from stas@freebsd.org) Date: Sat, 8 Aug 2009 16:13:01 GMT Message-Id: <200908081613.n78GD1vM040181@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167107 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 16:13:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=167107 Change 167107 by stas@stas_orion on 2009/08/08 16:12:11 - Fix the bug in Makefile I introduced yesterday that lead to programs being installed under the wrong name. Affected files ... .. //depot/projects/valgrind/Makefile.install.am#5 edit .. //depot/projects/valgrind/Makefile.tool-inplace.am#5 edit Differences ... ==== //depot/projects/valgrind/Makefile.install.am#5 (text+ko) ==== @@ -25,8 +25,8 @@ install-exec-local: if [ -n "$(noinst_PROGRAMS)" ] ; then \ for f in $(noinst_PROGRAMS); do \ - name=`echo $$f | $(SED) -E -e 's/-([^-]*-[^-\.]*)(.\.*)?$$/\2/'`; \ - plat=`echo $$f | $(SED) -E -e 's/^.*-([^-]*-[^-\.]*)(.\.*)?$$/\1/'`; \ + name=`echo $$f | $(SED) -E -e 's/-([^-]*-[^-\.]*)(\..*)?$$/\2/'`; \ + plat=`echo $$f | $(SED) -E -e 's/^.*-([^-]*-[^-\.]*)(\..*)?$$/\1/'`; \ $(mkinstalldirs) $(DESTDIR)$(valdir)/$$plat; \ $(INSTALL_PROGRAM) $$f $(DESTDIR)$(valdir)/$$plat/$$name; \ done ; \ @@ -34,8 +34,8 @@ if [ -n "$(noinst_LIBRARIES)" ] ; then \ for f in $(noinst_LIBRARIES) expr_wont_match_me; do \ if expr match $$f libcoregrind_ > /dev/null ; then \ - pU=`echo $$f | sed -e 's/libcoregrind_//g' -e 's/\.a//g'` ; \ - pD=`echo $$pU | sed -e 's/_/-/g'` ; \ + pU=`echo $$f | ${SED} -e 's/libcoregrind_//g' -e 's/\.a//g'` ; \ + pD=`echo $$pU | ${SED} -e 's/_/-/g'` ; \ $(INSTALL_DATA) $$f $(DESTDIR)$(valdir)/$$pD/libcoregrind.a ; \ $(INSTALL_DATA) @VEX_DIR@/libvex_$$pU.a \ $(DESTDIR)$(valdir)/$$pD/libvex.a ; \ ==== //depot/projects/valgrind/Makefile.tool-inplace.am#5 (text+ko) ==== @@ -5,8 +5,8 @@ all-local: if [ -n "$(noinst_PROGRAMS)" ] ; then \ for f in $(noinst_PROGRAMS); do \ - name=`echo $$f | $(SED) -E -e 's/-([^-]*-[^-\.]*)(.\.*)?$$/\2/'`; \ - plat=`echo $$f | $(SED) -E -e 's/^.*-([^-]*-[^-\.]*)(.\.*)?$$/\1/'`; \ + name=`echo $$f | $(SED) -E -e 's/-([^-]*-[^-\.]*)(\..*)?$$/\2/'`; \ + plat=`echo $$f | $(SED) -E -e 's/^.*-([^-]*-[^-\.]*)(\..*)?$$/\1/'`; \ mkdir -p $(inplacedir)/$$plat; \ rm -f $(inplacedir)/$$plat/$$name; \ ln -f -s ../../$(subdir)/$$f $(inplacedir)/$$plat/$$name; \ From owner-p4-projects@FreeBSD.ORG Sat Aug 8 17:38:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 591AE1065673; Sat, 8 Aug 2009 17:38:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18F4E106566B for ; Sat, 8 Aug 2009 17:38:36 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 071AC8FC1F for ; Sat, 8 Aug 2009 17:38:36 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78HcZdB057926 for ; Sat, 8 Aug 2009 17:38:35 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78HcZ97057924 for perforce@freebsd.org; Sat, 8 Aug 2009 17:38:35 GMT (envelope-from trasz@freebsd.org) Date: Sat, 8 Aug 2009 17:38:35 GMT Message-Id: <200908081738.n78HcZ97057924@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 167111 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 17:38:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=167111 Change 167111 by trasz@trasz_anger on 2009/08/08 17:37:52 Make enforcement code a little saner. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#49 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#49 (text+ko) ==== @@ -248,9 +248,13 @@ hrl_enforce_proc(struct proc *p, int resource, uint64_t amount) { int64_t available[HRL_RESOURCE_MAX]; - struct hrl_rule *rules[HRL_RESOURCE_MAX]; + struct hrl_rule *rules[HRL_RESOURCE_MAX], *rule; + struct hrl_limit *limit; struct sbuf *sb; + int should_deny = 0; + mtx_assert(&hrl_lock, MA_OWNED); + /* * XXX: Do this just before we start running on a CPU, not all the time. */ @@ -259,44 +263,74 @@ if (available[resource] >= amount) return (0); - switch (rules[resource]->hr_action) { - case HRL_ACTION_DENY: + /* + * It seems we've hit a limit. Figure out what to do. There may + * be more than one matching limit; go through all of them. Denial + * should be done last, after logging and sending signals. + */ + /* + * XXX: We should sort the rules somewhat, so that 'log' and 'sig' + * rules come before before 'deny', to spare iterations over + * the p_limits. + */ + LIST_FOREACH(limit, &p->p_limits, hl_next) { + rule = limit->hl_rule; + if (rule->hr_resource != resource) + continue; + if (rule->hr_amount < available[resource]); + continue; + if (rule->hr_amount > available[resource] + amount); + continue; + + /* + * This rule should apply to us. Behave accordingly. + */ + switch (rule->hr_action) { + case HRL_ACTION_DENY: + should_deny = 1; + break; + case HRL_ACTION_LOG: + sb = sbuf_new_auto(); + hrl_rule_to_sbuf(sb, rule); + sbuf_finish(sb); + printf("resource limit \"%s\" exceeded by process %d (%s), " + "uid %d\n", sbuf_data(sb), p->p_pid, p->p_comm, + p->p_ucred->cr_uid); + sbuf_delete(sb); + break; + case HRL_ACTION_SIGHUP: + hrl_deferred_psignal(p, SIGHUP); + break; + case HRL_ACTION_SIGINT: + hrl_deferred_psignal(p, SIGINT); + break; + case HRL_ACTION_SIGKILL: + hrl_deferred_psignal(p, SIGKILL); + break; + case HRL_ACTION_SIGSEGV: + hrl_deferred_psignal(p, SIGSEGV); + break; + case HRL_ACTION_SIGXCPU: + hrl_deferred_psignal(p, SIGXCPU); + break; + case HRL_ACTION_SIGXFSZ: + hrl_deferred_psignal(p, SIGXFSZ); + break; + default: + panic("hrl_enforce_proc: unknown action %d", + rule->hr_action); + } + } + + if (should_deny) { /* * Return fake error code; the caller should change it - * into proper one for the situation - EFSIZ, ENOMEM etc. + * into one proper for the situation - EFSIZ, ENOMEM etc. */ return (EDOOFUS); - case HRL_ACTION_LOG: - sb = sbuf_new_auto(); - hrl_rule_to_sbuf(sb, rules[resource]); - sbuf_finish(sb); - printf("resource limit \"%s\" exceeded by process %d (%s), " - "uid %d\n", sbuf_data(sb), p->p_pid, p->p_comm, - p->p_ucred->cr_uid); - sbuf_delete(sb); - return (0); - case HRL_ACTION_SIGHUP: - hrl_deferred_psignal(p, SIGHUP); - return (0); - case HRL_ACTION_SIGINT: - hrl_deferred_psignal(p, SIGINT); - return (0); - case HRL_ACTION_SIGKILL: - hrl_deferred_psignal(p, SIGKILL); - return (0); - case HRL_ACTION_SIGSEGV: - hrl_deferred_psignal(p, SIGSEGV); - return (0); - case HRL_ACTION_SIGXCPU: - hrl_deferred_psignal(p, SIGXCPU); - return (0); - case HRL_ACTION_SIGXFSZ: - hrl_deferred_psignal(p, SIGXFSZ); - return (0); - default: - panic("hrl_enforce_proc: unknown action %d", - rules[resource]->hr_action); } + + return (0); } /* @@ -304,10 +338,6 @@ * with amount of resource left before hitting next limit, and the second * with pointers to the limit to be hit. */ -/* - * XXX: We should sort the rules somewhat, so that 'log' rules are enforced - * before 'deny', if both are for the same subject, resource and amount. - */ static void hrl_compute_available(struct proc *p, int64_t (*availablep)[], struct hrl_rule *(*rulesp)[]) @@ -323,8 +353,6 @@ (*rulesp)[i] = NULL; } - mtx_assert(&hrl_lock, MA_OWNED); - LIST_FOREACH(limit, &p->p_limits, hl_next) { resource = limit->hl_rule->hr_resource; available = limit->hl_rule->hr_amount - From owner-p4-projects@FreeBSD.ORG Sat Aug 8 18:47:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 18F6E10656FC; Sat, 8 Aug 2009 18:47:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BC91610656F9 for ; Sat, 8 Aug 2009 18:47:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A9A708FC1F for ; Sat, 8 Aug 2009 18:47:51 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78Ilp4I063984 for ; Sat, 8 Aug 2009 18:47:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78Ilp4Z063982 for perforce@freebsd.org; Sat, 8 Aug 2009 18:47:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 8 Aug 2009 18:47:51 GMT Message-Id: <200908081847.n78Ilp4Z063982@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 167112 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 18:47:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=167112 Change 167112 by rwatson@rwatson_freebsd_capabilities on 2009/08/08 18:47:35 Fix merge of rtld.c: we do need load_object() when in capability mode. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#24 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#24 (text+ko) ==== @@ -123,8 +123,8 @@ static int load_needed_objects(Obj_Entry *); #ifndef IN_RTLD_CAP static int load_preload_objects(void); +#endif static Obj_Entry *load_object(const char *, const Obj_Entry *, int); -#endif static Obj_Entry *obj_from_addr(const void *); static void objlist_call_fini(Objlist *, bool, int *); static void objlist_call_init(Objlist *, int *); From owner-p4-projects@FreeBSD.ORG Sat Aug 8 19:34:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A3861065672; Sat, 8 Aug 2009 19:34:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A44D106566C for ; Sat, 8 Aug 2009 19:34:43 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 398FA8FC1D for ; Sat, 8 Aug 2009 19:34:43 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78JYggq068385 for ; Sat, 8 Aug 2009 19:34:42 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78JYgQ1068383 for perforce@freebsd.org; Sat, 8 Aug 2009 19:34:42 GMT (envelope-from stas@freebsd.org) Date: Sat, 8 Aug 2009 19:34:42 GMT Message-Id: <200908081934.n78JYgQ1068383@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167114 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 19:34:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=167114 Change 167114 by stas@stas_orion on 2009/08/08 19:34:20 - Do not try to read /proc/version on FreeBSD. Affected files ... .. //depot/projects/valgrind/coregrind/m_main.c#12 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_main.c#12 (text+ko) ==== @@ -919,6 +919,7 @@ * (HChar**) VG_(indexXA)( VG_(args_for_valgrind), i )); } +#if !defined(VGO_freebsd) VG_(message)(Vg_DebugMsg, "Contents of /proc/version:"); fd = VG_(open) ( "/proc/version", VKI_O_RDONLY, 0 ); if (fd.isError) { @@ -937,6 +938,7 @@ VG_(close)(fd.res); # undef BUF_LEN } +#endif VG_(machine_get_VexArchInfo)( &vex_arch, &vex_archinfo ); VG_(message)( From owner-p4-projects@FreeBSD.ORG Sat Aug 8 20:09:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E769D10656C6; Sat, 8 Aug 2009 20:09:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A642610656C2 for ; Sat, 8 Aug 2009 20:09:28 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 93AB08FC16 for ; Sat, 8 Aug 2009 20:09:28 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78K9S8K071832 for ; Sat, 8 Aug 2009 20:09:28 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78K9Kwr071826 for perforce@freebsd.org; Sat, 8 Aug 2009 20:09:20 GMT (envelope-from mav@freebsd.org) Date: Sat, 8 Aug 2009 20:09:20 GMT Message-Id: <200908082009.n78K9Kwr071826@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167115 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 20:09:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=167115 Change 167115 by mav@mav_mavbook on 2009/08/08 20:08:34 IFC Affected files ... .. //depot/projects/scottl-camlock/src/ObsoleteFiles.inc#11 integrate .. //depot/projects/scottl-camlock/src/UPDATING#12 integrate .. //depot/projects/scottl-camlock/src/contrib/bind9/CHANGES#5 integrate .. //depot/projects/scottl-camlock/src/contrib/bind9/bin/named/update.c#4 integrate .. //depot/projects/scottl-camlock/src/contrib/bind9/version#5 integrate .. //depot/projects/scottl-camlock/src/contrib/less/LICENSE#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.aut#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.dsb#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.dsg#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.dsu#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.in#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.o2e#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.o9c#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.o9u#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.wnb#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/Makefile.wnm#2 integrate .. //depot/projects/scottl-camlock/src/contrib/less/NEWS#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/README#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/brac.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/ch.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/charset.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/charset.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/cmd.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/cmdbuf.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/command.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/configure.ac#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/cvt.c#1 branch .. //depot/projects/scottl-camlock/src/contrib/less/decode.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/defines.ds#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/defines.o2#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/defines.o9#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/defines.wn#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/edit.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/filename.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/forwback.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/funcs.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/ifile.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/input.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/jump.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/less.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/less.man#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/less.nro#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lessecho.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lessecho.man#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lessecho.nro#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lesskey.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lesskey.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lesskey.man#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lesskey.nro#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lglob.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/line.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/linenum.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/lsystem.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/main.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/mark.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/mkhelp.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/optfunc.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/option.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/option.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/opttbl.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/os.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/output.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/pattern.c#1 branch .. //depot/projects/scottl-camlock/src/contrib/less/pattern.h#1 branch .. //depot/projects/scottl-camlock/src/contrib/less/pckeys.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/position.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/position.h#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/prompt.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/screen.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/scrsize.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/search.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/signal.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/tags.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/ttyin.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/less/version.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/openbsm/NEWS#3 integrate .. //depot/projects/scottl-camlock/src/contrib/openbsm/README#3 integrate .. //depot/projects/scottl-camlock/src/contrib/openbsm/VERSION#4 integrate .. //depot/projects/scottl-camlock/src/contrib/openbsm/config/config.h#4 integrate .. //depot/projects/scottl-camlock/src/contrib/openbsm/configure#4 integrate .. //depot/projects/scottl-camlock/src/contrib/openbsm/configure.ac#4 integrate .. //depot/projects/scottl-camlock/src/contrib/openbsm/etc/audit_event#4 integrate .. //depot/projects/scottl-camlock/src/contrib/openbsm/tools/audump.c#3 integrate .. //depot/projects/scottl-camlock/src/etc/portsnap.conf#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/Makefile#6 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/hostid#4 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/hostid_save#1 branch .. //depot/projects/scottl-camlock/src/etc/rc.d/zfs#4 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/zvol#1 branch .. //depot/projects/scottl-camlock/src/lib/libkvm/kvm_vnet.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb.3#4 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb.h#3 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb10.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb10.h#3 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb10_desc.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb10_io.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb20.3#2 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb20_compat01.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libusb/libusb20_int.h#3 integrate .. //depot/projects/scottl-camlock/src/sbin/ifconfig/ifieee80211.c#7 integrate .. //depot/projects/scottl-camlock/src/sbin/mount_nfs/mount_nfs.8#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/asmc.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/u3g.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/urtw.4#2 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/machdep.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#26 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#96 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_misc.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linprocfs/linprocfs.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_ioctl.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_socket.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_sockio.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#43 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/altq/altq/altq_subr.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/ipfilter/netinet/fil.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pf.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pf_if.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pf_ioctl.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pf_subr.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/rdma/rdma_cma.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/ddb/db_sym.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aac/aac.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_battery.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_cpu.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_dock.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_thermal.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/adb/adb_bus.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/alc/if_alc.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/amr/amr.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/dev/atkbdc/psm.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bktr/bktr_os.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/drm_drv.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ips/ips_pci.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_freebsd.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_freebsd.h#20 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_ioctl.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_library.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_library.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_pci.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_sbus.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_stds.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_target.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_target.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/ispmbox.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/ispreg.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/ispvar.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ispfw/asm_2300.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/ispfw/ispfw.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mfi/mfi.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mlx/mlx.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mmc/mmc.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pccbb/pccbb.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pst/pst-iop.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/rp/rp.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/hda/hdac.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/usb/uaudio.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/dev/twe/twe.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/at91dci.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/atmegadci.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/avr32dci.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci_pci.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/musb_otg.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohci.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohci_pci.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uhci.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uhci_pci.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/usb_controller.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uss820dci.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/input/ukbd.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/input/ums.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/usb_ethernet.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/u3g.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/ulpt.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_compat_linux.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_compat_linux.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_controller.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_dev.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_dev.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_device.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_handle_request.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_hid.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_hub.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_parse.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_request.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_transfer.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbdevs#28 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbdi.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_uath.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_upgt.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/xen/blkback/blkback.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/xen/netback/netback.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfs/nfsport.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clvnops.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/fs/unionfs/union_subr.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/i386/acpica/acpi_machdep.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/i386/bios/smapi.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/bios/smbios.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/bios/vpd.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/initcpu.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/machdep.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/pmap.c#31 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/vm_machdep.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/cpufunc.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/md_var.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/pmap.h#19 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/sf_buf.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/i386/xen/pmap.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_exec.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_jail.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_linker.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_poll.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_sysctl.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_uuid.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_vimage.c#10 delete .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sys_socket.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty_pts.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty_ttydisc.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/kern/uipc_domain.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/kern/uipc_socket.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/kern/uipc_syscalls.c#28 integrate .. //depot/projects/scottl-camlock/src/sys/kern/uipc_usrreq.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_lookup.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_mount.c#30 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_syscalls.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/modules/ispfw/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/net/bpf.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/net/bridgestp.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/net/flowtable.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/net/if.c#33 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_bridge.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_clone.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_ef.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_enc.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_epair.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_ethersubr.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_faith.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_gif.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_gre.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_llatbl.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_loop.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_mib.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_spppsubr.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_stf.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_tun.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_var.h#23 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_vlan.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/net/netisr.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/net/raw_cb.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/net/raw_usrreq.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/net/route.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/net/rtsock.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/net/vnet.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/net/vnet.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_ddb.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_freebsd.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_hwmp.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_ioctl.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_mesh.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_mesh.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_scan_sta.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/atm/ng_atm.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_base.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_bridge.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_eiface.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_ether.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_gif.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_iface.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_pipe.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_source.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/icmp6.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/icmp_var.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/if_ether.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/igmp.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_gif.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_mcast.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_pcb.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_pcb.h#19 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_proto.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_rmx.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_carp.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_divert.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_fastfwd.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_icmp.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_input.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_ipsec.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_mroute.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_options.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_output.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_var.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_fw2.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_fw_nat.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/raw_ip.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_auth.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_indata.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_os_bsd.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_sysctl.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_sysctl.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_uio.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctputil.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctputil.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_hostcache.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_input.c#29 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_offload.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_output.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_reass.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_sack.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_subr.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_syncache.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_timer.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_timewait.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_usrreq.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_var.h#25 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/udp_usrreq.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/udp_var.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/dest6.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/frag6.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/icmp6.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_gif.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_ifattach.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_pcb.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_proto.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_rmx.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_src.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_forward.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_input.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_ipsec.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_mroute.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_output.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/mld6.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/nd6.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/nd6_nbr.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/nd6_rtr.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/raw_ip6.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/route6.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/scope6.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/udp6_usrreq.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/ipsec.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/ipsec_input.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/ipsec_mbuf.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/ipsec_output.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/key.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/keysock.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/xform_ah.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/xform_esp.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/xform_ipcomp.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/xform_ipip.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/xform_tcp.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/bootp_subr.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_diskless.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_vnops.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/cbus/fdc.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_arg.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_bsm.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_bsm_klib.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_private.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/sys/bus.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/sys/param.h#29 integrate .. //depot/projects/scottl-camlock/src/sys/sys/priv.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/sys/vimage.h#10 delete .. //depot/projects/scottl-camlock/src/sys/xen/xenbus/xenbus_probe.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/gzip/gzip.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/less/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/acpi/acpidump/acpi.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/acpi/acpidump/acpidump.h#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/getpmac/getpmac.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/jail/jail.c#6 integrate Differences ... ==== //depot/projects/scottl-camlock/src/ObsoleteFiles.inc#11 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.204 2009/07/20 19:51:47 antoine Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.205 2009/08/01 19:26:27 rwatson Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20090801: vimage.h removed in favour of vnet.h +OLD_FILES+=usr/include/sys/vimage.h # 20090719: library version bump for 8.0 OLD_LIBS+=lib/libalias.so.6 OLD_LIBS+=lib/libavl.so.1 ==== //depot/projects/scottl-camlock/src/UPDATING#12 (text+ko) ==== @@ -65,9 +65,9 @@ 20090624: The ABI of various structures related to the SYSV IPC API have - been changed. As a result, the COMPAT_FREEBSD[456] kernel - options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version - to 800100. + been changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 + kernel options now all require COMPAT_FREEBSD7. + Bump __FreeBSD_version to 800100. 20090622: Layout of struct vnet has changed as routing related variables @@ -1665,4 +1665,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.631 2009/07/19 17:25:24 kensmith Exp $ +$FreeBSD: src/UPDATING,v 1.632 2009/07/26 20:12:06 kib Exp $ ==== //depot/projects/scottl-camlock/src/contrib/bind9/CHANGES#5 (text+ko) ==== @@ -1,3 +1,7 @@ + --- 9.6.1-P1 released --- + +2640. [security] A specially crafted update packet will cause named + to exit. [RT #20000] --- 9.6.1 released --- ==== //depot/projects/scottl-camlock/src/contrib/bind9/bin/named/update.c#4 (text+ko) ==== @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: update.c,v 1.151.12.5 2009/04/30 07:03:37 marka Exp $ */ +/* $Id: update.c,v 1.151.12.5.12.1 2009/07/28 14:18:08 marka Exp $ */ #include @@ -979,7 +979,11 @@ if (type == dns_rdatatype_rrsig || type == dns_rdatatype_sig) covers = dns_rdata_covers(&t->rdata); - else + else if (type == dns_rdatatype_any) { + dns_db_detachnode(db, &node); + dns_diff_clear(&trash); + return (DNS_R_NXRRSET); + } else covers = 0; /* ==== //depot/projects/scottl-camlock/src/contrib/bind9/version#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $Id: version,v 1.43.12.5 2009/06/04 04:02:41 marka Exp $ +# $Id: version,v 1.43.12.5.8.1 2009/07/28 14:18:08 marka Exp $ # # This file must follow /bin/sh rules. It is imported directly via # configure. @@ -6,5 +6,5 @@ MAJORVER=9 MINORVER=6 PATCHVER=1 -RELEASETYPE= -RELEASEVER= +RELEASETYPE=-P +RELEASEVER=1 ==== //depot/projects/scottl-camlock/src/contrib/less/LICENSE#3 (text+ko) ==== @@ -2,7 +2,7 @@ ------------ Less -Copyright (C) 1984-2008 Mark Nudelman +Copyright (C) 1984-2009 Mark Nudelman Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.aut#2 (text+ko) ==== @@ -10,10 +10,10 @@ SRC = \ main.c screen.c brac.c ch.c charset.c cmdbuf.c \ - command.c decode.c edit.c filename.c forwback.c \ + command.c cvt.c decode.c edit.c filename.c forwback.c \ help.c ifile.c input.c jump.c line.c linenum.c \ lsystem.c mark.c optfunc.c option.c opttbl.c os.c \ - output.c position.c prompt.c search.c signal.c \ + output.c pattern.c position.c prompt.c search.c signal.c \ tags.c ttyin.c version.c DISTFILES_W = \ defines.ds Makefile.dsb Makefile.dsg Makefile.dsu \ @@ -24,7 +24,8 @@ ${SRC} regexp.c regexp.h \ COPYING INSTALL LICENSE Makefile.in Makefile.aut NEWS README \ configure configure.ac lesskey.c lessecho.c scrsize.c \ - charset.h cmd.h funcs.h lglob.h less.h lesskey.h option.h pckeys.h position.h \ + charset.h cmd.h funcs.h lglob.h less.h lesskey.h option.h \ + pckeys.h pattern.h position.h \ install.sh defines.h.in mkinstalldirs \ less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man \ less.hlp \ @@ -109,6 +110,8 @@ cd $$REL; chmod +w ${DISTFILES_W}; cd ..; \ echo "Creating release/$$REL/$$REL.tar.gz"; \ tar -cf - $$REL | gzip -c >release/$$REL/$$REL.tar.gz; \ + echo "Signing release/$$REL/$$REL.tar.gz"; \ + gpg --detach-sign release/$$REL/$$REL.tar.gz; \ echo "Creating release/$$REL/$$REL.zip"; \ zip -rq release/$$REL/$$REL.zip $$REL; \ rm -rf $$REL ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.dsb#2 (text+ko) ==== @@ -18,12 +18,13 @@ .c.obj: $(CC) -c -I. $(CPPFLAGS) $(CFLAGS) $< -OBJ = main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj command.obj \ - decode.obj edit.obj filename.obj forwback.obj help.obj ifile.obj \ - input.obj jump.obj line.obj linenum.obj lsystem.obj \ - mark.obj optfunc.obj option.obj opttbl.obj os.obj output.obj \ - position.obj prompt.obj search.obj signal.obj tags.obj \ - ttyin.obj version.obj +OBJ = \ + main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj \ + command.obj cvt.obj decode.obj edit.obj filename.obj forwback.obj \ + help.obj ifile.obj input.obj jump.obj line.obj linenum.obj \ + lsystem.obj mark.obj optfunc.obj option.obj opttbl.obj os.obj \ + output.obj pattern.obj position.obj prompt.obj search.obj signal.obj \ + tags.obj ttyin.obj version.obj all: less$(EXT) lesskey$(EXT) ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.dsg#2 (text+ko) ==== @@ -33,11 +33,12 @@ .c.o: ${CC} -I. ${CFLAGS_COMPILE_ONLY} -DBINDIR=\"${bindir}\" -DSYSDIR=\"${sysconfdir}\" ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} all: less lesskey lessecho ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.dsu#2 (text+ko) ==== @@ -27,12 +27,13 @@ .c.obj: $(CC) -c -I. -I$(INCDIR) $(CPPFLAGS) $(CFLAGS) $< -OBJ = main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj command.obj \ - decode.obj edit.obj filename.obj forwback.obj help.obj ifile.obj \ - input.obj jump.obj line.obj linenum.obj lsystem.obj \ - mark.obj optfunc.obj option.obj opttbl.obj os.obj output.obj \ - position.obj prompt.obj search.obj signal.obj tags.obj \ - ttyin.obj version.obj +OBJ = \ + main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj \ + command.obj cvt.obj decode.obj edit.obj filename.obj forwback.obj \ + help.obj ifile.obj input.obj jump.obj line.obj linenum.obj \ + lsystem.obj mark.obj optfunc.obj option.obj opttbl.obj os.obj \ + output.obj pattern.obj position.obj prompt.obj search.obj signal.obj \ + tags.obj ttyin.obj version.obj all: less lesskey ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.in#3 (text+ko) ==== @@ -43,11 +43,12 @@ .c.o: ${CC} -I. ${CFLAGS_COMPILE_ONLY} -DBINDIR=\"${bindir}\" -DSYSDIR=\"${sysconfdir}\" ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} @REGEX_O@ all: less$(EXEEXT) lesskey$(EXEEXT) lessecho$(EXEEXT) ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.o2e#2 (text+ko) ==== @@ -18,11 +18,12 @@ .c.${O}: ${CC} -c ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} regexp.${O} all: less.exe lesskey.exe scrsize.exe ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.o9c#2 (text+ko) ==== @@ -22,11 +22,12 @@ .c.${O}: ${CC} ${CFLAGS_COMPILE_ONLY} ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} regexp.${O} all: less lessecho lesskey ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.o9u#2 (text+ko) ==== @@ -21,11 +21,12 @@ .c.${O}: ${CC} ${CFLAGS_COMPILE_ONLY} ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ - command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ +OBJ = \ + main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \ + command.${O} cvt.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \ help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \ lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \ - output.${O} position.${O} prompt.${O} search.${O} signal.${O} \ + output.${O} pattern.${O} position.${O} prompt.${O} search.${O} signal.${O} \ tags.${O} ttyin.${O} version.${O} regexp.${O} all: less lesskey ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.wnb#2 (text+ko) ==== @@ -25,12 +25,13 @@ .c.obj: ${CC} -c -I. ${CPPFLAGS} ${CFLAGS} $< -OBJ = main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj command.obj \ - decode.obj edit.obj filename.obj forwback.obj help.obj ifile.obj \ - input.obj jump.obj line.obj linenum.obj lsystem.obj \ - mark.obj optfunc.obj option.obj opttbl.obj os.obj output.obj \ - position.obj prompt.obj search.obj signal.obj tags.obj \ - ttyin.obj version.obj regexp.obj +OBJ = \ + main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj \ + command.obj cvt.obj decode.obj edit.obj filename.obj forwback.obj \ + help.obj ifile.obj input.obj jump.obj line.obj linenum.obj \ + lsystem.obj mark.obj optfunc.obj option.obj opttbl.obj os.obj \ + output.obj pattern.obj position.obj prompt.obj search.obj signal.obj \ + tags.obj ttyin.obj version.obj regexp.obj all: less lesskey lessecho ==== //depot/projects/scottl-camlock/src/contrib/less/Makefile.wnm#2 (text+ko) ==== @@ -23,12 +23,13 @@ .c.obj: $(CC) $(CFLAGS) $< -OBJ = main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj command.obj \ - decode.obj edit.obj filename.obj forwback.obj help.obj ifile.obj \ - input.obj jump.obj line.obj linenum.obj lsystem.obj \ - mark.obj optfunc.obj option.obj opttbl.obj os.obj output.obj \ - position.obj prompt.obj search.obj signal.obj tags.obj \ - ttyin.obj version.obj regexp.obj +OBJ = \ + main.obj screen.obj brac.obj ch.obj charset.obj cmdbuf.obj \ + command.obj cvt.obj decode.obj edit.obj filename.obj forwback.obj \ + help.obj ifile.obj input.obj jump.obj line.obj linenum.obj \ + lsystem.obj mark.obj optfunc.obj option.obj opttbl.obj os.obj \ + output.obj pattern.obj position.obj prompt.obj search.obj signal.obj \ + tags.obj ttyin.obj version.obj regexp.obj all: less.exe lesskey.exe ==== //depot/projects/scottl-camlock/src/contrib/less/NEWS#3 (text+ko) ==== @@ -12,6 +12,18 @@ ====================================================================== + Major changes between "less" versions 429 and 436 + +* Don't pass "-" to non-pipe LESSOPEN unless it starts with "-". + +* Allow a fraction as the argument to the -# (--shift) option. + +* Fix highlight bug when underlined/overstruck text matches at end of line. + +* Fix non-regex searches with ctrl-R. + +====================================================================== + Major changes between "less" versions 424 and 429 * LESSOPEN pipe will now be used on standard input, if the LESSOPEN ==== //depot/projects/scottl-camlock/src/contrib/less/README#3 (text+ko) ==== @@ -1,7 +1,7 @@ - Less, version 429 + Less, version 436 - This is the distribution of less, version 429, released 11 Apr 2009. + This is the distribution of less, version 436, released 07 Jul 2009. This program is part of the GNU project (http://www.gnu.org). This program is free software. You may redistribute it and/or ==== //depot/projects/scottl-camlock/src/contrib/less/brac.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/ch.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/charset.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. @@ -425,7 +425,7 @@ c &= 0377; if ((c < 128 || !utf_mode) && !control_char(c)) - SNPRINTF1(buf, sizeof(buf), "%c", c); + SNPRINTF1(buf, sizeof(buf), "%c", (int) c); else if (c == ESC) strcpy(buf, "ESC"); #if IS_EBCDIC_HOST @@ -442,7 +442,7 @@ "..V....D....TU.Z"[c]); #else else if (c < 128 && !control_char(c ^ 0100)) - SNPRINTF1(buf, sizeof(buf), "^%c", c ^ 0100); + SNPRINTF1(buf, sizeof(buf), "^%c", (int) (c ^ 0100)); #endif else SNPRINTF1(buf, sizeof(buf), binfmt, c); ==== //depot/projects/scottl-camlock/src/contrib/less/charset.h#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2008 Mark Nudelman + * Copyright (C) 2005-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/cmd.h#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/cmdbuf.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/command.c#3 (text+ko) ==== @@ -1,6 +1,6 @@ -/* $FreeBSD: src/contrib/less/command.c,v 1.10 2009/05/09 01:35:27 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/command.c,v 1.11 2009/07/29 09:20:32 delphij Exp $ */ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/configure.ac#3 (text+ko) ==== @@ -1,6 +1,6 @@ # Process this file with autoconf to produce a configure script. -# Copyright (C) 1984-2008 Mark Nudelman +# Copyright (C) 1984-2009 Mark Nudelman # # You may distribute under the terms of either the GNU General Public # License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/decode.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/defines.ds#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/defines.o2#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/defines.o9#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/defines.wn#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/edit.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/filename.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. @@ -843,17 +843,17 @@ #else lessopen++; returnfd = 1; - if (*lessopen == '-') { - /* - * Lessopen preprocessor will accept "-" as a filename. - */ - lessopen++; - } else { - if (strcmp(filename, "-") == 0) - return (NULL); - } #endif } + if (*lessopen == '-') { + /* + * Lessopen preprocessor will accept "-" as a filename. + */ + lessopen++; + } else { + if (strcmp(filename, "-") == 0) + return (NULL); + } len = strlen(lessopen) + strlen(filename) + 2; cmd = (char *) ecalloc(len, sizeof(char)); ==== //depot/projects/scottl-camlock/src/contrib/less/forwback.c#3 (text+ko) ==== @@ -1,6 +1,6 @@ -/* $FreeBSD: src/contrib/less/forwback.c,v 1.8 2009/05/09 01:35:27 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/forwback.c,v 1.9 2009/07/29 09:20:32 delphij Exp $ */ /* - * Copyright (C) 1984-2008 Mark Nudelman + * Copyright (C) 1984-2009 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. ==== //depot/projects/scottl-camlock/src/contrib/less/funcs.h#3 (text+ko) ==== @@ -83,6 +83,9 @@ public void ungetcc (); public void ungetsc (); public void commands (); + public int cvt_length (); + public int * cvt_alloc_chpos (); + public void cvt_text (); public void init_cmds (); public void add_fcmd_table (); public void add_ecmd_table (); @@ -193,6 +196,8 @@ public void opt_l (); public void opt_j (); public void calc_jump_sline (); + public void opt_shift (); + public void calc_shift_count (); public void opt_k (); public void opt_t (); public void opt__T (); @@ -233,6 +238,10 @@ public void error (); public void ierror (); public int query (); + public int compile_pattern (); + public void uncompile_pattern (); + public int is_null_pattern (); + public int match_pattern (); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 8 21:56:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 90C71106566C; Sat, 8 Aug 2009 21:56:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4DD63106564A for ; Sat, 8 Aug 2009 21:56:25 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3BF9E8FC19 for ; Sat, 8 Aug 2009 21:56:25 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78LuPHu090641 for ; Sat, 8 Aug 2009 21:56:25 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78LuPWw090639 for perforce@freebsd.org; Sat, 8 Aug 2009 21:56:25 GMT (envelope-from mav@freebsd.org) Date: Sat, 8 Aug 2009 21:56:25 GMT Message-Id: <200908082156.n78LuPWw090639@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167116 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 21:56:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=167116 Change 167116 by mav@mav_mavbook on 2009/08/08 21:55:55 Remove most of request->dev references from low-level drivers code, preparing ground for creating CAM wrapper. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#20 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.h#16 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-dma.c#12 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-lowlevel.c#11 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-pci.c#13 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#15 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-sata.c#5 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-ahci.c#7 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-intel.c#7 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-marvell.c#6 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-promise.c#6 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-serverworks.c#5 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-siliconimage.c#6 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#20 (text+ko) ==== @@ -802,10 +802,10 @@ void ata_modify_if_48bit(struct ata_request *request) { - struct ata_channel *ch = device_get_softc(device_get_parent(request->dev)); + struct ata_channel *ch = device_get_softc(request->parent); struct ata_device *atadev = device_get_softc(request->dev); - atadev->flags &= ~ATA_D_48BIT_ACTIVE; + request->flags &= ~ATA_R_48BIT; if (((request->u.ata.lba + request->u.ata.count) >= ATA_MAX_28BIT_LBA || request->u.ata.count > 256) && @@ -879,7 +879,7 @@ default: return; } - atadev->flags |= ATA_D_48BIT_ACTIVE; + request->flags |= ATA_R_48BIT; } else if (atadev->param.support.command2 & ATA_SUPPORT_ADDRESS48) { @@ -897,7 +897,7 @@ default: return; } - atadev->flags |= ATA_D_48BIT_ACTIVE; + request->flags |= ATA_R_48BIT; } } ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.h#16 (text+ko) ==== @@ -355,6 +355,7 @@ struct ata_request { device_t dev; /* device handle */ device_t parent; /* channel handle */ + int unit; /* physical unit */ union { struct { u_int8_t command; /* command reg */ @@ -380,6 +381,7 @@ #define ATA_R_DMA 0x00000010 #define ATA_R_QUIET 0x00000020 #define ATA_R_TIMEOUT 0x00000040 +#define ATA_R_48BIT 0x00000080 #define ATA_R_ORDERED 0x00000100 #define ATA_R_AT_HEAD 0x00000200 @@ -440,7 +442,6 @@ #define ATA_D_USE_CHS 0x0001 #define ATA_D_MEDIA_CHANGED 0x0002 #define ATA_D_ENC_PRESENT 0x0004 -#define ATA_D_48BIT_ACTIVE 0x0008 }; /* structure for holding DMA Physical Region Descriptors (PRD) entries */ ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-dma.c#12 (text+ko) ==== @@ -256,37 +256,36 @@ ata_dmaload(struct ata_request *request, void *addr, int *entries) { struct ata_channel *ch = device_get_softc(request->parent); - struct ata_device *atadev = device_get_softc(request->dev); struct ata_dmasetprd_args dspa; int error; ATA_DEBUG_RQ(request, "dmaload"); if (request->dma) { - device_printf(request->dev, + device_printf(request->parent, "FAILURE - already active DMA on this device\n"); return EIO; } if (!request->bytecount) { - device_printf(request->dev, + device_printf(request->parent, "FAILURE - zero length DMA transfer attempted\n"); return EIO; } if (((uintptr_t)(request->data) & (ch->dma.alignment - 1)) || (request->bytecount & (ch->dma.alignment - 1))) { - device_printf(request->dev, + device_printf(request->parent, "FAILURE - non aligned DMA transfer attempted\n"); return EIO; } if (request->bytecount > ch->dma.max_iosize) { - device_printf(request->dev, + device_printf(request->parent, "FAILURE - oversized DMA transfer attempt %d > %d\n", request->bytecount, ch->dma.max_iosize); return EIO; } /* set our slot, unit for simplicity XXX SOS NCQ will change that */ - request->dma = &ch->dma.slot[atadev->unit]; + request->dma = &ch->dma.slot[request->unit]; if (addr) dspa.dmatab = addr; @@ -297,7 +296,7 @@ request->data, request->bytecount, ch->dma.setprd, &dspa, BUS_DMA_NOWAIT)) || (error = dspa.error)) { - device_printf(request->dev, "FAILURE - load data\n"); + device_printf(request->parent, "FAILURE - load data\n"); goto error; } ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-lowlevel.c#11 (text+ko) ==== @@ -47,7 +47,7 @@ /* prototypes */ static int ata_generic_status(device_t dev); -static int ata_wait(struct ata_channel *ch, struct ata_device *, u_int8_t); +static int ata_wait(struct ata_channel *ch, int unit, u_int8_t); static void ata_pio_read(struct ata_request *, int); static void ata_pio_write(struct ata_request *, int); static void ata_tf_read(struct ata_request *); @@ -77,7 +77,6 @@ ata_begin_transaction(struct ata_request *request) { struct ata_channel *ch = device_get_softc(request->parent); - struct ata_device *atadev = device_get_softc(request->dev); int dummy, error; ATA_DEBUG_RQ(request, "begin transaction"); @@ -101,7 +100,7 @@ /* issue command */ if (ch->hw.command(request)) { - device_printf(request->dev, "error issuing %s command\n", + device_printf(request->parent, "error issuing %s command\n", ata_cmd2str(request)); request->result = EIO; goto begin_finished; @@ -122,8 +121,8 @@ /* if write command output the data */ if (write) { - if (ata_wait(ch, atadev, (ATA_S_READY | ATA_S_DRQ)) < 0) { - device_printf(request->dev, + if (ata_wait(ch, request->unit, (ATA_S_READY | ATA_S_DRQ)) < 0) { + device_printf(request->parent, "timeout waiting for write DRQ\n"); request->result = EIO; goto begin_finished; @@ -137,14 +136,14 @@ case ATA_R_DMA: /* check sanity, setup SG list and DMA engine */ if ((error = ch->dma.load(request, NULL, &dummy))) { - device_printf(request->dev, "setting up DMA failed\n"); + device_printf(request->parent, "setting up DMA failed\n"); request->result = error; goto begin_finished; } /* issue command */ if (ch->hw.command(request)) { - device_printf(request->dev, "error issuing %s command\n", + device_printf(request->parent, "error issuing %s command\n", ata_cmd2str(request)); request->result = EIO; goto begin_finished; @@ -152,7 +151,7 @@ /* start DMA engine */ if (ch->dma.start && ch->dma.start(request)) { - device_printf(request->dev, "error starting DMA\n"); + device_printf(request->parent, "error starting DMA\n"); request->result = EIO; goto begin_finished; } @@ -162,7 +161,7 @@ case ATA_R_ATAPI: /* is this just a POLL DSC command ? */ if (request->u.atapi.ccb[0] == ATAPI_POLL_DSC) { - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(atadev->unit)); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(request->unit)); DELAY(10); if (!(ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_DSC)) request->result = EBUSY; @@ -171,7 +170,7 @@ /* start ATAPI operation */ if (ch->hw.command(request)) { - device_printf(request->dev, "error issuing ATA PACKET command\n"); + device_printf(request->parent, "error issuing ATA PACKET command\n"); request->result = EIO; goto begin_finished; } @@ -181,7 +180,7 @@ case ATA_R_ATAPI|ATA_R_DMA: /* is this just a POLL DSC command ? */ if (request->u.atapi.ccb[0] == ATAPI_POLL_DSC) { - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(atadev->unit)); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(request->unit)); DELAY(10); if (!(ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_DSC)) request->result = EBUSY; @@ -190,14 +189,14 @@ /* check sanity, setup SG list and DMA engine */ if ((error = ch->dma.load(request, NULL, &dummy))) { - device_printf(request->dev, "setting up DMA failed\n"); + device_printf(request->parent, "setting up DMA failed\n"); request->result = error; goto begin_finished; } /* start ATAPI operation */ if (ch->hw.command(request)) { - device_printf(request->dev, "error issuing ATA PACKET command\n"); + device_printf(request->parent, "error issuing ATA PACKET command\n"); request->result = EIO; goto begin_finished; } @@ -266,8 +265,8 @@ if (request->u.ata.command != ATA_ATAPI_IDENTIFY) flags |= ATA_S_READY; - if (ata_wait(ch, atadev, flags) < 0) { - device_printf(request->dev, + if (ata_wait(ch, request->unit, flags) < 0) { + device_printf(request->parent, "timeout waiting for read DRQ\n"); request->result = EIO; goto end_finished; @@ -290,8 +289,8 @@ if (request->flags & ATA_R_WRITE) { /* if we get an error here we are done with the HW */ - if (ata_wait(ch, atadev, (ATA_S_READY | ATA_S_DRQ)) < 0) { - device_printf(request->dev, + if (ata_wait(ch, request->unit, (ATA_S_READY | ATA_S_DRQ)) < 0) { + device_printf(request->parent, "timeout waiting for write DRQ\n"); request->status = ATA_IDX_INB(ch, ATA_STATUS); goto end_finished; @@ -347,7 +346,7 @@ DELAY(10); if (!(request->status & ATA_S_DRQ)) { - device_printf(request->dev, "command interrupt without DRQ\n"); + device_printf(request->parent, "command interrupt without DRQ\n"); request->status = ATA_S_ERROR; goto end_finished; } @@ -360,7 +359,7 @@ case ATAPI_P_WRITE: if (request->flags & ATA_R_READ) { request->status = ATA_S_ERROR; - device_printf(request->dev, + device_printf(request->parent, "%s trying to write on read buffer\n", ata_cmd2str(request)); goto end_finished; @@ -378,7 +377,7 @@ case ATAPI_P_READ: if (request->flags & ATA_R_WRITE) { request->status = ATA_S_ERROR; - device_printf(request->dev, + device_printf(request->parent, "%s trying to read on write buffer\n", ata_cmd2str(request)); goto end_finished; @@ -393,7 +392,7 @@ goto end_continue; case ATAPI_P_DONEDRQ: - device_printf(request->dev, + device_printf(request->parent, "WARNING - %s DONEDRQ non conformant device\n", ata_cmd2str(request)); if (request->flags & ATA_R_READ) { @@ -415,7 +414,7 @@ goto end_finished; default: - device_printf(request->dev, "unknown transfer phase\n"); + device_printf(request->parent, "unknown transfer phase\n"); request->status = ATA_S_ERROR; } @@ -603,7 +602,7 @@ } static int -ata_wait(struct ata_channel *ch, struct ata_device *atadev, u_int8_t mask) +ata_wait(struct ata_channel *ch, int unit, u_int8_t mask) { u_int8_t status; int timeout = 0; @@ -616,7 +615,7 @@ /* if drive fails status, reselect the drive and try again */ if (status == 0xff) { - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(atadev->unit)); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(unit)); timeout += 1000; DELAY(1000); continue; @@ -660,11 +659,11 @@ struct ata_device *atadev = device_get_softc(request->dev); /* select device */ - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(atadev->unit)); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(request->unit)); /* ready to issue command ? */ - if (ata_wait(ch, atadev, 0) < 0) { - device_printf(request->dev, "timeout waiting to issue command\n"); + if (ata_wait(ch, request->unit, 0) < 0) { + device_printf(request->parent, "timeout waiting to issue command\n"); return -1; } @@ -702,7 +701,7 @@ DELAY(20); } if (timeout <= 0) { - device_printf(request->dev, "timeout waiting for ATAPI ready\n"); + device_printf(request->parent, "timeout waiting for ATAPI ready\n"); request->result = EIO; return -1; } @@ -728,9 +727,8 @@ ata_tf_read(struct ata_request *request) { struct ata_channel *ch = device_get_softc(request->parent); - struct ata_device *atadev = device_get_softc(request->dev); - if (atadev->flags & ATA_D_48BIT_ACTIVE) { + if (request->flags & ATA_R_48BIT) { ATA_IDX_OUTB(ch, ATA_CONTROL, ATA_A_4BIT | ATA_A_HOB); request->u.ata.count = (ATA_IDX_INB(ch, ATA_COUNT) << 8); request->u.ata.lba = @@ -760,7 +758,7 @@ struct ata_channel *ch = device_get_softc(request->parent); struct ata_device *atadev = device_get_softc(request->dev); - if (atadev->flags & ATA_D_48BIT_ACTIVE) { + if (request->flags & ATA_R_48BIT) { ATA_IDX_OUTB(ch, ATA_FEATURE, request->u.ata.feature >> 8); ATA_IDX_OUTB(ch, ATA_FEATURE, request->u.ata.feature); ATA_IDX_OUTB(ch, ATA_COUNT, request->u.ata.count >> 8); @@ -771,7 +769,7 @@ ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 8); ATA_IDX_OUTB(ch, ATA_CYL_MSB, request->u.ata.lba >> 40); ATA_IDX_OUTB(ch, ATA_CYL_MSB, request->u.ata.lba >> 16); - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_LBA | ATA_DEV(atadev->unit)); + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_LBA | ATA_DEV(request->unit)); } else { ATA_IDX_OUTB(ch, ATA_FEATURE, request->u.ata.feature); @@ -793,7 +791,7 @@ (request->u.ata.lba / (sectors * heads))); ATA_IDX_OUTB(ch, ATA_CYL_MSB, (request->u.ata.lba / (sectors * heads)) >> 8); - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(atadev->unit) | + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(request->unit) | (((request->u.ata.lba% (sectors * heads)) / sectors) & 0xf)); } @@ -802,7 +800,7 @@ ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 8); ATA_IDX_OUTB(ch, ATA_CYL_MSB, request->u.ata.lba >> 16); ATA_IDX_OUTB(ch, ATA_DRIVE, - ATA_D_IBM | ATA_D_LBA | ATA_DEV(atadev->unit) | + ATA_D_IBM | ATA_D_LBA | ATA_DEV(request->unit) | ((request->u.ata.lba >> 24) & 0x0f)); } } @@ -825,7 +823,7 @@ size / sizeof(int32_t)); if (request->transfersize < length) { - device_printf(request->dev, "WARNING - %s read data overrun %d>%d\n", + device_printf(request->parent, "WARNING - %s read data overrun %d>%d\n", ata_cmd2str(request), length, request->transfersize); for (resid = request->transfersize; resid < length; resid += sizeof(int16_t)) @@ -850,7 +848,7 @@ size / sizeof(int32_t)); if (request->transfersize < length) { - device_printf(request->dev, "WARNING - %s write data underrun %d>%d\n", + device_printf(request->parent, "WARNING - %s write data underrun %d>%d\n", ata_cmd2str(request), length, request->transfersize); for (resid = request->transfersize; resid < length; resid += sizeof(int16_t)) ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-pci.c#13 (text+ko) ==== @@ -477,7 +477,7 @@ ch->dma.flags &= ~ATA_DMA_ACTIVE; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR); if ((request = ch->running)) { - device_printf(request->dev, "DMA reset calling unload\n"); + device_printf(dev, "DMA reset calling unload\n"); ch->dma.unload(request); } } ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#15 (text+ko) ==== @@ -52,10 +52,12 @@ ata_queue_request(struct ata_request *request) { struct ata_channel *ch; + struct ata_device *atadev = device_get_softc(request->dev); /* treat request as virgin (this might be an ATA_R_REQUEUE) */ request->result = request->status = request->error = 0; + request->unit = atadev->unit; /* check that the device is still valid */ if (!(request->parent = device_get_parent(request->dev))) { request->result = ENXIO; ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-sata.c#5 (text+ko) ==== @@ -246,11 +246,10 @@ int ata_request2fis_h2d(struct ata_request *request, u_int8_t *fis) { - struct ata_device *atadev = device_get_softc(request->dev); if (request->flags & ATA_R_ATAPI) { fis[0] = 0x27; /* host to device */ - fis[1] = 0x80 | (atadev->unit & 0x0f); + fis[1] = 0x80 | (request->unit & 0x0f); fis[2] = ATA_PACKET_CMD; if (request->flags & (ATA_R_READ | ATA_R_WRITE)) fis[3] = ATA_F_DMA; @@ -265,14 +264,14 @@ else { ata_modify_if_48bit(request); fis[0] = 0x27; /* host to device */ - fis[1] = 0x80 | (atadev->unit & 0x0f); + fis[1] = 0x80 | (request->unit & 0x0f); fis[2] = request->u.ata.command; fis[3] = request->u.ata.feature; fis[4] = request->u.ata.lba; fis[5] = request->u.ata.lba >> 8; fis[6] = request->u.ata.lba >> 16; fis[7] = ATA_D_LBA; - if (!(atadev->flags & ATA_D_48BIT_ACTIVE)) + if (!(request->flags & ATA_R_48BIT)) fis[7] |= (ATA_D_IBM | (request->u.ata.lba >> 24 & 0x0f)); fis[8] = request->u.ata.lba >> 24; fis[9] = request->u.ata.lba >> 32; ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-ahci.c#7 (text+ko) ==== @@ -385,13 +385,12 @@ static int ata_ahci_begin_transaction(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); - struct ata_device *atadev = device_get_softc(request->dev); struct ata_ahci_cmd_tab *ctp; struct ata_ahci_cmd_list *clp; int offset = ch->unit << 7; - int port = atadev->unit & 0x0f; + int port = request->unit & 0x0f; int entries = 0; int fis_size; @@ -401,7 +400,7 @@ /* setup the FIS for this request */ if (!(fis_size = ata_ahci_setup_fis(ctp, request))) { - device_printf(request->dev, "setting up SATA FIS failed\n"); + device_printf(request->parent, "setting up SATA FIS failed\n"); request->result = EIO; return ATA_OP_FINISHED; } @@ -409,7 +408,7 @@ /* if request moves data setup and load SG list */ if (request->flags & (ATA_R_READ | ATA_R_WRITE)) { if (ch->dma.load(request, ctp->prd_tab, &entries)) { - device_printf(request->dev, "setting up DMA failed\n"); + device_printf(request->parent, "setting up DMA failed\n"); request->result = EIO; return ATA_OP_FINISHED; } @@ -476,7 +475,7 @@ static int ata_ahci_end_transaction(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); struct ata_ahci_cmd_list *clp; u_int32_t tf_data; @@ -495,13 +494,12 @@ /* on control commands read back registers to the request struct */ if (request->flags & ATA_R_CONTROL) { - struct ata_device *atadev = device_get_softc(request->dev); u_int8_t *fis = ch->dma.work + ATA_AHCI_FB_OFFSET + 0x40; request->u.ata.count = fis[12] | ((u_int16_t)fis[13] << 8); request->u.ata.lba = fis[4] | ((u_int64_t)fis[5] << 8) | ((u_int64_t)fis[6] << 16); - if (atadev->flags & ATA_D_48BIT_ACTIVE) + if (request->flags & ATA_R_48BIT) request->u.ata.lba |= ((u_int64_t)fis[8] << 24) | ((u_int64_t)fis[9] << 32) | ((u_int64_t)fis[10] << 40); ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-intel.c#7 (text+ko) ==== @@ -466,10 +466,10 @@ static void ata_intel_31244_tf_write(struct ata_request *request) { - struct ata_channel *ch = device_get_softc(device_get_parent(request->dev)); + struct ata_channel *ch = device_get_softc(request->parent); struct ata_device *atadev = device_get_softc(request->dev); - if (atadev->flags & ATA_D_48BIT_ACTIVE) { + if (request->flags & ATA_R_48BIT) { ATA_IDX_OUTW(ch, ATA_FEATURE, request->u.ata.feature); ATA_IDX_OUTW(ch, ATA_COUNT, request->u.ata.count); ATA_IDX_OUTW(ch, ATA_SECTOR, ((request->u.ata.lba >> 16) & 0xff00) | @@ -478,7 +478,7 @@ ((request->u.ata.lba >> 8) & 0x00ff)); ATA_IDX_OUTW(ch, ATA_CYL_MSB, ((request->u.ata.lba >> 32) & 0xff00) | ((request->u.ata.lba >> 16) & 0x00ff)); - ATA_IDX_OUTW(ch, ATA_DRIVE, ATA_D_LBA | ATA_DEV(atadev->unit)); + ATA_IDX_OUTW(ch, ATA_DRIVE, ATA_D_LBA | ATA_DEV(request->unit)); } else { ATA_IDX_OUTB(ch, ATA_FEATURE, request->u.ata.feature); @@ -499,7 +499,7 @@ (request->u.ata.lba / (sectors * heads))); ATA_IDX_OUTB(ch, ATA_CYL_MSB, (request->u.ata.lba / (sectors * heads)) >> 8); - ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(atadev->unit) | + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(request->unit) | (((request->u.ata.lba% (sectors * heads)) / sectors) & 0xf)); } @@ -508,7 +508,7 @@ ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->u.ata.lba >> 8); ATA_IDX_OUTB(ch, ATA_CYL_MSB, request->u.ata.lba >> 16); ATA_IDX_OUTB(ch, ATA_DRIVE, - ATA_D_IBM | ATA_D_LBA | ATA_DEV(atadev->unit) | + ATA_D_IBM | ATA_D_LBA | ATA_DEV(request->unit) | ((request->u.ata.lba >> 24) & 0x0f)); } } ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-marvell.c#6 (text+ko) ==== @@ -340,7 +340,7 @@ static int ata_marvell_edma_begin_transaction(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); u_int32_t req_in; u_int8_t *bytep; @@ -364,7 +364,7 @@ /* check sanity, setup SG list and DMA engine */ if ((error = ch->dma.load(request, NULL, NULL))) { - device_printf(request->dev, "setting up DMA failed\n"); + device_printf(request->parent, "setting up DMA failed\n"); request->result = error; return ATA_OP_FINISHED; } @@ -430,7 +430,7 @@ static int ata_marvell_edma_end_transaction(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); int offset = (ch->unit > 3 ? 0x30014 : 0x20014); u_int32_t icr = ATA_INL(ctlr->r_res1, offset); ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-promise.c#6 (text+ko) ==== @@ -387,11 +387,10 @@ static int ata_promise_dmastart(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); - struct ata_device *atadev = device_get_softc(request->dev); - if (atadev->flags & ATA_D_48BIT_ACTIVE) { + if (request->flags & ATA_R_48BIT) { ATA_OUTB(ctlr->r_res1, 0x11, ATA_INB(ctlr->r_res1, 0x11) | (ch->unit ? 0x08 : 0x02)); ATA_OUTL(ctlr->r_res1, ch->unit ? 0x24 : 0x20, @@ -411,12 +410,11 @@ static int ata_promise_dmastop(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); - struct ata_device *atadev = device_get_softc(request->dev); int error; - if (atadev->flags & ATA_D_48BIT_ACTIVE) { + if (request->flags & ATA_R_48BIT) { ATA_OUTB(ctlr->r_res1, 0x11, ATA_INB(ctlr->r_res1, 0x11) & ~(ch->unit ? 0x08 : 0x02)); ATA_OUTL(ctlr->r_res1, ch->unit ? 0x24 : 0x20, 0); @@ -682,9 +680,8 @@ static int ata_promise_mio_command(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); - struct ata_device *atadev = device_get_softc(request->dev); u_int32_t *wordp = (u_int32_t *)ch->dma.work; @@ -693,7 +690,7 @@ if ((ctlr->chip->cfg2 == PR_SATA2) || ((ctlr->chip->cfg2 == PR_CMBO2) && (ch->unit < 2))) { /* set portmultiplier port */ - ATA_OUTB(ctlr->r_res2, 0x4e8 + (ch->unit << 8), atadev->unit & 0x0f); + ATA_OUTB(ctlr->r_res2, 0x4e8 + (ch->unit << 8), request->unit & 0x0f); } /* XXX SOS add ATAPI commands support later */ @@ -1051,7 +1048,7 @@ static int ata_promise_sx4_command(struct ata_request *request) { - device_t gparent = GRANDPARENT(request->dev); + device_t gparent = device_get_parent(request->parent); struct ata_pci_controller *ctlr = device_get_softc(gparent); struct ata_channel *ch = device_get_softc(request->parent); struct ata_dma_prdentry *prd; @@ -1158,15 +1155,14 @@ static int ata_promise_apkt(u_int8_t *bytep, struct ata_request *request) { - struct ata_device *atadev = device_get_softc(request->dev); int i = 12; bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_REG | ATA_PDC_WAIT_NBUSY|ATA_DRIVE; - bytep[i++] = ATA_D_IBM | ATA_D_LBA | ATA_DEV(atadev->unit); + bytep[i++] = ATA_D_IBM | ATA_D_LBA | ATA_DEV(request->unit); bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_CTL; bytep[i++] = ATA_A_4BIT; - if (atadev->flags & ATA_D_48BIT_ACTIVE) { + if (request->flags & ATA_R_48BIT) { bytep[i++] = ATA_PDC_2B | ATA_PDC_WRITE_REG | ATA_FEATURE; bytep[i++] = request->u.ata.feature >> 8; bytep[i++] = request->u.ata.feature; @@ -1183,7 +1179,7 @@ bytep[i++] = request->u.ata.lba >> 40; bytep[i++] = request->u.ata.lba >> 16; bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_REG | ATA_DRIVE; - bytep[i++] = ATA_D_LBA | ATA_DEV(atadev->unit); + bytep[i++] = ATA_D_LBA | ATA_DEV(request->unit); } else { bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_REG | ATA_FEATURE; @@ -1197,8 +1193,7 @@ bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_REG | ATA_CYL_MSB; bytep[i++] = request->u.ata.lba >> 16; bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_REG | ATA_DRIVE; - bytep[i++] = (atadev->flags & ATA_D_USE_CHS ? 0 : ATA_D_LBA) | - ATA_D_IBM | ATA_DEV(atadev->unit) | + bytep[i++] = ATA_D_LBA | ATA_D_IBM | ATA_DEV(request->unit) | ((request->u.ata.lba >> 24)&0xf); } bytep[i++] = ATA_PDC_1B | ATA_PDC_WRITE_END | ATA_COMMAND; ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-serverworks.c#5 (text+ko) ==== @@ -228,9 +228,8 @@ ata_serverworks_tf_read(struct ata_request *request) { struct ata_channel *ch = device_get_softc(request->parent); - struct ata_device *atadev = device_get_softc(request->dev); - if (atadev->flags & ATA_D_48BIT_ACTIVE) { + if (request->flags & ATA_R_48BIT) { u_int16_t temp; request->u.ata.count = ATA_IDX_INW(ch, ATA_COUNT); @@ -259,7 +258,7 @@ struct ata_channel *ch = device_get_softc(request->parent); struct ata_device *atadev = device_get_softc(request->dev); - if (atadev->flags & ATA_D_48BIT_ACTIVE) { + if (request->flags & ATA_R_48BIT) { ATA_IDX_OUTW(ch, ATA_FEATURE, request->u.ata.feature); ATA_IDX_OUTW(ch, ATA_COUNT, request->u.ata.count); ATA_IDX_OUTW(ch, ATA_SECTOR, ((request->u.ata.lba >> 16) & 0xff00) | @@ -268,7 +267,7 @@ ((request->u.ata.lba >> 8) & 0x00ff)); ATA_IDX_OUTW(ch, ATA_CYL_MSB, ((request->u.ata.lba >> 32) & 0xff00) | ((request->u.ata.lba >> 16) & 0x00ff)); - ATA_IDX_OUTW(ch, ATA_DRIVE, ATA_D_LBA | ATA_DEV(atadev->unit)); + ATA_IDX_OUTW(ch, ATA_DRIVE, ATA_D_LBA | ATA_DEV(request->unit)); } else { ATA_IDX_OUTW(ch, ATA_FEATURE, request->u.ata.feature); @@ -289,7 +288,7 @@ (request->u.ata.lba / (sectors * heads))); ATA_IDX_OUTW(ch, ATA_CYL_MSB, (request->u.ata.lba / (sectors * heads)) >> 8); - ATA_IDX_OUTW(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(atadev->unit) | + ATA_IDX_OUTW(ch, ATA_DRIVE, ATA_D_IBM | ATA_DEV(request->unit) | (((request->u.ata.lba% (sectors * heads)) / sectors) & 0xf)); } @@ -298,7 +297,7 @@ ATA_IDX_OUTW(ch, ATA_CYL_LSB, request->u.ata.lba >> 8); ATA_IDX_OUTW(ch, ATA_CYL_MSB, request->u.ata.lba >> 16); ATA_IDX_OUTW(ch, ATA_DRIVE, - ATA_D_IBM | ATA_D_LBA | ATA_DEV(atadev->unit) | + ATA_D_IBM | ATA_D_LBA | ATA_DEV(request->unit) | ((request->u.ata.lba >> 24) & 0x0f)); } } ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-siliconimage.c#6 (text+ko) ==== @@ -542,7 +542,7 @@ static int ata_siiprb_begin_transaction(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); struct ata_siiprb_command *prb; struct ata_siiprb_dma_prdentry *prd; @@ -564,7 +564,7 @@ /* setup the FIS for this request */ if (!ata_request2fis_h2d(request, &prb->fis[0])) { - device_printf(request->dev, "setting up SATA FIS failed\n"); + device_printf(request->parent, "setting up SATA FIS failed\n"); request->result = EIO; return ATA_OP_FINISHED; } @@ -590,7 +590,7 @@ /* if request moves data setup and load SG list */ if (request->flags & (ATA_R_READ | ATA_R_WRITE)) { if (ch->dma.load(request, prd, NULL)) { - device_printf(request->dev, "setting up DMA failed\n"); + device_printf(request->parent, "setting up DMA failed\n"); request->result = EIO; return ATA_OP_FINISHED; } @@ -613,7 +613,7 @@ static int ata_siiprb_end_transaction(struct ata_request *request) { - struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_pci_controller *ctlr=device_get_softc(device_get_parent(request->parent)); struct ata_channel *ch = device_get_softc(request->parent); struct ata_siiprb_command *prb; int offset = ch->unit * 0x2000; @@ -659,12 +659,10 @@ /* on control commands read back registers to the request struct */ if (request->flags & ATA_R_CONTROL) { - struct ata_device *atadev = device_get_softc(request->dev); - request->u.ata.count = prb->fis[12] | ((u_int16_t)prb->fis[13] << 8); request->u.ata.lba = prb->fis[4] | ((u_int64_t)prb->fis[5] << 8) | ((u_int64_t)prb->fis[6] << 16); - if (atadev->flags & ATA_D_48BIT_ACTIVE) + if (request->flags & ATA_R_48BIT) request->u.ata.lba |= ((u_int64_t)prb->fis[8] << 24) | ((u_int64_t)prb->fis[9] << 32) | ((u_int64_t)prb->fis[10] << 40); From owner-p4-projects@FreeBSD.ORG Sat Aug 8 22:10:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 56CB71065670; Sat, 8 Aug 2009 22:10:41 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1720C106566B for ; Sat, 8 Aug 2009 22:10:41 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 065798FC1F for ; Sat, 8 Aug 2009 22:10:41 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78MAeVw092654 for ; Sat, 8 Aug 2009 22:10:40 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78MAefT092652 for perforce@freebsd.org; Sat, 8 Aug 2009 22:10:40 GMT (envelope-from pgj@FreeBSD.org) Date: Sat, 8 Aug 2009 22:10:40 GMT Message-Id: <200908082210.n78MAefT092652@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 167117 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 22:10:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=167117 Change 167117 by pgj@beehive on 2009/08/08 22:09:46 IFC Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#19 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/disks/chapter.sgml#15 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/virtualization/chapter.sgml#9 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#12 integrate .. //depot/projects/docproj_hu/www/en/gnome/docs/halfaq.sgml#4 integrate .. //depot/projects/docproj_hu/www/en/releases/8.0R/Makefile#1 branch .. //depot/projects/docproj_hu/www/en/releases/8.0R/schedule.sgml#1 branch .. //depot/projects/docproj_hu/www/hu/share/sgml/header.l10n.ent#16 integrate Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/desktop/chapter.sgml#19 (text+ko) ==== @@ -1,6 +1,6 @@ +
  • +

    Hal is interfering with my CD/DVD drive when I want to play + a disc or burn something. How can I stop this from + happening?

    + +

    Applications which are not hal-aware will not be able to + tell hald to stop polling CD/DVD drives when they begin to use + them. Because of this, hald may cause these applications to + abort because two different processes are trying to use the + device at the same time. Applications such as totem, k3b, + sound-juicer, etc. should not be affected as they are + hal-aware. For other applications, you can start them using + the hal-lock command. This command will try and + lock the device in question. If successful, hald will stop + polling the device, and hal-lock will spawn the + desired application. The arguments to hal-lock are + as follows:

    + +
    +% hal-lock --interface org.freedesktop.Hal.Device.Storage --udi UDI --run COMMAND
    +
    +

    You can use lshal to determine the proper + UDI value. For example, to run abcde to + extract tracks from a CD:

    + +
    +% hal-lock --interface org.freedesktop.Hal.Device.Storage --udi /org/freedesktop/Hal/devices/storage_model_DVD__RW_DVD8801 --run abcde
    +
    + +

    As soon as the application finishes, the lock will be + released.

    +
  • + &footer; ==== //depot/projects/docproj_hu/www/hu/share/sgml/header.l10n.ent#16 (text+ko) ==== @@ -1,5 +1,5 @@ - + &prompt.root; shutdown now + Válasszuk le a naplózást + alkalmazó partíciókat: + + &prompt.root; umount /usr /var + Írassuk ki lemezre a naplók tartalmát: &prompt.root; gjournal sync - Válasszuk le a naplózást - alkalmazó partíciókat: - - &prompt.root; umount /usr /var - Állítsuk le a naplózóterületek használatát: From owner-p4-projects@FreeBSD.ORG Sat Aug 8 22:16:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 38C4910656E1; Sat, 8 Aug 2009 22:16:48 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27E011065676 for ; Sat, 8 Aug 2009 22:16:48 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F16C08FC0A for ; Sat, 8 Aug 2009 22:16:47 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n78MGl5N093063 for ; Sat, 8 Aug 2009 22:16:47 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n78MGlWW093061 for perforce@freebsd.org; Sat, 8 Aug 2009 22:16:47 GMT (envelope-from mav@freebsd.org) Date: Sat, 8 Aug 2009 22:16:47 GMT Message-Id: <200908082216.n78MGlWW093061@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167119 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 22:16:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=167119 Change 167119 by mav@mav_mavbook on 2009/08/08 22:16:18 Remove unneeded ATA_PROTO_ATAPI_12 checks. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#16 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-cd.c#13 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-fd.c#10 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-tape.c#10 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#16 (text+ko) ==== @@ -152,15 +152,11 @@ int count, int flags, int timeout) { struct ata_request *request = ata_alloc_request(); - struct ata_device *atadev = device_get_softc(dev); int error = ENOMEM; if (request) { request->dev = dev; - if ((atadev->param.config & ATA_PROTO_MASK) == ATA_PROTO_ATAPI_12) - bcopy(ccb, request->u.atapi.ccb, 12); - else - bcopy(ccb, request->u.atapi.ccb, 16); + bcopy(ccb, request->u.atapi.ccb, 16); request->data = data; request->bytecount = count; request->transfersize = min(request->bytecount, 65534); ==== //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-cd.c#13 (text+ko) ==== @@ -863,9 +863,7 @@ } request->dev = dev; request->bio = bp; - bcopy(ccb, request->u.atapi.ccb, - (atadev->param.config & ATA_PROTO_MASK) == - ATA_PROTO_ATAPI_12 ? 16 : 12); + bcopy(ccb, request->u.atapi.ccb, 16); request->data = bp->bio_data; request->bytecount = count * blocksize; request->transfersize = min(request->bytecount, 65534); ==== //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-fd.c#10 (text+ko) ==== @@ -240,9 +240,7 @@ } request->dev = dev; request->bio = bp; - bcopy(ccb, request->u.atapi.ccb, - (atadev->param.config & ATA_PROTO_MASK) == - ATA_PROTO_ATAPI_12 ? 16 : 12); + bcopy(ccb, request->u.atapi.ccb, 16); request->data = bp->bio_data; request->bytecount = count * fdp->sectorsize; request->transfersize = min(request->bytecount, 65534); ==== //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-tape.c#10 (text+ko) ==== @@ -373,7 +373,6 @@ ast_strategy(struct bio *bp) { device_t dev = bp->bio_dev->si_drv1; - struct ata_device *atadev = device_get_softc(dev); struct ast_softc *stp = device_get_ivars(dev); struct ata_request *request; u_int32_t blkcount; @@ -426,9 +425,7 @@ } request->dev = dev; request->driver = bp; - bcopy(ccb, request->u.atapi.ccb, - (atadev->param.config & ATA_PROTO_MASK) == - ATA_PROTO_ATAPI_12 ? 16 : 12); + bcopy(ccb, request->u.atapi.ccb, 16); request->data = bp->bio_data; request->bytecount = blkcount * stp->blksize; request->transfersize = min(request->bytecount, 65534);