From owner-svn-src-projects@FreeBSD.ORG Sun Jun 20 16:24:22 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B7102106564A; Sun, 20 Jun 2010 16:24:22 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8C7638FC0C; Sun, 20 Jun 2010 16:24:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5KGOMIm054660; Sun, 20 Jun 2010 16:24:22 GMT (envelope-from pho@svn.freebsd.org) Received: (from pho@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5KGOMKC054658; Sun, 20 Jun 2010 16:24:22 GMT (envelope-from pho@svn.freebsd.org) Message-Id: <201006201624.o5KGOMKC054658@svn.freebsd.org> From: Peter Holm Date: Sun, 20 Jun 2010 16:24:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209368 - projects/stress2/misc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2010 16:24:22 -0000 Author: pho Date: Sun Jun 20 16:24:22 2010 New Revision: 209368 URL: http://svn.freebsd.org/changeset/base/209368 Log: Added regression test for FPU changes implemented in r208833. Added: projects/stress2/misc/fpu.sh (contents, props changed) Added: projects/stress2/misc/fpu.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/stress2/misc/fpu.sh Sun Jun 20 16:24:22 2010 (r209368) @@ -0,0 +1,105 @@ +#!/bin/sh + +# +# Copyright (c) 2010 Peter Holm +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +# Regression test for FPU changes in r208833 + +. ../default.cfg + +here=`pwd` +cd /tmp +sed '1,/^EOF/d' < $here/$0 > fpu.c +cc -o fpu -Wall -O2 fpu.c +rm -f fpu.c +[ -d $RUNDIR ] || mkdir -p $RUNDIR +cd $RUNDIR + +r=`/tmp/fpu` +[ "$r" = "-0.000000017, 0.000000000, 0.000000000" ] || echo $r + +cd $here +rm -f /tmp/fpu + +exit 0 +EOF +#include +#include +#include +#include +#include +#include + +void +handler(int i) +{ +} + +void +test() +{ + float val = 0; + double lval = 0; + long double llval = 0; + int i, j; + + for (i = 0; i < 100000; i++) { + for (j = 0; j < 100000; j++) { + val = val + 0.00001; + lval = lval + 0.00001; + llval = llval + 0.00001; + } + for (j = 0; j < 100000; j++) { + val = val - 0.00001; + lval = lval - 0.00001; + llval = llval - 0.00001; + } + } + printf("%.9f, %.9f, %.9Lf\n", val, lval, llval); + exit(0); + +} + +int +main() +{ + pid_t pid; + int i; + + signal(SIGHUP, handler); + + if ((pid = fork()) == 0) + test(); + + for (i = 0; i < 10000; i++) + kill(pid, SIGHUP); + + wait(NULL); + + return (0); +} From owner-svn-src-projects@FreeBSD.ORG Sun Jun 20 17:51:47 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 08CD9106566B for ; Sun, 20 Jun 2010 17:51:47 +0000 (UTC) (envelope-from alc@cs.rice.edu) Received: from mail.cs.rice.edu (mail.cs.rice.edu [128.42.1.31]) by mx1.freebsd.org (Postfix) with ESMTP id D682C8FC1E for ; Sun, 20 Jun 2010 17:51:46 +0000 (UTC) Received: from mail.cs.rice.edu (localhost.localdomain [127.0.0.1]) by mail.cs.rice.edu (Postfix) with ESMTP id B6B652C2A91; Sun, 20 Jun 2010 12:30:02 -0500 (CDT) X-Virus-Scanned: by amavis-2.4.0 at mail.cs.rice.edu Received: from mail.cs.rice.edu ([127.0.0.1]) by mail.cs.rice.edu (mail.cs.rice.edu [127.0.0.1]) (amavisd-new, port 10024) with LMTP id pHZxjHrMYDhI; Sun, 20 Jun 2010 12:29:55 -0500 (CDT) Received: from adsl-216-63-78-18.dsl.hstntx.swbell.net (adsl-216-63-78-18.dsl.hstntx.swbell.net [216.63.78.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.cs.rice.edu (Postfix) with ESMTP id CB72D2C2A8C; Sun, 20 Jun 2010 12:29:54 -0500 (CDT) Message-ID: <4C1E5011.1030509@cs.rice.edu> Date: Sun, 20 Jun 2010 12:29:53 -0500 From: Alan Cox User-Agent: Thunderbird 2.0.0.24 (X11/20100501) MIME-Version: 1.0 To: Nathan Whitehorn References: <201006152146.o5FLk79o002713@svn.freebsd.org> In-Reply-To: <201006152146.o5FLk79o002713@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r209220 - projects/ppc64/sys/powerpc/aim X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2010 17:51:47 -0000 Nathan Whitehorn wrote: > Author: nwhitehorn > Date: Tue Jun 15 21:46:07 2010 > New Revision: 209220 > URL: http://svn.freebsd.org/changeset/base/209220 > > Log: > Implement a page table spilling mechanism to allow the kernel to continue > when user-space applications have filled all the slots in a PTEG. This > relies on VM gracefully remapping pages when it gets faults on pages > it thinks are mapped already, which it seems to do in limited > forkbomb-based testing. > > Comments by alc appreciated before merging to HEAD. > As long the mapping requested of pmap_enter() is valid upon return from that function, a pmap implementation is allowed to destroy any other mappings to pageable pages, i.e., pages and mappings that aren't wired, at any time. So, based upon the above description, I don't think that you are doing anything inappropriate. Regards, Alan From owner-svn-src-projects@FreeBSD.ORG Sun Jun 20 18:26:04 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84691106566B; Sun, 20 Jun 2010 18:26:04 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 720C98FC0C; Sun, 20 Jun 2010 18:26:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5KIQ4B9081627; Sun, 20 Jun 2010 18:26:04 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5KIQ4XX081625; Sun, 20 Jun 2010 18:26:04 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006201826.o5KIQ4XX081625@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 20 Jun 2010 18:26:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209370 - projects/ppc64/sys/powerpc/aim X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2010 18:26:04 -0000 Author: nwhitehorn Date: Sun Jun 20 18:26:04 2010 New Revision: 209370 URL: http://svn.freebsd.org/changeset/base/209370 Log: Close a race masquerading as a speed optimization: moea64_pvo_to_pte() could optionally take the index to the PTE in the hardware page table, often calculated as a side effect of other functions outside the scope of the table lock. Due to spills, the PTE could have moved in the meantime, causing a panic. While here, remove an unnecessary PTE sync operation and remove redundant newlines from two asserts. Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sun Jun 20 16:56:48 2010 (r209369) +++ projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sun Jun 20 18:26:04 2010 (r209370) @@ -365,9 +365,9 @@ static int moea64_pte_insert(u_int, str */ static int moea64_pvo_enter(pmap_t, uma_zone_t, struct pvo_head *, vm_offset_t, vm_offset_t, uint64_t, int); -static void moea64_pvo_remove(struct pvo_entry *, int); -static struct pvo_entry *moea64_pvo_find_va(pmap_t, vm_offset_t, int *); -static struct lpte *moea64_pvo_to_pte(const struct pvo_entry *, int); +static void moea64_pvo_remove(struct pvo_entry *); +static struct pvo_entry *moea64_pvo_find_va(pmap_t, vm_offset_t); +static struct lpte *moea64_pvo_to_pte(const struct pvo_entry *); /* * Utility routines. @@ -782,7 +782,7 @@ moea64_add_ofw_mappings(mmu_t mmup, phan DISABLE_TRANS(msr); for (off = 0; off < translations[i].om_len; off += PAGE_SIZE) { if (moea64_pvo_find_va(kernel_pmap, - translations[i].om_va + off, NULL) != NULL) + translations[i].om_va + off) != NULL) continue; moea64_kenter(mmup, translations[i].om_va + off, @@ -1185,7 +1185,7 @@ moea64_bootstrap(mmu_t mmup, vm_offset_t #ifndef __powerpc64__ /* KVA is in high memory on PPC64 */ PMAP_LOCK(kernel_pmap); while (virtual_end < VM_MAX_KERNEL_ADDRESS && - moea64_pvo_find_va(kernel_pmap, virtual_end+1, NULL) == NULL) + moea64_pvo_find_va(kernel_pmap, virtual_end+1) == NULL) virtual_end += PAGE_SIZE; PMAP_UNLOCK(kernel_pmap); #endif @@ -1317,13 +1317,11 @@ moea64_change_wiring(mmu_t mmu, pmap_t p int i, ptegidx; PMAP_LOCK(pm); - pvo = moea64_pvo_find_va(pm, va & ~ADDR_POFF, NULL); + pvo = moea64_pvo_find_va(pm, va & ~ADDR_POFF); if (pvo != NULL) { LOCK_TABLE(); - pt = moea64_pvo_to_pte(pvo, -1); - if (pt != NULL) - moea64_pte_synch(pt, &pvo->pvo_pte.lpte); + pt = moea64_pvo_to_pte(pvo); if (wired) { if ((pvo->pvo_vaddr & PVO_WIRED) == 0) @@ -1648,7 +1646,7 @@ moea64_extract(mmu_t mmu, pmap_t pm, vm_ vm_paddr_t pa; PMAP_LOCK(pm); - pvo = moea64_pvo_find_va(pm, va, NULL); + pvo = moea64_pvo_find_va(pm, va); if (pvo == NULL) pa = 0; else @@ -1674,7 +1672,7 @@ moea64_extract_and_hold(mmu_t mmu, pmap_ pa = 0; PMAP_LOCK(pmap); retry: - pvo = moea64_pvo_find_va(pmap, va & ~ADDR_POFF, NULL); + pvo = moea64_pvo_find_va(pmap, va & ~ADDR_POFF); if (pvo != NULL && (pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) && ((pvo->pvo_pte.lpte.pte_lo & LPTE_PP) == LPTE_RW || (prot & VM_PROT_WRITE) == 0)) { @@ -1851,7 +1849,7 @@ moea64_remove_write(mmu_t mmu, vm_page_t PMAP_LOCK(pmap); LOCK_TABLE(); if ((pvo->pvo_pte.lpte.pte_lo & LPTE_PP) != LPTE_BR) { - pt = moea64_pvo_to_pte(pvo, -1); + pt = moea64_pvo_to_pte(pvo); pvo->pvo_pte.lpte.pte_lo &= ~LPTE_PP; pvo->pvo_pte.lpte.pte_lo |= LPTE_BR; if (pt != NULL) { @@ -1951,7 +1949,7 @@ moea64_kextract(mmu_t mmu, vm_offset_t v return (va); PMAP_LOCK(kernel_pmap); - pvo = moea64_pvo_find_va(kernel_pmap, va, NULL); + pvo = moea64_pvo_find_va(kernel_pmap, va); KASSERT(pvo != NULL, ("moea64_kextract: no addr found for %#" PRIxPTR, va)); pa = (pvo->pvo_pte.lpte.pte_lo & LPTE_RPGN) + (va - PVO_VADDR(pvo)); @@ -2144,7 +2142,6 @@ moea64_protect(mmu_t mmu, pmap_t pm, vm_ { struct pvo_entry *pvo; struct lpte *pt; - int pteidx; CTR4(KTR_PMAP, "moea64_protect: pm=%p sva=%#x eva=%#x prot=%#x", pm, sva, eva, prot); @@ -2161,7 +2158,7 @@ moea64_protect(mmu_t mmu, pmap_t pm, vm_ vm_page_lock_queues(); PMAP_LOCK(pm); for (; sva < eva; sva += PAGE_SIZE) { - pvo = moea64_pvo_find_va(pm, sva, &pteidx); + pvo = moea64_pvo_find_va(pm, sva); if (pvo == NULL) continue; @@ -2170,7 +2167,7 @@ moea64_protect(mmu_t mmu, pmap_t pm, vm_ * copy. */ LOCK_TABLE(); - pt = moea64_pvo_to_pte(pvo, pteidx); + pt = moea64_pvo_to_pte(pvo); /* * Change the protection of the page. @@ -2266,15 +2263,13 @@ void moea64_remove(mmu_t mmu, pmap_t pm, vm_offset_t sva, vm_offset_t eva) { struct pvo_entry *pvo; - int pteidx; vm_page_lock_queues(); PMAP_LOCK(pm); for (; sva < eva; sva += PAGE_SIZE) { - pvo = moea64_pvo_find_va(pm, sva, &pteidx); - if (pvo != NULL) { - moea64_pvo_remove(pvo, pteidx); - } + pvo = moea64_pvo_find_va(pm, sva); + if (pvo != NULL) + moea64_pvo_remove(pvo); } vm_page_unlock_queues(); PMAP_UNLOCK(pm); @@ -2299,7 +2294,7 @@ moea64_remove_all(mmu_t mmu, vm_page_t m MOEA_PVO_CHECK(pvo); /* sanity check */ pmap = pvo->pvo_pmap; PMAP_LOCK(pmap); - moea64_pvo_remove(pvo, -1); + moea64_pvo_remove(pvo); PMAP_UNLOCK(pmap); } if ((m->flags & PG_WRITEABLE) && moea64_is_modified(mmu, m)) { @@ -2448,11 +2443,12 @@ moea64_pvo_enter(pmap_t pm, uma_zone_t z &pvo->pvo_pte.lpte); if (i >= 0) PVO_PTEGIDX_SET(pvo, i); + moea64_pte_overflow--; } UNLOCK_TABLE(); return (0); } - moea64_pvo_remove(pvo, -1); + moea64_pvo_remove(pvo); break; } } @@ -2553,7 +2549,7 @@ moea64_pvo_enter(pmap_t pm, uma_zone_t z } static void -moea64_pvo_remove(struct pvo_entry *pvo, int pteidx) +moea64_pvo_remove(struct pvo_entry *pvo) { struct lpte *pt; @@ -2562,7 +2558,7 @@ moea64_pvo_remove(struct pvo_entry *pvo, * save the ref & cfg bits). */ LOCK_TABLE(); - pt = moea64_pvo_to_pte(pvo, pteidx); + pt = moea64_pvo_to_pte(pvo); if (pt != NULL) { moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); PVO_PTEGIDX_CLR(pvo); @@ -2610,23 +2606,8 @@ moea64_pvo_remove(struct pvo_entry *pvo, moea64_pvo_remove_calls++; } -static __inline int -moea64_pvo_pte_index(const struct pvo_entry *pvo, int ptegidx) -{ - - /* - * We can find the actual pte entry without searching by grabbing - * the PTEG index from 3 unused bits in pvo_vaddr and by - * noticing the HID bit. - */ - if (pvo->pvo_pte.lpte.pte_hi & LPTE_HID) - ptegidx ^= moea64_pteg_mask; - - return ((ptegidx << 3) | PVO_PTEGIDX_GET(pvo)); -} - static struct pvo_entry * -moea64_pvo_find_va(pmap_t pm, vm_offset_t va, int *pteidx_p) +moea64_pvo_find_va(pmap_t pm, vm_offset_t va) { struct pvo_entry *pvo; int ptegidx; @@ -2652,11 +2633,8 @@ moea64_pvo_find_va(pmap_t pm, vm_offset_ LOCK_TABLE(); LIST_FOREACH(pvo, &moea64_pvo_table[ptegidx], pvo_olink) { - if (pvo->pvo_pmap == pm && PVO_VADDR(pvo) == va) { - if (pteidx_p) - *pteidx_p = moea64_pvo_pte_index(pvo, ptegidx); + if (pvo->pvo_pmap == pm && PVO_VADDR(pvo) == va) break; - } } UNLOCK_TABLE(); @@ -2664,22 +2642,34 @@ moea64_pvo_find_va(pmap_t pm, vm_offset_ } static struct lpte * -moea64_pvo_to_pte(const struct pvo_entry *pvo, int pteidx) +moea64_pvo_to_pte(const struct pvo_entry *pvo) { - struct lpte *pt; + struct lpte *pt; + int pteidx, ptegidx; + uint64_t vsid; + + ASSERT_TABLE_LOCK(); + + /* If the PTEG index is not set, then there is no page table entry */ + if (!PVO_PTEGIDX_ISSET(pvo)) + return (NULL); /* - * If we haven't been supplied the ptegidx, calculate it. + * Calculate the ptegidx */ - if (pteidx == -1) { - int ptegidx; - uint64_t vsid; + vsid = PVO_VSID(pvo); + ptegidx = va_to_pteg(vsid, PVO_VADDR(pvo), + pvo->pvo_vaddr & PVO_LARGE); - vsid = PVO_VSID(pvo); - ptegidx = va_to_pteg(vsid, PVO_VADDR(pvo), - pvo->pvo_vaddr & PVO_LARGE); - pteidx = moea64_pvo_pte_index(pvo, ptegidx); - } + /* + * We can find the actual pte entry without searching by grabbing + * the PTEG index from 3 unused bits in pvo_vaddr and by + * noticing the HID bit. + */ + if (pvo->pvo_pte.lpte.pte_hi & LPTE_HID) + ptegidx ^= moea64_pteg_mask; + + pteidx = (ptegidx << 3) | PVO_PTEGIDX_GET(pvo); if ((pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) && !PVO_PTEGIDX_ISSET(pvo)) { @@ -2693,11 +2683,6 @@ moea64_pvo_to_pte(const struct pvo_entry "pvo but no valid pte", pvo); } - /* If the PTEG index is not set, then there is no page table entry */ - if (!PVO_PTEGIDX_ISSET(pvo)) - return (NULL); - - ASSERT_TABLE_LOCK(); pt = &moea64_pteg_table[pteidx >> 3].pt[pteidx & 7]; if ((pt->pte_hi ^ (pvo->pvo_pte.lpte.pte_hi & ~LPTE_VALID)) == LPTE_VALID) { @@ -2765,8 +2750,7 @@ moea64_pte_insert(u_int ptegidx, struct */ pteg_bktidx = ptegidx; for (pt = moea64_pteg_table[pteg_bktidx].pt, i = 0; i < 8; i++, pt++) { - if ((pt->pte_hi & LPTE_VALID) == 0 && - (pt->pte_hi & LPTE_LOCKED) == 0) { + if ((pt->pte_hi & (LPTE_VALID | LPTE_LOCKED)) == 0) { pvo_pt->pte_hi &= ~LPTE_HID; moea64_pte_set(pt, pvo_pt); return (i); @@ -2778,8 +2762,7 @@ moea64_pte_insert(u_int ptegidx, struct */ pteg_bktidx ^= moea64_pteg_mask; for (pt = moea64_pteg_table[pteg_bktidx].pt, i = 0; i < 8; i++, pt++) { - if ((pt->pte_hi & LPTE_VALID) == 0 && - (pt->pte_hi & LPTE_LOCKED) == 0) { + if ((pt->pte_hi & (LPTE_VALID | LPTE_LOCKED)) == 0) { pvo_pt->pte_hi |= LPTE_HID; moea64_pte_set(pt, pvo_pt); return (i); @@ -2815,7 +2798,7 @@ moea64_pte_insert(u_int ptegidx, struct LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { KASSERT(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID, - ("Invalid PVO for valid PTE!\n")); + ("Invalid PVO for valid PTE!")); moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); PVO_PTEGIDX_CLR(pvo); moea64_pte_overflow++; @@ -2829,7 +2812,7 @@ moea64_pte_insert(u_int ptegidx, struct LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { KASSERT(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID, - ("Invalid PVO for valid PTE!\n")); + ("Invalid PVO for valid PTE!")); moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); PVO_PTEGIDX_CLR(pvo); @@ -2890,7 +2873,7 @@ moea64_query_bit(vm_page_t m, u_int64_t * ptebit is set, cache it and return success. */ LOCK_TABLE(); - pt = moea64_pvo_to_pte(pvo, -1); + pt = moea64_pvo_to_pte(pvo); if (pt != NULL) { moea64_pte_synch(pt, &pvo->pvo_pte.lpte); if (pvo->pvo_pte.lpte.pte_lo & ptebit) { @@ -2941,7 +2924,7 @@ moea64_clear_bit(vm_page_t m, u_int64_t MOEA_PVO_CHECK(pvo); /* sanity check */ LOCK_TABLE(); - pt = moea64_pvo_to_pte(pvo, -1); + pt = moea64_pvo_to_pte(pvo); if (pt != NULL) { moea64_pte_synch(pt, &pvo->pvo_pte.lpte); if (pvo->pvo_pte.lpte.pte_lo & ptebit) { @@ -2967,7 +2950,7 @@ moea64_dev_direct_mapped(mmu_t mmu, vm_o PMAP_LOCK(kernel_pmap); for (ppa = pa & ~ADDR_POFF; ppa < pa + size; ppa += PAGE_SIZE) { - pvo = moea64_pvo_find_va(kernel_pmap, ppa, NULL); + pvo = moea64_pvo_find_va(kernel_pmap, ppa); if (pvo == NULL || (pvo->pvo_pte.lpte.pte_lo & LPTE_RPGN) != ppa) { error = EFAULT; @@ -3033,7 +3016,7 @@ moea64_sync_icache(mmu_t mmu, pmap_t pm, while (sz > 0) { lim = round_page(va); len = MIN(lim - va, sz); - pvo = moea64_pvo_find_va(pm, va & ~ADDR_POFF, NULL); + pvo = moea64_pvo_find_va(pm, va & ~ADDR_POFF); if (pvo != NULL) { pa = (pvo->pvo_pte.pte.pte_lo & LPTE_RPGN) | (va & ADDR_POFF); From owner-svn-src-projects@FreeBSD.ORG Sun Jun 20 23:45:19 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F8D7106564A; Sun, 20 Jun 2010 23:45:19 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7EA8B8FC08; Sun, 20 Jun 2010 23:45:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5KNjJwP052408; Sun, 20 Jun 2010 23:45:19 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5KNjJkQ052406; Sun, 20 Jun 2010 23:45:19 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006202345.o5KNjJkQ052406@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 20 Jun 2010 23:45:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209378 - projects/ppc64/sys/powerpc/aim X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2010 23:45:19 -0000 Author: nwhitehorn Date: Sun Jun 20 23:45:19 2010 New Revision: 209378 URL: http://svn.freebsd.org/changeset/base/209378 Log: Fix and optimize the case where a PTE is spilled out of its secondary PTEG and later re-added to its primary one. Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sun Jun 20 23:42:14 2010 (r209377) +++ projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sun Jun 20 23:45:19 2010 (r209378) @@ -2785,6 +2785,11 @@ moea64_pte_insert(u_int ptegidx, struct return (-1); } + if (pteg_bktidx == ptegidx) + pvo_pt->pte_hi &= ~LPTE_HID; + else + pvo_pt->pte_hi |= LPTE_HID; + /* * Synchronize the sacrifice PTE with its PVO, then mark both * invalid. The PVO will be reused when/if the VM system comes @@ -2793,7 +2798,7 @@ moea64_pte_insert(u_int ptegidx, struct pt = &moea64_pteg_table[pteg_bktidx].pt[i]; if (pt->pte_hi & LPTE_HID) - pvo_pt->pte_hi |= LPTE_HID; + pteg_bktidx ^= moea64_pteg_mask; /* PTEs indexed by primary */ LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { @@ -2806,21 +2811,6 @@ moea64_pte_insert(u_int ptegidx, struct } } - if (pvo->pvo_pte.lpte.pte_hi != pt->pte_hi) { - /* It could have landed in the secondary PTEG */ - pteg_bktidx ^= moea64_pteg_mask; - LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { - if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { - KASSERT(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID, - ("Invalid PVO for valid PTE!")); - moea64_pte_unset(pt, &pvo->pvo_pte.lpte, - pvo->pvo_vpn); - PVO_PTEGIDX_CLR(pvo); - moea64_pte_overflow++; - break; - } - } - } KASSERT(pvo->pvo_pte.lpte.pte_hi == pt->pte_hi, ("Unable to find PVO for spilled PTE")); From owner-svn-src-projects@FreeBSD.ORG Mon Jun 21 14:37:17 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 610DF106566B; Mon, 21 Jun 2010 14:37:17 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 37F708FC1D; Mon, 21 Jun 2010 14:37:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5LEbGvU050892; Mon, 21 Jun 2010 14:37:16 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5LEbGmS050891; Mon, 21 Jun 2010 14:37:16 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <201006211437.o5LEbGmS050891@svn.freebsd.org> From: Ed Schouten Date: Mon, 21 Jun 2010 14:37:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209397 - projects/clangbsd-import X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2010 14:37:17 -0000 Author: ed Date: Mon Jun 21 14:37:16 2010 New Revision: 209397 URL: http://svn.freebsd.org/changeset/base/209397 Log: Remove stale branch. clangbsd-import is part of HEAD. Deleted: projects/clangbsd-import/ From owner-svn-src-projects@FreeBSD.ORG Tue Jun 22 08:00:58 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ED545106564A; Tue, 22 Jun 2010 08:00:58 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DB2348FC15; Tue, 22 Jun 2010 08:00:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5M80wI7082049; Tue, 22 Jun 2010 08:00:58 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5M80wmk082040; Tue, 22 Jun 2010 08:00:58 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006220800.o5M80wmk082040@svn.freebsd.org> From: Jeff Roberson Date: Tue, 22 Jun 2010 08:00:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209419 - projects/ofed/head/sys/ofed/include/linux X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2010 08:00:59 -0000 Author: jeff Date: Tue Jun 22 08:00:58 2010 New Revision: 209419 URL: http://svn.freebsd.org/changeset/base/209419 Log: - Add notifier, radix-tree, and ilog2 support and prototypes along with other minor revisions to the linux wrapper layer. Sponsored by: Isilon Systems, iX Systems, and Panasas. Added: projects/ofed/head/sys/ofed/include/linux/inet.h projects/ofed/head/sys/ofed/include/linux/io.h projects/ofed/head/sys/ofed/include/linux/log2.h projects/ofed/head/sys/ofed/include/linux/notifier.h projects/ofed/head/sys/ofed/include/linux/radix-tree.h Modified: projects/ofed/head/sys/ofed/include/linux/bitops.h projects/ofed/head/sys/ofed/include/linux/kernel.h projects/ofed/head/sys/ofed/include/linux/netdevice.h Modified: projects/ofed/head/sys/ofed/include/linux/bitops.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/bitops.h Tue Jun 22 07:55:30 2010 (r209418) +++ projects/ofed/head/sys/ofed/include/linux/bitops.h Tue Jun 22 08:00:58 2010 (r209419) @@ -28,7 +28,11 @@ #ifndef _LINUX_BITOPS_H_ #define _LINUX_BITOPS_H_ -#define BITS_PER_LONG (sizeof(long) * 8) +#ifdef __LP64__ +#define BITS_PER_LONG 64 +#else +#define BITS_PER_LONG 32 +#endif #define BIT_MASK(n) (~0UL >> (BITS_PER_LONG - (n))) #define BITS_TO_LONGS(n) roundup2((n), BITS_PER_LONG) Added: projects/ofed/head/sys/ofed/include/linux/inet.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/linux/inet.h Tue Jun 22 08:00:58 2010 (r209419) @@ -0,0 +1,31 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * 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 unmodified, 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LINUX_INET_H_ +#define _LINUX_INET_H_ +#endif /* _LINUX_INET_H_ */ Added: projects/ofed/head/sys/ofed/include/linux/io.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/linux/io.h Tue Jun 22 08:00:58 2010 (r209419) @@ -0,0 +1,44 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * 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 unmodified, 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LINUX_IO_H_ +#define _LINUX_IO_H_ + +static inline uint64_t +__raw_readq(const volatile void *addr) +{ + return *(const volatile uint64_t *)addr; +} + +static inline void +__raw_writeq(uint64_t b, volatile void *addr) +{ + *(volatile uint64_t *)addr = b; +} + +#endif /* _LINUX_IO_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/kernel.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/kernel.h Tue Jun 22 07:55:30 2010 (r209418) +++ projects/ofed/head/sys/ofed/include/linux/kernel.h Tue Jun 22 08:00:58 2010 (r209419) @@ -42,6 +42,8 @@ #include #include #include +#include +#include #include #define BUG() panic("BUG") Added: projects/ofed/head/sys/ofed/include/linux/log2.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/linux/log2.h Tue Jun 22 08:00:58 2010 (r209419) @@ -0,0 +1,53 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * 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 unmodified, 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LINUX_LOG2_H_ +#define _LINUX_LOG2_H_ + +#include +#include + +static inline unsigned long +roundup_pow_of_two(unsigned long x) +{ + return (1UL << flsl(x - 1)); +} + +static inline unsigned long +rounddown_pow_of_two(unsigned long x) +{ + return (1UL << (flsl(x) - 1)); +} + +static inline unsigned long +ilog2(unsigned long x) +{ + return (flsl(x) - 1); +} + +#endif /* _LINUX_LOG2_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/netdevice.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/netdevice.h Tue Jun 22 07:55:30 2010 (r209418) +++ projects/ofed/head/sys/ofed/include/linux/netdevice.h Tue Jun 22 08:00:58 2010 (r209419) @@ -29,6 +29,7 @@ #define _LINUX_NETDEVICE_H_ #include +#include #include #include @@ -40,6 +41,7 @@ #include #include #include +#include struct net { }; Added: projects/ofed/head/sys/ofed/include/linux/notifier.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/linux/notifier.h Tue Jun 22 08:00:58 2010 (r209419) @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * 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 unmodified, 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LINUX_NOTIFIER_H_ +#define _LINUX_NOTIFIER_H_ + +struct notifier_block { + int (*notifier_call)(struct notifier_block *, unsigned long, void *); + struct notifier_block *next; + int priority; +}; + +#endif /* _LINUX_NOTIFIER_H_ */ Added: projects/ofed/head/sys/ofed/include/linux/radix-tree.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/linux/radix-tree.h Tue Jun 22 08:00:58 2010 (r209419) @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * 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 unmodified, 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LINUX_RADIX_TREE_H_ +#define _LINUX_RADIX_TREE_H_ + +struct radix_tree_root { +}; + +#define RADIX_TREE_INIT(root) + +void *radix_tree_lookup(struct radix_tree_root *, unsigned long); +void *radix_tree_delete(struct radix_tree_root *, unsigned long); +int radix_tree_insert(struct radix_tree_root *, unsigned long, void *); + +#endif /* _LINUX_RADIX_TREE_H_ */ From owner-svn-src-projects@FreeBSD.ORG Tue Jun 22 08:02:51 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6845A106566B; Tue, 22 Jun 2010 08:02:51 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5779C8FC15; Tue, 22 Jun 2010 08:02:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5M82oQ1082545; Tue, 22 Jun 2010 08:02:50 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5M82otr082542; Tue, 22 Jun 2010 08:02:50 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006220802.o5M82otr082542@svn.freebsd.org> From: Jeff Roberson Date: Tue, 22 Jun 2010 08:02:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209420 - projects/ofed/head/sys/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2010 08:02:51 -0000 Author: jeff Date: Tue Jun 22 08:02:50 2010 New Revision: 209420 URL: http://svn.freebsd.org/changeset/base/209420 Log: - Add OFED_C and OFED_C_NOIMP for use in ofed targets. - Add files for infiniband core and mlx4. Sponsored by: Isilon Systems, iX Systems, and Panasas. Modified: projects/ofed/head/sys/conf/files projects/ofed/head/sys/conf/kern.pre.mk Modified: projects/ofed/head/sys/conf/files ============================================================================== --- projects/ofed/head/sys/conf/files Tue Jun 22 08:00:58 2010 (r209419) +++ projects/ofed/head/sys/conf/files Tue Jun 22 08:02:50 2010 (r209420) @@ -2657,6 +2657,118 @@ nlm/nlm_prot_server.c optional nfslockd nlm/nlm_prot_svc.c optional nfslockd | nfsd nlm/nlm_prot_xdr.c optional nfslockd | nfsd nlm/sm_inter_xdr.c optional nfslockd | nfsd + +# OpenFabrics Enterprise Distribution (infiniband) +ofed/include/linux/linux_compat.c optional infiniband \ + no-depend compile-with "${OFED_C}" +ofed/include/linux/linux_idr.c optional infiniband \ + no-depend compile-with "${OFED_C}" +ofed/drivers/infiniband/core/addr.c optional infiniband \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/agent.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/cache.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/cm.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/cma.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/device.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/fmr_pool.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/iwcm.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/local_sa.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/mad.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/mad_rmpp.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/multicast.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/notice.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/packer.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/sa_query.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/smi.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +#ofed/drivers/infiniband/core/sysfs.c optional infiniband \ +# no-depend \ +# compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/ucm.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/ucma.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/ud_header.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +#ofed/drivers/infiniband/core/umem.c optional infiniband \ +# no-depend \ +# compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/user_mad.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/uverbs_cmd.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/uverbs_main.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/uverbs_marshall.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/verbs.c optional infiniband \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" + +ofed/drivers/infiniband/hw/mlx4/ah.c optional mlx4 \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/cq.c optional mlx4 \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/doorbell.c optional mlx4 \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/mad.c optional mlx4 \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/main.c optional mlx4 \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/mr.c optional mlx4 \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/qp.c optional mlx4 \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/srq.c optional mlx4 \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +#ofed/drivers/infiniband/hw/mlx4/wc.c optional mlx4 \ +# no-depend obj-prefix "mlx4_" \ +# compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" + # crypto support opencrypto/cast.c optional crypto | ipsec opencrypto/criov.c optional crypto Modified: projects/ofed/head/sys/conf/kern.pre.mk ============================================================================== --- projects/ofed/head/sys/conf/kern.pre.mk Tue Jun 22 08:00:58 2010 (r209419) +++ projects/ofed/head/sys/conf/kern.pre.mk Tue Jun 22 08:02:50 2010 (r209420) @@ -133,6 +133,14 @@ NORMAL_CTFCONVERT= [ -z "${CTFCONVERT}" NORMAL_LINT= ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} +# Infiniband C flags. Correct include paths and omit errors that linux +# does not honor. +OFEDINCLUDES= -I$S/ofed/include/ +OFEDNOERR= -Wno-cast-qual -Wno-pointer-arith +OFEDCFLAGS= ${CFLAGS:N-I*} ${OFEDINCLUDES} ${CFLAGS:M-I*} +OFED_C_NOIMP= ${CC} -c ${OFEDCFLAGS} ${WERROR} ${OFEDNOERR} ${PROF} +OFED_C= ${OFED_C_NOIMP} ${.IMPSRC} + GEN_CFILES= $S/$M/$M/genassym.c ${MFILES:T:S/.m$/.c/} SYSTEM_CFILES= config.c env.c hints.c vnode_if.c SYSTEM_DEP= Makefile ${SYSTEM_OBJS} From owner-svn-src-projects@FreeBSD.ORG Tue Jun 22 08:04:42 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2B661065678; Tue, 22 Jun 2010 08:04:42 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D1F428FC1D; Tue, 22 Jun 2010 08:04:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5M84gKm083004; Tue, 22 Jun 2010 08:04:42 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5M84gwB083001; Tue, 22 Jun 2010 08:04:42 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006220804.o5M84gwB083001@svn.freebsd.org> From: Jeff Roberson Date: Tue, 22 Jun 2010 08:04:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209421 - projects/ofed/head/usr.sbin/config X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2010 08:04:43 -0000 Author: jeff Date: Tue Jun 22 08:04:42 2010 New Revision: 209421 URL: http://svn.freebsd.org/changeset/base/209421 Log: - Add support for per-file object prefixes that can be used to disambiguate source files with the same name. Reviewed by: bsdimp Sponsored by: Isilon Systems, iX Systems, and Panasas. Modified: projects/ofed/head/usr.sbin/config/config.h projects/ofed/head/usr.sbin/config/mkmakefile.c Modified: projects/ofed/head/usr.sbin/config/config.h ============================================================================== --- projects/ofed/head/usr.sbin/config/config.h Tue Jun 22 08:02:50 2010 (r209420) +++ projects/ofed/head/usr.sbin/config/config.h Tue Jun 22 08:04:42 2010 (r209421) @@ -53,6 +53,7 @@ struct file_list { char *f_depends; /* additional dependancies */ char *f_clean; /* File list to add to clean rule */ char *f_warn; /* warning message */ + const char *f_objprefix; /* prefix string for object name */ }; struct files_name { Modified: projects/ofed/head/usr.sbin/config/mkmakefile.c ============================================================================== --- projects/ofed/head/usr.sbin/config/mkmakefile.c Tue Jun 22 08:02:50 2010 (r209420) +++ projects/ofed/head/usr.sbin/config/mkmakefile.c Tue Jun 22 08:04:42 2010 (r209421) @@ -310,6 +310,7 @@ read_file(char *fname) struct device *dp; struct opt *op; char *wd, *this, *compilewith, *depends, *clean, *warning; + const char *objprefix; int compile, match, nreqs, std, filetype, imp_rule, no_obj, before_depend, mandatory, nowerror; @@ -324,6 +325,7 @@ next: * [ compile-with "compile rule" [no-implicit-rule] ] * [ dependency "dependency-list"] [ before-depend ] * [ clean "file-list"] [ warning "text warning" ] + * [ obj-prefix "file prefix"] */ wd = get_word(fp); if (wd == (char *)EOF) { @@ -371,6 +373,7 @@ next: before_depend = 0; nowerror = 0; filetype = NORMAL; + objprefix = ""; if (eq(wd, "standard")) { std = 1; /* @@ -461,6 +464,16 @@ nextparam: warning = ns(wd); goto nextparam; } + if (eq(wd, "obj-prefix")) { + next_quoted_word(fp, wd); + if (wd == 0) { + printf("%s: %s missing object prefix string.\n", + fname, this); + exit(1); + } + objprefix = ns(wd); + goto nextparam; + } nreqs++; if (eq(wd, "local")) { filetype = LOCAL; @@ -528,6 +541,7 @@ doneparam: tp->f_depends = depends; tp->f_clean = clean; tp->f_warn = warning; + tp->f_objprefix = objprefix; goto next; } @@ -612,11 +626,12 @@ do_objs(FILE *fp) cp = sp + (len = strlen(sp)) - 1; och = *cp; *cp = 'o'; + len += strlen(tp->f_objprefix); if (len + lpos > 72) { lpos = 8; fprintf(fp, "\\\n\t"); } - fprintf(fp, "%s ", sp); + fprintf(fp, "%s%s ", tp->f_objprefix, sp); lpos += len + 1; *cp = och; } @@ -691,30 +706,33 @@ do_rules(FILE *f) och = *cp; if (ftp->f_flags & NO_IMPLCT_RULE) { if (ftp->f_depends) - fprintf(f, "%s: %s\n", np, ftp->f_depends); + fprintf(f, "%s%s: %s\n", + ftp->f_objprefix, np, ftp->f_depends); else - fprintf(f, "%s: \n", np); + fprintf(f, "%s%s: \n", ftp->f_objprefix, np); } else { *cp = '\0'; if (och == 'o') { - fprintf(f, "%so:\n\t-cp $S/%so .\n\n", - tail(np), np); + fprintf(f, "%s%so:\n\t-cp $S/%so .\n\n", + ftp->f_objprefix, tail(np), np); continue; } if (ftp->f_depends) { - fprintf(f, "%sln: $S/%s%c %s\n", tail(np), - np, och, ftp->f_depends); + fprintf(f, "%s%sln: $S/%s%c %s\n", + ftp->f_objprefix, tail(np), np, och, + ftp->f_depends); fprintf(f, "\t${NORMAL_LINT}\n\n"); - fprintf(f, "%so: $S/%s%c %s\n", tail(np), - np, och, ftp->f_depends); + fprintf(f, "%s%so: $S/%s%c %s\n", + ftp->f_objprefix, tail(np), np, och, + ftp->f_depends); } else { - fprintf(f, "%sln: $S/%s%c\n", tail(np), - np, och); + fprintf(f, "%s%sln: $S/%s%c\n", + ftp->f_objprefix, tail(np), np, och); fprintf(f, "\t${NORMAL_LINT}\n\n"); - fprintf(f, "%so: $S/%s%c\n", tail(np), - np, och); + fprintf(f, "%s%so: $S/%s%c\n", + ftp->f_objprefix, tail(np), np, och); } } compilewith = ftp->f_compilewith; @@ -744,7 +762,10 @@ do_rules(FILE *f) compilewith = cmd; } *cp = och; - fprintf(f, "\t%s\n\n", compilewith); + if (strlen(ftp->f_objprefix)) + fprintf(f, "\t%s $S/%s\n\n", compilewith, np); + else + fprintf(f, "\t%s\n\n", compilewith); } } From owner-svn-src-projects@FreeBSD.ORG Tue Jun 22 08:05:54 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FB501065670; Tue, 22 Jun 2010 08:05:54 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 561508FC1C; Tue, 22 Jun 2010 08:05:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5M85skd083311; Tue, 22 Jun 2010 08:05:54 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5M85sxc083308; Tue, 22 Jun 2010 08:05:54 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006220805.o5M85sxc083308@svn.freebsd.org> From: Jeff Roberson Date: Tue, 22 Jun 2010 08:05:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209422 - in projects/ofed/head/sys: kern sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2010 08:05:54 -0000 Author: jeff Date: Tue Jun 22 08:05:54 2010 New Revision: 209422 URL: http://svn.freebsd.org/changeset/base/209422 Log: - Add a taskqueue_cancel() routine that is compatible with the similar workqueue_cancel() in linux. This is like taskqueue_drain() except it will stop the task from running at all if it has not yet been scheduled. Sponsored by: Isilon Systems, iX Systems, and Panasas. Modified: projects/ofed/head/sys/kern/subr_taskqueue.c projects/ofed/head/sys/sys/taskqueue.h Modified: projects/ofed/head/sys/kern/subr_taskqueue.c ============================================================================== --- projects/ofed/head/sys/kern/subr_taskqueue.c Tue Jun 22 08:04:42 2010 (r209421) +++ projects/ofed/head/sys/kern/subr_taskqueue.c Tue Jun 22 08:05:54 2010 (r209422) @@ -250,6 +250,44 @@ taskqueue_run(struct taskqueue *queue) TQ_UNLOCK(queue); } +int +taskqueue_cancel(struct taskqueue *queue, struct task *task) +{ + int pending; + + if (queue->tq_spin) { /* XXX */ + mtx_lock_spin(&queue->tq_mutex); + pending = task->ta_pending; + while (task->ta_pending != 0) { + if ((task->ta_flags & TA_FLAGS_RUNNING) == 0) { + STAILQ_REMOVE(&queue->tq_queue, task, + task, ta_link); + task->ta_pending = 0; + break; + } else + msleep_spin(task, &queue->tq_mutex, "-", 0); + } + mtx_unlock_spin(&queue->tq_mutex); + } else { + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, __func__); + + mtx_lock(&queue->tq_mutex); + pending = task->ta_pending; + while (task->ta_pending != 0) { + if ((task->ta_flags & TA_FLAGS_RUNNING) == 0) { + STAILQ_REMOVE(&queue->tq_queue, task, + task, ta_link); + task->ta_pending = 0; + break; + } else + msleep(task, &queue->tq_mutex, PWAIT, "-", 0); + } + mtx_unlock(&queue->tq_mutex); + } + + return (pending); +} + void taskqueue_drain(struct taskqueue *queue, struct task *task) { Modified: projects/ofed/head/sys/sys/taskqueue.h ============================================================================== --- projects/ofed/head/sys/sys/taskqueue.h Tue Jun 22 08:04:42 2010 (r209421) +++ projects/ofed/head/sys/sys/taskqueue.h Tue Jun 22 08:05:54 2010 (r209422) @@ -54,6 +54,7 @@ struct taskqueue *taskqueue_create(const int taskqueue_start_threads(struct taskqueue **tqp, int count, int pri, const char *name, ...) __printflike(4, 5); int taskqueue_enqueue(struct taskqueue *queue, struct task *task); +int taskqueue_cancel(struct taskqueue *queue, struct task *task); void taskqueue_drain(struct taskqueue *queue, struct task *task); void taskqueue_free(struct taskqueue *queue); void taskqueue_run(struct taskqueue *queue); From owner-svn-src-projects@FreeBSD.ORG Wed Jun 23 19:22:10 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 97754106564A; Wed, 23 Jun 2010 19:22:10 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8255D8FC13; Wed, 23 Jun 2010 19:22:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5NJMArW057416; Wed, 23 Jun 2010 19:22:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5NJMAJ0057400; Wed, 23 Jun 2010 19:22:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006231922.o5NJMAJ0057400@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 23 Jun 2010 19:22:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209478 - in projects/ppc64: bin/pkill cddl/contrib/opensolaris/lib/libdtrace/common contrib/binutils/binutils/doc lib lib/libc/nls sbin/fsck_ffs sbin/fsck_msdosfs sbin/geom/class/part ... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2010 19:22:10 -0000 Author: nwhitehorn Date: Wed Jun 23 19:22:09 2010 New Revision: 209478 URL: http://svn.freebsd.org/changeset/base/209478 Log: IFC @ 209470 Added: projects/ppc64/sys/kern/kern_et.c - copied unchanged from r209470, head/sys/kern/kern_et.c projects/ppc64/sys/sys/timeet.h - copied unchanged from r209470, head/sys/sys/timeet.h projects/ppc64/sys/x86/x86/timeevents.c - copied unchanged from r209470, head/sys/x86/x86/timeevents.c projects/ppc64/tools/tools/netrate/tcpp/parallelism.csh - copied unchanged from r209470, head/tools/tools/netrate/tcpp/parallelism.csh projects/ppc64/tools/tools/netrate/tcpp/runit.pl - copied unchanged from r209470, head/tools/tools/netrate/tcpp/runit.pl Modified: projects/ppc64/bin/pkill/pkill.1 projects/ppc64/bin/pkill/pkill.c projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l projects/ppc64/contrib/binutils/binutils/doc/readelf.1 projects/ppc64/lib/Makefile projects/ppc64/lib/libc/nls/ru_RU.KOI8-R.msg (contents, props changed) projects/ppc64/sbin/fsck_ffs/main.c projects/ppc64/sbin/fsck_ffs/suj.c projects/ppc64/sbin/fsck_msdosfs/Makefile projects/ppc64/sbin/fsck_msdosfs/boot.c projects/ppc64/sbin/fsck_msdosfs/check.c projects/ppc64/sbin/fsck_msdosfs/dir.c projects/ppc64/sbin/fsck_msdosfs/fat.c projects/ppc64/sbin/geom/class/part/geom_part.c projects/ppc64/sbin/geom/class/sched/gsched.8 projects/ppc64/sbin/geom/core/geom.c projects/ppc64/sbin/geom/core/geom.h projects/ppc64/sbin/geom/misc/subr.c projects/ppc64/sbin/geom/misc/subr.h projects/ppc64/sbin/ping/ping.c projects/ppc64/share/examples/perfmon/perfmon.c projects/ppc64/sys/amd64/amd64/machdep.c projects/ppc64/sys/amd64/amd64/mp_machdep.c projects/ppc64/sys/amd64/include/apicvar.h projects/ppc64/sys/boot/ficl/ficl.h projects/ppc64/sys/boot/forth/loader.conf projects/ppc64/sys/conf/files projects/ppc64/sys/conf/files.amd64 projects/ppc64/sys/conf/files.i386 projects/ppc64/sys/dev/acpica/acpi_hpet.c projects/ppc64/sys/dev/acpica/acpi_hpet.h projects/ppc64/sys/dev/fb/fbreg.h projects/ppc64/sys/dev/sound/usb/uaudio.c projects/ppc64/sys/dev/sound/usb/uaudioreg.h projects/ppc64/sys/dev/usb/controller/ehci.c projects/ppc64/sys/dev/usb/controller/ohci.c projects/ppc64/sys/dev/usb/controller/uhci.c projects/ppc64/sys/dev/usb/net/if_rue.c projects/ppc64/sys/dev/usb/quirk/usb_quirk.c projects/ppc64/sys/dev/usb/usb_transfer.c projects/ppc64/sys/dev/usb/usbdevs projects/ppc64/sys/dev/usb/wlan/if_upgt.c projects/ppc64/sys/fs/udf/udf_vnops.c projects/ppc64/sys/i386/i386/identcpu.c projects/ppc64/sys/i386/i386/machdep.c projects/ppc64/sys/i386/i386/mp_machdep.c projects/ppc64/sys/i386/i386/support.s projects/ppc64/sys/i386/i386/vm_machdep.c projects/ppc64/sys/i386/include/apicvar.h projects/ppc64/sys/i386/include/md_var.h projects/ppc64/sys/i386/include/npx.h projects/ppc64/sys/i386/include/pcb.h projects/ppc64/sys/i386/isa/npx.c projects/ppc64/sys/isa/rtc.h projects/ppc64/sys/kern/kern_acct.c projects/ppc64/sys/kern/kern_clock.c projects/ppc64/sys/kern/kern_malloc.c projects/ppc64/sys/kern/kern_mbuf.c projects/ppc64/sys/kern/kern_module.c projects/ppc64/sys/kern/kern_resource.c projects/ppc64/sys/kern/kern_sdt.c projects/ppc64/sys/kern/kern_sig.c projects/ppc64/sys/kern/kern_tc.c projects/ppc64/sys/kern/kern_umtx.c projects/ppc64/sys/kern/makesyscalls.sh projects/ppc64/sys/kern/subr_bus.c projects/ppc64/sys/kern/subr_devstat.c projects/ppc64/sys/kern/subr_fattime.c projects/ppc64/sys/kern/subr_lock.c projects/ppc64/sys/kern/subr_mchain.c projects/ppc64/sys/kern/subr_module.c projects/ppc64/sys/kern/subr_trap.c projects/ppc64/sys/kern/subr_witness.c projects/ppc64/sys/kern/sys_process.c projects/ppc64/sys/kern/systrace_args.c projects/ppc64/sys/kern/uipc_mbuf.c projects/ppc64/sys/kern/uipc_mbuf2.c projects/ppc64/sys/kern/uipc_mqueue.c projects/ppc64/sys/kern/uipc_syscalls.c projects/ppc64/sys/kern/vfs_cache.c projects/ppc64/sys/kern/vfs_subr.c projects/ppc64/sys/mips/atheros/ar71xxreg.h projects/ppc64/sys/modules/mqueue/Makefile projects/ppc64/sys/netinet/sctp_pcb.c projects/ppc64/sys/pc98/cbus/clock.c projects/ppc64/sys/pc98/include/npx.h projects/ppc64/sys/pc98/pc98/machdep.c projects/ppc64/sys/powerpc/aim/mmu_oea.c projects/ppc64/sys/sys/systm.h projects/ppc64/sys/ufs/ufs/ufs_lookup.c projects/ppc64/sys/vm/vm_page.c projects/ppc64/sys/vm/vm_page.h projects/ppc64/sys/vm/vm_pageout.c projects/ppc64/sys/x86/isa/atrtc.c projects/ppc64/sys/x86/isa/clock.c projects/ppc64/sys/x86/x86/local_apic.c projects/ppc64/tools/tools/netrate/tcpp/README projects/ppc64/usr.bin/du/du.1 projects/ppc64/usr.bin/du/du.c projects/ppc64/usr.sbin/boot0cfg/boot0cfg.c projects/ppc64/usr.sbin/mptutil/mptutil.8 projects/ppc64/usr.sbin/sysinstall/Makefile projects/ppc64/usr.sbin/sysinstall/dist.c projects/ppc64/usr.sbin/sysinstall/index.c projects/ppc64/usr.sbin/sysinstall/install.c projects/ppc64/usr.sbin/sysinstall/misc.c projects/ppc64/usr.sbin/sysinstall/sysinstall.8 projects/ppc64/usr.sbin/sysinstall/sysinstall.h Directory Properties: projects/ppc64/ (props changed) projects/ppc64/cddl/contrib/opensolaris/ (props changed) projects/ppc64/contrib/ee/ (props changed) projects/ppc64/contrib/expat/ (props changed) projects/ppc64/contrib/file/ (props changed) projects/ppc64/contrib/gdb/ (props changed) projects/ppc64/contrib/gnu-sort/ (props changed) projects/ppc64/contrib/groff/ (props changed) projects/ppc64/contrib/less/ (props changed) projects/ppc64/contrib/libpcap/ (props changed) projects/ppc64/contrib/ncurses/ (props changed) projects/ppc64/contrib/one-true-awk/ (props changed) projects/ppc64/contrib/openbsm/ (props changed) projects/ppc64/contrib/openpam/ (props changed) projects/ppc64/contrib/pf/ (props changed) projects/ppc64/contrib/tcpdump/ (props changed) projects/ppc64/contrib/tcsh/ (props changed) projects/ppc64/contrib/tzcode/stdtime/ (props changed) projects/ppc64/contrib/tzcode/zic/ (props changed) projects/ppc64/contrib/tzdata/ (props changed) projects/ppc64/contrib/wpa/ (props changed) projects/ppc64/lib/libutil/ (props changed) projects/ppc64/lib/libz/ (props changed) projects/ppc64/sbin/ (props changed) projects/ppc64/sbin/ipfw/ (props changed) projects/ppc64/share/mk/bsd.arch.inc.mk (props changed) projects/ppc64/sys/ (props changed) projects/ppc64/sys/amd64/include/xen/ (props changed) projects/ppc64/sys/arm/conf/SHEEVAPLUG (props changed) projects/ppc64/sys/cddl/contrib/opensolaris/ (props changed) projects/ppc64/sys/contrib/dev/acpica/ (props changed) projects/ppc64/sys/contrib/x86emu/ (props changed) projects/ppc64/sys/dev/xen/xenpci/ (props changed) projects/ppc64/usr.bin/csup/ (props changed) projects/ppc64/usr.bin/procstat/ (props changed) Modified: projects/ppc64/bin/pkill/pkill.1 ============================================================================== --- projects/ppc64/bin/pkill/pkill.1 Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/bin/pkill/pkill.1 Wed Jun 23 19:22:09 2010 (r209478) @@ -156,14 +156,16 @@ The value matches processes not in jail. .It Fl l Long output. -Print the process name in addition to the process ID for each matching +For +.Nm pgrep , +print the process name in addition to the process ID for each matching process. If used in conjunction with .Fl f , print the process ID and the full argument list for each matching process. -This option can only be used with the -.Nm pgrep -command. +For +.Nm pkill , +display the kill command used for each process killed. .It Fl n Select only the newest (most recently started) of the matching processes. .It Fl o Modified: projects/ppc64/bin/pkill/pkill.c ============================================================================== --- projects/ppc64/bin/pkill/pkill.c Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/bin/pkill/pkill.c Wed Jun 23 19:22:09 2010 (r209478) @@ -128,7 +128,7 @@ main(int argc, char **argv) { char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q, *pidfile; const char *execf, *coref; - int ancestors, debug_opt; + int ancestors, debug_opt, did_action; int i, ch, bestidx, rv, criteria, pidfromfile, pidfilelock; size_t jsz; int (*action)(const struct kinfo_proc *); @@ -242,8 +242,6 @@ main(int argc, char **argv) criteria = 1; break; case 'l': - if (!pgrep) - usage(); longfmt = 1; break; case 'n': @@ -530,16 +528,24 @@ main(int argc, char **argv) /* * Take the appropriate action for each matched process, if any. */ + did_action = 0; for (i = 0, rv = 0, kp = plist; i < nproc; i++, kp++) { if (PSKIP(kp)) continue; if (selected[i]) { + if (longfmt && !pgrep) { + did_action = 1; + printf("kill -%d %d\n", signum, kp->ki_pid); + } if (inverse) continue; } else if (!inverse) continue; rv |= (*action)(kp); } + if (!did_action && !pgrep && longfmt) + fprintf(stderr, + "No matching processes belonging to you were found\n"); exit(rv ? STATUS_MATCH : STATUS_NOMATCH); } @@ -552,7 +558,7 @@ usage(void) if (pgrep) ustr = "[-LSfilnoqvx] [-d delim]"; else - ustr = "[-signal] [-ILfinovx]"; + ustr = "[-signal] [-ILfilnovx]"; fprintf(stderr, "usage: %s %s [-F pidfile] [-G gid] [-M core] [-N system]\n" Modified: projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l ============================================================================== --- projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Wed Jun 23 19:22:09 2010 (r209478) @@ -67,8 +67,12 @@ * for all subsequent invocations, which is the effect desired. */ #undef unput -#define unput(c) \ - if (c != EOF) yyunput( c, yytext_ptr ) +#define unput(c) \ + do { \ + int _c = c; \ + if (_c != EOF) \ + yyunput(_c, yytext_ptr); \ + } while(0) #endif static int id_or_type(const char *); Modified: projects/ppc64/contrib/binutils/binutils/doc/readelf.1 ============================================================================== --- projects/ppc64/contrib/binutils/binutils/doc/readelf.1 Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/contrib/binutils/binutils/doc/readelf.1 Wed Jun 23 19:22:09 2010 (r209478) @@ -247,14 +247,6 @@ Displays the contents of the file's relo .PD Displays the contents of the file's unwind section, if it has one. Only the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported. -.IP "\fB\-u\fR" 4 -.IX Item "-u" -.PD 0 -.IP "\fB\-\-unwind\fR" 4 -.IX Item "--unwind" -.PD -Displays the contents of the file's unwind section, if it has one. Only -the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported. .IP "\fB\-d\fR" 4 .IX Item "-d" .PD 0 Modified: projects/ppc64/lib/Makefile ============================================================================== --- projects/ppc64/lib/Makefile Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/lib/Makefile Wed Jun 23 19:22:09 2010 (r209478) @@ -138,7 +138,7 @@ _libsdp= libsdp _libbsnmp= libbsnmp .endif -.if ${MK_CLANG} != "no" +.if ${MK_CLANG} != "no" && !defined(COMPAT_32BIT) _clang= clang .endif Modified: projects/ppc64/lib/libc/nls/ru_RU.KOI8-R.msg ============================================================================== --- projects/ppc64/lib/libc/nls/ru_RU.KOI8-R.msg Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/lib/libc/nls/ru_RU.KOI8-R.msg Wed Jun 23 19:22:09 2010 (r209478) @@ -183,6 +183,16 @@ $ ENOATTR 87 áÔÒÉÂÕÔ ÎÅ ÎÁÊÄÅÎ $ EDOOFUS 88 ïÛÉÂËÁ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ +$ EBADMSG +89 ðÌÏÈÏÊ ÆÏÒÍÁÔ ÓÏÏÂÝÅÎÉÑ +$ EMULTIHOP +90 ðÏÐÙÔËÁ ÍÕÌØÔÉÈÏÐÁ +$ ENOLINK +91 ëÁÎÁÌ ÒÁÚÏÒ×ÁÎ +$ EPROTO +92 ïÛÉÂËÁ ÐÒÏÔÏËÏÌÁ +$ ENOTCAPABLE +93 îÅÄÏÓÔÁÔÏÞÎÏ ×ÏÚÍÏÖÎÏÓÔÅÊ $ $ strsignal() support catalog $ Modified: projects/ppc64/sbin/fsck_ffs/main.c ============================================================================== --- projects/ppc64/sbin/fsck_ffs/main.c Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/sbin/fsck_ffs/main.c Wed Jun 23 19:22:09 2010 (r209478) @@ -388,16 +388,18 @@ checkfilesys(char *filesys) /* * Determine if we can and should do journal recovery. */ - if ((sblock.fs_flags & (FS_SUJ | FS_NEEDSFSCK)) == FS_SUJ) { - if (preen || reply("USE JOURNAL?")) { - if (suj_check(filesys) == 0) { - if (chkdoreload(mntp) == 0) - exit(0); - exit(4); + if ((sblock.fs_flags & FS_SUJ) == FS_SUJ) { + if ((sblock.fs_flags & FS_NEEDSFSCK) != FS_NEEDSFSCK && skipclean) { + if (preen || reply("USE JOURNAL?")) { + if (suj_check(filesys) == 0) { + printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); + if (chkdoreload(mntp) == 0) + exit(0); + exit(4); + } } - /* suj_check failed, fall through. */ + printf("** Skipping journal, falling through to full fsck\n\n"); } - printf("** Skipping journal, falling through to full fsck\n"); /* * Write the superblock so we don't try to recover the * journal on another pass. Modified: projects/ppc64/sbin/fsck_ffs/suj.c ============================================================================== --- projects/ppc64/sbin/fsck_ffs/suj.c Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/sbin/fsck_ffs/suj.c Wed Jun 23 19:22:09 2010 (r209478) @@ -37,12 +37,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include #include #include #include #include #include #include +#include #include #include @@ -141,7 +144,10 @@ uint64_t freedir; uint64_t jbytes; uint64_t jrecs; +static jmp_buf jmpbuf; + typedef void (*ino_visitor)(ino_t, ufs_lbn_t, ufs2_daddr_t, int); +static void err_suj(const char *, ...) __dead2; static void ino_trunc(ino_t, off_t); static void ino_decr(ino_t); static void ino_adjust(struct suj_ino *); @@ -155,11 +161,30 @@ errmalloc(size_t n) a = malloc(n); if (a == NULL) - errx(1, "malloc(%zu)", n); + err(EX_OSERR, "malloc(%zu)", n); return (a); } /* + * When hit a fatal error in journalling check, print out + * the error and then offer to fallback to normal fsck. + */ +static void +err_suj(const char * restrict fmt, ...) +{ + va_list ap; + + if (preen) + (void)fprintf(stdout, "%s: ", cdevname); + + va_start(ap, fmt); + (void)vfprintf(stdout, fmt, ap); + va_end(ap); + + longjmp(jmpbuf, -1); +} + +/* * Open the given provider, load superblock. */ static void @@ -169,9 +194,9 @@ opendisk(const char *devnam) return; disk = malloc(sizeof(*disk)); if (disk == NULL) - errx(1, "malloc(%zu)", sizeof(*disk)); + err(EX_OSERR, "malloc(%zu)", sizeof(*disk)); if (ufs_disk_fillout(disk, devnam) == -1) { - err(1, "ufs_disk_fillout(%s) failed: %s", devnam, + err(EX_OSERR, "ufs_disk_fillout(%s) failed: %s", devnam, disk->d_error); } fs = &disk->d_fs; @@ -203,9 +228,9 @@ closedisk(const char *devnam) fs->fs_time = time(NULL); fs->fs_mtime = time(NULL); if (sbwrite(disk, 0) == -1) - err(1, "sbwrite(%s)", devnam); + err(EX_OSERR, "sbwrite(%s)", devnam); if (ufs_disk_close(disk) == -1) - err(1, "ufs_disk_close(%s)", devnam); + err(EX_OSERR, "ufs_disk_close(%s)", devnam); free(disk); disk = NULL; fs = NULL; @@ -221,10 +246,8 @@ cg_lookup(int cgx) struct cghd *hd; struct suj_cg *sc; - if (cgx < 0 || cgx >= fs->fs_ncg) { - abort(); - errx(1, "Bad cg number %d", cgx); - } + if (cgx < 0 || cgx >= fs->fs_ncg) + err_suj("Bad cg number %d\n", cgx); if (lastcg && lastcg->sc_cgx == cgx) return (lastcg); hd = &cghash[SUJ_HASH(cgx)]; @@ -241,7 +264,7 @@ cg_lookup(int cgx) LIST_INSERT_HEAD(hd, sc, sc_next); if (bread(disk, fsbtodb(fs, cgtod(fs, sc->sc_cgx)), sc->sc_cgbuf, fs->fs_bsize) == -1) - err(1, "Unable to read cylinder group %d", sc->sc_cgx); + err_suj("Unable to read cylinder group %d\n", sc->sc_cgx); return (sc); } @@ -344,7 +367,7 @@ dblk_read(ufs2_daddr_t blk, int size) dblk->db_buf = errmalloc(size); dblk->db_size = size; if (bread(disk, fsbtodb(fs, blk), dblk->db_buf, size) == -1) - err(1, "Failed to read data block %jd", blk); + err_suj("Failed to read data block %jd\n", blk); } return (dblk->db_buf); } @@ -370,7 +393,7 @@ dblk_write(void) continue; if (bwrite(disk, fsbtodb(fs, dblk->db_blk), dblk->db_buf, dblk->db_size) == -1) - err(1, "Unable to write block %jd", + err_suj("Unable to write block %jd\n", dblk->db_blk); } } @@ -403,7 +426,7 @@ ino_read(ino_t ino) iblk->ib_blk = blk; LIST_INSERT_HEAD(hd, iblk, ib_next); if (bread(disk, fsbtodb(fs, blk), iblk->ib_buf, fs->fs_bsize) == -1) - err(1, "Failed to read inode block %jd", blk); + err_suj("Failed to read inode block %jd\n", blk); found: sc->sc_lastiblk = iblk; off = ino_to_fsbo(fs, ino); @@ -447,7 +470,7 @@ iblk_write(struct ino_blk *iblk) return; if (bwrite(disk, fsbtodb(fs, iblk->ib_blk), iblk->ib_buf, fs->fs_bsize) == -1) - err(1, "Failed to write inode block %jd", iblk->ib_blk); + err_suj("Failed to write inode block %jd\n", iblk->ib_blk); } static int @@ -679,9 +702,9 @@ indir_blkatoff(ufs2_daddr_t blk, ino_t i return (0); level = lbn_level(cur); if (level == -1) - errx(1, "Invalid indir lbn %jd", lbn); + err_suj("Invalid indir lbn %jd\n", lbn); if (level == 0 && lbn < 0) - errx(1, "Invalid lbn %jd", lbn); + err_suj("Invalid lbn %jd\n", lbn); bap2 = (void *)dblk_read(blk, fs->fs_bsize); bap1 = (void *)bap2; lbnadd = 1; @@ -693,7 +716,7 @@ indir_blkatoff(ufs2_daddr_t blk, ino_t i else i = (-lbn - base) / lbnadd; if (i < 0 || i >= NINDIR(fs)) - errx(1, "Invalid indirect index %d produced by lbn %jd", + err_suj("Invalid indirect index %d produced by lbn %jd\n", i, lbn); if (level == 0) cur = base + (i * lbnadd); @@ -705,10 +728,8 @@ indir_blkatoff(ufs2_daddr_t blk, ino_t i blk = bap2[i]; if (cur == lbn) return (blk); - if (level == 0) { - abort(); - errx(1, "Invalid lbn %jd at level 0", lbn); - } + if (level == 0) + err_suj("Invalid lbn %jd at level 0\n", lbn); return indir_blkatoff(blk, ino, cur, lbn); } @@ -762,7 +783,8 @@ ino_blkatoff(union dinode *ip, ino_t ino continue; return indir_blkatoff(DIP(ip, di_ib[i]), ino, -cur - i, lbn); } - errx(1, "lbn %jd not in ino", lbn); + err_suj("lbn %jd not in ino\n", lbn); + /* NOTREACHED */ } /* @@ -851,7 +873,7 @@ ino_isat(ino_t parent, off_t diroff, ino dpoff += dp->d_reclen; } while (dpoff <= doff); if (dpoff > fs->fs_bsize) - errx(1, "Corrupt directory block in dir ino %d", parent); + err_suj("Corrupt directory block in dir ino %d\n", parent); /* Not found. */ if (dpoff != doff) { if (debug) @@ -907,7 +929,7 @@ indir_visit(ino_t ino, ufs_lbn_t lbn, uf return; level = lbn_level(lbn); if (level == -1) - errx(1, "Invalid level for lbn %jd", lbn); + err_suj("Invalid level for lbn %jd\n", lbn); if ((flags & VISIT_ROOT) == 0 && blk_isindir(blk, ino, lbn) == 0) { if (debug) printf("blk %jd ino %d lbn %jd(%d) is not indir.\n", @@ -1203,7 +1225,7 @@ ino_reclaim(union dinode *ip, ino_t ino, uint32_t gen; if (ino == ROOTINO) - errx(1, "Attempting to free ROOTINO"); + err_suj("Attempting to free ROOTINO\n"); if (debug) printf("Truncating and freeing ino %d, nlink %d, mode %o\n", ino, DIP(ip, di_nlink), DIP(ip, di_mode)); @@ -1240,9 +1262,9 @@ ino_decr(ino_t ino) nlink = DIP(ip, di_nlink); mode = DIP(ip, di_mode); if (nlink < 1) - errx(1, "Inode %d link count %d invalid", ino, nlink); + err_suj("Inode %d link count %d invalid\n", ino, nlink); if (mode == 0) - errx(1, "Inode %d has a link of %d with 0 mode.", ino, nlink); + err_suj("Inode %d has a link of %d with 0 mode\n", ino, nlink); nlink--; if ((mode & IFMT) == IFDIR) reqlink = 2; @@ -1300,8 +1322,8 @@ ino_adjust(struct suj_ino *sino) ip = ino_read(ino); mode = DIP(ip, di_mode) & IFMT; if (nlink > LINK_MAX) - errx(1, - "ino %d nlink manipulation error, new link %d, old link %d", + err_suj( + "ino %d nlink manipulation error, new link %d, old link %d\n", ino, nlink, DIP(ip, di_nlink)); if (debug) printf("Adjusting ino %d, nlink %d, old link %d lastmode %o\n", @@ -1359,7 +1381,7 @@ indir_trunc(ino_t ino, ufs_lbn_t lbn, uf dirty = 0; level = lbn_level(lbn); if (level == -1) - errx(1, "Invalid level for lbn %jd", lbn); + err_suj("Invalid level for lbn %jd\n", lbn); lbnadd = 1; for (i = level; i > 0; i--) lbnadd *= NINDIR(fs); @@ -1488,7 +1510,7 @@ ino_trunc(ino_t ino, off_t size) bn = DIP(ip, di_db[visitlbn]); if (bn == 0) - errx(1, "Bad blk at ino %d lbn %jd\n", ino, visitlbn); + err_suj("Bad blk at ino %d lbn %jd\n", ino, visitlbn); oldspace = sblksize(fs, cursize, visitlbn); newspace = sblksize(fs, size, visitlbn); if (oldspace != newspace) { @@ -1512,7 +1534,7 @@ ino_trunc(ino_t ino, off_t size) bn = ino_blkatoff(ip, ino, visitlbn, &frags); if (bn == 0) - errx(1, "Block missing from ino %d at lbn %jd\n", + err_suj("Block missing from ino %d at lbn %jd\n", ino, visitlbn); clrsize = frags * fs->fs_fsize; buf = dblk_read(bn, clrsize); @@ -1555,7 +1577,7 @@ ino_check(struct suj_ino *sino) isat = ino_isat(rrec->jr_parent, rrec->jr_diroff, rrec->jr_ino, &mode, &isdot); if (isat && (mode & IFMT) != (rrec->jr_mode & IFMT)) - errx(1, "Inode mode/directory type mismatch %o != %o", + err_suj("Inode mode/directory type mismatch %o != %o\n", mode, rrec->jr_mode); if (debug) printf("jrefrec: op %d ino %d, nlink %d, parent %d, " @@ -1778,7 +1800,7 @@ cg_write(struct suj_cg *sc) fs->fs_cs(fs, sc->sc_cgx) = cgp->cg_cs; if (bwrite(disk, fsbtodb(fs, cgtod(fs, sc->sc_cgx)), sc->sc_cgbuf, fs->fs_bsize) == -1) - err(1, "Unable to write cylinder group %d", sc->sc_cgx); + err_suj("Unable to write cylinder group %d\n", sc->sc_cgx); } /* @@ -1970,6 +1992,7 @@ ino_build_ref(struct suj_ino *sino, stru continue; diroff = mvrec->jm_oldoff; TAILQ_REMOVE(&sino->si_movs, srn, sr_next); + free(srn); ino_dup_ref(sino, refrec, diroff); } } @@ -2026,7 +2049,7 @@ ino_build_ref(struct suj_ino *sino, stru TAILQ_REMOVE(&sino->si_newrecs, srn, sr_next); break; default: - errx(1, "ino_build_ref: Unknown op %d", + err_suj("ino_build_ref: Unknown op %d\n", srn->sr_rec->rec_jrefrec.jr_op); } } @@ -2056,7 +2079,7 @@ ino_build(struct suj_ino *sino) TAILQ_INSERT_TAIL(&sino->si_movs, srec, sr_next); break; default: - errx(1, "ino_build: Unknown op %d", + err_suj("ino_build: Unknown op %d\n", srec->sr_rec->rec_jrefrec.jr_op); } } @@ -2107,7 +2130,7 @@ blk_build(struct jblkrec *blkrec) blkrec->jb_blkno -= frag; blkrec->jb_oldfrags = frag; if (blkrec->jb_oldfrags + blkrec->jb_frags > fs->fs_frag) - errx(1, "Invalid fragment count %d oldfrags %d", + err_suj("Invalid fragment count %d oldfrags %d\n", blkrec->jb_frags, frag); /* * Detect dups. If we detect a dup we always discard the oldest @@ -2185,7 +2208,7 @@ suj_build(void) ino_build_trunc((struct jtrncrec *)rec); break; default: - errx(1, "Unknown journal operation %d (%d)", + err_suj("Unknown journal operation %d (%d)\n", rec->rec_jrefrec.jr_op, off); } i++; @@ -2233,9 +2256,10 @@ suj_prune(void) newseq = seg->ss_rec.jsr_seq; } - if (newseq != oldseq) - errx(1, "Journal file sequence mismatch %jd != %jd", + if (newseq != oldseq) { + err_suj("Journal file sequence mismatch %jd != %jd\n", newseq, oldseq); + } /* * The kernel may asynchronously write segments which can create * gaps in the sequence space. Throw away any segments after the @@ -2463,9 +2487,10 @@ restart: /* * Read 1MB at a time and scan for records within this block. */ - if (bread(disk, blk, &block, size) == -1) - err(1, "Error reading journal block %jd", + if (bread(disk, blk, &block, size) == -1) { + err_suj("Error reading journal block %jd\n", (intmax_t)blk); + } for (rec = (void *)block; size; size -= recsize, rec = (struct jsegrec *)((uintptr_t)rec + recsize)) { recsize = DEV_BSIZE; @@ -2544,7 +2569,7 @@ suj_find(ino_t ino, ufs_lbn_t lbn, ufs2_ return; bytes = lfragtosize(fs, frags); if (bread(disk, fsbtodb(fs, blk), block, bytes) <= 0) - err(1, "Failed to read ROOTINO directory block %jd", blk); + err_suj("Failed to read ROOTINO directory block %jd\n", blk); for (off = 0; off < bytes; off += dp->d_reclen) { dp = (struct direct *)&block[off]; if (dp->d_reclen == 0) @@ -2569,17 +2594,43 @@ suj_check(const char *filesys) union dinode *jip; union dinode *ip; uint64_t blocks; + int retval; + struct suj_seg *seg; + struct suj_seg *segn; opendisk(filesys); TAILQ_INIT(&allsegs); + + /* + * Set an exit point when SUJ check failed + */ + retval = setjmp(jmpbuf); + if (retval != 0) { + pwarn("UNEXPECTED SU+J INCONSISTENCY\n"); + TAILQ_FOREACH_SAFE(seg, &allsegs, ss_next, segn) { + TAILQ_REMOVE(&allsegs, seg, ss_next); + free(seg->ss_blk); + free(seg); + } + if (reply("FALLBACK TO FULL FSCK") == 0) { + ckfini(0); + exit(EEXIT); + } else + return (-1); + } + /* * Find the journal inode. */ ip = ino_read(ROOTINO); sujino = 0; ino_visit(ip, ROOTINO, suj_find, 0); - if (sujino == 0) - errx(1, "Journal inode removed. Use tunefs to re-create."); + if (sujino == 0) { + printf("Journal inode removed. Use tunefs to re-create.\n"); + sblock.fs_flags &= ~FS_SUJ; + sblock.fs_sujfree = 0; + return (-1); + } /* * Fetch the journal inode and verify it. */ @@ -2595,8 +2646,10 @@ suj_check(const char *filesys) DIP(jip, di_size), sujino); suj_jblocks = jblocks_create(); blocks = ino_visit(jip, sujino, suj_add_block, 0); - if (blocks != numfrags(fs, DIP(jip, di_size))) - errx(1, "Sparse journal inode %d.\n", sujino); + if (blocks != numfrags(fs, DIP(jip, di_size))) { + printf("Sparse journal inode %d.\n", sujino); + return (-1); + } suj_read(); jblocks_destroy(suj_jblocks); suj_jblocks = NULL; @@ -2612,7 +2665,7 @@ suj_check(const char *filesys) cg_apply(cg_check_blk); cg_apply(cg_check_ino); } - if (preen == 0 && reply("WRITE CHANGES") == 0) + if (preen == 0 && (jrecs > 0 || jbytes > 0) && reply("WRITE CHANGES") == 0) return (0); /* * To remain idempotent with partial truncations the free bitmaps @@ -2625,10 +2678,12 @@ suj_check(const char *filesys) cg_apply(cg_write_inos); /* Write back superblock. */ closedisk(filesys); - printf("** %jd journal records in %jd bytes for %.2f%% utilization\n", - jrecs, jbytes, ((float)jrecs / (float)(jbytes / JREC_SIZE)) * 100); - printf("** Freed %jd inodes (%jd dirs) %jd blocks, and %jd frags.\n", - freeinos, freedir, freeblocks, freefrags); + if (jrecs > 0 || jbytes > 0) { + printf("** %jd journal records in %jd bytes for %.2f%% utilization\n", + jrecs, jbytes, ((float)jrecs / (float)(jbytes / JREC_SIZE)) * 100); + printf("** Freed %jd inodes (%jd dirs) %jd blocks, and %jd frags.\n", + freeinos, freedir, freeblocks, freefrags); + } return (0); } Modified: projects/ppc64/sbin/fsck_msdosfs/Makefile ============================================================================== --- projects/ppc64/sbin/fsck_msdosfs/Makefile Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/sbin/fsck_msdosfs/Makefile Wed Jun 23 19:22:09 2010 (r209478) @@ -9,6 +9,6 @@ MAN= fsck_msdosfs.8 SRCS= main.c check.c boot.c fat.c dir.c fsutil.c CFLAGS+= -I${FSCK} -WARNS?= 0 +WARNS?= 2 .include Modified: projects/ppc64/sbin/fsck_msdosfs/boot.c ============================================================================== --- projects/ppc64/sbin/fsck_msdosfs/boot.c Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/sbin/fsck_msdosfs/boot.c Wed Jun 23 19:22:09 2010 (r209478) @@ -48,13 +48,14 @@ readboot(int dosfs, struct bootblock *bo int ret = FSOK; int i; - if ((size_t)read(dosfs, block, sizeof block) != sizeof block) { + if (read(dosfs, block, sizeof block) != sizeof block) { perror("could not read boot block"); return FSFATAL; } if (block[510] != 0x55 || block[511] != 0xaa) { - pfatal("Invalid signature in boot block: %02x%02x", block[511], block[510]); + pfatal("Invalid signature in boot block: %02x%02x", + block[511], block[510]); return FSFATAL; } @@ -72,8 +73,10 @@ readboot(int dosfs, struct bootblock *bo boot->bpbFATsmall = block[22] + (block[23] << 8); boot->SecPerTrack = block[24] + (block[25] << 8); boot->bpbHeads = block[26] + (block[27] << 8); - boot->bpbHiddenSecs = block[28] + (block[29] << 8) + (block[30] << 16) + (block[31] << 24); - boot->bpbHugeSectors = block[32] + (block[33] << 8) + (block[34] << 16) + (block[35] << 24); + boot->bpbHiddenSecs = block[28] + (block[29] << 8) + + (block[30] << 16) + (block[31] << 24); + boot->bpbHugeSectors = block[32] + (block[33] << 8) + + (block[34] << 16) + (block[35] << 24); boot->FATsecs = boot->bpbFATsmall; @@ -97,10 +100,9 @@ readboot(int dosfs, struct bootblock *bo boot->bpbFSInfo = block[48] + (block[49] << 8); boot->bpbBackup = block[50] + (block[51] << 8); - if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) - != boot->bpbFSInfo * boot->bpbBytesPerSec - || read(dosfs, fsinfo, sizeof fsinfo) - != sizeof fsinfo) { + if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, + SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec + || read(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { perror("could not read fsinfo block"); return FSFATAL; } @@ -124,7 +126,8 @@ readboot(int dosfs, struct bootblock *bo fsinfo[0x3fc] = fsinfo[0x3fd] = 0; fsinfo[0x3fe] = 0x55; fsinfo[0x3ff] = 0xaa; - if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) + if (lseek(dosfs, boot->bpbFSInfo * + boot->bpbBytesPerSec, SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec || write(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { @@ -144,7 +147,8 @@ readboot(int dosfs, struct bootblock *bo + (fsinfo[0x1ef] << 24); } - if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, SEEK_SET) + if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, + SEEK_SET) != boot->bpbBackup * boot->bpbBytesPerSec || read(dosfs, backup, sizeof backup) != sizeof backup) { perror("could not read backup bootblock"); @@ -172,11 +176,10 @@ readboot(int dosfs, struct bootblock *bo /* Check backup bpbFSInfo? XXX */ } - boot->ClusterOffset = (boot->bpbRootDirEnts * 32 + boot->bpbBytesPerSec - 1) - / boot->bpbBytesPerSec - + boot->bpbResSectors - + boot->bpbFATs * boot->FATsecs - - CLUST_FIRST * boot->bpbSecPerClust; + boot->ClusterOffset = (boot->bpbRootDirEnts * 32 + + boot->bpbBytesPerSec - 1) / boot->bpbBytesPerSec + + boot->bpbResSectors + boot->bpbFATs * boot->FATsecs - + CLUST_FIRST * boot->bpbSecPerClust; if (boot->bpbBytesPerSec % DOSBOOTBLOCKSIZE != 0) { pfatal("Invalid sector size: %u", boot->bpbBytesPerSec); @@ -191,7 +194,8 @@ readboot(int dosfs, struct bootblock *bo boot->NumSectors = boot->bpbSectors; } else boot->NumSectors = boot->bpbHugeSectors; - boot->NumClusters = (boot->NumSectors - boot->ClusterOffset) / boot->bpbSecPerClust; + boot->NumClusters = (boot->NumSectors - boot->ClusterOffset) / + boot->bpbSecPerClust; if (boot->flags&FAT32) boot->ClustMask = CLUST32_MASK; Modified: projects/ppc64/sbin/fsck_msdosfs/check.c ============================================================================== --- projects/ppc64/sbin/fsck_msdosfs/check.c Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/sbin/fsck_msdosfs/check.c Wed Jun 23 19:22:09 2010 (r209478) @@ -98,7 +98,7 @@ checkfilesys(const char *fname) } if (boot.ValidFat < 0) - for (i = 1; i < (int)boot.bpbFATs; i++) { + for (i = 1; i < boot.bpbFATs; i++) { struct fatEntry *currentFat; mod |= readfat(dosfs, &boot, i, ¤tFat); Modified: projects/ppc64/sbin/fsck_msdosfs/dir.c ============================================================================== --- projects/ppc64/sbin/fsck_msdosfs/dir.c Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/sbin/fsck_msdosfs/dir.c Wed Jun 23 19:22:09 2010 (r209478) @@ -242,7 +242,8 @@ resetDosDirSection(struct bootblock *boo memset(rootDir, 0, sizeof *rootDir); if (boot->flags & FAT32) { - if (boot->bpbRootClust < CLUST_FIRST || boot->bpbRootClust >= boot->NumClusters) { + if (boot->bpbRootClust < CLUST_FIRST || + boot->bpbRootClust >= boot->NumClusters) { pfatal("Root directory starts with cluster out of range(%u)", boot->bpbRootClust); return FSFATAL; @@ -356,7 +357,8 @@ removede(int f, struct bootblock *boot, pwarn("Invalid long filename entry for %s\n", path); break; case 1: - pwarn("Invalid long filename entry at end of directory %s\n", path); + pwarn("Invalid long filename entry at end of directory %s\n", + path); break; case 2: pwarn("Invalid long filename entry for volume label\n"); @@ -418,7 +420,8 @@ checksize(struct bootblock *boot, struct cl_t cl; u_int32_t sz = 0; - for (cl = dir->head; (sz += boot->ClusterSize) < dir->size;) + for (cl = dir->head; (sz += boot->ClusterSize) < + dir->size;) cl = fat[cl].next; clearchain(boot, fat, fat[cl].next); fat[cl].next = CLUST_EOF; @@ -462,7 +465,8 @@ readDosDirSection(int f, struct bootbloc do { if (!(boot->flags & FAT32) && !dir->parent) { last = boot->bpbRootDirEnts * 32; - off = boot->bpbResSectors + boot->bpbFATs * boot->FATsecs; + off = boot->bpbResSectors + boot->bpbFATs * + boot->FATsecs; } else { last = boot->bpbSecPerClust * boot->bpbBytesPerSec; off = cl * boot->bpbSecPerClust + boot->ClusterOffset; @@ -547,7 +551,8 @@ readDosDirSection(int f, struct bootbloc } lidx = *p & LRNOMASK; t = longName + --lidx * 13; - for (k = 1; k < 11 && t < longName + sizeof(longName); k += 2) { + for (k = 1; k < 11 && t < longName + + sizeof(longName); k += 2) { if (!p[k] && !p[k + 1]) break; *t++ = p[k]; Modified: projects/ppc64/sbin/fsck_msdosfs/fat.c ============================================================================== --- projects/ppc64/sbin/fsck_msdosfs/fat.c Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/sbin/fsck_msdosfs/fat.c Wed Jun 23 19:22:09 2010 (r209478) @@ -87,7 +87,8 @@ checkdirty(int fs, struct bootblock *boo goto err; } - if (read(fs, buffer, boot->bpbBytesPerSec) != boot->bpbBytesPerSec) { + if ((size_t)read(fs, buffer, boot->bpbBytesPerSec) != + boot->bpbBytesPerSec) { perror("Unable to read FAT"); goto err; } Modified: projects/ppc64/sbin/geom/class/part/geom_part.c ============================================================================== --- projects/ppc64/sbin/geom/class/part/geom_part.c Wed Jun 23 18:46:10 2010 (r209477) +++ projects/ppc64/sbin/geom/class/part/geom_part.c Wed Jun 23 19:22:09 2010 (r209478) @@ -40,6 +40,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include @@ -60,6 +62,9 @@ static char autofill[] = "*"; static char optional[] = ""; static char flags[] = "C"; +static char sstart[32]; +static char ssize[32]; + static const char const bootcode_param[] = "bootcode"; static const char const index_param[] = "index"; static const char const partcode_param[] = "partcode"; @@ -68,8 +73,7 @@ static struct gclass *find_class(struct static struct ggeom * find_geom(struct gclass *, const char *); static const char *find_geomcfg(struct ggeom *, const char *); static const char *find_provcfg(struct gprovider *, const char *); -static struct gprovider *find_provider(struct ggeom *, - unsigned long long); +static struct gprovider *find_provider(struct ggeom *, off_t); static const char *fmtsize(int64_t); static int gpart_autofill(struct gctl_req *); static int gpart_autofill_resize(struct gctl_req *); @@ -84,8 +88,8 @@ static void gpart_write_partcode_vtoc8(s struct g_command PUBSYM(class_commands)[] = { { "add", 0, gpart_issue, { - { 'b', "start", autofill, G_TYPE_ASCLBA }, - { 's', "size", autofill, G_TYPE_ASCLBA }, + { 'b', "start", autofill, G_TYPE_STRING }, + { 's', "size", autofill, G_TYPE_STRING }, { 't', "type", NULL, G_TYPE_STRING }, { 'i', index_param, optional, G_TYPE_ASCNUM }, { 'l', "label", optional, G_TYPE_STRING }, @@ -149,7 +153,7 @@ struct g_command PUBSYM(class_commands)[ "geom", NULL }, { "resize", 0, gpart_issue, { - { 's', "size", autofill, G_TYPE_ASCLBA }, + { 's', "size", autofill, G_TYPE_STRING }, { 'i', index_param, NULL, G_TYPE_ASCNUM }, { 'f', "flags", flags, G_TYPE_STRING }, G_OPT_SENTINEL }, @@ -207,11 +211,11 @@ find_provcfg(struct gprovider *pp, const } static struct gprovider * -find_provider(struct ggeom *gp, unsigned long long minsector) +find_provider(struct ggeom *gp, off_t minsector) { struct gprovider *pp, *bestpp; const char *s; - unsigned long long sector, bestsector; + off_t sector, bestsector; bestpp = NULL; bestsector = 0; @@ -219,9 +223,10 @@ find_provider(struct ggeom *gp, unsigned s = find_provcfg(pp, "start"); if (s == NULL) { s = find_provcfg(pp, "offset"); - sector = atoll(s) / pp->lg_sectorsize; + sector = + (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; } else - sector = atoll(s); + sector = (off_t)strtoimax(s, NULL, 0); if (sector < minsector) continue; @@ -271,18 +276,12 @@ gpart_autofill_resize(struct gctl_req *r struct gclass *cp; struct ggeom *gp; struct gprovider *pp; - unsigned long long last, size, start, new_size; - unsigned long long lba, new_lba; + off_t last, size, start, new_size; + off_t lba, new_lba; const char *s; char *val; int error, idx; - s = gctl_get_ascii(req, "size"); - if (*s == '*') - new_size = (unsigned long long)atoll(s); - else - return (0); - s = gctl_get_ascii(req, index_param); idx = strtol(s, &val, 10); if (idx < 1 || *s == '\0' || *val != '\0') @@ -303,8 +302,22 @@ gpart_autofill_resize(struct gctl_req *r gp = find_geom(cp, s); if (gp == NULL) errx(EXIT_FAILURE, "No such geom: %s.", s); - last = atoll(find_geomcfg(gp, "last")); + pp = LIST_FIRST(&gp->lg_consumer)->lg_provider; + if (pp == NULL) + errx(EXIT_FAILURE, "Provider for geom %s not found.", s); + + s = gctl_get_ascii(req, "size"); + if (*s == '*') + new_size = 0; + else { + error = g_parse_lba(s, pp->lg_sectorsize, &new_size); + if (error) + errc(EXIT_FAILURE, error, "Invalid size param"); + /* no autofill necessary. */ + goto done; + } + last = (off_t)strtoimax(find_geomcfg(gp, "last"), NULL, 0); LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { s = find_provcfg(pp, "index"); if (s == NULL) @@ -318,18 +331,21 @@ gpart_autofill_resize(struct gctl_req *r s = find_provcfg(pp, "start"); if (s == NULL) { s = find_provcfg(pp, "offset"); - start = atoll(s) / pp->lg_sectorsize; + start = (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; } else - start = atoll(s); + start = (off_t)strtoimax(s, NULL, 0); s = find_provcfg(pp, "end"); if (s == NULL) { s = find_provcfg(pp, "length"); - lba = start + atoll(s) / pp->lg_sectorsize; + lba = start + + (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; } else - lba = atoll(s) + 1; + lba = (off_t)strtoimax(s, NULL, 0) + 1; - if (lba > last) + if (lba > last) { + geom_deletetree(&mesh); return (ENOSPC); + } size = lba - start; pp = find_provider(gp, lba); if (pp == NULL) @@ -338,22 +354,25 @@ gpart_autofill_resize(struct gctl_req *r s = find_provcfg(pp, "start"); if (s == NULL) { s = find_provcfg(pp, "offset"); - new_lba = atoll(s) / pp->lg_sectorsize; + new_lba = + (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; } else - new_lba = atoll(s); - /* Is there any free space between current and + new_lba = (off_t)strtoimax(s, NULL, 0); + /* + * Is there any free space between current and * next providers? */ if (new_lba > lba) new_size = new_lba - start; - else + else { + geom_deletetree(&mesh); return (ENOSPC); + } } - asprintf(&val, "%llu", new_size); - if (val == NULL) - return (ENOMEM); - gctl_change_param(req, "size", -1, val); - +done: + snprintf(ssize, sizeof(ssize), "%jd", (intmax_t)new_size); + gctl_change_param(req, "size", -1, ssize); + geom_deletetree(&mesh); return (0); } @@ -364,11 +383,11 @@ gpart_autofill(struct gctl_req *req) struct gclass *cp; struct ggeom *gp; struct gprovider *pp; - unsigned long long first, last; - unsigned long long size, start; - unsigned long long lba, len, grade; + off_t first, last; + off_t size, start; + off_t lba, len; + uintmax_t grade; const char *s; - char *val; int error, has_size, has_start; s = gctl_get_ascii(req, "verb"); @@ -377,18 +396,6 @@ gpart_autofill(struct gctl_req *req) if (strcmp(s, "add") != 0) return (0); - s = gctl_get_ascii(req, "size"); - has_size = (*s == '*') ? 0 : 1; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu Jun 24 14:17:10 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D54D4106566C; Thu, 24 Jun 2010 14:17:10 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C12DC8FC1B; Thu, 24 Jun 2010 14:17:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5OEHABm010868; Thu, 24 Jun 2010 14:17:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5OEHAiZ010847; Thu, 24 Jun 2010 14:17:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006241417.o5OEHAiZ010847@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 24 Jun 2010 14:17:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209507 - in projects/ppc64: share/mk sys/amd64/amd64 sys/amd64/ia32 sys/amd64/include sys/arm/conf sys/compat/x86bios sys/conf sys/dev/fb sys/i386/i386 sys/kern sys/mips/atheros sys/mi... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2010 14:17:10 -0000 Author: nwhitehorn Date: Thu Jun 24 14:17:10 2010 New Revision: 209507 URL: http://svn.freebsd.org/changeset/base/209507 Log: IFC @ 209506 Added: projects/ppc64/sys/conf/ldscript.mips.n32 - copied unchanged from r209506, head/sys/conf/ldscript.mips.n32 projects/ppc64/sys/mips/conf/XLRN32 - copied unchanged from r209506, head/sys/mips/conf/XLRN32 Modified: projects/ppc64/sys/amd64/amd64/exception.S projects/ppc64/sys/amd64/ia32/ia32_exception.S projects/ppc64/sys/amd64/include/asmacros.h projects/ppc64/sys/compat/x86bios/x86bios.c projects/ppc64/sys/compat/x86bios/x86bios.h projects/ppc64/sys/dev/fb/vesa.c projects/ppc64/sys/i386/i386/apic_vector.s projects/ppc64/sys/i386/i386/atpic_vector.s projects/ppc64/sys/i386/i386/exception.s projects/ppc64/sys/kern/subr_param.c projects/ppc64/sys/mips/atheros/ar71xxreg.h projects/ppc64/sys/mips/include/asm.h projects/ppc64/sys/mips/include/cpu.h projects/ppc64/sys/mips/include/pte.h projects/ppc64/sys/mips/include/setjmp.h projects/ppc64/sys/mips/include/vm.h projects/ppc64/sys/mips/include/vmparam.h projects/ppc64/sys/mips/mips/exception.S projects/ppc64/sys/mips/mips/machdep.c projects/ppc64/sys/mips/mips/pm_machdep.c projects/ppc64/sys/mips/mips/pmap.c projects/ppc64/sys/mips/mips/stack_machdep.c projects/ppc64/sys/mips/mips/trap.c projects/ppc64/sys/mips/mips/vm_machdep.c projects/ppc64/sys/netinet/sctp_pcb.c projects/ppc64/sys/powerpc/aim/nexus.c projects/ppc64/sys/powerpc/booke/pmap.c projects/ppc64/sys/powerpc/include/intr_machdep.h projects/ppc64/sys/powerpc/include/openpicvar.h projects/ppc64/sys/powerpc/mpc85xx/atpic.c projects/ppc64/sys/powerpc/mpc85xx/ocpbus.c projects/ppc64/sys/powerpc/mpc85xx/opic.c projects/ppc64/sys/powerpc/mpc85xx/pci_ocp.c projects/ppc64/sys/powerpc/powermac/cpcht.c projects/ppc64/sys/powerpc/powermac/openpic_macio.c projects/ppc64/sys/powerpc/powerpc/intr_machdep.c projects/ppc64/sys/powerpc/powerpc/openpic.c projects/ppc64/sys/powerpc/powerpc/pic_if.m projects/ppc64/usr.sbin/sysinstall/sysinstall.8 Directory Properties: projects/ppc64/ (props changed) projects/ppc64/cddl/contrib/opensolaris/ (props changed) projects/ppc64/contrib/ee/ (props changed) projects/ppc64/contrib/expat/ (props changed) projects/ppc64/contrib/file/ (props changed) projects/ppc64/contrib/gdb/ (props changed) projects/ppc64/contrib/gnu-sort/ (props changed) projects/ppc64/contrib/groff/ (props changed) projects/ppc64/contrib/less/ (props changed) projects/ppc64/contrib/libpcap/ (props changed) projects/ppc64/contrib/ncurses/ (props changed) projects/ppc64/contrib/one-true-awk/ (props changed) projects/ppc64/contrib/openbsm/ (props changed) projects/ppc64/contrib/openpam/ (props changed) projects/ppc64/contrib/pf/ (props changed) projects/ppc64/contrib/tcpdump/ (props changed) projects/ppc64/contrib/tcsh/ (props changed) projects/ppc64/contrib/tzcode/stdtime/ (props changed) projects/ppc64/contrib/tzcode/zic/ (props changed) projects/ppc64/contrib/tzdata/ (props changed) projects/ppc64/contrib/wpa/ (props changed) projects/ppc64/lib/libutil/ (props changed) projects/ppc64/lib/libz/ (props changed) projects/ppc64/sbin/ (props changed) projects/ppc64/sbin/ipfw/ (props changed) projects/ppc64/share/mk/bsd.arch.inc.mk (props changed) projects/ppc64/sys/ (props changed) projects/ppc64/sys/amd64/include/xen/ (props changed) projects/ppc64/sys/arm/conf/SHEEVAPLUG (props changed) projects/ppc64/sys/cddl/contrib/opensolaris/ (props changed) projects/ppc64/sys/contrib/dev/acpica/ (props changed) projects/ppc64/sys/contrib/x86emu/ (props changed) projects/ppc64/sys/dev/xen/xenpci/ (props changed) projects/ppc64/usr.bin/csup/ (props changed) projects/ppc64/usr.bin/procstat/ (props changed) Modified: projects/ppc64/sys/amd64/amd64/exception.S ============================================================================== --- projects/ppc64/sys/amd64/amd64/exception.S Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/amd64/amd64/exception.S Thu Jun 24 14:17:10 2010 (r209507) @@ -191,6 +191,7 @@ alltraps_pushregs_no_rdi: movq %r14,TF_R14(%rsp) movq %r15,TF_R15(%rsp) movl $TF_HASSEGS,TF_FLAGS(%rsp) + cld FAKE_MCOUNT(TF_RIP(%rsp)) #ifdef KDTRACE_HOOKS /* @@ -270,6 +271,7 @@ IDTVEC(dblfault) movw %es,TF_ES(%rsp) movw %ds,TF_DS(%rsp) movl $TF_HASSEGS,TF_FLAGS(%rsp) + cld testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ jz 1f /* already running with kernel GS.base */ swapgs @@ -369,6 +371,7 @@ IDTVEC(fast_syscall) movq %r14,TF_R14(%rsp) /* C preserved */ movq %r15,TF_R15(%rsp) /* C preserved */ movl $TF_HASSEGS,TF_FLAGS(%rsp) + cld FAKE_MCOUNT(TF_RIP(%rsp)) movq %rsp,%rdi call syscall @@ -434,6 +437,7 @@ IDTVEC(nmi) movw %es,TF_ES(%rsp) movw %ds,TF_DS(%rsp) movl $TF_HASSEGS,TF_FLAGS(%rsp) + cld xorl %ebx,%ebx testb $SEL_RPL_MASK,TF_CS(%rsp) jnz nmi_fromuserspace Modified: projects/ppc64/sys/amd64/ia32/ia32_exception.S ============================================================================== --- projects/ppc64/sys/amd64/ia32/ia32_exception.S Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/amd64/ia32/ia32_exception.S Thu Jun 24 14:17:10 2010 (r209507) @@ -67,6 +67,7 @@ IDTVEC(int0x80_syscall) movq %r14,TF_R14(%rsp) movq %r15,TF_R15(%rsp) movl $TF_HASSEGS,TF_FLAGS(%rsp) + cld FAKE_MCOUNT(TF_RIP(%rsp)) movq %rsp, %rdi call ia32_syscall Modified: projects/ppc64/sys/amd64/include/asmacros.h ============================================================================== --- projects/ppc64/sys/amd64/include/asmacros.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/amd64/include/asmacros.h Thu Jun 24 14:17:10 2010 (r209507) @@ -166,7 +166,8 @@ movw %gs,TF_GS(%rsp) ; \ movw %es,TF_ES(%rsp) ; \ movw %ds,TF_DS(%rsp) ; \ - movl $TF_HASSEGS,TF_FLAGS(%rsp) + movl $TF_HASSEGS,TF_FLAGS(%rsp) ; \ + cld #define POP_FRAME \ movq TF_RDI(%rsp),%rdi ; \ Modified: projects/ppc64/sys/compat/x86bios/x86bios.c ============================================================================== --- projects/ppc64/sys/compat/x86bios/x86bios.c Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/compat/x86bios/x86bios.c Thu Jun 24 14:17:10 2010 (r209507) @@ -353,14 +353,14 @@ x86bios_emu_get_intr(struct x86emu *emu, } void * -x86bios_alloc(uint32_t *offset, size_t size) +x86bios_alloc(uint32_t *offset, size_t size, int flags) { void *vaddr; if (offset == NULL || size == 0) return (NULL); - vaddr = contigmalloc(size, M_DEVBUF, M_NOWAIT, X86BIOS_RAM_BASE, + vaddr = contigmalloc(size, M_DEVBUF, flags, X86BIOS_RAM_BASE, x86bios_rom_phys, X86BIOS_PAGE_SIZE, 0); if (vaddr != NULL) { *offset = vtophys(vaddr); Modified: projects/ppc64/sys/compat/x86bios/x86bios.h ============================================================================== --- projects/ppc64/sys/compat/x86bios/x86bios.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/compat/x86bios/x86bios.h Thu Jun 24 14:17:10 2010 (r209507) @@ -142,7 +142,7 @@ typedef struct x86regs x86regs_t; #define X86BIOS_PHYSTOOFF(x) ((x) & 0x000f) __BEGIN_DECLS -void *x86bios_alloc(uint32_t *offset, size_t size); +void *x86bios_alloc(uint32_t *offset, size_t size, int flags); void x86bios_call(struct x86regs *regs, uint16_t seg, uint16_t off); void x86bios_free(void *addr, size_t size); uint32_t x86bios_get_intr(int intno); Copied: projects/ppc64/sys/conf/ldscript.mips.n32 (from r209506, head/sys/conf/ldscript.mips.n32) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/sys/conf/ldscript.mips.n32 Thu Jun 24 14:17:10 2010 (r209507, copy of r209506, head/sys/conf/ldscript.mips.n32) @@ -0,0 +1,303 @@ +/*- + * Copyright (c) 2001, 2004, 2008, Juniper Networks, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Juniper Networks, Inc. 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 JUNIPER NETWORKS 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 JUNIPER NETWORKS 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. + * + * JNPR: ldscript.mips,v 1.3 2006/10/11 06:12:04 + * $FreeBSD$ + */ + +OUTPUT_FORMAT("elf32-ntradbigmips", "elf32-ntradbigmips", + "elf32-ntradlittlemips") + +OUTPUT_ARCH(mips) +ENTRY(_start) +SEARCH_DIR(/usr/lib); +/* Do we need any of these for elf? + __DYNAMIC = 0; +PROVIDE (_DYNAMIC = 0); +*/ +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + . = KERNLOADADDR + SIZEOF_HEADERS; + .text : + { + *(.trap) + *(.text) + *(.text.*) + *(.stub) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + *(.gnu.linkonce.t.*) + } =0x1000000 + .fini : + { + KEEP (*(.fini)) + } =0x1000000 + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) } + .rodata1 : { *(.rodata1) } + .interp : { *(.interp) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : + { + *(.rel.text) + *(.rel.text.*) + *(.rel.gnu.linkonce.t.*) + } + .rela.text : + { + *(.rela.text) + *(.rela.text.*) + *(.rela.gnu.linkonce.t.*) + } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.rodata : + { + *(.rel.rodata) + *(.rel.rodata.*) + *(.rel.gnu.linkonce.r.*) + } + .rela.rodata : + { + *(.rela.rodata) + *(.rela.rodata.*) + *(.rela.gnu.linkonce.r.*) + } + .rel.data : + { + *(.rel.data) + *(.rel.data.*) + *(.rel.gnu.linkonce.d.*) + } + .rela.data : + { + *(.rela.data) + *(.rela.data.*) + *(.rela.gnu.linkonce.d.*) + } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.sdata : + { + *(.rel.sdata) + *(.rel.sdata.*) + *(.rel.gnu.linkonce.s.*) + } + .rela.sdata : + { + *(.rela.sdata) + *(.rela.sdata.*) + *(.rela.gnu.linkonce.s.*) + } + .rel.sbss : + { + *(.rel.sbss) + *(.rel.sbss.*) + *(.rel.gnu.linkonce.sb.*) + } + .rela.sbss : + { + *(.rela.sbss) + *(.rela.sbss.*) + *(.rel.gnu.linkonce.sb.*) + } + .rel.sdata2 : + { + *(.rel.sdata2) + *(.rel.sdata2.*) + *(.rel.gnu.linkonce.s2.*) + } + .rela.sdata2 : + { + *(.rela.sdata2) + *(.rela.sdata2.*) + *(.rela.gnu.linkonce.s2.*) + } + .rel.sbss2 : + { + *(.rel.sbss2) + *(.rel.sbss2.*) + *(.rel.gnu.linkonce.sb2.*) + } + .rela.sbss2 : + { + *(.rela.sbss2) + *(.rela.sbss2.*) + *(.rela.gnu.linkonce.sb2.*) + } + .rel.bss : + { + *(.rel.bss) + *(.rel.bss.*) + *(.rel.gnu.linkonce.b.*) + } + .rela.bss : + { + *(.rela.bss) + *(.rela.bss.*) + *(.rela.gnu.linkonce.b.*) + } + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .init : + { + KEEP (*(.init)) + } =0x1000000 + .reginfo : { *(.reginfo) } + .sdata2 : { *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) } + .sbss2 : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) } + . = ALIGN(0x2000) + (. & (0x2000 - 1)); + .data : + { + *(.data) + *(.data.*) + *(.gnu.linkonce.d.*) + SORT(CONSTRUCTORS) + } + .data1 : { *(.data1) } + .eh_frame : { KEEP (*(.eh_frame)) } + .gcc_except_table : { *(.gcc_except_table) } + .ctors : + { + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + } + .dtors : + { + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + } + .plt : { *(.plt) } + _gp = ALIGN(16) + 0x7ff0; + .got : { *(.got.plt) *(.got) } + .dynamic : { *(.dynamic) } + /* We want the small data sections together, so single-instruction offsets + can access them all, and initialized data all before uninitialized, so + we can shorten the on-disk segment size. */ + .sdata : + { + *(.sdata) + *(.sdata.*) + *(.gnu.linkonce.s.*) + } + _edata = .; + PROVIDE (edata = .); + __bss_start = .; + .sbss : + { + PROVIDE (__sbss_start = .); + PROVIDE (___sbss_start = .); + *(.dynsbss) + *(.sbss) + *(.sbss.*) + *(.gnu.linkonce.sb.*) + *(.scommon) + PROVIDE (__sbss_end = .); + PROVIDE (___sbss_end = .); + } + .bss : + { + *(.dynbss) + *(.bss) + *(.bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. */ + . = ALIGN(64 / 8); + } + . = ALIGN(64 / 8); + _end = .; + PROVIDE (end = .); + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + /* These must appear regardless of . */ +} Modified: projects/ppc64/sys/dev/fb/vesa.c ============================================================================== --- projects/ppc64/sys/dev/fb/vesa.c Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/dev/fb/vesa.c Thu Jun 24 14:17:10 2010 (r209507) @@ -164,7 +164,7 @@ static char *vesa_revstr = NULL; static int int10_set_mode(int mode); static int vesa_bios_post(void); -static int vesa_bios_get_mode(int mode, struct vesa_mode *vmode); +static int vesa_bios_get_mode(int mode, struct vesa_mode *vmode, int flags); static int vesa_bios_set_mode(int mode); #if 0 static int vesa_bios_get_dac(void); @@ -278,13 +278,13 @@ vesa_bios_post(void) /* VESA BIOS calls */ static int -vesa_bios_get_mode(int mode, struct vesa_mode *vmode) +vesa_bios_get_mode(int mode, struct vesa_mode *vmode, int flags) { x86regs_t regs; uint32_t offs; void *buf; - buf = x86bios_alloc(&offs, sizeof(*vmode)); + buf = x86bios_alloc(&offs, sizeof(*vmode), flags); if (buf == NULL) return (1); @@ -367,7 +367,7 @@ vesa_bios_save_palette(int start, int co u_char *p; int i; - p = (u_char *)x86bios_alloc(&offs, colors * 4); + p = (u_char *)x86bios_alloc(&offs, colors * 4, M_NOWAIT); if (p == NULL) return (1); @@ -407,7 +407,7 @@ vesa_bios_save_palette2(int start, int c u_char *p; int i; - p = (u_char *)x86bios_alloc(&offs, colors * 4); + p = (u_char *)x86bios_alloc(&offs, colors * 4, M_NOWAIT); if (p == NULL) return (1); @@ -446,7 +446,7 @@ vesa_bios_load_palette(int start, int co u_char *p; int i; - p = (u_char *)x86bios_alloc(&offs, colors * 4); + p = (u_char *)x86bios_alloc(&offs, colors * 4, M_NOWAIT); if (p == NULL) return (1); @@ -481,7 +481,7 @@ vesa_bios_load_palette2(int start, int c u_char *p; int i; - p = (u_char *)x86bios_alloc(&offs, colors * 4); + p = (u_char *)x86bios_alloc(&offs, colors * 4, M_NOWAIT); if (p == NULL) return (1); @@ -535,7 +535,7 @@ vesa_bios_save_restore(int code, void *p if (code != STATE_SAVE && code != STATE_LOAD) return (1); - buf = x86bios_alloc(&offs, size); + buf = x86bios_alloc(&offs, size, M_NOWAIT); x86bios_init_regs(®s); regs.R_AX = 0x4f04; @@ -800,9 +800,7 @@ vesa_bios_init(void) x86bios_init_regs(®s); regs.R_AX = 0x4f00; - vmbuf = x86bios_alloc(&offs, sizeof(*buf)); - if (vmbuf == NULL) - return (1); + vmbuf = x86bios_alloc(&offs, sizeof(*buf), M_WAITOK); regs.R_ES = X86BIOS_PHYSTOSEG(offs); regs.R_DI = X86BIOS_PHYSTOOFF(offs); @@ -858,7 +856,7 @@ vesa_bios_init(void) for (i = 0, modes = 0; (i < (M_VESA_MODE_MAX - M_VESA_BASE + 1)) && (vesa_vmodetab[i] != 0xffff); ++i) { vesa_vmodetab[i] = le16toh(vesa_vmodetab[i]); - if (vesa_bios_get_mode(vesa_vmodetab[i], &vmode)) + if (vesa_bios_get_mode(vesa_vmodetab[i], &vmode, M_WAITOK)) continue; vmode.v_modeattr = le16toh(vmode.v_modeattr); @@ -1790,7 +1788,7 @@ vesa_bios_info(int level) for (i = 0; (i < (M_VESA_MODE_MAX - M_VESA_BASE + 1)) && (vesa_vmodetab[i] != 0xffff); ++i) { - if (vesa_bios_get_mode(vesa_vmodetab[i], &vmode)) + if (vesa_bios_get_mode(vesa_vmodetab[i], &vmode, M_NOWAIT)) continue; /* print something for diagnostic purpose */ Modified: projects/ppc64/sys/i386/i386/apic_vector.s ============================================================================== --- projects/ppc64/sys/i386/i386/apic_vector.s Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/i386/i386/apic_vector.s Thu Jun 24 14:17:10 2010 (r209507) @@ -56,6 +56,7 @@ IDTVEC(vec_name) ; \ PUSH_FRAME ; \ SET_KERNEL_SREGS ; \ + cld ; \ FAKE_MCOUNT(TF_EIP(%esp)) ; \ movl lapic, %edx ; /* pointer to local APIC */ \ movl LA_ISR + 16 * (index)(%edx), %eax ; /* load ISR */ \ @@ -103,6 +104,7 @@ IDTVEC(spuriousint) IDTVEC(timerint) PUSH_FRAME SET_KERNEL_SREGS + cld FAKE_MCOUNT(TF_EIP(%esp)) pushl %esp call lapic_handle_timer @@ -118,6 +120,7 @@ IDTVEC(timerint) IDTVEC(cmcint) PUSH_FRAME SET_KERNEL_SREGS + cld FAKE_MCOUNT(TF_EIP(%esp)) call lapic_handle_cmc MEXITCOUNT @@ -131,6 +134,7 @@ IDTVEC(cmcint) IDTVEC(errorint) PUSH_FRAME SET_KERNEL_SREGS + cld FAKE_MCOUNT(TF_EIP(%esp)) call lapic_handle_error MEXITCOUNT @@ -302,6 +306,7 @@ IDTVEC(invlcache) IDTVEC(ipi_intr_bitmap_handler) PUSH_FRAME SET_KERNEL_SREGS + cld movl lapic, %edx movl $0, LA_EOI(%edx) /* End Of Interrupt to APIC */ @@ -320,6 +325,7 @@ IDTVEC(ipi_intr_bitmap_handler) IDTVEC(cpustop) PUSH_FRAME SET_KERNEL_SREGS + cld movl lapic, %eax movl $0, LA_EOI(%eax) /* End Of Interrupt to APIC */ @@ -339,6 +345,7 @@ IDTVEC(cpustop) IDTVEC(rendezvous) PUSH_FRAME SET_KERNEL_SREGS + cld #ifdef COUNT_IPIS movl PCPU(CPUID), %eax @@ -360,6 +367,7 @@ IDTVEC(rendezvous) IDTVEC(lazypmap) PUSH_FRAME SET_KERNEL_SREGS + cld call pmap_lazyfix_action Modified: projects/ppc64/sys/i386/i386/atpic_vector.s ============================================================================== --- projects/ppc64/sys/i386/i386/atpic_vector.s Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/i386/i386/atpic_vector.s Thu Jun 24 14:17:10 2010 (r209507) @@ -49,6 +49,7 @@ IDTVEC(vec_name) ; \ PUSH_FRAME ; \ SET_KERNEL_SREGS ; \ + cld ; \ ; \ FAKE_MCOUNT(TF_EIP(%esp)) ; \ pushl %esp ; \ Modified: projects/ppc64/sys/i386/i386/exception.s ============================================================================== --- projects/ppc64/sys/i386/i386/exception.s Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/i386/i386/exception.s Thu Jun 24 14:17:10 2010 (r209507) @@ -159,6 +159,7 @@ alltraps: pushl %fs alltraps_with_regs_pushed: SET_KERNEL_SREGS + cld FAKE_MCOUNT(TF_EIP(%esp)) calltrap: pushl %esp @@ -233,6 +234,7 @@ IDTVEC(lcall_syscall) pushl %es pushl %fs SET_KERNEL_SREGS + cld FAKE_MCOUNT(TF_EIP(%esp)) pushl %esp call syscall @@ -256,6 +258,7 @@ IDTVEC(int0x80_syscall) pushl %es pushl %fs SET_KERNEL_SREGS + cld FAKE_MCOUNT(TF_EIP(%esp)) pushl %esp call syscall Modified: projects/ppc64/sys/kern/subr_param.c ============================================================================== --- projects/ppc64/sys/kern/subr_param.c Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/kern/subr_param.c Thu Jun 24 14:17:10 2010 (r209507) @@ -53,10 +53,10 @@ __FBSDID("$FreeBSD$"); */ #ifndef HZ -# if defined(__amd64__) || defined(__i386__) || defined(__ia64__) || defined(__sparc64__) -# define HZ 1000 -# else +# if defined(__mips__) || defined(__arm__) # define HZ 100 +# else +# define HZ 1000 # endif # ifndef HZ_VM # define HZ_VM 100 Modified: projects/ppc64/sys/mips/atheros/ar71xxreg.h ============================================================================== --- projects/ppc64/sys/mips/atheros/ar71xxreg.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/mips/atheros/ar71xxreg.h Thu Jun 24 14:17:10 2010 (r209507) @@ -152,7 +152,9 @@ #define GPIO_FUNC_STEREO_EN (1 << 17) #define GPIO_FUNC_SLIC_EN (1 << 16) #define GPIO_FUNC_SPI_CS1_EN (1 << 15) + /* CS1 is shared with GPIO_1 */ #define GPIO_FUNC_SPI_CS0_EN (1 << 14) + /* CS0 is shared with GPIO_0 */ #define GPIO_FUNC_SPI_EN (1 << 13) #define GPIO_FUNC_UART_EN (1 << 8) #define GPIO_FUNC_USB_OC_EN (1 << 4) Copied: projects/ppc64/sys/mips/conf/XLRN32 (from r209506, head/sys/mips/conf/XLRN32) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/sys/mips/conf/XLRN32 Thu Jun 24 14:17:10 2010 (r209507, copy of r209506, head/sys/mips/conf/XLRN32) @@ -0,0 +1,133 @@ +# XLRN32 -- Kernel configuration file for N32 kernel on XLR/XLS +# +# For more information on this file, please read the handbook section on +# Kernel Configuration Files: +# +# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html +# +# The handbook is also available locally in /usr/share/doc/handbook +# if you've installed the doc distribution, otherwise always see the +# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the +# latest information. +# +# An exhaustive list of options and more detailed explanations of the +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first +# in NOTES. +# +# $FreeBSD$ + +machine mips +cpu CPU_MIPS4KC +ident XLR + +makeoptions MODULES_OVERRIDE="" +makeoptions TARGET_BIG_ENDIAN + +include "../rmi/std.xlr" + +makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +makeoptions ARCH_FLAGS="-march=mips64 -mabi=n32" +makeoptions LDSCRIPT_NAME=ldscript.mips.n32 + +#profile 2 + +options SCHED_ULE # ULE scheduler +#options VERBOSE_SYSINIT +#options SCHED_4BSD # 4BSD scheduler +options SMP +options PREEMPTION # Enable kernel thread preemption +#options FULL_PREEMPTION # Enable kernel thread preemption +options INET # InterNETworking +options INET6 # IPv6 communications protocols +options FFS # Berkeley Fast Filesystem +#options SOFTUPDATES # Enable FFS soft updates support +options UFS_ACL # Support for access control lists +options UFS_DIRHASH # Improve performance on big directories +options NFSCLIENT +options NFS_ROOT +# +options BOOTP +options BOOTP_NFSROOT +options BOOTP_NFSV3 +options BOOTP_WIRED_TO=rge0 +options BOOTP_COMPAT +options ROOTDEVNAME=\"nfs:10.1.1.8:/usr/extra/nfsroot\" +# +#options MD_ROOT # MD is a potential root device +#options MD_ROOT_SIZE=27000 +#options MD_ROOT_SIZE=5120 +#options ROOTDEVNAME=\"ufs:md0\" +options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions +options HZ=1000 +options NO_SWAPPING + +#Debugging options +options KTRACE # ktrace(1) support +options DDB +options KDB +options GDB +options ALT_BREAK_TO_DEBUGGER +#options DEADLKRES #Enable the deadlock resolver +options INVARIANTS #Enable calls of extra sanity checking +options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS +#options WITNESS #Enable checks to detect deadlocks and cycles +#options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed +#options KTR # ktr(4) and ktrdump(8) support +#options KTR_COMPILE=(KTR_LOCK|KTR_PROC|KTR_INTR|KTR_CALLOUT|KTR_UMA|KTR_SYSC|KTR_CRITICAL) +#options KTR_ENTRIES=131072 +#options MUTEX_DEBUG +#options MUTEX_PROFILING + +device pci +#device ata +#device atadisk +#options XLR_PERFMON # Enable XLR processor activity monitoring +options BREAK_TO_DEBUGGER +#device genclock +device uart +# Pseudo +device loop +device random +device md +device mem +device pty +device bpf + +# Network +device miibus +device rge +device ether +device re +device msk + +device da +device scbus +#device ohci # OHCI PCI->USB interface +device ehci # EHCI PCI->USB interface (USB 2.0) +device usb # USB Bus (required) +options USB_DEBUG # enable debug msgs +#device udbp # USB Double Bulk Pipe devices +#device ugen # Generic +#device uhid # "Human Interface Devices" +device umass # Disks/Mass storage - Requires scbus and da + +#device cfi + +#i2c +# Not yet +#device ic +#device iic +#device iicbb +#device iicbus +#device xlr_rtc +#device xlr_temperature +#device xlr_eeprom + +#crypto +# Not yet +#device cryptodev +#device crypto +#device rmisec +options ISA_MIPS64 +makeoptions KERNLOADADDR=0x80100000 Modified: projects/ppc64/sys/mips/include/asm.h ============================================================================== --- projects/ppc64/sys/mips/include/asm.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/mips/include/asm.h Thu Jun 24 14:17:10 2010 (r209507) @@ -806,10 +806,11 @@ _C_LABEL(x): * 9 S7 * 10 SP * 11 S8 - * 12 signal mask (dependant on magic) - * 13 (con't) + * 12 GP (dependent on ABI) + * 13 signal mask (dependant on magic) * 14 (con't) * 15 (con't) + * 16 (con't) * * The magic number number identifies the jmp_buf and * how the buffer was created as well as providing @@ -834,9 +835,12 @@ _C_LABEL(x): #define _JB_REG_S7 9 #define _JB_REG_SP 10 #define _JB_REG_S8 11 +#if defined(__mips_n32) || defined(__mips_n64) +#define _JB_REG_GP 12 +#endif /* Only valid with the _JB_MAGIC_SETJMP magic */ -#define _JB_SIGMASK 12 +#define _JB_SIGMASK 13 #endif /* !_MACHINE_ASM_H_ */ Modified: projects/ppc64/sys/mips/include/cpu.h ============================================================================== --- projects/ppc64/sys/mips/include/cpu.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/mips/include/cpu.h Thu Jun 24 14:17:10 2010 (r209507) @@ -49,7 +49,7 @@ #include -#define MIPS_KSEG0_LARGEST_PHYS 0x20000000 +#define MIPS_KSEG0_LARGEST_PHYS (0x20000000) #define MIPS_PHYS_MASK (0x1fffffff) #define MIPS_PHYS_TO_KSEG0(x) ((uintptr_t)(x) | MIPS_KSEG0_START) @@ -162,11 +162,11 @@ /* * Location of exception vectors. */ -#define RESET_EXC_VEC 0xbfc00000 -#define TLB_MISS_EXC_VEC 0x80000000 -#define XTLB_MISS_EXC_VEC 0x80000080 -#define CACHE_ERR_EXC_VEC 0x80000100 -#define GEN_EXC_VEC 0x80000180 +#define RESET_EXC_VEC ((intptr_t)(int32_t)0xbfc00000) +#define TLB_MISS_EXC_VEC ((intptr_t)(int32_t)0x80000000) +#define XTLB_MISS_EXC_VEC ((intptr_t)(int32_t)0x80000080) +#define CACHE_ERR_EXC_VEC ((intptr_t)(int32_t)0x80000100) +#define GEN_EXC_VEC ((intptr_t)(int32_t)0x80000180) /* * Coprocessor 0 registers: Modified: projects/ppc64/sys/mips/include/pte.h ============================================================================== --- projects/ppc64/sys/mips/include/pte.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/mips/include/pte.h Thu Jun 24 14:17:10 2010 (r209507) @@ -32,7 +32,7 @@ /* * TLB and PTE management. Most things operate within the context of * EntryLo0,1, and begin with TLBLO_. Things which work with EntryHi - * start with TLBHI_. PTE bits begin with PG_. + * start with TLBHI_. PTE bits begin with PTE_. * * Note that we use the same size VM and TLB pages. */ @@ -63,7 +63,7 @@ #define TLBLO_PFN_TO_PA(pfn) ((vm_paddr_t)((pfn) >> TLBLO_PFN_SHIFT) << TLB_PAGE_SHIFT) #define TLBLO_PTE_TO_PFN(pte) ((pte) & TLBLO_PFN_MASK) #define TLBLO_PTE_TO_PA(pte) (TLBLO_PFN_TO_PA(TLBLO_PTE_TO_PFN((pte)))) - + /* * VPN for EntryHi register. Upper two bits select user, supervisor, * or kernel. Bits 61 to 40 copy bit 63. VPN2 is bits 39 and down to @@ -76,54 +76,57 @@ #define TLBHI_ENTRY(va, asid) (((va) & ~PAGE_MASK) | ((asid) & TLBHI_ASID_MASK)) #ifndef _LOCORE -typedef unsigned int pt_entry_t; -typedef pt_entry_t *pd_entry_t; +typedef uint32_t pt_entry_t; +typedef pt_entry_t *pd_entry_t; #endif #define PDESIZE sizeof(pd_entry_t) /* for assembly files */ #define PTESIZE sizeof(pt_entry_t) /* for assembly files */ -#define PT_ENTRY_NULL ((pt_entry_t *) 0) - -#define PTE_WIRED 0x80000000 /* SW */ -#define PTE_W PTE_WIRED -#define PTE_RO 0x40000000 /* SW */ - -#define PTE_G 0x00000001 /* HW */ -#define PTE_V 0x00000002 -/*#define PTE_NV 0x00000000 Not Used */ -#define PTE_M 0x00000004 -#define PTE_RW PTE_M -#define PTE_ODDPG 0x00001000 -/*#define PG_ATTR 0x0000003f Not Used */ -#define PTE_UNCACHED 0x00000010 -#ifdef CPU_SB1 -#define PTE_CACHE 0x00000028 /* cacheable coherent */ +/* + * TLB flags managed in hardware: + * C: Cache attribute. + * D: Dirty bit. This means a page is writable. It is not + * set at first, and a write is trapped, and the dirty + * bit is set. See also PTE_RO. + * V: Valid bit. Obvious, isn't it? + * G: Global bit. This means that this mapping is present + * in EVERY address space, and to ignore the ASID when + * it is matched. + */ +#define PTE_C(attr) ((attr & 0x07) << 3) +#define PTE_C_UNCACHED (PTE_C(0x02)) +/* + * The preferred cache attribute for cacheable pages, this can be + * implementation dependent. We will use the standard value 0x3 as + * default. + */ +#if defined(CPU_SB1) +#define PTE_C_CACHE (PTE_C(0x05)) #else -#define PTE_CACHE 0x00000018 +#define PTE_C_CACHE (PTE_C(0x03)) #endif -/*#define PG_CACHEMODE 0x00000038 Not Used*/ -#define PTE_ROPAGE (PTE_V | PTE_RO | PTE_CACHE) /* Write protected */ -#define PTE_RWPAGE (PTE_V | PTE_M | PTE_CACHE) /* Not wr-prot not clean */ -#define PTE_CWPAGE (PTE_V | PTE_CACHE) /* Not wr-prot but clean */ -#define PTE_IOPAGE (PTE_G | PTE_V | PTE_M | PTE_UNCACHED) -#define PTE_FRAME 0x3fffffc0 -#define PTE_HVPN 0xffffe000 /* Hardware page no mask */ -#define PTE_ASID 0x000000ff /* Address space ID */ - - -/* User virtual to pte offset in page table */ -#define vad_to_pte_offset(adr) (((adr) >> PAGE_SHIFT) & (NPTEPG -1)) - -#define mips_pg_v(entry) ((entry) & PTE_V) -#define mips_pg_wired(entry) ((entry) & PTE_WIRED) -#define mips_pg_m_bit() (PTE_M) -#define mips_pg_rw_bit() (PTE_M) -#define mips_pg_ro_bit() (PTE_RO) -#define mips_pg_ropage_bit() (PTE_ROPAGE) -#define mips_pg_rwpage_bit() (PTE_RWPAGE) -#define mips_pg_cwpage_bit() (PTE_CWPAGE) -#define mips_pg_global_bit() (PTE_G) -#define mips_pg_wired_bit() (PTE_WIRED) +#define PTE_D 0x04 +#define PTE_V 0x02 +#define PTE_G 0x01 + +/* + * VM flags managed in software: + * RO: Read only. Never set PTE_D on this page, and don't + * listen to requests to write to it. + * W: Wired. ??? + */ +#define PTE_RO (0x01 << TLBLO_SWBITS_SHIFT) +#define PTE_W (0x02 << TLBLO_SWBITS_SHIFT) + +/* + * PTE management functions for bits defined above. + * + * XXX Can make these atomics, but some users of them are using PTEs in local + * registers and such and don't need the overhead. + */ +#define pte_clear(pte, bit) (*(pte) &= ~(bit)) +#define pte_set(pte, bit) (*(pte) |= (bit)) +#define pte_test(pte, bit) ((*(pte) & (bit)) == (bit)) #endif /* !_MACHINE_PTE_H_ */ Modified: projects/ppc64/sys/mips/include/setjmp.h ============================================================================== --- projects/ppc64/sys/mips/include/setjmp.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/mips/include/setjmp.h Thu Jun 24 14:17:10 2010 (r209507) @@ -39,7 +39,7 @@ #include -#define _JBLEN 95 /* size, in longs, of a jmp_buf */ +#define _JBLEN 95 /* size, in longs (or long longs), of a jmp_buf */ /* * jmp_buf and sigjmp_buf are encapsulated in different structs to force @@ -49,10 +49,18 @@ #ifndef _LOCORE #ifndef __ASSEMBLER__ #if __BSD_VISIBLE || __POSIX_VISIBLE || __XSI_VISIBLE +#ifdef __mips_n32 +typedef struct _sigjmp_buf { long long _sjb[_JBLEN + 1]; } sigjmp_buf[1]; +#else typedef struct _sigjmp_buf { long _sjb[_JBLEN + 1]; } sigjmp_buf[1]; #endif +#endif +#ifdef __mips_n32 +typedef struct _jmp_buf { long long _jb[_JBLEN + 1]; } jmp_buf[1]; +#else typedef struct _jmp_buf { long _jb[_JBLEN + 1]; } jmp_buf[1]; +#endif #endif /* __ASSEMBLER__ */ #endif /* _LOCORE */ Modified: projects/ppc64/sys/mips/include/vm.h ============================================================================== --- projects/ppc64/sys/mips/include/vm.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/mips/include/vm.h Thu Jun 24 14:17:10 2010 (r209507) @@ -32,9 +32,7 @@ #include /* Memory attributes. */ -#define VM_MEMATTR_UNCACHED ((vm_memattr_t)PTE_UNCACHED) -#define VM_MEMATTR_CACHEABLE_NONCOHERENT ((vm_memattr_t)PTE_CACHE) - -#define VM_MEMATTR_DEFAULT VM_MEMATTR_CACHEABLE_NONCOHERENT +#define VM_MEMATTR_UNCACHED ((vm_memattr_t)PTE_C_UNCACHED) +#define VM_MEMATTR_DEFAULT ((vm_memattr_t)PTE_C_CACHE) #endif /* !_MACHINE_VM_H_ */ Modified: projects/ppc64/sys/mips/include/vmparam.h ============================================================================== --- projects/ppc64/sys/mips/include/vmparam.h Thu Jun 24 13:17:45 2010 (r209506) +++ projects/ppc64/sys/mips/include/vmparam.h Thu Jun 24 14:17:10 2010 (r209507) @@ -100,11 +100,17 @@ #define VM_MAX_ADDRESS ((vm_offset_t)(intptr_t)(int32_t)0xffffffff) #define VM_MINUSER_ADDRESS ((vm_offset_t)0x00000000) -#define VM_MAXUSER_ADDRESS ((vm_offset_t)0x80000000) #define VM_MAX_MMAP_ADDR VM_MAXUSER_ADDRESS -#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)0xC0000000) -#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)0xFFFFC000) +#if defined(__mips_n64) +#define VM_MAXUSER_ADDRESS (VM_MINUSER_ADDRESS + (NPDEPG * NPTEPG * PAGE_SIZE)) +#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)0xc000000000000000) +#define VM_MAX_KERNEL_ADDRESS (VM_MIN_KERNEL_ADDRESS + (NPDEPG * NPTEPG * PAGE_SIZE)) +#else +#define VM_MAXUSER_ADDRESS ((vm_offset_t)0x80000000) +#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)0xC0000000) +#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)0xFFFFC000) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu Jun 24 15:49:33 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BD450106566C; Thu, 24 Jun 2010 15:49:33 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 936868FC16; Thu, 24 Jun 2010 15:49:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5OFnXgo031077; Thu, 24 Jun 2010 15:49:33 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5OFnXjF031076; Thu, 24 Jun 2010 15:49:33 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006241549.o5OFnXjF031076@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 24 Jun 2010 15:49:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209508 - projects/ppc64/etc/etc.powerpc64 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2010 15:49:33 -0000 Author: nwhitehorn Date: Thu Jun 24 15:49:33 2010 New Revision: 209508 URL: http://svn.freebsd.org/changeset/base/209508 Log: First step in tbemd-related cleanups: hose etc.powerpc64. Deleted: projects/ppc64/etc/etc.powerpc64/ From owner-svn-src-projects@FreeBSD.ORG Thu Jun 24 22:41:02 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8ED941065670; Thu, 24 Jun 2010 22:41:02 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7A4458FC1C; Thu, 24 Jun 2010 22:41:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5OMf28i021875; Thu, 24 Jun 2010 22:41:02 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5OMf2m8021869; Thu, 24 Jun 2010 22:41:02 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006242241.o5OMf2m8021869@svn.freebsd.org> From: Jeff Roberson Date: Thu, 24 Jun 2010 22:41:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209516 - in projects/ofed/base/contrib/ofed: . libibverbs libibverbs/config libibverbs/debian libibverbs/examples libibverbs/fixes libibverbs/include libibverbs/include/infiniband libi... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2010 22:41:02 -0000 Author: jeff Date: Thu Jun 24 22:41:01 2010 New Revision: 209516 URL: http://svn.freebsd.org/changeset/base/209516 Log: - Import the OFED userland libraries and binaries. Git revisions as follows: libmthca: be5eef3895eb7864db6395b885a19f770fde7234 libibverbs: 2f6624c1cf6c1c0924b6812e171f452ca06cab1e libmlx4: 243236095872988d5d15ffc66bf79e74376df505 management: 8989491f7bdba6c21de61c3e988c7d91d08e4254 Sponsored by: Isilon Systems, iX Systems, and Panasas. Added: projects/ofed/base/contrib/ofed/ projects/ofed/base/contrib/ofed/libibverbs/ projects/ofed/base/contrib/ofed/libibverbs/AUTHORS projects/ofed/base/contrib/ofed/libibverbs/COPYING projects/ofed/base/contrib/ofed/libibverbs/ChangeLog projects/ofed/base/contrib/ofed/libibverbs/Makefile.am projects/ofed/base/contrib/ofed/libibverbs/README projects/ofed/base/contrib/ofed/libibverbs/autogen.sh (contents, props changed) projects/ofed/base/contrib/ofed/libibverbs/config/ projects/ofed/base/contrib/ofed/libibverbs/configure.in projects/ofed/base/contrib/ofed/libibverbs/debian/ projects/ofed/base/contrib/ofed/libibverbs/debian/changelog projects/ofed/base/contrib/ofed/libibverbs/debian/compat projects/ofed/base/contrib/ofed/libibverbs/debian/control.in projects/ofed/base/contrib/ofed/libibverbs/debian/copyright projects/ofed/base/contrib/ofed/libibverbs/debian/ibverbs-utils.install projects/ofed/base/contrib/ofed/libibverbs/debian/libibverbs-dev.install projects/ofed/base/contrib/ofed/libibverbs/debian/libibverbs-dev.links projects/ofed/base/contrib/ofed/libibverbs/debian/libibverbs1.install projects/ofed/base/contrib/ofed/libibverbs/debian/libibverbs1.postinst projects/ofed/base/contrib/ofed/libibverbs/debian/rules (contents, props changed) projects/ofed/base/contrib/ofed/libibverbs/debian/watch projects/ofed/base/contrib/ofed/libibverbs/examples/ projects/ofed/base/contrib/ofed/libibverbs/examples/asyncwatch.c projects/ofed/base/contrib/ofed/libibverbs/examples/device_list.c projects/ofed/base/contrib/ofed/libibverbs/examples/devinfo.c projects/ofed/base/contrib/ofed/libibverbs/examples/pingpong.c projects/ofed/base/contrib/ofed/libibverbs/examples/pingpong.h projects/ofed/base/contrib/ofed/libibverbs/examples/rc_pingpong.c projects/ofed/base/contrib/ofed/libibverbs/examples/srq_pingpong.c projects/ofed/base/contrib/ofed/libibverbs/examples/uc_pingpong.c projects/ofed/base/contrib/ofed/libibverbs/examples/ud_pingpong.c projects/ofed/base/contrib/ofed/libibverbs/fixes/ projects/ofed/base/contrib/ofed/libibverbs/fixes/XRC_RCV_QP.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/XRC_base_implementation.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/XRC_man_pages.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/configure_in-AC_PROG_LIBTOOL-for-automake.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/pthread_cond_t_fields.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/qpt_raw_eth.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/rocee_examples.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/rocee_get_mac.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/rocee_kernel_accept_link_layer.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/rocee_link_layer.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/rpm_spec_changelog_fix.patch projects/ofed/base/contrib/ofed/libibverbs/fixes/series projects/ofed/base/contrib/ofed/libibverbs/fixes/verbs_man_page.patch projects/ofed/base/contrib/ofed/libibverbs/include/ projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/ projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/arch.h projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/driver.h projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/kern-abi.h projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/marshall.h projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/opcode.h projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/sa-kern-abi.h projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/sa.h projects/ofed/base/contrib/ofed/libibverbs/include/infiniband/verbs.h projects/ofed/base/contrib/ofed/libibverbs/libibverbs.spec.in projects/ofed/base/contrib/ofed/libibverbs/man/ projects/ofed/base/contrib/ofed/libibverbs/man/ibv_alloc_pd.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_asyncwatch.1 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_attach_mcast.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_create_ah.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_create_ah_from_wc.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_create_comp_channel.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_create_cq.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_create_qp.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_create_srq.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_devices.1 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_devinfo.1 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_event_type_str.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_fork_init.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_get_async_event.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_get_cq_event.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_get_device_guid.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_get_device_list.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_get_device_name.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_modify_qp.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_modify_srq.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_open_device.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_poll_cq.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_post_recv.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_post_send.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_post_srq_recv.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_query_device.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_query_gid.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_query_pkey.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_query_port.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_query_qp.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_query_srq.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_rate_to_mult.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_rc_pingpong.1 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_reg_mr.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_req_notify_cq.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_resize_cq.3 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_srq_pingpong.1 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_uc_pingpong.1 projects/ofed/base/contrib/ofed/libibverbs/man/ibv_ud_pingpong.1 projects/ofed/base/contrib/ofed/libibverbs/src/ projects/ofed/base/contrib/ofed/libibverbs/src/cmd.c projects/ofed/base/contrib/ofed/libibverbs/src/compat-1_0.c projects/ofed/base/contrib/ofed/libibverbs/src/device.c projects/ofed/base/contrib/ofed/libibverbs/src/enum_strs.c projects/ofed/base/contrib/ofed/libibverbs/src/ibverbs.h projects/ofed/base/contrib/ofed/libibverbs/src/init.c projects/ofed/base/contrib/ofed/libibverbs/src/kern_abi.h projects/ofed/base/contrib/ofed/libibverbs/src/libibverbs.map projects/ofed/base/contrib/ofed/libibverbs/src/marshall.c projects/ofed/base/contrib/ofed/libibverbs/src/memory.c projects/ofed/base/contrib/ofed/libibverbs/src/sysfs.c projects/ofed/base/contrib/ofed/libibverbs/src/verbs.c projects/ofed/base/contrib/ofed/libmlx4/ projects/ofed/base/contrib/ofed/libmlx4/AUTHORS projects/ofed/base/contrib/ofed/libmlx4/COPYING projects/ofed/base/contrib/ofed/libmlx4/Makefile.am projects/ofed/base/contrib/ofed/libmlx4/README projects/ofed/base/contrib/ofed/libmlx4/autogen.sh (contents, props changed) projects/ofed/base/contrib/ofed/libmlx4/config/ projects/ofed/base/contrib/ofed/libmlx4/configure.in projects/ofed/base/contrib/ofed/libmlx4/debian/ projects/ofed/base/contrib/ofed/libmlx4/debian/changelog projects/ofed/base/contrib/ofed/libmlx4/debian/compat projects/ofed/base/contrib/ofed/libmlx4/debian/control.in projects/ofed/base/contrib/ofed/libmlx4/debian/copyright projects/ofed/base/contrib/ofed/libmlx4/debian/libmlx4-1.install projects/ofed/base/contrib/ofed/libmlx4/debian/libmlx4-dev.install projects/ofed/base/contrib/ofed/libmlx4/debian/rules (contents, props changed) projects/ofed/base/contrib/ofed/libmlx4/debian/watch projects/ofed/base/contrib/ofed/libmlx4/fixes/ projects/ofed/base/contrib/ofed/libmlx4/fixes/add_supported_devices.patch projects/ofed/base/contrib/ofed/libmlx4/fixes/lim_qp_resources.patch projects/ofed/base/contrib/ofed/libmlx4/fixes/post_rcv_end_of_sg.patch projects/ofed/base/contrib/ofed/libmlx4/fixes/rocee_add_support.patch projects/ofed/base/contrib/ofed/libmlx4/fixes/series projects/ofed/base/contrib/ofed/libmlx4/fixes/userspace_dev_lims.patch projects/ofed/base/contrib/ofed/libmlx4/fixes/xrc_consolidated_v2.patch projects/ofed/base/contrib/ofed/libmlx4/fixes/xrc_fix_close_domain.patch projects/ofed/base/contrib/ofed/libmlx4/fixes/xrc_kernel_user_mismatch.patch projects/ofed/base/contrib/ofed/libmlx4/fixes/xrc_rcv_qp_v2.patch projects/ofed/base/contrib/ofed/libmlx4/libmlx4.spec.in projects/ofed/base/contrib/ofed/libmlx4/mlx4.driver projects/ofed/base/contrib/ofed/libmlx4/src/ projects/ofed/base/contrib/ofed/libmlx4/src/buf.c projects/ofed/base/contrib/ofed/libmlx4/src/cq.c projects/ofed/base/contrib/ofed/libmlx4/src/dbrec.c projects/ofed/base/contrib/ofed/libmlx4/src/doorbell.h projects/ofed/base/contrib/ofed/libmlx4/src/mlx4-abi.h projects/ofed/base/contrib/ofed/libmlx4/src/mlx4.c projects/ofed/base/contrib/ofed/libmlx4/src/mlx4.h projects/ofed/base/contrib/ofed/libmlx4/src/mlx4.map projects/ofed/base/contrib/ofed/libmlx4/src/qp.c projects/ofed/base/contrib/ofed/libmlx4/src/srq.c projects/ofed/base/contrib/ofed/libmlx4/src/verbs.c projects/ofed/base/contrib/ofed/libmlx4/src/wqe.h projects/ofed/base/contrib/ofed/libmthca/ projects/ofed/base/contrib/ofed/libmthca/AUTHORS projects/ofed/base/contrib/ofed/libmthca/COPYING projects/ofed/base/contrib/ofed/libmthca/ChangeLog projects/ofed/base/contrib/ofed/libmthca/Makefile.am projects/ofed/base/contrib/ofed/libmthca/README projects/ofed/base/contrib/ofed/libmthca/autogen.sh (contents, props changed) projects/ofed/base/contrib/ofed/libmthca/config/ projects/ofed/base/contrib/ofed/libmthca/configure.in projects/ofed/base/contrib/ofed/libmthca/debian/ projects/ofed/base/contrib/ofed/libmthca/debian/changelog projects/ofed/base/contrib/ofed/libmthca/debian/compat projects/ofed/base/contrib/ofed/libmthca/debian/control.in projects/ofed/base/contrib/ofed/libmthca/debian/copyright projects/ofed/base/contrib/ofed/libmthca/debian/libmthca-dev.install projects/ofed/base/contrib/ofed/libmthca/debian/libmthca1.install projects/ofed/base/contrib/ofed/libmthca/debian/rules (contents, props changed) projects/ofed/base/contrib/ofed/libmthca/debian/watch projects/ofed/base/contrib/ofed/libmthca/libmthca.spec.in projects/ofed/base/contrib/ofed/libmthca/mthca.driver projects/ofed/base/contrib/ofed/libmthca/src/ projects/ofed/base/contrib/ofed/libmthca/src/ah.c projects/ofed/base/contrib/ofed/libmthca/src/buf.c projects/ofed/base/contrib/ofed/libmthca/src/cq.c projects/ofed/base/contrib/ofed/libmthca/src/doorbell.h projects/ofed/base/contrib/ofed/libmthca/src/memfree.c projects/ofed/base/contrib/ofed/libmthca/src/mthca-abi.h projects/ofed/base/contrib/ofed/libmthca/src/mthca.c projects/ofed/base/contrib/ofed/libmthca/src/mthca.h projects/ofed/base/contrib/ofed/libmthca/src/mthca.map projects/ofed/base/contrib/ofed/libmthca/src/qp.c projects/ofed/base/contrib/ofed/libmthca/src/srq.c projects/ofed/base/contrib/ofed/libmthca/src/verbs.c projects/ofed/base/contrib/ofed/libmthca/src/wqe.h projects/ofed/base/contrib/ofed/management/ projects/ofed/base/contrib/ofed/management/AUTHORS projects/ofed/base/contrib/ofed/management/COPYING projects/ofed/base/contrib/ofed/management/ChangeLog projects/ofed/base/contrib/ofed/management/INSTALL projects/ofed/base/contrib/ofed/management/Makefile projects/ofed/base/contrib/ofed/management/NEWS projects/ofed/base/contrib/ofed/management/README projects/ofed/base/contrib/ofed/management/doc/ projects/ofed/base/contrib/ofed/management/doc/diagtools-proposal.txt projects/ofed/base/contrib/ofed/management/doc/diagtools.txt projects/ofed/base/contrib/ofed/management/doc/ibtracer.txt projects/ofed/base/contrib/ofed/management/doc/libibmad.txt projects/ofed/base/contrib/ofed/management/doc/libibumad.txt projects/ofed/base/contrib/ofed/management/gen_chlog.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/gen_ver.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/ projects/ofed/base/contrib/ofed/management/infiniband-diags/COPYING projects/ofed/base/contrib/ofed/management/infiniband-diags/ChangeLog projects/ofed/base/contrib/ofed/management/infiniband-diags/Makefile.am projects/ofed/base/contrib/ofed/management/infiniband-diags/README projects/ofed/base/contrib/ofed/management/infiniband-diags/autogen.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/configure.in projects/ofed/base/contrib/ofed/management/infiniband-diags/include/ projects/ofed/base/contrib/ofed/management/infiniband-diags/include/grouping.h projects/ofed/base/contrib/ofed/management/infiniband-diags/include/ibdiag_common.h projects/ofed/base/contrib/ofed/management/infiniband-diags/include/ibdiag_version.h.in projects/ofed/base/contrib/ofed/management/infiniband-diags/include/ibnetdiscover.h projects/ofed/base/contrib/ofed/management/infiniband-diags/infiniband-diags.spec.in projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ projects/ofed/base/contrib/ofed/management/infiniband-diags/man/check_lft_balance.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/dump_lfts.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/dump_mfts.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibaddr.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibcheckerrors.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibcheckerrs.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibchecknet.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibchecknode.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibcheckport.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibcheckportstate.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibcheckportwidth.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibcheckstate.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibcheckwidth.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibclearcounters.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibclearerrors.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibdatacounters.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibdatacounts.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibdiscover.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibfindnodesusing.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibhosts.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibidsverify.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/iblinkinfo.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibnetdiscover.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibnodes.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibping.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibportstate.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibprintca.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibprintrt.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibprintswitch.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibqueryerrors.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibroute.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibrouters.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibstat.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibstatus.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibswitches.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibswportwatch.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibsysstat.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/ibtracert.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/perfquery.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/saquery.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/sminfo.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/smpdump.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/smpquery.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/man/vendstat.8 projects/ofed/base/contrib/ofed/management/infiniband-diags/perltidy.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/IBswcountlimits.pm (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/check_lft_balance.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/dump_lfts.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/dump_mfts.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibcheckerrors.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibcheckerrs.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibchecknet.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibchecknode.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibcheckport.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibcheckportstate.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibcheckportwidth.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibcheckstate.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibcheckwidth.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibclearcounters.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibclearerrors.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibdatacounters.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibdatacounts.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibdiscover.map projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibdiscover.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibfindnodesusing.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibhosts.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibidsverify.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/iblinkinfo.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibnodes.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibprintca.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibprintrt.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibprintswitch.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibqueryerrors.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibrouters.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibstatus (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibswitches.in projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/ibswportwatch.pl (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/scripts/set_nodedesc.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ projects/ofed/base/contrib/ofed/management/infiniband-diags/src/grouping.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibaddr.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibdiag_common.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibnetdiscover.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibping.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibportstate.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibroute.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibsendtrap.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibstat.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibsysstat.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibtracert.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/mcm_rereg_test.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/perfquery.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/saquery.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/sminfo.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/smpdump.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/smpquery.c projects/ofed/base/contrib/ofed/management/infiniband-diags/src/vendstat.c projects/ofed/base/contrib/ofed/management/libibcommon/ projects/ofed/base/contrib/ofed/management/libibcommon/AUTHORS projects/ofed/base/contrib/ofed/management/libibcommon/COPYING projects/ofed/base/contrib/ofed/management/libibcommon/ChangeLog projects/ofed/base/contrib/ofed/management/libibcommon/Makefile.am projects/ofed/base/contrib/ofed/management/libibcommon/autogen.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/libibcommon/configure.in projects/ofed/base/contrib/ofed/management/libibcommon/include/ projects/ofed/base/contrib/ofed/management/libibcommon/include/infiniband/ projects/ofed/base/contrib/ofed/management/libibcommon/include/infiniband/common.h projects/ofed/base/contrib/ofed/management/libibcommon/libibcommon.spec.in projects/ofed/base/contrib/ofed/management/libibcommon/libibcommon.ver projects/ofed/base/contrib/ofed/management/libibcommon/src/ projects/ofed/base/contrib/ofed/management/libibcommon/src/hash.c projects/ofed/base/contrib/ofed/management/libibcommon/src/libibcommon.map projects/ofed/base/contrib/ofed/management/libibcommon/src/stack.c projects/ofed/base/contrib/ofed/management/libibcommon/src/sysfs.c projects/ofed/base/contrib/ofed/management/libibcommon/src/time.c projects/ofed/base/contrib/ofed/management/libibcommon/src/util.c projects/ofed/base/contrib/ofed/management/libibmad/ projects/ofed/base/contrib/ofed/management/libibmad/AUTHORS projects/ofed/base/contrib/ofed/management/libibmad/COPYING projects/ofed/base/contrib/ofed/management/libibmad/ChangeLog projects/ofed/base/contrib/ofed/management/libibmad/Makefile.am projects/ofed/base/contrib/ofed/management/libibmad/autogen.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/libibmad/configure.in projects/ofed/base/contrib/ofed/management/libibmad/include/ projects/ofed/base/contrib/ofed/management/libibmad/include/infiniband/ projects/ofed/base/contrib/ofed/management/libibmad/include/infiniband/mad.h projects/ofed/base/contrib/ofed/management/libibmad/libibmad.spec.in projects/ofed/base/contrib/ofed/management/libibmad/libibmad.ver projects/ofed/base/contrib/ofed/management/libibmad/src/ projects/ofed/base/contrib/ofed/management/libibmad/src/dump.c projects/ofed/base/contrib/ofed/management/libibmad/src/fields.c projects/ofed/base/contrib/ofed/management/libibmad/src/gs.c projects/ofed/base/contrib/ofed/management/libibmad/src/libibmad.map projects/ofed/base/contrib/ofed/management/libibmad/src/mad.c projects/ofed/base/contrib/ofed/management/libibmad/src/portid.c projects/ofed/base/contrib/ofed/management/libibmad/src/register.c projects/ofed/base/contrib/ofed/management/libibmad/src/resolve.c projects/ofed/base/contrib/ofed/management/libibmad/src/rpc.c projects/ofed/base/contrib/ofed/management/libibmad/src/sa.c projects/ofed/base/contrib/ofed/management/libibmad/src/serv.c projects/ofed/base/contrib/ofed/management/libibmad/src/smp.c projects/ofed/base/contrib/ofed/management/libibmad/src/vendor.c projects/ofed/base/contrib/ofed/management/libibumad/ projects/ofed/base/contrib/ofed/management/libibumad/AUTHORS projects/ofed/base/contrib/ofed/management/libibumad/COPYING projects/ofed/base/contrib/ofed/management/libibumad/ChangeLog projects/ofed/base/contrib/ofed/management/libibumad/Makefile.am projects/ofed/base/contrib/ofed/management/libibumad/autogen.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/libibumad/configure.in projects/ofed/base/contrib/ofed/management/libibumad/include/ projects/ofed/base/contrib/ofed/management/libibumad/include/infiniband/ projects/ofed/base/contrib/ofed/management/libibumad/include/infiniband/umad.h projects/ofed/base/contrib/ofed/management/libibumad/libibumad.spec.in projects/ofed/base/contrib/ofed/management/libibumad/libibumad.ver projects/ofed/base/contrib/ofed/management/libibumad/man/ projects/ofed/base/contrib/ofed/management/libibumad/man/umad_addr_dump.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_alloc.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_close_port.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_debug.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_dump.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_free.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_ca.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_ca_portguids.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_cas_names.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_fd.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_issm_path.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_mad.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_mad_addr.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_pkey.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_get_port.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_init.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_open_port.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_poll.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_recv.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_register.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_register_oui.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_send.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_set_addr.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_set_addr_net.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_set_grh.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_set_grh_net.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_set_pkey.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_size.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_status.3 projects/ofed/base/contrib/ofed/management/libibumad/man/umad_unregister.3 projects/ofed/base/contrib/ofed/management/libibumad/src/ projects/ofed/base/contrib/ofed/management/libibumad/src/libibumad.map projects/ofed/base/contrib/ofed/management/libibumad/src/umad.c projects/ofed/base/contrib/ofed/management/make.dist (contents, props changed) projects/ofed/base/contrib/ofed/management/opensm/ projects/ofed/base/contrib/ofed/management/opensm/AUTHORS projects/ofed/base/contrib/ofed/management/opensm/COPYING projects/ofed/base/contrib/ofed/management/opensm/ChangeLog projects/ofed/base/contrib/ofed/management/opensm/INSTALL projects/ofed/base/contrib/ofed/management/opensm/Makefile.am projects/ofed/base/contrib/ofed/management/opensm/NEWS projects/ofed/base/contrib/ofed/management/opensm/README projects/ofed/base/contrib/ofed/management/opensm/autogen.sh (contents, props changed) projects/ofed/base/contrib/ofed/management/opensm/complib/ projects/ofed/base/contrib/ofed/management/opensm/complib/ChangeLog projects/ofed/base/contrib/ofed/management/opensm/complib/Makefile.am projects/ofed/base/contrib/ofed/management/opensm/complib/cl_complib.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_dispatcher.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_event.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_event_wheel.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_list.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_log.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_map.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_nodenamemap.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_pool.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_ptr_vector.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_spinlock.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_statustext.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_thread.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_threadpool.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_timer.c projects/ofed/base/contrib/ofed/management/opensm/complib/cl_vector.c projects/ofed/base/contrib/ofed/management/opensm/complib/ib_statustext.c projects/ofed/base/contrib/ofed/management/opensm/complib/libosmcomp.map projects/ofed/base/contrib/ofed/management/opensm/complib/libosmcomp.ver projects/ofed/base/contrib/ofed/management/opensm/config/ projects/ofed/base/contrib/ofed/management/opensm/config/osmvsel.m4 projects/ofed/base/contrib/ofed/management/opensm/configure.in projects/ofed/base/contrib/ofed/management/opensm/doc/ projects/ofed/base/contrib/ofed/management/opensm/doc/OpenSM_PKey_Mgr.txt projects/ofed/base/contrib/ofed/management/opensm/doc/OpenSM_RN.pdf (contents, props changed) projects/ofed/base/contrib/ofed/management/opensm/doc/OpenSM_UM.pdf (contents, props changed) projects/ofed/base/contrib/ofed/management/opensm/doc/QoS_management_in_OpenSM.txt projects/ofed/base/contrib/ofed/management/opensm/doc/current-routing.txt projects/ofed/base/contrib/ofed/management/opensm/doc/modular-routing.txt projects/ofed/base/contrib/ofed/management/opensm/doc/opensm-coding-style.txt projects/ofed/base/contrib/ofed/management/opensm/doc/opensm_release_notes-3.1.10.txt projects/ofed/base/contrib/ofed/management/opensm/doc/opensm_release_notes-3.1.11.txt projects/ofed/base/contrib/ofed/management/opensm/doc/opensm_release_notes-3.2.txt projects/ofed/base/contrib/ofed/management/opensm/doc/opensm_release_notes_ibg2-2.0.1.txt projects/ofed/base/contrib/ofed/management/opensm/doc/opensm_release_notes_openib-1.2.1.txt projects/ofed/base/contrib/ofed/management/opensm/doc/opensm_release_notes_openib-2.0.5.txt projects/ofed/base/contrib/ofed/management/opensm/doc/opensm_release_notes_openib-3.0.13.txt projects/ofed/base/contrib/ofed/management/opensm/doc/partition-config.txt projects/ofed/base/contrib/ofed/management/opensm/doc/perf-manager-arch.txt projects/ofed/base/contrib/ofed/management/opensm/doc/performance-manager-HOWTO.txt projects/ofed/base/contrib/ofed/management/opensm/doc/qos-config.txt projects/ofed/base/contrib/ofed/management/opensm/doc/todo projects/ofed/base/contrib/ofed/management/opensm/include/ projects/ofed/base/contrib/ofed/management/opensm/include/Makefile.am projects/ofed/base/contrib/ofed/management/opensm/include/complib/ projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_atomic.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_atomic_osd.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_byteswap.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_byteswap_osd.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_comppool.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_debug.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_debug_osd.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_dispatcher.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_event.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_event_osd.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_event_wheel.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_fleximap.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_list.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_log.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_map.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_math.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_nodenamemap.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_packoff.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_packon.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_passivelock.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_pool.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_ptr_vector.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_qcomppool.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_qlist.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_qmap.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_qpool.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_spinlock.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_spinlock_osd.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_thread.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_thread_osd.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_threadpool.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_timer.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_timer_osd.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_types.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_types_osd.h projects/ofed/base/contrib/ofed/management/opensm/include/complib/cl_vector.h projects/ofed/base/contrib/ofed/management/opensm/include/iba/ projects/ofed/base/contrib/ofed/management/opensm/include/iba/ib_cm_types.h projects/ofed/base/contrib/ofed/management/opensm/include/iba/ib_types.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/ projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_attrib_req.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_base.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_config.h.in projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_console.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_console_io.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_db.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_db_pack.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_errors.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_event_plugin.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_helper.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_inform.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_lid_mgr.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_log.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_mad_pool.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_madw.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_mcast_tbl.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_mcm_info.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_mcm_port.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_msgdef.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_mtree.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_multicast.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_node.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_opensm.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_partition.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_path.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_perfmgr.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_perfmgr_db.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_pkey.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_pkey_mgr.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_port.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_port_profile.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_prefix_route.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_qos_policy.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_remote_sm.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_router.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_sa.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_sa_mad_ctrl.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_service.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_sm.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_sm_mad_ctrl.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_stats.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_subnet.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_switch.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_ucast_cache.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_ucast_mgr.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_version.h.in projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_vl15intf.h projects/ofed/base/contrib/ofed/management/opensm/include/opensm/st.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/ projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_mtl_bind.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_pkt_randomizer.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_ts_useraccess.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_umadt.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_al.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_api.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_ibumad.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_defs.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_dispatcher.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_hca.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_inout.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_rmpp_ctx.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_sar.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_sender.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_svc.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_transport.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_transport_anafa.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mlx_txn.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mtl.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mtl_hca_guid.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_mtl_transaction_mgr.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_sa_api.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_test.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_ts.h projects/ofed/base/contrib/ofed/management/opensm/include/vendor/osm_vendor_umadt.h projects/ofed/base/contrib/ofed/management/opensm/libvendor/ projects/ofed/base/contrib/ofed/management/opensm/libvendor/ChangeLog projects/ofed/base/contrib/ofed/management/opensm/libvendor/Makefile.am projects/ofed/base/contrib/ofed/management/opensm/libvendor/libosmvendor.map projects/ofed/base/contrib/ofed/management/opensm/libvendor/libosmvendor.ver projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_pkt_randomizer.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_al.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_ibumad.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_ibumad_sa.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_anafa.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_dispatcher.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_hca.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_hca_anafa.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_hca_pfs.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_hca_sim.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_ibmgt.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_rmpp_ctx.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_sa.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_sar.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_sender.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_sim.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_ts.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_ts_anafa.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mlx_txn.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mtl.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mtl_hca_guid.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_mtl_transaction_mgr.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_test.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_ts.c projects/ofed/base/contrib/ofed/management/opensm/libvendor/osm_vendor_umadt.c projects/ofed/base/contrib/ofed/management/opensm/man/ projects/ofed/base/contrib/ofed/management/opensm/man/opensm.8.in projects/ofed/base/contrib/ofed/management/opensm/man/osmtest.8 projects/ofed/base/contrib/ofed/management/opensm/opensm/ projects/ofed/base/contrib/ofed/management/opensm/opensm.spec.in projects/ofed/base/contrib/ofed/management/opensm/opensm/ChangeLog projects/ofed/base/contrib/ofed/management/opensm/opensm/Makefile.am projects/ofed/base/contrib/ofed/management/opensm/opensm/libopensm.map projects/ofed/base/contrib/ofed/management/opensm/opensm/libopensm.ver projects/ofed/base/contrib/ofed/management/opensm/opensm/main.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_check (contents, props changed) projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_check_n_fix (contents, props changed) projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_console.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_console_io.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_db_files.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_db_pack.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_drop_mgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_dump.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_event_plugin.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_helper.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_indent (contents, props changed) projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_inform.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_lid_mgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_lin_fwd_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_link_mgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_log.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_mad_pool.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_mcast_fwd_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_mcast_mgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_mcast_tbl.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_mcm_info.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_mcm_port.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_mtree.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_multicast.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_node.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_node_desc_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_node_info_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_opensm.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_perfmgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_perfmgr_db.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_pkey.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_pkey_mgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_pkey_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_port.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_port_info_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_prtn.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_prtn_config.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_qos.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_qos_parser_l.l projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_qos_parser_y.y projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_qos_policy.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_remote_sm.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_req.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_resp.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_router.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_class_port_info.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_guidinfo_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_informinfo.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_lft_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_link_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_mad_ctrl.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_mcmember_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_mft_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_multipath_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_node_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_path_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_pkey_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_portinfo_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_service_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_slvl_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_sminfo_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_sw_info_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_vlarb_record.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_service.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_slvl_map_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sm.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sm_mad_ctrl.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sm_state_mgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sminfo_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_state_mgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_subnet.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sw_info_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_switch.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_trap_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_ucast_cache.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_ucast_file.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_ucast_ftree.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_ucast_lash.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_ucast_mgr.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_ucast_updn.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_vl15intf.c projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_vl_arb_rcv.c projects/ofed/base/contrib/ofed/management/opensm/opensm/st.c projects/ofed/base/contrib/ofed/management/opensm/osmeventplugin/ projects/ofed/base/contrib/ofed/management/opensm/osmeventplugin/Makefile.am projects/ofed/base/contrib/ofed/management/opensm/osmeventplugin/libosmeventplugin.map projects/ofed/base/contrib/ofed/management/opensm/osmeventplugin/libosmeventplugin.ver projects/ofed/base/contrib/ofed/management/opensm/osmeventplugin/src/ projects/ofed/base/contrib/ofed/management/opensm/osmeventplugin/src/osmeventplugin.c projects/ofed/base/contrib/ofed/management/opensm/osmtest/ projects/ofed/base/contrib/ofed/management/opensm/osmtest/Makefile.am projects/ofed/base/contrib/ofed/management/opensm/osmtest/include/ projects/ofed/base/contrib/ofed/management/opensm/osmtest/include/osmt_inform.h projects/ofed/base/contrib/ofed/management/opensm/osmtest/include/osmt_mtl_regular_qp.h projects/ofed/base/contrib/ofed/management/opensm/osmtest/include/osmtest.h projects/ofed/base/contrib/ofed/management/opensm/osmtest/include/osmtest_base.h projects/ofed/base/contrib/ofed/management/opensm/osmtest/include/osmtest_subnet.h projects/ofed/base/contrib/ofed/management/opensm/osmtest/main.c projects/ofed/base/contrib/ofed/management/opensm/osmtest/osmt_inform.c projects/ofed/base/contrib/ofed/management/opensm/osmtest/osmt_mtl_regular_qp.c projects/ofed/base/contrib/ofed/management/opensm/osmtest/osmt_multicast.c projects/ofed/base/contrib/ofed/management/opensm/osmtest/osmt_service.c projects/ofed/base/contrib/ofed/management/opensm/osmtest/osmt_slvl_vl_arb.c projects/ofed/base/contrib/ofed/management/opensm/osmtest/osmtest.c projects/ofed/base/contrib/ofed/management/opensm/scripts/ projects/ofed/base/contrib/ofed/management/opensm/scripts/opensm.init.in projects/ofed/base/contrib/ofed/management/opensm/scripts/opensm.logrotate projects/ofed/base/contrib/ofed/management/opensm/scripts/opensm.sysconfig projects/ofed/base/contrib/ofed/management/opensm/scripts/redhat-opensm.init.in (contents, props changed) projects/ofed/base/contrib/ofed/management/opensm/scripts/sldd.sh.in (contents, props changed) Added: projects/ofed/base/contrib/ofed/libibverbs/AUTHORS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/base/contrib/ofed/libibverbs/AUTHORS Thu Jun 24 22:41:01 2010 (r209516) @@ -0,0 +1,4 @@ +Roland Dreier +Dotan Barak +Sean Hefty +Michael S. Tsirkin Added: projects/ofed/base/contrib/ofed/libibverbs/COPYING ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/base/contrib/ofed/libibverbs/COPYING Thu Jun 24 22:41:01 2010 (r209516) @@ -0,0 +1,378 @@ +This software is available to you under a choice of one of two +licenses. You may choose to be licensed under the terms of the the +OpenIB.org BSD license or the GNU General Public License (GPL) Version +2, both included below. + +Copyright (c) 2004 Topspin Communications. All rights reserved. + +================================================================== + + OpenIB.org BSD license + +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. + +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 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. + +================================================================== + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Added: projects/ofed/base/contrib/ofed/libibverbs/ChangeLog ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/base/contrib/ofed/libibverbs/ChangeLog Thu Jun 24 22:41:01 2010 (r209516) @@ -0,0 +1,583 @@ +2006-10-30 Jack Morgenstein + + * src/cmd.c (ibv_cmd_query_qp): Unmarshall sq_draining instead of + en_sqd_async_notify. + + * include/infiniband/kern-abi.h: Change en_sqd_async_notify member + of struct ibv_query_qp_resp to sq_draining. + +2006-10-30 Roland Dreier + + * src/init.c (find_drivers): Make find_drivers() take a const + directory name, and tweak how we strip trailing /s so that we + don't have to modify the directory name passed in. Constify + default_path too. + +2006-10-25 Roland Dreier + + * src/init.c (init_drivers): Remove assignment to dev->driver now + that it is gone for good. + + * include/infiniband/verbs.h: Remove .driver member of struct + ibv_device, since it is never really used. + +2006-10-17 Roland Dreier + + * include/infiniband/arch.h: Update i386 and x86_64 memory barrier + macros to be more than compiler barriers, to guard against + out-of-order speculative reads. + + * include/infiniband/arch.h: Add rmb() and wmb() macros in + addition to the full mb(), so that low-level drivers can ask for + weaker ordering if that's all that is needed. + +2006-10-03 Roland Dreier + + * src/cmd.c (ibv_cmd_get_context_v2, ibv_cmd_get_context) + (ibv_cmd_query_device, ibv_cmd_query_port, ibv_cmd_alloc_pd) + (ibv_cmd_reg_mr, ibv_cmd_create_cq_v2, ibv_cmd_create_cq) + (ibv_cmd_poll_cq, ibv_cmd_resize_cq, ibv_cmd_destroy_cq) + (ibv_cmd_create_srq, ibv_cmd_create_qp, ibv_cmd_post_send) + (ibv_cmd_post_recv, ibv_cmd_post_srq_recv, ibv_cmd_create_ah) + (ibv_cmd_destroy_qp): Annotate so that Valgrind knows responses + are defined after write() succeeds. The kernel writes into the + response structure directly, so without these, Valgrind thinks + that response structures are undefined memory. This is based on + patches and suggestions by Rainer Keller , Jeff + Squyres and Siqing Fan. + + * src/ibverbs.h: Add wrapper for VALGRIND_MAKE_MEM_DEFINED so that + it can be used in .c files without worrying about whether Valgrind + is installed or enabled. + + * configure.in: Add support for Valgrind annotation (enabled with + --with-valgrind option to configure). + + * src/cmd.c (ibv_cmd_query_port, ibv_cmd_create_cq, + ibv_cmd_modify_qp): Set reserved fields to 0 to avoid future + problems and also to make Valgrind a little quieter. + + * src/init.c (init_drivers): Set node_type and transport_type + values of device being created. + + * include/infiniband/verbs.h: Add ibv_node_type enum value + IBV_NODE_RNIC, and add enum ibv_transport_type. Add node_type and + transport_type fields to struct ibv_device. + +2006-09-12 Roland Dreier + + * include/infiniband/verbs.h: Swap wr_id and next members of + struct ibv_send_wr and struct ibv_recv_wr. This allows wr_id to + be naturally aligned without padding on 32-bit platforms. + +2006-08-23 Roland Dreier + + * include/infiniband/driver.h: Add a definition of the macro + IBV_CMD_RESIZE_CQ_HAS_RESP_PARAMS so that low-level driver plugins + can detect the changed signature of ibv_cmd_resize_cq(). + +2006-08-23 Ralph Campbell + + * src/cmd.c (ibv_cmd_resize_cq): Add resp and resp_size parameters + so that the low-level driver in the kernel can return + device-specific information from the resize CQ operation. + +2006-07-26 Roland Dreier + + * src/verbs.c (ibv_reg_mr, ibv_dereg_mr): Add calls to + ibv_dontfork_range() and ibv_dofork_range() for memory regions + registered by library consumers. + + * include/infiniband/verbs.h: Add declaration of ibv_fork_init(). + + * include/infiniband/driver.h: Add declarations of + ibv_dontfork_range() and ibv_dofork_range(). + + * src/memory.c: Rewrite to use a red-black tree instead of a + linked list. Change from doing mlock()/munlock() to + madvise(..., MADV_DONTFORK) and madvise(..., MADV_DOFORK), and + change the name of the entry points to ibv_dontfork_range() and + ibv_dofork_range(). Add ibv_fork_init() for applications to + request fork-safe behavior. + + * src/ibverbs.h: Kill off unused declarations. + + * src/init.c (ibverbs_init): Get rid of call to ibv_init_mem_map(). + + * include/infiniband/verbs.h: Add addr and length field to struct + ibv_mr so that memory regions can be madvised(). This changes the + ABI, since the layout of struct ibv_mr is changed. + +2006-07-04 Roland Dreier + + * include/infiniband/arch.h: Fix typo in sparc mb() + implementation: the asm should just be empty -- the "sync" + instruction was mistakenly cut and pasted from the ppc version. + +2006-06-07 Sean Hefty + + * src/verbs.c include/infiniband/verbs.h: Add new routines: + ibv_init_ah_from_wc() and ibv_create_ah_from_wc() to simplify UD QP + communication. + + * src/marshall.c include/infiniband/marshall.h: Expose + ibv_copy_ah_attr_from_kern to retrieve ibv_ah_attr from kernel for + a UD QP. + +2006-06-01 Roland Dreier + + * src/device.c (ibv_get_device_list): Actually return a + NULL-terminated array as the documentation promises. + +2006-05-31 Roland Dreier + + * src/init.c (find_drivers): Fix memory leak: the result of + asprintf() needs to be freed when we're done with it. + + * examples/asyncwatch.c (event_name_str): Print human-readable + form of IBV_EVENT_CLIENT_REREGISTER. + +2006-05-31 Leonid Arsh + + * include/infiniband/verbs.h: Add IBV_EVENT_CLIENT_REREGISTER. + +2006-05-22 Roland Dreier + + * examples/devinfo.c (print_hca_cap): Read board_id attribute from + sysfs using ibv_read_sysfs_file() instead of libsysfs. + + * src/cmd.c, src/marshall.c, src/sysfs.c: Include , + since it is no longer implicitly included via . + + * include/infiniband/driver.h, include/infiniband/verbs.h, + src/device.c, src/init.c, src/verbs.c: Remove dependency on + libsysfs by implementing what is required directly on top of + filesystem operations. + + * include/infiniband/driver.h, src/init.c: Change name of driver + entry point to ibv_driver_init(), and update prototype to remove + libsysfs dependency. + + * src/marshall.c, include/infiniband/marshall.h, + include/infiniband/sa.h: Remove deprecated ib_xxx symbols. + + * Makefile.am: Bump SONAME to 2, since libibverbs 1.1 will be + ABI-incompatible with libibverbs 1.0. + + * Create libibverbs 1.1 branch and bump version number to 1.1-pre1. + +2006-05-22 Michael S. Tsirkin + + * include/infiniband/verbs.h: Remove trailing commas from + enumerators to quiet warnings from obsolete compilers. + +2006-05-02 Roland Dreier + + * Release version 1.0.3. + +2006-05-01 Roland Dreier + + * include/infiniband/arch.h: Only SPARC V9 ISA supports membar. + So just use generic memory barrier for older sparc archs. + +2006-04-11 Roland Dreier + + * src/sysfs.c (ibv_read_sysfs_file): Fix memory leak if open fails. + + * src/device.c (ibv_get_device_guid), src/verbs.c (ibv_query_gid, + ibv_query_pkey), src/init.c (init_drivers, check_abi_version): Use + libibverbs functions instead of libsysfs functions to get to sysfs. + + * src/sysfs.c (ibv_get_sysfs_path, ibv_read_sysfs_file): Add some + simple functions for accessing sysfs without using libsysfs. + + * include/infiniband/sa-kern-abi.h: Deprecate struct + ib_kern_path_rec name; struct ibv_kern_path_rec is now preferred. + + * include/infiniband/sa.h: Deprecate struct ib_sa_XXX names; + struct ibv_sa_XXX is now preferred. + + * src/marshall.c, include/infiniband/marshall.h: Deprecate + ib_copy_XXX() names; ibv_copy_XXX() is preferred. Add stub + wrappers with the old names so old binaries still work. + +2006-04-11 Hoang-Nam Nguyen + + * src/verbs.c (ibv_rate_to_mult, mult_to_ibv_rate): Add new + functions to convert between IB rate enums and multiples of the + base 2.5 Gb/sec rate. + +2006-04-11 Roland Dreier + + * include/infiniband/verbs.h: Add __attribute_const macro to + portably mark functions as __attribute__((const)) + +2006-03-28 Roland Dreier + + * src/init.c (load_driver): Print warning if dlopen() of a driver + plugin fails. + +2006-03-22 Dotan Barak + + * examples/asyncwatch.c: Print asynchronous event name as well as + raw integer value. + +2006-03-22 Roland Dreier + + * include/infiniband/verbs.h (ibv_req_notify_cq): Document + parameters better. + +2006-03-16 Roland Dreier + + * src/cmd.c, src/device.c, src/memory.c, src/verbs.c: Add include + of to get a declaration of free() and avoid compile + warnings. + +2006-03-14 Roland Dreier + + * Release version 1.0.2. + + * Makefile.am (EXTRA_DIST): Remove debian/ directory from + tarballs, since Debian policy is that upstream tarballs should not + include it. + +2006-03-13 Roland Dreier + + * Release version 1.0.1. + + * src/init.c (check_abi_version), src/verbs.c (ibv_query_gid, + ibv_query_pkey): Use sysfs_open_attribute() and + sysfs_read_attribute() instead of the deprecated function + sysfs_read_attribute_value(), which is no longer present in + libsysfs2 (which is already in Debian and Ubuntu). + + * Release version 1.0. + +2006-03-06 Roland Dreier + + * include/infiniband/verbs.h: Add enum ibv_rate to define encoding + of static_rate field (based on a patch from Jack Morgenstein + ). + +2006-03-06 Ralph Campbell + + * src/init.c (find_drivers): Fix minor memory leak: call + globfree() to free memory allocated by glob(). + +2006-02-23 Dotan Barak + + * src/cmd.c (ibv_cmd_create_srq): Add support for kernel ABI + version 6 (take SRQ capacity from kernel response to create SRQ). + +2006-02-16 Roland Dreier + + * Release version 1.0-rc7. + + * src/cmd.c (ibv_cmd_create_qp): Add support for kernel ABI + version 5 (properly aligned struct ibv_create_qp_resp). + +2006-02-15 Roland Dreier + + * src/cmd.c (ibv_cmd_create_qp): Allow userspace device-specific + driver to pass in a response buffer, so that the low-level driver + in the kernel can pass back device-specific information. This + changes the userspace driver API, since the signature of + ibv_cmd_create_qp() is changed. + +2006-02-14 Roland Dreier + + * Release version 1.0-rc6. + +2006-02-13 Dotan Barak + + * examples/devinfo.c (print_hca_cap): Print board_id from sysfs, + if present. + +2006-02-13 Roland Dreier + + * examples/asyncwatch.c, examples/device_list.c, + examples/devinfo.c: Remove cpu_to_be64()/be64_to_cpu() and use + htonll()/ntohll() from . + +2006-02-13 Dotan Barak + + * src/cmd.c (ibv_cmd_query_qp, ibv_cmd_query_srq), + include/infiniband/driver.h: Add driver interface for calling + query QP and query SRQ kernel commands. + + * include/infiniband/kern-abi.h: Add kernel ABI for query QP and + query SRQ. + + * src/verbs.c (ibv_query_qp, ibv_query_srq), + include/infiniband/verbs.h: Add query QP and query SRQ library + APIs. This changes the provider ABI, since new fields are added + to struct ibv_context_ops; source compatibility with provider + libraries is preserved, but binaries will have to be recompiled. + Neither source nor binary compatibility with consumers of + libibverbs is affected. + +2006-02-01 Roland Dreier + + * examples/rc_pingpong.c, examples/uc_pingpong.c, + examples/ud_pingpong.c, examples/srq_pingpong.c: Fix bug in + searching for device by name when there's more than one device. + +2006-01-31 Roland Dreier + + * include/infiniband/verbs.h, include/infiniband/driver.h: Remove + useless "extern" from function declarations. + +2006-01-26 Roland Dreier + + * include/infiniband/driver.h, src/cmd.c (ibv_cmd_resize_cq): Add + driver interface for calling resize CQ kernel command. + + * include/infiniband/kern-abi.h: Add resize CQ kernel ABI. + + * include/infiniband/verbs.h, src/verbs.c (ibv_resize_cq): Add + resize CQ library API. This changes the provider ABI, since a new + field is added to struct ibv_context_ops; source compatibility + with provider libraries is preserved, but binaries will have to be + recompiled. Neither source nor binary compatibility with + consumers of libibverbs is affected. + +2006-01-25 Roland Dreier + + * examples/pingpong.c, examples/pingpong.h, + examples/rc_pingpong.c, examples/uc_pingpong.c, + examples/srq_pingpong.c: Move pp_get_local_lid() to pingpong.c to + reduce code duplication. + +2006-01-22 Roland Dreier + + * Release version 1.0-rc5. + +2006-01-22 Dotan Barak + + * examples/devinfo.c (main): Make ibv_devinfo list all IB devices + by default, rather than the first device only. + +2006-01-20 Roland Dreier + + * examples/rc_pingpong.c, examples/uc_pingpong.c, + examples/srq_pingpong.c: Add "-m/--mtu=" option to set path MTU. + (Based on a patch from Ralph Campbell ) + + * examples/pingpong.c, examples/pingpong.h: Create generic + pingpong files so that we can start factoring out common code from + the pingpong examples. Start with functions to convert MTU to an + IBV enum value. + +2006-01-17 Ralph Campbell + + * examples/rc_pingpong.c (main), examples/srq_pingpong.c (main), + examples/uc_pingpong.c (main), examples/ud_pingpong.c (main): Fix + race when using CQ events by arming CQ before allowing remote side + to start sending. + +2006-01-06 Roland Dreier + + * examples/srq_pingpong.c (main): Fix SRQ example to avoid + problems with many QPs and events. Based on a patch from Dotan + Barak (who also found the problem). + +2006-01-06 Ralph Campbell + + * examples/rc_pingpong.c (main), examples/srq_pingpong.c (main), + examples/uc_pingpong.c (main), examples/ud_pingpong.c (main): Fix + test of return value of ibv_poll_cq(). + +2006-01-04 Dotan Barak + + * include/infiniband/verbs.h: Fix mask names in description of + ibv_modify_srq. + +2006-01-04 Michael S. Tsirkin + + * src/init.c (ibverbs_init): Fix ibverbs_init for multiple adapters. + Noted by Christoph Raisch. + +2005-12-15 Roland Dreier + + * include/infiniband/verbs.h: Document that devices must be opened + before calling ibv_free_device_list(). + + * src/verbs.c (ibv_create_srq): Not all provider libraries will + support SRQs, so check if the create_srq method is defined before + calling it. (Based on a patch from Shirley Ma ) + +2005-11-11 Roland Dreier + + * examples/asyncwatch.c, examples/rc_pingpong.c, + examples/srq_pingpong.c, examples/uc_pingpong.c, + examples/ud_pingpong.c, examples/device_list.c, + examples/devinfo.c: Update examples to match new API. + + * include/infiniband/verbs.h, src/device.c, src/init.c, + src/ibverbs.h: Change from dlist-based ibv_get_devices() API to + simpler ibv_get_device_list() and ibv_free_device_list() API. + +2005-11-10 Sean Hefty + + * include/infiniband/sa-kern-abi.h: New include file to contain + definitions of SA structures passed between userspace and kernel. + + * include/infiniband/sa.h: New include file for definitions of + SA structures used by multiple libraries. + + * include/infiniband/marshall.h src/marshall.c: New files to define + routines used to exchange data with kernel modules. + + * include/infiniband/kern-abi.h: Added data structures used to exchange + QP attribute with kernel modules. + +2005-11-09 Michael S. Tsirkin + + * src/device.c (ibv_get_devices): Make function reentrant by using + a mutex to make sure we initialize the device list at most once. + +2005-11-08 Roland Dreier + + * src/cmd.c (ibv_cmd_create_qp): Add handling for new create QP + interface, which has the kernel return QP capabilities. + + * src/cmd.c (ibv_cmd_modify_srq): Split off handling of modify SRQ + for ABI versions 3 and older, which passed max_sge as part of command. + +2005-10-30 Roland Dreier + + * examples/srq_pingpong.c (pp_init_ctx): Create CQ with rx_depth + + num_qp entries, instead of just rx_depth + 1 entries, because + there can be one send completion pending for each QP. + +2005-10-25 Roland Dreier + + * Release version 1.0-rc4. + + * examples/uc_pingpong.c (pp_connect_ctx): Fix QP attribute masks + used to modify QP to RTR and RTS -- we should not be setting + RDMA/atomic attributes for UC QPs. Now that the mthca kernel + driver bug is fixed, the error is exposed here. + + * examples/rc_pingpong.c, examples/srq_pingpong.c, + examples/uc_pingpong.c, examples/ud_pingpong.c: Keep track of + whether send and/or receive is pending. This avoids failures when + the remote side receives data and posts a send very quickly, and + the local side completes the receive before the previous send. + With the old code, this could result in posting a send before the + previous send completed, and therefore overrun the send queue. + +2005-10-23 Roland Dreier + + * src/cmd.c (ibv_cmd_get_context_v2): Correct silly mistake in + computation of size of buffer for old ABI command: we need to use + sizeof *cmd instead of sizeof cmd, since cmd is a pointer. + +2005-10-21 Roland Dreier + + * src/cmd.c (ibv_cmd_post_send, ibv_cmd_post_recv, + ibv_cmd_post_srq_recv): Correct value that we check write() return + value against so that we check against the size we actually try to + write, instead of just sizeof cmd. + +2005-10-19 Roland Dreier + + * src/cmd.c (ibv_cmd_req_notify_cq): Correct how we pass + solicited_only flag into the kernel. + +2005-10-13 Roland Dreier + + * include/infiniband/driver.h, src/cmd.c, src/libibverbs.map: Add + command functions for calling new kernel commands. + + * include/infiniband/verbs.h: Add qp_type to struct ibv_qp so that + we know when we're posting a send on a UD QP, and add kernel + handle member to struct ibv_ah so we can handle drivers that do + create AH and destroy AH operations in the kernel. + + * include/infiniband/kern-abi.h: Add new command structures for + poll CQ, request notification for CQ, post send, post receive, + post SRQ receive, create AH and destroy AH commands. These will + be used by the PathScale userspace driver. + +2005-10-12 Roland Dreier + + * examples/srq_pingpong.c (main): Zero out unused entries in + my_dest array to avoid string overflows when we send to the other + side. + +2005-10-09 Roland Dreier + + * examples/devinfo.c (print_hca_cap): Only print max_mr_size and + page_size_cap if verbose is set. + +2005-10-05 Roland Dreier + + * src/cmd.c (ibv_cmd_modify_srq): Add function for marshalling + modify SRQ command. + +2005-09-29 Roland Dreier + + * examples/devinfo.c (print_hca_cap): Get rid of formatting of + firmware version in what should be device-independent code. + + * include/infiniband/driver.h, include/infiniband/verbs.h, + src/cmd.c (ibv_cmd_query_device): Change firmware version in + struct ibv_device_attr to be a string formatted by device-specific + library. + +2005-09-25 Roland Dreier + + * examples/rc_pingpong.c, examples/srq_pingpong.c, + examples/uc_pingpong.c, examples/ud_pingpong.c: Update to match + new completion channel and CQ creation API. + + * include/infiniband/driver.h, include/infiniband/verbs.h, + src/device.c, src/ibverbs.h, src/verbs.c, src/cmd.c: Add notion of + "completion channel" that allows consumers to dynamically create + and destroy file descriptors for retrieving completion events. + Completion channels are handled natively with kernel ABI version 3 + and simulated with backwards compatibility implementations for ABI + versions 1 and 2. + + * include/infiniband/kern-abi.h: Update to match kernel ABI + version 3. + +2005-09-07 Roland Dreier + + * src/device.c (ibv_get_device_guid): Use htonll() instead of + relying on pointer aliasing (which seems to break for some gcc + versions). + + * include/infiniband/arch.h: Add htonll() and ntohll() functions. + +2005-09-06 Roland Dreier + + * include/infiniband/kern-abi.h, include/infiniband/verbs.h, + src/cmd.c, src/device.c, src/verbs.c, examples/asyncwatch.c: + Update to handle new kernel ABI for avoiding stale completion + events. This is completely analogous to the previous asynchronous + event change. + +2005-08-31 Roland Dreier + + * include/infiniband/kern-abi.h, include/infiniband/verbs.h, + src/cmd.c, src/device.c, src/ibverbs.h, src/init.c, src/verbs.c, + examples/asyncwatch.c: Update to handle new kernel ABI for + avoiding stale asynchronous events. When a CQ, QP or SRQ is + destroyed, the kernel reports the number of events it has given to + userspace, and we wait until we've handled the same number of + events. + + This does introduce a library API change: consumers are now + required to call ibv_put_async_event() to release every + asynchronous event that they retrieve via ibv_get_async_event(). + +2005-08-30 Roland Dreier + + * man/ibv_asyncwatch.1, man/ibv_devices.1, man/ibv_devinfo.1, + man/ibv_rc_pingpong.1, man/ibv_srq_pingpong.1, + man/ibv_uc_pingpong.1, man/ibv_ud_pingpong.1: Add man pages for + example programs. + + * examples/devinfo.c: Merge with Dotan Barak's vstat tool. Added: projects/ofed/base/contrib/ofed/libibverbs/Makefile.am ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/base/contrib/ofed/libibverbs/Makefile.am Thu Jun 24 22:41:01 2010 (r209516) @@ -0,0 +1,105 @@ +INCLUDES = -I$(srcdir)/include + +lib_LTLIBRARIES = src/libibverbs.la + +AM_CFLAGS = -g -Wall -D_GNU_SOURCE + +src_libibverbs_la_CFLAGS = $(AM_CFLAGS) -DIBV_CONFIG_DIR=\"$(sysconfdir)/libibverbs.d\" + +libibverbs_version_script = @LIBIBVERBS_VERSION_SCRIPT@ + +src_libibverbs_la_SOURCES = src/cmd.c src/compat-1_0.c src/device.c src/init.c \ + src/marshall.c src/memory.c src/sysfs.c src/verbs.c \ + src/enum_strs.c +src_libibverbs_la_LDFLAGS = -version-info 1 -export-dynamic \ + $(libibverbs_version_script) +src_libibverbs_la_DEPENDENCIES = $(srcdir)/src/libibverbs.map + +bin_PROGRAMS = examples/ibv_devices examples/ibv_devinfo \ + examples/ibv_asyncwatch examples/ibv_rc_pingpong examples/ibv_uc_pingpong \ + examples/ibv_ud_pingpong examples/ibv_srq_pingpong +examples_ibv_devices_SOURCES = examples/device_list.c +examples_ibv_devices_LDADD = $(top_builddir)/src/libibverbs.la +examples_ibv_devinfo_SOURCES = examples/devinfo.c *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu Jun 24 22:47:09 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E1D991065670; Thu, 24 Jun 2010 22:47:09 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B8A818FC1C; Thu, 24 Jun 2010 22:47:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5OMl9Bf023253; Thu, 24 Jun 2010 22:47:09 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5OMl9oq023252; Thu, 24 Jun 2010 22:47:09 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006242247.o5OMl9oq023252@svn.freebsd.org> From: Jeff Roberson Date: Thu, 24 Jun 2010 22:47:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209517 - projects/ofed/head/contrib/ofed X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2010 22:47:10 -0000 Author: jeff Date: Thu Jun 24 22:47:09 2010 New Revision: 209517 URL: http://svn.freebsd.org/changeset/base/209517 Log: - Merge in new ofed files from base. Sponsored by: Isilon Systems, iX Systems, and Panasas. Added: projects/ofed/head/contrib/ofed/ - copied from r209516, projects/ofed/base/contrib/ofed/ From owner-svn-src-projects@FreeBSD.ORG Fri Jun 25 01:03:11 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 24BCF106566B; Fri, 25 Jun 2010 01:03:11 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 138088FC12; Fri, 25 Jun 2010 01:03:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5P13ASx053052; Fri, 25 Jun 2010 01:03:10 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5P13AQQ053046; Fri, 25 Jun 2010 01:03:10 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006250103.o5P13AQQ053046@svn.freebsd.org> From: Jeff Roberson Date: Fri, 25 Jun 2010 01:03:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209519 - in projects/ofed/head/contrib/ofed/usr.lib: . libibverbs libmlx4 libmthca X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2010 01:03:11 -0000 Author: jeff Date: Fri Jun 25 01:03:10 2010 New Revision: 209519 URL: http://svn.freebsd.org/changeset/base/209519 Log: - Add bmake files for ofed libraries. Sponsored by: Isilon Systems, iX Systems, and Panasas. Added: projects/ofed/head/contrib/ofed/usr.lib/ projects/ofed/head/contrib/ofed/usr.lib/libibverbs/ projects/ofed/head/contrib/ofed/usr.lib/libibverbs/Makefile projects/ofed/head/contrib/ofed/usr.lib/libibverbs/alloca.h projects/ofed/head/contrib/ofed/usr.lib/libibverbs/config.h projects/ofed/head/contrib/ofed/usr.lib/libmlx4/ projects/ofed/head/contrib/ofed/usr.lib/libmlx4/Makefile projects/ofed/head/contrib/ofed/usr.lib/libmlx4/config.h projects/ofed/head/contrib/ofed/usr.lib/libmthca/ projects/ofed/head/contrib/ofed/usr.lib/libmthca/Makefile projects/ofed/head/contrib/ofed/usr.lib/libmthca/config.h Added: projects/ofed/head/contrib/ofed/usr.lib/libibverbs/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libibverbs/Makefile Fri Jun 25 01:03:10 2010 (r209519) @@ -0,0 +1,39 @@ +# $FreeBSD$ + +SHLIBDIR?= /usr/lib + +.include + +IBVERBSDIR= ../../libibverbs +IBSRCDIR= ${IBVERBSDIR}/src +IBMANDIR= ${IBVERBSDIR}/man +OFEDSYS= ../../../../sys/ofed + +.PATH: ${IBSRCDIR} ${IBMANDIR} + +LIB= ibverbs +SHLIB_MAJOR= 1 +NO_PROFILE= + +SRCS= device.c init.c marshall.c verbs.c cmd.c enum_strs.c kern_abi.h \ + memory.c compat-1_0.c sysfs.c + +MAN= ibv_alloc_pd.3 ibv_asyncwatch.1 ibv_attach_mcast.3 ibv_create_ah.3 \ + ibv_create_ah_from_wc.3 ibv_create_comp_channel.3 ibv_create_cq.3 \ + ibv_create_qp.3 ibv_create_srq.3 ibv_devices.1 ibv_devinfo.1 \ + ibv_event_type_str.3 ibv_fork_init.3 ibv_get_async_event.3 \ + ibv_get_cq_event.3 ibv_get_device_guid.3 ibv_get_device_list.3 \ + ibv_get_device_name.3 ibv_modify_qp.3 ibv_modify_srq.3 \ + ibv_open_device.3 ibv_poll_cq.3 ibv_post_recv.3 ibv_post_send.3 \ + ibv_post_srq_recv.3 ibv_query_device.3 ibv_query_gid.3 \ + ibv_query_pkey.3 ibv_query_port.3 ibv_query_qp.3 ibv_query_srq.3 \ + ibv_rate_to_mult.3 ibv_rc_pingpong.1 ibv_reg_mr.3 ibv_req_notify_cq.3 \ + ibv_resize_cq.3 ibv_srq_pingpong.1 ibv_uc_pingpong.1 ibv_ud_pingpong.1 + + +CFLAGS+= -DHAVE_CONFIG_H -DIBV_CONFIG_DIR=\"/etc/ibverbs/\" +CFLAGS+= -I${.CURDIR} -I${IBSRCDIR} -I${IBVERBSDIR}/include -I${OFEDSYS}/include + +VERSION_MAP= ${IBSRCDIR}/libibverbs.map + +.include Added: projects/ofed/head/contrib/ofed/usr.lib/libibverbs/alloca.h ============================================================================== Added: projects/ofed/head/contrib/ofed/usr.lib/libibverbs/config.h ============================================================================== Added: projects/ofed/head/contrib/ofed/usr.lib/libmlx4/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libmlx4/Makefile Fri Jun 25 01:03:10 2010 (r209519) @@ -0,0 +1,26 @@ +# $FreeBSD$ + +SHLIBDIR?= /usr/lib + +.include + +MLX4DIR= ../../libmlx4 +IBVERBSDIR= ../../libibverbs +MLXSRCDIR= ${MLX4DIR}/src +OFEDSYS= ../../../../sys/ofed + +.PATH: ${MLXSRCDIR} + +LIB= mlx4 +SHLIB_MAJOR= 1 +NO_PROFILE= + +SRCS= buf.c cq.c dbrec.c mlx4.c qp.c srq.c verbs.c + +CFLAGS+= -DHAVE_CONFIG_H +CFLAGS+= -I${.CURDIR} -I${MLXSRCDIR} -I${IBVERBSDIR}/include +CFLAGS+= -I${OFEDSYS}/include + +VERSION_MAP= ${MLXSRCDIR}/mlx4.map + +.include Added: projects/ofed/head/contrib/ofed/usr.lib/libmlx4/config.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libmlx4/config.h Fri Jun 25 01:03:10 2010 (r209519) @@ -0,0 +1,4 @@ +#define HAVE_IBV_DONTFORK_RANGE +#define HAVE_IBV_DOFORK_RANGE +#define HAVE_IBV_REGISTER_DRIVER +#define HAVE_IBV_READ_SYSFS_FILE Added: projects/ofed/head/contrib/ofed/usr.lib/libmthca/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libmthca/Makefile Fri Jun 25 01:03:10 2010 (r209519) @@ -0,0 +1,27 @@ +# $FreeBSD$ + +SHLIBDIR?= /usr/lib + +.include + +MTHCADIR= ../../libmthca +IBVERBSDIR= ../../libibverbs +MTHCASRCDIR= ${MTHCADIR}/src +OFEDSYS= ../../../../sys/ofed + +.PATH: ${MTHCASRCDIR} + +LIB= mthca +SHLIB_MAJOR= 1 +NO_PROFILE= + +SRCS= ah.c buf.c cq.c memfree.c mthca.c qp.c srq.c verbs.c + + +CFLAGS+= -DHAVE_CONFIG_H +CFLAGS+= -I${.CURDIR} -I${MTHCASRCDIR} -I${IBVERBSDIR}/include +CFLAGS+= -I${OFEDSYS}/include + +VERSION_MAP= ${MTHCASRCDIR}/mthca.map + +.include Added: projects/ofed/head/contrib/ofed/usr.lib/libmthca/config.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libmthca/config.h Fri Jun 25 01:03:10 2010 (r209519) @@ -0,0 +1,9 @@ +#define HAVE_IBV_DONTFORK_RANGE +#define HAVE_IBV_DOFORK_RANGE +#define HAVE_IBV_REGISTER_DRIVER +#define HAVE_IBV_READ_SYSFS_FILE +#ifdef __LP64__ +#define SIZEOF_LONG 8 +#else +#define SIZEOF_LONG 4 +#endif From owner-svn-src-projects@FreeBSD.ORG Fri Jun 25 22:23:41 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 695F8106566C; Fri, 25 Jun 2010 22:23:41 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 57A208FC16; Fri, 25 Jun 2010 22:23:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5PMNf0P036237; Fri, 25 Jun 2010 22:23:41 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5PMNf9O036234; Fri, 25 Jun 2010 22:23:41 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006252223.o5PMNf9O036234@svn.freebsd.org> From: Jeff Roberson Date: Fri, 25 Jun 2010 22:23:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209525 - projects/ofed/head/sys/ofed/include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2010 22:23:41 -0000 Author: jeff Date: Fri Jun 25 22:23:41 2010 New Revision: 209525 URL: http://svn.freebsd.org/changeset/base/209525 Log: - Add two header files for compatibility with the ofed userland. Sponsored by: Isilon Systems, iX Systems, and Panasas. Added: projects/ofed/head/sys/ofed/include/byteswap.h projects/ofed/head/sys/ofed/include/endian.h Added: projects/ofed/head/sys/ofed/include/byteswap.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/byteswap.h Fri Jun 25 22:23:41 2010 (r209525) @@ -0,0 +1,39 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * 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 unmodified, 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _OFED_INCLUDE_BYTESWAP_H_ +#define _OFED_INCLUDE_BYTESWAP_H_ +/* + * This file is included for compatibility with the userland libraries + * accompanying the infiniband stack. + */ +#include +#include +#define bswap_64 bswap64 + +#endif /* _OFED_INCLUDE_BYTESWAP_H_ */ Added: projects/ofed/head/sys/ofed/include/endian.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/endian.h Fri Jun 25 22:23:41 2010 (r209525) @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * 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 unmodified, 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 ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + * This file is included for compatibility with the userland libraries + * accompanying the infiniband stack. + */ +#include +#include From owner-svn-src-projects@FreeBSD.ORG Fri Jun 25 22:26:28 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4030E106564A; Fri, 25 Jun 2010 22:26:28 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2C9668FC08; Fri, 25 Jun 2010 22:26:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5PMQSBZ036865; Fri, 25 Jun 2010 22:26:28 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5PMQRe2036855; Fri, 25 Jun 2010 22:26:28 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006252226.o5PMQRe2036855@svn.freebsd.org> From: Jeff Roberson Date: Fri, 25 Jun 2010 22:26:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209526 - in projects/ofed/head/contrib/ofed: libibverbs/src libmlx4/src usr.lib/libibcommon usr.lib/libibmad usr.lib/libibumad usr.lib/libibverbs X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2010 22:26:28 -0000 Author: jeff Date: Fri Jun 25 22:26:27 2010 New Revision: 209526 URL: http://svn.freebsd.org/changeset/base/209526 Log: - Adjust for minherit/madvise differences between linux and bsd. - Update some bmake wrappers and add new ones for some management libs. Sponsored by: Isilon Systems, iX Systems, and Panasas. Added: projects/ofed/head/contrib/ofed/usr.lib/libibcommon/ projects/ofed/head/contrib/ofed/usr.lib/libibcommon/Makefile projects/ofed/head/contrib/ofed/usr.lib/libibmad/ projects/ofed/head/contrib/ofed/usr.lib/libibmad/Makefile projects/ofed/head/contrib/ofed/usr.lib/libibmad/config.h projects/ofed/head/contrib/ofed/usr.lib/libibumad/ projects/ofed/head/contrib/ofed/usr.lib/libibumad/Makefile projects/ofed/head/contrib/ofed/usr.lib/libibumad/config.h Modified: projects/ofed/head/contrib/ofed/libibverbs/src/memory.c projects/ofed/head/contrib/ofed/libmlx4/src/buf.c projects/ofed/head/contrib/ofed/usr.lib/libibverbs/alloca.h projects/ofed/head/contrib/ofed/usr.lib/libibverbs/config.h Modified: projects/ofed/head/contrib/ofed/libibverbs/src/memory.c ============================================================================== --- projects/ofed/head/contrib/ofed/libibverbs/src/memory.c Fri Jun 25 22:23:41 2010 (r209525) +++ projects/ofed/head/contrib/ofed/libibverbs/src/memory.c Fri Jun 25 22:26:27 2010 (r209526) @@ -46,6 +46,7 @@ /* * Most distro's headers don't have these yet. */ +#ifdef __linux__ #ifndef MADV_DONTFORK #define MADV_DONTFORK 10 #endif @@ -53,6 +54,10 @@ #ifndef MADV_DOFORK #define MADV_DOFORK 11 #endif +#else +#define MADV_DONTFORK INHERIT_NONE +#define MADV_DOFORK INHERIT_SHARE +#endif struct ibv_mem_node { enum { @@ -72,8 +77,10 @@ static int too_late; int ibv_fork_init(void) { +#ifdef __linux__ void *tmp; int ret; +#endif if (mm_root) return 0; @@ -85,6 +92,7 @@ int ibv_fork_init(void) if (page_size < 0) return errno; +#ifdef __linux__ if (posix_memalign(&tmp, page_size, page_size)) return ENOMEM; @@ -95,6 +103,7 @@ int ibv_fork_init(void) if (ret) return ENOSYS; +#endif mm_root = malloc(sizeof *mm_root); if (!mm_root) @@ -569,10 +578,10 @@ again: * and that may lead to a spurious failure. */ if (start > node->start) - ret = madvise((void *) start, node->end - start + 1, + ret = minherit((void *) start, node->end - start + 1, advice); else - ret = madvise((void *) node->start, + ret = minherit((void *) node->start, node->end - node->start + 1, advice); if (ret) { Modified: projects/ofed/head/contrib/ofed/libmlx4/src/buf.c ============================================================================== --- projects/ofed/head/contrib/ofed/libmlx4/src/buf.c Fri Jun 25 22:23:41 2010 (r209525) +++ projects/ofed/head/contrib/ofed/libmlx4/src/buf.c Fri Jun 25 22:26:27 2010 (r209526) @@ -65,7 +65,7 @@ int mlx4_alloc_buf(struct mlx4_buf *buf, buf->length = align(size, page_size); buf->buf = mmap(NULL, buf->length, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + MAP_PRIVATE | MAP_ANON, -1, 0); if (buf->buf == MAP_FAILED) return errno; Added: projects/ofed/head/contrib/ofed/usr.lib/libibcommon/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libibcommon/Makefile Fri Jun 25 22:26:27 2010 (r209526) @@ -0,0 +1,24 @@ +# $FreeBSD$ + +SHLIBDIR?= /usr/lib + +.include + +IBCOMMONDIR= ../../management/libibcommon +IBSRCDIR= ${IBCOMMONDIR}/src +OFEDSYS= ../../../../sys/ofed + +.PATH: ${IBSRCDIR} + +LIB= ibcommon +SHLIB_MAJOR= 1 +NO_PROFILE= + +SRCS= sysfs.c util.c hash.c stack.c time.c + +CFLAGS+= -I${.CURDIR} -I${IBSRCDIR} -I${IBCOMMONDIR}/include +CFLAGS+= -I${OFEDSYS}/include -I${IBCOMMONDIR}/include/infiniband + +VERSION_MAP= ${IBSRCDIR}/libibcommon.map + +.include Added: projects/ofed/head/contrib/ofed/usr.lib/libibmad/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libibmad/Makefile Fri Jun 25 22:26:27 2010 (r209526) @@ -0,0 +1,28 @@ +# $FreeBSD$ + +SHLIBDIR?= /usr/lib + +.include + +IBMADDIR= ../../management/libibmad +COMMONDIR= ../../management/libibcommon/include +UMADDIR= ../../management/libibumad/include +IBSRCDIR= ${IBMADDIR}/src +OFEDSYS= ../../../../sys/ofed + +.PATH: ${IBSRCDIR} + +LIB= ibmad +SHLIB_MAJOR= 1 +NO_PROFILE= + +SRCS= dump.c fields.c gs.c mad.c portid.c register.c resolve.c rpc.c sa.c \ + serv.c smp.c vendor.c + +CFLAGS+= -DHAVE_CONFIG_H +CFLAGS+= -I${.CURDIR} -I${IBSRCDIR} -I${IBMADDIR}/include -I${COMMONDIR} +CFLAGS+= -I${OFEDSYS}/include -I${IBMADDIR}/include/infiniband -I${UMADDIR} + +VERSION_MAP= ${IBSRCDIR}/libibmad.map + +.include Added: projects/ofed/head/contrib/ofed/usr.lib/libibmad/config.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libibmad/config.h Fri Jun 25 22:26:27 2010 (r209526) @@ -0,0 +1 @@ +#include Added: projects/ofed/head/contrib/ofed/usr.lib/libibumad/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libibumad/Makefile Fri Jun 25 22:26:27 2010 (r209526) @@ -0,0 +1,27 @@ +# $FreeBSD$ + +SHLIBDIR?= /usr/lib + +.include + +IBMADDIR= ../../management/libibmad +COMMONDIR= ../../management/libibcommon/include +UMADDIR= ../../management/libibumad +IBSRCDIR= ${UMADDIR}/src +OFEDSYS= ../../../../sys/ofed + +.PATH: ${IBSRCDIR} + +LIB= ibumad +SHLIB_MAJOR= 1 +NO_PROFILE= + +SRCS= umad.c + +CFLAGS+= -DHAVE_CONFIG_H +CFLAGS+= -I${.CURDIR} -I${IBSRCDIR} -I${IBMADDIR}/include -I${COMMONDIR} +CFLAGS+= -I${OFEDSYS}/include -I${UMADDIR}/include/infiniband + +VERSION_MAP= ${IBSRCDIR}/libibumad.map + +.include Added: projects/ofed/head/contrib/ofed/usr.lib/libibumad/config.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/contrib/ofed/usr.lib/libibumad/config.h Fri Jun 25 22:26:27 2010 (r209526) @@ -0,0 +1 @@ +#include Modified: projects/ofed/head/contrib/ofed/usr.lib/libibverbs/alloca.h ============================================================================== --- projects/ofed/head/contrib/ofed/usr.lib/libibverbs/alloca.h Fri Jun 25 22:23:41 2010 (r209525) +++ projects/ofed/head/contrib/ofed/usr.lib/libibverbs/alloca.h Fri Jun 25 22:26:27 2010 (r209526) @@ -0,0 +1,18 @@ +#ifndef _LIBIBVERBS_ALLOCA_H_ +#define _LIBIBVERBS_ALLOCA_H_ +#include +#include +#include + +#define strdupa(_s) \ +({ \ + char *_d; \ + int _len; \ + \ + _len = strlen(_s) + 1; \ + _d = alloca(_len); \ + if (_d) \ + memcpy(_d, _s, _len); \ + _d; \ +}) +#endif /* _LIBIBVERBS_ALLOCA_H_ */ Modified: projects/ofed/head/contrib/ofed/usr.lib/libibverbs/config.h ============================================================================== --- projects/ofed/head/contrib/ofed/usr.lib/libibverbs/config.h Fri Jun 25 22:23:41 2010 (r209525) +++ projects/ofed/head/contrib/ofed/usr.lib/libibverbs/config.h Fri Jun 25 22:26:27 2010 (r209526) @@ -0,0 +1,2 @@ +#define _WITH_GETLINE +#include From owner-svn-src-projects@FreeBSD.ORG Sat Jun 26 22:26:54 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 245A3106566B; Sat, 26 Jun 2010 22:26:54 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0F4B08FC16; Sat, 26 Jun 2010 22:26:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5QMQsXk090071; Sat, 26 Jun 2010 22:26:54 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5QMQrjV090044; Sat, 26 Jun 2010 22:26:53 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006262226.o5QMQrjV090044@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 26 Jun 2010 22:26:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209545 - in projects/ppc64: . cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts etc/mtree games/fortune/datfiles gnu/usr.bin/binutils/ld lib/libc/mips/sys lib/libc/sys libexec/rtld-... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Jun 2010 22:26:54 -0000 Author: nwhitehorn Date: Sat Jun 26 22:26:53 2010 New Revision: 209545 URL: http://svn.freebsd.org/changeset/base/209545 Log: IFC @ r209544 Added: projects/ppc64/Makefile.mips - copied unchanged from r209511, head/Makefile.mips projects/ppc64/share/man/man4/aibs.4 - copied unchanged from r209544, head/share/man/man4/aibs.4 projects/ppc64/sys/dev/acpi_support/atk0110.c - copied unchanged from r209544, head/sys/dev/acpi_support/atk0110.c projects/ppc64/sys/modules/acpi/aibs/ - copied from r209544, head/sys/modules/acpi/aibs/ projects/ppc64/usr.sbin/pc-sysinstall/ - copied from r209544, head/usr.sbin/pc-sysinstall/ Modified: projects/ppc64/Makefile.inc1 projects/ppc64/etc/mtree/BSD.usr.dist projects/ppc64/games/fortune/datfiles/fortunes-o.real projects/ppc64/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh projects/ppc64/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh projects/ppc64/lib/libc/mips/sys/brk.S projects/ppc64/lib/libc/mips/sys/sbrk.S projects/ppc64/lib/libc/sys/getgroups.2 projects/ppc64/libexec/rtld-elf/rtld.c projects/ppc64/share/man/man4/Makefile projects/ppc64/sys/conf/files projects/ppc64/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/ppc64/sys/dev/e1000/if_igb.c projects/ppc64/sys/geom/part/g_part.c projects/ppc64/sys/geom/part/g_part.h projects/ppc64/sys/geom/part/g_part_mbr.c projects/ppc64/sys/i386/conf/NOTES projects/ppc64/sys/kern/uipc_syscalls.c projects/ppc64/sys/kern/vfs_vnops.c projects/ppc64/sys/modules/acpi/Makefile projects/ppc64/sys/sys/diskmbr.h projects/ppc64/usr.sbin/Makefile Directory Properties: projects/ppc64/ (props changed) projects/ppc64/cddl/contrib/opensolaris/ (props changed) projects/ppc64/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dstyle.pl (props changed) projects/ppc64/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl (props changed) projects/ppc64/contrib/ee/ (props changed) projects/ppc64/contrib/expat/ (props changed) projects/ppc64/contrib/file/ (props changed) projects/ppc64/contrib/gdb/ (props changed) projects/ppc64/contrib/gnu-sort/ (props changed) projects/ppc64/contrib/groff/ (props changed) projects/ppc64/contrib/less/ (props changed) projects/ppc64/contrib/libpcap/ (props changed) projects/ppc64/contrib/ncurses/ (props changed) projects/ppc64/contrib/one-true-awk/ (props changed) projects/ppc64/contrib/openbsm/ (props changed) projects/ppc64/contrib/openpam/ (props changed) projects/ppc64/contrib/pf/ (props changed) projects/ppc64/contrib/tcpdump/ (props changed) projects/ppc64/contrib/tcsh/ (props changed) projects/ppc64/contrib/tzcode/stdtime/ (props changed) projects/ppc64/contrib/tzcode/zic/ (props changed) projects/ppc64/contrib/tzdata/ (props changed) projects/ppc64/contrib/wpa/ (props changed) projects/ppc64/lib/libutil/ (props changed) projects/ppc64/lib/libz/ (props changed) projects/ppc64/sbin/ (props changed) projects/ppc64/sbin/ipfw/ (props changed) projects/ppc64/share/mk/bsd.arch.inc.mk (props changed) projects/ppc64/sys/ (props changed) projects/ppc64/sys/amd64/include/xen/ (props changed) projects/ppc64/sys/arm/conf/SHEEVAPLUG (props changed) projects/ppc64/sys/cddl/contrib/opensolaris/ (props changed) projects/ppc64/sys/contrib/dev/acpica/ (props changed) projects/ppc64/sys/contrib/x86emu/ (props changed) projects/ppc64/sys/dev/xen/xenpci/ (props changed) projects/ppc64/usr.bin/csup/ (props changed) projects/ppc64/usr.bin/procstat/ (props changed) Modified: projects/ppc64/Makefile.inc1 ============================================================================== --- projects/ppc64/Makefile.inc1 Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/Makefile.inc1 Sat Jun 26 22:26:53 2010 (r209545) @@ -30,9 +30,7 @@ .include -.if ${MACHINE_ARCH} == "mips" -MK_RESCUE=no # not yet -.endif +.include # We must do share/info early so that installation of info `dir' # entries works correctly. Do it first since it is less likely to @@ -167,7 +165,7 @@ BUILD_ARCH!= uname -p .if ${MACHINE} == ${TARGET} && !defined(CROSS_BUILD_TESTING) OBJTREE= ${MAKEOBJDIRPREFIX} .else -OBJTREE= ${MAKEOBJDIRPREFIX}/${TARGET} +OBJTREE= ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH} .endif WORLDTMP= ${OBJTREE}${.CURDIR}/tmp # /usr/games added for fortune which depend on strfile @@ -1126,8 +1124,12 @@ _prereq_libs= gnu/lib/libssp/libssp_nons _startup_libs= gnu/lib/csu .if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}-elf) _startup_libs+= lib/csu/${MACHINE_ARCH}-elf -.else +.elif exists(${.CURDIR}/lib/csu/${MACHINE_CPUARCH}-elf) +_startup_libs+= lib/csu/${MACHINE_CPUARCH}-elf +.elif exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}) _startup_libs+= lib/csu/${MACHINE_ARCH} +.else +_startup_libs+= lib/csu/${MACHINE_CPUARCH} .endif _startup_libs+= gnu/lib/libgcc _startup_libs+= lib/libc Copied: projects/ppc64/Makefile.mips (from r209511, head/Makefile.mips) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/Makefile.mips Sat Jun 26 22:26:53 2010 (r209545, copy of r209511, head/Makefile.mips) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +# A bug in binutils prevents rescue from building, so override the user's +# choice. +MK_RESCUE=no Modified: projects/ppc64/etc/mtree/BSD.usr.dist ============================================================================== --- projects/ppc64/etc/mtree/BSD.usr.dist Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/etc/mtree/BSD.usr.dist Sat Jun 26 22:26:53 2010 (r209545) @@ -261,6 +261,8 @@ .. nwclient .. + pc-sysinstall + .. perfmon .. pf @@ -1226,6 +1228,20 @@ .. .. .. + pc-sysinstall + backend + .. + backend-partmanager + .. + backend-query + .. + conf + license + .. + .. + doc + .. + .. security .. sendmail Modified: projects/ppc64/games/fortune/datfiles/fortunes-o.real ============================================================================== --- projects/ppc64/games/fortune/datfiles/fortunes-o.real Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/games/fortune/datfiles/fortunes-o.real Sat Jun 26 22:26:53 2010 (r209545) @@ -12433,6 +12433,39 @@ And sure enough she'll take you home and (chorus) -- Crosby, Stills, Nash, "Fair Game" % +Taken from actual police car videos: + +(15) Relax! The handcuffs are tight because they're new. They'll + stretch out after you wear them awhile. +(14) Take your hands off the car and I'll make your birth certificate + a worthless document. +(13) If you run you'll only go to jail tired. +(12) Can you run faster than 1200 feet per second? In case you didn't + know that's the average speed of a 9 mm bullet fired from my gun. +(11) So you don't know how fast you were going. I guess that means I + can write anything I want on the ticket, huh? +(10) Yes, sir, you can talk to the shift supervisor, but I don't think + it will help. Oh, did I mention that I AM the shift supervisor? +(9) Warning? You want a warning? OK, I'm warning you not to do that + again or I'll give you another ticket. +(8) The answer to this last question will determine whether you are + drunk or not. Is Mickey Mouse a cat or a dog? +% +Taken from actual police car videos: + +(7) Fair? You want me to be fair? Listen, fair is a place where you + go to ride on rides, eat cotton candy, and step in monkey poop. +(6) Yeah, we have a quota. Two more tickets and my wife gets a toaster + oven. +(5) No, sir, we don't have quotas anymore. We used to have quotas but + now we're allowed to write as many tickets as we want. +(4) Just how big were those two beers? +(3) In God we trust, all others we run through CPIC/NCIC. +(2) I'm glad to hear the Chief of Police is a good personal friend of + yours. At least you know someone who can post your bail. +(1) You didn't think we gave pretty women tickets? + You're right, we don't -- sign here. +% Taoism: Shit Happens. Confucianism: Confucius say, "Shit Happens". Buddhism: If shit happens, it isn't really shit. Modified: projects/ppc64/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh ============================================================================== --- projects/ppc64/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh Sat Jun 26 22:26:53 2010 (r209545) @@ -2,3 +2,4 @@ . ${srcdir}/emulparams/elf32btsmipn32.sh . ${srcdir}/emulparams/elf_fbsd.sh GENERATE_PIE_SCRIPT=yes +ALIGNMENT=8 Modified: projects/ppc64/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh ============================================================================== --- projects/ppc64/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh Sat Jun 26 22:26:53 2010 (r209545) @@ -2,3 +2,4 @@ . ${srcdir}/emulparams/elf32ltsmipn32.sh . ${srcdir}/emulparams/elf_fbsd.sh GENERATE_PIE_SCRIPT=yes +ALIGNMENT=8 Modified: projects/ppc64/lib/libc/mips/sys/brk.S ============================================================================== --- projects/ppc64/lib/libc/mips/sys/brk.S Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/lib/libc/mips/sys/brk.S Sat Jun 26 22:26:53 2010 (r209545) @@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$"); .data _C_LABEL(minbrk): - .word _C_LABEL(_end) + PTR_WORD _C_LABEL(_end) .text LEAF(__sys_brk) Modified: projects/ppc64/lib/libc/mips/sys/sbrk.S ============================================================================== --- projects/ppc64/lib/libc/mips/sys/sbrk.S Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/lib/libc/mips/sys/sbrk.S Sat Jun 26 22:26:53 2010 (r209545) @@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$"); .data _C_LABEL(__curbrk): - .word _C_LABEL(_end) + PTR_WORD _C_LABEL(_end) .text LEAF(__sys_sbrk) Modified: projects/ppc64/lib/libc/sys/getgroups.2 ============================================================================== --- projects/ppc64/lib/libc/sys/getgroups.2 Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/lib/libc/sys/getgroups.2 Sat Jun 26 22:26:53 2010 (r209545) @@ -37,7 +37,7 @@ .Sh LIBRARY .Lb libc .Sh SYNOPSIS -.In sys/types.h +.In sys/param.h .In unistd.h .Ft int .Fn getgroups "int gidsetlen" "gid_t *gidset" Modified: projects/ppc64/libexec/rtld-elf/rtld.c ============================================================================== --- projects/ppc64/libexec/rtld-elf/rtld.c Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/libexec/rtld-elf/rtld.c Sat Jun 26 22:26:53 2010 (r209545) @@ -3443,9 +3443,13 @@ locate_dependency(const Obj_Entry *obj, if (object_match_name(needed->obj, name)) return needed->obj; } - _rtld_error("%s: Unexpected inconsistency: dependency %s not found", - obj->path, name); - die(); + + /* + * GNU LD sometimes refers to version dependencies on objects to which + * it does not actually link. Treat this as a non-fatal error, and + * ignore this dependency. + */ + return NULL; } static int @@ -3567,6 +3571,9 @@ rtld_verify_object_versions(Obj_Entry *o vn = obj->verneed; while (vn != NULL) { depobj = locate_dependency(obj, obj->strtab + vn->vn_file); + if (depobj == NULL) + break; + vna = (const Elf_Vernaux *) ((char *)vn + vn->vn_aux); for (;;) { if (check_object_provided_version(obj, depobj, vna)) Modified: projects/ppc64/share/man/man4/Makefile ============================================================================== --- projects/ppc64/share/man/man4/Makefile Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/share/man/man4/Makefile Sat Jun 26 22:26:53 2010 (r209545) @@ -26,6 +26,7 @@ MAN= aac.4 \ ahc.4 \ ahci.4 \ ahd.4 \ + ${_aibs.4} \ aio.4 \ alc.4 \ ale.4 \ @@ -633,6 +634,7 @@ _acpi_panasonic.4=acpi_panasonic.4 _acpi_sony.4= acpi_sony.4 _acpi_toshiba.4=acpi_toshiba.4 _acpi_wmi.4= acpi_wmi.4 +_aibs.4= aibs.4 _amdsbwd.4= amdsbwd.4 _amdsmb.4= amdsmb.4 _amdtemp.4= amdtemp.4 Copied: projects/ppc64/share/man/man4/aibs.4 (from r209544, head/share/man/man4/aibs.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/share/man/man4/aibs.4 Sat Jun 26 22:26:53 2010 (r209545, copy of r209544, head/share/man/man4/aibs.4) @@ -0,0 +1,209 @@ +.\" $FreeBSD$ +.\" $NetBSD: aibs.4,v 1.2 2010/02/09 05:37:25 cnst Exp $ +.\" $OpenBSD: aibs.4,v 1.4 2009/07/30 06:30:45 jmc Exp $ +.\" +.\" Copyright (c) 2009/2010 Constantine A. Murenin +.\" +.\" Permission to use, copy, modify, and 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 THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR 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. +.\" +.Dd April 4, 2010 +.Dt AIBS 4 +.Os +.Sh NAME +.Nm aibs +.Nd "ASUSTeK AI Booster ACPI ATK0110 voltage, temperature and fan sensor" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device acpi" +.Cd "device aibs" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following lines in +.Xr loader.conf 5 : +.Bd -literal -offset indent +acpi_load="YES" +aibs_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for the voltage, temperature and fan sensors +available through the +.Tn ATK0110 +.Tn ASOC +.Tn ACPI +device +on +.Tn ASUSTeK +motherboards. +The number of sensors of each type, +as well as the description of each sensor, +varies according to the motherboard. +.Pp +The driver supports an arbitrary set of sensors, +provides descriptions regarding what each sensor is used for, +and reports the current values as well as +the supposed range specifications of each sensor's input +as defined by the motherboard manufacturer through +.Tn ACPI . +.Pp +The range specifications are as follows: +.Bl -bullet +.It +Voltage sensors have a lower and an upper range specification. +.It +Temperature sensors have two upper specifications. +.It +Fan sensors may either have only the lower specification, +or, depending on the +.Tn DSDT , +one lower and one upper specification. +.El +.Pp +Sensor readings and the range specifications are made available through the +.Xr sysctl 3 +interface, +and can be monitored with +.Xr sysctl 8 . +For example, on an ASUS V3-P5G965 barebone: +.Bd -literal -offset indent +> sysctl dev.aibs.0.{volt,temp,fan} +dev.aibs.0.volt.0: 1192 850 1600 +dev.aibs.0.volt.1: 3312 2970 3630 +dev.aibs.0.volt.2: 5017 4500 5500 +dev.aibs.0.volt.3: 12302 10200 13800 +dev.aibs.0.temp.0: 28.0C 80.0C 95.0C +dev.aibs.0.temp.1: 55.0C 60.0C 95.0C +dev.aibs.0.fan.0: 878 600 7200 +dev.aibs.0.fan.1: 0 700 7200 +.Pp +> sysctl -d dev.aibs.0.{volt,temp,fan} +dev.aibs.0.volt: +dev.aibs.0.volt.0: Vcore Voltage +dev.aibs.0.volt.1: +3.3 Voltage +dev.aibs.0.volt.2: +5 Voltage +dev.aibs.0.volt.3: +12 Voltage +dev.aibs.0.temp: +dev.aibs.0.temp.0: CPU Temperature +dev.aibs.0.temp.1: MB Temperature +dev.aibs.0.fan: +dev.aibs.0.fan.0: CPU FAN Speed +dev.aibs.0.fan.1: CHASSIS FAN Speed +.Ed +.Pp +Generally, sensors provided by the +.Nm +driver may also be supported by certain other drivers or utilities +that access the +.Tn ISA / +.Tn LPC +or +.Tn I2C / +.Tn SMBus +devices directly. +The precise collection of +.Nm +sensors is comprised of the sensors +specifically utilised in the motherboard +design, which may be supported through +a combination of one or more physical hardware monitoring chips. +.Pp +The +.Nm +driver, however, provides the following advantages +when compared to the native hardware monitoring drivers or other utilities: +.Bl -bullet +.It +Sensor values from +.Nm +are expected to be more reliable. +For example, voltage sensors in many hardware monitoring chips +can only sense voltage from 0 to 2 or 4 volts, and the excessive +voltage is removed by the resistors, which may vary with the motherboard +and with the voltage that is being sensed. +In +.Nm , +the required resistor factors are provided by +the motherboard manufacturer through +.Tn ACPI ; +in the native drivers, the resistor factors +are encoded into the driver based on the chip manufacturer's recommendations. +In essence, sensor values from +.Nm +are very likely to be identical to the readings from the +Hardware Monitor screen in the BIOS. +.It +Sensor descriptions from +.Nm +are more likely to match the markings on the motherboard. +.It +Sensor range specifications are supported by +.Nm . +The range specification is reported +for each individual sensor as suggested by the motherboard manufacturer. +For example, the threshold for the CPU temperature sensor is likely +to be significantly higher than that for the chassis temperature sensor. +.It +Support for newer chips in +.Nm . +Newer chips may miss a native driver, +but should be supported through +.Nm +regardless. +.El +.Sh SEE ALSO +.Xr sysctl 3 , +.Xr acpi 4 , +.Xr sysctl 8 +.Sh HISTORY +The +.Nm +driver first appeared in +.Ox 4.7 , +.Dx 2.5 , +.Nx 6.0 +and +.Fx 9.0 . +.Pp +An earlier version of the driver, +.Nm acpi_aiboost , +first appeared in +.Fx 7.0 +and +.Nx 5.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written for +.Ox , +.Dx , +.Nx +and +.Fx +by +.An Constantine A. Murenin Aq cnst@FreeBSD.org , +Raouf Boutaba Research Group, +David R. Cheriton School of Computer Science, +University of Waterloo. +.Pp +An earlier version of the driver, named +.Nm acpi_aiboost , +was written for +.Fx +by +.An Takanori Watanabe . Modified: projects/ppc64/sys/conf/files ============================================================================== --- projects/ppc64/sys/conf/files Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/conf/files Sat Jun 26 22:26:53 2010 (r209545) @@ -436,6 +436,7 @@ dev/acpi_support/acpi_ibm.c optional acp dev/acpi_support/acpi_panasonic.c optional acpi_panasonic acpi dev/acpi_support/acpi_sony.c optional acpi_sony acpi dev/acpi_support/acpi_toshiba.c optional acpi_toshiba acpi +dev/acpi_support/atk0110.c optional aibs acpi dev/acpica/Osd/OsdDebug.c optional acpi dev/acpica/Osd/OsdHardware.c optional acpi dev/acpica/Osd/OsdInterrupt.c optional acpi Copied: projects/ppc64/sys/dev/acpi_support/atk0110.c (from r209544, head/sys/dev/acpi_support/atk0110.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/sys/dev/acpi_support/atk0110.c Sat Jun 26 22:26:53 2010 (r209545, copy of r209544, head/sys/dev/acpi_support/atk0110.c) @@ -0,0 +1,358 @@ +/* $NetBSD: atk0110.c,v 1.4 2010/02/11 06:54:57 cnst Exp $ */ +/* $OpenBSD: atk0110.c,v 1.1 2009/07/23 01:38:16 cnst Exp $ */ + +/* + * Copyright (c) 2009, 2010 Constantine A. Murenin + * + * Permission to use, copy, modify, and 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 THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +/* + * ASUSTeK AI Booster (ACPI ASOC ATK0110). + * + * This code was originally written for OpenBSD after the techniques + * described in the Linux's asus_atk0110.c and FreeBSD's Takanori Watanabe's + * acpi_aiboost.c were verified to be accurate on the actual hardware kindly + * provided by Sam Fourman Jr. It was subsequently ported from OpenBSD to + * DragonFly BSD, to NetBSD's sysmon_envsys(9) and to FreeBSD's sysctl(9). + * + * -- Constantine A. Murenin + */ + +#define _COMPONENT ACPI_OEM +ACPI_MODULE_NAME("aibs"); +ACPI_SERIAL_DECL(aibs, "aibs"); + +#define AIBS_MORE_SENSORS +#define AIBS_VERBOSE + +enum aibs_type { + AIBS_VOLT, + AIBS_TEMP, + AIBS_FAN +}; + +struct aibs_sensor { + ACPI_INTEGER v; + ACPI_INTEGER i; + ACPI_INTEGER l; + ACPI_INTEGER h; + enum aibs_type t; +}; + +struct aibs_softc { + struct device *sc_dev; + ACPI_HANDLE sc_ah; + + struct aibs_sensor *sc_asens_volt; + struct aibs_sensor *sc_asens_temp; + struct aibs_sensor *sc_asens_fan; +}; + +static int aibs_probe(device_t); +static int aibs_attach(device_t); +static int aibs_detach(device_t); +static int aibs_sysctl(SYSCTL_HANDLER_ARGS); + +static void aibs_attach_sif(struct aibs_softc *, enum aibs_type); + +static device_method_t aibs_methods[] = { + DEVMETHOD(device_probe, aibs_probe), + DEVMETHOD(device_attach, aibs_attach), + DEVMETHOD(device_detach, aibs_detach), + { NULL, NULL } +}; + +static driver_t aibs_driver = { + "aibs", + aibs_methods, + sizeof(struct aibs_softc) +}; + +static devclass_t aibs_devclass; + +DRIVER_MODULE(aibs, acpi, aibs_driver, aibs_devclass, NULL, NULL); + + +static char* aibs_hids[] = { + "ATK0110", + NULL +}; + +static int +aibs_probe(device_t dev) +{ + if (acpi_disabled("aibs") || + ACPI_ID_PROBE(device_get_parent(dev), dev, aibs_hids) == NULL) + return ENXIO; + + device_set_desc(dev, "ASUSTeK AI Booster (ACPI ASOC ATK0110)"); + return 0; +} + +static int +aibs_attach(device_t dev) +{ + struct aibs_softc *sc = device_get_softc(dev); + + sc->sc_dev = dev; + sc->sc_ah = acpi_get_handle(dev); + + aibs_attach_sif(sc, AIBS_VOLT); + aibs_attach_sif(sc, AIBS_TEMP); + aibs_attach_sif(sc, AIBS_FAN); + + return 0; +} + +static void +aibs_attach_sif(struct aibs_softc *sc, enum aibs_type st) +{ + ACPI_STATUS s; + ACPI_BUFFER b; + ACPI_OBJECT *bp, *o; + int i, n; + const char *node; + char name[] = "?SIF"; + struct aibs_sensor *as; + struct sysctl_oid *so; + + switch (st) { + case AIBS_VOLT: + node = "volt"; + name[0] = 'V'; + break; + case AIBS_TEMP: + node = "temp"; + name[0] = 'T'; + break; + case AIBS_FAN: + node = "fan"; + name[0] = 'F'; + break; + default: + return; + } + + b.Length = ACPI_ALLOCATE_BUFFER; + s = AcpiEvaluateObjectTyped(sc->sc_ah, name, NULL, &b, + ACPI_TYPE_PACKAGE); + if (ACPI_FAILURE(s)) { + device_printf(sc->sc_dev, "%s not found\n", name); + return; + } + + bp = b.Pointer; + o = bp->Package.Elements; + if (o[0].Type != ACPI_TYPE_INTEGER) { + device_printf(sc->sc_dev, "%s[0]: invalid type\n", name); + AcpiOsFree(b.Pointer); + return; + } + + n = o[0].Integer.Value; + if (bp->Package.Count - 1 < n) { + device_printf(sc->sc_dev, "%s: invalid package\n", name); + AcpiOsFree(b.Pointer); + return; + } else if (bp->Package.Count - 1 > n) { + int on = n; + +#ifdef AIBS_MORE_SENSORS + n = bp->Package.Count - 1; +#endif + device_printf(sc->sc_dev, "%s: malformed package: %i/%i" + ", assume %i\n", name, on, bp->Package.Count - 1, n); + } + if (n < 1) { + device_printf(sc->sc_dev, "%s: no members in the package\n", + name); + AcpiOsFree(b.Pointer); + return; + } + + as = malloc(sizeof(*as) * n, M_DEVBUF, M_NOWAIT | M_ZERO); + if (as == NULL) { + device_printf(sc->sc_dev, "%s: malloc fail\n", name); + AcpiOsFree(b.Pointer); + return; + } + switch (st) { + case AIBS_VOLT: + sc->sc_asens_volt = as; + break; + case AIBS_TEMP: + sc->sc_asens_temp = as; + break; + case AIBS_FAN: + sc->sc_asens_fan = as; + break; + } + + /* sysctl subtree for sensors of this type */ + so = SYSCTL_ADD_NODE(device_get_sysctl_ctx(sc->sc_dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(sc->sc_dev)), st, + node, CTLFLAG_RD, NULL, NULL); + + for (i = 0, o++; i < n; i++, o++) { + ACPI_OBJECT *oi; + char si[3]; + const char *desc; + + /* acpica5 automatically evaluates the referenced package */ + if (o[0].Type != ACPI_TYPE_PACKAGE) { + device_printf(sc->sc_dev, + "%s: %i: not a package: %i type\n", + name, i, o[0].Type); + continue; + } + oi = o[0].Package.Elements; + if (o[0].Package.Count != 5 || + oi[0].Type != ACPI_TYPE_INTEGER || + oi[1].Type != ACPI_TYPE_STRING || + oi[2].Type != ACPI_TYPE_INTEGER || + oi[3].Type != ACPI_TYPE_INTEGER || + oi[4].Type != ACPI_TYPE_INTEGER) { + device_printf(sc->sc_dev, + "%s: %i: invalid package\n", + name, i); + continue; + } + as[i].i = oi[0].Integer.Value; + desc = oi[1].String.Pointer; + as[i].l = oi[2].Integer.Value; + as[i].h = oi[3].Integer.Value; + as[i].t = st; +#ifdef AIBS_VERBOSE + device_printf(sc->sc_dev, "%c%i: " + "0x%08"PRIx64" %20s %5"PRIi64" / %5"PRIi64" " + "0x%"PRIx64"\n", + name[0], i, + as[i].i, desc, (int64_t)as[i].l, (int64_t)as[i].h, + oi[4].Integer.Value); +#endif + snprintf(si, sizeof(si), "%i", i); + SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->sc_dev), + SYSCTL_CHILDREN(so), i, si, CTLTYPE_OPAQUE | CTLFLAG_RD, + sc, st, aibs_sysctl, st == AIBS_TEMP ? "IK" : "I", desc); + } + + AcpiOsFree(b.Pointer); +} + +static int +aibs_detach(device_t dev) +{ + struct aibs_softc *sc = device_get_softc(dev); + + if (sc->sc_asens_volt != NULL) + free(sc->sc_asens_volt, M_DEVBUF); + if (sc->sc_asens_temp != NULL) + free(sc->sc_asens_temp, M_DEVBUF); + if (sc->sc_asens_fan != NULL) + free(sc->sc_asens_fan, M_DEVBUF); + return 0; +} + +#ifdef AIBS_VERBOSE +#define ddevice_printf(x...) device_printf(x) +#else +#define ddevice_printf(x...) +#endif + +static int +aibs_sysctl(SYSCTL_HANDLER_ARGS) +{ + struct aibs_softc *sc = arg1; + enum aibs_type st = arg2; + int i = oidp->oid_number; + ACPI_STATUS rs; + ACPI_OBJECT p, *bp; + ACPI_OBJECT_LIST mp; + ACPI_BUFFER b; + char *name; + struct aibs_sensor *as; + ACPI_INTEGER v, l, h; + int so[3]; + + switch (st) { + case AIBS_VOLT: + name = "RVLT"; + as = sc->sc_asens_volt; + break; + case AIBS_TEMP: + name = "RTMP"; + as = sc->sc_asens_temp; + break; + case AIBS_FAN: + name = "RFAN"; + as = sc->sc_asens_fan; + break; + default: + return ENOENT; + } + if (as == NULL) + return ENOENT; + l = as[i].l; + h = as[i].h; + p.Type = ACPI_TYPE_INTEGER; + p.Integer.Value = as[i].i; + mp.Count = 1; + mp.Pointer = &p; + b.Length = ACPI_ALLOCATE_BUFFER; + ACPI_SERIAL_BEGIN(aibs); + rs = AcpiEvaluateObjectTyped(sc->sc_ah, name, &mp, &b, + ACPI_TYPE_INTEGER); + if (ACPI_FAILURE(rs)) { + ddevice_printf(sc->sc_dev, + "%s: %i: evaluation failed\n", + name, i); + ACPI_SERIAL_END(aibs); + return EIO; + } + bp = b.Pointer; + v = bp->Integer.Value; + AcpiOsFree(b.Pointer); + ACPI_SERIAL_END(aibs); + + switch (st) { + case AIBS_VOLT: + break; + case AIBS_TEMP: + v += 2732; + l += 2732; + h += 2732; + break; + case AIBS_FAN: + break; + } + so[0] = v; + so[1] = l; + so[2] = h; + return sysctl_handle_opaque(oidp, &so, sizeof(so), req); +} Modified: projects/ppc64/sys/dev/ath/ath_hal/ar5416/ar5416reg.h ============================================================================== --- projects/ppc64/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Sat Jun 26 22:26:53 2010 (r209545) @@ -612,7 +612,7 @@ AH_PRIVATE((_ah))->ah_macRev == AR_XSREV_REVISION_MERLIN_20) #define AR_SREV_MERLIN_20_OR_LATER(_ah) \ (AR_SREV_MERLIN_20(_ah) || \ - AH_PRIVATE((_ah))->ah_macVersion > AR_XSREV_VERSION_MERLIN) + AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_MERLIN_20) #define AR_SREV_KITE(_ah) \ (AH_PRIVATE((_ah))->ah_macVersion == AR_XSREV_VERSION_KITE) Modified: projects/ppc64/sys/dev/e1000/if_igb.c ============================================================================== --- projects/ppc64/sys/dev/e1000/if_igb.c Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/dev/e1000/if_igb.c Sat Jun 26 22:26:53 2010 (r209545) @@ -4814,6 +4814,18 @@ igb_update_stats_counters(struct adapter /* Tx Errors */ ifp->if_oerrors = adapter->stats.ecol + adapter->stats.latecol + adapter->watchdog_events; + + /* Driver specific counters */ + adapter->device_control = E1000_READ_REG(&adapter->hw, E1000_CTRL); + adapter->rx_control = E1000_READ_REG(&adapter->hw, E1000_RCTL); + adapter->int_mask = E1000_READ_REG(&adapter->hw, E1000_IMS); + adapter->eint_mask = E1000_READ_REG(&adapter->hw, E1000_EIMS); + adapter->packet_buf_alloc_tx = ((E1000_READ_REG(&adapter->hw, E1000_PBA) + & 0xffff0000) >> 16); + + adapter->packet_buf_alloc_rx = (E1000_READ_REG(&adapter->hw, E1000_PBA) + & 0xffff); + } @@ -4897,6 +4909,11 @@ igb_add_hw_stats(struct adapter *adapter } for (int i = 0; i < adapter->num_queues; i++, rxr++) { + snprintf(namebuf, QUEUE_NAME_LEN, "queue%d", i); + queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf, + CTLFLAG_RD, NULL, "Queue Name"); + queue_list = SYSCTL_CHILDREN(queue_node); + struct lro_ctrl *lro = &rxr->lro; snprintf(namebuf, QUEUE_NAME_LEN, "queue%d", i); Modified: projects/ppc64/sys/geom/part/g_part.c ============================================================================== --- projects/ppc64/sys/geom/part/g_part.c Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/geom/part/g_part.c Sat Jun 26 22:26:53 2010 (r209545) @@ -91,6 +91,7 @@ struct g_part_alias_list { { "ms-ldm-data", G_PART_ALIAS_MS_LDM_DATA }, { "ms-ldm-metadata", G_PART_ALIAS_MS_LDM_METADATA }, { "ms-reserved", G_PART_ALIAS_MS_RESERVED }, + { "ntfs", G_PART_ALIAS_MS_NTFS }, { "netbsd-ccd", G_PART_ALIAS_NETBSD_CCD }, { "netbsd-cgd", G_PART_ALIAS_NETBSD_CGD }, { "netbsd-ffs", G_PART_ALIAS_NETBSD_FFS }, Modified: projects/ppc64/sys/geom/part/g_part.h ============================================================================== --- projects/ppc64/sys/geom/part/g_part.h Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/geom/part/g_part.h Sat Jun 26 22:26:53 2010 (r209545) @@ -59,6 +59,7 @@ enum g_part_alias { G_PART_ALIAS_MS_LDM_DATA, /* A Microsoft LDM Data part. entry. */ G_PART_ALIAS_MS_LDM_METADATA, /* A Microsoft LDM Metadata entry. */ G_PART_ALIAS_MS_RESERVED, /* A Microsoft Reserved part. entry. */ + G_PART_ALIAS_MS_NTFS, /* A Microsoft NTFS partition entry */ G_PART_ALIAS_NETBSD_CCD, /* A NetBSD CCD partition entry. */ G_PART_ALIAS_NETBSD_CGD, /* A NetBSD CGD partition entry. */ G_PART_ALIAS_NETBSD_FFS, /* A NetBSD FFS partition entry. */ Modified: projects/ppc64/sys/geom/part/g_part_mbr.c ============================================================================== --- projects/ppc64/sys/geom/part/g_part_mbr.c Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/geom/part/g_part_mbr.c Sat Jun 26 22:26:53 2010 (r209545) @@ -127,6 +127,11 @@ mbr_parse_type(const char *type, u_char *dp_typ = DOSPTYP_386BSD; return (0); } + alias = g_part_alias_name(G_PART_ALIAS_MS_NTFS); + if (!strcasecmp(type, alias)) { + *dp_typ = DOSPTYP_NTFS; + return (0); + } return (EINVAL); } @@ -509,9 +514,14 @@ g_part_mbr_type(struct g_part_table *bas entry = (struct g_part_mbr_entry *)baseentry; type = entry->ent.dp_typ; - if (type == DOSPTYP_386BSD) + switch (type) { + case DOSPTYP_386BSD: return (g_part_alias_name(G_PART_ALIAS_FREEBSD)); - snprintf(buf, bufsz, "!%d", type); + case DOSPTYP_NTFS: + return (g_part_alias_name(G_PART_ALIAS_MS_NTFS)); + default: + snprintf(buf, bufsz, "!%d", type); + } return (buf); } Modified: projects/ppc64/sys/i386/conf/NOTES ============================================================================== --- projects/ppc64/sys/i386/conf/NOTES Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/i386/conf/NOTES Sat Jun 26 22:26:53 2010 (r209545) @@ -512,6 +512,9 @@ device acpi_video # ACPI Docking Station device acpi_dock +# ACPI ASOC ATK0110 ASUSTeK AI Booster (voltage, temperature and fan sensors) +device aibs + # The cpufreq(4) driver provides support for non-ACPI CPU frequency control device cpufreq Modified: projects/ppc64/sys/kern/uipc_syscalls.c ============================================================================== --- projects/ppc64/sys/kern/uipc_syscalls.c Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/kern/uipc_syscalls.c Sat Jun 26 22:26:53 2010 (r209545) @@ -2409,7 +2409,7 @@ sctp_generic_sendmsg (td, uap) if (error) goto sctp_bad; #ifdef KTRACE - if (KTRPOINT(td, KTR_STRUCT)) + if (to && (KTRPOINT(td, KTR_STRUCT))) ktrsockaddr(to); #endif @@ -2523,7 +2523,7 @@ sctp_generic_sendmsg_iov(td, uap) if (error) goto sctp_bad1; #ifdef KTRACE - if (KTRPOINT(td, KTR_STRUCT)) + if (to && (KTRPOINT(td, KTR_STRUCT))) ktrsockaddr(to); #endif @@ -2677,6 +2677,7 @@ sctp_generic_recvmsg(td, uap) if (KTRPOINT(td, KTR_GENIO)) ktruio = cloneuio(&auio); #endif /* KTRACE */ + memset(&sinfo, 0, sizeof(struct sctp_sndrcvinfo)); CURVNET_SET(so->so_vnet); error = sctp_sorecvmsg(so, &auio, (struct mbuf **)NULL, fromsa, fromlen, &msg_flags, Modified: projects/ppc64/sys/kern/vfs_vnops.c ============================================================================== --- projects/ppc64/sys/kern/vfs_vnops.c Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/kern/vfs_vnops.c Sat Jun 26 22:26:53 2010 (r209545) @@ -506,8 +506,8 @@ vn_read(fp, uio, active_cred, flags, td) struct file *fp; struct uio *uio; struct ucred *active_cred; - struct thread *td; int flags; + struct thread *td; { struct vnode *vp; int error, ioflag; @@ -572,8 +572,8 @@ vn_write(fp, uio, active_cred, flags, td struct file *fp; struct uio *uio; struct ucred *active_cred; - struct thread *td; int flags; + struct thread *td; { struct vnode *vp; struct mount *mp; Modified: projects/ppc64/sys/modules/acpi/Makefile ============================================================================== --- projects/ppc64/sys/modules/acpi/Makefile Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/modules/acpi/Makefile Sat Jun 26 22:26:53 2010 (r209545) @@ -6,6 +6,6 @@ SUBDIR= acpi SUBDIR+= acpi_aiboost acpi_asus acpi_fujitsu acpi_hp acpi_ibm \ acpi_panasonic acpi_sony acpi_toshiba acpi_video \ - acpi_dock acpi_wmi + acpi_dock acpi_wmi aibs .include Modified: projects/ppc64/sys/sys/diskmbr.h ============================================================================== --- projects/ppc64/sys/sys/diskmbr.h Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/sys/sys/diskmbr.h Sat Jun 26 22:26:53 2010 (r209545) @@ -49,6 +49,7 @@ #define DOSPTYP_PMBR 0xee /* GPT Protective MBR */ #define DOSPTYP_EXT 5 /* DOS extended partition */ #define DOSPTYP_EXTLBA 15 /* DOS extended partition */ +#define DOSPTYP_NTFS 0x07 /* NTFS partition */ struct dos_partition { unsigned char dp_flag; /* bootstrap flags */ Modified: projects/ppc64/usr.sbin/Makefile ============================================================================== --- projects/ppc64/usr.sbin/Makefile Sat Jun 26 22:04:52 2010 (r209544) +++ projects/ppc64/usr.sbin/Makefile Sat Jun 26 22:26:53 2010 (r209545) @@ -125,6 +125,7 @@ SUBDIR= ${_ac} \ ${_ntp} \ ${_nvram} \ ${_ofwdump} \ + pc-sysinstall \ pciconf \ periodic \ ${_pkg_install} \