From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 05:44:48 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 476C9300; Sun, 27 Jan 2013 05:44:48 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 1D66FE5; Sun, 27 Jan 2013 05:44:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R5ilVS006164; Sun, 27 Jan 2013 05:44:47 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R5ilpe006163; Sun, 27 Jan 2013 05:44:47 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270544.r0R5ilpe006163@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 05:44:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245958 - projects/portbuild/etc/rc.d X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 05:44:48 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 05:44:47 2013 New Revision: 245958 URL: http://svnweb.freebsd.org/changeset/base/245958 Log: Deorbit buildproxy. With zfs delegation, this path to privilege escalation is obsolete. Deleted: projects/portbuild/etc/rc.d/buildproxy From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 05:45:55 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id CB2A2427; Sun, 27 Jan 2013 05:45:55 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A4B62F1; Sun, 27 Jan 2013 05:45:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R5jtlX006353; Sun, 27 Jan 2013 05:45:55 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R5jtwM006352; Sun, 27 Jan 2013 05:45:55 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270545.r0R5jtwM006352@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 05:45:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245959 - projects/portbuild/tools X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 05:45:55 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 05:45:55 2013 New Revision: 245959 URL: http://svnweb.freebsd.org/changeset/base/245959 Log: Now folded into mkportbuild. Deleted: projects/portbuild/tools/zfsadmin From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 06:47:21 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id CE698EFA; Sun, 27 Jan 2013 06:47:21 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A241B241; Sun, 27 Jan 2013 06:47:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R6lK0q025664; Sun, 27 Jan 2013 06:47:20 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R6lKFF025663; Sun, 27 Jan 2013 06:47:20 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270647.r0R6lKFF025663@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 06:47:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245964 - projects/portbuild/admin X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 06:47:21 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 06:47:20 2013 New Revision: 245964 URL: http://svnweb.freebsd.org/changeset/base/245964 Log: A directory to hold things that user portbuild can no longer own, e.g., initial setup and vcs operations. This is a requirement of our security personnel. Added: projects/portbuild/admin/ From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 06:56:53 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 3DD7628E; Sun, 27 Jan 2013 06:56:53 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0F5D726C; Sun, 27 Jan 2013 06:56:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R6uqqx028713; Sun, 27 Jan 2013 06:56:52 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R6uqvl028712; Sun, 27 Jan 2013 06:56:52 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270656.r0R6uqvl028712@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 06:56:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245965 - projects/portbuild/scripts X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 06:56:53 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 06:56:52 2013 New Revision: 245965 URL: http://svnweb.freebsd.org/changeset/base/245965 Log: Deorbit buildproxy. Modified: projects/portbuild/scripts/build Modified: projects/portbuild/scripts/build ============================================================================== --- projects/portbuild/scripts/build Sun Jan 27 06:47:20 2013 (r245964) +++ projects/portbuild/scripts/build Sun Jan 27 06:56:52 2013 (r245965) @@ -11,8 +11,6 @@ pbd=${PORTBUILD_DATA:-/var/portbuild} # duplication. quoted_subdirs="'/src' '/ports' ''" -DISABLE_PROXY=1 - # XXX unused get_latest_snap() { snap=$1 @@ -510,22 +508,8 @@ proxy_root() { shift 5 args=$@ -if [ ! -z "${DISABLE_PROXY}" ]; then - eval "do_${cmd} ${arch} ${branch} ${buildid} ${builddir} ${args}" - error=$? -else - id=$(id -u) - if [ ${id} != "0" ]; then - ${pbc}/scripts/buildproxy-client "build ${cmd} ${arch} ${branch} ${buildid} ${args}" - error=$? - if [ ${error} -eq 254 ]; then - echo "Proxy error" - fi - else eval "do_${cmd} ${arch} ${branch} ${buildid} ${builddir} ${args}" error=$? - fi -fi exit ${error} } @@ -540,19 +524,8 @@ proxy_user() { shift 5 args=$@ -if [ ! -z "${DISABLE_PROXY}" ]; then - eval "do_${cmd} ${arch} ${branch} ${buildid} \"${builddir}\" ${args}" - error=$? -else - id=$(id -u) - if [ ${id} != "0" ]; then eval "do_${cmd} ${arch} ${branch} ${buildid} \"${builddir}\" ${args}" error=$? - else - su ${uid} -c "${pbc}/scripts/build ${cmd} ${arch} ${branch} ${buildid} \"${builddir}\" ${args}" - error=$? - fi -fi exit ${error} } From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 06:57:52 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 5B9DB3A8; Sun, 27 Jan 2013 06:57:52 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 1F8D1270; Sun, 27 Jan 2013 06:57:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R6vqEA028867; Sun, 27 Jan 2013 06:57:52 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R6vpcg028866; Sun, 27 Jan 2013 06:57:51 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270657.r0R6vpcg028866@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 06:57:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245966 - projects/portbuild/scripts X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 06:57:52 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 06:57:51 2013 New Revision: 245966 URL: http://svnweb.freebsd.org/changeset/base/245966 Log: Deorbit buildproxy. This was a privilege escalation needed to handle zfs operations, which have now been delegated. Deleted: projects/portbuild/scripts/buildproxy projects/portbuild/scripts/buildproxy-client From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 06:58:59 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 2FCE34C4; Sun, 27 Jan 2013 06:58:59 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0D40D278; Sun, 27 Jan 2013 06:58:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R6wwMP029040; Sun, 27 Jan 2013 06:58:58 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R6wwKO029039; Sun, 27 Jan 2013 06:58:58 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270658.r0R6wwKO029039@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 06:58:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245967 - projects/portbuild/scripts X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 06:58:59 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 06:58:58 2013 New Revision: 245967 URL: http://svnweb.freebsd.org/changeset/base/245967 Log: Scrub more relics of buildproxy. Modified: projects/portbuild/scripts/build Modified: projects/portbuild/scripts/build ============================================================================== --- projects/portbuild/scripts/build Sun Jan 27 06:57:51 2013 (r245966) +++ projects/portbuild/scripts/build Sun Jan 27 06:58:58 2013 (r245967) @@ -498,7 +498,7 @@ do_destroy() { } # Run a command as root if running as user -# Authentication and command validation is taken care of by buildproxy +# XXX this is a relic and needs to go away. proxy_root() { cmd=$1 arch=$2 @@ -515,6 +515,7 @@ proxy_root() { } # Run a command as the ${uid} user if root +# XXX this is a relic and needs to go away. proxy_user() { cmd=$1 arch=$2 From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 07:01:57 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 9DE515FA; Sun, 27 Jan 2013 07:01:57 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 624DA28E; Sun, 27 Jan 2013 07:01:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R71vc1031151; Sun, 27 Jan 2013 07:01:57 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R71vBn031150; Sun, 27 Jan 2013 07:01:57 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270701.r0R71vBn031150@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 07:01:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245968 - in projects/portbuild/admin: scripts tools X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:01:57 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 07:01:56 2013 New Revision: 245968 URL: http://svnweb.freebsd.org/changeset/base/245968 Log: New directories to hold code that may and shall not be modifiable by the portbuild user, according to new security directives. Added: projects/portbuild/admin/scripts/ projects/portbuild/admin/tools/ From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 07:09:30 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 85E65749; Sun, 27 Jan 2013 07:09:30 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 775B12AC; Sun, 27 Jan 2013 07:09:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R79Ufw032400; Sun, 27 Jan 2013 07:09:30 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R79UqM032399; Sun, 27 Jan 2013 07:09:30 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270709.r0R79UqM032399@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 07:09:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245969 - projects/portbuild/admin/tools X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:09:30 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 07:09:29 2013 New Revision: 245969 URL: http://svnweb.freebsd.org/changeset/base/245969 Log: Moved from its former home in portbuild/tools/. This script now needs to not be modifiable by user portbuild, for security reasons. Added: projects/portbuild/admin/tools/mkportbuild - copied unchanged from r245968, projects/portbuild/tools/mkportbuild Copied: projects/portbuild/admin/tools/mkportbuild (from r245968, projects/portbuild/tools/mkportbuild) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/tools/mkportbuild Sun Jan 27 07:09:29 2013 (r245969, copy of r245968, projects/portbuild/tools/mkportbuild) @@ -0,0 +1,101 @@ +#!/bin/sh +# +# server-side script to setup the portbuild ZFS volume, delegate its +# administration, and check out the repository. Must be run as root. +# +# Designed to be run before anything else. +# + +DEFAULT_PORTBUILD_USER="portbuild" +DEFAULT_VCS_CHECKOUT_COMMAND="svn checkout" +DEFAULT_VCS_REPOSITORY="svn://svn.FreeBSD.org" +DEFAULT_ZFS_VOLUME="a" +DEFAULT_ZFS_PERMISSIONSET="clone,create,destroy,mount,promote,rename,rollback,send,share,snapshot" + +if [ `id -u` != 0 ]; then + echo "$0 must be run as root." + exit 1 +fi + +if [ -z "${PORTBUILD_USER}" ]; then + echo "You must export PORTBUILD_USER, for example, export PORTBUILD_USER=${DEFAULT_PORTBUILD_USER}." + exit 1 +fi +if [ -z "${VCS_CHECKOUT_COMMAND}" ]; then + VCS_CHECKOUT_COMMAND="${DEFAULT_VCS_CHECKOUT_COMMAND}" +fi +if [ -z "${VCS_PORTBUILD_REPOSITORY}" ]; then + echo "You have not set VCS_PORTBUILD_REPOSITORY. I will try to set it from VCS_REPOSITORY." + if [ -z "${VCS_REPOSITORY}" ]; then + echo "You have not set VCS_REPOSITORY. I will use the default, ${DEFAULT_VCS_REPOSITORY}." + VCS_REPOSITORY=${DEFAULT_VCS_REPOSITORY} + fi + VCS_PORTBUILD_REPOSITORY="${VCS_REPOSITORY}/base/projects/portbuild" +fi +if [ -z "${ZFS_VOLUME}" ]; then + echo "You must export ZFS_VOLUME, for example, export ZFS_VOLUME=${DEFAULT_ZFS_VOLUME}." + exit 1 +fi +ZFS_MOUNTPOINT="/${ZFS_VOLUME}" +if [ -z "${ZFS_PERMISSIONSET}" ]; then + echo "You have not set ZFS_PERMISSIONSET. I will use the default, ${DEFAULT_ZFS_PERMISSIONSET}." + ZFS_PERMISSIONSET="${DEFAULT_ZFS_PERMISSIONSET}" +fi + +# sprinkle magic fairy dust to help delegate zfs permissions +sysctl vfs.usermount=1 +sysctl vfs.zfs.super_owner=1 + +name=`zfs list -H -t filesystem -o name ${ZFS_VOLUME}` +if [ -z "${name}" ]; then + echo "ZFS volume ${ZFS_VOLUME} does not exist. You must create it first." + exit 1 +fi + +mountpoint=`zfs list -H -t filesystem -o mountpoint ${ZFS_VOLUME}` +if [ ! -z "${mountpoint}" ]; then + echo "ZFS volume ${ZFS_VOLUME} is mounted. I'll unmount it for you then remount it later." + zfs umount ${ZFS_VOLUME} || exit 1 +fi + +# reset the "zfsadmin" permission set if it already exists. +zfs unallow -s @zfsadmin ${ZFS_VOLUME} 2> /dev/null +zfs unallow -u ${PORTBUILD_USER} ${ZFS_VOLUME} 2> /dev/null + +# create the "zfsadmin" permission set. +zfs allow -s @zfsadmin ${ZFS_PERMISSIONSET} ${ZFS_VOLUME} || exit 1 + +# delegate the "zfsadmin" permission set to the PORTBUILD_USER. +zfs allow -du ${PORTBUILD_USER} @zfsadmin ${ZFS_VOLUME} || exit 1 +zfs allow -lu ${PORTBUILD_USER} @zfsadmin ${ZFS_VOLUME} || exit 1 + +echo "results of ZFS operations:" +zfs list ${ZFS_VOLUME} +zfs allow ${ZFS_VOLUME} + +chown ${PORTBUILD_USER}:${PORTBUILD_USER} ${ZFS_MOUNTPOINT} || exit 1 +mountpoint=`zfs list -H -t filesystem -o mountpoint ${ZFS_VOLUME}` +if [ -z "${mountpoint}" ]; then + echo "ZFS volume ${ZFS_VOLUME} is not mounted. I'll remount it for you." + su -m ${PORTBUILD_USER} -c "zfs mount ${ZFS_VOLUME}" || exit 1 +fi + +# create a place to hold the repository +if [ ! -d ${ZFS_MOUNTPOINT}/portbuild ]; then + su -m ${PORTBUILD_USER} -c "zfs create ${ZFS_VOLUME}/portbuild" || exit 1 +fi + +echo "checking out the repository ..." +su -m ${PORTBUILD_USER} -c "${VCS_CHECKOUT_COMMAND} ${VCS_PORTBUILD_REPOSITORY} ${ZFS_MOUNTPOINT}/portbuild" || exit 1 + +echo "$0: you should now be able to edit files in ${ZFS_MOUNTPOINT}/portbuild/conf." + +# create convenience directories. failure is annoying but non-fatal. +extra_dirs="lockfiles log" +for extra_dir in ${extra_dirs}; do + if [ ! -d ${ZFS_MOUNTPOINT}/portbuild/${extra_dir} ]; then + su -m ${PORTBUILD_USER} -c "mkdir ${ZFS_MOUNTPOINT}/portbuild/${extra_dir}" + fi +done + +echo "$0: done." From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 07:11:59 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 1446192E; Sun, 27 Jan 2013 07:11:59 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D8C102D2; Sun, 27 Jan 2013 07:11:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R7BwpH034430; Sun, 27 Jan 2013 07:11:58 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R7Bw1r034429; Sun, 27 Jan 2013 07:11:58 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270711.r0R7Bw1r034429@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 07:11:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245970 - in projects/portbuild/admin: crontabs etc X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:11:59 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 07:11:58 2013 New Revision: 245970 URL: http://svnweb.freebsd.org/changeset/base/245970 Log: Moved from their prior home in portbuild/. These administration files must not be modifiable by the portbuild user for security reasons. Added: projects/portbuild/admin/crontabs/ - copied from r245968, projects/portbuild/crontabs/ projects/portbuild/admin/etc/ - copied from r245968, projects/portbuild/etc/ From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 07:12:49 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 62089B6A; Sun, 27 Jan 2013 07:12:49 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3CB982E3; Sun, 27 Jan 2013 07:12:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R7CnTj034608; Sun, 27 Jan 2013 07:12:49 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R7Cn7d034607; Sun, 27 Jan 2013 07:12:49 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270712.r0R7Cn7d034607@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 07:12:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245971 - in projects/portbuild: crontabs etc X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:12:49 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 07:12:48 2013 New Revision: 245971 URL: http://svnweb.freebsd.org/changeset/base/245971 Log: Moved to admin/. Deleted: projects/portbuild/crontabs/ projects/portbuild/etc/ From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 07:13:17 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id EC7E0C8B; Sun, 27 Jan 2013 07:13:17 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C6EA82EA; Sun, 27 Jan 2013 07:13:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R7DH5t034721; Sun, 27 Jan 2013 07:13:17 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R7DH5e034720; Sun, 27 Jan 2013 07:13:17 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270713.r0R7DH5e034720@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 07:13:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245972 - projects/portbuild/tools X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:13:18 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 07:13:17 2013 New Revision: 245972 URL: http://svnweb.freebsd.org/changeset/base/245972 Log: Moved to admin/tools. Deleted: projects/portbuild/tools/mkportbuild From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 07:14:41 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E42E8DB1; Sun, 27 Jan 2013 07:14:41 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id BEBA02F8; Sun, 27 Jan 2013 07:14:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R7Efop034967; Sun, 27 Jan 2013 07:14:41 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R7EfGI034966; Sun, 27 Jan 2013 07:14:41 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270714.r0R7EfGI034966@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 07:14:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245973 - in projects/portbuild: admin/pxedust pxedust X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:14:42 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 07:14:41 2013 New Revision: 245973 URL: http://svnweb.freebsd.org/changeset/base/245973 Log: These files must not be modifiable by user portbuild. Added: projects/portbuild/admin/pxedust/ - copied from r245972, projects/portbuild/pxedust/ Deleted: projects/portbuild/pxedust/ From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 07:21:45 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 06B17F57; Sun, 27 Jan 2013 07:21:45 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D6B0B322; Sun, 27 Jan 2013 07:21:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R7LiFh037459; Sun, 27 Jan 2013 07:21:44 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R7LiJl037458; Sun, 27 Jan 2013 07:21:44 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270721.r0R7LiJl037458@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 07:21:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245974 - projects/portbuild/admin/conf X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:21:45 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 07:21:44 2013 New Revision: 245974 URL: http://svnweb.freebsd.org/changeset/base/245974 Log: Definitions factored out of portbuild/server.conf. These must not be modifiable by the portbuild user for security reasons. Added: projects/portbuild/admin/conf/ projects/portbuild/admin/conf/admin.conf (contents, props changed) Added: projects/portbuild/admin/conf/admin.conf ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/conf/admin.conf Sun Jan 27 07:21:44 2013 (r245974) @@ -0,0 +1,104 @@ +# +# package building meta-configuration file. Specific to each +# pointyhat instance. +# +# note: readable by both Python and /bin/sh files. HOWEVER, there is no +# code yet to do the {}-style shell expansions in the Python scripts. +# Beware! +# +# original author: linimon +# + +# +# directory management definitions +# + +# zfs volume name +ZFS_VOLUME=a +# zfs mount point +ZFS_MOUNTPOINT=/a +# zfs permission set. this delegates all permissions except "allow" and +# "receive". +ZFS_PERMISSIONSET=clone,create,destroy,mount,promote,rename,rollback,send,share,snapshot + +# portbuild subtree. holds portbuild codebase plus all architectures. +# belongs to PORTBUILD_USER. +PORTBUILD_DIRECTORY=portbuild + +# snapshots subtree. holds ports and src snapshots. +# belongs to SRCBUILD_USER. +SNAP_DIRECTORY=snap +# defines for /a/snap/ports-head/ports +SNAP_PORTS_DIRECTORY=${SNAP_DIRECTORY}/ports-head +# defines for /a/snap/src-/src +SRC_DIRECTORY_PREFIX=src- +SNAP_SRC_DIRECTORY_PREFIX=${SNAP_DIRECTORY}/${SRC_DIRECTORY_PREFIX} + +# temporary workspace. +# belongs to SRCBUILD_USER. +WORLDDIR=${ZFS_MOUNTPOINT}/chroot/ + +# XXX TODO (note: Python script, so avoid {}) +#zbackup a/nfs a/local a/portbuild/* /dumpster +#zexpire a/nfs a/local a/portbuild/* a/snap/* +ZFS_DEFAULT_EXPIRATION=14 +ZFS_SNAPSHOT_EXPIRATION=2 + +# +# port build ownership definitions. +# + +PORTBUILD_USER="portbuild" +# defaults to PORTBUILD_USER if not defined here. +PORTBUILD_GROUP="portbuild" + +# +# ownership of everything else. +# + +SRCBUILD_USER="srcbuild" +# defaults to SRCBUILD_USER if not defined here. +SRCBUILD_GROUP="srcbuild" + +# +# user-visible things +# + +MASTER_URL="pointyhat.freebsd.org" + +# +# vcs-specific definitions +# + +VCS="SVN" +VCS_COMMAND="/usr/local/bin/svn" +VCS_CHECKOUT_COMMAND="${VCS_COMMAND} checkout" +VCS_OVERWRITE_COMMAND="${VCS_COMMAND} update --accept theirs-full" +VCS_UPDATE_COMMAND="${VCS_COMMAND} update --accept postpone" + +# this subdirectory is used as a flag to say "checkout has already happened, +# use update instead" +VCS_SUBDIR=".svn" + +# FreeBSD's SVN repositories +# master +VCS_REPOSITORY="svn://svn.FreeBSD.org" +# East Coast USA mirror +#VCS_REPOSITORY="svn://svn0.us-east.FreeBSD.org" +# West Coast USA mirror +#VCS_REPOSITORY="svn://svn0.us-west.FreeBSD.org" +# source base subdirectory +VCS_SRC_REPOSITORY="${VCS_REPOSITORY}/base" +# ports tree subdirectory +VCS_PORTS_REPOSITORY="${VCS_REPOSITORY}/ports" +# portbuild subdirectory +VCS_PORTBUILD_REPOSITORY="${VCS_REPOSITORY}/base/projects/portbuild" + +# used to create URLs in HTML summary pages (see process*) +VCSWEB="http://svnweb.freebsd.org/ports/head" + +# +# www definitions (see processfail) +# + +WWW_DIRECTORY=/usr/local/www/apache22/data/ From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 07:22:47 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id BC90D104; Sun, 27 Jan 2013 07:22:47 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 9819132C; Sun, 27 Jan 2013 07:22:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0R7MlFI037645; Sun, 27 Jan 2013 07:22:47 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0R7Ml1e037643; Sun, 27 Jan 2013 07:22:47 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301270722.r0R7Ml1e037643@svn.freebsd.org> From: Mark Linimon Date: Sun, 27 Jan 2013 07:22:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245975 - in projects/portbuild: admin/conf conf X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 07:22:47 -0000 Author: linimon (doc,ports committer) Date: Sun Jan 27 07:22:46 2013 New Revision: 245975 URL: http://svnweb.freebsd.org/changeset/base/245975 Log: Move README.dotunnel and apache.conf away from the portbuild user and over to the admin user. This is required for security reasons. Added: projects/portbuild/admin/conf/README.dotunnel - copied unchanged from r245972, projects/portbuild/conf/README.dotunnel projects/portbuild/admin/conf/apache.conf - copied unchanged from r245972, projects/portbuild/conf/apache.conf Deleted: projects/portbuild/conf/README.dotunnel projects/portbuild/conf/apache.conf Copied: projects/portbuild/admin/conf/README.dotunnel (from r245972, projects/portbuild/conf/README.dotunnel) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/conf/README.dotunnel Sun Jan 27 07:22:46 2013 (r245975, copy of r245972, projects/portbuild/conf/README.dotunnel) @@ -0,0 +1,31 @@ +Various package build nodes require us to set up TCP tunnels to talk +to them. (Some systems don't pass certain ports; some systems have +firewalls; some systems have multiple nodes on one IP address.) + +These have always been hardcoded in crontab lines of the form "while true; +do ; done". Other than the magic hardcoding, +there's a problem with this. When the tunnel command exits, such as if +the host suddenly becoming unreachable, it doesn't send mail -- instead +it just accumulates a huge file in /var/spool/clientmqueue which never +gets sent. To add insult to injury, /var is on our root partition. + +To cure these problems, we now have + + /var/portbuild/conf//dotunnel.XXX + +where XXX corresponds to one line in the old crontab. Each script sets +up one tunnel, sends mail to the user(s) in + + /var/portbuild//portbuild.conf + +once the command exits, and then sleeps. + +Why not put it in /var/portbuild/ you ask? That directory is +propogated to all nodes for that arch. This would be a security leak. +The intention is that none of the dotunnel files will be checked into +CVS. + +Final note: each script figures out which arch it is for by fiddling +with its $0, so invoke it with its full pathname. + +mcl Copied: projects/portbuild/admin/conf/apache.conf (from r245972, projects/portbuild/conf/apache.conf) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/conf/apache.conf Sun Jan 27 07:22:46 2013 (r245975, copy of r245972, projects/portbuild/conf/apache.conf) @@ -0,0 +1,50 @@ +DocumentRoot "/var/portbuild/www" + +# filter magic to decompress bzip2 logs - pav@ +LoadModule ext_filter_module libexec/apache22/mod_ext_filter.so +ExtFilterDefine BUNZIP2 mode=output intype=application/x-bzip2 outtype=text/plain cmd=/usr/bin/bunzip2 + + + Order allow,deny + Allow from all + Options FollowSymLinks + AllowOverride None + #Redirect permanent /index.html http://pointyhat.freebsd.org/errorlogs/ + + +Alias /errorlogs/ /var/portbuild/errorlogs/ + + + Order allow,deny + Allow from all + Options FollowSymLinks Indexes +# Added kk 030222 + Options +IncludesNoExec + AddHandler server-parsed .shtml + DirectoryIndex index.shtml index.html +# filter magic to decompress bzip2 logs - pav@ + Options +MultiViews + AddOutputFilterByType BUNZIP2 application/x-bzip2 + + +Alias /ganglia/ "/usr/local/www/ganglia/" + + + Order allow,deny + Allow from all + Options Indexes FollowSymlinks MultiViews + AllowOverride None + AddType text/html php + #AddType application/x-httpd-php .php + #AddType application/x-httpd-php-source .phps + addhandler php5-script .php + DirectoryIndex index.php + + +# sometimes useful as a playpen +# +# Order allow,deny +# Allow from all +# Options Indexes FollowSymlinks MultiViews +# AllowOverride None +# From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 11:27:59 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E1717382; Sun, 27 Jan 2013 11:27:59 +0000 (UTC) (envelope-from cherry@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C582CBDD; Sun, 27 Jan 2013 11:27:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0RBRxEL008971; Sun, 27 Jan 2013 11:27:59 GMT (envelope-from cherry@svn.freebsd.org) Received: (from cherry@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0RBRxhX008970; Sun, 27 Jan 2013 11:27:59 GMT (envelope-from cherry@svn.freebsd.org) Message-Id: <201301271127.r0RBRxhX008970@svn.freebsd.org> From: "Cherry G. Mathew" Date: Sun, 27 Jan 2013 11:27:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245978 - projects/amd64_xen_pv/sys/amd64/xen X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 11:27:59 -0000 Author: cherry Date: Sun Jan 27 11:27:59 2013 New Revision: 245978 URL: http://svnweb.freebsd.org/changeset/base/245978 Log: When freeing backing page-tables, watch out for recursive mappings. Approved by: gibbs (implicit) Modified: projects/amd64_xen_pv/sys/amd64/xen/mmu_map.c Modified: projects/amd64_xen_pv/sys/amd64/xen/mmu_map.c ============================================================================== --- projects/amd64_xen_pv/sys/amd64/xen/mmu_map.c Sun Jan 27 09:34:25 2013 (r245977) +++ projects/amd64_xen_pv/sys/amd64/xen/mmu_map.c Sun Jan 27 11:27:59 2013 (r245978) @@ -444,10 +444,26 @@ mmu_map_release_va(struct pmap *pm, void KASSERT(*pdtep == 0, ("%s(%d): mmu state machine out of sync!\n", __func__, __LINE__)); } else { + /* + * Corner case where the va ptes are mapped to + * itself (within a page boundary) at L1 + */ + if (atop((uintptr_t) pti->pt) == atop(va)) { + /* Note: We assume that pti->pxxt are obtained via PTOV() macros */ + + /* + * There's nothing to do at this point + * since the pte may have been zapped + * and the mapping may be invalid + * now - in which case we can't + * attempt to (even read) access + * it. Simply return. + */ + return; + } + /* We can free the PT only after the PDT entry is zapped */ if (memrchr(pti->pt, 0, PAGE_SIZE) == ((char *)pti->pt + PAGE_SIZE - 1)) { - (void) pdtep_ma; - /* Zap the backing PDT entry */ pdtep_ma = xpmap_ptom(pti->ptmb.vtop((uintptr_t)pdtep)); xen_queue_pt_update(pdtep_ma, 0); @@ -476,6 +492,24 @@ mmu_map_release_va(struct pmap *pm, void KASSERT(*pdptep == 0, ("%s(%d): mmu state machine out of sync!\n", __func__, __LINE__)); } + /* + * Corner case where the va pdtes are mapped to + * itself (within a page boundary) at L2 + */ + if (atop((uintptr_t) pti->pdt) == atop(va)) { + /* Note: We assume that pti->pxxt are obtained via PTOV() macros */ + + /* + * There's nothing to do at this point + * since the pdte may have been zapped + * and the mapping may be invalid + * now - in which case we can't + * attempt to (even read) access + * it. Simply return. + */ + return; + } + /* We can free the PDT only after the PDPT entry is zapped */ if (memrchr(pti->pdt, 0, PAGE_SIZE) == ((char *)pti->pdt + PAGE_SIZE - 1)) { pdptep_ma = xpmap_ptom(pti->ptmb.vtop((uintptr_t)pdptep)); @@ -501,6 +535,24 @@ mmu_map_release_va(struct pmap *pm, void KASSERT(*pml4tep == 0, ("%s(%d): mmu state machine out of sync!\n", __func__, __LINE__)); } + /* + * Corner case where the va pdptes are mapped to + * itself (within a page boundary) at L3 + */ + if (atop((uintptr_t) pti->pdpt) == atop(va)) { + /* Note: We assume that pti->pxxt are obtained via PTOV() macros */ + + /* + * There's nothing to do at this point + * since the pdpte may have been zapped + * and the mapping may be invalid + * now - in which case we can't + * attempt to (even read) access + * it. Simply return. + */ + return; + } + if (memrchr(pti->pdpt, 0, PAGE_SIZE) == ((char *)pti->pdpt + PAGE_SIZE - 1)) { pml4tep_ma = xpmap_ptom(pti->ptmb.vtop((uintptr_t)pml4tep) ); From owner-svn-src-projects@FreeBSD.ORG Sun Jan 27 12:52:08 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id DB5CDB4F; Sun, 27 Jan 2013 12:52:08 +0000 (UTC) (envelope-from cherry@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id CE33FEE0; Sun, 27 Jan 2013 12:52:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0RCq8xN036940; Sun, 27 Jan 2013 12:52:08 GMT (envelope-from cherry@svn.freebsd.org) Received: (from cherry@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0RCq85Z036939; Sun, 27 Jan 2013 12:52:08 GMT (envelope-from cherry@svn.freebsd.org) Message-Id: <201301271252.r0RCq85Z036939@svn.freebsd.org> From: "Cherry G. Mathew" Date: Sun, 27 Jan 2013 12:52:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245979 - projects/amd64_xen_pv/sys/amd64/xen X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 12:52:08 -0000 Author: cherry Date: Sun Jan 27 12:52:08 2013 New Revision: 245979 URL: http://svnweb.freebsd.org/changeset/base/245979 Log: This commit contains the following unrelated changes: - Map in the xenstore shared page into kernel space. - Move 48bit va extension handling belongs to mmu_map.c - Don't leak vtopte_hold()/release() semantics. - in pmap_zero_page(), remove temporarily mapped page, after zero-ing it. - ptov() and vtop() functions should not be page aligned - we use them for pte offset calculations. - We can't use M_ZERO to uma_zalloc() into backing page arena, since init() function marks them RO (xen requires this). Instead, we manually zero backing pages. Approved by: gibbs (implicit) Modified: projects/amd64_xen_pv/sys/amd64/xen/pmap.c Modified: projects/amd64_xen_pv/sys/amd64/xen/pmap.c ============================================================================== --- projects/amd64_xen_pv/sys/amd64/xen/pmap.c Sun Jan 27 11:27:59 2013 (r245978) +++ projects/amd64_xen_pv/sys/amd64/xen/pmap.c Sun Jan 27 12:52:08 2013 (r245979) @@ -196,6 +196,7 @@ static vm_paddr_t (*ptmb_vtop)(uintptr_t extern uint64_t xenstack; /* The stack Xen gives us at boot */ extern char *console_page; /* The shared ring for console i/o */ +extern struct xenstore_domain_interface *xen_store; /* xenstore page */ /* return kernel virtual address of 'n' claimed physical pages at boot. */ static uintptr_t @@ -666,13 +667,22 @@ pmap_init(void) gdtset = 1; /* xpq may assert for locking sanity from this point onwards */ /* Get a va for console and map the console mfn into it */ - vm_paddr_t console_ma = xen_start_info->console.domU.mfn << PAGE_SHIFT; + vm_paddr_t ma = xen_start_info->console.domU.mfn << PAGE_SHIFT; va = kmem_alloc_nofault(kernel_map, PAGE_SIZE); KASSERT(va != 0, ("Could not allocate KVA for console page!\n")); - pmap_kenter_ma(va, console_ma); + pmap_kenter_ma(va, ma); console_page = (void *)va; + + /* Get a va for the xenstore shared page */ + ma = xen_start_info->store_mfn << PAGE_SHIFT; + + va = kmem_alloc_nofault(kernel_map, PAGE_SIZE); + KASSERT(va != 0, ("Could not allocate KVA for xenstore page!\n")); + + pmap_kenter_ma(va, ma); + xen_store = (void *)va; } void @@ -738,10 +748,6 @@ vtopte_hold(uintptr_t va, void *addr) mmu_map_t tptr = *(mmu_map_t *)addr; - const uint64_t SIGNMASK = (1UL << 48) - 1; - - va &= SIGNMASK; /* Remove sign extension */ - pd_entry_t *pte; /* PTE address to return */ struct mmu_map_mbackend mb = { @@ -769,9 +775,6 @@ void vtopte_release(uintptr_t va, void *addr) { mmu_map_t tptr = *(mmu_map_t *)addr; - const uint64_t SIGNMASK = (1UL << 48) - 1; - - va &= SIGNMASK; /* Remove sign extension */ mmu_map_release_va(kernel_pmap, tptr, va); mmu_map_t_fini(tptr); @@ -1060,12 +1063,13 @@ pmap_kremove(vm_offset_t va) pte = vtopte_hold(va, &tptr); if (pte == NULL) { /* Mapping doesn't exist */ - return; + goto unmappte; } PT_CLEAR_VA(pte, TRUE); PT_UPDATES_FLUSH(); +unmappte: vtopte_release(va, &tptr); } @@ -1147,6 +1151,8 @@ pmap_zero_page(vm_page_t m) pmap_kenter(va, VM_PAGE_TO_PHYS(m)); pagezero((void *)va); + + pmap_kremove(va); } void @@ -1330,10 +1336,11 @@ xen_vm_ptov(vm_paddr_t pa) return PTOV(pa); } +#if 0 KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("%s: page %p is not managed", __func__, m)); - - return pmap_pv_vm_page_to_v(kernel_pmap, m); +#endif + return pmap_pv_vm_page_to_v(kernel_pmap, m) | (pa & ~PG_FRAME); } static vm_paddr_t @@ -1386,7 +1393,7 @@ xen_vm_vtop(uintptr_t va) VM_OBJECT_UNLOCK(object); - return VM_PAGE_TO_PHYS(m); + return VM_PAGE_TO_PHYS(m) | (va & PAGE_MASK); } static uintptr_t @@ -1394,7 +1401,7 @@ xen_pagezone_alloc(void) { uintptr_t ret; - ret = (uintptr_t)uma_zalloc(xen_pagezone, M_NOWAIT | M_ZERO); + ret = (uintptr_t)uma_zalloc(xen_pagezone, M_NOWAIT); if (ret == 0) panic("%s: failed allocation\n", __func__); return (ret); @@ -1419,6 +1426,9 @@ xen_pagezone_init(void *mem, int size, i va = (uintptr_t)mem; + /* Zero the zone chunk */ + memset(mem, 0, size); + /* Xen requires the page table hierarchy to be R/O. */ pmap_xen_setpages_ro(va, atop(size)); return (0); @@ -1433,6 +1443,10 @@ xen_pagezone_fini(void *mem, int size) /* Xen requires the page table hierarchy to be R/O. */ pmap_xen_setpages_rw(va, atop(size)); + + /* Zero the zone chunk before returning it */ + memset(mem, 0, size); + return; } From owner-svn-src-projects@FreeBSD.ORG Mon Jan 28 00:15:45 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id C47D0C6; Mon, 28 Jan 2013 00:15:45 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A7355DE6; Mon, 28 Jan 2013 00:15:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0S0Fj2G043637; Mon, 28 Jan 2013 00:15:45 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0S0Fjq1043634; Mon, 28 Jan 2013 00:15:45 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201301280015.r0S0Fjq1043634@svn.freebsd.org> From: Marcel Moolenaar Date: Mon, 28 Jan 2013 00:15:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246017 - in projects/altix2/sys: ia64/sgisn kern X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jan 2013 00:15:45 -0000 Author: marcel Date: Mon Jan 28 00:15:44 2013 New Revision: 246017 URL: http://svnweb.freebsd.org/changeset/base/246017 Log: o Call BUSDMA_IOMMU_UNMAP for each segment, just like BUSDMA_IOMMU_MAP. o Implememt BUSDMA_UOMMU_UNMAP in sgisn_pcib. o Keep a bitmap of IOMMU entry (ATEs) for allocation purposes. Modified: projects/altix2/sys/ia64/sgisn/sgisn_pcib.c projects/altix2/sys/kern/busdma_if.m projects/altix2/sys/kern/subr_busdma.c Modified: projects/altix2/sys/ia64/sgisn/sgisn_pcib.c ============================================================================== --- projects/altix2/sys/ia64/sgisn/sgisn_pcib.c Sun Jan 27 23:33:42 2013 (r246016) +++ projects/altix2/sys/ia64/sgisn/sgisn_pcib.c Mon Jan 28 00:15:44 2013 (r246017) @@ -30,8 +30,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include +#include #include #include #include @@ -75,6 +77,8 @@ struct sgisn_pcib_softc { struct rman sc_iomem; uint32_t *sc_flush_intr[PCI_SLOTMAX + 1]; uint64_t *sc_flush_addr[PCI_SLOTMAX + 1]; + uint64_t sc_ate[PIC_REG_ATE_SIZE / 64]; + struct mtx sc_ate_mtx; }; static int sgisn_pcib_attach(device_t); @@ -109,6 +113,7 @@ static void sgisn_pcib_cfgwrite(device_t static int sgisn_pcib_iommu_xlate(device_t, device_t, busdma_mtag_t); static int sgisn_pcib_iommu_map(device_t, device_t, busdma_md_t, u_int, bus_addr_t *); +static int sgisn_pcib_iommu_unmap(device_t, device_t, busdma_md_t, u_int); static int sgisn_pcib_iommu_sync(device_t, device_t, busdma_md_t, u_int, bus_addr_t, bus_size_t); @@ -144,6 +149,7 @@ static device_method_t sgisn_pcib_method /* busdma interface */ DEVMETHOD(busdma_iommu_xlate, sgisn_pcib_iommu_xlate), DEVMETHOD(busdma_iommu_map, sgisn_pcib_iommu_map), + DEVMETHOD(busdma_iommu_unmap, sgisn_pcib_iommu_unmap), DEVMETHOD(busdma_iommu_sync, sgisn_pcib_iommu_sync), { 0, 0 } @@ -475,6 +481,8 @@ sgisn_pcib_attach(device_t dev) #endif bus_space_write_8(sc->sc_tag, sc->sc_hndl, PIC_REG_WGT_CTRL, ctrl); + mtx_init(&sc->sc_ate_mtx, device_get_nameunit(dev), NULL, MTX_SPIN); + fwflushsz = (PCI_SLOTMAX + 1) * sizeof(struct sgisn_fwflush); fwflush = contigmalloc(fwflushsz, M_TEMP, M_ZERO, 0UL, ~0UL, 16, 0); BUS_READ_IVAR(parent, dev, SHUB_IVAR_NASID, &ivar); @@ -574,8 +582,9 @@ sgisn_pcib_iommu_map(device_t bus, devic struct sgisn_pcib_softc *sc = device_get_softc(bus); busdma_tag_t tag; bus_addr_t maxaddr = 0x80000000UL; - bus_addr_t ba; - u_int flags; + bus_addr_t ba, size; + uint64_t bits; + u_int ate, bitshft, count, entry, flags; ba = *ba_p; @@ -595,39 +604,133 @@ sgisn_pcib_iommu_map(device_t bus, devic /* * 32-bit mapped DMA. - * - * XXX HACK START XXX */ - { - bus_addr_t size; - size_t count; - u_int entry; - - size = busdma_md_get_size(md, idx); - count = ((ba & SGISN_PCIB_PAGE_MASK) + size + - SGISN_PCIB_PAGE_MASK) >> SGISN_PCIB_PAGE_SHIFT; - - entry = 0; - - *ba_p = (1UL << 30) | (ba & SGISN_PCIB_PAGE_MASK) | - (SGISN_PCIB_PAGE_SIZE * entry); - - ba &= ~SGISN_PCIB_PAGE_MASK; - ba |= 1 << 0; /* valid */ - ba |= 1 << ((flags & BUSDMA_ALLOC_CONSISTENT) ? 4 : 3); - ba |= (u_long)sc->sc_fwbus->fw_hub_xid << 8; - - while (count > 0) { - bus_space_write_8(sc->sc_tag, sc->sc_hndl, - PIC_REG_ATE(entry), ba); - ba += SGISN_PCIB_PAGE_SIZE; - entry++; - count--; + size = busdma_md_get_size(md, idx); + count = ((ba & SGISN_PCIB_PAGE_MASK) + size + + SGISN_PCIB_PAGE_MASK) >> SGISN_PCIB_PAGE_SHIFT; + + /* Our bitmap allocation routine doesn't handle straddling longs. */ + if (count > 64) { + device_printf(sc->sc_dev, "IOMMU: more than 64 entries needed " + "for DMA\n"); + return (E2BIG); + } + + mtx_lock_spin(&sc->sc_ate_mtx); + + ate = 0; + entry = ~0; + while (ate < (PIC_REG_ATE_SIZE / 64) && entry == ~0) { + bits = sc->sc_ate[ate]; + /* Move to the next long if this one is full. */ + if (bits == ~0UL) { + ate++; + continue; } + /* If this long is empty, take it (catches count == 64). */ + if (bits == 0UL) { + bitshft = 0; + entry = ate * 64; + break; + } + /* Avoid undefined behaviour below for 1 << count. */ + if (count == 64) { + ate++; + continue; + } + bitshft = 0; + do { + if ((bits & ((1UL << count) - 1UL)) == 0) { + entry = ate * 64 + bitshft; + break; + } + while ((bits & 1UL) == 0) { + bits >>= 1; + bitshft++; + } + while (bitshft <= (64 - count) && (bits & 1UL) != 0) { + bits >>= 1; + bitshft++; + } + } while (bitshft <= (64 - count)); + if (entry == ~0) + ate++; + } + if (entry != ~0) { + KASSERT(ate < (PIC_REG_ATE_SIZE / 64), ("foo: ate")); + KASSERT(bitshft <= (64 - count), ("foo: bitshft")); + KASSERT(entry == (ate * 64 + bitshft), ("foo: math")); + bits = (count < 64) ? ((1UL << count) - 1UL) << bitshft : ~0UL; + KASSERT((sc->sc_ate[ate] & bits) == 0UL, ("foo: bits")); + sc->sc_ate[ate] |= bits; } + + mtx_unlock_spin(&sc->sc_ate_mtx); + + if (entry == ~0) { + device_printf(sc->sc_dev, "IOMMU: cannot find %u free entries " + "for DMA\n", count); + return (ENOSPC); + } + + *ba_p = (1UL << 30) | (ba & SGISN_PCIB_PAGE_MASK) | + (SGISN_PCIB_PAGE_SIZE * entry); + + ba &= ~SGISN_PCIB_PAGE_MASK; + ba |= 1 << 0; /* valid */ + ba |= 1 << ((flags & BUSDMA_ALLOC_CONSISTENT) ? 4 : 3); + ba |= (u_long)sc->sc_fwbus->fw_hub_xid << 8; + while (count > 0) { + bus_space_write_8(sc->sc_tag, sc->sc_hndl, + PIC_REG_ATE(entry), ba); + ba += SGISN_PCIB_PAGE_SIZE; + entry++; + count--; + } + return (0); +} + +static int +sgisn_pcib_iommu_unmap(device_t bus, device_t dev, busdma_md_t md, u_int idx) +{ + struct sgisn_pcib_softc *sc = device_get_softc(bus); + bus_addr_t ba, size; + uint64_t bits; + u_int ate, bitshft, count, entry; + + ba = busdma_md_get_busaddr(md, idx); + if ((ba >> 30) != 1) + return (0); + /* - * XXX HACK END XXX + * 32-bit mapped DMA */ + size = busdma_md_get_size(md, idx); + count = ((ba & SGISN_PCIB_PAGE_MASK) + size + + SGISN_PCIB_PAGE_MASK) >> SGISN_PCIB_PAGE_SHIFT; + ba &= (1 << 29) - 1; + entry = (ba >> SGISN_PCIB_PAGE_SHIFT); + + KASSERT(count <= 64, ("foo: count")); + KASSERT((entry + count) <= PIC_REG_ATE_SIZE, ("foo")); + bitshft = entry & 64; + KASSERT(bitshft <= (64 - count), ("foo: bitshft")); + bits = (count < 64) ? ((1UL << count) - 1UL) << bitshft : ~0UL; + ate = entry / 64; + + while (count > 0) { + bus_space_write_8(sc->sc_tag, sc->sc_hndl, + PIC_REG_ATE(entry), 0); + entry++; + count--; + } + + mtx_lock_spin(&sc->sc_ate_mtx); + + sc->sc_ate[ate] &= ~bits; + + mtx_unlock_spin(&sc->sc_ate_mtx); + return (0); } Modified: projects/altix2/sys/kern/busdma_if.m ============================================================================== --- projects/altix2/sys/kern/busdma_if.m Sun Jan 27 23:33:42 2013 (r246016) +++ projects/altix2/sys/kern/busdma_if.m Mon Jan 28 00:15:44 2013 (r246017) @@ -47,7 +47,8 @@ CODE { } static int - default_iommu_unmap(device_t bus, device_t dev, busdma_md_t md) + default_iommu_unmap(device_t bus, device_t dev, busdma_md_t md, + u_int idx) { return (0); } @@ -78,6 +79,7 @@ METHOD int iommu_unmap { device_t bus; device_t dev; busdma_md_t md; + u_int idx; } DEFAULT default_iommu_unmap; METHOD int iommu_sync { Modified: projects/altix2/sys/kern/subr_busdma.c ============================================================================== --- projects/altix2/sys/kern/subr_busdma.c Sun Jan 27 23:33:42 2013 (r246016) +++ projects/altix2/sys/kern/subr_busdma.c Mon Jan 28 00:15:44 2013 (r246017) @@ -430,11 +430,17 @@ _busdma_iommu_map(device_t dev, struct b static int _busdma_iommu_unmap(device_t dev, struct busdma_md *md) { + struct busdma_md_seg *seg; device_t bus; int error; bus = device_get_parent(dev); - error = BUSDMA_IOMMU_UNMAP(bus, dev, md); + error = 0; + TAILQ_FOREACH(seg, &md->md_seg, mds_chain) { + error = BUSDMA_IOMMU_UNMAP(bus, dev, md, seg->mds_idx); + if (error) + break; + } if (error) printf("%s: error=%d\n", __func__, error); From owner-svn-src-projects@FreeBSD.ORG Mon Jan 28 17:25:54 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B55A6E66; Mon, 28 Jan 2013 17:25:54 +0000 (UTC) (envelope-from cherry@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 91E4FDDD; Mon, 28 Jan 2013 17:25:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0SHPsWr053111; Mon, 28 Jan 2013 17:25:54 GMT (envelope-from cherry@svn.freebsd.org) Received: (from cherry@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0SHPsje053110; Mon, 28 Jan 2013 17:25:54 GMT (envelope-from cherry@svn.freebsd.org) Message-Id: <201301281725.r0SHPsje053110@svn.freebsd.org> From: "Cherry G. Mathew" Date: Mon, 28 Jan 2013 17:25:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246036 - projects/amd64_xen_pv/sys/amd64/xen X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jan 2013 17:25:54 -0000 Author: cherry Date: Mon Jan 28 17:25:53 2013 New Revision: 246036 URL: http://svnweb.freebsd.org/changeset/base/246036 Log: Exception handling stack bugs: i) Stop overwriting the previous stackframe ii) Restore stack frame *after* restoring registers after alignment check Approved by: gibbs (implicit) Modified: projects/amd64_xen_pv/sys/amd64/xen/exception.S Modified: projects/amd64_xen_pv/sys/amd64/xen/exception.S ============================================================================== --- projects/amd64_xen_pv/sys/amd64/xen/exception.S Mon Jan 28 15:48:31 2013 (r246035) +++ projects/amd64_xen_pv/sys/amd64/xen/exception.S Mon Jan 28 17:25:53 2013 (r246036) @@ -131,10 +131,10 @@ subq $TF_ERR, %rsp #define TRAP_FRAME_EXIT_NOERR \ - addq $TF_RIP + 8, %rsp + addq $TF_RIP, %rsp #define TRAP_FRAME_EXIT_ERR \ - addq $TF_ERR + 8, %rsp + addq $TF_ERR, %rsp #define TRAP_PROLOGUE(a) \ movl $(a), TF_TRAPNO(%rsp) ; \ @@ -434,9 +434,9 @@ IDTVEC(ac) /* Alignment-Check */ DO_STI_MAYBE ; CALLTRAP ; DO_AST_MAYBE ; - TRAP_FRAME_EXIT_ERR ; RESTORE_GENERAL_REGS ; RESTORE_SEGMENT_REGS ; + TRAP_FRAME_EXIT_ERR ; INTR_EXIT ; IDTVEC(mc) /* Machine-Check */ From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 00:07:55 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 5F2E35A2; Tue, 29 Jan 2013 00:07:55 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 479308CF; Tue, 29 Jan 2013 00:07:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T07tcF072712; Tue, 29 Jan 2013 00:07:55 GMT (envelope-from sjg@svn.freebsd.org) Received: (from sjg@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T07tlT072711; Tue, 29 Jan 2013 00:07:55 GMT (envelope-from sjg@svn.freebsd.org) Message-Id: <201301290007.r0T07tlT072711@svn.freebsd.org> From: "Simon J. Gerraty" Date: Tue, 29 Jan 2013 00:07:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246046 - projects/bmake/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 00:07:55 -0000 Author: sjg Date: Tue Jan 29 00:07:54 2013 New Revision: 246046 URL: http://svnweb.freebsd.org/changeset/base/246046 Log: Handle staging SYMKINKS and LINKS better Modified: projects/bmake/share/mk/bsd.prog.mk Modified: projects/bmake/share/mk/bsd.prog.mk ============================================================================== --- projects/bmake/share/mk/bsd.prog.mk Mon Jan 28 23:16:47 2013 (r246045) +++ projects/bmake/share/mk/bsd.prog.mk Tue Jan 29 00:07:54 2013 (r246046) @@ -177,6 +177,10 @@ SCRIPTSOWN?= ${BINOWN} SCRIPTSGRP?= ${BINGRP} SCRIPTSMODE?= ${BINMODE} +STAGE_AS_SETS+= scripts +stage_as.scripts: ${SCRIPTS} +FLAGS.stage_as.scripts= -m ${SCRIPTSMODE} +STAGE_FILES_DIR.scripts= ${STAGE_OBJTOP} .for script in ${SCRIPTS} .if defined(SCRIPTSNAME) SCRIPTSNAME_${script:T}?= ${SCRIPTSNAME} @@ -187,6 +191,7 @@ SCRIPTSDIR_${script:T}?= ${SCRIPTSDIR} SCRIPTSOWN_${script:T}?= ${SCRIPTSOWN} SCRIPTSGRP_${script:T}?= ${SCRIPTSGRP} SCRIPTSMODE_${script:T}?= ${SCRIPTSMODE} +STAGE_AS_${script:T}= ${SCRIPTSDIR_${script:T}}/${SCRIPTSNAME_${script:T}} _scriptsinstall: _SCRIPTSINS_${script:T} _SCRIPTSINS_${script:T}: ${script} ${INSTALL} -o ${SCRIPTSOWN_${.ALLSRC:T}} \ @@ -242,28 +247,32 @@ stage_files stage_as: # normally only libs and includes are staged .if ${MK_STAGING_PROG:Uno} != "no" STAGE_DIR.prog= ${STAGE_OBJTOP}${BINDIR} -STAGE_SYMLINKS_DIR.prog= ${STAGE_OBJTOP} .if defined(PROGNAME) STAGE_AS_SETS+= prog STAGE_AS_${PROG}= ${PROGNAME} stage_as.prog: ${PROG} -.if !empty(PROG) -all: stage_as -.endif .else STAGE_SETS+= prog stage_files.prog: ${PROG} -.if !empty(PROG) -all: stage_files -.endif .endif +.if !empty(LINKS) +all: stage_links +STAGE_LINKS.prog= ${LINKS} +.endif .if !empty(SYMLINKS) -all: stage_symlinks +all: stage_symlinks STAGE_SYMLINKS.prog= ${SYMLINKS} .endif +.if !empty(STAGE_AS_SETS) +all: stage_as +.endif +.if !empty(STAGE_SETS) +all: stage_files +.endif + .endif .include .endif From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 00:10:06 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 1DA5A6F0; Tue, 29 Jan 2013 00:10:06 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0F5EA8E9; Tue, 29 Jan 2013 00:10:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T0A5c6073149; Tue, 29 Jan 2013 00:10:05 GMT (envelope-from sjg@svn.freebsd.org) Received: (from sjg@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T0A5GB073148; Tue, 29 Jan 2013 00:10:05 GMT (envelope-from sjg@svn.freebsd.org) Message-Id: <201301290010.r0T0A5GB073148@svn.freebsd.org> From: "Simon J. Gerraty" Date: Tue, 29 Jan 2013 00:10:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246047 - projects/bmake/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 00:10:06 -0000 Author: sjg Date: Tue Jan 29 00:10:05 2013 New Revision: 246047 URL: http://svnweb.freebsd.org/changeset/base/246047 Log: Handle chmod of staged files/links Modified: projects/bmake/share/mk/meta.stage.mk Modified: projects/bmake/share/mk/meta.stage.mk ============================================================================== --- projects/bmake/share/mk/meta.stage.mk Tue Jan 29 00:07:54 2013 (r246046) +++ projects/bmake/share/mk/meta.stage.mk Tue Jan 29 00:10:05 2013 (r246047) @@ -64,6 +64,7 @@ STAGE_DIRDEP_SCRIPT = StageDirdep() { \ # this all relies on RELDIR being set to a subdir of SRCTOP # we use ln(1) if we can, else cp(1) STAGE_FILE_SCRIPT = ${STAGE_DIRDEP_SCRIPT}; StageFiles() { \ + case "$$1" in -m) mode=$$2; shift 2;; *) mode=;; esac; \ dest=$$1; shift; \ mkdir -p $$dest; \ [ -s .dirdep ] || echo '${_dirdep}' > .dirdep; \ @@ -73,15 +74,16 @@ STAGE_FILE_SCRIPT = ${STAGE_DIRDEP_SCRIP rm -f $$t; \ { ln $$f $$t 2> /dev/null || \ cp -p $$f $$t; }; \ + $${mode:+chmod $$mode $$t}; \ done; :; } STAGE_LINKS_SCRIPT = ${STAGE_DIRDEP_SCRIPT}; StageLinks() { \ - case "$$1" in --) shift;; -*) lnf=$$1; shift;; esac; \ + case "$$1" in --) shift;; -*) ldest= lnf=$$1; shift;; /*) ldest=$$1/;; esac; \ dest=$$1; shift; \ mkdir -p $$dest; \ [ -s .dirdep ] || echo '${_dirdep}' > .dirdep; \ while test $$\# -ge 2; do \ - l=$$1; shift; \ + l=$$ldest$$1; shift; \ t=$$dest/$$1; \ case "$$1" in */*) mkdir -p ${_stage_target_dirname};; esac; \ shift; \ @@ -91,6 +93,7 @@ STAGE_LINKS_SCRIPT = ${STAGE_DIRDEP_SCRI done; :; } STAGE_AS_SCRIPT = ${STAGE_DIRDEP_SCRIPT}; StageAs() { \ + case "$$1" in -m) mode=$$2; shift 2;; *) mode=;; esac; \ dest=$$1; shift; \ mkdir -p $$dest; \ [ -s .dirdep ] || echo '${_dirdep}' > .dirdep; \ @@ -103,6 +106,7 @@ STAGE_AS_SCRIPT = ${STAGE_DIRDEP_SCRIPT} rm -f $$t; \ { ln $$s $$t 2> /dev/null || \ cp -p $$s $$t; }; \ + $${mode:+chmod $$mode $$t}; \ done; :; } # this is simple, a list of the "staged" files depends on this, @@ -138,8 +142,10 @@ stage_libs: .dirdep .if !empty(STAGE_DIR) STAGE_SETS += _default STAGE_DIR._default = ${STAGE_DIR} -STAGE_SYMLINKS_DIR._default = ${STAGE_SYMLINKS_DIR:U${STAGE_DIR}} +STAGE_LINKS_DIR._default = ${STAGE_LINKS_DIR:U${STAGE_OBJTOP}} +STAGE_SYMLINKS_DIR._default = ${STAGE_SYMLINKS_DIR:U${STAGE_OBJTOP}} STAGE_FILES._default = ${STAGE_FILES} +STAGE_LINKS._default = ${STAGE_LINKS} STAGE_SYMLINKS._default = ${STAGE_SYMLINKS} STAGE_FILES ?= ${.ALLSRC:N.dirdep:Nstage_*} STAGE_SYMLINKS ?= ${.ALLSRC:T:N.dirdep:Nstage_*} @@ -153,6 +159,8 @@ CLEANFILES += ${STAGE_SETS:@s@stage*$s@} .for s in ${STAGE_SETS:O:u} STAGE_FILES.$s ?= ${.ALLSRC:N.dirdep} STAGE_SYMLINKS.$s ?= ${.ALLSRC:N.dirdep} +STAGE_LINKS_DIR.$s ?= ${STAGE_OBJTOP} +STAGE_SYMLINKS_DIR.$s ?= ${STAGE_OBJTOP} .if $s != "_default" stage_files: stage_files.$s @@ -160,7 +168,16 @@ stage_files.$s: .dirdep .else stage_files: .dirdep .endif - @${STAGE_FILE_SCRIPT}; StageFiles ${STAGE_FILES_DIR.$s:U${STAGE_DIR.$s}:${STAGE_DIR_FILTER}} ${STAGE_FILES.$s} + @${STAGE_FILE_SCRIPT}; StageFiles ${FLAGS.$@} ${STAGE_FILES_DIR.$s:U${STAGE_DIR.$s}:${STAGE_DIR_FILTER}} ${STAGE_FILES.$s} + @touch $@ + +.if $s != "_default" +stage_links: stage_links.$s +stage_links.$s: .dirdep +.else +stage_links: .dirdep +.endif + @${STAGE_LINKS_SCRIPT}; StageLinks ${STAGE_LINKS_DIR.$s:U${STAGE_DIR.$s}:${STAGE_DIR_FILTER}} ${STAGE_LINKS.$s} @touch $@ .if $s != "_default" @@ -187,7 +204,7 @@ STAGE_AS.$s ?= ${.ALLSRC:N.dirdep} stage_as: stage_as.$s stage_as.$s: .dirdep - @${STAGE_AS_SCRIPT}; StageAs ${STAGE_FILES_DIR.$s:U${STAGE_DIR.$s}:${STAGE_DIR_FILTER}} ${STAGE_AS.$s:@f@$f ${STAGE_AS_${f:T}:U${f:T}}@} + @${STAGE_AS_SCRIPT}; StageAs ${FLAGS.$@} ${STAGE_FILES_DIR.$s:U${STAGE_DIR.$s}:${STAGE_DIR_FILTER}} ${STAGE_AS.$s:@f@$f ${STAGE_AS_${f:T}:U${f:T}}@} @touch $@ .endfor From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 00:11:22 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 458B9815; Tue, 29 Jan 2013 00:11:22 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 38A5F8F4; Tue, 29 Jan 2013 00:11:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T0BMv2074971; Tue, 29 Jan 2013 00:11:22 GMT (envelope-from sjg@svn.freebsd.org) Received: (from sjg@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T0BMgA074970; Tue, 29 Jan 2013 00:11:22 GMT (envelope-from sjg@svn.freebsd.org) Message-Id: <201301290011.r0T0BMgA074970@svn.freebsd.org> From: "Simon J. Gerraty" Date: Tue, 29 Jan 2013 00:11:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246048 - projects/bmake/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 00:11:22 -0000 Author: sjg Date: Tue Jan 29 00:11:21 2013 New Revision: 246048 URL: http://svnweb.freebsd.org/changeset/base/246048 Log: Use STAGE_OBJTOP for STAGE_SYMLINKS_DIR etc Modified: projects/bmake/share/mk/local.sys.mk Modified: projects/bmake/share/mk/local.sys.mk ============================================================================== --- projects/bmake/share/mk/local.sys.mk Tue Jan 29 00:10:05 2013 (r246047) +++ projects/bmake/share/mk/local.sys.mk Tue Jan 29 00:11:21 2013 (r246048) @@ -94,11 +94,15 @@ WITH_AUTO_OBJ= yes .include .endif +# the logic in bsd.own.mk forces this dance .ifndef WITHOUT_META_MODE WITH_META_MODE= yes .ifndef WITHOUT_STAGING WITH_STAGING= yes +.ifndef WITHOUT_STAGING_PROG +WITH_STAGING_PROG= yes +.endif .endif PYTHON ?= /usr/local/bin/python @@ -134,6 +138,8 @@ STAGE_HOST_OBJTOP= ${STAGE_ROOT}/${HOST_ STAGE_LIBDIR= ${STAGE_OBJTOP}${LIBDIR:U/lib} # this is not the same as INCLUDEDIR STAGE_INCSDIR= ${STAGE_OBJTOP}${INCSDIR:U/include} +# the target is usually an absolute path +STAGE_SYMLINKS_DIR= ${STAGE_OBJTOP} .ifndef WITH_SYSROOT .if ${MACHINE} != "host" From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 03:22:50 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id CB5A6E82; Tue, 29 Jan 2013 03:22:50 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A51151E6; Tue, 29 Jan 2013 03:22:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T3Mowq033011; Tue, 29 Jan 2013 03:22:50 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T3MoPD033010; Tue, 29 Jan 2013 03:22:50 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301290322.r0T3MoPD033010@svn.freebsd.org> From: Mark Linimon Date: Tue, 29 Jan 2013 03:22:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246050 - projects/portbuild/scripts X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 03:22:50 -0000 Author: linimon (doc,ports committer) Date: Tue Jan 29 03:22:50 2013 New Revision: 246050 URL: http://svnweb.freebsd.org/changeset/base/246050 Log: Apparently this was a test script at one time. I have never used it. Deleted: projects/portbuild/scripts/zclient From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 03:27:25 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 689B412B; Tue, 29 Jan 2013 03:27:25 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 42F8B20C; Tue, 29 Jan 2013 03:27:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T3RP7Y033682; Tue, 29 Jan 2013 03:27:25 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T3ROB1033678; Tue, 29 Jan 2013 03:27:24 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301290327.r0T3ROB1033678@svn.freebsd.org> From: Mark Linimon Date: Tue, 29 Jan 2013 03:27:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246051 - in projects/portbuild: admin/scripts scripts X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 03:27:25 -0000 Author: linimon (doc,ports committer) Date: Tue Jan 29 03:27:24 2013 New Revision: 246051 URL: http://svnweb.freebsd.org/changeset/base/246051 Log: Move scripts that need to be only owned by administrator to admin/scripts. These must not be writeable by portbuild due to security concerns. Added: projects/portbuild/admin/scripts/updatesnap - copied unchanged from r245975, projects/portbuild/scripts/updatesnap projects/portbuild/admin/scripts/updatesnap.ports - copied unchanged from r245975, projects/portbuild/scripts/updatesnap.ports projects/portbuild/admin/scripts/zbackup - copied unchanged from r245975, projects/portbuild/scripts/zbackup projects/portbuild/admin/scripts/zexpire - copied unchanged from r245975, projects/portbuild/scripts/zexpire Deleted: projects/portbuild/scripts/updatesnap projects/portbuild/scripts/updatesnap.ports projects/portbuild/scripts/zbackup projects/portbuild/scripts/zexpire Copied: projects/portbuild/admin/scripts/updatesnap (from r245975, projects/portbuild/scripts/updatesnap) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/scripts/updatesnap Tue Jan 29 03:27:24 2013 (r246051, copy of r245975, projects/portbuild/scripts/updatesnap) @@ -0,0 +1,97 @@ +#!/bin/sh +# +# Update the master source trees that are used by package builds +# and other consumers + +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} + +. ${pbc}/conf/server.conf + +base=${ZFS_MOUNTPOINT}/${SNAP_DIRECTORY} +zbase=${ZFS_VOLUME}/${SNAP_DIRECTORY} +base_prefix=${ZFS_MOUNTPOINT}/${SNAP_DIRECTORY}/${SRC_DIRECTORY_PREFIX} +zbase_prefix=${ZFS_VOLUME}/${SNAP_DIRECTORY}/${SRC_DIRECTORY_PREFIX} + +VERBOSE=1 + +stamp() { + fulldate=$1 + date -j -f %+ "${fulldate}" +%Y%m%d%H%M%S +} + +finish() { + err=$1 + + end=$(date +%s) + echo "Finished at $(date)" + len=$((end-begin)) + echo "Duration = $(date -j -f %s +%H:%M:%S ${len})" + exit 1 +} + +begin=$(date +%s) +echo "Started at $(date)" + +uid=${PORTBUILD_USER} +if [ ! -z "${PORTBUILD_GROUP}" ]; then + gid=${PORTBUILD_GROUP} +else + gid=${uid} +fi + +# create /a/snap if not already there +if [ ! -d ${base} ]; then + echo "creating new base directory using ${base}" + zfs create ${zbase} || finish 1 + chown -R ${uid}:${gid} ${base} + chmod -R g+w ${base} +fi + +for branch in $SRC_BRANCHES; do + # create /a/snap/src- if not already there + mountpoint=${base_prefix}${branch} + if [ ! -d ${mountpoint} ]; then + echo "creating new source branch using ${mountpoint}" + zfs create ${zbase_prefix}${branch} || finish 1 + chown -R ${uid}:${gid} ${mountpoint} + chmod -R g+w ${mountpoint} + fi + # create /a/snap/src-/src if not already there + if [ ! -d ${mountpoint}/src ]; then + echo "creating new source branch subdirectory using ${mountpoint}/src" + zfs create ${zbase_prefix}${branch}/src || finish 1 + chown -R ${uid}:${gid} ${mountpoint}/src + chmod -R g+w ${mountpoint}/src + fi + cd ${mountpoint} + fulldate=$(date) + + # TODO: fix identation post-rework + + # example destination directory: /a/snap/src-7/src/ (tricky!) + if [ ! -d ${mountpoint}/src ]; then + mkdir ${mountpoint}/src || finish 1 + fi + if [ ! -d ${mountpoint}/src/${VCS_SUBDIR} ]; then + eval subdir=\$SRC_BRANCH_${branch}_SUBDIR + if [ $VERBOSE ]; then + echo "${VCS_CHECKOUT_COMMAND} ${VCS_SRC_REPOSITORY}/${subdir} ${mountpoint}/src" + fi + ${VCS_CHECKOUT_COMMAND} ${VCS_SRC_REPOSITORY}/${subdir} ${mountpoint}/src || finish 1 + else + if [ $VERBOSE ]; then + echo "${VCS_OVERWRITE_COMMAND} ${mountpoint}/src" + fi + ${VCS_OVERWRITE_COMMAND} ${mountpoint}/src || finish 1 + fi + # hack for zfs breakiness + find . -group wheel | xargs chgrp ${gid} + snapdate=$(stamp ${fulldate}) + if [ $VERBOSE ]; then + echo "zfs snapshot ${zbase_prefix}${branch}/src@${snapdate}" + fi + zfs snapshot ${zbase_prefix}${branch}/src@${snapdate} || finish 1 + echo ${fulldate} > src/.updated +done + +finish 0 Copied: projects/portbuild/admin/scripts/updatesnap.ports (from r245975, projects/portbuild/scripts/updatesnap.ports) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/scripts/updatesnap.ports Tue Jan 29 03:27:24 2013 (r246051, copy of r245975, projects/portbuild/scripts/updatesnap.ports) @@ -0,0 +1,88 @@ +#!/bin/sh +# +# Update the master ports tree that is used by package builds +# and other consumers + +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} + +. ${pbc}/conf/server.conf + +base=${ZFS_MOUNTPOINT}/${SNAP_DIRECTORY} +zbase=${ZFS_VOLUME}/${SNAP_DIRECTORY} +head=${ZFS_MOUNTPOINT}/${SNAP_PORTS_DIRECTORY} +zhead=${ZFS_VOLUME}/${SNAP_PORTS_DIRECTORY} + +VERBOSE=1 + +stamp() { + fulldate=$1 + date -j -f %+ "${fulldate}" +%Y%m%d%H%M%S +} + +finish() { + err=$1 + + end=$(date +%s) + echo "Finished at $(date)" + len=$((end-begin)) + echo "Duration = $(date -j -f %s +%H:%M:%S ${len})" + exit 1 +} + +begin=$(date +%s) +echo "Started at $(date)" + +uid=${PORTBUILD_USER} +if [ ! -z "${PORTBUILD_GROUP}" ]; then + gid=${PORTBUILD_GROUP} +else + gid=${uid} +fi + +# create /a/snap/ if not already there +if [ ! -d ${base} ]; then + echo "creating new base directory using ${base}" + zfs create ${zbase} || finish 1 + chown -R ${uid}:${gid} ${base} + chmod -R g+w ${base} +fi + +# create /a/snap/ports-head/ if not already there +if [ ! -d ${head} ]; then + echo "creating new ports-head directory using ${head}" + zfs create ${zhead} || finish 1 + chown -R ${uid}:${gid} ${head} + chmod -R g+w ${head} +fi + +# create /a/snap/ports-head/ports/ if not already there +if [ ! -d ${head}/ports ]; then + echo "creating new ports-head/ports directory using ${head}/ports" + zfs create ${zhead}/ports || finish 1 + chown -R ${uid}:${gid} ${head}/ports + chmod -R g+w ${head}/ports +fi + +cd ${head} +fulldate=$(date) +if [ ! -d ${head}/ports/${VCS_SUBDIR} ]; then + if [ $VERBOSE ]; then + echo "${VCS_CHECKOUT_COMMAND} ${VCS_PORTS_REPOSITORY}/head ${head}/ports" + fi + ${VCS_CHECKOUT_COMMAND} ${VCS_PORTS_REPOSITORY}/head ${head}/ports || finish 1 +else + if [ $VERBOSE ]; then + echo "${VCS_OVERWRITE_COMMAND} ${head}/ports" + fi + ${VCS_OVERWRITE_COMMAND} ${head}/ports || finish 1 +fi +# hack for zfs breakiness +find . -group wheel | xargs chgrp ${gid} +snapdate=$(stamp ${fulldate}) +if [ $VERBOSE ]; then + echo "zfs snapshot ${zhead}/ports@${snapdate}" +fi +zfs snapshot ${zhead}/ports@${snapdate} || finish 1 +echo ${fulldate} > ports/.updated + +finish 0 Copied: projects/portbuild/admin/scripts/zbackup (from r245975, projects/portbuild/scripts/zbackup) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/scripts/zbackup Tue Jan 29 03:27:24 2013 (r246051, copy of r245975, projects/portbuild/scripts/zbackup) @@ -0,0 +1,236 @@ +#!/usr/bin/env python + +# Back up a list of ZFS filesystems, doing a full backup periodically +# and using incremental diffs in between + +import commands, datetime, sys, os, bz2 +from signal import * + +sys.path.insert(0, '/var/portbuild/lib/python') + +import zfs + +# List of filesystems to backup +# XXX MCL +backuplist=["a", "a/nfs", "a/local", "a/portbuild", + "a/portbuild/amd64", "a/portbuild/arm", "a/portbuild/i386", + "a/portbuild/ia64", "a/portbuild/mips", "a/portbuild/powerpc", + "a/portbuild/sparc64"] + +# Directory to store backups +# XXX MCL +backupdir="/dumpster/pointyhat/backup" + +# How many days between full backups +# XXX MCL +fullinterval=9 + +def validate(): + fslist = zfs.getallfs() + + missing = set(backuplist).difference(set(fslist)) + if len(missing) > 0: + print "Backup list refers to filesystems that do not exist: %s" % missing + sys.exit(1) + +def mkdirp(path): + + plist = path.split("/") + + for i in xrange(2,len(plist)+1): + sofar = "/".join(plist[0:i]) + if not os.path.isdir(sofar): + os.mkdir(sofar) + +class node(object): + child=None + parent=None + name=None + visited=0 + + def __init__(self, name): + self.name = name + self.child = [] + self.parent = None + self.visited = 0 + +print "zbackup: starting at " + datetime.datetime.now().ctime() + +for fs in backuplist: + + print + + dir = backupdir + "/" + fs + mkdirp(dir) + + snaplist = None + try: + snaplist = [snap[0] for snap in zfs.getallsnaps(fs) if snap[0].isdigit()] + except zfs.NoSuchFS: + print "no such fs %s, skipping" % fs + continue + + dofull = 0 + + # Mapping from backup date tag to node + backups={} + + # list of old-new pairs seen + seen=[] + + # Most recent snapshot date + latest = "0" + for j in os.listdir(dir): + (old, sep, new) = j.partition('-') + if not old.isdigit() or not new.isdigit(): + continue + + seen.append("%s-%s" % (old, new)) + + if int(old) >= int(new): + print "Warning: backup sequence not monotonic: %s >= %s" % (old, new) + continue + + try: + oldnode = backups[old] + except KeyError: + oldnode = node(old) + backups[old] = oldnode + + try: + newnode = backups[new] + except KeyError: + newnode = node(new) + backups[new] = newnode + + if int(new) > int(latest): + latest = new + + oldnode.child.append(newnode) + if newnode.parent: + # We are not a tree! + if not dofull: + print "Multiple backup sequences found, forcing full dump!" + dofull = 1 + continue + + newnode.parent = oldnode + + if not "0" in backups and not dofull: + # No root! + print "No full backup found!" + dofull = 1 + + if not latest in snaplist and not dofull: + print "Latest dumped snapshot no longer exists: forcing full dump" + dofull = 1 + + now = datetime.datetime.now() + nowdate = now.strftime("%Y%m%d%H%M") + + try: + prev = datetime.datetime.strptime(latest, "%Y%m%d%H%M") + except ValueError: + if not dofull: + print "Unable to parse latest snapshot as a date, forcing full dump!" + dofull = 1 + + print "Creating zfs snapshot %s@%s" % (fs, nowdate) + zfs.createsnap(fs, nowdate) + + # Find path from latest back to root + try: + cur = backups[latest] + except KeyError: + cur = None + + chain = [] + firstname = "0" + # Skip if latest doesn't exist or chain is corrupt + while cur: + chain.append("%s-%s" % (cur.parent.name, cur.name)) + par = cur.parent + + # Remove from the backup tree so we can delete the leftovers + # below + par.child.remove(cur) + cur.parent=None + + if par.name == "0": + firstname = cur.name + break + cur = par + + chain.reverse() + + print "chain is " + str( chain ) + + # Prune stale links not in the backup chain + for j in backups.iterkeys(): + cur = backups[j] + for k in cur.child: + stale="%s-%s" % (cur.name, k.name) + print "Deleting stale backup %s" % stale + os.remove("%s/%s/%s" % (backupdir, fs, stale)) + + # Lookup date of full dump + try: + first = datetime.datetime.strptime(firstname, "%Y%m%d%H%M") + except ValueError: + if not dofull: + print "Unable to parse first snapshot as a date, forcing full dump!" + dofull = 1 + + if not dofull and (now - first) > datetime.timedelta(days=fullinterval): + print "Previous full backup too old, forcing full dump!" + dofull = 1 + + # In case we are interrupted don't leave behind a truncated file + # that will corrupt the backup chain + + if dofull: + latest = "0" + + outfile="%s/%s/.%s-%s" % (backupdir, fs, latest, nowdate) + + # zfs send aborts on receiving a signal + signal(SIGTSTP, SIG_IGN) + if not dofull: + print "Doing incremental backup of %s: %s-%s" % (fs, latest, nowdate) + (err, out) = \ + commands.getstatusoutput("zfs send -i %s %s@%s | bzip2 > %s" % + (latest, fs, nowdate, outfile)) + else: + print "Doing full backup of %s" % fs + latest = "0" + (err, out) = \ + commands.getstatusoutput("zfs send %s@%s | bzip2 > %s" % + (fs, nowdate, outfile)) + signal(SIGTSTP, SIG_DFL) + + if err: + print "Error from snapshot: (%s, %s)" % (err, out) + try: + os.remove(outfile) + print "Deleted file %s" % outfile + except OSError, err: + print "OSError: " + repr(err) + if err.errno != 2: + raise + finally: + sys.exit(1) + + # We seem to be finished + try: + os.rename(outfile, "%s/%s/%s-%s" % (backupdir, fs, latest, nowdate)) + except: + print "Error renaming dump file" + outfile + "!" + raise + + if dofull: + for i in seen: + print "Removing stale snapshot %s/%s" % (dir, i) + os.remove("%s/%s" % (dir, i)) + +print +print "zbackup: ending at " + datetime.datetime.now().ctime() Copied: projects/portbuild/admin/scripts/zexpire (from r245975, projects/portbuild/scripts/zexpire) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/scripts/zexpire Tue Jan 29 03:27:24 2013 (r246051, copy of r245975, projects/portbuild/scripts/zexpire) @@ -0,0 +1,129 @@ +#!/usr/bin/env python +# +# Expire old snapshots + +import sys, commands, datetime, os, string + +pbc = os.getenv('PORTBUILD_CHECKOUT') \ + if os.getenv('PORTBUILD_CHECKOUT') else "/a/portbuild" +pbd = os.getenv('PORTBUILD_DATA') \ + if os.getenv('PORTBUILD_DATA') else "/a/portbuild" + +sys.path.insert(0, '%s/lib/python' % pbc) + +from freebsd import * +from freebsd_config import * +import zfs + +CONFIG_SUBDIR="conf" +CONFIG_FILENAME="server.conf" + +ENABLED = True +VERBOSE= True + +expirelist={} + +now = datetime.datetime.now() +print "zexpire: starting at " + now.ctime() + +config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME ) +ZFS_VOLUME = config.get( 'ZFS_VOLUME' ) +if not ZFS_VOLUME: + print "you must define ZFS_VOLUME" + sys.exit( 1 ) +ZFS_MOUNTPOINT = config.get( 'ZFS_MOUNTPOINT' ) +if not ZFS_MOUNTPOINT: + print "you must define ZFS_MOUNTPOINT" + sys.exit( 1 ) +PORTBUILD_DIRECTORY = config.get( 'PORTBUILD_DIRECTORY' ) +if not PORTBUILD_DIRECTORY: + print "you must define PORTBUILD_DIRECTORY" + sys.exit( 1 ) +portbuild_directory = os.path.join( ZFS_VOLUME, PORTBUILD_DIRECTORY ) +SNAP_DIRECTORY = config.get( 'SNAP_DIRECTORY' ) +if not SNAP_DIRECTORY: + print "you must define SNAP_DIRECTORY" + sys.exit( 1 ) +snap_directory = os.path.join( ZFS_VOLUME, SNAP_DIRECTORY ) +snap_mountpoint = os.path.join( ZFS_MOUNTPOINT, SNAP_DIRECTORY ) +SUPPORTED_ARCHS = config.get( 'SUPPORTED_ARCHS' ) +if not SUPPORTED_ARCHS: + print "you must define SUPPORTED_ARCHS" + sys.exit( 1 ) +supported_archs = string.split( SUPPORTED_ARCHS ) +ZFS_DEFAULT_EXPIRATION = config.get( 'ZFS_DEFAULT_EXPIRATION' ) +if not ZFS_DEFAULT_EXPIRATION: + print "you must define ZFS_DEFAULT_EXPIRATION" + sys.exit( 1 ) +ZFS_SNAPSHOT_EXPIRATION = config.get( 'ZFS_SNAPSHOT_EXPIRATION' ) +if not ZFS_SNAPSHOT_EXPIRATION: + print "you must define ZFS_SNAPSHOT_EXPIRATION" + sys.exit( 1 ) + +expirelist[ ZFS_VOLUME ] = ZFS_DEFAULT_EXPIRATION +expirelist[ portbuild_directory ] = ZFS_DEFAULT_EXPIRATION +for arch in supported_archs: + expirelist[ os.path.join( portbuild_directory, arch ) ] = ZFS_DEFAULT_EXPIRATION +expirelist[ snap_directory ] = ZFS_SNAPSHOT_EXPIRATION +try: + snapdirs = os.listdir( snap_mountpoint ) + for snapdir in snapdirs: + subdir = os.path.join( snap_mountpoint, snapdir ) + tmp = os.path.join( snap_directory, snapdir ) + expirelist[ tmp ] = ZFS_SNAPSHOT_EXPIRATION + try: + snapsubdirs = os.listdir( subdir ) + for snapsubdir in snapsubdirs: + expirelist[ os.path.join( tmp, snapsubdir ) ] = ZFS_SNAPSHOT_EXPIRATION + except: + pass +except: + pass + +keys = expirelist.keys() +keys.sort() +for key in keys: + fs = key + maxage = 2 + try: + maxage = int( expirelist[ key ] ) + except: + pass + + print + + if VERBOSE: + print "fs: " + str(fs) + try: + snapdata = zfs.getallsnaps(fs) + if VERBOSE: + print "snapdata: " + str(snapdata) + except zfs.NoSuchFS: + print "zexpire: no such fs %s, skipping" % fs + continue + + snaps = (i[0] for i in snapdata) + + for snap in snaps: + try: + snapdate = datetime.datetime.strptime(snap, "%Y%m%d%H%M") + except ValueError: + try: + snapdate = datetime.datetime.strptime(snap, "%Y%m%d%H%M%S") + except ValueError: + print "zexpire: don't know what to do with snap `" + snap + "'" + continue + + if VERBOSE: + print "zexpire: examining snapshot %s@%s" % (fs, snap) + if (now - snapdate) > datetime.timedelta(days=maxage): + print "zexpire: snapshot %s@%s too old, attempting zfs destroy" % (fs, snap) + if ENABLED: + (err, out) = commands.getstatusoutput("zfs destroy %s@%s" % (fs,snap)) + + if err: + print "zexpire: error deleting snapshot", out + +then = datetime.datetime.now() +print +print "zexpire: ending at " + then.ctime() From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 03:38:26 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B429C443; Tue, 29 Jan 2013 03:38:26 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 6AFE6277; Tue, 29 Jan 2013 03:38:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T3cQvQ036717; Tue, 29 Jan 2013 03:38:26 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T3cQVP036715; Tue, 29 Jan 2013 03:38:26 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301290338.r0T3cQVP036715@svn.freebsd.org> From: Mark Linimon Date: Tue, 29 Jan 2013 03:38:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246052 - projects/portbuild/admin/etc/rc.d X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 03:38:26 -0000 Author: linimon (doc,ports committer) Date: Tue Jan 29 03:38:25 2013 New Revision: 246052 URL: http://svnweb.freebsd.org/changeset/base/246052 Log: Try to teach these to delay startup until after login. They have always been reluctant to start automatically; perhaps this is why. Modified: projects/portbuild/admin/etc/rc.d/pollmachine projects/portbuild/admin/etc/rc.d/qmanager Modified: projects/portbuild/admin/etc/rc.d/pollmachine ============================================================================== --- projects/portbuild/admin/etc/rc.d/pollmachine Tue Jan 29 03:27:24 2013 (r246051) +++ projects/portbuild/admin/etc/rc.d/pollmachine Tue Jan 29 03:38:25 2013 (r246052) @@ -2,6 +2,10 @@ # # installed by the portbuild application # + +# PROVIDE: pollmachine +# REQUIRE: LOGIN cleanvar + export PATH=/usr/local/bin:${PATH} pb=/var/portbuild Modified: projects/portbuild/admin/etc/rc.d/qmanager ============================================================================== --- projects/portbuild/admin/etc/rc.d/qmanager Tue Jan 29 03:27:24 2013 (r246051) +++ projects/portbuild/admin/etc/rc.d/qmanager Tue Jan 29 03:38:25 2013 (r246052) @@ -2,6 +2,10 @@ # # installed by the portbuild application # + +# PROVIDE: qmanager +# REQUIRE: LOGIN cleanvar + export PATH=/usr/local/bin:${PATH} pb=/var/portbuild From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 03:40:14 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B4E67690; Tue, 29 Jan 2013 03:40:14 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A84EA293; Tue, 29 Jan 2013 03:40:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T3eE27037072; Tue, 29 Jan 2013 03:40:14 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T3eEhO037071; Tue, 29 Jan 2013 03:40:14 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301290340.r0T3eEhO037071@svn.freebsd.org> From: Mark Linimon Date: Tue, 29 Jan 2013 03:40:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246054 - projects/portbuild/admin/crontabs X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 03:40:14 -0000 Author: linimon (doc,ports committer) Date: Tue Jan 29 03:40:14 2013 New Revision: 246054 URL: http://svnweb.freebsd.org/changeset/base/246054 Log: Refactor from portbuild crontab. This holds the things that only scrbuild is allowed to touch, including svn updates. The zfs scripts will have to be split up further because portbuild owns some subdirs and srcbuild now owns the others. WIP. Added: projects/portbuild/admin/crontabs/srcbuild Added: projects/portbuild/admin/crontabs/srcbuild ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/admin/crontabs/srcbuild Tue Jan 29 03:40:14 2013 (r246054) @@ -0,0 +1,25 @@ +# +# srcbuild crontab +# +PATH=/root/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/a/portbuild/admin/scripts +TERM=xterm + +LOCKFILES=/a/portbuild/admin/lockfiles/ +SCRIPTS=/a/portbuild/admin/scripts/ +# +# VCS update of ports +# +#0 */3 * * * lockf -t 0 -k ${LOCKFILES}/updatesnap.ports.lock ${SCRIPTS}/updatesnap.ports +# +# +# VCS update of src +# +#0 2 * * * lockf -t 0 -k ${LOCKFILES}/updatesnap.lock ${SCRIPTS}/updatesnap +# +# Backup ZFS filesystems +# XXX MCL script not yet converted +#50 4 * * * lockf -t 0 -k ${LOCKFILES}/busybusybusy.lock ${SCRIPTS}/zbackup +# +# Expire old ZFS snapshots +# XXX MCL have to split this one up, too +#50 3 * * * lockf -t 0 -k ${LOCKFILES}/busybusybusy.lock ${SCRIPTS}/zexpire From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 03:41:12 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 45D407AC; Tue, 29 Jan 2013 03:41:12 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3055A29A; Tue, 29 Jan 2013 03:41:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T3fBf8038781; Tue, 29 Jan 2013 03:41:11 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T3fB5F038780; Tue, 29 Jan 2013 03:41:11 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301290341.r0T3fB5F038780@svn.freebsd.org> From: Mark Linimon Date: Tue, 29 Jan 2013 03:41:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246055 - projects/portbuild/admin/crontabs X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 03:41:12 -0000 Author: linimon (doc,ports committer) Date: Tue Jan 29 03:41:10 2013 New Revision: 246055 URL: http://svnweb.freebsd.org/changeset/base/246055 Log: Split vcs operations out into the srcbuild crontab for security reasons. Modified: projects/portbuild/admin/crontabs/portbuild Modified: projects/portbuild/admin/crontabs/portbuild ============================================================================== --- projects/portbuild/admin/crontabs/portbuild Tue Jan 29 03:40:14 2013 (r246054) +++ projects/portbuild/admin/crontabs/portbuild Tue Jan 29 03:41:10 2013 (r246055) @@ -22,16 +22,6 @@ SCRIPTS=/a/portbuild/scripts/ #5,15,25,35,45,55 * * * * lockf -k -t 1 ${LOCKFILES}/dologs.lock ${SCRIPTS}/dologs powerpc > /dev/null 2>&1 #6,16,26,36,46,56 * * * * lockf -k -t 0 ${LOCKFILES}/dologs.lock ${SCRIPTS}/dologs sparc64 > /dev/null 2>&1 # -# VCS update of ports -# -#0 */3 * * * lockf -t 0 -k ${LOCKFILES}/updatesnap.ports.lock ${SCRIPTS}/updatesnap.ports -# -# VCS update of src -# -#0 2 * * * lockf -t 0 -k ${LOCKFILES}/updatesnap.lock ${SCRIPTS}/updatesnap -# -# XXX MCL 20130111 the last things from root crontab -# # Compress old logs to save space # # XXX MCL this is totally naive and livelocks the machine. XXX TODO @@ -42,7 +32,9 @@ SCRIPTS=/a/portbuild/scripts/ # # Backup ZFS filesystems # XXX MCL script not yet converted +# will have to split this up #50 4 * * * lockf -t 0 -k ${LOCKFILES}/busybusybusy.lock ${SCRIPTS}/zbackup # # Expire old ZFS snapshots +# will have to split this up, too #50 3 * * * lockf -t 0 -k ${LOCKFILES}/busybusybusy.lock ${SCRIPTS}/zexpire From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 04:03:16 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A7C8D2DD; Tue, 29 Jan 2013 04:03:16 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 9A5053FD; Tue, 29 Jan 2013 04:03:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T43Gkm045035; Tue, 29 Jan 2013 04:03:16 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T43FDG045034; Tue, 29 Jan 2013 04:03:15 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201301290403.r0T43FDG045034@svn.freebsd.org> From: Mark Linimon Date: Tue, 29 Jan 2013 04:03:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246056 - projects/portbuild/admin/tools X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 04:03:16 -0000 Author: linimon (doc,ports committer) Date: Tue Jan 29 04:03:15 2013 New Revision: 246056 URL: http://svnweb.freebsd.org/changeset/base/246056 Log: Rework this to have two users instead of one: portbuild and additionally srcbuild. srcbuild will have the tasks of base installation, vcs updates, and setup for apache, crontabs, and etc/rc.d scripts. This is a new requirement for security reasons, so that the portbuild user cannot either own or affect any of these functions. srcbuild trusts root and portbuild trusts srcbuild but srcbuild must not trust portbuild. The separation is still a WIP. Modified: projects/portbuild/admin/tools/mkportbuild Modified: projects/portbuild/admin/tools/mkportbuild ============================================================================== --- projects/portbuild/admin/tools/mkportbuild Tue Jan 29 03:41:10 2013 (r246055) +++ projects/portbuild/admin/tools/mkportbuild Tue Jan 29 04:03:15 2013 (r246056) @@ -7,6 +7,7 @@ # DEFAULT_PORTBUILD_USER="portbuild" +DEFAULT_SRCBUILD_USER="srcbuild" DEFAULT_VCS_CHECKOUT_COMMAND="svn checkout" DEFAULT_VCS_REPOSITORY="svn://svn.FreeBSD.org" DEFAULT_ZFS_VOLUME="a" @@ -21,6 +22,10 @@ if [ -z "${PORTBUILD_USER}" ]; then echo "You must export PORTBUILD_USER, for example, export PORTBUILD_USER=${DEFAULT_PORTBUILD_USER}." exit 1 fi +if [ -z "${SRCBUILD_USER}" ]; then + echo "You must export SRCBUILD_USER, for example, export SRCBUILD_USER=${DEFAULT_SRCBUILD_USER}." + exit 1 +fi if [ -z "${VCS_CHECKOUT_COMMAND}" ]; then VCS_CHECKOUT_COMMAND="${DEFAULT_VCS_CHECKOUT_COMMAND}" fi @@ -52,37 +57,55 @@ if [ -z "${name}" ]; then exit 1 fi -mountpoint=`zfs list -H -t filesystem -o mountpoint ${ZFS_VOLUME}` -if [ ! -z "${mountpoint}" ]; then +mounted=`zfs list -H -t filesystem -o mounted ${ZFS_VOLUME}` +if [ ! -z "${mounted}" ]; then echo "ZFS volume ${ZFS_VOLUME} is mounted. I'll unmount it for you then remount it later." - zfs umount ${ZFS_VOLUME} || exit 1 + zfs umount ${ZFS_VOLUME} 2> /dev/null +fi + +# create a place to hold all portbuild-managed files. All other ZFS_VOLUME +# files are managed by srcbuild. +if [ ! -d ${ZFS_MOUNTPOINT}/portbuild ]; then + zfs create ${ZFS_VOLUME}/portbuild || exit 1 fi -# reset the "zfsadmin" permission set if it already exists. -zfs unallow -s @zfsadmin ${ZFS_VOLUME} 2> /dev/null +# reset the "zfsalladmin" permission set if it already exists. +zfs unallow -s @zfsalladmin ${ZFS_VOLUME} 2> /dev/null +zfs unallow -u ${SRCBUILD_USER} ${ZFS_VOLUME} 2> /dev/null + +# reset the "zfsportbuildadmin" permission set if it already exists. +zfs unallow -s @zfsportbuildadmin ${ZFS_VOLUME} 2> /dev/null zfs unallow -u ${PORTBUILD_USER} ${ZFS_VOLUME} 2> /dev/null -# create the "zfsadmin" permission set. -zfs allow -s @zfsadmin ${ZFS_PERMISSIONSET} ${ZFS_VOLUME} || exit 1 +# create the "zfsalladmin" permission set. +zfs allow -s @zfsalladmin ${ZFS_PERMISSIONSET} ${ZFS_VOLUME} || exit 1 -# delegate the "zfsadmin" permission set to the PORTBUILD_USER. -zfs allow -du ${PORTBUILD_USER} @zfsadmin ${ZFS_VOLUME} || exit 1 -zfs allow -lu ${PORTBUILD_USER} @zfsadmin ${ZFS_VOLUME} || exit 1 +# create the "zfsportbuildadmin" permission set. +zfs allow -s @zfsportbuildadmin ${ZFS_PERMISSIONSET} ${ZFS_VOLUME}/portbuild || exit 1 -echo "results of ZFS operations:" -zfs list ${ZFS_VOLUME} -zfs allow ${ZFS_VOLUME} +# delegate the "zfsalladmin" permission set to the SRCBUILD_USER. +zfs allow -du ${SRCBUILD_USER} @zfsalladmin ${ZFS_VOLUME} || exit 1 +zfs allow -lu ${SRCBUILD_USER} @zfsalladmin ${ZFS_VOLUME} || exit 1 -chown ${PORTBUILD_USER}:${PORTBUILD_USER} ${ZFS_MOUNTPOINT} || exit 1 -mountpoint=`zfs list -H -t filesystem -o mountpoint ${ZFS_VOLUME}` -if [ -z "${mountpoint}" ]; then +mounted=`zfs list -H -t filesystem -o mounted ${ZFS_VOLUME}` +if [ -z "${mounted}" -o "${mounted}" = "no" ]; then echo "ZFS volume ${ZFS_VOLUME} is not mounted. I'll remount it for you." - su -m ${PORTBUILD_USER} -c "zfs mount ${ZFS_VOLUME}" || exit 1 + zfs mount ${ZFS_VOLUME} || exit 1 fi -# create a place to hold the repository -if [ ! -d ${ZFS_MOUNTPOINT}/portbuild ]; then - su -m ${PORTBUILD_USER} -c "zfs create ${ZFS_VOLUME}/portbuild" || exit 1 +df -g + +# delegate the "zfsportbuildadmin" permission set to the PORTBUILD_USER. +zfs allow -du ${PORTBUILD_USER} @zfsportbuildadmin ${ZFS_VOLUME}/portbuild || exit 1 + +echo "results of ZFS operations:" +zfs list ${ZFS_VOLUME} +zfs allow ${ZFS_VOLUME} + +mounted=`zfs list -H -t filesystem -o mounted ${ZFS_VOLUME}/portbuild` +if [ -z "${mounted}" -o "${mounted}" = "no" ]; then + echo "ZFS volume ${ZFS_VOLUME}/portbuild is not mounted. I'll (re)mount it for you." + zfs mount ${ZFS_VOLUME}/portbuild || exit 1 fi echo "checking out the repository ..." From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:30:51 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id DAE22312; Tue, 29 Jan 2013 07:30:51 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C3F98CBF; Tue, 29 Jan 2013 07:30:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7Upn0006302; Tue, 29 Jan 2013 07:30:51 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7UpZK006292; Tue, 29 Jan 2013 07:30:51 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290730.r0T7UpZK006292@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:30:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246058 - projects/virtio/sys/dev/virtio/network X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:30:51 -0000 Author: bryanv Date: Tue Jan 29 07:30:50 2013 New Revision: 246058 URL: http://svnweb.freebsd.org/changeset/base/246058 Log: vtnet: Move an mbuf ASSERT to the calling function Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/network/if_vtnet.c Modified: projects/virtio/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- projects/virtio/sys/dev/virtio/network/if_vtnet.c Tue Jan 29 07:21:50 2013 (r246057) +++ projects/virtio/sys/dev/virtio/network/if_vtnet.c Tue Jan 29 07:30:50 2013 (r246058) @@ -1747,7 +1747,6 @@ vtnet_tx_offload(struct vtnet_softc *sc, uint8_t ip_proto, gso_type; ifp = sc->vtnet_ifp; - M_ASSERTPKTHDR(m); ip_offset = sizeof(struct ether_header); if (m->m_len < ip_offset) { @@ -1902,6 +1901,7 @@ vtnet_encap(struct vtnet_softc *sc, stru int error; m = *m_head; + M_ASSERTPKTHDR(m); txhdr = uma_zalloc(vtnet_tx_header_zone, M_NOWAIT | M_ZERO); if (txhdr == NULL) { From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:32:01 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 535F2448; Tue, 29 Jan 2013 07:32:01 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 46866CD1; Tue, 29 Jan 2013 07:32:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7W1N4007224; Tue, 29 Jan 2013 07:32:01 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7W1xl007222; Tue, 29 Jan 2013 07:32:01 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290732.r0T7W1xl007222@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:32:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246059 - projects/virtio/sys/dev/virtio/network X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:32:01 -0000 Author: bryanv Date: Tue Jan 29 07:32:00 2013 New Revision: 246059 URL: http://svnweb.freebsd.org/changeset/base/246059 Log: vtnet: Tweak ASSERT message Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/network/if_vtnet.c Modified: projects/virtio/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- projects/virtio/sys/dev/virtio/network/if_vtnet.c Tue Jan 29 07:30:50 2013 (r246058) +++ projects/virtio/sys/dev/virtio/network/if_vtnet.c Tue Jan 29 07:32:00 2013 (r246059) @@ -1864,7 +1864,7 @@ vtnet_enqueue_txbuf(struct vtnet_softc * sglist_init(&sg, VTNET_MAX_TX_SEGS, segs); error = sglist_append(&sg, &txhdr->vth_uhdr, sc->vtnet_hdr_size); KASSERT(error == 0 && sg.sg_nseg == 1, - ("cannot add header to sglist")); + ("%s: cannot add header to sglist error %d", __func__, error)); again: error = sglist_append_mbuf(&sg, m); From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:33:41 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 8B9BB577; Tue, 29 Jan 2013 07:33:41 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 5356DCE5; Tue, 29 Jan 2013 07:33:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7XfSM007496; Tue, 29 Jan 2013 07:33:41 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7XfnC007495; Tue, 29 Jan 2013 07:33:41 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290733.r0T7XfnC007495@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:33:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246060 - projects/virtio/sys/dev/virtio X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:33:41 -0000 Author: bryanv Date: Tue Jan 29 07:33:40 2013 New Revision: 246060 URL: http://svnweb.freebsd.org/changeset/base/246060 Log: virtio: Cleanup feature description printing Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/virtio.c Modified: projects/virtio/sys/dev/virtio/virtio.c ============================================================================== --- projects/virtio/sys/dev/virtio/virtio.c Tue Jan 29 07:32:00 2013 (r246059) +++ projects/virtio/sys/dev/virtio/virtio.c Tue Jan 29 07:33:40 2013 (r246060) @@ -87,9 +87,30 @@ virtio_device_name(uint16_t devid) return (NULL); } +static const char * +virtio_feature_name(uint64_t val, struct virtio_feature_desc *desc) +{ + int i, j; + struct virtio_feature_desc *descs[2] = { desc, + virtio_common_feature_desc }; + + for (i = 0; i < 2; i++) { + if (descs[i] == NULL) + continue; + + for (j = 0; descs[i][j].vfd_val != 0; j++) { + if (val != descs[i][j].vfd_val) + continue; + return (descs[i][j].vfd_str); + } + } + + return (NULL); +} + void virtio_describe(device_t dev, const char *msg, - uint64_t features, struct virtio_feature_desc *feature_desc) + uint64_t features, struct virtio_feature_desc *desc) { struct sbuf sb; uint64_t val; @@ -98,8 +119,7 @@ virtio_describe(device_t dev, const char int n; if ((buf = malloc(512, M_TEMP, M_NOWAIT)) == NULL) { - device_printf(dev, "%s features: 0x%"PRIx64"\n", msg, - features); + device_printf(dev, "%s features: 0x%"PRIx64"\n", msg, features); return; } @@ -119,13 +139,7 @@ virtio_describe(device_t dev, const char else sbuf_cat(&sb, ","); - name = NULL; - if (feature_desc != NULL) - name = virtio_feature_name(val, feature_desc); - if (name == NULL) - name = virtio_feature_name(val, - virtio_common_feature_desc); - + name = virtio_feature_name(val, desc); if (name == NULL) sbuf_printf(&sb, "0x%"PRIx64, val); else @@ -147,18 +161,6 @@ virtio_describe(device_t dev, const char free(buf, M_TEMP); } -static const char * -virtio_feature_name(uint64_t val, struct virtio_feature_desc *feature_desc) -{ - int i; - - for (i = 0; feature_desc[i].vfd_val != 0; i++) - if (val == feature_desc[i].vfd_val) - return (feature_desc[i].vfd_str); - - return (NULL); -} - /* * VirtIO bus method wrappers. */ From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:35:25 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id D677677F; Tue, 29 Jan 2013 07:35:25 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B18FFCF7; Tue, 29 Jan 2013 07:35:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7ZPlC007819; Tue, 29 Jan 2013 07:35:25 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7ZPn5007818; Tue, 29 Jan 2013 07:35:25 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290735.r0T7ZPn5007818@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:35:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246061 - projects/virtio/sys/dev/virtio/block X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:35:25 -0000 Author: bryanv Date: Tue Jan 29 07:35:25 2013 New Revision: 246061 URL: http://svnweb.freebsd.org/changeset/base/246061 Log: virtio_blk: Do not always read entire config Only the capacity is guaranteed to be available. The other fields in the device config should only be read if their corresponding feature was negotiated. Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/block/virtio_blk.c Modified: projects/virtio/sys/dev/virtio/block/virtio_blk.c ============================================================================== --- projects/virtio/sys/dev/virtio/block/virtio_blk.c Tue Jan 29 07:33:40 2013 (r246060) +++ projects/virtio/sys/dev/virtio/block/virtio_blk.c Tue Jan 29 07:35:25 2013 (r246061) @@ -138,6 +138,8 @@ static void vtblk_vq_intr(void *); static void vtblk_stop(struct vtblk_softc *); +static void vtblk_read_config(struct vtblk_softc *, + struct virtio_blk_config *); static void vtblk_get_ident(struct vtblk_softc *); static void vtblk_prepare_dump(struct vtblk_softc *); static int vtblk_write_dump(struct vtblk_softc *, void *, off_t, size_t); @@ -283,8 +285,7 @@ vtblk_attach(device_t dev) sc->vtblk_flags |= VTBLK_FLAG_READONLY; /* Get local copy of config. */ - virtio_read_device_config(dev, 0, &blkcfg, - sizeof(struct virtio_blk_config)); + vtblk_read_config(sc, &blkcfg); /* * With the current sglist(9) implementation, it is not easy @@ -428,8 +429,7 @@ vtblk_config_change(device_t dev) sc = device_get_softc(dev); - virtio_read_device_config(dev, 0, &blkcfg, - sizeof(struct virtio_blk_config)); + vtblk_read_config(sc, &blkcfg); /* Capacity is always in 512-byte units. */ capacity = blkcfg.capacity * 512; @@ -878,6 +878,36 @@ vtblk_stop(struct vtblk_softc *sc) virtio_stop(sc->vtblk_dev); } +#define VTBLK_GET_CONFIG(_dev, _feature, _field, _cfg) \ + if (virtio_with_feature(_dev, _feature)) { \ + virtio_read_device_config(_dev, \ + offsetof(struct virtio_blk_config, _field), \ + &(_cfg)->_field, sizeof((_cfg)->_field)); \ + } + +static void +vtblk_read_config(struct vtblk_softc *sc, struct virtio_blk_config *blkcfg) +{ + device_t dev; + + dev = sc->vtblk_dev; + + bzero(blkcfg, sizeof(struct virtio_blk_config)); + + /* The capacity is always available. */ + virtio_read_device_config(dev, offsetof(struct virtio_blk_config, + capacity), &blkcfg->capacity, 8); + + /* Read the configuration if the feature was negotiated. */ + VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_SIZE_MAX, size_max, blkcfg); + VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_SEG_MAX, seg_max, blkcfg); + VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_GEOMETRY, geometry, blkcfg); + VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_BLK_SIZE, blk_size, blkcfg); + VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_TOPOLOGY, topology, blkcfg); +} + +#undef VTBLK_GET_CONFIG + static void vtblk_get_ident(struct vtblk_softc *sc) { From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:36:33 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 13D6A8E7; Tue, 29 Jan 2013 07:36:33 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E0E2DD11; Tue, 29 Jan 2013 07:36:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7aWqK008001; Tue, 29 Jan 2013 07:36:32 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7aWM5007999; Tue, 29 Jan 2013 07:36:32 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290736.r0T7aWM5007999@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:36:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246062 - projects/virtio/sys/dev/virtio/block X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:36:33 -0000 Author: bryanv Date: Tue Jan 29 07:36:32 2013 New Revision: 246062 URL: http://svnweb.freebsd.org/changeset/base/246062 Log: virtio_blk: Use topology to set the stripe size/offset Also do some minor header file cleanup. Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/block/virtio_blk.c projects/virtio/sys/dev/virtio/block/virtio_blk.h Modified: projects/virtio/sys/dev/virtio/block/virtio_blk.c ============================================================================== --- projects/virtio/sys/dev/virtio/block/virtio_blk.c Tue Jan 29 07:35:25 2013 (r246061) +++ projects/virtio/sys/dev/virtio/block/virtio_blk.c Tue Jan 29 07:36:32 2013 (r246062) @@ -685,6 +685,13 @@ vtblk_alloc_disk(struct vtblk_softc *sc, dp->d_fwheads = blkcfg->geometry.heads; } + if (virtio_with_feature(dev, VIRTIO_BLK_F_TOPOLOGY)) { + dp->d_stripesize = dp->d_sectorsize * + (1 << blkcfg->topology.physical_block_exp); + dp->d_stripeoffset = dp->d_sectorsize * + blkcfg->topology.alignment_offset; + } + if (virtio_with_feature(dev, VIRTIO_BLK_F_FLUSH)) dp->d_flags |= DISKFLAG_CANFLUSHCACHE; } Modified: projects/virtio/sys/dev/virtio/block/virtio_blk.h ============================================================================== --- projects/virtio/sys/dev/virtio/block/virtio_blk.h Tue Jan 29 07:35:25 2013 (r246061) +++ projects/virtio/sys/dev/virtio/block/virtio_blk.h Tue Jan 29 07:36:32 2013 (r246062) @@ -51,15 +51,24 @@ struct virtio_blk_config { uint32_t size_max; /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */ uint32_t seg_max; - /* geometry the device (if VIRTIO_BLK_F_GEOMETRY) */ + /* Geometry of the device (if VIRTIO_BLK_F_GEOMETRY) */ struct virtio_blk_geometry { uint16_t cylinders; uint8_t heads; uint8_t sectors; } geometry; - /* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ + /* Block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ uint32_t blk_size; + + /* Topology of the device (if VIRTIO_BLK_F_TOPOLOGY) */ + struct virtio_blk_topology { + uint8_t physical_block_exp; + uint8_t alignment_offset; + uint16_t min_io_size; + uint16_t opt_io_size; + } topology; + } __packed; /* From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:40:55 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B5574B75; Tue, 29 Jan 2013 07:40:55 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 90371D5F; Tue, 29 Jan 2013 07:40:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7etG5009093; Tue, 29 Jan 2013 07:40:55 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7etsJ009037; Tue, 29 Jan 2013 07:40:55 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290740.r0T7etsJ009037@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:40:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246063 - projects/virtio/sys/dev/virtio/block X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:40:55 -0000 Author: bryanv Date: Tue Jan 29 07:40:54 2013 New Revision: 246063 URL: http://svnweb.freebsd.org/changeset/base/246063 Log: virtio_blk: Add support for write cache enable feature Later revisions of the VirtIO spec renamed the block flush feature to writecache-enable, and allowed the guest to set the caching mode to writeback or writethrough at init time. Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/block/virtio_blk.c projects/virtio/sys/dev/virtio/block/virtio_blk.h Modified: projects/virtio/sys/dev/virtio/block/virtio_blk.c ============================================================================== --- projects/virtio/sys/dev/virtio/block/virtio_blk.c Tue Jan 29 07:36:32 2013 (r246062) +++ projects/virtio/sys/dev/virtio/block/virtio_blk.c Tue Jan 29 07:40:54 2013 (r246063) @@ -96,8 +96,9 @@ static struct virtio_feature_desc vtblk_ { VIRTIO_BLK_F_RO, "ReadOnly" }, { VIRTIO_BLK_F_BLK_SIZE, "BlockSize" }, { VIRTIO_BLK_F_SCSI, "SCSICmds" }, - { VIRTIO_BLK_F_FLUSH, "FlushCmd" }, + { VIRTIO_BLK_F_WCE, "WriteCache" }, { VIRTIO_BLK_F_TOPOLOGY, "Topology" }, + { VIRTIO_BLK_F_CONFIG_WCE, "ConfigWCE" }, { 0, NULL } }; @@ -124,6 +125,8 @@ static int vtblk_maximum_segments(struct struct virtio_blk_config *); static int vtblk_alloc_virtqueue(struct vtblk_softc *); static void vtblk_resize_disk(struct vtblk_softc *, uint64_t); +static int vtblk_write_cache_enabled(struct vtblk_softc *sc, + struct virtio_blk_config *); static void vtblk_alloc_disk(struct vtblk_softc *, struct virtio_blk_config *); static void vtblk_create_disk(struct vtblk_softc *); @@ -167,6 +170,8 @@ static void vtblk_finish_bio(struct bio /* Tunables. */ static int vtblk_no_ident = 0; TUNABLE_INT("hw.vtblk.no_ident", &vtblk_no_ident); +static int vtblk_write_cache = 1; +TUNABLE_INT("hw.vtblk.write_cache", &vtblk_write_cache); /* Features desired/implemented by this driver. */ #define VTBLK_FEATURES \ @@ -176,7 +181,8 @@ TUNABLE_INT("hw.vtblk.no_ident", &vtblk_ VIRTIO_BLK_F_GEOMETRY | \ VIRTIO_BLK_F_RO | \ VIRTIO_BLK_F_BLK_SIZE | \ - VIRTIO_BLK_F_FLUSH | \ + VIRTIO_BLK_F_WCE | \ + VIRTIO_BLK_F_CONFIG_WCE | \ VIRTIO_RING_F_INDIRECT_DESC) #define VTBLK_MTX(_sc) &(_sc)->vtblk_mtx @@ -630,6 +636,37 @@ vtblk_resize_disk(struct vtblk_softc *sc } } +static int +vtblk_write_cache_enabled(struct vtblk_softc *sc, + struct virtio_blk_config *blkcfg) +{ + device_t dev; + char buf[32]; + int wc; + + dev = sc->vtblk_dev; + + if (!virtio_with_feature(dev, VIRTIO_BLK_F_WCE)) + return (0); + if (!virtio_with_feature(dev, VIRTIO_BLK_F_CONFIG_WCE)) + return (1); + + wc = vtblk_write_cache; + snprintf(buf, sizeof(buf), "hw.vtblk.%d.write_cache", + device_get_unit(dev)); + TUNABLE_INT_FETCH(buf, &wc); + + if (wc != -1) { + /* Set either writeback or writethrough mode. */ + blkcfg->writeback = !!wc; + virtio_write_dev_config_1(dev, + offsetof(struct virtio_blk_config, writeback), + blkcfg->writeback); + } + + return (blkcfg->writeback); +} + static void vtblk_alloc_disk(struct vtblk_softc *sc, struct virtio_blk_config *blkcfg) { @@ -692,7 +729,7 @@ vtblk_alloc_disk(struct vtblk_softc *sc, blkcfg->topology.alignment_offset; } - if (virtio_with_feature(dev, VIRTIO_BLK_F_FLUSH)) + if (vtblk_write_cache_enabled(sc, blkcfg) != 0) dp->d_flags |= DISKFLAG_CANFLUSHCACHE; } @@ -911,6 +948,7 @@ vtblk_read_config(struct vtblk_softc *sc VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_GEOMETRY, geometry, blkcfg); VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_BLK_SIZE, blk_size, blkcfg); VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_TOPOLOGY, topology, blkcfg); + VTBLK_GET_CONFIG(dev, VIRTIO_BLK_F_CONFIG_WCE, writeback, blkcfg); } #undef VTBLK_GET_CONFIG Modified: projects/virtio/sys/dev/virtio/block/virtio_blk.h ============================================================================== --- projects/virtio/sys/dev/virtio/block/virtio_blk.h Tue Jan 29 07:36:32 2013 (r246062) +++ projects/virtio/sys/dev/virtio/block/virtio_blk.h Tue Jan 29 07:40:54 2013 (r246063) @@ -39,8 +39,9 @@ #define VIRTIO_BLK_F_RO 0x0020 /* Disk is read-only */ #define VIRTIO_BLK_F_BLK_SIZE 0x0040 /* Block size of disk is available*/ #define VIRTIO_BLK_F_SCSI 0x0080 /* Supports scsi command passthru */ -#define VIRTIO_BLK_F_FLUSH 0x0200 /* Cache flush command support */ +#define VIRTIO_BLK_F_WCE 0x0200 /* Writeback mode enabled after reset */ #define VIRTIO_BLK_F_TOPOLOGY 0x0400 /* Topology information is available */ +#define VIRTIO_BLK_F_CONFIG_WCE 0x0800 /* Writeback mode available in config */ #define VIRTIO_BLK_ID_BYTES 20 /* ID string length */ @@ -69,6 +70,9 @@ struct virtio_blk_config { uint16_t opt_io_size; } topology; + /* Writeback mode (if VIRTIO_BLK_F_CONFIG_WCE) */ + uint8_t writeback; + } __packed; /* From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:43:26 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E38AECBA; Tue, 29 Jan 2013 07:43:26 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C7ACFD7E; Tue, 29 Jan 2013 07:43:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7hQAx010578; Tue, 29 Jan 2013 07:43:26 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7hQX5010577; Tue, 29 Jan 2013 07:43:26 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290743.r0T7hQX5010577@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:43:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246064 - projects/virtio/sys/dev/virtio/pci X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:43:27 -0000 Author: bryanv Date: Tue Jan 29 07:43:26 2013 New Revision: 246064 URL: http://svnweb.freebsd.org/changeset/base/246064 Log: virtio_pci: Rewrite allocation of interrupts The commit simplifies the interrupt allocation code that had become a bit jumbled from having to support per-vq MSIX, shared MSIX, MSI, and legacy style interrupts. Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/pci/virtio_pci.c Modified: projects/virtio/sys/dev/virtio/pci/virtio_pci.c ============================================================================== --- projects/virtio/sys/dev/virtio/pci/virtio_pci.c Tue Jan 29 07:40:54 2013 (r246063) +++ projects/virtio/sys/dev/virtio/pci/virtio_pci.c Tue Jan 29 07:43:26 2013 (r246064) @@ -51,6 +51,12 @@ __FBSDID("$FreeBSD$"); #include "virtio_bus_if.h" #include "virtio_if.h" +struct vtpci_interrupt { + struct resource *vti_irq; + int vti_rid; + void *vti_handler; +}; + struct vtpci_softc { device_t vtpci_dev; struct resource *vtpci_res; @@ -70,39 +76,25 @@ struct vtpci_softc { struct virtio_feature_desc *vtpci_child_feat_desc; /* - * Ideally, each virtqueue that the driver provides a callback for - * will receive its own MSIX vector. If there are not sufficient - * vectors available, we will then attempt to have all the VQs - * share one vector. Note that when using MSIX, the configuration - * changed notifications must be on their own vector. + * Ideally, each virtqueue that the driver provides a callback for will + * receive its own MSIX vector. If there are not sufficient vectors + * available, then attempt to have all the VQs share one vector. For + * MSIX, the configuration changed notifications must be on their own + * vector. * - * If MSIX is not available, we will attempt to have the whole - * device share one MSI vector, and then, finally, one legacy - * interrupt. + * If MSIX is not available, we will attempt to have the whole device + * share one MSI vector, and then, finally, one legacy interrupt. */ + struct vtpci_interrupt vtpci_device_interrupt; + struct vtpci_interrupt *vtpci_msix_vq_interrupts; + int vtpci_nvqs; + int vtpci_nmsix_resources; + struct vtpci_virtqueue { - struct virtqueue *vq; - /* Device did not provide a callback for this virtqueue. */ - int no_intr; - /* Index into vtpci_intr_res[] below. Unused, then -1. */ - int ires_idx; + struct virtqueue *vqx_vq; + int vqx_no_intr; } vtpci_vqx[VIRTIO_MAX_VIRTQUEUES]; - - /* - * When using MSIX interrupts, the first element of vtpci_intr_res[] - * is always the configuration changed notifications. The remaining - * element(s) are used for the virtqueues. - * - * With MSI and legacy interrupts, only the first element of - * vtpci_intr_res[] is used. - */ - int vtpci_nintr_res; - struct vtpci_intr_resource { - struct resource *irq; - int rid; - void *intrhand; - } vtpci_intr_res[1 + VIRTIO_MAX_VIRTQUEUES]; }; static int vtpci_probe(device_t); @@ -140,22 +132,29 @@ static int vtpci_alloc_intr_msix_pervq( static int vtpci_alloc_intr_msix_shared(struct vtpci_softc *); static int vtpci_alloc_intr_msi(struct vtpci_softc *); static int vtpci_alloc_intr_legacy(struct vtpci_softc *); +static int vtpci_alloc_interrupt(struct vtpci_softc *, int, int, + struct vtpci_interrupt *); static int vtpci_alloc_intr_resources(struct vtpci_softc *); static int vtpci_setup_legacy_interrupt(struct vtpci_softc *, enum intr_type); +static int vtpci_setup_pervq_msix_interrupts(struct vtpci_softc *, + enum intr_type); static int vtpci_setup_msix_interrupts(struct vtpci_softc *, enum intr_type); static int vtpci_setup_interrupts(struct vtpci_softc *, enum intr_type); -static int vtpci_register_msix_vector(struct vtpci_softc *, int, int); +static int vtpci_register_msix_vector(struct vtpci_softc *, int, + struct vtpci_interrupt *); static int vtpci_set_host_msix_vectors(struct vtpci_softc *); static int vtpci_reinit_virtqueue(struct vtpci_softc *, int); +static void vtpci_free_interrupt(struct vtpci_softc *, + struct vtpci_interrupt *); static void vtpci_free_interrupts(struct vtpci_softc *); static void vtpci_free_virtqueues(struct vtpci_softc *); -static void vtpci_cleanup_setup_intr_attempt(struct vtpci_softc *); static void vtpci_release_child_resources(struct vtpci_softc *); +static void vtpci_cleanup_setup_intr_attempt(struct vtpci_softc *); static void vtpci_reset(struct vtpci_softc *); static void vtpci_select_virtqueue(struct vtpci_softc *, int); @@ -480,7 +479,6 @@ vtpci_alloc_virtqueues(device_t dev, int uint16_t size; sc = device_get_softc(dev); - error = 0; if (sc->vtpci_nvqs != 0) return (EALREADY); @@ -508,8 +506,8 @@ vtpci_alloc_virtqueues(device_t dev, int vtpci_write_config_4(sc, VIRTIO_PCI_QUEUE_PFN, virtqueue_paddr(vq) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT); - vqx->vq = *info->vqai_vq = vq; - vqx->no_intr = info->vqai_intr == NULL; + vqx->vqx_vq = *info->vqai_vq = vq; + vqx->vqx_no_intr = info->vqai_intr == NULL; sc->vtpci_nvqs++; } @@ -774,7 +772,7 @@ vtpci_alloc_msix(struct vtpci_softc *sc, cnt = required; if (pci_alloc_msix(dev, &cnt) == 0 && cnt >= required) { - sc->vtpci_nintr_res = required; + sc->vtpci_nmsix_resources = required; return (0); } @@ -797,10 +795,8 @@ vtpci_alloc_msi(struct vtpci_softc *sc) return (1); cnt = required; - if (pci_alloc_msi(dev, &cnt) == 0 && cnt >= required) { - sc->vtpci_nintr_res = required; + if (pci_alloc_msi(dev, &cnt) == 0 && cnt >= required) return (0); - } pci_release_msi(dev); @@ -817,7 +813,7 @@ vtpci_alloc_intr_msix_pervq(struct vtpci return (ENOTSUP); for (nvectors = 0, i = 0; i < sc->vtpci_nvqs; i++) { - if (sc->vtpci_vqx[i].no_intr == 0) + if (sc->vtpci_vqx[i].vqx_no_intr == 0) nvectors++; } @@ -871,7 +867,22 @@ vtpci_alloc_intr_legacy(struct vtpci_sof { sc->vtpci_flags |= VTPCI_FLAG_LEGACY; - sc->vtpci_nintr_res = 1; + + return (0); +} + +static int +vtpci_alloc_interrupt(struct vtpci_softc *sc, int rid, int flags, + struct vtpci_interrupt *intr) +{ + struct resource *irq; + + irq = bus_alloc_resource_any(sc->vtpci_dev, SYS_RES_IRQ, &rid, flags); + if (irq == NULL) + return (ENXIO); + + intr->vti_irq = irq; + intr->vti_rid = rid; return (0); } @@ -880,45 +891,40 @@ static int vtpci_alloc_intr_resources(struct vtpci_softc *sc) { device_t dev; - struct resource *irq; - struct vtpci_virtqueue *vqx; - int i, rid, flags, res_idx; + struct vtpci_interrupt *intr; + int i, rid, flags, nvq_intrs, error; dev = sc->vtpci_dev; + rid = 0; + flags = RF_ACTIVE; - if (sc->vtpci_flags & VTPCI_FLAG_LEGACY) { - rid = 0; - flags = RF_ACTIVE | RF_SHAREABLE; - } else { + if (sc->vtpci_flags & VTPCI_FLAG_LEGACY) + flags |= RF_SHAREABLE; + else rid = 1; - flags = RF_ACTIVE; - } - - for (i = 0; i < sc->vtpci_nintr_res; i++) { - irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, flags); - if (irq == NULL) - return (ENXIO); - - sc->vtpci_intr_res[i].irq = irq; - sc->vtpci_intr_res[i].rid = rid++; - } /* - * Map the virtqueue into the correct index in vq_intr_res[]. The - * first index is reserved for configuration changed notifications. + * For legacy and MSI interrupts, this single resource handles all + * interrupts. For MSIX, this resource is used for the configuration + * changed interrupt. */ - for (i = 0, res_idx = 1; i < sc->vtpci_nvqs; i++) { - vqx = &sc->vtpci_vqx[i]; + intr = &sc->vtpci_device_interrupt; + error = vtpci_alloc_interrupt(sc, rid, flags, intr); + if (error || sc->vtpci_flags & (VTPCI_FLAG_LEGACY | VTPCI_FLAG_MSI)) + return (error); + + /* Subtract one for the configuration changed interrupt. */ + nvq_intrs = sc->vtpci_nmsix_resources - 1; - if (sc->vtpci_flags & VTPCI_FLAG_MSIX) { - if (vqx->no_intr != 0) - vqx->ires_idx = -1; - else if (sc->vtpci_flags & VTPCI_FLAG_SHARED_MSIX) - vqx->ires_idx = res_idx; - else - vqx->ires_idx = res_idx++; - } else - vqx->ires_idx = -1; + intr = sc->vtpci_msix_vq_interrupts = malloc(nvq_intrs * + sizeof(struct vtpci_interrupt), M_DEVBUF, M_NOWAIT | M_ZERO); + if (sc->vtpci_msix_vq_interrupts == NULL) + return (ENOMEM); + + for (i = 0, rid++; i < nvq_intrs; i++, rid++, intr++) { + error = vtpci_alloc_interrupt(sc, rid, flags, intr); + if (error) + return (error); } return (0); @@ -927,63 +933,67 @@ vtpci_alloc_intr_resources(struct vtpci_ static int vtpci_setup_legacy_interrupt(struct vtpci_softc *sc, enum intr_type type) { - device_t dev; - struct vtpci_intr_resource *ires; + struct vtpci_interrupt *intr; int error; - dev = sc->vtpci_dev; - - ires = &sc->vtpci_intr_res[0]; - error = bus_setup_intr(dev, ires->irq, type, NULL, vtpci_legacy_intr, - sc, &ires->intrhand); + intr = &sc->vtpci_device_interrupt; + error = bus_setup_intr(sc->vtpci_dev, intr->vti_irq, type, NULL, + vtpci_legacy_intr, sc, &intr->vti_handler); return (error); } static int -vtpci_setup_msix_interrupts(struct vtpci_softc *sc, enum intr_type type) +vtpci_setup_pervq_msix_interrupts(struct vtpci_softc *sc, enum intr_type type) { - device_t dev; - struct vtpci_intr_resource *ires; struct vtpci_virtqueue *vqx; + struct vtpci_interrupt *intr; int i, error; + intr = sc->vtpci_msix_vq_interrupts; + + for (i = 0; i < sc->vtpci_nvqs; i++) { + vqx = &sc->vtpci_vqx[i]; + + if (vqx->vqx_no_intr) + continue; + + error = bus_setup_intr(sc->vtpci_dev, intr->vti_irq, type, + vtpci_vq_intr_filter, vtpci_vq_intr, vqx->vqx_vq, + &intr->vti_handler); + if (error) + return (error); + + intr++; + } + + return (0); +} + +static int +vtpci_setup_msix_interrupts(struct vtpci_softc *sc, enum intr_type type) +{ + device_t dev; + struct vtpci_interrupt *intr; + int error; + dev = sc->vtpci_dev; + intr = &sc->vtpci_device_interrupt; - /* - * The first MSIX vector is used for configuration changed interrupts. - */ - ires = &sc->vtpci_intr_res[0]; - error = bus_setup_intr(dev, ires->irq, type, NULL, vtpci_config_intr, - sc, &ires->intrhand); + error = bus_setup_intr(dev, intr->vti_irq, type, NULL, + vtpci_config_intr, sc, &intr->vti_handler); if (error) return (error); if (sc->vtpci_flags & VTPCI_FLAG_SHARED_MSIX) { - ires = &sc->vtpci_intr_res[1]; - - error = bus_setup_intr(dev, ires->irq, type, + intr = sc->vtpci_msix_vq_interrupts; + error = bus_setup_intr(dev, intr->vti_irq, type, vtpci_vq_shared_intr_filter, vtpci_vq_shared_intr, sc, - &ires->intrhand); - } else { - for (i = 0; i < sc->vtpci_nvqs; i++) { - vqx = &sc->vtpci_vqx[i]; - if (vqx->ires_idx < 1) - continue; - - ires = &sc->vtpci_intr_res[vqx->ires_idx]; - error = bus_setup_intr(dev, ires->irq, type, - vtpci_vq_intr_filter, vtpci_vq_intr, vqx->vq, - &ires->intrhand); - if (error) - break; - } - } - - if (error == 0) - error = vtpci_set_host_msix_vectors(sc); + &intr->vti_handler); + } else + error = vtpci_setup_pervq_msix_interrupts(sc, type); - return (error); + return (error ? error : vtpci_set_host_msix_vectors(sc)); } static int @@ -993,7 +1003,7 @@ vtpci_setup_interrupts(struct vtpci_soft type |= INTR_MPSAFE; KASSERT(sc->vtpci_flags & VTPCI_FLAG_ITYPE_MASK, - ("no interrupt type selected: %#x", sc->vtpci_flags)); + ("%s: no interrupt type selected %#x", __func__, sc->vtpci_flags)); error = vtpci_alloc_intr_resources(sc); if (error) @@ -1010,34 +1020,24 @@ vtpci_setup_interrupts(struct vtpci_soft } static int -vtpci_register_msix_vector(struct vtpci_softc *sc, int offset, int res_idx) +vtpci_register_msix_vector(struct vtpci_softc *sc, int offset, + struct vtpci_interrupt *intr) { device_t dev; - uint16_t vector, rdvector; + uint16_t vector; dev = sc->vtpci_dev; - if (res_idx != -1) { + if (intr != NULL) { /* Map from guest rid to host vector. */ - vector = sc->vtpci_intr_res[res_idx].rid - 1; + vector = intr->vti_rid - 1; } else vector = VIRTIO_MSI_NO_VECTOR; - /* - * Assert the first resource is always used for the configuration - * changed interrupts. - */ - if (res_idx == 0) { - KASSERT(vector == 0 && offset == VIRTIO_MSI_CONFIG_VECTOR, - ("bad first res use vector:%d offset:%d", vector, offset)); - } else - KASSERT(offset == VIRTIO_MSI_QUEUE_VECTOR, ("bad offset")); - vtpci_write_config_2(sc, offset, vector); /* Read vector to determine if the host had sufficient resources. */ - rdvector = vtpci_read_config_2(sc, offset); - if (rdvector != vector) { + if (vtpci_read_config_2(sc, offset) != vector) { device_printf(dev, "insufficient host resources for MSIX interrupts\n"); return (ENODEV); @@ -1049,24 +1049,40 @@ vtpci_register_msix_vector(struct vtpci_ static int vtpci_set_host_msix_vectors(struct vtpci_softc *sc) { - struct vtpci_virtqueue *vqx; - int idx, error; + struct vtpci_interrupt *intr, *tintr; + int idx, offset, error; - error = vtpci_register_msix_vector(sc, VIRTIO_MSI_CONFIG_VECTOR, 0); + intr = &sc->vtpci_device_interrupt; + offset = VIRTIO_MSI_CONFIG_VECTOR; + + error = vtpci_register_msix_vector(sc, offset, intr); if (error) return (error); - for (idx = 0; idx < sc->vtpci_nvqs; idx++) { - vqx = &sc->vtpci_vqx[idx]; + intr = sc->vtpci_msix_vq_interrupts; + offset = VIRTIO_MSI_QUEUE_VECTOR; + for (idx = 0; idx < sc->vtpci_nvqs; idx++) { vtpci_select_virtqueue(sc, idx); - error = vtpci_register_msix_vector(sc, VIRTIO_MSI_QUEUE_VECTOR, - vqx->ires_idx); + + if (sc->vtpci_vqx[idx].vqx_no_intr) + tintr = NULL; + else + tintr = intr; + + error = vtpci_register_msix_vector(sc, offset, tintr); if (error) - return (error); + break; + + /* + * For shared MSIX, all the virtqueues share the first + * interrupt. + */ + if ((sc->vtpci_flags & VTPCI_FLAG_SHARED_MSIX) == 0) + intr++; } - return (0); + return (error); } static int @@ -1078,9 +1094,9 @@ vtpci_reinit_virtqueue(struct vtpci_soft uint16_t size; vqx = &sc->vtpci_vqx[idx]; - vq = vqx->vq; + vq = vqx->vqx_vq; - KASSERT(vq != NULL, ("vq %d not allocated", idx)); + KASSERT(vq != NULL, ("%s: vq %d not allocated", __func__, idx)); vtpci_select_virtqueue(sc, idx); size = vtpci_read_config_2(sc, VIRTIO_PCI_QUEUE_NUM); @@ -1096,35 +1112,50 @@ vtpci_reinit_virtqueue(struct vtpci_soft } static void -vtpci_free_interrupts(struct vtpci_softc *sc) +vtpci_free_interrupt(struct vtpci_softc *sc, struct vtpci_interrupt *intr) { device_t dev; - struct vtpci_intr_resource *ires; - int i; dev = sc->vtpci_dev; - for (i = 0; i < sc->vtpci_nintr_res; i++) { - ires = &sc->vtpci_intr_res[i]; + if (intr->vti_handler != NULL) { + bus_teardown_intr(dev, intr->vti_irq, intr->vti_handler); + intr->vti_handler = NULL; + } - if (ires->intrhand != NULL) { - bus_teardown_intr(dev, ires->irq, ires->intrhand); - ires->intrhand = NULL; - } + if (intr->vti_irq != NULL) { + bus_release_resource(dev, SYS_RES_IRQ, intr->vti_rid, + intr->vti_irq); + intr->vti_irq = NULL; + intr->vti_rid = -1; + } +} - if (ires->irq != NULL) { - bus_release_resource(dev, SYS_RES_IRQ, ires->rid, - ires->irq); - ires->irq = NULL; - } +static void +vtpci_free_interrupts(struct vtpci_softc *sc) +{ + struct vtpci_interrupt *intr; + int i, nvq_intrs; + + vtpci_free_interrupt(sc, &sc->vtpci_device_interrupt); - ires->rid = -1; + if (sc->vtpci_nmsix_resources != 0) { + nvq_intrs = sc->vtpci_nmsix_resources - 1; + sc->vtpci_nmsix_resources = 0; + + intr = sc->vtpci_msix_vq_interrupts; + if (intr != NULL) { + for (i = 0; i < nvq_intrs; i++, intr++) + vtpci_free_interrupt(sc, intr); + + free(sc->vtpci_msix_vq_interrupts, M_DEVBUF); + sc->vtpci_msix_vq_interrupts = NULL; + } } if (sc->vtpci_flags & (VTPCI_FLAG_MSI | VTPCI_FLAG_MSIX)) - pci_release_msi(dev); + pci_release_msi(sc->vtpci_dev); - sc->vtpci_nintr_res = 0; sc->vtpci_flags &= ~VTPCI_FLAG_ITYPE_MASK; } @@ -1137,14 +1168,22 @@ vtpci_free_virtqueues(struct vtpci_softc for (i = 0; i < sc->vtpci_nvqs; i++) { vqx = &sc->vtpci_vqx[i]; - virtqueue_free(vqx->vq); - vqx->vq = NULL; + virtqueue_free(vqx->vqx_vq); + vqx->vqx_vq = NULL; } sc->vtpci_nvqs = 0; } static void +vtpci_release_child_resources(struct vtpci_softc *sc) +{ + + vtpci_free_interrupts(sc); + vtpci_free_virtqueues(sc); +} + +static void vtpci_cleanup_setup_intr_attempt(struct vtpci_softc *sc) { int idx; @@ -1164,14 +1203,6 @@ vtpci_cleanup_setup_intr_attempt(struct } static void -vtpci_release_child_resources(struct vtpci_softc *sc) -{ - - vtpci_free_interrupts(sc); - vtpci_free_virtqueues(sc); -} - -static void vtpci_reset(struct vtpci_softc *sc) { @@ -1208,7 +1239,7 @@ vtpci_legacy_intr(void *xsc) if (isr & VIRTIO_PCI_ISR_INTR) { for (i = 0; i < sc->vtpci_nvqs; i++, vqx++) - virtqueue_intr(vqx->vq); + virtqueue_intr(vqx->vqx_vq); } } @@ -1224,7 +1255,7 @@ vtpci_vq_shared_intr_filter(void *xsc) vqx = &sc->vtpci_vqx[0]; for (i = 0; i < sc->vtpci_nvqs; i++, vqx++) - rc |= virtqueue_intr_filter(vqx->vq); + rc |= virtqueue_intr_filter(vqx->vqx_vq); return (rc ? FILTER_SCHEDULE_THREAD : FILTER_STRAY); } @@ -1240,7 +1271,7 @@ vtpci_vq_shared_intr(void *xsc) vqx = &sc->vtpci_vqx[0]; for (i = 0; i < sc->vtpci_nvqs; i++, vqx++) - virtqueue_intr(vqx->vq); + virtqueue_intr(vqx->vqx_vq); } static int From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:44:36 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 9B424DE4; Tue, 29 Jan 2013 07:44:36 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 7588CD8B; Tue, 29 Jan 2013 07:44:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7iaOg010789; Tue, 29 Jan 2013 07:44:36 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7iaO4010788; Tue, 29 Jan 2013 07:44:36 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290744.r0T7iaO4010788@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:44:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246065 - projects/virtio/sys/dev/virtio/pci X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:44:36 -0000 Author: bryanv Date: Tue Jan 29 07:44:35 2013 New Revision: 246065 URL: http://svnweb.freebsd.org/changeset/base/246065 Log: virtio_pci: Remove spaces before a tab Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/pci/virtio_pci.c Modified: projects/virtio/sys/dev/virtio/pci/virtio_pci.c ============================================================================== --- projects/virtio/sys/dev/virtio/pci/virtio_pci.c Tue Jan 29 07:43:26 2013 (r246064) +++ projects/virtio/sys/dev/virtio/pci/virtio_pci.c Tue Jan 29 07:44:35 2013 (r246065) @@ -126,35 +126,35 @@ static void vtpci_describe_features(stru uint64_t); static void vtpci_probe_and_attach_child(struct vtpci_softc *); -static int vtpci_alloc_msix(struct vtpci_softc *, int); -static int vtpci_alloc_msi(struct vtpci_softc *); -static int vtpci_alloc_intr_msix_pervq(struct vtpci_softc *); -static int vtpci_alloc_intr_msix_shared(struct vtpci_softc *); -static int vtpci_alloc_intr_msi(struct vtpci_softc *); -static int vtpci_alloc_intr_legacy(struct vtpci_softc *); +static int vtpci_alloc_msix(struct vtpci_softc *, int); +static int vtpci_alloc_msi(struct vtpci_softc *); +static int vtpci_alloc_intr_msix_pervq(struct vtpci_softc *); +static int vtpci_alloc_intr_msix_shared(struct vtpci_softc *); +static int vtpci_alloc_intr_msi(struct vtpci_softc *); +static int vtpci_alloc_intr_legacy(struct vtpci_softc *); static int vtpci_alloc_interrupt(struct vtpci_softc *, int, int, struct vtpci_interrupt *); static int vtpci_alloc_intr_resources(struct vtpci_softc *); -static int vtpci_setup_legacy_interrupt(struct vtpci_softc *, +static int vtpci_setup_legacy_interrupt(struct vtpci_softc *, enum intr_type); static int vtpci_setup_pervq_msix_interrupts(struct vtpci_softc *, enum intr_type); -static int vtpci_setup_msix_interrupts(struct vtpci_softc *, +static int vtpci_setup_msix_interrupts(struct vtpci_softc *, enum intr_type); -static int vtpci_setup_interrupts(struct vtpci_softc *, enum intr_type); +static int vtpci_setup_interrupts(struct vtpci_softc *, enum intr_type); static int vtpci_register_msix_vector(struct vtpci_softc *, int, struct vtpci_interrupt *); -static int vtpci_set_host_msix_vectors(struct vtpci_softc *); -static int vtpci_reinit_virtqueue(struct vtpci_softc *, int); +static int vtpci_set_host_msix_vectors(struct vtpci_softc *); +static int vtpci_reinit_virtqueue(struct vtpci_softc *, int); static void vtpci_free_interrupt(struct vtpci_softc *, struct vtpci_interrupt *); static void vtpci_free_interrupts(struct vtpci_softc *); static void vtpci_free_virtqueues(struct vtpci_softc *); static void vtpci_release_child_resources(struct vtpci_softc *); -static void vtpci_cleanup_setup_intr_attempt(struct vtpci_softc *); +static void vtpci_cleanup_setup_intr_attempt(struct vtpci_softc *); static void vtpci_reset(struct vtpci_softc *); static void vtpci_select_virtqueue(struct vtpci_softc *, int); From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 07:46:23 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 3EE6DF1D; Tue, 29 Jan 2013 07:46:23 +0000 (UTC) (envelope-from bryanv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 224F3DA3; Tue, 29 Jan 2013 07:46:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0T7kN3h011063; Tue, 29 Jan 2013 07:46:23 GMT (envelope-from bryanv@svn.freebsd.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0T7kMSo011061; Tue, 29 Jan 2013 07:46:22 GMT (envelope-from bryanv@svn.freebsd.org) Message-Id: <201301290746.r0T7kMSo011061@svn.freebsd.org> From: Bryan Venteicher Date: Tue, 29 Jan 2013 07:46:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246066 - in projects/virtio/sys/dev/virtio: . pci X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 07:46:23 -0000 Author: bryanv Date: Tue Jan 29 07:46:22 2013 New Revision: 246066 URL: http://svnweb.freebsd.org/changeset/base/246066 Log: virtio_pci: Dynamically allocate the virtqueue array For network multiqueue, we may need to support many queues so it is impractical to have a static array in the VirtIO PCI's softc. Approved by: grehan (implicit) Modified: projects/virtio/sys/dev/virtio/pci/virtio_pci.c projects/virtio/sys/dev/virtio/virtio.h Modified: projects/virtio/sys/dev/virtio/pci/virtio_pci.c ============================================================================== --- projects/virtio/sys/dev/virtio/pci/virtio_pci.c Tue Jan 29 07:44:35 2013 (r246065) +++ projects/virtio/sys/dev/virtio/pci/virtio_pci.c Tue Jan 29 07:46:22 2013 (r246066) @@ -57,6 +57,11 @@ struct vtpci_interrupt { void *vti_handler; }; +struct vtpci_virtqueue { + struct virtqueue *vtv_vq; + int vtv_no_intr; +}; + struct vtpci_softc { device_t vtpci_dev; struct resource *vtpci_res; @@ -75,6 +80,9 @@ struct vtpci_softc { device_t vtpci_child_dev; struct virtio_feature_desc *vtpci_child_feat_desc; + int vtpci_nvqs; + struct vtpci_virtqueue *vtpci_vqs; + /* * Ideally, each virtqueue that the driver provides a callback for will * receive its own MSIX vector. If there are not sufficient vectors @@ -87,14 +95,7 @@ struct vtpci_softc { */ struct vtpci_interrupt vtpci_device_interrupt; struct vtpci_interrupt *vtpci_msix_vq_interrupts; - - int vtpci_nvqs; int vtpci_nmsix_resources; - - struct vtpci_virtqueue { - struct virtqueue *vqx_vq; - int vqx_no_intr; - } vtpci_vqx[VIRTIO_MAX_VIRTQUEUES]; }; static int vtpci_probe(device_t); @@ -482,14 +483,19 @@ vtpci_alloc_virtqueues(device_t dev, int if (sc->vtpci_nvqs != 0) return (EALREADY); - if (nvqs <= 0 || nvqs > VIRTIO_MAX_VIRTQUEUES) + if (nvqs <= 0) return (EINVAL); if (flags & VIRTIO_ALLOC_VQS_DISABLE_MSIX) sc->vtpci_flags |= VTPCI_FLAG_NO_MSIX; + sc->vtpci_vqs = malloc(nvqs * sizeof(struct vtpci_virtqueue), + M_DEVBUF, M_NOWAIT | M_ZERO); + if (sc->vtpci_vqs == NULL) + return (ENOMEM); + for (idx = 0; idx < nvqs; idx++) { - vqx = &sc->vtpci_vqx[idx]; + vqx = &sc->vtpci_vqs[idx]; info = &vq_info[idx]; vtpci_select_virtqueue(sc, idx); @@ -506,8 +512,8 @@ vtpci_alloc_virtqueues(device_t dev, int vtpci_write_config_4(sc, VIRTIO_PCI_QUEUE_PFN, virtqueue_paddr(vq) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT); - vqx->vqx_vq = *info->vqai_vq = vq; - vqx->vqx_no_intr = info->vqai_intr == NULL; + vqx->vtv_vq = *info->vqai_vq = vq; + vqx->vtv_no_intr = info->vqai_intr == NULL; sc->vtpci_nvqs++; } @@ -813,7 +819,7 @@ vtpci_alloc_intr_msix_pervq(struct vtpci return (ENOTSUP); for (nvectors = 0, i = 0; i < sc->vtpci_nvqs; i++) { - if (sc->vtpci_vqx[i].vqx_no_intr == 0) + if (sc->vtpci_vqs[i].vtv_no_intr == 0) nvectors++; } @@ -953,13 +959,13 @@ vtpci_setup_pervq_msix_interrupts(struct intr = sc->vtpci_msix_vq_interrupts; for (i = 0; i < sc->vtpci_nvqs; i++) { - vqx = &sc->vtpci_vqx[i]; + vqx = &sc->vtpci_vqs[i]; - if (vqx->vqx_no_intr) + if (vqx->vtv_no_intr) continue; error = bus_setup_intr(sc->vtpci_dev, intr->vti_irq, type, - vtpci_vq_intr_filter, vtpci_vq_intr, vqx->vqx_vq, + vtpci_vq_intr_filter, vtpci_vq_intr, vqx->vtv_vq, &intr->vti_handler); if (error) return (error); @@ -1065,7 +1071,7 @@ vtpci_set_host_msix_vectors(struct vtpci for (idx = 0; idx < sc->vtpci_nvqs; idx++) { vtpci_select_virtqueue(sc, idx); - if (sc->vtpci_vqx[idx].vqx_no_intr) + if (sc->vtpci_vqs[idx].vtv_no_intr) tintr = NULL; else tintr = intr; @@ -1093,8 +1099,8 @@ vtpci_reinit_virtqueue(struct vtpci_soft int error; uint16_t size; - vqx = &sc->vtpci_vqx[idx]; - vq = vqx->vqx_vq; + vqx = &sc->vtpci_vqs[idx]; + vq = vqx->vtv_vq; KASSERT(vq != NULL, ("%s: vq %d not allocated", __func__, idx)); @@ -1166,12 +1172,14 @@ vtpci_free_virtqueues(struct vtpci_softc int i; for (i = 0; i < sc->vtpci_nvqs; i++) { - vqx = &sc->vtpci_vqx[i]; + vqx = &sc->vtpci_vqs[i]; - virtqueue_free(vqx->vqx_vq); - vqx->vqx_vq = NULL; + virtqueue_free(vqx->vtv_vq); + vqx->vtv_vq = NULL; } + free(sc->vtpci_vqs, M_DEVBUF); + sc->vtpci_vqs = NULL; sc->vtpci_nvqs = 0; } @@ -1229,7 +1237,7 @@ vtpci_legacy_intr(void *xsc) uint8_t isr; sc = xsc; - vqx = &sc->vtpci_vqx[0]; + vqx = &sc->vtpci_vqs[0]; /* Reading the ISR also clears it. */ isr = vtpci_read_config_1(sc, VIRTIO_PCI_ISR); @@ -1239,7 +1247,7 @@ vtpci_legacy_intr(void *xsc) if (isr & VIRTIO_PCI_ISR_INTR) { for (i = 0; i < sc->vtpci_nvqs; i++, vqx++) - virtqueue_intr(vqx->vqx_vq); + virtqueue_intr(vqx->vtv_vq); } } @@ -1252,10 +1260,10 @@ vtpci_vq_shared_intr_filter(void *xsc) rc = 0; sc = xsc; - vqx = &sc->vtpci_vqx[0]; + vqx = &sc->vtpci_vqs[0]; for (i = 0; i < sc->vtpci_nvqs; i++, vqx++) - rc |= virtqueue_intr_filter(vqx->vqx_vq); + rc |= virtqueue_intr_filter(vqx->vtv_vq); return (rc ? FILTER_SCHEDULE_THREAD : FILTER_STRAY); } @@ -1268,10 +1276,10 @@ vtpci_vq_shared_intr(void *xsc) int i; sc = xsc; - vqx = &sc->vtpci_vqx[0]; + vqx = &sc->vtpci_vqs[0]; for (i = 0; i < sc->vtpci_nvqs; i++, vqx++) - virtqueue_intr(vqx->vqx_vq); + virtqueue_intr(vqx->vtv_vq); } static int Modified: projects/virtio/sys/dev/virtio/virtio.h ============================================================================== --- projects/virtio/sys/dev/virtio/virtio.h Tue Jan 29 07:44:35 2013 (r246065) +++ projects/virtio/sys/dev/virtio/virtio.h Tue Jan 29 07:46:22 2013 (r246066) @@ -71,11 +71,6 @@ struct vq_alloc_info; #define VIRTIO_TRANSPORT_F_END 32 /* - * Maximum number of virtqueues per device. - */ -#define VIRTIO_MAX_VIRTQUEUES 8 - -/* * Each virtqueue indirect descriptor list must be physically contiguous. * To allow us to malloc(9) each list individually, limit the number * supported to what will fit in one page. With 4KB pages, this is a limit From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 13:49:59 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 616FA4A8; Tue, 29 Jan 2013 13:49:59 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3CED4D18; Tue, 29 Jan 2013 13:49:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0TDnxNM018712; Tue, 29 Jan 2013 13:49:59 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0TDnww9018710; Tue, 29 Jan 2013 13:49:58 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201301291349.r0TDnww9018710@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 29 Jan 2013 13:49:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246070 - projects/counters/sys/vm X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 13:49:59 -0000 Author: glebius Date: Tue Jan 29 13:49:58 2013 New Revision: 246070 URL: http://svnweb.freebsd.org/changeset/base/246070 Log: Don't hardcode slab size in UMA_SMALLEST_UNIT and UMA_MAX_WASTE. Instead calculate these values based on keg->uk_slabsize, where it is possible. This means, that on zones with a smaller slab size, like pcpu zones we can go for items smaller than 16 bytes. This allows us to reduce UMA waste for uint64_t pcpu zone by 100%. Modified: projects/counters/sys/vm/uma_core.c projects/counters/sys/vm/uma_int.h Modified: projects/counters/sys/vm/uma_core.c ============================================================================== --- projects/counters/sys/vm/uma_core.c Tue Jan 29 13:49:08 2013 (r246069) +++ projects/counters/sys/vm/uma_core.c Tue Jan 29 13:49:58 2013 (r246070) @@ -1133,21 +1133,7 @@ keg_small_init(uma_keg_t keg) u_int wastedspace; u_int shsize; - KASSERT(keg != NULL, ("Keg is null in keg_small_init")); - rsize = keg->uk_size; - - if (rsize < UMA_SMALLEST_UNIT) - rsize = UMA_SMALLEST_UNIT; - if (rsize & keg->uk_align) - rsize = (rsize & ~keg->uk_align) + (keg->uk_align + 1); - - keg->uk_rsize = rsize; - if (keg->uk_flags & UMA_ZONE_PCPU) { - - KASSERT(keg->uk_rsize < sizeof(struct pcpu), - ("%s: size %u too large", __func__, keg->uk_rsize)); - keg->uk_slabsize = sizeof(struct pcpu); keg->uk_ppera = mp_ncpus/(PAGE_SIZE/sizeof(struct pcpu)); /* Account for remainder. */ @@ -1158,6 +1144,19 @@ keg_small_init(uma_keg_t keg) keg->uk_ppera = 1; } + rsize = keg->uk_size; + + if (rsize & keg->uk_align) + rsize = (rsize & ~keg->uk_align) + (keg->uk_align + 1); + if (rsize < keg->uk_slabsize / 256) + rsize = keg->uk_slabsize / 256; + + keg->uk_rsize = rsize; + + KASSERT((keg->uk_flags & UMA_ZONE_PCPU) == 0 || + keg->uk_rsize < sizeof(struct pcpu), + ("%s: size %u too large", __func__, keg->uk_rsize)); + if (keg->uk_flags & UMA_ZONE_OFFPAGE) { shsize = 0; } else if (keg->uk_flags & UMA_ZONE_REFCNT) { @@ -1169,7 +1168,9 @@ keg_small_init(uma_keg_t keg) } keg->uk_ipers = (keg->uk_slabsize - shsize) / rsize; - KASSERT(keg->uk_ipers != 0, ("keg_small_init: ipers is 0")); + KASSERT(keg->uk_ipers > 0 && keg->uk_ipers <= 255, + ("%s: keg->uk_ipers %u", __func__, keg->uk_ipers)); + memused = keg->uk_ipers * rsize + shsize; wastedspace = keg->uk_slabsize - memused; @@ -1184,18 +1185,18 @@ keg_small_init(uma_keg_t keg) (keg->uk_flags & UMA_ZFLAG_CACHEONLY)) return; - if ((wastedspace >= UMA_MAX_WASTE) && + if ((wastedspace >= keg->uk_slabsize / UMA_MAX_WASTE) && (keg->uk_ipers < (keg->uk_slabsize / keg->uk_rsize))) { keg->uk_ipers = keg->uk_slabsize / keg->uk_rsize; - KASSERT(keg->uk_ipers <= 255, - ("keg_small_init: keg->uk_ipers too high!")); + KASSERT(keg->uk_ipers > 0 && keg->uk_ipers <= 255, + ("%s: keg->uk_ipers %u", __func__, keg->uk_ipers)); #ifdef UMA_DEBUG printf("UMA decided we need offpage slab headers for " "keg: %s, calculated wastedspace = %d, " "maximum wasted space allowed = %d, " "calculated ipers = %d, " "new wasted space = %d\n", keg->uk_name, wastedspace, - UMA_MAX_WASTE, keg->uk_ipers, + keg->uk_slabsize / UMA_MAX_WASTE, keg->uk_ipers, keg->uk_slabsize - keg->uk_ipers * keg->uk_rsize); #endif keg->uk_flags |= UMA_ZONE_OFFPAGE; @@ -1701,7 +1702,8 @@ uma_startup(void *bootmem, int boot_page * that we need to go to offpage slab headers. Or, if we do, * then we trap that condition below and panic in the INVARIANTS case. */ - wsize = UMA_SLAB_SIZE - sizeof(struct uma_slab) - UMA_MAX_WASTE; + wsize = UMA_SLAB_SIZE - sizeof(struct uma_slab) - + (UMA_SLAB_SIZE / UMA_MAX_WASTE); totsize = wsize; objsize = UMA_SMALLEST_UNIT; while (totsize >= wsize) { @@ -1714,7 +1716,8 @@ uma_startup(void *bootmem, int boot_page objsize--; uma_max_ipers = MAX(UMA_SLAB_SIZE / objsize, 64); - wsize = UMA_SLAB_SIZE - sizeof(struct uma_slab_refcnt) - UMA_MAX_WASTE; + wsize = UMA_SLAB_SIZE - sizeof(struct uma_slab_refcnt) - + (UMA_SLAB_SIZE / UMA_MAX_WASTE); totsize = wsize; objsize = UMA_SMALLEST_UNIT; while (totsize >= wsize) { Modified: projects/counters/sys/vm/uma_int.h ============================================================================== --- projects/counters/sys/vm/uma_int.h Tue Jan 29 13:49:08 2013 (r246069) +++ projects/counters/sys/vm/uma_int.h Tue Jan 29 13:49:58 2013 (r246070) @@ -120,8 +120,8 @@ #define UMA_BOOT_PAGES 64 /* Pages allocated for startup */ -/* Max waste before going to off page slab management */ -#define UMA_MAX_WASTE (UMA_SLAB_SIZE / 10) +/* Max waste percentage before going to off page slab management */ +#define UMA_MAX_WASTE 10 /* * I doubt there will be many cases where this is exceeded. This is the initial From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 14:49:51 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 908421ED; Tue, 29 Jan 2013 14:49:51 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 78E6EF89; Tue, 29 Jan 2013 14:49:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0TEnp7d036855; Tue, 29 Jan 2013 14:49:51 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0TEnkgV036826; Tue, 29 Jan 2013 14:49:46 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201301291449.r0TEnkgV036826@svn.freebsd.org> From: Davide Italiano Date: Tue, 29 Jan 2013 14:49:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246071 - in projects/calloutng: . bin/cp bin/df bin/ln bin/ls bin/ps bin/pwait bin/sh bin/test cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensola... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 14:49:51 -0000 Author: davide Date: Tue Jan 29 14:49:45 2013 New Revision: 246071 URL: http://svnweb.freebsd.org/changeset/base/246071 Log: Merge head r236314 through r246070. Added: projects/calloutng/contrib/dialog/samples/dselect - copied unchanged from r246070, head/contrib/dialog/samples/dselect projects/calloutng/contrib/dialog/samples/valgrind.log - copied unchanged from r246070, head/contrib/dialog/samples/valgrind.log projects/calloutng/contrib/libcxxrt/atomic.h - copied unchanged from r246070, head/contrib/libcxxrt/atomic.h projects/calloutng/lib/libc/arm/Symbol_oabi.map - copied unchanged from r246070, head/lib/libc/arm/Symbol_oabi.map projects/calloutng/lib/libc/arm/aeabi/ - copied from r246070, head/lib/libc/arm/aeabi/ projects/calloutng/lib/libc/nls/zh_CN.GB18030.msg - copied unchanged from r246070, head/lib/libc/nls/zh_CN.GB18030.msg projects/calloutng/lib/libc/nls/zh_CN.GB2312.msg - copied unchanged from r246070, head/lib/libc/nls/zh_CN.GB2312.msg projects/calloutng/lib/libc/nls/zh_CN.UTF-8.msg - copied unchanged from r246070, head/lib/libc/nls/zh_CN.UTF-8.msg - copied from r246070, head/lib/libvmmapi/ - copied unchanged from r246070, head/share/man/man4/bhyve.4 - copied unchanged from r246070, head/sys/amd64/include/vmm.h - copied unchanged from r246070, head/sys/amd64/include/vmm_dev.h - copied unchanged from r246070, head/sys/amd64/include/vmm_instruction_emul.h - copied from r246070, head/sys/amd64/vmm/ projects/calloutng/sys/arm/allwinner/ - copied from r246070, head/sys/arm/allwinner/ projects/calloutng/sys/arm/conf/CUBIEBOARD - copied unchanged from r246070, head/sys/arm/conf/CUBIEBOARD projects/calloutng/sys/arm/conf/DREAMPLUG-1001 - copied unchanged from r246070, head/sys/arm/conf/DREAMPLUG-1001 projects/calloutng/sys/boot/fdt/dts/cubieboard.dts - copied unchanged from r246070, head/sys/boot/fdt/dts/cubieboard.dts projects/calloutng/sys/boot/fdt/dts/dreamplug-1001.dts - copied unchanged from r246070, head/sys/boot/fdt/dts/dreamplug-1001.dts projects/calloutng/sys/boot/fdt/dts/dreamplug-1001N.dts - copied unchanged from r246070, head/sys/boot/fdt/dts/dreamplug-1001N.dts projects/calloutng/sys/contrib/dev/acpica/compiler/aslfileio.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/compiler/aslfileio.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslhex.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/compiler/aslhex.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslmethod.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/compiler/aslmethod.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslnamesp.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/compiler/aslnamesp.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslxref.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/compiler/aslxref.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbconvert.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/components/debugger/dbconvert.c projects/calloutng/sys/contrib/dev/acpica/components/events/evhandler.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/components/events/evhandler.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsprepkg.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/components/namespace/nsprepkg.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psobject.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/components/parser/psobject.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psopinfo.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/components/parser/psopinfo.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utownerid.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/components/utilities/utownerid.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utstring.c - copied unchanged from r246070, head/sys/contrib/dev/acpica/components/utilities/utstring.c projects/calloutng/sys/dev/altera/avgen/altera_avgen_fdt.c - copied unchanged from r246070, head/sys/dev/altera/avgen/altera_avgen_fdt.c projects/calloutng/sys/dev/altera/avgen/altera_avgen_nexus.c - copied unchanged from r246070, head/sys/dev/altera/avgen/altera_avgen_nexus.c projects/calloutng/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c - copied unchanged from r246070, head/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c projects/calloutng/sys/dev/altera/sdcard/altera_sdcard_fdt.c - copied unchanged from r246070, head/sys/dev/altera/sdcard/altera_sdcard_fdt.c projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_spectral.c - copied unchanged from r246070, head/sys/dev/ath/ath_hal/ar5416/ar5416_spectral.c projects/calloutng/sys/dev/ath/if_ath_spectral.c - copied unchanged from r246070, head/sys/dev/ath/if_ath_spectral.c projects/calloutng/sys/dev/ath/if_ath_spectral.h - copied unchanged from r246070, head/sys/dev/ath/if_ath_spectral.h - copied from r246070, head/sys/dev/blackhole/ - copied from r246070, head/sys/dev/bvm/ projects/calloutng/sys/dev/isf/isf_fdt.c - copied unchanged from r246070, head/sys/dev/isf/isf_fdt.c projects/calloutng/sys/dev/terasic/de4led/terasic_de4led_fdt.c - copied unchanged from r246070, head/sys/dev/terasic/de4led/terasic_de4led_fdt.c projects/calloutng/sys/dev/terasic/mtl/terasic_mtl_fdt.c - copied unchanged from r246070, head/sys/dev/terasic/mtl/terasic_mtl_fdt.c projects/calloutng/sys/libkern/arm/ldivmod.S - copied unchanged from r246070, head/sys/libkern/arm/ldivmod.S projects/calloutng/sys/libkern/arm/ldivmod_helper.c - copied unchanged from r246070, head/sys/libkern/arm/ldivmod_helper.c projects/calloutng/sys/mips/mips/bus_space_fdt.c - copied unchanged from r246070, head/sys/mips/mips/bus_space_fdt.c - copied from r246070, head/sys/modules/blackhole/ - copied from r246070, head/sys/modules/vmm/ projects/calloutng/tools/build/options/WITHOUT_LZMA_SUPPORT - copied unchanged from r246070, head/tools/build/options/WITHOUT_LZMA_SUPPORT projects/calloutng/tools/build/options/WITHOUT_PC_SYSINSTALL - copied unchanged from r246070, head/tools/build/options/WITHOUT_PC_SYSINSTALL projects/calloutng/tools/build/options/WITH_ARM_EABI - copied unchanged from r246070, head/tools/build/options/WITH_ARM_EABI projects/calloutng/tools/build/options/WITH_NMTREE - copied unchanged from r246070, head/tools/build/options/WITH_NMTREE projects/calloutng/tools/build/options/WITH_OPENSSH_NONE_CIPHER - copied unchanged from r246070, head/tools/build/options/WITH_OPENSSH_NONE_CIPHER projects/calloutng/tools/regression/bin/sh/execution/subshell1.0 - copied unchanged from r246070, head/tools/regression/bin/sh/execution/subshell1.0 projects/calloutng/tools/regression/bin/sh/execution/subshell1.0.stdout - copied unchanged from r246070, head/tools/regression/bin/sh/execution/subshell1.0.stdout projects/calloutng/tools/regression/bin/sh/execution/subshell2.0 - copied unchanged from r246070, head/tools/regression/bin/sh/execution/subshell2.0 projects/calloutng/tools/regression/bin/sh/execution/subshell3.0 - copied unchanged from r246070, head/tools/regression/bin/sh/execution/subshell3.0 projects/calloutng/tools/regression/bin/sh/execution/subshell4.0 - copied unchanged from r246070, head/tools/regression/bin/sh/execution/subshell4.0 projects/calloutng/tools/regression/bin/sh/expansion/cmdsubst14.0 - copied unchanged from r246070, head/tools/regression/bin/sh/expansion/cmdsubst14.0 projects/calloutng/tools/regression/bin/sh/expansion/cmdsubst15.0 - copied unchanged from r246070, head/tools/regression/bin/sh/expansion/cmdsubst15.0 projects/calloutng/tools/regression/bin/sh/expansion/cmdsubst16.0 - copied unchanged from r246070, head/tools/regression/bin/sh/expansion/cmdsubst16.0 projects/calloutng/tools/regression/bin/sh/expansion/cmdsubst17.0 - copied unchanged from r246070, head/tools/regression/bin/sh/expansion/cmdsubst17.0 projects/calloutng/tools/regression/bin/sh/parser/empty-braces1.0 - copied unchanged from r246070, head/tools/regression/bin/sh/parser/empty-braces1.0 projects/calloutng/tools/tools/ath/athspectral/ - copied from r246070, head/tools/tools/ath/athspectral/ projects/calloutng/usr.bin/dtc/ - copied from r246070, head/usr.bin/dtc/ - copied from r246070, head/usr.sbin/bhyve/ - copied from r246070, head/usr.sbin/bhyvectl/ - copied from r246070, head/usr.sbin/bhyveload/ projects/calloutng/usr.sbin/bsdconfig/share/script.subr - copied unchanged from r246070, head/usr.sbin/bsdconfig/share/script.subr projects/calloutng/usr.sbin/bsdconfig/share/variable.subr - copied unchanged from r246070, head/usr.sbin/bsdconfig/share/variable.subr projects/calloutng/usr.sbin/bsdinstall/partedit/sade.8 - copied unchanged from r246070, head/usr.sbin/bsdinstall/partedit/sade.8 projects/calloutng/usr.sbin/bsdinstall/partedit/scripted.c - copied unchanged from r246070, head/usr.sbin/bsdinstall/partedit/scripted.c projects/calloutng/usr.sbin/bsdinstall/scripts/script - copied unchanged from r246070, head/usr.sbin/bsdinstall/scripts/script Directory Properties: projects/calloutng/lib/libvmmapi/ (props changed) projects/calloutng/share/man/man4/bhyve.4 (props changed) projects/calloutng/sys/amd64/include/vmm.h (props changed) projects/calloutng/sys/amd64/include/vmm_dev.h (props changed) projects/calloutng/sys/amd64/include/vmm_instruction_emul.h (props changed) projects/calloutng/sys/amd64/vmm/ (props changed) projects/calloutng/sys/dev/blackhole/ (props changed) projects/calloutng/sys/dev/bvm/ (props changed) projects/calloutng/sys/modules/blackhole/ (props changed) projects/calloutng/sys/modules/vmm/ (props changed) projects/calloutng/usr.sbin/bhyve/ (props changed) projects/calloutng/usr.sbin/bhyvectl/ (props changed) projects/calloutng/usr.sbin/bhyveload/ (props changed) Deleted: projects/calloutng/contrib/dialog/samples/dft-cancel projects/calloutng/contrib/dialog/samples/dft-extra projects/calloutng/contrib/dialog/samples/dft-help projects/calloutng/contrib/dialog/samples/dft-no projects/calloutng/contrib/dialog/samples/fselect0 projects/calloutng/contrib/dialog/samples/with-dquotes projects/calloutng/contrib/dialog/samples/with-squotes projects/calloutng/lib/libdisk/ projects/calloutng/share/examples/cvsup/gnats-supfile projects/calloutng/share/mk/bsd.compat.mk projects/calloutng/sys/arm/mv/kirkwood/files.sheevaplug projects/calloutng/sys/arm/mv/kirkwood/sheevaplug.c projects/calloutng/sys/arm/mv/kirkwood/std.sheevaplug projects/calloutng/sys/dev/cxgbe/common/jhash.h projects/calloutng/sys/dev/netmap/netmap_mem1.c projects/calloutng/sys/dev/xen/evtchn/ projects/calloutng/sys/dev/xen/xenpci/machine_reboot.c projects/calloutng/usr.sbin/sade/ Modified: projects/calloutng/COPYRIGHT projects/calloutng/LOCKS projects/calloutng/Makefile.inc1 projects/calloutng/ObsoleteFiles.inc projects/calloutng/UPDATING projects/calloutng/bin/cp/cp.c projects/calloutng/bin/cp/utils.c projects/calloutng/bin/df/df.1 projects/calloutng/bin/df/df.c projects/calloutng/bin/ln/ln.1 projects/calloutng/bin/ls/util.c projects/calloutng/bin/ps/extern.h projects/calloutng/bin/ps/fmt.c projects/calloutng/bin/ps/ps.c projects/calloutng/bin/pwait/pwait.c projects/calloutng/bin/sh/TOUR projects/calloutng/bin/sh/eval.c projects/calloutng/bin/sh/exec.c projects/calloutng/bin/sh/init.h projects/calloutng/bin/sh/input.c projects/calloutng/bin/sh/jobs.c projects/calloutng/bin/sh/main.c projects/calloutng/bin/sh/mkinit.c projects/calloutng/bin/sh/parser.c projects/calloutng/bin/sh/sh.1 projects/calloutng/bin/sh/var.c projects/calloutng/bin/test/test.1 projects/calloutng/cddl/contrib/opensolaris/cmd/zdb/zdb.c projects/calloutng/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/calloutng/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c projects/calloutng/cddl/lib/libdtrace/Makefile projects/calloutng/contrib/compiler-rt/LICENSE.TXT projects/calloutng/contrib/compiler-rt/lib/arm/aeabi_uldivmod.S projects/calloutng/contrib/compiler-rt/lib/arm/divsi3.S projects/calloutng/contrib/compiler-rt/lib/arm/udivsi3.S projects/calloutng/contrib/compiler-rt/lib/cmpdi2.c projects/calloutng/contrib/compiler-rt/lib/fixsfdi.c projects/calloutng/contrib/compiler-rt/lib/int_endianness.h projects/calloutng/contrib/compiler-rt/lib/int_lib.h projects/calloutng/contrib/compiler-rt/lib/ucmpdi2.c projects/calloutng/contrib/dialog/CHANGES projects/calloutng/contrib/dialog/VERSION projects/calloutng/contrib/dialog/aclocal.m4 projects/calloutng/contrib/dialog/arrows.c projects/calloutng/contrib/dialog/buttons.c projects/calloutng/contrib/dialog/calendar.c projects/calloutng/contrib/dialog/checklist.c projects/calloutng/contrib/dialog/columns.c projects/calloutng/contrib/dialog/configure projects/calloutng/contrib/dialog/configure.in projects/calloutng/contrib/dialog/dialog.1 projects/calloutng/contrib/dialog/dialog.3 projects/calloutng/contrib/dialog/dialog.c projects/calloutng/contrib/dialog/dialog.h projects/calloutng/contrib/dialog/dlg_colors.h projects/calloutng/contrib/dialog/dlg_keys.c projects/calloutng/contrib/dialog/dlg_keys.h projects/calloutng/contrib/dialog/editbox.c projects/calloutng/contrib/dialog/formbox.c projects/calloutng/contrib/dialog/fselect.c projects/calloutng/contrib/dialog/guage.c projects/calloutng/contrib/dialog/headers-sh.in projects/calloutng/contrib/dialog/inputbox.c projects/calloutng/contrib/dialog/inputstr.c projects/calloutng/contrib/dialog/makefile.in projects/calloutng/contrib/dialog/menubox.c projects/calloutng/contrib/dialog/mixedform.c projects/calloutng/contrib/dialog/mixedgauge.c projects/calloutng/contrib/dialog/msgbox.c projects/calloutng/contrib/dialog/package/debian/changelog projects/calloutng/contrib/dialog/package/dialog.spec projects/calloutng/contrib/dialog/pause.c projects/calloutng/contrib/dialog/po/cs.po projects/calloutng/contrib/dialog/po/el.po projects/calloutng/contrib/dialog/po/hr.po projects/calloutng/contrib/dialog/po/sr.po projects/calloutng/contrib/dialog/prgbox.c projects/calloutng/contrib/dialog/progressbox.c projects/calloutng/contrib/dialog/rc.c projects/calloutng/contrib/dialog/samples/copifuncs/admin.funcs projects/calloutng/contrib/dialog/samples/copifuncs/common.funcs (contents, props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.funcs projects/calloutng/contrib/dialog/samples/copifuncs/copi.ifman2 (contents, props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.ifpoll2 (contents, props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.ifreq2 (contents, props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.sendifm1 projects/calloutng/contrib/dialog/samples/copifuncs/copi.wheel projects/calloutng/contrib/dialog/samples/copismall projects/calloutng/contrib/dialog/samples/debian.rc projects/calloutng/contrib/dialog/samples/dialog.py projects/calloutng/contrib/dialog/samples/form1 projects/calloutng/contrib/dialog/samples/inputmenu projects/calloutng/contrib/dialog/samples/inputmenu-stdout projects/calloutng/contrib/dialog/samples/inputmenu1 projects/calloutng/contrib/dialog/samples/inputmenu2 projects/calloutng/contrib/dialog/samples/inputmenu3 projects/calloutng/contrib/dialog/samples/inputmenu4 projects/calloutng/contrib/dialog/samples/killall projects/calloutng/contrib/dialog/samples/prgbox projects/calloutng/contrib/dialog/samples/prgbox2 projects/calloutng/contrib/dialog/samples/report-button projects/calloutng/contrib/dialog/samples/report-edit projects/calloutng/contrib/dialog/samples/report-string projects/calloutng/contrib/dialog/samples/report-tempfile projects/calloutng/contrib/dialog/samples/report-yesno projects/calloutng/contrib/dialog/samples/setup-edit projects/calloutng/contrib/dialog/samples/setup-tempfile projects/calloutng/contrib/dialog/samples/setup-utf8 projects/calloutng/contrib/dialog/samples/setup-vars projects/calloutng/contrib/dialog/samples/slackware.rc projects/calloutng/contrib/dialog/samples/sourcemage.rc projects/calloutng/contrib/dialog/samples/suse.rc projects/calloutng/contrib/dialog/samples/tailboxbg projects/calloutng/contrib/dialog/samples/tailboxbg1 projects/calloutng/contrib/dialog/samples/tailboxbg2 projects/calloutng/contrib/dialog/samples/testdata-8bit projects/calloutng/contrib/dialog/samples/wheel projects/calloutng/contrib/dialog/samples/whiptail.rc projects/calloutng/contrib/dialog/tailbox.c projects/calloutng/contrib/dialog/textbox.c projects/calloutng/contrib/dialog/timebox.c projects/calloutng/contrib/dialog/trace.c projects/calloutng/contrib/dialog/ui_getc.c projects/calloutng/contrib/dialog/util.c projects/calloutng/contrib/dialog/yesno.c projects/calloutng/contrib/file/Magdir/lua projects/calloutng/contrib/gcc/config/arm/freebsd.h projects/calloutng/contrib/gcc/dwarf2out.c projects/calloutng/contrib/gcc/unwind-dw2.c projects/calloutng/contrib/jemalloc/COPYING projects/calloutng/contrib/jemalloc/ChangeLog projects/calloutng/contrib/jemalloc/FREEBSD-diffs projects/calloutng/contrib/jemalloc/FREEBSD-upgrade projects/calloutng/contrib/jemalloc/VERSION projects/calloutng/contrib/jemalloc/doc/jemalloc.3 projects/calloutng/contrib/jemalloc/include/jemalloc/internal/arena.h projects/calloutng/contrib/jemalloc/include/jemalloc/internal/ckh.h projects/calloutng/contrib/jemalloc/include/jemalloc/internal/hash.h projects/calloutng/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h projects/calloutng/contrib/jemalloc/include/jemalloc/internal/private_namespace.h projects/calloutng/contrib/jemalloc/include/jemalloc/internal/tcache.h projects/calloutng/contrib/jemalloc/include/jemalloc/jemalloc.h projects/calloutng/contrib/jemalloc/include/jemalloc/jemalloc_defs.h projects/calloutng/contrib/jemalloc/src/arena.c projects/calloutng/contrib/jemalloc/src/chunk.c projects/calloutng/contrib/jemalloc/src/chunk_dss.c projects/calloutng/contrib/jemalloc/src/ckh.c projects/calloutng/contrib/jemalloc/src/ctl.c projects/calloutng/contrib/jemalloc/src/jemalloc.c projects/calloutng/contrib/jemalloc/src/prof.c projects/calloutng/contrib/jemalloc/src/tcache.c projects/calloutng/contrib/libcxxrt/exception.cc projects/calloutng/contrib/libcxxrt/memory.cc projects/calloutng/contrib/libcxxrt/typeinfo.h projects/calloutng/contrib/one-true-awk/FIXES projects/calloutng/contrib/one-true-awk/main.c projects/calloutng/contrib/one-true-awk/makefile projects/calloutng/contrib/one-true-awk/proto.h projects/calloutng/contrib/one-true-awk/run.c projects/calloutng/contrib/one-true-awk/tran.c projects/calloutng/contrib/sendmail/FREEBSD-upgrade projects/calloutng/contrib/sendmail/LICENSE projects/calloutng/contrib/sendmail/PGPKEYS projects/calloutng/contrib/sendmail/RELEASE_NOTES projects/calloutng/contrib/sendmail/cf/README projects/calloutng/contrib/sendmail/cf/cf/submit.cf projects/calloutng/contrib/sendmail/cf/feature/ldap_routing.m4 projects/calloutng/contrib/sendmail/cf/m4/proto.m4 projects/calloutng/contrib/sendmail/cf/m4/version.m4 projects/calloutng/contrib/sendmail/doc/op/op.me projects/calloutng/contrib/sendmail/include/libmilter/mfapi.h projects/calloutng/contrib/sendmail/include/sm/clock.h projects/calloutng/contrib/sendmail/include/sm/tailq.h projects/calloutng/contrib/sendmail/libmilter/Makefile.m4 projects/calloutng/contrib/sendmail/libmilter/docs/api.html projects/calloutng/contrib/sendmail/libmilter/docs/smfi_setsymlist.html projects/calloutng/contrib/sendmail/libmilter/docs/smfi_settimeout.html projects/calloutng/contrib/sendmail/libmilter/worker.c projects/calloutng/contrib/sendmail/src/Makefile.m4 projects/calloutng/contrib/sendmail/src/TRACEFLAGS projects/calloutng/contrib/sendmail/src/collect.c projects/calloutng/contrib/sendmail/src/conf.c projects/calloutng/contrib/sendmail/src/daemon.c projects/calloutng/contrib/sendmail/src/deliver.c projects/calloutng/contrib/sendmail/src/headers.c projects/calloutng/contrib/sendmail/src/main.c projects/calloutng/contrib/sendmail/src/map.c projects/calloutng/contrib/sendmail/src/milter.c projects/calloutng/contrib/sendmail/src/parseaddr.c projects/calloutng/contrib/sendmail/src/queue.c projects/calloutng/contrib/sendmail/src/sasl.c projects/calloutng/contrib/sendmail/src/savemail.c projects/calloutng/contrib/sendmail/src/sendmail.h projects/calloutng/contrib/sendmail/src/srvrsmtp.c projects/calloutng/contrib/sendmail/src/stab.c projects/calloutng/contrib/sendmail/src/util.c projects/calloutng/contrib/sendmail/src/version.c projects/calloutng/crypto/openssl/crypto/bn/bn_word.c projects/calloutng/crypto/openssl/crypto/opensslv.h projects/calloutng/etc/Makefile projects/calloutng/etc/login.conf projects/calloutng/etc/mtree/BSD.usr.dist projects/calloutng/etc/mtree/BSD.var.dist projects/calloutng/etc/namedb/named.root projects/calloutng/etc/rc.d/jail projects/calloutng/etc/rc.subr projects/calloutng/etc/sendmail/freebsd.mc projects/calloutng/etc/sendmail/freebsd.submit.mc projects/calloutng/etc/sendmail/freefall.mc projects/calloutng/gnu/lib/csu/Makefile projects/calloutng/gnu/lib/libdialog/dlg_config.h projects/calloutng/gnu/lib/libgcc/Makefile projects/calloutng/gnu/lib/libgcov/Makefile projects/calloutng/gnu/lib/libstdc++/Makefile projects/calloutng/gnu/lib/libsupc++/Version.map projects/calloutng/gnu/usr.bin/Makefile projects/calloutng/gnu/usr.bin/binutils/ld/armelf_fbsd.sh projects/calloutng/gnu/usr.bin/binutils/ld/armelfb_fbsd.sh projects/calloutng/gnu/usr.bin/cc/Makefile.inc projects/calloutng/gnu/usr.bin/cc/c++/Makefile projects/calloutng/gnu/usr.bin/cc/c++filt/Makefile projects/calloutng/gnu/usr.bin/cc/cc1/Makefile projects/calloutng/gnu/usr.bin/cc/cc1plus/Makefile projects/calloutng/gnu/usr.bin/cc/cc_int/Makefile projects/calloutng/gnu/usr.bin/cc/cc_tools/Makefile projects/calloutng/gnu/usr.bin/cc/doc/Makefile projects/calloutng/gnu/usr.bin/cc/gcov/Makefile projects/calloutng/gnu/usr.bin/cc/include/Makefile projects/calloutng/gnu/usr.bin/cc/libcpp/Makefile projects/calloutng/gnu/usr.bin/cc/libdecnumber/Makefile projects/calloutng/gnu/usr.bin/cc/libiberty/Makefile projects/calloutng/gnu/usr.bin/dialog/Makefile projects/calloutng/gnu/usr.bin/gdb/kgdb/main.c projects/calloutng/gnu/usr.bin/grep/grep.c projects/calloutng/include/arpa/Makefile projects/calloutng/include/time.h projects/calloutng/kerberos5/lib/libkrb5/Makefile projects/calloutng/lib/Makefile projects/calloutng/lib/csu/amd64/crt1.c projects/calloutng/lib/csu/arm/crt1.c projects/calloutng/lib/csu/common/ignore_init.c projects/calloutng/lib/csu/i386-elf/crt1_c.c projects/calloutng/lib/csu/mips/crt1.c projects/calloutng/lib/csu/powerpc/crt1.c projects/calloutng/lib/csu/powerpc64/crt1.c projects/calloutng/lib/csu/sparc64/crt1.c projects/calloutng/lib/libarchive/Makefile projects/calloutng/lib/libbsnmp/libbsnmp/Makefile projects/calloutng/lib/libc/arm/Makefile.inc projects/calloutng/lib/libc/arm/SYS.h projects/calloutng/lib/libc/arm/Symbol.map projects/calloutng/lib/libc/arm/gen/Makefile.inc projects/calloutng/lib/libc/arm/softfloat/arm-gcc.h projects/calloutng/lib/libc/gen/Makefile.inc projects/calloutng/lib/libc/gen/Symbol.map projects/calloutng/lib/libc/net/name6.c projects/calloutng/lib/libc/nls/Makefile.inc projects/calloutng/lib/libc/quad/Makefile.inc projects/calloutng/lib/libc/sys/chroot.2 projects/calloutng/lib/libc/sys/kqueue.2 projects/calloutng/lib/libc/sys/mlock.2 projects/calloutng/lib/libc/sys/mlockall.2 projects/calloutng/lib/libc/sys/posix_fadvise.2 projects/calloutng/lib/libcompiler_rt/Makefile projects/calloutng/lib/libcxxrt/Version.map projects/calloutng/lib/libedit/editline.3 projects/calloutng/lib/libedit/editrc.5 projects/calloutng/lib/libedit/map.c projects/calloutng/lib/libproc/proc_rtld.c projects/calloutng/lib/libproc/test/t1-bkpt/t1-bkpt.c projects/calloutng/lib/libradius/libradius.3 projects/calloutng/lib/libthr/thread/thr_init.c projects/calloutng/lib/libthr/thread/thr_kern.c projects/calloutng/lib/libutil/gr_util.c projects/calloutng/lib/libutil/libutil.h projects/calloutng/lib/libutil/pw_util.c projects/calloutng/lib/ncurses/form/Makefile projects/calloutng/lib/ncurses/menu/Makefile projects/calloutng/lib/ncurses/ncurses/Makefile projects/calloutng/lib/ncurses/panel/Makefile projects/calloutng/libexec/rtld-elf/Makefile projects/calloutng/libexec/tftpd/tftp-io.c projects/calloutng/release/amd64/mkisoimages.sh projects/calloutng/release/generate-release.sh projects/calloutng/release/i386/mkisoimages.sh projects/calloutng/release/ia64/mkisoimages.sh projects/calloutng/release/pc98/mkisoimages.sh projects/calloutng/release/powerpc/mkisoimages.sh projects/calloutng/release/rc.local projects/calloutng/release/sparc64/mkisoimages.sh projects/calloutng/sbin/geom/class/journal/geom_journal_ufs.c projects/calloutng/sbin/geom/class/part/gpart.8 projects/calloutng/sbin/geom/class/raid/graid.8 projects/calloutng/sbin/geom/class/raid3/geom_raid3.c projects/calloutng/sbin/geom/class/raid3/graid3.8 projects/calloutng/sbin/ifconfig/af_inet6.c projects/calloutng/sbin/ifconfig/af_nd6.c projects/calloutng/sbin/ifconfig/ifconfig.8 projects/calloutng/sbin/mount_nullfs/mount_nullfs.c projects/calloutng/sbin/newfs_msdos/newfs_msdos.c projects/calloutng/sbin/pflogd/Makefile projects/calloutng/sbin/route/route.c projects/calloutng/sbin/setkey/Makefile projects/calloutng/sbin/sysctl/sysctl.c projects/calloutng/secure/lib/libssh/Makefile projects/calloutng/secure/usr.bin/ssh/Makefile projects/calloutng/secure/usr.sbin/sshd/Makefile projects/calloutng/share/examples/Makefile projects/calloutng/share/examples/cvsup/README projects/calloutng/share/examples/cvsup/cvs-supfile projects/calloutng/share/examples/cvsup/ports-supfile projects/calloutng/share/examples/cvsup/stable-supfile projects/calloutng/share/examples/cvsup/standard-supfile projects/calloutng/share/info/Makefile projects/calloutng/share/man/man4/Makefile projects/calloutng/share/man/man4/carp.4 projects/calloutng/share/man/man4/mfi.4 projects/calloutng/share/man/man4/mps.4 projects/calloutng/share/man/man4/ng_ubt.4 projects/calloutng/share/man/man4/rl.4 projects/calloutng/share/man/man4/stf.4 projects/calloutng/share/man/man4/wbwd.4 projects/calloutng/share/man/man5/make.conf.5 projects/calloutng/share/man/man5/src.conf.5 projects/calloutng/share/man/man9/VFS_SET.9 projects/calloutng/share/man/man9/sleep.9 projects/calloutng/share/man/man9/vm_map_insert.9 projects/calloutng/share/man/man9/vm_map_stack.9 projects/calloutng/share/misc/committers-doc.dot projects/calloutng/share/misc/committers-ports.dot projects/calloutng/share/misc/committers-src.dot projects/calloutng/share/mk/Makefile projects/calloutng/share/mk/bsd.README projects/calloutng/share/mk/bsd.cpu.mk projects/calloutng/share/mk/bsd.incs.mk projects/calloutng/share/mk/bsd.info.mk projects/calloutng/share/mk/bsd.init.mk projects/calloutng/share/mk/bsd.lib.mk projects/calloutng/share/mk/bsd.libnames.mk projects/calloutng/share/mk/bsd.links.mk projects/calloutng/share/mk/bsd.man.mk projects/calloutng/share/mk/bsd.own.mk projects/calloutng/share/mk/bsd.prog.mk projects/calloutng/share/mk/sys.mk projects/calloutng/share/monetdef/Makefile projects/calloutng/share/msgdef/Makefile projects/calloutng/share/numericdef/Makefile projects/calloutng/share/zoneinfo/Makefile projects/calloutng/sys/amd64/amd64/pmap.c projects/calloutng/sys/amd64/amd64/vm_machdep.c projects/calloutng/sys/amd64/conf/GENERIC projects/calloutng/sys/amd64/conf/NOTES projects/calloutng/sys/amd64/linux32/linux.h projects/calloutng/sys/arm/arm/busdma_machdep-v6.c projects/calloutng/sys/arm/arm/cpufunc.c projects/calloutng/sys/arm/arm/cpufunc_asm_arm10.S projects/calloutng/sys/arm/arm/cpufunc_asm_arm9.S projects/calloutng/sys/arm/arm/db_trace.c projects/calloutng/sys/arm/arm/intr.c projects/calloutng/sys/arm/arm/locore.S projects/calloutng/sys/arm/arm/machdep.c projects/calloutng/sys/arm/arm/pl310.c projects/calloutng/sys/arm/arm/pmap-v6.c projects/calloutng/sys/arm/arm/swtch.S projects/calloutng/sys/arm/arm/trap.c projects/calloutng/sys/arm/arm/vm_machdep.c projects/calloutng/sys/arm/broadcom/bcm2835/bcm2835_fb.c projects/calloutng/sys/arm/broadcom/bcm2835/bcm2835_machdep.c projects/calloutng/sys/arm/broadcom/bcm2835/bcm2835_systimer.c projects/calloutng/sys/arm/conf/BEAGLEBONE projects/calloutng/sys/arm/conf/DOCKSTAR projects/calloutng/sys/arm/conf/NOTES projects/calloutng/sys/arm/conf/SHEEVAPLUG projects/calloutng/sys/arm/include/atomic.h projects/calloutng/sys/arm/include/intr.h projects/calloutng/sys/arm/include/machdep.h projects/calloutng/sys/arm/include/pcpu.h projects/calloutng/sys/arm/include/pl310.h projects/calloutng/sys/arm/include/pmap.h projects/calloutng/sys/arm/include/proc.h projects/calloutng/sys/arm/mv/mv_machdep.c projects/calloutng/sys/arm/ti/am335x/am335x_scm_padconf.c projects/calloutng/sys/arm/ti/cpsw/if_cpsw.c projects/calloutng/sys/arm/ti/cpsw/if_cpswreg.h projects/calloutng/sys/arm/ti/cpsw/if_cpswvar.h projects/calloutng/sys/arm/ti/omap4/omap4_l2cache.c projects/calloutng/sys/arm/ti/omap4/omap4_smc.h projects/calloutng/sys/arm/ti/omap4/std.omap4 projects/calloutng/sys/arm/ti/ti_cpuid.c projects/calloutng/sys/arm/ti/ti_cpuid.h projects/calloutng/sys/arm/ti/ti_scm.c projects/calloutng/sys/arm/versatile/versatile_clcd.c projects/calloutng/sys/boot/arm/uboot/Makefile projects/calloutng/sys/boot/common/interp_forth.c projects/calloutng/sys/boot/fdt/dts/beaglebone.dts projects/calloutng/sys/boot/fdt/dts/pandaboard.dts projects/calloutng/sys/boot/i386/efi/Makefile projects/calloutng/sys/boot/i386/libi386/bootinfo64.c projects/calloutng/sys/boot/i386/libi386/comconsole.c projects/calloutng/sys/boot/i386/libi386/devicename.c projects/calloutng/sys/boot/i386/libi386/pxe.c projects/calloutng/sys/boot/sparc64/loader/main.c projects/calloutng/sys/boot/userboot/userboot/Makefile projects/calloutng/sys/boot/userboot/userboot/main.c projects/calloutng/sys/cam/ctl/ctl.c projects/calloutng/sys/cam/ctl/scsi_ctl.c projects/calloutng/sys/cam/scsi/scsi_all.c projects/calloutng/sys/cam/scsi/scsi_cd.c projects/calloutng/sys/cam/scsi/scsi_da.c projects/calloutng/sys/cam/scsi/scsi_enc_ses.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/ddt.h projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/calloutng/sys/compat/linux/linux_futex.c projects/calloutng/sys/compat/linux/linux_socket.c projects/calloutng/sys/conf/Makefile.arm projects/calloutng/sys/conf/files projects/calloutng/sys/conf/files.amd64 projects/calloutng/sys/conf/files.arm projects/calloutng/sys/conf/files.i386 projects/calloutng/sys/conf/files.mips projects/calloutng/sys/conf/ldscript.arm projects/calloutng/sys/conf/options projects/calloutng/sys/conf/options.mips projects/calloutng/sys/contrib/dev/acpica/changes.txt (contents, props changed) projects/calloutng/sys/contrib/dev/acpica/common/adfile.c projects/calloutng/sys/contrib/dev/acpica/common/adisasm.c projects/calloutng/sys/contrib/dev/acpica/common/adwalk.c projects/calloutng/sys/contrib/dev/acpica/common/ahpredef.c projects/calloutng/sys/contrib/dev/acpica/common/dmextern.c projects/calloutng/sys/contrib/dev/acpica/common/dmrestag.c projects/calloutng/sys/contrib/dev/acpica/common/dmtable.c projects/calloutng/sys/contrib/dev/acpica/common/dmtbdump.c projects/calloutng/sys/contrib/dev/acpica/common/dmtbinfo.c projects/calloutng/sys/contrib/dev/acpica/common/getopt.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslanalyze.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslbtypes.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslcodegen.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslcompile.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/calloutng/sys/contrib/dev/acpica/compiler/aslcompiler.l projects/calloutng/sys/contrib/dev/acpica/compiler/aslcompiler.y projects/calloutng/sys/contrib/dev/acpica/compiler/asldefine.h projects/calloutng/sys/contrib/dev/acpica/compiler/aslerror.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslfiles.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslfold.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslglobal.h projects/calloutng/sys/contrib/dev/acpica/compiler/asllength.c projects/calloutng/sys/contrib/dev/acpica/compiler/asllisting.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslload.c projects/calloutng/sys/contrib/dev/acpica/compiler/asllookup.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslmain.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslmap.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslmessages.h projects/calloutng/sys/contrib/dev/acpica/compiler/aslopcodes.c projects/calloutng/sys/contrib/dev/acpica/compiler/asloperands.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslopt.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslpredef.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslresource.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslrestype1.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslrestype1i.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslrestype2.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslrestype2d.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslrestype2e.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslrestype2q.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslrestype2s.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslrestype2w.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslstartup.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslstubs.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslsupport.l projects/calloutng/sys/contrib/dev/acpica/compiler/asltransform.c projects/calloutng/sys/contrib/dev/acpica/compiler/asltree.c projects/calloutng/sys/contrib/dev/acpica/compiler/asltypes.h projects/calloutng/sys/contrib/dev/acpica/compiler/aslutils.c projects/calloutng/sys/contrib/dev/acpica/compiler/asluuid.c projects/calloutng/sys/contrib/dev/acpica/compiler/aslwalks.c projects/calloutng/sys/contrib/dev/acpica/compiler/dtcompile.c projects/calloutng/sys/contrib/dev/acpica/compiler/dtcompiler.h projects/calloutng/sys/contrib/dev/acpica/compiler/dtexpress.c projects/calloutng/sys/contrib/dev/acpica/compiler/dtfield.c projects/calloutng/sys/contrib/dev/acpica/compiler/dtio.c projects/calloutng/sys/contrib/dev/acpica/compiler/dtparser.l projects/calloutng/sys/contrib/dev/acpica/compiler/dtparser.y projects/calloutng/sys/contrib/dev/acpica/compiler/dtsubtable.c projects/calloutng/sys/contrib/dev/acpica/compiler/dttable.c projects/calloutng/sys/contrib/dev/acpica/compiler/dttemplate.c projects/calloutng/sys/contrib/dev/acpica/compiler/dttemplate.h projects/calloutng/sys/contrib/dev/acpica/compiler/dtutils.c projects/calloutng/sys/contrib/dev/acpica/compiler/preprocess.h projects/calloutng/sys/contrib/dev/acpica/compiler/prexpress.c projects/calloutng/sys/contrib/dev/acpica/compiler/prmacros.c projects/calloutng/sys/contrib/dev/acpica/compiler/prparser.l projects/calloutng/sys/contrib/dev/acpica/compiler/prparser.y projects/calloutng/sys/contrib/dev/acpica/compiler/prscan.c projects/calloutng/sys/contrib/dev/acpica/compiler/prutils.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbcmds.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbdisply.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbexec.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbfileio.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbhistry.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbinput.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbmethod.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbnames.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbstats.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbutils.c projects/calloutng/sys/contrib/dev/acpica/components/debugger/dbxface.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmnames.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmobject.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmopcode.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmresrc.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmutils.c projects/calloutng/sys/contrib/dev/acpica/components/disassembler/dmwalk.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dsargs.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dsfield.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dsinit.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dsobject.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dsutils.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dswexec.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dswload.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dswload2.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dswscope.c projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/dswstate.c projects/calloutng/sys/contrib/dev/acpica/components/events/evevent.c projects/calloutng/sys/contrib/dev/acpica/components/events/evglock.c projects/calloutng/sys/contrib/dev/acpica/components/events/evgpe.c projects/calloutng/sys/contrib/dev/acpica/components/events/evgpeblk.c projects/calloutng/sys/contrib/dev/acpica/components/events/evgpeinit.c projects/calloutng/sys/contrib/dev/acpica/components/events/evgpeutil.c projects/calloutng/sys/contrib/dev/acpica/components/events/evmisc.c projects/calloutng/sys/contrib/dev/acpica/components/events/evregion.c projects/calloutng/sys/contrib/dev/acpica/components/events/evrgnini.c projects/calloutng/sys/contrib/dev/acpica/components/events/evsci.c projects/calloutng/sys/contrib/dev/acpica/components/events/evxface.c projects/calloutng/sys/contrib/dev/acpica/components/events/evxfevnt.c projects/calloutng/sys/contrib/dev/acpica/components/events/evxfgpe.c projects/calloutng/sys/contrib/dev/acpica/components/events/evxfregn.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exconfig.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exconvrt.c projects/calloutng/sys/contrib/dev/acpica/components/executer/excreate.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exdebug.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exdump.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exfield.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exfldio.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exmisc.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exmutex.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exnames.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exoparg1.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exoparg2.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exoparg3.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exoparg6.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exprep.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exregion.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exresnte.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exresolv.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exresop.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exstore.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exstoren.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exstorob.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exsystem.c projects/calloutng/sys/contrib/dev/acpica/components/executer/exutils.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwacpi.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwesleep.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwgpe.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwpci.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwregs.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwsleep.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwtimer.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwvalid.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwxface.c projects/calloutng/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsaccess.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsalloc.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsdump.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nseval.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsinit.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsload.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsnames.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsobject.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsparse.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nspredef.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsrepair.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsrepair2.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nssearch.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsutils.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nswalk.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsxfeval.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsxfname.c projects/calloutng/sys/contrib/dev/acpica/components/namespace/nsxfobj.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psargs.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psloop.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psopcode.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psparse.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psscope.c projects/calloutng/sys/contrib/dev/acpica/components/parser/pstree.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psutils.c projects/calloutng/sys/contrib/dev/acpica/components/parser/pswalk.c projects/calloutng/sys/contrib/dev/acpica/components/parser/psxface.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsaddr.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rscalc.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rscreate.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsdump.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsinfo.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsio.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsirq.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rslist.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsmemory.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsmisc.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsserial.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsutils.c projects/calloutng/sys/contrib/dev/acpica/components/resources/rsxface.c projects/calloutng/sys/contrib/dev/acpica/components/tables/tbfadt.c projects/calloutng/sys/contrib/dev/acpica/components/tables/tbfind.c projects/calloutng/sys/contrib/dev/acpica/components/tables/tbinstal.c projects/calloutng/sys/contrib/dev/acpica/components/tables/tbutils.c projects/calloutng/sys/contrib/dev/acpica/components/tables/tbxface.c projects/calloutng/sys/contrib/dev/acpica/components/tables/tbxfload.c projects/calloutng/sys/contrib/dev/acpica/components/tables/tbxfroot.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utaddress.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utalloc.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utcache.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utcopy.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utdebug.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utdecode.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utdelete.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/uteval.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utexcep.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utglobal.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utids.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utinit.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utlock.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utmath.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utmisc.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utmutex.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utobject.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utosi.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utresrc.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utstate.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/uttrack.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utxface.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utxferror.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utxfinit.c projects/calloutng/sys/contrib/dev/acpica/components/utilities/utxfmutex.c projects/calloutng/sys/contrib/dev/acpica/include/acapps.h projects/calloutng/sys/contrib/dev/acpica/include/acbuffer.h projects/calloutng/sys/contrib/dev/acpica/include/accommon.h projects/calloutng/sys/contrib/dev/acpica/include/acconfig.h projects/calloutng/sys/contrib/dev/acpica/include/acdebug.h projects/calloutng/sys/contrib/dev/acpica/include/acdisasm.h projects/calloutng/sys/contrib/dev/acpica/include/acdispat.h projects/calloutng/sys/contrib/dev/acpica/include/acevents.h projects/calloutng/sys/contrib/dev/acpica/include/acexcep.h projects/calloutng/sys/contrib/dev/acpica/include/acglobal.h projects/calloutng/sys/contrib/dev/acpica/include/achware.h projects/calloutng/sys/contrib/dev/acpica/include/acinterp.h projects/calloutng/sys/contrib/dev/acpica/include/aclocal.h projects/calloutng/sys/contrib/dev/acpica/include/acmacros.h projects/calloutng/sys/contrib/dev/acpica/include/acnames.h projects/calloutng/sys/contrib/dev/acpica/include/acnamesp.h projects/calloutng/sys/contrib/dev/acpica/include/acobject.h projects/calloutng/sys/contrib/dev/acpica/include/acopcode.h projects/calloutng/sys/contrib/dev/acpica/include/acoutput.h projects/calloutng/sys/contrib/dev/acpica/include/acparser.h projects/calloutng/sys/contrib/dev/acpica/include/acpi.h projects/calloutng/sys/contrib/dev/acpica/include/acpiosxf.h projects/calloutng/sys/contrib/dev/acpica/include/acpixf.h projects/calloutng/sys/contrib/dev/acpica/include/acpredef.h projects/calloutng/sys/contrib/dev/acpica/include/acresrc.h projects/calloutng/sys/contrib/dev/acpica/include/acrestyp.h projects/calloutng/sys/contrib/dev/acpica/include/acstruct.h projects/calloutng/sys/contrib/dev/acpica/include/actables.h projects/calloutng/sys/contrib/dev/acpica/include/actbl.h projects/calloutng/sys/contrib/dev/acpica/include/actbl1.h projects/calloutng/sys/contrib/dev/acpica/include/actbl2.h projects/calloutng/sys/contrib/dev/acpica/include/actbl3.h projects/calloutng/sys/contrib/dev/acpica/include/actypes.h projects/calloutng/sys/contrib/dev/acpica/include/acutils.h projects/calloutng/sys/contrib/dev/acpica/include/amlcode.h projects/calloutng/sys/contrib/dev/acpica/include/amlresrc.h projects/calloutng/sys/contrib/dev/acpica/include/platform/acenv.h projects/calloutng/sys/contrib/dev/acpica/include/platform/acfreebsd.h projects/calloutng/sys/contrib/dev/acpica/include/platform/acgcc.h projects/calloutng/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c projects/calloutng/sys/contrib/octeon-sdk/cvmx-app-init.h projects/calloutng/sys/contrib/octeon-sdk/cvmx-helper-board.c projects/calloutng/sys/dev/acpica/Osd/OsdSchedule.c projects/calloutng/sys/dev/acpica/acpi.c projects/calloutng/sys/dev/acpica/acpi_pcib.c projects/calloutng/sys/dev/acpica/acpi_thermal.c projects/calloutng/sys/dev/agp/agp_ali.c projects/calloutng/sys/dev/agp/agp_amd.c projects/calloutng/sys/dev/agp/agp_amd64.c projects/calloutng/sys/dev/agp/agp_ati.c projects/calloutng/sys/dev/agp/agp_i810.c projects/calloutng/sys/dev/agp/agp_intel.c projects/calloutng/sys/dev/agp/agp_sis.c projects/calloutng/sys/dev/agp/agp_via.c projects/calloutng/sys/dev/ahci/ahci.c projects/calloutng/sys/dev/altera/avgen/altera_avgen.c projects/calloutng/sys/dev/altera/avgen/altera_avgen.h projects/calloutng/sys/dev/altera/jtag_uart/altera_jtag_uart.h projects/calloutng/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c projects/calloutng/sys/dev/altera/jtag_uart/altera_jtag_uart_nexus.c projects/calloutng/sys/dev/altera/sdcard/altera_sdcard.c projects/calloutng/sys/dev/altera/sdcard/altera_sdcard.h projects/calloutng/sys/dev/altera/sdcard/altera_sdcard_io.c projects/calloutng/sys/dev/altera/sdcard/altera_sdcard_nexus.c projects/calloutng/sys/dev/ata/ata-pci.h projects/calloutng/sys/dev/ata/ata-raid.c projects/calloutng/sys/dev/ata/chipsets/ata-intel.c projects/calloutng/sys/dev/ath/ath_dfs/null/dfs_null.c projects/calloutng/sys/dev/ath/ath_hal/ah.c projects/calloutng/sys/dev/ath/ath_hal/ah.h projects/calloutng/sys/dev/ath/ath_hal/ah_internal.h projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416phy.h projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/calloutng/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/calloutng/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c projects/calloutng/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c projects/calloutng/sys/dev/ath/if_ath.c projects/calloutng/sys/dev/ath/if_ath_beacon.c projects/calloutng/sys/dev/ath/if_ath_misc.h projects/calloutng/sys/dev/ath/if_ath_rx.c projects/calloutng/sys/dev/ath/if_ath_sysctl.c projects/calloutng/sys/dev/ath/if_ath_tx.c projects/calloutng/sys/dev/ath/if_ath_tx_edma.c projects/calloutng/sys/dev/ath/if_athdfs.h projects/calloutng/sys/dev/ath/if_athioctl.h projects/calloutng/sys/dev/ath/if_athvar.h projects/calloutng/sys/dev/atkbdc/atkbd.c projects/calloutng/sys/dev/atkbdc/atkbd_atkbdc.c projects/calloutng/sys/dev/atkbdc/atkbdreg.h projects/calloutng/sys/dev/bge/if_bge.c projects/calloutng/sys/dev/cas/if_cas.c projects/calloutng/sys/dev/ciss/ciss.c projects/calloutng/sys/dev/ciss/cissreg.h projects/calloutng/sys/dev/ciss/cissvar.h projects/calloutng/sys/dev/cxgbe/adapter.h projects/calloutng/sys/dev/cxgbe/common/t4_msg.h projects/calloutng/sys/dev/cxgbe/firmware/t4fw_cfg.txt projects/calloutng/sys/dev/cxgbe/offload.h projects/calloutng/sys/dev/cxgbe/t4_l2t.c projects/calloutng/sys/dev/cxgbe/t4_l2t.h projects/calloutng/sys/dev/cxgbe/t4_main.c projects/calloutng/sys/dev/cxgbe/tom/t4_connect.c projects/calloutng/sys/dev/cxgbe/tom/t4_cpl_io.c projects/calloutng/sys/dev/cxgbe/tom/t4_listen.c projects/calloutng/sys/dev/cxgbe/tom/t4_tom.c projects/calloutng/sys/dev/cxgbe/tom/t4_tom.h projects/calloutng/sys/dev/cxgbe/tom/t4_tom_l2t.c projects/calloutng/sys/dev/e1000/if_igb.c projects/calloutng/sys/dev/fdt/fdt_mips.c projects/calloutng/sys/dev/fdt/fdtbus.c projects/calloutng/sys/dev/hpt27xx/hpt27xx_config.c projects/calloutng/sys/dev/hpt27xx/os_bsd.h projects/calloutng/sys/dev/hpt27xx/osm_bsd.c projects/calloutng/sys/dev/hwpmc/hwpmc_mod.c projects/calloutng/sys/dev/hwpmc/hwpmc_soft.c projects/calloutng/sys/dev/ichsmb/ichsmb_pci.c projects/calloutng/sys/dev/ichwd/ichwd.c projects/calloutng/sys/dev/ichwd/ichwd.h projects/calloutng/sys/dev/isf/isf.c projects/calloutng/sys/dev/isf/isf.h projects/calloutng/sys/dev/isf/isf_nexus.c projects/calloutng/sys/dev/mmc/mmc.c projects/calloutng/sys/dev/mmc/mmcreg.h projects/calloutng/sys/dev/nand/nand_id.c projects/calloutng/sys/dev/netmap/if_em_netmap.h projects/calloutng/sys/dev/netmap/if_igb_netmap.h projects/calloutng/sys/dev/netmap/if_lem_netmap.h projects/calloutng/sys/dev/netmap/if_re_netmap.h projects/calloutng/sys/dev/netmap/ixgbe_netmap.h projects/calloutng/sys/dev/netmap/netmap.c projects/calloutng/sys/dev/netmap/netmap_kern.h projects/calloutng/sys/dev/netmap/netmap_mem2.c projects/calloutng/sys/dev/nvme/nvme_test.c projects/calloutng/sys/dev/pci/pci.c projects/calloutng/sys/dev/pci/pci_user.c projects/calloutng/sys/dev/puc/puc.c projects/calloutng/sys/dev/sound/pci/hda/hdac.c projects/calloutng/sys/dev/sound/pci/hda/hdac.h projects/calloutng/sys/dev/sym/sym_hipd.c projects/calloutng/sys/dev/terasic/de4led/terasic_de4led.c projects/calloutng/sys/dev/terasic/de4led/terasic_de4led.h projects/calloutng/sys/dev/terasic/de4led/terasic_de4led_nexus.c projects/calloutng/sys/dev/terasic/mtl/terasic_mtl.c projects/calloutng/sys/dev/terasic/mtl/terasic_mtl.h projects/calloutng/sys/dev/terasic/mtl/terasic_mtl_nexus.c projects/calloutng/sys/dev/uart/uart_dev_ns8250.c projects/calloutng/sys/dev/usb/controller/xhci.c projects/calloutng/sys/dev/usb/input/ukbd.c projects/calloutng/sys/dev/usb/input/ums.c projects/calloutng/sys/dev/usb/net/if_axe.c projects/calloutng/sys/dev/usb/net/if_cdce.c projects/calloutng/sys/dev/usb/quirk/usb_quirk.c projects/calloutng/sys/dev/usb/serial/u3g.c projects/calloutng/sys/dev/usb/storage/umass.c projects/calloutng/sys/dev/usb/template/usb_template_audio.c projects/calloutng/sys/dev/usb/template/usb_template_kbd.c projects/calloutng/sys/dev/usb/template/usb_template_modem.c projects/calloutng/sys/dev/usb/usb_busdma.c projects/calloutng/sys/dev/usb/usb_hid.c projects/calloutng/sys/dev/usb/usbdevs projects/calloutng/sys/dev/usb/usbhid.h projects/calloutng/sys/dev/usb/wlan/if_run.c projects/calloutng/sys/dev/wbwd/wbwd.c projects/calloutng/sys/dev/xen/control/control.c projects/calloutng/sys/dev/xen/netfront/netfront.c projects/calloutng/sys/fs/ext2fs/ext2_alloc.c projects/calloutng/sys/fs/ext2fs/ext2_balloc.c projects/calloutng/sys/fs/ext2fs/ext2_dinode.h (contents, props changed) projects/calloutng/sys/fs/ext2fs/ext2_inode.c projects/calloutng/sys/fs/ext2fs/inode.h projects/calloutng/sys/fs/fuse/fuse_io.c projects/calloutng/sys/fs/nandfs/nandfs_segment.c projects/calloutng/sys/fs/nfs/nfs.h projects/calloutng/sys/fs/nfs/nfs_commonkrpc.c projects/calloutng/sys/fs/nfs/nfs_commonsubs.c projects/calloutng/sys/fs/nfs/nfsport.h projects/calloutng/sys/fs/nfsclient/nfs_clport.c projects/calloutng/sys/fs/nfsclient/nfs_clrpcops.c projects/calloutng/sys/fs/nfsclient/nfs_clstate.c projects/calloutng/sys/fs/nfsclient/nfs_clvnops.c projects/calloutng/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/calloutng/sys/fs/nfsserver/nfs_nfsdport.c projects/calloutng/sys/fs/nfsserver/nfs_nfsdserv.c projects/calloutng/sys/fs/nfsserver/nfs_nfsdstate.c projects/calloutng/sys/fs/nullfs/null.h projects/calloutng/sys/fs/nullfs/null_subr.c projects/calloutng/sys/fs/nullfs/null_vfsops.c projects/calloutng/sys/fs/nullfs/null_vnops.c projects/calloutng/sys/fs/tmpfs/tmpfs.h projects/calloutng/sys/fs/tmpfs/tmpfs_subr.c projects/calloutng/sys/fs/tmpfs/tmpfs_vfsops.c projects/calloutng/sys/fs/tmpfs/tmpfs_vnops.c projects/calloutng/sys/geom/geom_io.c projects/calloutng/sys/geom/journal/g_journal.c projects/calloutng/sys/geom/mirror/g_mirror.c projects/calloutng/sys/geom/raid/g_raid.c projects/calloutng/sys/geom/raid/g_raid.h projects/calloutng/sys/geom/raid/md_intel.c projects/calloutng/sys/geom/raid/md_promise.c projects/calloutng/sys/geom/raid/tr_concat.c projects/calloutng/sys/geom/raid3/g_raid3.c projects/calloutng/sys/geom/raid3/g_raid3_ctl.c projects/calloutng/sys/i386/conf/GENERIC projects/calloutng/sys/i386/conf/NOTES projects/calloutng/sys/i386/i386/pmap.c projects/calloutng/sys/i386/linux/linux.h projects/calloutng/sys/i386/xen/xen_machdep.c projects/calloutng/sys/ia64/conf/GENERIC projects/calloutng/sys/kern/kern_clock.c projects/calloutng/sys/kern/kern_exit.c projects/calloutng/sys/kern/kern_lock.c projects/calloutng/sys/kern/kern_mbuf.c projects/calloutng/sys/kern/kern_synch.c projects/calloutng/sys/kern/kern_tc.c projects/calloutng/sys/kern/subr_bus.c projects/calloutng/sys/kern/subr_param.c projects/calloutng/sys/kern/subr_syscall.c projects/calloutng/sys/kern/uipc_mbuf.c projects/calloutng/sys/kern/vfs_hash.c projects/calloutng/sys/kern/vfs_mount.c projects/calloutng/sys/kern/vfs_subr.c projects/calloutng/sys/kern/vfs_vnops.c projects/calloutng/sys/libkern/arm/divsi3.S projects/calloutng/sys/libkern/quad.h projects/calloutng/sys/libkern/ucmpdi2.c projects/calloutng/sys/mips/atheros/ar71xx_pci.c projects/calloutng/sys/mips/beri/beri_machdep.c projects/calloutng/sys/mips/beri/files.beri projects/calloutng/sys/mips/conf/OCTEON1 projects/calloutng/sys/mips/include/bus.h projects/calloutng/sys/mips/include/fdt.h projects/calloutng/sys/mips/include/metadata.h projects/calloutng/sys/mips/include/vmparam.h projects/calloutng/sys/mips/nlm/dev/net/mdio.c projects/calloutng/sys/mips/nlm/dev/net/nae.c projects/calloutng/sys/mips/nlm/dev/net/sgmii.c projects/calloutng/sys/mips/nlm/dev/net/xlpge.c projects/calloutng/sys/mips/nlm/hal/fmn.c projects/calloutng/sys/mips/nlm/hal/mdio.h projects/calloutng/sys/mips/nlm/hal/sys.h projects/calloutng/sys/mips/nlm/hal/ucore_loader.h projects/calloutng/sys/mips/nlm/xlp_machdep.c projects/calloutng/sys/mips/nlm/xlp_pci.c projects/calloutng/sys/modules/Makefile projects/calloutng/sys/modules/ath/Makefile projects/calloutng/sys/modules/cxgbe/tom/Makefile projects/calloutng/sys/modules/hpt27xx/Makefile projects/calloutng/sys/net/bpf.c projects/calloutng/sys/net/if_lagg.c projects/calloutng/sys/net/if_llatbl.h projects/calloutng/sys/net/if_pfsync.h projects/calloutng/sys/net/if_stf.c projects/calloutng/sys/net/netmap.h projects/calloutng/sys/net/zlib.c projects/calloutng/sys/net/zlib.h projects/calloutng/sys/net80211/ieee80211_adhoc.c projects/calloutng/sys/net80211/ieee80211_hostap.c projects/calloutng/sys/net80211/ieee80211_hwmp.c projects/calloutng/sys/net80211/ieee80211_node.c projects/calloutng/sys/net80211/ieee80211_power.c projects/calloutng/sys/net80211/ieee80211_radiotap.h projects/calloutng/sys/net80211/ieee80211_scan_sta.c projects/calloutng/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c projects/calloutng/sys/netinet/if_ether.h projects/calloutng/sys/netinet/in_pcb.c projects/calloutng/sys/netinet/ip_carp.c projects/calloutng/sys/netinet/sctp_pcb.c projects/calloutng/sys/netinet/sctp_usrreq.c projects/calloutng/sys/netinet/sctputil.c projects/calloutng/sys/netinet/tcp.h projects/calloutng/sys/netinet/tcp_input.c projects/calloutng/sys/netinet/tcp_reass.c projects/calloutng/sys/netinet/tcp_syncache.c projects/calloutng/sys/netinet/tcp_timer.c projects/calloutng/sys/netinet/tcp_usrreq.c projects/calloutng/sys/netinet/toecore.c projects/calloutng/sys/netinet/udp.h projects/calloutng/sys/netinet6/in6_src.c projects/calloutng/sys/netinet6/nd6.c projects/calloutng/sys/netinet6/nd6.h projects/calloutng/sys/netinet6/nd6_nbr.c projects/calloutng/sys/netinet6/scope6.c projects/calloutng/sys/netpfil/pf/if_pflog.c projects/calloutng/sys/netpfil/pf/if_pfsync.c projects/calloutng/sys/netpfil/pf/pf.c projects/calloutng/sys/netpfil/pf/pf_if.c projects/calloutng/sys/netpfil/pf/pf_ioctl.c projects/calloutng/sys/netpfil/pf/pf_lb.c projects/calloutng/sys/netpfil/pf/pf_norm.c projects/calloutng/sys/netpfil/pf/pf_osfp.c projects/calloutng/sys/netpfil/pf/pf_ruleset.c projects/calloutng/sys/netpfil/pf/pf_table.c projects/calloutng/sys/nfs/nfs_common.c projects/calloutng/sys/nfs/nfs_common.h projects/calloutng/sys/nfsclient/nfs_krpc.c projects/calloutng/sys/nfsclient/nfs_subs.c projects/calloutng/sys/nfsclient/nfs_vnops.c projects/calloutng/sys/nfsserver/nfs_srvsubs.c projects/calloutng/sys/pc98/cbus/pckbd.c projects/calloutng/sys/pc98/conf/GENERIC projects/calloutng/sys/pci/if_rl.c projects/calloutng/sys/pci/if_rlreg.h projects/calloutng/sys/pci/ncr.c projects/calloutng/sys/powerpc/conf/GENERIC projects/calloutng/sys/powerpc/conf/GENERIC64 projects/calloutng/sys/security/audit/audit.c projects/calloutng/sys/security/audit/audit_bsm.c projects/calloutng/sys/security/audit/audit_private.h projects/calloutng/sys/sparc64/conf/GENERIC projects/calloutng/sys/sparc64/include/smp.h projects/calloutng/sys/sparc64/sparc64/interrupt.S projects/calloutng/sys/sparc64/sparc64/tick.c projects/calloutng/sys/sys/buf_ring.h projects/calloutng/sys/sys/bufobj.h projects/calloutng/sys/sys/copyright.h projects/calloutng/sys/sys/kernel.h projects/calloutng/sys/sys/mbuf.h projects/calloutng/sys/sys/mount.h projects/calloutng/sys/sys/param.h projects/calloutng/sys/sys/time.h projects/calloutng/sys/sys/un.h projects/calloutng/sys/sys/vmmeter.h projects/calloutng/sys/sys/vnode.h projects/calloutng/sys/tools/vnode_if.awk projects/calloutng/sys/ufs/ffs/ffs_snapshot.c projects/calloutng/sys/ufs/ffs/ffs_softdep.c projects/calloutng/sys/ufs/ffs/ffs_suspend.c projects/calloutng/sys/ufs/ffs/ffs_vfsops.c projects/calloutng/sys/vm/device_pager.c projects/calloutng/sys/vm/vm_fault.c projects/calloutng/sys/vm/vm_map.c projects/calloutng/sys/vm/vm_map.h projects/calloutng/sys/vm/vm_meter.c projects/calloutng/sys/vm/vm_mmap.c projects/calloutng/sys/vm/vm_object.h projects/calloutng/sys/vm/vm_pageout.c projects/calloutng/sys/vm/vm_unix.c projects/calloutng/sys/x86/include/specialreg.h projects/calloutng/sys/x86/x86/local_apic.c projects/calloutng/tools/build/Makefile projects/calloutng/tools/build/make_check/Makefile projects/calloutng/tools/build/mk/OptionalObsoleteFiles.inc projects/calloutng/tools/install.sh projects/calloutng/tools/tools/ath/Makefile projects/calloutng/tools/tools/ath/arcode/arcode.c projects/calloutng/tools/tools/ath/ath_prom_read/ath_prom_read.c projects/calloutng/tools/tools/ath/athalq/ar5212_ds.c projects/calloutng/tools/tools/ath/athalq/ar5416_ds.c projects/calloutng/tools/tools/ath/athdebug/athdebug.c projects/calloutng/tools/tools/ath/athdecode/main.c projects/calloutng/tools/tools/ath/athkey/athkey.c projects/calloutng/tools/tools/ath/athprom/athprom.c projects/calloutng/tools/tools/ath/athratestats/main.c projects/calloutng/tools/tools/ath/athstats/Makefile projects/calloutng/tools/tools/ath/athstats/athstats.c projects/calloutng/tools/tools/ath/athsurvey/athsurvey.c projects/calloutng/tools/tools/cxgbetool/cxgbetool.c projects/calloutng/tools/tools/netrate/netsend/netsend.c projects/calloutng/tools/tools/notescheck/notescheck.py projects/calloutng/usr.bin/apply/apply.c projects/calloutng/usr.bin/calendar/calendars/calendar.freebsd projects/calloutng/usr.bin/dc/bcode.c projects/calloutng/usr.bin/dc/bcode.h projects/calloutng/usr.bin/dc/inout.c projects/calloutng/usr.bin/ee/Makefile projects/calloutng/usr.bin/grep/Makefile projects/calloutng/usr.bin/grep/file.c projects/calloutng/usr.bin/grep/grep.c projects/calloutng/usr.bin/grep/regex/tre-fastmatch.c projects/calloutng/usr.bin/m4/Makefile projects/calloutng/usr.bin/man/man.1 projects/calloutng/usr.bin/man/man.sh projects/calloutng/usr.bin/netstat/inet.c projects/calloutng/usr.bin/procstat/procstat.c projects/calloutng/usr.bin/sort/sort.c projects/calloutng/usr.bin/stdbuf/stdbuf.c projects/calloutng/usr.bin/systat/vmstat.c projects/calloutng/usr.bin/tail/read.c projects/calloutng/usr.bin/tr/tr.c projects/calloutng/usr.bin/truss/main.c projects/calloutng/usr.bin/ul/ul.c projects/calloutng/usr.bin/vmstat/vmstat.c projects/calloutng/usr.bin/w/w.c projects/calloutng/usr.bin/xargs/strnsubst.c projects/calloutng/usr.bin/xinstall/Makefile projects/calloutng/usr.bin/xinstall/install.1 projects/calloutng/usr.bin/xinstall/xinstall.c projects/calloutng/usr.sbin/Makefile projects/calloutng/usr.sbin/Makefile.amd64 projects/calloutng/usr.sbin/Makefile.i386 projects/calloutng/usr.sbin/Makefile.sparc64 projects/calloutng/usr.sbin/acpi/acpidb/Makefile projects/calloutng/usr.sbin/acpi/iasl/Makefile projects/calloutng/usr.sbin/bsdconfig/USAGE projects/calloutng/usr.sbin/bsdconfig/bsdconfig projects/calloutng/usr.sbin/bsdconfig/bsdconfig.8 projects/calloutng/usr.sbin/bsdconfig/console/ttys projects/calloutng/usr.sbin/bsdconfig/include/messages.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/device.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/hostname.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/ipaddr.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/routing.subr projects/calloutng/usr.sbin/bsdconfig/password/password projects/calloutng/usr.sbin/bsdconfig/password/share/password.subr projects/calloutng/usr.sbin/bsdconfig/security/kern_securelevel projects/calloutng/usr.sbin/bsdconfig/share/Makefile projects/calloutng/usr.sbin/bsdconfig/share/common.subr projects/calloutng/usr.sbin/bsdconfig/share/dialog.subr projects/calloutng/usr.sbin/bsdconfig/share/mustberoot.subr projects/calloutng/usr.sbin/bsdconfig/startup/misc projects/calloutng/usr.sbin/bsdconfig/startup/rcdelete projects/calloutng/usr.sbin/bsdconfig/startup/rcvar projects/calloutng/usr.sbin/bsdconfig/startup/share/rcconf.subr projects/calloutng/usr.sbin/bsdconfig/startup/share/rcedit.subr projects/calloutng/usr.sbin/bsdconfig/startup/share/rcvar.subr projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupinput projects/calloutng/usr.sbin/bsdconfig/usermgmt/share/group_input.subr projects/calloutng/usr.sbin/bsdconfig/usermgmt/share/user_input.subr projects/calloutng/usr.sbin/bsdconfig/usermgmt/userinput projects/calloutng/usr.sbin/bsdconfig/usermgmt/usermgmt projects/calloutng/usr.sbin/bsdinstall/bsdinstall.8 projects/calloutng/usr.sbin/bsdinstall/partedit/Makefile projects/calloutng/usr.sbin/bsdinstall/partedit/diskeditor.c projects/calloutng/usr.sbin/bsdinstall/partedit/part_wizard.c projects/calloutng/usr.sbin/bsdinstall/partedit/partedit.c projects/calloutng/usr.sbin/bsdinstall/partedit/partedit.h projects/calloutng/usr.sbin/bsdinstall/scripts/Makefile projects/calloutng/usr.sbin/bsdinstall/scripts/services projects/calloutng/usr.sbin/bsdinstall/scripts/wlanconfig projects/calloutng/usr.sbin/cpucontrol/intel.c projects/calloutng/usr.sbin/cpucontrol/via.c projects/calloutng/usr.sbin/daemon/daemon.c projects/calloutng/usr.sbin/gssd/Makefile projects/calloutng/usr.sbin/gssd/gssd.8 projects/calloutng/usr.sbin/gssd/gssd.c projects/calloutng/usr.sbin/ifmcstat/ifmcstat.c projects/calloutng/usr.sbin/inetd/inetd.c projects/calloutng/usr.sbin/mountd/exports.5 projects/calloutng/usr.sbin/mtree/Makefile projects/calloutng/usr.sbin/ndp/ndp.8 projects/calloutng/usr.sbin/ndp/ndp.c projects/calloutng/usr.sbin/newsyslog/newsyslog.8 projects/calloutng/usr.sbin/newsyslog/newsyslog.c projects/calloutng/usr.sbin/nfsd/nfsv4.4 projects/calloutng/usr.sbin/nmtree/Makefile projects/calloutng/usr.sbin/pkg/dns_utils.c projects/calloutng/usr.sbin/pkg_install/lib/lib.h projects/calloutng/usr.sbin/pkg_install/lib/pkgng.c projects/calloutng/usr.sbin/pw/pw_group.c projects/calloutng/usr.sbin/pw/pw_log.c projects/calloutng/usr.sbin/pw/pw_user.c projects/calloutng/usr.sbin/pw/pw_vpw.c projects/calloutng/usr.sbin/pw/pwupd.c projects/calloutng/usr.sbin/watchdogd/watchdogd.c Directory Properties: projects/calloutng/ (props changed) projects/calloutng/cddl/contrib/opensolaris/ (props changed) projects/calloutng/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/calloutng/contrib/binutils/ (props changed) projects/calloutng/contrib/binutils/config/acinclude.m4 (props changed) projects/calloutng/contrib/bsnmp/lib/tc.def (props changed) projects/calloutng/contrib/bsnmp/snmp_target/snmp_target.3 (props changed) projects/calloutng/contrib/bsnmp/snmp_target/target_snmp.c (props changed) projects/calloutng/contrib/bsnmp/snmp_target/target_tree.def (props changed) projects/calloutng/contrib/bsnmp/snmp_usm/snmp_usm.3 (props changed) projects/calloutng/contrib/bsnmp/snmp_usm/usm_snmp.c (props changed) projects/calloutng/contrib/bsnmp/snmp_usm/usm_tree.def (props changed) projects/calloutng/contrib/bsnmp/snmp_vacm/snmp_vacm.3 (props changed) projects/calloutng/contrib/bsnmp/snmp_vacm/vacm_snmp.c (props changed) projects/calloutng/contrib/bsnmp/snmp_vacm/vacm_tree.def (props changed) projects/calloutng/contrib/compiler-rt/ (props changed) projects/calloutng/contrib/dialog/ (props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.ifman1 (props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.ifmcfg2 (props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.ifmcfg4 (props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.ifmcfg5 (props changed) projects/calloutng/contrib/dialog/samples/copifuncs/copi.sendifm2 (props changed) projects/calloutng/contrib/ee/ (props changed) projects/calloutng/contrib/ee/Makefile (props changed) projects/calloutng/contrib/ee/ee.c (props changed) projects/calloutng/contrib/expat/ (props changed) projects/calloutng/contrib/expat/doc/expat.png (props changed) projects/calloutng/contrib/expat/doc/valid-xhtml10.png (props changed) projects/calloutng/contrib/expat/lib/expat_external.h (props changed) projects/calloutng/contrib/expat/tests/benchmark/README.txt (props changed) projects/calloutng/contrib/expat/tests/benchmark/benchmark.c (props changed) projects/calloutng/contrib/expat/tests/benchmark/benchmark.dsp (props changed) projects/calloutng/contrib/expat/tests/benchmark/benchmark.dsw (props changed) projects/calloutng/contrib/expat/tests/minicheck.c (props changed) projects/calloutng/contrib/expat/tests/minicheck.h (props changed) projects/calloutng/contrib/expat/tests/runtestspp.cpp (props changed) projects/calloutng/contrib/expat/xmlwf/codepage.c (props changed) projects/calloutng/contrib/expat/xmlwf/codepage.h (props changed) projects/calloutng/contrib/expat/xmlwf/ct.c (props changed) projects/calloutng/contrib/expat/xmlwf/filemap.h (props changed) projects/calloutng/contrib/expat/xmlwf/readfilemap.c (props changed) projects/calloutng/contrib/expat/xmlwf/unixfilemap.c (props changed) projects/calloutng/contrib/expat/xmlwf/win32filemap.c (props changed) projects/calloutng/contrib/expat/xmlwf/xmlfile.c (props changed) projects/calloutng/contrib/expat/xmlwf/xmlfile.h (props changed) projects/calloutng/contrib/expat/xmlwf/xmlmime.c (props changed) projects/calloutng/contrib/expat/xmlwf/xmlmime.h (props changed) projects/calloutng/contrib/expat/xmlwf/xmltchar.h (props changed) projects/calloutng/contrib/expat/xmlwf/xmlurl.h (props changed) projects/calloutng/contrib/expat/xmlwf/xmlwf.c (props changed) projects/calloutng/contrib/expat/xmlwf/xmlwin32url.cxx (props changed) projects/calloutng/contrib/file/ (props changed) projects/calloutng/contrib/gcc/ (props changed) projects/calloutng/contrib/gcc/config/i386/host-cygwin.c (props changed) projects/calloutng/contrib/gcc/config/i386/winnt-cxx.c (props changed) projects/calloutng/contrib/gcc/config/i386/winnt-stubs.c (props changed) projects/calloutng/contrib/gdb/ (props changed) projects/calloutng/contrib/gdb/gdb/config/i386/nm-nto.h (props changed) projects/calloutng/contrib/gdb/gdb/config/i386/nto.mh (props changed) projects/calloutng/contrib/gdb/gdb/config/i386/nto.mt (props changed) projects/calloutng/contrib/gdb/gdb/config/i386/tm-nto.h (props changed) projects/calloutng/contrib/gdb/gdb/config/tm-nto.h (props changed) projects/calloutng/contrib/gdb/gdb/i386-nto-tdep.c (props changed) projects/calloutng/contrib/gdb/gdb/nto-procfs.c (props changed) projects/calloutng/contrib/gdb/gdb/nto-tdep.c (props changed) projects/calloutng/contrib/gdb/gdb/nto-tdep.h (props changed) projects/calloutng/contrib/gdb/gdb/proc-api.c (props changed) projects/calloutng/contrib/gdb/gdb/proc-events.c (props changed) projects/calloutng/contrib/gdb/gdb/proc-flags.c (props changed) projects/calloutng/contrib/gdb/gdb/proc-why.c (props changed) projects/calloutng/contrib/gdb/gdb/uw-thread.c (props changed) projects/calloutng/contrib/ipfilter/FreeBSD-4.0/ipv6-patch (props changed) projects/calloutng/contrib/ipfilter/FreeBSD-4.0/ipv6-patch-4.0 (props changed) projects/calloutng/contrib/libcxxrt/ (props changed) projects/calloutng/contrib/libpcap/ (props changed) projects/calloutng/contrib/libpcap/configure.in (props changed) projects/calloutng/contrib/llvm/ (props changed) projects/calloutng/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h (props changed) projects/calloutng/contrib/ntp/ (props changed) projects/calloutng/contrib/ntp/html/drivers/driver44.html (props changed) projects/calloutng/contrib/ntp/include/icom.h (props changed) projects/calloutng/contrib/ntp/readme.y2kfixes (props changed) projects/calloutng/contrib/ntp/scripts/stats/clock.awk (props changed) projects/calloutng/contrib/ntp/scripts/stats/dupe.awk (props changed) projects/calloutng/contrib/ntp/scripts/stats/ensemble.S (props changed) projects/calloutng/contrib/ntp/scripts/stats/ensemble.awk (props changed) projects/calloutng/contrib/ntp/scripts/stats/etf.S (props changed) projects/calloutng/contrib/ntp/scripts/stats/etf.awk (props changed) projects/calloutng/contrib/ntp/scripts/stats/itf.S (props changed) projects/calloutng/contrib/ntp/scripts/stats/itf.awk (props changed) projects/calloutng/contrib/ntp/scripts/stats/loop.S (props changed) projects/calloutng/contrib/ntp/scripts/stats/loop.awk (props changed) projects/calloutng/contrib/ntp/scripts/stats/loop_summary (props changed) projects/calloutng/contrib/ntp/scripts/stats/peer.awk (props changed) projects/calloutng/contrib/ntp/scripts/stats/psummary.awk (props changed) projects/calloutng/contrib/ntp/scripts/stats/tdata.S (props changed) projects/calloutng/contrib/ntp/scripts/stats/tdata.awk (props changed) projects/calloutng/contrib/one-true-awk/ (props changed) projects/calloutng/contrib/sendmail/ (props changed) projects/calloutng/contrib/tcpdump/ (props changed) projects/calloutng/contrib/tcpdump/bgp.h (props changed) projects/calloutng/contrib/tcpdump/configure.in (props changed) projects/calloutng/contrib/tcpdump/ipproto.c (props changed) projects/calloutng/contrib/tcpdump/l2vpn.c (props changed) projects/calloutng/contrib/tcpdump/l2vpn.h (props changed) projects/calloutng/contrib/tcpdump/nlpid.c (props changed) projects/calloutng/contrib/tcpdump/print-syslog.c (props changed) projects/calloutng/crypto/heimdal/ (props changed) projects/calloutng/crypto/heimdal/doc/vars.texi (props changed) projects/calloutng/crypto/openssl/ (props changed) projects/calloutng/crypto/openssl/crypto/bn/asm/s390x.S (props changed) projects/calloutng/crypto/openssl/crypto/bn/bn_const.c (props changed) projects/calloutng/crypto/openssl/crypto/ocsp/ocsp_cl.c (props changed) projects/calloutng/crypto/openssl/crypto/ocsp/ocsp_ext.c (props changed) projects/calloutng/crypto/openssl/crypto/ocsp/ocsp_lib.c (props changed) projects/calloutng/crypto/openssl/crypto/ocsp/ocsp_srv.c (props changed) projects/calloutng/crypto/openssl/crypto/rand/rand_lcl.h (props changed) projects/calloutng/crypto/openssl/crypto/vms_rms.h (props changed) projects/calloutng/crypto/openssl/util/libeay.num (props changed) projects/calloutng/crypto/openssl/util/ssleay.num (props changed) projects/calloutng/gnu/lib/ (props changed) projects/calloutng/gnu/usr.bin/binutils/ (props changed) projects/calloutng/gnu/usr.bin/cc/cc_tools/ (props changed) projects/calloutng/gnu/usr.bin/gdb/ (props changed) projects/calloutng/lib/libc/ (props changed) projects/calloutng/lib/libutil/ (props changed) projects/calloutng/sbin/ (props changed) projects/calloutng/share/man/man4/ (props changed) projects/calloutng/share/zoneinfo/ (props changed) projects/calloutng/sys/ (props changed) projects/calloutng/sys/boot/ (props changed) projects/calloutng/sys/boot/i386/efi/ (props changed) projects/calloutng/sys/cddl/contrib/opensolaris/ (props changed) projects/calloutng/sys/conf/ (props changed) projects/calloutng/sys/contrib/dev/acpica/ (props changed) projects/calloutng/sys/contrib/dev/acpica/common/ (props changed) projects/calloutng/sys/contrib/dev/acpica/compiler/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/debugger/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/disassembler/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/dispatcher/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/events/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/executer/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/hardware/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/namespace/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/parser/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/resources/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/tables/ (props changed) projects/calloutng/sys/contrib/dev/acpica/components/utilities/ (props changed) projects/calloutng/sys/contrib/dev/acpica/include/ (props changed) projects/calloutng/sys/contrib/dev/acpica/os_specific/ (props changed) projects/calloutng/sys/contrib/octeon-sdk/ (props changed) projects/calloutng/sys/dev/ath/ath_hal/ar5211/boss.ini (props changed) projects/calloutng/sys/dev/bktr/CHANGELOG.TXT (props changed) projects/calloutng/sys/dev/ixgbe/ixgbe_82598.h (props changed) projects/calloutng/sys/dev/ixgbe/ixgbe_82599.h (props changed) projects/calloutng/sys/dev/ixgbe/ixgbe_x540.c (props changed) projects/calloutng/sys/dev/ixgbe/ixgbe_x540.h (props changed) projects/calloutng/sys/fs/ext2fs/ext2_dir.h (props changed) projects/calloutng/sys/fs/ext2fs/ext2fs.h (props changed) projects/calloutng/sys/mips/rmi/msgring_xls.cfg (props changed) projects/calloutng/sys/modules/digi/Makefile (props changed) projects/calloutng/sys/modules/digi/Makefile.inc (props changed) projects/calloutng/sys/modules/isci/Makefile (props changed) projects/calloutng/sys/modules/sound/driver/ich/Makefile (props changed) projects/calloutng/tools/regression/bin/sh/errors/write-error1.0 (props changed) projects/calloutng/usr.bin/calendar/ (props changed) projects/calloutng/usr.bin/procstat/ (props changed) projects/calloutng/usr.sbin/bsnmpd/modules/snmp_target/Makefile (props changed) projects/calloutng/usr.sbin/bsnmpd/modules/snmp_usm/Makefile (props changed) projects/calloutng/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile (props changed) projects/calloutng/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c (props changed) Modified: projects/calloutng/COPYRIGHT ============================================================================== --- projects/calloutng/COPYRIGHT Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/COPYRIGHT Tue Jan 29 14:49:45 2013 (r246071) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2012 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2013 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: projects/calloutng/LOCKS ============================================================================== --- projects/calloutng/LOCKS Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/LOCKS Tue Jan 29 14:49:45 2013 (r246071) @@ -11,3 +11,4 @@ releng/4.* Requires Security Officer app releng/5.* Requires Security Officer approval. releng/6.* Requires Security Officer approval. releng/7.* Requires Security Officer approval. +releng/8.* Requires Security Officer approval. Modified: projects/calloutng/Makefile.inc1 ============================================================================== --- projects/calloutng/Makefile.inc1 Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/Makefile.inc1 Tue Jan 29 14:49:45 2013 (r246071) @@ -4,6 +4,8 @@ # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir # -DNO_CLEAN do not clean at all +# -DDB_FROM_SRC use the user/group databases in src/etc instead of +# the system database when installing. # -DNO_SHARE do not go into share subdir # -DKERNFAST define NO_KERNEL{CONFIG,CLEAN,DEPEND,OBJ} # -DNO_KERNELCONFIG do not run config in ${MAKE} buildkernel @@ -11,8 +13,8 @@ # -DNO_KERNELDEPEND do not run ${MAKE} depend in ${MAKE} buildkernel # -DNO_KERNELOBJ do not run ${MAKE} obj in ${MAKE} buildkernel # -DNO_PORTSUPDATE do not update ports in ${MAKE} update +# -DNO_ROOT install without using root privilege # -DNO_DOCUPDATE do not update doc in ${MAKE} update -# -DNO_WWWUPDATE do not update www in ${MAKE} update # -DNO_CTF do not run the DTrace CTF conversion tools on built objects # LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list # LOCAL_LIB_DIRS="list of dirs" to add additional dirs to libraries target @@ -20,6 +22,8 @@ # to be created before files are installed # LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools # list +# METALOG="path to metadata log" to write permission and ownership +# when NO_ROOT is set. (default: ${DESTDIR}/METALOG) # TARGET="machine" to crossbuild world for a different machine type # TARGET_ARCH= may be required when a TARGET supports multiple endians # BUILDENV_SHELL= shell to launch for the buildenv target (def:/bin/sh) @@ -334,18 +338,20 @@ LIB32WMAKEFLAGS+= \ CXX="${CXX} ${LIB32FLAGS}" \ DESTDIR=${LIB32TMP} \ -DCOMPAT_32BIT \ + -DLIBRARIES_ONLY \ -DNO_CPU_CFLAGS \ -DNO_CTF \ -DNO_LINT LIB32WMAKE= ${LIB32WMAKEENV} ${MAKE} ${LIB32WMAKEFLAGS} \ -DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO -DWITHOUT_HTML -LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS +LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS \ + ${IMAKE_INSTALL} .endif -# install stage IMAKEENV= ${CROSSENV:N_LDSCRIPTROOT=*} -IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1 +IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1 \ + ${IMAKE_INSTALL} ${IMAKE_MTREE} .if empty(.MAKEFLAGS:M-n) IMAKEENV+= PATH=${STRICTTMPPATH}:${INSTALLTMP} \ LD_LIBRARY_PATH=${INSTALLTMP} \ @@ -354,6 +360,21 @@ IMAKE+= __MAKE_SHELL=${INSTALLTMP}/sh .else IMAKEENV+= PATH=${TMPPATH}:${INSTALLTMP} .endif +.if defined(DB_FROM_SRC) +INSTALLFLAGS+= -N ${.CURDIR}/etc +MTREEFLAGS+= -N ${.CURDIR}/etc +.endif +.if defined(NO_ROOT) +METALOG?= ${DESTDIR}/${DISTDIR}/METALOG +IMAKE+= -DNO_ROOT METALOG=${METALOG} +INSTALL_DDIR= ${DESTDIR}/${DISTDIR} +INSTALLFLAGS+= -U -M ${METALOG} -D ${INSTALL_DDIR:S://:/:g:C:/$::} +MTREEFLAGS+= -W +.endif +.if defined(DB_FROM_SRC) || defined(NO_ROOT) +IMAKE_INSTALL= INSTALL="install ${INSTALLFLAGS}" +IMAKE_MTREE= MTREE_CMD="nmtree ${MTREEFLAGS}" +.endif # kernel stage KMAKEENV= ${WMAKEENV} @@ -595,9 +616,11 @@ kernel-toolchain: ${TOOLCHAIN_TGTS:N_inc installcheck: # -# Require DESTDIR to be set if installing for a different architecture. +# Require DESTDIR to be set if installing for a different architecture or +# using the user/group database in the source tree. # -.if ${TARGET_ARCH} != ${MACHINE_ARCH} || ${TARGET} != ${MACHINE} +.if ${TARGET_ARCH} != ${MACHINE_ARCH} || ${TARGET} != ${MACHINE} || \ + defined(DB_FROM_SRC) .if !make(distributeworld) installcheck: installcheck_DESTDIR installcheck_DESTDIR: @@ -608,6 +631,7 @@ installcheck_DESTDIR: .endif .endif +.if !defined(DB_FROM_SRC) # # Check for missing UIDs/GIDs. # @@ -635,6 +659,7 @@ installcheck_UGID: false; \ fi .endfor +.endif # # Required install tools to be saved in a scratch dir for safety. @@ -647,7 +672,7 @@ _zoneinfo= zic tzsetup .endif ITOOLS= [ awk cap_mkdb cat chflags chmod chown \ - date echo egrep find grep ${_install-info} \ + date echo egrep find grep id install ${_install-info} \ ln lockf make mkdir mtree mv pwd_mkdb rm sed sh sysctl \ test true uname wc ${_zoneinfo} @@ -670,6 +695,8 @@ EXTRA_DISTRIBUTIONS+= games EXTRA_DISTRIBUTIONS+= lib32 .endif +MTREE_MAGIC?= mtree 2.0 + distributeworld installworld: installcheck mkdir -p ${INSTALLTMP} progs=$$(for prog in ${ITOOLS}; do \ @@ -692,6 +719,9 @@ distributeworld installworld: installche done); \ cp $$libs $$progs ${INSTALLTMP} cp -R $${PATH_LOCALE:-"/usr/share/locale"} ${INSTALLTMP}/locale +.if defined(NO_ROOT) + echo "#${MTREE_MAGIC}" > ${METALOG} +.endif .if make(distributeworld) .for dist in ${EXTRA_DISTRIBUTIONS} -mkdir ${DESTDIR}/${DISTDIR}/${dist} @@ -701,10 +731,20 @@ distributeworld installworld: installche -p ${DESTDIR}/${DISTDIR}/${dist}/usr >/dev/null mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${DESTDIR}/${DISTDIR}/${dist}/usr/include >/dev/null +.if defined(NO_ROOT) + ${IMAKEENV} nmtree -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \ + sed -e 's#^\./#./${dist}/#' >> ${METALOG} + ${IMAKEENV} nmtree -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \ + sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG} + ${IMAKEENV} nmtree -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \ + sed -e 's#^\./#./${dist}/usr/include/#' >> ${METALOG} +.endif .endfor -mkdir ${DESTDIR}/${DISTDIR}/base - ${_+_}cd ${.CURDIR}; ${IMAKE} distrib-dirs \ - DESTDIR=${DESTDIR}/${DISTDIR}/base + cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \ + METALOG=${METALOG} ${IMAKE_INSTALL} ${IMAKE_MTREE} \ + DISTBASE=/base DESTDIR=${DESTDIR}/${DISTDIR}/base \ + LOCAL_MTREE=${LOCAL_MTREE} distrib-dirs .endif ${_+_}cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}; \ ${IMAKEENV} rm -rf ${INSTALLTMP} @@ -712,12 +752,30 @@ distributeworld installworld: installche .for dist in ${EXTRA_DISTRIBUTIONS} find ${DESTDIR}/${DISTDIR}/${dist} -empty -delete .endfor +.if defined(NO_ROOT) +.for dist in base ${EXTRA_DISTRIBUTIONS} + @# For each file that exists in this dist, print the corresponding + @# line from the METALOG. This relies on the fact that + @# a line containing only the filename will sort immediatly before + @# the relevant mtree line. + cd ${DESTDIR}/${DISTDIR}; \ + find ./${dist} | sort -u ${METALOG} - | \ + awk 'BEGIN { print "#${MTREE_MAGIC}" } !/ type=/ { file = $$1 } / type=/ { if ($$1 == file) { sub(/^\.\/${dist}\//, "./"); print } }' > \ + ${DESTDIR}/${DISTDIR}/${dist}.meta +.endfor +.endif .endif packageworld: .for dist in base ${EXTRA_DISTRIBUTIONS} +.if defined(NO_ROOT) + ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ + tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.txz \ + @${DESTDIR}/${DISTDIR}/${dist}.meta +.else ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.txz . +.endif .endfor # @@ -753,7 +811,8 @@ redistribute: .endif distrib-dirs distribution: - cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} ${.TARGET} + cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \ + ${IMAKE_INSTALL} ${IMAKE_MTREE} METALOG=${METALOG} ${.TARGET} # # buildkernel and installkernel @@ -955,6 +1014,13 @@ update: @echo "--------------------------------------------------------------" @echo ">>> Running ${SUP}" @echo "--------------------------------------------------------------" + @echo "!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!" + @echo "!! Update methods with ${SUP} are deprecated." + @echo "!! Please see http://www.freebsd.org/handbook/svn.html" + @echo "!! and convert your update method to SVN_UPDATE or" + @echo "!! freebsd-update(8)." + @echo "!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!" + @sleep 5 .if defined(SUPFILE) @${SUP} ${SUPFLAGS} ${SUPFILE} .endif @@ -970,9 +1036,6 @@ update: .if defined(DOCSUPFILE) && !defined(NO_DOCUPDATE) @${SUP} ${SUPFLAGS} ${DOCSUPFILE} .endif -.if defined(WWWSUPFILE) && !defined(NO_WWWUPDATE) - @${SUP} ${SUPFLAGS} ${WWWSUPFILE} -.endif .endif .if defined(CVS_UPDATE) @cd ${.CURDIR} ; \ @@ -980,6 +1043,13 @@ update: echo "--------------------------------------------------------------" ; \ echo ">>> Updating ${.CURDIR} from CVS repository" ${CVSROOT} ; \ echo "--------------------------------------------------------------" ; \ + echo "!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!" ; \ + echo "!! Update methods with CVS are deprecated." ; \ + echo "!! Please see http://www.freebsd.org/handbook/svn.html" ; \ + echo "!! and convert your update method to SVN_UPDATE or" ; \ + echo "!! freebsd-update(8)." ; \ + echo "!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!" ; \ + sleep 5 ; \ echo ${CVS} -R -q update ${CVSFLAGS} ; \ ${CVS} -R -q update ${CVSFLAGS} ; \ fi @@ -1059,6 +1129,11 @@ _lex= usr.bin/lex _yacc= usr.bin/yacc .endif +.if ${BOOTSTRAPPING} < 1000026 +_nmtree= lib/libnetbsd \ + usr.sbin/nmtree +.endif + .if ${BOOTSTRAPPING} >= 900040 && ${BOOTSTRAPPING} < 900041 _awk= usr.bin/awk .endif @@ -1084,7 +1159,10 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge .endif -.if ${MK_FDT} != "no" +# Default to building the BSDL DTC, but build the GPL one if users explicitly +# request it. +_dtc= usr.bin/dtc +.if ${MK_GPL_DTC} != "no" _dtc= gnu/usr.bin/dtc .endif @@ -1120,7 +1198,8 @@ bootstrap-tools: ${_lex} \ usr.bin/xinstall \ ${_gensnmptree} \ - usr.sbin/config + usr.sbin/config \ + ${_nmtree} ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ cd ${.CURDIR}/${_tool}; \ ${MAKE} DIRPRFX=${_tool}/ obj; \ @@ -1228,11 +1307,12 @@ cross-tools: # hierarchy - ensure that all the needed directories are present # hierarchy hier: - cd ${.CURDIR}/etc; ${MAKE} distrib-dirs -.for _mtree in ${LOCAL_MTREE} - mtree -eU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/${_mtree} \ - -p ${DESTDIR}/ -.endfor +.if defined(NO_ROOT) + cd ${.CURDIR}/etc; ${MAKE} LOCAL_MTREE=${LOCAL_MTREE} \ + -DNO_ROOT METALOG=${METALOG} distrib-dirs +.else + cd ${.CURDIR}/etc; ${MAKE} LOCAL_MTREE=${LOCAL_MTREE} distrib-dirs +.endif # # libraries - build all libraries, and install them under ${DESTDIR}. Modified: projects/calloutng/ObsoleteFiles.inc ============================================================================== --- projects/calloutng/ObsoleteFiles.inc Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/ObsoleteFiles.inc Tue Jan 29 14:49:45 2013 (r246071) @@ -38,6 +38,19 @@ # xargs -n1 | sort | uniq -d; # done +# 20130116: removed long unused directories for .1aout section manpages +OLD_FILES+=usr/share/man/en.ISO8859-1/man1aout +OLD_FILES+=usr/share/man/en.UTF-8/man1aout +OLD_DIRS+=usr/share/man/man1aout +OLD_DIRS+=usr/share/man/cat1aout +OLD_DIRS+=usr/share/man/en.ISO8859-1/cat1aout +OLD_DIRS+=usr/share/man/en.UTF-8/cat1aout +# 20121230: libdisk removed +OLD_FILES+=usr/share/man/man3/libdisk.3.gz usr/include/libdisk.h +OLD_FILES+=usr/lib/libdisk.a usr/lib32/libdisk.a +# 20121230: remove wrongly created directories for auditdistd +OLD_DIRS+=var/dist +OLD_DIRS+=var/remote # 20121114: zpool-features manual page moved from section 5 to 7 OLD_FILES+=usr/share/man/man5/zpool-features.5.gz # 20121022: remove harp, hfa and idt man page @@ -1195,12 +1208,6 @@ OLD_FILES+=usr/include/sys/linedisc.h OLD_FILES+=usr/share/man/man3/posix_openpt.3.gz # 20080725: sgtty.h removed OLD_FILES+=usr/include/sgtty.h -# 20080719: sade(8) removed on all but amd64, i386 and sparc64 -.if ${TARGET_ARCH} != "amd64" && ${TARGET_ARCH} != "i386" && \ - ${TARGET_ARCH} != "sparc64" -OLD_FILES+=usr/sbin/sade -OLD_FILES+=usr/share/man/man8/sade.8.gz -.endif # 20080706: bsdlabel(8) removed on powerpc .if ${TARGET_ARCH} == "powerpc" OLD_FILES+=sbin/bsdlabel Modified: projects/calloutng/UPDATING ============================================================================== --- projects/calloutng/UPDATING Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/UPDATING Tue Jan 29 14:49:45 2013 (r246071) @@ -26,6 +26,15 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20130118: + The install(1) option -M has changed meaning and now takes an + argument that is a file or path to append logs to. In the + unlikely event that -M was the last option on the command line + and the command line contained at least two files and a target + directory the first file will have logs appended to it. The -M + option served little practical purpose in the last decade so it's + used expected to be extremely rare. + 20121223: After switching to Clang as the default compiler some users of ZFS on i386 systems started to experience stack overflow kernel panics. Modified: projects/calloutng/bin/cp/cp.c ============================================================================== --- projects/calloutng/bin/cp/cp.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/cp/cp.c Tue Jan 29 14:49:45 2013 (r246071) @@ -98,30 +98,28 @@ main(int argc, char *argv[]) { struct stat to_stat, tmp_stat; enum op type; - int Hflag, Lflag, Pflag, ch, fts_options, r, have_trailing_slash; + int Hflag, Lflag, ch, fts_options, r, have_trailing_slash; char *target; fts_options = FTS_NOCHDIR | FTS_PHYSICAL; - Hflag = Lflag = Pflag = 0; + Hflag = Lflag = 0; while ((ch = getopt(argc, argv, "HLPRafilnprvx")) != -1) switch (ch) { case 'H': Hflag = 1; - Lflag = Pflag = 0; + Lflag = 0; break; case 'L': Lflag = 1; - Hflag = Pflag = 0; + Hflag = 0; break; case 'P': - Pflag = 1; Hflag = Lflag = 0; break; case 'R': Rflag = 1; break; case 'a': - Pflag = 1; pflag = 1; Rflag = 1; Hflag = Lflag = 0; @@ -146,7 +144,7 @@ main(int argc, char *argv[]) break; case 'r': rflag = Lflag = 1; - Hflag = Pflag = 0; + Hflag = 0; break; case 'v': vflag = 1; Modified: projects/calloutng/bin/cp/utils.c ============================================================================== --- projects/calloutng/bin/cp/utils.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/cp/utils.c Tue Jan 29 14:49:45 2013 (r246071) @@ -104,7 +104,7 @@ copy_file(const FTSENT *entp, int dne) if (vflag) printf("%s not overwritten\n", to.p_path); (void)close(from_fd); - return (0); + return (1); } else if (iflag) { (void)fprintf(stderr, "overwrite %s? %s", to.p_path, YESNO); @@ -266,6 +266,11 @@ copy_link(const FTSENT *p, int exists) int len; char llink[PATH_MAX]; + if (exists && nflag) { + if (vflag) + printf("%s not overwritten\n", to.p_path); + return (1); + } if ((len = readlink(p->fts_path, llink, sizeof(llink) - 1)) == -1) { warn("readlink: %s", p->fts_path); return (1); @@ -285,6 +290,12 @@ copy_link(const FTSENT *p, int exists) int copy_fifo(struct stat *from_stat, int exists) { + + if (exists && nflag) { + if (vflag) + printf("%s not overwritten\n", to.p_path); + return (1); + } if (exists && unlink(to.p_path)) { warn("unlink: %s", to.p_path); return (1); @@ -299,6 +310,12 @@ copy_fifo(struct stat *from_stat, int ex int copy_special(struct stat *from_stat, int exists) { + + if (exists && nflag) { + if (vflag) + printf("%s not overwritten\n", to.p_path); + return (1); + } if (exists && unlink(to.p_path)) { warn("unlink: %s", to.p_path); return (1); Modified: projects/calloutng/bin/df/df.1 ============================================================================== --- projects/calloutng/bin/df/df.1 Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/df/df.1 Tue Jan 29 14:49:45 2013 (r246071) @@ -29,7 +29,7 @@ .\" @(#)df.1 8.3 (Berkeley) 5/8/95 .\" $FreeBSD$ .\" -.Dd November 16, 2012 +.Dd January 24, 2013 .Dt DF 1 .Os .Sh NAME @@ -39,6 +39,7 @@ .Nm .Op Fl b | g | H | h | k | m | P .Op Fl acilnT +.Op Fl \&, .Op Fl t Ar type .Op Ar file | filesystem ... .Sh DESCRIPTION Modified: projects/calloutng/bin/df/df.c ============================================================================== --- projects/calloutng/bin/df/df.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/df/df.c Tue Jan 29 14:49:45 2013 (r246071) @@ -564,7 +564,8 @@ usage(void) { (void)fprintf(stderr, -"usage: df [-b | -g | -H | -h | -k | -m | -P] [-acilnT] [-t type] [-,] [file | filesystem ...]\n"); +"usage: df [-b | -g | -H | -h | -k | -m | -P] [-acilnT] [-t type] [-,]\n" +" [file | filesystem ...]\n"); exit(EX_USAGE); } Modified: projects/calloutng/bin/ln/ln.1 ============================================================================== --- projects/calloutng/bin/ln/ln.1 Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/ln/ln.1 Tue Jan 29 14:49:45 2013 (r246071) @@ -291,7 +291,7 @@ implementations. .Pp The .Fl F -option is +option is a .Fx extension and should not be used in portable scripts. .Sh SEE ALSO Modified: projects/calloutng/bin/ls/util.c ============================================================================== --- projects/calloutng/bin/ls/util.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/ls/util.c Tue Jan 29 14:49:45 2013 (r246071) @@ -184,7 +184,10 @@ prn_octal(const char *s) for (i = 0; i < (int)clen; i++) putchar((unsigned char)s[i]); len += wcwidth(wc); - } else if (goodchar && f_octal_escape && wc >= 0 && + } else if (goodchar && f_octal_escape && +#if WCHAR_MIN < 0 + wc >= 0 && +#endif wc <= (wchar_t)UCHAR_MAX && (p = strchr(esc, (char)wc)) != NULL) { putchar('\\'); Modified: projects/calloutng/bin/ps/extern.h ============================================================================== --- projects/calloutng/bin/ps/extern.h Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/ps/extern.h Tue Jan 29 14:49:45 2013 (r246071) @@ -51,7 +51,7 @@ char *elapsed(KINFO *, VARENT *); char *elapseds(KINFO *, VARENT *); char *emulname(KINFO *, VARENT *); VARENT *find_varentry(VAR *); -const char *fmt_argv(char **, char *, size_t); +const char *fmt_argv(char **, char *, char *, size_t); double getpcpu(const KINFO *); char *kvar(KINFO *, VARENT *); char *label(KINFO *, VARENT *); Modified: projects/calloutng/bin/ps/fmt.c ============================================================================== --- projects/calloutng/bin/ps/fmt.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/ps/fmt.c Tue Jan 29 14:49:45 2013 (r246071) @@ -105,7 +105,7 @@ cmdpart(char *arg0) } const char * -fmt_argv(char **argv, char *cmd, size_t maxlen) +fmt_argv(char **argv, char *cmd, char *thread, size_t maxlen) { size_t len; char *ap, *cp; @@ -122,9 +122,14 @@ fmt_argv(char **argv, char *cmd, size_t cp = malloc(len); if (cp == NULL) errx(1, "malloc failed"); - if (ap == NULL) - sprintf(cp, "[%.*s]", (int)maxlen, cmd); - else if (strncmp(cmdpart(argv[0]), cmd, maxlen) != 0) + if (ap == NULL) { + if (thread != NULL) { + asprintf(&ap, "%s/%s", cmd, thread); + sprintf(cp, "[%.*s]", (int)maxlen, ap); + free(ap); + } else + sprintf(cp, "[%.*s]", (int)maxlen, cmd); + } else if (strncmp(cmdpart(argv[0]), cmd, maxlen) != 0) sprintf(cp, "%s (%.*s)", ap, (int)maxlen, cmd); else strcpy(cp, ap); Modified: projects/calloutng/bin/ps/ps.c ============================================================================== --- projects/calloutng/bin/ps/ps.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/ps/ps.c Tue Jan 29 14:49:45 2013 (r246071) @@ -141,7 +141,7 @@ static void format_output(KINFO *); static void *expand_list(struct listinfo *); static const char * fmt(char **(*)(kvm_t *, const struct kinfo_proc *, int), - KINFO *, char *, int); + KINFO *, char *, char *, int); static void free_list(struct listinfo *); static void init_list(struct listinfo *, addelem_rtn, int, const char *); static char *kludge_oldps_options(const char *, char *, const char *); @@ -1163,11 +1163,12 @@ sizevars(void) static const char * fmt(char **(*fn)(kvm_t *, const struct kinfo_proc *, int), KINFO *ki, - char *comm, int maxlen) + char *comm, char *thread, int maxlen) { const char *s; - s = fmt_argv((*fn)(kd, ki->ki_p, termwidth), comm, maxlen); + s = fmt_argv((*fn)(kd, ki->ki_p, termwidth), comm, + showthreads && ki->ki_p->ki_numthreads > 1 ? thread : NULL, maxlen); return (s); } @@ -1195,7 +1196,7 @@ saveuser(KINFO *ki) ki->ki_args = strdup(""); else if (UREADOK(ki) || (ki->ki_p->ki_args != NULL)) ki->ki_args = strdup(fmt(kvm_getargv, ki, - ki->ki_p->ki_comm, MAXCOMLEN)); + ki->ki_p->ki_comm, ki->ki_p->ki_tdname, MAXCOMLEN)); else asprintf(&ki->ki_args, "(%s)", ki->ki_p->ki_comm); if (ki->ki_args == NULL) @@ -1206,7 +1207,7 @@ saveuser(KINFO *ki) if (needenv) { if (UREADOK(ki)) ki->ki_env = strdup(fmt(kvm_getenvv, ki, - (char *)NULL, 0)); + (char *)NULL, (char *)NULL, 0)); else ki->ki_env = strdup("()"); if (ki->ki_env == NULL) Modified: projects/calloutng/bin/pwait/pwait.c ============================================================================== --- projects/calloutng/bin/pwait/pwait.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/pwait/pwait.c Tue Jan 29 14:49:45 2013 (r246071) @@ -141,5 +141,5 @@ main(int argc, char *argv[]) nleft -= n; } - return 0; + exit(EX_OK); } Modified: projects/calloutng/bin/sh/TOUR ============================================================================== --- projects/calloutng/bin/sh/TOUR Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/sh/TOUR Tue Jan 29 14:49:45 2013 (r246071) @@ -33,10 +33,6 @@ programs is: There are undoubtedly too many of these. Mkinit searches all the C source files for entries looking like: - INIT { - x = 1; /* executed during initialization */ - } - RESET { x = 2; /* executed when the shell does a longjmp back to the main command loop */ Modified: projects/calloutng/bin/sh/eval.c ============================================================================== --- projects/calloutng/bin/sh/eval.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/sh/eval.c Tue Jan 29 14:49:45 2013 (r246071) @@ -193,7 +193,9 @@ evaltree(union node *n, int flags) { int do_etest; union node *next; + struct stackmark smark; + setstackmark(&smark); do_etest = 0; if (n == NULL) { TRACE(("evaltree(NULL) called\n")); @@ -292,8 +294,10 @@ evaltree(union node *n, int flags) break; } n = next; + popstackmark(&smark); } while (n != NULL); out: + popstackmark(&smark); if (pendingsigs) dotrap(); if (eflag && exitstatus != 0 && do_etest) @@ -347,10 +351,8 @@ evalfor(union node *n, int flags) struct arglist arglist; union node *argp; struct strlist *sp; - struct stackmark smark; int status; - setstackmark(&smark); arglist.lastp = &arglist.list; for (argp = n->nfor.args ; argp ; argp = argp->narg.next) { oexitstatus = exitstatus; @@ -375,7 +377,6 @@ evalfor(union node *n, int flags) } } loopnest--; - popstackmark(&smark); exitstatus = status; } @@ -392,16 +393,13 @@ evalcase(union node *n) union node *cp; union node *patp; struct arglist arglist; - struct stackmark smark; - setstackmark(&smark); arglist.lastp = &arglist.list; oexitstatus = exitstatus; expandarg(n->ncase.expr, &arglist, EXP_TILDE); for (cp = n->ncase.cases ; cp ; cp = cp->nclist.next) { for (patp = cp->nclist.pattern ; patp ; patp = patp->narg.next) { if (casematch(patp, arglist.list->text)) { - popstackmark(&smark); while (cp->nclist.next && cp->type == NCLISTFALLTHRU && cp->nclist.body == NULL) @@ -415,7 +413,6 @@ evalcase(union node *n) } } } - popstackmark(&smark); exitstatus = 0; return (NULL); } @@ -610,7 +607,7 @@ evalbackcmd(union node *n, struct backcm { int pip[2]; struct job *jp; - struct stackmark smark; /* unnecessary */ + struct stackmark smark; struct jmploc jmploc; struct jmploc *savehandler; struct localvar *savelocalvars; @@ -624,8 +621,8 @@ evalbackcmd(union node *n, struct backcm exitstatus = 0; goto out; } + exitstatus = oexitstatus; if (is_valid_fast_cmdsubst(n)) { - exitstatus = oexitstatus; savelocalvars = localvars; localvars = NULL; forcelocal++; @@ -649,7 +646,6 @@ evalbackcmd(union node *n, struct backcm poplocalvars(); localvars = savelocalvars; } else { - exitstatus = 0; if (pipe(pip) < 0) error("Pipe call failed: %s", strerror(errno)); jp = makejob(n, 1); @@ -752,7 +748,6 @@ safe_builtin(int idx, int argc, char **a static void evalcommand(union node *cmd, int flags, struct backcmd *backcmd) { - struct stackmark smark; union node *argp; struct arglist arglist; struct arglist varlist; @@ -779,7 +774,6 @@ evalcommand(union node *cmd, int flags, /* First expand the arguments. */ TRACE(("evalcommand(%p, %d) called\n", (void *)cmd, flags)); - setstackmark(&smark); arglist.lastp = &arglist.list; varlist.lastp = &varlist.list; varflag = 1; @@ -1150,7 +1144,6 @@ out: setvar("_", lastarg, 0); if (do_clearcmdentry) clearcmdentry(); - popstackmark(&smark); } Modified: projects/calloutng/bin/sh/exec.c ============================================================================== --- projects/calloutng/bin/sh/exec.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/sh/exec.c Tue Jan 29 14:49:45 2013 (r246071) @@ -86,12 +86,12 @@ struct tblentry { union param param; /* definition of builtin function */ int special; /* flag for special builtin commands */ signed char cmdtype; /* index identifying command */ - char rehash; /* if set, cd done since entry created */ char cmdname[]; /* name of command */ }; static struct tblentry *cmdtable[CMDTABLESIZE]; +static int cmdtable_cd = 0; /* cmdtable contains cd-dependent entries */ int exerrno = 0; /* Last exec error */ @@ -305,8 +305,6 @@ printentry(struct tblentry *cmdp, int ve error("internal error: cmdtype %d", cmdp->cmdtype); #endif } - if (cmdp->rehash) - out1c('*'); out1c('\n'); } @@ -323,12 +321,12 @@ find_command(const char *name, struct cm { struct tblentry *cmdp, loc_cmd; int idx; - int prev; char *fullname; struct stat statb; int e; int i; int spec; + int cd; /* If name contains a slash, don't use the hash table */ if (strchr(name, '/') != NULL) { @@ -337,8 +335,10 @@ find_command(const char *name, struct cm return; } + cd = 0; + /* If name is in the table, and not invalidated by cd, we're done */ - if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->rehash == 0) { + if ((cmdp = cmdlookup(name, 0)) != NULL) { if (cmdp->cmdtype == CMDFUNCTION && act & DO_NOFUNC) cmdp = NULL; else @@ -359,13 +359,6 @@ find_command(const char *name, struct cm } /* We have to search path. */ - prev = -1; /* where to start */ - if (cmdp) { /* doing a rehash */ - if (cmdp->cmdtype == CMDBUILTIN) - prev = -1; - else - prev = cmdp->param.index; - } e = ENOENT; idx = -1; @@ -380,13 +373,8 @@ loop: goto loop; /* ignore unimplemented options */ } } - /* if rehash, don't redo absolute path names */ - if (fullname[0] == '/' && idx <= prev) { - if (idx < prev) - goto loop; - TRACE(("searchexec \"%s\": no change\n", name)); - goto success; - } + if (fullname[0] != '/') + cd = 1; if (stat(fullname, &statb) < 0) { if (errno != ENOENT && errno != ENOTDIR) e = errno; @@ -426,9 +414,6 @@ loop: goto success; } - /* We failed. If there was an entry for this command, delete it */ - if (cmdp && cmdp->cmdtype != CMDFUNCTION) - delete_cmd_entry(); if (act & DO_ERR) { if (e == ENOENT || e == ENOTDIR) outfmt(out2, "%s: not found\n", name); @@ -440,7 +425,8 @@ loop: return; success: - cmdp->rehash = 0; + if (cd) + cmdtable_cd = 1; entry->cmdtype = cmdp->cmdtype; entry->u = cmdp->param; entry->special = cmdp->special; @@ -469,22 +455,15 @@ find_builtin(const char *name, int *spec /* - * Called when a cd is done. Marks all commands so the next time they - * are executed they will be rehashed. + * Called when a cd is done. If any entry in cmdtable depends on the current + * directory, simply clear cmdtable completely. */ void hashcd(void) { - struct tblentry **pp; - struct tblentry *cmdp; - - for (pp = cmdtable ; pp < &cmdtable[CMDTABLESIZE] ; pp++) { - for (cmdp = *pp ; cmdp ; cmdp = cmdp->next) { - if (cmdp->cmdtype == CMDNORMAL) - cmdp->rehash = 1; - } - } + if (cmdtable_cd) + clearcmdentry(); } @@ -526,6 +505,7 @@ clearcmdentry(void) } } } + cmdtable_cd = 0; INTON; } @@ -566,7 +546,6 @@ cmdlookup(const char *name, int add) + strlen(name) + 1); cmdp->next = NULL; cmdp->cmdtype = CMDUNKNOWN; - cmdp->rehash = 0; strcpy(cmdp->cmdname, name); INTON; } Modified: projects/calloutng/bin/sh/init.h ============================================================================== --- projects/calloutng/bin/sh/init.h Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/sh/init.h Tue Jan 29 14:49:45 2013 (r246071) @@ -33,5 +33,4 @@ * $FreeBSD$ */ -void init(void); void reset(void); Modified: projects/calloutng/bin/sh/input.c ============================================================================== --- projects/calloutng/bin/sh/input.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/sh/input.c Tue Jan 29 14:49:45 2013 (r246071) @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #define EOF_NLEFT -99 /* value of parsenleft when EOF pushed back */ -MKINIT struct strpush { struct strpush *prev; /* preceding string on stack */ char *prevstring; @@ -78,7 +77,6 @@ struct strpush { * contains information about the current file being read. */ -MKINIT struct parsefile { struct parsefile *prev; /* preceding file on stack */ int linno; /* current line */ @@ -96,8 +94,11 @@ int plinno = 1; /* input line number * int parsenleft; /* copy of parsefile->nleft */ MKINIT int parselleft; /* copy of parsefile->lleft */ char *parsenextc; /* copy of parsefile->nextc */ -MKINIT struct parsefile basepf; /* top level input file */ -char basebuf[BUFSIZ + 1]; /* buffer for top level input file */ +static char basebuf[BUFSIZ + 1];/* buffer for top level input file */ +static struct parsefile basepf = { /* top level input file */ + .nextc = basebuf, + .buf = basebuf +}; static struct parsefile *parsefile = &basepf; /* current input file */ int whichprompt; /* 1 == PS1, 2 == PS2 */ @@ -111,12 +112,6 @@ static void popstring(void); INCLUDE "input.h" INCLUDE "error.h" -MKINIT char basebuf[]; - -INIT { - basepf.nextc = basepf.buf = basebuf; -} - RESET { popallfiles(); parselleft = parsenleft = 0; /* clear input buffer */ Modified: projects/calloutng/bin/sh/jobs.c ============================================================================== --- projects/calloutng/bin/sh/jobs.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/sh/jobs.c Tue Jan 29 14:49:45 2013 (r246071) @@ -298,6 +298,7 @@ showjob(struct job *jp, int mode) { char s[64]; char statestr[64]; + const char *sigstr; struct procstat *ps; struct job *j; int col, curr, i, jobno, prev, procno; @@ -324,8 +325,9 @@ showjob(struct job *jp, int mode) i = WSTOPSIG(ps->status); else i = -1; - if (i > 0 && i < sys_nsig && sys_siglist[i]) - strcpy(statestr, sys_siglist[i]); + sigstr = strsignal(i); + if (sigstr != NULL) + strcpy(statestr, sigstr); else strcpy(statestr, "Suspended"); #endif @@ -337,10 +339,11 @@ showjob(struct job *jp, int mode) WEXITSTATUS(ps->status)); } else { i = WTERMSIG(ps->status); - if (i > 0 && i < sys_nsig && sys_siglist[i]) - strcpy(statestr, sys_siglist[i]); + sigstr = strsignal(i); + if (sigstr != NULL) + strcpy(statestr, sigstr); else - fmtstr(statestr, 64, "Signal %d", i); + strcpy(statestr, "Unknown signal"); if (WCOREDUMP(ps->status)) strcat(statestr, " (core dumped)"); } @@ -1019,6 +1022,7 @@ dowait(int mode, struct job *job) struct procstat *sp; struct job *jp; struct job *thisjob; + const char *sigstr; int done; int stopped; int sig; @@ -1129,10 +1133,11 @@ dowait(int mode, struct job *job) coredump = WCOREDUMP(sp->status); } if (sig > 0 && sig != SIGINT && sig != SIGPIPE) { - if (sig < sys_nsig && sys_siglist[sig]) - out2str(sys_siglist[sig]); + sigstr = strsignal(sig); + if (sigstr != NULL) + out2str(sigstr); else - outfmt(out2, "Signal %d", sig); + out2str("Unknown signal"); if (coredump) out2str(" (core dumped)"); out2c('\n'); Modified: projects/calloutng/bin/sh/main.c ============================================================================== --- projects/calloutng/bin/sh/main.c Tue Jan 29 13:49:58 2013 (r246070) +++ projects/calloutng/bin/sh/main.c Tue Jan 29 14:49:45 2013 (r246071) @@ -139,7 +139,7 @@ main(int argc, char *argv[]) #endif rootpid = getpid(); rootshell = 1; - init(); + initvar(); setstackmark(&smark); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 15:27:58 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id D7D4CF4B; Tue, 29 Jan 2013 15:27:58 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B7A8222A; Tue, 29 Jan 2013 15:27:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0TFRwa0048627; Tue, 29 Jan 2013 15:27:58 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0TFRsRF048598; Tue, 29 Jan 2013 15:27:54 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201301291527.r0TFRsRF048598@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 29 Jan 2013 15:27:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246072 - in projects/physbio: . bin/cp bin/df bin/ls bin/ps bin/pwait bin/sh cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/lib/libzfs/common cddl/lib/libdtrace contrib/binu... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 15:27:58 -0000 Author: kib Date: Tue Jan 29 15:27:52 2013 New Revision: 246072 URL: http://svnweb.freebsd.org/changeset/base/246072 Log: MFH Added: projects/physbio/contrib/libcxxrt/atomic.h - copied unchanged from r246071, head/contrib/libcxxrt/atomic.h projects/physbio/lib/libc/arm/Symbol_oabi.map - copied unchanged from r246071, head/lib/libc/arm/Symbol_oabi.map projects/physbio/lib/libc/arm/aeabi/ - copied from r246071, head/lib/libc/arm/aeabi/ - copied from r246071, head/lib/libvmmapi/ - copied unchanged from r246071, head/share/man/man4/bhyve.4 - copied unchanged from r246071, head/sys/amd64/include/vmm.h - copied unchanged from r246071, head/sys/amd64/include/vmm_dev.h - copied unchanged from r246071, head/sys/amd64/include/vmm_instruction_emul.h - copied from r246071, head/sys/amd64/vmm/ projects/physbio/sys/arm/allwinner/ - copied from r246071, head/sys/arm/allwinner/ projects/physbio/sys/arm/conf/CUBIEBOARD - copied unchanged from r246071, head/sys/arm/conf/CUBIEBOARD projects/physbio/sys/arm/conf/DREAMPLUG-1001 - copied unchanged from r246071, head/sys/arm/conf/DREAMPLUG-1001 projects/physbio/sys/boot/fdt/dts/cubieboard.dts - copied unchanged from r246071, head/sys/boot/fdt/dts/cubieboard.dts projects/physbio/sys/boot/fdt/dts/dreamplug-1001.dts - copied unchanged from r246071, head/sys/boot/fdt/dts/dreamplug-1001.dts projects/physbio/sys/boot/fdt/dts/dreamplug-1001N.dts - copied unchanged from r246071, head/sys/boot/fdt/dts/dreamplug-1001N.dts projects/physbio/sys/contrib/dev/acpica/compiler/aslfileio.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/compiler/aslfileio.c projects/physbio/sys/contrib/dev/acpica/compiler/aslhex.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/compiler/aslhex.c projects/physbio/sys/contrib/dev/acpica/compiler/aslmethod.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/compiler/aslmethod.c projects/physbio/sys/contrib/dev/acpica/compiler/aslnamesp.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/compiler/aslnamesp.c projects/physbio/sys/contrib/dev/acpica/compiler/aslxref.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/compiler/aslxref.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbconvert.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/components/debugger/dbconvert.c projects/physbio/sys/contrib/dev/acpica/components/events/evhandler.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/components/events/evhandler.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsprepkg.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/components/namespace/nsprepkg.c projects/physbio/sys/contrib/dev/acpica/components/parser/psobject.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/components/parser/psobject.c projects/physbio/sys/contrib/dev/acpica/components/parser/psopinfo.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/components/parser/psopinfo.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utownerid.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/components/utilities/utownerid.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utstring.c - copied unchanged from r246071, head/sys/contrib/dev/acpica/components/utilities/utstring.c projects/physbio/sys/dev/altera/avgen/altera_avgen_fdt.c - copied unchanged from r246071, head/sys/dev/altera/avgen/altera_avgen_fdt.c projects/physbio/sys/dev/altera/avgen/altera_avgen_nexus.c - copied unchanged from r246071, head/sys/dev/altera/avgen/altera_avgen_nexus.c projects/physbio/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c - copied unchanged from r246071, head/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c projects/physbio/sys/dev/altera/sdcard/altera_sdcard_fdt.c - copied unchanged from r246071, head/sys/dev/altera/sdcard/altera_sdcard_fdt.c projects/physbio/sys/dev/ath/ath_hal/ar5416/ar5416_spectral.c - copied unchanged from r246071, head/sys/dev/ath/ath_hal/ar5416/ar5416_spectral.c projects/physbio/sys/dev/ath/if_ath_spectral.c - copied unchanged from r246071, head/sys/dev/ath/if_ath_spectral.c projects/physbio/sys/dev/ath/if_ath_spectral.h - copied unchanged from r246071, head/sys/dev/ath/if_ath_spectral.h - copied from r246071, head/sys/dev/blackhole/ - copied from r246071, head/sys/dev/bvm/ projects/physbio/sys/dev/isf/isf_fdt.c - copied unchanged from r246071, head/sys/dev/isf/isf_fdt.c projects/physbio/sys/dev/terasic/de4led/terasic_de4led_fdt.c - copied unchanged from r246071, head/sys/dev/terasic/de4led/terasic_de4led_fdt.c projects/physbio/sys/dev/terasic/mtl/terasic_mtl_fdt.c - copied unchanged from r246071, head/sys/dev/terasic/mtl/terasic_mtl_fdt.c projects/physbio/sys/libkern/arm/ldivmod.S - copied unchanged from r246071, head/sys/libkern/arm/ldivmod.S projects/physbio/sys/libkern/arm/ldivmod_helper.c - copied unchanged from r246071, head/sys/libkern/arm/ldivmod_helper.c projects/physbio/sys/mips/mips/bus_space_fdt.c - copied unchanged from r246071, head/sys/mips/mips/bus_space_fdt.c - copied from r246071, head/sys/modules/blackhole/ - copied from r246071, head/sys/modules/vmm/ projects/physbio/tools/build/options/WITHOUT_LZMA_SUPPORT - copied unchanged from r246071, head/tools/build/options/WITHOUT_LZMA_SUPPORT projects/physbio/tools/build/options/WITHOUT_PC_SYSINSTALL - copied unchanged from r246071, head/tools/build/options/WITHOUT_PC_SYSINSTALL projects/physbio/tools/build/options/WITH_ARM_EABI - copied unchanged from r246071, head/tools/build/options/WITH_ARM_EABI projects/physbio/tools/build/options/WITH_NMTREE - copied unchanged from r246071, head/tools/build/options/WITH_NMTREE projects/physbio/tools/build/options/WITH_OPENSSH_NONE_CIPHER - copied unchanged from r246071, head/tools/build/options/WITH_OPENSSH_NONE_CIPHER - copied unchanged from r246071, head/tools/regression/bin/sh/errors/write-error1.0 projects/physbio/tools/regression/bin/sh/execution/subshell1.0 - copied unchanged from r246071, head/tools/regression/bin/sh/execution/subshell1.0 projects/physbio/tools/regression/bin/sh/execution/subshell1.0.stdout - copied unchanged from r246071, head/tools/regression/bin/sh/execution/subshell1.0.stdout projects/physbio/tools/regression/bin/sh/execution/subshell2.0 - copied unchanged from r246071, head/tools/regression/bin/sh/execution/subshell2.0 projects/physbio/tools/regression/bin/sh/execution/subshell3.0 - copied unchanged from r246071, head/tools/regression/bin/sh/execution/subshell3.0 projects/physbio/tools/regression/bin/sh/execution/subshell4.0 - copied unchanged from r246071, head/tools/regression/bin/sh/execution/subshell4.0 projects/physbio/tools/regression/bin/sh/expansion/cmdsubst14.0 - copied unchanged from r246071, head/tools/regression/bin/sh/expansion/cmdsubst14.0 projects/physbio/tools/regression/bin/sh/expansion/cmdsubst15.0 - copied unchanged from r246071, head/tools/regression/bin/sh/expansion/cmdsubst15.0 projects/physbio/tools/regression/bin/sh/expansion/cmdsubst16.0 - copied unchanged from r246071, head/tools/regression/bin/sh/expansion/cmdsubst16.0 projects/physbio/tools/regression/bin/sh/expansion/cmdsubst17.0 - copied unchanged from r246071, head/tools/regression/bin/sh/expansion/cmdsubst17.0 projects/physbio/tools/regression/bin/sh/parser/empty-braces1.0 - copied unchanged from r246071, head/tools/regression/bin/sh/parser/empty-braces1.0 projects/physbio/tools/tools/ath/athspectral/ - copied from r246071, head/tools/tools/ath/athspectral/ projects/physbio/usr.bin/dtc/ - copied from r246071, head/usr.bin/dtc/ - copied from r246071, head/usr.sbin/bhyve/ - copied from r246071, head/usr.sbin/bhyvectl/ - copied from r246071, head/usr.sbin/bhyveload/ projects/physbio/usr.sbin/bsdconfig/share/script.subr - copied unchanged from r246071, head/usr.sbin/bsdconfig/share/script.subr projects/physbio/usr.sbin/bsdconfig/share/variable.subr - copied unchanged from r246071, head/usr.sbin/bsdconfig/share/variable.subr - copied unchanged from r246071, head/usr.sbin/bsdinstall/partedit/sade.8 projects/physbio/usr.sbin/bsdinstall/partedit/scripted.c - copied unchanged from r246071, head/usr.sbin/bsdinstall/partedit/scripted.c projects/physbio/usr.sbin/bsdinstall/scripts/script - copied unchanged from r246071, head/usr.sbin/bsdinstall/scripts/script - copied unchanged from r246071, head/usr.sbin/pkg/dns_utils.c Directory Properties: projects/physbio/lib/libvmmapi/ (props changed) projects/physbio/share/man/man4/bhyve.4 (props changed) projects/physbio/sys/amd64/include/vmm.h (props changed) projects/physbio/sys/amd64/include/vmm_dev.h (props changed) projects/physbio/sys/amd64/include/vmm_instruction_emul.h (props changed) projects/physbio/sys/amd64/vmm/ (props changed) projects/physbio/sys/dev/blackhole/ (props changed) projects/physbio/sys/dev/bvm/ (props changed) projects/physbio/sys/modules/blackhole/ (props changed) projects/physbio/sys/modules/vmm/ (props changed) projects/physbio/tools/regression/bin/sh/errors/write-error1.0 (props changed) projects/physbio/usr.sbin/bhyve/ (props changed) projects/physbio/usr.sbin/bhyvectl/ (props changed) projects/physbio/usr.sbin/bhyveload/ (props changed) projects/physbio/usr.sbin/bsdinstall/partedit/sade.8 (props changed) projects/physbio/usr.sbin/pkg/dns_utils.c (props changed) Deleted: projects/physbio/share/examples/cvsup/gnats-supfile projects/physbio/share/mk/bsd.compat.mk projects/physbio/sys/arm/mv/kirkwood/files.sheevaplug projects/physbio/sys/arm/mv/kirkwood/sheevaplug.c projects/physbio/sys/arm/mv/kirkwood/std.sheevaplug projects/physbio/sys/dev/cxgbe/common/jhash.h projects/physbio/sys/dev/netmap/netmap_mem1.c projects/physbio/sys/dev/xen/evtchn/ projects/physbio/sys/dev/xen/xenpci/machine_reboot.c Modified: projects/physbio/COPYRIGHT projects/physbio/Makefile.inc1 projects/physbio/ObsoleteFiles.inc projects/physbio/UPDATING projects/physbio/bin/cp/cp.c projects/physbio/bin/cp/utils.c projects/physbio/bin/df/df.1 projects/physbio/bin/df/df.c projects/physbio/bin/ls/util.c projects/physbio/bin/ps/extern.h projects/physbio/bin/ps/fmt.c projects/physbio/bin/ps/ps.c projects/physbio/bin/pwait/pwait.c projects/physbio/bin/sh/TOUR projects/physbio/bin/sh/eval.c projects/physbio/bin/sh/exec.c projects/physbio/bin/sh/init.h projects/physbio/bin/sh/input.c projects/physbio/bin/sh/main.c projects/physbio/bin/sh/mkinit.c projects/physbio/bin/sh/parser.c projects/physbio/bin/sh/sh.1 projects/physbio/bin/sh/var.c projects/physbio/cddl/contrib/opensolaris/cmd/zdb/zdb.c projects/physbio/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c projects/physbio/cddl/lib/libdtrace/Makefile projects/physbio/contrib/compiler-rt/LICENSE.TXT projects/physbio/contrib/compiler-rt/lib/arm/aeabi_uldivmod.S projects/physbio/contrib/compiler-rt/lib/arm/divsi3.S projects/physbio/contrib/compiler-rt/lib/arm/udivsi3.S projects/physbio/contrib/compiler-rt/lib/cmpdi2.c projects/physbio/contrib/compiler-rt/lib/fixsfdi.c projects/physbio/contrib/compiler-rt/lib/int_endianness.h projects/physbio/contrib/compiler-rt/lib/int_lib.h projects/physbio/contrib/compiler-rt/lib/ucmpdi2.c projects/physbio/contrib/file/Magdir/lua projects/physbio/contrib/gcc/config/arm/freebsd.h projects/physbio/contrib/gcc/unwind-dw2.c projects/physbio/contrib/jemalloc/COPYING projects/physbio/contrib/jemalloc/ChangeLog projects/physbio/contrib/jemalloc/FREEBSD-diffs projects/physbio/contrib/jemalloc/FREEBSD-upgrade projects/physbio/contrib/jemalloc/VERSION projects/physbio/contrib/jemalloc/doc/jemalloc.3 projects/physbio/contrib/jemalloc/include/jemalloc/internal/arena.h projects/physbio/contrib/jemalloc/include/jemalloc/internal/ckh.h projects/physbio/contrib/jemalloc/include/jemalloc/internal/hash.h projects/physbio/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h projects/physbio/contrib/jemalloc/include/jemalloc/internal/private_namespace.h projects/physbio/contrib/jemalloc/include/jemalloc/internal/tcache.h projects/physbio/contrib/jemalloc/include/jemalloc/jemalloc.h projects/physbio/contrib/jemalloc/include/jemalloc/jemalloc_defs.h projects/physbio/contrib/jemalloc/src/arena.c projects/physbio/contrib/jemalloc/src/chunk.c projects/physbio/contrib/jemalloc/src/chunk_dss.c projects/physbio/contrib/jemalloc/src/ckh.c projects/physbio/contrib/jemalloc/src/ctl.c projects/physbio/contrib/jemalloc/src/jemalloc.c projects/physbio/contrib/jemalloc/src/prof.c projects/physbio/contrib/jemalloc/src/tcache.c projects/physbio/contrib/libcxxrt/exception.cc projects/physbio/contrib/libcxxrt/memory.cc projects/physbio/contrib/libcxxrt/typeinfo.h projects/physbio/contrib/one-true-awk/FIXES projects/physbio/contrib/one-true-awk/main.c projects/physbio/contrib/one-true-awk/makefile projects/physbio/contrib/one-true-awk/proto.h projects/physbio/contrib/one-true-awk/run.c projects/physbio/contrib/one-true-awk/tran.c projects/physbio/crypto/openssl/crypto/bn/bn_word.c projects/physbio/crypto/openssl/crypto/opensslv.h projects/physbio/etc/Makefile projects/physbio/etc/login.conf projects/physbio/etc/mtree/BSD.usr.dist projects/physbio/etc/namedb/named.root projects/physbio/etc/rc.d/jail projects/physbio/etc/rc.subr projects/physbio/etc/sendmail/freefall.mc projects/physbio/gnu/lib/csu/Makefile projects/physbio/gnu/lib/libgcc/Makefile projects/physbio/gnu/lib/libgcov/Makefile projects/physbio/gnu/lib/libstdc++/Makefile projects/physbio/gnu/lib/libsupc++/Version.map projects/physbio/gnu/usr.bin/Makefile projects/physbio/gnu/usr.bin/binutils/ld/armelf_fbsd.sh projects/physbio/gnu/usr.bin/binutils/ld/armelfb_fbsd.sh projects/physbio/gnu/usr.bin/cc/Makefile.inc projects/physbio/gnu/usr.bin/cc/c++/Makefile projects/physbio/gnu/usr.bin/cc/c++filt/Makefile projects/physbio/gnu/usr.bin/cc/cc1/Makefile projects/physbio/gnu/usr.bin/cc/cc1plus/Makefile projects/physbio/gnu/usr.bin/cc/cc_int/Makefile projects/physbio/gnu/usr.bin/cc/cc_tools/Makefile projects/physbio/gnu/usr.bin/cc/doc/Makefile projects/physbio/gnu/usr.bin/cc/gcov/Makefile projects/physbio/gnu/usr.bin/cc/include/Makefile projects/physbio/gnu/usr.bin/cc/libcpp/Makefile projects/physbio/gnu/usr.bin/cc/libdecnumber/Makefile projects/physbio/gnu/usr.bin/cc/libiberty/Makefile projects/physbio/gnu/usr.bin/dialog/Makefile projects/physbio/gnu/usr.bin/gdb/kgdb/main.c projects/physbio/gnu/usr.bin/grep/grep.c projects/physbio/include/arpa/Makefile projects/physbio/include/time.h projects/physbio/kerberos5/lib/libkrb5/Makefile projects/physbio/lib/Makefile projects/physbio/lib/csu/amd64/crt1.c projects/physbio/lib/csu/arm/crt1.c projects/physbio/lib/csu/common/ignore_init.c projects/physbio/lib/csu/i386-elf/crt1_c.c projects/physbio/lib/csu/mips/crt1.c projects/physbio/lib/csu/powerpc/crt1.c projects/physbio/lib/csu/powerpc64/crt1.c projects/physbio/lib/csu/sparc64/crt1.c projects/physbio/lib/libarchive/Makefile projects/physbio/lib/libbsnmp/libbsnmp/Makefile projects/physbio/lib/libc/arm/Makefile.inc projects/physbio/lib/libc/arm/SYS.h projects/physbio/lib/libc/arm/Symbol.map projects/physbio/lib/libc/arm/gen/Makefile.inc projects/physbio/lib/libc/arm/softfloat/arm-gcc.h projects/physbio/lib/libc/gen/Makefile.inc projects/physbio/lib/libc/gen/Symbol.map projects/physbio/lib/libc/net/name6.c projects/physbio/lib/libc/quad/Makefile.inc projects/physbio/lib/libc/sys/chroot.2 projects/physbio/lib/libc/sys/kqueue.2 projects/physbio/lib/libc/sys/posix_fadvise.2 projects/physbio/lib/libcompiler_rt/Makefile projects/physbio/lib/libcxxrt/Version.map projects/physbio/lib/libedit/editline.3 projects/physbio/lib/libedit/editrc.5 projects/physbio/lib/libedit/map.c projects/physbio/lib/libproc/proc_rtld.c projects/physbio/lib/libradius/libradius.3 projects/physbio/lib/libthr/thread/thr_init.c projects/physbio/lib/libthr/thread/thr_kern.c projects/physbio/lib/libutil/gr_util.c projects/physbio/lib/ncurses/form/Makefile projects/physbio/lib/ncurses/menu/Makefile projects/physbio/lib/ncurses/ncurses/Makefile projects/physbio/lib/ncurses/panel/Makefile projects/physbio/libexec/rtld-elf/Makefile projects/physbio/release/amd64/mkisoimages.sh projects/physbio/release/generate-release.sh projects/physbio/release/i386/mkisoimages.sh projects/physbio/release/ia64/mkisoimages.sh projects/physbio/release/pc98/mkisoimages.sh projects/physbio/release/powerpc/mkisoimages.sh projects/physbio/release/rc.local projects/physbio/release/sparc64/mkisoimages.sh projects/physbio/sbin/geom/class/journal/geom_journal_ufs.c projects/physbio/sbin/geom/class/part/gpart.8 projects/physbio/sbin/geom/class/raid/graid.8 projects/physbio/sbin/geom/class/raid3/geom_raid3.c projects/physbio/sbin/geom/class/raid3/graid3.8 projects/physbio/sbin/ifconfig/af_inet6.c projects/physbio/sbin/ifconfig/af_nd6.c projects/physbio/sbin/ifconfig/ifconfig.8 projects/physbio/sbin/mount_nullfs/mount_nullfs.c projects/physbio/sbin/newfs_msdos/newfs_msdos.c projects/physbio/sbin/pflogd/Makefile projects/physbio/sbin/route/route.c projects/physbio/sbin/setkey/Makefile projects/physbio/sbin/sysctl/sysctl.c projects/physbio/secure/lib/libssh/Makefile projects/physbio/secure/usr.bin/ssh/Makefile projects/physbio/secure/usr.sbin/sshd/Makefile projects/physbio/share/examples/Makefile projects/physbio/share/examples/cvsup/README projects/physbio/share/examples/cvsup/cvs-supfile projects/physbio/share/examples/cvsup/ports-supfile projects/physbio/share/examples/cvsup/stable-supfile projects/physbio/share/examples/cvsup/standard-supfile projects/physbio/share/info/Makefile projects/physbio/share/man/man4/Makefile projects/physbio/share/man/man4/mfi.4 projects/physbio/share/man/man4/mps.4 projects/physbio/share/man/man4/rl.4 projects/physbio/share/man/man4/stf.4 projects/physbio/share/man/man5/make.conf.5 projects/physbio/share/man/man5/src.conf.5 projects/physbio/share/man/man9/VFS_SET.9 projects/physbio/share/man/man9/sleep.9 projects/physbio/share/man/man9/vm_map_insert.9 projects/physbio/share/man/man9/vm_map_stack.9 projects/physbio/share/misc/committers-doc.dot projects/physbio/share/misc/committers-ports.dot projects/physbio/share/misc/committers-src.dot projects/physbio/share/mk/Makefile projects/physbio/share/mk/bsd.README projects/physbio/share/mk/bsd.cpu.mk projects/physbio/share/mk/bsd.incs.mk projects/physbio/share/mk/bsd.info.mk projects/physbio/share/mk/bsd.init.mk projects/physbio/share/mk/bsd.lib.mk projects/physbio/share/mk/bsd.libnames.mk projects/physbio/share/mk/bsd.links.mk projects/physbio/share/mk/bsd.man.mk projects/physbio/share/mk/bsd.own.mk projects/physbio/share/mk/bsd.prog.mk projects/physbio/share/mk/sys.mk projects/physbio/share/monetdef/Makefile projects/physbio/share/msgdef/Makefile projects/physbio/share/numericdef/Makefile projects/physbio/share/zoneinfo/Makefile projects/physbio/sys/amd64/amd64/pmap.c projects/physbio/sys/amd64/amd64/vm_machdep.c projects/physbio/sys/amd64/conf/GENERIC projects/physbio/sys/amd64/conf/NOTES projects/physbio/sys/amd64/linux32/linux.h projects/physbio/sys/arm/arm/busdma_machdep-v6.c projects/physbio/sys/arm/arm/cpufunc.c projects/physbio/sys/arm/arm/cpufunc_asm_arm10.S projects/physbio/sys/arm/arm/cpufunc_asm_arm9.S projects/physbio/sys/arm/arm/db_trace.c projects/physbio/sys/arm/arm/intr.c projects/physbio/sys/arm/arm/locore.S projects/physbio/sys/arm/arm/machdep.c projects/physbio/sys/arm/arm/pl310.c projects/physbio/sys/arm/arm/pmap-v6.c projects/physbio/sys/arm/arm/swtch.S projects/physbio/sys/arm/arm/trap.c projects/physbio/sys/arm/arm/vm_machdep.c projects/physbio/sys/arm/broadcom/bcm2835/bcm2835_fb.c projects/physbio/sys/arm/broadcom/bcm2835/bcm2835_machdep.c projects/physbio/sys/arm/conf/BEAGLEBONE projects/physbio/sys/arm/conf/DOCKSTAR projects/physbio/sys/arm/conf/NOTES projects/physbio/sys/arm/conf/SHEEVAPLUG projects/physbio/sys/arm/include/atomic.h projects/physbio/sys/arm/include/intr.h projects/physbio/sys/arm/include/machdep.h projects/physbio/sys/arm/include/pcpu.h projects/physbio/sys/arm/include/pl310.h projects/physbio/sys/arm/include/pmap.h projects/physbio/sys/arm/include/proc.h projects/physbio/sys/arm/mv/mv_machdep.c projects/physbio/sys/arm/ti/am335x/am335x_scm_padconf.c projects/physbio/sys/arm/ti/cpsw/if_cpsw.c projects/physbio/sys/arm/ti/cpsw/if_cpswreg.h projects/physbio/sys/arm/ti/cpsw/if_cpswvar.h projects/physbio/sys/arm/ti/omap4/omap4_l2cache.c projects/physbio/sys/arm/ti/omap4/omap4_smc.h projects/physbio/sys/arm/ti/omap4/std.omap4 projects/physbio/sys/arm/ti/ti_cpuid.c projects/physbio/sys/arm/ti/ti_cpuid.h projects/physbio/sys/arm/ti/ti_scm.c projects/physbio/sys/arm/versatile/versatile_clcd.c projects/physbio/sys/boot/arm/uboot/Makefile projects/physbio/sys/boot/common/interp_forth.c projects/physbio/sys/boot/fdt/dts/beaglebone.dts projects/physbio/sys/boot/fdt/dts/pandaboard.dts projects/physbio/sys/boot/i386/efi/Makefile projects/physbio/sys/boot/i386/libi386/bootinfo64.c projects/physbio/sys/boot/i386/libi386/comconsole.c projects/physbio/sys/boot/i386/libi386/devicename.c projects/physbio/sys/boot/i386/libi386/pxe.c projects/physbio/sys/boot/sparc64/loader/main.c projects/physbio/sys/boot/userboot/userboot/Makefile projects/physbio/sys/boot/userboot/userboot/main.c projects/physbio/sys/cam/ctl/ctl.c projects/physbio/sys/cam/ctl/scsi_ctl.c projects/physbio/sys/cam/scsi/scsi_all.c projects/physbio/sys/cam/scsi/scsi_cd.c projects/physbio/sys/cam/scsi/scsi_da.c projects/physbio/sys/cam/scsi/scsi_enc_ses.c projects/physbio/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c projects/physbio/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c projects/physbio/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/physbio/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/ddt.h projects/physbio/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c projects/physbio/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/physbio/sys/compat/linux/linux_futex.c projects/physbio/sys/compat/linux/linux_socket.c projects/physbio/sys/conf/Makefile.arm projects/physbio/sys/conf/files projects/physbio/sys/conf/files.amd64 projects/physbio/sys/conf/files.arm projects/physbio/sys/conf/files.i386 projects/physbio/sys/conf/files.mips projects/physbio/sys/conf/ldscript.arm projects/physbio/sys/conf/options projects/physbio/sys/conf/options.mips projects/physbio/sys/contrib/dev/acpica/changes.txt (contents, props changed) projects/physbio/sys/contrib/dev/acpica/common/adfile.c projects/physbio/sys/contrib/dev/acpica/common/adisasm.c projects/physbio/sys/contrib/dev/acpica/common/adwalk.c projects/physbio/sys/contrib/dev/acpica/common/ahpredef.c projects/physbio/sys/contrib/dev/acpica/common/dmextern.c projects/physbio/sys/contrib/dev/acpica/common/dmrestag.c projects/physbio/sys/contrib/dev/acpica/common/dmtable.c projects/physbio/sys/contrib/dev/acpica/common/dmtbdump.c projects/physbio/sys/contrib/dev/acpica/common/dmtbinfo.c projects/physbio/sys/contrib/dev/acpica/common/getopt.c projects/physbio/sys/contrib/dev/acpica/compiler/aslanalyze.c projects/physbio/sys/contrib/dev/acpica/compiler/aslbtypes.c projects/physbio/sys/contrib/dev/acpica/compiler/aslcodegen.c projects/physbio/sys/contrib/dev/acpica/compiler/aslcompile.c projects/physbio/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/physbio/sys/contrib/dev/acpica/compiler/aslcompiler.l projects/physbio/sys/contrib/dev/acpica/compiler/aslcompiler.y projects/physbio/sys/contrib/dev/acpica/compiler/asldefine.h projects/physbio/sys/contrib/dev/acpica/compiler/aslerror.c projects/physbio/sys/contrib/dev/acpica/compiler/aslfiles.c projects/physbio/sys/contrib/dev/acpica/compiler/aslfold.c projects/physbio/sys/contrib/dev/acpica/compiler/aslglobal.h projects/physbio/sys/contrib/dev/acpica/compiler/asllength.c projects/physbio/sys/contrib/dev/acpica/compiler/asllisting.c projects/physbio/sys/contrib/dev/acpica/compiler/aslload.c projects/physbio/sys/contrib/dev/acpica/compiler/asllookup.c projects/physbio/sys/contrib/dev/acpica/compiler/aslmain.c projects/physbio/sys/contrib/dev/acpica/compiler/aslmap.c projects/physbio/sys/contrib/dev/acpica/compiler/aslmessages.h projects/physbio/sys/contrib/dev/acpica/compiler/aslopcodes.c projects/physbio/sys/contrib/dev/acpica/compiler/asloperands.c projects/physbio/sys/contrib/dev/acpica/compiler/aslopt.c projects/physbio/sys/contrib/dev/acpica/compiler/aslpredef.c projects/physbio/sys/contrib/dev/acpica/compiler/aslresource.c projects/physbio/sys/contrib/dev/acpica/compiler/aslrestype1.c projects/physbio/sys/contrib/dev/acpica/compiler/aslrestype1i.c projects/physbio/sys/contrib/dev/acpica/compiler/aslrestype2.c projects/physbio/sys/contrib/dev/acpica/compiler/aslrestype2d.c projects/physbio/sys/contrib/dev/acpica/compiler/aslrestype2e.c projects/physbio/sys/contrib/dev/acpica/compiler/aslrestype2q.c projects/physbio/sys/contrib/dev/acpica/compiler/aslrestype2s.c projects/physbio/sys/contrib/dev/acpica/compiler/aslrestype2w.c projects/physbio/sys/contrib/dev/acpica/compiler/aslstartup.c projects/physbio/sys/contrib/dev/acpica/compiler/aslstubs.c projects/physbio/sys/contrib/dev/acpica/compiler/aslsupport.l projects/physbio/sys/contrib/dev/acpica/compiler/asltransform.c projects/physbio/sys/contrib/dev/acpica/compiler/asltree.c projects/physbio/sys/contrib/dev/acpica/compiler/asltypes.h projects/physbio/sys/contrib/dev/acpica/compiler/aslutils.c projects/physbio/sys/contrib/dev/acpica/compiler/asluuid.c projects/physbio/sys/contrib/dev/acpica/compiler/aslwalks.c projects/physbio/sys/contrib/dev/acpica/compiler/dtcompile.c projects/physbio/sys/contrib/dev/acpica/compiler/dtcompiler.h projects/physbio/sys/contrib/dev/acpica/compiler/dtexpress.c projects/physbio/sys/contrib/dev/acpica/compiler/dtfield.c projects/physbio/sys/contrib/dev/acpica/compiler/dtio.c projects/physbio/sys/contrib/dev/acpica/compiler/dtparser.l projects/physbio/sys/contrib/dev/acpica/compiler/dtparser.y projects/physbio/sys/contrib/dev/acpica/compiler/dtsubtable.c projects/physbio/sys/contrib/dev/acpica/compiler/dttable.c projects/physbio/sys/contrib/dev/acpica/compiler/dttemplate.c projects/physbio/sys/contrib/dev/acpica/compiler/dttemplate.h projects/physbio/sys/contrib/dev/acpica/compiler/dtutils.c projects/physbio/sys/contrib/dev/acpica/compiler/preprocess.h projects/physbio/sys/contrib/dev/acpica/compiler/prexpress.c projects/physbio/sys/contrib/dev/acpica/compiler/prmacros.c projects/physbio/sys/contrib/dev/acpica/compiler/prparser.l projects/physbio/sys/contrib/dev/acpica/compiler/prparser.y projects/physbio/sys/contrib/dev/acpica/compiler/prscan.c projects/physbio/sys/contrib/dev/acpica/compiler/prutils.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbcmds.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbdisply.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbexec.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbfileio.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbhistry.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbinput.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbmethod.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbnames.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbstats.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbutils.c projects/physbio/sys/contrib/dev/acpica/components/debugger/dbxface.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmnames.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmobject.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmopcode.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmresrc.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmutils.c projects/physbio/sys/contrib/dev/acpica/components/disassembler/dmwalk.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dsargs.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dsfield.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dsinit.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dsobject.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dsutils.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dswexec.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dswload.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dswload2.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dswscope.c projects/physbio/sys/contrib/dev/acpica/components/dispatcher/dswstate.c projects/physbio/sys/contrib/dev/acpica/components/events/evevent.c projects/physbio/sys/contrib/dev/acpica/components/events/evglock.c projects/physbio/sys/contrib/dev/acpica/components/events/evgpe.c projects/physbio/sys/contrib/dev/acpica/components/events/evgpeblk.c projects/physbio/sys/contrib/dev/acpica/components/events/evgpeinit.c projects/physbio/sys/contrib/dev/acpica/components/events/evgpeutil.c projects/physbio/sys/contrib/dev/acpica/components/events/evmisc.c projects/physbio/sys/contrib/dev/acpica/components/events/evregion.c projects/physbio/sys/contrib/dev/acpica/components/events/evrgnini.c projects/physbio/sys/contrib/dev/acpica/components/events/evsci.c projects/physbio/sys/contrib/dev/acpica/components/events/evxface.c projects/physbio/sys/contrib/dev/acpica/components/events/evxfevnt.c projects/physbio/sys/contrib/dev/acpica/components/events/evxfgpe.c projects/physbio/sys/contrib/dev/acpica/components/events/evxfregn.c projects/physbio/sys/contrib/dev/acpica/components/executer/exconfig.c projects/physbio/sys/contrib/dev/acpica/components/executer/exconvrt.c projects/physbio/sys/contrib/dev/acpica/components/executer/excreate.c projects/physbio/sys/contrib/dev/acpica/components/executer/exdebug.c projects/physbio/sys/contrib/dev/acpica/components/executer/exdump.c projects/physbio/sys/contrib/dev/acpica/components/executer/exfield.c projects/physbio/sys/contrib/dev/acpica/components/executer/exfldio.c projects/physbio/sys/contrib/dev/acpica/components/executer/exmisc.c projects/physbio/sys/contrib/dev/acpica/components/executer/exmutex.c projects/physbio/sys/contrib/dev/acpica/components/executer/exnames.c projects/physbio/sys/contrib/dev/acpica/components/executer/exoparg1.c projects/physbio/sys/contrib/dev/acpica/components/executer/exoparg2.c projects/physbio/sys/contrib/dev/acpica/components/executer/exoparg3.c projects/physbio/sys/contrib/dev/acpica/components/executer/exoparg6.c projects/physbio/sys/contrib/dev/acpica/components/executer/exprep.c projects/physbio/sys/contrib/dev/acpica/components/executer/exregion.c projects/physbio/sys/contrib/dev/acpica/components/executer/exresnte.c projects/physbio/sys/contrib/dev/acpica/components/executer/exresolv.c projects/physbio/sys/contrib/dev/acpica/components/executer/exresop.c projects/physbio/sys/contrib/dev/acpica/components/executer/exstore.c projects/physbio/sys/contrib/dev/acpica/components/executer/exstoren.c projects/physbio/sys/contrib/dev/acpica/components/executer/exstorob.c projects/physbio/sys/contrib/dev/acpica/components/executer/exsystem.c projects/physbio/sys/contrib/dev/acpica/components/executer/exutils.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwacpi.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwesleep.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwgpe.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwpci.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwregs.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwsleep.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwtimer.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwvalid.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwxface.c projects/physbio/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsaccess.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsalloc.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsdump.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nseval.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsinit.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsload.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsnames.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsobject.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsparse.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nspredef.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsrepair.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsrepair2.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nssearch.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsutils.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nswalk.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsxfeval.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsxfname.c projects/physbio/sys/contrib/dev/acpica/components/namespace/nsxfobj.c projects/physbio/sys/contrib/dev/acpica/components/parser/psargs.c projects/physbio/sys/contrib/dev/acpica/components/parser/psloop.c projects/physbio/sys/contrib/dev/acpica/components/parser/psopcode.c projects/physbio/sys/contrib/dev/acpica/components/parser/psparse.c projects/physbio/sys/contrib/dev/acpica/components/parser/psscope.c projects/physbio/sys/contrib/dev/acpica/components/parser/pstree.c projects/physbio/sys/contrib/dev/acpica/components/parser/psutils.c projects/physbio/sys/contrib/dev/acpica/components/parser/pswalk.c projects/physbio/sys/contrib/dev/acpica/components/parser/psxface.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsaddr.c projects/physbio/sys/contrib/dev/acpica/components/resources/rscalc.c projects/physbio/sys/contrib/dev/acpica/components/resources/rscreate.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsdump.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsinfo.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsio.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsirq.c projects/physbio/sys/contrib/dev/acpica/components/resources/rslist.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsmemory.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsmisc.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsserial.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsutils.c projects/physbio/sys/contrib/dev/acpica/components/resources/rsxface.c projects/physbio/sys/contrib/dev/acpica/components/tables/tbfadt.c projects/physbio/sys/contrib/dev/acpica/components/tables/tbfind.c projects/physbio/sys/contrib/dev/acpica/components/tables/tbinstal.c projects/physbio/sys/contrib/dev/acpica/components/tables/tbutils.c projects/physbio/sys/contrib/dev/acpica/components/tables/tbxface.c projects/physbio/sys/contrib/dev/acpica/components/tables/tbxfload.c projects/physbio/sys/contrib/dev/acpica/components/tables/tbxfroot.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utaddress.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utalloc.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utcache.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utcopy.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utdebug.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utdecode.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utdelete.c projects/physbio/sys/contrib/dev/acpica/components/utilities/uteval.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utexcep.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utglobal.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utids.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utinit.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utlock.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utmath.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utmisc.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utmutex.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utobject.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utosi.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utresrc.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utstate.c projects/physbio/sys/contrib/dev/acpica/components/utilities/uttrack.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utxface.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utxferror.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utxfinit.c projects/physbio/sys/contrib/dev/acpica/components/utilities/utxfmutex.c projects/physbio/sys/contrib/dev/acpica/include/acapps.h projects/physbio/sys/contrib/dev/acpica/include/acbuffer.h projects/physbio/sys/contrib/dev/acpica/include/accommon.h projects/physbio/sys/contrib/dev/acpica/include/acconfig.h projects/physbio/sys/contrib/dev/acpica/include/acdebug.h projects/physbio/sys/contrib/dev/acpica/include/acdisasm.h projects/physbio/sys/contrib/dev/acpica/include/acdispat.h projects/physbio/sys/contrib/dev/acpica/include/acevents.h projects/physbio/sys/contrib/dev/acpica/include/acexcep.h projects/physbio/sys/contrib/dev/acpica/include/acglobal.h projects/physbio/sys/contrib/dev/acpica/include/achware.h projects/physbio/sys/contrib/dev/acpica/include/acinterp.h projects/physbio/sys/contrib/dev/acpica/include/aclocal.h projects/physbio/sys/contrib/dev/acpica/include/acmacros.h projects/physbio/sys/contrib/dev/acpica/include/acnames.h projects/physbio/sys/contrib/dev/acpica/include/acnamesp.h projects/physbio/sys/contrib/dev/acpica/include/acobject.h projects/physbio/sys/contrib/dev/acpica/include/acopcode.h projects/physbio/sys/contrib/dev/acpica/include/acoutput.h projects/physbio/sys/contrib/dev/acpica/include/acparser.h projects/physbio/sys/contrib/dev/acpica/include/acpi.h projects/physbio/sys/contrib/dev/acpica/include/acpiosxf.h projects/physbio/sys/contrib/dev/acpica/include/acpixf.h projects/physbio/sys/contrib/dev/acpica/include/acpredef.h projects/physbio/sys/contrib/dev/acpica/include/acresrc.h projects/physbio/sys/contrib/dev/acpica/include/acrestyp.h projects/physbio/sys/contrib/dev/acpica/include/acstruct.h projects/physbio/sys/contrib/dev/acpica/include/actables.h projects/physbio/sys/contrib/dev/acpica/include/actbl.h projects/physbio/sys/contrib/dev/acpica/include/actbl1.h projects/physbio/sys/contrib/dev/acpica/include/actbl2.h projects/physbio/sys/contrib/dev/acpica/include/actbl3.h projects/physbio/sys/contrib/dev/acpica/include/actypes.h projects/physbio/sys/contrib/dev/acpica/include/acutils.h projects/physbio/sys/contrib/dev/acpica/include/amlcode.h projects/physbio/sys/contrib/dev/acpica/include/amlresrc.h projects/physbio/sys/contrib/dev/acpica/include/platform/acenv.h projects/physbio/sys/contrib/dev/acpica/include/platform/acfreebsd.h projects/physbio/sys/contrib/dev/acpica/include/platform/acgcc.h projects/physbio/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c projects/physbio/sys/contrib/octeon-sdk/cvmx-app-init.h projects/physbio/sys/contrib/octeon-sdk/cvmx-helper-board.c projects/physbio/sys/dev/acpica/Osd/OsdSchedule.c projects/physbio/sys/dev/acpica/acpi.c projects/physbio/sys/dev/acpica/acpi_pcib.c projects/physbio/sys/dev/acpica/acpi_thermal.c projects/physbio/sys/dev/agp/agp_ali.c projects/physbio/sys/dev/agp/agp_amd.c projects/physbio/sys/dev/agp/agp_amd64.c projects/physbio/sys/dev/agp/agp_ati.c projects/physbio/sys/dev/agp/agp_i810.c projects/physbio/sys/dev/agp/agp_intel.c projects/physbio/sys/dev/agp/agp_sis.c projects/physbio/sys/dev/agp/agp_via.c projects/physbio/sys/dev/ahci/ahci.c projects/physbio/sys/dev/altera/avgen/altera_avgen.c projects/physbio/sys/dev/altera/avgen/altera_avgen.h projects/physbio/sys/dev/altera/jtag_uart/altera_jtag_uart.h projects/physbio/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c projects/physbio/sys/dev/altera/jtag_uart/altera_jtag_uart_nexus.c projects/physbio/sys/dev/altera/sdcard/altera_sdcard.c projects/physbio/sys/dev/altera/sdcard/altera_sdcard.h projects/physbio/sys/dev/altera/sdcard/altera_sdcard_io.c projects/physbio/sys/dev/altera/sdcard/altera_sdcard_nexus.c projects/physbio/sys/dev/ata/ata-pci.h projects/physbio/sys/dev/ata/ata-raid.c projects/physbio/sys/dev/ata/chipsets/ata-intel.c projects/physbio/sys/dev/ath/ath_dfs/null/dfs_null.c projects/physbio/sys/dev/ath/ath_hal/ah.h projects/physbio/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/physbio/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/physbio/sys/dev/ath/ath_hal/ar5416/ar5416phy.h projects/physbio/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/physbio/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/physbio/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c projects/physbio/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c projects/physbio/sys/dev/ath/if_ath.c projects/physbio/sys/dev/ath/if_ath_beacon.c projects/physbio/sys/dev/ath/if_ath_misc.h projects/physbio/sys/dev/ath/if_ath_rx.c projects/physbio/sys/dev/ath/if_ath_sysctl.c projects/physbio/sys/dev/ath/if_ath_tx.c projects/physbio/sys/dev/ath/if_ath_tx_edma.c projects/physbio/sys/dev/ath/if_athdfs.h projects/physbio/sys/dev/ath/if_athioctl.h projects/physbio/sys/dev/ath/if_athvar.h projects/physbio/sys/dev/atkbdc/atkbd.c projects/physbio/sys/dev/atkbdc/atkbd_atkbdc.c projects/physbio/sys/dev/atkbdc/atkbdreg.h projects/physbio/sys/dev/bge/if_bge.c projects/physbio/sys/dev/cas/if_cas.c projects/physbio/sys/dev/ciss/ciss.c projects/physbio/sys/dev/ciss/cissreg.h projects/physbio/sys/dev/ciss/cissvar.h projects/physbio/sys/dev/cxgbe/adapter.h projects/physbio/sys/dev/cxgbe/common/t4_msg.h projects/physbio/sys/dev/cxgbe/firmware/t4fw_cfg.txt projects/physbio/sys/dev/cxgbe/offload.h projects/physbio/sys/dev/cxgbe/t4_l2t.c projects/physbio/sys/dev/cxgbe/t4_l2t.h projects/physbio/sys/dev/cxgbe/t4_main.c projects/physbio/sys/dev/cxgbe/tom/t4_connect.c projects/physbio/sys/dev/cxgbe/tom/t4_cpl_io.c projects/physbio/sys/dev/cxgbe/tom/t4_listen.c projects/physbio/sys/dev/cxgbe/tom/t4_tom.c projects/physbio/sys/dev/cxgbe/tom/t4_tom.h projects/physbio/sys/dev/cxgbe/tom/t4_tom_l2t.c projects/physbio/sys/dev/e1000/if_igb.c projects/physbio/sys/dev/fdt/fdt_mips.c projects/physbio/sys/dev/hpt27xx/hpt27xx_config.c projects/physbio/sys/dev/hpt27xx/os_bsd.h projects/physbio/sys/dev/hpt27xx/osm_bsd.c projects/physbio/sys/dev/hwpmc/hwpmc_mod.c projects/physbio/sys/dev/hwpmc/hwpmc_soft.c projects/physbio/sys/dev/ichsmb/ichsmb_pci.c projects/physbio/sys/dev/ichwd/ichwd.c projects/physbio/sys/dev/ichwd/ichwd.h projects/physbio/sys/dev/isf/isf.c projects/physbio/sys/dev/isf/isf.h projects/physbio/sys/dev/isf/isf_nexus.c projects/physbio/sys/dev/mmc/mmc.c projects/physbio/sys/dev/mmc/mmcreg.h projects/physbio/sys/dev/nand/nand_id.c projects/physbio/sys/dev/netmap/if_em_netmap.h projects/physbio/sys/dev/netmap/if_igb_netmap.h projects/physbio/sys/dev/netmap/if_lem_netmap.h projects/physbio/sys/dev/netmap/if_re_netmap.h projects/physbio/sys/dev/netmap/ixgbe_netmap.h projects/physbio/sys/dev/netmap/netmap.c projects/physbio/sys/dev/netmap/netmap_kern.h projects/physbio/sys/dev/netmap/netmap_mem2.c projects/physbio/sys/dev/nvme/nvme_test.c projects/physbio/sys/dev/pci/pci.c projects/physbio/sys/dev/puc/puc.c projects/physbio/sys/dev/sound/pci/hda/hdac.c projects/physbio/sys/dev/sound/pci/hda/hdac.h projects/physbio/sys/dev/sym/sym_hipd.c projects/physbio/sys/dev/terasic/de4led/terasic_de4led.c projects/physbio/sys/dev/terasic/de4led/terasic_de4led.h projects/physbio/sys/dev/terasic/de4led/terasic_de4led_nexus.c projects/physbio/sys/dev/terasic/mtl/terasic_mtl.c projects/physbio/sys/dev/terasic/mtl/terasic_mtl.h projects/physbio/sys/dev/terasic/mtl/terasic_mtl_nexus.c projects/physbio/sys/dev/uart/uart_dev_ns8250.c projects/physbio/sys/dev/usb/controller/xhci.c projects/physbio/sys/dev/usb/input/ukbd.c projects/physbio/sys/dev/usb/input/ums.c projects/physbio/sys/dev/usb/net/if_axe.c projects/physbio/sys/dev/usb/net/if_cdce.c projects/physbio/sys/dev/usb/quirk/usb_quirk.c projects/physbio/sys/dev/usb/serial/u3g.c projects/physbio/sys/dev/usb/storage/umass.c projects/physbio/sys/dev/usb/template/usb_template_audio.c projects/physbio/sys/dev/usb/template/usb_template_kbd.c projects/physbio/sys/dev/usb/template/usb_template_modem.c projects/physbio/sys/dev/usb/usb_busdma.c projects/physbio/sys/dev/usb/usb_hid.c projects/physbio/sys/dev/usb/usbdevs projects/physbio/sys/dev/usb/usbhid.h projects/physbio/sys/dev/usb/wlan/if_run.c projects/physbio/sys/dev/wbwd/wbwd.c projects/physbio/sys/dev/xen/control/control.c projects/physbio/sys/dev/xen/netfront/netfront.c projects/physbio/sys/fs/ext2fs/ext2_alloc.c projects/physbio/sys/fs/ext2fs/ext2_balloc.c projects/physbio/sys/fs/ext2fs/ext2_dinode.h (contents, props changed) projects/physbio/sys/fs/ext2fs/ext2_inode.c projects/physbio/sys/fs/ext2fs/inode.h projects/physbio/sys/fs/fuse/fuse_io.c projects/physbio/sys/fs/nandfs/nandfs_segment.c projects/physbio/sys/fs/nfs/nfs.h projects/physbio/sys/fs/nfs/nfs_commonkrpc.c projects/physbio/sys/fs/nfs/nfs_commonsubs.c projects/physbio/sys/fs/nfs/nfsport.h projects/physbio/sys/fs/nfsclient/nfs_clport.c projects/physbio/sys/fs/nfsclient/nfs_clrpcops.c projects/physbio/sys/fs/nfsclient/nfs_clstate.c projects/physbio/sys/fs/nfsclient/nfs_clvnops.c projects/physbio/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/physbio/sys/fs/nfsserver/nfs_nfsdport.c projects/physbio/sys/fs/nfsserver/nfs_nfsdserv.c projects/physbio/sys/fs/nfsserver/nfs_nfsdstate.c projects/physbio/sys/fs/nullfs/null.h projects/physbio/sys/fs/nullfs/null_subr.c projects/physbio/sys/fs/nullfs/null_vfsops.c projects/physbio/sys/fs/nullfs/null_vnops.c projects/physbio/sys/fs/tmpfs/tmpfs.h projects/physbio/sys/fs/tmpfs/tmpfs_subr.c projects/physbio/sys/fs/tmpfs/tmpfs_vfsops.c projects/physbio/sys/fs/tmpfs/tmpfs_vnops.c projects/physbio/sys/geom/journal/g_journal.c projects/physbio/sys/geom/mirror/g_mirror.c projects/physbio/sys/geom/raid/g_raid.c projects/physbio/sys/geom/raid/g_raid.h projects/physbio/sys/geom/raid/md_intel.c projects/physbio/sys/geom/raid/md_promise.c projects/physbio/sys/geom/raid/tr_concat.c projects/physbio/sys/geom/raid3/g_raid3.c projects/physbio/sys/geom/raid3/g_raid3_ctl.c projects/physbio/sys/i386/conf/GENERIC projects/physbio/sys/i386/conf/NOTES projects/physbio/sys/i386/i386/pmap.c projects/physbio/sys/i386/linux/linux.h projects/physbio/sys/i386/xen/xen_machdep.c projects/physbio/sys/ia64/conf/GENERIC projects/physbio/sys/kern/kern_clock.c projects/physbio/sys/kern/kern_exit.c projects/physbio/sys/kern/kern_lock.c projects/physbio/sys/kern/kern_mbuf.c projects/physbio/sys/kern/kern_synch.c projects/physbio/sys/kern/kern_tc.c projects/physbio/sys/kern/subr_bus.c projects/physbio/sys/kern/subr_param.c projects/physbio/sys/kern/uipc_mbuf.c projects/physbio/sys/kern/vfs_hash.c projects/physbio/sys/kern/vfs_mount.c projects/physbio/sys/kern/vfs_subr.c projects/physbio/sys/kern/vfs_vnops.c projects/physbio/sys/libkern/arm/divsi3.S projects/physbio/sys/libkern/quad.h projects/physbio/sys/libkern/ucmpdi2.c projects/physbio/sys/mips/atheros/ar71xx_pci.c projects/physbio/sys/mips/beri/beri_machdep.c projects/physbio/sys/mips/beri/files.beri projects/physbio/sys/mips/conf/OCTEON1 projects/physbio/sys/mips/include/bus.h projects/physbio/sys/mips/include/fdt.h projects/physbio/sys/mips/include/metadata.h projects/physbio/sys/mips/include/vmparam.h projects/physbio/sys/mips/nlm/dev/net/mdio.c projects/physbio/sys/mips/nlm/dev/net/nae.c projects/physbio/sys/mips/nlm/dev/net/sgmii.c projects/physbio/sys/mips/nlm/dev/net/xlpge.c projects/physbio/sys/mips/nlm/hal/fmn.c projects/physbio/sys/mips/nlm/hal/mdio.h projects/physbio/sys/mips/nlm/hal/sys.h projects/physbio/sys/mips/nlm/hal/ucore_loader.h projects/physbio/sys/mips/nlm/xlp_machdep.c projects/physbio/sys/mips/nlm/xlp_pci.c projects/physbio/sys/modules/Makefile projects/physbio/sys/modules/ath/Makefile projects/physbio/sys/modules/cxgbe/tom/Makefile projects/physbio/sys/modules/hpt27xx/Makefile projects/physbio/sys/net/bpf.c projects/physbio/sys/net/if_lagg.c projects/physbio/sys/net/if_llatbl.h projects/physbio/sys/net/if_pfsync.h projects/physbio/sys/net/netmap.h projects/physbio/sys/net/zlib.c projects/physbio/sys/net/zlib.h projects/physbio/sys/net80211/ieee80211_adhoc.c projects/physbio/sys/net80211/ieee80211_hostap.c projects/physbio/sys/net80211/ieee80211_hwmp.c projects/physbio/sys/net80211/ieee80211_node.c projects/physbio/sys/net80211/ieee80211_power.c projects/physbio/sys/net80211/ieee80211_radiotap.h projects/physbio/sys/net80211/ieee80211_scan_sta.c projects/physbio/sys/netinet/if_ether.h projects/physbio/sys/netinet/in.c projects/physbio/sys/netinet/in_pcb.c projects/physbio/sys/netinet/tcp.h projects/physbio/sys/netinet/tcp_input.c projects/physbio/sys/netinet/tcp_syncache.c projects/physbio/sys/netinet/tcp_timer.c projects/physbio/sys/netinet/tcp_usrreq.c projects/physbio/sys/netinet/toecore.c projects/physbio/sys/netinet/udp.h projects/physbio/sys/netinet6/in6.c projects/physbio/sys/netinet6/in6_src.c projects/physbio/sys/netinet6/nd6.c projects/physbio/sys/netinet6/nd6.h projects/physbio/sys/netinet6/nd6_nbr.c projects/physbio/sys/netinet6/scope6.c projects/physbio/sys/nfs/nfs_common.c projects/physbio/sys/nfs/nfs_common.h projects/physbio/sys/nfsclient/nfs_krpc.c projects/physbio/sys/nfsclient/nfs_subs.c projects/physbio/sys/nfsclient/nfs_vnops.c projects/physbio/sys/nfsserver/nfs_srvsubs.c projects/physbio/sys/pc98/cbus/pckbd.c projects/physbio/sys/pc98/conf/GENERIC projects/physbio/sys/pci/if_rl.c projects/physbio/sys/pci/if_rlreg.h projects/physbio/sys/pci/ncr.c projects/physbio/sys/powerpc/conf/GENERIC projects/physbio/sys/powerpc/conf/GENERIC64 projects/physbio/sys/security/audit/audit.c projects/physbio/sys/security/audit/audit_bsm.c projects/physbio/sys/security/audit/audit_private.h projects/physbio/sys/sparc64/conf/GENERIC projects/physbio/sys/sparc64/include/smp.h projects/physbio/sys/sparc64/sparc64/interrupt.S projects/physbio/sys/sparc64/sparc64/tick.c projects/physbio/sys/sys/bufobj.h projects/physbio/sys/sys/copyright.h projects/physbio/sys/sys/kernel.h projects/physbio/sys/sys/mbuf.h projects/physbio/sys/sys/mount.h projects/physbio/sys/sys/param.h projects/physbio/sys/sys/time.h projects/physbio/sys/sys/un.h projects/physbio/sys/sys/vmmeter.h projects/physbio/sys/sys/vnode.h projects/physbio/sys/ufs/ffs/ffs_snapshot.c projects/physbio/sys/ufs/ffs/ffs_softdep.c projects/physbio/sys/ufs/ffs/ffs_suspend.c projects/physbio/sys/ufs/ffs/ffs_vfsops.c projects/physbio/sys/vm/device_pager.c projects/physbio/sys/vm/vm_fault.c projects/physbio/sys/vm/vm_map.c projects/physbio/sys/vm/vm_map.h projects/physbio/sys/vm/vm_meter.c projects/physbio/sys/vm/vm_mmap.c projects/physbio/sys/vm/vm_object.h projects/physbio/sys/vm/vm_pageout.c projects/physbio/sys/vm/vm_unix.c projects/physbio/sys/x86/include/specialreg.h projects/physbio/sys/x86/x86/local_apic.c projects/physbio/tools/build/Makefile projects/physbio/tools/build/make_check/Makefile projects/physbio/tools/build/mk/OptionalObsoleteFiles.inc projects/physbio/tools/install.sh projects/physbio/tools/tools/ath/Makefile projects/physbio/tools/tools/ath/arcode/arcode.c projects/physbio/tools/tools/ath/ath_prom_read/ath_prom_read.c projects/physbio/tools/tools/ath/athalq/ar5212_ds.c projects/physbio/tools/tools/ath/athalq/ar5416_ds.c projects/physbio/tools/tools/ath/athdebug/athdebug.c projects/physbio/tools/tools/ath/athdecode/main.c projects/physbio/tools/tools/ath/athkey/athkey.c projects/physbio/tools/tools/ath/athprom/athprom.c projects/physbio/tools/tools/ath/athratestats/main.c projects/physbio/tools/tools/ath/athstats/Makefile projects/physbio/tools/tools/ath/athstats/athstats.c projects/physbio/tools/tools/ath/athsurvey/athsurvey.c projects/physbio/tools/tools/cxgbetool/cxgbetool.c projects/physbio/tools/tools/notescheck/notescheck.py projects/physbio/usr.bin/apply/apply.c projects/physbio/usr.bin/calendar/calendars/calendar.freebsd projects/physbio/usr.bin/ee/Makefile projects/physbio/usr.bin/grep/Makefile projects/physbio/usr.bin/grep/file.c projects/physbio/usr.bin/grep/grep.c projects/physbio/usr.bin/grep/regex/tre-fastmatch.c projects/physbio/usr.bin/m4/Makefile projects/physbio/usr.bin/man/man.1 projects/physbio/usr.bin/man/man.sh projects/physbio/usr.bin/netstat/inet.c projects/physbio/usr.bin/procstat/procstat.c projects/physbio/usr.bin/sort/sort.c projects/physbio/usr.bin/stdbuf/stdbuf.c projects/physbio/usr.bin/systat/vmstat.c projects/physbio/usr.bin/tail/read.c projects/physbio/usr.bin/tr/tr.c projects/physbio/usr.bin/truss/main.c projects/physbio/usr.bin/ul/ul.c projects/physbio/usr.bin/vmstat/vmstat.c projects/physbio/usr.bin/w/w.c projects/physbio/usr.bin/xargs/strnsubst.c projects/physbio/usr.bin/xinstall/Makefile projects/physbio/usr.bin/xinstall/install.1 projects/physbio/usr.bin/xinstall/xinstall.c projects/physbio/usr.sbin/Makefile projects/physbio/usr.sbin/Makefile.amd64 projects/physbio/usr.sbin/acpi/acpidb/Makefile projects/physbio/usr.sbin/acpi/iasl/Makefile projects/physbio/usr.sbin/bsdconfig/USAGE projects/physbio/usr.sbin/bsdconfig/bsdconfig projects/physbio/usr.sbin/bsdconfig/bsdconfig.8 projects/physbio/usr.sbin/bsdconfig/console/ttys projects/physbio/usr.sbin/bsdconfig/include/messages.subr projects/physbio/usr.sbin/bsdconfig/networking/share/device.subr projects/physbio/usr.sbin/bsdconfig/networking/share/hostname.subr projects/physbio/usr.sbin/bsdconfig/networking/share/routing.subr projects/physbio/usr.sbin/bsdconfig/password/password projects/physbio/usr.sbin/bsdconfig/password/share/password.subr projects/physbio/usr.sbin/bsdconfig/security/kern_securelevel projects/physbio/usr.sbin/bsdconfig/share/Makefile projects/physbio/usr.sbin/bsdconfig/share/common.subr projects/physbio/usr.sbin/bsdconfig/share/dialog.subr projects/physbio/usr.sbin/bsdconfig/share/mustberoot.subr projects/physbio/usr.sbin/bsdconfig/startup/misc projects/physbio/usr.sbin/bsdconfig/startup/rcdelete projects/physbio/usr.sbin/bsdconfig/startup/rcvar projects/physbio/usr.sbin/bsdconfig/startup/share/rcconf.subr projects/physbio/usr.sbin/bsdconfig/startup/share/rcedit.subr projects/physbio/usr.sbin/bsdconfig/usermgmt/groupinput projects/physbio/usr.sbin/bsdconfig/usermgmt/share/group_input.subr projects/physbio/usr.sbin/bsdconfig/usermgmt/share/user_input.subr projects/physbio/usr.sbin/bsdconfig/usermgmt/userinput projects/physbio/usr.sbin/bsdconfig/usermgmt/usermgmt projects/physbio/usr.sbin/bsdinstall/bsdinstall.8 projects/physbio/usr.sbin/bsdinstall/partedit/Makefile projects/physbio/usr.sbin/bsdinstall/partedit/diskeditor.c projects/physbio/usr.sbin/bsdinstall/partedit/part_wizard.c projects/physbio/usr.sbin/bsdinstall/partedit/partedit.c projects/physbio/usr.sbin/bsdinstall/partedit/partedit.h projects/physbio/usr.sbin/bsdinstall/scripts/Makefile projects/physbio/usr.sbin/bsdinstall/scripts/services projects/physbio/usr.sbin/bsdinstall/scripts/wlanconfig projects/physbio/usr.sbin/cpucontrol/intel.c projects/physbio/usr.sbin/cpucontrol/via.c projects/physbio/usr.sbin/daemon/daemon.c projects/physbio/usr.sbin/gssd/Makefile projects/physbio/usr.sbin/gssd/gssd.8 projects/physbio/usr.sbin/gssd/gssd.c projects/physbio/usr.sbin/ifmcstat/ifmcstat.c projects/physbio/usr.sbin/inetd/inetd.c projects/physbio/usr.sbin/mtree/Makefile projects/physbio/usr.sbin/ndp/ndp.8 projects/physbio/usr.sbin/ndp/ndp.c projects/physbio/usr.sbin/newsyslog/newsyslog.8 projects/physbio/usr.sbin/newsyslog/newsyslog.c projects/physbio/usr.sbin/nmtree/Makefile projects/physbio/usr.sbin/pkg_install/lib/lib.h projects/physbio/usr.sbin/pkg_install/lib/pkgng.c projects/physbio/usr.sbin/pw/pw_log.c projects/physbio/usr.sbin/pw/pw_user.c projects/physbio/usr.sbin/watchdogd/watchdogd.c Directory Properties: projects/physbio/ (props changed) projects/physbio/cddl/contrib/opensolaris/ (props changed) projects/physbio/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/physbio/contrib/binutils/ (props changed) projects/physbio/contrib/binutils/config/acinclude.m4 (props changed) projects/physbio/contrib/bsnmp/lib/tc.def (props changed) projects/physbio/contrib/bsnmp/snmp_target/snmp_target.3 (props changed) projects/physbio/contrib/bsnmp/snmp_target/target_snmp.c (props changed) projects/physbio/contrib/bsnmp/snmp_target/target_tree.def (props changed) projects/physbio/contrib/bsnmp/snmp_usm/snmp_usm.3 (props changed) projects/physbio/contrib/bsnmp/snmp_usm/usm_snmp.c (props changed) projects/physbio/contrib/bsnmp/snmp_usm/usm_tree.def (props changed) projects/physbio/contrib/bsnmp/snmp_vacm/snmp_vacm.3 (props changed) projects/physbio/contrib/bsnmp/snmp_vacm/vacm_snmp.c (props changed) projects/physbio/contrib/bsnmp/snmp_vacm/vacm_tree.def (props changed) projects/physbio/contrib/compiler-rt/ (props changed) projects/physbio/contrib/dialog/ (props changed) projects/physbio/contrib/dialog/samples/copifuncs/common.funcs (props changed) projects/physbio/contrib/dialog/samples/copifuncs/copi.ifman1 (props changed) projects/physbio/contrib/dialog/samples/copifuncs/copi.ifman2 (props changed) projects/physbio/contrib/dialog/samples/copifuncs/copi.ifmcfg2 (props changed) projects/physbio/contrib/dialog/samples/copifuncs/copi.ifmcfg4 (props changed) projects/physbio/contrib/dialog/samples/copifuncs/copi.ifmcfg5 (props changed) projects/physbio/contrib/dialog/samples/copifuncs/copi.ifpoll2 (props changed) projects/physbio/contrib/dialog/samples/copifuncs/copi.ifreq2 (props changed) projects/physbio/contrib/dialog/samples/copifuncs/copi.sendifm2 (props changed) projects/physbio/contrib/ee/ (props changed) projects/physbio/contrib/ee/Makefile (props changed) projects/physbio/contrib/ee/ee.c (props changed) projects/physbio/contrib/expat/ (props changed) projects/physbio/contrib/expat/doc/expat.png (props changed) projects/physbio/contrib/expat/doc/valid-xhtml10.png (props changed) projects/physbio/contrib/expat/lib/expat_external.h (props changed) projects/physbio/contrib/expat/tests/benchmark/README.txt (props changed) projects/physbio/contrib/expat/tests/benchmark/benchmark.c (props changed) projects/physbio/contrib/expat/tests/benchmark/benchmark.dsp (props changed) projects/physbio/contrib/expat/tests/benchmark/benchmark.dsw (props changed) projects/physbio/contrib/expat/tests/minicheck.c (props changed) projects/physbio/contrib/expat/tests/minicheck.h (props changed) projects/physbio/contrib/expat/tests/runtestspp.cpp (props changed) projects/physbio/contrib/expat/xmlwf/codepage.c (props changed) projects/physbio/contrib/expat/xmlwf/codepage.h (props changed) projects/physbio/contrib/expat/xmlwf/ct.c (props changed) projects/physbio/contrib/expat/xmlwf/filemap.h (props changed) projects/physbio/contrib/expat/xmlwf/readfilemap.c (props changed) projects/physbio/contrib/expat/xmlwf/unixfilemap.c (props changed) projects/physbio/contrib/expat/xmlwf/win32filemap.c (props changed) projects/physbio/contrib/expat/xmlwf/xmlfile.c (props changed) projects/physbio/contrib/expat/xmlwf/xmlfile.h (props changed) projects/physbio/contrib/expat/xmlwf/xmlmime.c (props changed) projects/physbio/contrib/expat/xmlwf/xmlmime.h (props changed) projects/physbio/contrib/expat/xmlwf/xmltchar.h (props changed) projects/physbio/contrib/expat/xmlwf/xmlurl.h (props changed) projects/physbio/contrib/expat/xmlwf/xmlwf.c (props changed) projects/physbio/contrib/expat/xmlwf/xmlwin32url.cxx (props changed) projects/physbio/contrib/file/ (props changed) projects/physbio/contrib/gcc/ (props changed) projects/physbio/contrib/gcc/config/i386/host-cygwin.c (props changed) projects/physbio/contrib/gcc/config/i386/winnt-cxx.c (props changed) projects/physbio/contrib/gcc/config/i386/winnt-stubs.c (props changed) projects/physbio/contrib/gdb/ (props changed) projects/physbio/contrib/gdb/gdb/config/i386/nm-nto.h (props changed) projects/physbio/contrib/gdb/gdb/config/i386/nto.mh (props changed) projects/physbio/contrib/gdb/gdb/config/i386/nto.mt (props changed) projects/physbio/contrib/gdb/gdb/config/i386/tm-nto.h (props changed) projects/physbio/contrib/gdb/gdb/config/tm-nto.h (props changed) projects/physbio/contrib/gdb/gdb/i386-nto-tdep.c (props changed) projects/physbio/contrib/gdb/gdb/nto-procfs.c (props changed) projects/physbio/contrib/gdb/gdb/nto-tdep.c (props changed) projects/physbio/contrib/gdb/gdb/nto-tdep.h (props changed) projects/physbio/contrib/gdb/gdb/proc-api.c (props changed) projects/physbio/contrib/gdb/gdb/proc-events.c (props changed) projects/physbio/contrib/gdb/gdb/proc-flags.c (props changed) projects/physbio/contrib/gdb/gdb/proc-why.c (props changed) projects/physbio/contrib/gdb/gdb/uw-thread.c (props changed) projects/physbio/contrib/ipfilter/FreeBSD-4.0/ipv6-patch (props changed) projects/physbio/contrib/ipfilter/FreeBSD-4.0/ipv6-patch-4.0 (props changed) projects/physbio/contrib/libcxxrt/ (props changed) projects/physbio/contrib/libpcap/ (props changed) projects/physbio/contrib/libpcap/configure.in (props changed) projects/physbio/contrib/llvm/ (props changed) projects/physbio/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h (props changed) projects/physbio/contrib/ntp/ (props changed) projects/physbio/contrib/ntp/html/drivers/driver44.html (props changed) projects/physbio/contrib/ntp/include/icom.h (props changed) projects/physbio/contrib/ntp/readme.y2kfixes (props changed) projects/physbio/contrib/ntp/scripts/stats/clock.awk (props changed) projects/physbio/contrib/ntp/scripts/stats/dupe.awk (props changed) projects/physbio/contrib/ntp/scripts/stats/ensemble.S (props changed) projects/physbio/contrib/ntp/scripts/stats/ensemble.awk (props changed) projects/physbio/contrib/ntp/scripts/stats/etf.S (props changed) projects/physbio/contrib/ntp/scripts/stats/etf.awk (props changed) projects/physbio/contrib/ntp/scripts/stats/itf.S (props changed) projects/physbio/contrib/ntp/scripts/stats/itf.awk (props changed) projects/physbio/contrib/ntp/scripts/stats/loop.S (props changed) projects/physbio/contrib/ntp/scripts/stats/loop.awk (props changed) projects/physbio/contrib/ntp/scripts/stats/loop_summary (props changed) projects/physbio/contrib/ntp/scripts/stats/peer.awk (props changed) projects/physbio/contrib/ntp/scripts/stats/psummary.awk (props changed) projects/physbio/contrib/ntp/scripts/stats/tdata.S (props changed) projects/physbio/contrib/ntp/scripts/stats/tdata.awk (props changed) projects/physbio/contrib/one-true-awk/ (props changed) projects/physbio/contrib/tcpdump/ (props changed) projects/physbio/contrib/tcpdump/bgp.h (props changed) projects/physbio/contrib/tcpdump/configure.in (props changed) projects/physbio/contrib/tcpdump/ipproto.c (props changed) projects/physbio/contrib/tcpdump/l2vpn.c (props changed) projects/physbio/contrib/tcpdump/l2vpn.h (props changed) projects/physbio/contrib/tcpdump/nlpid.c (props changed) projects/physbio/contrib/tcpdump/print-syslog.c (props changed) projects/physbio/crypto/heimdal/ (props changed) projects/physbio/crypto/heimdal/doc/vars.texi (props changed) projects/physbio/crypto/openssl/ (props changed) projects/physbio/crypto/openssl/crypto/bn/asm/s390x.S (props changed) projects/physbio/crypto/openssl/crypto/bn/bn_const.c (props changed) projects/physbio/crypto/openssl/crypto/ocsp/ocsp_cl.c (props changed) projects/physbio/crypto/openssl/crypto/ocsp/ocsp_ext.c (props changed) projects/physbio/crypto/openssl/crypto/ocsp/ocsp_lib.c (props changed) projects/physbio/crypto/openssl/crypto/ocsp/ocsp_srv.c (props changed) projects/physbio/crypto/openssl/crypto/rand/rand_lcl.h (props changed) projects/physbio/crypto/openssl/crypto/vms_rms.h (props changed) projects/physbio/crypto/openssl/util/libeay.num (props changed) projects/physbio/crypto/openssl/util/ssleay.num (props changed) projects/physbio/gnu/lib/ (props changed) projects/physbio/gnu/usr.bin/binutils/ (props changed) projects/physbio/gnu/usr.bin/cc/cc_tools/ (props changed) projects/physbio/gnu/usr.bin/gdb/ (props changed) projects/physbio/lib/libc/ (props changed) projects/physbio/lib/libutil/ (props changed) projects/physbio/sbin/ (props changed) projects/physbio/share/man/man4/ (props changed) projects/physbio/share/zoneinfo/ (props changed) projects/physbio/sys/ (props changed) projects/physbio/sys/boot/ (props changed) projects/physbio/sys/boot/i386/efi/ (props changed) projects/physbio/sys/cddl/contrib/opensolaris/ (props changed) projects/physbio/sys/conf/ (props changed) projects/physbio/sys/contrib/dev/acpica/ (props changed) projects/physbio/sys/contrib/dev/acpica/common/ (props changed) projects/physbio/sys/contrib/dev/acpica/compiler/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/debugger/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/disassembler/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/dispatcher/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/events/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/executer/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/hardware/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/namespace/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/parser/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/resources/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/tables/ (props changed) projects/physbio/sys/contrib/dev/acpica/components/utilities/ (props changed) projects/physbio/sys/contrib/dev/acpica/include/ (props changed) projects/physbio/sys/contrib/dev/acpica/os_specific/ (props changed) projects/physbio/sys/contrib/octeon-sdk/ (props changed) projects/physbio/sys/dev/ath/ath_hal/ar5211/boss.ini (props changed) projects/physbio/sys/dev/bktr/CHANGELOG.TXT (props changed) projects/physbio/sys/dev/ixgbe/ixgbe_82598.h (props changed) projects/physbio/sys/dev/ixgbe/ixgbe_82599.h (props changed) projects/physbio/sys/dev/ixgbe/ixgbe_x540.c (props changed) projects/physbio/sys/dev/ixgbe/ixgbe_x540.h (props changed) projects/physbio/sys/fs/ext2fs/ext2_dir.h (props changed) projects/physbio/sys/fs/ext2fs/ext2fs.h (props changed) projects/physbio/sys/mips/rmi/msgring_xls.cfg (props changed) projects/physbio/sys/modules/digi/Makefile (props changed) projects/physbio/sys/modules/digi/Makefile.inc (props changed) projects/physbio/sys/modules/isci/Makefile (props changed) projects/physbio/sys/modules/sound/driver/ich/Makefile (props changed) projects/physbio/usr.bin/calendar/ (props changed) projects/physbio/usr.bin/procstat/ (props changed) projects/physbio/usr.sbin/bsnmpd/modules/snmp_target/Makefile (props changed) projects/physbio/usr.sbin/bsnmpd/modules/snmp_usm/Makefile (props changed) projects/physbio/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile (props changed) projects/physbio/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c (props changed) Modified: projects/physbio/COPYRIGHT ============================================================================== --- projects/physbio/COPYRIGHT Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/COPYRIGHT Tue Jan 29 15:27:52 2013 (r246072) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2012 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2013 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: projects/physbio/Makefile.inc1 ============================================================================== --- projects/physbio/Makefile.inc1 Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/Makefile.inc1 Tue Jan 29 15:27:52 2013 (r246072) @@ -4,6 +4,8 @@ # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir # -DNO_CLEAN do not clean at all +# -DDB_FROM_SRC use the user/group databases in src/etc instead of +# the system database when installing. # -DNO_SHARE do not go into share subdir # -DKERNFAST define NO_KERNEL{CONFIG,CLEAN,DEPEND,OBJ} # -DNO_KERNELCONFIG do not run config in ${MAKE} buildkernel @@ -11,8 +13,8 @@ # -DNO_KERNELDEPEND do not run ${MAKE} depend in ${MAKE} buildkernel # -DNO_KERNELOBJ do not run ${MAKE} obj in ${MAKE} buildkernel # -DNO_PORTSUPDATE do not update ports in ${MAKE} update +# -DNO_ROOT install without using root privilege # -DNO_DOCUPDATE do not update doc in ${MAKE} update -# -DNO_WWWUPDATE do not update www in ${MAKE} update # -DNO_CTF do not run the DTrace CTF conversion tools on built objects # LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list # LOCAL_LIB_DIRS="list of dirs" to add additional dirs to libraries target @@ -20,6 +22,8 @@ # to be created before files are installed # LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools # list +# METALOG="path to metadata log" to write permission and ownership +# when NO_ROOT is set. (default: ${DESTDIR}/METALOG) # TARGET="machine" to crossbuild world for a different machine type # TARGET_ARCH= may be required when a TARGET supports multiple endians # BUILDENV_SHELL= shell to launch for the buildenv target (def:/bin/sh) @@ -334,18 +338,20 @@ LIB32WMAKEFLAGS+= \ CXX="${CXX} ${LIB32FLAGS}" \ DESTDIR=${LIB32TMP} \ -DCOMPAT_32BIT \ + -DLIBRARIES_ONLY \ -DNO_CPU_CFLAGS \ -DNO_CTF \ -DNO_LINT LIB32WMAKE= ${LIB32WMAKEENV} ${MAKE} ${LIB32WMAKEFLAGS} \ -DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO -DWITHOUT_HTML -LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS +LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS \ + ${IMAKE_INSTALL} .endif -# install stage IMAKEENV= ${CROSSENV:N_LDSCRIPTROOT=*} -IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1 +IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1 \ + ${IMAKE_INSTALL} ${IMAKE_MTREE} .if empty(.MAKEFLAGS:M-n) IMAKEENV+= PATH=${STRICTTMPPATH}:${INSTALLTMP} \ LD_LIBRARY_PATH=${INSTALLTMP} \ @@ -354,6 +360,21 @@ IMAKE+= __MAKE_SHELL=${INSTALLTMP}/sh .else IMAKEENV+= PATH=${TMPPATH}:${INSTALLTMP} .endif +.if defined(DB_FROM_SRC) +INSTALLFLAGS+= -N ${.CURDIR}/etc +MTREEFLAGS+= -N ${.CURDIR}/etc +.endif +.if defined(NO_ROOT) +METALOG?= ${DESTDIR}/${DISTDIR}/METALOG +IMAKE+= -DNO_ROOT METALOG=${METALOG} +INSTALL_DDIR= ${DESTDIR}/${DISTDIR} +INSTALLFLAGS+= -U -M ${METALOG} -D ${INSTALL_DDIR:S://:/:g:C:/$::} +MTREEFLAGS+= -W +.endif +.if defined(DB_FROM_SRC) || defined(NO_ROOT) +IMAKE_INSTALL= INSTALL="install ${INSTALLFLAGS}" +IMAKE_MTREE= MTREE_CMD="nmtree ${MTREEFLAGS}" +.endif # kernel stage KMAKEENV= ${WMAKEENV} @@ -595,9 +616,11 @@ kernel-toolchain: ${TOOLCHAIN_TGTS:N_inc installcheck: # -# Require DESTDIR to be set if installing for a different architecture. +# Require DESTDIR to be set if installing for a different architecture or +# using the user/group database in the source tree. # -.if ${TARGET_ARCH} != ${MACHINE_ARCH} || ${TARGET} != ${MACHINE} +.if ${TARGET_ARCH} != ${MACHINE_ARCH} || ${TARGET} != ${MACHINE} || \ + defined(DB_FROM_SRC) .if !make(distributeworld) installcheck: installcheck_DESTDIR installcheck_DESTDIR: @@ -608,6 +631,7 @@ installcheck_DESTDIR: .endif .endif +.if !defined(DB_FROM_SRC) # # Check for missing UIDs/GIDs. # @@ -635,6 +659,7 @@ installcheck_UGID: false; \ fi .endfor +.endif # # Required install tools to be saved in a scratch dir for safety. @@ -647,7 +672,7 @@ _zoneinfo= zic tzsetup .endif ITOOLS= [ awk cap_mkdb cat chflags chmod chown \ - date echo egrep find grep ${_install-info} \ + date echo egrep find grep id install ${_install-info} \ ln lockf make mkdir mtree mv pwd_mkdb rm sed sh sysctl \ test true uname wc ${_zoneinfo} @@ -670,6 +695,8 @@ EXTRA_DISTRIBUTIONS+= games EXTRA_DISTRIBUTIONS+= lib32 .endif +MTREE_MAGIC?= mtree 2.0 + distributeworld installworld: installcheck mkdir -p ${INSTALLTMP} progs=$$(for prog in ${ITOOLS}; do \ @@ -692,6 +719,9 @@ distributeworld installworld: installche done); \ cp $$libs $$progs ${INSTALLTMP} cp -R $${PATH_LOCALE:-"/usr/share/locale"} ${INSTALLTMP}/locale +.if defined(NO_ROOT) + echo "#${MTREE_MAGIC}" > ${METALOG} +.endif .if make(distributeworld) .for dist in ${EXTRA_DISTRIBUTIONS} -mkdir ${DESTDIR}/${DISTDIR}/${dist} @@ -701,10 +731,20 @@ distributeworld installworld: installche -p ${DESTDIR}/${DISTDIR}/${dist}/usr >/dev/null mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${DESTDIR}/${DISTDIR}/${dist}/usr/include >/dev/null +.if defined(NO_ROOT) + ${IMAKEENV} nmtree -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \ + sed -e 's#^\./#./${dist}/#' >> ${METALOG} + ${IMAKEENV} nmtree -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \ + sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG} + ${IMAKEENV} nmtree -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \ + sed -e 's#^\./#./${dist}/usr/include/#' >> ${METALOG} +.endif .endfor -mkdir ${DESTDIR}/${DISTDIR}/base - ${_+_}cd ${.CURDIR}; ${IMAKE} distrib-dirs \ - DESTDIR=${DESTDIR}/${DISTDIR}/base + cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \ + METALOG=${METALOG} ${IMAKE_INSTALL} ${IMAKE_MTREE} \ + DISTBASE=/base DESTDIR=${DESTDIR}/${DISTDIR}/base \ + LOCAL_MTREE=${LOCAL_MTREE} distrib-dirs .endif ${_+_}cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}; \ ${IMAKEENV} rm -rf ${INSTALLTMP} @@ -712,12 +752,30 @@ distributeworld installworld: installche .for dist in ${EXTRA_DISTRIBUTIONS} find ${DESTDIR}/${DISTDIR}/${dist} -empty -delete .endfor +.if defined(NO_ROOT) +.for dist in base ${EXTRA_DISTRIBUTIONS} + @# For each file that exists in this dist, print the corresponding + @# line from the METALOG. This relies on the fact that + @# a line containing only the filename will sort immediatly before + @# the relevant mtree line. + cd ${DESTDIR}/${DISTDIR}; \ + find ./${dist} | sort -u ${METALOG} - | \ + awk 'BEGIN { print "#${MTREE_MAGIC}" } !/ type=/ { file = $$1 } / type=/ { if ($$1 == file) { sub(/^\.\/${dist}\//, "./"); print } }' > \ + ${DESTDIR}/${DISTDIR}/${dist}.meta +.endfor +.endif .endif packageworld: .for dist in base ${EXTRA_DISTRIBUTIONS} +.if defined(NO_ROOT) + ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ + tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.txz \ + @${DESTDIR}/${DISTDIR}/${dist}.meta +.else ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.txz . +.endif .endfor # @@ -753,7 +811,8 @@ redistribute: .endif distrib-dirs distribution: - cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} ${.TARGET} + cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \ + ${IMAKE_INSTALL} ${IMAKE_MTREE} METALOG=${METALOG} ${.TARGET} # # buildkernel and installkernel @@ -955,6 +1014,13 @@ update: @echo "--------------------------------------------------------------" @echo ">>> Running ${SUP}" @echo "--------------------------------------------------------------" + @echo "!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!" + @echo "!! Update methods with ${SUP} are deprecated." + @echo "!! Please see http://www.freebsd.org/handbook/svn.html" + @echo "!! and convert your update method to SVN_UPDATE or" + @echo "!! freebsd-update(8)." + @echo "!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!" + @sleep 5 .if defined(SUPFILE) @${SUP} ${SUPFLAGS} ${SUPFILE} .endif @@ -970,9 +1036,6 @@ update: .if defined(DOCSUPFILE) && !defined(NO_DOCUPDATE) @${SUP} ${SUPFLAGS} ${DOCSUPFILE} .endif -.if defined(WWWSUPFILE) && !defined(NO_WWWUPDATE) - @${SUP} ${SUPFLAGS} ${WWWSUPFILE} -.endif .endif .if defined(CVS_UPDATE) @cd ${.CURDIR} ; \ @@ -980,6 +1043,13 @@ update: echo "--------------------------------------------------------------" ; \ echo ">>> Updating ${.CURDIR} from CVS repository" ${CVSROOT} ; \ echo "--------------------------------------------------------------" ; \ + echo "!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!" ; \ + echo "!! Update methods with CVS are deprecated." ; \ + echo "!! Please see http://www.freebsd.org/handbook/svn.html" ; \ + echo "!! and convert your update method to SVN_UPDATE or" ; \ + echo "!! freebsd-update(8)." ; \ + echo "!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!" ; \ + sleep 5 ; \ echo ${CVS} -R -q update ${CVSFLAGS} ; \ ${CVS} -R -q update ${CVSFLAGS} ; \ fi @@ -1059,6 +1129,11 @@ _lex= usr.bin/lex _yacc= usr.bin/yacc .endif +.if ${BOOTSTRAPPING} < 1000026 +_nmtree= lib/libnetbsd \ + usr.sbin/nmtree +.endif + .if ${BOOTSTRAPPING} >= 900040 && ${BOOTSTRAPPING} < 900041 _awk= usr.bin/awk .endif @@ -1084,7 +1159,10 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge .endif -.if ${MK_FDT} != "no" +# Default to building the BSDL DTC, but build the GPL one if users explicitly +# request it. +_dtc= usr.bin/dtc +.if ${MK_GPL_DTC} != "no" _dtc= gnu/usr.bin/dtc .endif @@ -1120,7 +1198,8 @@ bootstrap-tools: ${_lex} \ usr.bin/xinstall \ ${_gensnmptree} \ - usr.sbin/config + usr.sbin/config \ + ${_nmtree} ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ cd ${.CURDIR}/${_tool}; \ ${MAKE} DIRPRFX=${_tool}/ obj; \ @@ -1228,11 +1307,12 @@ cross-tools: # hierarchy - ensure that all the needed directories are present # hierarchy hier: - cd ${.CURDIR}/etc; ${MAKE} distrib-dirs -.for _mtree in ${LOCAL_MTREE} - mtree -eU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/${_mtree} \ - -p ${DESTDIR}/ -.endfor +.if defined(NO_ROOT) + cd ${.CURDIR}/etc; ${MAKE} LOCAL_MTREE=${LOCAL_MTREE} \ + -DNO_ROOT METALOG=${METALOG} distrib-dirs +.else + cd ${.CURDIR}/etc; ${MAKE} LOCAL_MTREE=${LOCAL_MTREE} distrib-dirs +.endif # # libraries - build all libraries, and install them under ${DESTDIR}. Modified: projects/physbio/ObsoleteFiles.inc ============================================================================== --- projects/physbio/ObsoleteFiles.inc Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/ObsoleteFiles.inc Tue Jan 29 15:27:52 2013 (r246072) @@ -38,6 +38,13 @@ # xargs -n1 | sort | uniq -d; # done +# 20130116: removed long unused directories for .1aout section manpages +OLD_FILES+=usr/share/man/en.ISO8859-1/man1aout +OLD_FILES+=usr/share/man/en.UTF-8/man1aout +OLD_DIRS+=usr/share/man/man1aout +OLD_DIRS+=usr/share/man/cat1aout +OLD_DIRS+=usr/share/man/en.ISO8859-1/cat1aout +OLD_DIRS+=usr/share/man/en.UTF-8/cat1aout # 20121230: libdisk removed OLD_FILES+=usr/share/man/man3/libdisk.3.gz usr/include/libdisk.h OLD_FILES+=usr/lib/libdisk.a usr/lib32/libdisk.a @@ -1201,12 +1208,6 @@ OLD_FILES+=usr/include/sys/linedisc.h OLD_FILES+=usr/share/man/man3/posix_openpt.3.gz # 20080725: sgtty.h removed OLD_FILES+=usr/include/sgtty.h -# 20080719: sade(8) removed on all but amd64, i386 and sparc64 -.if ${TARGET_ARCH} != "amd64" && ${TARGET_ARCH} != "i386" && \ - ${TARGET_ARCH} != "sparc64" -OLD_FILES+=usr/sbin/sade -OLD_FILES+=usr/share/man/man8/sade.8.gz -.endif # 20080706: bsdlabel(8) removed on powerpc .if ${TARGET_ARCH} == "powerpc" OLD_FILES+=sbin/bsdlabel Modified: projects/physbio/UPDATING ============================================================================== --- projects/physbio/UPDATING Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/UPDATING Tue Jan 29 15:27:52 2013 (r246072) @@ -26,6 +26,15 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20130118: + The install(1) option -M has changed meaning and now takes an + argument that is a file or path to append logs to. In the + unlikely event that -M was the last option on the command line + and the command line contained at least two files and a target + directory the first file will have logs appended to it. The -M + option served little practical purpose in the last decade so it's + used expected to be extremely rare. + 20121223: After switching to Clang as the default compiler some users of ZFS on i386 systems started to experience stack overflow kernel panics. Modified: projects/physbio/bin/cp/cp.c ============================================================================== --- projects/physbio/bin/cp/cp.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/cp/cp.c Tue Jan 29 15:27:52 2013 (r246072) @@ -98,30 +98,28 @@ main(int argc, char *argv[]) { struct stat to_stat, tmp_stat; enum op type; - int Hflag, Lflag, Pflag, ch, fts_options, r, have_trailing_slash; + int Hflag, Lflag, ch, fts_options, r, have_trailing_slash; char *target; fts_options = FTS_NOCHDIR | FTS_PHYSICAL; - Hflag = Lflag = Pflag = 0; + Hflag = Lflag = 0; while ((ch = getopt(argc, argv, "HLPRafilnprvx")) != -1) switch (ch) { case 'H': Hflag = 1; - Lflag = Pflag = 0; + Lflag = 0; break; case 'L': Lflag = 1; - Hflag = Pflag = 0; + Hflag = 0; break; case 'P': - Pflag = 1; Hflag = Lflag = 0; break; case 'R': Rflag = 1; break; case 'a': - Pflag = 1; pflag = 1; Rflag = 1; Hflag = Lflag = 0; @@ -146,7 +144,7 @@ main(int argc, char *argv[]) break; case 'r': rflag = Lflag = 1; - Hflag = Pflag = 0; + Hflag = 0; break; case 'v': vflag = 1; Modified: projects/physbio/bin/cp/utils.c ============================================================================== --- projects/physbio/bin/cp/utils.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/cp/utils.c Tue Jan 29 15:27:52 2013 (r246072) @@ -104,7 +104,7 @@ copy_file(const FTSENT *entp, int dne) if (vflag) printf("%s not overwritten\n", to.p_path); (void)close(from_fd); - return (0); + return (1); } else if (iflag) { (void)fprintf(stderr, "overwrite %s? %s", to.p_path, YESNO); @@ -266,6 +266,11 @@ copy_link(const FTSENT *p, int exists) int len; char llink[PATH_MAX]; + if (exists && nflag) { + if (vflag) + printf("%s not overwritten\n", to.p_path); + return (1); + } if ((len = readlink(p->fts_path, llink, sizeof(llink) - 1)) == -1) { warn("readlink: %s", p->fts_path); return (1); @@ -285,6 +290,12 @@ copy_link(const FTSENT *p, int exists) int copy_fifo(struct stat *from_stat, int exists) { + + if (exists && nflag) { + if (vflag) + printf("%s not overwritten\n", to.p_path); + return (1); + } if (exists && unlink(to.p_path)) { warn("unlink: %s", to.p_path); return (1); @@ -299,6 +310,12 @@ copy_fifo(struct stat *from_stat, int ex int copy_special(struct stat *from_stat, int exists) { + + if (exists && nflag) { + if (vflag) + printf("%s not overwritten\n", to.p_path); + return (1); + } if (exists && unlink(to.p_path)) { warn("unlink: %s", to.p_path); return (1); Modified: projects/physbio/bin/df/df.1 ============================================================================== --- projects/physbio/bin/df/df.1 Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/df/df.1 Tue Jan 29 15:27:52 2013 (r246072) @@ -29,7 +29,7 @@ .\" @(#)df.1 8.3 (Berkeley) 5/8/95 .\" $FreeBSD$ .\" -.Dd November 16, 2012 +.Dd January 24, 2013 .Dt DF 1 .Os .Sh NAME @@ -39,6 +39,7 @@ .Nm .Op Fl b | g | H | h | k | m | P .Op Fl acilnT +.Op Fl \&, .Op Fl t Ar type .Op Ar file | filesystem ... .Sh DESCRIPTION Modified: projects/physbio/bin/df/df.c ============================================================================== --- projects/physbio/bin/df/df.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/df/df.c Tue Jan 29 15:27:52 2013 (r246072) @@ -564,7 +564,8 @@ usage(void) { (void)fprintf(stderr, -"usage: df [-b | -g | -H | -h | -k | -m | -P] [-acilnT] [-t type] [-,] [file | filesystem ...]\n"); +"usage: df [-b | -g | -H | -h | -k | -m | -P] [-acilnT] [-t type] [-,]\n" +" [file | filesystem ...]\n"); exit(EX_USAGE); } Modified: projects/physbio/bin/ls/util.c ============================================================================== --- projects/physbio/bin/ls/util.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/ls/util.c Tue Jan 29 15:27:52 2013 (r246072) @@ -184,7 +184,10 @@ prn_octal(const char *s) for (i = 0; i < (int)clen; i++) putchar((unsigned char)s[i]); len += wcwidth(wc); - } else if (goodchar && f_octal_escape && wc >= 0 && + } else if (goodchar && f_octal_escape && +#if WCHAR_MIN < 0 + wc >= 0 && +#endif wc <= (wchar_t)UCHAR_MAX && (p = strchr(esc, (char)wc)) != NULL) { putchar('\\'); Modified: projects/physbio/bin/ps/extern.h ============================================================================== --- projects/physbio/bin/ps/extern.h Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/ps/extern.h Tue Jan 29 15:27:52 2013 (r246072) @@ -51,7 +51,7 @@ char *elapsed(KINFO *, VARENT *); char *elapseds(KINFO *, VARENT *); char *emulname(KINFO *, VARENT *); VARENT *find_varentry(VAR *); -const char *fmt_argv(char **, char *, size_t); +const char *fmt_argv(char **, char *, char *, size_t); double getpcpu(const KINFO *); char *kvar(KINFO *, VARENT *); char *label(KINFO *, VARENT *); Modified: projects/physbio/bin/ps/fmt.c ============================================================================== --- projects/physbio/bin/ps/fmt.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/ps/fmt.c Tue Jan 29 15:27:52 2013 (r246072) @@ -105,7 +105,7 @@ cmdpart(char *arg0) } const char * -fmt_argv(char **argv, char *cmd, size_t maxlen) +fmt_argv(char **argv, char *cmd, char *thread, size_t maxlen) { size_t len; char *ap, *cp; @@ -122,9 +122,14 @@ fmt_argv(char **argv, char *cmd, size_t cp = malloc(len); if (cp == NULL) errx(1, "malloc failed"); - if (ap == NULL) - sprintf(cp, "[%.*s]", (int)maxlen, cmd); - else if (strncmp(cmdpart(argv[0]), cmd, maxlen) != 0) + if (ap == NULL) { + if (thread != NULL) { + asprintf(&ap, "%s/%s", cmd, thread); + sprintf(cp, "[%.*s]", (int)maxlen, ap); + free(ap); + } else + sprintf(cp, "[%.*s]", (int)maxlen, cmd); + } else if (strncmp(cmdpart(argv[0]), cmd, maxlen) != 0) sprintf(cp, "%s (%.*s)", ap, (int)maxlen, cmd); else strcpy(cp, ap); Modified: projects/physbio/bin/ps/ps.c ============================================================================== --- projects/physbio/bin/ps/ps.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/ps/ps.c Tue Jan 29 15:27:52 2013 (r246072) @@ -141,7 +141,7 @@ static void format_output(KINFO *); static void *expand_list(struct listinfo *); static const char * fmt(char **(*)(kvm_t *, const struct kinfo_proc *, int), - KINFO *, char *, int); + KINFO *, char *, char *, int); static void free_list(struct listinfo *); static void init_list(struct listinfo *, addelem_rtn, int, const char *); static char *kludge_oldps_options(const char *, char *, const char *); @@ -1163,11 +1163,12 @@ sizevars(void) static const char * fmt(char **(*fn)(kvm_t *, const struct kinfo_proc *, int), KINFO *ki, - char *comm, int maxlen) + char *comm, char *thread, int maxlen) { const char *s; - s = fmt_argv((*fn)(kd, ki->ki_p, termwidth), comm, maxlen); + s = fmt_argv((*fn)(kd, ki->ki_p, termwidth), comm, + showthreads && ki->ki_p->ki_numthreads > 1 ? thread : NULL, maxlen); return (s); } @@ -1195,7 +1196,7 @@ saveuser(KINFO *ki) ki->ki_args = strdup(""); else if (UREADOK(ki) || (ki->ki_p->ki_args != NULL)) ki->ki_args = strdup(fmt(kvm_getargv, ki, - ki->ki_p->ki_comm, MAXCOMLEN)); + ki->ki_p->ki_comm, ki->ki_p->ki_tdname, MAXCOMLEN)); else asprintf(&ki->ki_args, "(%s)", ki->ki_p->ki_comm); if (ki->ki_args == NULL) @@ -1206,7 +1207,7 @@ saveuser(KINFO *ki) if (needenv) { if (UREADOK(ki)) ki->ki_env = strdup(fmt(kvm_getenvv, ki, - (char *)NULL, 0)); + (char *)NULL, (char *)NULL, 0)); else ki->ki_env = strdup("()"); if (ki->ki_env == NULL) Modified: projects/physbio/bin/pwait/pwait.c ============================================================================== --- projects/physbio/bin/pwait/pwait.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/pwait/pwait.c Tue Jan 29 15:27:52 2013 (r246072) @@ -141,5 +141,5 @@ main(int argc, char *argv[]) nleft -= n; } - return 0; + exit(EX_OK); } Modified: projects/physbio/bin/sh/TOUR ============================================================================== --- projects/physbio/bin/sh/TOUR Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/TOUR Tue Jan 29 15:27:52 2013 (r246072) @@ -33,10 +33,6 @@ programs is: There are undoubtedly too many of these. Mkinit searches all the C source files for entries looking like: - INIT { - x = 1; /* executed during initialization */ - } - RESET { x = 2; /* executed when the shell does a longjmp back to the main command loop */ Modified: projects/physbio/bin/sh/eval.c ============================================================================== --- projects/physbio/bin/sh/eval.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/eval.c Tue Jan 29 15:27:52 2013 (r246072) @@ -193,7 +193,9 @@ evaltree(union node *n, int flags) { int do_etest; union node *next; + struct stackmark smark; + setstackmark(&smark); do_etest = 0; if (n == NULL) { TRACE(("evaltree(NULL) called\n")); @@ -292,8 +294,10 @@ evaltree(union node *n, int flags) break; } n = next; + popstackmark(&smark); } while (n != NULL); out: + popstackmark(&smark); if (pendingsigs) dotrap(); if (eflag && exitstatus != 0 && do_etest) @@ -347,10 +351,8 @@ evalfor(union node *n, int flags) struct arglist arglist; union node *argp; struct strlist *sp; - struct stackmark smark; int status; - setstackmark(&smark); arglist.lastp = &arglist.list; for (argp = n->nfor.args ; argp ; argp = argp->narg.next) { oexitstatus = exitstatus; @@ -375,7 +377,6 @@ evalfor(union node *n, int flags) } } loopnest--; - popstackmark(&smark); exitstatus = status; } @@ -392,16 +393,13 @@ evalcase(union node *n) union node *cp; union node *patp; struct arglist arglist; - struct stackmark smark; - setstackmark(&smark); arglist.lastp = &arglist.list; oexitstatus = exitstatus; expandarg(n->ncase.expr, &arglist, EXP_TILDE); for (cp = n->ncase.cases ; cp ; cp = cp->nclist.next) { for (patp = cp->nclist.pattern ; patp ; patp = patp->narg.next) { if (casematch(patp, arglist.list->text)) { - popstackmark(&smark); while (cp->nclist.next && cp->type == NCLISTFALLTHRU && cp->nclist.body == NULL) @@ -415,7 +413,6 @@ evalcase(union node *n) } } } - popstackmark(&smark); exitstatus = 0; return (NULL); } @@ -610,7 +607,7 @@ evalbackcmd(union node *n, struct backcm { int pip[2]; struct job *jp; - struct stackmark smark; /* unnecessary */ + struct stackmark smark; struct jmploc jmploc; struct jmploc *savehandler; struct localvar *savelocalvars; @@ -624,8 +621,8 @@ evalbackcmd(union node *n, struct backcm exitstatus = 0; goto out; } + exitstatus = oexitstatus; if (is_valid_fast_cmdsubst(n)) { - exitstatus = oexitstatus; savelocalvars = localvars; localvars = NULL; forcelocal++; @@ -649,7 +646,6 @@ evalbackcmd(union node *n, struct backcm poplocalvars(); localvars = savelocalvars; } else { - exitstatus = 0; if (pipe(pip) < 0) error("Pipe call failed: %s", strerror(errno)); jp = makejob(n, 1); @@ -752,7 +748,6 @@ safe_builtin(int idx, int argc, char **a static void evalcommand(union node *cmd, int flags, struct backcmd *backcmd) { - struct stackmark smark; union node *argp; struct arglist arglist; struct arglist varlist; @@ -779,7 +774,6 @@ evalcommand(union node *cmd, int flags, /* First expand the arguments. */ TRACE(("evalcommand(%p, %d) called\n", (void *)cmd, flags)); - setstackmark(&smark); arglist.lastp = &arglist.list; varlist.lastp = &varlist.list; varflag = 1; @@ -1150,7 +1144,6 @@ out: setvar("_", lastarg, 0); if (do_clearcmdentry) clearcmdentry(); - popstackmark(&smark); } Modified: projects/physbio/bin/sh/exec.c ============================================================================== --- projects/physbio/bin/sh/exec.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/exec.c Tue Jan 29 15:27:52 2013 (r246072) @@ -86,12 +86,12 @@ struct tblentry { union param param; /* definition of builtin function */ int special; /* flag for special builtin commands */ signed char cmdtype; /* index identifying command */ - char rehash; /* if set, cd done since entry created */ char cmdname[]; /* name of command */ }; static struct tblentry *cmdtable[CMDTABLESIZE]; +static int cmdtable_cd = 0; /* cmdtable contains cd-dependent entries */ int exerrno = 0; /* Last exec error */ @@ -305,8 +305,6 @@ printentry(struct tblentry *cmdp, int ve error("internal error: cmdtype %d", cmdp->cmdtype); #endif } - if (cmdp->rehash) - out1c('*'); out1c('\n'); } @@ -323,12 +321,12 @@ find_command(const char *name, struct cm { struct tblentry *cmdp, loc_cmd; int idx; - int prev; char *fullname; struct stat statb; int e; int i; int spec; + int cd; /* If name contains a slash, don't use the hash table */ if (strchr(name, '/') != NULL) { @@ -337,8 +335,10 @@ find_command(const char *name, struct cm return; } + cd = 0; + /* If name is in the table, and not invalidated by cd, we're done */ - if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->rehash == 0) { + if ((cmdp = cmdlookup(name, 0)) != NULL) { if (cmdp->cmdtype == CMDFUNCTION && act & DO_NOFUNC) cmdp = NULL; else @@ -359,13 +359,6 @@ find_command(const char *name, struct cm } /* We have to search path. */ - prev = -1; /* where to start */ - if (cmdp) { /* doing a rehash */ - if (cmdp->cmdtype == CMDBUILTIN) - prev = -1; - else - prev = cmdp->param.index; - } e = ENOENT; idx = -1; @@ -380,13 +373,8 @@ loop: goto loop; /* ignore unimplemented options */ } } - /* if rehash, don't redo absolute path names */ - if (fullname[0] == '/' && idx <= prev) { - if (idx < prev) - goto loop; - TRACE(("searchexec \"%s\": no change\n", name)); - goto success; - } + if (fullname[0] != '/') + cd = 1; if (stat(fullname, &statb) < 0) { if (errno != ENOENT && errno != ENOTDIR) e = errno; @@ -426,9 +414,6 @@ loop: goto success; } - /* We failed. If there was an entry for this command, delete it */ - if (cmdp && cmdp->cmdtype != CMDFUNCTION) - delete_cmd_entry(); if (act & DO_ERR) { if (e == ENOENT || e == ENOTDIR) outfmt(out2, "%s: not found\n", name); @@ -440,7 +425,8 @@ loop: return; success: - cmdp->rehash = 0; + if (cd) + cmdtable_cd = 1; entry->cmdtype = cmdp->cmdtype; entry->u = cmdp->param; entry->special = cmdp->special; @@ -469,22 +455,15 @@ find_builtin(const char *name, int *spec /* - * Called when a cd is done. Marks all commands so the next time they - * are executed they will be rehashed. + * Called when a cd is done. If any entry in cmdtable depends on the current + * directory, simply clear cmdtable completely. */ void hashcd(void) { - struct tblentry **pp; - struct tblentry *cmdp; - - for (pp = cmdtable ; pp < &cmdtable[CMDTABLESIZE] ; pp++) { - for (cmdp = *pp ; cmdp ; cmdp = cmdp->next) { - if (cmdp->cmdtype == CMDNORMAL) - cmdp->rehash = 1; - } - } + if (cmdtable_cd) + clearcmdentry(); } @@ -526,6 +505,7 @@ clearcmdentry(void) } } } + cmdtable_cd = 0; INTON; } @@ -566,7 +546,6 @@ cmdlookup(const char *name, int add) + strlen(name) + 1); cmdp->next = NULL; cmdp->cmdtype = CMDUNKNOWN; - cmdp->rehash = 0; strcpy(cmdp->cmdname, name); INTON; } Modified: projects/physbio/bin/sh/init.h ============================================================================== --- projects/physbio/bin/sh/init.h Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/init.h Tue Jan 29 15:27:52 2013 (r246072) @@ -33,5 +33,4 @@ * $FreeBSD$ */ -void init(void); void reset(void); Modified: projects/physbio/bin/sh/input.c ============================================================================== --- projects/physbio/bin/sh/input.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/input.c Tue Jan 29 15:27:52 2013 (r246072) @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #define EOF_NLEFT -99 /* value of parsenleft when EOF pushed back */ -MKINIT struct strpush { struct strpush *prev; /* preceding string on stack */ char *prevstring; @@ -78,7 +77,6 @@ struct strpush { * contains information about the current file being read. */ -MKINIT struct parsefile { struct parsefile *prev; /* preceding file on stack */ int linno; /* current line */ @@ -96,8 +94,11 @@ int plinno = 1; /* input line number * int parsenleft; /* copy of parsefile->nleft */ MKINIT int parselleft; /* copy of parsefile->lleft */ char *parsenextc; /* copy of parsefile->nextc */ -MKINIT struct parsefile basepf; /* top level input file */ -char basebuf[BUFSIZ + 1]; /* buffer for top level input file */ +static char basebuf[BUFSIZ + 1];/* buffer for top level input file */ +static struct parsefile basepf = { /* top level input file */ + .nextc = basebuf, + .buf = basebuf +}; static struct parsefile *parsefile = &basepf; /* current input file */ int whichprompt; /* 1 == PS1, 2 == PS2 */ @@ -111,12 +112,6 @@ static void popstring(void); INCLUDE "input.h" INCLUDE "error.h" -MKINIT char basebuf[]; - -INIT { - basepf.nextc = basepf.buf = basebuf; -} - RESET { popallfiles(); parselleft = parsenleft = 0; /* clear input buffer */ Modified: projects/physbio/bin/sh/main.c ============================================================================== --- projects/physbio/bin/sh/main.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/main.c Tue Jan 29 15:27:52 2013 (r246072) @@ -139,7 +139,7 @@ main(int argc, char *argv[]) #endif rootpid = getpid(); rootshell = 1; - init(); + initvar(); setstackmark(&smark); setstackmark(&smark2); procargs(argc, argv); Modified: projects/physbio/bin/sh/mkinit.c ============================================================================== --- projects/physbio/bin/sh/mkinit.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/mkinit.c Tue Jan 29 15:27:52 2013 (r246072) @@ -101,7 +101,7 @@ struct block { */ struct event { - const char *name; /* name of event (e.g. INIT) */ + const char *name; /* name of event (e.g. RESET) */ const char *routine; /* name of routine called on event */ const char *comment; /* comment describing routine */ struct text code; /* code for handling event */ @@ -114,11 +114,6 @@ char writer[] = "\ */\n\ \n"; -char init[] = "\ -/*\n\ - * Initialization code.\n\ - */\n"; - char reset[] = "\ /*\n\ * This routine is called when an error or an interrupt occurs in an\n\ @@ -127,7 +122,6 @@ char reset[] = "\ struct event event[] = { - { "INIT", "init", init, { NULL, 0, NULL, NULL } }, { "RESET", "reset", reset, { NULL, 0, NULL, NULL } }, { NULL, NULL, NULL, { NULL, 0, NULL, NULL } } }; Modified: projects/physbio/bin/sh/parser.c ============================================================================== --- projects/physbio/bin/sh/parser.c Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/parser.c Tue Jan 29 15:27:52 2013 (r246072) @@ -240,9 +240,9 @@ list(int nlflag, int erflag) n2 = andor(); tok = readtoken(); if (tok == TBACKGND) { - if (n2->type == NPIPE) { + if (n2 != NULL && n2->type == NPIPE) { n2->npipe.backgnd = 1; - } else if (n2->type == NREDIR) { + } else if (n2 != NULL && n2->type == NREDIR) { n2->type = NBACKGND; } else { n3 = (union node *)stalloc(sizeof (struct nredir)); @@ -286,7 +286,8 @@ list(int nlflag, int erflag) tokpushback++; } checkkwd = CHKNL | CHKKWD | CHKALIAS; - if (!nlflag && !erflag && tokendlist[peektoken()]) + if (!nlflag && (erflag ? peektoken() == TEOF : + tokendlist[peektoken()])) return ntop; break; case TEOF: Modified: projects/physbio/bin/sh/sh.1 ============================================================================== --- projects/physbio/bin/sh/sh.1 Tue Jan 29 14:49:45 2013 (r246071) +++ projects/physbio/bin/sh/sh.1 Tue Jan 29 15:27:52 2013 (r246072) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd July 15, 2012 +.Dd January 22, 2013 .Dt SH 1 .Os .Sh NAME @@ -138,10 +138,10 @@ variable to some file by placing the fol .Pa .profile in the home directory, substituting for -.Pa .shinit +.Pa .shrc the filename desired: .Pp -.Dl "ENV=$HOME/.shinit; export ENV" +.Dl "ENV=$HOME/.shrc; export ENV" .Pp The first non-option argument specified on the command line will be treated as the @@ -2219,10 +2219,6 @@ The shell maintains a hash table which r With no arguments whatsoever, the .Ic hash *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 16:00:44 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 93DDB706; Tue, 29 Jan 2013 16:00:44 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 766223C4; Tue, 29 Jan 2013 16:00:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0TG0i4U059376; Tue, 29 Jan 2013 16:00:44 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0TG0h5c059371; Tue, 29 Jan 2013 16:00:43 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201301291600.r0TG0h5c059371@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 29 Jan 2013 16:00:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246073 - in projects/physbio: contrib/bind9/lib/dns contrib/dialog/samples lib/libc/gen lib/libc/nls share/syscons/keymaps sys/arm/arm sys/arm/conf sys/boot/fdt/dts sys/kern sys/rpc sy... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 16:00:44 -0000 Author: kib Date: Tue Jan 29 16:00:43 2013 New Revision: 246073 URL: http://svnweb.freebsd.org/changeset/base/246073 Log: Copy missed files Added: - copied unchanged from r246072, head/contrib/bind9/lib/dns/opensslecdsa_link.c - copied unchanged from r246072, head/contrib/dialog/samples/dselect - copied unchanged from r246072, head/contrib/dialog/samples/valgrind.log - copied unchanged from r246072, head/lib/libc/gen/unvis-compat.c - copied unchanged from r246072, head/lib/libc/nls/zh_CN.GB18030.msg - copied unchanged from r246072, head/lib/libc/nls/zh_CN.GB2312.msg - copied unchanged from r246072, head/lib/libc/nls/zh_CN.UTF-8.msg - copied unchanged from r246072, head/share/syscons/keymaps/us.dvorakp.kbd - copied unchanged from r246072, head/sys/arm/arm/cpufunc_asm_arm11x6.S - copied unchanged from r246072, head/sys/arm/arm/pl190.c - copied unchanged from r246072, head/sys/arm/conf/VERSATILEPB - copied unchanged from r246072, head/sys/boot/fdt/dts/versatilepb.dts - copied unchanged from r246072, head/sys/kern/subr_busdma_bufalloc.c - copied unchanged from r246072, head/sys/rpc/krpc.h - copied unchanged from r246072, head/sys/security/audit/bsm_domain.c - copied unchanged from r246072, head/sys/security/audit/bsm_errno.c - copied unchanged from r246072, head/sys/security/audit/bsm_fcntl.c - copied unchanged from r246072, head/sys/security/audit/bsm_socket_type.c - copied unchanged from r246072, head/sys/security/audit/bsm_token.c - copied unchanged from r246072, head/sys/sys/busdma_bufalloc.h - copied unchanged from r246072, head/tools/regression/usr.bin/printf/regress.zero.out - copied unchanged from r246072, head/usr.sbin/pkg/dns_utils.h Directory Properties: projects/physbio/contrib/bind9/lib/dns/opensslecdsa_link.c (props changed) projects/physbio/contrib/dialog/samples/dselect (props changed) projects/physbio/contrib/dialog/samples/valgrind.log (props changed) projects/physbio/lib/libc/gen/unvis-compat.c (props changed) projects/physbio/lib/libc/nls/zh_CN.GB18030.msg (props changed) projects/physbio/lib/libc/nls/zh_CN.GB2312.msg (props changed) projects/physbio/lib/libc/nls/zh_CN.UTF-8.msg (props changed) projects/physbio/share/syscons/keymaps/us.dvorakp.kbd (props changed) projects/physbio/sys/arm/arm/cpufunc_asm_arm11x6.S (props changed) projects/physbio/sys/arm/arm/pl190.c (props changed) projects/physbio/sys/arm/conf/VERSATILEPB (props changed) projects/physbio/sys/boot/fdt/dts/versatilepb.dts (props changed) projects/physbio/sys/kern/subr_busdma_bufalloc.c (props changed) projects/physbio/sys/rpc/krpc.h (props changed) projects/physbio/sys/security/audit/bsm_domain.c (props changed) projects/physbio/sys/security/audit/bsm_errno.c (props changed) projects/physbio/sys/security/audit/bsm_fcntl.c (props changed) projects/physbio/sys/security/audit/bsm_socket_type.c (props changed) projects/physbio/sys/security/audit/bsm_token.c (props changed) projects/physbio/sys/sys/busdma_bufalloc.h (props changed) projects/physbio/tools/regression/usr.bin/printf/regress.zero.out (props changed) projects/physbio/usr.sbin/pkg/dns_utils.h (props changed) Copied: projects/physbio/contrib/bind9/lib/dns/opensslecdsa_link.c (from r246072, head/contrib/bind9/lib/dns/opensslecdsa_link.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/contrib/bind9/lib/dns/opensslecdsa_link.c Tue Jan 29 16:00:43 2013 (r246073, copy of r246072, head/contrib/bind9/lib/dns/opensslecdsa_link.c) @@ -0,0 +1,596 @@ +/* + * Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC") + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/* $Id$ */ + +#include + +#ifdef HAVE_OPENSSL_ECDSA + +#if !defined(HAVE_EVP_SHA256) || !defined(HAVE_EVP_SHA384) +#error "ECDSA without EVP for SHA2?" +#endif + +#include +#include +#include +#include +#include + +#include +#include + +#include "dst_internal.h" +#include "dst_openssl.h" +#include "dst_parse.h" + +#include +#include +#include +#include + +#ifndef NID_X9_62_prime256v1 +#error "P-256 group is not known (NID_X9_62_prime256v1)" +#endif +#ifndef NID_secp384r1 +#error "P-384 group is not known (NID_secp384r1)" +#endif + +#define DST_RET(a) {ret = a; goto err;} + +static isc_result_t opensslecdsa_todns(const dst_key_t *key, + isc_buffer_t *data); + +static isc_result_t +opensslecdsa_createctx(dst_key_t *key, dst_context_t *dctx) { + EVP_MD_CTX *evp_md_ctx; + const EVP_MD *type = NULL; + + UNUSED(key); + REQUIRE(dctx->key->key_alg == DST_ALG_ECDSA256 || + dctx->key->key_alg == DST_ALG_ECDSA384); + + evp_md_ctx = EVP_MD_CTX_create(); + if (evp_md_ctx == NULL) + return (ISC_R_NOMEMORY); + if (dctx->key->key_alg == DST_ALG_ECDSA256) + type = EVP_sha256(); + else + type = EVP_sha384(); + + if (!EVP_DigestInit_ex(evp_md_ctx, type, NULL)) { + EVP_MD_CTX_destroy(evp_md_ctx); + return (dst__openssl_toresult2("EVP_DigestInit_ex", + ISC_R_FAILURE)); + } + + dctx->ctxdata.evp_md_ctx = evp_md_ctx; + + return (ISC_R_SUCCESS); +} + +static void +opensslecdsa_destroyctx(dst_context_t *dctx) { + EVP_MD_CTX *evp_md_ctx = dctx->ctxdata.evp_md_ctx; + + REQUIRE(dctx->key->key_alg == DST_ALG_ECDSA256 || + dctx->key->key_alg == DST_ALG_ECDSA384); + + if (evp_md_ctx != NULL) { + EVP_MD_CTX_destroy(evp_md_ctx); + dctx->ctxdata.evp_md_ctx = NULL; + } +} + +static isc_result_t +opensslecdsa_adddata(dst_context_t *dctx, const isc_region_t *data) { + EVP_MD_CTX *evp_md_ctx = dctx->ctxdata.evp_md_ctx; + + REQUIRE(dctx->key->key_alg == DST_ALG_ECDSA256 || + dctx->key->key_alg == DST_ALG_ECDSA384); + + if (!EVP_DigestUpdate(evp_md_ctx, data->base, data->length)) + return (dst__openssl_toresult2("EVP_DigestUpdate", + ISC_R_FAILURE)); + + return (ISC_R_SUCCESS); +} + +static int +BN_bn2bin_fixed(BIGNUM *bn, unsigned char *buf, int size) { + int bytes = size - BN_num_bytes(bn); + + while (bytes-- > 0) + *buf++ = 0; + BN_bn2bin(bn, buf); + return (size); +} + +static isc_result_t +opensslecdsa_sign(dst_context_t *dctx, isc_buffer_t *sig) { + isc_result_t ret; + dst_key_t *key = dctx->key; + isc_region_t r; + ECDSA_SIG *ecdsasig; + EVP_MD_CTX *evp_md_ctx = dctx->ctxdata.evp_md_ctx; + EVP_PKEY *pkey = key->keydata.pkey; + EC_KEY *eckey = EVP_PKEY_get1_EC_KEY(pkey); + unsigned int dgstlen, siglen; + unsigned char digest[EVP_MAX_MD_SIZE]; + + REQUIRE(key->key_alg == DST_ALG_ECDSA256 || + key->key_alg == DST_ALG_ECDSA384); + + if (eckey == NULL) + return (ISC_R_FAILURE); + + if (key->key_alg == DST_ALG_ECDSA256) + siglen = DNS_SIG_ECDSA256SIZE; + else + siglen = DNS_SIG_ECDSA384SIZE; + + isc_buffer_availableregion(sig, &r); + if (r.length < siglen) + DST_RET(ISC_R_NOSPACE); + + if (!EVP_DigestFinal(evp_md_ctx, digest, &dgstlen)) + DST_RET(dst__openssl_toresult2("EVP_DigestFinal", + ISC_R_FAILURE)); + + ecdsasig = ECDSA_do_sign(digest, dgstlen, eckey); + if (ecdsasig == NULL) + DST_RET(dst__openssl_toresult2("ECDSA_do_sign", + DST_R_SIGNFAILURE)); + BN_bn2bin_fixed(ecdsasig->r, r.base, siglen / 2); + r.base += siglen / 2; + BN_bn2bin_fixed(ecdsasig->s, r.base, siglen / 2); + r.base += siglen / 2; + ECDSA_SIG_free(ecdsasig); + isc_buffer_add(sig, siglen); + ret = ISC_R_SUCCESS; + + err: + if (eckey != NULL) + EC_KEY_free(eckey); + return (ret); +} + +static isc_result_t +opensslecdsa_verify(dst_context_t *dctx, const isc_region_t *sig) { + isc_result_t ret; + dst_key_t *key = dctx->key; + int status; + unsigned char *cp = sig->base; + ECDSA_SIG *ecdsasig = NULL; + EVP_MD_CTX *evp_md_ctx = dctx->ctxdata.evp_md_ctx; + EVP_PKEY *pkey = key->keydata.pkey; + EC_KEY *eckey = EVP_PKEY_get1_EC_KEY(pkey); + unsigned int dgstlen, siglen; + unsigned char digest[EVP_MAX_MD_SIZE]; + + REQUIRE(key->key_alg == DST_ALG_ECDSA256 || + key->key_alg == DST_ALG_ECDSA384); + + if (eckey == NULL) + return (ISC_R_FAILURE); + + if (key->key_alg == DST_ALG_ECDSA256) + siglen = DNS_SIG_ECDSA256SIZE; + else + siglen = DNS_SIG_ECDSA384SIZE; + + if (sig->length != siglen) + return (DST_R_VERIFYFAILURE); + + if (!EVP_DigestFinal_ex(evp_md_ctx, digest, &dgstlen)) + DST_RET (dst__openssl_toresult2("EVP_DigestFinal_ex", + ISC_R_FAILURE)); + + ecdsasig = ECDSA_SIG_new(); + if (ecdsasig == NULL) + DST_RET (ISC_R_NOMEMORY); + ecdsasig->r = BN_bin2bn(cp, siglen / 2, NULL); + cp += siglen / 2; + ecdsasig->s = BN_bin2bn(cp, siglen / 2, NULL); + /* cp += siglen / 2; */ + + status = ECDSA_do_verify(digest, dgstlen, ecdsasig, eckey); + switch (status) { + case 1: + ret = ISC_R_SUCCESS; + break; + case 0: + ret = dst__openssl_toresult(DST_R_VERIFYFAILURE); + break; + default: + ret = dst__openssl_toresult2("ECDSA_do_verify", + DST_R_VERIFYFAILURE); + break; + } + + err: + if (ecdsasig != NULL) + ECDSA_SIG_free(ecdsasig); + if (eckey != NULL) + EC_KEY_free(eckey); + return (ret); +} + +static isc_boolean_t +opensslecdsa_compare(const dst_key_t *key1, const dst_key_t *key2) { + isc_boolean_t ret; + int status; + EVP_PKEY *pkey1 = key1->keydata.pkey; + EVP_PKEY *pkey2 = key2->keydata.pkey; + EC_KEY *eckey1 = NULL; + EC_KEY *eckey2 = NULL; + const BIGNUM *priv1, *priv2; + + if (pkey1 == NULL && pkey2 == NULL) + return (ISC_TRUE); + else if (pkey1 == NULL || pkey2 == NULL) + return (ISC_FALSE); + + eckey1 = EVP_PKEY_get1_EC_KEY(pkey1); + eckey2 = EVP_PKEY_get1_EC_KEY(pkey2); + if (eckey1 == NULL && eckey2 == NULL) { + DST_RET (ISC_TRUE); + } else if (eckey1 == NULL || eckey2 == NULL) + DST_RET (ISC_FALSE); + + status = EVP_PKEY_cmp(pkey1, pkey2); + if (status != 1) + DST_RET (ISC_FALSE); + + priv1 = EC_KEY_get0_private_key(eckey1); + priv2 = EC_KEY_get0_private_key(eckey2); + if (priv1 != NULL || priv2 != NULL) { + if (priv1 == NULL || priv2 == NULL) + DST_RET (ISC_FALSE); + if (BN_cmp(priv1, priv2) != 0) + DST_RET (ISC_FALSE); + } + ret = ISC_TRUE; + + err: + if (eckey1 != NULL) + EC_KEY_free(eckey1); + if (eckey2 != NULL) + EC_KEY_free(eckey2); + return (ret); +} + +static isc_result_t +opensslecdsa_generate(dst_key_t *key, int unused, void (*callback)(int)) { + isc_result_t ret; + EVP_PKEY *pkey; + EC_KEY *eckey = NULL; + int group_nid; + + REQUIRE(key->key_alg == DST_ALG_ECDSA256 || + key->key_alg == DST_ALG_ECDSA384); + UNUSED(unused); + UNUSED(callback); + + if (key->key_alg == DST_ALG_ECDSA256) + group_nid = NID_X9_62_prime256v1; + else + group_nid = NID_secp384r1; + + eckey = EC_KEY_new_by_curve_name(group_nid); + if (eckey == NULL) + return (dst__openssl_toresult2("EC_KEY_new_by_curve_name", + DST_R_OPENSSLFAILURE)); + + if (EC_KEY_generate_key(eckey) != 1) + DST_RET (dst__openssl_toresult2("EC_KEY_generate_key", + DST_R_OPENSSLFAILURE)); + + pkey = EVP_PKEY_new(); + if (pkey == NULL) + DST_RET (ISC_R_NOMEMORY); + if (!EVP_PKEY_set1_EC_KEY(pkey, eckey)) { + EVP_PKEY_free(pkey); + DST_RET (ISC_R_FAILURE); + } + key->keydata.pkey = pkey; + ret = ISC_R_SUCCESS; + + err: + if (eckey != NULL) + EC_KEY_free(eckey); + return (ret); +} + +static isc_boolean_t +opensslecdsa_isprivate(const dst_key_t *key) { + isc_boolean_t ret; + EVP_PKEY *pkey = key->keydata.pkey; + EC_KEY *eckey = EVP_PKEY_get1_EC_KEY(pkey); + + ret = ISC_TF(eckey != NULL && EC_KEY_get0_private_key(eckey) != NULL); + if (eckey != NULL) + EC_KEY_free(eckey); + return (ret); +} + +static void +opensslecdsa_destroy(dst_key_t *key) { + EVP_PKEY *pkey = key->keydata.pkey; + + EVP_PKEY_free(pkey); + key->keydata.pkey = NULL; +} + +static isc_result_t +opensslecdsa_todns(const dst_key_t *key, isc_buffer_t *data) { + isc_result_t ret; + EVP_PKEY *pkey; + EC_KEY *eckey = NULL; + isc_region_t r; + int len; + unsigned char *cp; + unsigned char buf[DNS_KEY_ECDSA384SIZE + 1]; + + REQUIRE(key->keydata.pkey != NULL); + + pkey = key->keydata.pkey; + eckey = EVP_PKEY_get1_EC_KEY(pkey); + if (eckey == NULL) + return (dst__openssl_toresult(ISC_R_FAILURE)); + len = i2o_ECPublicKey(eckey, NULL); + /* skip form */ + len--; + + isc_buffer_availableregion(data, &r); + if (r.length < (unsigned int) len) + DST_RET (ISC_R_NOSPACE); + cp = buf; + if (!i2o_ECPublicKey(eckey, &cp)) + DST_RET (dst__openssl_toresult(ISC_R_FAILURE)); + memcpy(r.base, buf + 1, len); + isc_buffer_add(data, len); + ret = ISC_R_SUCCESS; + + err: + if (eckey != NULL) + EC_KEY_free(eckey); + return (ret); +} + +static isc_result_t +opensslecdsa_fromdns(dst_key_t *key, isc_buffer_t *data) { + isc_result_t ret; + EVP_PKEY *pkey; + EC_KEY *eckey = NULL; + isc_region_t r; + int group_nid; + unsigned int len; + const unsigned char *cp; + unsigned char buf[DNS_KEY_ECDSA384SIZE + 1]; + + REQUIRE(key->key_alg == DST_ALG_ECDSA256 || + key->key_alg == DST_ALG_ECDSA384); + + if (key->key_alg == DST_ALG_ECDSA256) { + len = DNS_KEY_ECDSA256SIZE; + group_nid = NID_X9_62_prime256v1; + } else { + len = DNS_KEY_ECDSA384SIZE; + group_nid = NID_secp384r1; + } + + isc_buffer_remainingregion(data, &r); + if (r.length == 0) + return (ISC_R_SUCCESS); + if (r.length < len) + return (DST_R_INVALIDPUBLICKEY); + + eckey = EC_KEY_new_by_curve_name(group_nid); + if (eckey == NULL) + return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); + + buf[0] = POINT_CONVERSION_UNCOMPRESSED; + memcpy(buf + 1, r.base, len); + cp = buf; + if (o2i_ECPublicKey(&eckey, + (const unsigned char **) &cp, + (long) len + 1) == NULL) + DST_RET (dst__openssl_toresult(DST_R_INVALIDPUBLICKEY)); + if (EC_KEY_check_key(eckey) != 1) + DST_RET (dst__openssl_toresult(DST_R_INVALIDPUBLICKEY)); + + pkey = EVP_PKEY_new(); + if (pkey == NULL) + DST_RET (ISC_R_NOMEMORY); + if (!EVP_PKEY_set1_EC_KEY(pkey, eckey)) { + EVP_PKEY_free(pkey); + DST_RET (dst__openssl_toresult(ISC_R_FAILURE)); + } + + isc_buffer_forward(data, len); + key->keydata.pkey = pkey; + ret = ISC_R_SUCCESS; + + err: + if (eckey != NULL) + EC_KEY_free(eckey); + return (ret); +} + +static isc_result_t +opensslecdsa_tofile(const dst_key_t *key, const char *directory) { + isc_result_t ret; + EVP_PKEY *pkey; + EC_KEY *eckey = NULL; + const BIGNUM *privkey; + dst_private_t priv; + unsigned char *buf = NULL; + + if (key->keydata.pkey == NULL) + return (DST_R_NULLKEY); + + pkey = key->keydata.pkey; + eckey = EVP_PKEY_get1_EC_KEY(pkey); + if (eckey == NULL) + return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); + privkey = EC_KEY_get0_private_key(eckey); + if (privkey == NULL) + DST_RET (ISC_R_FAILURE); + + buf = isc_mem_get(key->mctx, BN_num_bytes(privkey)); + if (buf == NULL) + DST_RET (ISC_R_NOMEMORY); + + priv.elements[0].tag = TAG_ECDSA_PRIVATEKEY; + priv.elements[0].length = BN_num_bytes(privkey); + BN_bn2bin(privkey, buf); + priv.elements[0].data = buf; + priv.nelements = ECDSA_NTAGS; + ret = dst__privstruct_writefile(key, &priv, directory); + + err: + if (eckey != NULL) + EC_KEY_free(eckey); + if (buf != NULL) + isc_mem_put(key->mctx, buf, BN_num_bytes(privkey)); + return (ret); +} + +static isc_result_t +ecdsa_check(EC_KEY *eckey, dst_key_t *pub) +{ + isc_result_t ret = ISC_R_FAILURE; + EVP_PKEY *pkey; + EC_KEY *pubeckey = NULL; + const EC_POINT *pubkey; + + if (pub == NULL) + return (ISC_R_SUCCESS); + pkey = pub->keydata.pkey; + if (pkey == NULL) + return (ISC_R_SUCCESS); + pubeckey = EVP_PKEY_get1_EC_KEY(pkey); + if (pubeckey == NULL) + return (ISC_R_SUCCESS); + pubkey = EC_KEY_get0_public_key(pubeckey); + if (pubkey == NULL) + DST_RET (ISC_R_SUCCESS); + if (EC_KEY_set_public_key(eckey, pubkey) != 1) + DST_RET (ISC_R_SUCCESS); + if (EC_KEY_check_key(eckey) == 1) + DST_RET (ISC_R_SUCCESS); + + err: + if (pubeckey != NULL) + EC_KEY_free(pubeckey); + return (ret); +} + +static isc_result_t +opensslecdsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) { + dst_private_t priv; + isc_result_t ret; + EVP_PKEY *pkey; + EC_KEY *eckey = NULL; + BIGNUM *privkey; + int group_nid; + isc_mem_t *mctx = key->mctx; + + REQUIRE(key->key_alg == DST_ALG_ECDSA256 || + key->key_alg == DST_ALG_ECDSA384); + + if (key->key_alg == DST_ALG_ECDSA256) + group_nid = NID_X9_62_prime256v1; + else + group_nid = NID_secp384r1; + + eckey = EC_KEY_new_by_curve_name(group_nid); + if (eckey == NULL) + return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); + + /* read private key file */ + ret = dst__privstruct_parse(key, DST_ALG_ECDSA256, lexer, mctx, &priv); + if (ret != ISC_R_SUCCESS) + goto err; + + privkey = BN_bin2bn(priv.elements[0].data, + priv.elements[0].length, NULL); + if (privkey == NULL) + DST_RET(ISC_R_NOMEMORY); + if (!EC_KEY_set_private_key(eckey, privkey)) + DST_RET(ISC_R_NOMEMORY); + if (ecdsa_check(eckey, pub) != ISC_R_SUCCESS) + DST_RET(DST_R_INVALIDPRIVATEKEY); + dst__privstruct_free(&priv, mctx); + memset(&priv, 0, sizeof(priv)); + + pkey = EVP_PKEY_new(); + if (pkey == NULL) + DST_RET (ISC_R_NOMEMORY); + if (!EVP_PKEY_set1_EC_KEY(pkey, eckey)) { + EVP_PKEY_free(pkey); + DST_RET (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); + } + key->keydata.pkey = pkey; + ret = ISC_R_SUCCESS; + + err: + if (eckey != NULL) + EC_KEY_free(eckey); + dst__privstruct_free(&priv, mctx); + memset(&priv, 0, sizeof(priv)); + return (ret); +} + +static dst_func_t opensslecdsa_functions = { + opensslecdsa_createctx, + opensslecdsa_destroyctx, + opensslecdsa_adddata, + opensslecdsa_sign, + opensslecdsa_verify, + NULL, /*%< computesecret */ + opensslecdsa_compare, + NULL, /*%< paramcompare */ + opensslecdsa_generate, + opensslecdsa_isprivate, + opensslecdsa_destroy, + opensslecdsa_todns, + opensslecdsa_fromdns, + opensslecdsa_tofile, + opensslecdsa_parse, + NULL, /*%< cleanup */ + NULL, /*%< fromlabel */ + NULL, /*%< dump */ + NULL, /*%< restore */ +}; + +isc_result_t +dst__opensslecdsa_init(dst_func_t **funcp) { + REQUIRE(funcp != NULL); + if (*funcp == NULL) + *funcp = &opensslecdsa_functions; + return (ISC_R_SUCCESS); +} + +#else /* HAVE_OPENSSL_ECDSA */ + +#include + +EMPTY_TRANSLATION_UNIT + +#endif /* HAVE_OPENSSL_ECDSA */ +/*! \file */ Copied: projects/physbio/contrib/dialog/samples/dselect (from r246072, head/contrib/dialog/samples/dselect) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/contrib/dialog/samples/dselect Tue Jan 29 16:00:43 2013 (r246073, copy of r246072, head/contrib/dialog/samples/dselect) @@ -0,0 +1,11 @@ +#!/bin/sh +# $Id: dselect,v 1.6 2010/01/13 10:20:03 tom Exp $ + +. ./setup-vars + +exec 3>&1 +RESULT=`$DIALOG --title "Please choose a directory" "$@" --dselect $HOME/ 14 48 2>&1 1>&3` +retval=$? +exec 3>&- + +. ./report-string Copied: projects/physbio/contrib/dialog/samples/valgrind.log (from r246072, head/contrib/dialog/samples/valgrind.log) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/contrib/dialog/samples/valgrind.log Tue Jan 29 16:00:43 2013 (r246073, copy of r246072, head/contrib/dialog/samples/valgrind.log) @@ -0,0 +1,847 @@ +==23273== Memcheck, a memory error detector. +==23273== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. +==23273== Using LibVEX rev 1854, a library for dynamic binary translation. +==23273== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. +==23273== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation framework. +==23273== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. +==23273== +--23273-- Command line +--23273-- /usr/build/dialog/dialog-1.1-20110707/dialog +--23273-- --title +--23273-- YES/NO BOX +--23273-- --clear +--23273-- --yesno +--23273-- Hi, this is a yes/no dialog box. You can use this to ask questions that have an answer of either yes or no. BTW, do you notice that long lines will be automatically wrapped around so that they can fit in the box? You can also control line breaking explicitly by inserting 'backslash n' at any place you like, but in this case, auto wrap around will be disabled and you will have to control line breaking yourself. +--23273-- 15 +--23273-- 61 +--23273-- Startup, with flags: +--23273-- --suppressions=/usr/lib/valgrind/debian-libc6-dbg.supp +--23273-- -v +--23273-- --num-callers=10 +--23273-- --error-limit=no +--23273-- --show-reachable=yes +--23273-- --leak-resolution=high +--23273-- --leak-check=yes +--23273-- --show-reachable=yes +--23273-- --log-fd=2 +--23273-- Contents of /proc/version: +--23273-- Linux version 2.6.26-2-686 (Debian 2.6.26-26lenny3) (dannf@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 SMP Sat Jun 11 14:54:10 UTC 2011 +--23273-- Arch and hwcaps: X86, x86-sse1-sse2 +--23273-- Page sizes: currently 4096, max supported 4096 +--23273-- Valgrind library directory: /usr/lib/valgrind +--23273-- Reading syms from /lib/ld-2.7.so (0x4000000) +--23273-- Reading debug info from /lib/ld-2.7.so... +--23273-- ... CRC mismatch (computed 0f4d8d49 wanted a869dbba) +--23273-- Reading debug info from /usr/lib/debug/lib/ld-2.7.so... +--23273-- Reading syms from /usr/build/dialog/dialog-1.1-20110707/dialog (0x8048000) +--23273-- Reading syms from /usr/lib/valgrind/x86-linux/memcheck (0x38000000) +--23273-- object doesn't have a dynamic symbol table +--23273-- Reading suppressions file: /usr/lib/valgrind/debian-libc6-dbg.supp +--23273-- Reading suppressions file: /usr/lib/valgrind/default.supp +--23273-- REDIR: 0x4015500 (index) redirected to 0x3802cf43 (vgPlain_x86_linux_REDIR_FOR_index) +--23273-- Reading syms from /usr/lib/valgrind/x86-linux/vgpreload_core.so (0x401E000) +--23273-- Reading syms from /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so (0x4020000) +==23273== WARNING: new redirection conflicts with existing -- ignoring it +--23273-- new: 0x04015500 (index ) R-> 0x040241e0 index +--23273-- REDIR: 0x40156f0 (strlen) redirected to 0x4024490 (strlen) +--23273-- Reading syms from /usr/lib/debug/libm-2.7.so (0x4027000) +--23273-- Reading syms from /usr/lib/debug/libc-2.7.so (0x404D000) +--23273-- REDIR: 0x40beaf0 (rindex) redirected to 0x40240c0 (rindex) +--23273-- REDIR: 0x40bf760 (memset) redirected to 0x4025380 (memset) +--23273-- REDIR: 0x40be160 (strcmp) redirected to 0x4024770 (strcmp) +--23273-- REDIR: 0x40be700 (strlen) redirected to 0x4024470 (strlen) +--23273-- REDIR: 0x40be910 (strncmp) redirected to 0x40246e0 (strncmp) +--23273-- REDIR: 0x40bdff0 (index) redirected to 0x40241b0 (index) +--23273-- REDIR: 0x40b9740 (free) redirected to 0x4022ad0 (free) +--23273-- REDIR: 0x40bb2c0 (calloc) redirected to 0x4021d60 (calloc) +--23273-- REDIR: 0x40c07e0 (strchrnul) redirected to 0x4025450 (strchrnul) +--23273-- REDIR: 0x40bb5e0 (malloc) redirected to 0x4023cb0 (malloc) +--23273-- REDIR: 0x40bfc80 (memcpy) redirected to 0x40248e0 (memcpy) +--23273-- REDIR: 0x40be7b0 (strnlen) redirected to 0x4024430 (strnlen) +--23273-- REDIR: 0x40bf7c0 (mempcpy) redirected to 0x40254b0 (mempcpy) +--23273-- REDIR: 0x40be1f0 (strcpy) redirected to 0x40244d0 (strcpy) +--23273-- REDIR: 0x40bba60 (realloc) redirected to 0x4023dc0 (realloc) +--23273-- REDIR: 0x40bea20 (strncpy) redirected to 0x40245a0 (strncpy) +--23273-- REDIR: 0x40bf690 (bcmp) redirected to 0x4025070 (bcmp) +--23273-- REDIR: 0x40bde40 (strcat) redirected to 0x4024240 (strcat) +==23273== +==23273== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 14 from 1) +--23273-- +--23273-- supp: 14 dl-hack3-cond-1 +==23273== malloc/free: in use at exit: 72,482 bytes in 382 blocks. +==23273== malloc/free: 419 allocs, 37 frees, 79,695 bytes allocated. +==23273== +==23273== searching for pointers to 382 not-freed blocks. +==23273== checked 149,580 bytes. +==23273== +==23273== 6 bytes in 1 blocks are still reachable in loss record 1 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x8068E64: dlg_strclone (util.c:1740) +==23273== by 0x805FE72: same_cache2 (inputstr.c:212) +==23273== by 0x805FEE7: dlg_index_wchars (inputstr.c:342) +==23273== by 0x8059BBE: print_button (buttons.c:97) +==23273== by 0x805A265: dlg_draw_buttons (buttons.c:297) +==23273== by 0x806A2D0: dialog_yesno (yesno.c:98) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 6 bytes in 1 blocks are still reachable in loss record 2 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x8068E64: dlg_strclone (util.c:1740) +==23273== by 0x805FE72: same_cache2 (inputstr.c:212) +==23273== by 0x805FFCE: dlg_index_columns (inputstr.c:397) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x805A1F3: dlg_draw_buttons (buttons.c:296) +==23273== by 0x806A2D0: dialog_yesno (yesno.c:98) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 7 bytes in 2 blocks are still reachable in loss record 3 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x8068E64: dlg_strclone (util.c:1740) +==23273== by 0x805FE72: same_cache2 (inputstr.c:212) +==23273== by 0x805FFCE: dlg_index_columns (inputstr.c:397) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8059E3A: dlg_button_sizes (buttons.c:179) +==23273== by 0x8059F04: dlg_button_x_step (buttons.c:209) +==23273== by 0x805A02F: dlg_button_layout (buttons.c:234) +==23273== by 0x806A11F: dialog_yesno (yesno.c:71) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== +==23273== +==23273== 11 bytes in 1 blocks are still reachable in loss record 4 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x8068E64: dlg_strclone (util.c:1740) +==23273== by 0x805FE72: same_cache2 (inputstr.c:212) +==23273== by 0x805FFCE: dlg_index_columns (inputstr.c:397) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8067711: real_auto_size (util.c:1101) +==23273== by 0x8067A1F: dlg_auto_size (util.c:1167) +==23273== by 0x806A14E: dialog_yesno (yesno.c:72) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 12 bytes in 1 blocks are still reachable in loss record 5 of 62 +==23273== at 0x4021E22: calloc (vg_replace_malloc.c:397) +==23273== by 0x807F18F: _nc_add_to_try (add_tries.c:90) +==23273== by 0x80885C6: _nc_init_keytry (init_keytry.c:74) +==23273== by 0x80807F4: _nc_keypad (lib_options.c:262) +==23273== by 0x808035F: keypad (lib_options.c:129) +==23273== by 0x8066340: init_dialog (util.c:330) +==23273== by 0x804C880: main (dialog.c:1604) +==23273== +==23273== +==23273== 16 bytes in 1 blocks are still reachable in loss record 6 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x41165D0: tsearch (tsearch.c:281) +==23273== by 0x805FC92: make_cache (inputstr.c:149) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FFB4: dlg_index_columns (inputstr.c:396) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8066FD3: dlg_print_scrolled (util.c:886) +==23273== by 0x806A30C: dialog_yesno (yesno.c:104) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 16 bytes in 1 blocks are still reachable in loss record 7 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x41165D0: tsearch (tsearch.c:281) +==23273== by 0x805FC92: make_cache (inputstr.c:149) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FECD: dlg_index_wchars (inputstr.c:341) +==23273== by 0x8059BBE: print_button (buttons.c:97) +==23273== by 0x805A265: dlg_draw_buttons (buttons.c:297) +==23273== by 0x806A2D0: dialog_yesno (yesno.c:98) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 16 bytes in 1 blocks are still reachable in loss record 8 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x41165D0: tsearch (tsearch.c:281) +==23273== by 0x805FC92: make_cache (inputstr.c:149) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FFB4: dlg_index_columns (inputstr.c:396) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x805A1F3: dlg_draw_buttons (buttons.c:296) +==23273== by 0x806A2D0: dialog_yesno (yesno.c:98) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 16 bytes in 1 blocks are still reachable in loss record 9 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x41165D0: tsearch (tsearch.c:281) +==23273== by 0x805FC92: make_cache (inputstr.c:149) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FFB4: dlg_index_columns (inputstr.c:396) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8067711: real_auto_size (util.c:1101) +==23273== by 0x8067A1F: dlg_auto_size (util.c:1167) +==23273== by 0x806A14E: dialog_yesno (yesno.c:72) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== +==23273== +==23273== 16 bytes in 1 blocks are still reachable in loss record 10 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x807F2D5: _nc_doalloc (doalloc.c:55) +==23273== by 0x8086167: _nc_trace_alloc (trace_buf.c:55) +==23273== by 0x8086261: _nc_trace_buf (trace_buf.c:90) +==23273== by 0x80864A7: _nc_visbuf2n (visbuf.c:94) +==23273== by 0x8086538: _nc_visbuf2 (visbuf.c:114) +==23273== by 0x8086553: _nc_visbuf (visbuf.c:120) +==23273== by 0x8088693: recur_tries (trace_tries.c:55) +==23273== by 0x80886D7: recur_tries (trace_tries.c:59) +==23273== by 0x80886D7: recur_tries (trace_tries.c:59) +==23273== +==23273== +==23273== 21 bytes in 1 blocks are still reachable in loss record 11 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x40BE45F: strdup (strdup.c:43) +==23273== by 0x8081EE0: setupterm (lib_setup.c:471) +==23273== by 0x8072292: newterm (lib_newterm.c:115) +==23273== by 0x806E82C: initscr (lib_initscr.c:83) +==23273== by 0x8066211: init_dialog (util.c:292) +==23273== by 0x804C880: main (dialog.c:1604) +==23273== +==23273== +==23273== 23 bytes in 1 blocks are still reachable in loss record 12 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x8088526: _nc_home_terminfo (home_terminfo.c:57) +==23273== by 0x8085E1B: _nc_read_entry (read_entry.c:492) +==23273== by 0x8081834: grab_entry (lib_setup.c:255) +==23273== by 0x8081D46: setupterm (lib_setup.c:438) +==23273== by 0x8072292: newterm (lib_newterm.c:115) +==23273== by 0x806E82C: initscr (lib_initscr.c:83) +==23273== by 0x8066211: init_dialog (util.c:292) +==23273== by 0x804C880: main (dialog.c:1604) +==23273== +==23273== +==23273== 24 bytes in 1 blocks are still reachable in loss record 13 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x805FDE1: same_cache2 (inputstr.c:201) +==23273== by 0x805FEE7: dlg_index_wchars (inputstr.c:342) +==23273== by 0x8059BBE: print_button (buttons.c:97) +==23273== by 0x805A265: dlg_draw_buttons (buttons.c:297) +==23273== by 0x806A2D0: dialog_yesno (yesno.c:98) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 24 bytes in 1 blocks are still reachable in loss record 14 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x805FDE1: same_cache2 (inputstr.c:201) +==23273== by 0x805FFCE: dlg_index_columns (inputstr.c:397) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x805A1F3: dlg_draw_buttons (buttons.c:296) +==23273== by 0x806A2D0: dialog_yesno (yesno.c:98) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 28 bytes in 1 blocks are still reachable in loss record 15 of 62 +==23273== at 0x4021E22: calloc (vg_replace_malloc.c:397) +==23273== by 0x805FC0F: make_cache (inputstr.c:139) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FFB4: dlg_index_columns (inputstr.c:396) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8066FD3: dlg_print_scrolled (util.c:886) +==23273== by 0x806A30C: dialog_yesno (yesno.c:104) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 28 bytes in 1 blocks are still reachable in loss record 16 of 62 +==23273== at 0x4021E22: calloc (vg_replace_malloc.c:397) +==23273== by 0x805FC0F: make_cache (inputstr.c:139) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FECD: dlg_index_wchars (inputstr.c:341) +==23273== by 0x8059BBE: print_button (buttons.c:97) +==23273== by 0x805A265: dlg_draw_buttons (buttons.c:297) +==23273== by 0x806A2D0: dialog_yesno (yesno.c:98) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 28 bytes in 1 blocks are still reachable in loss record 17 of 62 +==23273== at 0x4021E22: calloc (vg_replace_malloc.c:397) +==23273== by 0x805FC0F: make_cache (inputstr.c:139) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FFB4: dlg_index_columns (inputstr.c:396) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x805A1F3: dlg_draw_buttons (buttons.c:296) +==23273== by 0x806A2D0: dialog_yesno (yesno.c:98) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 28 bytes in 1 blocks are still reachable in loss record 18 of 62 +==23273== at 0x4021E22: calloc (vg_replace_malloc.c:397) +==23273== by 0x805FC0F: make_cache (inputstr.c:139) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FFB4: dlg_index_columns (inputstr.c:396) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8067711: real_auto_size (util.c:1101) +==23273== by 0x8067A1F: dlg_auto_size (util.c:1167) +==23273== by 0x806A14E: dialog_yesno (yesno.c:72) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 28 bytes in 2 blocks are still reachable in loss record 19 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x805FDE1: same_cache2 (inputstr.c:201) +==23273== by 0x805FFCE: dlg_index_columns (inputstr.c:397) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8059E3A: dlg_button_sizes (buttons.c:179) +==23273== by 0x8059F04: dlg_button_x_step (buttons.c:209) +==23273== by 0x805A02F: dlg_button_layout (buttons.c:234) +==23273== by 0x806A11F: dialog_yesno (yesno.c:71) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 32 bytes in 2 blocks are still reachable in loss record 20 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x41165D0: tsearch (tsearch.c:281) +==23273== by 0x805FC92: make_cache (inputstr.c:149) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FFB4: dlg_index_columns (inputstr.c:396) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8059E3A: dlg_button_sizes (buttons.c:179) +==23273== by 0x8059F04: dlg_button_x_step (buttons.c:209) +==23273== by 0x805A02F: dlg_button_layout (buttons.c:234) +==23273== by 0x806A11F: dialog_yesno (yesno.c:71) +==23273== +==23273== +==23273== 33 bytes in 1 blocks are still reachable in loss record 21 of 62 +==23273== at 0x4023E8C: realloc (vg_replace_malloc.c:429) +==23273== by 0x807F2A9: _nc_doalloc (doalloc.c:50) +==23273== by 0x808620A: _nc_trace_alloc (trace_buf.c:63) +==23273== by 0x8086261: _nc_trace_buf (trace_buf.c:90) +==23273== by 0x80864A7: _nc_visbuf2n (visbuf.c:94) +==23273== by 0x8086538: _nc_visbuf2 (visbuf.c:114) +==23273== by 0x8086553: _nc_visbuf (visbuf.c:120) +==23273== by 0x8088693: recur_tries (trace_tries.c:55) +==23273== by 0x80886D7: recur_tries (trace_tries.c:59) +==23273== by 0x80886D7: recur_tries (trace_tries.c:59) +==23273== +==23273== +==23273== 44 bytes in 1 blocks are still reachable in loss record 22 of 62 +==23273== at 0x4023D6E: malloc (vg_replace_malloc.c:207) +==23273== by 0x805FDE1: same_cache2 (inputstr.c:201) +==23273== by 0x805FFCE: dlg_index_columns (inputstr.c:397) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8067711: real_auto_size (util.c:1101) +==23273== by 0x8067A1F: dlg_auto_size (util.c:1167) +==23273== by 0x806A14E: dialog_yesno (yesno.c:72) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== by 0x804CC56: main (dialog.c:1679) +==23273== +==23273== +==23273== 47 bytes in 1 blocks are still reachable in loss record 23 of 62 +==23273== at 0x4023E8C: realloc (vg_replace_malloc.c:429) +==23273== by 0x807F2A9: _nc_doalloc (doalloc.c:50) +==23273== by 0x8085368: read_termtype (read_entry.c:283) +==23273== by 0x8085B64: _nc_read_file_entry (read_entry.c:392) +==23273== by 0x8085BF5: _nc_read_tic_entry (read_entry.c:413) +==23273== by 0x8085C8A: _nc_read_terminfo_dirs (read_entry.c:438) +==23273== by 0x8085E90: _nc_read_entry (read_entry.c:500) +==23273== by 0x8081834: grab_entry (lib_setup.c:255) +==23273== by 0x8081D46: setupterm (lib_setup.c:438) +==23273== by 0x8072292: newterm (lib_newterm.c:115) +==23273== +==23273== +==23273== 55 bytes in 1 blocks are still reachable in loss record 24 of 62 +==23273== at 0x4021E22: calloc (vg_replace_malloc.c:397) +==23273== by 0x8084EC3: read_termtype (read_entry.c:207) +==23273== by 0x8085B64: _nc_read_file_entry (read_entry.c:392) +==23273== by 0x8085BF5: _nc_read_tic_entry (read_entry.c:413) +==23273== by 0x8085C8A: _nc_read_terminfo_dirs (read_entry.c:438) +==23273== by 0x8085E90: _nc_read_entry (read_entry.c:500) +==23273== by 0x8081834: grab_entry (lib_setup.c:255) +==23273== by 0x8081D46: setupterm (lib_setup.c:438) +==23273== by 0x8072292: newterm (lib_newterm.c:115) +==23273== by 0x806E82C: initscr (lib_initscr.c:83) +==23273== +==23273== +==23273== 56 bytes in 2 blocks are still reachable in loss record 25 of 62 +==23273== at 0x4021E22: calloc (vg_replace_malloc.c:397) +==23273== by 0x805FC0F: make_cache (inputstr.c:139) +==23273== by 0x805FCF7: load_cache (inputstr.c:161) +==23273== by 0x805FFB4: dlg_index_columns (inputstr.c:396) +==23273== by 0x8060166: dlg_count_columns (inputstr.c:473) +==23273== by 0x8059E3A: dlg_button_sizes (buttons.c:179) +==23273== by 0x8059F04: dlg_button_x_step (buttons.c:209) +==23273== by 0x805A02F: dlg_button_layout (buttons.c:234) +==23273== by 0x806A11F: dialog_yesno (yesno.c:71) +==23273== by 0x804A728: call_yesno (dialog.c:600) +==23273== +==23273== *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 17:38:59 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id DF250F14; Tue, 29 Jan 2013 17:38:59 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C303BB1D; Tue, 29 Jan 2013 17:38:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0THcxOr088388; Tue, 29 Jan 2013 17:38:59 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0THcw4S088379; Tue, 29 Jan 2013 17:38:58 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201301291738.r0THcw4S088379@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 29 Jan 2013 17:38:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246078 - in projects/physbio: . gnu/usr.bin/patch share/man/man5 share/mk sys/arm/conf tools/build/options tools/regression/bin/sh/errors usr.bin usr.bin/patch usr.sbin/bsdinstall/part... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 17:38:59 -0000 Author: kib Date: Tue Jan 29 17:38:58 2013 New Revision: 246078 URL: http://svnweb.freebsd.org/changeset/base/246078 Log: MFH Added: projects/physbio/tools/build/options/WITH_BSD_PATCH - copied unchanged from r246077, head/tools/build/options/WITH_BSD_PATCH projects/physbio/usr.bin/patch/ - copied from r246077, head/usr.bin/patch/ Modified: projects/physbio/UPDATING projects/physbio/gnu/usr.bin/patch/Makefile projects/physbio/share/man/man5/src.conf.5 projects/physbio/share/mk/bsd.own.mk projects/physbio/usr.bin/Makefile Directory Properties: projects/physbio/ (props changed) projects/physbio/sys/ (props changed) projects/physbio/sys/arm/conf/VERSATILEPB (props changed) projects/physbio/tools/regression/bin/sh/errors/write-error1.0 (props changed) projects/physbio/usr.sbin/bsdinstall/partedit/sade.8 (props changed) projects/physbio/usr.sbin/pkg/dns_utils.c (props changed) Modified: projects/physbio/UPDATING ============================================================================== --- projects/physbio/UPDATING Tue Jan 29 17:22:53 2013 (r246077) +++ projects/physbio/UPDATING Tue Jan 29 17:38:58 2013 (r246078) @@ -26,6 +26,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20130129: + A BSD-licensed patch(1) variant has been added and is installed + as bsdpatch, being the GNU version the default patch. + To inverse the logic and use the BSD-licensed one as default, + while having the GNU version installed as gnupatch, rebuild + ans install world with the WITH_BSD_PATCH knob set. + 20130118: The install(1) option -M has changed meaning and now takes an argument that is a file or path to append logs to. In the Modified: projects/physbio/gnu/usr.bin/patch/Makefile ============================================================================== --- projects/physbio/gnu/usr.bin/patch/Makefile Tue Jan 29 17:22:53 2013 (r246077) +++ projects/physbio/gnu/usr.bin/patch/Makefile Tue Jan 29 17:38:58 2013 (r246078) @@ -1,6 +1,17 @@ # $FreeBSD$ -PROG= patch +.include + +.if ${MK_BSD_PATCH} == "yes" +PROG= gnupatch +CLEANFILES+= gnupatch.1 + +gnupatch.1: patch.1 + cp ${.ALLSRC} ${.TARGET} +.else +PROG= patch +.endif + SRCS= backupfile.c inp.c patch.c pch.c util.c version.c CFLAGS+=-DHAVE_CONFIG_H Modified: projects/physbio/share/man/man5/src.conf.5 ============================================================================== --- projects/physbio/share/man/man5/src.conf.5 Tue Jan 29 17:22:53 2013 (r246077) +++ projects/physbio/share/man/man5/src.conf.5 Tue Jan 29 17:38:58 2013 (r246078) @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 236279 2012-05-30 02:37:20Z gjb .\" $FreeBSD$ -.Dd January 17, 2013 +.Dd January 29, 2013 .Dt SRC.CONF 5 .Os .Sh NAME @@ -100,6 +100,9 @@ Set to not build .Xr apm 8 , .Xr apmd 8 and related programs. +.It Va WITH_ARM_EABI +.\" from FreeBSD: head/tools/build/options/WITH_ARM_EABI 245539 2013-01-17 05:56:28Z andrew +Set the ARM ABI to EABI. .It Va WITHOUT_ASSERT_DEBUG .\" from FreeBSD: head/tools/build/options/WITHOUT_ASSERT_DEBUG 162215 2006-09-11 13:55:27Z ru Set to compile programs and libraries without the @@ -242,6 +245,9 @@ Set to not build the BSD licensed versio .It Va WITH_BSD_GREP .\" from FreeBSD: head/tools/build/options/WITH_BSD_GREP 222273 2011-05-25 01:04:12Z obrien Install BSD-licensed grep as '[ef]grep' instead of GNU grep. +.It Va WITH_BSD_PATCH +.\" from FreeBSD: head/tools/build/options/WITH_BSD_PATCH 246074 2013-01-29 17:03:18Z gabor +Install BSD-licensed patch as 'patch' instead of GNU patch. .It Va WITHOUT_BSNMP .\" from FreeBSD: head/tools/build/options/WITHOUT_BSNMP 183306 2008-09-23 16:15:42Z sam Set to not build or install @@ -476,9 +482,6 @@ Set to not build GPIB bus support. Set to not build .Xr gpioctl 8 as part of the base system. -.It Va WITH_GPL_DTC -Set to build the GPL'd version of the device tree compiler from elinux.org, -instead of the BSD licensed one. .It Va WITHOUT_GROFF .\" from FreeBSD: head/tools/build/options/WITHOUT_GROFF 218941 2011-02-22 08:13:49Z uqs Set to not build @@ -888,6 +891,11 @@ Set to build some programs without PAM s .Xr ftpd 8 and .Xr ppp 8 . +.It Va WITHOUT_PC_SYSINSTALL +.\" from FreeBSD: head/tools/build/options/WITHOUT_PC_SYSINSTALL 245606 2013-01-18 15:57:09Z eadler +Set to not build +.Xr pc-sysinstall 8 +and related programs. .It Va WITHOUT_PF .\" from FreeBSD: head/tools/build/options/WITHOUT_PF 156932 2006-03-21 07:50:50Z ru Set to not build PF firewall package. Modified: projects/physbio/share/mk/bsd.own.mk ============================================================================== --- projects/physbio/share/mk/bsd.own.mk Tue Jan 29 17:22:53 2013 (r246077) +++ projects/physbio/share/mk/bsd.own.mk Tue Jan 29 17:38:58 2013 (r246078) @@ -354,6 +354,7 @@ __DEFAULT_YES_OPTIONS = \ __DEFAULT_NO_OPTIONS = \ ARM_EABI \ + BSD_PATCH \ BIND_IDN \ BIND_LARGE_FILE \ BIND_LIBS \ Copied: projects/physbio/tools/build/options/WITH_BSD_PATCH (from r246077, head/tools/build/options/WITH_BSD_PATCH) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/tools/build/options/WITH_BSD_PATCH Tue Jan 29 17:38:58 2013 (r246078, copy of r246077, head/tools/build/options/WITH_BSD_PATCH) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Install BSD-licensed patch as 'patch' instead of GNU patch. Modified: projects/physbio/usr.bin/Makefile ============================================================================== --- projects/physbio/usr.bin/Makefile Tue Jan 29 17:22:53 2013 (r246077) +++ projects/physbio/usr.bin/Makefile Tue Jan 29 17:38:58 2013 (r246078) @@ -123,6 +123,7 @@ SUBDIR= alias \ pagesize \ passwd \ paste \ + patch \ pathchk \ perror \ pr \ From owner-svn-src-projects@FreeBSD.ORG Tue Jan 29 23:26:35 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id CE2E1E8A; Tue, 29 Jan 2013 23:26:35 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A8F00F01; Tue, 29 Jan 2013 23:26:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0TNQZX0094586; Tue, 29 Jan 2013 23:26:35 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0TNQZfk094585; Tue, 29 Jan 2013 23:26:35 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301292326.r0TNQZfk094585@svn.freebsd.org> From: Benno Rice Date: Tue, 29 Jan 2013 23:26:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246098 - projects/uefi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 23:26:35 -0000 Author: benno Date: Tue Jan 29 23:26:35 2013 New Revision: 246098 URL: http://svnweb.freebsd.org/changeset/base/246098 Log: Project branch for improvements to our UEFI support. Sponsored by: The FreeBSD Foundation Added: - copied from r246097, head/ Directory Properties: projects/uefi/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 00:12:51 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id EE5BE81C; Wed, 30 Jan 2013 00:12:51 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E1E36147; Wed, 30 Jan 2013 00:12:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U0CpDi009059; Wed, 30 Jan 2013 00:12:51 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U0Cpj3009058; Wed, 30 Jan 2013 00:12:51 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300012.r0U0Cpj3009058@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 00:12:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246100 - projects/uefi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 00:12:52 -0000 Author: benno Date: Wed Jan 30 00:12:51 2013 New Revision: 246100 URL: http://svnweb.freebsd.org/changeset/base/246100 Log: Add a statement of intent. Sponsored by: FreeBSD Foundation Added: projects/uefi/UEFI-TODO.txt Added: projects/uefi/UEFI-TODO.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/UEFI-TODO.txt Wed Jan 30 00:12:51 2013 (r246100) @@ -0,0 +1,24 @@ +/* FreeBSD */ + +Part the First: 64-bit EFI loader + +- Make libstand build natively as 64-bit on amd64. +- Adjust non-EFI boot code to use /usr/lib32/libstand.a. +- Test that the other boot code still actually works. +- Add bits to build 64-bit loader.efi. +- Make sure that loader.efi can actually load a kernel and hand off to it. + +Part the Second: Booting an amd64 kernel from the 64-bit EFI loader + +- Work out how to pass the memory map from EFI to the kernel. +- Fix anything else that comes up. + +Part the Third: Booting an i386 kernel from the 64-bit EFI loader. + +- Make sure that the i386 kernel isn't trying to touch the BIOS. +- Fix anything else that comes up. + +Part the Fourth: Making our install media UEFI compatible. + +- Work out how to make our install media UEFI compatible. +- Make our install media UEFI compatible. From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 00:17:00 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 8FDB4A80; Wed, 30 Jan 2013 00:17:00 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 53A9C187; Wed, 30 Jan 2013 00:17:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U0H0ci009740; Wed, 30 Jan 2013 00:17:00 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U0H0CI009731; Wed, 30 Jan 2013 00:17:00 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300017.r0U0H0CI009731@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 00:16:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246101 - in projects/uefi: . lib/libstand X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 00:17:00 -0000 Author: benno Date: Wed Jan 30 00:16:59 2013 New Revision: 246101 URL: http://svnweb.freebsd.org/changeset/base/246101 Log: Remove the Makefile glue that forces libstand to build for i386 on amd64. Note that we still get a 32-bit version built by the lib32 pass so we can use that for generating 32-bit boot code. Sponsored by: FreeBSD Foundation Modified: projects/uefi/UEFI-TODO.txt projects/uefi/lib/libstand/Makefile Modified: projects/uefi/UEFI-TODO.txt ============================================================================== --- projects/uefi/UEFI-TODO.txt Wed Jan 30 00:12:51 2013 (r246100) +++ projects/uefi/UEFI-TODO.txt Wed Jan 30 00:16:59 2013 (r246101) @@ -2,7 +2,7 @@ Part the First: 64-bit EFI loader -- Make libstand build natively as 64-bit on amd64. ++ Make libstand build natively as 64-bit on amd64. - Adjust non-EFI boot code to use /usr/lib32/libstand.a. - Test that the other boot code still actually works. - Add bits to build 64-bit loader.efi. Modified: projects/uefi/lib/libstand/Makefile ============================================================================== --- projects/uefi/lib/libstand/Makefile Wed Jan 30 00:12:51 2013 (r246100) +++ projects/uefi/lib/libstand/Makefile Wed Jan 30 00:16:59 2013 (r246101) @@ -21,16 +21,21 @@ CFLAGS+= -ffreestanding -Wformat CFLAGS+= -I${.CURDIR} .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" -CFLAGS+= -mpreferred-stack-boundary=2 CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float .endif +.if ${MACHINE_CPUARCH} == "i386" +CFLAGS+= -march=i386 -mpreferred-stack-boundary=2 +.endif +.if ${MACHINE_CPUARCH} == "amd64" +CFLAGS+= -fPIC +.endif .if ${MACHINE} == "pc98" CFLAGS+= -Os .endif .if ${MACHINE_CPUARCH} == "powerpc" CFLAGS+= -msoft-float -D_STANDALONE -DNETIF_DEBUG .endif -.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc64" +.if ${MACHINE_ARCH} == "powerpc64" CFLAGS+= -m32 -I. .endif .if ${MACHINE_CPUARCH} == "arm" @@ -86,12 +91,10 @@ SRCS+= syncicache.c SRCS+= uuid_equal.c uuid_is_nil.c # _setjmp/_longjmp -.if ${MACHINE_CPUARCH} == "amd64" -.PATH: ${.CURDIR}/i386 -.elif ${MACHINE_ARCH} == "powerpc64" +.if ${MACHINE_ARCH} == "powerpc64" .PATH: ${.CURDIR}/powerpc .else -.PATH: ${.CURDIR}/${MACHINE_CPUARCH} +.PATH: ${.CURDIR}/${MACHINE_ARCH} .endif SRCS+= _setjmp.S @@ -162,12 +165,3 @@ SRCS+= nandfs.c .include -.if ${MACHINE_CPUARCH} == "amd64" -beforedepend ${OBJS}: machine -cleandepend: cleanmachine -cleanmachine: - rm -f machine - -machine: - ln -s ${.CURDIR}/../../sys/i386/include machine -.endif From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 00:40:30 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 09361DD5; Wed, 30 Jan 2013 00:40:30 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id EF3EC26A; Wed, 30 Jan 2013 00:40:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U0eTos017446; Wed, 30 Jan 2013 00:40:29 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U0eT8j017440; Wed, 30 Jan 2013 00:40:29 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300040.r0U0eT8j017440@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 00:40:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246102 - in projects/uefi: . sys/boot/i386/gptboot sys/boot/i386/gptzfsboot sys/boot/i386/loader sys/boot/i386/zfsboot X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 00:40:30 -0000 Author: benno Date: Wed Jan 30 00:40:28 2013 New Revision: 246102 URL: http://svnweb.freebsd.org/changeset/base/246102 Log: Rewire non-EFI boot code to use the 32-bit libstand out of /usr/lib32. This hasn't been tested yet. Sponsored by: FreeBSD Foundation Modified: projects/uefi/UEFI-TODO.txt projects/uefi/sys/boot/i386/gptboot/Makefile projects/uefi/sys/boot/i386/gptzfsboot/Makefile projects/uefi/sys/boot/i386/loader/Makefile projects/uefi/sys/boot/i386/zfsboot/Makefile Modified: projects/uefi/UEFI-TODO.txt ============================================================================== --- projects/uefi/UEFI-TODO.txt Wed Jan 30 00:16:59 2013 (r246101) +++ projects/uefi/UEFI-TODO.txt Wed Jan 30 00:40:28 2013 (r246102) @@ -3,7 +3,7 @@ Part the First: 64-bit EFI loader + Make libstand build natively as 64-bit on amd64. -- Adjust non-EFI boot code to use /usr/lib32/libstand.a. ++ Adjust non-EFI boot code to use /usr/lib32/libstand.a. - Test that the other boot code still actually works. - Add bits to build 64-bit loader.efi. - Make sure that loader.efi can actually load a kernel and hand off to it. Modified: projects/uefi/sys/boot/i386/gptboot/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/gptboot/Makefile Wed Jan 30 00:16:59 2013 (r246101) +++ projects/uefi/sys/boot/i386/gptboot/Makefile Wed Jan 30 00:40:28 2013 (r246102) @@ -37,6 +37,10 @@ CFLAGS= -DBOOTPROG=\"gptboot\" \ -Winline --param max-inline-insns-single=100 LDFLAGS=-static -N --gc-sections +.if ${MACHINE_CPUARCH} == "amd64" +LDFLAGS+= -m elf_i386_fbsd +LIBSTAND= /usr/lib32/libstand.a +.endif # Pick up ../Makefile.inc early. .include Modified: projects/uefi/sys/boot/i386/gptzfsboot/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/gptzfsboot/Makefile Wed Jan 30 00:16:59 2013 (r246101) +++ projects/uefi/sys/boot/i386/gptzfsboot/Makefile Wed Jan 30 00:40:28 2013 (r246102) @@ -36,6 +36,11 @@ CFLAGS= -DBOOTPROG=\"gptzfsboot\" \ LDFLAGS=-static -N --gc-sections +.if ${MACHINE_CPUARCH} == "amd64" +LDFLAGS+= -m elf_i386_fbsd +LIBSTAND= /usr/lib32/libstand.a +.endif + # Pick up ../Makefile.inc early. .include Modified: projects/uefi/sys/boot/i386/loader/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/loader/Makefile Wed Jan 30 00:16:59 2013 (r246101) +++ projects/uefi/sys/boot/i386/loader/Makefile Wed Jan 30 00:40:28 2013 (r246102) @@ -65,6 +65,11 @@ CLEANFILES= vers.c ${LOADER} ${LOADER}.b CFLAGS+= -Wall LDFLAGS= -static -Ttext 0x0 +.if ${MACHINE_CPUARCH} == "amd64" +LDFLAGS+= -Wl,-m,elf_i386_fbsd +LIBSTAND= /usr/lib32/libstand.a +.endif + # i386 standalone support library LIBI386= ${.OBJDIR}/../libi386/libi386.a CFLAGS+= -I${.CURDIR}/.. Modified: projects/uefi/sys/boot/i386/zfsboot/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/zfsboot/Makefile Wed Jan 30 00:16:59 2013 (r246101) +++ projects/uefi/sys/boot/i386/zfsboot/Makefile Wed Jan 30 00:40:28 2013 (r246102) @@ -33,6 +33,11 @@ CFLAGS= -DBOOTPROG=\"zfsboot\" \ LDFLAGS=-static -N --gc-sections +.if ${MACHINE_CPUARCH} == "amd64" +LDFLAGS+= -m elf_i386_fbsd +LIBSTAND= /usr/lib32/libstand.a +.endif + # Pick up ../Makefile.inc early. .include From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 00:58:11 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id CD9661CA; Wed, 30 Jan 2013 00:58:11 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A96EF2ED; Wed, 30 Jan 2013 00:58:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U0wBxm021530; Wed, 30 Jan 2013 00:58:11 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U0wBFU021529; Wed, 30 Jan 2013 00:58:11 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300058.r0U0wBFU021529@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 00:58:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246103 - projects/uefi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 00:58:11 -0000 Author: benno Date: Wed Jan 30 00:58:10 2013 New Revision: 246103 URL: http://svnweb.freebsd.org/changeset/base/246103 Log: More things to do. Sponsored by: FreeBSD Foundation Modified: projects/uefi/UEFI-TODO.txt Modified: projects/uefi/UEFI-TODO.txt ============================================================================== --- projects/uefi/UEFI-TODO.txt Wed Jan 30 00:40:28 2013 (r246102) +++ projects/uefi/UEFI-TODO.txt Wed Jan 30 00:58:10 2013 (r246103) @@ -22,3 +22,9 @@ Part the Fourth: Making our install medi - Work out how to make our install media UEFI compatible. - Make our install media UEFI compatible. + +Part the Miscellaneous: + +- Add __attribute__((ms_abi)) support to clang/llvm. +- Try to work out a sane arrangement for sys/boot that makes it easier to + deal with the whole 32/64-bit thing. From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 01:05:28 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 0F32546E; Wed, 30 Jan 2013 01:05:28 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E685A339; Wed, 30 Jan 2013 01:05:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U15RZW024553; Wed, 30 Jan 2013 01:05:27 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U15PB3024533; Wed, 30 Jan 2013 01:05:25 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300105.r0U15PB3024533@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 01:05:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246104 - in projects/uefi/sys/boot: . efi efi/include/i386 efi/libefi ficl ficl64 i386 i386/boot2 i386/efi i386/efi/amd64 i386/efi/i386 zfs zfs64 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 01:05:28 -0000 Author: benno Date: Wed Jan 30 01:05:24 2013 New Revision: 246104 URL: http://svnweb.freebsd.org/changeset/base/246104 Log: Make the EFI loader build as 64-bit on amd64. This may cause further problems with the 32-bit boot code which hasn't been tested with these changes yet. Sponsored by: FreeBSD Foundation Added: projects/uefi/sys/boot/i386/efi/amd64/ projects/uefi/sys/boot/i386/efi/amd64/start.S projects/uefi/sys/boot/i386/efi/i386/ projects/uefi/sys/boot/i386/efi/i386/start.S projects/uefi/sys/boot/zfs64/ projects/uefi/sys/boot/zfs64/Makefile Modified: projects/uefi/sys/boot/Makefile.amd64 projects/uefi/sys/boot/efi/Makefile.inc projects/uefi/sys/boot/efi/include/i386/efibind.h projects/uefi/sys/boot/efi/libefi/Makefile projects/uefi/sys/boot/ficl/Makefile projects/uefi/sys/boot/ficl64/Makefile projects/uefi/sys/boot/i386/Makefile.inc projects/uefi/sys/boot/i386/boot2/Makefile projects/uefi/sys/boot/i386/efi/Makefile projects/uefi/sys/boot/i386/efi/ldscript.amd64 projects/uefi/sys/boot/zfs/Makefile Modified: projects/uefi/sys/boot/Makefile.amd64 ============================================================================== --- projects/uefi/sys/boot/Makefile.amd64 Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/Makefile.amd64 Wed Jan 30 01:05:24 2013 (r246104) @@ -1,5 +1,7 @@ # $FreeBSD$ SUBDIR+= efi +SUBDIR+= ficl64 SUBDIR+= zfs +SUBDIR+= zfs64 SUBDIR+= userboot Modified: projects/uefi/sys/boot/efi/Makefile.inc ============================================================================== --- projects/uefi/sys/boot/efi/Makefile.inc Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/efi/Makefile.inc Wed Jan 30 01:05:24 2013 (r246104) @@ -2,17 +2,10 @@ BINDIR?= /boot -.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" +.if ${MACHINE_CPUARCH} == "i386" CFLAGS+= -march=i386 .endif -.if ${MACHINE_CPUARCH} == "amd64" -CFLAGS+= -m32 -ACFLAGS+= -m32 -LDFLAGS+= -m elf_i386_fbsd -AFLAGS+= --32 -.endif - # Options used when building app-specific efi components CFLAGS+= -ffreestanding -fshort-wchar -Wformat LDFLAGS+= -nostdlib Modified: projects/uefi/sys/boot/efi/include/i386/efibind.h ============================================================================== --- projects/uefi/sys/boot/efi/include/i386/efibind.h Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/efi/include/i386/efibind.h Wed Jan 30 01:05:24 2013 (r246104) @@ -155,6 +155,11 @@ typedef uint32_t UINTN; // RUNTIME_CODE - pragma macro for declaring runtime code // +/* XXX: This attribute only works on gcc >= 4.7 for now. */ +#ifdef __amd64__ +#define EFIAPI __attribute__((ms_abi)) +#endif + #ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options #if _MSC_EXTENSIONS #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler Modified: projects/uefi/sys/boot/efi/libefi/Makefile ============================================================================== --- projects/uefi/sys/boot/efi/libefi/Makefile Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/efi/libefi/Makefile Wed Jan 30 01:05:24 2013 (r246104) @@ -6,6 +6,7 @@ INTERNALLIB= SRCS= delay.c efi_console.c efinet.c efipart.c errno.c handles.c \ libefi.c time.c +CFLAGS+= -fPIC CFLAGS+= -I${.CURDIR}/../include CFLAGS+= -I${.CURDIR}/../include/${MACHINE_CPUARCH:S/amd64/i386/} CFLAGS+= -I${.CURDIR}/../../../../lib/libstand Modified: projects/uefi/sys/boot/ficl/Makefile ============================================================================== --- projects/uefi/sys/boot/ficl/Makefile Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/ficl/Makefile Wed Jan 30 01:05:24 2013 (r246104) @@ -56,14 +56,20 @@ CFLAGS+= -m32 -I. CFLAGS+= -m32 -mcpu=powerpc -I. .endif -CFLAGS+= -I${FICLDIR} -I${FICLDIR}/${MACHINE_CPUARCH:S/amd64/i386/} \ +.if ${MACHINE_CPUARCH} == "amd64" && !defined(FICL64) +FICL_CPUARCH= ${FICLDIR}/i386 +.else +FICL_CPUARCH= ${FICLDIR}/${MACHINE_CPUARCH} +.endif + +CFLAGS+= -I${FICLDIR} -I${FICL_CPUARCH} \ -I${FICLDIR}/../common softcore.c: ${SOFTWORDS} softcore.awk (cd ${FICLDIR}/softwords; cat ${SOFTWORDS} \ | awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > ${.TARGET} -.if ${MACHINE_CPUARCH} == "amd64" +.if ${MACHINE_CPUARCH} == "amd64" && !defined(FICL64) .if !exists(machine) ${SRCS:M*.c:R:S/$/.o/g}: machine Modified: projects/uefi/sys/boot/ficl64/Makefile ============================================================================== --- projects/uefi/sys/boot/ficl64/Makefile Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/ficl64/Makefile Wed Jan 30 01:05:24 2013 (r246104) @@ -3,6 +3,8 @@ FICL64= FICLDIR= ${.CURDIR}/../ficl +CFLAGS+= -fPIC + .PATH: ${FICLDIR} .include "${FICLDIR}/Makefile" Modified: projects/uefi/sys/boot/i386/Makefile.inc ============================================================================== --- projects/uefi/sys/boot/i386/Makefile.inc Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/i386/Makefile.inc Wed Jan 30 01:05:24 2013 (r246104) @@ -5,14 +5,18 @@ BINDIR?= /boot LOADER_ADDRESS?=0x200000 -CFLAGS+= -march=i386 -ffreestanding -mpreferred-stack-boundary=2 \ - -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float +CFLAGS+= -ffreestanding -mno-mmx -mno-3dnow -mno-sse -mno-sse2 \ + -mno-sse3 -msoft-float +.if ${MACHINE_CPUARCH} == "i386" +CFLAGS+= -march=i386 -mpreferred-stack-boundary=2 +.elif ${MACHINE_CPUARCH} == "amd64" && !defined(BUILDING_EFI) +CFLAGS+= -march=i386 -mpreferred-stack-boundary=2 +.endif LDFLAGS+= -nostdlib -.if ${MACHINE_CPUARCH} == "amd64" +.if ${MACHINE_CPUARCH} == "amd64" && !defined(BUILDING_EFI) CFLAGS+= -m32 ACFLAGS+= -m32 -LDFLAGS+= -m elf_i386_fbsd AFLAGS+= --32 .endif Modified: projects/uefi/sys/boot/i386/boot2/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/boot2/Makefile Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/i386/boot2/Makefile Wed Jan 30 01:05:24 2013 (r246104) @@ -26,7 +26,7 @@ CFLAGS= -Os \ -fno-guess-branch-probability \ -fomit-frame-pointer \ -fno-unit-at-a-time \ - -mno-align-long-strings \ + -Wl,-mno-align-long-strings \ -mrtd \ -mregparm=3 \ -DUSE_XREAD \ @@ -59,7 +59,8 @@ boot1: boot1.out objcopy -S -O binary boot1.out ${.TARGET} boot1.out: boot1.o - ${LD} ${LDFLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} boot1.o + ${LD} ${LDFLAGS} -m elf_i386_fbsd -e start -Ttext ${ORG1} \ + -o ${.TARGET} boot1.o CLEANFILES+= boot2 boot2.ld boot2.ldr boot2.bin boot2.out boot2.o \ boot2.s boot2.s.tmp boot2.h sio.o @@ -80,7 +81,8 @@ boot2.bin: boot2.out objcopy -S -O binary boot2.out ${.TARGET} boot2.out: ${BTXCRT} boot2.o sio.o - ${LD} ${LDFLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} + ${LD} ${LDFLAGS} -m elf_i386_fbsd -Ttext ${ORG2} -o ${.TARGET} \ + ${.ALLSRC} boot2.o: boot2.s ${CC} ${ACFLAGS} -c boot2.s Modified: projects/uefi/sys/boot/i386/efi/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/efi/Makefile Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/i386/efi/Makefile Wed Jan 30 01:05:24 2013 (r246104) @@ -10,9 +10,13 @@ PROG= loader.sym INTERNALPROG= # architecture-specific loader code -SRCS= main.c exec.c conf.c vers.c reloc.c start.S elf32_freebsd.c +SRCS= main.c exec.c conf.c vers.c reloc.c elf32_freebsd.c SRCS+= i386_copy.c bootinfo.c autoload.c devicename.c efimd.c +.PATH: ${.CURDIR}/${MACHINE_CPUARCH} +SRCS+= start.S + +CFLAGS+= -fPIC CFLAGS+= -I${.CURDIR}/../../efi/include CFLAGS+= -I${.CURDIR}/../../efi/include/i386 @@ -20,9 +24,13 @@ CFLAGS+= -I${.CURDIR}/../../efi/include/ BOOT_FORTH= yes CFLAGS+= -DBOOT_FORTH CFLAGS+= -I${.CURDIR}/../../ficl -CFLAGS+= -I${.CURDIR}/../../ficl/i386 +CFLAGS+= -I${.CURDIR}/../../ficl/${MACHINE_CPUARCH} +.if ${MACHINE_CPUARCH} == "amd64" +LIBFICL= ${.OBJDIR}/../../ficl64/libficl.a +.else LIBFICL= ${.OBJDIR}/../../ficl/libficl.a .endif +.endif # Include bcache code. HAVE_BCACHE= yes @@ -35,14 +43,14 @@ CFLAGS+= -I${.CURDIR}/../../common FILES= loader.efi FILESMODE_loader.efi= ${BINMODE} -LDSCRIPT= ${.CURDIR}/ldscript.i386 -LDFLAGS= -Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared +LDSCRIPT= ${.CURDIR}/ldscript.${MACHINE_CPUARCH} +LDFLAGS= -Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared -Wl,-znocombreloc ${PROG}: ${LDSCRIPT} CLEANFILES= vers.c loader.efi -NEWVERSWHAT= "EFI loader" x86 +NEWVERSWHAT= "EFI loader" ${MACHINE_CPUARCH} vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} @@ -50,14 +58,21 @@ vers.c: ${.CURDIR}/../../common/newvers. OBJCOPY?= objcopy OBJDUMP?= objdump +.if ${MACHINE_CPUARCH} == "amd64" +EFI_TARGET= efi-app-x86_64 +.else +EFI_TARGET= efi-app-ia32 +.endif + loader.efi: loader.sym if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \ ${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \ exit 1; \ fi - ${OBJCOPY} -j .data -j .dynamic -j .dynstr -j .dynsym -j .hash \ - -j .rel.dyn -j .reloc -j .sdata -j .text -j set_Xcommand_set \ - --target=efi-app-ia32 ${.ALLSRC} ${.TARGET} + ${OBJCOPY} -j .text -j .sdata -j .data \ + -j .dynamic -j .dynsym -j .rel.dyn \ + -j .rela.dyn -j .reloc -j .eh_frame \ + --target=${EFI_TARGET} ${.ALLSRC} ${.TARGET} LIBEFI= ${.OBJDIR}/../../efi/libefi/libefi.a CFLAGS+= -I${.CURDIR}/../libi386 @@ -67,10 +82,3 @@ DPADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND} LDADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND} .include - -.if ${MACHINE_CPUARCH} == "amd64" -CFLAGS+= -I. -beforedepend ${OBJS}: machine -machine: - ln -sf ${.CURDIR}/../../../i386/include machine -.endif Added: projects/uefi/sys/boot/i386/efi/amd64/start.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/sys/boot/i386/efi/amd64/start.S Wed Jan 30 01:05:24 2013 (r246104) @@ -0,0 +1,72 @@ +/* crt0-efi-x86_64.S - x86_64 EFI startup code. + Copyright (C) 1999 Hewlett-Packard Co. + Contributed by David Mosberger . + Copyright (C) 2005 Intel Co. + Contributed by Fenghua Yu . + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of Hewlett-Packard Co. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. +*/ + .text + .align 4 + + .globl _start +_start: + subq $8, %rsp + pushq %rcx + pushq %rdx + +0: + lea ImageBase(%rip), %rdi + lea _DYNAMIC(%rip), %rsi + + popq %rcx + popq %rdx + pushq %rcx + pushq %rdx + call _reloc + + popq %rdi + popq %rsi + + call efi_main + addq $8, %rsp + +.exit: + ret + + // hand-craft a dummy .reloc section so EFI knows it's a relocatable executable: + + .data + .section .reloc, "a" + .long 0 + .long 10 + .word 0 + Added: projects/uefi/sys/boot/i386/efi/i386/start.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/sys/boot/i386/efi/i386/start.S Wed Jan 30 01:05:24 2013 (r246104) @@ -0,0 +1,70 @@ +/*- + * Copyright (c) 2008-2010 Rui Paulo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + + .text + +#include + +#define EFI_SUCCESS 0 + +/* + * EFI entry point. + * _start(EFI_IMAGE image_handle, EFI_SYSTEM_TABLE *system_table); + * + * We calculate the base address along with _DYNAMIC, relocate us and finally + * pass control to efi_main. + */ + +ENTRY(_start) + pushl %ebp + movl %esp, %ebp + + pushl 12(%ebp) /* image_handle */ + pushl 8(%ebp) /* system_table */ + call 0f +0: popl %eax + movl %eax, %ebx + addl $ImageBase-0b, %eax + addl $_DYNAMIC-0b, %ebx + pushl %ebx /* dynamic */ + pushl %eax /* ImageBase */ + call _reloc + cmpl $EFI_SUCCESS, %eax + jne 1f + popl %ebx /* remove ImageBase from the stack */ + popl %ebx /* remove dynamic from the stack */ + call efi_main +1: leave + ret +END(_start) + + .data + .section .reloc, "a" + .long 0 + .long 10 + .word 0 Modified: projects/uefi/sys/boot/i386/efi/ldscript.amd64 ============================================================================== --- projects/uefi/sys/boot/i386/efi/ldscript.amd64 Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/i386/efi/ldscript.amd64 Wed Jan 30 01:05:24 2013 (r246104) @@ -7,11 +7,13 @@ SECTIONS /* Read-only sections, merged into text segment: */ . = 0; ImageBase = .; - . = SIZEOF_HEADERS; + .hash : { *(.hash) } /* this MUST come first! */ . = ALIGN(4096); - .eh_frame : { + .eh_frame : + { *(.eh_frame) - } + } + . = ALIGN(4096); .text : { *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ @@ -51,24 +53,14 @@ SECTIONS .dynamic : { *(.dynamic) } . = ALIGN(4096); .rela.dyn : { - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rela.data*) *(.rela.got) - *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) - *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) - *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) - *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - *(.rela.plt) + *(.rela.stab) *(.relset_*) - *(.rela.dyn .rela.dyn.*) } . = ALIGN(4096); .reloc : { *(.reloc) } . = ALIGN(4096); - .hash : { *(.hash) } - . = ALIGN(4096); .dynsym : { *(.dynsym) } . = ALIGN(4096); .dynstr : { *(.dynstr) } Modified: projects/uefi/sys/boot/zfs/Makefile ============================================================================== --- projects/uefi/sys/boot/zfs/Makefile Wed Jan 30 00:58:10 2013 (r246103) +++ projects/uefi/sys/boot/zfs/Makefile Wed Jan 30 01:05:24 2013 (r246104) @@ -12,20 +12,22 @@ CFLAGS+= -I${.CURDIR}/../../cddl/boot/zf CFLAGS+= -ffreestanding .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" +.if !defined(ZFS64) CFLAGS+= -march=i386 CFLAGS+= -mpreferred-stack-boundary=2 +.endif CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float .endif .if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm" CFLAGS+= -msoft-float .endif -.if ${MACHINE_CPUARCH} == "amd64" +.if ${MACHINE_CPUARCH} == "amd64" && !defined(ZFS64) CFLAGS+= -m32 .endif CFLAGS+= -Wformat -Wall -.if ${MACHINE_CPUARCH} == "amd64" +.if ${MACHINE_CPUARCH} == "amd64" && !defined(ZFS64) CLEANFILES+= machine machine: ln -sf ${.CURDIR}/../../i386/include machine @@ -33,7 +35,7 @@ machine: .include -.if ${MACHINE_CPUARCH} == "amd64" +.if ${MACHINE_CPUARCH} == "amd64" && !defined(ZFS64) .if !exists(machine) beforedepend ${OBJS}: machine .endif Added: projects/uefi/sys/boot/zfs64/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/sys/boot/zfs64/Makefile Wed Jan 30 01:05:24 2013 (r246104) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +ZFS64= +ZFSDIR= ${.CURDIR}/../zfs + +.PATH: ${ZFSDIR} + +.include "${ZFSDIR}/Makefile" From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 01:30:07 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 43F7D88E; Wed, 30 Jan 2013 01:30:07 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 1858E627; Wed, 30 Jan 2013 01:30:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U1U67R031361; Wed, 30 Jan 2013 01:30:06 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U1U6SU031360; Wed, 30 Jan 2013 01:30:06 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300130.r0U1U6SU031360@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 01:30:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246105 - in projects/uefi/sys/boot/i386/efi: . i386 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 01:30:07 -0000 Author: benno Date: Wed Jan 30 01:30:06 2013 New Revision: 246105 URL: http://svnweb.freebsd.org/changeset/base/246105 Log: Move the original start.S to i386/start.S correctly. Sponsored by: FreeBSD Foundation Replaced: projects/uefi/sys/boot/i386/efi/i386/start.S - copied unchanged from r246098, projects/uefi/sys/boot/i386/efi/start.S Deleted: projects/uefi/sys/boot/i386/efi/start.S Copied: projects/uefi/sys/boot/i386/efi/i386/start.S (from r246098, projects/uefi/sys/boot/i386/efi/start.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/sys/boot/i386/efi/i386/start.S Wed Jan 30 01:30:06 2013 (r246105, copy of r246098, projects/uefi/sys/boot/i386/efi/start.S) @@ -0,0 +1,70 @@ +/*- + * Copyright (c) 2008-2010 Rui Paulo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + + .text + +#include + +#define EFI_SUCCESS 0 + +/* + * EFI entry point. + * _start(EFI_IMAGE image_handle, EFI_SYSTEM_TABLE *system_table); + * + * We calculate the base address along with _DYNAMIC, relocate us and finally + * pass control to efi_main. + */ + +ENTRY(_start) + pushl %ebp + movl %esp, %ebp + + pushl 12(%ebp) /* image_handle */ + pushl 8(%ebp) /* system_table */ + call 0f +0: popl %eax + movl %eax, %ebx + addl $ImageBase-0b, %eax + addl $_DYNAMIC-0b, %ebx + pushl %ebx /* dynamic */ + pushl %eax /* ImageBase */ + call _reloc + cmpl $EFI_SUCCESS, %eax + jne 1f + popl %ebx /* remove ImageBase from the stack */ + popl %ebx /* remove dynamic from the stack */ + call efi_main +1: leave + ret +END(_start) + + .data + .section .reloc, "a" + .long 0 + .long 10 + .word 0 From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 01:43:01 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 5305FD0E; Wed, 30 Jan 2013 01:43:01 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 44D126AC; Wed, 30 Jan 2013 01:43:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U1h1e4036270; Wed, 30 Jan 2013 01:43:01 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U1h11w036269; Wed, 30 Jan 2013 01:43:01 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300143.r0U1h11w036269@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 01:43:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246107 - projects/uefi/sys/boot/i386/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 01:43:01 -0000 Author: benno Date: Wed Jan 30 01:43:00 2013 New Revision: 246107 URL: http://svnweb.freebsd.org/changeset/base/246107 Log: Purely cosmetic change: order DT_REL* and DT_RELA* consistently. Sponsored by: FreeBSD Foundation Modified: projects/uefi/sys/boot/i386/efi/reloc.c Modified: projects/uefi/sys/boot/i386/efi/reloc.c ============================================================================== --- projects/uefi/sys/boot/i386/efi/reloc.c Wed Jan 30 01:36:04 2013 (r246106) +++ projects/uefi/sys/boot/i386/efi/reloc.c Wed Jan 30 01:43:00 2013 (r246107) @@ -61,8 +61,8 @@ _reloc(unsigned long ImageBase, ElfW_Dyn relent = 0; for (dynp = dynamic; dynp->d_tag != DT_NULL; dynp++) { switch (dynp->d_tag) { - case DT_RELA: case DT_REL: + case DT_RELA: rel = (ElfW_Rel *) ((unsigned long) dynp->d_un.d_ptr + ImageBase); break; From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 06:33:40 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 003F37C5; Wed, 30 Jan 2013 06:33:39 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E6877C2; Wed, 30 Jan 2013 06:33:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U6XdJU023580; Wed, 30 Jan 2013 06:33:39 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U6Xdkg023579; Wed, 30 Jan 2013 06:33:39 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300633.r0U6Xdkg023579@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 06:33:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246110 - projects/uefi/sys/boot/i386/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 06:33:40 -0000 Author: benno Date: Wed Jan 30 06:33:39 2013 New Revision: 246110 URL: http://svnweb.freebsd.org/changeset/base/246110 Log: Remove an extraneous space. Sponsored by: FreeBSD Foundation Modified: projects/uefi/sys/boot/i386/efi/Makefile Modified: projects/uefi/sys/boot/i386/efi/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/efi/Makefile Wed Jan 30 04:30:36 2013 (r246109) +++ projects/uefi/sys/boot/i386/efi/Makefile Wed Jan 30 06:33:39 2013 (r246110) @@ -70,7 +70,7 @@ loader.efi: loader.sym exit 1; \ fi ${OBJCOPY} -j .text -j .sdata -j .data \ - -j .dynamic -j .dynsym -j .rel.dyn \ + -j .dynamic -j .dynsym -j .rel.dyn \ -j .rela.dyn -j .reloc -j .eh_frame \ --target=${EFI_TARGET} ${.ALLSRC} ${.TARGET} From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 06:35:36 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 75B6A8F3; Wed, 30 Jan 2013 06:35:36 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 68246CF; Wed, 30 Jan 2013 06:35:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U6ZaAH023861; Wed, 30 Jan 2013 06:35:36 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U6ZalR023860; Wed, 30 Jan 2013 06:35:36 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300635.r0U6ZalR023860@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 06:35:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246111 - projects/uefi/sys/boot/i386/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 06:35:36 -0000 Author: benno Date: Wed Jan 30 06:35:35 2013 New Revision: 246111 URL: http://svnweb.freebsd.org/changeset/base/246111 Log: Make sure the loader has all the relocations it needs. amd64 uses RELA relocations instead of REL, thus the ldscript needs .relaset instead of .relset. Sponsored by: FreeBSD Foundation Modified: projects/uefi/sys/boot/i386/efi/ldscript.amd64 Modified: projects/uefi/sys/boot/i386/efi/ldscript.amd64 ============================================================================== --- projects/uefi/sys/boot/i386/efi/ldscript.amd64 Wed Jan 30 06:33:39 2013 (r246110) +++ projects/uefi/sys/boot/i386/efi/ldscript.amd64 Wed Jan 30 06:35:35 2013 (r246111) @@ -56,7 +56,7 @@ SECTIONS *(.rela.data*) *(.rela.got) *(.rela.stab) - *(.relset_*) + *(.relaset_*) } . = ALIGN(4096); .reloc : { *(.reloc) } From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 06:37:18 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E66F8A29; Wed, 30 Jan 2013 06:37:18 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D9A7DDE; Wed, 30 Jan 2013 06:37:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0U6bI11024112; Wed, 30 Jan 2013 06:37:18 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0U6bII9024111; Wed, 30 Jan 2013 06:37:18 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301300637.r0U6bII9024111@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 06:37:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246112 - projects/uefi/sys/boot/i386/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 06:37:19 -0000 Author: benno Date: Wed Jan 30 06:37:18 2013 New Revision: 246112 URL: http://svnweb.freebsd.org/changeset/base/246112 Log: The linker set containing loader commands needs to be in the image. Sponsored by: FreeBSD Foundation Modified: projects/uefi/sys/boot/i386/efi/Makefile Modified: projects/uefi/sys/boot/i386/efi/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/efi/Makefile Wed Jan 30 06:35:35 2013 (r246111) +++ projects/uefi/sys/boot/i386/efi/Makefile Wed Jan 30 06:37:18 2013 (r246112) @@ -71,7 +71,7 @@ loader.efi: loader.sym fi ${OBJCOPY} -j .text -j .sdata -j .data \ -j .dynamic -j .dynsym -j .rel.dyn \ - -j .rela.dyn -j .reloc -j .eh_frame \ + -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \ --target=${EFI_TARGET} ${.ALLSRC} ${.TARGET} LIBEFI= ${.OBJDIR}/../../efi/libefi/libefi.a From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 22:40:50 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 09F13C39; Wed, 30 Jan 2013 22:40:50 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id CD5C1ADD; Wed, 30 Jan 2013 22:40:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0UMenkr019210; Wed, 30 Jan 2013 22:40:49 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0UMeiF2019171; Wed, 30 Jan 2013 22:40:44 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301302240.r0UMeiF2019171@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 22:40:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246132 - in projects/uefi: . etc include lib/libc/amd64/sys lib/libc/arm/sys lib/libc/i386/sys lib/libc/ia64/sys lib/libc/mips/sys lib/libc/powerpc lib/libc/powerpc/sys lib/libc/powerp... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 22:40:50 -0000 Author: benno Date: Wed Jan 30 22:40:43 2013 New Revision: 246132 URL: http://svnweb.freebsd.org/changeset/base/246132 Log: IFC Added: projects/uefi/lib/libc/arm/sys/__vdso_gettc.c - copied unchanged from r246131, head/lib/libc/arm/sys/__vdso_gettc.c projects/uefi/lib/libc/ia64/sys/__vdso_gettc.c - copied unchanged from r246131, head/lib/libc/ia64/sys/__vdso_gettc.c projects/uefi/lib/libc/mips/sys/__vdso_gettc.c - copied unchanged from r246131, head/lib/libc/mips/sys/__vdso_gettc.c projects/uefi/lib/libc/powerpc/sys/__vdso_gettc.c - copied unchanged from r246131, head/lib/libc/powerpc/sys/__vdso_gettc.c projects/uefi/lib/libc/powerpc64/sys/__vdso_gettc.c - copied unchanged from r246131, head/lib/libc/powerpc64/sys/__vdso_gettc.c projects/uefi/lib/libc/sparc64/sys/__vdso_gettc.c - copied unchanged from r246131, head/lib/libc/sparc64/sys/__vdso_gettc.c projects/uefi/lib/libc/stdio/fmemopen.c - copied unchanged from r246131, head/lib/libc/stdio/fmemopen.c projects/uefi/sys/dev/usb/usb_freebsd_loader.h - copied unchanged from r246131, head/sys/dev/usb/usb_freebsd_loader.h projects/uefi/tools/regression/lib/libc/stdio/test-fmemopen.c - copied unchanged from r246131, head/tools/regression/lib/libc/stdio/test-fmemopen.c projects/uefi/tools/regression/lib/libc/stdio/test-fmemopen.t - copied unchanged from r246131, head/tools/regression/lib/libc/stdio/test-fmemopen.t Modified: projects/uefi/UPDATING projects/uefi/etc/Makefile projects/uefi/include/stdio.h (contents, props changed) projects/uefi/lib/libc/amd64/sys/__vdso_gettc.c projects/uefi/lib/libc/arm/sys/Makefile.inc projects/uefi/lib/libc/i386/sys/__vdso_gettc.c projects/uefi/lib/libc/ia64/sys/Makefile.inc projects/uefi/lib/libc/mips/sys/Makefile.inc projects/uefi/lib/libc/powerpc/Makefile.inc projects/uefi/lib/libc/powerpc64/Makefile.inc projects/uefi/lib/libc/sparc64/Makefile.inc projects/uefi/lib/libc/stdio/Makefile.inc (contents, props changed) projects/uefi/lib/libc/stdio/Symbol.map (contents, props changed) projects/uefi/lib/libc/stdio/fopen.3 (contents, props changed) projects/uefi/lib/libc/sys/__vdso_gettimeofday.c projects/uefi/lib/libc/sys/gettimeofday.c projects/uefi/libexec/tftpd/tftp-io.c projects/uefi/sbin/devd/devd.8 projects/uefi/sbin/devd/devd.cc projects/uefi/share/mk/bsd.own.mk projects/uefi/sys/amd64/include/vmm_instruction_emul.h (contents, props changed) projects/uefi/sys/amd64/vmm/vmm_instruction_emul.c projects/uefi/sys/dev/acpi_support/acpi_asus_wmi.c projects/uefi/sys/dev/acpi_support/acpi_fujitsu.c (contents, props changed) projects/uefi/sys/dev/acpi_support/acpi_hp.c projects/uefi/sys/dev/acpi_support/acpi_ibm.c (contents, props changed) projects/uefi/sys/dev/acpi_support/acpi_panasonic.c (contents, props changed) projects/uefi/sys/dev/acpi_support/acpi_sony.c (contents, props changed) projects/uefi/sys/dev/acpi_support/acpi_toshiba.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_acad.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_button.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_cmbat.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_dock.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_ec.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_hpet.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_lid.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_pci.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_pci_link.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_pcib_pci.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_perf.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_resource.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_smbat.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_thermal.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_throttle.c (contents, props changed) projects/uefi/sys/dev/acpica/acpi_timer.c (contents, props changed) projects/uefi/sys/dev/adlink/adlink.c (contents, props changed) projects/uefi/sys/dev/amdsbwd/amdsbwd.c projects/uefi/sys/dev/amdtemp/amdtemp.c (contents, props changed) projects/uefi/sys/dev/auxio/auxio.c (contents, props changed) projects/uefi/sys/dev/ce/if_ce.c (contents, props changed) projects/uefi/sys/dev/cfi/cfi_bus_fdt.c projects/uefi/sys/dev/cfi/cfi_bus_ixp4xx.c projects/uefi/sys/dev/coretemp/coretemp.c (contents, props changed) projects/uefi/sys/dev/cp/if_cp.c (contents, props changed) projects/uefi/sys/dev/cpufreq/ichss.c (contents, props changed) projects/uefi/sys/dev/ctau/if_ct.c (contents, props changed) projects/uefi/sys/dev/cx/if_cx.c (contents, props changed) projects/uefi/sys/dev/digi/digi_isa.c (contents, props changed) projects/uefi/sys/dev/digi/digi_pci.c (contents, props changed) projects/uefi/sys/dev/e1000/if_em.c (contents, props changed) projects/uefi/sys/dev/e1000/if_igb.c (contents, props changed) projects/uefi/sys/dev/e1000/if_lem.c projects/uefi/sys/dev/ep/if_ep_eisa.c (contents, props changed) projects/uefi/sys/dev/ep/if_ep_isa.c (contents, props changed) projects/uefi/sys/dev/ep/if_ep_mca.c (contents, props changed) projects/uefi/sys/dev/ep/if_ep_pccard.c (contents, props changed) projects/uefi/sys/dev/fdc/fdc_acpi.c (contents, props changed) projects/uefi/sys/dev/iicbus/ad7418.c (contents, props changed) projects/uefi/sys/dev/iicbus/ds133x.c (contents, props changed) projects/uefi/sys/dev/iicbus/ds1672.c (contents, props changed) projects/uefi/sys/dev/iicbus/icee.c (contents, props changed) projects/uefi/sys/dev/ixgb/if_ixgb.c (contents, props changed) projects/uefi/sys/dev/ixgbe/ixgbe.c (contents, props changed) projects/uefi/sys/dev/ixgbe/ixv.c projects/uefi/sys/dev/mfi/mfi_cam.c (contents, props changed) projects/uefi/sys/dev/mn/if_mn.c (contents, props changed) projects/uefi/sys/dev/mxge/if_mxge.c (contents, props changed) projects/uefi/sys/dev/my/if_my.c (contents, props changed) projects/uefi/sys/dev/nvram2env/nvram2env.c (contents, props changed) projects/uefi/sys/dev/nxge/if_nxge.c (contents, props changed) projects/uefi/sys/dev/oce/oce_if.c (contents, props changed) projects/uefi/sys/dev/sdhci/sdhci_pci.c projects/uefi/sys/dev/sound/pci/emu10kx-midi.c (contents, props changed) projects/uefi/sys/dev/sound/pci/emu10kx-pcm.c (contents, props changed) projects/uefi/sys/dev/sound/pci/emu10kx.c (contents, props changed) projects/uefi/sys/dev/sound/sbus/cs4231.c (contents, props changed) projects/uefi/sys/dev/sound/usb/uaudio_pcm.c projects/uefi/sys/dev/usb/controller/at91dci.c projects/uefi/sys/dev/usb/controller/atmegadci.c projects/uefi/sys/dev/usb/controller/avr32dci.c projects/uefi/sys/dev/usb/controller/dwc_otg.c projects/uefi/sys/dev/usb/controller/ehci.c projects/uefi/sys/dev/usb/controller/musb_otg.c projects/uefi/sys/dev/usb/controller/ohci.c projects/uefi/sys/dev/usb/controller/uhci.c projects/uefi/sys/dev/usb/controller/usb_controller.c projects/uefi/sys/dev/usb/controller/uss820dci.c projects/uefi/sys/dev/usb/controller/xhci.c projects/uefi/sys/dev/usb/input/uhid.c projects/uefi/sys/dev/usb/input/ukbd.c projects/uefi/sys/dev/usb/input/ums.c projects/uefi/sys/dev/usb/misc/udbp.c projects/uefi/sys/dev/usb/misc/ufm.c projects/uefi/sys/dev/usb/net/if_cdce.c projects/uefi/sys/dev/usb/net/if_cue.c projects/uefi/sys/dev/usb/net/if_ipheth.c projects/uefi/sys/dev/usb/net/if_kue.c projects/uefi/sys/dev/usb/net/if_smsc.c projects/uefi/sys/dev/usb/storage/umass.c projects/uefi/sys/dev/usb/storage/urio.c projects/uefi/sys/dev/usb/storage/ustorage_fs.c projects/uefi/sys/dev/usb/template/usb_template.c projects/uefi/sys/dev/usb/template/usb_template_audio.c projects/uefi/sys/dev/usb/template/usb_template_cdce.c projects/uefi/sys/dev/usb/template/usb_template_kbd.c projects/uefi/sys/dev/usb/template/usb_template_modem.c projects/uefi/sys/dev/usb/template/usb_template_mouse.c projects/uefi/sys/dev/usb/template/usb_template_msc.c projects/uefi/sys/dev/usb/template/usb_template_mtp.c projects/uefi/sys/dev/usb/ufm_ioctl.h projects/uefi/sys/dev/usb/usb.h projects/uefi/sys/dev/usb/usb_busdma.c projects/uefi/sys/dev/usb/usb_busdma.h projects/uefi/sys/dev/usb/usb_compat_linux.c projects/uefi/sys/dev/usb/usb_core.c projects/uefi/sys/dev/usb/usb_core.h projects/uefi/sys/dev/usb/usb_debug.c projects/uefi/sys/dev/usb/usb_dev.c projects/uefi/sys/dev/usb/usb_dev.h projects/uefi/sys/dev/usb/usb_device.c projects/uefi/sys/dev/usb/usb_dynamic.c projects/uefi/sys/dev/usb/usb_endian.h projects/uefi/sys/dev/usb/usb_error.c projects/uefi/sys/dev/usb/usb_freebsd.h projects/uefi/sys/dev/usb/usb_generic.c projects/uefi/sys/dev/usb/usb_handle_request.c projects/uefi/sys/dev/usb/usb_hid.c projects/uefi/sys/dev/usb/usb_hub.c projects/uefi/sys/dev/usb/usb_ioctl.h projects/uefi/sys/dev/usb/usb_lookup.c projects/uefi/sys/dev/usb/usb_mbuf.c projects/uefi/sys/dev/usb/usb_msctest.c projects/uefi/sys/dev/usb/usb_parse.c projects/uefi/sys/dev/usb/usb_pci.h projects/uefi/sys/dev/usb/usb_pf.c projects/uefi/sys/dev/usb/usb_process.c projects/uefi/sys/dev/usb/usb_process.h projects/uefi/sys/dev/usb/usb_request.c projects/uefi/sys/dev/usb/usb_transfer.c projects/uefi/sys/dev/usb/usb_util.c projects/uefi/sys/dev/usb/usbdi.h projects/uefi/sys/dev/usb/usbhid.h projects/uefi/sys/dev/vx/if_vx_eisa.c (contents, props changed) projects/uefi/sys/dev/vx/if_vx_pci.c (contents, props changed) projects/uefi/sys/dev/vxge/vxge.c (contents, props changed) projects/uefi/sys/dev/xen/console/console.c projects/uefi/sys/kern/kern_exit.c projects/uefi/sys/netinet/libalias/alias.c projects/uefi/sys/sys/vdso.h projects/uefi/sys/x86/x86/tsc.c projects/uefi/tools/test/pthread_vfork/pthread_vfork_test.c projects/uefi/usr.sbin/bhyve/pci_emul.c projects/uefi/usr.sbin/bhyve/pci_emul.h projects/uefi/usr.sbin/bhyve/pci_virtio_net.c projects/uefi/usr.sbin/bhyve/virtio.h projects/uefi/usr.sbin/tcpdrop/tcpdrop.8 projects/uefi/usr.sbin/tcpdrop/tcpdrop.c Directory Properties: projects/uefi/ (props changed) projects/uefi/lib/libc/ (props changed) projects/uefi/sbin/ (props changed) projects/uefi/sys/ (props changed) projects/uefi/sys/amd64/vmm/ (props changed) projects/uefi/usr.sbin/bhyve/ (props changed) Modified: projects/uefi/UPDATING ============================================================================== --- projects/uefi/UPDATING Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/UPDATING Wed Jan 30 22:40:43 2013 (r246132) @@ -31,7 +31,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 as bsdpatch, being the GNU version the default patch. To inverse the logic and use the BSD-licensed one as default, while having the GNU version installed as gnupatch, rebuild - ans install world with the WITH_BSD_PATCH knob set. + and install world with the WITH_BSD_PATCH knob set. 20130118: The install(1) option -M has changed meaning and now takes an Modified: projects/uefi/etc/Makefile ============================================================================== --- projects/uefi/etc/Makefile Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/etc/Makefile Wed Jan 30 22:40:43 2013 (r246132) @@ -348,9 +348,10 @@ distrib-dirs: test "$$d" == "/" && d=""; \ d=${DISTBASE}$$d; \ shift; \ - ${ECHO} "${MTREE_CMD} -C -f $$m | sed s#^\.#.$$d# |" \ - "${METALOG.add}" ; \ - ${MTREE_CMD} -C -f $$m | sed s#^\.#.$$d# | ${METALOG.add} ; \ + ${ECHO} "${MTREE_CMD:N-W} -C -f $$m -K uname,gname | " \ + "sed s#^\.#.$$d# | ${METALOG.add}" ; \ + ${MTREE_CMD:N-W} -C -f $$m -K uname,gname | sed s#^\.#.$$d# | \ + ${METALOG.add} ; \ done; true .endif ${INSTALL_SYMLINK} usr/src/sys ${DESTDIR}/sys Modified: projects/uefi/include/stdio.h ============================================================================== --- projects/uefi/include/stdio.h Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/include/stdio.h Wed Jan 30 22:40:43 2013 (r246132) @@ -343,6 +343,7 @@ char *tempnam(const char *, const char * #endif #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 +FILE *fmemopen(void * __restrict, size_t, const char * __restrict); ssize_t getdelim(char ** __restrict, size_t * __restrict, int, FILE * __restrict); int renameat(int, const char *, int, const char *); Modified: projects/uefi/lib/libc/amd64/sys/__vdso_gettc.c ============================================================================== --- projects/uefi/lib/libc/amd64/sys/__vdso_gettc.c Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/amd64/sys/__vdso_gettc.c Wed Jan 30 22:40:43 2013 (r246132) @@ -27,9 +27,11 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include +#include "libc_private.h" static u_int __vdso_gettc_low(const struct vdso_timehands *th) @@ -41,9 +43,18 @@ __vdso_gettc_low(const struct vdso_timeh return (rv); } +#pragma weak __vdso_gettc u_int __vdso_gettc(const struct vdso_timehands *th) { return (th->th_x86_shift > 0 ? __vdso_gettc_low(th) : rdtsc32()); } + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (_elf_aux_info(AT_TIMEKEEP, tk, sizeof(*tk))); +} Modified: projects/uefi/lib/libc/arm/sys/Makefile.inc ============================================================================== --- projects/uefi/lib/libc/arm/sys/Makefile.inc Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/arm/sys/Makefile.inc Wed Jan 30 22:40:43 2013 (r246132) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + MDASM= Ovfork.S brk.S cerror.S pipe.S ptrace.S sbrk.S shmat.S sigreturn.S syscall.S # Don't generate default code for these syscalls: Copied: projects/uefi/lib/libc/arm/sys/__vdso_gettc.c (from r246131, head/lib/libc/arm/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/lib/libc/arm/sys/__vdso_gettc.c Wed Jan 30 22:40:43 2013 (r246132, copy of r246131, head/lib/libc/arm/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/uefi/lib/libc/i386/sys/__vdso_gettc.c ============================================================================== --- projects/uefi/lib/libc/i386/sys/__vdso_gettc.c Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/i386/sys/__vdso_gettc.c Wed Jan 30 22:40:43 2013 (r246132) @@ -27,9 +27,11 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include +#include "libc_private.h" static u_int __vdso_gettc_low(const struct vdso_timehands *th) @@ -48,3 +50,11 @@ __vdso_gettc(const struct vdso_timehands return (th->th_x86_shift > 0 ? __vdso_gettc_low(th) : rdtsc32()); } + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (_elf_aux_info(AT_TIMEKEEP, tk, sizeof(*tk))); +} Modified: projects/uefi/lib/libc/ia64/sys/Makefile.inc ============================================================================== --- projects/uefi/lib/libc/ia64/sys/Makefile.inc Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/ia64/sys/Makefile.inc Wed Jan 30 22:40:43 2013 (r246132) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + MDASM+= Ovfork.S brk.S cerror.S exect.S fork.S getcontext.S pipe.S ptrace.S \ sbrk.S setlogin.S sigreturn.S swapcontext.S Copied: projects/uefi/lib/libc/ia64/sys/__vdso_gettc.c (from r246131, head/lib/libc/ia64/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/lib/libc/ia64/sys/__vdso_gettc.c Wed Jan 30 22:40:43 2013 (r246132, copy of r246131, head/lib/libc/ia64/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/uefi/lib/libc/mips/sys/Makefile.inc ============================================================================== --- projects/uefi/lib/libc/mips/sys/Makefile.inc Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/mips/sys/Makefile.inc Wed Jan 30 22:40:43 2013 (r246132) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + MDASM= Ovfork.S brk.S cerror.S exect.S \ fork.S pipe.S ptrace.S sbrk.S syscall.S Copied: projects/uefi/lib/libc/mips/sys/__vdso_gettc.c (from r246131, head/lib/libc/mips/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/lib/libc/mips/sys/__vdso_gettc.c Wed Jan 30 22:40:43 2013 (r246132, copy of r246131, head/lib/libc/mips/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/uefi/lib/libc/powerpc/Makefile.inc ============================================================================== --- projects/uefi/lib/libc/powerpc/Makefile.inc Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/powerpc/Makefile.inc Wed Jan 30 22:40:43 2013 (r246132) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + # Long double is 64-bits MDSRCS+=machdep_ldisd.c SYM_MAPS+=${.CURDIR}/powerpc/Symbol.map Copied: projects/uefi/lib/libc/powerpc/sys/__vdso_gettc.c (from r246131, head/lib/libc/powerpc/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/lib/libc/powerpc/sys/__vdso_gettc.c Wed Jan 30 22:40:43 2013 (r246132, copy of r246131, head/lib/libc/powerpc/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/uefi/lib/libc/powerpc64/Makefile.inc ============================================================================== --- projects/uefi/lib/libc/powerpc64/Makefile.inc Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/powerpc64/Makefile.inc Wed Jan 30 22:40:43 2013 (r246132) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + # Long double is 64-bits MDSRCS+=machdep_ldisd.c SYM_MAPS+=${.CURDIR}/powerpc64/Symbol.map Copied: projects/uefi/lib/libc/powerpc64/sys/__vdso_gettc.c (from r246131, head/lib/libc/powerpc64/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/lib/libc/powerpc64/sys/__vdso_gettc.c Wed Jan 30 22:40:43 2013 (r246132, copy of r246131, head/lib/libc/powerpc64/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/uefi/lib/libc/sparc64/Makefile.inc ============================================================================== --- projects/uefi/lib/libc/sparc64/Makefile.inc Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/sparc64/Makefile.inc Wed Jan 30 22:40:43 2013 (r246132) @@ -5,6 +5,8 @@ .include "fpu/Makefile.inc" +SRCS+= __vdso_gettc.c + # Long double is quad precision GDTOASRCS+=strtorQ.c MDSRCS+=machdep_ldisQ.c Copied: projects/uefi/lib/libc/sparc64/sys/__vdso_gettc.c (from r246131, head/lib/libc/sparc64/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/lib/libc/sparc64/sys/__vdso_gettc.c Wed Jan 30 22:40:43 2013 (r246132, copy of r246131, head/lib/libc/sparc64/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/uefi/lib/libc/stdio/Makefile.inc ============================================================================== --- projects/uefi/lib/libc/stdio/Makefile.inc Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/stdio/Makefile.inc Wed Jan 30 22:40:43 2013 (r246132) @@ -8,7 +8,8 @@ SRCS+= _flock_stub.c asprintf.c clrerr.c fclose.c fcloseall.c fdopen.c \ feof.c ferror.c fflush.c fgetc.c fgetln.c fgetpos.c fgets.c fgetwc.c \ fgetwln.c fgetws.c \ - fileno.c findfp.c flags.c fopen.c fprintf.c fpurge.c fputc.c fputs.c \ + fileno.c findfp.c flags.c fmemopen.c fopen.c fprintf.c fpurge.c \ + fputc.c fputs.c \ fputwc.c fputws.c fread.c freopen.c fscanf.c fseek.c fsetpos.c \ ftell.c funopen.c fvwrite.c fwalk.c fwide.c fwprintf.c fwscanf.c \ fwrite.c getc.c getchar.c getdelim.c getline.c \ @@ -48,7 +49,7 @@ MLINKS+=ferror.3 ferror_unlocked.3 \ MLINKS+=fflush.3 fpurge.3 MLINKS+=fgets.3 gets.3 MLINKS+=flockfile.3 ftrylockfile.3 flockfile.3 funlockfile.3 -MLINKS+=fopen.3 fdopen.3 fopen.3 freopen.3 +MLINKS+=fopen.3 fdopen.3 fopen.3 freopen.3 fopen.3 fmemopen.3 MLINKS+=fputs.3 puts.3 MLINKS+=fread.3 fwrite.3 MLINKS+=fseek.3 fgetpos.3 fseek.3 fseeko.3 fseek.3 fsetpos.3 fseek.3 ftell.3 \ Modified: projects/uefi/lib/libc/stdio/Symbol.map ============================================================================== --- projects/uefi/lib/libc/stdio/Symbol.map Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/stdio/Symbol.map Wed Jan 30 22:40:43 2013 (r246132) @@ -155,6 +155,7 @@ FBSD_1.3 { getwchar_l; putwc_l; putwchar_l; + fmemopen; }; FBSDprivate_1.0 { Copied: projects/uefi/lib/libc/stdio/fmemopen.c (from r246131, head/lib/libc/stdio/fmemopen.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/lib/libc/stdio/fmemopen.c Wed Jan 30 22:40:43 2013 (r246132, copy of r246131, head/lib/libc/stdio/fmemopen.c) @@ -0,0 +1,182 @@ +/*- +Copyright (C) 2013 Pietro Cerutti + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +*/ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +struct __fmemopen_cookie +{ + char *buf; /* pointer to the memory region */ + char own; /* did we allocate the buffer ourselves? */ + long len; /* buffer length in bytes */ + long off; /* current offset into the buffer */ +}; + +static int fmemopen_read (void *cookie, char *buf, int nbytes); +static int fmemopen_write (void *cookie, const char *buf, int nbytes); +static fpos_t fmemopen_seek (void *cookie, fpos_t offset, int whence); +static int fmemopen_close (void *cookie); + +FILE * +fmemopen (void * __restrict buf, size_t size, const char * __restrict mode) +{ + /* allocate cookie */ + struct __fmemopen_cookie *ck = malloc (sizeof (struct __fmemopen_cookie)); + if (ck == NULL) { + errno = ENOMEM; + return (NULL); + } + + ck->off = 0; + ck->len = size; + + /* do we have to allocate the buffer ourselves? */ + ck->own = ((ck->buf = buf) == NULL); + if (ck->own) { + ck->buf = malloc (size); + if (ck->buf == NULL) { + free (ck); + errno = ENOMEM; + return (NULL); + } + ck->buf[0] = '\0'; + } + + if (mode[0] == 'a') + ck->off = strnlen(ck->buf, ck->len); + + /* actuall wrapper */ + FILE *f = funopen ((void *)ck, fmemopen_read, fmemopen_write, + fmemopen_seek, fmemopen_close); + + if (f == NULL) { + if (ck->own) + free (ck->buf); + free (ck); + return (NULL); + } + + /* turn off buffering, so a write past the end of the buffer + * correctly returns a short object count */ + setvbuf (f, (char *) NULL, _IONBF, 0); + + return (f); +} + +static int +fmemopen_read (void *cookie, char *buf, int nbytes) +{ + struct __fmemopen_cookie *ck = cookie; + + if (nbytes > ck->len - ck->off) + nbytes = ck->len - ck->off; + + if (nbytes == 0) + return (0); + + memcpy (buf, ck->buf + ck->off, nbytes); + + ck->off += nbytes; + + return (nbytes); +} + +static int +fmemopen_write (void *cookie, const char *buf, int nbytes) +{ + struct __fmemopen_cookie *ck = cookie; + + if (nbytes > ck->len - ck->off) + nbytes = ck->len - ck->off; + + if (nbytes == 0) + return (0); + + memcpy (ck->buf + ck->off, buf, nbytes); + + ck->off += nbytes; + + if (ck->off < ck->len && ck->buf[ck->off - 1] != '\0') + ck->buf[ck->off] = '\0'; + + return (nbytes); +} + +static fpos_t +fmemopen_seek (void *cookie, fpos_t offset, int whence) +{ + struct __fmemopen_cookie *ck = cookie; + + + switch (whence) { + case SEEK_SET: + if (offset > ck->len) { + errno = EINVAL; + return (-1); + } + ck->off = offset; + break; + + case SEEK_CUR: + if (ck->off + offset > ck->len) { + errno = EINVAL; + return (-1); + } + ck->off += offset; + break; + + case SEEK_END: + if (offset > 0 || -offset > ck->len) { + errno = EINVAL; + return (-1); + } + ck->off = ck->len + offset; + break; + + default: + errno = EINVAL; + return (-1); + } + + return (ck->off); +} + +static int +fmemopen_close (void *cookie) +{ + struct __fmemopen_cookie *ck = cookie; + + if (ck->own) + free (ck->buf); + + free (ck); + + return (0); +} Modified: projects/uefi/lib/libc/stdio/fopen.3 ============================================================================== --- projects/uefi/lib/libc/stdio/fopen.3 Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/stdio/fopen.3 Wed Jan 30 22:40:43 2013 (r246132) @@ -32,13 +32,14 @@ .\" @(#)fopen.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd November 30, 2012 +.Dd January 30, 2013 .Dt FOPEN 3 .Os .Sh NAME .Nm fopen , .Nm fdopen , -.Nm freopen +.Nm freopen , +.Nm fmemopen .Nd stream open functions .Sh LIBRARY .Lb libc @@ -50,6 +51,8 @@ .Fn fdopen "int fildes" "const char *mode" .Ft FILE * .Fn freopen "const char *path" "const char *mode" "FILE *stream" +.Ft FILE * +.Fn fmemopen "void *restrict *buf" "size_t size" "const char * restrict mode" .Sh DESCRIPTION The .Fn fopen @@ -202,6 +205,29 @@ standard text stream .Dv ( stderr , stdin , or .Dv stdout ) . +.Pp +The +.Fn fmemopen +function +associates the buffer given by the +.Fa buf +and +.Fa size +arguments with a stream. +The +.Fa buf +argument shall be either a null pointer or point to a buffer that +is at least +.Fa size +bytes long. +If a null pointer is specified as the +.Fa buf +argument, +.Fn fmemopen +shall allocate +.Fa size +bytes of memory. This buffer shall be automatically freed when the +stream is closed. .Sh RETURN VALUES Upon successful completion .Fn fopen , @@ -225,16 +251,18 @@ argument to .Fn fopen , .Fn fdopen , +.Fn freopen , or -.Fn freopen +.Fn fmemopen was invalid. .El .Pp The .Fn fopen , -.Fn fdopen -and +.Fn fdopen , .Fn freopen +and +.Fn fmemopen functions may also fail and set .Va errno @@ -294,3 +322,8 @@ The .Dq Li e mode option does not conform to any standard but is also supported by glibc. +The +.Fn fmemopen +function +conforms to +.St -p1003.1-2008 . Modified: projects/uefi/lib/libc/sys/__vdso_gettimeofday.c ============================================================================== --- projects/uefi/lib/libc/sys/__vdso_gettimeofday.c Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/sys/__vdso_gettimeofday.c Wed Jan 30 22:40:43 2013 (r246132) @@ -79,6 +79,7 @@ binuptime(struct bintime *bt, struct vds static struct vdso_timekeep *tk; +#pragma weak __vdso_gettimeofday int __vdso_gettimeofday(struct timeval *tv, struct timezone *tz) { @@ -88,7 +89,7 @@ __vdso_gettimeofday(struct timeval *tv, if (tz != NULL) return (ENOSYS); if (tk == NULL) { - error = _elf_aux_info(AT_TIMEKEEP, &tk, sizeof(tk)); + error = __vdso_gettimekeep(&tk); if (error != 0 || tk == NULL) return (ENOSYS); } @@ -101,6 +102,7 @@ __vdso_gettimeofday(struct timeval *tv, return (0); } +#pragma weak __vdso_clock_gettime int __vdso_clock_gettime(clockid_t clock_id, struct timespec *ts) { Modified: projects/uefi/lib/libc/sys/gettimeofday.c ============================================================================== --- projects/uefi/lib/libc/sys/gettimeofday.c Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/lib/libc/sys/gettimeofday.c Wed Jan 30 22:40:43 2013 (r246132) @@ -41,10 +41,7 @@ __gettimeofday(struct timeval *tv, struc { int error; - if (__vdso_gettimeofday != NULL && __vdso_gettc != NULL) - error = __vdso_gettimeofday(tv, tz); - else - error = ENOSYS; + error = __vdso_gettimeofday(tv, tz); if (error == ENOSYS) error = __sys_gettimeofday(tv, tz); return (error); Modified: projects/uefi/libexec/tftpd/tftp-io.c ============================================================================== --- projects/uefi/libexec/tftpd/tftp-io.c Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/libexec/tftpd/tftp-io.c Wed Jan 30 22:40:43 2013 (r246132) @@ -142,7 +142,7 @@ send_error(int peer, int error) char buf[MAXPKTSIZE]; if (debug&DEBUG_PACKETS) - tftp_log(LOG_DEBUG, "Sending ERROR %d: %s", error); + tftp_log(LOG_DEBUG, "Sending ERROR %d", error); DROPPACKET("send_error"); Modified: projects/uefi/sbin/devd/devd.8 ============================================================================== --- projects/uefi/sbin/devd/devd.8 Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/sbin/devd/devd.8 Wed Jan 30 22:40:43 2013 (r246132) @@ -35,6 +35,7 @@ .Nm .Op Fl Ddn .Op Fl f Ar file +.Op Fl l Ar num .Sh DESCRIPTION The .Nm @@ -55,6 +56,12 @@ instead of the default If option .Fl f is specified more than once, the last file specified is used. +.It Fl l Ar num +Limit concurrent +.Pa /var/run/devd.pipe +connections to +.Ar num . +The default connection limit is 10. .It Fl n Do not process all pending events before becoming a daemon. Instead, call daemon right away. Modified: projects/uefi/sbin/devd/devd.cc ============================================================================== --- projects/uefi/sbin/devd/devd.cc Wed Jan 30 19:51:16 2013 (r246131) +++ projects/uefi/sbin/devd/devd.cc Wed Jan 30 22:40:43 2013 (r246132) @@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -814,23 +815,58 @@ create_socket(const char *name) return (fd); } +unsigned int max_clients = 10; /* Default, can be overriden on cmdline. */ +unsigned int num_clients; list clients; void notify_clients(const char *data, int len) { - list bad; - list::const_iterator i; + list::iterator i; - for (i = clients.begin(); i != clients.end(); ++i) { - if (write(*i, data, len) <= 0) { - bad.push_back(*i); + /* + * Deliver the data to all clients. Throw clients overboard at the + * first sign of trouble. This reaps clients who've died or closed + * their sockets, and also clients who are alive but failing to keep up + * (or who are maliciously not reading, to consume buffer space in + * kernel memory or tie up the limited number of available connections). + */ + for (i = clients.begin(); i != clients.end(); ) { + if (write(*i, data, len) != len) { + --num_clients; close(*i); - } + i = clients.erase(i); + } else + ++i; } +} + +void +check_clients(void) +{ + int s; + struct pollfd pfd; + list::iterator i; - for (i = bad.begin(); i != bad.end(); ++i) - clients.erase(find(clients.begin(), clients.end(), *i)); + /* + * Check all existing clients to see if any of them have disappeared. + * Normally we reap clients when we get an error trying to send them an + * event. This check eliminates the problem of an ever-growing list of + * zombie clients because we're never writing to them on a system + * without frequent device-change activity. + */ + pfd.events = 0; + for (i = clients.begin(); i != clients.end(); ) { + pfd.fd = *i; + s = poll(&pfd, 1, 0); + if ((s < 0 && s != EINTR ) || + (s > 0 && (pfd.revents & POLLHUP))) { + --num_clients; + close(*i); + i = clients.erase(i); + } else + ++i; + } } void @@ -838,9 +874,18 @@ new_client(int fd) { int s; + /* + * First go reap any zombie clients, then accept the connection, and + * shut down the read side to stop clients from consuming kernel memory + * by sending large buffers full of data we'll never read. + */ + check_clients(); s = accept(fd, NULL, NULL); - if (s != -1) + if (s != -1) { + shutdown(s, SHUT_RD); clients.push_back(s); + ++num_clients; + } } static void @@ -851,6 +896,7 @@ event_loop(void) char buffer[DEVCTL_MAXBUF]; int once = 0; int server_fd, max_fd; + int accepting; timeval tv; fd_set fds; @@ -858,6 +904,7 @@ event_loop(void) if (fd == -1) err(1, "Can't open devctl device %s", PATH_DEVCTL); server_fd = create_socket(PIPE); + accepting = 1; max_fd = max(fd, server_fd) + 1; while (1) { if (romeo_must_die) @@ -880,15 +927,38 @@ event_loop(void) once++; } } + /* + * When we've already got the max number of clients, stop + * accepting new connections (don't put server_fd in the set), + * shrink the accept() queue to reject connections quickly, and + * poll the existing clients more often, so that we notice more + * quickly when any of them disappear to free up client slots. + */ FD_ZERO(&fds); FD_SET(fd, &fds); - FD_SET(server_fd, &fds); - rv = select(max_fd, &fds, NULL, NULL, NULL); + if (num_clients < max_clients) { + if (!accepting) { + listen(server_fd, max_clients); + accepting = 1; + } + FD_SET(server_fd, &fds); + tv.tv_sec = 60; + tv.tv_usec = 0; + } else { + if (accepting) { + listen(server_fd, 0); + accepting = 0; + } + tv.tv_sec = 2; + tv.tv_usec = 0; + } + rv = select(max_fd, &fds, NULL, NULL, &tv); if (rv == -1) { if (errno == EINTR) continue; err(1, "select"); - } + } else if (rv == 0) + check_clients(); if (FD_ISSET(fd, &fds)) { rv = read(fd, buffer, sizeof(buffer) - 1); if (rv > 0) { @@ -1007,7 +1077,8 @@ gensighand(int) static void *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Wed Jan 30 23:20:29 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 8BE9314D; Wed, 30 Jan 2013 23:20:29 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 7E26CCC8; Wed, 30 Jan 2013 23:20:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0UNKTkc029885; Wed, 30 Jan 2013 23:20:29 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0UNKTbD029882; Wed, 30 Jan 2013 23:20:29 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201301302320.r0UNKTbD029882@svn.freebsd.org> From: Benno Rice Date: Wed, 30 Jan 2013 23:20:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246133 - in projects/uefi/sys/boot/efi: include/amd64 libefi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 23:20:29 -0000 Author: benno Date: Wed Jan 30 23:20:28 2013 New Revision: 246133 URL: http://svnweb.freebsd.org/changeset/base/246133 Log: Unsurprisingly, amd64 can't simply re-use the i386 bindings for EFI. Sponsored by: FreeBSD Foundation Added: projects/uefi/sys/boot/efi/include/amd64/ projects/uefi/sys/boot/efi/include/amd64/efibind.h projects/uefi/sys/boot/efi/include/amd64/pe.h Modified: projects/uefi/sys/boot/efi/libefi/Makefile Added: projects/uefi/sys/boot/efi/include/amd64/efibind.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/sys/boot/efi/include/amd64/efibind.h Wed Jan 30 23:20:28 2013 (r246133) @@ -0,0 +1,268 @@ +/* $FreeBSD$ */ +/*++ + +Copyright (c) 1999 - 2003 Intel Corporation. All rights reserved +This software and associated documentation (if any) is furnished +under a license and may only be used or copied in accordance +with the terms of the license. Except as permitted by such +license, no part of this software or documentation may be +reproduced, stored in a retrieval system, or transmitted in any +form or by any means without the express written consent of +Intel Corporation. + +Module Name: + + efefind.h + +Abstract: + + EFI to compile bindings + + + + +Revision History + +--*/ + +#pragma pack() + + +#ifdef __FreeBSD__ +#include +#else +// +// Basic int types of various widths +// + +#if (__STDC_VERSION__ < 199901L ) + + // No ANSI C 1999/2000 stdint.h integer width declarations + + #if _MSC_EXTENSIONS + + // Use Microsoft C compiler integer width declarations + + typedef unsigned __int64 uint64_t; + typedef __int64 int64_t; + typedef unsigned __int32 uint32_t; + typedef __int32 int32_t; + typedef unsigned short uint16_t; + typedef short int16_t; + typedef unsigned char uint8_t; + typedef char int8_t; + #else + #ifdef UNIX_LP64 + + // Use LP64 programming model from C_FLAGS for integer width declarations + + typedef unsigned long uint64_t; + typedef long int64_t; + typedef unsigned int uint32_t; + typedef int int32_t; + typedef unsigned short uint16_t; + typedef short int16_t; + typedef unsigned char uint8_t; + typedef char int8_t; + #else + + // Assume P64 programming model from C_FLAGS for integer width declarations + + typedef unsigned long long uint64_t; + typedef long long int64_t; + typedef unsigned int uint32_t; + typedef int int32_t; + typedef unsigned short uint16_t; + typedef short int16_t; + typedef unsigned char uint8_t; + typedef char int8_t; + #endif + #endif +#endif +#endif /* __FreeBSD__ */ + +// +// Basic EFI types of various widths +// + +typedef uint64_t UINT64; +typedef int64_t INT64; + +#ifndef _BASETSD_H_ + typedef uint32_t UINT32; + typedef int32_t INT32; +#endif + +typedef uint16_t UINT16; +typedef int16_t INT16; +typedef uint8_t UINT8; +typedef int8_t INT8; + + +#undef VOID +#define VOID void + + +typedef int64_t INTN; +typedef uint64_t UINTN; + +#ifdef EFI_NT_EMULATOR + #define POST_CODE(_Data) +#else + #ifdef EFI_DEBUG +#define POST_CODE(_Data) __asm mov eax,(_Data) __asm out 0x80,al + #else + #define POST_CODE(_Data) + #endif +#endif + +#define EFIERR(a) (0x8000000000000000 | a) +#define EFI_ERROR_MASK 0x8000000000000000 +#define EFIERR_OEM(a) (0xc000000000000000 | a) + + +#define BAD_POINTER 0xFBFBFBFBFBFBFBFB +#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFF + +#define BREAKPOINT() __asm { int 3 } + +// +// Pointers must be aligned to these address to function +// + +#define MIN_ALIGNMENT_SIZE 4 + +#define ALIGN_VARIABLE(Value ,Adjustment) \ + (UINTN)Adjustment = 0; \ + if((UINTN)Value % MIN_ALIGNMENT_SIZE) \ + (UINTN)Adjustment = MIN_ALIGNMENT_SIZE - ((UINTN)Value % MIN_ALIGNMENT_SIZE); \ + Value = (UINTN)Value + (UINTN)Adjustment + + +// +// Define macros to build data structure signatures from characters. +// + +#define EFI_SIGNATURE_16(A,B) ((A) | (B<<8)) +#define EFI_SIGNATURE_32(A,B,C,D) (EFI_SIGNATURE_16(A,B) | (EFI_SIGNATURE_16(C,D) << 16)) +#define EFI_SIGNATURE_64(A,B,C,D,E,F,G,H) (EFI_SIGNATURE_32(A,B,C,D) | ((UINT64)(EFI_SIGNATURE_32(E,F,G,H)) << 32)) + +// +// EFIAPI - prototype calling convention for EFI function pointers +// BOOTSERVICE - prototype for implementation of a boot service interface +// RUNTIMESERVICE - prototype for implementation of a runtime service interface +// RUNTIMEFUNCTION - prototype for implementation of a runtime function that is not a service +// RUNTIME_CODE - pragma macro for declaring runtime code +// + +/* XXX: This attribute only works on gcc >= 4.7 for now. */ +#ifdef __amd64__ +#define EFIAPI __attribute__((ms_abi)) +#endif + +#ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options + #if _MSC_EXTENSIONS + #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler + #else + #define EFIAPI // Substitute expresion to force C calling convention + #endif +#endif + +#define BOOTSERVICE +//#define RUNTIMESERVICE(proto,a) alloc_text("rtcode",a); proto a +//#define RUNTIMEFUNCTION(proto,a) alloc_text("rtcode",a); proto a +#define RUNTIMESERVICE +#define RUNTIMEFUNCTION + + +#define RUNTIME_CODE(a) alloc_text("rtcode", a) +#define BEGIN_RUNTIME_DATA() data_seg("rtdata") +#define END_RUNTIME_DATA() data_seg("") + +#define VOLATILE volatile + +#define MEMORY_FENCE() + +#ifdef EFI_NO_INTERFACE_DECL + #define EFI_FORWARD_DECLARATION(x) + #define EFI_INTERFACE_DECL(x) +#else + #define EFI_FORWARD_DECLARATION(x) typedef struct _##x x + #define EFI_INTERFACE_DECL(x) typedef struct x +#endif + +#ifdef EFI_NT_EMULATOR + +// +// To help ensure proper coding of integrated drivers, they are +// compiled as DLLs. In NT they require a dll init entry pointer. +// The macro puts a stub entry point into the DLL so it will load. +// + +#define EFI_DRIVER_ENTRY_POINT(InitFunction) \ + EFI_STATUS \ + InitFunction ( \ + EFI_HANDLE ImageHandle, \ + EFI_SYSTEM_TABLE *SystemTable \ + ); \ + \ + UINTN \ + __stdcall \ + _DllMainCRTStartup ( \ + UINTN Inst, \ + UINTN reason_for_call, \ + VOID *rserved \ + ) \ + { \ + return 1; \ + } \ + \ + int \ + __declspec( dllexport ) \ + __cdecl \ + InitializeDriver ( \ + void *ImageHandle, \ + void *SystemTable \ + ) \ + { \ + return InitFunction(ImageHandle, SystemTable); \ + } + + + #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \ + (_if)->LoadInternal(type, name, NULL) + +#else // EFI_NT_EMULATOR + +// +// When build similiar to FW, then link everything together as +// one big module. +// + + #define EFI_DRIVER_ENTRY_POINT(InitFunction) + + #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \ + (_if)->LoadInternal(type, name, entry) + +#endif // EFI_FW_NT + +#ifdef __FreeBSD__ +#define INTERFACE_DECL(x) struct x +#else +// +// Some compilers don't support the forward reference construct: +// typedef struct XXXXX +// +// The following macro provide a workaround for such cases. +// +#ifdef NO_INTERFACE_DECL +#define INTERFACE_DECL(x) +#else +#define INTERFACE_DECL(x) typedef struct x +#endif +#endif /* __FreeBSD__ */ + +#if _MSC_EXTENSIONS +#pragma warning ( disable : 4731 ) // Suppress warnings about modification of EBP +#endif + Added: projects/uefi/sys/boot/efi/include/amd64/pe.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/sys/boot/efi/include/amd64/pe.h Wed Jan 30 23:20:28 2013 (r246133) @@ -0,0 +1,591 @@ +/* + PE32+ header file + */ +#ifndef _PE_H +#define _PE_H + +#define IMAGE_DOS_SIGNATURE 0x5A4D // MZ +#define IMAGE_OS2_SIGNATURE 0x454E // NE +#define IMAGE_OS2_SIGNATURE_LE 0x454C // LE +#define IMAGE_NT_SIGNATURE 0x00004550 // PE00 +#define IMAGE_EDOS_SIGNATURE 0x44454550 // PEED + + +typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header + UINT16 e_magic; // Magic number + UINT16 e_cblp; // Bytes on last page of file + UINT16 e_cp; // Pages in file + UINT16 e_crlc; // Relocations + UINT16 e_cparhdr; // Size of header in paragraphs + UINT16 e_minalloc; // Minimum extra paragraphs needed + UINT16 e_maxalloc; // Maximum extra paragraphs needed + UINT16 e_ss; // Initial (relative) SS value + UINT16 e_sp; // Initial SP value + UINT16 e_csum; // Checksum + UINT16 e_ip; // Initial IP value + UINT16 e_cs; // Initial (relative) CS value + UINT16 e_lfarlc; // File address of relocation table + UINT16 e_ovno; // Overlay number + UINT16 e_res[4]; // Reserved words + UINT16 e_oemid; // OEM identifier (for e_oeminfo) + UINT16 e_oeminfo; // OEM information; e_oemid specific + UINT16 e_res2[10]; // Reserved words + UINT32 e_lfanew; // File address of new exe header + } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; + +typedef struct _IMAGE_OS2_HEADER { // OS/2 .EXE header + UINT16 ne_magic; // Magic number + UINT8 ne_ver; // Version number + UINT8 ne_rev; // Revision number + UINT16 ne_enttab; // Offset of Entry Table + UINT16 ne_cbenttab; // Number of bytes in Entry Table + UINT32 ne_crc; // Checksum of whole file + UINT16 ne_flags; // Flag UINT16 + UINT16 ne_autodata; // Automatic data segment number + UINT16 ne_heap; // Initial heap allocation + UINT16 ne_stack; // Initial stack allocation + UINT32 ne_csip; // Initial CS:IP setting + UINT32 ne_sssp; // Initial SS:SP setting + UINT16 ne_cseg; // Count of file segments + UINT16 ne_cmod; // Entries in Module Reference Table + UINT16 ne_cbnrestab; // Size of non-resident name table + UINT16 ne_segtab; // Offset of Segment Table + UINT16 ne_rsrctab; // Offset of Resource Table + UINT16 ne_restab; // Offset of resident name table + UINT16 ne_modtab; // Offset of Module Reference Table + UINT16 ne_imptab; // Offset of Imported Names Table + UINT32 ne_nrestab; // Offset of Non-resident Names Table + UINT16 ne_cmovent; // Count of movable entries + UINT16 ne_align; // Segment alignment shift count + UINT16 ne_cres; // Count of resource segments + UINT8 ne_exetyp; // Target Operating system + UINT8 ne_flagsothers; // Other .EXE flags + UINT16 ne_pretthunks; // offset to return thunks + UINT16 ne_psegrefbytes; // offset to segment ref. bytes + UINT16 ne_swaparea; // Minimum code swap area size + UINT16 ne_expver; // Expected Windows version number + } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER; + +// +// File header format. +// + +typedef struct _IMAGE_FILE_HEADER { + UINT16 Machine; + UINT16 NumberOfSections; + UINT32 TimeDateStamp; + UINT32 PointerToSymbolTable; + UINT32 NumberOfSymbols; + UINT16 SizeOfOptionalHeader; + UINT16 Characteristics; +} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; + +#define IMAGE_SIZEOF_FILE_HEADER 20 + +#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 // Relocation info stripped from file. +#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 // File is executable (i.e. no unresolved externel references). +#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 // Line nunbers stripped from file. +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 // Local symbols stripped from file. +#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 // Bytes of machine word are reversed. +#define IMAGE_FILE_32BIT_MACHINE 0x0100 // 32 bit word machine. +#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 // Debugging info stripped from file in .DBG file +#define IMAGE_FILE_SYSTEM 0x1000 // System File. +#define IMAGE_FILE_DLL 0x2000 // File is a DLL. +#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 // Bytes of machine word are reversed. + +#define IMAGE_FILE_MACHINE_UNKNOWN 0 +#define IMAGE_FILE_MACHINE_I386 0x14c // Intel 386. +#define IMAGE_FILE_MACHINE_R3000 0x162 // MIPS little-endian, 0540 big-endian +#define IMAGE_FILE_MACHINE_R4000 0x166 // MIPS little-endian +#define IMAGE_FILE_MACHINE_ALPHA 0x184 // Alpha_AXP +#define IMAGE_FILE_MACHINE_POWERPC 0x1F0 // IBM PowerPC Little-Endian +#define IMAGE_FILE_MACHINE_TAHOE 0x7cc // Intel EM machine +// +// Directory format. +// + +typedef struct _IMAGE_DATA_DIRECTORY { + UINT32 VirtualAddress; + UINT32 Size; +} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; + +#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 + +// +// Optional header format. +// + +typedef struct _IMAGE_OPTIONAL_HEADER { + // + // Standard fields. + // + + UINT16 Magic; + UINT8 MajorLinkerVersion; + UINT8 MinorLinkerVersion; + UINT32 SizeOfCode; + UINT32 SizeOfInitializedData; + UINT32 SizeOfUninitializedData; + UINT32 AddressOfEntryPoint; + UINT32 BaseOfCode; + UINT32 BaseOfData; + + // + // NT additional fields. + // + + UINT32 ImageBase; + UINT32 SectionAlignment; + UINT32 FileAlignment; + UINT16 MajorOperatingSystemVersion; + UINT16 MinorOperatingSystemVersion; + UINT16 MajorImageVersion; + UINT16 MinorImageVersion; + UINT16 MajorSubsystemVersion; + UINT16 MinorSubsystemVersion; + UINT32 Reserved1; + UINT32 SizeOfImage; + UINT32 SizeOfHeaders; + UINT32 CheckSum; + UINT16 Subsystem; + UINT16 DllCharacteristics; + UINT32 SizeOfStackReserve; + UINT32 SizeOfStackCommit; + UINT32 SizeOfHeapReserve; + UINT32 SizeOfHeapCommit; + UINT32 LoaderFlags; + UINT32 NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; +} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER; + +typedef struct _IMAGE_ROM_OPTIONAL_HEADER { + UINT16 Magic; + UINT8 MajorLinkerVersion; + UINT8 MinorLinkerVersion; + UINT32 SizeOfCode; + UINT32 SizeOfInitializedData; + UINT32 SizeOfUninitializedData; + UINT32 AddressOfEntryPoint; + UINT32 BaseOfCode; + UINT32 BaseOfData; + UINT32 BaseOfBss; + UINT32 GprMask; + UINT32 CprMask[4]; + UINT32 GpValue; +} IMAGE_ROM_OPTIONAL_HEADER, *PIMAGE_ROM_OPTIONAL_HEADER; + +#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56 +#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28 +#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER 224 + +#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b +#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 + +typedef struct _IMAGE_NT_HEADERS { + UINT32 Signature; + IMAGE_FILE_HEADER FileHeader; + IMAGE_OPTIONAL_HEADER OptionalHeader; +} IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS; + +typedef struct _IMAGE_ROM_HEADERS { + IMAGE_FILE_HEADER FileHeader; + IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; +} IMAGE_ROM_HEADERS, *PIMAGE_ROM_HEADERS; + +#define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) \ + ((UINT32)ntheader + \ + FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) + \ + ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader \ + )) + + +// Subsystem Values + +#define IMAGE_SUBSYSTEM_UNKNOWN 0 // Unknown subsystem. +#define IMAGE_SUBSYSTEM_NATIVE 1 // Image doesn't require a subsystem. +#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 // Image runs in the Windows GUI subsystem. +#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 // Image runs in the Windows character subsystem. +#define IMAGE_SUBSYSTEM_OS2_CUI 5 // image runs in the OS/2 character subsystem. +#define IMAGE_SUBSYSTEM_POSIX_CUI 7 // image run in the Posix character subsystem. + + +// Directory Entries + +#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory +#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory +#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory +#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory +#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory +#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table +#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory +#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // Description String +#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // Machine Value (MIPS GP) +#define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory +#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory + +// +// Section header format. +// + +#define IMAGE_SIZEOF_SHORT_NAME 8 + +typedef struct _IMAGE_SECTION_HEADER { + UINT8 Name[IMAGE_SIZEOF_SHORT_NAME]; + union { + UINT32 PhysicalAddress; + UINT32 VirtualSize; + } Misc; + UINT32 VirtualAddress; + UINT32 SizeOfRawData; + UINT32 PointerToRawData; + UINT32 PointerToRelocations; + UINT32 PointerToLinenumbers; + UINT16 NumberOfRelocations; + UINT16 NumberOfLinenumbers; + UINT32 Characteristics; +} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; + +#define IMAGE_SIZEOF_SECTION_HEADER 40 + +#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 // Reserved. + +#define IMAGE_SCN_CNT_CODE 0x00000020 // Section contains code. +#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 // Section contains initialized data. +#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 // Section contains uninitialized data. + +#define IMAGE_SCN_LNK_OTHER 0x00000100 // Reserved. +#define IMAGE_SCN_LNK_INFO 0x00000200 // Section contains comments or some other type of information. +#define IMAGE_SCN_LNK_REMOVE 0x00000800 // Section contents will not become part of image. +#define IMAGE_SCN_LNK_COMDAT 0x00001000 // Section contents comdat. + +#define IMAGE_SCN_ALIGN_1BYTES 0x00100000 // +#define IMAGE_SCN_ALIGN_2BYTES 0x00200000 // +#define IMAGE_SCN_ALIGN_4BYTES 0x00300000 // +#define IMAGE_SCN_ALIGN_8BYTES 0x00400000 // +#define IMAGE_SCN_ALIGN_16BYTES 0x00500000 // Default alignment if no others are specified. +#define IMAGE_SCN_ALIGN_32BYTES 0x00600000 // +#define IMAGE_SCN_ALIGN_64BYTES 0x00700000 // + +#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 // Section can be discarded. +#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 // Section is not cachable. +#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 // Section is not pageable. +#define IMAGE_SCN_MEM_SHARED 0x10000000 // Section is shareable. +#define IMAGE_SCN_MEM_EXECUTE 0x20000000 // Section is executable. +#define IMAGE_SCN_MEM_READ 0x40000000 // Section is readable. +#define IMAGE_SCN_MEM_WRITE 0x80000000 // Section is writeable. + +// +// Symbol format. +// + + +#define IMAGE_SIZEOF_SYMBOL 18 + +// +// Section values. +// +// Symbols have a section number of the section in which they are +// defined. Otherwise, section numbers have the following meanings: +// + +#define IMAGE_SYM_UNDEFINED (UINT16)0 // Symbol is undefined or is common. +#define IMAGE_SYM_ABSOLUTE (UINT16)-1 // Symbol is an absolute value. +#define IMAGE_SYM_DEBUG (UINT16)-2 // Symbol is a special debug item. + +// +// Type (fundamental) values. +// + +#define IMAGE_SYM_TYPE_NULL 0 // no type. +#define IMAGE_SYM_TYPE_VOID 1 // +#define IMAGE_SYM_TYPE_CHAR 2 // type character. +#define IMAGE_SYM_TYPE_SHORT 3 // type short integer. +#define IMAGE_SYM_TYPE_INT 4 // +#define IMAGE_SYM_TYPE_LONG 5 // +#define IMAGE_SYM_TYPE_FLOAT 6 // +#define IMAGE_SYM_TYPE_DOUBLE 7 // +#define IMAGE_SYM_TYPE_STRUCT 8 // +#define IMAGE_SYM_TYPE_UNION 9 // +#define IMAGE_SYM_TYPE_ENUM 10 // enumeration. +#define IMAGE_SYM_TYPE_MOE 11 // member of enumeration. +#define IMAGE_SYM_TYPE_BYTE 12 // +#define IMAGE_SYM_TYPE_WORD 13 // +#define IMAGE_SYM_TYPE_UINT 14 // +#define IMAGE_SYM_TYPE_DWORD 15 // + +// +// Type (derived) values. +// + +#define IMAGE_SYM_DTYPE_NULL 0 // no derived type. +#define IMAGE_SYM_DTYPE_POINTER 1 // pointer. +#define IMAGE_SYM_DTYPE_FUNCTION 2 // function. +#define IMAGE_SYM_DTYPE_ARRAY 3 // array. + +// +// Storage classes. +// + +#define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE )-1 +#define IMAGE_SYM_CLASS_NULL 0 +#define IMAGE_SYM_CLASS_AUTOMATIC 1 +#define IMAGE_SYM_CLASS_EXTERNAL 2 +#define IMAGE_SYM_CLASS_STATIC 3 +#define IMAGE_SYM_CLASS_REGISTER 4 +#define IMAGE_SYM_CLASS_EXTERNAL_DEF 5 +#define IMAGE_SYM_CLASS_LABEL 6 +#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 7 +#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8 +#define IMAGE_SYM_CLASS_ARGUMENT 9 +#define IMAGE_SYM_CLASS_STRUCT_TAG 10 +#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 11 +#define IMAGE_SYM_CLASS_UNION_TAG 12 +#define IMAGE_SYM_CLASS_TYPE_DEFINITION 13 +#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 14 +#define IMAGE_SYM_CLASS_ENUM_TAG 15 +#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16 +#define IMAGE_SYM_CLASS_REGISTER_PARAM 17 +#define IMAGE_SYM_CLASS_BIT_FIELD 18 +#define IMAGE_SYM_CLASS_BLOCK 100 +#define IMAGE_SYM_CLASS_FUNCTION 101 +#define IMAGE_SYM_CLASS_END_OF_STRUCT 102 +#define IMAGE_SYM_CLASS_FILE 103 +// new +#define IMAGE_SYM_CLASS_SECTION 104 +#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 105 + +// type packing constants + +#define N_BTMASK 017 +#define N_TMASK 060 +#define N_TMASK1 0300 +#define N_TMASK2 0360 +#define N_BTSHFT 4 +#define N_TSHIFT 2 + +// MACROS + +// +// Communal selection types. +// + +#define IMAGE_COMDAT_SELECT_NODUPLICATES 1 +#define IMAGE_COMDAT_SELECT_ANY 2 +#define IMAGE_COMDAT_SELECT_SAME_SIZE 3 +#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4 +#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 + +#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 +#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 +#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 + + +// +// Relocation format. +// + +typedef struct _IMAGE_RELOCATION { + UINT32 VirtualAddress; + UINT32 SymbolTableIndex; + UINT16 Type; +} IMAGE_RELOCATION; + +#define IMAGE_SIZEOF_RELOCATION 10 + +// +// I386 relocation types. +// + +#define IMAGE_REL_I386_ABSOLUTE 0 // Reference is absolute, no relocation is necessary +#define IMAGE_REL_I386_DIR16 01 // Direct 16-bit reference to the symbols virtual address +#define IMAGE_REL_I386_REL16 02 // PC-relative 16-bit reference to the symbols virtual address +#define IMAGE_REL_I386_DIR32 06 // Direct 32-bit reference to the symbols virtual address +#define IMAGE_REL_I386_DIR32NB 07 // Direct 32-bit reference to the symbols virtual address, base not included +#define IMAGE_REL_I386_SEG12 011 // Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address +#define IMAGE_REL_I386_SECTION 012 +#define IMAGE_REL_I386_SECREL 013 +#define IMAGE_REL_I386_REL32 024 // PC-relative 32-bit reference to the symbols virtual address + +// +// MIPS relocation types. +// + +#define IMAGE_REL_MIPS_ABSOLUTE 0 // Reference is absolute, no relocation is necessary +#define IMAGE_REL_MIPS_REFHALF 01 +#define IMAGE_REL_MIPS_REFWORD 02 +#define IMAGE_REL_MIPS_JMPADDR 03 +#define IMAGE_REL_MIPS_REFHI 04 +#define IMAGE_REL_MIPS_REFLO 05 +#define IMAGE_REL_MIPS_GPREL 06 +#define IMAGE_REL_MIPS_LITERAL 07 +#define IMAGE_REL_MIPS_SECTION 012 +#define IMAGE_REL_MIPS_SECREL 013 +#define IMAGE_REL_MIPS_REFWORDNB 042 +#define IMAGE_REL_MIPS_PAIR 045 + +// +// Alpha Relocation types. +// + +#define IMAGE_REL_ALPHA_ABSOLUTE 0x0 +#define IMAGE_REL_ALPHA_REFLONG 0x1 +#define IMAGE_REL_ALPHA_REFQUAD 0x2 +#define IMAGE_REL_ALPHA_GPREL32 0x3 +#define IMAGE_REL_ALPHA_LITERAL 0x4 +#define IMAGE_REL_ALPHA_LITUSE 0x5 +#define IMAGE_REL_ALPHA_GPDISP 0x6 +#define IMAGE_REL_ALPHA_BRADDR 0x7 +#define IMAGE_REL_ALPHA_HINT 0x8 +#define IMAGE_REL_ALPHA_INLINE_REFLONG 0x9 +#define IMAGE_REL_ALPHA_REFHI 0xA +#define IMAGE_REL_ALPHA_REFLO 0xB +#define IMAGE_REL_ALPHA_PAIR 0xC +#define IMAGE_REL_ALPHA_MATCH 0xD +#define IMAGE_REL_ALPHA_SECTION 0xE +#define IMAGE_REL_ALPHA_SECREL 0xF +#define IMAGE_REL_ALPHA_REFLONGNB 0x10 + +// +// IBM PowerPC relocation types. +// + +#define IMAGE_REL_PPC_ABSOLUTE 0x0000 // NOP +#define IMAGE_REL_PPC_ADDR64 0x0001 // 64-bit address +#define IMAGE_REL_PPC_ADDR32 0x0002 // 32-bit address +#define IMAGE_REL_PPC_ADDR24 0x0003 // 26-bit address, shifted left 2 (branch absolute) +#define IMAGE_REL_PPC_ADDR16 0x0004 // 16-bit address +#define IMAGE_REL_PPC_ADDR14 0x0005 // 16-bit address, shifted left 2 (load doubleword) +#define IMAGE_REL_PPC_REL24 0x0006 // 26-bit PC-relative offset, shifted left 2 (branch relative) +#define IMAGE_REL_PPC_REL14 0x0007 // 16-bit PC-relative offset, shifted left 2 (br cond relative) +#define IMAGE_REL_PPC_TOCREL16 0x0008 // 16-bit offset from TOC base +#define IMAGE_REL_PPC_TOCREL14 0x0009 // 16-bit offset from TOC base, shifted left 2 (load doubleword) + +#define IMAGE_REL_PPC_ADDR32NB 0x000A // 32-bit addr w/o image base +#define IMAGE_REL_PPC_SECREL 0x000B // va of containing section (as in an image sectionhdr) +#define IMAGE_REL_PPC_SECTION 0x000C // sectionheader number +#define IMAGE_REL_PPC_IFGLUE 0x000D // substitute TOC restore instruction iff symbol is glue code +#define IMAGE_REL_PPC_IMGLUE 0x000E // symbol is glue code; virtual address is TOC restore instruction + +#define IMAGE_REL_PPC_TYPEMASK 0x00FF // mask to isolate above values in IMAGE_RELOCATION.Type + +// Flag bits in IMAGE_RELOCATION.TYPE + +#define IMAGE_REL_PPC_NEG 0x0100 // subtract reloc value rather than adding it +#define IMAGE_REL_PPC_BRTAKEN 0x0200 // fix branch prediction bit to predict branch taken +#define IMAGE_REL_PPC_BRNTAKEN 0x0400 // fix branch prediction bit to predict branch not taken +#define IMAGE_REL_PPC_TOCDEFN 0x0800 // toc slot defined in file (or, data in toc) + +// +// Based relocation format. +// + +typedef struct _IMAGE_BASE_RELOCATION { + UINT32 VirtualAddress; + UINT32 SizeOfBlock; +// UINT16 TypeOffset[1]; +} IMAGE_BASE_RELOCATION, *PIMAGE_BASE_RELOCATION; + +#define IMAGE_SIZEOF_BASE_RELOCATION 8 + +// +// Based relocation types. +// + +#define IMAGE_REL_BASED_ABSOLUTE 0 +#define IMAGE_REL_BASED_HIGH 1 +#define IMAGE_REL_BASED_LOW 2 +#define IMAGE_REL_BASED_HIGHLOW 3 +#define IMAGE_REL_BASED_HIGHADJ 4 +#define IMAGE_REL_BASED_MIPS_JMPADDR 5 +#define IMAGE_REL_BASED_IA64_IMM64 9 +#define IMAGE_REL_BASED_DIR64 10 + +// +// Line number format. +// + +typedef struct _IMAGE_LINENUMBER { + union { + UINT32 SymbolTableIndex; // Symbol table index of function name if Linenumber is 0. + UINT32 VirtualAddress; // Virtual address of line number. + } Type; + UINT16 Linenumber; // Line number. +} IMAGE_LINENUMBER; + +#define IMAGE_SIZEOF_LINENUMBER 6 + +// +// Archive format. +// + +#define IMAGE_ARCHIVE_START_SIZE 8 +#define IMAGE_ARCHIVE_START "!\n" +#define IMAGE_ARCHIVE_END "`\n" +#define IMAGE_ARCHIVE_PAD "\n" +#define IMAGE_ARCHIVE_LINKER_MEMBER "/ " +#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " + +typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { + UINT8 Name[16]; // File member name - `/' terminated. + UINT8 Date[12]; // File member date - decimal. + UINT8 UserID[6]; // File member user id - decimal. + UINT8 GroupID[6]; // File member group id - decimal. + UINT8 Mode[8]; // File member mode - octal. + UINT8 Size[10]; // File member size - decimal. + UINT8 EndHeader[2]; // String to end header. +} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER; + +#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 + +// +// DLL support. +// + +// +// Export Format +// + +typedef struct _IMAGE_EXPORT_DIRECTORY { + UINT32 Characteristics; + UINT32 TimeDateStamp; + UINT16 MajorVersion; + UINT16 MinorVersion; + UINT32 Name; + UINT32 Base; + UINT32 NumberOfFunctions; + UINT32 NumberOfNames; + UINT32 *AddressOfFunctions; + UINT32 *AddressOfNames; + UINT32 *AddressOfNameOrdinals; +} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY; + +// +// Import Format +// + +typedef struct _IMAGE_IMPORT_BY_NAME { + UINT16 Hint; + UINT8 Name[1]; +} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME; + +typedef struct _IMAGE_THUNK_DATA { + union { + UINT32 Function; + UINT32 Ordinal; + PIMAGE_IMPORT_BY_NAME AddressOfData; + } u1; +} IMAGE_THUNK_DATA, *PIMAGE_THUNK_DATA; + +#define IMAGE_ORDINAL_FLAG 0x80000000 +#define IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG) != 0) +#define IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff) + +typedef struct _IMAGE_IMPORT_DESCRIPTOR { + UINT32 Characteristics; + UINT32 TimeDateStamp; + UINT32 ForwarderChain; + UINT32 Name; + PIMAGE_THUNK_DATA FirstThunk; +} IMAGE_IMPORT_DESCRIPTOR, *PIMAGE_IMPORT_DESCRIPTOR; + +#endif Modified: projects/uefi/sys/boot/efi/libefi/Makefile ============================================================================== --- projects/uefi/sys/boot/efi/libefi/Makefile Wed Jan 30 22:40:43 2013 (r246132) +++ projects/uefi/sys/boot/efi/libefi/Makefile Wed Jan 30 23:20:28 2013 (r246133) @@ -8,7 +8,7 @@ SRCS= delay.c efi_console.c efinet.c efi CFLAGS+= -fPIC CFLAGS+= -I${.CURDIR}/../include -CFLAGS+= -I${.CURDIR}/../include/${MACHINE_CPUARCH:S/amd64/i386/} +CFLAGS+= -I${.CURDIR}/../include/${MACHINE_CPUARCH} CFLAGS+= -I${.CURDIR}/../../../../lib/libstand # Pick up the bootstrap header for some interface items From owner-svn-src-projects@FreeBSD.ORG Thu Jan 31 21:01:48 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 2A4B8154; Thu, 31 Jan 2013 21:01:48 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 188701A8; Thu, 31 Jan 2013 21:01:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0VL1mdA025165; Thu, 31 Jan 2013 21:01:48 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0VL1h4a025128; Thu, 31 Jan 2013 21:01:43 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201301312101.r0VL1h4a025128@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 31 Jan 2013 21:01:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246159 - in projects/physbio: . bin/cat contrib/ipfilter/ipsend etc include lib/libc/amd64/sys lib/libc/arm/sys lib/libc/i386/sys lib/libc/ia64/sys lib/libc/mips/sys lib/libc/powerpc l... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jan 2013 21:01:48 -0000 Author: kib Date: Thu Jan 31 21:01:42 2013 New Revision: 246159 URL: http://svnweb.freebsd.org/changeset/base/246159 Log: MFH Added: projects/physbio/lib/libc/arm/sys/__vdso_gettc.c - copied unchanged from r246158, head/lib/libc/arm/sys/__vdso_gettc.c projects/physbio/lib/libc/ia64/sys/__vdso_gettc.c - copied unchanged from r246158, head/lib/libc/ia64/sys/__vdso_gettc.c projects/physbio/lib/libc/mips/sys/__vdso_gettc.c - copied unchanged from r246158, head/lib/libc/mips/sys/__vdso_gettc.c projects/physbio/lib/libc/powerpc/sys/__vdso_gettc.c - copied unchanged from r246158, head/lib/libc/powerpc/sys/__vdso_gettc.c projects/physbio/lib/libc/powerpc64/sys/__vdso_gettc.c - copied unchanged from r246158, head/lib/libc/powerpc64/sys/__vdso_gettc.c projects/physbio/lib/libc/sparc64/sys/__vdso_gettc.c - copied unchanged from r246158, head/lib/libc/sparc64/sys/__vdso_gettc.c projects/physbio/lib/libc/stdio/fmemopen.c - copied unchanged from r246158, head/lib/libc/stdio/fmemopen.c projects/physbio/sys/boot/usb/ - copied from r246158, head/sys/boot/usb/ projects/physbio/sys/dev/usb/usb_freebsd_loader.h - copied unchanged from r246158, head/sys/dev/usb/usb_freebsd_loader.h projects/physbio/tools/regression/lib/libc/stdio/test-fmemopen.c - copied unchanged from r246158, head/tools/regression/lib/libc/stdio/test-fmemopen.c projects/physbio/tools/regression/lib/libc/stdio/test-fmemopen.t - copied unchanged from r246158, head/tools/regression/lib/libc/stdio/test-fmemopen.t Deleted: projects/physbio/lib/libstand/if_ether.h Modified: projects/physbio/Makefile.inc1 projects/physbio/UPDATING projects/physbio/bin/cat/cat.1 projects/physbio/bin/cat/cat.c projects/physbio/contrib/ipfilter/ipsend/44arp.c projects/physbio/etc/Makefile projects/physbio/include/stdio.h (contents, props changed) projects/physbio/lib/libc/amd64/sys/__vdso_gettc.c projects/physbio/lib/libc/arm/sys/Makefile.inc projects/physbio/lib/libc/i386/sys/__vdso_gettc.c projects/physbio/lib/libc/ia64/sys/Makefile.inc projects/physbio/lib/libc/mips/sys/Makefile.inc projects/physbio/lib/libc/powerpc/Makefile.inc projects/physbio/lib/libc/powerpc64/Makefile.inc projects/physbio/lib/libc/sparc64/Makefile.inc projects/physbio/lib/libc/stdio/Makefile.inc (contents, props changed) projects/physbio/lib/libc/stdio/Symbol.map (contents, props changed) projects/physbio/lib/libc/stdio/fopen.3 (contents, props changed) projects/physbio/lib/libc/sys/__vdso_gettimeofday.c projects/physbio/lib/libc/sys/gettimeofday.c projects/physbio/libexec/bootpd/rtmsg.c projects/physbio/libexec/tftpd/tftp-io.c projects/physbio/libexec/tftpd/tftp-options.c projects/physbio/libexec/tftpd/tftp-utils.h projects/physbio/libexec/tftpd/tftpd.c projects/physbio/sbin/devd/devd.8 projects/physbio/sbin/devd/devd.cc projects/physbio/sbin/devd/devd.hh projects/physbio/sbin/route/route.c projects/physbio/share/man/man7/release.7 projects/physbio/share/mk/bsd.own.mk projects/physbio/sys/amd64/include/vmm_instruction_emul.h (contents, props changed) projects/physbio/sys/amd64/linux32/linux.h projects/physbio/sys/amd64/linux32/linux32_sysvec.c projects/physbio/sys/amd64/vmm/vmm_instruction_emul.c projects/physbio/sys/arm/arm/busdma_machdep.c projects/physbio/sys/boot/uboot/common/metadata.c projects/physbio/sys/cam/scsi/scsi_all.c projects/physbio/sys/compat/linprocfs/linprocfs.c projects/physbio/sys/compat/linux/linux_emul.c projects/physbio/sys/compat/linux/linux_file.c projects/physbio/sys/compat/linux/linux_file.h projects/physbio/sys/compat/linux/linux_fork.c projects/physbio/sys/compat/linux/linux_ioctl.h projects/physbio/sys/compat/linux/linux_ipc.h projects/physbio/sys/compat/linux/linux_mib.c projects/physbio/sys/compat/linux/linux_misc.h projects/physbio/sys/compat/linux/linux_signal.h projects/physbio/sys/compat/linux/linux_socket.h projects/physbio/sys/compat/linux/linux_sysctl.c projects/physbio/sys/compat/linux/linux_time.c projects/physbio/sys/dev/acpi_support/acpi_asus_wmi.c projects/physbio/sys/dev/acpi_support/acpi_fujitsu.c (contents, props changed) projects/physbio/sys/dev/acpi_support/acpi_hp.c projects/physbio/sys/dev/acpi_support/acpi_ibm.c (contents, props changed) projects/physbio/sys/dev/acpi_support/acpi_panasonic.c (contents, props changed) projects/physbio/sys/dev/acpi_support/acpi_sony.c (contents, props changed) projects/physbio/sys/dev/acpi_support/acpi_toshiba.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_acad.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_button.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_cmbat.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_dock.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_ec.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_hpet.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_lid.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_pci.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_pci_link.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_pcib_pci.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_perf.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_resource.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_smbat.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_thermal.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_throttle.c (contents, props changed) projects/physbio/sys/dev/acpica/acpi_timer.c (contents, props changed) projects/physbio/sys/dev/adlink/adlink.c (contents, props changed) projects/physbio/sys/dev/amdsbwd/amdsbwd.c projects/physbio/sys/dev/amdtemp/amdtemp.c (contents, props changed) projects/physbio/sys/dev/ath/if_ath_rx.c projects/physbio/sys/dev/auxio/auxio.c (contents, props changed) projects/physbio/sys/dev/ce/if_ce.c (contents, props changed) projects/physbio/sys/dev/cfi/cfi_bus_fdt.c projects/physbio/sys/dev/cfi/cfi_bus_ixp4xx.c projects/physbio/sys/dev/coretemp/coretemp.c (contents, props changed) projects/physbio/sys/dev/cp/if_cp.c (contents, props changed) projects/physbio/sys/dev/cpufreq/ichss.c (contents, props changed) projects/physbio/sys/dev/ctau/if_ct.c (contents, props changed) projects/physbio/sys/dev/cx/if_cx.c (contents, props changed) projects/physbio/sys/dev/cxgbe/t4_main.c projects/physbio/sys/dev/cxgbe/t4_sge.c projects/physbio/sys/dev/digi/digi_isa.c (contents, props changed) projects/physbio/sys/dev/digi/digi_pci.c (contents, props changed) projects/physbio/sys/dev/e1000/if_em.c (contents, props changed) projects/physbio/sys/dev/e1000/if_igb.c (contents, props changed) projects/physbio/sys/dev/e1000/if_lem.c projects/physbio/sys/dev/ep/if_ep_eisa.c (contents, props changed) projects/physbio/sys/dev/ep/if_ep_isa.c (contents, props changed) projects/physbio/sys/dev/ep/if_ep_mca.c (contents, props changed) projects/physbio/sys/dev/ep/if_ep_pccard.c (contents, props changed) projects/physbio/sys/dev/fdc/fdc_acpi.c (contents, props changed) projects/physbio/sys/dev/iicbus/ad7418.c (contents, props changed) projects/physbio/sys/dev/iicbus/ds133x.c (contents, props changed) projects/physbio/sys/dev/iicbus/ds1672.c (contents, props changed) projects/physbio/sys/dev/iicbus/icee.c (contents, props changed) projects/physbio/sys/dev/ixgb/if_ixgb.c (contents, props changed) projects/physbio/sys/dev/ixgbe/ixgbe.c (contents, props changed) projects/physbio/sys/dev/ixgbe/ixv.c projects/physbio/sys/dev/mfi/mfi_cam.c (contents, props changed) projects/physbio/sys/dev/mn/if_mn.c (contents, props changed) projects/physbio/sys/dev/mxge/if_mxge.c (contents, props changed) projects/physbio/sys/dev/my/if_my.c (contents, props changed) projects/physbio/sys/dev/nvram2env/nvram2env.c (contents, props changed) projects/physbio/sys/dev/nxge/if_nxge.c (contents, props changed) projects/physbio/sys/dev/oce/oce_if.c (contents, props changed) projects/physbio/sys/dev/sdhci/sdhci_pci.c projects/physbio/sys/dev/sound/pci/emu10kx-midi.c (contents, props changed) projects/physbio/sys/dev/sound/pci/emu10kx-pcm.c (contents, props changed) projects/physbio/sys/dev/sound/pci/emu10kx.c (contents, props changed) projects/physbio/sys/dev/sound/sbus/cs4231.c (contents, props changed) projects/physbio/sys/dev/sound/usb/uaudio_pcm.c projects/physbio/sys/dev/usb/controller/at91dci.c projects/physbio/sys/dev/usb/controller/atmegadci.c projects/physbio/sys/dev/usb/controller/avr32dci.c projects/physbio/sys/dev/usb/controller/dwc_otg.c projects/physbio/sys/dev/usb/controller/ehci.c projects/physbio/sys/dev/usb/controller/musb_otg.c projects/physbio/sys/dev/usb/controller/ohci.c projects/physbio/sys/dev/usb/controller/uhci.c projects/physbio/sys/dev/usb/controller/usb_controller.c projects/physbio/sys/dev/usb/controller/uss820dci.c projects/physbio/sys/dev/usb/controller/xhci.c projects/physbio/sys/dev/usb/input/uhid.c projects/physbio/sys/dev/usb/input/ukbd.c projects/physbio/sys/dev/usb/input/ums.c projects/physbio/sys/dev/usb/misc/udbp.c projects/physbio/sys/dev/usb/misc/ufm.c projects/physbio/sys/dev/usb/net/if_cdce.c projects/physbio/sys/dev/usb/net/if_cue.c projects/physbio/sys/dev/usb/net/if_ipheth.c projects/physbio/sys/dev/usb/net/if_kue.c projects/physbio/sys/dev/usb/net/if_smsc.c projects/physbio/sys/dev/usb/storage/umass.c projects/physbio/sys/dev/usb/storage/urio.c projects/physbio/sys/dev/usb/storage/ustorage_fs.c projects/physbio/sys/dev/usb/template/usb_template.c projects/physbio/sys/dev/usb/template/usb_template_audio.c projects/physbio/sys/dev/usb/template/usb_template_cdce.c projects/physbio/sys/dev/usb/template/usb_template_kbd.c projects/physbio/sys/dev/usb/template/usb_template_modem.c projects/physbio/sys/dev/usb/template/usb_template_mouse.c projects/physbio/sys/dev/usb/template/usb_template_msc.c projects/physbio/sys/dev/usb/template/usb_template_mtp.c projects/physbio/sys/dev/usb/ufm_ioctl.h projects/physbio/sys/dev/usb/usb.h projects/physbio/sys/dev/usb/usb_busdma.c projects/physbio/sys/dev/usb/usb_busdma.h projects/physbio/sys/dev/usb/usb_compat_linux.c projects/physbio/sys/dev/usb/usb_core.c projects/physbio/sys/dev/usb/usb_core.h projects/physbio/sys/dev/usb/usb_debug.c projects/physbio/sys/dev/usb/usb_dev.c projects/physbio/sys/dev/usb/usb_dev.h projects/physbio/sys/dev/usb/usb_device.c projects/physbio/sys/dev/usb/usb_dynamic.c projects/physbio/sys/dev/usb/usb_endian.h projects/physbio/sys/dev/usb/usb_error.c projects/physbio/sys/dev/usb/usb_freebsd.h projects/physbio/sys/dev/usb/usb_generic.c projects/physbio/sys/dev/usb/usb_handle_request.c projects/physbio/sys/dev/usb/usb_hid.c projects/physbio/sys/dev/usb/usb_hub.c projects/physbio/sys/dev/usb/usb_ioctl.h projects/physbio/sys/dev/usb/usb_lookup.c projects/physbio/sys/dev/usb/usb_mbuf.c projects/physbio/sys/dev/usb/usb_msctest.c projects/physbio/sys/dev/usb/usb_parse.c projects/physbio/sys/dev/usb/usb_pci.h projects/physbio/sys/dev/usb/usb_pf.c projects/physbio/sys/dev/usb/usb_process.c projects/physbio/sys/dev/usb/usb_process.h projects/physbio/sys/dev/usb/usb_request.c projects/physbio/sys/dev/usb/usb_transfer.c projects/physbio/sys/dev/usb/usb_util.c projects/physbio/sys/dev/usb/usbdi.h projects/physbio/sys/dev/usb/usbhid.h projects/physbio/sys/dev/vx/if_vx_eisa.c (contents, props changed) projects/physbio/sys/dev/vx/if_vx_pci.c (contents, props changed) projects/physbio/sys/dev/vxge/vxge.c (contents, props changed) projects/physbio/sys/dev/xen/console/console.c projects/physbio/sys/i386/linux/linux.h projects/physbio/sys/i386/linux/linux_ptrace.c projects/physbio/sys/i386/linux/linux_sysvec.c projects/physbio/sys/kern/kern_exit.c projects/physbio/sys/net/if_llatbl.c projects/physbio/sys/net/if_llatbl.h projects/physbio/sys/netinet/if_ether.h projects/physbio/sys/netinet/in.c projects/physbio/sys/netinet/libalias/alias.c projects/physbio/sys/netinet/libalias/libalias.3 projects/physbio/sys/sys/param.h projects/physbio/sys/sys/vdso.h projects/physbio/sys/vm/uma_core.c projects/physbio/sys/x86/x86/tsc.c projects/physbio/tools/test/pthread_vfork/pthread_vfork_test.c projects/physbio/usr.bin/patch/Makefile projects/physbio/usr.bin/patch/backupfile.c projects/physbio/usr.bin/patch/backupfile.h projects/physbio/usr.bin/patch/common.h projects/physbio/usr.bin/patch/inp.c projects/physbio/usr.bin/patch/inp.h projects/physbio/usr.bin/patch/mkpath.c projects/physbio/usr.bin/patch/patch.1 projects/physbio/usr.bin/patch/patch.c projects/physbio/usr.bin/patch/pathnames.h projects/physbio/usr.bin/patch/pch.c projects/physbio/usr.bin/patch/pch.h projects/physbio/usr.bin/patch/util.c projects/physbio/usr.bin/patch/util.h projects/physbio/usr.bin/xinstall/xinstall.c projects/physbio/usr.sbin/arp/arp.8 projects/physbio/usr.sbin/arp/arp.c projects/physbio/usr.sbin/bhyve/pci_emul.c projects/physbio/usr.sbin/bhyve/pci_emul.h projects/physbio/usr.sbin/bhyve/pci_virtio_net.c projects/physbio/usr.sbin/bhyve/virtio.h projects/physbio/usr.sbin/ndp/ndp.c projects/physbio/usr.sbin/ppp/arp.c projects/physbio/usr.sbin/rarpd/rarpd.c projects/physbio/usr.sbin/tcpdrop/tcpdrop.8 projects/physbio/usr.sbin/tcpdrop/tcpdrop.c Directory Properties: projects/physbio/ (props changed) projects/physbio/lib/libc/ (props changed) projects/physbio/sbin/ (props changed) projects/physbio/sys/ (props changed) projects/physbio/sys/amd64/vmm/ (props changed) projects/physbio/sys/boot/ (props changed) projects/physbio/usr.sbin/bhyve/ (props changed) Modified: projects/physbio/Makefile.inc1 ============================================================================== --- projects/physbio/Makefile.inc1 Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/Makefile.inc1 Thu Jan 31 21:01:42 2013 (r246159) @@ -185,7 +185,7 @@ OBJTREE= ${MAKEOBJDIRPREFIX}/${TARGET}.$ .endif WORLDTMP= ${OBJTREE}${.CURDIR}/tmp # /usr/games added for fortune which depend on strfile -BPATH= ${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/usr/games +BPATH= ${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/usr/games:${WORLDTMP}/legacy/bin XPATH= ${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WORLDTMP}/usr/games STRICTTMPPATH= ${BPATH}:${XPATH} TMPPATH= ${STRICTTMPPATH}:${PATH} @@ -412,7 +412,7 @@ _worldtmp: rm -f ${OBJTREE}${.CURDIR}/usr.bin/truss/ioctl.c .endif .for _dir in \ - lib usr legacy/usr + lib usr legacy/bin legacy/usr mkdir -p ${WORLDTMP}/${_dir} .endfor mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ @@ -673,8 +673,8 @@ _zoneinfo= zic tzsetup ITOOLS= [ awk cap_mkdb cat chflags chmod chown \ date echo egrep find grep id install ${_install-info} \ - ln lockf make mkdir mtree mv pwd_mkdb rm sed sh sysctl \ - test true uname wc ${_zoneinfo} + ln lockf make mkdir mtree ${_nmtree_itools} mv pwd_mkdb \ + rm sed sh sysctl test true uname wc ${_zoneinfo} # # distributeworld @@ -964,7 +964,7 @@ reinstallkernel reinstallkernel.debug: i @echo "--------------------------------------------------------------" cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \ ${CROSSENV} PATH=${TMPPATH} \ - ${MAKE} KERNEL=${INSTKERNNAME} ${.TARGET:S/kernel//} + ${MAKE} ${IMAKE_INSTALL} KERNEL=${INSTKERNNAME} ${.TARGET:S/kernel//} distributekernel distributekernel.debug: .if empty(INSTALLKERNEL) @@ -1132,6 +1132,12 @@ _yacc= usr.bin/yacc .if ${BOOTSTRAPPING} < 1000026 _nmtree= lib/libnetbsd \ usr.sbin/nmtree +.else +_nmtree_itools= nmtree +.endif + +.if ${BOOTSTRAPPING} < 1000027 +_cat= bin/cat .endif .if ${BOOTSTRAPPING} >= 900040 && ${BOOTSTRAPPING} < 900041 @@ -1189,6 +1195,7 @@ bootstrap-tools: ${_ar} \ ${_dtc} \ ${_awk} \ + ${_cat} \ usr.bin/lorder \ usr.bin/makewhatis \ ${_mklocale} \ Modified: projects/physbio/UPDATING ============================================================================== --- projects/physbio/UPDATING Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/UPDATING Thu Jan 31 21:01:42 2013 (r246159) @@ -31,7 +31,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 as bsdpatch, being the GNU version the default patch. To inverse the logic and use the BSD-licensed one as default, while having the GNU version installed as gnupatch, rebuild - ans install world with the WITH_BSD_PATCH knob set. + and install world with the WITH_BSD_PATCH knob set. 20130118: The install(1) option -M has changed meaning and now takes an Modified: projects/physbio/bin/cat/cat.1 ============================================================================== --- projects/physbio/bin/cat/cat.1 Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/bin/cat/cat.1 Thu Jan 31 21:01:42 2013 (r246159) @@ -32,7 +32,7 @@ .\" @(#)cat.1 8.3 (Berkeley) 5/2/95 .\" $FreeBSD$ .\" -.Dd March 21, 2004 +.Dd January 29, 2013 .Dt CAT 1 .Os .Sh NAME @@ -40,7 +40,7 @@ .Nd concatenate and print files .Sh SYNOPSIS .Nm -.Op Fl benstuv +.Op Fl belnstuv .Op Ar .Sh DESCRIPTION The @@ -79,6 +79,16 @@ Display non-printing characters (see the option), and display a dollar sign .Pq Ql \&$ at the end of each line. +.It Fl l +Set an exclusive advisory lock on the standard output file descriptor. +This lock is set using +.Xr fcntl 2 +with the +.Dv F_SETLKW +command. +If the output file is already locked, +.Nm +will block until the lock is acquired. .It Fl n Number the output lines, starting at 1. .It Fl s @@ -160,6 +170,7 @@ operand. .Xr tail 1 , .Xr vis 1 , .Xr zcat 1 , +.Xr fcntl 2 , .Xr setbuf 3 .Rs .%A Rob Pike @@ -175,7 +186,7 @@ utility is compliant with the specification. .Pp The flags -.Op Fl benstv +.Op Fl belnstv are extensions to the specification. .Sh HISTORY A Modified: projects/physbio/bin/cat/cat.c ============================================================================== --- projects/physbio/bin/cat/cat.c Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/bin/cat/cat.c Thu Jan 31 21:01:42 2013 (r246159) @@ -64,7 +64,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int bflag, eflag, nflag, sflag, tflag, vflag; +static int bflag, eflag, lflag, nflag, sflag, tflag, vflag; static int rval; static const char *filename; @@ -96,10 +96,11 @@ int main(int argc, char *argv[]) { int ch; + struct flock stdout_lock; setlocale(LC_CTYPE, ""); - while ((ch = getopt(argc, argv, "benstuv")) != -1) + while ((ch = getopt(argc, argv, "belnstuv")) != -1) switch (ch) { case 'b': bflag = nflag = 1; /* -b implies -n */ @@ -107,6 +108,9 @@ main(int argc, char *argv[]) case 'e': eflag = vflag = 1; /* -e implies -v */ break; + case 'l': + lflag = 1; + break; case 'n': nflag = 1; break; @@ -127,6 +131,15 @@ main(int argc, char *argv[]) } argv += optind; + if (lflag) { + stdout_lock.l_len = 0; + stdout_lock.l_start = 0; + stdout_lock.l_type = F_WRLCK; + stdout_lock.l_whence = SEEK_SET; + if (fcntl(STDOUT_FILENO, F_SETLKW, &stdout_lock) == -1) + err(EXIT_FAILURE, "stdout"); + } + if (bflag || eflag || nflag || sflag || tflag || vflag) scanfiles(argv, 1); else @@ -140,7 +153,7 @@ main(int argc, char *argv[]) static void usage(void) { - fprintf(stderr, "usage: cat [-benstuv] [file ...]\n"); + fprintf(stderr, "usage: cat [-belnstuv] [file ...]\n"); exit(1); /* NOTREACHED */ } Modified: projects/physbio/contrib/ipfilter/ipsend/44arp.c ============================================================================== --- projects/physbio/contrib/ipfilter/ipsend/44arp.c Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/contrib/ipfilter/ipsend/44arp.c Thu Jan 31 21:01:42 2013 (r246159) @@ -72,7 +72,7 @@ char *addr, *eaddr; size_t needed; char *lim, *buf, *next; struct rt_msghdr *rtm; - struct sockaddr_inarp *sin; + struct sockaddr_in *sin; struct sockaddr_dl *sdl; #ifdef IPSEND @@ -113,7 +113,7 @@ char *addr, *eaddr; for (next = buf; next < lim; next += rtm->rtm_msglen) { rtm = (struct rt_msghdr *)next; - sin = (struct sockaddr_inarp *)(rtm + 1); + sin = (struct sockaddr_in *)(rtm + 1); sdl = (struct sockaddr_dl *)(sin + 1); if (!bcmp(addr, (char *)&sin->sin_addr, sizeof(struct in_addr))) Modified: projects/physbio/etc/Makefile ============================================================================== --- projects/physbio/etc/Makefile Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/etc/Makefile Thu Jan 31 21:01:42 2013 (r246159) @@ -180,6 +180,10 @@ CAP_MKDB_ENDIAN?= PWD_MKDB_ENDIAN?= .endif +.if defined(NO_ROOT) +METALOG.add?= cat -l >> ${METALOG} +.endif + distribution: .if !defined(DESTDIR) @echo "set DESTDIR before running \"make ${.TARGET}\"" @@ -201,6 +205,14 @@ distribution: .endif pwd_mkdb ${PWD_MKDB_ENDIAN} -i -p -d ${DESTDIR}/etc \ ${DESTDIR}/etc/master.passwd +.if defined(NO_ROOT) + ( \ + echo "./etc/login.conf.db type=file mode=0644 uname=root gname=wheel"; \ + echo "./etc/passwd type=file mode=0644 uname=root gname=wheel"; \ + echo "./etc/pwd.db type=file mode=0644 uname=root gname=wheel"; \ + echo "./etc/spwd.db type=file mode=0600 uname=root gname=wheel"; \ + ) | ${METALOG.add} +.endif .if ${MK_ATF} != "no" ${_+_}cd ${.CURDIR}/atf; ${MAKE} install .endif @@ -336,9 +348,10 @@ distrib-dirs: test "$$d" == "/" && d=""; \ d=${DISTBASE}$$d; \ shift; \ - ${ECHO} "${MTREE_CMD} -C -f $$m | sed s#^\.#.$$d# >>" \ - "${METALOG}" ; \ - ${MTREE_CMD} -C -f $$m | sed s#^\.#.$$d# >> ${METALOG} ; \ + ${ECHO} "${MTREE_CMD:N-W} -C -f $$m -K uname,gname | " \ + "sed s#^\.#.$$d# | ${METALOG.add}" ; \ + ${MTREE_CMD:N-W} -C -f $$m -K uname,gname | sed s#^\.#.$$d# | \ + ${METALOG.add} ; \ done; true .endif ${INSTALL_SYMLINK} usr/src/sys ${DESTDIR}/sys Modified: projects/physbio/include/stdio.h ============================================================================== --- projects/physbio/include/stdio.h Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/include/stdio.h Thu Jan 31 21:01:42 2013 (r246159) @@ -343,6 +343,7 @@ char *tempnam(const char *, const char * #endif #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 +FILE *fmemopen(void * __restrict, size_t, const char * __restrict); ssize_t getdelim(char ** __restrict, size_t * __restrict, int, FILE * __restrict); int renameat(int, const char *, int, const char *); Modified: projects/physbio/lib/libc/amd64/sys/__vdso_gettc.c ============================================================================== --- projects/physbio/lib/libc/amd64/sys/__vdso_gettc.c Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/amd64/sys/__vdso_gettc.c Thu Jan 31 21:01:42 2013 (r246159) @@ -27,9 +27,11 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include +#include "libc_private.h" static u_int __vdso_gettc_low(const struct vdso_timehands *th) @@ -41,9 +43,18 @@ __vdso_gettc_low(const struct vdso_timeh return (rv); } +#pragma weak __vdso_gettc u_int __vdso_gettc(const struct vdso_timehands *th) { return (th->th_x86_shift > 0 ? __vdso_gettc_low(th) : rdtsc32()); } + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (_elf_aux_info(AT_TIMEKEEP, tk, sizeof(*tk))); +} Modified: projects/physbio/lib/libc/arm/sys/Makefile.inc ============================================================================== --- projects/physbio/lib/libc/arm/sys/Makefile.inc Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/arm/sys/Makefile.inc Thu Jan 31 21:01:42 2013 (r246159) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + MDASM= Ovfork.S brk.S cerror.S pipe.S ptrace.S sbrk.S shmat.S sigreturn.S syscall.S # Don't generate default code for these syscalls: Copied: projects/physbio/lib/libc/arm/sys/__vdso_gettc.c (from r246158, head/lib/libc/arm/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/lib/libc/arm/sys/__vdso_gettc.c Thu Jan 31 21:01:42 2013 (r246159, copy of r246158, head/lib/libc/arm/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/physbio/lib/libc/i386/sys/__vdso_gettc.c ============================================================================== --- projects/physbio/lib/libc/i386/sys/__vdso_gettc.c Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/i386/sys/__vdso_gettc.c Thu Jan 31 21:01:42 2013 (r246159) @@ -27,9 +27,11 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include +#include "libc_private.h" static u_int __vdso_gettc_low(const struct vdso_timehands *th) @@ -48,3 +50,11 @@ __vdso_gettc(const struct vdso_timehands return (th->th_x86_shift > 0 ? __vdso_gettc_low(th) : rdtsc32()); } + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (_elf_aux_info(AT_TIMEKEEP, tk, sizeof(*tk))); +} Modified: projects/physbio/lib/libc/ia64/sys/Makefile.inc ============================================================================== --- projects/physbio/lib/libc/ia64/sys/Makefile.inc Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/ia64/sys/Makefile.inc Thu Jan 31 21:01:42 2013 (r246159) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + MDASM+= Ovfork.S brk.S cerror.S exect.S fork.S getcontext.S pipe.S ptrace.S \ sbrk.S setlogin.S sigreturn.S swapcontext.S Copied: projects/physbio/lib/libc/ia64/sys/__vdso_gettc.c (from r246158, head/lib/libc/ia64/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/lib/libc/ia64/sys/__vdso_gettc.c Thu Jan 31 21:01:42 2013 (r246159, copy of r246158, head/lib/libc/ia64/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/physbio/lib/libc/mips/sys/Makefile.inc ============================================================================== --- projects/physbio/lib/libc/mips/sys/Makefile.inc Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/mips/sys/Makefile.inc Thu Jan 31 21:01:42 2013 (r246159) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + MDASM= Ovfork.S brk.S cerror.S exect.S \ fork.S pipe.S ptrace.S sbrk.S syscall.S Copied: projects/physbio/lib/libc/mips/sys/__vdso_gettc.c (from r246158, head/lib/libc/mips/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/lib/libc/mips/sys/__vdso_gettc.c Thu Jan 31 21:01:42 2013 (r246159, copy of r246158, head/lib/libc/mips/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/physbio/lib/libc/powerpc/Makefile.inc ============================================================================== --- projects/physbio/lib/libc/powerpc/Makefile.inc Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/powerpc/Makefile.inc Thu Jan 31 21:01:42 2013 (r246159) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + # Long double is 64-bits MDSRCS+=machdep_ldisd.c SYM_MAPS+=${.CURDIR}/powerpc/Symbol.map Copied: projects/physbio/lib/libc/powerpc/sys/__vdso_gettc.c (from r246158, head/lib/libc/powerpc/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/lib/libc/powerpc/sys/__vdso_gettc.c Thu Jan 31 21:01:42 2013 (r246159, copy of r246158, head/lib/libc/powerpc/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/physbio/lib/libc/powerpc64/Makefile.inc ============================================================================== --- projects/physbio/lib/libc/powerpc64/Makefile.inc Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/powerpc64/Makefile.inc Thu Jan 31 21:01:42 2013 (r246159) @@ -1,5 +1,7 @@ # $FreeBSD$ +SRCS+= __vdso_gettc.c + # Long double is 64-bits MDSRCS+=machdep_ldisd.c SYM_MAPS+=${.CURDIR}/powerpc64/Symbol.map Copied: projects/physbio/lib/libc/powerpc64/sys/__vdso_gettc.c (from r246158, head/lib/libc/powerpc64/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/lib/libc/powerpc64/sys/__vdso_gettc.c Thu Jan 31 21:01:42 2013 (r246159, copy of r246158, head/lib/libc/powerpc64/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/physbio/lib/libc/sparc64/Makefile.inc ============================================================================== --- projects/physbio/lib/libc/sparc64/Makefile.inc Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/sparc64/Makefile.inc Thu Jan 31 21:01:42 2013 (r246159) @@ -5,6 +5,8 @@ .include "fpu/Makefile.inc" +SRCS+= __vdso_gettc.c + # Long double is quad precision GDTOASRCS+=strtorQ.c MDSRCS+=machdep_ldisQ.c Copied: projects/physbio/lib/libc/sparc64/sys/__vdso_gettc.c (from r246158, head/lib/libc/sparc64/sys/__vdso_gettc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/lib/libc/sparc64/sys/__vdso_gettc.c Thu Jan 31 21:01:42 2013 (r246159, copy of r246158, head/lib/libc/sparc64/sys/__vdso_gettc.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Konstantin Belousov + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#pragma weak __vdso_gettc +u_int +__vdso_gettc(const struct vdso_timehands *th) +{ + + return (0); +} + +#pragma weak __vdso_gettimekeep +int +__vdso_gettimekeep(struct vdso_timekeep **tk) +{ + + return (ENOSYS); +} Modified: projects/physbio/lib/libc/stdio/Makefile.inc ============================================================================== --- projects/physbio/lib/libc/stdio/Makefile.inc Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/stdio/Makefile.inc Thu Jan 31 21:01:42 2013 (r246159) @@ -8,7 +8,8 @@ SRCS+= _flock_stub.c asprintf.c clrerr.c fclose.c fcloseall.c fdopen.c \ feof.c ferror.c fflush.c fgetc.c fgetln.c fgetpos.c fgets.c fgetwc.c \ fgetwln.c fgetws.c \ - fileno.c findfp.c flags.c fopen.c fprintf.c fpurge.c fputc.c fputs.c \ + fileno.c findfp.c flags.c fmemopen.c fopen.c fprintf.c fpurge.c \ + fputc.c fputs.c \ fputwc.c fputws.c fread.c freopen.c fscanf.c fseek.c fsetpos.c \ ftell.c funopen.c fvwrite.c fwalk.c fwide.c fwprintf.c fwscanf.c \ fwrite.c getc.c getchar.c getdelim.c getline.c \ @@ -48,7 +49,7 @@ MLINKS+=ferror.3 ferror_unlocked.3 \ MLINKS+=fflush.3 fpurge.3 MLINKS+=fgets.3 gets.3 MLINKS+=flockfile.3 ftrylockfile.3 flockfile.3 funlockfile.3 -MLINKS+=fopen.3 fdopen.3 fopen.3 freopen.3 +MLINKS+=fopen.3 fdopen.3 fopen.3 freopen.3 fopen.3 fmemopen.3 MLINKS+=fputs.3 puts.3 MLINKS+=fread.3 fwrite.3 MLINKS+=fseek.3 fgetpos.3 fseek.3 fseeko.3 fseek.3 fsetpos.3 fseek.3 ftell.3 \ Modified: projects/physbio/lib/libc/stdio/Symbol.map ============================================================================== --- projects/physbio/lib/libc/stdio/Symbol.map Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/stdio/Symbol.map Thu Jan 31 21:01:42 2013 (r246159) @@ -155,6 +155,7 @@ FBSD_1.3 { getwchar_l; putwc_l; putwchar_l; + fmemopen; }; FBSDprivate_1.0 { Copied: projects/physbio/lib/libc/stdio/fmemopen.c (from r246158, head/lib/libc/stdio/fmemopen.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/physbio/lib/libc/stdio/fmemopen.c Thu Jan 31 21:01:42 2013 (r246159, copy of r246158, head/lib/libc/stdio/fmemopen.c) @@ -0,0 +1,259 @@ +/*- +Copyright (C) 2013 Pietro Cerutti + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +*/ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include "local.h" + +struct fmemopen_cookie +{ + char *buf; /* pointer to the memory region */ + char own; /* did we allocate the buffer ourselves? */ + char bin; /* is this a binary buffer? */ + size_t size; /* buffer length in bytes */ + size_t len; /* data length in bytes */ + size_t off; /* current offset into the buffer */ +}; + +static int fmemopen_read (void *cookie, char *buf, int nbytes); +static int fmemopen_write (void *cookie, const char *buf, int nbytes); +static fpos_t fmemopen_seek (void *cookie, fpos_t offset, int whence); +static int fmemopen_close (void *cookie); + +FILE * +fmemopen (void * __restrict buf, size_t size, const char * __restrict mode) +{ + struct fmemopen_cookie *ck; + FILE *f; + int flags, rc; + + /* + * Retrieve the flags as used by open(2) from the mode argument, and + * validate them. + * */ + rc = __sflags (mode, &flags); + if (rc == 0) { + errno = EINVAL; + return (NULL); + } + + /* + * There's no point in requiring an automatically allocated buffer + * in write-only mode. + */ + if (!(flags & O_RDWR) && buf == NULL) { + errno = EINVAL; + return (NULL); + } + + /* Allocate a cookie. */ + ck = malloc (sizeof (struct fmemopen_cookie)); + if (ck == NULL) { + return (NULL); + } + + ck->off = 0; + ck->size = size; + + /* Check whether we have to allocate the buffer ourselves. */ + ck->own = ((ck->buf = buf) == NULL); + if (ck->own) { + ck->buf = malloc (size); + if (ck->buf == NULL) { + free (ck); + return (NULL); + } + } + + /* + * POSIX distinguishes between w+ and r+, in that w+ is supposed to + * truncate the buffer. + */ + if (ck->own || mode[0] == 'w') { + ck->buf[0] = '\0'; + } + + /* Check for binary mode. */ + ck->bin = strchr(mode, 'b') != NULL; + + /* + * The size of the current buffer contents is set depending on the + * mode: + * + * for append (text-mode), the position of the first NULL byte, or the + * size of the buffer if none is found + * + * for append (binary-mode), the size of the buffer + * + * for read, the size of the buffer + * + * for write, 0 + */ + switch (mode[0]) { + case 'a': + if (ck->bin) { + /* + * This isn't useful, since the buffer isn't + * allowed to grow. + */ + ck->off = ck->len = size; + } else + ck->off = ck->len = strnlen(ck->buf, ck->size); + break; + case 'r': + ck->len = size; + break; + case 'w': + ck->len = 0; + break; + } + + /* Actuall wrapper. */ + f = funopen ((void *)ck, + flags & O_WRONLY ? NULL : fmemopen_read, + flags & O_RDONLY ? NULL : fmemopen_write, + fmemopen_seek, fmemopen_close); + + if (f == NULL) { + if (ck->own) + free (ck->buf); + free (ck); + return (NULL); + } + + /* + * Turn off buffering, so a write past the end of the buffer + * correctly returns a short object count. + */ + setvbuf (f, (char *) NULL, _IONBF, 0); + + return (f); +} + +static int +fmemopen_read (void *cookie, char *buf, int nbytes) +{ + struct fmemopen_cookie *ck = cookie; + + if (nbytes > ck->len - ck->off) + nbytes = ck->len - ck->off; + + if (nbytes == 0) + return (0); + + memcpy (buf, ck->buf + ck->off, nbytes); + + ck->off += nbytes; + + return (nbytes); +} + +static int +fmemopen_write (void *cookie, const char *buf, int nbytes) +{ + struct fmemopen_cookie *ck = cookie; + + if (nbytes > ck->size - ck->off) + nbytes = ck->size - ck->off; + + if (nbytes == 0) + return (0); + + memcpy (ck->buf + ck->off, buf, nbytes); + + ck->off += nbytes; + + if (ck->off > ck->len) + ck->len = ck->off; + + /* + * We append a NULL byte if all these conditions are met: + * - the buffer is not binary + * - the buffer is not full + * - the data just written doesn't already end with a NULL byte + */ + if (!ck->bin && ck->off < ck->size && ck->buf[ck->off - 1] != '\0') + ck->buf[ck->off] = '\0'; + + return (nbytes); +} + +static fpos_t +fmemopen_seek (void *cookie, fpos_t offset, int whence) +{ + struct fmemopen_cookie *ck = cookie; + + + switch (whence) { + case SEEK_SET: + if (offset > ck->size) { + errno = EINVAL; + return (-1); + } + ck->off = offset; + break; + + case SEEK_CUR: + if (ck->off + offset > ck->size) { + errno = EINVAL; + return (-1); + } + ck->off += offset; + break; + + case SEEK_END: + if (offset > 0 || -offset > ck->len) { + errno = EINVAL; + return (-1); + } + ck->off = ck->len + offset; + break; + + default: + errno = EINVAL; + return (-1); + } + + return (ck->off); +} + +static int +fmemopen_close (void *cookie) +{ + struct fmemopen_cookie *ck = cookie; + + if (ck->own) + free (ck->buf); + + free (ck); + + return (0); +} Modified: projects/physbio/lib/libc/stdio/fopen.3 ============================================================================== --- projects/physbio/lib/libc/stdio/fopen.3 Thu Jan 31 20:53:31 2013 (r246158) +++ projects/physbio/lib/libc/stdio/fopen.3 Thu Jan 31 21:01:42 2013 (r246159) @@ -32,13 +32,14 @@ .\" @(#)fopen.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd November 30, 2012 +.Dd January 30, 2013 .Dt FOPEN 3 .Os .Sh NAME .Nm fopen , .Nm fdopen , -.Nm freopen +.Nm freopen , +.Nm fmemopen .Nd stream open functions .Sh LIBRARY .Lb libc @@ -50,6 +51,8 @@ .Fn fdopen "int fildes" "const char *mode" .Ft FILE * .Fn freopen "const char *path" "const char *mode" "FILE *stream" +.Ft FILE * *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Feb 1 09:48:02 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 86529FED; Fri, 1 Feb 2013 09:48:02 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 76F5B7ED; Fri, 1 Feb 2013 09:48:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r119m2jt056267; Fri, 1 Feb 2013 09:48:02 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r119m2GD056266; Fri, 1 Feb 2013 09:48:02 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201302010948.r119m2GD056266@svn.freebsd.org> From: Konstantin Belousov Date: Fri, 1 Feb 2013 09:48:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246201 - projects/physbio/sys/kern X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Feb 2013 09:48:02 -0000 Author: kib Date: Fri Feb 1 09:48:01 2013 New Revision: 246201 URL: http://svnweb.freebsd.org/changeset/base/246201 Log: Fix the direction of the copying. Modified: projects/physbio/sys/kern/subr_uio.c Modified: projects/physbio/sys/kern/subr_uio.c ============================================================================== --- projects/physbio/sys/kern/subr_uio.c Fri Feb 1 07:48:13 2013 (r246200) +++ projects/physbio/sys/kern/subr_uio.c Fri Feb 1 09:48:01 2013 (r246201) @@ -190,7 +190,7 @@ physcopyout(vm_paddr_t src, void *dst, s uio.uio_offset = 0; uio.uio_resid = len; uio.uio_segflg = UIO_SYSSPACE; - uio.uio_rw = UIO_WRITE; + uio.uio_rw = UIO_READ; for (i = 0; i < PHYS_PAGE_COUNT(len); i++, src += PAGE_SIZE) m[i] = PHYS_TO_VM_PAGE(src); return uiomove_fromphys(m, src & PAGE_MASK, len, &uio); From owner-svn-src-projects@FreeBSD.ORG Fri Feb 1 09:48:44 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 0D3481CE; Fri, 1 Feb 2013 09:48:44 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id F32827F2; Fri, 1 Feb 2013 09:48:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r119mhTT056424; Fri, 1 Feb 2013 09:48:43 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r119mhlI056423; Fri, 1 Feb 2013 09:48:43 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201302010948.r119mhlI056423@svn.freebsd.org> From: Konstantin Belousov Date: Fri, 1 Feb 2013 09:48:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246202 - projects/physbio/sys/kern X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Feb 2013 09:48:44 -0000 Author: kib Date: Fri Feb 1 09:48:43 2013 New Revision: 246202 URL: http://svnweb.freebsd.org/changeset/base/246202 Log: Style. Modified: projects/physbio/sys/kern/subr_uio.c Modified: projects/physbio/sys/kern/subr_uio.c ============================================================================== --- projects/physbio/sys/kern/subr_uio.c Fri Feb 1 09:48:01 2013 (r246201) +++ projects/physbio/sys/kern/subr_uio.c Fri Feb 1 09:48:43 2013 (r246202) @@ -172,7 +172,7 @@ physcopyin(void *src, vm_paddr_t dst, si uio.uio_rw = UIO_WRITE; for (i = 0; i < PHYS_PAGE_COUNT(len); i++, dst += PAGE_SIZE) m[i] = PHYS_TO_VM_PAGE(dst); - return uiomove_fromphys(m, dst & PAGE_MASK, len, &uio); + return (uiomove_fromphys(m, dst & PAGE_MASK, len, &uio)); } int @@ -193,7 +193,7 @@ physcopyout(vm_paddr_t src, void *dst, s uio.uio_rw = UIO_READ; for (i = 0; i < PHYS_PAGE_COUNT(len); i++, src += PAGE_SIZE) m[i] = PHYS_TO_VM_PAGE(src); - return uiomove_fromphys(m, src & PAGE_MASK, len, &uio); + return (uiomove_fromphys(m, src & PAGE_MASK, len, &uio)); } #undef PHYS_PAGE_COUNT From owner-svn-src-projects@FreeBSD.ORG Fri Feb 1 10:00:22 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 8EA43517; Fri, 1 Feb 2013 10:00:22 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 6915388C; Fri, 1 Feb 2013 10:00:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r11A0LMn060538; Fri, 1 Feb 2013 10:00:21 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r11A0LiY060434; Fri, 1 Feb 2013 10:00:21 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201302011000.r11A0LiY060434@svn.freebsd.org> From: Konstantin Belousov Date: Fri, 1 Feb 2013 10:00:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246203 - in projects/physbio/sys: arm/arm kern sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Feb 2013 10:00:22 -0000 Author: kib Date: Fri Feb 1 10:00:21 2013 New Revision: 246203 URL: http://svnweb.freebsd.org/changeset/base/246203 Log: ARM developers do not want the flushes of the partial cache lines surrounding DMAed data area for mbuf. Inform _bus_dmamap_load_buffer() that the current load is for mbuf, and make the bus_dmamap_sync_buf() to behave as if the buffer was aligned. Modified: projects/physbio/sys/arm/arm/busdma_machdep.c projects/physbio/sys/kern/subr_bus_dma.c projects/physbio/sys/sys/bus_dma.h Modified: projects/physbio/sys/arm/arm/busdma_machdep.c ============================================================================== --- projects/physbio/sys/arm/arm/busdma_machdep.c Fri Feb 1 09:48:43 2013 (r246202) +++ projects/physbio/sys/arm/arm/busdma_machdep.c Fri Feb 1 10:00:21 2013 (r246203) @@ -1010,6 +1010,8 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dm if (segs == NULL) segs = dmat->segments; + if ((flags & BUS_DMA_LOAD_MBUF) != 0) + map->flags |= DMAMAP_CACHE_ALIGNED; if ((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) { _bus_dmamap_count_pages(dmat, map, pmap, buf, buflen, flags); Modified: projects/physbio/sys/kern/subr_bus_dma.c ============================================================================== --- projects/physbio/sys/kern/subr_bus_dma.c Fri Feb 1 09:48:43 2013 (r246202) +++ projects/physbio/sys/kern/subr_bus_dma.c Fri Feb 1 10:00:21 2013 (r246203) @@ -110,7 +110,8 @@ _bus_dmamap_load_mbuf_sg(bus_dma_tag_t d for (m = m0; m != NULL && error == 0; m = m->m_next) { if (m->m_len > 0) { error = _bus_dmamap_load_buffer(dmat, map, m->m_data, - m->m_len, kernel_pmap, flags, segs, nsegs); + m->m_len, kernel_pmap, flags | BUS_DMA_LOAD_MBUF, + segs, nsegs); } } CTR5(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d nsegs %d", Modified: projects/physbio/sys/sys/bus_dma.h ============================================================================== --- projects/physbio/sys/sys/bus_dma.h Fri Feb 1 09:48:43 2013 (r246202) +++ projects/physbio/sys/sys/bus_dma.h Fri Feb 1 10:00:21 2013 (r246203) @@ -109,6 +109,8 @@ */ #define BUS_DMA_KEEP_PG_OFFSET 0x400 +#define BUS_DMA_LOAD_MBUF 0x800 + /* Forwards needed by prototypes below. */ union ccb; struct bio; From owner-svn-src-projects@FreeBSD.ORG Sat Feb 2 09:05:37 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 8DD55D96; Sat, 2 Feb 2013 09:05:37 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 805FA723; Sat, 2 Feb 2013 09:05:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r1295bBT079937; Sat, 2 Feb 2013 09:05:37 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r1295bks079936; Sat, 2 Feb 2013 09:05:37 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201302020905.r1295bks079936@svn.freebsd.org> From: Benno Rice Date: Sat, 2 Feb 2013 09:05:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246230 - projects/uefi/sys/boot/i386/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Feb 2013 09:05:37 -0000 Author: benno Date: Sat Feb 2 09:05:36 2013 New Revision: 246230 URL: http://svnweb.freebsd.org/changeset/base/246230 Log: Put in our own machine include links so we don't get polluted. Sponsored by: FreeBSD Foundation Modified: projects/uefi/sys/boot/i386/efi/Makefile Modified: projects/uefi/sys/boot/i386/efi/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/efi/Makefile Sat Feb 2 06:06:39 2013 (r246229) +++ projects/uefi/sys/boot/i386/efi/Makefile Sat Feb 2 09:05:36 2013 (r246230) @@ -17,6 +17,7 @@ SRCS+= i386_copy.c bootinfo.c autoload.c SRCS+= start.S CFLAGS+= -fPIC +CFLAGS+= -I. CFLAGS+= -I${.CURDIR}/../../efi/include CFLAGS+= -I${.CURDIR}/../../efi/include/i386 @@ -82,3 +83,11 @@ DPADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND} LDADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND} .include + + +.if ${MACHINE_CPUARCH} == "amd64" +beforedepend ${OBJS}: machine +CLEANFILES+= machine +machine: + ln -sf ${.CURDIR}/../../../amd64/include machine +.endif From owner-svn-src-projects@FreeBSD.ORG Sat Feb 2 09:12:08 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9F725F1; Sat, 2 Feb 2013 09:12:08 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 8C74B762; Sat, 2 Feb 2013 09:12:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r129C8mk082638; Sat, 2 Feb 2013 09:12:08 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r129C7cN082633; Sat, 2 Feb 2013 09:12:07 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201302020912.r129C7cN082633@svn.freebsd.org> From: Benno Rice Date: Sat, 2 Feb 2013 09:12:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246231 - projects/uefi/sys/boot/i386/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Feb 2013 09:12:08 -0000 Author: benno Date: Sat Feb 2 09:12:07 2013 New Revision: 246231 URL: http://svnweb.freebsd.org/changeset/base/246231 Log: Add necessary code to hand off from loader to an amd64 kernel. This does not properly shutdown the UEFI environment but we do end up in kernel where we promptly panic due to not having any SMAP information or anything equivalent. Sponsored by: FreeBSD Foundation Added: projects/uefi/sys/boot/i386/efi/bootinfo64.c projects/uefi/sys/boot/i386/efi/elf64_freebsd.c Modified: projects/uefi/sys/boot/i386/efi/conf.c projects/uefi/sys/boot/i386/efi/elf32_freebsd.c Added: projects/uefi/sys/boot/i386/efi/bootinfo64.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/sys/boot/i386/efi/bootinfo64.c Sat Feb 2 09:12:07 2013 (r246231) @@ -0,0 +1,209 @@ +/*- + * Copyright (c) 1998 Michael Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include "bootstrap.h" +#include "libi386.h" +#include "btxv86.h" + +/* + * Copy module-related data into the load area, where it can be + * used as a directory for loaded modules. + * + * Module data is presented in a self-describing format. Each datum + * is preceded by a 32-bit identifier and a 32-bit size field. + * + * Currently, the following data are saved: + * + * MOD_NAME (variable) module name (string) + * MOD_TYPE (variable) module type (string) + * MOD_ARGS (variable) module parameters (string) + * MOD_ADDR sizeof(vm_offset_t) module load address + * MOD_SIZE sizeof(size_t) module size + * MOD_METADATA (variable) type-specific metadata + */ +#define COPY32(v, a, c) { \ + u_int32_t x = (v); \ + if (c) \ + i386_copyin(&x, a, sizeof(x)); \ + a += sizeof(x); \ +} + +#define MOD_STR(t, a, s, c) { \ + COPY32(t, a, c); \ + COPY32(strlen(s) + 1, a, c); \ + if (c) \ + i386_copyin(s, a, strlen(s) + 1); \ + a += roundup(strlen(s) + 1, sizeof(u_int64_t));\ +} + +#define MOD_NAME(a, s, c) MOD_STR(MODINFO_NAME, a, s, c) +#define MOD_TYPE(a, s, c) MOD_STR(MODINFO_TYPE, a, s, c) +#define MOD_ARGS(a, s, c) MOD_STR(MODINFO_ARGS, a, s, c) + +#define MOD_VAR(t, a, s, c) { \ + COPY32(t, a, c); \ + COPY32(sizeof(s), a, c); \ + if (c) \ + i386_copyin(&s, a, sizeof(s)); \ + a += roundup(sizeof(s), sizeof(u_int64_t)); \ +} + +#define MOD_ADDR(a, s, c) MOD_VAR(MODINFO_ADDR, a, s, c) +#define MOD_SIZE(a, s, c) MOD_VAR(MODINFO_SIZE, a, s, c) + +#define MOD_METADATA(a, mm, c) { \ + COPY32(MODINFO_METADATA | mm->md_type, a, c); \ + COPY32(mm->md_size, a, c); \ + if (c) \ + i386_copyin(mm->md_data, a, mm->md_size); \ + a += roundup(mm->md_size, sizeof(u_int64_t));\ +} + +#define MOD_END(a, c) { \ + COPY32(MODINFO_END, a, c); \ + COPY32(0, a, c); \ +} + +static vm_offset_t +bi_copymodules64(vm_offset_t addr) +{ + struct preloaded_file *fp; + struct file_metadata *md; + int c; + u_int64_t v; + + c = addr != 0; + /* start with the first module on the list, should be the kernel */ + for (fp = file_findfile(NULL, NULL); fp != NULL; fp = fp->f_next) { + + MOD_NAME(addr, fp->f_name, c); /* this field must come first */ + MOD_TYPE(addr, fp->f_type, c); + if (fp->f_args) + MOD_ARGS(addr, fp->f_args, c); + v = fp->f_addr; + MOD_ADDR(addr, v, c); + v = fp->f_size; + MOD_SIZE(addr, v, c); + for (md = fp->f_metadata; md != NULL; md = md->md_next) + if (!(md->md_type & MODINFOMD_NOCOPY)) + MOD_METADATA(addr, md, c); + } + MOD_END(addr, c); + return(addr); +} + +/* + * Load the information expected by an amd64 kernel. + * + * - The 'boothowto' argument is constructed + * - The 'bootdev' argument is constructed + * - The 'bootinfo' struct is constructed, and copied into the kernel space. + * - The kernel environment is copied into kernel space. + * - Module metadata are formatted and placed in kernel space. + */ +int +bi_load64(char *args, vm_offset_t *modulep, vm_offset_t *kernendp) +{ + struct preloaded_file *xp, *kfp; + struct i386_devdesc *rootdev; + struct file_metadata *md; + vm_offset_t addr; + u_int64_t kernend; + u_int64_t envp; + vm_offset_t size; + char *rootdevname; + int howto; + + howto = bi_getboothowto(args); + + /* + * Allow the environment variable 'rootdev' to override the supplied device + * This should perhaps go to MI code and/or have $rootdev tested/set by + * MI code before launching the kernel. + */ + rootdevname = getenv("rootdev"); + i386_getdev((void **)(&rootdev), rootdevname, NULL); + if (rootdev == NULL) { /* bad $rootdev/$currdev */ + printf("can't determine root device\n"); + return(EINVAL); + } + + /* Try reading the /etc/fstab file to select the root device */ + getrootmount(i386_fmtdev((void *)rootdev)); + + /* find the last module in the chain */ + addr = 0; + for (xp = file_findfile(NULL, NULL); xp != NULL; xp = xp->f_next) { + if (addr < (xp->f_addr + xp->f_size)) + addr = xp->f_addr + xp->f_size; + } + /* pad to a page boundary */ + addr = roundup(addr, PAGE_SIZE); + + /* copy our environment */ + envp = addr; + addr = bi_copyenv(addr); + + /* pad to a page boundary */ + addr = roundup(addr, PAGE_SIZE); + + kfp = file_findfile(NULL, "elf kernel"); + if (kfp == NULL) + kfp = file_findfile(NULL, "elf64 kernel"); + if (kfp == NULL) + panic("can't find kernel file"); + kernend = 0; /* fill it in later */ + file_addmetadata(kfp, MODINFOMD_HOWTO, sizeof howto, &howto); + file_addmetadata(kfp, MODINFOMD_ENVP, sizeof envp, &envp); + file_addmetadata(kfp, MODINFOMD_KERNEND, sizeof kernend, &kernend); + /*bios_addsmapdata(kfp);*/ + + /* Figure out the size and location of the metadata */ + *modulep = addr; + size = bi_copymodules64(0); + kernend = roundup(addr + size, PAGE_SIZE); + *kernendp = kernend; + + /* patch MODINFOMD_KERNEND */ + md = file_findmetadata(kfp, MODINFOMD_KERNEND); + bcopy(&kernend, md->md_data, sizeof kernend); + + /* copy module list and metadata */ + (void)bi_copymodules64(addr); + + return(0); +} Modified: projects/uefi/sys/boot/i386/efi/conf.c ============================================================================== --- projects/uefi/sys/boot/i386/efi/conf.c Sat Feb 2 09:05:36 2013 (r246230) +++ projects/uefi/sys/boot/i386/efi/conf.c Sat Feb 2 09:12:07 2013 (r246231) @@ -52,18 +52,14 @@ struct netif_driver *netif_drivers[] = { NULL }; -#ifdef notyet extern struct file_format amd64_elf; extern struct file_format amd64_elf_obj; -#endif extern struct file_format i386_elf; extern struct file_format i386_elf_obj; struct file_format *file_formats[] = { -#ifdef notyet &amd64_elf, &amd64_elf_obj, -#endif &i386_elf, &i386_elf_obj, NULL Modified: projects/uefi/sys/boot/i386/efi/elf32_freebsd.c ============================================================================== --- projects/uefi/sys/boot/i386/efi/elf32_freebsd.c Sat Feb 2 09:05:36 2013 (r246230) +++ projects/uefi/sys/boot/i386/efi/elf32_freebsd.c Sat Feb 2 09:12:07 2013 (r246231) @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#define __ELF_WORD_SIZE 32 + #include #include #include Added: projects/uefi/sys/boot/i386/efi/elf64_freebsd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/uefi/sys/boot/i386/efi/elf64_freebsd.c Sat Feb 2 09:12:07 2013 (r246231) @@ -0,0 +1,143 @@ +/*- + * Copyright (c) 1998 Michael Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#define __ELF_WORD_SIZE 64 +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "bootstrap.h" +#include "../libi386/libi386.h" +#include "../btx/lib/btxv86.h" + +extern int bi_load64(char *args, vm_offset_t *modulep, vm_offset_t *kernendp); + +static int elf64_exec(struct preloaded_file *amp); +static int elf64_obj_exec(struct preloaded_file *amp); + +struct file_format amd64_elf = { elf64_loadfile, elf64_exec }; +struct file_format amd64_elf_obj = { elf64_obj_loadfile, elf64_obj_exec }; + +#define PG_V 0x001 +#define PG_RW 0x002 +#define PG_U 0x004 +#define PG_PS 0x080 + +typedef u_int64_t p4_entry_t; +typedef u_int64_t p3_entry_t; +typedef u_int64_t p2_entry_t; +static p4_entry_t *PT4; +static p3_entry_t *PT3; +static p2_entry_t *PT2; + +/* + * There is an ELF kernel and one or more ELF modules loaded. + * We wish to start executing the kernel image, so make such + * preparations as are required, and do so. + */ +static int +elf64_exec(struct preloaded_file *fp) +{ + struct file_metadata *md; + Elf_Ehdr *ehdr; + vm_offset_t modulep, kernend, pagetable; + uint32_t mp, ke; + int err, i; + + if ((md = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL) + return(EFTYPE); + ehdr = (Elf_Ehdr *)&(md->md_data); + + err = bi_load64(fp->f_args, &modulep, &kernend); + if (err != 0) + return(err); + + PT4 = (p4_entry_t *)0x00000000fffff000; + err = BS->AllocatePages(AllocateMaxAddress, EfiLoaderData, 3, + (EFI_PHYSICAL_ADDRESS *)&PT4); + bzero(PT4, 3 * PAGE_SIZE); + + PT3 = &PT4[512]; + PT2 = &PT3[512]; + + /* + * This is kinda brutal, but every single 1GB VM memory segment points to + * the same first 1GB of physical memory. But it is more than adequate. + */ + for (i = 0; i < 512; i++) { + /* Each slot of the level 4 pages points to the same level 3 page */ + PT4[i] = (p4_entry_t)PT3; + PT4[i] |= PG_V | PG_RW | PG_U; + + /* Each slot of the level 3 pages points to the same level 2 page */ + PT3[i] = (p3_entry_t)PT2; + PT3[i] |= PG_V | PG_RW | PG_U; + + /* The level 2 page slots are mapped with 2MB pages for 1GB. */ + PT2[i] = i * (2 * 1024 * 1024); + PT2[i] |= PG_V | PG_RW | PG_PS | PG_U; + } + + printf("Start @ 0x%lx ...\n", ehdr->e_entry); + + ldr_enter(fp->f_name); + + dev_cleanup(); + + mp = modulep & 0xffffffff; + ke = kernend & 0xffffffff; + pagetable = (uintptr_t)PT4; + __asm __volatile( + "movl %0, %%eax;" + "pushq %%rax;" + "movl %1, %%eax;" + "salq $32, %%rax;" + "pushq %%rax;" + "movq %2, %%rax;" + "pushq %%rax;" + "movq %3, %%rax;" + "movq %%rax, %%cr3;" + "ret" + :: "r" (ke), "r" (mp), "r" (ehdr->e_entry), "r" (PT4)); + + panic("exec returned"); +} + +static int +elf64_obj_exec(struct preloaded_file *fp) +{ + return (EFTYPE); +} From owner-svn-src-projects@FreeBSD.ORG Sat Feb 2 09:13:44 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 6DEAE219; Sat, 2 Feb 2013 09:13:44 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 4B4BC76F; Sat, 2 Feb 2013 09:13:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r129DiWx082916; Sat, 2 Feb 2013 09:13:44 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r129Di3J082915; Sat, 2 Feb 2013 09:13:44 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201302020913.r129Di3J082915@svn.freebsd.org> From: Benno Rice Date: Sat, 2 Feb 2013 09:13:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246232 - projects/uefi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Feb 2013 09:13:44 -0000 Author: benno Date: Sat Feb 2 09:13:43 2013 New Revision: 246232 URL: http://svnweb.freebsd.org/changeset/base/246232 Log: Update todo list. Modified: projects/uefi/UEFI-TODO.txt Modified: projects/uefi/UEFI-TODO.txt ============================================================================== --- projects/uefi/UEFI-TODO.txt Sat Feb 2 09:12:07 2013 (r246231) +++ projects/uefi/UEFI-TODO.txt Sat Feb 2 09:13:43 2013 (r246232) @@ -5,8 +5,9 @@ Part the First: 64-bit EFI loader + Make libstand build natively as 64-bit on amd64. + Adjust non-EFI boot code to use /usr/lib32/libstand.a. - Test that the other boot code still actually works. -- Add bits to build 64-bit loader.efi. -- Make sure that loader.efi can actually load a kernel and hand off to it. ++ Add bits to build 64-bit loader.efi. ++ Make sure that loader.efi can actually load a kernel and hand off to it. +- Clean up loader.efi to propery exit UEFI and to allocate memory properly. Part the Second: Booting an amd64 kernel from the 64-bit EFI loader From owner-svn-src-projects@FreeBSD.ORG Sat Feb 2 09:35:15 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 68B7F452; Sat, 2 Feb 2013 09:35:15 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 5B9987E3; Sat, 2 Feb 2013 09:35:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r129ZF5m088940; Sat, 2 Feb 2013 09:35:15 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r129ZFI1088939; Sat, 2 Feb 2013 09:35:15 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201302020935.r129ZFI1088939@svn.freebsd.org> From: Benno Rice Date: Sat, 2 Feb 2013 09:35:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246233 - projects/uefi/sys/boot/i386/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Feb 2013 09:35:15 -0000 Author: benno Date: Sat Feb 2 09:35:14 2013 New Revision: 246233 URL: http://svnweb.freebsd.org/changeset/base/246233 Log: Missed a change: Add new files to Makefile. Modified: projects/uefi/sys/boot/i386/efi/Makefile Modified: projects/uefi/sys/boot/i386/efi/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/efi/Makefile Sat Feb 2 09:13:43 2013 (r246232) +++ projects/uefi/sys/boot/i386/efi/Makefile Sat Feb 2 09:35:14 2013 (r246233) @@ -10,8 +10,8 @@ PROG= loader.sym INTERNALPROG= # architecture-specific loader code -SRCS= main.c exec.c conf.c vers.c reloc.c elf32_freebsd.c -SRCS+= i386_copy.c bootinfo.c autoload.c devicename.c efimd.c +SRCS= main.c exec.c conf.c vers.c reloc.c elf32_freebsd.c elf64_freebsd.c +SRCS+= i386_copy.c bootinfo.c bootinfo64.c autoload.c devicename.c efimd.c .PATH: ${.CURDIR}/${MACHINE_CPUARCH} SRCS+= start.S From owner-svn-src-projects@FreeBSD.ORG Sat Feb 2 11:04:04 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B737648A; Sat, 2 Feb 2013 11:04:04 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 934A0A81; Sat, 2 Feb 2013 11:04:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r12B44xQ015848; Sat, 2 Feb 2013 11:04:04 GMT (envelope-from benno@svn.freebsd.org) Received: (from benno@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r12B44Xe015846; Sat, 2 Feb 2013 11:04:04 GMT (envelope-from benno@svn.freebsd.org) Message-Id: <201302021104.r12B44Xe015846@svn.freebsd.org> From: Benno Rice Date: Sat, 2 Feb 2013 11:04:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246238 - projects/uefi/sys/boot/i386/efi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Feb 2013 11:04:04 -0000 Author: benno Date: Sat Feb 2 11:04:04 2013 New Revision: 246238 URL: http://svnweb.freebsd.org/changeset/base/246238 Log: Make sure we use the right EFI bindings. Sponsored by: FreeBSD Foundation Modified: projects/uefi/sys/boot/i386/efi/Makefile Modified: projects/uefi/sys/boot/i386/efi/Makefile ============================================================================== --- projects/uefi/sys/boot/i386/efi/Makefile Sat Feb 2 10:04:23 2013 (r246237) +++ projects/uefi/sys/boot/i386/efi/Makefile Sat Feb 2 11:04:04 2013 (r246238) @@ -19,7 +19,7 @@ SRCS+= start.S CFLAGS+= -fPIC CFLAGS+= -I. CFLAGS+= -I${.CURDIR}/../../efi/include -CFLAGS+= -I${.CURDIR}/../../efi/include/i386 +CFLAGS+= -I${.CURDIR}/../../efi/include/${MACHINE_CPUARCH} .if ${MK_FORTH} != "no" BOOT_FORTH= yes