From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 00:00:29 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F78A106566C; Sun, 19 Dec 2010 00:00:29 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8DE408FC0C; Sun, 19 Dec 2010 00:00:29 +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 oBJ00T13038730; Sun, 19 Dec 2010 00:00:29 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJ00TtN038728; Sun, 19 Dec 2010 00:00:29 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201012190000.oBJ00TtN038728@svn.freebsd.org> From: Pyun YongHyeon Date: Sun, 19 Dec 2010 00:00:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216552 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 00:00:29 -0000 Author: yongari Date: Sun Dec 19 00:00:29 2010 New Revision: 216552 URL: http://svn.freebsd.org/changeset/base/216552 Log: Document JMC251/JMC261 support. Modified: head/share/man/man4/jme.4 Modified: head/share/man/man4/jme.4 ============================================================================== --- head/share/man/man4/jme.4 Sat Dec 18 23:52:50 2010 (r216551) +++ head/share/man/man4/jme.4 Sun Dec 19 00:00:29 2010 (r216552) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 6, 2008 +.Dd December 18, 2010 .Dt JME 4 .Os .Sh NAME @@ -48,8 +48,8 @@ if_jme_load="YES" .Sh DESCRIPTION The .Nm -device driver provides support for JMicron JMC250 PCI Express -Gigabit Ethernet controllers and JMicron JMC260 PCI Express Fast +device driver provides support for JMicron JMC25x PCI Express +Gigabit Ethernet controllers and JMicron JMC26x PCI Express Fast Ethernet controllers. .Pp All LOMs supported by the @@ -59,7 +59,7 @@ TCP segmentation offload (TSO), hardware features, Wake On Lan (WOL) and an interrupt coalescing/moderation mechanism as well as a 64-bit multicast hash filter. .Pp -The JMC250 also supports Jumbo Frames (up to 9216 bytes), which can be +The JMC25x also supports Jumbo Frames (up to 9216 bytes), which can be configured via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the .Xr ifconfig 8 @@ -103,7 +103,11 @@ device driver provides support for the f .It JMicron JMC250 PCI Express Gigabit Ethernet controller .It +JMicron JMC251 PCI Express Gigabit Ethernet with Card Read Host controller +.It JMicron JMC260 PCI Express Fast Ethernet controller +.It +JMicron JMC261 PCI Express Gigabit Ethernet with Card Read Host controller .El .Sh LOADER TUNABLES Tunables can be set at the From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 07:31:57 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 002AF106566B; Sun, 19 Dec 2010 07:31:56 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E2C4A8FC12; Sun, 19 Dec 2010 07:31:56 +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 oBJ7VuWs064198; Sun, 19 Dec 2010 07:31:56 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJ7VuiB064196; Sun, 19 Dec 2010 07:31:56 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201012190731.oBJ7VuiB064196@svn.freebsd.org> From: Alan Cox Date: Sun, 19 Dec 2010 07:31:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216555 - head/sys/i386/i386 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 07:31:57 -0000 Author: alc Date: Sun Dec 19 07:31:56 2010 New Revision: 216555 URL: http://svn.freebsd.org/changeset/base/216555 Log: Redo some parts of r216333, specifically, the locking changes to pmap_extract_and_hold(), and undo the rest. In particular, I forgot that PG_PS and PG_PTE_PAT are the same bit. Modified: head/sys/i386/i386/pmap.c Modified: head/sys/i386/i386/pmap.c ============================================================================== --- head/sys/i386/i386/pmap.c Sun Dec 19 06:09:02 2010 (r216554) +++ head/sys/i386/i386/pmap.c Sun Dec 19 07:31:56 2010 (r216555) @@ -1291,21 +1291,23 @@ pmap_pte_quick(pmap_t pmap, vm_offset_t vm_paddr_t pmap_extract(pmap_t pmap, vm_offset_t va) { - pt_entry_t pte, *ptep; vm_paddr_t rtval; + pt_entry_t *pte; + pd_entry_t pde; rtval = 0; PMAP_LOCK(pmap); - ptep = pmap_pte(pmap, va); - pte = (ptep != NULL) ? *ptep : 0; - pmap_pte_release(ptep); - PMAP_UNLOCK(pmap); - if ((pte & PG_V) != 0) { - if ((pte & PG_PS) != 0) - rtval = (pte & PG_PS_FRAME) | (va & PDRMASK); - else - rtval = (pte & PG_FRAME) | (va & PAGE_MASK); + pde = pmap->pm_pdir[va >> PDRSHIFT]; + if (pde != 0) { + if ((pde & PG_PS) != 0) + rtval = (pde & PG_PS_FRAME) | (va & PDRMASK); + else { + pte = pmap_pte(pmap, va); + rtval = (*pte & PG_FRAME) | (va & PAGE_MASK); + pmap_pte_release(pte); + } } + PMAP_UNLOCK(pmap); return (rtval); } @@ -1319,30 +1321,40 @@ pmap_extract(pmap_t pmap, vm_offset_t va vm_page_t pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) { + pd_entry_t pde; pt_entry_t pte, *ptep; - vm_paddr_t locked_pa, pa; vm_page_t m; + vm_paddr_t pa; - locked_pa = 0; + pa = 0; m = NULL; PMAP_LOCK(pmap); retry: - ptep = pmap_pte(pmap, va); - pte = (ptep != NULL) ? *ptep : 0; - pmap_pte_release(ptep); - if ((pte & PG_V) != 0 && - ((pte & PG_RW) != 0 || (prot & VM_PROT_WRITE) == 0)) { - if ((pte & PG_PS) != 0) { - /* Compute the physical address of the 4KB page. */ - pa = (pte & PG_PS_FRAME) | (va & PG_FRAME & PDRMASK); - } else - pa = pte & PG_FRAME; - if (vm_page_pa_tryrelock(pmap, pa, &locked_pa)) - goto retry; - m = PHYS_TO_VM_PAGE(pa); - vm_page_hold(m); - PA_UNLOCK(locked_pa); + pde = *pmap_pde(pmap, va); + if (pde != 0) { + if (pde & PG_PS) { + if ((pde & PG_RW) || (prot & VM_PROT_WRITE) == 0) { + if (vm_page_pa_tryrelock(pmap, (pde & PG_PS_FRAME) | + (va & PDRMASK), &pa)) + goto retry; + m = PHYS_TO_VM_PAGE((pde & PG_PS_FRAME) | + (va & PDRMASK)); + vm_page_hold(m); + } + } else { + ptep = pmap_pte(pmap, va); + pte = *ptep; + pmap_pte_release(ptep); + if (pte != 0 && + ((pte & PG_RW) || (prot & VM_PROT_WRITE) == 0)) { + if (vm_page_pa_tryrelock(pmap, pte & PG_FRAME, &pa)) + goto retry; + m = PHYS_TO_VM_PAGE(pte & PG_FRAME); + vm_page_hold(m); + } + } } + PA_UNLOCK_COND(pa); PMAP_UNLOCK(pmap); return (m); } @@ -4979,30 +4991,39 @@ pmap_change_attr(vm_offset_t va, vm_size int pmap_mincore(pmap_t pmap, vm_offset_t addr, vm_paddr_t *locked_pa) { + pd_entry_t *pdep; pt_entry_t *ptep, pte; vm_paddr_t pa; int val; PMAP_LOCK(pmap); retry: - ptep = pmap_pte(pmap, addr); - pte = (ptep != NULL) ? *ptep : 0; - pmap_pte_release(ptep); - if ((pte & PG_V) != 0) { - val = MINCORE_INCORE; - if ((pte & PG_PS) != 0) { - val |= MINCORE_SUPER; + pdep = pmap_pde(pmap, addr); + if (*pdep != 0) { + if (*pdep & PG_PS) { + pte = *pdep; /* Compute the physical address of the 4KB page. */ - pa = (pte & PG_PS_FRAME) | (addr & PG_FRAME & PDRMASK); - } else + pa = ((*pdep & PG_PS_FRAME) | (addr & PDRMASK)) & + PG_FRAME; + val = MINCORE_SUPER; + } else { + ptep = pmap_pte(pmap, addr); + pte = *ptep; + pmap_pte_release(ptep); pa = pte & PG_FRAME; + val = 0; + } + } else { + pte = 0; + pa = 0; + val = 0; + } + if ((pte & PG_V) != 0) { + val |= MINCORE_INCORE; if ((pte & (PG_M | PG_RW)) == (PG_M | PG_RW)) val |= MINCORE_MODIFIED | MINCORE_MODIFIED_OTHER; if ((pte & PG_A) != 0) val |= MINCORE_REFERENCED | MINCORE_REFERENCED_OTHER; - } else { - val = 0; - pa = 0; } if ((val & (MINCORE_MODIFIED_OTHER | MINCORE_REFERENCED_OTHER)) != (MINCORE_MODIFIED_OTHER | MINCORE_REFERENCED_OTHER) && From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 09:18:14 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5D772106566B; Sun, 19 Dec 2010 09:18:14 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4B7518FC0A; Sun, 19 Dec 2010 09:18:14 +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 oBJ9IEqI067918; Sun, 19 Dec 2010 09:18:14 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJ9IEWf067916; Sun, 19 Dec 2010 09:18:14 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201012190918.oBJ9IEWf067916@svn.freebsd.org> From: Bernhard Schmidt Date: Sun, 19 Dec 2010 09:18:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216556 - head/usr.sbin/wpa/hostapd X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 09:18:14 -0000 Author: bschmidt Date: Sun Dec 19 09:18:14 2010 New Revision: 216556 URL: http://svn.freebsd.org/changeset/base/216556 Log: Fix build on bigendian archs. Modified: head/usr.sbin/wpa/hostapd/driver_freebsd.c Modified: head/usr.sbin/wpa/hostapd/driver_freebsd.c ============================================================================== --- head/usr.sbin/wpa/hostapd/driver_freebsd.c Sun Dec 19 07:31:56 2010 (r216555) +++ head/usr.sbin/wpa/hostapd/driver_freebsd.c Sun Dec 19 09:18:14 2010 (r216556) @@ -22,6 +22,7 @@ #include "driver.h" #include "eloop.h" #include "common/ieee802_11_defs.h" +#include "common/wpa_common.h" #include #include From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 10:36:06 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DD5E6106564A; Sun, 19 Dec 2010 10:36:06 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 93D018FC12; Sun, 19 Dec 2010 10:36:06 +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 oBJAa6uV071923; Sun, 19 Dec 2010 10:36:06 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJAa6tw071921; Sun, 19 Dec 2010 10:36:06 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201012191036.oBJAa6tw071921@svn.freebsd.org> From: Bernhard Schmidt Date: Sun, 19 Dec 2010 10:36:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216557 - head/sys/dev/wpi X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 10:36:07 -0000 Author: bschmidt Date: Sun Dec 19 10:36:06 2010 New Revision: 216557 URL: http://svn.freebsd.org/changeset/base/216557 Log: Fix panic trying to use monitor mode. The iwn_cmd() calls issued by iwn_config() want to msleep() on the mutex. PR: kern/138427 Submitted by: Henry Hu MFC after: 3 days Modified: head/sys/dev/wpi/if_wpi.c Modified: head/sys/dev/wpi/if_wpi.c ============================================================================== --- head/sys/dev/wpi/if_wpi.c Sun Dec 19 09:18:14 2010 (r216556) +++ head/sys/dev/wpi/if_wpi.c Sun Dec 19 10:36:06 2010 (r216557) @@ -3561,7 +3561,9 @@ wpi_set_channel(struct ieee80211com *ic) * are already taken care of by their respective firmware commands. */ if (ic->ic_opmode == IEEE80211_M_MONITOR) { + WPI_LOCK(sc); error = wpi_config(sc); + WPI_UNLOCK(sc); if (error != 0) device_printf(sc->sc_dev, "error %d settting channel\n", error); From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 11:14:35 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F359106566C; Sun, 19 Dec 2010 11:14:35 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D81B18FC18; Sun, 19 Dec 2010 11:14:34 +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 oBJBEYmF073156; Sun, 19 Dec 2010 11:14:34 GMT (envelope-from tijl@svn.freebsd.org) Received: (from tijl@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJBEYob073154; Sun, 19 Dec 2010 11:14:34 GMT (envelope-from tijl@svn.freebsd.org) Message-Id: <201012191114.oBJBEYob073154@svn.freebsd.org> From: Tijl Coosemans Date: Sun, 19 Dec 2010 11:14:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216558 - head/sys/dev/if_ndis X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 11:14:35 -0000 Author: tijl Date: Sun Dec 19 11:14:34 2010 New Revision: 216558 URL: http://svn.freebsd.org/changeset/base/216558 Log: Fix a bug introduced in r216518. The ndis_subsys field holds the PCI subdevice ID in addition to the subvendor ID. Reported by: Paul B Mahol 'onemda gmail com' Approved by: kib (mentor) Modified: head/sys/dev/if_ndis/if_ndis_pci.c Modified: head/sys/dev/if_ndis/if_ndis_pci.c ============================================================================== --- head/sys/dev/if_ndis/if_ndis_pci.c Sun Dec 19 10:36:06 2010 (r216557) +++ head/sys/dev/if_ndis/if_ndis_pci.c Sun Dec 19 11:14:34 2010 (r216558) @@ -110,14 +110,20 @@ ndis_devcompare(bustype, t, dev) struct ndis_pci_type *t; device_t dev; { + uint16_t vid, did; + uint32_t subsys; + if (bustype != PCIBus) return(FALSE); + vid = pci_get_vendor(dev); + did = pci_get_device(dev); + subsys = pci_get_subdevice(dev); + subsys = (subsys << 16) | pci_get_subvendor(dev); + while(t->ndis_name != NULL) { - if ((pci_get_vendor(dev) == t->ndis_vid) && - (pci_get_device(dev) == t->ndis_did) && - (pci_get_subvendor(dev) == t->ndis_subsys || - t->ndis_subsys == 0)) { + if ((t->ndis_vid == vid) && (t->ndis_did == did) && + (t->ndis_subsys == subsys || t->ndis_subsys == 0)) { device_set_desc(dev, t->ndis_name); return(TRUE); } @@ -169,6 +175,8 @@ ndis_attach_pci(dev) struct resource_list *rl; struct resource_list_entry *rle; struct drvdb_ent *db; + uint16_t vid, did; + uint32_t subsys; sc = device_get_softc(dev); unit = device_get_unit(dev); @@ -300,14 +308,18 @@ ndis_attach_pci(dev) /* Figure out exactly which device we matched. */ + vid = pci_get_vendor(dev); + did = pci_get_device(dev); + subsys = pci_get_subdevice(dev); + subsys = (subsys << 16) | pci_get_subvendor(dev); + t = db->windrv_devlist; while(t->ndis_name != NULL) { - if ((pci_get_vendor(dev) == t->ndis_vid) && - (pci_get_device(dev) == t->ndis_did)) { + if (t->ndis_vid == vid && t->ndis_did == did) { if (t->ndis_subsys == 0) defidx = devidx; - else if (pci_get_subvendor(dev) == t->ndis_subsys) + else if (t->ndis_subsys == subsys) break; } t++; From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 11:37:44 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A38B106564A; Sun, 19 Dec 2010 11:37:44 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 779478FC15; Sun, 19 Dec 2010 11:37:44 +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 oBJBbikf074030; Sun, 19 Dec 2010 11:37:44 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJBbin2074026; Sun, 19 Dec 2010 11:37:44 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201012191137.oBJBbin2074026@svn.freebsd.org> From: Bernhard Schmidt Date: Sun, 19 Dec 2010 11:37:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216559 - in head/sys: conf contrib/dev/wpi modules/wpifw X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 11:37:44 -0000 Author: bschmidt Date: Sun Dec 19 11:37:44 2010 New Revision: 216559 URL: http://svn.freebsd.org/changeset/base/216559 Log: Update firmware for wpi(4) from version 2.14.4 to 15.32.2.9. PR: kern/142907 Submitted by: Craig Butler MFC after: 2 weeks Added: head/sys/contrib/dev/wpi/iwlwifi-3945-15.32.2.9.fw.uu Deleted: head/sys/contrib/dev/wpi/iwlwifi-3945-2.14.4.fw.uu Modified: head/sys/conf/files head/sys/contrib/dev/wpi/LICENSE head/sys/modules/wpifw/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun Dec 19 11:14:34 2010 (r216558) +++ head/sys/conf/files Sun Dec 19 11:37:44 2010 (r216559) @@ -1886,7 +1886,7 @@ dev/wi/if_wi_pccard.c optional wi pccar dev/wi/if_wi_pci.c optional wi pci dev/wl/if_wl.c optional wl isa wpifw.c optional wpifw \ - compile-with "${AWK} -f $S/tools/fw_stub.awk wpi.fw:wpifw:2144 -mwpi -c${.TARGET}" \ + compile-with "${AWK} -f $S/tools/fw_stub.awk wpi.fw:wpifw:153229 -mwpi -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "wpifw.c" wpifw.fwo optional wpifw \ @@ -1895,8 +1895,8 @@ wpifw.fwo optional wpifw \ no-implicit-rule \ clean "wpifw.fwo" wpi.fw optional wpifw \ - dependency "$S/contrib/dev/wpi/iwlwifi-3945-2.14.4.fw.uu" \ - compile-with "uudecode -o ${.TARGET} $S/contrib/dev/wpi/iwlwifi-3945-2.14.4.fw.uu" \ + dependency "$S/contrib/dev/wpi/iwlwifi-3945-15.32.2.9.fw.uu" \ + compile-with "uudecode -o ${.TARGET} $S/contrib/dev/wpi/iwlwifi-3945-15.32.2.9.fw.uu" \ no-obj no-implicit-rule \ clean "wpi.fw" dev/xe/if_xe.c optional xe Modified: head/sys/contrib/dev/wpi/LICENSE ============================================================================== --- head/sys/contrib/dev/wpi/LICENSE Sun Dec 19 11:14:34 2010 (r216558) +++ head/sys/contrib/dev/wpi/LICENSE Sun Dec 19 11:37:44 2010 (r216559) @@ -1,4 +1,4 @@ -Copyright (c) 2006, Intel Corporation. +Copyright (c) 2006-2009, Intel Corporation. All rights reserved. Redistribution. Redistribution and use in binary form, without Added: head/sys/contrib/dev/wpi/iwlwifi-3945-15.32.2.9.fw.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/dev/wpi/iwlwifi-3945-15.32.2.9.fw.uu Sun Dec 19 11:37:44 2010 (r216559) @@ -0,0 +1,2636 @@ +begin-base64 644 iwlwifi-3945.ucode +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 +ArYAH4BAAB+EQwAfQEDPcqAAyB+MEgEAAB9AQJASAADb/89woADUBxYYWIMI2ADZmbmZ/2kgQACZ +BM//z3GgAMgf2BkAANwRAADgfvHAA9oA289xoADUBxUZmIDPcaAAZAukGQIACNgIcYv/z3CAAJwr +Y6DRwOB/ZKDgePHAA9oA289xoADUBxUZmIDPcaAAVAu0GQQACNgIcX//z3CAAJwrY6DRwOB/ZKDg +ePHA4cUD2gDbz3GgANQHFRmYgM9xoADQDw4ZGIAI2M91gACcKySFA6VBhQHhMHIkpQX3CHFt/2Ol +ZKX1A8//4HjxwATYAB8AQAPZANvPcKAA1AcVGFiA9snPcaAA0A8OGRiACNgIcWH/z3CAAJwrY6DR +wOB/ZKDgeIDhCHJB8kAhwwPDuY/hegAtACS7zHDwJkxwgAA4PwB8IIAEGlAAIIAEGlAAIIAEGlAA +IIAEGlAAIIAEGlAAIIAEGlAAIIAEGlAAIIAEGlAAIIAEGlAAIIAEGlAAIIAEGlAAIIAEGlAAIIAE +GlAAIIAEGlAAIIAEGlAAIICAI/+PBBpQAM714H9IcOB4ABYCQAhxQKEAFgJAQaEAFgJAQqEAFgJA +Q6EAFgJARKEAFgJARaEAFgJARqEAFgJAR6EAFgJASKEAFgJASaEAFgJASqEAFgJAS6EAFgBA4H8M +oeB4gOLgfGNqwbqD4uEgzQciu/AmjHCAAHg/AHxAgAQZkAAE4ECABBmQAATgQIAEGZAABOBAgIAj +/48E4OEgwQcEGZAA7fGA4uB8QCLDA8O6j+LhIM0HJLvwJoxwgACIPwB8QIgBGZIAAeBAiAEZkgAB +4ECIARmSAAHgQIgBGZIAAeBAiAEZkgAB4ECIARmSAAHgQIgBGZIAAeBAiAEZkgAB4ECIARmSAAHg +QIgBGZIAAeBAiAEZkgAB4ECIARmSAAHgQIgBGZIAAeBAiAEZkgAB4ECIARmSAAHgQIiAI/+PAeDh +IMEHARmSALzx4HjxwOHFKHUiuYv/wb2B5Q7yguUI8oPlDfQAFoFAARhSAAAWgUABGFIAABaBQCCo +vQHP/+B4CHIA2AbwABYDQQHgAhrUABBx4CDOB/nxCHIA2AbwABaDQAHgARrSABBx4CDOB/nx4cUo +cgDbEPCggAHjABhAU6GAABhAU6KAABhAU6OAABhAUxDgQSoBAXBxMPcA2wfwIIAB4wAYQFAE4FMi +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 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 13:05:17 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BDD141065675; Sun, 19 Dec 2010 13:05:17 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ACEB98FC12; Sun, 19 Dec 2010 13:05: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 oBJD5HTv078035; Sun, 19 Dec 2010 13:05:17 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJD5HD6078033; Sun, 19 Dec 2010 13:05:17 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012191305.oBJD5HD6078033@svn.freebsd.org> From: Philippe Charnier Date: Sun, 19 Dec 2010 13:05:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216560 - head/libexec/rpc.rwalld X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 13:05:17 -0000 Author: charnier Date: Sun Dec 19 13:05:17 2010 New Revision: 216560 URL: http://svn.freebsd.org/changeset/base/216560 Log: add __unused Modified: head/libexec/rpc.rwalld/rwalld.c Modified: head/libexec/rpc.rwalld/rwalld.c ============================================================================== --- head/libexec/rpc.rwalld/rwalld.c Sun Dec 19 11:37:44 2010 (r216559) +++ head/libexec/rpc.rwalld/rwalld.c Sun Dec 19 13:05:17 2010 (r216560) @@ -27,10 +27,8 @@ * SUCH DAMAGE. */ -#ifndef lint -static const char rcsid[] = - "$FreeBSD$"; -#endif /* not lint */ +#include +__FBSDID("$FreeBSD$"); #include #include @@ -136,14 +134,14 @@ possess(void) } void -killkids(int sig) +killkids(int sig __unused) { while(wait4(-1, NULL, WNOHANG, NULL) > 0) ; } void * -wallproc_wall_1_svc(wrapstring *s, struct svc_req *rqstp) +wallproc_wall_1_svc(wrapstring *s, struct svc_req *rqstp __unused) { static void *dummy = NULL; From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 13:40:39 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CDEE106566C; Sun, 19 Dec 2010 13:40:39 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0B8138FC17; Sun, 19 Dec 2010 13:40:39 +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 oBJDecv1080973; Sun, 19 Dec 2010 13:40:38 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJDecrg080971; Sun, 19 Dec 2010 13:40:38 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012191340.oBJDecrg080971@svn.freebsd.org> From: Philippe Charnier Date: Sun, 19 Dec 2010 13:40:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216561 - head/sbin/ping6 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 13:40:39 -0000 Author: charnier Date: Sun Dec 19 13:40:38 2010 New Revision: 216561 URL: http://svn.freebsd.org/changeset/base/216561 Log: Add __unused. Ansi prototypes. Modified: head/sbin/ping6/ping6.c Modified: head/sbin/ping6/ping6.c ============================================================================== --- head/sbin/ping6/ping6.c Sun Dec 19 13:05:17 2010 (r216560) +++ head/sbin/ping6/ping6.c Sun Dec 19 13:40:38 2010 (r216561) @@ -73,10 +73,11 @@ static const char copyright[] = #if 0 static char sccsid[] = "@(#)ping.c 8.1 (Berkeley) 6/5/93"; #endif -static const char rcsid[] = - "$FreeBSD$"; #endif /* not lint */ +#include +__FBSDID("$FreeBSD$"); + /* * Using the InterNet Control Message Protocol (ICMP) "ECHO" facility, * measure round-trip-delays and packet loss across network paths. @@ -290,9 +291,7 @@ char *nigroup(char *); void usage(void); int -main(argc, argv) - int argc; - char *argv[]; +main(int argc, char *argv[]) { struct itimerval itimer; struct sockaddr_in6 from; @@ -1209,8 +1208,7 @@ main(argc, argv) } void -onsignal(sig) - int sig; +onsignal(int sig) { switch (sig) { @@ -1233,7 +1231,7 @@ onsignal(sig) * This routine transmits another ping6. */ void -retransmit() +retransmit(void) { struct itimerval itimer; @@ -1269,7 +1267,7 @@ retransmit() * byte-order, to compute the round-trip time. */ size_t -pingerlen() +pingerlen(void) { size_t l; @@ -1288,7 +1286,7 @@ pingerlen() } int -pinger() +pinger(void) { struct icmp6_hdr *icp; struct iovec iov[2]; @@ -1403,8 +1401,7 @@ pinger() } int -myechoreply(icp) - const struct icmp6_hdr *icp; +myechoreply(const struct icmp6_hdr *icp) { if (ntohs(icp->icmp6_id) == ident) return 1; @@ -1413,8 +1410,7 @@ myechoreply(icp) } int -mynireply(nip) - const struct icmp6_nodeinfo *nip; +mynireply(const struct icmp6_nodeinfo *nip) { if (memcmp(nip->icmp6_ni_nonce + sizeof(u_int16_t), nonce + sizeof(u_int16_t), @@ -1425,12 +1421,9 @@ mynireply(nip) } char * -dnsdecode(sp, ep, base, buf, bufsiz) - const u_char **sp; - const u_char *ep; - const u_char *base; /*base for compressed name*/ - char *buf; - size_t bufsiz; +dnsdecode(const u_char **sp, const u_char *ep, const u_char *base, char *buf, + size_t bufsiz) + /*base for compressed name*/ { int i; const u_char *cp; @@ -1495,10 +1488,7 @@ dnsdecode(sp, ep, base, buf, bufsiz) * program to be run without having intermingled output (or statistics!). */ void -pr_pack(buf, cc, mhdr) - u_char *buf; - int cc; - struct msghdr *mhdr; +pr_pack(u_char *buf, int cc, struct msghdr *mhdr) { #define safeputc(c) printf((isprint((c)) ? "%c" : "\\%03o"), c) struct icmp6_hdr *icp; @@ -1779,8 +1769,7 @@ pr_pack(buf, cc, mhdr) } void -pr_exthdrs(mhdr) - struct msghdr *mhdr; +pr_exthdrs(struct msghdr *mhdr) { ssize_t bufsize; void *bufp; @@ -1956,10 +1945,7 @@ pr_rthdr(void *extbuf, size_t bufsize __ #endif /* USE_RFC2292BIS */ int -pr_bitrange(v, soff, ii) - u_int32_t v; - int soff; - int ii; +pr_bitrange(u_int32_t v, int soff, int ii) { int off; int i; @@ -2005,9 +1991,8 @@ pr_bitrange(v, soff, ii) } void -pr_suptypes(ni, nilen) - struct icmp6_nodeinfo *ni; /* ni->qtype must be SUPTYPES */ - size_t nilen; +pr_suptypes(struct icmp6_nodeinfo *ni, size_t nilen) + /* ni->qtype must be SUPTYPES */ { size_t clen; u_int32_t v; @@ -2072,9 +2057,8 @@ pr_suptypes(ni, nilen) } void -pr_nodeaddr(ni, nilen) - struct icmp6_nodeinfo *ni; /* ni->qtype must be NODEADDR */ - int nilen; +pr_nodeaddr(struct icmp6_nodeinfo *ni, int nilen) + /* ni->qtype must be NODEADDR */ { u_char *cp = (u_char *)(ni + 1); char ntop_buf[INET6_ADDRSTRLEN]; @@ -2139,8 +2123,7 @@ pr_nodeaddr(ni, nilen) } int -get_hoplim(mhdr) - struct msghdr *mhdr; +get_hoplim(struct msghdr *mhdr) { struct cmsghdr *cm; @@ -2159,8 +2142,7 @@ get_hoplim(mhdr) } struct in6_pktinfo * -get_rcvpktinfo(mhdr) - struct msghdr *mhdr; +get_rcvpktinfo(struct msghdr *mhdr) { struct cmsghdr *cm; @@ -2179,8 +2161,7 @@ get_rcvpktinfo(mhdr) } int -get_pathmtu(mhdr) - struct msghdr *mhdr; +get_pathmtu(struct msghdr *mhdr) { #ifdef IPV6_RECVPATHMTU struct cmsghdr *cm; @@ -2240,8 +2221,7 @@ get_pathmtu(mhdr) * be >= in. */ void -tvsub(out, in) - struct timeval *out, *in; +tvsub(struct timeval *out, struct timeval *in) { if ((out->tv_usec -= in->tv_usec) < 0) { --out->tv_sec; @@ -2256,8 +2236,7 @@ tvsub(out, in) */ /* ARGSUSED */ void -onint(notused) - int notused; +onint(int notused __unused) { summary(); @@ -2284,7 +2263,7 @@ onint(notused) * Print out statistics. */ void -summary() +summary(void) { (void)printf("\n--- %s ping6 statistics ---\n", hostname); @@ -2332,9 +2311,7 @@ static const char *nircode[] = { * Print a descriptive string about an ICMP header. */ void -pr_icmph(icp, end) - struct icmp6_hdr *icp; - u_char *end; +pr_icmph(struct icmp6_hdr *icp, u_char *end) { char ntop_buf[INET6_ADDRSTRLEN]; struct nd_redirect *red; @@ -2564,8 +2541,7 @@ pr_icmph(icp, end) * Print an IP6 header. */ void -pr_iph(ip6) - struct ip6_hdr *ip6; +pr_iph(struct ip6_hdr *ip6) { u_int32_t flow = ip6->ip6_flow & IPV6_FLOWLABEL_MASK; u_int8_t tc; @@ -2593,9 +2569,7 @@ pr_iph(ip6) * a hostname. */ const char * -pr_addr(addr, addrlen) - struct sockaddr *addr; - int addrlen; +pr_addr(struct sockaddr *addr, int addrlen) { static char buf[NI_MAXHOST]; int flag = 0; @@ -2614,9 +2588,7 @@ pr_addr(addr, addrlen) * Dump some info on a returned (via ICMPv6) IPv6 packet. */ void -pr_retip(ip6, end) - struct ip6_hdr *ip6; - u_char *end; +pr_retip(struct ip6_hdr *ip6, u_char *end) { u_char *cp = (u_char *)ip6, nh; int hlen; @@ -2696,8 +2668,7 @@ pr_retip(ip6, end) } void -fill(bp, patp) - char *bp, *patp; +fill(char *bp, char *patp) { int ii, jj, kk; int pat[16]; @@ -2730,9 +2701,7 @@ fill(bp, patp) #ifdef IPSEC #ifdef IPSEC_POLICY_IPSEC int -setpolicy(so, policy) - int so; - char *policy; +setpolicy(int so __unused, char *policy) { char *buf; @@ -2753,8 +2722,7 @@ setpolicy(so, policy) #endif char * -nigroup(name) - char *name; +nigroup(char *name) { char *p; char *q; @@ -2798,7 +2766,7 @@ nigroup(name) } void -usage() +usage(void) { (void)fprintf(stderr, #if defined(IPSEC) && !defined(IPSEC_POLICY_IPSEC) From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 14:18:08 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25B8E106566B; Sun, 19 Dec 2010 14:18:08 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1487D8FC19; Sun, 19 Dec 2010 14:18:08 +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 oBJEI75T084061; Sun, 19 Dec 2010 14:18:07 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJEI7ex084059; Sun, 19 Dec 2010 14:18:07 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012191418.oBJEI7ex084059@svn.freebsd.org> From: Philippe Charnier Date: Sun, 19 Dec 2010 14:18:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216562 - head/usr.bin/mail X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 14:18:08 -0000 Author: charnier Date: Sun Dec 19 14:18:07 2010 New Revision: 216562 URL: http://svn.freebsd.org/changeset/base/216562 Log: Add __unused. Ansi prototypes. Modified: head/usr.bin/mail/cmd1.c Modified: head/usr.bin/mail/cmd1.c ============================================================================== --- head/usr.bin/mail/cmd1.c Sun Dec 19 13:40:38 2010 (r216561) +++ head/usr.bin/mail/cmd1.c Sun Dec 19 14:18:07 2010 (r216562) @@ -54,8 +54,7 @@ extern const struct cmd cmdtab[]; static int screen; int -headers(msgvec) - int *msgvec; +headers(int *msgvec) { int n, mesg, flag, size; struct message *mp; @@ -94,8 +93,7 @@ headers(msgvec) * Scroll to the next/previous screen */ int -scroll(arg) - char arg[]; +scroll(char arg[]) { int s, size; int cur[1]; @@ -133,7 +131,7 @@ scroll(arg) * Compute screen size. */ int -screensize() +screensize(void) { int s; char *cp; @@ -148,8 +146,7 @@ screensize() * in the passed message list. */ int -from(msgvec) - int *msgvec; +from(int *msgvec) { int *ip; @@ -165,8 +162,7 @@ from(msgvec) * This is a slight improvement to the standard one. */ void -printhead(mesg) - int mesg; +printhead(int mesg) { struct message *mp; char headline[LINESIZE], wcount[LINESIZE], *subjline, dispc, curind; @@ -212,7 +208,7 @@ printhead(mesg) * Print out the value of dot. */ int -pdot() +pdot(void) { printf("%d\n", dot - &message[0] + 1); return (0); @@ -222,7 +218,7 @@ pdot() * Print out all the possible commands. */ int -pcmdlist() +pcmdlist(void) { const struct cmd *cp; int cc; @@ -246,8 +242,7 @@ pcmdlist() * Paginate messages, honor ignored fields. */ int -more(msgvec) - int *msgvec; +more(int *msgvec) { return (type1(msgvec, 1, 1)); @@ -257,8 +252,7 @@ more(msgvec) * Paginate messages, even printing ignored fields. */ int -More(msgvec) - int *msgvec; +More(int *msgvec) { return (type1(msgvec, 0, 1)); @@ -268,8 +262,7 @@ More(msgvec) * Type out messages, honor ignored fields. */ int -type(msgvec) - int *msgvec; +type(int *msgvec) { return (type1(msgvec, 1, 0)); @@ -279,8 +272,7 @@ type(msgvec) * Type out messages, even printing ignored fields. */ int -Type(msgvec) - int *msgvec; +Type(int *msgvec) { return (type1(msgvec, 0, 0)); @@ -291,9 +283,7 @@ Type(msgvec) */ static jmp_buf pipestop; int -type1(msgvec, doign, page) - int *msgvec; - int doign, page; +type1(int *msgvec, int doign, int page) { int nlines, *ip; struct message *mp; @@ -354,8 +344,7 @@ close_pipe: */ /*ARGSUSED*/ void -brokpipe(signo) - int signo; +brokpipe(int signo __unused) { longjmp(pipestop, 1); } @@ -366,8 +355,7 @@ brokpipe(signo) * and defaults to 5. */ int -top(msgvec) - int *msgvec; +top(int *msgvec) { int *ip; struct message *mp; @@ -408,8 +396,7 @@ top(msgvec) * get mboxed. */ int -stouch(msgvec) - int msgvec[]; +stouch(int msgvec[]) { int *ip; @@ -425,8 +412,7 @@ stouch(msgvec) * Make sure all passed messages get mboxed. */ int -mboxit(msgvec) - int msgvec[]; +mboxit(int msgvec[]) { int *ip; @@ -442,7 +428,7 @@ mboxit(msgvec) * List the folders the user currently has. */ int -folders() +folders(void) { char dirname[PATHSIZE]; char *cmd; @@ -462,8 +448,7 @@ folders() * come in since we started reading mail. */ int -inc(v) - void *v; +inc(void *v __unused) { int nmsg, mdot; From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 16:07:54 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 72330106566B; Sun, 19 Dec 2010 16:07: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 4632E8FC15; Sun, 19 Dec 2010 16:07: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 oBJG7sU6096631; Sun, 19 Dec 2010 16:07:54 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJG7ssR096628; Sun, 19 Dec 2010 16:07:54 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201012191607.oBJG7ssR096628@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 19 Dec 2010 16:07:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216563 - head/sys/powerpc/aim X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 16:07:54 -0000 Author: nwhitehorn Date: Sun Dec 19 16:07:53 2010 New Revision: 216563 URL: http://svn.freebsd.org/changeset/base/216563 Log: Garbage-collect unused variable. Modified: head/sys/powerpc/aim/mmu_oea.c head/sys/powerpc/aim/mmu_oea64.c Modified: head/sys/powerpc/aim/mmu_oea.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea.c Sun Dec 19 14:18:07 2010 (r216562) +++ head/sys/powerpc/aim/mmu_oea.c Sun Dec 19 16:07:53 2010 (r216563) @@ -666,7 +666,6 @@ moea_bootstrap(mmu_t mmup, vm_offset_t k phandle_t chosen, mmu; int sz; int i, j; - int ofw_mappings; vm_size_t size, physsz, hwphyssz; vm_offset_t pa, va, off; void *dpcpu; @@ -868,7 +867,7 @@ moea_bootstrap(mmu_t mmup, vm_offset_t k CTR0(KTR_PMAP, "moea_bootstrap: translations"); sz /= sizeof(*translations); qsort(translations, sz, sizeof (*translations), om_cmp); - for (i = 0, ofw_mappings = 0; i < sz; i++) { + for (i = 0; i < sz; i++) { CTR3(KTR_PMAP, "translation: pa=%#x va=%#x len=%#x", translations[i].om_pa, translations[i].om_va, translations[i].om_len); @@ -881,11 +880,9 @@ moea_bootstrap(mmu_t mmup, vm_offset_t k continue; /* Enter the pages */ - for (off = 0; off < translations[i].om_len; off += PAGE_SIZE) { + for (off = 0; off < translations[i].om_len; off += PAGE_SIZE) moea_kenter(mmup, translations[i].om_va + off, translations[i].om_pa + off); - ofw_mappings++; - } } /* Modified: head/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea64.c Sun Dec 19 14:18:07 2010 (r216562) +++ head/sys/powerpc/aim/mmu_oea64.c Sun Dec 19 16:07:53 2010 (r216563) @@ -521,7 +521,7 @@ moea64_add_ofw_mappings(mmu_t mmup, phan register_t msr; vm_offset_t off; vm_paddr_t pa_base; - int i, ofw_mappings; + int i; bzero(translations, sz); if (OF_getprop(mmu, "translations", translations, sz) == -1) @@ -531,7 +531,7 @@ moea64_add_ofw_mappings(mmu_t mmup, phan sz /= sizeof(*translations); qsort(translations, sz, sizeof (*translations), om_cmp); - for (i = 0, ofw_mappings = 0; i < sz; i++) { + for (i = 0; i < sz; i++) { CTR3(KTR_PMAP, "translation: pa=%#x va=%#x len=%#x", (uint32_t)(translations[i].om_pa_lo), translations[i].om_va, translations[i].om_len); @@ -558,8 +558,6 @@ moea64_add_ofw_mappings(mmu_t mmup, phan moea64_kenter(mmup, translations[i].om_va + off, pa_base + off); - - ofw_mappings++; } ENABLE_TRANS(msr); } From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 16:25:24 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35C14106566B; Sun, 19 Dec 2010 16:25:24 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 231098FC14; Sun, 19 Dec 2010 16:25:24 +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 oBJGPOsK099137; Sun, 19 Dec 2010 16:25:24 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJGPO56099126; Sun, 19 Dec 2010 16:25:24 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012191625.oBJGPO56099126@svn.freebsd.org> From: Philippe Charnier Date: Sun, 19 Dec 2010 16:25:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216564 - head/usr.bin/mail X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 16:25:24 -0000 Author: charnier Date: Sun Dec 19 16:25:23 2010 New Revision: 216564 URL: http://svn.freebsd.org/changeset/base/216564 Log: Add __unused. Ansi prototypes. Modified: head/usr.bin/mail/cmd2.c head/usr.bin/mail/cmd3.c head/usr.bin/mail/collect.c head/usr.bin/mail/edit.c head/usr.bin/mail/fio.c head/usr.bin/mail/getname.c head/usr.bin/mail/head.c head/usr.bin/mail/lex.c head/usr.bin/mail/list.c head/usr.bin/mail/main.c head/usr.bin/mail/names.c head/usr.bin/mail/popen.c head/usr.bin/mail/quit.c head/usr.bin/mail/send.c head/usr.bin/mail/strings.c head/usr.bin/mail/temp.c head/usr.bin/mail/tty.c head/usr.bin/mail/util.c head/usr.bin/mail/v7.local.c head/usr.bin/mail/vars.c Modified: head/usr.bin/mail/cmd2.c ============================================================================== --- head/usr.bin/mail/cmd2.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/cmd2.c Sun Dec 19 16:25:23 2010 (r216564) @@ -53,8 +53,7 @@ extern int wait_status; * If given as first command with no arguments, print first message. */ int -next(msgvec) - int *msgvec; +next(int *msgvec) { struct message *mp; int *ip, *ip2, list[2], mdot; @@ -131,8 +130,7 @@ hitit: * so we can discard when the user quits. */ int -save(str) - char str[]; +save(char str[]) { return (save1(str, 1, "save", saveignore)); @@ -142,8 +140,7 @@ save(str) * Copy a message to a file without affected its saved-ness */ int -copycmd(str) - char str[]; +copycmd(char str[]) { return (save1(str, 0, "copy", saveignore)); @@ -154,11 +151,7 @@ copycmd(str) * If mark is true, mark the message "saved." */ int -save1(str, mark, cmd, ignore) - char str[]; - int mark; - const char *cmd; - struct ignoretab *ignore; +save1(char str[], int mark, const char *cmd, struct ignoretab *ignore) { struct message *mp; char *file; @@ -215,8 +208,7 @@ save1(str, mark, cmd, ignore) * file name, minus header and trailing blank line. */ int -swrite(str) - char str[]; +swrite(char str[]) { return (save1(str, 1, "write", ignoreall)); @@ -232,9 +224,7 @@ swrite(str) */ char * -snarf(linebuf, flag) - char linebuf[]; - int *flag; +snarf(char linebuf[], int *flag) { char *cp; @@ -270,8 +260,7 @@ snarf(linebuf, flag) * Delete messages. */ int -delete(msgvec) - int msgvec[]; +delete(int msgvec[]) { delm(msgvec); @@ -282,8 +271,7 @@ delete(msgvec) * Delete messages, then type the new dot. */ int -deltype(msgvec) - int msgvec[]; +deltype(int msgvec[]) { int list[2]; int lastdot; @@ -308,8 +296,7 @@ deltype(msgvec) * Internal interface. */ int -delm(msgvec) - int *msgvec; +delm(int *msgvec) { struct message *mp; int *ip, last; @@ -346,8 +333,7 @@ delm(msgvec) * Undelete the indicated messages. */ int -undelete_messages(msgvec) - int *msgvec; +undelete_messages(int *msgvec) { struct message *mp; int *ip; @@ -365,7 +351,7 @@ undelete_messages(msgvec) * Interactively dump core on "core" */ int -core() +core(void) { int pid; @@ -391,8 +377,7 @@ core() * Clobber as many bytes of stack as the user requests. */ int -clobber(argv) - char **argv; +clobber(char **argv) { int times; @@ -408,8 +393,7 @@ clobber(argv) * Clobber the stack. */ void -clob1(n) - int n; +clob1(int n) { char buf[512]; char *cp; @@ -426,8 +410,7 @@ clob1(n) * If no arguments, print the current list of retained fields. */ int -retfield(list) - char *list[]; +retfield(char *list[]) { return (ignore1(list, ignore + 1, "retained")); @@ -438,34 +421,28 @@ retfield(list) * If no arguments, print the current list of ignored fields. */ int -igfield(list) - char *list[]; +igfield(char *list[]) { return (ignore1(list, ignore, "ignored")); } int -saveretfield(list) - char *list[]; +saveretfield(char *list[]) { return (ignore1(list, saveignore + 1, "retained")); } int -saveigfield(list) - char *list[]; +saveigfield(char *list[]) { return (ignore1(list, saveignore, "ignored")); } int -ignore1(list, tab, which) - char *list[]; - struct ignoretab *tab; - const char *which; +ignore1(char *list[], struct ignoretab *tab, const char *which) { char field[LINESIZE]; int h; @@ -494,9 +471,7 @@ ignore1(list, tab, which) * Print out all currently retained fields. */ int -igshow(tab, which) - struct ignoretab *tab; - const char *which; +igshow(struct ignoretab *tab, const char *which) { int h; struct ignore *igp; @@ -522,8 +497,7 @@ igshow(tab, which) * Compare two names for sorting ignored field list. */ int -igcomp(l, r) - const void *l, *r; +igcomp(const void *l, const void *r) { return (strcmp(*(const char **)l, *(const char **)r)); Modified: head/usr.bin/mail/cmd3.c ============================================================================== --- head/usr.bin/mail/cmd3.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/cmd3.c Sun Dec 19 16:25:23 2010 (r216564) @@ -49,8 +49,7 @@ __FBSDID("$FreeBSD$"); * and forking a sh -c */ int -shell(str) - char *str; +shell(char *str) { sig_t sigint = signal(SIGINT, SIG_IGN); char *sh; @@ -73,8 +72,7 @@ shell(str) */ /*ARGSUSED*/ int -dosh(str) - char *str; +dosh(char *str __unused) { sig_t sigint = signal(SIGINT, SIG_IGN); char *sh; @@ -92,9 +90,7 @@ dosh(str) * last issued command where possible. */ int -bangexp(str, strsize) - char *str; - size_t strsize; +bangexp(char *str, size_t strsize) { char bangbuf[BUFSIZ]; static char lastbang[BUFSIZ]; @@ -148,7 +144,7 @@ overf: */ int -help() +help(void) { int c; FILE *f; @@ -167,8 +163,7 @@ help() * Change user's working directory. */ int -schdir(arglist) - char **arglist; +schdir(char **arglist) { char *cp; @@ -187,8 +182,7 @@ schdir(arglist) } int -respond(msgvec) - int *msgvec; +respond(int *msgvec) { if (value("Replyall") == NULL && value("flipr") == NULL) return (dorespond(msgvec)); @@ -201,8 +195,7 @@ respond(msgvec) * message header and send them off to mail1() */ int -dorespond(msgvec) - int *msgvec; +dorespond(int *msgvec) { struct message *mp; char *cp, *rcv, *replyto; @@ -267,8 +260,7 @@ dorespond(msgvec) * it does not already. */ char * -reedit(subj) - char *subj; +reedit(char *subj) { char *newsubj; @@ -288,8 +280,7 @@ reedit(subj) * back to the system mailbox. */ int -preserve(msgvec) - int *msgvec; +preserve(int *msgvec) { int *ip, mesg; struct message *mp; @@ -312,8 +303,7 @@ preserve(msgvec) * Mark all given messages as unread. */ int -unread(msgvec) - int msgvec[]; +unread(int msgvec[]) { int *ip; @@ -329,8 +319,7 @@ unread(msgvec) * Print the size of each message. */ int -messize(msgvec) - int *msgvec; +messize(int *msgvec) { struct message *mp; int *ip, mesg; @@ -348,8 +337,7 @@ messize(msgvec) * by returning an error. */ int -rexit(e) - int e; +rexit(int e __unused) { if (sourcing) return (1); @@ -362,8 +350,7 @@ rexit(e) * of csh. */ int -set(arglist) - char **arglist; +set(char **arglist) { struct var *vp; char *cp, *cp2; @@ -409,8 +396,7 @@ set(arglist) * Unset a bunch of variable values. */ int -unset(arglist) - char **arglist; +unset(char **arglist) { struct var *vp, *vp2; int errs, h; @@ -449,8 +435,7 @@ unset(arglist) * Put add users to a group. */ int -group(argv) - char **argv; +group(char **argv) { struct grouphead *gh; struct group *gp; @@ -505,8 +490,7 @@ group(argv) * order. */ void -sort(list) - char **list; +sort(char **list) { char **ap; @@ -522,8 +506,7 @@ sort(list) * qsort. */ int -diction(a, b) - const void *a, *b; +diction(const void *a, const void *b) { return (strcmp(*(const char **)a, *(const char **)b)); } @@ -534,8 +517,7 @@ diction(a, b) /*ARGSUSED*/ int -null(e) - int e; +null(int e __unused) { return (0); } @@ -545,8 +527,7 @@ null(e) * the current file. */ int -file(argv) - char **argv; +file(char **argv) { if (argv[0] == NULL) { @@ -563,8 +544,7 @@ file(argv) * Expand file names like echo */ int -echo(argv) - char **argv; +echo(char **argv) { char **ap, *cp; @@ -581,8 +561,7 @@ echo(argv) } int -Respond(msgvec) - int *msgvec; +Respond(int *msgvec) { if (value("Replyall") == NULL && value("flipr") == NULL) return (doRespond(msgvec)); @@ -596,8 +575,7 @@ Respond(msgvec) * reply. */ int -doRespond(msgvec) - int msgvec[]; +doRespond(int msgvec[]) { struct header head; struct message *mp; @@ -634,8 +612,7 @@ doRespond(msgvec) * .mailrc and do some things if sending, others if receiving. */ int -ifcmd(argv) - char **argv; +ifcmd(char **argv) { char *cp; @@ -666,7 +643,7 @@ ifcmd(argv) * flip over the conditional flag. */ int -elsecmd() +elsecmd(void) { switch (cond) { @@ -694,7 +671,7 @@ elsecmd() * End of if statement. Just set cond back to anything. */ int -endifcmd() +endifcmd(void) { if (cond == CANY) { @@ -709,8 +686,7 @@ endifcmd() * Set the list of alternate names. */ int -alternates(namelist) - char **namelist; +alternates(char **namelist) { int c; char **ap, **ap2, *cp; Modified: head/usr.bin/mail/collect.c ============================================================================== --- head/usr.bin/mail/collect.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/collect.c Sun Dec 19 16:25:23 2010 (r216564) @@ -70,9 +70,7 @@ static int colljmp_p; /* whether to lon static jmp_buf collabort; /* To end collection with error */ FILE * -collect(hp, printheaders) - struct header *hp; - int printheaders; +collect(struct header *hp, int printheaders) { FILE *fbuf; int lc, cc, escape, eofcount, fd, c, t; @@ -495,10 +493,7 @@ out: * Write a file, ex-like if f set. */ int -exwrite(name, fp, f) - char name[]; - FILE *fp; - int f; +exwrite(char name[], FILE *fp, int f) { FILE *of; int c, lc; @@ -543,9 +538,7 @@ exwrite(name, fp, f) * On return, make the edit file the new temp file. */ void -mesedit(fp, c) - FILE *fp; - int c; +mesedit(FILE *fp, int c) { sig_t sigint = signal(SIGINT, SIG_IGN); FILE *nf = run_editor(fp, (off_t)-1, c, 0); @@ -565,9 +558,7 @@ mesedit(fp, c) * Sh -c must return 0 to accept the new message. */ void -mespipe(fp, cmd) - FILE *fp; - char cmd[]; +mespipe(FILE *fp, char cmd[]) { FILE *nf; int fd; @@ -617,11 +608,7 @@ out: * should shift over and 'f' if not. */ int -forward(ms, fp, fn, f) - char ms[]; - FILE *fp; - char *fn; - int f; +forward(char ms[], FILE *fp, char *fn, int f) { int *msgvec; struct ignoretab *ig; @@ -665,8 +652,7 @@ forward(ms, fp, fn, f) */ /*ARGSUSED*/ void -collstop(s) - int s; +collstop(int s) { sig_t old_action = signal(s, SIG_DFL); sigset_t nset; @@ -690,8 +676,7 @@ collstop(s) */ /*ARGSUSED*/ void -collint(s) - int s; +collint(int s __unused) { /* * the control flow is subtle, because we can be called from ~q. @@ -714,8 +699,7 @@ collint(s) /*ARGSUSED*/ void -collhup(s) - int s; +collhup(int s __unused) { rewind(collf); savedeadletter(collf); @@ -727,8 +711,7 @@ collhup(s) } void -savedeadletter(fp) - FILE *fp; +savedeadletter(FILE *fp) { FILE *dbuf; int c; Modified: head/usr.bin/mail/edit.c ============================================================================== --- head/usr.bin/mail/edit.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/edit.c Sun Dec 19 16:25:23 2010 (r216564) @@ -49,8 +49,7 @@ __FBSDID("$FreeBSD$"); * Edit a message list. */ int -editor(msgvec) - int *msgvec; +editor(int *msgvec) { return (edit1(msgvec, 'e')); @@ -60,8 +59,7 @@ editor(msgvec) * Invoke the visual editor on a message list. */ int -visual(msgvec) - int *msgvec; +visual(int *msgvec) { return (edit1(msgvec, 'v')); @@ -73,9 +71,7 @@ visual(msgvec) * We get the editor from the stuff above. */ int -edit1(msgvec, type) - int *msgvec; - int type; +edit1(int *msgvec, int type) { int c, i; FILE *fp; @@ -137,10 +133,7 @@ edit1(msgvec, type) * "Type" is 'e' for _PATH_EX, 'v' for _PATH_VI. */ FILE * -run_editor(fp, size, type, readonly) - FILE *fp; - off_t size; - int type, readonly; +run_editor(FILE *fp, off_t size, int type, int readonly) { FILE *nf = NULL; int t; Modified: head/usr.bin/mail/fio.c ============================================================================== --- head/usr.bin/mail/fio.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/fio.c Sun Dec 19 16:25:23 2010 (r216564) @@ -56,9 +56,7 @@ extern int wait_status; * Set up the input pointers while copying the mail file into /tmp. */ void -setptr(ibuf, offset) - FILE *ibuf; - off_t offset; +setptr(FILE *ibuf, off_t offset) { int c, count; char *cp, *cp2; @@ -163,10 +161,7 @@ setptr(ibuf, offset) * characters written, including the newline if requested. */ int -putline(obuf, linebuf, outlf) - FILE *obuf; - char *linebuf; - int outlf; +putline(FILE *obuf, char *linebuf, int outlf) { int c; @@ -187,10 +182,7 @@ putline(obuf, linebuf, outlf) * include the newline (or carriage return) at the end. */ int -readline(ibuf, linebuf, linesize) - FILE *ibuf; - char *linebuf; - int linesize; +readline(FILE *ibuf, char *linebuf, int linesize) { int n; @@ -210,8 +202,7 @@ readline(ibuf, linebuf, linesize) * passed message pointer. */ FILE * -setinput(mp) - struct message *mp; +setinput(struct message *mp) { (void)fflush(otf); @@ -226,9 +217,7 @@ setinput(mp) * a dynamically allocated message structure. */ void -makemessage(f, omsgCount) - FILE *f; - int omsgCount; +makemessage(FILE *f, int omsgCount) { size_t size; struct message *nmessage; @@ -258,9 +247,7 @@ makemessage(f, omsgCount) * If the write fails, return 1, else 0 */ int -append(mp, f) - struct message *mp; - FILE *f; +append(struct message *mp, FILE *f) { return (fwrite((char *)mp, sizeof(*mp), 1, f) != 1); } @@ -269,8 +256,7 @@ append(mp, f) * Delete a file, but only if the file is a plain file. */ int -rm(name) - char *name; +rm(char *name) { struct stat sb; @@ -289,7 +275,7 @@ static sigset_t nset, oset; * Hold signals SIGHUP, SIGINT, and SIGQUIT. */ void -holdsigs() +holdsigs(void) { if (sigdepth++ == 0) { @@ -305,7 +291,7 @@ holdsigs() * Release signals SIGHUP, SIGINT, and SIGQUIT. */ void -relsesigs() +relsesigs(void) { if (--sigdepth == 0) @@ -317,8 +303,7 @@ relsesigs() * the passed buffer. */ off_t -fsize(iob) - FILE *iob; +fsize(FILE *iob) { struct stat sbuf; @@ -339,8 +324,7 @@ fsize(iob) * Return the file name as a dynamic string. */ char * -expand(name) - char *name; +expand(char *name) { char xname[PATHSIZE]; char cmdbuf[PATHSIZE]; /* also used for file names */ @@ -432,9 +416,7 @@ expand(name) * Determine the current folder directory name. */ int -getfold(name, namelen) - char *name; - int namelen; +getfold(char *name, int namelen) { char *folder; int copylen; @@ -453,7 +435,7 @@ getfold(name, namelen) * Return the name of the dead.letter file. */ char * -getdeadletter() +getdeadletter(void) { char *cp; Modified: head/usr.bin/mail/getname.c ============================================================================== --- head/usr.bin/mail/getname.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/getname.c Sun Dec 19 16:25:23 2010 (r216564) @@ -45,8 +45,7 @@ __FBSDID("$FreeBSD$"); * Search the passwd file for a uid. Return name on success, NULL on failure. */ char * -getname(uid) - int uid; +getname(int uid) { struct passwd *pw; @@ -60,8 +59,7 @@ getname(uid) * on error. */ int -getuserid(name) - char name[]; +getuserid(char name[]) { struct passwd *pw; Modified: head/usr.bin/mail/head.c ============================================================================== --- head/usr.bin/mail/head.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/head.c Sun Dec 19 16:25:23 2010 (r216564) @@ -50,8 +50,7 @@ __FBSDID("$FreeBSD$"); * accomodate all funny formats. */ int -ishead(linebuf) - char linebuf[]; +ishead(char linebuf[]) { struct headline hl; char parbuf[BUFSIZ]; @@ -73,10 +72,8 @@ ishead(linebuf) return (1); } -/*ARGSUSED*/ void -fail(linebuf, reason) - const char *linebuf, *reason; +fail(const char *linebuf __unused, const char *reason __unused) { /* @@ -93,9 +90,7 @@ fail(linebuf, reason) * structure. Actually, it scans. */ void -parse(line, hl, pbuf) - char line[], pbuf[]; - struct headline *hl; +parse(char line[], struct headline *hl, char pbuf[]) { char *cp, *sp; char word[LINESIZE]; @@ -134,9 +129,7 @@ parse(line, hl, pbuf) * the left string into it. */ char * -copyin(src, space) - char *src; - char **space; +copyin(char *src, char **space) { char *cp, *top; @@ -183,8 +176,7 @@ static char *date_formats[] = { }; int -isdate(date) - char date[]; +isdate(char date[]) { int i; @@ -200,8 +192,7 @@ isdate(date) * Return 1 if they match, 0 if they don't */ int -cmatch(cp, tp) - char *cp, *tp; +cmatch(char *cp, char *tp) { while (*cp != '\0' && *tp != '\0') @@ -256,8 +247,7 @@ cmatch(cp, tp) * or NULL if none follow. */ char * -nextword(wp, wbuf) - char *wp, *wbuf; +nextword(char *wp, char *wbuf) { int c; Modified: head/usr.bin/mail/lex.c ============================================================================== --- head/usr.bin/mail/lex.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/lex.c Sun Dec 19 16:25:23 2010 (r216564) @@ -62,8 +62,7 @@ extern const char *version; * mail. */ int -setfile(name) - char *name; +setfile(char *name) { FILE *ibuf; int checkmode, i, fd; @@ -165,7 +164,7 @@ nomail: * started reading mail. */ int -incfile() +incfile(void) { off_t newsize; int omsgCount = msgCount; @@ -198,7 +197,7 @@ static int reset_on_stop; /* do a reset * print no prompt. */ void -commands() +commands(void) { int n, eofloop = 0; char linebuf[LINESIZE]; @@ -275,9 +274,7 @@ commands() * Contxt is non-zero if called while composing mail. */ int -execute(linebuf, contxt) - char linebuf[]; - int contxt; +execute(char linebuf[], int contxt) { char word[LINESIZE]; char *arglist[MAXARGC]; @@ -472,8 +469,7 @@ out: * lists to message list functions. */ void -setmsize(sz) - int sz; +setmsize(int sz) { if (msgvec != NULL) @@ -487,8 +483,7 @@ setmsize(sz) */ __const struct cmd * -lex(word) - char word[]; +lex(char word[]) { const struct cmd *cp; @@ -514,8 +509,7 @@ lex(word) * Return true if yep. */ int -isprefix(as1, as2) - const char *as1, *as2; +isprefix(const char *as1, const char *as2) { const char *s1, *s2; @@ -537,10 +531,8 @@ isprefix(as1, as2) static int inithdr; /* am printing startup headers */ -/*ARGSUSED*/ void -intr(s) - int s; +intr(int s __unused) { noreset = 0; @@ -564,8 +556,7 @@ intr(s) * When we wake up after ^Z, reprint the prompt. */ void -stop(s) - int s; +stop(int s) { sig_t old_action = signal(s, SIG_DFL); sigset_t nset; @@ -585,10 +576,8 @@ stop(s) /* * Branch here on hangup signal and simulate "exit". */ -/*ARGSUSED*/ void -hangup(s) - int s; +hangup(int s __unused) { /* nothing to do? */ @@ -600,7 +589,7 @@ hangup(s) * give the message count, and print a header listing. */ void -announce() +announce(void) { int vec[2], mdot; @@ -620,8 +609,7 @@ announce() * Return a likely place to set dot. */ int -newfileinfo(omsgCount) - int omsgCount; +newfileinfo(int omsgCount) { struct message *mp; int u, n, mdot, d, s; @@ -681,10 +669,8 @@ newfileinfo(omsgCount) * Print the current version number. */ -/*ARGSUSED*/ int -pversion(e) - int e; +pversion(int e __unused) { printf("Version %s\n", version); @@ -695,8 +681,7 @@ pversion(e) * Load a file of user definitions. */ void -load(name) - char *name; +load(char *name) { FILE *in, *oldin; Modified: head/usr.bin/mail/list.c ============================================================================== --- head/usr.bin/mail/list.c Sun Dec 19 16:07:53 2010 (r216563) +++ head/usr.bin/mail/list.c Sun Dec 19 16:25:23 2010 (r216564) @@ -52,9 +52,7 @@ __FBSDID("$FreeBSD$"); * Returns the count of messages picked up or -1 on error. */ int -getmsglist(buf, vector, flags) - char *buf; - int *vector, flags; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 18:06:21 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C6131065672; Sun, 19 Dec 2010 18:06:21 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1B9D88FC16; Sun, 19 Dec 2010 18:06:21 +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 oBJI6LWH008150; Sun, 19 Dec 2010 18:06:21 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJI6KVh008148; Sun, 19 Dec 2010 18:06:20 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201012191806.oBJI6KVh008148@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Sun, 19 Dec 2010 18:06:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216565 - head/sys/nfsserver X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 18:06:21 -0000 Author: pjd Date: Sun Dec 19 18:06:20 2010 New Revision: 216565 URL: http://svn.freebsd.org/changeset/base/216565 Log: Reduce lock scope a little. Modified: head/sys/nfsserver/nfs_serv.c Modified: head/sys/nfsserver/nfs_serv.c ============================================================================== --- head/sys/nfsserver/nfs_serv.c Sun Dec 19 16:25:23 2010 (r216564) +++ head/sys/nfsserver/nfs_serv.c Sun Dec 19 18:06:20 2010 (r216565) @@ -2826,11 +2826,11 @@ again: io.uio_rw = UIO_READ; io.uio_td = NULL; eofflag = 0; - vn_lock(vp, LK_SHARED | LK_RETRY); if (cookies) { free((caddr_t)cookies, M_TEMP); cookies = NULL; } + vn_lock(vp, LK_SHARED | LK_RETRY); error = VOP_READDIR(vp, &io, cred, &eofflag, &ncookies, &cookies); off = (off_t)io.uio_offset; if (!cookies && !error) @@ -3114,12 +3114,12 @@ again: io.uio_rw = UIO_READ; io.uio_td = NULL; eofflag = 0; - vn_lock(vp, LK_SHARED | LK_RETRY); vp_locked = 1; if (cookies) { free((caddr_t)cookies, M_TEMP); cookies = NULL; } + vn_lock(vp, LK_SHARED | LK_RETRY); error = VOP_READDIR(vp, &io, cred, &eofflag, &ncookies, &cookies); off = (u_quad_t)io.uio_offset; getret = VOP_GETATTR(vp, &at, cred); From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 18:07:10 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E044F1065670; Sun, 19 Dec 2010 18:07:10 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CFBBB8FC0A; Sun, 19 Dec 2010 18:07: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 oBJI7AAt008235; Sun, 19 Dec 2010 18:07:10 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJI7Amm008233; Sun, 19 Dec 2010 18:07:10 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201012191807.oBJI7Amm008233@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Sun, 19 Dec 2010 18:07:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216566 - head/share/man/man9 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 18:07:11 -0000 Author: pjd Date: Sun Dec 19 18:07:10 2010 New Revision: 216566 URL: http://svn.freebsd.org/changeset/base/216566 Log: Correct cookie type to match reality. Modified: head/share/man/man9/VOP_READDIR.9 Modified: head/share/man/man9/VOP_READDIR.9 ============================================================================== --- head/share/man/man9/VOP_READDIR.9 Sun Dec 19 18:06:20 2010 (r216565) +++ head/share/man/man9/VOP_READDIR.9 Sun Dec 19 18:07:10 2010 (r216566) @@ -92,8 +92,7 @@ Memory for the cookies should be allocat .Bd -literal ...; *ncookies = number of entries read; - *cookies = (u_int*)# - malloc(*ncookies * sizeof(u_int), M_TEMP, M_WAITOK); + *cookies = malloc(*ncookies * sizeof(u_long), M_TEMP, M_WAITOK); .Ed .Sh ERRORS .Bl -tag -width Er From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 21:18:33 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B9E5D106564A; Sun, 19 Dec 2010 21:18:33 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A90E68FC14; Sun, 19 Dec 2010 21:18: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 oBJLIX0l029002; Sun, 19 Dec 2010 21:18:33 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJLIXmW029000; Sun, 19 Dec 2010 21:18:33 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201012192118.oBJLIXmW029000@svn.freebsd.org> From: Konstantin Belousov Date: Sun, 19 Dec 2010 21:18:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216572 - head/sys/compat/freebsd32 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 21:18:33 -0000 Author: kib Date: Sun Dec 19 21:18:33 2010 New Revision: 216572 URL: http://svn.freebsd.org/changeset/base/216572 Log: Restore the ABI of struct kinfo_proc32 after r213536. MFC after: 3 days Modified: head/sys/compat/freebsd32/freebsd32.h Modified: head/sys/compat/freebsd32/freebsd32.h ============================================================================== --- head/sys/compat/freebsd32/freebsd32.h Sun Dec 19 20:12:44 2010 (r216571) +++ head/sys/compat/freebsd32/freebsd32.h Sun Dec 19 21:18:33 2010 (r216572) @@ -328,6 +328,7 @@ struct kinfo_proc32 { uint32_t ki_pcb; uint32_t ki_kstack; uint32_t ki_udata; + uint32_t ki_tdaddr; uint32_t ki_spareptrs[KI_NSPARE_PTR]; /* spare room for growth */ int ki_sparelongs[KI_NSPARE_LONG]; int ki_sflag; From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 23:09:42 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC729106566C; Sun, 19 Dec 2010 23:09:42 +0000 (UTC) (envelope-from simon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B056B8FC08; Sun, 19 Dec 2010 23:09: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 oBJN9g8v041695; Sun, 19 Dec 2010 23:09:42 GMT (envelope-from simon@svn.freebsd.org) Received: (from simon@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJN9gTv041693; Sun, 19 Dec 2010 23:09:42 GMT (envelope-from simon@svn.freebsd.org) Message-Id: <201012192309.oBJN9gTv041693@svn.freebsd.org> From: "Simon L. Nielsen" Date: Sun, 19 Dec 2010 23:09:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216575 - head/usr.sbin/portsnap/portsnap X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 23:09:43 -0000 Author: simon Date: Sun Dec 19 23:09:42 2010 New Revision: 216575 URL: http://svn.freebsd.org/changeset/base/216575 Log: Add --numeric-owner to tar extract operations in portsnap. This is done to speed up extraction significantly (both for portsnap extract and update) in the case of slow NSS modules (like nss_ldap) as it avoids having to look up uid and gid for root / wheel. The reason this is a bigger problem for portsnap than for many other system operations, is that portsnap executes tar(1) once for each port so the internal uid/gid caching in tar(1) only helps a bit, resulting in many user lookup calls. Discussed with: cperciva Modified: head/usr.sbin/portsnap/portsnap/portsnap.sh Modified: head/usr.sbin/portsnap/portsnap/portsnap.sh ============================================================================== --- head/usr.sbin/portsnap/portsnap/portsnap.sh Sun Dec 19 21:51:11 2010 (r216574) +++ head/usr.sbin/portsnap/portsnap/portsnap.sh Sun Dec 19 23:09:42 2010 (r216575) @@ -632,7 +632,7 @@ fetch_snapshot() { fetch -r http://${SERVERNAME}/s/${SNAPSHOTHASH}.tgz || return 1 echo -n "Extracting snapshot... " - tar -xzf ${SNAPSHOTHASH}.tgz snap/ || return 1 + tar -xz --numeric-owner -f ${SNAPSHOTHASH}.tgz snap/ || return 1 rm ${SNAPSHOTHASH}.tgz echo "done." @@ -896,12 +896,12 @@ extract_run() { */) rm -rf ${PORTSDIR}/${FILE%/} mkdir -p ${PORTSDIR}/${FILE} - tar -xzf ${WORKDIR}/files/${HASH}.gz \ + tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \ -C ${PORTSDIR}/${FILE} ;; *) rm -f ${PORTSDIR}/${FILE} - tar -xzf ${WORKDIR}/files/${HASH}.gz \ + tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \ -C ${PORTSDIR} ${FILE} ;; esac @@ -966,11 +966,11 @@ update_run() { case ${FILE} in */) mkdir -p ${PORTSDIR}/${FILE} - tar -xzf ${WORKDIR}/files/${HASH}.gz \ + tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \ -C ${PORTSDIR}/${FILE} ;; *) - tar -xzf ${WORKDIR}/files/${HASH}.gz \ + tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \ -C ${PORTSDIR} ${FILE} ;; esac From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 23:50:36 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E637106566C; Sun, 19 Dec 2010 23:50:36 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8B1B88FC12; Sun, 19 Dec 2010 23:50:36 +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 oBJNoa9l046670; Sun, 19 Dec 2010 23:50:36 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJNoaxu046668; Sun, 19 Dec 2010 23:50:36 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201012192350.oBJNoaxu046668@svn.freebsd.org> From: Pyun YongHyeon Date: Sun, 19 Dec 2010 23:50:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216576 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 23:50:36 -0000 Author: yongari Date: Sun Dec 19 23:50:36 2010 New Revision: 216576 URL: http://svn.freebsd.org/changeset/base/216576 Log: ae(4), igb(4), ixgb(4) and ixgbe(4) supports altq(4). Modified: head/share/man/man4/altq.4 Modified: head/share/man/man4/altq.4 ============================================================================== --- head/share/man/man4/altq.4 Sun Dec 19 23:09:42 2010 (r216575) +++ head/share/man/man4/altq.4 Sun Dec 19 23:50:36 2010 (r216576) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 14, 2010 +.Dd December 19, 2010 .Dt ALTQ 4 .Os .Sh NAME @@ -115,6 +115,7 @@ The driver modifications described in are required to use a certain network card with .Nm . They have been applied to the following hardware drivers: +.Xr ae 4 , .Xr age 4 , .Xr alc 4 , .Xr ale 4 , @@ -135,8 +136,11 @@ They have been applied to the following .Xr fxp 4 , .Xr gem 4 , .Xr hme 4 , +.Xr igb 4 , .Xr ipw 4 , .Xr iwi 4 , +.Xr ixgb 4 , +.Xr ixgbe 4 , .Xr jme 4 , .Xr le 4 , .Xr msk 4 , From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 23:53:24 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B32C106564A; Sun, 19 Dec 2010 23:53:24 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 298F38FC0C; Sun, 19 Dec 2010 23:53:24 +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 oBJNrOJm047050; Sun, 19 Dec 2010 23:53:24 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJNrOox047048; Sun, 19 Dec 2010 23:53:24 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201012192353.oBJNrOox047048@svn.freebsd.org> From: Pyun YongHyeon Date: Sun, 19 Dec 2010 23:53:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216577 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 23:53:24 -0000 Author: yongari Date: Sun Dec 19 23:53:23 2010 New Revision: 216577 URL: http://svn.freebsd.org/changeset/base/216577 Log: Add .Xr to altq(4). Modified: head/share/man/man4/ixgb.4 Modified: head/share/man/man4/ixgb.4 ============================================================================== --- head/share/man/man4/ixgb.4 Sun Dec 19 23:50:36 2010 (r216576) +++ head/share/man/man4/ixgb.4 Sun Dec 19 23:53:23 2010 (r216577) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 18, 2006 +.Dd December 19, 2010 .Dt IXGB 4 .Os .Sh NAME @@ -104,6 +104,7 @@ with a supported adapter, email the spec issue to .Aq freebsdnic@mailbox.intel.com . .Sh SEE ALSO +.Xr altq 4 , .Xr arp 4 , .Xr em 4 , .Xr netintro 4 , From owner-svn-src-head@FreeBSD.ORG Sun Dec 19 23:54:32 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 241AA106564A; Sun, 19 Dec 2010 23:54:32 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 12A908FC08; Sun, 19 Dec 2010 23:54:32 +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 oBJNsVIP047238; Sun, 19 Dec 2010 23:54:31 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBJNsVl1047235; Sun, 19 Dec 2010 23:54:31 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201012192354.oBJNsVl1047235@svn.freebsd.org> From: Pyun YongHyeon Date: Sun, 19 Dec 2010 23:54:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216578 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 23:54:32 -0000 Author: yongari Date: Sun Dec 19 23:54:31 2010 New Revision: 216578 URL: http://svn.freebsd.org/changeset/base/216578 Log: Add .Xr to altq(4). Modified: head/share/man/man4/ixgbe.4 Modified: head/share/man/man4/ixgbe.4 ============================================================================== --- head/share/man/man4/ixgbe.4 Sun Dec 19 23:53:23 2010 (r216577) +++ head/share/man/man4/ixgbe.4 Sun Dec 19 23:54:31 2010 (r216578) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 11, 2008 +.Dd December 19, 2010 .Dt IXGBE 4 .Os .Sh NAME @@ -107,6 +107,7 @@ with a supported adapter, email the spec issue to .Aq freebsdnic@mailbox.intel.com . .Sh SEE ALSO +.Xr altq 4 , .Xr arp 4 , .Xr netintro 4 , .Xr ng_ether 4 , From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 00:10:53 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA92E1065675; Mon, 20 Dec 2010 00:10:53 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D8C918FC16; Mon, 20 Dec 2010 00:10:53 +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 oBK0ArI6049165; Mon, 20 Dec 2010 00:10:53 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK0Arde049163; Mon, 20 Dec 2010 00:10:53 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201012200010.oBK0Arde049163@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 20 Dec 2010 00:10:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216579 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 00:10:54 -0000 Author: yongari Date: Mon Dec 20 00:10:53 2010 New Revision: 216579 URL: http://svn.freebsd.org/changeset/base/216579 Log: igb(4), ixgbe(4), mxge(4) and nxge(4) support VLAN hardware tag insertion/stripping. et(4) and fwe(4) support VLAN oversized frames. Modified: head/share/man/man4/vlan.4 Modified: head/share/man/man4/vlan.4 ============================================================================== --- head/share/man/man4/vlan.4 Sun Dec 19 23:54:31 2010 (r216578) +++ head/share/man/man4/vlan.4 Mon Dec 20 00:10:53 2010 (r216579) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 14, 2010 +.Dd December 19, 2010 .Dt VLAN 4 .Os .Sh NAME @@ -129,9 +129,13 @@ in the hardware is limited to the follow .Xr bge 4 , .Xr cxgb 4 , .Xr em 4 , +.Xr igb 4 , .Xr ixgb 4 , +.Xr ixgbe 4 , .Xr jme 4 , .Xr msk 4 , +.Xr mxge 4 , +.Xr nxge 4 , .Xr nge 4 , .Xr re 4 , .Xr sge 4 , @@ -164,8 +168,10 @@ natively: .Xr bfe 4 , .Xr cas 4 , .Xr dc 4 , +.Xr et 4 , .Xr fwe 4 , .Xr fxp 4 , +.Xr fwe 4 , .Xr gem 4 , .Xr hme 4 , .Xr le 4 , From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 00:23:47 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA82E1065670; Mon, 20 Dec 2010 00:23:47 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C8A238FC08; Mon, 20 Dec 2010 00:23:47 +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 oBK0Nl6h050789; Mon, 20 Dec 2010 00:23:47 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK0NlDh050787; Mon, 20 Dec 2010 00:23:47 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201012200023.oBK0NlDh050787@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 20 Dec 2010 00:23:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216580 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 00:23:47 -0000 Author: yongari Date: Mon Dec 20 00:23:47 2010 New Revision: 216580 URL: http://svn.freebsd.org/changeset/base/216580 Log: Add ae(4) to the list of drivers use the miibus interface. Modified: head/share/man/man4/miibus.4 Modified: head/share/man/man4/miibus.4 ============================================================================== --- head/share/man/man4/miibus.4 Mon Dec 20 00:10:53 2010 (r216579) +++ head/share/man/man4/miibus.4 Mon Dec 20 00:23:47 2010 (r216580) @@ -8,7 +8,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 14, 2010 +.Dd December 19, 2010 .Dt MIIBUS 4 .Os .Sh NAME @@ -45,6 +45,8 @@ The following network device drivers use interface: .Pp .Bl -tag -compact -width ".Xr fxp 4" +.It Xr ae 4 +Attansic/Atheros L2 Fast Ethernet .It Xr age 4 Attansic/Atheros L1 Gigabit Ethernet .It Xr alc 4 @@ -132,6 +134,7 @@ and .Nx , but as a result are not well behaved newbus device drivers. .Sh SEE ALSO +.Xr ae 4 , .Xr age 4 , .Xr alc 4 , .Xr ale 4 , From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 00:27:40 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5B33106566C; Mon, 20 Dec 2010 00:27:40 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 89EE28FC14; Mon, 20 Dec 2010 00:27:40 +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 oBK0Re8V051288; Mon, 20 Dec 2010 00:27:40 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK0ReJh051286; Mon, 20 Dec 2010 00:27:40 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201012200027.oBK0ReJh051286@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 20 Dec 2010 00:27:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216581 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 00:27:40 -0000 Author: yongari Date: Mon Dec 20 00:27:40 2010 New Revision: 216581 URL: http://svn.freebsd.org/changeset/base/216581 Log: Oops, fwe(4) listed twice. Modified: head/share/man/man4/vlan.4 Modified: head/share/man/man4/vlan.4 ============================================================================== --- head/share/man/man4/vlan.4 Mon Dec 20 00:23:47 2010 (r216580) +++ head/share/man/man4/vlan.4 Mon Dec 20 00:27:40 2010 (r216581) @@ -171,7 +171,6 @@ natively: .Xr et 4 , .Xr fwe 4 , .Xr fxp 4 , -.Xr fwe 4 , .Xr gem 4 , .Xr hme 4 , .Xr le 4 , From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 07:39:41 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 71C3D106566C; Mon, 20 Dec 2010 07:39:41 +0000 (UTC) (envelope-from swell.k@gmail.com) Received: from mail-yx0-f196.google.com (mail-yx0-f196.google.com [209.85.213.196]) by mx1.freebsd.org (Postfix) with ESMTP id 00A878FC14; Mon, 20 Dec 2010 07:39:40 +0000 (UTC) Received: by yxf34 with SMTP id 34so962062yxf.7 for ; Sun, 19 Dec 2010 23:39:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:references :date:in-reply-to:message-id:user-agent:mime-version:content-type; bh=Wrtra7mhK/PzuTZLZPmq3/QmN2R49FaR1cA15BWpBGA=; b=ncCrBrQZcixwNmtyh6KEgk2vGwnNbRiXMshZmdgx56jTr0i/pGLDkW2BRONf9Evg86 8sy14DSc1owfz5JE8mI61bYom2ojPfvKGKZishQEIrjb7B6eWkvlO6aENqNnr04zqhvN ZDlYwL1r3RE95ZbFYe0P7bGVlM1UpRcZlVkaw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=qmVyWUsQTTfE4lLatZbI1sf2dVR4XDBzIQUOzLTuGt36PWfIgJtF4UsACRTWL0Zccn bxunwgub6qNn9uQ7XgExZVbmOETTSZVkxtND0lv7BhRr81jltlYvORNeCFlId0J/QvhJ YYKoVnOHLt/6FBqgwTK4GAsAI8rIJAuXJ1vTM= Received: by 10.90.82.16 with SMTP id f16mr5097482agb.67.1292830780132; Sun, 19 Dec 2010 23:39:40 -0800 (PST) Received: from localhost ([199.48.147.45]) by mx.google.com with ESMTPS id e24sm8014917ana.22.2010.12.19.23.39.38 (version=SSLv3 cipher=RC4-MD5); Sun, 19 Dec 2010 23:39:39 -0800 (PST) From: Anonymous To: "David E. O'Brien" References: <201009162231.o8GMV3Ov009118__30279.1559639902$1284676285$gmane$org@svn.freebsd.org> Date: Mon, 20 Dec 2010 10:39:34 +0300 In-Reply-To: <201009162231.o8GMV3Ov009118__30279.1559639902$1284676285$gmane$org@svn.freebsd.org> (David E. O'Brien's message of "Thu, 16 Sep 2010 22:31:03 +0000 (UTC)") Message-ID: <86sjxsq4eh.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r212770 - head/usr.bin/script X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 07:39:41 -0000 "David E. O'Brien" writes: > Author: obrien > Date: Thu Sep 16 22:31:03 2010 > New Revision: 212770 > URL: http://svn.freebsd.org/changeset/base/212770 > > Log: > + Add the 'command' argument (if supplied on the command line) to the > typescript file. This creates a more complete typescript when invoked > this way - more equal to invoking script without supplying the 'command' > argument. [...] > + if (av[0]) > + for (k = 0 ; av[k] ; ++k) > + fprintf(fscript, "%s%s", k ? " " : "", av[k]); > + fprintf(fscript, "\r\n"); > + Can you make it opt-in? It breaks scripts that do not expect anything other than command output in a typescript. For example, timestamps can be disabled by `-q' option. Which make below syntax script -q file command ... another way to write command >file 2>&1 but it captures output sent to /dev/tty, too. Besides, the commit also breaks bin/114465, a replay feature from NetBSD. From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 08:29:55 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 196241065675; Mon, 20 Dec 2010 08:29:55 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 082948FC08; Mon, 20 Dec 2010 08:29:55 +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 oBK8Ts0B021710; Mon, 20 Dec 2010 08:29:54 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK8TsnU021707; Mon, 20 Dec 2010 08:29:54 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012200829.oBK8TsnU021707@svn.freebsd.org> From: Philippe Charnier Date: Mon, 20 Dec 2010 08:29:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216582 - head/libexec/getty X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 08:29:55 -0000 Author: charnier Date: Mon Dec 20 08:29:54 2010 New Revision: 216582 URL: http://svn.freebsd.org/changeset/base/216582 Log: Add __unused. Ansi prototypes. Modified: head/libexec/getty/chat.c head/libexec/getty/main.c Modified: head/libexec/getty/chat.c ============================================================================== --- head/libexec/getty/chat.c Mon Dec 20 00:27:40 2010 (r216581) +++ head/libexec/getty/chat.c Mon Dec 20 08:29:54 2010 (r216582) @@ -23,10 +23,8 @@ * For semi-intelligent modem handling. */ -#ifndef lint -static const char rcsid[] = - "$FreeBSD$"; -#endif /* not lint */ +#include +__FBSDID("$FreeBSD$"); #include #include @@ -78,7 +76,7 @@ static int chat_send(char const *); */ static void -chat_alrm(int signo) +chat_alrm(int signo __unused) { int on = 1; Modified: head/libexec/getty/main.c ============================================================================== --- head/libexec/getty/main.c Mon Dec 20 00:27:40 2010 (r216581) +++ head/libexec/getty/main.c Mon Dec 20 08:29:54 2010 (r216582) @@ -41,9 +41,9 @@ static const char copyright[] = #if 0 static char sccsid[] = "@(#)from: main.c 8.1 (Berkeley) 6/20/93"; #endif -static const char rcsid[] = - "$FreeBSD$"; #endif /* not lint */ +#include +__FBSDID("$FreeBSD$"); #include #include @@ -799,7 +799,7 @@ putf(const char *cp) * Read a gettytab database entry and perform necessary quirks. */ static void -dogettytab() +dogettytab(void) { /* Read the database entry. */ From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 08:34:55 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6A32F1065696; Mon, 20 Dec 2010 08:34:55 +0000 (UTC) (envelope-from swell.k@gmail.com) Received: from mail-qw0-f54.google.com (mail-qw0-f54.google.com [209.85.216.54]) by mx1.freebsd.org (Postfix) with ESMTP id CE27F8FC1E; Mon, 20 Dec 2010 08:34:54 +0000 (UTC) Received: by qwj9 with SMTP id 9so2367044qwj.13 for ; Mon, 20 Dec 2010 00:34:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:references :date:in-reply-to:message-id:user-agent:mime-version:content-type; bh=TNnKXU33OdTnMAS85BHqOPTR3S1mshSzIgH/O31tIWk=; b=RbrkN88XY/yhI7XGhCV9o05mqQmR5YmTt/0zzbqJnHxBlYu4OjzoU/vET/rN0Zugkx OzdBYkBLrEZBoDzYd4O25lzTkiBfgZX4l2XKD4636A0hOMBEnJyNO7z+cdlfsTC8mMqd fof6RVTxKWQDlq8r7nS5oy9ukIqdJE0Hik9Nc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=EOaQZ5864JRlu8uCHHj9Ui+QNU+qYWBAeX4fs/tGap9rkvxoG2g45JMsYguZGQQz1v JggdsP1zOSUyJ0MlhVHVI40KNLPDrDMu3WGmKXD1i31UPgTWZmxIPhekS9PfYE+8RU7H EWIcgdbQwKdF6zbZ1tOC609kbBatAZLuSKrKw= Received: by 10.224.6.67 with SMTP id 3mr3791593qay.80.1292834093742; Mon, 20 Dec 2010 00:34:53 -0800 (PST) Received: from localhost (anonymizer6.torservers.net [174.36.199.203]) by mx.google.com with ESMTPS id l12sm2041632qcu.43.2010.12.20.00.34.51 (version=SSLv3 cipher=RC4-MD5); Mon, 20 Dec 2010 00:34:53 -0800 (PST) From: Anonymous To: "David E. O'Brien" References: <201009162231.o8GMV3Ov009118__30279.1559639902$1284676285$gmane$org@svn.freebsd.org> <86sjxsq4eh.fsf__10621.3107625537$1292830823$gmane$org@gmail.com> Date: Mon, 20 Dec 2010 11:34:47 +0300 In-Reply-To: <86sjxsq4eh.fsf__10621.3107625537$1292830823$gmane$org@gmail.com> (Anonymous's message of "Mon, 20 Dec 2010 10:39:34 +0300") Message-ID: <86wrn4ona0.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r212770 - head/usr.bin/script X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 08:34:55 -0000 Anonymous writes: > "David E. O'Brien" writes: > >> Author: obrien >> Date: Thu Sep 16 22:31:03 2010 >> New Revision: 212770 >> URL: http://svn.freebsd.org/changeset/base/212770 >> >> Log: >> + Add the 'command' argument (if supplied on the command line) to the >> typescript file. This creates a more complete typescript when invoked >> this way - more equal to invoking script without supplying the 'command' >> argument. > [...] >> + if (av[0]) >> + for (k = 0 ; av[k] ; ++k) >> + fprintf(fscript, "%s%s", k ? " " : "", av[k]); >> + fprintf(fscript, "\r\n"); >> + > > Can you make it opt-in? It breaks scripts that do not expect anything > other than command output in a typescript. For example, timestamps can > be disabled by `-q' option. So, how about putting it under `-q' and making it more easy to notice. %% Index: usr.bin/script/script.1 =================================================================== --- usr.bin/script/script.1 (revision 216581) +++ usr.bin/script/script.1 (working copy) @@ -75,7 +75,7 @@ .It Fl k Log keys sent to program as well as output. .It Fl q -Run in quiet mode, omit the start and stop status messages. +Run in quiet mode, omit the start, stop and command status messages. .It Fl t Ar time Specify time interval between flushing script output file. A value of 0 Index: usr.bin/script/script.c =================================================================== --- usr.bin/script/script.c (revision 216581) +++ usr.bin/script/script.c (working copy) @@ -86,6 +86,7 @@ char ibuf[BUFSIZ]; fd_set rfd; int flushtime = 30; + int k; aflg = kflg = 0; while ((ch = getopt(argc, argv, "aqkt:")) != -1) @@ -137,6 +138,11 @@ tvec = time(NULL); (void)printf("Script started, output file is %s\n", fname); (void)fprintf(fscript, "Script started on %s", ctime(&tvec)); + if (argv[0]) + fprintf(fscript, "command: "); + for (k = 0 ; argv[k] ; ++k) + fprintf(fscript, "%s%s", k ? " " : "", argv[k]); + fprintf(fscript, "\n"); fflush(fscript); } if (ttyflg) { @@ -231,17 +237,11 @@ doshell(char **av) { const char *shell; - int k; shell = getenv("SHELL"); if (shell == NULL) shell = _PATH_BSHELL; - if (av[0]) - for (k = 0 ; av[k] ; ++k) - fprintf(fscript, "%s%s", k ? " " : "", av[k]); - fprintf(fscript, "\r\n"); - (void)close(master); (void)fclose(fscript); login_tty(slave); %% From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 08:37:26 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C24F61065670; Mon, 20 Dec 2010 08:37:26 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B12DA8FC19; Mon, 20 Dec 2010 08:37:26 +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 oBK8bQA7023363; Mon, 20 Dec 2010 08:37:26 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK8bQtU023361; Mon, 20 Dec 2010 08:37:26 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012200837.oBK8bQtU023361@svn.freebsd.org> From: Philippe Charnier Date: Mon, 20 Dec 2010 08:37:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216583 - head/libexec/rbootd X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 08:37:26 -0000 Author: charnier Date: Mon Dec 20 08:37:26 2010 New Revision: 216583 URL: http://svn.freebsd.org/changeset/base/216583 Log: Add __unused Modified: head/libexec/rbootd/rbootd.c Modified: head/libexec/rbootd/rbootd.c ============================================================================== --- head/libexec/rbootd/rbootd.c Mon Dec 20 08:29:54 2010 (r216582) +++ head/libexec/rbootd/rbootd.c Mon Dec 20 08:37:26 2010 (r216583) @@ -54,9 +54,9 @@ static const char copyright[] = #if 0 static const char sccsid[] = "@(#)rbootd.c 8.1 (Berkeley) 6/4/93"; #endif -static const char rcsid[] = - "$FreeBSD$"; #endif /* not lint */ +#include +__FBSDID("$FreeBSD$"); #include #include @@ -397,7 +397,7 @@ Exit(int sig) ** - This routine must be called with SIGHUP blocked. */ void -ReConfig(int signo) +ReConfig(int signo __unused) { syslog(LOG_NOTICE, "reconfiguring boot server"); @@ -423,7 +423,7 @@ ReConfig(int signo) ** - Debug file is closed. */ void -DebugOff(int signo) +DebugOff(int signo __unused) { if (DbgFp != NULL) (void) fclose(DbgFp); @@ -445,7 +445,7 @@ DebugOff(int signo) ** otherwise do nothing. */ void -DebugOn(int signo) +DebugOn(int signo __unused) { if (DbgFp == NULL) { if ((DbgFp = fopen(DbgFile, "w")) == NULL) From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 08:44:09 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5BC5E106566B; Mon, 20 Dec 2010 08:44:09 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 322118FC1B; Mon, 20 Dec 2010 08:44: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 oBK8i80a024697; Mon, 20 Dec 2010 08:44:08 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK8i8dU024695; Mon, 20 Dec 2010 08:44:08 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012200844.oBK8i8dU024695@svn.freebsd.org> From: Philippe Charnier Date: Mon, 20 Dec 2010 08:44:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216584 - head/libexec/rlogind X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 08:44:09 -0000 Author: charnier Date: Mon Dec 20 08:44:08 2010 New Revision: 216584 URL: http://svn.freebsd.org/changeset/base/216584 Log: Add __unused Modified: head/libexec/rlogind/rlogind.c Modified: head/libexec/rlogind/rlogind.c ============================================================================== --- head/libexec/rlogind/rlogind.c Mon Dec 20 08:37:26 2010 (r216583) +++ head/libexec/rlogind/rlogind.c Mon Dec 20 08:44:08 2010 (r216584) @@ -477,7 +477,7 @@ protocol(int f, int p) } void -cleanup(int signo) +cleanup(int signo __unused) { shutdown(netf, SHUT_RDWR); From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 08:47:43 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F8F9106566C; Mon, 20 Dec 2010 08:47:43 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7448A8FC13; Mon, 20 Dec 2010 08:47:43 +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 oBK8lhlq025492; Mon, 20 Dec 2010 08:47:43 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK8lhva025490; Mon, 20 Dec 2010 08:47:43 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012200847.oBK8lhva025490@svn.freebsd.org> From: Philippe Charnier Date: Mon, 20 Dec 2010 08:47:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216585 - head/usr.bin/rsh X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 08:47:43 -0000 Author: charnier Date: Mon Dec 20 08:47:43 2010 New Revision: 216585 URL: http://svn.freebsd.org/changeset/base/216585 Log: Add __unused Modified: head/usr.bin/rsh/rsh.c Modified: head/usr.bin/rsh/rsh.c ============================================================================== --- head/usr.bin/rsh/rsh.c Mon Dec 20 08:44:08 2010 (r216584) +++ head/usr.bin/rsh/rsh.c Mon Dec 20 08:47:43 2010 (r216585) @@ -328,7 +328,7 @@ done: } void -connect_timeout(int sig) +connect_timeout(int sig __unused) { char message[] = "timeout reached before connection completed.\n"; From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 08:54:31 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29965106566C; Mon, 20 Dec 2010 08:54:31 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 185108FC1B; Mon, 20 Dec 2010 08:54:31 +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 oBK8sUqV026923; Mon, 20 Dec 2010 08:54:30 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK8sUrl026921; Mon, 20 Dec 2010 08:54:30 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012200854.oBK8sUrl026921@svn.freebsd.org> From: Philippe Charnier Date: Mon, 20 Dec 2010 08:54:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216586 - head/usr.sbin/mld6query X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 08:54:31 -0000 Author: charnier Date: Mon Dec 20 08:54:30 2010 New Revision: 216586 URL: http://svn.freebsd.org/changeset/base/216586 Log: Add __unused. Ansi prototypes. Modified: head/usr.sbin/mld6query/mld6.c Modified: head/usr.sbin/mld6query/mld6.c ============================================================================== --- head/usr.sbin/mld6query/mld6.c Mon Dec 20 08:47:43 2010 (r216585) +++ head/usr.sbin/mld6query/mld6.c Mon Dec 20 08:54:30 2010 (r216586) @@ -1,5 +1,4 @@ /* $KAME: mld6.c,v 1.15 2003/04/02 11:29:54 suz Exp $ */ -/* $FreeBSD$ */ /* * Copyright (C) 1998 WIDE Project. @@ -29,6 +28,10 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ + +#include +__FBSDID("$FreeBSD$"); + #include #include #include @@ -330,9 +333,8 @@ dump(int s) fflush(stdout); } -/* ARGSUSED */ void -quit(int signum) +quit(int signum __unused) { mreq.ipv6mr_multiaddr = any; mreq.ipv6mr_interface = ifindex; @@ -344,7 +346,7 @@ quit(int signum) } void -usage() +usage(void) { (void)fprintf(stderr, "usage: mld6query ifname [addr]\n"); exit(1); From owner-svn-src-head@FreeBSD.ORG Mon Dec 20 09:28:28 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A717D106564A; Mon, 20 Dec 2010 09:28:28 +0000 (UTC) (envelope-from charnier@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 944DE8FC1A; Mon, 20 Dec 2010 09:28: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 oBK9SSYh033354; Mon, 20 Dec 2010 09:28:28 GMT (envelope-from charnier@svn.freebsd.org) Received: (from charnier@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBK9SSdY033352; Mon, 20 Dec 2010 09:28:28 GMT (envelope-from charnier@svn.freebsd.org) Message-Id: <201012200928.oBK9SSdY033352@svn.freebsd.org> From: Philippe Charnier Date: Mon, 20 Dec 2010 09:28:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216587 - head/usr.sbin/mountd X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Dec 2010 09:28:28 -0000 Author: charnier Date: Mon Dec 20 09:28:28 2010 New Revision: 216587 URL: http://svn.freebsd.org/changeset/base/216587 Log: Add __unused. Ansi prototypes. Modified: head/usr.sbin/mountd/mountd.c Modified: head/usr.sbin/mountd/mountd.c ============================================================================== --- head/usr.sbin/mountd/mountd.c Mon Dec 20 08:54:30 2010 (r216586) +++ head/usr.sbin/mountd/mountd.c Mon Dec 20 09:28:28 2010 (r216587) @@ -196,6 +196,7 @@ void mntsrv(struct svc_req *, SVCXPRT *) void nextfield(char **, char **); void out_of_mem(void); void parsecred(char *, struct xucred *); +int parsesec(char *, struct exportlist *); int put_exlist(struct dirlist *, XDR *, struct dirlist *, int *, int); void *sa_rawaddr(struct sockaddr *sa, int *nbytes); int sacmp(struct sockaddr *sa1, struct sockaddr *sa2, @@ -205,6 +206,7 @@ static void usage(void); int xdr_dir(XDR *, char *); int xdr_explist(XDR *, caddr_t); int xdr_explist_brief(XDR *, caddr_t); +int xdr_explist_common(XDR *, caddr_t, int); int xdr_fhs(XDR *, caddr_t); int xdr_mlist(XDR *, caddr_t); void terminate(int); @@ -269,9 +271,7 @@ int debug = 0; * and "-n" to allow nonroot mount. */ int -main(argc, argv) - int argc; - char **argv; +main(int argc, char **argv) { fd_set readfds; struct netconfig *nconf; @@ -729,7 +729,7 @@ create_service(struct netconfig *nconf) } static void -usage() +usage(void) { fprintf(stderr, "usage: mountd [-2] [-d] [-e] [-l] [-n] [-p ] [-r] " @@ -741,9 +741,7 @@ usage() * The mount rpc service */ void -mntsrv(rqstp, transp) - struct svc_req *rqstp; - SVCXPRT *transp; +mntsrv(struct svc_req *rqstp, SVCXPRT *transp) { struct exportlist *ep; struct dirlist *dp; @@ -949,9 +947,7 @@ mntsrv(rqstp, transp) * Xdr conversion for a dirpath string */ int -xdr_dir(xdrsp, dirp) - XDR *xdrsp; - char *dirp; +xdr_dir(XDR *xdrsp, char *dirp) { return (xdr_string(xdrsp, &dirp, MNTPATHLEN)); } @@ -960,9 +956,7 @@ xdr_dir(xdrsp, dirp) * Xdr routine to generate file handle reply */ int -xdr_fhs(xdrsp, cp) - XDR *xdrsp; - caddr_t cp; +xdr_fhs(XDR *xdrsp, caddr_t cp) { struct fhreturn *fhrp = (struct fhreturn *)cp; u_long ok = 0, len, auth; @@ -998,9 +992,7 @@ xdr_fhs(xdrsp, cp) } int -xdr_mlist(xdrsp, cp) - XDR *xdrsp; - caddr_t cp; +xdr_mlist(XDR *xdrsp, caddr_t cp __unused) { struct mountlist *mlp; int true = 1; @@ -1028,10 +1020,7 @@ xdr_mlist(xdrsp, cp) * Xdr conversion for export list */ int -xdr_explist_common(xdrsp, cp, brief) - XDR *xdrsp; - caddr_t cp; - int brief; +xdr_explist_common(XDR *xdrsp, caddr_t cp __unused, int brief) { struct exportlist *ep; int false = 0; @@ -1067,12 +1056,8 @@ errout: * directory paths. */ int -put_exlist(dp, xdrsp, adp, putdefp, brief) - struct dirlist *dp; - XDR *xdrsp; - struct dirlist *adp; - int *putdefp; - int brief; +put_exlist(struct dirlist *dp, XDR *xdrsp, struct dirlist *adp, int *putdefp, + int brief) { struct grouplist *grp; struct hostlist *hp; @@ -1135,18 +1120,14 @@ put_exlist(dp, xdrsp, adp, putdefp, brie } int -xdr_explist(xdrsp, cp) - XDR *xdrsp; - caddr_t cp; +xdr_explist(XDR *xdrsp, caddr_t cp) { return xdr_explist_common(xdrsp, cp, 0); } int -xdr_explist_brief(xdrsp, cp) - XDR *xdrsp; - caddr_t cp; +xdr_explist_brief(XDR *xdrsp, caddr_t cp) { return xdr_explist_common(xdrsp, cp, 1); @@ -1160,7 +1141,7 @@ FILE *exp_file; * Get the export list from one, currently open file */ static void -get_exportlist_one() +get_exportlist_one(void) { struct exportlist *ep, *ep2; struct grouplist *grp, *tgrp; @@ -1470,7 +1451,7 @@ nextline: * Get the export list from all specified files */ void -get_exportlist() +get_exportlist(void) { struct exportlist *ep, *ep2; struct grouplist *grp, *tgrp; @@ -1621,7 +1602,7 @@ get_exportlist() * Allocate an export list element */ struct exportlist * -get_exp() +get_exp(void) { struct exportlist *ep; @@ -1636,7 +1617,7 @@ get_exp() * Allocate a group list element */ struct grouplist * -get_grp() +get_grp(void) { struct grouplist *gp; @@ -1651,9 +1632,7 @@ get_grp() * Clean up upon an error in get_exportlist(). */ void -getexp_err(ep, grp) - struct exportlist *ep; - struct grouplist *grp; +getexp_err(struct exportlist *ep, struct grouplist *grp) { struct grouplist *tgrp; @@ -1672,8 +1651,7 @@ getexp_err(ep, grp) * Search the export list for a matching fs. */ struct exportlist * -ex_search(fsid) - fsid_t *fsid; +ex_search(fsid_t *fsid) { struct exportlist *ep; @@ -1691,10 +1669,7 @@ ex_search(fsid) * Add a directory path to the list. */ char * -add_expdir(dpp, cp, len) - struct dirlist **dpp; - char *cp; - int len; +add_expdir(struct dirlist **dpp, char *cp, int len) { struct dirlist *dp; @@ -1715,11 +1690,8 @@ add_expdir(dpp, cp, len) * and update the entry for host. */ void -hang_dirp(dp, grp, ep, flags) - struct dirlist *dp; - struct grouplist *grp; - struct exportlist *ep; - int flags; +hang_dirp(struct dirlist *dp, struct grouplist *grp, struct exportlist *ep, + int flags) { struct hostlist *hp; struct dirlist *dp2; @@ -1756,11 +1728,8 @@ hang_dirp(dp, grp, ep, flags) * for the new directory or adding the new node. */ void -add_dlist(dpp, newdp, grp, flags) - struct dirlist **dpp; - struct dirlist *newdp; - struct grouplist *grp; - int flags; +add_dlist(struct dirlist **dpp, struct dirlist *newdp, struct grouplist *grp, + int flags) { struct dirlist *dp; struct hostlist *hp; @@ -1803,9 +1772,7 @@ add_dlist(dpp, newdp, grp, flags) * Search for a dirpath on the export point. */ struct dirlist * -dirp_search(dp, dirp) - struct dirlist *dp; - char *dirp; +dirp_search(struct dirlist *dp, char *dirp) { int cmp; @@ -1825,11 +1792,8 @@ dirp_search(dp, dirp) * Scan for a host match in a directory tree. */ int -chk_host(dp, saddr, defsetp, hostsetp) - struct dirlist *dp; - struct sockaddr *saddr; - int *defsetp; - int *hostsetp; +chk_host(struct dirlist *dp, struct sockaddr *saddr, int *defsetp, + int *hostsetp) { struct hostlist *hp; struct grouplist *grp; @@ -1872,9 +1836,7 @@ chk_host(dp, saddr, defsetp, hostsetp) * Scan tree for a host that matches the address. */ int -scan_tree(dp, saddr) - struct dirlist *dp; - struct sockaddr *saddr; +scan_tree(struct dirlist *dp, struct sockaddr *saddr) { int defset, hostset; @@ -1893,8 +1855,7 @@ scan_tree(dp, saddr) * Traverse the dirlist tree and free it up. */ void -free_dir(dp) - struct dirlist *dp; +free_dir(struct dirlist *dp) { if (dp) { @@ -1909,9 +1870,7 @@ free_dir(dp) * Parse a colon separated list of security flavors */ int -parsesec(seclist, ep) - char *seclist; - struct exportlist *ep; +parsesec(char *seclist, struct exportlist *ep) { char *cp, savedc; int flavor; @@ -1962,13 +1921,8 @@ parsesec(seclist, ep) * -