From owner-p4-projects@FreeBSD.ORG Sun Nov 7 13:24:16 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E63691065672; Sun, 7 Nov 2010 13:24: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 90BA5106564A for ; Sun, 7 Nov 2010 13:24:15 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 73E0B8FC12 for ; Sun, 7 Nov 2010 13:24:15 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA7DOFo1026787 for ; Sun, 7 Nov 2010 13:24:15 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA7DOFce026784 for perforce@freebsd.org; Sun, 7 Nov 2010 13:24:15 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 7 Nov 2010 13:24:15 GMT Message-Id: <201011071324.oA7DOFce026784@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185469 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Nov 2010 13:24:16 -0000 http://p4web.freebsd.org/@@185469?ac=10 Change 185469 by rene@rene_acer on 2010/11/07 13:23:46 IFC Affected files ... .. //depot/projects/docproj_nl/www/en/platforms/sparc.sgml#7 integrate .. //depot/projects/docproj_nl/www/en/search/search.sgml#6 integrate Differences ... ==== //depot/projects/docproj_nl/www/en/platforms/sparc.sgml#7 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -105,14 +105,15 @@
  • Sun Blade 2500
  • Sun Fire 280R
  • Sun Fire V210
  • -
  • Sun Fire V215 (support first appeared in 7.3-RELEASE)
  • +
  • Sun Fire V215 (support first appeared in 7.3-RELEASE and 8.1-RELEASE)
  • +
  • Sun Fire V240
  • Sun Fire V250
  • Sun Fire V440 (support for the on-board NICs first appeared in - 8.0-RELEASE)
  • + 7.3-RELEASE and 8.0-RELEASE)
  • Sun Fire V480 (501-6780 and 501-6790 centerplanes only, for which support - first appeared in 7.3-RELEASE)
  • + first appeared in 7.3-RELEASE and 8.1-RELEASE)
  • Sun Fire V880
  • -
  • Sun Fire V890 (support first appeared in 8.1-RELEASE, non-mixed +
  • Sun Fire V890 (support first appeared in 7.4-RELEASE and 8.1-RELEASE, non-mixed Ultrasparc IV/IV+ CPU-configurations only)
  • Sun Netra 20/Netra T4
  • @@ -122,13 +123,12 @@
    • Sun Fire V125
    • -
    • Sun Fire V240
    • -
    • Sun Fire V245 (support first appeared in 7.3-RELEASE)
    • -
    • Sun Fire V490 (support first appeared in 8.1-RELEASE, non-mixed +
    • Sun Fire V245 (support first appeared in 7.3-RELEASE and 8.1-RELEASE)
    • +
    • Sun Fire V490 (support first appeared in 7.4-RELEASE and 8.1-RELEASE, non-mixed Ultrasparc IV/IV+ CPU-configurations only)
    -

    Starting with 8.1-RELEASE, sparc64 systems based on Fujitsu SPARC64 V +

    Starting with 7.4-RELEASE and 8.1-RELEASE, sparc64 systems based on Fujitsu SPARC64 V are also supported by FreeBSD, which includes the following known working systems:

    ==== //depot/projects/docproj_nl/www/en/search/search.sgml#6 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -621,6 +621,12 @@ + Toolchain + Maintenance of FreeBSD's integrated toolchain + + + USB Discussion about FreeBSD support for USB From owner-p4-projects@FreeBSD.ORG Sun Nov 7 13:44:04 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D8F001065673; Sun, 7 Nov 2010 13:44: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 9B82B1065670 for ; Sun, 7 Nov 2010 13:44:03 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 88B598FC16 for ; Sun, 7 Nov 2010 13:44:03 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA7Di35e030686 for ; Sun, 7 Nov 2010 13:44:03 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA7Di3HP030683 for perforce@freebsd.org; Sun, 7 Nov 2010 13:44:03 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 7 Nov 2010 13:44:03 GMT Message-Id: <201011071344.oA7Di3HP030683@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185471 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Nov 2010 13:44:04 -0000 http://p4web.freebsd.org/@@185471?ac=10 Change 185471 by rene@rene_acer on 2010/11/07 13:43:50 MFen www/administation.sgml 1.35 -> 1.37 Affected files ... .. //depot/projects/docproj_nl/www/nl/administration.sgml#22 edit Differences ... ==== //depot/projects/docproj_nl/www/nl/administration.sgml#22 (text+ko) ==== @@ -7,7 +7,7 @@ &header; @@ -242,9 +242,11 @@ href="donations/">&os; Donaties Relatie pagina.

      -
    • &a.tabthorpe; <tabthorpe@FreeBSD.org>
    • +
    • &a.gjb; <gjb@FreeBSD.org>
    • &a.wilko; <wilko@FreeBSD.org>
    • &a.gahr; <gahr@FreeBSD.org>
    • +
    • &a.pgollucci; <pgollucci@FreeBSD.org>
    • +
    • &a.skreuzer; <skreuzer@FreeBSD.org>
    • &a.obrien; <obrien@FreeBSD.org>
    • &a.trhodes; <trhodes@FreeBSD.org>
    • Daniel Seuffert <ds@FreeBSD.org>
    • From owner-p4-projects@FreeBSD.ORG Sun Nov 7 23:06:41 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 81F7310656A4; Sun, 7 Nov 2010 23:06: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 43CBB1065670 for ; Sun, 7 Nov 2010 23:06:41 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 2DE038FC23 for ; Sun, 7 Nov 2010 23:06:41 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA7N6fTi045763 for ; Sun, 7 Nov 2010 23:06:41 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA7N6ek4045760 for perforce@freebsd.org; Sun, 7 Nov 2010 23:06:40 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 7 Nov 2010 23:06:40 GMT Message-Id: <201011072306.oA7N6ek4045760@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185496 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Nov 2010 23:06:41 -0000 http://p4web.freebsd.org/@@185496?ac=10 Change 185496 by rene@rene_acer on 2010/11/07 23:06:31 Continue pre-7.X cleanup of Handbook: - remove some 5.X distinctions - add comments to text referring to "older versions" , unclear how old - add a missing "Alpha" in the introduction - remove section about KerberosIV (old 14.7), 5.X only runs Kerberos5 - remove first paragraph of new section 14.7 (Kerberos5) - mail/sylpheed-claws port got renamed (see /usr/ports/MOVED) Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/boot/chapter.sgml#7 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/config/chapter.sgml#12 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#17 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/security/chapter.sgml#14 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/boot/chapter.sgml#7 (text+ko) ==== @@ -788,9 +788,6 @@ Device Hints - This is a FreeBSD 5.0 and later feature which does not - exist in earlier versions. - During initial system startup, the boot &man.loader.8; will read the &man.device.hints.5; file. This file stores kernel boot information known as variables, sometimes referred to as device hints. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/config/chapter.sgml#12 (text+ko) ==== @@ -897,8 +897,8 @@ those involved with &os;, have taken the latter approach. - Thanks to the contributions of Bill Paul (wpaul), as of - &os; 5.3-RELEASE there is native support + Thanks to the contributions of Bill Paul (wpaul) + there is native support for the Network Driver Interface Specification (NDIS). The &os; NDISulator (otherwise known as Project Evil) takes a &windows; driver binary and basically tricks it into @@ -1901,9 +1901,9 @@ reduce system boot times. The defaults are fairly high and can be responsible for 15 seconds of delay in the boot process. Reducing it to 5 seconds usually - works (especially with modern drives). Newer versions of &os; - (5.0 and higher) should use the kern.cam.scsi_delay - boot time tunable. The tunable, and kernel config option accept + works (especially with modern drives). + The kern.cam.scsi_delay boot time tunable should + be used. The tunable, and kernel config option accept values in terms of milliseconds and not seconds. @@ -2124,7 +2124,7 @@ In older FreeBSD releases, the default value of kern.maxfiles is derived from the option in your - kernel configuration file. kern.maxfiles grows + kernel configuration file. kern.maxfiles grows proportionally to the value of . When compiling a custom kernel, it is a good idea to set this kernel configuration option according to the uses of your system. From @@ -2148,7 +2148,7 @@ /boot/defaults/loader.conf file for some hints) or as described elsewhere in this document. - In older releases, the system will auto-tune + In older releases, the system will auto-tune maxusers for you if you explicitly set it to 0 The auto-tuning algorithm sets @@ -2228,7 +2228,7 @@ use. kern.ipc.nmbclusters loader tunable should - be used to tune this at boot time. Only older versions of &os; + be used to tune this at boot time. Only older versions of &os; will require you to use the NMBCLUSTERS kernel &man.config.8; option. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#17 (text+ko) ==== @@ -651,7 +651,7 @@ November 2005. The most recent 6.4-RELEASE came out in November 2008. There will be no additional releases from the RELENG_6 branch. This branch is the last branch to support the - architecture. + Alpha architecture. The RELENG_7 branch was created in October 2007. The first release of this branch was 7.0-RELEASE, which came ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/security/chapter.sgml#14 (text+ko) ==== @@ -56,11 +56,6 @@ - How to set up KerberosIV on &os; - releases prior to 5.0. - - - How to set up Kerberos5 on &os;. @@ -407,7 +402,6 @@ vast majority of break-ins occur remotely, over a network, from people who do not have physical access to your workstation or servers. - KerberosIV Using something like Kerberos also gives you the ability to disable or change the password for a staff account in one place, @@ -944,7 +938,6 @@ Access Issues with Kerberos and SSH ssh - KerberosIV There are a few issues with both Kerberos and ssh that need to be addressed if @@ -1565,496 +1558,6 @@ - - - - - Mark - Murray - Contributed by - - - - - Mark - Dapoz - Based on a contribution by - - - - - <application>KerberosIV</application> - - Kerberos is a network add-on system/protocol that allows users to - authenticate themselves through the services of a secure server. - Services such as remote login, remote copy, secure inter-system file - copying and other high-risk tasks are made considerably safer and more - controllable. - - The following instructions can be used as a guide on how to set up - Kerberos as distributed for &os;. However, you should refer to the - relevant manual pages for a complete description. - - - Installing <application>KerberosIV</application> - - MIT - - KerberosIV - installing - - Kerberos is an optional component of &os;. The easiest - way to install this software is by selecting the krb4 or - krb5 distribution in sysinstall - during the initial installation of &os;. This will install - the eBones (KerberosIV) or Heimdal (Kerberos5) - implementation of Kerberos. These implementations are - included because they are developed outside the USA/Canada and - were thus available to system owners outside those countries - during the era of restrictive export controls on cryptographic - code from the USA. - - Alternatively, the MIT implementation of Kerberos is - available from the Ports Collection as - security/krb5. - - - - Creating the Initial Database - - This is done on the Kerberos server only. First make sure that - you do not have any old Kerberos databases around. You should change - to the directory /etc/kerberosIV - and check that only the following files are present: - - &prompt.root; cd /etc/kerberosIV -&prompt.root; ls -README krb.conf krb.realms - - If any additional files (such as principal.* - or master_key) exist, then use the - kdb_destroy command to destroy the old Kerberos - database, or if Kerberos is not running, simply delete the extra - files. - - You should now edit the krb.conf and - krb.realms files to define your Kerberos realm. - In this case the realm will be EXAMPLE.COM and the - server is grunt.example.com. We edit - or create the krb.conf file: - - &prompt.root; cat krb.conf -EXAMPLE.COM -EXAMPLE.COM grunt.example.com admin server -CS.BERKELEY.EDU okeeffe.berkeley.edu -ATHENA.MIT.EDU kerberos.mit.edu -ATHENA.MIT.EDU kerberos-1.mit.edu -ATHENA.MIT.EDU kerberos-2.mit.edu -ATHENA.MIT.EDU kerberos-3.mit.edu -LCS.MIT.EDU kerberos.lcs.mit.edu -TELECOM.MIT.EDU bitsy.mit.edu -ARC.NASA.GOV trident.arc.nasa.gov - - In this case, the other realms do not need to be there. They are - here as an example of how a machine may be made aware of multiple - realms. You may wish to not include them for simplicity. - - The first line names the realm in which this system works. The - other lines contain realm/host entries. The first item on a line is a - realm, and the second is a host in that realm that is acting as a - key distribution center. The words admin - server following a host's name means that host also - provides an administrative database server. For further explanation - of these terms, please consult the Kerberos manual pages. - - Now we have to add grunt.example.com - to the EXAMPLE.COM realm and also add an entry to - put all hosts in the .example.com - domain in the EXAMPLE.COM realm. The - krb.realms file would be updated as - follows: - - &prompt.root; cat krb.realms -grunt.example.com EXAMPLE.COM -.example.com EXAMPLE.COM -.berkeley.edu CS.BERKELEY.EDU -.MIT.EDU ATHENA.MIT.EDU -.mit.edu ATHENA.MIT.EDU - - Again, the other realms do not need to be there. They are here as - an example of how a machine may be made aware of multiple realms. You - may wish to remove them to simplify things. - - The first line puts the specific system into - the named realm. The rest of the lines show how to default systems of - a particular subdomain to a named realm. - - Now we are ready to create the database. This only needs to run - on the Kerberos server (or Key Distribution Center). Issue the - kdb_init command to do this: - - &prompt.root; kdb_init -Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM -You will be prompted for the database Master Password. -It is important that you NOT FORGET this password. - -Enter Kerberos master key: - - Now we have to save the key so that servers on the local machine - can pick it up. Use the kstash command to do - this: - - &prompt.root; kstash - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! - - This saves the encrypted master password in - /etc/kerberosIV/master_key. - - - - Making It All Run - - - KerberosIV - initial startup - - - Two principals need to be added to the database for - each system that will be secured with Kerberos. - Their names are kpasswd and rcmd. - These two principals are made for each system, with the instance being - the name of the individual system. - - These daemons, kpasswd and - rcmd allow other systems to change Kerberos - passwords and run commands like &man.rcp.1;, - &man.rlogin.1; and &man.rsh.1;. - - Now let us add these entries: - - &prompt.root; kdb_edit -Opening database... - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -Previous or default values are in [brackets] , -enter return to leave the same, or new value. - -Principal name: passwd -Instance: grunt - -<Not found>, Create [y] ? y - -Principal: passwd, Instance: grunt, kdc_key_ver: 1 -New Password: <---- enter RANDOM here -Verifying password - -New Password: <---- enter RANDOM here - -Random password [y] ? y - -Principal's new key version = 1 -Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? -Max ticket lifetime (*5 minutes) [ 255 ] ? -Attributes [ 0 ] ? -Edit O.K. -Principal name: rcmd -Instance: grunt - -<Not found>, Create [y] ? - -Principal: rcmd, Instance: grunt, kdc_key_ver: 1 -New Password: <---- enter RANDOM here -Verifying password - -New Password: <---- enter RANDOM here - -Random password [y] ? - -Principal's new key version = 1 -Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? -Max ticket lifetime (*5 minutes) [ 255 ] ? -Attributes [ 0 ] ? -Edit O.K. -Principal name: <---- null entry here will cause an exit - - - - Creating the Server File - - We now have to extract all the instances which define the - services on each machine. For this we use the - ext_srvtab command. This will create a file - which must be copied or moved by secure means to - each Kerberos client's /etc - directory. This file must be present on each server and client, and is - crucial to the operation of Kerberos. - - - &prompt.root; ext_srvtab grunt -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -Generating 'grunt-new-srvtab'.... - - Now, this command only generates a temporary file which must be - renamed to srvtab so that all the servers can pick - it up. Use the &man.mv.1; command to move it into place on - the original system: - - &prompt.root; mv grunt-new-srvtab srvtab - - If the file is for a client system, and the network is not deemed - safe, then copy the - client-new-srvtab to - removable media and transport it by secure physical means. Be sure to - rename it to srvtab in the client's /etc directory, and make sure it is - mode 600: - - &prompt.root; mv grumble-new-srvtab srvtab -&prompt.root; chmod 600 srvtab - - - - Populating the Database - - We now have to add some user entries into the database. First - let us create an entry for the user jane. Use the - kdb_edit command to do this: - - &prompt.root; kdb_edit -Opening database... - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -Previous or default values are in [brackets] , -enter return to leave the same, or new value. - -Principal name: jane -Instance: - -<Not found>, Create [y] ? y - -Principal: jane, Instance: , kdc_key_ver: 1 -New Password: <---- enter a secure password here -Verifying password - -New Password: <---- re-enter the password here -Principal's new key version = 1 -Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? -Max ticket lifetime (*5 minutes) [ 255 ] ? -Attributes [ 0 ] ? -Edit O.K. -Principal name: <---- null entry here will cause an exit - - - - Testing It All Out - - First we have to start the Kerberos daemons. Note that if you - have correctly edited your /etc/rc.conf then this - will happen automatically when you reboot. This is only necessary on - the Kerberos server. Kerberos clients will automatically get what - they need from the /etc/kerberosIV directory. - - &prompt.root; kerberos & -Kerberos server starting -Sleep forever on error -Log file is /var/log/kerberos.log -Current Kerberos master key version is 1. - -Master key entered. BEWARE! - -Current Kerberos master key version is 1 -Local realm: EXAMPLE.COM -&prompt.root; kadmind -n & -KADM Server KADM0.0A initializing -Please do not use 'kill -9' to kill this job, use a -regular kill instead - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! - - Now we can try using the kinit command to get a - ticket for the ID jane that we created - above: - - &prompt.user; kinit jane -MIT Project Athena (grunt.example.com) -Kerberos Initialization for "jane" -Password: - - Try listing the tokens using klist to see if we - really have them: - - &prompt.user; klist -Ticket file: /tmp/tkt245 -Principal: jane@EXAMPLE.COM - - Issued Expires Principal -Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM - - Now try changing the password using &man.passwd.1; to - check if the kpasswd daemon can get - authorization to the Kerberos database: - - &prompt.user; passwd -realm EXAMPLE.COM -Old password for jane: -New Password for jane: -Verifying password -New Password for jane: -Password changed. - - - - Adding <command>su</command> Privileges - - Kerberos allows us to give each user - who needs root privileges their own - separate &man.su.1; password. - We could now add an ID which is authorized to - &man.su.1; to root. This is - controlled by having an instance of root - associated with a principal. Using kdb_edit - we can create the entry jane.root in the - Kerberos database: - - &prompt.root; kdb_edit -Opening database... - -Enter Kerberos master key: - -Current Kerberos master key version is 1. - -Master key entered. BEWARE! -Previous or default values are in [brackets] , -enter return to leave the same, or new value. - -Principal name: jane -Instance: root - -<Not found>, Create [y] ? y - -Principal: jane, Instance: root, kdc_key_ver: 1 -New Password: <---- enter a SECURE password here -Verifying password - -New Password: <---- re-enter the password here - -Principal's new key version = 1 -Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? -Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Keep this short! -Attributes [ 0 ] ? -Edit O.K. -Principal name: <---- null entry here will cause an exit - - Now try getting tokens for it to make sure it works: - - &prompt.root; kinit jane.root -MIT Project Athena (grunt.example.com) -Kerberos Initialization for "jane.root" -Password: - - Now we need to add the user to root's - .klogin file: - - &prompt.root; cat /root/.klogin -jane.root@EXAMPLE.COM - - Now try doing the &man.su.1;: - - &prompt.user; su -Password: - - and take a look at what tokens we have: - - &prompt.root; klist -Ticket file: /tmp/tkt_root_245 -Principal: jane.root@EXAMPLE.COM - - Issued Expires Principal -May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM - - - - Using Other Commands - - In an earlier example, we created a principal called - jane with an instance root. - This was based on a user with the same name as the principal, and this - is a Kerberos default; that a - <principal>.<instance> of the form - <username>.root will allow - that <username> to &man.su.1; to - root if the necessary entries are in the - .klogin file in root's - home directory: - - &prompt.root; cat /root/.klogin -jane.root@EXAMPLE.COM - - Likewise, if a user has in their own home directory lines of the - form: - - &prompt.user; cat ~/.klogin -jane@EXAMPLE.COM -jack@EXAMPLE.COM - - This allows anyone in the EXAMPLE.COM realm - who has authenticated themselves as jane or - jack (via kinit, see above) - to access to jane's - account or files on this system (grunt) via - &man.rlogin.1;, &man.rsh.1; or - &man.rcp.1;. - - For example, jane now logs into another system using - Kerberos: - - &prompt.user; kinit -MIT Project Athena (grunt.example.com) -Password: -&prompt.user; rlogin grunt -Last login: Mon May 1 21:14:47 from grumble -Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 - The Regents of the University of California. All rights reserved. - -FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 - - Or jack logs into jane's account on the same machine - (jane having - set up the .klogin file as above, and the person - in charge of Kerberos having set up principal - jack with a null instance): - - &prompt.user; kinit -&prompt.user; rlogin grunt -l jane -MIT Project Athena (grunt.example.com) -Password: -Last login: Mon May 1 21:16:55 from grumble -Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 - The Regents of the University of California. All rights reserved. -FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 - - - @@ -2075,17 +1578,6 @@ <application>Kerberos5</application> - Every &os; release beyond &os;-5.1 includes support - only for Kerberos5. Hence - Kerberos5 is the only version - included, and its configuration is similar in many aspects - to that of KerberosIV. The following - information only applies to - Kerberos5 in post &os;-5.0 - releases. Users who wish to use the - KerberosIV package may install the - security/krb4 port. - Kerberos is a network add-on system/protocol that allows users to authenticate themselves through the services of a secure server. Services such as remote @@ -2860,7 +2352,7 @@ encrypted authentication of mail clients, web based transactions such as credit card payments and more. Many ports such as www/apache13-ssl, and - mail/sylpheed-claws + mail/claws-mail will offer compilation support for building with OpenSSL. @@ -3981,8 +3473,8 @@ File System Access Control Lists - In conjunction with file system enhancements like snapshots, FreeBSD 5.0 - and later offers the security of File System Access Control Lists + In conjunction with file system enhancements like snapshots, FreeBSD + offers the security of File System Access Control Lists (ACLs). Access Control Lists extend the standard &unix; From owner-p4-projects@FreeBSD.ORG Mon Nov 8 20:09:31 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C9E92106566B; Mon, 8 Nov 2010 20:09: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 8B574106566C for ; Mon, 8 Nov 2010 20:09:31 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 75B5A8FC1C for ; Mon, 8 Nov 2010 20:09:31 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA8K9VTG011882 for ; Mon, 8 Nov 2010 20:09:31 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA8K9Uhe011879 for perforce@freebsd.org; Mon, 8 Nov 2010 20:09:30 GMT (envelope-from jhb@freebsd.org) Date: Mon, 8 Nov 2010 20:09:30 GMT Message-Id: <201011082009.oA8K9Uhe011879@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185527 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Nov 2010 20:09:32 -0000 http://p4web.freebsd.org/@@185527?ac=10 Change 185527 by jhb@jhb_jhbbsd on 2010/11/08 20:08:32 IFC @185526 Affected files ... .. //depot/projects/smpng/share/man/man9/BUS_SETUP_INTR.9#2 integrate .. //depot/projects/smpng/share/man/man9/locking.9#5 integrate .. //depot/projects/smpng/sys/amd64/acpica/madt.c#22 integrate .. //depot/projects/smpng/sys/amd64/amd64/amd64_mem.c#13 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#100 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#73 integrate .. //depot/projects/smpng/sys/arm/arm/machdep.c#34 integrate .. //depot/projects/smpng/sys/arm/conf/AVILA#22 integrate .. //depot/projects/smpng/sys/arm/conf/AVILA.hints#7 integrate .. //depot/projects/smpng/sys/arm/include/cpuconf.h#12 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/avila_gpio.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/ixp425/files.avila#6 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425reg.h#8 integrate .. //depot/projects/smpng/sys/cam/cam_periph.c#38 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#15 integrate .. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#88 integrate .. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#47 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#53 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#52 integrate .. //depot/projects/smpng/sys/conf/files.mips#12 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#128 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#40 integrate .. //depot/projects/smpng/sys/dev/ahci/ahci.c#13 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#107 integrate .. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#43 integrate .. //depot/projects/smpng/sys/dev/bwi/if_bwi.c#10 integrate .. //depot/projects/smpng/sys/dev/bwn/if_bwn.c#9 integrate .. //depot/projects/smpng/sys/dev/gpio/gpioled.c#2 integrate .. //depot/projects/smpng/sys/dev/iicbus/iiconf.c#10 integrate .. //depot/projects/smpng/sys/dev/iwn/if_iwn.c#19 integrate .. //depot/projects/smpng/sys/dev/ral/rt2560.c#22 integrate .. //depot/projects/smpng/sys/dev/ral/rt2661.c#16 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#84 integrate .. //depot/projects/smpng/sys/dev/siis/siis.c#13 integrate .. //depot/projects/smpng/sys/dev/sk/if_sk.c#21 integrate .. //depot/projects/smpng/sys/dev/usb/net/uhso.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/quirk/usb_quirk.c#16 integrate .. //depot/projects/smpng/sys/dev/usb/serial/u3g.c#21 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uark.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/serial/ubsa.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/serial/ubser.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uchcom.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/serial/ucycom.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/serial/ufoma.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uftdi.c#18 integrate .. //depot/projects/smpng/sys/dev/usb/serial/ugensa.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uipaq.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/serial/umct.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/serial/umodem.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/serial/umoscom.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uplcom.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/serial/usb_serial.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/serial/usb_serial.h#7 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uslcom.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uvisor.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uvscom.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.c#25 integrate .. //depot/projects/smpng/sys/dev/usb/usb_request.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/usb_request.h#11 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#161 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_rum.c#19 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_run.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_ural.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_zyd.c#19 integrate .. //depot/projects/smpng/sys/dev/wb/if_wb.c#6 integrate .. //depot/projects/smpng/sys/dev/wpi/if_wpi.c#17 integrate .. //depot/projects/smpng/sys/dev/xl/if_xl.c#10 integrate .. //depot/projects/smpng/sys/geom/geom_event.c#36 integrate .. //depot/projects/smpng/sys/i386/acpica/madt.c#29 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#165 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#134 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#152 integrate .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#128 integrate .. //depot/projects/smpng/sys/kern/kern_clocksource.c#4 integrate .. //depot/projects/smpng/sys/kern/kern_conf.c#68 integrate .. //depot/projects/smpng/sys/kern/kern_timeout.c#51 integrate .. //depot/projects/smpng/sys/mips/cavium/octopci.c#5 integrate .. //depot/projects/smpng/sys/mips/include/cpuregs.h#9 integrate .. //depot/projects/smpng/sys/mips/include/md_var.h#5 integrate .. //depot/projects/smpng/sys/mips/include/pmap.h#18 integrate .. //depot/projects/smpng/sys/mips/mips/dump_machdep.c#3 integrate .. //depot/projects/smpng/sys/mips/mips/gdb_machdep.c#3 integrate .. //depot/projects/smpng/sys/mips/mips/machdep.c#19 integrate .. //depot/projects/smpng/sys/mips/mips/minidump_machdep.c#1 branch .. //depot/projects/smpng/sys/net80211/ieee80211.c#53 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.c#57 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ratectl.c#3 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ratectl.h#3 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_sta.c#18 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_var.h#48 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias.c#11 integrate .. //depot/projects/smpng/sys/netinet/sctp_indata.c#35 integrate .. //depot/projects/smpng/sys/netinet/sctp_input.c#36 integrate .. //depot/projects/smpng/sys/netinet/sctp_output.c#42 integrate .. //depot/projects/smpng/sys/netinet/sctp_timer.c#24 integrate .. //depot/projects/smpng/sys/netinet/sctp_timer.h#8 integrate .. //depot/projects/smpng/sys/netinet/sctp_usrreq.c#35 integrate .. //depot/projects/smpng/sys/netinet/sctputil.c#43 integrate .. //depot/projects/smpng/sys/netinet/sctputil.h#20 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_serv.c#72 integrate .. //depot/projects/smpng/sys/pc98/pc98/machdep.c#46 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#56 integrate .. //depot/projects/smpng/sys/powerpc/aim/copyinout.c#6 integrate .. //depot/projects/smpng/sys/powerpc/aim/machdep.c#25 integrate .. //depot/projects/smpng/sys/powerpc/aim/swtch32.S#3 integrate .. //depot/projects/smpng/sys/powerpc/aim/swtch64.S#3 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap.c#14 integrate .. //depot/projects/smpng/sys/powerpc/booke/machdep.c#21 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#108 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#92 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/machdep.c#18 integrate .. //depot/projects/smpng/sys/sys/interrupt.h#33 integrate .. //depot/projects/smpng/sys/sys/kerneldump.h#12 integrate .. //depot/projects/smpng/sys/teken/sequences#4 integrate .. //depot/projects/smpng/sys/teken/teken_subr_compat.h#3 integrate .. //depot/projects/smpng/sys/vm/uma_core.c#84 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#111 integrate .. //depot/projects/smpng/sys/vm/vm_page.c#116 integrate .. //depot/projects/smpng/sys/x86/x86/local_apic.c#8 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/BUS_SETUP_INTR.9#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/BUS_SETUP_INTR.9,v 1.23 2008/04/29 08:16:05 pjd Exp $ +.\" $FreeBSD: src/share/man/man9/BUS_SETUP_INTR.9,v 1.24 2010/11/03 18:49:50 trasz Exp $ .\" -.Dd December 18, 2007 +.Dd November 3, 2010 .Dt BUS_SETUP_INTR 9 .Os .Sh NAME @@ -205,8 +205,7 @@ .Xr random 4 , .Xr device 9 , .Xr driver 9 , -.Xr mtx_init 9 , -.Xr wakeup 9 +.Xr locking 9 .Sh AUTHORS .An -nosplit This manual page was written by ==== //depot/projects/smpng/share/man/man9/locking.9#5 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/locking.9,v 1.22 2010/09/01 19:50:03 mlaier Exp $ +.\" $FreeBSD: src/share/man/man9/locking.9,v 1.23 2010/11/03 18:49:50 trasz Exp $ .\" -.Dd August 24, 2010 +.Dd November 3, 2010 .Dt LOCKING 9 .Os .Sh NAME @@ -356,6 +356,7 @@ .Xr sema 9 , .Xr sleep 9 , .Xr sx 9 , +.Xr BUS_SETUP_INTR 9 , .Xr LOCK_PROFILING 9 .Sh HISTORY These ==== //depot/projects/smpng/sys/amd64/acpica/madt.c#22 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.31 2010/11/01 18:18:46 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.32 2010/11/08 20:05:22 jhb Exp $"); #include #include @@ -203,8 +203,7 @@ apic_register_enumerator(&madt_enumerator); } -SYSINIT(madt_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST, - madt_register, NULL); +SYSINIT(madt_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST, madt_register, NULL); /* * Call the handler routine for each entry in the MADT table. ==== //depot/projects/smpng/sys/amd64/amd64/amd64_mem.c#13 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/amd64_mem.c,v 1.34 2010/10/27 16:46:37 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/amd64_mem.c,v 1.35 2010/11/07 21:48:49 alc Exp $"); #include #include @@ -583,7 +583,7 @@ i = (sc->mr_cap & MR686_FIXMTRR) ? MTRR_N64K + MTRR_N16K + MTRR_N4K : 0; mrd = sc->mr_desc + i; for (; i < sc->mr_ndesc; i++, mrd++) { - if (mrd->mr_flags & MDF_ACTIVE) + if ((mrd->mr_flags & (MDF_ACTIVE | MDF_BOGUS)) == MDF_ACTIVE) pmap_demote_DMAP(mrd->mr_base, mrd->mr_len, FALSE); } @@ -688,7 +688,7 @@ i = (sc->mr_cap & MR686_FIXMTRR) ? MTRR_N64K + MTRR_N16K + MTRR_N4K : 0; mrd = sc->mr_desc + i; for (; i < sc->mr_ndesc; i++, mrd++) { - if (mrd->mr_flags & MDF_ACTIVE) + if ((mrd->mr_flags & (MDF_ACTIVE | MDF_BOGUS)) == MDF_ACTIVE) pmap_demote_DMAP(mrd->mr_base, mrd->mr_len, TRUE); } } ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#100 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.727 2010/11/01 17:40:35 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.728 2010/11/05 13:42:58 jhb Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#73 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.335 2010/11/01 18:18:46 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.337 2010/11/08 20:05:22 jhb Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -239,6 +239,9 @@ cpu_logical++; } + KASSERT(cpu_cores >= 1 && cpu_logical >= 1, + ("topo_probe_0x4 couldn't find BSP")); + cpu_cores /= cpu_logical; hyperthreading_cpus = cpu_logical; } @@ -310,7 +313,9 @@ return; logical_cpus_mask = 0; - if (cpu_vendor_id == CPU_VENDOR_AMD) + if (mp_ncpus <= 1) + cpu_cores = cpu_logical = 1; + else if (cpu_vendor_id == CPU_VENDOR_AMD) topo_probe_amd(); else if (cpu_vendor_id == CPU_VENDOR_INTEL) { /* @@ -332,10 +337,8 @@ * Fallback: assume each logical CPU is in separate * physical package. That is, no multi-core, no SMT. */ - if (cpu_cores == 0) - cpu_cores = 1; - if (cpu_logical == 0) - cpu_logical = 1; + if (cpu_cores == 0 || cpu_logical == 0) + cpu_cores = cpu_logical = 1; cpu_topo_probed = 1; } @@ -419,7 +422,7 @@ } if (mp_ncpus < MAXCPU) { mp_ncpus++; - mp_maxid = mp_ncpus -1; + mp_maxid = mp_ncpus - 1; } if (bootverbose) printf("SMP: Added CPU %d (%s)\n", apic_id, boot_cpu ? "BSP" : @@ -442,7 +445,7 @@ else KASSERT(mp_maxid >= mp_ncpus - 1, ("%s: counters out of sync: max %d, count %d", __func__, - mp_maxid, mp_ncpus)); + mp_maxid, mp_ncpus)); } int ==== //depot/projects/smpng/sys/arm/arm/machdep.c#34 (text+ko) ==== @@ -46,7 +46,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.37 2010/06/30 18:03:42 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.38 2010/11/05 13:42:58 jhb Exp $"); #include #include ==== //depot/projects/smpng/sys/arm/conf/AVILA#22 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/AVILA,v 1.37 2010/02/15 23:44:48 attilio Exp $ +# $FreeBSD: src/sys/arm/conf/AVILA,v 1.38 2010/11/07 20:33:39 thompsa Exp $ ident AVILA @@ -87,6 +87,10 @@ device avila_led +device gpio +device gpioled +device avila_gpio # GPIO pins on J8 + device ata device atadisk # ATA disk drives device avila_ata # Gateworks CF/IDE support ==== //depot/projects/smpng/sys/arm/conf/AVILA.hints#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/arm/conf/AVILA.hints,v 1.8 2009/06/22 22:46:37 sam Exp $ +# $FreeBSD: src/sys/arm/conf/AVILA.hints,v 1.9 2010/11/07 20:33:39 thompsa Exp $ # # Device wiring for the Gateworks Avila 2384. @@ -41,6 +41,9 @@ # Front Panel LED hint.led_avila.0.at="ixp0" +# GPIO pins +hint.gpio_avila.0.at="ixp0" + # Analog Devices AD7418 temperature sensor hint.ad7418.0.at="iicbus0" hint.ad7418.0.addr=0x50 ==== //depot/projects/smpng/sys/arm/include/cpuconf.h#12 (text+ko) ==== @@ -34,7 +34,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/include/cpuconf.h,v 1.14 2010/05/04 10:14:05 kevlo Exp $ + * $FreeBSD: src/sys/arm/include/cpuconf.h,v 1.15 2010/11/08 07:54:24 kevlo Exp $ * */ @@ -70,7 +70,7 @@ */ #if (defined(CPU_ARM7TDMI) || defined(CPU_ARM8) || defined(CPU_ARM9) || \ defined(CPU_SA110) || defined(CPU_SA1100) || defined(CPU_SA1110) || \ - defined(CPU_IXP12X0) || defined(CPU_XSCALE_IXP425) || defined(CPU_FA526)) + defined(CPU_IXP12X0) || defined(CPU_FA526)) #define ARM_ARCH_4 1 #else #define ARM_ARCH_4 0 @@ -79,7 +79,8 @@ #if (defined(CPU_ARM9E) || defined(CPU_ARM10) || \ defined(CPU_XSCALE_80200) || defined(CPU_XSCALE_80321) || \ defined(CPU_XSCALE_80219) || defined(CPU_XSCALE_81342) || \ - defined(CPU_XSCALE_PXA2X0) || defined(CPU_FA626TE)) + defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425) || \ + defined(CPU_FA626TE)) #define ARM_ARCH_5 1 #else #define ARM_ARCH_5 0 ==== //depot/projects/smpng/sys/arm/xscale/ixp425/files.avila#6 (text+ko) ==== @@ -1,7 +1,8 @@ -#$FreeBSD: src/sys/arm/xscale/ixp425/files.avila,v 1.6 2009/06/22 22:54:13 sam Exp $ +#$FreeBSD: src/sys/arm/xscale/ixp425/files.avila,v 1.8 2010/11/07 20:38:14 thompsa Exp $ arm/xscale/ixp425/avila_machdep.c standard arm/xscale/ixp425/avila_ata.c optional avila_ata arm/xscale/ixp425/avila_led.c optional avila_led +arm/xscale/ixp425/avila_gpio.c optional avila_gpio arm/xscale/ixp425/cambria_exp_space.c standard arm/xscale/ixp425/cambria_fled.c optional cambria_fled arm/xscale/ixp425/cambria_led.c optional cambria_led ==== //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425reg.h#8 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425reg.h,v 1.8 2009/06/22 20:41:02 sam Exp $ + * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425reg.h,v 1.9 2010/11/07 20:33:39 thompsa Exp $ * */ @@ -323,6 +323,8 @@ #define GPIO_TYPE(b,v) ((v) << (((b) & 0x7) * 3)) #define GPIO_TYPE_REG(b) (((b)&8)?IXP425_GPIO_GPIT2R:IXP425_GPIO_GPIT1R) +#define IXP4XX_GPIO_PINS 16 + /* * Expansion Bus Configuration Space. */ ==== //depot/projects/smpng/sys/cam/cam_periph.c#38 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.89 2010/06/02 18:06:32 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.90 2010/11/08 15:59:41 mav Exp $"); #include #include @@ -1055,6 +1055,7 @@ saved_ccb->ccb_h.status |= CAM_AUTOSENSE_FAIL; } + saved_ccb->csio.sense_resid = done_ccb->csio.resid; bcopy(saved_ccb, done_ccb, sizeof(union ccb)); xpt_free_ccb(saved_ccb); break; @@ -1211,7 +1212,7 @@ scsi_request_sense(&done_ccb->csio, /*retries*/1, camperiphsensedone, &save_ccb->csio.sense_data, - sizeof(save_ccb->csio.sense_data), + save_ccb->csio.sense_len, CAM_TAG_ACTION_NONE, /*sense_len*/SSD_FULL_SIZE, /*timeout*/5000); @@ -1602,7 +1603,7 @@ scsi_request_sense(&ccb->csio, /*retries*/1, camperiphsensedone, &orig_ccb->csio.sense_data, - sizeof(orig_ccb->csio.sense_data), + orig_ccb->csio.sense_len, CAM_TAG_ACTION_NONE, /*sense_len*/SSD_FULL_SIZE, /*timeout*/5000); ==== //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#15 (text+ko) ==== @@ -3627,6 +3627,14 @@ uint_t vec; int error; + /* + * Check if we have sufficient kernel memory allocated + * for the zfs_cmd_t request. Bail out if not so we + * will not access undefined memory region. + */ + if (IOCPARM_LEN(cmd) < sizeof(zfs_cmd_t)) + return (EINVAL); + vec = ZFS_IOC(cmd); if (vec >= sizeof (zfs_ioc_vec) / sizeof (zfs_ioc_vec[0])) ==== //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#88 (text+ko) ==== @@ -42,7 +42,7 @@ #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.153 2010/09/28 11:32:17 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.155 2010/11/08 15:14:14 des Exp $"); #include #include @@ -276,11 +276,12 @@ sbuf_printf(sb, "processor\t: %d\n" "vendor_id\t: %.20s\n" - "cpu family\t: %d\n" - "model\t\t: %d\n" + "cpu family\t: %u\n" + "model\t\t: %u\n" "model name\t: %s\n" - "stepping\t: %d\n\n", - i, cpu_vendor, class, cpu, model, cpu_id & 0xf); + "stepping\t: %u\n\n", + i, cpu_vendor, CPUID_TO_FAMILY(cpu_id), + CPUID_TO_MODEL(cpu_id), model, cpu_id & CPUID_STEPPING); /* XXX per-cpu vendor / class / model / id? */ } ==== //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#47 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.107 2009/11/02 18:51:24 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.108 2010/11/04 18:43:57 bschmidt Exp $"); #include #include @@ -287,15 +287,6 @@ TAILQ_INIT(&sc->ndis_cfglist_head); -#if __FreeBSD_version < 502113 - /* Create the sysctl tree. */ - - sc->ndis_tree = SYSCTL_ADD_NODE(&sc->ndis_ctx, - SYSCTL_STATIC_CHILDREN(_hw), OID_AUTO, - device_get_nameunit(sc->ndis_dev), CTLFLAG_RD, 0, - device_get_desc(sc->ndis_dev)); - -#endif /* Add the driver-specific registry keys. */ while(1) { @@ -310,11 +301,7 @@ /* See if we already have a sysctl with this name */ oidp = NULL; -#if __FreeBSD_version < 502113 - TAILQ_FOREACH(e, &sc->ndis_ctx, link) { -#else TAILQ_FOREACH(e, device_get_sysctl_ctx(sc->ndis_dev), link) { -#endif oidp = e->entry; if (strcasecmp(oidp->oid_name, vals->nc_cfgkey) == 0) break; @@ -395,18 +382,11 @@ TAILQ_INSERT_TAIL(&sc->ndis_cfglist_head, cfg, link); cfg->ndis_oid = -#if __FreeBSD_version < 502113 - SYSCTL_ADD_STRING(&sc->ndis_ctx, SYSCTL_CHILDREN(sc->ndis_tree), - OID_AUTO, cfg->ndis_cfg.nc_cfgkey, flag, - cfg->ndis_cfg.nc_val, sizeof(cfg->ndis_cfg.nc_val), - cfg->ndis_cfg.nc_cfgdesc); -#else SYSCTL_ADD_STRING(device_get_sysctl_ctx(sc->ndis_dev), SYSCTL_CHILDREN(device_get_sysctl_tree(sc->ndis_dev)), OID_AUTO, cfg->ndis_cfg.nc_cfgkey, flag, cfg->ndis_cfg.nc_val, sizeof(cfg->ndis_cfg.nc_val), cfg->ndis_cfg.nc_cfgdesc); -#endif return (0); } @@ -428,11 +408,7 @@ sc = arg; -#if __FreeBSD_version < 502113 - clist = &sc->ndis_ctx; -#else clist = device_get_sysctl_ctx(sc->ndis_dev); -#endif while (!TAILQ_EMPTY(&sc->ndis_cfglist_head)) { cfg = TAILQ_FIRST(&sc->ndis_cfglist_head); ==== //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#53 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.122 2009/11/02 19:13:12 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.123 2010/11/04 18:43:57 bschmidt Exp $"); /* * This file implements a translation layer between the BSD networking @@ -639,11 +639,7 @@ * See if registry key is already in a list of known keys * included with the driver. */ -#if __FreeBSD_version < 502113 - TAILQ_FOREACH(e, &sc->ndis_ctx, link) { -#else TAILQ_FOREACH(e, device_get_sysctl_ctx(sc->ndis_dev), link) { -#endif oidp = e->entry; if (strcasecmp(oidp->oid_name, keystr) == 0) { if (strcmp((char *)oidp->oid_arg1, "UNSET") == 0) { @@ -746,11 +742,7 @@ /* See if the key already exists. */ -#if __FreeBSD_version < 502113 - TAILQ_FOREACH(e, &sc->ndis_ctx, link) { -#else TAILQ_FOREACH(e, device_get_sysctl_ctx(sc->ndis_dev), link) { -#endif oidp = e->entry; if (strcasecmp(oidp->oid_name, keystr) == 0) { /* Found it, set the value. */ @@ -1318,23 +1310,11 @@ return; } -#ifdef IFP2ENADDR - if (bcmp(IFP2ENADDR(sc->ifp), empty, ETHER_ADDR_LEN) == 0) -#elif __FreeBSD_version >= 700000 if (sc->ifp->if_addr == NULL || bcmp(IF_LLADDR(sc->ifp), empty, ETHER_ADDR_LEN) == 0) -#else - if (bcmp(sc->arpcom.ac_enaddr, empty, ETHER_ADDR_LEN) == 0) -#endif *status = NDIS_STATUS_FAILURE; else { -#ifdef IFP2ENADDR - *addr = IFP2ENADDR(sc->ifp); -#elif __FreeBSD_version >= 700000 *addr = IF_LLADDR(sc->ifp); -#else - *addr = sc->arpcom.ac_enaddr; -#endif *addrlen = ETHER_ADDR_LEN; *status = NDIS_STATUS_SUCCESS; } ==== //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#52 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.102 2010/10/05 20:56:08 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.103 2010/11/04 18:43:57 bschmidt Exp $"); #include #include @@ -44,9 +44,7 @@ #include #include -#if __FreeBSD_version > 502113 #include -#endif #include #include #include @@ -2602,11 +2600,7 @@ rl = BUS_GET_RESOURCE_LIST(device_get_parent(dev), dev); if (rl != NULL) { -#if __FreeBSD_version < 600022 - SLIST_FOREACH(rle, rl, link) { -#else STAILQ_FOREACH(rle, rl, link) { -#endif r = rle->res; if (r == NULL) @@ -2698,9 +2692,6 @@ KeReleaseSpinLock(&kq->kq_lock, irql); } -#if __FreeBSD_version < 502113 - mtx_lock(&Giant); -#endif kproc_exit(0); return; /* notreached */ } @@ -3429,9 +3420,6 @@ ntoskrnl_kth--; -#if __FreeBSD_version < 502113 - mtx_lock(&Giant); -#endif kproc_exit(0); return (0); /* notreached */ } @@ -3453,11 +3441,7 @@ DbgBreakPoint(void) { -#if __FreeBSD_version < 502113 - Debugger("DbgBreakPoint(): breakpoint"); -#else kdb_enter(KDB_WHY_NDIS, "DbgBreakPoint(): breakpoint"); -#endif } static void @@ -3697,14 +3681,9 @@ thread_lock(curthread); #ifdef NTOSKRNL_MULTIPLE_DPCS -#if __FreeBSD_version >= 502102 sched_bind(curthread, kq->kq_cpu); #endif -#endif sched_prio(curthread, PRI_MIN_KERN); -#if __FreeBSD_version < 600000 - curthread->td_base_pri = PRI_MIN_KERN; -#endif thread_unlock(curthread); while (1) { @@ -3737,9 +3716,6 @@ KeSetEvent(&kq->kq_done, IO_NO_INCREMENT, FALSE); } -#if __FreeBSD_version < 502113 - mtx_lock(&Giant); -#endif kproc_exit(0); return; /* notreached */ } ==== //depot/projects/smpng/sys/conf/files.mips#12 (text+ko) ==== @@ -14,7 +14,7 @@ # Copyright (c) 2001, 2004-2005, Juniper Networks, Inc. # All rights reserved. # JNPR: files.mips,v 1.11 2007/08/09 12:25:35 katta -# $FreeBSD: src/sys/conf/files.mips,v 1.17 2010/09/13 05:03:37 jchandra Exp $ +# $FreeBSD: src/sys/conf/files.mips,v 1.18 2010/11/07 03:09:02 gonzo Exp $ # # ---------------------------------------------------------------------- # Phase 2 @@ -55,6 +55,7 @@ mips/mips/dump_machdep.c standard mips/mips/in_cksum.c optional inet mips/mips/locore.S standard no-obj +mips/mips/minidump_machdep.c standard mips/mips/mem.c optional mem mips/mips/nexus.c standard mips/mips/stack_machdep.c optional ddb | stack ==== //depot/projects/smpng/sys/dev/acpica/acpi.c#128 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.291 2010/10/26 18:59:50 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.293 2010/11/08 19:52:14 jkim Exp $"); #include "opt_acpi.h" #include @@ -1673,38 +1673,36 @@ ACPI_OBJECT_TYPE type; ACPI_HANDLE h; device_t bus, child; + char *handle_str; int order; - char *handle_str, **search; - static char *scopes[] = {"\\_PR_", "\\_TZ_", "\\_SI_", "\\_SB_", NULL}; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); + if (acpi_disabled("children")) + return_ACPI_STATUS (AE_OK); + /* Skip this device if we think we'll have trouble with it. */ if (acpi_avoid(handle)) return_ACPI_STATUS (AE_OK); bus = (device_t)context; if (ACPI_SUCCESS(AcpiGetType(handle, &type))) { + handle_str = acpi_name(handle); switch (type) { case ACPI_TYPE_DEVICE: - case ACPI_TYPE_PROCESSOR: - case ACPI_TYPE_THERMAL: - case ACPI_TYPE_POWER: - if (acpi_disabled("children")) - break; - /* * Since we scan from \, be sure to skip system scope objects. - * At least \_SB and \_TZ are detected as devices (ACPI-CA bug?) + * \_SB_ and \_TZ_ are defined in ACPICA as devices to work around + * BIOS bugs. For example, \_SB_ is to allow \_SB_._INI to be run + * during the intialization and \_TZ_ is to support Notify() on it. */ - handle_str = acpi_name(handle); - for (search = scopes; *search != NULL; search++) { - if (strcmp(handle_str, *search) == 0) - break; - } - if (*search != NULL) + if (strcmp(handle_str, "\\_SB_") == 0 || + strcmp(handle_str, "\\_TZ_") == 0) break; - + /* FALLTHROUGH */ + case ACPI_TYPE_PROCESSOR: + case ACPI_TYPE_THERMAL: + case ACPI_TYPE_POWER: /* * Create a placeholder device for this node. Sort the * placeholder so that the probe/attach passes will run ==== //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#40 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.59 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.61 2010/11/05 20:24:26 jkim Exp $"); #include "opt_acpi.h" #include @@ -268,6 +268,7 @@ static ACPI_STATUS link_add_prs(ACPI_RESOURCE *res, void *context) { + ACPI_RESOURCE *tmp; struct link_res_request *req; struct link *link; UINT8 *irqs = NULL; @@ -321,12 +322,23 @@ * Stash a copy of the resource for later use when doing * _SRS. */ - bcopy(res, &link->l_prs_template, sizeof(ACPI_RESOURCE)); + tmp = &link->l_prs_template; if (is_ext_irq) { + bcopy(res, tmp, ACPI_RS_SIZE(tmp->Data.ExtendedIrq)); + + /* + * XXX acpi_AppendBufferResource() cannot handle + * optional data. + */ + bzero(&tmp->Data.ExtendedIrq.ResourceSource, + sizeof(tmp->Data.ExtendedIrq.ResourceSource)); + tmp->Length = ACPI_RS_SIZE(tmp->Data.ExtendedIrq); + link->l_num_irqs = res->Data.ExtendedIrq.InterruptCount; ext_irqs = res->Data.ExtendedIrq.Interrupts; } else { + bcopy(res, tmp, ACPI_RS_SIZE(tmp->Data.Irq)); link->l_num_irqs = res->Data.Irq.InterruptCount; irqs = res->Data.Irq.Interrupts; } @@ -688,18 +700,17 @@ static ACPI_STATUS acpi_pci_link_srs_from_crs(struct acpi_pci_link_softc *sc, ACPI_BUFFER *srsbuf) { - ACPI_RESOURCE *resource, *end, newres, *resptr; - ACPI_BUFFER crsbuf; + ACPI_RESOURCE *end, *res; ACPI_STATUS status; struct link *link; int i, in_dpf; /* Fetch the _CRS. */ ACPI_SERIAL_ASSERT(pci_link); - crsbuf.Pointer = NULL; - crsbuf.Length = ACPI_ALLOCATE_BUFFER; - status = AcpiGetCurrentResources(acpi_get_handle(sc->pl_dev), &crsbuf); - if (ACPI_SUCCESS(status) && crsbuf.Pointer == NULL) + srsbuf->Pointer = NULL; + srsbuf->Length = ACPI_ALLOCATE_BUFFER; + status = AcpiGetCurrentResources(acpi_get_handle(sc->pl_dev), srsbuf); + if (ACPI_SUCCESS(status) && srsbuf->Pointer == NULL) status = AE_NO_MEMORY; if (ACPI_FAILURE(status)) { if (bootverbose) @@ -710,14 +721,13 @@ } /* Fill in IRQ resources via link structures. */ - srsbuf->Pointer = NULL; link = sc->pl_links; i = 0; in_dpf = DPF_OUTSIDE; - resource = (ACPI_RESOURCE *)crsbuf.Pointer; - end = (ACPI_RESOURCE *)((char *)crsbuf.Pointer + crsbuf.Length); + res = (ACPI_RESOURCE *)srsbuf->Pointer; + end = (ACPI_RESOURCE *)((char *)srsbuf->Pointer + srsbuf->Length); for (;;) { - switch (resource->Type) { + switch (res->Type) { case ACPI_RESOURCE_TYPE_START_DEPENDENT: switch (in_dpf) { case DPF_OUTSIDE: @@ -731,67 +741,44 @@ __func__); break; } - resptr = NULL; break; case ACPI_RESOURCE_TYPE_END_DEPENDENT: /* We are finished with DPF parsing. */ KASSERT(in_dpf != DPF_OUTSIDE, ("%s: end dpf when not parsing a dpf", __func__)); in_dpf = DPF_OUTSIDE; - resptr = NULL; break; case ACPI_RESOURCE_TYPE_IRQ: MPASS(i < sc->pl_num_links); - MPASS(link->l_prs_template.Type == ACPI_RESOURCE_TYPE_IRQ); - newres = link->l_prs_template; - resptr = &newres; - resptr->Data.Irq.InterruptCount = 1; + res->Data.Irq.InterruptCount = 1; if (PCI_INTERRUPT_VALID(link->l_irq)) { KASSERT(link->l_irq < NUM_ISA_INTERRUPTS, ("%s: can't put non-ISA IRQ %d in legacy IRQ resource type", __func__, link->l_irq)); - resptr->Data.Irq.Interrupts[0] = link->l_irq; + res->Data.Irq.Interrupts[0] = link->l_irq; } else - resptr->Data.Irq.Interrupts[0] = 0; + res->Data.Irq.Interrupts[0] = 0; link++; i++; break; case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: MPASS(i < sc->pl_num_links); - MPASS(link->l_prs_template.Type == ACPI_RESOURCE_TYPE_EXTENDED_IRQ); - newres = link->l_prs_template; - resptr = &newres; - resptr->Data.ExtendedIrq.InterruptCount = 1; + res->Data.ExtendedIrq.InterruptCount = 1; if (PCI_INTERRUPT_VALID(link->l_irq)) - resptr->Data.ExtendedIrq.Interrupts[0] = + res->Data.ExtendedIrq.Interrupts[0] = link->l_irq; else - resptr->Data.ExtendedIrq.Interrupts[0] = 0; + res->Data.ExtendedIrq.Interrupts[0] = 0; link++; i++; break; - default: - resptr = resource; } - if (resptr != NULL) { - status = acpi_AppendBufferResource(srsbuf, resptr); - if (ACPI_FAILURE(status)) { - device_printf(sc->pl_dev, - "Unable to build resources: %s\n", - AcpiFormatException(status)); - if (srsbuf->Pointer != NULL) - AcpiOsFree(srsbuf->Pointer); - AcpiOsFree(crsbuf.Pointer); - return (status); - } - } - if (resource->Type == ACPI_RESOURCE_TYPE_END_TAG) + if (res->Type == ACPI_RESOURCE_TYPE_END_TAG) break; - resource = ACPI_NEXT_RESOURCE(resource); - if (resource >= end) + res = ACPI_NEXT_RESOURCE(res); + if (res >= end) break; } - AcpiOsFree(crsbuf.Pointer); return (AE_OK); } @@ -811,10 +798,11 @@ /* Add a new IRQ resource from each link. */ link = &sc->pl_links[i]; - newres = link->l_prs_template; - if (newres.Type == ACPI_RESOURCE_TYPE_IRQ) { + if (link->l_prs_template.Type == ACPI_RESOURCE_TYPE_IRQ) { /* Build an IRQ resource. */ + bcopy(&link->l_prs_template, &newres, + ACPI_RS_SIZE(newres.Data.Irq)); newres.Data.Irq.InterruptCount = 1; if (PCI_INTERRUPT_VALID(link->l_irq)) { KASSERT(link->l_irq < NUM_ISA_INTERRUPTS, @@ -826,6 +814,8 @@ } else { /* Build an ExtIRQ resuorce. */ + bcopy(&link->l_prs_template, &newres, + ACPI_RS_SIZE(newres.Data.ExtendedIrq)); newres.Data.ExtendedIrq.InterruptCount = 1; if (PCI_INTERRUPT_VALID(link->l_irq)) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Nov 8 20:38:05 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 69FA41065696; Mon, 8 Nov 2010 20:38: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 13B641065674 for ; Mon, 8 Nov 2010 20:38:05 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id F36C38FC3C for ; Mon, 8 Nov 2010 20:38:04 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA8Kc44f018573 for ; Mon, 8 Nov 2010 20:38:04 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA8Kc4Ne018570 for perforce@freebsd.org; Mon, 8 Nov 2010 20:38:04 GMT (envelope-from jhb@freebsd.org) Date: Mon, 8 Nov 2010 20:38:04 GMT Message-Id: <201011082038.oA8Kc4Ne018570@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185533 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Nov 2010 20:38:05 -0000 http://p4web.freebsd.org/@@185533?ac=10 Change 185533 by jhb@jhb_jhbbsd on 2010/11/08 20:38:02 Loop back removal of acpi.ko. Affected files ... .. //depot/projects/smpng/sys/i386/acpica/madt.c#30 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#166 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#135 integrate .. //depot/projects/smpng/sys/i386/xen/mptable.c#4 integrate .. //depot/projects/smpng/sys/modules/acpi/Makefile#36 integrate .. //depot/projects/smpng/sys/x86/x86/local_apic.c#9 integrate .. //depot/projects/smpng/sys/x86/x86/mptable.c#2 integrate Differences ... ==== //depot/projects/smpng/sys/i386/acpica/madt.c#30 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/acpica/madt.c,v 1.36 2010/11/08 20:05:22 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/acpica/madt.c,v 1.37 2010/11/08 20:35:09 jhb Exp $"); #include #include @@ -203,7 +203,7 @@ apic_register_enumerator(&madt_enumerator); } -SYSINIT(madt_register, SI_SUB_CPU - 1, SI_ORDER_SECOND, madt_register, NULL); +SYSINIT(madt_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST, madt_register, NULL); /* * Call the handler routine for each entry in the MADT table. ==== //depot/projects/smpng/sys/i386/i386/machdep.c#166 (text+ko) ==== @@ -38,9 +38,8 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.711 2010/11/05 13:42:58 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.712 2010/11/08 20:32:35 jhb Exp $"); -#include "opt_apic.h" #include "opt_atalk.h" #include "opt_compat.h" #include "opt_cpu.h" @@ -3614,102 +3613,6 @@ return 0; } -#ifndef DEV_APIC -#include - -/* - * Provide stub functions so that the MADT APIC enumerator in the acpi - * kernel module will link against a kernel without 'device apic'. - * - * XXX - This is a gross hack. - */ -void -apic_register_enumerator(struct apic_enumerator *enumerator) -{ -} - -void * -ioapic_create(vm_paddr_t addr, int32_t apic_id, int intbase) -{ - return (NULL); -} - -int -ioapic_disable_pin(void *cookie, u_int pin) -{ - return (ENXIO); -} - -int -ioapic_get_vector(void *cookie, u_int pin) -{ - return (-1); -} - -void -ioapic_register(void *cookie) -{ -} - -int -ioapic_remap_vector(void *cookie, u_int pin, int vector) -{ - return (ENXIO); -} - -int -ioapic_set_extint(void *cookie, u_int pin) -{ - return (ENXIO); -} - -int -ioapic_set_nmi(void *cookie, u_int pin) -{ - return (ENXIO); -} - -int -ioapic_set_polarity(void *cookie, u_int pin, enum intr_polarity pol) -{ - return (ENXIO); -} - -int -ioapic_set_triggermode(void *cookie, u_int pin, enum intr_trigger trigger) -{ - return (ENXIO); -} - -void -lapic_create(u_int apic_id, int boot_cpu) -{ -} - -void -lapic_init(vm_paddr_t addr) -{ -} - -int -lapic_set_lvt_mode(u_int apic_id, u_int lvt, u_int32_t mode) -{ - return (ENXIO); -} - -int -lapic_set_lvt_polarity(u_int apic_id, u_int lvt, enum intr_polarity pol) -{ - return (ENXIO); -} - -int -lapic_set_lvt_triggermode(u_int apic_id, u_int lvt, enum intr_trigger trigger) -{ - return (ENXIO); -} -#endif - #ifdef KDB /* ==== //depot/projects/smpng/sys/i386/i386/mp_machdep.c#135 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.322 2010/11/04 08:51:45 avg Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.323 2010/11/08 20:35:09 jhb Exp $"); #include "opt_apic.h" #include "opt_cpu.h" @@ -465,8 +465,10 @@ boot_cpu_id = apic_id; cpu_info[apic_id].cpu_bsp = 1; } - if (mp_ncpus < MAXCPU) + if (mp_ncpus < MAXCPU) { mp_ncpus++; + mp_maxid = mp_ncpus - 1; + } if (bootverbose) printf("SMP: Added CPU %d (%s)\n", apic_id, boot_cpu ? "BSP" : "AP"); @@ -476,7 +478,19 @@ cpu_mp_setmaxid(void) { - mp_maxid = MAXCPU - 1; + /* + * mp_maxid should be already set by calls to cpu_add(). + * Just sanity check its value here. + */ + if (mp_ncpus == 0) + KASSERT(mp_maxid == 0, + ("%s: mp_ncpus is zero, but mp_maxid is not", __func__)); + else if (mp_ncpus == 1) + mp_maxid = 0; + else + KASSERT(mp_maxid >= mp_ncpus - 1, + ("%s: counters out of sync: max %d, count %d", __func__, + mp_maxid, mp_ncpus)); } int @@ -504,6 +518,7 @@ * One CPU was found, so this must be a UP system with * an I/O APIC. */ + mp_maxid = 0; return (0); } ==== //depot/projects/smpng/sys/i386/xen/mptable.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/xen/mptable.c,v 1.3 2010/11/01 18:18:46 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/xen/mptable.c,v 1.4 2010/11/08 20:35:09 jhb Exp $"); #include #include @@ -109,7 +109,7 @@ apic_register_enumerator(&mptable_enumerator); } -SYSINIT(mptable_register, SI_SUB_CPU - 1, SI_ORDER_FIRST, mptable_register, +SYSINIT(mptable_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST, mptable_register, NULL); ==== //depot/projects/smpng/sys/modules/acpi/Makefile#36 (text+ko) ==== @@ -1,10 +1,6 @@ -# $FreeBSD: src/sys/modules/acpi/Makefile,v 1.56 2010/07/25 17:55:57 rpaulo Exp $ +# $FreeBSD: src/sys/modules/acpi/Makefile,v 1.57 2010/11/08 20:30:59 jhb Exp $ -.if ${MACHINE} == "i386" -SUBDIR= acpi -.endif - -SUBDIR+= acpi_asus acpi_fujitsu acpi_hp acpi_ibm \ +SUBDIR= acpi_asus acpi_fujitsu acpi_hp acpi_ibm \ acpi_panasonic acpi_sony acpi_toshiba acpi_video \ acpi_dock acpi_wmi aibs ==== //depot/projects/smpng/sys/x86/x86/local_apic.c#9 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/x86/x86/local_apic.c,v 1.16 2010/11/08 20:03:51 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/x86/x86/local_apic.c,v 1.17 2010/11/08 20:35:09 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -1285,7 +1285,7 @@ if (resource_disabled("apic", 0)) return; - /* First, probe all the enumerators to find the best match. */ + /* Probe all the enumerators to find the best match. */ best_enum = NULL; best = 0; SLIST_FOREACH(enumerator, &enumerators, apic_next) { @@ -1321,13 +1321,12 @@ } #endif - /* Second, probe the CPU's in the system. */ + /* Probe the CPU's in the system. */ retval = best_enum->apic_probe_cpus(); if (retval != 0) printf("%s: Failed to probe CPUs: returned %d\n", best_enum->apic_name, retval); -#ifdef __amd64__ } SYSINIT(apic_init, SI_SUB_TUNABLES - 1, SI_ORDER_SECOND, apic_init, NULL); @@ -1342,19 +1341,14 @@ if (best_enum == NULL) return; -#endif - /* Third, initialize the local APIC. */ + + /* Initialize the local APIC. */ retval = best_enum->apic_setup_local(); if (retval != 0) printf("%s: Failed to setup the local APIC: returned %d\n", best_enum->apic_name, retval); } -#ifdef __amd64__ -SYSINIT(apic_setup_local, SI_SUB_CPU, SI_ORDER_SECOND, apic_setup_local, - NULL); -#else -SYSINIT(apic_init, SI_SUB_CPU, SI_ORDER_SECOND, apic_init, NULL); -#endif +SYSINIT(apic_setup_local, SI_SUB_CPU, SI_ORDER_SECOND, apic_setup_local, NULL); /* * Setup the I/O APICs. ==== //depot/projects/smpng/sys/x86/x86/mptable.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/x86/x86/mptable.c,v 1.2 2010/11/01 18:18:46 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/x86/x86/mptable.c,v 1.3 2010/11/08 20:35:09 jhb Exp $"); #include "opt_mptable_force_htt.h" #include @@ -389,7 +389,7 @@ apic_register_enumerator(&mptable_enumerator); } -SYSINIT(mptable_register, SI_SUB_CPU - 1, SI_ORDER_FIRST, mptable_register, +SYSINIT(mptable_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST, mptable_register, NULL); /* From owner-p4-projects@FreeBSD.ORG Mon Nov 8 21:53:29 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8EBE71065674; Mon, 8 Nov 2010 21:53: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 501271065670 for ; Mon, 8 Nov 2010 21:53:29 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 3B2038FC08 for ; Mon, 8 Nov 2010 21:53:29 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA8LrT5u034810 for ; Mon, 8 Nov 2010 21:53:29 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA8LrS64034807 for perforce@freebsd.org; Mon, 8 Nov 2010 21:53:28 GMT (envelope-from jhb@freebsd.org) Date: Mon, 8 Nov 2010 21:53:28 GMT Message-Id: <201011082153.oA8LrS64034807@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185542 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Nov 2010 21:53:29 -0000 http://p4web.freebsd.org/@@185542?ac=10 Change 185542 by jhb@jhb_jhbbsd on 2010/11/08 21:53:18 IFC @185541 Affected files ... .. //depot/projects/smpng/share/man/man9/Makefile#20 integrate .. //depot/projects/smpng/share/man/man9/taskqueue.9#5 integrate .. //depot/projects/smpng/sys/amd64/acpica/madt.c#23 delete .. //depot/projects/smpng/sys/boot/common/loader.8#51 integrate .. //depot/projects/smpng/sys/boot/forth/beastie.4th#12 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/biosacpi.c#14 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/i386_module.c#10 integrate .. //depot/projects/smpng/sys/boot/i386/loader/help.i386#8 integrate .. //depot/projects/smpng/sys/conf/files.amd64#82 integrate .. //depot/projects/smpng/sys/conf/files.i386#142 integrate .. //depot/projects/smpng/sys/contrib/octeon-sdk/cvmx-app-init.h#3 integrate .. //depot/projects/smpng/sys/contrib/octeon-sdk/cvmx-helper-board.c#4 integrate .. //depot/projects/smpng/sys/contrib/octeon-sdk/cvmx-helper.c#3 integrate .. //depot/projects/smpng/sys/dev/mii/brgphy.c#54 integrate .. //depot/projects/smpng/sys/dev/mii/miidevs#44 integrate .. //depot/projects/smpng/sys/i386/acpica/madt.c#31 delete .. //depot/projects/smpng/sys/kern/link_elf.c#54 integrate .. //depot/projects/smpng/sys/kern/subr_taskqueue.c#49 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi/Makefile#28 integrate .. //depot/projects/smpng/sys/sys/taskqueue.h#19 integrate .. //depot/projects/smpng/sys/x86/acpica/madt.c#1 branch Differences ... ==== //depot/projects/smpng/share/man/man9/Makefile#20 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.379 2010/10/24 15:56:21 jh Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.380 2010/11/08 20:56:31 mdf Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -1212,6 +1212,7 @@ sysctl_ctx_init.9 sysctl_ctx_entry_find.9 \ sysctl_ctx_init.9 sysctl_ctx_free.9 MLINKS+=taskqueue.9 TASK_INIT.9 \ + taskqueue.9 taskqueue_cancel.9 \ taskqueue.9 taskqueue_create.9 \ taskqueue.9 taskqueue_create_fast.9 \ taskqueue.9 TASKQUEUE_DECLARE.9 \ ==== //depot/projects/smpng/share/man/man9/taskqueue.9#5 (text+ko) ==== @@ -26,7 +26,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/man9/taskqueue.9,v 1.31 2010/10/13 22:59:04 mdf Exp $ +.\" $FreeBSD: src/share/man/man9/taskqueue.9,v 1.32 2010/11/08 20:56:31 mdf Exp $ .\" .Dd August 18, 2009 .Dt TASKQUEUE 9 @@ -63,6 +63,8 @@ .Fn taskqueue_enqueue "struct taskqueue *queue" "struct task *task" .Ft int .Fn taskqueue_enqueue_fast "struct taskqueue *queue" "struct task *task" +.Ft int +.Fn taskqueue_cancel "struct taskqueue *queue" "struct task *task" "u_int *pendp" .Ft void .Fn taskqueue_drain "struct taskqueue *queue" "struct task *task" .Ft int @@ -162,6 +164,31 @@ .Fn taskqueue_enqueue . .Pp The +.Fn taskqueue_cancel +function is used to cancel a task. +The +.Va ta_pending +count is cleared, and the old value returned in the reference +parameter +.Fa pendp , +if it is non- Dv NULL . +If the task is currently running, +.Dv EBUSY +is returned, otherwise 0. +To implement a blocking +.Fn taskqueue_cancel +that waits for a running task to finish, it could look like: +.Bd -literal -offset indent +while (taskqueue_cancel(tq, task, NULL) != 0) + taskqueue_drain(tq, task); +.Ed +.Pp +Note that, as with +.Fn taskqueue_drain , +the caller is responsible for ensuring that the task is not re-enqueued +after being canceled. +.Pp +The .Fn taskqueue_drain function is used to wait for the task to finish. There is no guarantee that the task will not be ==== //depot/projects/smpng/sys/boot/common/loader.8#51 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.98 2010/10/08 12:40:16 uqs Exp $ +.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.99 2010/11/08 21:50:45 jhb Exp $ .\" .Dd February 15, 2009 .Dt LOADER 8 @@ -334,12 +334,6 @@ while others define behavior just by being set. Both types of builtin variables are described below. .Bl -tag -width bootfile -.It Va acpi_load -Unset this to disable automatic loading of the ACPI module. -See also -.Va hint.acpi.0.disabled -in -.Xr device.hints 5 . .It Va autoboot_delay Number of seconds .Ic autoboot ==== //depot/projects/smpng/sys/boot/forth/beastie.4th#12 (text+ko) ==== @@ -23,7 +23,7 @@ \ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \ SUCH DAMAGE. \ -\ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.13 2010/09/08 20:10:29 jhb Exp $ +\ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.14 2010/11/08 21:50:45 jhb Exp $ marker task-beastie.4th @@ -141,13 +141,11 @@ ; : acpienabled? ( -- flag ) - s" acpi_load" getenv + s" hint.acpi.0.rsdp" getenv dup -1 = if drop false exit then - s" YES" compare-insensitive 0<> if - false exit - then + 2drop s" hint.acpi.0.disabled" getenv dup -1 <> if s" 0" compare 0<> if @@ -254,11 +252,9 @@ dup bootkey @ = if 0 boot then dup bootacpikey @ = if acpienabled? if - s" acpi_load" unsetenv s" 1" s" hint.acpi.0.disabled" setenv s" 1" s" loader.acpi_disabled_by_user" setenv else - s" YES" s" acpi_load" setenv s" 0" s" hint.acpi.0.disabled" setenv then 0 boot @@ -266,7 +262,6 @@ dup bootsafekey @ = if s" arch-i386" environment? if drop - s" acpi_load" unsetenv s" 1" s" hint.acpi.0.disabled" setenv s" 1" s" loader.acpi_disabled_by_user" setenv s" 1" s" hint.apic.0.disabled" setenv ==== //depot/projects/smpng/sys/boot/i386/libi386/biosacpi.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosacpi.c,v 1.14 2009/12/10 14:54:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosacpi.c,v 1.15 2010/11/08 21:50:45 jhb Exp $"); #include #include @@ -40,7 +40,7 @@ #include "actbl.h" /* - * Detect ACPI and export information about the APCI BIOS into the + * Detect ACPI and export information about the ACPI BIOS into the * environment. */ @@ -56,8 +56,6 @@ char buf[24]; int revision; - /* XXX check the BIOS datestamp */ - /* locate and validate the RSDP */ if ((rsdp = biosacpi_find_rsdp()) == NULL) return; @@ -82,9 +80,6 @@ sprintf(buf, "%d", rsdp->Length); setenv("hint.acpi.0.xsdt_length", buf, 1); } - /* XXX other tables? */ - - setenv("acpi_load", "YES", 1); } /* ==== //depot/projects/smpng/sys/boot/i386/libi386/i386_module.c#10 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/i386_module.c,v 1.12 2003/08/25 23:28:31 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/i386_module.c,v 1.13 2010/11/08 21:50:45 jhb Exp $"); /* * i386-specific module functionality. @@ -44,25 +44,7 @@ int i386_autoload(void) { - int error; - int disabled; - char *rv; /* XXX use PnP to locate stuff here */ - - /* autoload ACPI support */ - /* XXX should be in 4th keyed off acpi_load */ - disabled = 0; - rv = getenv("hint.acpi.0.disabled"); - if (rv != NULL && strncmp(rv, "0", 1) != 0) { - disabled = 1; - } - - if (getenv("acpi_load") && (!disabled)) { - error = mod_load("acpi", NULL, 0, NULL); - if (error != 0) - printf("ACPI autoload failed - %s\n", strerror(error)); - } - return(0); } ==== //depot/projects/smpng/sys/boot/i386/loader/help.i386#8 (text+ko) ==== @@ -1,22 +1,4 @@ ################################################################################ -# TACPI DControl ACPI module behaviour - - $acpi_load - - If set, the ACPI module will be loaded. Clear it with - - unset acpi_load - - $hint.acpi.0.disabled="1" - - If set, the ACPI module won't be loaded. - - Note that the ACPI autodetection sets a number of hints to - pass information to the ACPI module. These should not be - overridden, or system behaviour will be undefined. - - -################################################################################ # Treboot DReboot the system reboot ==== //depot/projects/smpng/sys/conf/files.amd64#82 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.172 2010/10/28 16:31:39 attilio Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.173 2010/11/08 20:57:02 jhb Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -92,7 +92,6 @@ clean "acpi_wakedata.h" # amd64/acpica/acpi_wakeup.c optional acpi -amd64/acpica/madt.c optional acpi amd64/amd64/amd64_mem.c optional mem #amd64/amd64/apic_vector.S standard amd64/amd64/atomic.c standard @@ -301,6 +300,7 @@ # # x86 shared code between IA32, AMD64 and PC98 architectures # +x86/acpica/madt.c optional acpi x86/acpica/srat.c optional acpi x86/bios/smbios.c optional smbios x86/bios/vpd.c optional vpd ==== //depot/projects/smpng/sys/conf/files.i386#142 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.655 2010/10/28 16:31:39 attilio Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.656 2010/11/08 20:57:02 jhb Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -247,7 +247,6 @@ no-obj no-implicit-rule before-depend \ clean "acpi_wakecode.h acpi_wakecode.o acpi_wakecode.bin" # -i386/acpica/madt.c optional acpi apic i386/bios/apm.c optional apm i386/bios/mca_machdep.c optional mca i386/bios/smapi.c optional smapi @@ -374,6 +373,7 @@ # # x86 shared code between IA32, AMD64 and PC98 architectures # +x86/acpica/madt.c optional acpi apic x86/acpica/srat.c optional acpi x86/bios/smbios.c optional smbios x86/bios/vpd.c optional vpd ==== //depot/projects/smpng/sys/contrib/octeon-sdk/cvmx-app-init.h#3 (text+ko) ==== @@ -193,6 +193,9 @@ CVMX_BOARD_TYPE_CUST_GCT108 = 10012, CVMX_BOARD_TYPE_CUST_AGS109 = 10013, CVMX_BOARD_TYPE_CUST_GCT110 = 10014, +#if defined(OCTEON_VENDOR_LANNER) + CVMX_BOARD_TYPE_CUST_LANNER_MR730= 10021, +#endif CVMX_BOARD_TYPE_CUST_DEFINED_MAX = 20000, /* Set aside a range for customer private use. The SDK won't @@ -272,6 +275,9 @@ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_GCT108) ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_AGS109) ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_GCT110) +#if defined(OCTEON_VENDOR_LANNER) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR730) +#endif ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DEFINED_MAX) /* Customer private range */ ==== //depot/projects/smpng/sys/contrib/octeon-sdk/cvmx-helper-board.c#4 (text+ko) ==== @@ -114,9 +114,6 @@ case CVMX_BOARD_TYPE_EBT5800: case CVMX_BOARD_TYPE_THUNDER: case CVMX_BOARD_TYPE_NICPRO2: -#if defined(OCTEON_VENDOR_LANNER) - case CVMX_BOARD_TYPE_CUST_LANNER_MR955: -#endif /* Interface 0 is SPI4, interface 1 is RGMII */ if ((ipd_port >= 16) && (ipd_port < 20)) return ipd_port - 16; @@ -180,6 +177,15 @@ /* Private vendor-defined boards. */ #if defined(OCTEON_VENDOR_LANNER) + case CVMX_BOARD_TYPE_CUST_LANNER_MR955: + /* Interface 1 is 12 BCM5482S PHYs. */ + if ((ipd_port >= 16) && (ipd_port < 28)) + return ipd_port - 16; + return -1; + case CVMX_BOARD_TYPE_CUST_LANNER_MR730: + if ((ipd_port >= 0) && (ipd_port < 4)) + return ipd_port; + return -1; case CVMX_BOARD_TYPE_CUST_LANNER_MR320: /* Port 0 is a Marvell 88E6161 switch, ports 1 and 2 are Marvell 88E1111 interfaces. */ @@ -291,6 +297,10 @@ break; /* Private vendor-defined boards. */ #if defined(OCTEON_VENDOR_LANNER) + case CVMX_BOARD_TYPE_CUST_LANNER_MR730: + /* Ports are BCM5482S */ + is_broadcom_phy = 1; + break; case CVMX_BOARD_TYPE_CUST_LANNER_MR320: /* Port 0 connects to the switch */ if (ipd_port == 0) ==== //depot/projects/smpng/sys/contrib/octeon-sdk/cvmx-helper.c#3 (text+ko) ==== @@ -105,6 +105,8 @@ #if defined(OCTEON_VENDOR_LANNER) case CVMX_BOARD_TYPE_CUST_LANNER_MR955: return 2; + case CVMX_BOARD_TYPE_CUST_LANNER_MR730: + return 1; #endif default: break; ==== //depot/projects/smpng/sys/dev/mii/brgphy.c#54 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mii/brgphy.c,v 1.95 2010/10/27 17:16:40 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mii/brgphy.c,v 1.96 2010/11/08 21:23:28 jmallett Exp $"); /* * Driver for the Broadcom BCM54xx/57xx 1000baseTX PHY. @@ -132,6 +132,7 @@ MII_PHY_DESC(xxBROADCOM, BCM5754), MII_PHY_DESC(xxBROADCOM, BCM5780), MII_PHY_DESC(xxBROADCOM, BCM5708C), + MII_PHY_DESC(xxBROADCOM_ALT1, BCM5482S), MII_PHY_DESC(xxBROADCOM_ALT1, BCM5755), MII_PHY_DESC(xxBROADCOM_ALT1, BCM5787), MII_PHY_DESC(xxBROADCOM_ALT1, BCM5708S), ==== //depot/projects/smpng/sys/dev/mii/miidevs#44 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/mii/miidevs,v 1.75 2010/10/27 17:16:40 yongari Exp $ +$FreeBSD: src/sys/dev/mii/miidevs,v 1.76 2010/11/08 21:23:28 jmallett Exp $ /*$NetBSD: miidevs,v 1.6 1999/05/14 11:37:30 drochner Exp $*/ /*- @@ -145,6 +145,7 @@ model xxBROADCOM BCM5714 0x0034 BCM5714 10/100/1000baseTX PHY model xxBROADCOM BCM5780 0x0035 BCM5780 10/100/1000baseTX PHY model xxBROADCOM BCM5708C 0x0036 BCM5708C 10/100/1000baseTX PHY +model xxBROADCOM_ALT1 BCM5482S 0x000b BCM5482S Dual-Port 10/100/1000baseX/FX PHY model xxBROADCOM_ALT1 BCM5755 0x000c BCM5755 10/100/1000baseTX PHY model xxBROADCOM_ALT1 BCM5787 0x000e BCM5787 10/100/1000baseTX PHY model xxBROADCOM_ALT1 BCM5708S 0x0015 BCM5708S 1000/2500BaseSX PHY ==== //depot/projects/smpng/sys/kern/link_elf.c#54 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/link_elf.c,v 1.107 2010/10/02 16:04:50 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/link_elf.c,v 1.108 2010/11/08 20:57:08 mdf Exp $"); #include "opt_ddb.h" #include "opt_gdb.h" @@ -74,52 +74,52 @@ #define MAXSEGS 4 typedef struct elf_file { - struct linker_file lf; /* Common fields */ - int preloaded; /* Was file pre-loaded */ - caddr_t address; /* Relocation address */ + struct linker_file lf; /* Common fields */ + int preloaded; /* Was file pre-loaded */ + caddr_t address; /* Relocation address */ #ifdef SPARSE_MAPPING - vm_object_t object; /* VM object to hold file pages */ + vm_object_t object; /* VM object to hold file pages */ #endif - Elf_Dyn* dynamic; /* Symbol table etc. */ - Elf_Hashelt nbuckets; /* DT_HASH info */ - Elf_Hashelt nchains; - const Elf_Hashelt* buckets; - const Elf_Hashelt* chains; - caddr_t hash; - caddr_t strtab; /* DT_STRTAB */ - int strsz; /* DT_STRSZ */ - const Elf_Sym* symtab; /* DT_SYMTAB */ - Elf_Addr* got; /* DT_PLTGOT */ - const Elf_Rel* pltrel; /* DT_JMPREL */ - int pltrelsize; /* DT_PLTRELSZ */ - const Elf_Rela* pltrela; /* DT_JMPREL */ - int pltrelasize; /* DT_PLTRELSZ */ - const Elf_Rel* rel; /* DT_REL */ - int relsize; /* DT_RELSZ */ - const Elf_Rela* rela; /* DT_RELA */ - int relasize; /* DT_RELASZ */ - caddr_t modptr; - const Elf_Sym* ddbsymtab; /* The symbol table we are using */ - long ddbsymcnt; /* Number of symbols */ - caddr_t ddbstrtab; /* String table */ - long ddbstrcnt; /* number of bytes in string table */ - caddr_t symbase; /* malloc'ed symbold base */ - caddr_t strbase; /* malloc'ed string base */ - caddr_t ctftab; /* CTF table */ - long ctfcnt; /* number of bytes in CTF table */ - caddr_t ctfoff; /* CTF offset table */ - caddr_t typoff; /* Type offset table */ - long typlen; /* Number of type entries. */ - Elf_Addr pcpu_start; /* Pre-relocation pcpu set start. */ - Elf_Addr pcpu_stop; /* Pre-relocation pcpu set stop. */ - Elf_Addr pcpu_base; /* Relocated pcpu set address. */ + Elf_Dyn *dynamic; /* Symbol table etc. */ + Elf_Hashelt nbuckets; /* DT_HASH info */ + Elf_Hashelt nchains; + const Elf_Hashelt *buckets; + const Elf_Hashelt *chains; + caddr_t hash; + caddr_t strtab; /* DT_STRTAB */ + int strsz; /* DT_STRSZ */ + const Elf_Sym *symtab; /* DT_SYMTAB */ + Elf_Addr *got; /* DT_PLTGOT */ + const Elf_Rel *pltrel; /* DT_JMPREL */ + int pltrelsize; /* DT_PLTRELSZ */ + const Elf_Rela *pltrela; /* DT_JMPREL */ + int pltrelasize; /* DT_PLTRELSZ */ + const Elf_Rel *rel; /* DT_REL */ + int relsize; /* DT_RELSZ */ + const Elf_Rela *rela; /* DT_RELA */ + int relasize; /* DT_RELASZ */ + caddr_t modptr; + const Elf_Sym *ddbsymtab; /* The symbol table we are using */ + long ddbsymcnt; /* Number of symbols */ + caddr_t ddbstrtab; /* String table */ + long ddbstrcnt; /* number of bytes in string table */ + caddr_t symbase; /* malloc'ed symbold base */ + caddr_t strbase; /* malloc'ed string base */ + caddr_t ctftab; /* CTF table */ + long ctfcnt; /* number of bytes in CTF table */ + caddr_t ctfoff; /* CTF offset table */ + caddr_t typoff; /* Type offset table */ + long typlen; /* Number of type entries. */ + Elf_Addr pcpu_start; /* Pre-relocation pcpu set start. */ + Elf_Addr pcpu_stop; /* Pre-relocation pcpu set stop. */ + Elf_Addr pcpu_base; /* Relocated pcpu set address. */ #ifdef VIMAGE - Elf_Addr vnet_start; /* Pre-relocation vnet set start. */ - Elf_Addr vnet_stop; /* Pre-relocation vnet set stop. */ - Elf_Addr vnet_base; /* Relocated vnet set address. */ + Elf_Addr vnet_start; /* Pre-relocation vnet set start. */ + Elf_Addr vnet_stop; /* Pre-relocation vnet set stop. */ + Elf_Addr vnet_base; /* Relocated vnet set address. */ #endif #ifdef GDB - struct link_map gdb; /* hooks for gdb */ + struct link_map gdb; /* hooks for gdb */ #endif } *elf_file_t; @@ -127,70 +127,71 @@ static int link_elf_link_common_finish(linker_file_t); static int link_elf_link_preload(linker_class_t cls, - const char*, linker_file_t*); + const char *, linker_file_t *); static int link_elf_link_preload_finish(linker_file_t); -static int link_elf_load_file(linker_class_t, const char*, linker_file_t*); -static int link_elf_lookup_symbol(linker_file_t, const char*, - c_linker_sym_t*); -static int link_elf_symbol_values(linker_file_t, c_linker_sym_t, linker_symval_t*); -static int link_elf_search_symbol(linker_file_t, caddr_t value, - c_linker_sym_t* sym, long* diffp); +static int link_elf_load_file(linker_class_t, const char *, + linker_file_t *); +static int link_elf_lookup_symbol(linker_file_t, const char *, + c_linker_sym_t *); +static int link_elf_symbol_values(linker_file_t, c_linker_sym_t, + linker_symval_t *); +static int link_elf_search_symbol(linker_file_t, caddr_t, + c_linker_sym_t *, long *); static void link_elf_unload_file(linker_file_t); static void link_elf_unload_preload(linker_file_t); static int link_elf_lookup_set(linker_file_t, const char *, - void ***, void ***, int *); + void ***, void ***, int *); static int link_elf_each_function_name(linker_file_t, - int (*)(const char *, void *), - void *); + int (*)(const char *, void *), void *); static int link_elf_each_function_nameval(linker_file_t, - linker_function_nameval_callback_t, - void *); + linker_function_nameval_callback_t, void *); static void link_elf_reloc_local(linker_file_t); static long link_elf_symtab_get(linker_file_t, const Elf_Sym **); static long link_elf_strtab_get(linker_file_t, caddr_t *); -static Elf_Addr elf_lookup(linker_file_t lf, Elf_Size symidx, int deps); +static Elf_Addr elf_lookup(linker_file_t, Elf_Size, int); static kobj_method_t link_elf_methods[] = { - KOBJMETHOD(linker_lookup_symbol, link_elf_lookup_symbol), - KOBJMETHOD(linker_symbol_values, link_elf_symbol_values), - KOBJMETHOD(linker_search_symbol, link_elf_search_symbol), - KOBJMETHOD(linker_unload, link_elf_unload_file), - KOBJMETHOD(linker_load_file, link_elf_load_file), - KOBJMETHOD(linker_link_preload, link_elf_link_preload), - KOBJMETHOD(linker_link_preload_finish, link_elf_link_preload_finish), - KOBJMETHOD(linker_lookup_set, link_elf_lookup_set), - KOBJMETHOD(linker_each_function_name, link_elf_each_function_name), - KOBJMETHOD(linker_each_function_nameval, link_elf_each_function_nameval), - KOBJMETHOD(linker_ctf_get, link_elf_ctf_get), - KOBJMETHOD(linker_symtab_get, link_elf_symtab_get), - KOBJMETHOD(linker_strtab_get, link_elf_strtab_get), - { 0, 0 } + KOBJMETHOD(linker_lookup_symbol, link_elf_lookup_symbol), + KOBJMETHOD(linker_symbol_values, link_elf_symbol_values), + KOBJMETHOD(linker_search_symbol, link_elf_search_symbol), + KOBJMETHOD(linker_unload, link_elf_unload_file), + KOBJMETHOD(linker_load_file, link_elf_load_file), + KOBJMETHOD(linker_link_preload, link_elf_link_preload), + KOBJMETHOD(linker_link_preload_finish, link_elf_link_preload_finish), + KOBJMETHOD(linker_lookup_set, link_elf_lookup_set), + KOBJMETHOD(linker_each_function_name, link_elf_each_function_name), + KOBJMETHOD(linker_each_function_nameval, link_elf_each_function_nameval), + KOBJMETHOD(linker_ctf_get, link_elf_ctf_get), + KOBJMETHOD(linker_symtab_get, link_elf_symtab_get), + KOBJMETHOD(linker_strtab_get, link_elf_strtab_get), + { 0, 0 } }; static struct linker_class link_elf_class = { #if ELF_TARG_CLASS == ELFCLASS32 - "elf32", + "elf32", #else - "elf64", + "elf64", #endif - link_elf_methods, sizeof(struct elf_file) + link_elf_methods, sizeof(struct elf_file) }; -static int parse_dynamic(elf_file_t ef); -static int relocate_file(elf_file_t ef); -static int link_elf_preload_parse_symbols(elf_file_t ef); +static int parse_dynamic(elf_file_t); +static int relocate_file(elf_file_t); +static int link_elf_preload_parse_symbols(elf_file_t); #ifdef GDB -static void r_debug_state(struct r_debug *dummy_one, - struct link_map *dummy_two); +static void r_debug_state(struct r_debug *, struct link_map *); /* * A list of loaded modules for GDB to use for loading symbols. */ struct r_debug r_debug; -#define GDB_STATE(s) r_debug.r_state = s; r_debug_state(NULL, NULL); +#define GDB_STATE(s) do { \ + r_debug.r_state = s; r_debug_state(NULL, NULL); \ +} while (0) /* * Function for the debugger to set a breakpoint on to gain control. @@ -204,35 +205,37 @@ static void link_elf_add_gdb(struct link_map *l) { - struct link_map *prev; + struct link_map *prev; - l->l_next = NULL; + l->l_next = NULL; - if (r_debug.r_map == NULL) { - /* Add first. */ - l->l_prev = NULL; - r_debug.r_map = l; - } else { - /* Append to list. */ - for (prev = r_debug.r_map; prev->l_next != NULL; prev = prev->l_next) - ; - l->l_prev = prev; - prev->l_next = l; - } + if (r_debug.r_map == NULL) { + /* Add first. */ + l->l_prev = NULL; + r_debug.r_map = l; + } else { + /* Append to list. */ + for (prev = r_debug.r_map; + prev->l_next != NULL; + prev = prev->l_next) + ; + l->l_prev = prev; + prev->l_next = l; + } } static void link_elf_delete_gdb(struct link_map *l) { - if (l->l_prev == NULL) { - /* Remove first. */ - if ((r_debug.r_map = l->l_next) != NULL) - l->l_next->l_prev = NULL; - } else { - /* Remove any but first. */ - if ((l->l_prev->l_next = l->l_next) != NULL) - l->l_next->l_prev = l->l_prev; - } + if (l->l_prev == NULL) { + /* Remove first. */ + if ((r_debug.r_map = l->l_next) != NULL) + l->l_next->l_prev = NULL; + } else { + /* Remove any but first. */ + if ((l->l_prev->l_next = l->l_next) != NULL) + l->l_next->l_prev = l->l_prev; + } } #endif /* GDB */ @@ -262,85 +265,86 @@ link_elf_link_common_finish(linker_file_t lf) { #ifdef GDB - elf_file_t ef = (elf_file_t)lf; - char *newfilename; + elf_file_t ef = (elf_file_t)lf; + char *newfilename; #endif - int error; + int error; - /* Notify MD code that a module is being loaded. */ - error = elf_cpu_load_file(lf); - if (error) - return (error); + /* Notify MD code that a module is being loaded. */ + error = elf_cpu_load_file(lf); + if (error != 0) + return (error); #ifdef GDB - GDB_STATE(RT_ADD); - ef->gdb.l_addr = lf->address; - newfilename = malloc(strlen(lf->filename) + 1, M_LINKER, M_WAITOK); - strcpy(newfilename, lf->filename); - ef->gdb.l_name = newfilename; - ef->gdb.l_ld = ef->dynamic; - link_elf_add_gdb(&ef->gdb); - GDB_STATE(RT_CONSISTENT); + GDB_STATE(RT_ADD); + ef->gdb.l_addr = lf->address; + newfilename = malloc(strlen(lf->filename) + 1, M_LINKER, M_WAITOK); + strcpy(newfilename, lf->filename); + ef->gdb.l_name = newfilename; + ef->gdb.l_ld = ef->dynamic; + link_elf_add_gdb(&ef->gdb); + GDB_STATE(RT_CONSISTENT); #endif - return (0); + return (0); } static void link_elf_init(void* arg) { - Elf_Dyn *dp; - caddr_t modptr, baseptr, sizeptr; - elf_file_t ef; - char *modname; + Elf_Dyn *dp; + caddr_t modptr, baseptr, sizeptr; + elf_file_t ef; + char *modname; - linker_add_class(&link_elf_class); + linker_add_class(&link_elf_class); - dp = (Elf_Dyn*) &_DYNAMIC; - modname = NULL; - modptr = preload_search_by_type("elf" __XSTRING(__ELF_WORD_SIZE) " kernel"); - if (modptr == NULL) - modptr = preload_search_by_type("elf kernel"); - if (modptr) - modname = (char *)preload_search_info(modptr, MODINFO_NAME); - if (modname == NULL) - modname = "kernel"; - linker_kernel_file = linker_make_file(modname, &link_elf_class); - if (linker_kernel_file == NULL) - panic("link_elf_init: Can't create linker structures for kernel"); + dp = (Elf_Dyn *)&_DYNAMIC; + modname = NULL; + modptr = preload_search_by_type("elf" __XSTRING(__ELF_WORD_SIZE) " kernel"); + if (modptr == NULL) + modptr = preload_search_by_type("elf kernel"); + if (modptr != NULL) + modname = (char *)preload_search_info(modptr, MODINFO_NAME); + if (modname == NULL) + modname = "kernel"; + linker_kernel_file = linker_make_file(modname, &link_elf_class); + if (linker_kernel_file == NULL) + panic("%s: Can't create linker structures for kernel", + __func__); - ef = (elf_file_t) linker_kernel_file; - ef->preloaded = 1; - ef->address = 0; + ef = (elf_file_t) linker_kernel_file; + ef->preloaded = 1; + ef->address = 0; #ifdef SPARSE_MAPPING - ef->object = 0; + ef->object = 0; #endif - ef->dynamic = dp; + ef->dynamic = dp; - if (dp) - parse_dynamic(ef); - linker_kernel_file->address = (caddr_t) KERNBASE; - linker_kernel_file->size = -(intptr_t)linker_kernel_file->address; + if (dp != NULL) + parse_dynamic(ef); + linker_kernel_file->address = (caddr_t) KERNBASE; + linker_kernel_file->size = -(intptr_t)linker_kernel_file->address; - if (modptr) { - ef->modptr = modptr; - baseptr = preload_search_info(modptr, MODINFO_ADDR); - if (baseptr) - linker_kernel_file->address = *(caddr_t *)baseptr; - sizeptr = preload_search_info(modptr, MODINFO_SIZE); - if (sizeptr) - linker_kernel_file->size = *(size_t *)sizeptr; - } - (void)link_elf_preload_parse_symbols(ef); + if (modptr != NULL) { + ef->modptr = modptr; + baseptr = preload_search_info(modptr, MODINFO_ADDR); + if (baseptr != NULL) + linker_kernel_file->address = *(caddr_t *)baseptr; + sizeptr = preload_search_info(modptr, MODINFO_SIZE); + if (sizeptr != NULL) + linker_kernel_file->size = *(size_t *)sizeptr; + } + (void)link_elf_preload_parse_symbols(ef); #ifdef GDB - r_debug.r_map = NULL; - r_debug.r_brk = r_debug_state; - r_debug.r_state = RT_CONSISTENT; + r_debug.r_map = NULL; + r_debug.r_brk = r_debug_state; + r_debug.r_state = RT_CONSISTENT; #endif - (void)link_elf_link_common_finish(linker_kernel_file); - linker_kernel_file->flags |= LINKER_FILE_LINKED; + (void)link_elf_link_common_finish(linker_kernel_file); + linker_kernel_file->flags |= LINKER_FILE_LINKED; } SYSINIT(link_elf, SI_SUB_KLD, SI_ORDER_THIRD, link_elf_init, 0); @@ -348,795 +352,807 @@ static int link_elf_preload_parse_symbols(elf_file_t ef) { - caddr_t pointer; - caddr_t ssym, esym, base; - caddr_t strtab; - int strcnt; - Elf_Sym* symtab; - int symcnt; + caddr_t pointer; + caddr_t ssym, esym, base; + caddr_t strtab; + int strcnt; + Elf_Sym *symtab; + int symcnt; - if (ef->modptr == NULL) - return 0; - pointer = preload_search_info(ef->modptr, MODINFO_METADATA|MODINFOMD_SSYM); - if (pointer == NULL) - return 0; - ssym = *(caddr_t *)pointer; - pointer = preload_search_info(ef->modptr, MODINFO_METADATA|MODINFOMD_ESYM); - if (pointer == NULL) - return 0; - esym = *(caddr_t *)pointer; + if (ef->modptr == NULL) + return (0); + pointer = preload_search_info(ef->modptr, + MODINFO_METADATA | MODINFOMD_SSYM); + if (pointer == NULL) + return (0); + ssym = *(caddr_t *)pointer; + pointer = preload_search_info(ef->modptr, + MODINFO_METADATA | MODINFOMD_ESYM); + if (pointer == NULL) + return (0); + esym = *(caddr_t *)pointer; - base = ssym; + base = ssym; - symcnt = *(long *)base; - base += sizeof(long); - symtab = (Elf_Sym *)base; - base += roundup(symcnt, sizeof(long)); + symcnt = *(long *)base; + base += sizeof(long); + symtab = (Elf_Sym *)base; + base += roundup(symcnt, sizeof(long)); - if (base > esym || base < ssym) { - printf("Symbols are corrupt!\n"); - return EINVAL; - } + if (base > esym || base < ssym) { + printf("Symbols are corrupt!\n"); + return (EINVAL); + } - strcnt = *(long *)base; - base += sizeof(long); - strtab = base; - base += roundup(strcnt, sizeof(long)); + strcnt = *(long *)base; + base += sizeof(long); + strtab = base; + base += roundup(strcnt, sizeof(long)); - if (base > esym || base < ssym) { - printf("Symbols are corrupt!\n"); - return EINVAL; - } + if (base > esym || base < ssym) { + printf("Symbols are corrupt!\n"); + return (EINVAL); + } - ef->ddbsymtab = symtab; - ef->ddbsymcnt = symcnt / sizeof(Elf_Sym); - ef->ddbstrtab = strtab; - ef->ddbstrcnt = strcnt; + ef->ddbsymtab = symtab; + ef->ddbsymcnt = symcnt / sizeof(Elf_Sym); + ef->ddbstrtab = strtab; + ef->ddbstrcnt = strcnt; - return 0; + return (0); } static int parse_dynamic(elf_file_t ef) { - Elf_Dyn *dp; - int plttype = DT_REL; + Elf_Dyn *dp; + int plttype = DT_REL; - for (dp = ef->dynamic; dp->d_tag != DT_NULL; dp++) { - switch (dp->d_tag) { - case DT_HASH: - { - /* From src/libexec/rtld-elf/rtld.c */ - const Elf_Hashelt *hashtab = (const Elf_Hashelt *) - (ef->address + dp->d_un.d_ptr); - ef->nbuckets = hashtab[0]; - ef->nchains = hashtab[1]; - ef->buckets = hashtab + 2; - ef->chains = ef->buckets + ef->nbuckets; - break; - } - case DT_STRTAB: - ef->strtab = (caddr_t) (ef->address + dp->d_un.d_ptr); - break; - case DT_STRSZ: - ef->strsz = dp->d_un.d_val; - break; - case DT_SYMTAB: - ef->symtab = (Elf_Sym*) (ef->address + dp->d_un.d_ptr); - break; - case DT_SYMENT: - if (dp->d_un.d_val != sizeof(Elf_Sym)) - return ENOEXEC; - break; - case DT_PLTGOT: - ef->got = (Elf_Addr *) (ef->address + dp->d_un.d_ptr); - break; - case DT_REL: - ef->rel = (const Elf_Rel *) (ef->address + dp->d_un.d_ptr); - break; - case DT_RELSZ: - ef->relsize = dp->d_un.d_val; - break; - case DT_RELENT: - if (dp->d_un.d_val != sizeof(Elf_Rel)) - return ENOEXEC; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Nov 8 22:12:11 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B3511065670; Mon, 8 Nov 2010 22:12: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 D1F4D106566B for ; Mon, 8 Nov 2010 22:12:10 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id BE7138FC4B for ; Mon, 8 Nov 2010 22:12:10 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA8MCAPv038799 for ; Mon, 8 Nov 2010 22:12:10 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA8MCAIl038796 for perforce@freebsd.org; Mon, 8 Nov 2010 22:12:10 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 8 Nov 2010 22:12:10 GMT Message-Id: <201011082212.oA8MCAIl038796@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185549 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Nov 2010 22:12:11 -0000 http://p4web.freebsd.org/@@185549?ac=10 Change 185549 by rene@rene_acer on 2010/11/08 22:11:16 Pre 7.X-cleanup up to chapter 18 (disks/"Storage") Leave a note in the MAC chapter that someone(tm) should write about the "new" way to map users to labels. Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/audit/chapter.sgml#3 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#12 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/mac/chapter.sgml#8 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/audit/chapter.sgml#3 (text+ko) ==== @@ -581,7 +581,7 @@ return token indicates the successful execution, and the trailer concludes the record. - In &os; 6.3 and later, praudit also supports + praudit also supports an XML output format, which can be selected using the argument. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#12 (text+ko) ==== @@ -2513,7 +2513,7 @@ tar - On FreeBSD 5.3 and later, both GNU tar + Both GNU tar and the default bsdtar are available. The GNU version can be invoked with gtar. It supports remote devices using the same syntax as @@ -3688,7 +3688,7 @@ Disk Encryption with <command>geli</command> - A new cryptographic GEOM class is available as of &os; 6.0 - + An alternative cryptographic GEOM class is available - geli. It is currently being developed by &a.pjd;. The geli utility is different to gbde; it offers different features and uses @@ -3738,8 +3738,8 @@ geli in the &os; kernel and will explain how to create and use a geli encryption provider. - In order to use geli, you must be running - &os; 6.0-RELEASE or later. Super-user privileges will be + + Super-user privileges will be required since modifications to the kernel are necessary. @@ -3900,13 +3900,13 @@ encrypting - Swap encryption in &os; is easy to configure and has been - available since &os; 5.3-RELEASE. Depending on which version + Swap encryption in &os; is easy to configure + . Depending on which version of &os; is being used, different options are available - and configuration can vary slightly. From &os; 6.0-RELEASE onwards, - the &man.gbde.8; or &man.geli.8; encryption systems can be used - for swap encryption. With earlier versions, only &man.gbde.8; is - available. Both systems use the encswap + and configuration can vary slightly. + The &man.gbde.8; or &man.geli.8; encryption systems can be used + for swap encryption. + Both systems use the encswap rc.d script. The previous section, Encrypting @@ -3945,7 +3945,7 @@ Swap Encryption with &man.gbde.8; - If &os; 6.0-RELEASE or newer is being used, the + The .bde suffix should be added to the device in the respective /etc/fstab swap line: @@ -3953,11 +3953,6 @@ # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.bde none swap sw 0 0 - - For systems prior to &os; 6.0-RELEASE, the following line - in /etc/rc.conf is also needed: - - gbde_swap_enable="YES" @@ -3986,10 +3981,6 @@ geli_swap_flags="-e blowfish -l 128 -s 4096 -d" - For systems prior to &os; 6.2-RELEASE, use the following line: - - geli_swap_flags="-a blowfish -l 128 -s 4096 -d" - Please refer to the description of the onetime command in the &man.geli.8; manual page for a list of possible options. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/mac/chapter.sgml#8 (text+ko) ==== @@ -638,6 +638,7 @@ Future versions of &os; will include a new way to deal with mapping users to labels; however, this will not be available until some time after &os; 5.3. + From owner-p4-projects@FreeBSD.ORG Wed Nov 10 04:25:44 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA7301065675; Wed, 10 Nov 2010 04:25: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 66610106564A for ; Wed, 10 Nov 2010 04:25:43 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 51F398FC16 for ; Wed, 10 Nov 2010 04:25:43 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oAA4PhUP024501 for ; Wed, 10 Nov 2010 04:25:43 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oAA4Phxe024498 for perforce@freebsd.org; Wed, 10 Nov 2010 04:25:43 GMT (envelope-from dforsyth@FreeBSD.org) Date: Wed, 10 Nov 2010 04:25:43 GMT Message-Id: <201011100425.oAA4Phxe024498@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185587 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Nov 2010 04:25:44 -0000 http://p4web.freebsd.org/@@185587?ac=10 Change 185587 by dforsyth@skunk on 2010/11/10 04:25:19 Add release functions and clean up leaks. Get rid of some old junk. Affected files ... .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.c#2 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.h#2 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.c#9 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.h#7 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/depend.c#4 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/depend.h#4 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#10 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.h#9 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.c#12 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#12 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#5 edit .. //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_info/pkg_info.c#8 edit Differences ... ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.c#2 (text+ko) ==== @@ -12,6 +12,12 @@ } void +pkg_conflict_release(struct pkg_conflict *c) +{ + free(c); +} + +void _pkg_conflict_set_expr(struct pkg_conflict *conflict, const char *expr) { strncpy(conflict->expr, expr, PATH_MAX); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.h#2 (text+ko) ==== @@ -3,6 +3,8 @@ struct pkg_conflict *pkg_conflict_alloc(void); +void pkg_conflict_release(struct pkg_conflict *); + void _pkg_conflict_set_expr(struct pkg_conflict *, const char *); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.c#9 (text+ko) ==== @@ -48,6 +48,7 @@ /* TODO: NULL out callback pointers. */ db->open = fbsd_directorydb_open; + db->close = fbsd_directorydb_close; db->all = fbsd_directorydb_all; db->get = fbsd_directorydb_get; @@ -57,6 +58,7 @@ int pkg_db_finish(struct pkg_db *db) { + /* Close if the db is open. */ if (db->internal != NULL) { if (pkg_db_close(db) != PKG_OK) { warnx("Could not close pkg_db (%s)\n", db->path); @@ -117,20 +119,7 @@ int pkg_db_close(struct pkg_db *db) { - int r; - - if (db->internal != NULL) { - if (db->close) { - r = db->close(db); - } else { - r = PKG_OK; - } - } else { - /* kaboom? */ - return (PKG_NOT_OK); - } - - return (r); + return (db->close(db)); } struct pkg * ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.h#7 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/depend.c#4 (text+ko) ==== @@ -11,6 +11,12 @@ return (calloc(1, sizeof(struct pkg_depend))); } +void +pkg_depend_release(struct pkg_depend *d) +{ + free(d); +} + const char * pkg_depend_name(struct pkg_depend *dep) { ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/depend.h#4 (text+ko) ==== @@ -19,6 +19,9 @@ #include "pkg_types.h" struct pkg_depend *pkg_depend_alloc(void); + +void pkg_depend_release(struct pkg_depend *); + #if 0 const char *pkg_depend_name(struct pkg_depend *); const char *pkg_depend_origin(struct pkg_depend *); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#10 (text+ko) ==== @@ -32,31 +32,13 @@ * setup method is in place. */ #include "pkg_internal.h" -struct _read_plist { - struct pkg_property *plist; - char key[PATH_MAX]; - uint32_t parsed; - RB_ENTRY(_read_plist) entry; -}; - struct _directorydb { /* Location of the database. */ char path[PATH_MAX]; - /* Journal handle. */ - int journal; - char journal_path[PATH_MAX]; - char journal_dir_path[PATH_MAX]; - /* A NULL terminated list of keys the db currently has. */ char **keylist; - /* - * The time of our last access. If this has changed, another - * directorydb instance has changes something, so we need to refresh. - */ - time_t last; - RB_HEAD(plist_head, _read_plist) plist_head; }; @@ -81,11 +63,8 @@ static int fbsd_directorydb_read_pkg(struct _directorydb *, struct pkg *, uint32_t); -int fbsd_directorydb_finish(struct pkg_db *, - struct pkg *); +static int fbsd_directorydb_finish(struct pkg *); static char *read_file(const char *); -static int _read_plist_cmp(struct _read_plist *, - struct _read_plist *); static void fbsd_directorydb_pkg_setup(struct pkg_db *, struct pkg *, const char *); @@ -103,16 +82,17 @@ static int fbsd_directorydb_read_description(struct pkg *); -RB_GENERATE_STATIC(plist_head, _read_plist, entry, _read_plist_cmp); +static int fbsd_directorydb_has_backup(struct _directorydb *, + const char *); +static int _fbsd_directorydb_has_backup(const char *); + +static int fbsd_directorydb_resolve(struct _directorydb *, + const char *, int); +static int _fbsd_directorydb_resolve(const char *, int); #define PKG_DIRDB_MAGIC 0x11111111 -#define DB_DIRDB_MAGIC 0x11111111 +#define DB_DIRDB_MAGIC 0x11111111 -/* The journal file. */ -#define JOURNAL ".journal" -/* Where the journaler can store files for changes before a sync. */ -#define JOURNAL_DIR ".journal_sav" - #define journal_open(path) open(path, O_CREAT | O_APPEND | O_EXLOCK) #define _pkg_check_magic(p) assert(p->magic == PKG_DIRDB_MAGIC) @@ -129,18 +109,12 @@ return (fbsd_directorydb_read_pkg(d, pkg, src_mask)); \ } -static int -_read_plist_cmp(struct _read_plist *a, struct _read_plist *b) -{ - return (strcmp(a->key, b->key)); -} - /* Close a "connection" to a directorydb. */ int fbsd_directorydb_close(struct pkg_db *db) { struct _directorydb *d = db->internal; - close(d->journal); + free(d); return (0); } @@ -150,57 +124,18 @@ { struct _directorydb *d; struct stat sb; - int jfd; - printf("ddb open\n"); - + stat(path, &sb); + assert(S_ISDIR(sb.st_mode)); d = calloc(1, sizeof(*d)); - if (d == NULL) { - return (PKG_NOT_OK); - } + if (d == NULL) return (PKG_NOT_OK); strcpy(d->path, path); printf("path: %s\n", d->path); db->magic = DB_DIRDB_MAGIC; - RB_INIT(&d->plist_head); - (void)jfd; - (void)sb; -#if 0 - - /* Open the journal. */ - - strcpy(d->journal_path, d->path); - strcat(d->journal_path, JOURNAL); - - /* Grab the lock on the journal file, creating it if it doesn't exist. - * */ - if ((jfd = journal_open(d->journal_path)) < 0) { - return (PKG_NOT_OK); - } - - /* Make sure that the journal dir exists (create it if it doesn't). */ - strcpy(d->journal_dir_path, d->path); - strcpy(d->journal_dir_path, "/"); - strcpy(d->journal_dir_path, JOURNAL_DIR); - - if (stat(d->journal_dir_path, &sb) < 0) { - /* not there. */ - mkdir(d->journal_dir_path, 0755); - } else if (!S_ISDIR(sb.st_mode)) { - close(jfd); - return (PKG_NOT_OK); /* This could probably be FATAL */ - } - - /* Let the journal file go. */ - if (close(jfd) < 0) { - return (PKG_FATAL); - } -#endif - - /* Annnnd... go. */ db->internal = d; return (PKG_OK); @@ -237,6 +172,8 @@ pkg->add_conflict = fbsd_directorydb_add_conflict; pkg->add_file = fbsd_directorydb_add_file; + + pkg->finish = fbsd_directorydb_finish; } static int @@ -285,6 +222,7 @@ TAILQ_INSERT_TAIL(list, pkg, next); } fts_close(ftsp); + free(paths[0]); return (list); } @@ -317,16 +255,63 @@ char path[PATH_MAX]; d = db->internal; + + sprintf(path, "%s/%s", d->path, key); + + if (stat(path, &sb) < 0) return (0); + + return (S_ISDIR(sb.st_mode)); +} + +static int +fbsd_directorydb_has_backup(struct _directorydb *d, const char *name) +{ + char directory[PATH_MAX]; + + sprintf(directory, "%s/%s", d->path, name); + return (_fbsd_directorydb_has_backup(directory)); +} + +static int +fbsd_directorydb_resolve(struct _directorydb *d, const char *name, + int use_bak) +{ + char directory[PATH_MAX]; + + sprintf(directory, "%s/%s", d->path, name); + return (_fbsd_directorydb_resolve(directory, use_bak)); +} - strcpy(path, d->path); - strcat(path, "/"); - strcat(path, key); +/* XXX: Pull these out of the top level has_backup and resolve functions in case + * they change (for now at least). */ +static int +_fbsd_directorydb_has_backup(const char *directory) +{ + char bak_path[PATH_MAX]; + + assert(directory != NULL); + + sprintf(bak_path, "%s/%s", directory, "+CONTENTS.bak"); + return (access(bak_path, F_OK) == 0); +} + +static int +_fbsd_directorydb_resolve(const char *directory, int use_bak) +{ + char bak_path[PATH_MAX]; + char cur_path[PATH_MAX]; + + assert(directory != NULL); + + sprintf(bak_path, "%s/%s", directory, "+CONTENTS.bak"); + sprintf(cur_path, "%s/%s", directory, "+CONTENTS"); - if (stat(path, &sb) < 0) { - return (0); - } + if (use_bak) { + /* do replacement. */ + } else return (unlink(bak_path)); - return (S_ISDIR(sb.st_mode)); + /* NOT REACHED */ + return (-1); } int @@ -366,13 +351,9 @@ d = db->internal; - strcpy(path, d->path); - strcat(path, "/"); - strcat(path, key); + sprintf(path, "%s/%s", d->path, key); - if (stat(path, &sb) < 0) { - return (PKG_NOT_OK); - } + if (stat(path, &sb) < 0) return (PKG_NOT_OK); fbsd_directorydb_pkg_setup(db, pkg, key); @@ -380,10 +361,20 @@ } int -fbsd_directorydb_finish(struct pkg_db *db, struct pkg *pkg) +fbsd_directorydb_finish(struct pkg *pkg) { + const char *key; + struct pkg_db *db; + struct _directorydb *d; + _pkg_check_magic(pkg); - assert(pkg->source == db); + + key = pkg->key; + db = pkg->source; + d = db->internal; + + if (fbsd_directorydb_has_backup(d, key)) + fbsd_directorydb_resolve(d, key, 1); pkg_release(pkg); @@ -414,12 +405,13 @@ for (pi = pkg_entries; pi->info_name != NULL; pi++) { if (mask & pi->info_mask) { - _pkg_util_path_join(path, d->path, pkg->key); - _pkg_util_path_join(path, path, pi->file_name); + sprintf(path, "%s/%s/%s", d->path, pkg->key, + pi->file_name); if ((data = read_file(path)) == NULL) continue; r = fbsd_plist_parse(pkg, data, pi->info_name); + free(data); if (r != PKG_OK) return (r); } } ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.h#9 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.c#12 (text+ko) ==== @@ -12,6 +12,7 @@ #include "pkg.h" #include "pkg_internal.h" +#include "conflict.h" #include "file.h" #include "depend.h" @@ -46,6 +47,41 @@ void pkg_release(struct pkg *pkg) { + struct pkg_conflict *c, *nc; + struct pkg_depend *d, *nd; + struct pkg_file *f, *nf; + + if (pkg->conflicts != NULL) { + /* Do tailq deletion. */ + c = TAILQ_FIRST(pkg->conflicts); + while (c != NULL) { + nc = TAILQ_NEXT(c, next); + pkg_conflict_release(c); + c = nc; + } + free(pkg->conflicts); + } + + if (pkg->depends != NULL) { + d = TAILQ_FIRST(pkg->depends); + while (d != NULL) { + nd = TAILQ_NEXT(d, next); + pkg_depend_release(d); + d = nd; + } + free(pkg->depends); + } + + if (pkg->files != NULL) { + f = TAILQ_FIRST(pkg->files); + while (f != NULL) { + nf = TAILQ_NEXT(f, next); + pkg_file_release(f); + f = nf; + } + free(pkg->files); + } + free(pkg); } @@ -221,6 +257,34 @@ } int +pkg_finish(struct pkg *pkg) +{ + return (pkg->finish(pkg)); +} + +int +pkg_list_finish(struct pkg_list *pkgs) +{ + struct pkg *pkg; + + /* delete this way so that we can 'recover' on a bad pkg_finish. */ + + while (!TAILQ_EMPTY(pkgs)) { + pkg = TAILQ_FIRST(pkgs); + TAILQ_REMOVE(pkgs, pkg, next); + if (pkg->finish(pkg) != PKG_OK) { + /* finish failed, put pkg back at the head of the list + * and return not_ok. */ + TAILQ_INSERT_HEAD(pkgs, pkg, next); + return (PKG_NOT_OK); + } + } + free(pkgs); + + return (PKG_OK); +} + +int pkg_parse(struct pkg *p, char *data, const char *metaname) { return (p->parse(p, data, metaname)); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#12 (text+ko) ==== @@ -70,6 +70,8 @@ */ int pkg_finish(struct pkg *); +int pkg_list_finish(struct pkg_list *); + /* * Retrieve the name of a package. */ ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#5 (text+ko) ==== @@ -70,6 +70,8 @@ int (*set_comment) (struct pkg *, const char *); int (*set_description) (struct pkg *, const char *); + + int (*finish) (struct pkg *); int (*parse) (struct pkg *, char *, const char *); ==== //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_info/pkg_info.c#8 (text+ko) ==== @@ -467,7 +467,8 @@ } } } - + + pkg_list_finish(pkgs); pkg_db_finish(db); return (r); } From owner-p4-projects@FreeBSD.ORG Wed Nov 10 04:35:36 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8D2E51065697; Wed, 10 Nov 2010 04:35: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 4FB991065693 for ; Wed, 10 Nov 2010 04:35:36 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 229218FC0A for ; Wed, 10 Nov 2010 04:35:36 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oAA4ZaSC026444 for ; Wed, 10 Nov 2010 04:35:36 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oAA4Zawb026441 for perforce@freebsd.org; Wed, 10 Nov 2010 04:35:36 GMT (envelope-from dforsyth@FreeBSD.org) Date: Wed, 10 Nov 2010 04:35:36 GMT Message-Id: <201011100435.oAA4Zawb026441@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185588 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Nov 2010 04:35:36 -0000 http://p4web.freebsd.org/@@185588?ac=10 Change 185588 by dforsyth@skunk on 2010/11/10 04:34:39 put internal check back in db_close Affected files ... .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.c#10 edit Differences ... ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.c#10 (text+ko) ==== @@ -119,7 +119,9 @@ int pkg_db_close(struct pkg_db *db) { - return (db->close(db)); + if (db->internal) return (db->close(db)); + + return (PKG_NOT_OK); } struct pkg * From owner-p4-projects@FreeBSD.ORG Wed Nov 10 21:26:29 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DB40F1065670; Wed, 10 Nov 2010 21:26: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 9DC35106564A for ; Wed, 10 Nov 2010 21:26:28 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 8984D8FC08 for ; Wed, 10 Nov 2010 21:26:28 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oAALQSeL041438 for ; Wed, 10 Nov 2010 21:26:28 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oAALQStq041435 for perforce@freebsd.org; Wed, 10 Nov 2010 21:26:28 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 10 Nov 2010 21:26:28 GMT Message-Id: <201011102126.oAALQStq041435@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185621 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Nov 2010 21:26:29 -0000 http://p4web.freebsd.org/@@185621?ac=10 Change 185621 by rene@rene_acer on 2010/11/10 21:25:53 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#55 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml#18 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#48 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/mailing-lists.ent#15 integrate .. //depot/projects/docproj_nl/share/pgpkeys/beech.key#4 integrate .. //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-developers.sgml#48 integrate .. //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#45 integrate .. //depot/projects/docproj_nl/share/pgpkeys/zack.key#1 branch .. //depot/projects/docproj_nl/www/en/developers.sgml#46 integrate .. //depot/projects/docproj_nl/www/en/gnome/contact.sgml#4 integrate .. //depot/projects/docproj_nl/www/en/search/search.sgml#7 integrate .. //depot/projects/docproj_nl/www/nl/administration.sgml#23 integrate .. //depot/projects/docproj_nl/www/share/sgml/news.xml#94 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#55 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -534,6 +534,11 @@ + &a.tilera.name; + Porting FreeBSD to the Tilera family of CPUs + + + &a.tokenring.name; Support Token Ring in FreeBSD ==== //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/authors.ent#48 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.529 2010/10/16 18:57:33 culot Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.530 2010/11/10 18:06:01 zack Exp $ --> aaron@FreeBSD.org"> @@ -1264,6 +1264,8 @@ xride@FreeBSD.org"> +zack@FreeBSD.org"> + zarzycki@FreeBSD.org"> zec@FreeBSD.org"> ==== //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/mailing-lists.ent#15 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -471,6 +471,10 @@ FreeBSD threads mailing list"> freebsd-threads"> + +Porting FreeBSD to the Tilera family of CPUs"> +freebsd-tilera"> + FreeBSD tokenring mailing list"> freebsd-tokenring"> ==== //depot/projects/docproj_nl/share/pgpkeys/beech.key#4 (text+ko) ==== @@ -1,41 +1,50 @@ - + -sub 2048g/9F3B61BF 2009-01-23 +pub 2048D/799083F1 2010-10-28 + Key fingerprint = 47B9 12A9 05CF 6A85 2D9A 2A0B ED5D DF93 7990 83F1 +uid Beecher Rintoul +sub 2048g/3CA741A0 2010-10-28 ]]> ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys-developers.sgml#48 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -676,6 +676,11 @@ &pgpkey.jkim; + + &a.zack; + &pgpkey.zack; + + &a.andreas; &pgpkey.andreas; ==== //depot/projects/docproj_nl/share/pgpkeys/pgpkeys.ent#45 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -352,6 +352,7 @@ + ==== //depot/projects/docproj_nl/www/en/developers.sgml#46 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.270 2010/10/16 19:04:06 culot Exp $ +$FreeBSD: www/en/developers.sgml,v 1.271 2010/11/10 18:07:47 zack Exp $ --> @@ -629,8 +629,10 @@ + + ==== //depot/projects/docproj_nl/www/en/gnome/contact.sgml#4 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -48,7 +48,7 @@ avl - Alexander Loginov + Alexander Logvinov (avl@FreeBSD.org) ==== //depot/projects/docproj_nl/www/en/search/search.sgml#7 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -616,6 +616,12 @@ Tilera + Porting FreeBSD to the Tilera family of CPUs + + + + Tokenring Support Token Ring in FreeBSD ==== //depot/projects/docproj_nl/www/nl/administration.sgml#23 (text+ko) ==== @@ -1,5 +1,5 @@ + %developers; ==== //depot/projects/docproj_nl/www/share/sgml/news.xml#94 (text+ko) ==== @@ -25,7 +25,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.351 2010/10/27 00:10:36 danger Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.352 2010/11/10 18:10:23 zack Exp $ @@ -33,6 +33,17 @@ 2010 + 11 + + + 5 + +

      New committer: Zack Kirsch (src)

      +
      +
      +
      + + 10 From owner-p4-projects@FreeBSD.ORG Wed Nov 10 21:37:28 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E0C901065670; Wed, 10 Nov 2010 21:37:27 +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 A387E106564A for ; Wed, 10 Nov 2010 21:37:27 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 75EFD8FC1F for ; Wed, 10 Nov 2010 21:37:27 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oAALbRia043485 for ; Wed, 10 Nov 2010 21:37:27 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oAALbRPQ043482 for perforce@freebsd.org; Wed, 10 Nov 2010 21:37:27 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 10 Nov 2010 21:37:27 GMT Message-Id: <201011102137.oAALbRPQ043482@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185622 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Nov 2010 21:37:28 -0000 http://p4web.freebsd.org/@@185622?ac=10 Change 185622 by rene@rene_acer on 2010/11/10 21:37:05 MFen the Tilera mailing list: - eresources 1.202 -> 1.203 - mailing-lists.ent 1.71 -> 1.72 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#30 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent#22 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#30 (text+ko) ==== @@ -5,7 +5,7 @@ Vertaald door: Siebrand Mazeland %SOURCE% en_US.ISO8859-1/books/handbook/eresources/chapter.sgml - %SRCID% 1.202 + %SRCID% 1.203 --> @@ -647,6 +647,12 @@ + &a.tilera.name; + + &os; porteren naar de Tilera CPU-familie + + + &a.tokenring.name; Ondersteuning voor Token Ring in &os; ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent#22 (text+ko) ==== @@ -5,7 +5,7 @@ Vertaald door: Siebrand Mazeland %SOURCE% en_US.ISO8859-1/share/sgml/mailing-lists.ent - %SRCID% 1.71 + %SRCID% 1.72 --> @@ -475,6 +475,10 @@ &os; threads mailinglijst"> freebsd-threads"> + +Mailinglijst over het porteren van &os; naar de Tilera CPU-familie"> +freebsd-tilera"> + &os; tokenring mailinglijst"> freebsd-tokenring"> From owner-p4-projects@FreeBSD.ORG Fri Nov 12 16:08:26 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A9D0610656A3; Fri, 12 Nov 2010 16:08: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 601011065674 for ; Fri, 12 Nov 2010 16:08:26 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 315928FC18 for ; Fri, 12 Nov 2010 16:08:26 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oACG8QnD080480 for ; Fri, 12 Nov 2010 16:08:26 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oACG8Q9j080477 for perforce@freebsd.org; Fri, 12 Nov 2010 16:08:26 GMT (envelope-from trasz@freebsd.org) Date: Fri, 12 Nov 2010 16:08:26 GMT Message-Id: <201011121608.oACG8Q9j080477@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185695 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Nov 2010 16:08:26 -0000 http://p4web.freebsd.org/@@185695?ac=10 Change 185695 by trasz@trasz_victim on 2010/11/12 16:07:20 Implement simple CPU throttling (%cpu limit). Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#51 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#26 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#51 (text+ko) ==== @@ -624,21 +624,60 @@ } static void +rusage_throttle(struct thread *td, int throttle) +{ + u_char oldpri; + u_char newpri; + int type; + + if (throttle) { + td->td_flags |= TDF_THROTTLED; + newpri = PRI_MIN_IDLE; + type = RTP_PRIO_IDLE; + } else if (td->td_flags & TDF_THROTTLED) { + td->td_flags &= ~TDF_THROTTLED; + newpri = PRI_MIN_TIMESHARE; + type = RTP_PRIO_NORMAL; + } else + return; + + /* Mostly copied from rtp_to_pri(). */ + sched_class(td, type); /* XXX fix */ + oldpri = td->td_user_pri; + sched_user_prio(td, newpri); + if (TD_IS_RUNNING(td) || TD_CAN_RUN(td)) + sched_prio(td, td->td_user_pri); /* XXX dubious */ + if (TD_ON_UPILOCK(td) && oldpri != newpri) + umtx_pi_adjust(td, oldpri); +} + +static void rusage_cpu_task_fn(void *arg, int pending) { int pctcpu; struct thread *td; struct proc *p; struct timeval wallclock; + uint64_t pctcpu_limit; sx_slock(&allproc_lock); FOREACH_PROC_IN_SYSTEM(p) { + pctcpu_limit = rusage_get_limit(p, RUSAGE_PCTCPU); PROC_SLOCK(p); pctcpu = 0; FOREACH_THREAD_IN_PROC(p, td) { ruxagg(p, td); thread_lock(td); pctcpu += sched_pctcpu(td); + /* + * We are making this decision based on data from + * the previous run. The assumption is that this runs + * so often it doesn't matter. + */ + if (pctcpu > pctcpu_limit) + rusage_throttle(td, 1); + else + rusage_throttle(td, 0); thread_unlock(td); } PROC_SUNLOCK(p); ==== //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#26 (text+ko) ==== @@ -354,7 +354,7 @@ #define TDF_NEEDRESCHED 0x00010000 /* Thread needs to yield. */ #define TDF_NEEDSIGCHK 0x00020000 /* Thread may need signal delivery. */ #define TDF_NOLOAD 0x00040000 /* Ignore during load avg calculations. */ -#define TDF_UNUSED19 0x00080000 /* --available-- */ +#define TDF_THROTTLED 0x00080000 /* Throttled due to %cpu usage */ #define TDF_THRWAKEUP 0x00100000 /* Libthr thread must not suspend itself. */ #define TDF_UNUSED21 0x00200000 /* --available-- */ #define TDF_SWAPINREQ 0x00400000 /* Swapin request due to wakeup. */ From owner-p4-projects@FreeBSD.ORG Fri Nov 12 17:07:40 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DBA5D106567A; Fri, 12 Nov 2010 17:07: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 9E3E41065670 for ; Fri, 12 Nov 2010 17:07:39 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 895808FC22 for ; Fri, 12 Nov 2010 17:07:39 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oACH7dvD092957 for ; Fri, 12 Nov 2010 17:07:39 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oACH7dE1092954 for perforce@freebsd.org; Fri, 12 Nov 2010 17:07:39 GMT (envelope-from trasz@freebsd.org) Date: Fri, 12 Nov 2010 17:07:39 GMT Message-Id: <201011121707.oACH7dE1092954@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185697 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Nov 2010 17:07:40 -0000 http://p4web.freebsd.org/@@185697?ac=10 Change 185697 by trasz@trasz_victim on 2010/11/12 17:07:14 Move maintenance of cpu usage into a new kproc. This way it's easy to measure how much time is wasted for running it. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#32 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#52 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#32 (text+ko) ==== @@ -37,15 +37,20 @@ #include #include #include +#include #include #include #include #include +#include #include +#include #include +#include #include #include #include +#include #ifdef HRL #include @@ -590,3 +595,84 @@ #endif container_destroy(&p->p_container); } + +/* + * Stuff below runs from a "containerd" kernel process. + */ +static void +rusage_throttle(struct thread *td, int throttle) +{ + u_char oldpri; + u_char newpri; + int type; + + if (throttle) { + td->td_flags |= TDF_THROTTLED; + newpri = PRI_MIN_IDLE; + type = RTP_PRIO_IDLE; + } else if (td->td_flags & TDF_THROTTLED) { + td->td_flags &= ~TDF_THROTTLED; + newpri = PRI_MIN_TIMESHARE; + type = RTP_PRIO_NORMAL; + } else + return; + + /* Mostly copied from rtp_to_pri(). */ + sched_class(td, type); /* XXX fix */ + oldpri = td->td_user_pri; + sched_user_prio(td, newpri); + if (TD_IS_RUNNING(td) || TD_CAN_RUN(td)) + sched_prio(td, td->td_user_pri); /* XXX dubious */ + if (TD_ON_UPILOCK(td) && oldpri != newpri) + umtx_pi_adjust(td, oldpri); +} + +static void +containerd(void) +{ + int pctcpu; + struct thread *td; + struct proc *p; + struct timeval wallclock; + uint64_t pctcpu_limit; + + for (;;) { + sx_slock(&allproc_lock); + FOREACH_PROC_IN_SYSTEM(p) { + pctcpu_limit = rusage_get_limit(p, RUSAGE_PCTCPU); + PROC_SLOCK(p); + pctcpu = 0; + FOREACH_THREAD_IN_PROC(p, td) { + ruxagg(p, td); + thread_lock(td); + pctcpu += sched_pctcpu(td); + /* + * We are making this decision based on data from + * the previous run. The assumption is that this runs + * so often it doesn't matter. + */ + if (pctcpu > pctcpu_limit) + rusage_throttle(td, 1); + else + rusage_throttle(td, 0); + thread_unlock(td); + } + PROC_SUNLOCK(p); + rusage_set(p, RUSAGE_CPU, cputick2usec(p->p_rux.rux_runtime)); + microuptime(&wallclock); + timevalsub(&wallclock, &p->p_stats->p_start); + rusage_set(p, RUSAGE_WALLCLOCK, wallclock.tv_sec * 1000000 + wallclock.tv_usec); + pctcpu = ((pctcpu * 10000 + FSCALE / 2) >> FSHIFT) / 100; + rusage_set(p, RUSAGE_PCTCPU, pctcpu); + } + sx_sunlock(&allproc_lock); + pause("-", hz); + } +} + +static struct kproc_desc containerd_kp = { + "containerd", + containerd, + NULL +}; +SYSINIT(containerd, SI_SUB_RUN_SCHEDULER, SI_ORDER_FIRST, kproc_start, &containerd_kp); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#52 (text+ko) ==== @@ -81,11 +81,6 @@ static struct uidinfo *uilookup(uid_t uid); static void ruxagg_locked(struct rusage_ext *rux, struct thread *td); -#ifdef CONTAINERS -static struct callout rusage_cpu_callout; -static struct task rusage_cpu_task; -#endif - /* * Resource controls and accounting. */ @@ -611,89 +606,6 @@ return (error); } -#ifdef CONTAINERS -static void -rusage_cpu_update(void *arg) -{ - - /* - * The rusage_cpu_task_fn() routine may sleep, so we have to put it - * into taskqueue instead of running directly from callout. - */ - taskqueue_enqueue(taskqueue_thread, &rusage_cpu_task); -} - -static void -rusage_throttle(struct thread *td, int throttle) -{ - u_char oldpri; - u_char newpri; - int type; - - if (throttle) { - td->td_flags |= TDF_THROTTLED; - newpri = PRI_MIN_IDLE; - type = RTP_PRIO_IDLE; - } else if (td->td_flags & TDF_THROTTLED) { - td->td_flags &= ~TDF_THROTTLED; - newpri = PRI_MIN_TIMESHARE; - type = RTP_PRIO_NORMAL; - } else - return; - - /* Mostly copied from rtp_to_pri(). */ - sched_class(td, type); /* XXX fix */ - oldpri = td->td_user_pri; - sched_user_prio(td, newpri); - if (TD_IS_RUNNING(td) || TD_CAN_RUN(td)) - sched_prio(td, td->td_user_pri); /* XXX dubious */ - if (TD_ON_UPILOCK(td) && oldpri != newpri) - umtx_pi_adjust(td, oldpri); -} - -static void -rusage_cpu_task_fn(void *arg, int pending) -{ - int pctcpu; - struct thread *td; - struct proc *p; - struct timeval wallclock; - uint64_t pctcpu_limit; - - sx_slock(&allproc_lock); - FOREACH_PROC_IN_SYSTEM(p) { - pctcpu_limit = rusage_get_limit(p, RUSAGE_PCTCPU); - PROC_SLOCK(p); - pctcpu = 0; - FOREACH_THREAD_IN_PROC(p, td) { - ruxagg(p, td); - thread_lock(td); - pctcpu += sched_pctcpu(td); - /* - * We are making this decision based on data from - * the previous run. The assumption is that this runs - * so often it doesn't matter. - */ - if (pctcpu > pctcpu_limit) - rusage_throttle(td, 1); - else - rusage_throttle(td, 0); - thread_unlock(td); - } - PROC_SUNLOCK(p); - rusage_set(p, RUSAGE_CPU, cputick2usec(p->p_rux.rux_runtime)); - microuptime(&wallclock); - timevalsub(&wallclock, &p->p_stats->p_start); - rusage_set(p, RUSAGE_WALLCLOCK, wallclock.tv_sec * 1000000 + wallclock.tv_usec); - pctcpu = ((pctcpu * 10000 + FSCALE / 2) >> FSHIFT) / 100; - rusage_set(p, RUSAGE_PCTCPU, pctcpu); - } - sx_sunlock(&allproc_lock); - - callout_reset(&rusage_cpu_callout, hz, rusage_cpu_update, NULL); -} -#endif - #ifndef HRL static void lim_cb(void *arg) @@ -1378,16 +1290,6 @@ uihashtbl = hashinit(maxproc / 16, M_UIDINFO, &uihash); rw_init(&uihashtbl_lock, "uidinfo hash"); - -#ifdef CONTAINERS - /* - * XXX: Piggybacked for now; in the future it should have - * it's own function. - */ - TASK_INIT(&rusage_cpu_task, 0, rusage_cpu_task_fn, NULL); - callout_init(&rusage_cpu_callout, 1); - callout_reset(&rusage_cpu_callout, hz, rusage_cpu_update, NULL); -#endif } /* From owner-p4-projects@FreeBSD.ORG Fri Nov 12 18:16:41 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7644110656B2; Fri, 12 Nov 2010 18:16: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 34C5110656AB for ; Fri, 12 Nov 2010 18:16:41 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 1E3C88FC28 for ; Fri, 12 Nov 2010 18:16:41 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oACIGejh012398 for ; Fri, 12 Nov 2010 18:16:40 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oACIGaVi012395 for perforce@freebsd.org; Fri, 12 Nov 2010 18:16:36 GMT (envelope-from trasz@freebsd.org) Date: Fri, 12 Nov 2010 18:16:36 GMT Message-Id: <201011121816.oACIGaVi012395@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185700 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Nov 2010 18:16:41 -0000 http://p4web.freebsd.org/@@185700?ac=10 Change 185700 by trasz@trasz_victim on 2010/11/12 18:16:19 IFC. Affected files ... .. //depot/projects/soc2009/trasz_limits/Makefile#5 integrate .. //depot/projects/soc2009/trasz_limits/Makefile.inc1#16 integrate .. //depot/projects/soc2009/trasz_limits/ObsoleteFiles.inc#28 integrate .. //depot/projects/soc2009/trasz_limits/UPDATING#28 integrate .. //depot/projects/soc2009/trasz_limits/bin/rm/rm.1#3 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/bltin/echo.1#2 delete .. //depot/projects/soc2009/trasz_limits/bin/sh/eval.c#15 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/expand.c#14 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/expand.h#3 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/histedit.c#10 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/mksyntax.c#8 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/parser.c#16 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/parser.h#4 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/redir.c#5 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/sh.1#16 integrate .. //depot/projects/soc2009/trasz_limits/bin/sh/var.c#11 integrate .. //depot/projects/soc2009/trasz_limits/bin/stty/key.c#2 integrate .. //depot/projects/soc2009/trasz_limits/bin/test/TEST.README#2 delete .. //depot/projects/soc2009/trasz_limits/bin/test/TEST.csh#2 delete .. //depot/projects/soc2009/trasz_limits/bin/test/TEST.sh#3 delete .. //depot/projects/soc2009/trasz_limits/cddl/contrib/opensolaris/cmd/ztest/ztest.c#4 integrate .. //depot/projects/soc2009/trasz_limits/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#5 integrate .. //depot/projects/soc2009/trasz_limits/cddl/lib/drti/Makefile#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/CHANGES#9 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/README#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/dnssec/dnssec-dsfromkey.html#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.html#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/dnssec/dnssec-keygen.html#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/dnssec/dnssec-signzone.html#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/named/include/named/globals.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/named/main.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/named/query.c#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/named/server.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/bin/nsupdate/nsupdate.html#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/Bv9ARM-book.xml#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/Bv9ARM.ch06.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/Bv9ARM.ch07.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/Bv9ARM.ch08.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/Bv9ARM.ch09.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/Bv9ARM.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/Bv9ARM.pdf#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/isc-logo.eps#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/isc-logo.pdf#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.dig.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.dnssec-dsfromkey.html#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.dnssec-keyfromlabel.html#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.dnssec-keygen.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.dnssec-signzone.html#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.host.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.named-checkconf.html#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.named-checkzone.html#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.named.html#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.nsupdate.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.rndc-confgen.html#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.rndc.conf.html#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/doc/arm/man.rndc.html#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/adb.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/api#7 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/include/dns/diff.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/include/dns/ncache.h#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/include/dns/rdataset.h#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/include/dns/resolver.h#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/include/dns/result.h#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/include/dns/types.h#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/include/dns/validator.h#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/ncache.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/rbtdb.c#6 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/rdatalist.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/rdataset.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/rdataslab.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/resolver.c#7 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/result.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/sdb.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/sdlz.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/validator.c#7 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/dns/view.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/isc/api#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/isc/include/isc/mem.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/isc/mem.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_buffer.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_config.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_context.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_gabn.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_gai_strerror.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_gethostent.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_getipnode.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_getnameinfo.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_gnba.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_hstrerror.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_inetntop.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_noop.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_packet.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/lib/lwres/man/lwres_resutil.html#5 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bind9/version#9 integrate .. //depot/projects/soc2009/trasz_limits/contrib/binutils/bfd/elfxx-mips.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/binutils/bfd/opncls.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bsnmp/snmpd/bsnmpd.1#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/CHANGES#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/LICENSE#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/Makefile-libbz2_so#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/README#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/README.COMPILATION.PROBLEMS#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/blocksort.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/bzip2.1#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/bzip2.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/bzip2recover.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/bzlib.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/bzlib.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/bzlib_private.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/compress.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/crctable.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/decompress.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/huffman.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/randtable.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/spewG.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/bzip2/unzcrash.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/BlocksRuntime/Block.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/BlocksRuntime/Block_private.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/BlocksRuntime/data.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/BlocksRuntime/runtime.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/CREDITS.TXT#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/LICENSE.TXT#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/README.txt#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/absvdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/absvsi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/absvti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/adddf3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/addsf3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/addvdi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/addvsi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/addvti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/apple_versioning.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/adddf3vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/addsf3vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/bswapdi2.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/bswapsi2.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/comparesf2.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/divdf3vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/divsf3vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/eqdf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/eqsf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/extendsfdf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/fixdfsivfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/fixsfsivfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/fixunsdfsivfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/fixunssfsivfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/floatsidfvfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/floatsisfvfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/floatunssidfvfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/floatunssisfvfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/gedf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/gesf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/gtdf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/gtsf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/ledf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/lesf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/ltdf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/ltsf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/modsi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/muldf3vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/mulsf3vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/nedf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/negdf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/negsf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/nesf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/restore_vfp_d8_d15_regs.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/save_vfp_d8_d15_regs.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/subdf3vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/subsf3vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/switch16.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/switch32.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/switch8.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/switchu8.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/sync_synchronize.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/truncdfsf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/unorddf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/arm/unordsf2vfp.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ashldi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ashlti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ashrdi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ashrti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/assembly.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/clear_cache.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/clzdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/clzsi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/clzti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/cmpdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/cmpti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/comparedf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/comparesf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ctzdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ctzsi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ctzti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/divdc3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/divdf3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/divdi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/divsc3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/divsf3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/divsi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/divti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/divxc3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/enable_execute_stack.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/endianness.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/eprintf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/extendsfdf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ffsdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ffsti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixdfdi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixdfsi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixdfti.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixsfdi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixsfsi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixsfti.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunsdfdi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunsdfsi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunsdfti.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunssfdi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunssfsi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunssfti.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunsxfdi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunsxfsi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixunsxfti.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixxfdi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fixxfti.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatdidf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatdisf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatdixf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatsidf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatsisf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floattidf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floattisf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floattixf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatundidf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatundisf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatundixf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatunsidf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatunsisf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatuntidf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatuntisf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/floatuntixf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/fp_lib.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/gcc_personality_v0.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/ashldi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/ashrdi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/divdi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/floatdidf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/floatdisf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/floatdixf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/floatundidf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/floatundisf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/floatundixf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/lshrdi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/moddi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/muldi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/udivdi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/i386/umoddi3.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/int_lib.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/lshrdi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/lshrti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/moddi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/modsi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/modti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/muldc3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/muldf3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/muldi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/mulsc3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/mulsf3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/multi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/mulvdi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/mulvsi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/mulvti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/mulxc3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/negdf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/negdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/negsf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/negti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/negvdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/negvsi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/negvti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/paritydi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/paritysi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/parityti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/popcountdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/popcountsi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/popcountti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/powidf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/powisf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/powitf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/powixf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/DD.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/divtc3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/fixtfdi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/fixunstfdi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/floatditf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/floatunditf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/gcc_qadd.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/gcc_qdiv.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/gcc_qmul.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/gcc_qsub.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/multc3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/restFP.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ppc/saveFP.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/subvdi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/subvsi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/subvti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/trampoline_setup.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/truncdfsf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ucmpdi2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/ucmpti2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/udivdi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/udivmoddi4.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/udivmodti4.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/udivsi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/udivti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/umoddi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/umodsi3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/umodti3.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/x86_64/floatdidf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/x86_64/floatdisf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/x86_64/floatdixf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/x86_64/floatundidf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/x86_64/floatundisf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/compiler-rt/lib/x86_64/floatundixf.S#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/gdb/gdb/dwarf2read.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/gdb/gdb/mips-tdep.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/gdb/gdb/mips-tdep.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/gdb/gdb/mipsfbsd-tdep.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/gdb/gdb/mipsfbsd-tdep.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/ipfilter/tools/ipf_y.y#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/CHANGES#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/CREDITS#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/FREEBSD-Xlist#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/FREEBSD-upgrade#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/INSTALL.txt#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/Makefile.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/README#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/TODO#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/VERSION#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/arcnet.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/atmuni31.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/bpf/net/bpf_filter.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/bpf_dump.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/bpf_image.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/config.guess#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/config.h.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/config.sub#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/configure#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/configure.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/dlpisubs.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/dlpisubs.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/etherent.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/ethertype.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/fad-getad.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/fad-gifc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/fad-glifc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/fad-null.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/fad-win32.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/filtertest.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/gencode.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/gencode.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/grammar.y#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/inet.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/lbl/os-aix4.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/lbl/os-hpux11.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/lbl/os-osf4.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/lbl/os-osf5.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/lbl/os-solaris2.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/lbl/os-sunos4.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/lbl/os-ultrix4.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/llc.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/missing/snprintf.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/nametoaddr.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/net/bpf_filter.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/nlpid.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/opentest.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/optimize.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-bpf.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-bpf.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-bt-linux.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-bt-linux.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-can-linux.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-can-linux.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-common.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-common.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-config.1#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-config.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-dag.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-dag.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-dlpi.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-dos.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-dos.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-enet.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-filter.manmisc.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-int.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-libdlpi.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-linktype.manmisc.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-linux.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-namedb.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-nit.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-null.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-pf.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-savefile.manfile.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-septel.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-septel.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-sita.html#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-snf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-snf.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-snit.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-snoop.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-stdinc.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-usb-linux.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-usb-linux.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap-win32.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap.3pcap.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap/bluetooth.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap/bpf.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap/ipnet.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap/namedb.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap/pcap.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap/sll.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap/usb.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap/vlan.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_activate.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_breakloop.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_can_set_rfmon.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_close.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_compile.3pcap.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_create.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_datalink.3pcap.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_datalink_name_to_val.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_datalink_val_to_name.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_dump.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_dump_close.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_dump_file.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_dump_flush.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_dump_ftell.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_dump_open.3pcap.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_file.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_fileno.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_findalldevs.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_free_datalinks.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_freealldevs.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_freecode.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_get_selectable_fd.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_geterr.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_inject.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_is_swapped.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_lib_version.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_list_datalinks.3pcap.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_lookupdev.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_lookupnet.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_loop.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_major_version.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_next_ex.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_offline_filter.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_open_dead.3pcap.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_open_live.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_open_offline.3pcap.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_set_buffer_size.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_set_datalink.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_set_promisc.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_set_rfmon.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_set_snaplen.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_set_timeout.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_setdirection.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_setfilter.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_setnonblock.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_snapshot.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_stats.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_statustostr.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/pcap_strerror.3pcap#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/ppp.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/runlex.sh#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/savefile.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/scanner.l#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/selpolltest.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/sf-pcap-ng.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/sf-pcap-ng.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/sf-pcap.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/sf-pcap.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/libpcap/sunatmpos.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/CHANGES#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/CREDITS#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/FREEBSD-Xlist#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/FREEBSD-upgrade#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/INSTALL.txt#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/Makefile-devel-adds#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/Makefile.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/README#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/VERSION#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/acconfig.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/addrtoname.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/af.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/af.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/atmuni31.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/bootp.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/bpf_dump.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/checksum.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/config.guess#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/config.h.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/config.sub#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/configure#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/configure.in#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/ethertype.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/forces.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/gmpls.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/gmpls.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/gmt2local.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/icmp6.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/ieee802_11.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/ieee802_11_radio.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/interface.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/ip6.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/ipnet.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/ipproto.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/ipproto.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/isakmp.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/l2vpn.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/l2vpn.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/lbl/os-sunos4.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/lbl/os-ultrix4.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/missing/addrinfo.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/missing/getaddrinfo.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/netdissect.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/nfs.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/nlpid.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/nlpid.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/oui.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/oui.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-802_11.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-ap1394.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-arcnet.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-atm.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-bfd.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-bgp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-bootp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-bt.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-cdp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-cfm.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-dccp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-dhcp6.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-domain.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-enc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-esp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-ether.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-forces.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-fr.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-gre.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-icmp6.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-ip.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-ip6.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-ipnet.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-isakmp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-isoclns.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-juniper.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-l2tp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-lane.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-llc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-lldp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-lspping.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-nfs.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-ntp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-olsr.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-ospf.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-pflog.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-pim.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-ppp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-rrcp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-rsvp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-rx.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-sctp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-sip.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-sll.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-smb.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-sunrpc.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-symantec.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-tcp.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-tftp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-token.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-udp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/print-usb.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/setsignal.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/signature.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/signature.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/sll.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/smbutil.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/strcasecmp.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tcp.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tcpdump-stdinc.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tcpdump.1#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tcpdump.1.in#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tcpdump.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/02-sunrise-sunset-esp.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/08-sunrise-sunset-aes.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/08-sunrise-sunset-esp2.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/TESTLIST#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/TESTonce#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/TESTrun.sh#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/bgp-infinite-loop.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/bgp_vpn_attrset.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/bgp_vpn_attrset.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/chdlc-slarp-short.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/chdlc-slarp.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/dio.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/dio.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/e1000g.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/e1000g.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/eapon1.gdbinit#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/eapon1.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/eapon1.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/eapon2.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp-secrets.txt#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp0.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp1.gdbinit#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp1.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp2.gdbinit#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp2.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp3.gdbinit#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp4.gdbinit#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp5.gdbinit#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/esp5.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/espudp1.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/espudp1.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/forces1.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/forces1.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/forces1vvv.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/forces1vvvv.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/forces2.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/forces2.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/forces2v.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/forces2vv.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ikev2.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ikev2four.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ikev2four.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ikev2fourv.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ikev2fourv4.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ikev2pI2-secrets.txt#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ikev2pI2.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ikev2pI2.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isakmp-delete-segfault.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isakmp-identification-segfault.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isakmp-pointer-loop.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isakmp1.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isakmp2.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isakmp3.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isakmp4.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isakmp4500.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/isis-infinite-loop.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ldp-infinite-loop.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/lmp.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/lmp.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/lmp.sh#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/lspping-fec-ldp.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/lspping-fec-rsvp.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/mpls-ldp-hello.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/mpls-ldp-hello.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/mpls-traceroute.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ospf-gmpls.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/ospf-gmpls.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/print-A.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/print-AA.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/print-capX.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/print-capXX.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/print-flags.puu#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/print-flags.sh#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/print-x.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/print-xx.out#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tests/rsvp-infinite-loop.pcap#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/tftp.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/timed.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/token.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tcpdump/util.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/top/display.c#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/top/top.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tzcode/stdtime/asctime.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tzcode/stdtime/localtime.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tzcode/zic/zic.8#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tzcode/zic/zic.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/tzdata/australasia#4 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/.gitignore#3 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ChangeLog#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/README#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/README-WPS#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/accounting.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/accounting.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ap.h#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ap_list.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ap_list.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/beacon.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/beacon.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/config.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/config.h#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/config_file.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/config_file.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ctrl_iface.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ctrl_iface.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/defconfig#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/code_structure.doxygen#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/ctrl_iface.doxygen#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/doxygen.fast#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/doxygen.full#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/driver_wrapper.doxygen#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/eap.doxygen#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/hostapd.fig#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/kerneldoc2doxygen.pl#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/mainpage.doxygen#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/doc/porting.doxygen#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/driver.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/driver_bsd.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/driver_hostap.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/driver_wired.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/drivers.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/dump_state.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/dump_state.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/eap_register.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/eap_register.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/eapol_sm.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/eapol_sm.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hlr_auc_gw.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hlr_auc_gw.milenage_db#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hostap_common.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hostapd.8#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hostapd.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hostapd.conf#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hostapd.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hostapd_cli.1#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hostapd_cli.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hw_features.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/hw_features.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/iapp.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/iapp.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ieee802_11.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ieee802_11.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ieee802_11_auth.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ieee802_11_auth.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ieee802_1x.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/ieee802_1x.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/main.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/mlme.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/mlme.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/nt_password_hash.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/peerkey.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/pmksa_cache.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/pmksa_cache.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/preauth.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/preauth.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/radiotap.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/radiotap.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/radiotap_iter.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/sta_info.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/sta_info.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/vlan_init.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/vlan_init.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wme.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wme.h#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wpa.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wpa.h#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wpa_auth_i.h#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wpa_auth_ie.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wpa_auth_ie.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wpa_ft.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wps_hostapd.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/hostapd/wps_hostapd.h#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/patches/openssl-0.9.8-tls-extensions.patch#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/patches/openssl-0.9.8d-tls-extensions.patch#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/patches/openssl-0.9.8e-tls-extensions.patch#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/patches/openssl-0.9.8g-tls-extensions.patch#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/patches/openssl-0.9.8h-tls-extensions.patch#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/patches/openssl-0.9.8i-tls-extensions.patch#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/patches/openssl-0.9.9-session-ticket.patch#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/Makefile#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/accounting.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/accounting.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ap_config.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ap_config.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ap_drv_ops.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ap_drv_ops.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ap_list.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ap_list.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ap_mlme.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ap_mlme.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/authsrv.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/authsrv.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/beacon.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/beacon.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ctrl_iface_ap.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ctrl_iface_ap.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/drv_callbacks.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/hostapd.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/hostapd.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/hw_features.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/hw_features.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/iapp.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/iapp.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ieee802_11.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ieee802_11.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ieee802_11_auth.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ieee802_11_auth.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ieee802_11_ht.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ieee802_1x.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/ieee802_1x.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/peerkey_auth.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/pmksa_cache_auth.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/pmksa_cache_auth.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/preauth_auth.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/preauth_auth.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/sta_info.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/sta_info.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/tkip_countermeasures.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/tkip_countermeasures.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/utils.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/vlan_init.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/vlan_init.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wmm.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wmm.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wpa_auth.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wpa_auth.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wpa_auth_ft.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wpa_auth_glue.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wpa_auth_glue.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wpa_auth_i.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wpa_auth_ie.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wpa_auth_ie.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wps_hostapd.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/ap/wps_hostapd.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/defs.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/ieee802_11_common.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/ieee802_11_common.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/ieee802_11_defs.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/nl80211_copy.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/privsep_commands.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/version.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/wireless_copy.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/wpa_common.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/wpa_common.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/common/wpa_ctrl.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/.gitignore#3 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-cbc.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-ctr.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-eax.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-encblock.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-internal-dec.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-internal-enc.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-internal.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-omac1.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-unwrap.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes-wrap.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes_i.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/aes_wrap.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_cryptoapi.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_gnutls.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_internal-cipher.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_internal-modexp.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_internal-rsa.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_internal.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_libtomcrypt.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_none.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_nss.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/crypto_openssl.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/des-internal.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/des.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/des_i.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/dh_group5.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/dh_group5.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/dh_groups.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/fips_prf_cryptoapi.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/fips_prf_gnutls.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/fips_prf_internal.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/fips_prf_nss.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/fips_prf_openssl.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/md4-internal.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/md4.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/md5-internal.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/md5-non-fips.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/md5.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/md5.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/md5_i.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/milenage.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/milenage.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/ms_funcs.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/ms_funcs.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/rc4.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/rc4.h#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha1-internal.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha1-pbkdf2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha1-tlsprf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha1-tprf.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha1.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha1.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha1_i.h#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha256-internal.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/sha256.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/tls.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/tls_gnutls.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/tls_internal.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/tls_none.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/tls_nss.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/tls_openssl.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/crypto/tls_schannel.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/.gitignore#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/driver.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/driver_ndis.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/driver_ndis.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/driver_ndiswrapper.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/driver_wired.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/drivers.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/drivers.mak#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/radiotap.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/radiotap.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/radiotap_iter.h#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/drivers/scan_helpers.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/chap.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/chap.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/eap_fast_common.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/eap_gpsk_common.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/eap_pax_common.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/eap_peap_common.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/eap_psk_common.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/eap_sake_common.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/eap_sim_common.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/eap_sim_common.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_common/ikev2_common.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_aka.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_config.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_fast.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_fast_pac.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_leap.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_md5.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_methods.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_methods.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_mschapv2.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_pax.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_peap.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_psk.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_sim.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_tls.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_tls_common.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_tls_common.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_tnc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_ttls.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/eap_wsc.c#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/ikev2.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/mschapv2.c#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_peer/mschapv2.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/Makefile#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_aka.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_fast.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_gpsk.c#3 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_gtc.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_i.h#3 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_identity.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_ikev2.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_md5.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_methods.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_methods.h#2 integrate .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_mschapv2.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_pax.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_peap.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_psk.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_sake.c#2 delete .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_aka.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_fast.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_gpsk.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_gtc.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_identity.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_ikev2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_md5.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_methods.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_mschapv2.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_pax.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_peap.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_psk.c#1 branch .. //depot/projects/soc2009/trasz_limits/contrib/wpa/src/eap_server/eap_server_sake.c#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Nov 12 20:49:20 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C48AF1065672; Fri, 12 Nov 2010 20:49: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 868AC106564A for ; Fri, 12 Nov 2010 20:49:19 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 69D668FC08 for ; Fri, 12 Nov 2010 20:49:19 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oACKnJ5Y043152 for ; Fri, 12 Nov 2010 20:49:19 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oACKnJpw043149 for perforce@freebsd.org; Fri, 12 Nov 2010 20:49:19 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 12 Nov 2010 20:49:19 GMT Message-Id: <201011122049.oACKnJpw043149@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185706 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Nov 2010 20:49:20 -0000 http://p4web.freebsd.org/@@185706?ac=10 Change 185706 by rene@rene_acer on 2010/11/12 20:49:17 Cleanup of the vinum chapter. Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/vinum/chapter.sgml#5 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/vinum/chapter.sgml#5 (text+ko) ==== @@ -766,16 +766,6 @@ - This only applies to the historic Vinum - implemenation. - - The control devices - /dev/vinum/control and - /dev/vinum/controld, which are used - by &man.gvinum.8; and the Vinum daemon respectively. - - - Device entries for each volume. These are the main devices used by Vinum. Thus the configuration above would include the devices @@ -787,15 +777,6 @@ - This only applies to the historic Vinum - implemenation. - - A directory /dev/vinum/drive - with entries for each drive. These entries are in fact - symbolic links to the corresponding disk nodes. - - - All volumes get direct entries under /dev/gvinum/. @@ -877,13 +858,6 @@ &man.newfs.8;:
      &prompt.root; newfs /dev/gvinum/concat - - On &os; versions prior to 5.0 &man.newfs.8; requires - an additional flag and the old device naming - scheme: - - &prompt.root; newfs -v /dev/vinum/concat -
      @@ -943,29 +917,15 @@ Automatic Startup - This information only relates to the historic - Vinum implementation. Gvinum always + + Gvinum always features an automatic startup once the kernel module is loaded, via &man.loader.conf.5;. To load the Gvinum module at boot time, add geom_vinum_load="YES" to - /boot/loader.conf. + /boot/loader.conf.
      - In order to start Vinum automatically when you boot the - system, ensure that you have the following line in your - /etc/rc.conf: - - start_vinum="YES" # set to YES to start vinum - - If you do not have a file - /etc/rc.conf, create one with this - content. This will cause the system to load the Vinum - kld at startup, and to start any objects - mentioned in the configuration. This is done before - mounting file systems, so it is possible to automatically - &man.fsck.8; and mount file systems on Vinum volumes. - - When you start Vinum with the vinum + When you start Vinum with the gvinum start command, Vinum reads the configuration database from one of the Vinum drives. Under normal circumstances, each drive contains an identical copy of the @@ -1040,39 +1000,10 @@ - For Gvinum, all startup + For Gvinum, all startup is done automatically once the kernel module has been loaded, so the procedure described above is all that is - needed. The following text documents the behaviour of - the historic Vinum system, for the sake of older - setups. - - Vinum must be initialized early since it needs to - supply the volume for the root filesystem. By default, - the Vinum kernel part is not looking for drives that might - contain Vinum volume information until the administrator - (or one of the startup scripts) issues a vinum - start command. - - The following paragraphs are outlining the steps - needed for &os;. - - By placing the line: - - vinum.autostart="YES" - - into /boot/loader.conf, Vinum is - instructed to automatically scan all drives for Vinum - information as part of the kernel startup. - - Note that it is not necessary to instruct the kernel - where to look for the root filesystem. - /boot/loader looks up the name of the - root device in /etc/fstab, and passes - this information on to the kernel. When it comes to mount - the root filesystem, the kernel figures out from the - device name provided which driver to ask to translate this - into the internal device ID (major/minor number). + needed. From owner-p4-projects@FreeBSD.ORG Sat Nov 13 13:12:10 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E16551065673; Sat, 13 Nov 2010 13:12:09 +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 8B2381065670 for ; Sat, 13 Nov 2010 13:12:09 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 762A08FC33 for ; Sat, 13 Nov 2010 13:12:09 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oADDC91L047787 for ; Sat, 13 Nov 2010 13:12:09 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oADDC9nB047784 for perforce@freebsd.org; Sat, 13 Nov 2010 13:12:09 GMT (envelope-from trasz@freebsd.org) Date: Sat, 13 Nov 2010 13:12:09 GMT Message-Id: <201011131312.oADDC9nB047784@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185732 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Nov 2010 13:12:10 -0000 http://p4web.freebsd.org/@@185732?ac=10 Change 185732 by trasz@trasz_victim on 2010/11/13 13:11:31 Replace struct uidinfo with struct ucred in struct vm_object. This makes it possible to account for swap and sbsize usage for jails in a clean way. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/fs/procfs/procfs_map.c#5 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_shm.c#7 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/default_pager.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#11 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm.h#7 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_fault.c#9 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.c#24 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.h#7 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_object.c#11 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_object.h#7 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/fs/procfs/procfs_map.c#5 (text+ko) ==== @@ -83,7 +83,7 @@ vm_map_entry_t entry, tmp_entry; struct vnode *vp; char *fullpath, *freepath; - struct uidinfo *uip; + struct ucred *cred; int error, vfslocked; unsigned int last_timestamp; #ifdef COMPAT_FREEBSD32 @@ -136,7 +136,7 @@ if (obj->shadow_count == 1) privateresident = obj->resident_page_count; } - uip = (entry->uip) ? entry->uip : (obj ? obj->uip : NULL); + cred = (entry->cred) ? entry->cred : (obj ? obj->cred : NULL); resident = 0; addr = entry->start; @@ -221,7 +221,7 @@ (e_eflags & MAP_ENTRY_COW)?"COW":"NCOW", (e_eflags & MAP_ENTRY_NEEDS_COPY)?"NC":"NNC", type, fullpath, - uip ? "CH":"NCH", uip ? uip->ui_uid : -1); + cred ? "CH":"NCH", cred ? cred->cr_ruid : -1); if (freepath != NULL) free(freepath, M_TEMP); ==== //depot/projects/soc2009/trasz_limits/sys/kern/uipc_shm.c#7 (text+ko) ==== @@ -271,7 +271,7 @@ swap_pager_freespace(object, nobjsize, delta); /* Free the swap accounted for shm */ - swap_release_by_uid(delta, object->uip); + swap_release_by_cred(delta, object->cred); object->charge -= delta; /* @@ -314,7 +314,7 @@ /* Attempt to reserve the swap */ delta = ptoa(nobjsize - object->size); - if (!swap_reserve_by_uid(delta, object->uip)) { + if (!swap_reserve_by_cred(delta, object->cred)) { VM_OBJECT_UNLOCK(object); return (ENOMEM); } ==== //depot/projects/soc2009/trasz_limits/sys/vm/default_pager.c#3 (text+ko) ==== @@ -80,21 +80,19 @@ vm_ooffset_t offset, struct ucred *cred) { vm_object_t object; - struct uidinfo *uip; if (handle != NULL) panic("default_pager_alloc: handle specified"); if (cred != NULL) { - uip = cred->cr_ruidinfo; - if (!swap_reserve_by_uid(size, uip)) + if (!swap_reserve_by_cred(size, cred)) return (NULL); - uihold(uip); + crhold(cred); } object = vm_object_allocate(OBJT_DEFAULT, OFF_TO_IDX(round_page(offset + size))); if (cred != NULL) { VM_OBJECT_LOCK(object); - object->uip = uip; + object->cred = cred; object->charge = size; VM_OBJECT_UNLOCK(object); } ==== //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#11 (text+ko) ==== @@ -175,16 +175,17 @@ swap_reserve(vm_ooffset_t incr) { - return (swap_reserve_by_uid(incr, curthread->td_ucred->cr_ruidinfo)); + return (swap_reserve_by_cred(incr, curthread->td_ucred)); } int -swap_reserve_by_uid(vm_ooffset_t incr, struct uidinfo *uip) +swap_reserve_by_cred(vm_ooffset_t incr, struct ucred *cred) { vm_ooffset_t r, s; int res, error; static int curfail; static struct timeval lastfail; + struct uidinfo *uip = cred->cr_ruidinfo; if (incr & PAGE_MASK) panic("swap_reserve: & PAGE_MASK"); @@ -256,20 +257,21 @@ void swap_release(vm_ooffset_t decr) { - struct uidinfo *uip; + struct ucred *cred; #ifdef CONTAINERS rusage_sub(curproc, RUSAGE_SWAP, decr); #endif PROC_LOCK(curproc); - uip = curthread->td_ucred->cr_ruidinfo; - swap_release_by_uid(decr, uip); + cred = curthread->td_ucred; + swap_release_by_cred(decr, cred); PROC_UNLOCK(curproc); } void -swap_release_by_uid(vm_ooffset_t decr, struct uidinfo *uip) +swap_release_by_cred(vm_ooffset_t decr, struct ucred *cred) { + struct uidinfo *uip = cred->cr_ruidinfo; if (decr & PAGE_MASK) panic("swap_release: & PAGE_MASK"); @@ -589,9 +591,7 @@ { vm_object_t object; vm_pindex_t pindex; - struct uidinfo *uip; - uip = NULL; pindex = OFF_TO_IDX(offset + PAGE_MASK + size); if (handle) { mtx_lock(&Giant); @@ -605,19 +605,18 @@ object = vm_pager_object_lookup(NOBJLIST(handle), handle); if (object == NULL) { if (cred != NULL) { - uip = cred->cr_ruidinfo; - if (!swap_reserve_by_uid(size, uip)) { + if (!swap_reserve_by_cred(size, cred)) { sx_xunlock(&sw_alloc_sx); mtx_unlock(&Giant); return (NULL); } - uihold(uip); + crhold(cred); } object = vm_object_allocate(OBJT_DEFAULT, pindex); VM_OBJECT_LOCK(object); object->handle = handle; if (cred != NULL) { - object->uip = uip; + object->cred = cred; object->charge = size; } swp_pager_meta_build(object, 0, SWAPBLK_NONE); @@ -627,15 +626,14 @@ mtx_unlock(&Giant); } else { if (cred != NULL) { - uip = cred->cr_ruidinfo; - if (!swap_reserve_by_uid(size, uip)) + if (!swap_reserve_by_cred(size, cred)) return (NULL); - uihold(uip); + crhold(cred); } object = vm_object_allocate(OBJT_DEFAULT, pindex); VM_OBJECT_LOCK(object); if (cred != NULL) { - object->uip = uip; + object->cred = cred; object->charge = size; } swp_pager_meta_build(object, 0, SWAPBLK_NONE); ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm.h#7 (text+ko) ==== @@ -141,12 +141,12 @@ extern struct kva_md_info kmi; extern void vm_ksubmap_init(struct kva_md_info *); -struct uidinfo; +struct ucred; int swap_reserve(vm_ooffset_t incr); -int swap_reserve_by_uid(vm_ooffset_t incr, struct uidinfo *uip); +int swap_reserve_by_cred(vm_ooffset_t incr, struct ucred *cred); void swap_reserve_force(vm_ooffset_t incr); void swap_release(vm_ooffset_t decr); -void swap_release_by_uid(vm_ooffset_t decr, struct uidinfo *uip); +void swap_release_by_cred(vm_ooffset_t decr, struct ucred *cred); #endif /* VM_H */ ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_fault.c#9 (text+ko) ==== @@ -1166,14 +1166,14 @@ dst_entry->offset = 0; dst_object->charge = dst_entry->end - dst_entry->start; if (fork_charge != NULL) { - KASSERT(dst_entry->uip == NULL, + KASSERT(dst_entry->cred == NULL, ("vm_fault_copy_entry: leaked swp charge")); - dst_object->uip = curthread->td_ucred->cr_ruidinfo; - uihold(dst_object->uip); + dst_object->cred = curthread->td_ucred; + crhold(dst_object->cred); *fork_charge += dst_object->charge; } else { - dst_object->uip = dst_entry->uip; - dst_entry->uip = NULL; + dst_object->cred = dst_entry->cred; + dst_entry->cred = NULL; } access = prot = dst_entry->protection; /* ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.c#24 (text+ko) ==== @@ -136,8 +136,8 @@ static void vmspace_zdtor(void *mem, int size, void *arg); #endif -#define ENTRY_CHARGED(e) ((e)->uip != NULL || \ - ((e)->object.vm_object != NULL && (e)->object.vm_object->uip != NULL && \ +#define ENTRY_CHARGED(e) ((e)->cred != NULL || \ + ((e)->object.vm_object != NULL && (e)->object.vm_object->cred != NULL && \ !((e)->eflags & MAP_ENTRY_NEEDS_COPY))) /* @@ -1111,7 +1111,7 @@ vm_map_entry_t prev_entry; vm_map_entry_t temp_entry; vm_eflags_t protoeflags; - struct uidinfo *uip; + struct ucred *cred; boolean_t charge_prev_obj; VM_MAP_ASSERT_LOCKED(map); @@ -1156,7 +1156,7 @@ if (cow & MAP_DISABLE_COREDUMP) protoeflags |= MAP_ENTRY_NOCOREDUMP; - uip = NULL; + cred = NULL; KASSERT((object != kmem_object && object != kernel_object) || ((object == kmem_object || object == kernel_object) && !(protoeflags & MAP_ENTRY_NEEDS_COPY)), @@ -1168,10 +1168,10 @@ if (!(cow & MAP_ACC_CHARGED) && !swap_reserve(end - start)) return (KERN_RESOURCE_SHORTAGE); KASSERT(object == NULL || (protoeflags & MAP_ENTRY_NEEDS_COPY) || - object->uip == NULL, + object->cred == NULL, ("OVERCOMMIT: vm_map_insert o %p", object)); - uip = curthread->td_ucred->cr_ruidinfo; - uihold(uip); + cred = curthread->td_ucred; + crhold(cred); if (object == NULL && !(protoeflags & MAP_ENTRY_NEEDS_COPY)) charge_prev_obj = TRUE; } @@ -1197,9 +1197,9 @@ (prev_entry->eflags == protoeflags) && (prev_entry->end == start) && (prev_entry->wired_count == 0) && - (prev_entry->uip == uip || + (prev_entry->cred == cred || (prev_entry->object.vm_object != NULL && - (prev_entry->object.vm_object->uip == uip))) && + (prev_entry->object.vm_object->cred == cred))) && vm_object_coalesce(prev_entry->object.vm_object, prev_entry->offset, (vm_size_t)(prev_entry->end - prev_entry->start), @@ -1216,8 +1216,8 @@ prev_entry->end = end; vm_map_entry_resize_free(map, prev_entry); vm_map_simplify_entry(map, prev_entry); - if (uip != NULL) - uifree(uip); + if (cred != NULL) + crfree(cred); return (KERN_SUCCESS); } @@ -1231,11 +1231,11 @@ offset = prev_entry->offset + (prev_entry->end - prev_entry->start); vm_object_reference(object); - if (uip != NULL && object != NULL && object->uip != NULL && + if (cred != NULL && object != NULL && object->cred != NULL && !(prev_entry->eflags & MAP_ENTRY_NEEDS_COPY)) { /* Object already accounts for this uid. */ - uifree(uip); - uip = NULL; + crfree(cred); + cred = NULL; } } @@ -1251,7 +1251,7 @@ new_entry = vm_map_entry_create(map); new_entry->start = start; new_entry->end = end; - new_entry->uip = NULL; + new_entry->cred = NULL; new_entry->eflags = protoeflags; new_entry->object.vm_object = object; @@ -1263,9 +1263,9 @@ new_entry->max_protection = max; new_entry->wired_count = 0; - KASSERT(uip == NULL || !ENTRY_CHARGED(new_entry), + KASSERT(cred == NULL || !ENTRY_CHARGED(new_entry), ("OVERCOMMIT: vm_map_insert leaks vm_map %p", new_entry)); - new_entry->uip = uip; + new_entry->cred = cred; /* * Insert the new entry into the list @@ -1482,7 +1482,7 @@ (prev->max_protection == entry->max_protection) && (prev->inheritance == entry->inheritance) && (prev->wired_count == entry->wired_count) && - (prev->uip == entry->uip)) { + (prev->cred == entry->cred)) { vm_map_entry_unlink(map, prev); entry->start = prev->start; entry->offset = prev->offset; @@ -1500,8 +1500,8 @@ */ if (prev->object.vm_object) vm_object_deallocate(prev->object.vm_object); - if (prev->uip != NULL) - uifree(prev->uip); + if (prev->cred != NULL) + crfree(prev->cred); vm_map_entry_dispose(map, prev); } } @@ -1518,7 +1518,7 @@ (next->max_protection == entry->max_protection) && (next->inheritance == entry->inheritance) && (next->wired_count == entry->wired_count) && - (next->uip == entry->uip)) { + (next->cred == entry->cred)) { vm_map_entry_unlink(map, next); entry->end = next->end; vm_map_entry_resize_free(map, entry); @@ -1528,8 +1528,8 @@ */ if (next->object.vm_object) vm_object_deallocate(next->object.vm_object); - if (next->uip != NULL) - uifree(next->uip); + if (next->cred != NULL) + crfree(next->cred); vm_map_entry_dispose(map, next); } } @@ -1578,21 +1578,21 @@ atop(entry->end - entry->start)); entry->object.vm_object = object; entry->offset = 0; - if (entry->uip != NULL) { - object->uip = entry->uip; + if (entry->cred != NULL) { + object->cred = entry->cred; object->charge = entry->end - entry->start; - entry->uip = NULL; + entry->cred = NULL; } } else if (entry->object.vm_object != NULL && ((entry->eflags & MAP_ENTRY_NEEDS_COPY) == 0) && - entry->uip != NULL) { + entry->cred != NULL) { VM_OBJECT_LOCK(entry->object.vm_object); - KASSERT(entry->object.vm_object->uip == NULL, - ("OVERCOMMIT: vm_entry_clip_start: both uip e %p", entry)); - entry->object.vm_object->uip = entry->uip; + KASSERT(entry->object.vm_object->cred == NULL, + ("OVERCOMMIT: vm_entry_clip_start: both cred e %p", entry)); + entry->object.vm_object->cred = entry->cred; entry->object.vm_object->charge = entry->end - entry->start; VM_OBJECT_UNLOCK(entry->object.vm_object); - entry->uip = NULL; + entry->cred = NULL; } new_entry = vm_map_entry_create(map); @@ -1601,8 +1601,8 @@ new_entry->end = start; entry->offset += (start - entry->start); entry->start = start; - if (new_entry->uip != NULL) - uihold(entry->uip); + if (new_entry->cred != NULL) + crhold(entry->cred); vm_map_entry_link(map, entry->prev, new_entry); @@ -1648,21 +1648,21 @@ atop(entry->end - entry->start)); entry->object.vm_object = object; entry->offset = 0; - if (entry->uip != NULL) { - object->uip = entry->uip; + if (entry->cred != NULL) { + object->cred = entry->cred; object->charge = entry->end - entry->start; - entry->uip = NULL; + entry->cred = NULL; } } else if (entry->object.vm_object != NULL && ((entry->eflags & MAP_ENTRY_NEEDS_COPY) == 0) && - entry->uip != NULL) { + entry->cred != NULL) { VM_OBJECT_LOCK(entry->object.vm_object); - KASSERT(entry->object.vm_object->uip == NULL, - ("OVERCOMMIT: vm_entry_clip_end: both uip e %p", entry)); - entry->object.vm_object->uip = entry->uip; + KASSERT(entry->object.vm_object->cred == NULL, + ("OVERCOMMIT: vm_entry_clip_end: both cred e %p", entry)); + entry->object.vm_object->cred = entry->cred; entry->object.vm_object->charge = entry->end - entry->start; VM_OBJECT_UNLOCK(entry->object.vm_object); - entry->uip = NULL; + entry->cred = NULL; } /* @@ -1673,8 +1673,8 @@ new_entry->start = entry->end = end; new_entry->offset += (end - entry->start); - if (new_entry->uip != NULL) - uihold(entry->uip); + if (new_entry->cred != NULL) + crhold(entry->cred); vm_map_entry_link(map, entry, new_entry); @@ -1828,7 +1828,7 @@ { vm_map_entry_t current, entry; vm_object_t obj; - struct uidinfo *uip; + struct ucred *cred; vm_prot_t old_prot; vm_map_lock(map); @@ -1874,7 +1874,7 @@ continue; } - uip = curthread->td_ucred->cr_ruidinfo; + cred = curthread->td_ucred; obj = current->object.vm_object; if (obj == NULL || (current->eflags & MAP_ENTRY_NEEDS_COPY)) { @@ -1882,8 +1882,8 @@ vm_map_unlock(map); return (KERN_RESOURCE_SHORTAGE); } - uihold(uip); - current->uip = uip; + crhold(cred); + current->cred = cred; continue; } @@ -1906,8 +1906,8 @@ return (KERN_RESOURCE_SHORTAGE); } - uihold(uip); - obj->uip = uip; + crhold(cred); + obj->cred = cred; obj->charge = ptoa(obj->size); VM_OBJECT_UNLOCK(obj); } @@ -2656,16 +2656,16 @@ size = entry->end - entry->start; map->size -= size; - if (entry->uip != NULL) { - swap_release_by_uid(size, entry->uip); - uifree(entry->uip); + if (entry->cred != NULL) { + swap_release_by_cred(size, entry->cred); + crfree(entry->cred); } if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0 && (object != NULL)) { - KASSERT(entry->uip == NULL || object->uip == NULL || + KASSERT(entry->cred == NULL || object->cred == NULL || (entry->eflags & MAP_ENTRY_NEEDS_COPY), - ("OVERCOMMIT vm_map_entry_delete: both uip %p", entry)); + ("OVERCOMMIT vm_map_entry_delete: both cred %p", entry)); count = OFF_TO_IDX(size); offidxstart = OFF_TO_IDX(entry->offset); offidxend = offidxstart + count; @@ -2681,11 +2681,11 @@ offidxstart < object->size) { size1 = object->size; object->size = offidxstart; - if (object->uip != NULL) { + if (object->cred != NULL) { size1 -= object->size; KASSERT(object->charge >= ptoa(size1), ("vm_map_entry_delete: object->charge < 0")); - swap_release_by_uid(ptoa(size1), object->uip); + swap_release_by_cred(ptoa(size1), object->cred); object->charge -= ptoa(size1); } } @@ -2871,7 +2871,7 @@ { vm_object_t src_object; vm_offset_t size; - struct uidinfo *uip; + struct ucred *cred; int charged; VM_MAP_ASSERT_LOCKED(dst_map); @@ -2910,25 +2910,25 @@ } vm_object_reference_locked(src_object); vm_object_clear_flag(src_object, OBJ_ONEMAPPING); - if (src_entry->uip != NULL && + if (src_entry->cred != NULL && !(src_entry->eflags & MAP_ENTRY_NEEDS_COPY)) { - KASSERT(src_object->uip == NULL, - ("OVERCOMMIT: vm_map_copy_entry: uip %p", + KASSERT(src_object->cred == NULL, + ("OVERCOMMIT: vm_map_copy_entry: cred %p", src_object)); - src_object->uip = src_entry->uip; + src_object->cred = src_entry->cred; src_object->charge = size; } VM_OBJECT_UNLOCK(src_object); dst_entry->object.vm_object = src_object; if (charged) { - uip = curthread->td_ucred->cr_ruidinfo; - uihold(uip); - dst_entry->uip = uip; + cred = curthread->td_ucred; + crhold(cred); + dst_entry->cred = cred; *fork_charge += size; if (!(src_entry->eflags & MAP_ENTRY_NEEDS_COPY)) { - uihold(uip); - src_entry->uip = uip; + crhold(cred); + src_entry->cred = cred; *fork_charge += size; } } @@ -2938,9 +2938,9 @@ } else { dst_entry->object.vm_object = NULL; dst_entry->offset = 0; - if (src_entry->uip != NULL) { - dst_entry->uip = curthread->td_ucred->cr_ruidinfo; - uihold(dst_entry->uip); + if (src_entry->cred != NULL) { + dst_entry->cred = curthread->td_ucred; + crhold(dst_entry->cred); *fork_charge += size; } } @@ -3042,11 +3042,11 @@ atop(old_entry->end - old_entry->start)); old_entry->object.vm_object = object; old_entry->offset = 0; - if (old_entry->uip != NULL) { - object->uip = old_entry->uip; + if (old_entry->cred != NULL) { + object->cred = old_entry->cred; object->charge = old_entry->end - old_entry->start; - old_entry->uip = NULL; + old_entry->cred = NULL; } } @@ -3074,11 +3074,11 @@ } VM_OBJECT_LOCK(object); vm_object_clear_flag(object, OBJ_ONEMAPPING); - if (old_entry->uip != NULL) { - KASSERT(object->uip == NULL, ("vmspace_fork both uip")); - object->uip = old_entry->uip; + if (old_entry->cred != NULL) { + KASSERT(object->cred == NULL, ("vmspace_fork both cred")); + object->cred = old_entry->cred; object->charge = old_entry->end - old_entry->start; - old_entry->uip = NULL; + old_entry->cred = NULL; } VM_OBJECT_UNLOCK(object); @@ -3118,7 +3118,7 @@ MAP_ENTRY_IN_TRANSITION); new_entry->wired_count = 0; new_entry->object.vm_object = NULL; - new_entry->uip = NULL; + new_entry->cred = NULL; vm_map_entry_link(new_map, new_map->header.prev, new_entry); vmspace_map_entry_forked(vm1, vm2, new_entry); @@ -3251,7 +3251,7 @@ size_t grow_amount, max_grow; rlim_t stacklim, vmemlim; int is_procstack, rv; - struct uidinfo *uip; + struct ucred *cred; #ifdef CONTAINERS uint64_t limit; int error; @@ -3442,17 +3442,17 @@ } grow_amount = addr - stack_entry->end; - uip = stack_entry->uip; - if (uip == NULL && stack_entry->object.vm_object != NULL) - uip = stack_entry->object.vm_object->uip; - if (uip != NULL && !swap_reserve_by_uid(grow_amount, uip)) + cred = stack_entry->cred; + if (cred == NULL && stack_entry->object.vm_object != NULL) + cred = stack_entry->object.vm_object->cred; + if (cred != NULL && !swap_reserve_by_cred(grow_amount, cred)) rv = KERN_NO_SPACE; /* Grow the underlying object if applicable. */ else if (stack_entry->object.vm_object == NULL || vm_object_coalesce(stack_entry->object.vm_object, stack_entry->offset, (vm_size_t)(stack_entry->end - stack_entry->start), - (vm_size_t)grow_amount, uip != NULL)) { + (vm_size_t)grow_amount, cred != NULL)) { map->size += (addr - stack_entry->end); /* Update the current entry. */ stack_entry->end = addr; @@ -3543,7 +3543,7 @@ newvmspace = vmspace_fork(oldvmspace, &fork_charge); if (newvmspace == NULL) return (ENOMEM); - if (!swap_reserve_by_uid(fork_charge, p->p_ucred->cr_ruidinfo)) { + if (!swap_reserve_by_cred(fork_charge, p->p_ucred)) { vmspace_free(newvmspace); return (ENOMEM); } @@ -3593,7 +3593,7 @@ vm_prot_t prot; vm_prot_t fault_type = fault_typea; vm_object_t eobject; - struct uidinfo *uip; + struct ucred *cred; vm_ooffset_t size; RetryLookup:; @@ -3667,19 +3667,19 @@ if (vm_map_lock_upgrade(map)) goto RetryLookup; - if (entry->uip == NULL) { + if (entry->cred == NULL) { /* * The debugger owner is charged for * the memory. */ - uip = curthread->td_ucred->cr_ruidinfo; - uihold(uip); - if (!swap_reserve_by_uid(size, uip)) { - uifree(uip); + cred = curthread->td_ucred; + crhold(cred); + if (!swap_reserve_by_cred(size, cred)) { + crfree(cred); vm_map_unlock(map); return (KERN_RESOURCE_SHORTAGE); } - entry->uip = uip; + entry->cred = cred; } vm_object_shadow( &entry->object.vm_object, @@ -3687,19 +3687,19 @@ atop(size)); entry->eflags &= ~MAP_ENTRY_NEEDS_COPY; eobject = entry->object.vm_object; - if (eobject->uip != NULL) { + if (eobject->cred != NULL) { /* * The object was not shadowed. */ - swap_release_by_uid(size, entry->uip); - uifree(entry->uip); - entry->uip = NULL; - } else if (entry->uip != NULL) { + swap_release_by_cred(size, entry->cred); + crfree(entry->cred); + entry->cred = NULL; + } else if (entry->cred != NULL) { VM_OBJECT_LOCK(eobject); - eobject->uip = entry->uip; + eobject->cred = entry->cred; eobject->charge = size; VM_OBJECT_UNLOCK(eobject); - entry->uip = NULL; + entry->cred = NULL; } vm_map_lock_downgrade(map); @@ -3722,12 +3722,12 @@ entry->object.vm_object = vm_object_allocate(OBJT_DEFAULT, atop(size)); entry->offset = 0; - if (entry->uip != NULL) { + if (entry->cred != NULL) { VM_OBJECT_LOCK(entry->object.vm_object); - entry->object.vm_object->uip = entry->uip; + entry->object.vm_object->cred = entry->cred; entry->object.vm_object->charge = size; VM_OBJECT_UNLOCK(entry->object.vm_object); - entry->uip = NULL; + entry->cred = NULL; } vm_map_lock_downgrade(map); } @@ -3901,14 +3901,14 @@ db_indent -= 2; } } else { - if (entry->uip != NULL) - db_printf(", uip %d", entry->uip->ui_uid); + if (entry->cred != NULL) + db_printf(", ruid %d", entry->cred->cr_ruid); db_printf(", object=%p, offset=0x%jx", (void *)entry->object.vm_object, (uintmax_t)entry->offset); - if (entry->object.vm_object && entry->object.vm_object->uip) - db_printf(", obj uip %d charge %jx", - entry->object.vm_object->uip->ui_uid, + if (entry->object.vm_object && entry->object.vm_object->cred) + db_printf(", obj ruid %d charge %jx", + entry->object.vm_object->cred->cr_ruid, (uintmax_t)entry->object.vm_object->charge); if (entry->eflags & MAP_ENTRY_COW) db_printf(", copy (%s)", ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.h#7 (text+ko) ==== @@ -114,7 +114,7 @@ vm_inherit_t inheritance; /* inheritance */ int wired_count; /* can be paged if = 0 */ vm_pindex_t lastr; /* last read */ - struct uidinfo *uip; /* tmp storage for creator ref */ + struct ucred *cred; /* tmp storage for creator ref */ }; #define MAP_ENTRY_NOSYNC 0x0001 ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_object.c#11 (text+ko) ==== @@ -213,7 +213,7 @@ object->ref_count = 1; object->memattr = VM_MEMATTR_DEFAULT; object->flags = 0; - object->uip = NULL; + object->cred = NULL; object->charge = 0; if ((object->type == OBJT_DEFAULT) || (object->type == OBJT_SWAP)) object->flags = OBJ_ONEMAPPING; @@ -635,15 +635,15 @@ /* * Release the allocation charge. */ - if (object->uip != NULL) { + if (object->cred != NULL) { KASSERT(object->type == OBJT_DEFAULT || object->type == OBJT_SWAP, - ("vm_object_terminate: non-swap obj %p has uip", + ("vm_object_terminate: non-swap obj %p has cred", object)); - swap_release_by_uid(object->charge, object->uip); + swap_release_by_cred(object->charge, object->cred); object->charge = 0; - uifree(object->uip); - object->uip = NULL; + crfree(object->cred); + object->cred = NULL; } /* @@ -1268,9 +1268,9 @@ orig_object->backing_object_offset + entry->offset; new_object->backing_object = source; } - if (orig_object->uip != NULL) { - new_object->uip = orig_object->uip; - uihold(orig_object->uip); + if (orig_object->cred != NULL) { + new_object->cred = orig_object->cred; + crhold(orig_object->cred); new_object->charge = ptoa(size); KASSERT(orig_object->charge >= ptoa(size), ("orig_object->charge < 0")); @@ -1953,20 +1953,20 @@ /* * Account for the charge. */ - if (prev_object->uip != NULL) { + if (prev_object->cred != NULL) { /* * If prev_object was charged, then this mapping, * althought not charged now, may become writable - * later. Non-NULL uip in the object would prevent + * later. Non-NULL cred in the object would prevent * swap reservation during enabling of the write * access, so reserve swap now. Failed reservation * cause allocation of the separate object for the map * entry, and swap reservation for this entry is * managed in appropriate time. */ - if (!reserved && !swap_reserve_by_uid(ptoa(next_size), - prev_object->uip)) { + if (!reserved && !swap_reserve_by_cred(ptoa(next_size), + prev_object->cred)) { return (FALSE); } prev_object->charge += ptoa(next_size); @@ -1984,7 +1984,7 @@ swap_pager_freespace(prev_object, next_pindex, next_size); #if 0 - if (prev_object->uip != NULL) { + if (prev_object->cred != NULL) { KASSERT(prev_object->charge >= ptoa(prev_object->size - next_pindex), ("object %p overcharged 1 %jx %jx", prev_object, @@ -2136,10 +2136,10 @@ return; db_iprintf( - "Object %p: type=%d, size=0x%jx, res=%d, ref=%d, flags=0x%x uip %d charge %jx\n", + "Object %p: type=%d, size=0x%jx, res=%d, ref=%d, flags=0x%x ruid %d charge %jx\n", object, (int)object->type, (uintmax_t)object->size, object->resident_page_count, object->ref_count, object->flags, - object->uip ? object->uip->ui_uid : -1, (uintmax_t)object->charge); + object->cred ? object->cred->cr_ruid : -1, (uintmax_t)object->charge); db_iprintf(" sref=%d, backing_object(%d)=(%p)+0x%jx\n", object->shadow_count, object->backing_object ? object->backing_object->ref_count : 0, ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_object.h#7 (text+ko) ==== @@ -143,7 +143,7 @@ int swp_bcount; } swp; } un_pager; - struct uidinfo *uip; + struct ucred *cred; vm_ooffset_t charge; }; From owner-p4-projects@FreeBSD.ORG Sat Nov 13 15:41:28 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 72484106567A; Sat, 13 Nov 2010 15:41: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 1C894106564A for ; Sat, 13 Nov 2010 15:41:28 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 075258FC13 for ; Sat, 13 Nov 2010 15:41:28 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oADFfRMI079557 for ; Sat, 13 Nov 2010 15:41:27 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oADFfR6u079554 for perforce@freebsd.org; Sat, 13 Nov 2010 15:41:27 GMT (envelope-from trasz@freebsd.org) Date: Sat, 13 Nov 2010 15:41:27 GMT Message-Id: <201011131541.oADFfR6u079554@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185740 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Nov 2010 15:41:28 -0000 http://p4web.freebsd.org/@@185740?ac=10 Change 185740 by trasz@trasz_victim on 2010/11/13 15:40:27 Rework RUSAGE_SWAP accounting to use newly added rusage_sub_cred(). Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#33 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/container.h#15 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#12 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.c#25 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#17 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#33 (text+ko) ==== @@ -36,9 +36,11 @@ #include #include +#include #include #include #include +#include #include #include #include @@ -64,9 +66,11 @@ SDT_PROVIDER_DEFINE(container); SDT_PROBE_DEFINE3(container, kernel, rusage, add, add, "struct proc *", "int", "uint64_t"); SDT_PROBE_DEFINE3(container, kernel, rusage, add_failure, add-failure, "struct proc *", "int", "uint64_t"); +SDT_PROBE_DEFINE3(container, kernel, rusage, add_force, add-force, "struct proc *", "int", "uint64_t"); SDT_PROBE_DEFINE3(container, kernel, rusage, set, set, "struct proc *", "int", "uint64_t"); SDT_PROBE_DEFINE3(container, kernel, rusage, set_failure, set-failure, "struct proc *", "int", "uint64_t"); SDT_PROBE_DEFINE3(container, kernel, rusage, sub, sub, "struct proc *", "int", "uint64_t"); +SDT_PROBE_DEFINE3(container, kernel, rusage, sub_cred, sub-cred, "struct ucred *", "int", "uint64_t"); SDT_PROBE_DEFINE1(container, kernel, container, create, create, "struct container *"); SDT_PROBE_DEFINE1(container, kernel, container, destroy, destroy, "struct container *"); SDT_PROBE_DEFINE2(container, kernel, container, join, join, "struct container *", "struct container *"); @@ -120,6 +124,18 @@ } static int +container_resource_sloppy(int resource) +{ + + switch (resource) { + case RUSAGE_SWAP: + return (1); + default: + return (0); + } +} + +static int container_add(struct container *dest, const struct container *src) { int i, error; @@ -169,14 +185,19 @@ * Update resource usage in dest. */ for (i = 0; i <= RUSAGE_MAX; i++) { - KASSERT(dest->c_resources[i] >= 0, - ("resource usage propagation meltdown: dest < 0")); - KASSERT(src->c_resources[i] >= 0, - ("resource usage propagation meltdown: src < 0")); - KASSERT(src->c_resources[i] <= dest->c_resources[i], - ("resource usage propagation meltdown: src > dest")); - if (container_resource_reclaimable(i)) + if (!container_resource_sloppy(i)) { + KASSERT(dest->c_resources[i] >= 0, + ("resource usage propagation meltdown: dest < 0")); + KASSERT(src->c_resources[i] >= 0, + ("resource usage propagation meltdown: src < 0")); + KASSERT(src->c_resources[i] <= dest->c_resources[i], + ("resource usage propagation meltdown: src > dest")); + } + if (container_resource_reclaimable(i)) { dest->c_resources[i] -= src->c_resources[i]; + if (container_resource_sloppy(i) && dest->c_resources[i] < 0) + dest->c_resources[i] = 0; + } } /* @@ -267,7 +288,7 @@ for (i = 0; i <= RUSAGE_MAX; i++) KASSERT(container->c_resources[i] == 0, - ("container->c_resources[%d] != NULL", i)); + ("container->c_resources[%d] != 0", i)); for (i = 0; i <= CONTAINER_PARENTS_MAX; i++) KASSERT(container->c_parents[i] == NULL, ("container->c_parents[%d] != NULL", i)); @@ -284,6 +305,8 @@ KASSERT(container != NULL, ("NULL container")); for (i = 0; i <= RUSAGE_MAX; i++) { + if (container_resource_sloppy(i)) + continue; KASSERT(container->c_resources[i] == 0 || !container_resource_reclaimable(i), ("destroying non-empty container: " @@ -328,6 +351,8 @@ continue; container_assert(parent); for (resource = 0; resource <= RUSAGE_MAX; resource++) { + if (container_resource_sloppy(resource)) + continue; KASSERT(parent->c_resources[resource] >= container->c_resources[resource], ("resource usage propagation meltdown: child > parent")); @@ -351,6 +376,9 @@ KASSERT(container != NULL, ("NULL container")); container->c_resources[resource] += amount; + if (container_resource_sloppy(resource) && container->c_resources[resource] < 0) + container->c_resources[resource] = 0; + for (i = 0; i <= CONTAINER_PARENTS_MAX; i++) { if (container->c_parents[i] == NULL) continue; @@ -395,6 +423,26 @@ return (0); } +/* + * Increase allocation of 'resource' by 'amount' for process 'p'. + */ +void +rusage_add_force(struct proc *p, int resource, uint64_t amount) +{ + + if (p->p_flag & P_SYSTEM) + return; + + SDT_PROBE(container, kernel, rusage, add_force, p, resource, amount, 0, 0); + + KASSERT(amount > 0, ("rusage_add_force: invalid amount for resource %d: %ju", + resource, amount)); + + mtx_lock(&container_lock); + container_alloc_resource(&p->p_container, resource, amount); + mtx_unlock(&container_lock); +} + static int rusage_set_locked(struct proc *p, int resource, uint64_t amount) { @@ -494,6 +542,29 @@ } /* + * Decrease allocation of 'resource' by 'amount' for credential 'cred'. + */ +void +rusage_sub_cred(struct ucred *cred, int resource, uint64_t amount) +{ + + SDT_PROBE(container, kernel, rusage, sub_cred, cred, resource, amount, 0, 0); + + KASSERT(amount > 0, ("rusage_sub_cred: invalid amount for resource %d: %ju", + resource, amount)); + KASSERT(container_resource_reclaimable(resource), + ("rusage_sub_cred: called for non-reclaimable resource %d", resource)); + KASSERT(container_resource_sloppy(resource), + ("rusage_sub_cred: called for non-sloppy resource %d", resource)); + + mtx_lock(&container_lock); + container_alloc_resource(&cred->cr_ruidinfo->ui_container, resource, -amount); + container_alloc_resource(&cred->cr_prison->pr_container, resource, -amount); + container_alloc_resource(&cred->cr_loginclass->lc_container, resource, -amount); + mtx_unlock(&container_lock); +} + +/* * Inherit resource usage information and containing containers * from the parent process. */ ==== //depot/projects/soc2009/trasz_limits/sys/sys/container.h#15 (text+ko) ==== @@ -38,6 +38,7 @@ struct proc; struct hrl_rule_link; +struct ucred; /* * Resource containers. @@ -105,8 +106,10 @@ }; int rusage_add(struct proc *p, int resource, uint64_t amount); +void rusage_add_force(struct proc *p, int resource, uint64_t amount); int rusage_set(struct proc *p, int resource, uint64_t amount); void rusage_sub(struct proc *p, int resource, uint64_t amount); +void rusage_sub_cred(struct ucred *cred, int resource, uint64_t amount); uint64_t rusage_get_limit(struct proc *p, int resource); void container_create(struct container *container); ==== //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#12 (text+ko) ==== @@ -246,6 +246,10 @@ swap_reserved += incr; mtx_unlock(&sw_dev_mtx); +#ifdef CONTAINERS + rusage_add_force(curproc, RUSAGE_SWAP, incr); +#endif + uip = curthread->td_ucred->cr_ruidinfo; PROC_LOCK(curproc); UIDINFO_VMSIZE_LOCK(uip); @@ -259,9 +263,6 @@ { struct ucred *cred; -#ifdef CONTAINERS - rusage_sub(curproc, RUSAGE_SWAP, decr); -#endif PROC_LOCK(curproc); cred = curthread->td_ucred; swap_release_by_cred(decr, cred); @@ -287,6 +288,10 @@ printf("negative vmsize for uid = %d\n", uip->ui_uid); uip->ui_vmsize -= decr; UIDINFO_VMSIZE_UNLOCK(uip); + +#ifdef CONTAINERS + rusage_sub_cred(cred, RUSAGE_SWAP, decr); +#endif } static void swapdev_strategy(struct buf *, struct swdevt *sw); ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.c#25 (text+ko) ==== @@ -322,7 +322,6 @@ rusage_set(p, RUSAGE_RSS, 0); rusage_set(p, RUSAGE_MEMLOCK, 0); rusage_set(p, RUSAGE_VMEM, 0); - rusage_set(p, RUSAGE_SWAP, 0); } #endif ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#17 (text+ko) ==== @@ -1712,21 +1712,6 @@ size = vmspace_resident_count(vm); rusage_set(p, RUSAGE_RSS, IDX_TO_OFF(size)); } - - /* - * This is the ugly (and temporary, hopefully) part - * of dealing with RUSAGE_SWAP. Basically, we increase - * swap counters in the proper place, and decrease them - * here. Doing it properly will require adding either - * proc or ucred pointer to vm objects; before I do that, - * I want to get a better feeling on how the memory - * management works. In other words, it's post-shm task. - */ - if (vm_map_trylock_read(&vm->vm_map)) { - size = vmspace_swap_count(vm); - vm_map_unlock_read(&vm->vm_map); - rusage_set(p, RUSAGE_SWAP, IDX_TO_OFF(size)); - } #endif vmspace_free(vm); } From owner-p4-projects@FreeBSD.ORG Sat Nov 13 16:08:54 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BE98810656AA; Sat, 13 Nov 2010 16:08: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 8103F1065694 for ; Sat, 13 Nov 2010 16:08:54 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 52E1F8FC32 for ; Sat, 13 Nov 2010 16:08:54 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oADG8sJc083404 for ; Sat, 13 Nov 2010 16:08:54 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oADG8sPM083401 for perforce@freebsd.org; Sat, 13 Nov 2010 16:08:54 GMT (envelope-from trasz@freebsd.org) Date: Sat, 13 Nov 2010 16:08:54 GMT Message-Id: <201011131608.oADG8sPM083401@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185741 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Nov 2010 16:08:55 -0000 http://p4web.freebsd.org/@@185741?ac=10 Change 185741 by trasz@trasz_victim on 2010/11/13 16:08:35 Whoops, fix an obvious accounting bug. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#34 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#34 (text+ko) ==== @@ -100,6 +100,7 @@ case RUSAGE_CORE: case RUSAGE_MEMLOCK: case RUSAGE_NPROC: + case RUSAGE_SWAP: case RUSAGE_NTHR: case RUSAGE_WALLCLOCK: case RUSAGE_PCTCPU: From owner-p4-projects@FreeBSD.ORG Sat Nov 13 17:19:12 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DFCCC1065674; Sat, 13 Nov 2010 17:19: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 A210E1065672 for ; Sat, 13 Nov 2010 17:19:11 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 8CF668FC08 for ; Sat, 13 Nov 2010 17:19:11 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oADHJB4i098408 for ; Sat, 13 Nov 2010 17:19:11 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oADHJB1m098405 for perforce@freebsd.org; Sat, 13 Nov 2010 17:19:11 GMT (envelope-from dforsyth@FreeBSD.org) Date: Sat, 13 Nov 2010 17:19:11 GMT Message-Id: <201011131719.oADHJB1m098405@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185742 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Nov 2010 17:19:12 -0000 http://p4web.freebsd.org/@@185742?ac=10 Change 185742 by dforsyth@skunk on 2010/11/13 17:18:40 Add a bunch of finish functions for lists. Affected files ... .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.c#3 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.h#3 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.c#11 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.h#8 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/depend.c#5 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/depend.h#5 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/file.c#6 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/file.h#6 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#11 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.h#10 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.c#13 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#13 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#6 edit .. //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_info/pkg_info.c#9 edit Differences ... ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.c#3 (text+ko) ==== @@ -17,6 +17,32 @@ free(c); } +int +pkg_conflict_finish(struct pkg_conflict *c) +{ + pkg_conflict_release(c); + return (PKG_OK); +} + +int +pkg_conflict_list_finish(struct pkg_conflict_list *conflicts) +{ + struct pkg_conflict *c; + struct pkg_conflict *nc; + + c = TAILQ_FIRST(conflicts); + while (c != NULL) { + nc = TAILQ_NEXT(c, next); + if (pkg_conflict_finish(c) != PKG_OK) + return (PKG_NOT_OK); + c = nc; + } + + free(conflicts); + + return (PKG_OK); +} + void _pkg_conflict_set_expr(struct pkg_conflict *conflict, const char *expr) { ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.h#3 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.c#11 (text+ko) ==== @@ -49,22 +49,24 @@ /* TODO: NULL out callback pointers. */ db->open = fbsd_directorydb_open; db->close = fbsd_directorydb_close; - db->all = fbsd_directorydb_all; + db->all = fbsd_directorydb_pkgs; db->get = fbsd_directorydb_get; return (db); } +/* + * Finish does a commit before close. Close does not. + */ int pkg_db_finish(struct pkg_db *db) { - /* Close if the db is open. */ - if (db->internal != NULL) { - if (pkg_db_close(db) != PKG_OK) { - warnx("Could not close pkg_db (%s)\n", db->path); - return (PKG_NOT_OK); - } - } + /* + * If the db is actually open, we need to call the internal finish + * function so that changes are commited. + */ + if (db->internal != NULL) + if (db->finish(db) != PKG_OK) return (PKG_NOT_OK); free(db); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.h#8 (text+ko) ==== @@ -22,6 +22,7 @@ const char *); int (*close) (struct pkg_db *); int (*contains) (struct pkg_db *, const char *); + int (*finish) (struct pkg_db *); int (*get) (struct pkg_db *, struct pkg *, const char *); struct pkg_list *(*all) (struct pkg_db *); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/depend.c#5 (text+ko) ==== @@ -17,6 +17,32 @@ free(d); } +int +pkg_depend_finish(struct pkg_depend *d) +{ + pkg_depend_release(d); + return (PKG_OK); +} + +int +pkg_depend_list_finish(struct pkg_depend_list *depends) +{ + struct pkg_depend *d; + struct pkg_depend *nd; + + d = TAILQ_FIRST(depends); + while (d != NULL) { + nd = TAILQ_NEXT(d, next); + if (pkg_depend_finish(d) != PKG_OK) + return (PKG_NOT_OK); + d = nd; + } + + free(depends); + + return (PKG_OK); +} + const char * pkg_depend_name(struct pkg_depend *dep) { ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/depend.h#5 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/file.c#6 (text+ko) ==== @@ -20,6 +20,32 @@ free(file); } +int +pkg_file_finish(struct pkg_file *file) +{ + pkg_file_release(file); + return (PKG_OK); +} + +int +pkg_file_list_finish(struct pkg_file_list *files) +{ + struct pkg_file *f; + struct pkg_file *nf; + + f = TAILQ_FIRST(files); + while (f != NULL) { + nf = TAILQ_NEXT(f, next); + if (pkg_file_finish(f) != PKG_NOT_OK) + return (PKG_NOT_OK); + f = nf; + } + + free(files); + + return (PKG_OK); +} + const char * pkg_file_prefix(struct pkg_file *file) { ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/file.h#6 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#11 (text+ko) ==== @@ -63,7 +63,7 @@ static int fbsd_directorydb_read_pkg(struct _directorydb *, struct pkg *, uint32_t); -static int fbsd_directorydb_finish(struct pkg *); +static int fbsd_directorydb_pkg_finish(struct pkg *); static char *read_file(const char *); static void fbsd_directorydb_pkg_setup(struct pkg_db *, struct pkg *, const char *); @@ -163,7 +163,6 @@ pkg->read_description = fbsd_directorydb_read_description; - pkg->conflicts = NULL; pkg->depends = NULL; pkg->files = NULL; @@ -173,7 +172,7 @@ pkg->add_conflict = fbsd_directorydb_add_conflict; pkg->add_file = fbsd_directorydb_add_file; - pkg->finish = fbsd_directorydb_finish; + pkg->finish = fbsd_directorydb_pkg_finish; } static int @@ -189,7 +188,7 @@ } struct pkg_list * -fbsd_directorydb_all(struct pkg_db *db) +fbsd_directorydb_pkgs(struct pkg_db *db) { struct _directorydb *d; FTS *ftsp; @@ -361,7 +360,7 @@ } int -fbsd_directorydb_finish(struct pkg *pkg) +fbsd_directorydb_pkg_finish(struct pkg *pkg) { const char *key; struct pkg_db *db; ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.h#10 (text+ko) ==== @@ -6,16 +6,14 @@ #ifndef __PKGDB_DIRECTORYDB_H__ #define __PKGDB_DIRECTORYDB_H__ -int fbsd_directorydb_add(struct pkg_db *, struct pkg *, - const char *, const char *, const char *, const char *); +int fbsd_directorydb_add(struct pkg_db *, struct pkg *, const char *, + const char *, const char *, const char *); /* Test if a key exists. */ -int fbsd_directorydb_contains(struct pkg_db *, - const char *); +int fbsd_directorydb_contains(struct pkg_db *, const char *); /* Populates a pkg with the value from key. */ -int fbsd_directorydb_get(struct pkg_db *, struct pkg *, - const char *); +int fbsd_directorydb_get(struct pkg_db *, struct pkg *, const char *); int fbsd_directorydb_delete(struct pkg_db *, struct pkg *); @@ -25,11 +23,13 @@ /* Connect. */ int fbsd_directorydb_open(struct pkg_db *, const char *); +int fbsd_directorydb_finish(struct pkg_db *); + /* Quit (nocommit). */ int fbsd_directorydb_close(struct pkg_db *); /* Returns a pkg_list of all the packages in a database. */ -struct pkg_list *fbsd_directorydb_all(struct pkg_db *); +struct pkg_list *fbsd_directorydb_pkgs(struct pkg_db *); /* Returns a newly created file in a package. */ struct pkg_file *fbsd_directorydb_add_file(struct pkg *, const char *, ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.c#13 (text+ko) ==== @@ -47,42 +47,19 @@ void pkg_release(struct pkg *pkg) { - struct pkg_conflict *c, *nc; - struct pkg_depend *d, *nd; - struct pkg_file *f, *nf; + if (pkg->conflicts != NULL) pkg_conflict_list_finish(pkg->conflicts); - if (pkg->conflicts != NULL) { - /* Do tailq deletion. */ - c = TAILQ_FIRST(pkg->conflicts); - while (c != NULL) { - nc = TAILQ_NEXT(c, next); - pkg_conflict_release(c); - c = nc; - } - free(pkg->conflicts); - } + if (pkg->depends != NULL) pkg_depend_list_finish(pkg->depends); - if (pkg->depends != NULL) { - d = TAILQ_FIRST(pkg->depends); - while (d != NULL) { - nd = TAILQ_NEXT(d, next); - pkg_depend_release(d); - d = nd; - } - free(pkg->depends); - } + if (pkg->files != NULL) pkg_file_list_finish(pkg->files); - if (pkg->files != NULL) { - f = TAILQ_FIRST(pkg->files); - while (f != NULL) { - nf = TAILQ_NEXT(f, next); - pkg_file_release(f); - f = nf; - } - free(pkg->files); - } + free(pkg); +} - free(pkg); +const char * +pkg_key(struct pkg *pkg) +{ + return (pkg->key); } /* Get the origin (fbsd ports) of the package. */ @@ -171,6 +148,11 @@ { if (pkg->files == NULL) pkg->read_files(pkg); + /* + * XXX: These *_list functions should actually return copies of the pkg + * internal lists, I think. That or they're going to need to be const + * references... + */ return (pkg->files); } ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#13 (text+ko) ==== @@ -73,6 +73,12 @@ int pkg_list_finish(struct pkg_list *); /* + * Assuming this is a keyval db, get the key for this package (defaults to the + * name of the package. + */ +const char *pkg_key(struct pkg *); + +/* * Retrieve the name of a package. */ const char *pkg_name(struct pkg *); @@ -92,6 +98,10 @@ struct pkg_file_list *pkg_files(struct pkg *); +int pkg_file_finish(struct pkg_file *); + +int pkg_file_list_finish(struct pkg_file_list *); + struct pkg_file *pkg_add_file(struct pkg *, const char *, const char *, int); @@ -101,6 +111,10 @@ struct pkg_depend_list *pkg_depends(struct pkg *); +int pkg_depend_finish(struct pkg_depend *); + +int pkg_depend_list_finish(struct pkg_depend_list *); + struct pkg_depend *pkg_add_depend(struct pkg *, const char *, const char *); @@ -109,6 +123,10 @@ struct pkg_conflict_list *pkg_conflicts(struct pkg *); +int pkg_conflict_finish(struct pkg_conflict *); + +int pkg_conflict_list_finish(struct pkg_conflict_list *); + struct pkg_conflict *pkg_add_conflict(struct pkg *, const char *, const char *); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#6 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_info/pkg_info.c#9 (text+ko) ==== @@ -420,8 +420,8 @@ pkg_name(pkg)); } } - - // pkg_file_list_release(files); + + // pkg_file_list_finish(files); } } else if (_c->lookup_origin != NULL) { if (!_c->quiet) @@ -468,8 +468,12 @@ } } + /* This will also _finish any lists we have out. Not sure how I feel + * about that, because it might be confusing to the client. Look into + * copying the lists for the _list functions. */ pkg_list_finish(pkgs); - pkg_db_finish(db); + /* This is a read-only app, so just close. */ + pkg_db_close(db); return (r); } @@ -553,7 +557,12 @@ struct pkg_file *file; if (FLAGGED(_c->show_flags, SHOW_INDEX)) - printf("%-19s %s\n", pkg_name(pkg), pkg_comment(pkg)); + /* + * This is a case where we only need the name of this package + * and nothing else from the manifest, so let's cheat and use + * the key, which is name for fbsd_directorydb. + */ + printf("%-19s %s\n", pkg_key(pkg), pkg_comment(pkg)); else { if (!_c->quiet) printf("%sInformation for %s:\n\n", _c->info_prefix, @@ -580,6 +589,8 @@ "Conflicts %s\n"), pkg_conflict_expr(conflict)); } + + // pkg_conflict_list_finish(conflicts); } if (_c->show_flags & SHOW_DEPEND) { @@ -595,6 +606,8 @@ "\tdependency origin: %s\n"), pkg_depend_origin(depend)); } + + // pkg_depend_list_finish(depends); /* Separator. */ // printf("\n"); } @@ -675,6 +688,8 @@ printf("%s/%s\n", last_prefix, pkg_file_pathname(file)); } + + // pkg_file_list_finish(files); } if (_c->show_flags & SHOW_SIZE) {} @@ -699,6 +714,8 @@ pkg_file_prefix(file), pkg_file_pathname(file)); } + + // pkg_file_list_finish(files); } if (_c->show_flags & SHOW_ORIGIN) { From owner-p4-projects@FreeBSD.ORG Sat Nov 13 19:29:42 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D05B510656C9; Sat, 13 Nov 2010 19:29: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 7A4061065702 for ; Sat, 13 Nov 2010 19:29:41 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 5E4348FC19 for ; Sat, 13 Nov 2010 19:29:41 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oADJTfcC025153 for ; Sat, 13 Nov 2010 19:29:41 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oADJTfKm025150 for perforce@freebsd.org; Sat, 13 Nov 2010 19:29:41 GMT (envelope-from dforsyth@FreeBSD.org) Date: Sat, 13 Nov 2010 19:29:41 GMT Message-Id: <201011131929.oADJTfKm025150@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185747 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Nov 2010 19:29:42 -0000 http://p4web.freebsd.org/@@185747?ac=10 Change 185747 by dforsyth@skunk on 2010/11/13 19:28:35 db boilerplate Affected files ... .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.c#12 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#12 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.h#11 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.c#14 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#14 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_internal.h#9 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#7 edit .. //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_info/pkg_info.c#10 edit Differences ... ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/database.c#12 (text+ko) ==== @@ -20,6 +20,8 @@ #include "freebsd_database_directorydb.h" +static int _pkg_db_release(struct pkg_db *); + /* * Verify the magic value in a package database. If there is a mismatch, crash * the client application. @@ -32,6 +34,13 @@ } } +static int +_pkg_db_release(struct pkg_db *db) +{ + free(db); + return (PKG_OK); +} + struct pkg_db * pkg_db_create(void) { @@ -68,8 +77,17 @@ if (db->internal != NULL) if (db->finish(db) != PKG_OK) return (PKG_NOT_OK); - free(db); + _pkg_db_release(db); + return (PKG_OK); +} + +int +pkg_db_release(struct pkg_db *db) +{ + if (db->internal != NULL) + if (db->close(db) != PKG_OK) return (PKG_NOT_OK); + _pkg_db_release(db); return (PKG_OK); } @@ -121,9 +139,10 @@ int pkg_db_close(struct pkg_db *db) { - if (db->internal) return (db->close(db)); - - return (PKG_NOT_OK); + if (db->internal) + if (db->close(db) != PKG_OK) return (PKG_NOT_OK); + + return (PKG_OK); } struct pkg * @@ -132,6 +151,12 @@ { struct pkg *pkg; + /* + * XXX: This needs to be fixed. We can't be allocating some pkg objects + * here, and then allocating the list of pkg objects (for _pkgs) in the + * internal db. + */ + pkg = pkg_alloc(); if (pkg == NULL) { return (NULL); @@ -139,7 +164,7 @@ /* Do the add and set up pkg. */ if (db->add(db, pkg, name, origin, comment, description) != PKG_OK) { - pkg_release(pkg); + _pkg_release(pkg); return (NULL); } ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#12 (text+ko) ==== @@ -64,6 +64,7 @@ static int fbsd_directorydb_read_pkg(struct _directorydb *, struct pkg *, uint32_t); static int fbsd_directorydb_pkg_finish(struct pkg *); +static int fbsd_directorydb_pkg_release(struct pkg *); static char *read_file(const char *); static void fbsd_directorydb_pkg_setup(struct pkg_db *, struct pkg *, const char *); @@ -90,6 +91,14 @@ const char *, int); static int _fbsd_directorydb_resolve(const char *, int); +static int _directorydb_close_op(struct pkg_db *, int); + +static int fbsd_directorydb_resolve_all(struct _directorydb *, + int); + +static int ftsentcmp(const FTSENT *const *, + const FTSENT *const *); + #define PKG_DIRDB_MAGIC 0x11111111 #define DB_DIRDB_MAGIC 0x11111111 @@ -113,9 +122,60 @@ int fbsd_directorydb_close(struct pkg_db *db) { + return (_directorydb_close_op(db, 0)); +} + +int +fbsd_directorydb_finish(struct pkg_db *db) +{ + return (_directorydb_close_op(db, 1)); +} + +static int +_directorydb_close_op(struct pkg_db *db, int use_bak) +{ struct _directorydb *d = db->internal; + + if (fbsd_directorydb_resolve_all(d, use_bak) != PKG_OK) + return (PKG_NOT_OK); + free(d); - return (0); + db->internal = NULL; + + return (PKG_OK); +} + +static int +fbsd_directorydb_resolve_all(struct _directorydb *d, int use_bak) +{ + FTS *ftsp; + FTSENT *ftsent; + char *paths[2]; + + paths[0] = strdup(d->path); + paths[1] = NULL; + + ftsp = fts_open(paths, FTS_LOGICAL | FTS_NOCHDIR | FTS_NOSTAT, + ftsentcmp); + assert(ftsp != NULL); + + while ((ftsent = fts_read(ftsp)) != NULL) { + if (ftsent->fts_info != FTS_D || ftsent->fts_level != 1) + continue; + fts_set(ftsp, ftsent, FTS_SKIP); + + if (fbsd_directorydb_has_backup(d, ftsent->fts_name)) { + if (fbsd_directorydb_resolve(d, + ftsent->fts_name, use_bak) < 0) { + return (PKG_NOT_OK); + } + } + } + + fts_close(ftsp); + free(paths[0]); + + return (PKG_OK); } /* Open a "connection" to a directorydb. */ @@ -132,7 +192,6 @@ if (d == NULL) return (PKG_NOT_OK); strcpy(d->path, path); - printf("path: %s\n", d->path); db->magic = DB_DIRDB_MAGIC; @@ -147,6 +206,12 @@ pkg->magic = PKG_DIRDB_MAGIC; pkg->source = db; strcpy(pkg->key, key); + + /* + * Because of the nature of the freebsd package system, we can cheat + * here and set pkg->name to key. + */ + _pkg_set_name(pkg, key); /* Set up our callbacks. */ pkg->read_name = fbsd_directorydb_read_name; @@ -173,6 +238,7 @@ pkg->add_file = fbsd_directorydb_add_file; pkg->finish = fbsd_directorydb_pkg_finish; + pkg->release = fbsd_directorydb_pkg_release; } static int @@ -360,6 +426,22 @@ } int +fbsd_directorydb_pkg_release(struct pkg *pkg) +{ + struct pkg_db *db; + struct _directorydb *d; + + db = pkg->source; + d = db->internal; + + if (fbsd_directorydb_has_backup(d, pkg->key)) + if (fbsd_directorydb_resolve(d, pkg->key, 0) != PKG_OK) + return (PKG_NOT_OK); + + return (PKG_OK); +} + +int fbsd_directorydb_pkg_finish(struct pkg *pkg) { const char *key; @@ -375,8 +457,6 @@ if (fbsd_directorydb_has_backup(d, key)) fbsd_directorydb_resolve(d, key, 1); - pkg_release(pkg); - return (PKG_OK); } ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.h#11 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.c#14 (text+ko) ==== @@ -44,8 +44,8 @@ return (calloc(1, sizeof(struct pkg))); } -void -pkg_release(struct pkg *pkg) +int +_pkg_release(struct pkg *pkg) { if (pkg->conflicts != NULL) pkg_conflict_list_finish(pkg->conflicts); @@ -54,6 +54,8 @@ if (pkg->files != NULL) pkg_file_list_finish(pkg->files); free(pkg); + + return (PKG_OK); } const char * @@ -241,7 +243,23 @@ int pkg_finish(struct pkg *pkg) { - return (pkg->finish(pkg)); + if (pkg->finish(pkg) == PKG_OK) { + _pkg_release(pkg); + return (PKG_OK); + } + + return (PKG_NOT_OK); +} + +int +pkg_release(struct pkg *pkg) +{ + if (pkg->release(pkg) == PKG_OK) { + _pkg_release(pkg); + return (PKG_OK); + } + + return (PKG_NOT_OK); } int @@ -254,7 +272,7 @@ while (!TAILQ_EMPTY(pkgs)) { pkg = TAILQ_FIRST(pkgs); TAILQ_REMOVE(pkgs, pkg, next); - if (pkg->finish(pkg) != PKG_OK) { + if (pkg_finish(pkg) != PKG_OK) { /* finish failed, put pkg back at the head of the list * and return not_ok. */ TAILQ_INSERT_HEAD(pkgs, pkg, next); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#14 (text+ko) ==== @@ -39,11 +39,16 @@ int pkg_db_close(struct pkg_db *); /* - * Release a a pkg_db object, closing it if it's open. + * Release a a pkg_db object, closing it if it's open (sync). */ int pkg_db_finish(struct pkg_db *); /* + * Release a db object, closing if its open (no sync). + */ +int pkg_db_release(struct pkg_db *); + +/* * Return a list of all the packages in a database. */ struct pkg_list *pkg_db_pkgs(struct pkg_db *); @@ -70,6 +75,11 @@ */ int pkg_finish(struct pkg *); +/* + * Release the resources for a pkg, not syncing any additions to its source. + */ +int pkg_release(struct pkg *); + int pkg_list_finish(struct pkg_list *); /* ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_internal.h#9 (text+ko) ==== @@ -91,7 +91,7 @@ struct pkg *_pkg_create(uint32_t, void *); struct pkg *pkg_alloc(void); -void pkg_release(struct pkg *); +int _pkg_release(struct pkg *); void _pkg_set_name(struct pkg *, const char *); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#7 (text+ko) ==== @@ -72,6 +72,7 @@ const char *); int (*finish) (struct pkg *); + int (*release) (struct pkg *); int (*parse) (struct pkg *, char *, const char *); ==== //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_info/pkg_info.c#10 (text+ko) ==== @@ -474,6 +474,8 @@ pkg_list_finish(pkgs); /* This is a read-only app, so just close. */ pkg_db_close(db); + pkg_db_release(db); + return (r); } @@ -557,12 +559,7 @@ struct pkg_file *file; if (FLAGGED(_c->show_flags, SHOW_INDEX)) - /* - * This is a case where we only need the name of this package - * and nothing else from the manifest, so let's cheat and use - * the key, which is name for fbsd_directorydb. - */ - printf("%-19s %s\n", pkg_key(pkg), pkg_comment(pkg)); + printf("%-19s %s\n", pkg_name(pkg), pkg_comment(pkg)); else { if (!_c->quiet) printf("%sInformation for %s:\n\n", _c->info_prefix, From owner-p4-projects@FreeBSD.ORG Sat Nov 13 21:16:07 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 06AE9106566C; Sat, 13 Nov 2010 21:16: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 BD27A106564A for ; Sat, 13 Nov 2010 21:16:06 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A801E8FC08 for ; Sat, 13 Nov 2010 21:16:06 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oADLG6Yi048196 for ; Sat, 13 Nov 2010 21:16:06 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oADLG6Ox048193 for perforce@freebsd.org; Sat, 13 Nov 2010 21:16:06 GMT (envelope-from trasz@freebsd.org) Date: Sat, 13 Nov 2010 21:16:06 GMT Message-Id: <201011132116.oADLG6Ox048193@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185757 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Nov 2010 21:16:07 -0000 http://p4web.freebsd.org/@@185757?ac=10 Change 185757 by trasz@trasz_victim on 2010/11/13 21:15:06 Add socket buffer space accounting. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#35 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_sockbuf.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_socket.c#17 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_usrreq.c#8 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/container.h#16 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#35 (text+ko) ==== @@ -66,6 +66,7 @@ SDT_PROVIDER_DEFINE(container); SDT_PROBE_DEFINE3(container, kernel, rusage, add, add, "struct proc *", "int", "uint64_t"); SDT_PROBE_DEFINE3(container, kernel, rusage, add_failure, add-failure, "struct proc *", "int", "uint64_t"); +SDT_PROBE_DEFINE3(container, kernel, rusage, add_cred, add-cred, "struct ucred *", "int", "uint64_t"); SDT_PROBE_DEFINE3(container, kernel, rusage, add_force, add-force, "struct proc *", "int", "uint64_t"); SDT_PROBE_DEFINE3(container, kernel, rusage, set, set, "struct proc *", "int", "uint64_t"); SDT_PROBE_DEFINE3(container, kernel, rusage, set_failure, set-failure, "struct proc *", "int", "uint64_t"); @@ -100,6 +101,7 @@ case RUSAGE_CORE: case RUSAGE_MEMLOCK: case RUSAGE_NPROC: + case RUSAGE_SBSIZE: case RUSAGE_SWAP: case RUSAGE_NTHR: case RUSAGE_WALLCLOCK: @@ -129,6 +131,7 @@ { switch (resource) { + case RUSAGE_SBSIZE: case RUSAGE_SWAP: return (1); default: @@ -425,7 +428,30 @@ } /* - * Increase allocation of 'resource' by 'amount' for process 'p'. + * Increase allocation of 'resource' by 'amount' for credential 'cred'. Doesn't + * check for limits and never fails. + */ +void +rusage_add_cred(struct ucred *cred, int resource, uint64_t amount) +{ + + SDT_PROBE(container, kernel, rusage, add_cred, cred, resource, amount, 0, 0); + + KASSERT(amount > 0, ("rusage_add_cred: invalid amount for resource %d: %ju", + resource, amount)); + KASSERT(container_resource_sloppy(resource), + ("rusage_add_cred: called for non-sloppy resource %d", resource)); + + mtx_lock(&container_lock); + container_alloc_resource(&cred->cr_ruidinfo->ui_container, resource, amount); + container_alloc_resource(&cred->cr_prison->pr_container, resource, amount); + container_alloc_resource(&cred->cr_loginclass->lc_container, resource, amount); + mtx_unlock(&container_lock); +} + +/* + * Increase allocation of 'resource' by 'amount' for process 'p'. Doesn't check + * for limits and never fails. */ void rusage_add_force(struct proc *p, int resource, uint64_t amount) ==== //depot/projects/soc2009/trasz_limits/sys/kern/uipc_sockbuf.c#4 (text+ko) ==== @@ -36,6 +36,7 @@ #include #include /* for aio_swake proto */ +#include /* for aio_swake proto */ #include #include #include @@ -290,6 +291,9 @@ struct thread *td) { rlim_t sbsize_limit; +#ifdef CONTAINER + int error; +#endif SOCKBUF_LOCK_ASSERT(sb); @@ -308,9 +312,21 @@ PROC_UNLOCK(td->td_proc); } else sbsize_limit = RLIM_INFINITY; +#ifdef CONTAINER + if (td != NULL) { + error = rusage_add(td->td_proc, RUSAGE_SBSIZE, cc); + if (error) + return (0); + } else + rusage_add_cred(so->so_cred, RUSAGE_SBSIZE, cc); +#endif if (!chgsbsize(so->so_cred->cr_uidinfo, &sb->sb_hiwat, cc, - sbsize_limit)) + sbsize_limit)) { +#ifdef CONTAINER + rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE, cc); +#endif return (0); + } sb->sb_mbmax = min(cc * sb_efficiency, sb_max); if (sb->sb_lowat > sb->sb_hiwat) sb->sb_lowat = sb->sb_hiwat; @@ -337,6 +353,10 @@ { sbflush_internal(sb); +#ifdef CONTAINERS + if (sb->sb_hiwat != 0) + rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE, sb->sb_hiwat); +#endif (void)chgsbsize(so->so_cred->cr_uidinfo, &sb->sb_hiwat, 0, RLIM_INFINITY); sb->sb_mbmax = 0; ==== //depot/projects/soc2009/trasz_limits/sys/kern/uipc_socket.c#17 (text+ko) ==== @@ -104,6 +104,7 @@ #include #include +#include #include #include #include @@ -321,12 +322,22 @@ so->so_vnet->vnet_sockcnt--; #endif mtx_unlock(&so_global_mtx); - if (so->so_rcv.sb_hiwat) + if (so->so_rcv.sb_hiwat) { +#ifdef CONTAINERS + rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE, + so->so_rcv.sb_hiwat); +#endif (void)chgsbsize(so->so_cred->cr_uidinfo, &so->so_rcv.sb_hiwat, 0, RLIM_INFINITY); - if (so->so_snd.sb_hiwat) + } + if (so->so_snd.sb_hiwat) { +#ifdef CONTAINERS + rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE, + so->so_snd.sb_hiwat); +#endif (void)chgsbsize(so->so_cred->cr_uidinfo, &so->so_snd.sb_hiwat, 0, RLIM_INFINITY); + } #ifdef INET /* remove acccept filter if one is present. */ if (so->so_accf != NULL) ==== //depot/projects/soc2009/trasz_limits/sys/kern/uipc_usrreq.c#8 (text+ko) ==== @@ -62,6 +62,7 @@ #include "opt_ddb.h" #include +#include #include #include #include /* XXX must be before */ @@ -775,6 +776,9 @@ SOCKBUF_LOCK(&so2->so_snd); so2->so_snd.sb_mbmax += unp->unp_mbcnt - mbcnt; newhiwat = so2->so_snd.sb_hiwat + unp->unp_cc - sbcc; +#ifdef CONTAINERS + rusage_add_cred(so2->so_cred, RUSAGE_SBSIZE, newhiwat - so2->so_snd.sb_hiwat); +#endif (void)chgsbsize(so2->so_cred->cr_uidinfo, &so2->so_snd.sb_hiwat, newhiwat, RLIM_INFINITY); sowwakeup_locked(so2); @@ -950,6 +954,9 @@ SOCKBUF_LOCK(&so->so_snd); newhiwat = so->so_snd.sb_hiwat - (sbcc - unp2->unp_cc); +#ifdef CONTAINERS + rusage_add_cred(so->so_cred, RUSAGE_SBSIZE, newhiwat - so->so_snd.sb_hiwat); +#endif (void)chgsbsize(so->so_cred->cr_uidinfo, &so->so_snd.sb_hiwat, newhiwat, RLIM_INFINITY); so->so_snd.sb_mbmax -= mbcnt_delta; ==== //depot/projects/soc2009/trasz_limits/sys/sys/container.h#16 (text+ko) ==== @@ -106,6 +106,7 @@ }; int rusage_add(struct proc *p, int resource, uint64_t amount); +void rusage_add_cred(struct ucred *cred, int resource, uint64_t amount); void rusage_add_force(struct proc *p, int resource, uint64_t amount); int rusage_set(struct proc *p, int resource, uint64_t amount); void rusage_sub(struct proc *p, int resource, uint64_t amount); From owner-p4-projects@FreeBSD.ORG Sat Nov 13 21:57:51 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 68C0010656C6; Sat, 13 Nov 2010 21:57: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 2B32310656C3 for ; Sat, 13 Nov 2010 21:57:51 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id F12538FC1C for ; Sat, 13 Nov 2010 21:57:50 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oADLvoZk055797 for ; Sat, 13 Nov 2010 21:57:50 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oADLvoNc055794 for perforce@freebsd.org; Sat, 13 Nov 2010 21:57:50 GMT (envelope-from trasz@freebsd.org) Date: Sat, 13 Nov 2010 21:57:50 GMT Message-Id: <201011132157.oADLvoNc055794@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185759 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Nov 2010 21:57:51 -0000 http://p4web.freebsd.org/@@185759?ac=10 Change 185759 by trasz@trasz_victim on 2010/11/13 21:57:28 I think there is nothing wrong with allowing zero amount. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#36 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_sockbuf.c#5 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#36 (text+ko) ==== @@ -409,7 +409,7 @@ SDT_PROBE(container, kernel, rusage, add, p, resource, amount, 0, 0); - KASSERT(amount > 0, ("rusage_add: invalid amount for resource %d: %ju", + KASSERT(amount >= 0, ("rusage_add: invalid amount for resource %d: %ju", resource, amount)); mtx_lock(&container_lock); @@ -437,7 +437,7 @@ SDT_PROBE(container, kernel, rusage, add_cred, cred, resource, amount, 0, 0); - KASSERT(amount > 0, ("rusage_add_cred: invalid amount for resource %d: %ju", + KASSERT(amount >= 0, ("rusage_add_cred: invalid amount for resource %d: %ju", resource, amount)); KASSERT(container_resource_sloppy(resource), ("rusage_add_cred: called for non-sloppy resource %d", resource)); @@ -462,7 +462,7 @@ SDT_PROBE(container, kernel, rusage, add_force, p, resource, amount, 0, 0); - KASSERT(amount > 0, ("rusage_add_force: invalid amount for resource %d: %ju", + KASSERT(amount >= 0, ("rusage_add_force: invalid amount for resource %d: %ju", resource, amount)); mtx_lock(&container_lock); @@ -553,7 +553,7 @@ SDT_PROBE(container, kernel, rusage, sub, p, resource, amount, 0, 0); - KASSERT(amount > 0, ("rusage_sub: invalid amount for resource %d: %ju", + KASSERT(amount >= 0, ("rusage_sub: invalid amount for resource %d: %ju", resource, amount)); KASSERT(container_resource_reclaimable(resource), ("rusage_sub: called for non-reclaimable resource %d", resource)); @@ -577,7 +577,7 @@ SDT_PROBE(container, kernel, rusage, sub_cred, cred, resource, amount, 0, 0); - KASSERT(amount > 0, ("rusage_sub_cred: invalid amount for resource %d: %ju", + KASSERT(amount >= 0, ("rusage_sub_cred: invalid amount for resource %d: %ju", resource, amount)); KASSERT(container_resource_reclaimable(resource), ("rusage_sub_cred: called for non-reclaimable resource %d", resource)); ==== //depot/projects/soc2009/trasz_limits/sys/kern/uipc_sockbuf.c#5 (text+ko) ==== @@ -354,8 +354,7 @@ sbflush_internal(sb); #ifdef CONTAINERS - if (sb->sb_hiwat != 0) - rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE, sb->sb_hiwat); + rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE, sb->sb_hiwat); #endif (void)chgsbsize(so->so_cred->cr_uidinfo, &sb->sb_hiwat, 0, RLIM_INFINITY);