From owner-p4-projects@FreeBSD.ORG Sun Jan 28 15:42:02 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E10BB16A407; Sun, 28 Jan 2007 15:42:01 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B80D316A400 for ; Sun, 28 Jan 2007 15:42:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A42D113C4B3 for ; Sun, 28 Jan 2007 15:42:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0SFg1fq033831 for ; Sun, 28 Jan 2007 15:42:01 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0SFg14Q033807 for perforce@freebsd.org; Sun, 28 Jan 2007 15:42:01 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 28 Jan 2007 15:42:01 GMT Message-Id: <200701281542.l0SFg14Q033807@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113638 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Jan 2007 15:42:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=113638 Change 113638 by hselasky@hselasky_mini_itx on 2007/01/28 15:40:59 ARM compilation fix and updates with regard to USB. Affected files ... .. //depot/projects/usb/src/sys/arm/at91/ohci_atmelarm.c#2 edit Differences ... ==== //depot/projects/usb/src/sys/arm/at91/ohci_atmelarm.c#2 (text) ==== @@ -25,34 +25,31 @@ #include __FBSDID("$FreeBSD: src/sys/arm/at91/ohci_atmelarm.c,v 1.1 2006/03/18 01:45:29 imp Exp $"); +#include "opt_bus.h" + #include #include #include -#include -#include +#include #include -#include -#include -#include +#include +#include +#include #include -#include -#include -#include +#include +#include -#include -#include - #include #define MEM_RID 0 -static int ohci_atmelarm_attach(device_t dev); -static int ohci_atmelarm_detach(device_t dev); +static device_probe_t ohci_atmelarm_probe; +static device_attach_t ohci_atmelarm_attach; +static device_detach_t ohci_atmelarm_detach; -struct at91_ohci_softc -{ - struct ohci_softc sc_ohci; +struct at91_ohci_softc { + struct ohci_softc sc_ohci; /* must be first */ struct at91_pmc_clock *iclk; struct at91_pmc_clock *fclk; }; @@ -60,7 +57,7 @@ static int ohci_atmelarm_probe(device_t dev) { - device_set_desc(dev, "AT91 integrated ohci controller"); + device_set_desc(dev, "AT91 integrated OHCI controller"); return (BUS_PROBE_DEFAULT); } @@ -71,74 +68,110 @@ int err; int rid; - - sc->iclk = at91_pmc_clock_ref("ohci_clk"); + if (sc == NULL) { + return ENXIO; + } + + sc->sc_ohci.sc_hw_ptr = + usbd_mem_alloc(device_get_dma_tag(dev), + &(sc->sc_ohci.sc_hw_page), sizeof(*(sc->sc_ohci.sc_hw_ptr)), + LOG2(OHCI_HCCA_ALIGN)); + + if (sc->sc_ohci.sc_hw_ptr == NULL) { + return ENXIO; + } + + sc->iclk = at91_pmc_clock_ref("ohci_clk"); sc->fclk = at91_pmc_clock_ref("uhpck"); + mtx_init(&(sc->sc_ohci.sc_bus.mtx), "usb lock", + NULL, MTX_DEF|MTX_RECURSE); + + sc->sc_ohci.sc_dev = dev; + + sc->sc_ohci.sc_bus.dma_tag = usbd_dma_tag_alloc(device_get_dma_tag(dev), + USB_PAGE_SIZE, USB_PAGE_SIZE); + + if (sc->sc_ohci.sc_bus.dma_tag == NULL) { + goto error; + } + rid = MEM_RID; - sc->sc_ohci.io_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, - RF_ACTIVE); - if (sc->sc_ohci.io_res == NULL) { + sc->sc_ohci.sc_io_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, + &rid, RF_ACTIVE); + + if (!(sc->sc_ohci.sc_io_res)) { err = ENOMEM; goto error; } - sc->sc_ohci.iot = rman_get_bustag(sc->sc_ohci.io_res); - sc->sc_ohci.ioh = rman_get_bushandle(sc->sc_ohci.io_res); + sc->sc_ohci.sc_io_tag = rman_get_bustag(sc->sc_ohci.sc_io_res); + sc->sc_ohci.sc_io_hdl = rman_get_bushandle(sc->sc_ohci.sc_io_res); + sc->sc_ohci.sc_io_size = rman_get_size(sc->sc_ohci.sc_io_res); rid = 0; - sc->sc_ohci.irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, + sc->sc_ohci.sc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE); - if (sc->sc_ohci.irq_res == NULL) { - err = ENOMEM; + if (!(sc->sc_ohci.sc_irq_res)) { goto error; } + sc->sc_ohci.sc_bus.bdev = device_add_child(dev, "usb", -1); - if (sc->sc_ohci.sc_bus.bdev == NULL) { - err = ENOMEM; + if (!(sc->sc_ohci.sc_bus.bdev)) { goto error; } - device_set_ivars(sc->sc_ohci.sc_bus.bdev, &sc->sc_ohci.sc_bus); + + device_set_ivars(sc->sc_ohci.sc_bus.bdev, &(sc->sc_ohci.sc_bus)); + device_set_softc(sc->sc_ohci.sc_bus.bdev, &(sc->sc_ohci.sc_bus)); + + strlcpy(sc->sc_ohci.sc_vendor, "Atmel", sizeof(sc->sc_ohci.sc_vendor)); - err = bus_setup_intr(dev, sc->sc_ohci.irq_res, INTR_TYPE_BIO, ohci_intr, sc, - &sc->sc_ohci.ih); + err = bus_setup_intr(dev, sc->sc_ohci.sc_irq_res, INTR_TYPE_BIO|INTR_MPSAFE, + (void *)(void *)ohci_interrupt, sc, &(sc->sc_ohci.sc_intr_hdl)); if (err) { - err = ENXIO; + sc->sc_ohci.sc_intr_hdl = NULL; goto error; } - strlcpy(sc->sc_ohci.sc_vendor, "Atmel", sizeof(sc->sc_ohci.sc_vendor)); /* * turn on the clocks from the AT91's point of view. Keep the unit in reset. */ -// bus_space_write_4(sc->sc_ohci.iot, sc->sc_ohci.ioh, OHCI_CONTROL, 0); +// bus_space_write_4(sc->sc_ohci.sc_io_tag, sc->sc_ohci.sc_io_hdl, +// OHCI_CONTROL, 0); at91_pmc_clock_enable(sc->iclk); at91_pmc_clock_enable(sc->fclk); - bus_space_write_4(sc->sc_ohci.iot, sc->sc_ohci.ioh, OHCI_CONTROL, 0); + bus_space_write_4(sc->sc_ohci.sc_io_tag, sc->sc_ohci.sc_io_hdl, + OHCI_CONTROL, 0); - err = ohci_init(&sc->sc_ohci); + err = ohci_init(&(sc->sc_ohci)); if (!err) { - sc->sc_ohci.sc_flags |= OHCI_SCFLG_DONEINIT; err = device_probe_and_attach(sc->sc_ohci.sc_bus.bdev); } -error:; if (err) { - ohci_atmelarm_detach(dev); - return (err); + goto error; } - return (err); + return 0; + + error: + ohci_atmelarm_detach(dev); + return ENXIO; } static int ohci_atmelarm_detach(device_t dev) { struct at91_ohci_softc *sc = device_get_softc(dev); + int err; - if (sc->sc_ohci.sc_flags & OHCI_SCFLG_DONEINIT) { - ohci_detach(&sc->sc_ohci, 0); - sc->sc_ohci.sc_flags &= ~OHCI_SCFLG_DONEINIT; + if (sc->sc_ohci.sc_bus.bdev) { + device_detach(sc->sc_ohci.sc_bus.bdev); + device_delete_child(dev, sc->sc_ohci.sc_bus.bdev); + sc->sc_ohci.sc_bus.bdev = NULL; } + /* during module unload there are lots of children leftover */ + device_delete_all_children(dev); + /* * Put the controller into reset, then disable clocks and do * the MI tear down. We have to disable the clocks/hardware @@ -148,31 +181,44 @@ * clocks after we disable them, so the system could, in * theory, reuse them. */ - bus_space_write_4(sc->sc_ohci.iot, sc->sc_ohci.ioh, OHCI_CONTROL, 0); + bus_space_write_4(sc->sc_ohci.sc_io_tag, sc->sc_ohci.sc_io_hdl, + OHCI_CONTROL, 0); + at91_pmc_clock_disable(sc->fclk); at91_pmc_clock_disable(sc->iclk); at91_pmc_clock_deref(sc->fclk); at91_pmc_clock_deref(sc->iclk); - if (sc->sc_ohci.ih) { - bus_teardown_intr(dev, sc->sc_ohci.irq_res, sc->sc_ohci.ih); - sc->sc_ohci.ih = NULL; + if (sc->sc_ohci.sc_irq_res && sc->sc_ohci.sc_intr_hdl) { + /* only call ohci_detach() + * after ohci_init() + */ + ohci_detach(&(sc->sc_ohci)); + + err = bus_teardown_intr(dev, sc->sc_ohci.sc_irq_res, sc->sc_ohci.sc_intr_hdl); + sc->sc_ohci.sc_intr_hdl = NULL; } - if (sc->sc_ohci.sc_bus.bdev) { - device_delete_child(dev, sc->sc_ohci.sc_bus.bdev); - sc->sc_ohci.sc_bus.bdev = NULL; + + if (sc->sc_ohci.sc_irq_res) { + bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_ohci.sc_irq_res); + sc->sc_ohci.sc_irq_res = NULL; } - if (sc->sc_ohci.irq_res) { - bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_ohci.irq_res); - sc->sc_ohci.irq_res = NULL; + + if (sc->sc_ohci.sc_io_res) { + bus_release_resource(dev, SYS_RES_MEMORY, MEM_RID, + sc->sc_ohci.sc_io_res); + sc->sc_ohci.sc_io_res = NULL; } - if (sc->sc_ohci.io_res) { - bus_release_resource(dev, SYS_RES_MEMORY, MEM_RID, sc->sc_ohci.io_res); - sc->sc_ohci.io_res = NULL; - sc->sc_ohci.iot = 0; - sc->sc_ohci.ioh = 0; + + if (sc->sc_ohci.sc_bus.dma_tag) { + usbd_dma_tag_free(sc->sc_ohci.sc_bus.dma_tag); } - return (0); + + mtx_destroy(&(sc->sc_ohci.sc_bus.mtx)); + + usbd_mem_free(&(sc->sc_ohci.sc_hw_page)); + + return 0; } static device_method_t ohci_methods[] = { From owner-p4-projects@FreeBSD.ORG Sun Jan 28 16:04:31 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EFC7616A405; Sun, 28 Jan 2007 16:04:30 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 99E7816A403 for ; Sun, 28 Jan 2007 16:04:30 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6BD2F13C481 for ; Sun, 28 Jan 2007 16:04:30 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0SG4USb075235 for ; Sun, 28 Jan 2007 16:04:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0SG4UOT075231 for perforce@freebsd.org; Sun, 28 Jan 2007 16:04:30 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 28 Jan 2007 16:04:30 GMT Message-Id: <200701281604.l0SG4UOT075231@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113639 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Jan 2007 16:04:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=113639 Change 113639 by hselasky@hselasky_mini_itx on 2007/01/28 16:03:58 Remove extra device_printf() line. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ohci.c#20 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ohci.c#20 (text+ko) ==== @@ -364,8 +364,6 @@ sc->sc_control = sc->sc_intre = 0; - device_printf(sc->sc_bus.bdev, " "); - sc->sc_bus.usbrev = USBREV_1_0; if(ohci_controller_init(sc)) From owner-p4-projects@FreeBSD.ORG Sun Jan 28 16:19:51 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8EDA916A405; Sun, 28 Jan 2007 16:19:51 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 43ACF16A402 for ; Sun, 28 Jan 2007 16:19:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2F40013C4A3 for ; Sun, 28 Jan 2007 16:19:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0SGJpGo077321 for ; Sun, 28 Jan 2007 16:19:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0SGJoiE077318 for perforce@freebsd.org; Sun, 28 Jan 2007 16:19:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 28 Jan 2007 16:19:50 GMT Message-Id: <200701281619.l0SGJoiE077318@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113640 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Jan 2007 16:19:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=113640 Change 113640 by rwatson@rwatson_peppercorn on 2007/01/28 16:19:49 Integrate zcopybuf in order to pick up minor BPF cleanups in CVS. Affected files ... .. //depot/projects/zcopybpf/src/sys/amd64/amd64/machdep.c#2 integrate .. //depot/projects/zcopybpf/src/sys/arm/xscale/ixp425/ixp425_mem.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_da.c#2 integrate .. //depot/projects/zcopybpf/src/sys/conf/NOTES#2 integrate .. //depot/projects/zcopybpf/src/sys/conf/files#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/ata/ata-queue.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/bce/if_bce.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/mii/brgphy.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/mii/gentbi.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/mii/miidevs#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/mpt/mpt_cam.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/re/if_re.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/midi/midi.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/hda/hdac.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/maestro.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/via8233.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/usb/uaudio.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/usb/uaudio_pcm.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/uipaq.c#1 branch .. //depot/projects/zcopybpf/src/sys/dev/usb/usbdevs#2 integrate .. //depot/projects/zcopybpf/src/sys/i386/cpufreq/powernow.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_mbuf.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/sched_ule.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/subr_firmware.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/uipc_syscalls.c#2 integrate .. //depot/projects/zcopybpf/src/sys/modules/ath/Makefile#2 integrate .. //depot/projects/zcopybpf/src/sys/modules/ath_rate_sample/Makefile#2 integrate .. //depot/projects/zcopybpf/src/sys/modules/uipaq/Makefile#1 branch .. //depot/projects/zcopybpf/src/sys/net/bpf_compat.h#2 delete .. //depot/projects/zcopybpf/src/sys/net/bpfdesc.h#2 integrate .. //depot/projects/zcopybpf/src/sys/netgraph/ng_ppp.c#2 integrate .. //depot/projects/zcopybpf/src/sys/netinet/ip_carp.c#2 integrate .. //depot/projects/zcopybpf/src/sys/netinet6/nd6.c#2 integrate .. //depot/projects/zcopybpf/src/sys/nfs4client/nfs4_vfs_subs.c#2 integrate .. //depot/projects/zcopybpf/src/sys/nfs4client/nfs4_vfsops.c#2 integrate .. //depot/projects/zcopybpf/src/sys/nfs4client/nfs4_vnops.c#2 integrate .. //depot/projects/zcopybpf/src/sys/nfsclient/nfs.h#2 integrate .. //depot/projects/zcopybpf/src/sys/nfsclient/nfs_vfsops.c#2 integrate .. //depot/projects/zcopybpf/src/sys/pc98/pc98/machdep.c#2 integrate .. //depot/projects/zcopybpf/src/sys/powerpc/include/ipl.h#2 delete .. //depot/projects/zcopybpf/src/sys/sys/ata.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sys/mbuf.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sys/param.h#2 integrate .. //depot/projects/zcopybpf/src/sys/vm/uma.h#2 integrate .. //depot/projects/zcopybpf/src/sys/vm/uma_core.c#2 integrate Differences ... ==== //depot/projects/zcopybpf/src/sys/amd64/amd64/machdep.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.668 2007/01/23 08:01:19 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.669 2007/01/27 18:13:24 jkoshy Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1183,7 +1183,7 @@ setidt(x, &IDTVEC(rsvd), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_DE, &IDTVEC(div), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_DB, &IDTVEC(dbg), SDT_SYSIGT, SEL_KPL, 0); - setidt(IDT_NMI, &IDTVEC(nmi), SDT_SYSIGT, SEL_KPL, 0); + setidt(IDT_NMI, &IDTVEC(nmi), SDT_SYSIGT, SEL_KPL, 1); setidt(IDT_BP, &IDTVEC(bpt), SDT_SYSIGT, SEL_UPL, 0); setidt(IDT_OF, &IDTVEC(ofl), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_BR, &IDTVEC(bnd), SDT_SYSIGT, SEL_KPL, 0); ==== //depot/projects/zcopybpf/src/sys/arm/xscale/ixp425/ixp425_mem.c#2 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_mem.c,v 1.1 2006/11/19 23:55:23 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_mem.c,v 1.2 2007/01/26 01:37:32 kevlo Exp $"); #include #include @@ -47,8 +47,8 @@ static uint32_t sdram_64bit[] = { 0x00800000, /* 8M: One 2M x 32 chip */ 0x01000000, /* 16M: Two 2M x 32 chips */ - 0x01000000, /* 16M: One 4M x 32 chip */ - 0x02000000, /* 32M: Two 4M x 32 chips */ + 0x01000000, /* 16M: Two 4M x 16 chips */ + 0x02000000, /* 32M: Four 4M x 32 chips */ 0, 0, 0, 0 }; ==== //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_da.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.201 2007/01/22 04:34:03 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.202 2007/01/23 17:29:31 imp Exp $"); #include @@ -471,7 +471,7 @@ * EasyMP3 EM732X USB 2.0 Flash MP3 Player * PR: usb/96546 */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "*", "MP3 Player*", + {T_DIRECT, SIP_MEDIA_REMOVABLE, "EM732X", "MP3 Player*", "1.0"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, }; ==== //depot/projects/zcopybpf/src/sys/conf/NOTES#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1406 2007/01/10 18:45:17 marius Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1407 2007/01/28 11:56:14 takawata Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -2436,6 +2436,8 @@ device ubser # USB support for serial adapters based on the FT8U100AX and FT8U232AM device uftdi +# USB support for some Windows CE based serial communication. +device uipaq # USB support for Prolific PL-2303 serial adapters device uplcom # USB Visor and Palm devices ==== //depot/projects/zcopybpf/src/sys/conf/files#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1171 2007/01/05 01:46:26 ticso Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1172 2007/01/28 11:56:14 takawata Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1054,6 +1054,7 @@ dev/usb/uhci_pci.c optional uhci pci dev/usb/uhid.c optional uhid dev/usb/uhub.c optional usb +dev/usb/uipaq.c optional uipaq dev/usb/ukbd.c optional ukbd dev/usb/ulpt.c optional ulpt dev/usb/umass.c optional umass ==== //depot/projects/zcopybpf/src/sys/dev/ata/ata-queue.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.66 2006/12/23 12:40:54 remko Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.67 2007/01/27 21:15:58 remko Exp $"); #include "opt_ata.h" #include @@ -704,6 +704,7 @@ case 0xa0: return ("PACKET_CMD"); case 0xa1: return ("ATAPI_IDENTIFY"); case 0xa2: return ("SERVICE"); + case 0xb0: return ("SMART"); case 0xc0: return ("CFA ERASE"); case 0xc4: return ("READ_MUL"); case 0xc5: return ("WRITE_MUL"); ==== //depot/projects/zcopybpf/src/sys/dev/bce/if_bce.c#2 (text) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.26 2007/01/20 17:05:12 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.27 2007/01/26 17:03:51 dwhite Exp $"); /* * The following controllers are supported by this driver: @@ -531,13 +531,6 @@ goto bce_attach_fail; } - if (BCE_CHIP_BOND_ID(sc) & BCE_CHIP_BOND_ID_SERDES_BIT) { - BCE_PRINTF(sc, "%s(%d): SerDes controllers are not supported!\n", - __FILE__, __LINE__); - rc = ENODEV; - goto bce_attach_fail; - } - /* * The embedded PCIe to PCI-X bridge (EPB) * in the 5708 cannot address memory above @@ -742,20 +735,13 @@ IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen); IFQ_SET_READY(&ifp->if_snd); - if (sc->bce_phy_flags & BCE_PHY_SERDES_FLAG) { - BCE_PRINTF(sc, "%s(%d): SerDes is not supported by this driver!\n", + /* Look for our PHY. */ + if (mii_phy_probe(dev, &sc->bce_miibus, bce_ifmedia_upd, + bce_ifmedia_sts)) { + BCE_PRINTF(sc, "%s(%d): PHY probe failed!\n", __FILE__, __LINE__); - rc = ENODEV; + rc = ENXIO; goto bce_attach_fail; - } else { - /* Look for our PHY. */ - if (mii_phy_probe(dev, &sc->bce_miibus, bce_ifmedia_upd, - bce_ifmedia_sts)) { - BCE_PRINTF(sc, "%s(%d): PHY probe failed!\n", - __FILE__, __LINE__); - rc = ENXIO; - goto bce_attach_fail; - } } /* Attach to the Ethernet interface list. */ @@ -836,12 +822,8 @@ ether_ifdetach(ifp); /* If we have a child device on the MII bus remove it too. */ - if (sc->bce_phy_flags & BCE_PHY_SERDES_FLAG) { - ifmedia_removeall(&sc->bce_ifmedia); - } else { - bus_generic_detach(dev); - device_delete_child(dev, sc->bce_miibus); - } + bus_generic_detach(dev); + device_delete_child(dev, sc->bce_miibus); /* Release all remaining resources. */ bce_release_resources(sc); @@ -1118,7 +1100,8 @@ BCE_CLRBIT(sc, BCE_EMAC_MODE, BCE_EMAC_MODE_PORT); /* Set MII or GMII inerface based on the speed negotiated by the PHY. */ - if (IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_T) { + if (IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_T || + IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_SX) { DBPRINT(sc, BCE_INFO, "Setting GMII interface.\n"); BCE_SETBIT(sc, BCE_EMAC_MODE, BCE_EMAC_MODE_PORT_GMII); } else { @@ -3832,8 +3815,6 @@ ifm = &sc->bce_ifmedia; BCE_LOCK_ASSERT(sc); - /* DRC - ToDo: Add SerDes support. */ - mii = device_get_softc(sc->bce_miibus); sc->bce_link = 0; if (mii->mii_instance) { @@ -3864,8 +3845,6 @@ mii = device_get_softc(sc->bce_miibus); - /* DRC - ToDo: Add SerDes support. */ - mii_pollstat(mii); ifmr->ifm_active = mii->mii_media_active; ifmr->ifm_status = mii->mii_media_status; @@ -4879,17 +4858,10 @@ DBPRINT(sc, BCE_VERBOSE, "bce_phy_flags = 0x%08X\n", sc->bce_phy_flags); - if (sc->bce_phy_flags & BCE_PHY_SERDES_FLAG) { - DBPRINT(sc, BCE_VERBOSE, "SerDes media set/get\n"); - - error = ifmedia_ioctl(ifp, ifr, - &sc->bce_ifmedia, command); - } else { - DBPRINT(sc, BCE_VERBOSE, "Copper media set/get\n"); - mii = device_get_softc(sc->bce_miibus); - error = ifmedia_ioctl(ifp, ifr, - &mii->mii_media, command); - } + DBPRINT(sc, BCE_VERBOSE, "Copper media set/get\n"); + mii = device_get_softc(sc->bce_miibus); + error = ifmedia_ioctl(ifp, ifr, + &mii->mii_media, command); break; /* Set interface capability */ @@ -5567,8 +5539,6 @@ if (sc->bce_link) goto bce_tick_locked_exit; - /* DRC - ToDo: Add SerDes support and check SerDes link here. */ - mii = device_get_softc(sc->bce_miibus); mii_tick(mii); ==== //depot/projects/zcopybpf/src/sys/dev/mii/brgphy.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mii/brgphy.c,v 1.56 2007/01/16 17:48:57 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mii/brgphy.c,v 1.57 2007/01/26 17:05:24 dwhite Exp $"); /* * Driver for the Broadcom BCR5400 1000baseTX PHY. @@ -115,7 +115,6 @@ MII_PHY_DESC(xxBROADCOM, BCM5704), MII_PHY_DESC(xxBROADCOM, BCM5705), MII_PHY_DESC(xxBROADCOM, BCM5706C), - MII_PHY_DESC(xxBROADCOM, BCM5708C), MII_PHY_DESC(xxBROADCOM, BCM5714), MII_PHY_DESC(xxBROADCOM, BCM5750), MII_PHY_DESC(xxBROADCOM, BCM5752), ==== //depot/projects/zcopybpf/src/sys/dev/mii/gentbi.c#2 (text+ko) ==== @@ -74,7 +74,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mii/gentbi.c,v 1.2 2006/11/27 23:50:19 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mii/gentbi.c,v 1.3 2007/01/26 17:06:02 dwhite Exp $"); /* * Driver for generic unknown ten-bit interfaces(1000BASE-{LX,SX} @@ -201,6 +201,7 @@ mii_phy_add_media(sc); printf("\n"); + MIIBUS_MEDIAINIT(sc->mii_dev); return (0); } ==== //depot/projects/zcopybpf/src/sys/dev/mii/miidevs#2 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/mii/miidevs,v 1.39 2007/01/15 21:43:43 jkim Exp $ +$FreeBSD: src/sys/dev/mii/miidevs,v 1.40 2007/01/26 17:05:24 dwhite Exp $ /*$NetBSD: miidevs,v 1.6 1999/05/14 11:37:30 drochner Exp $*/ /*- @@ -129,8 +129,7 @@ model xxBROADCOM BCM5750 0x0018 BCM5750 10/100/1000baseTX PHY model xxBROADCOM BCM5714 0x0034 BCM5714 10/100/1000baseTX PHY model xxBROADCOM BCM5780 0x0035 BCM5780 10/100/1000baseTX PHY -model xxBROADCOM BCM5706C 0x0015 BCM5706C 10/100/1000baseTX PHY -model xxBROADCOM BCM5708C 0x0036 BCM5708C 10/100/1000baseTX PHY +model xxBROADCOM BCM5706C 0x0036 BCM5706C/5708C 10/100/1000baseTX PHY model xxBROADCOM_ALT1 BCM5787 0x000e BCM5787 10/100/1000baseTX PHY /* Cicada Semiconductor PHYs (now owned by Vitesse?) */ ==== //depot/projects/zcopybpf/src/sys/dev/mpt/mpt_cam.c#2 (text+ko) ==== @@ -94,7 +94,7 @@ * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include -__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt_cam.c,v 1.49 2007/01/05 22:49:05 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt_cam.c,v 1.50 2007/01/25 18:02:23 mjacob Exp $"); #include #include @@ -3226,7 +3226,7 @@ /* * The base speed is the speed of the underlying connection. */ -#ifdef CAM_NEW_TRAN +#ifdef CAM_NEW_TRAN_CODE cpi->protocol = PROTO_SCSI; if (mpt->is_fc) { cpi->hba_misc = PIM_NOBUSRESET; ==== //depot/projects/zcopybpf/src/sys/dev/re/if_re.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.83 2007/01/23 00:44:12 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.84 2007/01/25 17:30:30 wpaul Exp $"); /* * RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver @@ -2071,8 +2071,13 @@ * the mbuf chain has too many fragments so the coalescing code * below can assemble the packet into a single buffer that's * padded out to the mininum frame size. + * + * Note: this appears unnecessary for TCP, and doing it for TCP + * with PCIe adapters seems to result in bad checksums. */ - if (arg.rl_flags && (*m_head)->m_pkthdr.len < RL_MIN_FRAMELEN) + + if (arg.rl_flags && !(arg.rl_flags & RL_TDESC_CMD_TCPCSUM) && + (*m_head)->m_pkthdr.len < RL_MIN_FRAMELEN) error = EFBIG; else error = bus_dmamap_load_mbuf(sc->rl_ldata.rl_mtag, map, ==== //depot/projects/zcopybpf/src/sys/dev/sound/midi/midi.c#2 (text) ==== @@ -43,7 +43,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/sound/midi/midi.c,v 1.19 2006/06/18 14:14:41 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sound/midi/midi.c,v 1.20 2007/01/27 15:55:59 ariff Exp $"); #include #include @@ -931,11 +931,15 @@ return EBUSY; } midistat_isopen = 1; + mtx_unlock(&midistat_lock); - if (sbuf_new(&midistat_sbuf, NULL, 4096, 0) == NULL) { + if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { error = ENXIO; + mtx_lock(&midistat_lock); goto out; } + + mtx_lock(&midistat_lock); midistat_bufptr = 0; error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; @@ -974,9 +978,11 @@ } l = min(buf->uio_resid, sbuf_len(&midistat_sbuf) - midistat_bufptr); err = 0; - if (l > 0) + if (l > 0) { + mtx_unlock(&midistat_lock); err = uiomove(sbuf_data(&midistat_sbuf) + midistat_bufptr, l, buf); - else + mtx_lock(&midistat_lock); + } else l = 0; midistat_bufptr += l; mtx_unlock(&midistat_lock); ==== //depot/projects/zcopybpf/src/sys/dev/sound/pci/hda/hdac.c#2 (text+ko) ==== @@ -80,10 +80,10 @@ #include "mixer_if.h" -#define HDA_DRV_TEST_REV "20070105_0038" +#define HDA_DRV_TEST_REV "20070128_0039" #define HDA_WIDGET_PARSER_REV 1 -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.22 2007/01/13 00:24:44 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.23 2007/01/28 03:16:54 ariff Exp $"); #undef HDA_DEBUG_ENABLED #define HDA_DEBUG_ENABLED 1 @@ -172,6 +172,7 @@ #define HP_NX7400_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x30a2) #define HP_NX6310_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x30aa) #define HP_NX6325_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x30b0) +#define HP_XW4300_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x3013) #define HP_ALL_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0xffff) /* What is wrong with XN 2563 anyway? (Got the picture ?) */ #define HP_NX6325_SUBVENDORX 0x103c30b0 @@ -529,8 +530,10 @@ 13, { 14, -1 }, -1 }, { LENOVO_ALL_SUBVENDOR, HDA_CODEC_AD1986A, HDAC_HP_SWITCH_CTL, 1, 26, { 27, -1 }, -1 }, +#if 0 { ACER_ALL_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL, 0, 20, { 21, -1 }, -1 }, +#endif }; #define HDAC_HP_SWITCH_LEN \ (sizeof(hdac_hp_switch) / sizeof(hdac_hp_switch[0])) @@ -3607,6 +3610,18 @@ if (w->nid != 5) w->enable = 0; } + if (subvendor == HP_XW4300_SUBVENDOR) { + ctl = hdac_audio_ctl_amp_get(devinfo, 16, 0, 1); + if (ctl != NULL && ctl->widget != NULL) { + ctl->ossmask = SOUND_MASK_SPEAKER; + ctl->widget->ctlflags |= SOUND_MASK_SPEAKER; + } + ctl = hdac_audio_ctl_amp_get(devinfo, 17, 0, 1); + if (ctl != NULL && ctl->widget != NULL) { + ctl->ossmask = SOUND_MASK_SPEAKER; + ctl->widget->ctlflags |= SOUND_MASK_SPEAKER; + } + } break; case HDA_CODEC_ALC861: ctl = hdac_audio_ctl_amp_get(devinfo, 28, 1, 1); @@ -4358,7 +4373,7 @@ printf(" childnid=%d", ctl->childwidget->nid); printf(" Bind to NONE\n"); - } + } ); if (ctl->step > 0) { ctl->ossval = (ctl->left * 100) / ctl->step; ==== //depot/projects/zcopybpf/src/sys/dev/sound/pci/maestro.c#2 (text+ko) ==== @@ -54,11 +54,8 @@ #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro.c,v 1.32 2006/06/18 14:14:41 netchild Exp $"); - +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro.c,v 1.33 2007/01/27 13:30:19 ariff Exp $"); -#define inline __inline - /* * PCI IDs of supported chips: * @@ -198,66 +195,71 @@ SYSCTL_UINT(_debug_maestro, OID_AUTO, powerstate_idle, CTLFLAG_RW, &powerstate_idle, 0, "The Dx power state when idle (0-2)"); SYSCTL_UINT(_debug_maestro, OID_AUTO, powerstate_init, CTLFLAG_RW, - &powerstate_init, 0, "The Dx power state prior to the first use (0-2)"); + &powerstate_init, 0, + "The Dx power state prior to the first use (0-2)"); /* ----------------------------- * Prototypes */ -static inline void agg_lock(struct agg_info*); -static inline void agg_unlock(struct agg_info*); -static inline void agg_sleep(struct agg_info*, const char *wmesg, int msec); +static void agg_sleep(struct agg_info*, const char *wmesg, int msec); -static inline u_int32_t agg_rd(struct agg_info*, int, int size); -static inline void agg_wr(struct agg_info*, int, u_int32_t data, int size); +static __inline u_int32_t agg_rd(struct agg_info*, int, int size); +static __inline void agg_wr(struct agg_info*, int, u_int32_t data, + int size); +static int agg_rdcodec(struct agg_info*, int); +static int agg_wrcodec(struct agg_info*, int, u_int32_t); -static inline int agg_rdcodec(struct agg_info*, int); -static inline int agg_wrcodec(struct agg_info*, int, u_int32_t); +static void ringbus_setdest(struct agg_info*, int, int); -static inline void ringbus_setdest(struct agg_info*, int, int); +static u_int16_t wp_rdreg(struct agg_info*, u_int16_t); +static void wp_wrreg(struct agg_info*, u_int16_t, u_int16_t); +static u_int16_t wp_rdapu(struct agg_info*, unsigned, u_int16_t); +static void wp_wrapu(struct agg_info*, unsigned, u_int16_t, u_int16_t); +static void wp_settimer(struct agg_info*, u_int); +static void wp_starttimer(struct agg_info*); +static void wp_stoptimer(struct agg_info*); -static inline u_int16_t wp_rdreg(struct agg_info*, u_int16_t); -static inline void wp_wrreg(struct agg_info*, u_int16_t, u_int16_t); -static inline u_int16_t wp_rdapu(struct agg_info*, unsigned, u_int16_t); -static inline void wp_wrapu(struct agg_info*, unsigned, u_int16_t, u_int16_t); -static inline void wp_settimer(struct agg_info*, u_int); -static inline void wp_starttimer(struct agg_info*); -static inline void wp_stoptimer(struct agg_info*); +#if 0 +static u_int16_t wc_rdreg(struct agg_info*, u_int16_t); +#endif +static void wc_wrreg(struct agg_info*, u_int16_t, u_int16_t); +#if 0 +static u_int16_t wc_rdchctl(struct agg_info*, int); +#endif +static void wc_wrchctl(struct agg_info*, int, u_int16_t); -static inline u_int16_t wc_rdreg(struct agg_info*, u_int16_t); -static inline void wc_wrreg(struct agg_info*, u_int16_t, u_int16_t); -static inline u_int16_t wc_rdchctl(struct agg_info*, int); -static inline void wc_wrchctl(struct agg_info*, int, u_int16_t); +static void agg_stopclock(struct agg_info*, int part, int st); -static inline void agg_stopclock(struct agg_info*, int part, int st); +static void agg_initcodec(struct agg_info*); +static void agg_init(struct agg_info*); +static void agg_power(struct agg_info*, int); -static inline void agg_initcodec(struct agg_info*); -static void agg_init(struct agg_info*); -static void agg_power(struct agg_info*, int); +static void aggch_start_dac(struct agg_chinfo*); +static void aggch_stop_dac(struct agg_chinfo*); +static void aggch_start_adc(struct agg_rchinfo*); +static void aggch_stop_adc(struct agg_rchinfo*); +static void aggch_feed_adc_stereo(struct agg_rchinfo*); +static void aggch_feed_adc_mono(struct agg_rchinfo*); -static void aggch_start_dac(struct agg_chinfo*); -static void aggch_stop_dac(struct agg_chinfo*); -static void aggch_start_adc(struct agg_rchinfo*); -static void aggch_stop_adc(struct agg_rchinfo*); -static void aggch_feed_adc_stereo(struct agg_rchinfo*); -static void aggch_feed_adc_mono(struct agg_rchinfo*); +#ifdef AGG_JITTER_CORRECTION +static void suppress_jitter(struct agg_chinfo*); +static void suppress_rec_jitter(struct agg_rchinfo*); +#endif -static inline void suppress_jitter(struct agg_chinfo*); -static inline void suppress_rec_jitter(struct agg_rchinfo*); +static void set_timer(struct agg_info*); -static void set_timer(struct agg_info*); - -static void agg_intr(void *); -static int agg_probe(device_t); -static int agg_attach(device_t); -static int agg_detach(device_t); -static int agg_suspend(device_t); -static int agg_resume(device_t); -static int agg_shutdown(device_t); +static void agg_intr(void *); +static int agg_probe(device_t); +static int agg_attach(device_t); +static int agg_detach(device_t); +static int agg_suspend(device_t); +static int agg_resume(device_t); +static int agg_shutdown(device_t); static void *dma_malloc(bus_dma_tag_t, u_int32_t, bus_addr_t*); -static void dma_free(bus_dma_tag_t, void *); +static void dma_free(bus_dma_tag_t, void *); /* ----------------------------- @@ -265,24 +267,10 @@ */ /* locking */ +#define agg_lock(sc) snd_mtxlock(&((sc)->lock)) +#define agg_unlock(sc) snd_mtxunlock(&((sc)->lock)) -static inline void -agg_lock(struct agg_info *sc) -{ -#ifdef USING_MUTEX - mtx_lock(&sc->lock); -#endif -} - -static inline void -agg_unlock(struct agg_info *sc) -{ -#ifdef USING_MUTEX - mtx_unlock(&sc->lock); -#endif -} - -static inline void +static void agg_sleep(struct agg_info *sc, const char *wmesg, int msec) { int timo; @@ -300,7 +288,7 @@ /* I/O port */ -static inline u_int32_t +static __inline u_int32_t agg_rd(struct agg_info *sc, int regno, int size) { switch (size) { @@ -320,7 +308,7 @@ ((struct agg_info*)(sc))->st, \ ((struct agg_info*)(sc))->sh, (regno)) -static inline void +static __inline void agg_wr(struct agg_info *sc, int regno, u_int32_t data, int size) { switch (size) { @@ -345,7 +333,7 @@ /* Codec/Ringbus */ -static inline int +static int agg_codec_wait4idle(struct agg_info *ess) { unsigned t = 26; @@ -359,7 +347,7 @@ } -static inline int +static int agg_rdcodec(struct agg_info *ess, int regno) { int ret; @@ -386,7 +374,7 @@ return ret; } -static inline int +static int agg_wrcodec(struct agg_info *ess, int regno, u_int32_t data) { /* We have to wait for a SAFE time to write addr/data */ @@ -409,7 +397,7 @@ return 0; } -static inline void +static void ringbus_setdest(struct agg_info *ess, int src, int dest) { u_int32_t data; @@ -424,21 +412,21 @@ /* Wave Processor */ -static inline u_int16_t +static u_int16_t wp_rdreg(struct agg_info *ess, u_int16_t reg) { AGG_WR(ess, PORT_DSP_INDEX, reg, 2); return AGG_RD(ess, PORT_DSP_DATA, 2); } -static inline void +static void wp_wrreg(struct agg_info *ess, u_int16_t reg, u_int16_t data) { AGG_WR(ess, PORT_DSP_INDEX, reg, 2); AGG_WR(ess, PORT_DSP_DATA, data, 2); } -static inline int +static int wp_wait_data(struct agg_info *ess, u_int16_t data) { unsigned t = 0; @@ -453,7 +441,7 @@ return 0; } -static inline u_int16_t +static u_int16_t wp_rdapu(struct agg_info *ess, unsigned ch, u_int16_t reg) { wp_wrreg(ess, WPREG_CRAM_PTR, reg | (ch << 4)); @@ -462,14 +450,15 @@ return wp_rdreg(ess, WPREG_DATA_PORT); } -static inline void +static void wp_wrapu(struct agg_info *ess, unsigned ch, u_int16_t reg, u_int16_t data) { wp_wrreg(ess, WPREG_CRAM_PTR, reg | (ch << 4)); if (wp_wait_data(ess, reg | (ch << 4)) == 0) { wp_wrreg(ess, WPREG_DATA_PORT, data); if (wp_wait_data(ess, data) != 0) - device_printf(ess->dev, "wp_wrapu() write timed out.\n"); + device_printf(ess->dev, + "wp_wrapu() write timed out.\n"); } else { device_printf(ess->dev, "wp_wrapu() indexing timed out.\n"); } @@ -493,7 +482,7 @@ wp_wrapu(ess, apuch, APUREG_FREQ_HIWORD, dv >> 8); } -static inline void +static void wp_settimer(struct agg_info *ess, u_int divide) { u_int prescale = 0; @@ -514,7 +503,7 @@ wp_wrreg(ess, WPREG_TIMER_ENABLE, 1); } -static inline void +static void wp_starttimer(struct agg_info *ess) { AGG_WR(ess, PORT_INT_STAT, 1, 2); @@ -523,7 +512,7 @@ wp_wrreg(ess, WPREG_TIMER_START, 1); } -static inline void +static void wp_stoptimer(struct agg_info *ess) { AGG_WR(ess, PORT_HOSTINT_CTRL, ~HOSTINT_CTRL_DSOUND_INT_ENABLED @@ -536,27 +525,31 @@ /* WaveCache */ -static inline u_int16_t +#if 0 +static u_int16_t wc_rdreg(struct agg_info *ess, u_int16_t reg) { AGG_WR(ess, PORT_WAVCACHE_INDEX, reg, 2); return AGG_RD(ess, PORT_WAVCACHE_DATA, 2); } +#endif -static inline void +static void wc_wrreg(struct agg_info *ess, u_int16_t reg, u_int16_t data) { AGG_WR(ess, PORT_WAVCACHE_INDEX, reg, 2); AGG_WR(ess, PORT_WAVCACHE_DATA, data, 2); } -static inline u_int16_t +#if 0 +static u_int16_t wc_rdchctl(struct agg_info *ess, int ch) { return wc_rdreg(ess, ch << 3); } +#endif -static inline void +static void wc_wrchctl(struct agg_info *ess, int ch, u_int16_t data) { wc_wrreg(ess, ch << 3, data); @@ -565,7 +558,7 @@ /* -------------------------------------------------------------------- */ /* Power management */ -static inline void +static void agg_stopclock(struct agg_info *ess, int part, int st) { u_int32_t data; @@ -589,7 +582,7 @@ * Controller. */ -static inline void +static void agg_initcodec(struct agg_info* ess) { u_int16_t data; @@ -773,7 +766,8 @@ DELAY(100); #if 0 if ((agg_rdcodec(ess, AC97_REG_POWER) & 3) != 3) - device_printf(ess->dev, "warning: codec not ready.\n"); + device_printf(ess->dev, + "warning: codec not ready.\n"); #endif AGG_WR(ess, PORT_RINGBUS_CTRL, (AGG_RD(ess, PORT_RINGBUS_CTRL, 4) @@ -1068,7 +1062,7 @@ * * XXX - this function works in 16bit stereo format only. */ -static inline void +static void interleave(int16_t *l, int16_t *r, int16_t *p, unsigned n) { int16_t *end; @@ -1110,7 +1104,7 @@ * * XXX - this function works in 16bit monoral format only. */ -static inline void +static void mixdown(int16_t *src, int16_t *dest, unsigned n) { int16_t *end; @@ -1138,12 +1132,13 @@ ch->hwptr = cur; } +#ifdef AGG_JITTER_CORRECTION /* * Stereo jitter suppressor. * Sometimes playback pointers differ in stereo-paired channels. * Calling this routine within intr fixes the problem. */ -static inline void +static void suppress_jitter(struct agg_chinfo *ch) { if (ch->stereo) { @@ -1160,7 +1155,7 @@ } } -static inline void +static void suppress_rec_jitter(struct agg_rchinfo *ch) { int cp1, cp2, diff /*, halfsize*/ ; @@ -1175,8 +1170,9 @@ AGG_WR(ch->parent, PORT_DSP_DATA, cp1, 2); } } +#endif -static inline u_int +static u_int calc_timer_div(struct agg_chinfo *ch) { u_int speed; @@ -1193,7 +1189,7 @@ + speed - 1) / speed; } -static inline u_int +static u_int calc_timer_div_rch(struct agg_rchinfo *ch) { u_int speed; @@ -1280,7 +1276,8 @@ /* Playback channel. */ static void * -aggpch_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, struct pcm_channel *c, int dir) +aggpch_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, + struct pcm_channel *c, int dir) { struct agg_info *ess = devinfo; struct agg_chinfo *ch; @@ -1485,7 +1482,8 @@ /* Recording channel. */ static void * -aggrch_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, struct pcm_channel *c, int dir) +aggrch_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, + struct pcm_channel *c, int dir) { struct agg_info *ess = devinfo; struct agg_rchinfo *ch; ==== //depot/projects/zcopybpf/src/sys/dev/sound/pci/via8233.c#2 (text+ko) ==== @@ -44,7 +44,7 @@ #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/via8233.c,v 1.26 2006/11/26 12:24:05 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/via8233.c,v 1.28 2007/01/27 07:35:05 ariff Exp $"); #define VIA8233_PCI_ID 0x30591106 @@ -63,7 +63,7 @@ #define NCHANS (NWRCHANS + NDXSCHANS + NMSGDCHANS) #define NSEGS NCHANS * SEGS_PER_CHAN /* Segments in SGD table */ #define VIA_SEGS_MIN 2 -#define VIA_SEGS_MAX 128 +#define VIA_SEGS_MAX 64 #define VIA_SEGS_DEFAULT 2 #define VIA_DEFAULT_BUFSZ 0x1000 @@ -1234,7 +1234,7 @@ else via->dxs_src = 0; - nsegs = (via_dxs_chnum + via_sgd_chnum) * via->blkcnt; + nsegs = (via_dxs_chnum + via_sgd_chnum + NWRCHANS) * via->blkcnt; /* DMA tag for buffers */ if (bus_dma_tag_create(/*parent*/NULL, /*alignment*/2, /*boundary*/0, ==== //depot/projects/zcopybpf/src/sys/dev/sound/usb/uaudio.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* $NetBSD: uaudio.c,v 1.91 2004/11/05 17:46:14 kent Exp $ */ -/* $FreeBSD: src/sys/dev/sound/usb/uaudio.c,v 1.24 2007/01/06 19:08:39 netchild Exp $ */ +/* $FreeBSD: src/sys/dev/sound/usb/uaudio.c,v 1.25 2007/01/26 19:06:17 ariff Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -4490,11 +4490,19 @@ sbuf_printf(s, "interrupts %d, ", c->interrupts); if (c->direction == PCMDIR_REC) - sbuf_printf(s, "overruns %d, hfree %d, sfree %d", - c->xruns, sndbuf_getfree(c->bufhard), sndbuf_getfree(c->bufsoft)); + sbuf_printf(s, "overruns %d, feed %u, hfree %d, sfree %d [b:%d/%d/%d|bs:%d/%d/%d]", + c->xruns, c->feedcount, sndbuf_getfree(c->bufhard), sndbuf_getfree(c->bufsoft), + sndbuf_getsize(c->bufhard), sndbuf_getblksz(c->bufhard), + sndbuf_getblkcnt(c->bufhard), + sndbuf_getsize(c->bufsoft), sndbuf_getblksz(c->bufsoft), >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jan 29 09:15:53 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3B38016A405; Mon, 29 Jan 2007 09:15:53 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0E67E16A401 for ; Mon, 29 Jan 2007 09:15:53 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id F123E13C442 for ; Mon, 29 Jan 2007 09:15:52 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0T9Fqeu064333 for ; Mon, 29 Jan 2007 09:15:52 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0T9FqLl064330 for perforce@freebsd.org; Mon, 29 Jan 2007 09:15:52 GMT (envelope-from rdivacky@FreeBSD.org) Date: Mon, 29 Jan 2007 09:15:52 GMT Message-Id: <200701290915.l0T9FqLl064330@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113660 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jan 2007 09:15:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=113660 Change 113660 by rdivacky@rdivacky_witten on 2007/01/29 09:15:39 Fix LOR that occurs because we acquired proctree_lock while holding emuldata lock. Affected files ... .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_machdep.c#32 edit .. //depot/projects/linuxolator/src/sys/i386/linux/linux_machdep.c#26 edit Differences ... ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_machdep.c#32 (text+ko) ==== @@ -613,6 +613,14 @@ error = fork1(td, ff, 0, &p2); if (error) return (error); + + if (args->flags & (CLONE_PARENT|CLONE_THREAD)) { + sx_xlock(&proctree_lock); + PROC_LOCK(p2); + proc_reparent(p2, td->td_proc->p_pptr); + PROC_UNLOCK(p2); + sx_xunlock(&proctree_lock); + } /* create the emuldata */ error = linux_proc_init(td, p2->p_pid, args->flags); @@ -632,14 +640,6 @@ } } - if (args->flags & (CLONE_PARENT|CLONE_THREAD)) { - sx_xlock(&proctree_lock); - PROC_LOCK(p2); - proc_reparent(p2, td->td_proc->p_pptr); - PROC_UNLOCK(p2); - sx_xunlock(&proctree_lock); - } - if (args->flags & CLONE_THREAD) { #ifdef notyet PROC_LOCK(p2); ==== //depot/projects/linuxolator/src/sys/i386/linux/linux_machdep.c#26 (text+ko) ==== @@ -426,6 +426,14 @@ error = fork1(td, ff, 0, &p2); if (error) return (error); + + if (args->flags & (CLONE_PARENT|CLONE_THREAD)) { + sx_xlock(&proctree_lock); + PROC_LOCK(p2); + proc_reparent(p2, td->td_proc->p_pptr); + PROC_UNLOCK(p2); + sx_xunlock(&proctree_lock); + } /* create the emuldata */ error = linux_proc_init(td, p2->p_pid, args->flags); @@ -445,14 +453,6 @@ } } - if (args->flags & (CLONE_PARENT|CLONE_THREAD)) { - sx_xlock(&proctree_lock); - PROC_LOCK(p2); - proc_reparent(p2, td->td_proc->p_pptr); - PROC_UNLOCK(p2); - sx_xunlock(&proctree_lock); - } - if (args->flags & CLONE_THREAD) { #ifdef notyet PROC_LOCK(p2); From owner-p4-projects@FreeBSD.ORG Mon Jan 29 13:03:39 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1570A16A40D; Mon, 29 Jan 2007 13:03:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CB16C16A40A for ; Mon, 29 Jan 2007 13:03:38 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A1F2D13C4AC for ; Mon, 29 Jan 2007 13:03:38 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0TD3ciB016335 for ; Mon, 29 Jan 2007 13:03:38 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0TD3c2A016330 for perforce@freebsd.org; Mon, 29 Jan 2007 13:03:38 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 29 Jan 2007 13:03:38 GMT Message-Id: <200701291303.l0TD3c2A016330@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113663 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jan 2007 13:03:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=113663 Change 113663 by rwatson@rwatson_cinnamon on 2007/01/29 13:03:19 Integrate bpf.c to bpf_buffer.c so that the kernel buffering bits of BPF can be abstracted behind a similar interface for those for zero copy. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_buffer.c#1 branch Differences ... From owner-p4-projects@FreeBSD.ORG Mon Jan 29 13:08:45 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B70FE16A403; Mon, 29 Jan 2007 13:08:45 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9132816A401 for ; Mon, 29 Jan 2007 13:08:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7ED0713C474 for ; Mon, 29 Jan 2007 13:08:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0TD8jox016844 for ; Mon, 29 Jan 2007 13:08:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0TD8jDQ016841 for perforce@freebsd.org; Mon, 29 Jan 2007 13:08:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 29 Jan 2007 13:08:45 GMT Message-Id: <200701291308.l0TD8jDQ016841@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113664 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jan 2007 13:08:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=113664 Change 113664 by rwatson@rwatson_cinnamon on 2007/01/29 13:08:15 Trim a lot of stuff from bpf_buffer.c, mostly the right stuff sort of. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_buffer.c#2 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf_buffer.c#2 (text+ko) ==== @@ -86,373 +86,6 @@ #define PRINET 26 /* interruptible */ /* - * bpf_iflist is a list of BPF interface structures, each corresponding to a - * specific DLT. The same network interface might have several BPF interface - * structures registered by different layers in the stack (i.e., 802.11 - * frames, ethernet frames, etc). - */ -static LIST_HEAD(, bpf_if) bpf_iflist; -static struct mtx bpf_mtx; /* bpf global lock */ -static int bpf_bpfd_cnt; - -static void bpf_allocbufs(struct bpf_d *); -static void bpf_attachd(struct bpf_d *, struct bpf_if *); -static void bpf_detachd(struct bpf_d *); -static void bpf_freed(struct bpf_d *); -static void bpf_mcopy(const void *, void *, size_t); -static int bpf_movein(struct uio *, int, int, - struct mbuf **, struct sockaddr *, struct bpf_insn *); -static int bpf_setif(struct bpf_d *, struct ifreq *); -static void bpf_timed_out(void *); -static __inline void - bpf_wakeup(struct bpf_d *); -static void catchpacket(struct bpf_d *, u_char *, u_int, - u_int, void (*)(const void *, void *, size_t), - struct timeval *); -static void reset_d(struct bpf_d *); -static int bpf_setf(struct bpf_d *, struct bpf_program *, u_long cmd); -static int bpf_getdltlist(struct bpf_d *, struct bpf_dltlist *); -static int bpf_setdlt(struct bpf_d *, u_int); -static void filt_bpfdetach(struct knote *); -static int filt_bpfread(struct knote *, long); -static void bpf_drvinit(void *); -static void bpf_clone(void *, struct ucred *, char *, int, struct cdev **); -static int bpf_stats_sysctl(SYSCTL_HANDLER_ARGS); - -/* - * The default read buffer size is patchable. - */ -SYSCTL_NODE(_net, OID_AUTO, bpf, CTLFLAG_RW, 0, "bpf sysctl"); -static int bpf_bufsize = 4096; -SYSCTL_INT(_net_bpf, OID_AUTO, bufsize, CTLFLAG_RW, - &bpf_bufsize, 0, ""); -static int bpf_maxbufsize = BPF_MAXBUFSIZE; -SYSCTL_INT(_net_bpf, OID_AUTO, maxbufsize, CTLFLAG_RW, - &bpf_maxbufsize, 0, ""); -static int bpf_maxinsns = BPF_MAXINSNS; -SYSCTL_INT(_net_bpf, OID_AUTO, maxinsns, CTLFLAG_RW, - &bpf_maxinsns, 0, "Maximum bpf program instructions"); -SYSCTL_NODE(_net_bpf, OID_AUTO, stats, CTLFLAG_RW, - bpf_stats_sysctl, "bpf statistics portal"); - -static d_open_t bpfopen; -static d_close_t bpfclose; -static d_read_t bpfread; -static d_write_t bpfwrite; -static d_ioctl_t bpfioctl; -static d_poll_t bpfpoll; -static d_kqfilter_t bpfkqfilter; - -static struct cdevsw bpf_cdevsw = { - .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, - .d_open = bpfopen, - .d_close = bpfclose, - .d_read = bpfread, - .d_write = bpfwrite, - .d_ioctl = bpfioctl, - .d_poll = bpfpoll, - .d_name = "bpf", - .d_kqfilter = bpfkqfilter, -}; - -static struct filterops bpfread_filtops = - { 1, NULL, filt_bpfdetach, filt_bpfread }; - -static int -bpf_movein(struct uio *uio, int linktype, int mtu, struct mbuf **mp, - struct sockaddr *sockp, struct bpf_insn *wfilter) -{ - const struct ieee80211_bpf_params *p; - struct mbuf *m; - int error; - int len; - int hlen; - int slen; - - /* - * Build a sockaddr based on the data link layer type. - * We do this at this level because the ethernet header - * is copied directly into the data field of the sockaddr. - * In the case of SLIP, there is no header and the packet - * is forwarded as is. - * Also, we are careful to leave room at the front of the mbuf - * for the link level header. - */ - switch (linktype) { - - case DLT_SLIP: - sockp->sa_family = AF_INET; - hlen = 0; - break; - - case DLT_EN10MB: - sockp->sa_family = AF_UNSPEC; - /* XXX Would MAXLINKHDR be better? */ - hlen = ETHER_HDR_LEN; - break; - - case DLT_FDDI: - sockp->sa_family = AF_IMPLINK; - hlen = 0; - break; - - case DLT_RAW: - sockp->sa_family = AF_UNSPEC; - hlen = 0; - break; - - case DLT_NULL: - /* - * null interface types require a 4 byte pseudo header which - * corresponds to the address family of the packet. - */ - sockp->sa_family = AF_UNSPEC; - hlen = 4; - break; - - case DLT_ATM_RFC1483: - /* - * en atm driver requires 4-byte atm pseudo header. - * though it isn't standard, vpi:vci needs to be - * specified anyway. - */ - sockp->sa_family = AF_UNSPEC; - hlen = 12; /* XXX 4(ATM_PH) + 3(LLC) + 5(SNAP) */ - break; - - case DLT_PPP: - sockp->sa_family = AF_UNSPEC; - hlen = 4; /* This should match PPP_HDRLEN */ - break; - - case DLT_IEEE802_11: /* IEEE 802.11 wireless */ - sockp->sa_family = AF_IEEE80211; - hlen = 0; - break; - - case DLT_IEEE802_11_RADIO: /* IEEE 802.11 wireless w/ phy params */ - sockp->sa_family = AF_IEEE80211; - sockp->sa_len = 12; /* XXX != 0 */ - hlen = sizeof(struct ieee80211_bpf_params); - break; - - default: - return (EIO); - } - - len = uio->uio_resid; - - if (len - hlen > mtu) - return (EMSGSIZE); - - if ((unsigned)len > MCLBYTES) - return (EIO); - - if (len > MHLEN) { - m = m_getcl(M_TRYWAIT, MT_DATA, M_PKTHDR); - } else { - MGETHDR(m, M_TRYWAIT, MT_DATA); - } - if (m == NULL) - return (ENOBUFS); - m->m_pkthdr.len = m->m_len = len; - m->m_pkthdr.rcvif = NULL; - *mp = m; - - if (m->m_len < hlen) { - error = EPERM; - goto bad; - } - - error = uiomove(mtod(m, u_char *), len, uio); - if (error) - goto bad; - - slen = bpf_filter(wfilter, mtod(m, u_char *), len, len); - if (slen == 0) { - error = EPERM; - goto bad; - } - - /* - * Make room for link header, and copy it to sockaddr - */ - if (hlen != 0) { - if (sockp->sa_family == AF_IEEE80211) { - /* - * Collect true length from the parameter header - * NB: sockp is known to be zero'd so if we do a - * short copy unspecified parameters will be - * zero. - * NB: packet may not be aligned after stripping - * bpf params - * XXX check ibp_vers - */ - p = mtod(m, const struct ieee80211_bpf_params *); - hlen = p->ibp_len; - if (hlen > sizeof(sockp->sa_data)) { - error = EINVAL; - goto bad; - } - } - bcopy(m->m_data, sockp->sa_data, hlen); - m->m_pkthdr.len -= hlen; - m->m_len -= hlen; -#if BSD >= 199103 - m->m_data += hlen; /* XXX */ -#else - m->m_off += hlen; -#endif - } - - return (0); -bad: - m_freem(m); - return (error); -} - -/* - * Attach file to the bpf interface, i.e. make d listen on bp. - */ -static void -bpf_attachd(struct bpf_d *d, struct bpf_if *bp) -{ - /* - * Point d at bp, and add d to the interface's list of listeners. - * Finally, point the driver's bpf cookie at the interface so - * it will divert packets to bpf. - */ - BPFIF_LOCK(bp); - d->bd_bif = bp; - LIST_INSERT_HEAD(&bp->bif_dlist, d, bd_next); - - bpf_bpfd_cnt++; - BPFIF_UNLOCK(bp); -} - -/* - * Detach a file from its interface. - */ -static void -bpf_detachd(struct bpf_d *d) -{ - int error; - struct bpf_if *bp; - struct ifnet *ifp; - - bp = d->bd_bif; - BPFIF_LOCK(bp); - BPFD_LOCK(d); - ifp = d->bd_bif->bif_ifp; - - /* - * Remove d from the interface's descriptor list. - */ - LIST_REMOVE(d, bd_next); - - bpf_bpfd_cnt--; - d->bd_bif = NULL; - BPFD_UNLOCK(d); - BPFIF_UNLOCK(bp); - - /* - * Check if this descriptor had requested promiscuous mode. - * If so, turn it off. - */ - if (d->bd_promisc) { - d->bd_promisc = 0; - error = ifpromisc(ifp, 0); - if (error != 0 && error != ENXIO) { - /* - * ENXIO can happen if a pccard is unplugged - * Something is really wrong if we were able to put - * the driver into promiscuous mode, but can't - * take it out. - */ - if_printf(bp->bif_ifp, - "bpf_detach: ifpromisc failed (%d)\n", error); - } - } -} - -/* - * Open ethernet device. Returns ENXIO for illegal minor device number, - * EBUSY if file is open by another process. - */ -/* ARGSUSED */ -static int -bpfopen(struct cdev *dev, int flags, int fmt, struct thread *td) -{ - struct bpf_d *d; - - mtx_lock(&bpf_mtx); - d = dev->si_drv1; - /* - * Each minor can be opened by only one process. If the requested - * minor is in use, return EBUSY. - */ - if (d != NULL) { - mtx_unlock(&bpf_mtx); - return (EBUSY); - } - dev->si_drv1 = (struct bpf_d *)~0; /* mark device in use */ - mtx_unlock(&bpf_mtx); - - if ((dev->si_flags & SI_NAMED) == 0) - make_dev(&bpf_cdevsw, minor(dev), UID_ROOT, GID_WHEEL, 0600, - "bpf%d", dev2unit(dev)); - MALLOC(d, struct bpf_d *, sizeof(*d), M_BPF, M_WAITOK | M_ZERO); - dev->si_drv1 = d; - d->bd_bufsize = bpf_bufsize; - d->bd_sig = SIGIO; - d->bd_seesent = 1; - d->bd_pid = td->td_proc->p_pid; -#ifdef MAC - mac_init_bpfdesc(d); - mac_create_bpfdesc(td->td_ucred, d); -#endif - mtx_init(&d->bd_mtx, devtoname(dev), "bpf cdev lock", MTX_DEF); - callout_init(&d->bd_callout, NET_CALLOUT_MPSAFE); - knlist_init(&d->bd_sel.si_note, &d->bd_mtx, NULL, NULL, NULL); - - return (0); -} - -/* - * Close the descriptor by detaching it from its interface, - * deallocating its buffers, and marking it free. - */ -/* ARGSUSED */ -static int -bpfclose(struct cdev *dev, int flags, int fmt, struct thread *td) -{ - struct bpf_d *d = dev->si_drv1; - - BPFD_LOCK(d); - if (d->bd_state == BPF_WAITING) - callout_stop(&d->bd_callout); - d->bd_state = BPF_IDLE; - BPFD_UNLOCK(d); - funsetown(&d->bd_sigio); - mtx_lock(&bpf_mtx); - if (d->bd_bif) - bpf_detachd(d); - mtx_unlock(&bpf_mtx); - selwakeuppri(&d->bd_sel, PRINET); -#ifdef MAC - mac_destroy_bpfdesc(d); -#endif /* MAC */ - knlist_destroy(&d->bd_sel.si_note); - bpf_freed(d); - dev->si_drv1 = NULL; - free(d, M_BPF); - - return (0); -} - - -/* * Rotate the packet buffers in descriptor d. Move the store buffer * into the hold slot, and the free buffer into the store slot. * Zero the length of the new store buffer. @@ -565,701 +198,7 @@ return (error); } - -/* - * If there are processes sleeping on this descriptor, wake them up. - */ -static __inline void -bpf_wakeup(struct bpf_d *d) -{ - - BPFD_LOCK_ASSERT(d); - if (d->bd_state == BPF_WAITING) { - callout_stop(&d->bd_callout); - d->bd_state = BPF_IDLE; - } - wakeup(d); - if (d->bd_async && d->bd_sig && d->bd_sigio) - pgsigio(&d->bd_sigio, d->bd_sig, 0); - - selwakeuppri(&d->bd_sel, PRINET); - KNOTE_LOCKED(&d->bd_sel.si_note, 0); -} - -static void -bpf_timed_out(void *arg) -{ - struct bpf_d *d = (struct bpf_d *)arg; - - BPFD_LOCK(d); - if (d->bd_state == BPF_WAITING) { - d->bd_state = BPF_TIMED_OUT; - if (d->bd_slen != 0) - bpf_wakeup(d); - } - BPFD_UNLOCK(d); -} - -static int -bpfwrite(struct cdev *dev, struct uio *uio, int ioflag) -{ - struct bpf_d *d = dev->si_drv1; - struct ifnet *ifp; - struct mbuf *m; - int error; - struct sockaddr dst; - - if (d->bd_bif == NULL) - return (ENXIO); - - ifp = d->bd_bif->bif_ifp; - - if ((ifp->if_flags & IFF_UP) == 0) - return (ENETDOWN); - - if (uio->uio_resid == 0) - return (0); - - bzero(&dst, sizeof(dst)); - error = bpf_movein(uio, (int)d->bd_bif->bif_dlt, ifp->if_mtu, - &m, &dst, d->bd_wfilter); - if (error) - return (error); - - if (d->bd_hdrcmplt) - dst.sa_family = pseudo_AF_HDRCMPLT; - -#ifdef MAC - BPFD_LOCK(d); - mac_create_mbuf_from_bpfdesc(d, m); - BPFD_UNLOCK(d); -#endif - NET_LOCK_GIANT(); - error = (*ifp->if_output)(ifp, m, &dst, NULL); - NET_UNLOCK_GIANT(); - /* - * The driver frees the mbuf. - */ - return (error); -} - -/* - * Reset a descriptor by flushing its packet buffer and clearing the - * receive and drop counts. - */ -static void -reset_d(struct bpf_d *d) -{ - - mtx_assert(&d->bd_mtx, MA_OWNED); - if (d->bd_hbuf) { - /* Free the hold buffer. */ - d->bd_fbuf = d->bd_hbuf; - d->bd_hbuf = NULL; - } - d->bd_slen = 0; - d->bd_hlen = 0; - d->bd_rcount = 0; - d->bd_dcount = 0; - d->bd_fcount = 0; -} - -/* - * FIONREAD Check for read packet available. - * SIOCGIFADDR Get interface address - convenient hook to driver. - * BIOCGBLEN Get buffer len [for read()]. - * BIOCSETF Set ethernet read filter. - * BIOCSETWF Set ethernet write filter. - * BIOCFLUSH Flush read packet buffer. - * BIOCPROMISC Put interface into promiscuous mode. - * BIOCGDLT Get link layer type. - * BIOCGETIF Get interface name. - * BIOCSETIF Set interface. - * BIOCSRTIMEOUT Set read timeout. - * BIOCGRTIMEOUT Get read timeout. - * BIOCGSTATS Get packet stats. - * BIOCIMMEDIATE Set immediate mode. - * BIOCVERSION Get filter language version. - * BIOCGHDRCMPLT Get "header already complete" flag - * BIOCSHDRCMPLT Set "header already complete" flag - * BIOCGSEESENT Get "see packets sent" flag - * BIOCSSEESENT Set "see packets sent" flag - * BIOCLOCK Set "locked" flag - */ -/* ARGSUSED */ -static int -bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags, - struct thread *td) -{ - struct bpf_d *d = dev->si_drv1; - int error = 0; - - /* - * Refresh PID associated with this descriptor. - */ - BPFD_LOCK(d); - d->bd_pid = td->td_proc->p_pid; - if (d->bd_state == BPF_WAITING) - callout_stop(&d->bd_callout); - d->bd_state = BPF_IDLE; - BPFD_UNLOCK(d); - - if (d->bd_locked == 1) { - switch (cmd) { - case BIOCGBLEN: - case BIOCFLUSH: - case BIOCGDLT: - case BIOCGDLTLIST: - case BIOCGETIF: - case BIOCGRTIMEOUT: - case BIOCGSTATS: - case BIOCVERSION: - case BIOCGRSIG: - case BIOCGHDRCMPLT: - case FIONREAD: - case BIOCLOCK: - case BIOCSRTIMEOUT: - case BIOCIMMEDIATE: - case TIOCGPGRP: - break; - default: - return (EPERM); - } - } - switch (cmd) { - - default: - error = EINVAL; - break; - - /* - * Check for read packet available. - */ - case FIONREAD: - { - int n; - - BPFD_LOCK(d); - n = d->bd_slen; - if (d->bd_hbuf) - n += d->bd_hlen; - BPFD_UNLOCK(d); - - *(int *)addr = n; - break; - } - - case SIOCGIFADDR: - { - struct ifnet *ifp; - - if (d->bd_bif == NULL) - error = EINVAL; - else { - ifp = d->bd_bif->bif_ifp; - error = (*ifp->if_ioctl)(ifp, cmd, addr); - } - break; - } - - /* - * Get buffer len [for read()]. - */ - case BIOCGBLEN: - *(u_int *)addr = d->bd_bufsize; - break; - - /* - * Set buffer length. - */ - case BIOCSBLEN: - if (d->bd_bif != NULL) - error = EINVAL; - else { - u_int size = *(u_int *)addr; - - if (size > bpf_maxbufsize) - *(u_int *)addr = size = bpf_maxbufsize; - else if (size < BPF_MINBUFSIZE) - *(u_int *)addr = size = BPF_MINBUFSIZE; - d->bd_bufsize = size; - } - break; - - /* - * Set link layer read filter. - */ - case BIOCSETF: - case BIOCSETWF: - error = bpf_setf(d, (struct bpf_program *)addr, cmd); - break; - - /* - * Flush read packet buffer. - */ - case BIOCFLUSH: - BPFD_LOCK(d); - reset_d(d); - BPFD_UNLOCK(d); - break; - - /* - * Put interface into promiscuous mode. - */ - case BIOCPROMISC: - if (d->bd_bif == NULL) { - /* - * No interface attached yet. - */ - error = EINVAL; - break; - } - if (d->bd_promisc == 0) { - mtx_lock(&Giant); - error = ifpromisc(d->bd_bif->bif_ifp, 1); - mtx_unlock(&Giant); - if (error == 0) - d->bd_promisc = 1; - } - break; - - /* - * Get current data link type. - */ - case BIOCGDLT: - if (d->bd_bif == NULL) - error = EINVAL; - else - *(u_int *)addr = d->bd_bif->bif_dlt; - break; - - /* - * Get a list of supported data link types. - */ - case BIOCGDLTLIST: - if (d->bd_bif == NULL) - error = EINVAL; - else - error = bpf_getdltlist(d, (struct bpf_dltlist *)addr); - break; - - /* - * Set data link type. - */ - case BIOCSDLT: - if (d->bd_bif == NULL) - error = EINVAL; - else - error = bpf_setdlt(d, *(u_int *)addr); - break; - - /* - * Get interface name. - */ - case BIOCGETIF: - if (d->bd_bif == NULL) - error = EINVAL; - else { - struct ifnet *const ifp = d->bd_bif->bif_ifp; - struct ifreq *const ifr = (struct ifreq *)addr; - - strlcpy(ifr->ifr_name, ifp->if_xname, - sizeof(ifr->ifr_name)); - } - break; - - /* - * Set interface. - */ - case BIOCSETIF: - error = bpf_setif(d, (struct ifreq *)addr); - break; - - /* - * Set read timeout. - */ - case BIOCSRTIMEOUT: - { - struct timeval *tv = (struct timeval *)addr; - - /* - * Subtract 1 tick from tvtohz() since this isn't - * a one-shot timer. - */ - if ((error = itimerfix(tv)) == 0) - d->bd_rtout = tvtohz(tv) - 1; - break; - } - - /* - * Get read timeout. - */ - case BIOCGRTIMEOUT: - { - struct timeval *tv = (struct timeval *)addr; - - tv->tv_sec = d->bd_rtout / hz; - tv->tv_usec = (d->bd_rtout % hz) * tick; - break; - } - - /* - * Get packet stats. - */ - case BIOCGSTATS: - { - struct bpf_stat *bs = (struct bpf_stat *)addr; - - bs->bs_recv = d->bd_rcount; - bs->bs_drop = d->bd_dcount; - break; - } - - /* - * Set immediate mode. - */ - case BIOCIMMEDIATE: - d->bd_immediate = *(u_int *)addr; - break; - - case BIOCVERSION: - { - struct bpf_version *bv = (struct bpf_version *)addr; - - bv->bv_major = BPF_MAJOR_VERSION; - bv->bv_minor = BPF_MINOR_VERSION; - break; - } - - /* - * Get "header already complete" flag - */ - case BIOCGHDRCMPLT: - *(u_int *)addr = d->bd_hdrcmplt; - break; - - case BIOCLOCK: - d->bd_locked = 1; - break; - /* - * Set "header already complete" flag - */ - case BIOCSHDRCMPLT: - d->bd_hdrcmplt = *(u_int *)addr ? 1 : 0; - break; - - /* - * Get "see sent packets" flag - */ - case BIOCGSEESENT: - *(u_int *)addr = d->bd_seesent; - break; - - /* - * Set "see sent packets" flag - */ - case BIOCSSEESENT: - d->bd_seesent = *(u_int *)addr; - break; - - case FIONBIO: /* Non-blocking I/O */ - break; - - case FIOASYNC: /* Send signal on receive packets */ - d->bd_async = *(int *)addr; - break; - - case FIOSETOWN: - error = fsetown(*(int *)addr, &d->bd_sigio); - break; - - case FIOGETOWN: - *(int *)addr = fgetown(&d->bd_sigio); - break; - - /* This is deprecated, FIOSETOWN should be used instead. */ - case TIOCSPGRP: - error = fsetown(-(*(int *)addr), &d->bd_sigio); - break; - - /* This is deprecated, FIOGETOWN should be used instead. */ - case TIOCGPGRP: - *(int *)addr = -fgetown(&d->bd_sigio); - break; - - case BIOCSRSIG: /* Set receive signal */ - { - u_int sig; - - sig = *(u_int *)addr; - - if (sig >= NSIG) - error = EINVAL; - else - d->bd_sig = sig; - break; - } - case BIOCGRSIG: - *(u_int *)addr = d->bd_sig; - break; - } - return (error); -} - -/* - * Set d's packet filter program to fp. If this file already has a filter, - * free it and replace it. Returns EINVAL for bogus requests. - */ -static int -bpf_setf(struct bpf_d *d, struct bpf_program *fp, u_long cmd) -{ - struct bpf_insn *fcode, *old; - u_int wfilter, flen, size; -#ifdef BPF_JITTER - bpf_jit_filter *ofunc; -#endif - - if (cmd == BIOCSETWF) { - old = d->bd_wfilter; - wfilter = 1; -#ifdef BPF_JITTER - ofunc = NULL; -#endif - } else { - wfilter = 0; - old = d->bd_rfilter; -#ifdef BPF_JITTER - ofunc = d->bd_bfilter; -#endif - } - if (fp->bf_insns == NULL) { - if (fp->bf_len != 0) - return (EINVAL); - BPFD_LOCK(d); - if (wfilter) - d->bd_wfilter = NULL; - else { - d->bd_rfilter = NULL; -#ifdef BPF_JITTER - d->bd_bfilter = NULL; -#endif - } - reset_d(d); - BPFD_UNLOCK(d); - if (old != NULL) - free((caddr_t)old, M_BPF); -#ifdef BPF_JITTER - if (ofunc != NULL) - bpf_destroy_jit_filter(ofunc); -#endif - return (0); - } - flen = fp->bf_len; - if (flen > bpf_maxinsns) - return (EINVAL); - - size = flen * sizeof(*fp->bf_insns); - fcode = (struct bpf_insn *)malloc(size, M_BPF, M_WAITOK); - if (copyin((caddr_t)fp->bf_insns, (caddr_t)fcode, size) == 0 && - bpf_validate(fcode, (int)flen)) { - BPFD_LOCK(d); - if (wfilter) - d->bd_wfilter = fcode; - else { - d->bd_rfilter = fcode; -#ifdef BPF_JITTER - d->bd_bfilter = bpf_jitter(fcode, flen); -#endif - } - reset_d(d); - BPFD_UNLOCK(d); - if (old != NULL) - free((caddr_t)old, M_BPF); -#ifdef BPF_JITTER - if (ofunc != NULL) - bpf_destroy_jit_filter(ofunc); -#endif - - return (0); - } - free((caddr_t)fcode, M_BPF); - return (EINVAL); -} - -/* - * Detach a file from its current interface (if attached at all) and attach - * to the interface indicated by the name stored in ifr. - * Return an errno or 0. - */ -static int -bpf_setif(struct bpf_d *d, struct ifreq *ifr) -{ - struct bpf_if *bp; - struct ifnet *theywant; - - theywant = ifunit(ifr->ifr_name); - if (theywant == NULL || theywant->if_bpf == NULL) - return (ENXIO); - - bp = theywant->if_bpf; - /* - * Allocate the packet buffers if we need to. - * If we're already attached to requested interface, - * just flush the buffer. - */ - if (d->bd_sbuf == NULL) - bpf_allocbufs(d); - if (bp != d->bd_bif) { - if (d->bd_bif) - /* - * Detach if attached to something else. - */ - bpf_detachd(d); - - bpf_attachd(d, bp); - } - BPFD_LOCK(d); - reset_d(d); - BPFD_UNLOCK(d); - return (0); -} - -/* - * Support for select() and poll() system calls - * - * Return true iff the specific operation will not block indefinitely. - * Otherwise, return false but make a note that a selwakeup() must be done. - */ -static int -bpfpoll(struct cdev *dev, int events, struct thread *td) -{ - struct bpf_d *d; - int revents; - - d = dev->si_drv1; - if (d->bd_bif == NULL) - return (ENXIO); - - /* - * Refresh PID associated with this descriptor. - */ - revents = events & (POLLOUT | POLLWRNORM); - BPFD_LOCK(d); - d->bd_pid = td->td_proc->p_pid; - if (events & (POLLIN | POLLRDNORM)) { - if (bpf_ready(d)) - revents |= events & (POLLIN | POLLRDNORM); - else { - selrecord(td, &d->bd_sel); - /* Start the read timeout if necessary. */ - if (d->bd_rtout > 0 && d->bd_state == BPF_IDLE) { - callout_reset(&d->bd_callout, d->bd_rtout, - bpf_timed_out, d); - d->bd_state = BPF_WAITING; - } - } - } - BPFD_UNLOCK(d); - return (revents); -} - -/* - * Support for kevent() system call. Register EVFILT_READ filters and - * reject all others. - */ -int -bpfkqfilter(struct cdev *dev, struct knote *kn) -{ - struct bpf_d *d = (struct bpf_d *)dev->si_drv1; - - if (kn->kn_filter != EVFILT_READ) - return (1); - >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jan 29 13:55:03 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 72D8C16A404; Mon, 29 Jan 2007 13:55:03 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 321CB16A402 for ; Mon, 29 Jan 2007 13:55:03 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 1566913C4A3 for ; Mon, 29 Jan 2007 13:55:03 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0TDsxsk025391 for ; Mon, 29 Jan 2007 13:54:59 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0TDsxP5025388 for perforce@freebsd.org; Mon, 29 Jan 2007 13:54:59 GMT (envelope-from rdivacky@FreeBSD.org) Date: Mon, 29 Jan 2007 13:54:59 GMT Message-Id: <200701291354.l0TDsxP5025388@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113667 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jan 2007 13:55:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=113667 Change 113667 by rdivacky@rdivacky_witten on 2007/01/29 13:54:58 We dont have to lock emul_lock in exit_group() because em->shared cannot change (because its referenced by curthread). This fixes a LOR caused by acquiring emul_shared_lock while holding emul_lock. While here fix typo in comment. Affected files ... .. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#53 edit Differences ... ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#53 (text+ko) ==== @@ -1617,7 +1617,7 @@ #endif if (linux_use26(td)) { - td_em = em_find(td->td_proc, EMUL_DOLOCK); + td_em = em_find(td->td_proc, EMUL_DONTLOCK); KASSERT(td_em != NULL, ("exit_group: emuldata not found.\n")); @@ -1635,11 +1635,10 @@ } EMUL_SHARED_RUNLOCK(&emul_shared_lock); - EMUL_UNLOCK(&emul_lock); } /* * XXX: we should send a signal to the parent if - * SIGNAL_EXIT_GROUP is set. We ignore that (temporrarily?) + * SIGNAL_EXIT_GROUP is set. We ignore that (temporarily?) * as it doesnt occur often. */ exit1(td, W_EXITCODE(args->error_code, 0)); From owner-p4-projects@FreeBSD.ORG Mon Jan 29 20:33:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E23B716A405; Mon, 29 Jan 2007 20:33:31 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 97D4816A401 for ; Mon, 29 Jan 2007 20:33:31 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 88B3313C49D for ; Mon, 29 Jan 2007 20:33:31 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0TKXVIs009640 for ; Mon, 29 Jan 2007 20:33:31 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0TKXV0g009634 for perforce@freebsd.org; Mon, 29 Jan 2007 20:33:31 GMT (envelope-from rdivacky@FreeBSD.org) Date: Mon, 29 Jan 2007 20:33:31 GMT Message-Id: <200701292033.l0TKXV0g009634@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113673 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jan 2007 20:33:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=113673 Change 113673 by rdivacky@rdivacky_witten on 2007/01/29 20:33:26 o dont set p->p_emuldata to NULL when the process is exiting. it doesnt make any sense and only costs us 2 mtx operations. o dont lock emul_data to unlock it on the very next line. it doesnt serve any purpose and only slow things down. There might be race though, I am not sure and this needs some checking. Add a comment about it. Affected files ... .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#27 edit Differences ... ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#27 (text+ko) ==== @@ -167,10 +167,6 @@ EMUL_SHARED_WLOCK(&emul_shared_lock); LIST_REMOVE(em, threads); - PROC_LOCK(p); - p->p_emuldata = NULL; - PROC_UNLOCK(p); - em->shared->refs--; if (em->shared->refs == 0) free(em->shared, M_LINUX); @@ -241,12 +237,15 @@ && p->p_sysent == &elf_linux_sysvec)) { struct linux_emuldata *em; - em = em_find(p, EMUL_DOLOCK); + /* + * XXX: is it racy? if p->p_sysent still points at linux_sysvec + * it is. someone please check this. we were running with + * this race for quite a long time though. + */ + em = em_find(p, EMUL_DONTLOCK); KASSERT(em != NULL, ("proc_exec: emuldata not found.\n")); - EMUL_UNLOCK(&emul_lock); - EMUL_SHARED_WLOCK(&emul_shared_lock); LIST_REMOVE(em, threads); From owner-p4-projects@FreeBSD.ORG Mon Jan 29 21:13:22 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9C15E16A405; Mon, 29 Jan 2007 21:13:22 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6ECC116A403 for ; Mon, 29 Jan 2007 21:13:22 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 5FF6613C47E for ; Mon, 29 Jan 2007 21:13:22 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0TLDMkY028045 for ; Mon, 29 Jan 2007 21:13:22 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0TLDMBl028032 for perforce@freebsd.org; Mon, 29 Jan 2007 21:13:22 GMT (envelope-from rdivacky@FreeBSD.org) Date: Mon, 29 Jan 2007 21:13:22 GMT Message-Id: <200701292113.l0TLDMBl028032@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113675 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jan 2007 21:13:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=113675 Change 113675 by rdivacky@rdivacky_witten on 2007/01/29 21:13:01 There is no need to lock p_em in the linux_proc_init CLONE_THREAD case because the process cannot change the address of the p_em->shared because its currently running this code path. And the p_em->shared is the reason for synchronization here. Also protect onlu refs++ with the emul_shared_lock as em is local to our function. Affected files ... .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#28 edit Differences ... ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#28 (text+ko) ==== @@ -114,13 +114,18 @@ if (child != 0) { if (flags & CLONE_THREAD) { /* lookup the parent */ - EMUL_SHARED_WLOCK(&emul_shared_lock); - p_em = em_find(td->td_proc, EMUL_DOLOCK); + /* + * we dont have to lock the p_em because + * its waiting for us in linux_clone so + * there is no chance of it changing the + * p_em->shared address + */ + p_em = em_find(td->td_proc, EMUL_DONTLOCK); KASSERT(p_em != NULL, ("proc_init: parent emuldata not found for CLONE_THREAD\n")); em->shared = p_em->shared; + EMUL_SHARED_WLOCK(&emul_shared_lock); em->shared->refs++; - EMUL_SHARED_WUNLOCK(&emul_shared_lock); - EMUL_UNLOCK(&emul_lock); + EMUL_SHARED_WUNLOCK(&emul_shared_lock); } else { /* * handled earlier to avoid malloc(M_WAITOK) with From owner-p4-projects@FreeBSD.ORG Mon Jan 29 23:44:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 090E016A404; Mon, 29 Jan 2007 23:44:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BCA4F16A402 for ; Mon, 29 Jan 2007 23:44:31 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id AF1B513C467 for ; Mon, 29 Jan 2007 23:44:31 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0TNiVXU060053 for ; Mon, 29 Jan 2007 23:44:31 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0TNiVOE060050 for perforce@freebsd.org; Mon, 29 Jan 2007 23:44:31 GMT (envelope-from piso@freebsd.org) Date: Mon, 29 Jan 2007 23:44:31 GMT Message-Id: <200701292344.l0TNiVOE060050@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113677 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jan 2007 23:44:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=113677 Change 113677 by piso@piso_newluxor on 2007/01/29 23:44:30 Axe gargabe that crept in during the last IFC. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#34 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#34 (text+ko) ==== @@ -1212,26 +1212,15 @@ } /* Local prototypes */ -#ifdef _KERNEL static int -LibAliasOutLocked(struct libalias *la, struct mbuf *ptr, int maxpacketsize, - int create); +LibAliasOutLocked(struct libalias *la, char *ptr, + int maxpacketsize, int create); static int -LibAliasInLocked(struct libalias *la, struct mbuf *ptr, int maxpacketsize); -#else -static int -LibAliasOutLocked(struct libalias *la, char *ptr,int maxpacketsize, - int create); -static int -LibAliasInLocked(struct libalias *la, char *ptr, int maxpacketsize); -#endif +LibAliasInLocked(struct libalias *la, char *ptr, + int maxpacketsize); int -#ifdef _KERNEL -LibAliasIn(struct libalias *la, struct mbuf *ptr, int maxpacketsize) -#else LibAliasIn(struct libalias *la, char *ptr, int maxpacketsize) -#endif { int res; @@ -1242,11 +1231,7 @@ } static int -#ifdef _KERNEL -LibAliasInLocked(struct libalias *la, struct mbuf *ptr, int maxpacketsize) -#else LibAliasInLocked(struct libalias *la, char *ptr, int maxpacketsize) -#endif { struct in_addr alias_addr; struct ip *pip; From owner-p4-projects@FreeBSD.ORG Mon Jan 29 23:49:39 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DE4CE16A401; Mon, 29 Jan 2007 23:49:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 98FC916A408 for ; Mon, 29 Jan 2007 23:49:38 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 8B76E13C4A5 for ; Mon, 29 Jan 2007 23:49:38 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0TNnc7Y060276 for ; Mon, 29 Jan 2007 23:49:38 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0TNncrh060272 for perforce@freebsd.org; Mon, 29 Jan 2007 23:49:38 GMT (envelope-from piso@freebsd.org) Date: Mon, 29 Jan 2007 23:49:38 GMT Message-Id: <200701292349.l0TNncrh060272@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113678 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jan 2007 23:49:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=113678 Change 113678 by piso@piso_newluxor on 2007/01/29 23:49:36 Eliminate an usage of ip_next() in alias_proxy.c::ProxyCheck(), and push its usage at an upper layer. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#35 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#12 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#13 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#35 (text+ko) ==== @@ -974,10 +974,11 @@ LIBALIAS_LOCK_ASSERT(la); tc = (struct tcphdr *)ip_next(pip); - + dest_port = tc->th_dport; + if (create) - proxy_type = - ProxyCheck(la, pip, &proxy_server_address, &proxy_server_port); + proxy_type = ProxyCheck(la, pip, &proxy_server_address, + &proxy_server_port, dest_port); else proxy_type = 0; @@ -986,7 +987,6 @@ /* If this is a transparent proxy, save original destination, then alter the destination and adjust checksums */ - dest_port = tc->th_dport; dest_address = pip->ip_dst; if (proxy_type != 0) { int accumulate; ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#12 (text+ko) ==== @@ -321,7 +321,7 @@ /* Transparent proxy routines */ int ProxyCheck(struct libalias *la, struct ip *_pip, struct in_addr *_proxy_server_addr, - u_short * _proxy_server_port); + u_short * _proxy_server_port, u_short dst_port); void ProxyModify(struct libalias *la, struct alias_link *_lnk, struct ip *_pip, int _maxpacketsize, int _proxy_type); ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#13 (text+ko) ==== @@ -563,9 +563,8 @@ int ProxyCheck(struct libalias *la, struct ip *pip, struct in_addr *proxy_server_addr, - u_short * proxy_server_port) + u_short * proxy_server_port, u_short dst_port) { - u_short dst_port; struct in_addr src_addr; struct in_addr dst_addr; struct proxy_entry *ptr; @@ -573,8 +572,6 @@ LIBALIAS_LOCK_ASSERT(la); src_addr = pip->ip_src; dst_addr = pip->ip_dst; - dst_port = ((struct tcphdr *)ip_next(pip)) - ->th_dport; ptr = la->proxyList; while (ptr != NULL) { From owner-p4-projects@FreeBSD.ORG Tue Jan 30 00:22:20 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF57416A405; Tue, 30 Jan 2007 00:22:20 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8132316A403 for ; Tue, 30 Jan 2007 00:22:20 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 72E3213C471 for ; Tue, 30 Jan 2007 00:22:20 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0U0MKn3067946 for ; Tue, 30 Jan 2007 00:22:20 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0U0MJ45067933 for perforce@freebsd.org; Tue, 30 Jan 2007 00:22:19 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 00:22:19 GMT Message-Id: <200701300022.l0U0MJ45067933@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113679 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 00:22:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=113679 Change 113679 by piso@piso_newluxor on 2007/01/30 00:21:44 maxpacketsize is unused in ProxyEncodeIpHeader(), axe it. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#14 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#14 (text+ko) ==== @@ -147,7 +147,7 @@ static void RuleDelete(struct proxy_entry *); static int RuleNumberDelete(struct libalias *la, int); static void ProxyEncodeTcpStream(struct alias_link *, struct ip *, int); -static void ProxyEncodeIpHeader(struct ip *, int); +static void ProxyEncodeIpHeader(struct ip *); #ifdef _KERNEL static int @@ -480,8 +480,7 @@ } static void -ProxyEncodeIpHeader(struct ip *pip, - int maxpacketsize) +ProxyEncodeIpHeader(struct ip *pip) { #define OPTION_LEN_BYTES 8 #define OPTION_LEN_INT16 4 @@ -493,8 +492,6 @@ fprintf(stdout, "tcp cksum 1 = %x\n", (u_int) TcpChecksum(pip)); #endif - (void)maxpacketsize; - /* Check to see that there is room to add an IP option */ if (pip->ip_hl > (0x0f - OPTION_LEN_INT32)) return; @@ -613,7 +610,7 @@ switch (proxy_type) { case PROXY_TYPE_ENCODE_IPHDR: - ProxyEncodeIpHeader(pip, maxpacketsize); + ProxyEncodeIpHeader(pip); break; case PROXY_TYPE_ENCODE_TCPSTREAM: From owner-p4-projects@FreeBSD.ORG Tue Jan 30 00:36:39 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3D6D616A405; Tue, 30 Jan 2007 00:36:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 17F3916A400 for ; Tue, 30 Jan 2007 00:36:39 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id F22DB13C428 for ; Tue, 30 Jan 2007 00:36:38 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0U0acbc070825 for ; Tue, 30 Jan 2007 00:36:38 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0U0acOw070822 for perforce@freebsd.org; Tue, 30 Jan 2007 00:36:38 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 00:36:38 GMT Message-Id: <200701300036.l0U0acOw070822@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113681 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 00:36:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=113681 Change 113681 by piso@piso_newluxor on 2007/01/30 00:36:22 Bring tcp src port from an upper layer: this way we don't need anymore to ip_next() in ProxyEncodeIpHeader(). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#36 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#13 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#15 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#36 (text+ko) ==== @@ -965,7 +965,7 @@ TcpAliasOut(struct libalias *la, struct ip *pip, int maxpacketsize, int create) { int proxy_type, error; - u_short dest_port; + u_short dest_port, src_port; u_short proxy_server_port; struct in_addr dest_address; struct in_addr proxy_server_address; @@ -975,7 +975,8 @@ LIBALIAS_LOCK_ASSERT(la); tc = (struct tcphdr *)ip_next(pip); dest_port = tc->th_dport; - + src_port = tc->th_sport; + if (create) proxy_type = ProxyCheck(la, pip, &proxy_server_address, &proxy_server_port, dest_port); @@ -1028,7 +1029,8 @@ if (proxy_type != 0) { SetProxyPort(lnk, dest_port); SetProxyAddress(lnk, dest_address); - ProxyModify(la, lnk, pip, maxpacketsize, proxy_type); + ProxyModify(la, lnk, pip, maxpacketsize, proxy_type, + src_port); tc = (struct tcphdr *)ip_next(pip); } /* Get alias address and port */ ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#13 (text+ko) ==== @@ -324,7 +324,7 @@ u_short * _proxy_server_port, u_short dst_port); void ProxyModify(struct libalias *la, struct alias_link *_lnk, struct ip *_pip, - int _maxpacketsize, int _proxy_type); + int _maxpacketsize, int _proxy_type, u_short src_port); enum alias_tcp_state { ALIAS_TCP_STATE_NOT_CONNECTED, ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#15 (text+ko) ==== @@ -147,7 +147,7 @@ static void RuleDelete(struct proxy_entry *); static int RuleNumberDelete(struct libalias *la, int); static void ProxyEncodeTcpStream(struct alias_link *, struct ip *, int); -static void ProxyEncodeIpHeader(struct ip *); +static void ProxyEncodeIpHeader(struct ip *, u_short sport); #ifdef _KERNEL static int @@ -480,7 +480,7 @@ } static void -ProxyEncodeIpHeader(struct ip *pip) +ProxyEncodeIpHeader(struct ip *pip, u_short sport) { #define OPTION_LEN_BYTES 8 #define OPTION_LEN_INT16 4 @@ -499,7 +499,6 @@ /* Build option and copy into packet */ { u_char *ptr; - struct tcphdr *tc; ptr = (u_char *) pip; ptr += 20; @@ -510,8 +509,7 @@ memcpy(&option[2], (u_char *) & pip->ip_dst, 4); - tc = (struct tcphdr *)ip_next(pip); - memcpy(&option[6], (u_char *) & tc->th_sport, 2); + memcpy(&option[6], (u_char *) & sport, 2); memcpy(ptr, option, 8); } @@ -599,10 +597,8 @@ } void -ProxyModify(struct libalias *la, struct alias_link *lnk, - struct ip *pip, - int maxpacketsize, - int proxy_type) +ProxyModify(struct libalias *la, struct alias_link *lnk, struct ip *pip, + int maxpacketsize, int proxy_type, u_short src_port) { LIBALIAS_LOCK_ASSERT(la); @@ -610,7 +606,7 @@ switch (proxy_type) { case PROXY_TYPE_ENCODE_IPHDR: - ProxyEncodeIpHeader(pip); + ProxyEncodeIpHeader(pip, src_port); break; case PROXY_TYPE_ENCODE_TCPSTREAM: From owner-p4-projects@FreeBSD.ORG Tue Jan 30 00:55:14 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 687DD16A40F; Tue, 30 Jan 2007 00:55:14 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1455B16A409 for ; Tue, 30 Jan 2007 00:55:13 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A1CA813C4A6 for ; Tue, 30 Jan 2007 00:55:03 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0U0t3Qb081934 for ; Tue, 30 Jan 2007 00:55:03 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0U0t3HB081931 for perforce@freebsd.org; Tue, 30 Jan 2007 00:55:03 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 00:55:03 GMT Message-Id: <200701300055.l0U0t3HB081931@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113683 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 00:55:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=113683 Change 113683 by piso@piso_newluxor on 2007/01/30 00:54:23 We don't need to ip_next() in GetDeltaAckIt(): pass down the tcp ack field and eliminate the necessity to have pointers to the ip and tcp headers. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#37 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#19 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#14 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#37 (text+ko) ==== @@ -930,7 +930,7 @@ if (GetAckModified(lnk) == 1) { int delta; - delta = GetDeltaAckIn(pip, lnk); + delta = GetDeltaAckIn(lnk, tc->th_ack); if (delta != 0) { accumulate += twowords(&tc->th_ack); tc->th_ack = htonl(ntohl(tc->th_ack) - delta); ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#19 (text+ko) ==== @@ -2007,7 +2007,7 @@ int -GetDeltaAckIn(struct ip *pip, struct alias_link *lnk) +GetDeltaAckIn(struct alias_link *lnk, u_long ack) { /* Find out how much the ACK number has been altered for an incoming @@ -2016,12 +2016,7 @@ */ int i; - struct tcphdr *tc; int delta, ack_diff_min; - u_long ack; - - tc = ip_next(pip); - ack = tc->th_ack; delta = 0; ack_diff_min = -1; ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#14 (text+ko) ==== @@ -298,7 +298,7 @@ void SetProxyPort(struct alias_link *_lnk, u_short _port); void SetAckModified(struct alias_link *_lnk); int GetAckModified(struct alias_link *_lnk); -int GetDeltaAckIn(struct ip *_pip, struct alias_link *_lnk); +int GetDeltaAckIn(struct alias_link *_lnk, u_long ack); int GetDeltaSeqOut(struct ip *_pip, struct alias_link *_lnk); void AddSeq (struct ip *_pip, struct alias_link *_lnk, int _delta); void SetExpire (struct alias_link *_lnk, int _expire); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 01:18:34 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3661416A5B4; Tue, 30 Jan 2007 01:18:34 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C266B16A404 for ; Tue, 30 Jan 2007 01:18:33 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id B3E6313C4A8 for ; Tue, 30 Jan 2007 01:18:33 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0U1IXIf086624 for ; Tue, 30 Jan 2007 01:18:33 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0U1IX16086621 for perforce@freebsd.org; Tue, 30 Jan 2007 01:18:33 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 01:18:33 GMT Message-Id: <200701300118.l0U1IX16086621@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113684 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 01:18:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=113684 Change 113684 by piso@piso_newluxor on 2007/01/30 01:17:55 Remove another usage of ip_next(): pass down the tcp seq field, and avoid to use ptrs to the ip and tcp headers in GetDeltaSeqOut(). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#38 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#20 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_ftp.c#14 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_irc.c#15 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#15 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#16 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_smedia.c#15 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#38 (text+ko) ==== @@ -1055,7 +1055,7 @@ if (GetAckModified(lnk) == 1) { int delta; - delta = GetDeltaSeqOut(pip, lnk); + delta = GetDeltaSeqOut(lnk, tc->th_seq); if (delta != 0) { accumulate += twowords(&tc->th_seq); tc->th_seq = htonl(ntohl(tc->th_seq) + delta); ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#20 (text+ko) ==== @@ -2046,7 +2046,7 @@ int -GetDeltaSeqOut(struct ip *pip, struct alias_link *lnk) +GetDeltaSeqOut(struct alias_link *lnk, u_long seq) { /* Find out how much the sequence number has been altered for an outgoing @@ -2055,12 +2055,7 @@ */ int i; - struct tcphdr *tc; int delta, seq_diff_min; - u_long seq; - - tc = ip_next(pip); - seq = tc->th_seq; delta = 0; seq_diff_min = -1; ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_ftp.c#14 (text+ko) ==== @@ -733,7 +733,7 @@ int delta; SetAckModified(lnk); - delta = GetDeltaSeqOut(pip, lnk); + delta = GetDeltaSeqOut(lnk, tc->th_seq); AddSeq(pip, lnk, delta + slen - dlen); } ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_irc.c#15 (text+ko) ==== @@ -431,7 +431,7 @@ int delta; SetAckModified(lnk); - delta = GetDeltaSeqOut(pip, lnk); + delta = GetDeltaSeqOut(lnk, tc->th_seq); AddSeq(pip, lnk, delta + copyat + iCopy - dlen); } ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#15 (text+ko) ==== @@ -299,7 +299,7 @@ void SetAckModified(struct alias_link *_lnk); int GetAckModified(struct alias_link *_lnk); int GetDeltaAckIn(struct alias_link *_lnk, u_long ack); -int GetDeltaSeqOut(struct ip *_pip, struct alias_link *_lnk); +int GetDeltaSeqOut(struct alias_link *_lnk, u_long seq); void AddSeq (struct ip *_pip, struct alias_link *_lnk, int _delta); void SetExpire (struct alias_link *_lnk, int _expire); void ClearCheckNewLink(struct libalias *la); ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#16 (text+ko) ==== @@ -453,7 +453,7 @@ int delta; SetAckModified(lnk); - delta = GetDeltaSeqOut(pip, lnk); + delta = GetDeltaSeqOut(lnk, tc->th_seq); AddSeq(pip, lnk, delta + slen); } ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_smedia.c#15 (text+ko) ==== @@ -404,7 +404,7 @@ memcpy(data, newdata, new_dlen); SetAckModified(lnk); - delta = GetDeltaSeqOut(pip, lnk); + delta = GetDeltaSeqOut(lnk, tc->th_seq); AddSeq(pip, lnk, delta + new_dlen - dlen); new_len = htons(hlen + new_dlen); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 01:32:53 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1350A16A407; Tue, 30 Jan 2007 01:32:53 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DE04416A400 for ; Tue, 30 Jan 2007 01:32:52 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id CEB2813C49D for ; Tue, 30 Jan 2007 01:32:52 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0U1Wqaw089282 for ; Tue, 30 Jan 2007 01:32:52 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0U1WqdN089277 for perforce@freebsd.org; Tue, 30 Jan 2007 01:32:52 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 01:32:52 GMT Message-Id: <200701300132.l0U1WqdN089277@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113686 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 01:32:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=113686 Change 113686 by piso@piso_newluxor on 2007/01/30 01:32:35 Remove another usage of ip_next(): pass down tcp offset and seq number, and axe ip_next() from AddSeq(). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#21 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_ftp.c#15 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_irc.c#16 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#16 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#17 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_smedia.c#16 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#21 (text+ko) ==== @@ -2085,7 +2085,8 @@ void -AddSeq(struct ip *pip, struct alias_link *lnk, int delta) +AddSeq(struct ip *pip, struct alias_link *lnk, int delta, u_int th_off, + u_int th_seq) { /* When a TCP packet has been altered in length, save this @@ -2093,19 +2094,16 @@ been altered, then this list will begin to overwrite itself. */ - struct tcphdr *tc; struct ack_data_record x; int hlen, tlen, dlen; int i; - tc = ip_next(pip); - - hlen = (pip->ip_hl + tc->th_off) << 2; + hlen = (pip->ip_hl + th_off) << 2; tlen = ntohs(pip->ip_len); dlen = tlen - hlen; - x.ack_old = htonl(ntohl(tc->th_seq) + dlen); - x.ack_new = htonl(ntohl(tc->th_seq) + dlen + delta); + x.ack_old = htonl(ntohl(th_seq) + dlen); + x.ack_new = htonl(ntohl(th_seq) + dlen + delta); x.delta = delta; x.active = 1; ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_ftp.c#15 (text+ko) ==== @@ -734,7 +734,8 @@ SetAckModified(lnk); delta = GetDeltaSeqOut(lnk, tc->th_seq); - AddSeq(pip, lnk, delta + slen - dlen); + AddSeq(pip, lnk, delta + slen - dlen, tc->th_off, + tc->th_seq); } /* Revise IP header */ ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_irc.c#16 (text+ko) ==== @@ -432,7 +432,8 @@ SetAckModified(lnk); delta = GetDeltaSeqOut(lnk, tc->th_seq); - AddSeq(pip, lnk, delta + copyat + iCopy - dlen); + AddSeq(pip, lnk, delta + copyat + iCopy - dlen, + tc->th_off, tc->th_seq); } /* Revise IP header */ ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#16 (text+ko) ==== @@ -300,7 +300,8 @@ int GetAckModified(struct alias_link *_lnk); int GetDeltaAckIn(struct alias_link *_lnk, u_long ack); int GetDeltaSeqOut(struct alias_link *_lnk, u_long seq); -void AddSeq (struct ip *_pip, struct alias_link *_lnk, int _delta); +void AddSeq (struct ip *_pip, struct alias_link *_lnk, int _delta, + u_int th_off, u_int th_seq); void SetExpire (struct alias_link *_lnk, int _expire); void ClearCheckNewLink(struct libalias *la); void SetProtocolFlags(struct alias_link *_lnk, int _pflags); ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#17 (text+ko) ==== @@ -454,7 +454,7 @@ SetAckModified(lnk); delta = GetDeltaSeqOut(lnk, tc->th_seq); - AddSeq(pip, lnk, delta + slen); + AddSeq(pip, lnk, delta + slen, tc->th_off, tc->th_seq); } /* Update IP header packet length and checksum */ ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_smedia.c#16 (text+ko) ==== @@ -405,7 +405,7 @@ SetAckModified(lnk); delta = GetDeltaSeqOut(lnk, tc->th_seq); - AddSeq(pip, lnk, delta + new_dlen - dlen); + AddSeq(pip, lnk, delta + new_dlen - dlen, tc->th_off, tc->th_seq); new_len = htons(hlen + new_dlen); DifferentialChecksum(&pip->ip_sum, From owner-p4-projects@FreeBSD.ORG Tue Jan 30 01:43:07 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16E6216A408; Tue, 30 Jan 2007 01:43:07 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C927E16A406 for ; Tue, 30 Jan 2007 01:43:06 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id BABCE13C467 for ; Tue, 30 Jan 2007 01:43:06 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0U1h6lE091050 for ; Tue, 30 Jan 2007 01:43:06 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0U1h6RF091047 for perforce@freebsd.org; Tue, 30 Jan 2007 01:43:06 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 01:43:06 GMT Message-Id: <200701300143.l0U1h6RF091047@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113687 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 01:43:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=113687 Change 113687 by piso@piso_newluxor on 2007/01/30 01:43:01 In TcpMonitorIn() and TcpMonitorOut() we don't need any pointer to the ip or tcp header: pass down the tcp flags field and axe an ip_next() usage. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#39 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#39 (text+ko) ==== @@ -170,48 +170,42 @@ */ /* Local prototypes */ -static void TcpMonitorIn(struct ip *, struct alias_link *); +static void TcpMonitorIn(struct alias_link *, u_char th_flags); -static void TcpMonitorOut(struct ip *, struct alias_link *); +static void TcpMonitorOut(struct alias_link *, u_char th_flags); static void -TcpMonitorIn(struct ip *pip, struct alias_link *lnk) +TcpMonitorIn(struct alias_link *lnk, u_char th_flags) { - struct tcphdr *tc; - tc = (struct tcphdr *)ip_next(pip); - switch (GetStateIn(lnk)) { case ALIAS_TCP_STATE_NOT_CONNECTED: - if (tc->th_flags & TH_RST) + if (th_flags & TH_RST) SetStateIn(lnk, ALIAS_TCP_STATE_DISCONNECTED); - else if (tc->th_flags & TH_SYN) + else if (th_flags & TH_SYN) SetStateIn(lnk, ALIAS_TCP_STATE_CONNECTED); break; case ALIAS_TCP_STATE_CONNECTED: - if (tc->th_flags & (TH_FIN | TH_RST)) + if (th_flags & (TH_FIN | TH_RST)) SetStateIn(lnk, ALIAS_TCP_STATE_DISCONNECTED); break; } } static void -TcpMonitorOut(struct ip *pip, struct alias_link *lnk) +TcpMonitorOut(struct alias_link *lnk, u_char th_flags) { - struct tcphdr *tc; - - tc = (struct tcphdr *)ip_next(pip); switch (GetStateOut(lnk)) { case ALIAS_TCP_STATE_NOT_CONNECTED: - if (tc->th_flags & TH_RST) + if (th_flags & TH_RST) SetStateOut(lnk, ALIAS_TCP_STATE_DISCONNECTED); - else if (tc->th_flags & TH_SYN) + else if (th_flags & TH_SYN) SetStateOut(lnk, ALIAS_TCP_STATE_CONNECTED); break; case ALIAS_TCP_STATE_CONNECTED: - if (tc->th_flags & (TH_FIN | TH_RST)) + if (th_flags & (TH_FIN | TH_RST)) SetStateOut(lnk, ALIAS_TCP_STATE_DISCONNECTED); break; } @@ -954,7 +948,7 @@ ADJUST_CHECKSUM(accumulate, pip->ip_sum); /* Monitor TCP connection state */ - TcpMonitorIn(pip, lnk); + TcpMonitorIn(lnk, tc->th_flags); return (PKT_ALIAS_OK); } @@ -1038,7 +1032,7 @@ alias_address = GetAliasAddress(lnk); /* Monitor TCP connection state */ - TcpMonitorOut(pip, lnk); + TcpMonitorOut(lnk, tc->th_flags); /* Walk out chain. */ error = find_handler(OUT, TCP, la, pip, &ad); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 15:03:20 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2C5BF16A406; Tue, 30 Jan 2007 15:03:20 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 005D716A404 for ; Tue, 30 Jan 2007 15:03:19 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E44AA13C478 for ; Tue, 30 Jan 2007 15:03:19 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UF3Jic015549 for ; Tue, 30 Jan 2007 15:03:19 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UF3JMC015540 for perforce@freebsd.org; Tue, 30 Jan 2007 15:03:19 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 15:03:19 GMT Message-Id: <200701301503.l0UF3JMC015540@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113705 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 15:03:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=113705 Change 113705 by piso@piso_newluxor on 2007/01/30 15:02:47 Start the mbuf-ication of libalias from IcmpAliasIn(): instead of passing a "struct ip *", pass down a "void *" that will be converted into a "struct ip *" in case libalias run in userland, or as "struct mbuf *" in case libalias run in kernel land. Propagate the "void *" down to all the IcmpAliasIn*() called by IcmpAliasIn(). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#40 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#40 (text+ko) ==== @@ -256,9 +256,9 @@ /* Local prototypes */ -static int IcmpAliasIn1(struct libalias *, struct ip *); -static int IcmpAliasIn2(struct libalias *, struct ip *); -static int IcmpAliasIn(struct libalias *, struct ip *); +static int IcmpAliasIn1(struct libalias *, void *); +static int IcmpAliasIn2(struct libalias *, void *); +static int IcmpAliasIn(struct libalias *, void *); static int IcmpAliasOut1(struct libalias *, struct ip *, int create); static int IcmpAliasOut2(struct libalias *, struct ip *); @@ -275,16 +275,22 @@ static int -IcmpAliasIn1(struct libalias *la, struct ip *pip) +IcmpAliasIn1(struct libalias *la, void *ptr) { - + struct alias_link *lnk; + struct ip *pip; + struct icmp *ic; +#ifdef _KERNEL + // XXX - m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); /* De-alias incoming echo and timestamp replies. Alias incoming echo and timestamp requests. */ - struct alias_link *lnk; - struct icmp *ic; ic = (struct icmp *)ip_next(pip); @@ -320,20 +326,26 @@ } static int -IcmpAliasIn2(struct libalias *la, struct ip *pip) +IcmpAliasIn2(struct libalias *la, void *ptr) { - - LIBALIAS_LOCK_ASSERT(la); /* Alias incoming ICMP error messages containing IP header and first 64 bits of datagram. */ - struct ip *ip; + struct ip *ip, *pip; struct icmp *ic, *ic2; struct udphdr *ud; struct tcphdr *tc; struct alias_link *lnk; +#ifdef _KERNEL + // XXX - m_pullup() + pip = ptr; +#else + pip = ptr; +#endif + + LIBALIAS_LOCK_ASSERT(la); ic = (struct icmp *)ip_next(pip); ip = &ic->icmp_ip; @@ -422,11 +434,18 @@ static int -IcmpAliasIn(struct libalias *la, struct ip *pip) +IcmpAliasIn(struct libalias *la, void *ptr) { int iresult; + struct ip *pip; struct icmp *ic; - +#ifdef _KERNEL + // XXX - m_pullup() + pip = ptr; +#else + pip = ptr; +#endif + LIBALIAS_LOCK_ASSERT(la); /* Return if proxy-only mode is enabled */ if (la->packetAliasMode & PKT_ALIAS_PROXY_ONLY) @@ -439,18 +458,18 @@ case ICMP_ECHOREPLY: case ICMP_TSTAMPREPLY: if (ic->icmp_code == 0) { - iresult = IcmpAliasIn1(la, pip); + iresult = IcmpAliasIn1(la, ptr); } break; case ICMP_UNREACH: case ICMP_SOURCEQUENCH: case ICMP_TIMXCEED: case ICMP_PARAMPROB: - iresult = IcmpAliasIn2(la, pip); + iresult = IcmpAliasIn2(la, ptr); break; case ICMP_ECHO: case ICMP_TSTAMP: - iresult = IcmpAliasIn1(la, pip); + iresult = IcmpAliasIn1(la, ptr); break; } return (iresult); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 15:28:52 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 334FD16A56A; Tue, 30 Jan 2007 15:28:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 047FF16A561 for ; Tue, 30 Jan 2007 15:28:52 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E868313C481 for ; Tue, 30 Jan 2007 15:28:51 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UFSpSq057931 for ; Tue, 30 Jan 2007 15:28:51 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UFSpDD057920 for perforce@freebsd.org; Tue, 30 Jan 2007 15:28:51 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 15:28:51 GMT Message-Id: <200701301528.l0UFSpDD057920@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113706 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 15:28:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=113706 Change 113706 by piso@piso_newluxor on 2007/01/30 15:28:37 Modify UdpAliasIn(), TcpAliasIn() and ProtoAliasIn() to handle a "void *" argument instead of a "struct ip *" in _KERNEL case. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#41 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#41 (text+ko) ==== @@ -264,13 +264,13 @@ static int IcmpAliasOut2(struct libalias *, struct ip *); static int IcmpAliasOut(struct libalias *, struct ip *, int create); -static int ProtoAliasIn(struct libalias *, struct ip *); +static int ProtoAliasIn(struct libalias *, void *); static int ProtoAliasOut(struct libalias *, struct ip *, int create); -static int UdpAliasIn(struct libalias *, struct ip *); +static int UdpAliasIn(struct libalias *, void *); static int UdpAliasOut(struct libalias *, struct ip *, int create); -static int TcpAliasIn(struct libalias *, struct ip *); +static int TcpAliasIn(struct libalias *, void *); static int TcpAliasOut(struct libalias *, struct ip *, int, int create); @@ -661,7 +661,7 @@ static int -ProtoAliasIn(struct libalias *la, struct ip *pip) +ProtoAliasIn(struct libalias *la, void *ptr) { /* Handle incoming IP packets. The @@ -669,7 +669,14 @@ the dest IP address of the packet to our inside machine. */ + struct ip *pip; struct alias_link *lnk; +#ifdef _KERNEL + // XXX - m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); /* Return if proxy-only mode is enabled */ @@ -728,10 +735,17 @@ static int -UdpAliasIn(struct libalias *la, struct ip *pip) +UdpAliasIn(struct libalias *la, void *ptr) { + struct ip *pip; struct udphdr *ud; struct alias_link *lnk; +#ifdef _KERNEL + // XXX - m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); /* Return if proxy-only mode is enabled */ @@ -855,10 +869,17 @@ static int -TcpAliasIn(struct libalias *la, struct ip *pip) +TcpAliasIn(struct libalias *la, void *ptr) { + struct ip *pip; struct tcphdr *tc; struct alias_link *lnk; +#ifdef _KERNEL + // XXX - m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); tc = (struct tcphdr *)ip_next(pip); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 15:54:25 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EB99B16A408; Tue, 30 Jan 2007 15:54:24 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9693616A403 for ; Tue, 30 Jan 2007 15:54:24 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 877CD13C474 for ; Tue, 30 Jan 2007 15:54:24 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UFsOg4092427 for ; Tue, 30 Jan 2007 15:54:24 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UFsOZs092418 for perforce@freebsd.org; Tue, 30 Jan 2007 15:54:24 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 15:54:24 GMT Message-Id: <200701301554.l0UFsOZs092418@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113710 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 15:54:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=113710 Change 113710 by piso@piso_newluxor on 2007/01/30 15:53:52 Switch FragmentIn()'s "struct ip *" arg to a "void *" arg. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#42 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#42 (text+ko) ==== @@ -1126,14 +1126,21 @@ */ /* Local prototypes */ -static int FragmentIn(struct libalias *, struct ip *); +static int FragmentIn(struct libalias *, void *); static int FragmentOut(struct libalias *, struct ip *); static int -FragmentIn(struct libalias *la, struct ip *pip) +FragmentIn(struct libalias *la, void *ptr) { struct alias_link *lnk; + struct ip *pip; +#ifdef _KERNEL + // XXX - m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); lnk = FindFragmentIn2(la, pip->ip_src, pip->ip_dst, pip->ip_id); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 16:01:11 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5854816A406; Tue, 30 Jan 2007 16:01:11 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 07BB716A400 for ; Tue, 30 Jan 2007 16:01:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E9BB313C4A3 for ; Tue, 30 Jan 2007 16:01:10 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UG1Aev001084 for ; Tue, 30 Jan 2007 16:01:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UFxgW7098902 for perforce@freebsd.org; Tue, 30 Jan 2007 15:59:42 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 30 Jan 2007 15:59:42 GMT Message-Id: <200701301559.l0UFxgW7098902@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113711 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 16:01:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=113711 Change 113711 by hselasky@hselasky_mini_itx on 2007/01/30 15:59:16 IFC. Affected files ... .. //depot/projects/usb/src/sys/Makefile#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/apic_vector.S#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/busdma_machdep.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/cpu_switch.S#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/db_disasm.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/db_trace.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/exception.S#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/genassym.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/identcpu.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/intr_machdep.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/io.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/io_apic.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/minidump_machdep.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mptable_pci.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/msi.c#1 branch .. //depot/projects/usb/src/sys/amd64/amd64/nexus.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/prof_machdep.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/support.S#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/trap.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/vm_machdep.c#3 integrate .. //depot/projects/usb/src/sys/amd64/conf/DEFAULTS#3 integrate .. //depot/projects/usb/src/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/usb/src/sys/amd64/conf/GENERIC.hints#2 integrate .. //depot/projects/usb/src/sys/amd64/conf/NOTES#3 integrate .. //depot/projects/usb/src/sys/amd64/ia32/ia32_exception.S#2 integrate .. //depot/projects/usb/src/sys/amd64/ia32/ia32_signal.c#2 integrate .. //depot/projects/usb/src/sys/amd64/ia32/ia32_sigtramp.S#2 integrate .. //depot/projects/usb/src/sys/amd64/ia32/ia32_syscall.c#3 integrate .. //depot/projects/usb/src/sys/amd64/include/apicvar.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/asmacros.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/atomic.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/clock.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/elf.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/intr_machdep.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/md_var.h#3 integrate .. //depot/projects/usb/src/sys/amd64/include/pmap.h#3 integrate .. //depot/projects/usb/src/sys/amd64/include/profile.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/reg.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/setjmp.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/specialreg.h#3 integrate .. //depot/projects/usb/src/sys/amd64/include/stdarg.h#2 integrate .. //depot/projects/usb/src/sys/amd64/isa/atpic.c#2 integrate .. //depot/projects/usb/src/sys/amd64/isa/atpic_vector.S#2 integrate .. //depot/projects/usb/src/sys/amd64/isa/clock.c#2 integrate .. //depot/projects/usb/src/sys/amd64/isa/icu.h#2 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux.h#3 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_dummy.c#3 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_machdep.c#3 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_proto.h#3 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_syscall.h#3 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysent.c#3 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysvec.c#3 integrate .. //depot/projects/usb/src/sys/amd64/linux32/syscalls.master#3 integrate .. //depot/projects/usb/src/sys/amd64/pci/pci_bus.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/busdma_machdep.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/elf_trampoline.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/fusu.S#3 integrate .. //depot/projects/usb/src/sys/arm/arm/genassym.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/identcpu.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/intr.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/nexus.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/nexus_io.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/pmap.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/trap.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/undefined.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/vm_machdep.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_mci.c#1 branch .. //depot/projects/usb/src/sys/arm/at91/at91_mcireg.h#1 branch .. //depot/projects/usb/src/sys/arm/at91/at91_pio.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_pioreg.h#2 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_pmc.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_spi.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_spireg.h#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_ssc.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_sscreg.h#2 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_st.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_twi.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/files.at91#3 integrate .. //depot/projects/usb/src/sys/arm/at91/if_ate.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/kb920x_machdep.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/std.at91#3 integrate .. //depot/projects/usb/src/sys/arm/at91/std.kb920x#3 integrate .. //depot/projects/usb/src/sys/arm/at91/uart_dev_at91usart.c#3 integrate .. //depot/projects/usb/src/sys/arm/conf/AVILA#1 branch .. //depot/projects/usb/src/sys/arm/conf/BWCT#1 branch .. //depot/projects/usb/src/sys/arm/conf/BWCT.hints#1 branch .. //depot/projects/usb/src/sys/arm/conf/EP80219#2 integrate .. //depot/projects/usb/src/sys/arm/conf/IQ31244#3 integrate .. //depot/projects/usb/src/sys/arm/conf/KB920X#3 integrate .. //depot/projects/usb/src/sys/arm/conf/SIMICS#3 integrate .. //depot/projects/usb/src/sys/arm/conf/SKYEYE#3 integrate .. //depot/projects/usb/src/sys/arm/include/armreg.h#3 integrate .. //depot/projects/usb/src/sys/arm/include/atomic.h#2 integrate .. //depot/projects/usb/src/sys/arm/include/bus.h#2 integrate .. //depot/projects/usb/src/sys/arm/include/bus_dma.h#2 integrate .. //depot/projects/usb/src/sys/arm/include/clock.h#2 integrate .. //depot/projects/usb/src/sys/arm/include/cpuconf.h#3 integrate .. //depot/projects/usb/src/sys/arm/include/cpufunc.h#3 integrate .. //depot/projects/usb/src/sys/arm/include/elf.h#3 integrate .. //depot/projects/usb/src/sys/arm/include/md_var.h#2 integrate .. //depot/projects/usb/src/sys/arm/include/pmap.h#3 integrate .. //depot/projects/usb/src/sys/arm/include/stdarg.h#2 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/assabet_machdep.c#3 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/sa11x0.c#2 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/sa11x0_io.c#2 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/sa11x0_irqhandler.c#2 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/sa11x0_ost.c#2 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/uart_dev_sa1110.c#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/ep80219_machdep.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/i80321_space.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/i80321_wdog.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/iq31244_machdep.c#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/obio_space.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/avila_ata.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/avila_led.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/avila_machdep.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/files.avila#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/files.ixp425#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/if_npe.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/if_npereg.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixdp425_pci.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixdp425reg.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_a4x_io.S#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_a4x_space.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_iic.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_intr.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_mem.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_npe.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_npereg.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_npevar.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_pci.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_pci_asm.S#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_pci_space.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_qmgr.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_qmgr.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_space.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_timer.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_wdog.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425reg.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425var.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/std.avila#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/std.ixp425#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/uart_bus_ixp425.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/ixp425/uart_cpu_ixp425.c#1 branch .. //depot/projects/usb/src/sys/boot/Makefile#3 integrate .. //depot/projects/usb/src/sys/boot/arm/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/Makefile.inc#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/boot0/Makefile#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/boot0/arm_init.s#2 delete .. //depot/projects/usb/src/sys/boot/arm/at91/boot0iic/Makefile#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/boot0iic/main.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/boot0spi/Makefile#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/boot0spi/main.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/boot2/Makefile#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/boot2/board.h#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/boot2/boot2.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/boot2/kb920x_board.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/bootiic/Makefile#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/bootiic/arm_init.S#3 delete .. //depot/projects/usb/src/sys/boot/arm/at91/bootiic/env_vars.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/bootiic/loader_prompt.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/bootspi/Makefile#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/bootspi/arm_init.S#2 delete .. //depot/projects/usb/src/sys/boot/arm/at91/bootspi/ee.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/bootspi/ee.h#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/bootspi/env_vars.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/bootspi/loader_prompt.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/bootspi/main.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/Makefile#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/arm_init.S#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/at91rm9200.h#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/eeprom.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/emac.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/emac.h#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/emac_init.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/lib.h#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/lib_AT91RM9200.h#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/mci_device.c#2 delete .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/mci_device.h#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/memcmp.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/memcpy.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/memset.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/p_string.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/printf.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/putchar.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/sd-card.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/spi_flash.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/spi_flash.h#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/strcmp.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/strcpy.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/strcvt.c#1 branch .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/strlen.c#1 branch .. //depot/projects/usb/src/sys/boot/common/Makefile.inc#2 integrate .. //depot/projects/usb/src/sys/boot/common/bootstrap.h#2 integrate .. //depot/projects/usb/src/sys/boot/common/devopen.c#2 integrate .. //depot/projects/usb/src/sys/boot/common/help.common#3 integrate .. //depot/projects/usb/src/sys/boot/common/load_elf.c#2 integrate .. //depot/projects/usb/src/sys/boot/common/loader.8#3 integrate .. //depot/projects/usb/src/sys/boot/common/merge_help.awk#2 integrate .. //depot/projects/usb/src/sys/boot/common/panic.c#2 integrate .. //depot/projects/usb/src/sys/boot/common/pnp.c#2 integrate .. //depot/projects/usb/src/sys/boot/common/pnpdata#2 delete .. //depot/projects/usb/src/sys/boot/efi/include/efi.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efi_nii.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efiapi.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/eficon.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efidebug.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efidef.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efidevp.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efierr.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efifs.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efilib.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efinet.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efipart.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efiprot.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efipxebc.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efiser.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/efistdarg.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/i386/efibind.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/i386/pe.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/ia64/efibind.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/include/ia64/pe.h#2 integrate .. //depot/projects/usb/src/sys/boot/efi/libefi/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/efi/libefi/bootinfo.c#2 delete .. //depot/projects/usb/src/sys/boot/efi/libefi/copy.c#2 delete .. //depot/projects/usb/src/sys/boot/efi/libefi/devicename.c#2 delete .. //depot/projects/usb/src/sys/boot/efi/libefi/efiboot.h#2 delete .. //depot/projects/usb/src/sys/boot/efi/libefi/efifpswa.c#2 delete .. //depot/projects/usb/src/sys/boot/efi/libefi/efifs.c#2 integrate .. //depot/projects/usb/src/sys/boot/efi/libefi/efinet.c#2 integrate .. //depot/projects/usb/src/sys/boot/efi/libefi/elf_freebsd.c#2 delete .. //depot/projects/usb/src/sys/boot/efi/libefi/errno.c#1 branch .. //depot/projects/usb/src/sys/boot/efi/libefi/handles.c#1 branch .. //depot/projects/usb/src/sys/boot/efi/libefi/libefi.c#2 integrate .. //depot/projects/usb/src/sys/boot/efi/libefi/module.c#2 delete .. //depot/projects/usb/src/sys/boot/efi/libefi/time.c#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/forth/loader.conf#3 integrate .. //depot/projects/usb/src/sys/boot/forth/support.4th#2 integrate .. //depot/projects/usb/src/sys/boot/i386/Makefile.inc#2 integrate .. //depot/projects/usb/src/sys/boot/i386/boot2/boot2.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/btx/btx/btx.S#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/bioscd.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/biosdisk.c#3 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/biospci.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/biossmap.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/bootinfo32.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/bootinfo64.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/devicename.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/elf32_freebsd.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/elf64_freebsd.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/libi386.h#2 integrate .. //depot/projects/usb/src/sys/boot/i386/loader/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/i386/loader/help.i386#2 integrate .. //depot/projects/usb/src/sys/boot/i386/loader/main.c#3 integrate .. //depot/projects/usb/src/sys/boot/i386/pxeldr/pxeboot.8#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/common/Makefile#1 branch .. //depot/projects/usb/src/sys/boot/ia64/common/autoload.c#1 branch .. //depot/projects/usb/src/sys/boot/ia64/common/bootinfo.c#1 branch .. //depot/projects/usb/src/sys/boot/ia64/common/copy.c#1 branch .. //depot/projects/usb/src/sys/boot/ia64/common/devicename.c#1 branch .. //depot/projects/usb/src/sys/boot/ia64/common/exec.c#1 branch .. //depot/projects/usb/src/sys/boot/ia64/common/libia64.h#1 branch .. //depot/projects/usb/src/sys/boot/ia64/efi/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/efi/conf.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/efi/efimd.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/efi/main.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/efi/version#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/acpi_stub.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/bootinfo.c#2 delete .. //depot/projects/usb/src/sys/boot/ia64/ski/copy.c#2 delete .. //depot/projects/usb/src/sys/boot/ia64/ski/devicename.c#2 delete .. //depot/projects/usb/src/sys/boot/ia64/ski/efi_stub.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/elf_freebsd.c#2 delete .. //depot/projects/usb/src/sys/boot/ia64/ski/libski.h#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/main.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/skifs.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/skimd.c#1 branch .. //depot/projects/usb/src/sys/boot/ia64/ski/version#2 integrate .. //depot/projects/usb/src/sys/boot/ofw/common/main.c#2 integrate .. //depot/projects/usb/src/sys/boot/ofw/libofw/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/ofw/libofw/libofw.h#2 integrate .. //depot/projects/usb/src/sys/boot/ofw/libofw/openfirm.c#2 integrate .. //depot/projects/usb/src/sys/boot/ofw/libofw/openfirm_mmu.c#1 branch .. //depot/projects/usb/src/sys/boot/pc98/boot2/boot.c#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot2/inode.h#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/btx/btx/btx.S#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/libpc98/bioscd.c#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/libpc98/biosdisk.c#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/libpc98/biossmap.c#1 branch .. //depot/projects/usb/src/sys/boot/pc98/loader/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/loader/main.c#3 integrate .. //depot/projects/usb/src/sys/boot/sparc64/loader/main.c#2 integrate .. //depot/projects/usb/src/sys/bsm/audit.h#3 integrate .. //depot/projects/usb/src/sys/bsm/audit_internal.h#3 integrate .. //depot/projects/usb/src/sys/bsm/audit_kevents.h#3 integrate .. //depot/projects/usb/src/sys/bsm/audit_record.h#3 integrate .. //depot/projects/usb/src/sys/cam/cam_ccb.h#3 integrate .. //depot/projects/usb/src/sys/cam/cam_periph.c#2 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.c#3 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.h#2 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_all.h#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_cd.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_ch.c#2 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_da.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_low.c#2 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_pt.c#2 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_ses.c#2 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_targ_bh.c#2 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_target.c#2 integrate .. //depot/projects/usb/src/sys/coda/coda_vnops.c#2 integrate .. //depot/projects/usb/src/sys/coda/coda_vnops.h#2 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32.h#3 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#3 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_proto.h#3 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_signal.h#1 branch .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscall.h#3 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscalls.c#3 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_sysent.c#3 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/syscalls.master#3 integrate .. //depot/projects/usb/src/sys/compat/ia32/ia32_genassym.c#2 integrate .. //depot/projects/usb/src/sys/compat/ia32/ia32_signal.h#2 integrate .. //depot/projects/usb/src/sys/compat/ia32/ia32_sysvec.c#2 integrate .. //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#3 integrate .. //depot/projects/usb/src/sys/compat/linsysfs/linsysfs.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_emul.c#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_emul.h#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_file.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_getcwd.c#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ipc.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ipc.h#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_mib.c#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_mib.h#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_misc.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_misc.h#1 branch .. //depot/projects/usb/src/sys/compat/linux/linux_signal.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_signal.h#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_socket.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_stats.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_time.c#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_uid16.c#2 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_ntoskrnl.c#3 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_fcntl.c#2 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_misc.c#3 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_proto.h#3 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_syscall.h#3 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_syscallnames.c#3 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_sysent.c#3 integrate .. //depot/projects/usb/src/sys/conf/Makefile.sun4v#1 branch .. //depot/projects/usb/src/sys/conf/NOTES#3 integrate .. //depot/projects/usb/src/sys/conf/files#11 integrate .. //depot/projects/usb/src/sys/conf/files.amd64#3 integrate .. //depot/projects/usb/src/sys/conf/files.arm#3 integrate .. //depot/projects/usb/src/sys/conf/files.i386#3 integrate .. //depot/projects/usb/src/sys/conf/files.ia64#3 integrate .. //depot/projects/usb/src/sys/conf/files.pc98#3 integrate .. //depot/projects/usb/src/sys/conf/files.powerpc#3 integrate .. //depot/projects/usb/src/sys/conf/files.sparc64#2 integrate .. //depot/projects/usb/src/sys/conf/files.sun4v#1 branch .. //depot/projects/usb/src/sys/conf/kern.mk#3 integrate .. //depot/projects/usb/src/sys/conf/kern.post.mk#3 integrate .. //depot/projects/usb/src/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/usb/src/sys/conf/kmod.mk#3 integrate .. //depot/projects/usb/src/sys/conf/options#3 integrate .. //depot/projects/usb/src/sys/conf/options.arm#3 integrate .. //depot/projects/usb/src/sys/conf/options.sparc64#2 integrate .. //depot/projects/usb/src/sys/conf/options.sun4v#1 branch .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_cbq.c#2 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_cdnr.c#2 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_hfsc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_priq.c#2 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_red.c#2 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_rio.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/ah.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/ah_desc.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/ah_devid.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/freebsd/ah_if.m#3 delete .. //depot/projects/usb/src/sys/contrib/dev/ath/freebsd/ah_osdep.c#3 delete .. //depot/projects/usb/src/sys/contrib/dev/ath/freebsd/ah_osdep.h#3 delete .. //depot/projects/usb/src/sys/contrib/dev/ath/public/alpha-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/alpha-elf.inc#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/ap30.hal.o.uu#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/ap43.hal.o.uu#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/ap51.hal.o.uu#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/ap61.hal.o.uu#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/arm9-le-thumb-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/arm9-le-thumb-elf.inc#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/armv4-be-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/armv4-be-elf.inc#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/armv4-le-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/armv4-le-elf.inc#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/i386-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/mips-be-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/mips-le-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/mips1-be-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/mips1-le-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/mipsisa32-be-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/mipsisa32-le-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/powerpc-be-eabi.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/powerpc-be-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/powerpc-le-eabi.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/sh4-le-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/sparc-be-elf.hal.o.uu#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/sparc64-be-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/wackelf.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ath/public/x86_64-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/xscale-be-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/xscale-be-elf.inc#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/xscale-le-elf.hal.o.uu#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/public/xscale-le-elf.inc#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/ath/version.h#3 integrate .. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#3 integrate .. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_state.c#3 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/if_pfsync.c#3 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf.c#3 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#3 integrate .. //depot/projects/usb/src/sys/crypto/sha2/sha2.c#3 integrate .. //depot/projects/usb/src/sys/crypto/via/padlock_cipher.c#2 integrate .. //depot/projects/usb/src/sys/ddb/db_command.c#3 integrate .. //depot/projects/usb/src/sys/ddb/db_examine.c#2 integrate .. //depot/projects/usb/src/sys/ddb/db_main.c#2 integrate .. //depot/projects/usb/src/sys/ddb/db_output.c#3 integrate .. //depot/projects/usb/src/sys/ddb/db_output.h#3 integrate .. //depot/projects/usb/src/sys/ddb/db_ps.c#3 integrate .. //depot/projects/usb/src/sys/ddb/db_thread.c#3 integrate .. //depot/projects/usb/src/sys/ddb/db_watch.c#2 integrate .. //depot/projects/usb/src/sys/dev/aac/aac_cam.c#3 integrate .. //depot/projects/usb/src/sys/dev/aac/aac_linux.c#2 integrate .. //depot/projects/usb/src/sys/dev/aac/aac_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_aiboost.c#1 branch .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_sony.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdHardware.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_battery.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_package.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pci_link.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pcib_acpi.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pcib_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_perf.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_throttle.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpivar.h#3 integrate .. //depot/projects/usb/src/sys/dev/advansys/adv_eisa.c#2 integrate .. //depot/projects/usb/src/sys/dev/advansys/adv_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/advansys/adv_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/usb/src/sys/dev/advansys/advlib.c#2 integrate .. //depot/projects/usb/src/sys/dev/advansys/adw_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/advansys/adwcam.c#2 integrate .. //depot/projects/usb/src/sys/dev/aha/aha.c#2 integrate .. //depot/projects/usb/src/sys/dev/aha/aha_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/aha/aha_mca.c#2 integrate .. //depot/projects/usb/src/sys/dev/aha/ahareg.h#2 integrate .. //depot/projects/usb/src/sys/dev/ahb/ahb.c#3 integrate .. //depot/projects/usb/src/sys/dev/aic/aic.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic/aic_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx.h#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx_osm.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx.seq#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx_osm.c#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aicasm/aicasm_gram.y#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y#2 integrate .. //depot/projects/usb/src/sys/dev/amd/amd.c#2 integrate .. //depot/projects/usb/src/sys/dev/amr/amr.c#3 integrate .. //depot/projects/usb/src/sys/dev/amr/amr_cam.c#2 integrate .. //depot/projects/usb/src/sys/dev/amr/amr_disk.c#2 integrate .. //depot/projects/usb/src/sys/dev/amr/amr_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/an/if_an.c#2 integrate .. //depot/projects/usb/src/sys/dev/arcmsr/arcmsr.c#3 integrate .. //depot/projects/usb/src/sys/dev/arcmsr/arcmsr.h#2 integrate .. //depot/projects/usb/src/sys/dev/arl/if_arl.c#2 integrate .. //depot/projects/usb/src/sys/dev/asr/asr.c#2 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#4 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-chipset.c#4 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-disk.c#4 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.h#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-queue.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-raid.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-usb.c#11 edit .. //depot/projects/usb/src/sys/dev/ata/atapi-cam.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-cd.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ah_osdep.c#1 branch .. //depot/projects/usb/src/sys/dev/ath/ah_osdep.h#1 branch .. //depot/projects/usb/src/sys/dev/ath/ath_rate/amrr/amrr.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/onoe/onoe.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/sample/sample.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/sample/sample.h#3 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/if_athrate.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/if_athvar.h#3 integrate .. //depot/projects/usb/src/sys/dev/atkbdc/atkbd.c#2 integrate .. //depot/projects/usb/src/sys/dev/atkbdc/psm.c#2 integrate .. //depot/projects/usb/src/sys/dev/awi/awivar.h#2 integrate .. //depot/projects/usb/src/sys/dev/awi/if_awi_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/bce/if_bce.c#3 integrate .. //depot/projects/usb/src/sys/dev/bce/if_bcereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/bfe/if_bfe.c#3 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bge.c#3 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bgereg.h#3 integrate .. //depot/projects/usb/src/sys/dev/bktr/bktr_i2c.c#3 integrate .. //depot/projects/usb/src/sys/dev/bktr/bktr_i2c.h#2 integrate .. //depot/projects/usb/src/sys/dev/buslogic/bt.c#2 integrate .. //depot/projects/usb/src/sys/dev/buslogic/bt_eisa.c#2 integrate .. //depot/projects/usb/src/sys/dev/buslogic/bt_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/buslogic/bt_mca.c#2 integrate .. //depot/projects/usb/src/sys/dev/buslogic/bt_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/cardbus/cardbus.c#4 integrate .. //depot/projects/usb/src/sys/dev/ce/if_ce.c#2 integrate .. //depot/projects/usb/src/sys/dev/ciss/ciss.c#3 integrate .. //depot/projects/usb/src/sys/dev/cnw/if_cnw.c#2 integrate .. //depot/projects/usb/src/sys/dev/cp/if_cp.c#2 integrate .. //depot/projects/usb/src/sys/dev/ctau/if_ct.c#2 integrate .. //depot/projects/usb/src/sys/dev/cx/if_cx.c#2 integrate .. //depot/projects/usb/src/sys/dev/cy/cy_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/dc/if_dc.c#3 integrate .. //depot/projects/usb/src/sys/dev/dc/if_dcreg.h#3 integrate .. //depot/projects/usb/src/sys/dev/dcons/dcons_os.c#2 integrate .. //depot/projects/usb/src/sys/dev/digi/digi.c#3 integrate .. //depot/projects/usb/src/sys/dev/dpt/dpt.h#2 integrate .. //depot/projects/usb/src/sys/dev/dpt/dpt_eisa.c#2 integrate .. //depot/projects/usb/src/sys/dev/dpt/dpt_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/dpt/dpt_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/dpt/dpt_scsi.c#3 integrate .. //depot/projects/usb/src/sys/dev/drm/drmP.h#3 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_agpsupport.c#2 integrate .. //depot/projects/usb/src/sys/dev/em/if_em.c#3 integrate .. //depot/projects/usb/src/sys/dev/em/if_em.h#3 integrate .. //depot/projects/usb/src/sys/dev/em/if_em_hw.c#3 integrate .. //depot/projects/usb/src/sys/dev/em/if_em_hw.h#3 integrate .. //depot/projects/usb/src/sys/dev/em/if_em_osdep.h#3 integrate .. //depot/projects/usb/src/sys/dev/en/midway.c#3 integrate .. //depot/projects/usb/src/sys/dev/ep/if_ep.c#2 integrate .. //depot/projects/usb/src/sys/dev/esp/esp_sbus.c#3 integrate .. //depot/projects/usb/src/sys/dev/esp/ncr53c9x.c#2 integrate .. //depot/projects/usb/src/sys/dev/exca/exca.c#2 integrate .. //depot/projects/usb/src/sys/dev/fb/boot_font.c#2 integrate .. //depot/projects/usb/src/sys/dev/fb/creator.c#3 integrate .. //depot/projects/usb/src/sys/dev/fb/creatorreg.h#1 branch .. //depot/projects/usb/src/sys/dev/fb/fbreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/fb/gallant12x22.c#1 branch .. //depot/projects/usb/src/sys/dev/fb/gfb.c#2 delete .. //depot/projects/usb/src/sys/dev/fb/gfb.h#2 integrate .. //depot/projects/usb/src/sys/dev/fdc/fdc.c#3 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwdev.c#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwohci_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/firewire/if_fwip.c#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/sbp.c#2 integrate .. //depot/projects/usb/src/sys/dev/flash/at45d.c#1 branch .. //depot/projects/usb/src/sys/dev/fxp/if_fxp.c#2 integrate .. //depot/projects/usb/src/sys/dev/fxp/if_fxpvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/gem/if_gem.c#3 integrate .. //depot/projects/usb/src/sys/dev/gem/if_gemvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/gfb/gfb_pci.c#2 delete .. //depot/projects/usb/src/sys/dev/gfb/gfb_pci.h#2 delete .. //depot/projects/usb/src/sys/dev/hme/if_hme.c#3 integrate .. //depot/projects/usb/src/sys/dev/hme/if_hmevar.h#2 integrate .. //depot/projects/usb/src/sys/dev/hptmv/entry.c#2 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_mod.c#2 integrate .. //depot/projects/usb/src/sys/dev/ichsmb/ichsmb.c#3 integrate .. //depot/projects/usb/src/sys/dev/ichsmb/ichsmb_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/ichwd/ichwd.c#2 integrate .. //depot/projects/usb/src/sys/dev/idt/idtreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#2 integrate .. //depot/projects/usb/src/sys/dev/iicbus/ad7418.c#1 branch .. //depot/projects/usb/src/sys/dev/iicbus/ds1672.c#1 branch .. //depot/projects/usb/src/sys/dev/iicbus/iic.c#3 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iic.h#3 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iicbb.c#3 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iicbus.c#3 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iicbus_if.m#3 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iiconf.c#3 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iiconf.h#3 integrate .. //depot/projects/usb/src/sys/dev/iir/iir.c#2 integrate .. //depot/projects/usb/src/sys/dev/iir/iir_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/ipmi/ipmi.c#2 integrate .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_acpi.c#1 branch .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_isa.c#1 branch .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_kcs.c#1 branch .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_smbios.c#2 integrate .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_smbus.c#1 branch .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_smic.c#1 branch .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_ssif.c#1 branch .. //depot/projects/usb/src/sys/dev/ipmi/ipmivars.h#2 integrate .. //depot/projects/usb/src/sys/dev/ips/ips.c#2 integrate .. //depot/projects/usb/src/sys/dev/ips/ipsreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/isp/isp.c#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.c#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_library.c#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_library.h#2 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_sbus.c#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_stds.h#1 branch .. //depot/projects/usb/src/sys/dev/isp/isp_target.c#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_target.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_tpublic.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/ispmbox.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/ispreg.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/ispvar.h#3 integrate .. //depot/projects/usb/src/sys/dev/ispfw/asm_2300.h#2 integrate .. //depot/projects/usb/src/sys/dev/ispfw/ispfw.c#3 integrate .. //depot/projects/usb/src/sys/dev/iwi/if_iwi.c#3 integrate .. //depot/projects/usb/src/sys/dev/iwi/if_iwireg.h#2 integrate .. //depot/projects/usb/src/sys/dev/ixgb/if_ixgb.c#3 integrate .. //depot/projects/usb/src/sys/dev/kbd/kbd.c#2 integrate .. //depot/projects/usb/src/sys/dev/kbdmux/kbdmux.c#3 integrate .. //depot/projects/usb/src/sys/dev/le/am7990.c#2 integrate .. //depot/projects/usb/src/sys/dev/le/am79900.c#2 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_cbus.c#2 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_lebuffer.c#1 branch .. //depot/projects/usb/src/sys/dev/le/if_le_ledma.c#2 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/le/lance.c#2 integrate .. //depot/projects/usb/src/sys/dev/le/lancevar.h#2 integrate .. //depot/projects/usb/src/sys/dev/le/lebuffer_sbus.c#1 branch .. //depot/projects/usb/src/sys/dev/lmc/if_lmc.c#3 integrate .. //depot/projects/usb/src/sys/dev/lmc/if_lmc.h#3 integrate .. //depot/projects/usb/src/sys/dev/mc146818/mc146818reg.h#2 integrate .. //depot/projects/usb/src/sys/dev/md/md.c#2 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi.c#3 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi_debug.c#1 branch .. //depot/projects/usb/src/sys/dev/mfi/mfi_disk.c#3 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi_ioctl.h#2 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi_linux.c#2 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfireg.h#3 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfivar.h#3 integrate .. //depot/projects/usb/src/sys/dev/mii/acphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/acphyreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/mii/amphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/bmtphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/brgphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/ciphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/e1000phy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/e1000phyreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/mii/exphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/gentbi.c#2 integrate .. //depot/projects/usb/src/sys/dev/mii/inphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/ip1000phy.c#2 integrate .. //depot/projects/usb/src/sys/dev/mii/lxtphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/mii.c#2 integrate .. //depot/projects/usb/src/sys/dev/mii/mii_physubr.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/miidevs#3 integrate .. //depot/projects/usb/src/sys/dev/mii/miivar.h#2 integrate .. //depot/projects/usb/src/sys/dev/mii/mlphy.c#4 integrate .. //depot/projects/usb/src/sys/dev/mii/nsgphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/nsphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/pnaphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/qsphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/rgephy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/rlphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/rlswitch.c#1 branch .. //depot/projects/usb/src/sys/dev/mii/ruephy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/tdkphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/tlphy.c#4 integrate .. //depot/projects/usb/src/sys/dev/mii/ukphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/xmphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mk48txx/mk48txx.c#3 integrate .. //depot/projects/usb/src/sys/dev/mly/mly.c#2 integrate .. //depot/projects/usb/src/sys/dev/mmc/bridge.h#1 branch .. //depot/projects/usb/src/sys/dev/mmc/mmc.c#1 branch .. //depot/projects/usb/src/sys/dev/mmc/mmcbr_if.m#1 branch .. //depot/projects/usb/src/sys/dev/mmc/mmcbrvar.h#1 branch .. //depot/projects/usb/src/sys/dev/mmc/mmcbus_if.m#1 branch .. //depot/projects/usb/src/sys/dev/mmc/mmcreg.h#1 branch .. //depot/projects/usb/src/sys/dev/mmc/mmcsd.c#1 branch .. //depot/projects/usb/src/sys/dev/mmc/mmcvar.h#1 branch .. //depot/projects/usb/src/sys/dev/mpt/mpt.c#3 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt.h#3 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_cam.c#3 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_debug.c#3 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_raid.c#3 integrate .. //depot/projects/usb/src/sys/dev/msk/if_msk.c#1 branch .. //depot/projects/usb/src/sys/dev/msk/if_mskreg.h#1 branch .. //depot/projects/usb/src/sys/dev/mxge/eth_z8e.dat.gz.uu#2 integrate .. //depot/projects/usb/src/sys/dev/mxge/ethp_z8e.dat.gz.uu#2 integrate .. //depot/projects/usb/src/sys/dev/mxge/if_mxge.c#2 integrate .. //depot/projects/usb/src/sys/dev/mxge/if_mxge_var.h#2 integrate .. //depot/projects/usb/src/sys/dev/mxge/mxge_mcp.h#2 integrate .. //depot/projects/usb/src/sys/dev/my/if_my.c#3 integrate .. //depot/projects/usb/src/sys/dev/nfe/if_nfe.c#2 integrate .. //depot/projects/usb/src/sys/dev/nfe/if_nfereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/nfe/if_nfevar.h#2 integrate .. //depot/projects/usb/src/sys/dev/nge/if_nge.c#3 integrate .. //depot/projects/usb/src/sys/dev/nmdm/nmdm.c#2 integrate .. //depot/projects/usb/src/sys/dev/null/null.c#2 integrate .. //depot/projects/usb/src/sys/dev/nve/if_nvereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/ofw/ofw_console.c#3 integrate .. //depot/projects/usb/src/sys/dev/ofw/openfirm.c#2 integrate .. //depot/projects/usb/src/sys/dev/ofw/openfirm.h#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/pci/pci_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pci_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pci_private.h#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pci_user.c#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pcib_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pcib_private.h#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pcireg.h#3 integrate .. //depot/projects/usb/src/sys/dev/pci/pcivar.h#3 integrate .. //depot/projects/usb/src/sys/dev/ppbus/if_plip.c#2 integrate .. //depot/projects/usb/src/sys/dev/ppbus/vpo.c#2 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2560.c#3 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2560var.h#2 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2661.c#3 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2661var.h#2 integrate .. //depot/projects/usb/src/sys/dev/random/randomdev.c#2 integrate .. //depot/projects/usb/src/sys/dev/ray/if_ray.c#2 integrate .. //depot/projects/usb/src/sys/dev/re/if_re.c#3 integrate .. //depot/projects/usb/src/sys/dev/rp/rp.c#2 integrate .. //depot/projects/usb/src/sys/dev/rp/rpreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/rp/rpvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/sbni/if_sbni.c#2 integrate .. //depot/projects/usb/src/sys/dev/sbsh/if_sbsh.c#2 integrate .. //depot/projects/usb/src/sys/dev/si/si.c#2 integrate .. //depot/projects/usb/src/sys/dev/sk/if_sk.c#3 integrate .. //depot/projects/usb/src/sys/dev/sk/if_skreg.h#3 integrate .. //depot/projects/usb/src/sys/dev/smbus/smb.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/driver.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/midi.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/midi.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/midiq.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/mpu401.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/mpu401.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/mpu_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/mpufoi_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/sequencer.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/sequencer.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/synth_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/ak452x.c#2 delete .. //depot/projects/usb/src/sys/dev/sound/pci/ak452x.h#2 delete .. //depot/projects/usb/src/sys/dev/sound/pci/atiixp.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/atiixp.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/cmi.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/emu10kx-pcm.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/emu10kx.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/emu10kx.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/envy24.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/envy24ht.c#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/envy24ht.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/es137x.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hda_reg.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac_private.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac_reg.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/ich.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/maestro.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/spicds.c#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/spicds.h#1 branch .. //depot/projects/usb/src/sys/dev/sound/pci/via8233.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/ac97.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/ac97.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/ac97_patch.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/ac97_patch.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/buffer.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/buffer.h#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/channel.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/channel.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/channel_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/dsp.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/dsp.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/fake.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_fmt.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_rate.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/feeder_volume.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/mixer.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/mixer.h#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/sound.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/vchan.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/sbus/cs4231.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#7 edit .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.h#3 edit .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio_pcm.c#3 edit .. //depot/projects/usb/src/sys/dev/sound/usb/uaudioreg.h#3 edit .. //depot/projects/usb/src/sys/dev/spibus/spibus.c#3 integrate .. //depot/projects/usb/src/sys/dev/stge/if_stge.c#2 integrate .. //depot/projects/usb/src/sys/dev/sym/sym_hipd.c#2 integrate .. //depot/projects/usb/src/sys/dev/syscons/scvesactl.c#2 integrate .. //depot/projects/usb/src/sys/dev/syscons/scvidctl.c#2 integrate .. //depot/projects/usb/src/sys/dev/syscons/syscons.c#3 integrate .. //depot/projects/usb/src/sys/dev/syscons/sysmouse.c#2 integrate .. //depot/projects/usb/src/sys/dev/ti/if_ti.c#3 integrate .. //depot/projects/usb/src/sys/dev/trm/trm.c#2 integrate .. //depot/projects/usb/src/sys/dev/twa/tw_osl_cam.c#2 integrate .. //depot/projects/usb/src/sys/dev/twa/tw_osl_freebsd.c#2 integrate .. //depot/projects/usb/src/sys/dev/twa/tw_osl_includes.h#2 integrate .. //depot/projects/usb/src/sys/dev/twa/tw_osl_inline.h#2 integrate .. //depot/projects/usb/src/sys/dev/twa/tw_osl_share.h#2 integrate .. //depot/projects/usb/src/sys/dev/txp/if_txp.c#2 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_cpu.h#2 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_dev_ns8250.c#2 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_dev_sab82532.c#2 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_dev_z8530.c#3 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_kbd_sun.c#2 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_kbd_sun.h#2 integrate .. //depot/projects/usb/src/sys/dev/ubsec/ubsec.c#3 integrate .. //depot/projects/usb/src/sys/dev/usb/ehci.c#26 edit .. //depot/projects/usb/src/sys/dev/usb/ehci.h#10 edit .. //depot/projects/usb/src/sys/dev/usb/ehci_pci.c#15 edit .. //depot/projects/usb/src/sys/dev/usb/if_aue.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb/if_auereg.h#12 integrate .. //depot/projects/usb/src/sys/dev/usb/if_axe.c#15 edit .. //depot/projects/usb/src/sys/dev/usb/if_axereg.h#11 edit .. //depot/projects/usb/src/sys/dev/usb/if_cdce.c#11 edit .. //depot/projects/usb/src/sys/dev/usb/if_cdcereg.h#10 edit .. //depot/projects/usb/src/sys/dev/usb/if_cue.c#13 edit .. //depot/projects/usb/src/sys/dev/usb/if_cuereg.h#8 edit .. //depot/projects/usb/src/sys/dev/usb/if_kue.c#15 edit .. //depot/projects/usb/src/sys/dev/usb/if_kuefw.h#4 edit .. //depot/projects/usb/src/sys/dev/usb/if_kuereg.h#8 edit .. //depot/projects/usb/src/sys/dev/usb/if_rue.c#14 edit .. //depot/projects/usb/src/sys/dev/usb/if_ruereg.h#9 edit .. //depot/projects/usb/src/sys/dev/usb/if_udav.c#14 edit .. //depot/projects/usb/src/sys/dev/usb/if_udavreg.h#9 edit .. //depot/projects/usb/src/sys/dev/usb/if_ural.c#18 edit .. //depot/projects/usb/src/sys/dev/usb/if_uralreg.h#9 edit .. //depot/projects/usb/src/sys/dev/usb/if_uralvar.h#12 edit .. //depot/projects/usb/src/sys/dev/usb/if_zyd.c#4 edit .. //depot/projects/usb/src/sys/dev/usb/if_zydfw.h#3 edit .. //depot/projects/usb/src/sys/dev/usb/if_zydreg.h#3 edit .. //depot/projects/usb/src/sys/dev/usb/ohci.c#21 edit .. //depot/projects/usb/src/sys/dev/usb/ohci.h#9 edit .. //depot/projects/usb/src/sys/dev/usb/ohci_pci.c#15 edit .. //depot/projects/usb/src/sys/dev/usb/sl811hsvar.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/uark.c#1 branch .. //depot/projects/usb/src/sys/dev/usb/ubsa.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/uhci.c#22 edit .. //depot/projects/usb/src/sys/dev/usb/uhci.h#9 edit .. //depot/projects/usb/src/sys/dev/usb/uhci_pci.c#14 edit .. //depot/projects/usb/src/sys/dev/usb/uhub.c#9 edit .. //depot/projects/usb/src/sys/dev/usb/uipaq.c#1 branch .. //depot/projects/usb/src/sys/dev/usb/ukbd.c#14 edit .. //depot/projects/usb/src/sys/dev/usb/ulpt.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb/umass.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/umct.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/umodem.c#14 integrate .. //depot/projects/usb/src/sys/dev/usb/ums.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb/uplcom.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb/urio.c#7 integrate .. //depot/projects/usb/src/sys/dev/usb/usb.c#10 edit .. //depot/projects/usb/src/sys/dev/usb/usb_port.h#12 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_quirks.c#6 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_quirks.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#28 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#33 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#4 integrate .. //depot/projects/usb/src/sys/dev/usb/uscanner.c#7 edit .. //depot/projects/usb/src/sys/dev/usb/uvisor.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/uvscom.c#15 integrate .. //depot/projects/usb/src/sys/dev/vge/if_vge.c#3 integrate .. //depot/projects/usb/src/sys/dev/vkbd/vkbd.c#2 integrate .. //depot/projects/usb/src/sys/dev/watchdog/watchdog.c#2 integrate .. //depot/projects/usb/src/sys/dev/wds/wd7000.c#2 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wi.c#3 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wivar.h#2 integrate .. //depot/projects/usb/src/sys/dev/wl/if_wl.c#3 integrate .. //depot/projects/usb/src/sys/dev/zs/zs.c#2 integrate .. //depot/projects/usb/src/sys/fs/deadfs/dead_vnops.c#2 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs.h#2 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_devs.c#3 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_int.h#2 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_rule.c#3 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_vfsops.c#3 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_vnops.c#3 integrate .. //depot/projects/usb/src/sys/fs/hpfs/hpfs_vfsops.c#2 integrate .. //depot/projects/usb/src/sys/fs/hpfs/hpfs_vnops.c#2 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/bpb.h#2 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/denode.h#3 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/direntry.h#2 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/msdosfs_conv.c#2 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/msdosfs_fat.c#2 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/msdosfs_vfsops.c#3 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/msdosfs_vnops.c#2 integrate .. //depot/projects/usb/src/sys/fs/ntfs/ntfs_subr.c#2 integrate .. //depot/projects/usb/src/sys/fs/ntfs/ntfs_subr.h#2 integrate .. //depot/projects/usb/src/sys/fs/ntfs/ntfs_vfsops.c#2 integrate .. //depot/projects/usb/src/sys/fs/ntfs/ntfs_vnops.c#2 integrate .. //depot/projects/usb/src/sys/fs/nullfs/null_vfsops.c#3 integrate .. //depot/projects/usb/src/sys/fs/nullfs/null_vnops.c#2 integrate .. //depot/projects/usb/src/sys/fs/nwfs/nwfs_subr.c#2 integrate .. //depot/projects/usb/src/sys/fs/nwfs/nwfs_vfsops.c#2 integrate .. //depot/projects/usb/src/sys/fs/portalfs/portal_vfsops.c#2 integrate .. //depot/projects/usb/src/sys/fs/procfs/procfs_ioctl.c#2 integrate .. //depot/projects/usb/src/sys/fs/procfs/procfs_status.c#2 integrate .. //depot/projects/usb/src/sys/fs/pseudofs/pseudofs_vncache.c#2 integrate .. //depot/projects/usb/src/sys/fs/smbfs/smbfs_node.c#2 integrate .. //depot/projects/usb/src/sys/fs/smbfs/smbfs_smb.c#2 integrate .. //depot/projects/usb/src/sys/fs/smbfs/smbfs_subr.c#2 integrate .. //depot/projects/usb/src/sys/fs/smbfs/smbfs_vfsops.c#3 integrate .. //depot/projects/usb/src/sys/fs/smbfs/smbfs_vnops.c#3 integrate .. //depot/projects/usb/src/sys/fs/udf/udf_vfsops.c#3 integrate .. //depot/projects/usb/src/sys/fs/udf/udf_vnops.c#2 integrate .. //depot/projects/usb/src/sys/fs/umapfs/umap_vfsops.c#2 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union.h#2 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union_subr.c#2 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union_vfsops.c#2 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union_vnops.c#3 integrate .. //depot/projects/usb/src/sys/geom/cache/g_cache.c#1 branch .. //depot/projects/usb/src/sys/geom/cache/g_cache.h#1 branch .. //depot/projects/usb/src/sys/geom/concat/g_concat.c#2 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli.c#3 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli.h#3 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli_ctl.c#3 integrate .. //depot/projects/usb/src/sys/geom/geom.h#3 integrate .. //depot/projects/usb/src/sys/geom/geom_disk.c#2 integrate .. //depot/projects/usb/src/sys/geom/geom_disk.h#2 integrate .. //depot/projects/usb/src/sys/geom/geom_gpt.c#3 integrate .. //depot/projects/usb/src/sys/geom/geom_io.c#3 integrate .. //depot/projects/usb/src/sys/geom/geom_slice.c#2 integrate .. //depot/projects/usb/src/sys/geom/geom_vfs.c#2 integrate .. //depot/projects/usb/src/sys/geom/journal/g_journal.c#1 branch .. //depot/projects/usb/src/sys/geom/journal/g_journal.h#1 branch .. //depot/projects/usb/src/sys/geom/journal/g_journal_ufs.c#1 branch .. //depot/projects/usb/src/sys/geom/label/g_label_msdosfs.c#3 integrate .. //depot/projects/usb/src/sys/geom/label/g_label_msdosfs.h#2 integrate .. //depot/projects/usb/src/sys/geom/label/g_label_ufs.c#2 integrate .. //depot/projects/usb/src/sys/geom/mirror/g_mirror.c#3 integrate .. //depot/projects/usb/src/sys/geom/mirror/g_mirror.h#2 integrate .. //depot/projects/usb/src/sys/geom/mirror/g_mirror_ctl.c#3 integrate .. //depot/projects/usb/src/sys/geom/nop/g_nop.h#3 integrate .. //depot/projects/usb/src/sys/geom/raid3/g_raid3.c#3 integrate .. //depot/projects/usb/src/sys/geom/raid3/g_raid3.h#2 integrate .. //depot/projects/usb/src/sys/geom/raid3/g_raid3_ctl.c#3 integrate .. //depot/projects/usb/src/sys/geom/shsec/g_shsec.c#2 integrate .. //depot/projects/usb/src/sys/geom/stripe/g_stripe.c#2 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_inode.c#2 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#2 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_vnops.c#2 integrate .. //depot/projects/usb/src/sys/gnu/fs/reiserfs/reiserfs_fs.h#2 integrate .. //depot/projects/usb/src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#2 integrate .. //depot/projects/usb/src/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c#3 integrate .. //depot/projects/usb/src/sys/gnu/fs/xfs/FreeBSD/xfs_super.c#3 integrate .. //depot/projects/usb/src/sys/i386/acpica/Makefile#3 integrate .. //depot/projects/usb/src/sys/i386/bios/apm.c#2 integrate .. //depot/projects/usb/src/sys/i386/conf/DEFAULTS#3 integrate .. //depot/projects/usb/src/sys/i386/conf/GENERIC#2 integrate .. //depot/projects/usb/src/sys/i386/conf/NOTES#3 integrate .. //depot/projects/usb/src/sys/i386/cpufreq/powernow.c#2 integrate .. //depot/projects/usb/src/sys/i386/i386/apic_vector.s#2 integrate .. //depot/projects/usb/src/sys/i386/i386/busdma_machdep.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/db_trace.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/elan-mmcr.c#2 integrate .. //depot/projects/usb/src/sys/i386/i386/exception.s#2 integrate .. //depot/projects/usb/src/sys/i386/i386/genassym.c#2 integrate .. //depot/projects/usb/src/sys/i386/i386/identcpu.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/intr_machdep.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/io.c#2 integrate .. //depot/projects/usb/src/sys/i386/i386/io_apic.c#2 integrate .. //depot/projects/usb/src/sys/i386/i386/local_apic.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/locore.s#2 integrate .. //depot/projects/usb/src/sys/i386/i386/machdep.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/mp_machdep.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/mptable_pci.c#2 integrate .. //depot/projects/usb/src/sys/i386/i386/msi.c#1 branch .. //depot/projects/usb/src/sys/i386/i386/nexus.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/support.s#3 integrate .. //depot/projects/usb/src/sys/i386/i386/swtch.s#2 integrate .. //depot/projects/usb/src/sys/i386/i386/sys_machdep.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/trap.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/vm86.c#2 integrate .. //depot/projects/usb/src/sys/i386/i386/vm86bios.s#2 integrate .. //depot/projects/usb/src/sys/i386/i386/vm_machdep.c#3 integrate .. //depot/projects/usb/src/sys/i386/ibcs2/ibcs2_misc.c#3 integrate .. //depot/projects/usb/src/sys/i386/ibcs2/ibcs2_proto.h#3 integrate .. //depot/projects/usb/src/sys/i386/ibcs2/ibcs2_socksys.c#2 integrate .. //depot/projects/usb/src/sys/i386/ibcs2/ibcs2_sysi86.c#2 integrate .. //depot/projects/usb/src/sys/i386/ibcs2/ibcs2_sysvec.c#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jan 30 17:01:24 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C611716A406; Tue, 30 Jan 2007 17:01:23 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8844816A403 for ; Tue, 30 Jan 2007 17:01:23 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 78B3F13C4A6 for ; Tue, 30 Jan 2007 17:01:23 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UH1Nx3096430 for ; Tue, 30 Jan 2007 17:01:23 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UH1NCk096416 for perforce@freebsd.org; Tue, 30 Jan 2007 17:01:23 GMT (envelope-from piso@freebsd.org) Date: Tue, 30 Jan 2007 17:01:23 GMT Message-Id: <200701301701.l0UH1NCk096416@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113712 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 17:01:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=113712 Change 113712 by piso@piso_newluxor on 2007/01/30 17:00:51 Switch second argument of IcmpAliasOut*(), UdpAliasOut() or ProtoAliasOut() from 'struct ip *' to 'void *' in case libalias run in kernel land. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#43 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#43 (text+ko) ==== @@ -260,15 +260,15 @@ static int IcmpAliasIn2(struct libalias *, void *); static int IcmpAliasIn(struct libalias *, void *); -static int IcmpAliasOut1(struct libalias *, struct ip *, int create); -static int IcmpAliasOut2(struct libalias *, struct ip *); -static int IcmpAliasOut(struct libalias *, struct ip *, int create); +static int IcmpAliasOut1(struct libalias *, void *, int create); +static int IcmpAliasOut2(struct libalias *, void *); +static int IcmpAliasOut(struct libalias *, void *, int create); static int ProtoAliasIn(struct libalias *, void *); -static int ProtoAliasOut(struct libalias *, struct ip *, int create); +static int ProtoAliasOut(struct libalias *, void *, int create); static int UdpAliasIn(struct libalias *, void *); -static int UdpAliasOut(struct libalias *, struct ip *, int create); +static int UdpAliasOut(struct libalias *, void *, int create); static int TcpAliasIn(struct libalias *, void *); static int TcpAliasOut(struct libalias *, struct ip *, int, int create); @@ -477,14 +477,21 @@ static int -IcmpAliasOut1(struct libalias *la, struct ip *pip, int create) +IcmpAliasOut1(struct libalias *la, void *ptr, int create) { /* Alias outgoing echo and timestamp requests. De-alias outgoing echo and timestamp replies. */ struct alias_link *lnk; + struct ip *pip; struct icmp *ic; +#ifdef _KERNEL + // XXX m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); ic = (struct icmp *)ip_next(pip); @@ -522,17 +529,23 @@ static int -IcmpAliasOut2(struct libalias *la, struct ip *pip) +IcmpAliasOut2(struct libalias *la, void *ptr) { /* Alias outgoing ICMP error messages containing IP header and first 64 bits of datagram. */ - struct ip *ip; + struct ip *ip, *pip; struct icmp *ic, *ic2; struct udphdr *ud; struct tcphdr *tc; struct alias_link *lnk; +#ifdef _KERNEL + // XXX m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); ic = (struct icmp *)ip_next(pip); @@ -623,10 +636,17 @@ static int -IcmpAliasOut(struct libalias *la, struct ip *pip, int create) +IcmpAliasOut(struct libalias *la, void *ptr, int create) { int iresult; struct icmp *ic; + struct ip *pip; +#ifdef _KERNEL + // XXX m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); (void)create; @@ -642,18 +662,18 @@ case ICMP_ECHO: case ICMP_TSTAMP: if (ic->icmp_code == 0) { - iresult = IcmpAliasOut1(la, pip, create); + iresult = IcmpAliasOut1(la, ptr, create); } break; case ICMP_UNREACH: case ICMP_SOURCEQUENCH: case ICMP_TIMXCEED: case ICMP_PARAMPROB: - iresult = IcmpAliasOut2(la, pip); + iresult = IcmpAliasOut2(la, ptr); break; case ICMP_ECHOREPLY: case ICMP_TSTAMPREPLY: - iresult = IcmpAliasOut1(la, pip, create); + iresult = IcmpAliasOut1(la, ptr, create); } return (iresult); } @@ -701,7 +721,7 @@ static int -ProtoAliasOut(struct libalias *la, struct ip *pip, int create) +ProtoAliasOut(struct libalias *la, void *ptr, int create) { /* Handle outgoing IP packets. The @@ -709,6 +729,13 @@ the source IP address of the packet. */ struct alias_link *lnk; + struct ip *pip; +#ifdef _KERNEL + // XXX m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); (void)create; @@ -807,11 +834,18 @@ } static int -UdpAliasOut(struct libalias *la, struct ip *pip, int create) +UdpAliasOut(struct libalias *la, void *ptr, int create) { + struct ip *pip; struct udphdr *ud; struct alias_link *lnk; int error; +#ifdef _KERNEL + // XXX m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); /* Return if proxy-only mode is enabled */ @@ -1127,7 +1161,7 @@ /* Local prototypes */ static int FragmentIn(struct libalias *, void *); -static int FragmentOut(struct libalias *, struct ip *); +static int FragmentOut(struct libalias *, void *); static int @@ -1159,9 +1193,16 @@ static int -FragmentOut(struct libalias *la, struct ip *pip) +FragmentOut(struct libalias *la, void *ptr) { + struct ip *pip; struct in_addr alias_address; +#ifdef _KERNEL + // XXX m_pullup() + pip = ptr; +#else + pip = ptr; +#endif LIBALIAS_LOCK_ASSERT(la); alias_address = FindAliasAddress(la, pip->ip_src); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 18:48:36 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3CAE116A409; Tue, 30 Jan 2007 18:48:36 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EE81616A405 for ; Tue, 30 Jan 2007 18:48:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id DD1D213C474 for ; Tue, 30 Jan 2007 18:48:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UImZ2J046316 for ; Tue, 30 Jan 2007 18:48:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UImZlp046295 for perforce@freebsd.org; Tue, 30 Jan 2007 18:48:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 30 Jan 2007 18:48:35 GMT Message-Id: <200701301848.l0UImZlp046295@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113714 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 18:48:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=113714 Change 113714 by rwatson@rwatson_cinnamon on 2007/01/30 18:48:29 First experimentation with zero-copy (i.e., one-copy) BPF: - Break out the current BPF buffering model into bpf_buffer.c. - Add a new bpf_zerocopy.c that implements an alternative buffering model based on pages of memory "donated" by a user process. The basic model is that the BPF consumer will select a buffering mode before attaching to an interface; if none is selected, then the default is the current behavior providing complete compatibility. If zero-copy buffering is seleced, an ioctl() to identify two page-aligned, integer multiple of page-sized buffers that will be wired by the kernel and used in place of malloc(9)- allocated buffers. These buffers will be written to directly by the BPF tap routines, and are laid out identically to buffers read from user space. For now, an explicit acknowledgement via an ioctl is required to rotate the buffers when user space has completed reading the current finished buffer (hbuf) in similar style to what occurs when bpfread() finishes currently. It would be desirable to trigger rotation via the shared memory also, perhaps via a head with flags indicating if user space is ready for the buffer to be re-used. sf_bufs are used to map the user pages into kernel, which requires a fair amount of bookkeeping as they must be individually managed and are not contiguously mapped. However, this is significantly more functional than trying to do the same with an mmaping of the BPF device due to serious limitations in the device pager. I have not yet updated any applications (and especially libpcap) or performed any performance benchmarking of serious debugging. This is simply a code snapshot as a starting point for discussion. Affected files ... .. //depot/projects/zcopybpf/src/sys/conf/files#3 edit .. //depot/projects/zcopybpf/src/sys/conf/options#2 edit .. //depot/projects/zcopybpf/src/sys/net/bpf.c#2 edit .. //depot/projects/zcopybpf/src/sys/net/bpf.h#2 edit .. //depot/projects/zcopybpf/src/sys/net/bpf_buffer.c#3 edit .. //depot/projects/zcopybpf/src/sys/net/bpf_buffer.h#1 add .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#1 add .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.h#1 add .. //depot/projects/zcopybpf/src/sys/net/bpfdesc.h#3 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/conf/files#3 (text+ko) ==== @@ -1510,8 +1510,10 @@ libkern/strtouq.c standard libkern/strvalid.c standard net/bpf.c standard +net/bpf_buffer.c optional bpf net/bpf_jitter.c optional bpf_jitter net/bpf_filter.c optional bpf | netgraph_bpf +net/bpf_zerocopy.c optional bpf_zerocopy net/bridgestp.c optional if_bridge net/bsd_comp.c optional ppp_bsdcomp net/if.c standard ==== //depot/projects/zcopybpf/src/sys/conf/options#2 (text+ko) ==== @@ -492,6 +492,7 @@ # DRM options DRM_DEBUG opt_drm.h +BPF_ZEROCOPY opt_bpf.h ZERO_COPY_SOCKETS opt_zero.h TI_PRIVATE_JUMBOS opt_ti.h TI_JUMBO_HDRSPLIT opt_ti.h ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#2 (text+ko) ==== @@ -65,9 +65,13 @@ #include #include +#include #ifdef BPF_JITTER #include #endif +#ifdef BPF_ZEROCOPY +#include +#endif #include #include @@ -79,7 +83,7 @@ #include -static MALLOC_DEFINE(M_BPF, "BPF", "BPF data"); +MALLOC_DEFINE(M_BPF, "BPF", "BPF data"); #if defined(DEV_BPF) || defined(NETGRAPH_BPF) @@ -95,19 +99,17 @@ static struct mtx bpf_mtx; /* bpf global lock */ static int bpf_bpfd_cnt; -static void bpf_allocbufs(struct bpf_d *); static void bpf_attachd(struct bpf_d *, struct bpf_if *); static void bpf_detachd(struct bpf_d *); static void bpf_freed(struct bpf_d *); -static void bpf_mcopy(const void *, void *, size_t); static int bpf_movein(struct uio *, int, int, struct mbuf **, struct sockaddr *, struct bpf_insn *); static int bpf_setif(struct bpf_d *, struct ifreq *); static void bpf_timed_out(void *); static __inline void bpf_wakeup(struct bpf_d *); -static void catchpacket(struct bpf_d *, u_char *, u_int, - u_int, void (*)(const void *, void *, size_t), +static void catchpacket(struct bpf_d *, u_char *, u_int, u_int, + void (*)(struct bpf_d *, caddr_t, u_int, void *, u_int), struct timeval *); static void reset_d(struct bpf_d *); static int bpf_setf(struct bpf_d *, struct bpf_program *, u_long cmd); @@ -123,12 +125,6 @@ * The default read buffer size is patchable. */ SYSCTL_NODE(_net, OID_AUTO, bpf, CTLFLAG_RW, 0, "bpf sysctl"); -static int bpf_bufsize = 4096; -SYSCTL_INT(_net_bpf, OID_AUTO, bufsize, CTLFLAG_RW, - &bpf_bufsize, 0, ""); -static int bpf_maxbufsize = BPF_MAXBUFSIZE; -SYSCTL_INT(_net_bpf, OID_AUTO, maxbufsize, CTLFLAG_RW, - &bpf_maxbufsize, 0, ""); static int bpf_maxinsns = BPF_MAXINSNS; SYSCTL_INT(_net_bpf, OID_AUTO, maxinsns, CTLFLAG_RW, &bpf_maxinsns, 0, "Maximum bpf program instructions"); @@ -159,7 +155,163 @@ static struct filterops bpfread_filtops = { 1, NULL, filt_bpfdetach, filt_bpfread }; +/* + * Wrapper functions for various buffering methods. If the set of buffer + * modes expands, we will probably want to introduce a switch data structure + * similar to protosw, et. + */ +static void +bpf_append_bytes(struct bpf_d *d, caddr_t buf, u_int offset, void *src, + u_int len) +{ + + switch (d->bd_bufmode) { + case BPF_BUFMODE_BUFFER: + return (bpf_buffer_append_bytes(d, buf, offset, src, len)); + +#ifdef BPF_ZEROCOPY + case BPF_BUFMODE_ZBUF: + return (bpf_zerocopy_append_bytes(d, buf, offset, src, len)); +#endif + + default: + panic("bpf_buf_append_bytes"); + } +} + +static void +bpf_append_mbuf(struct bpf_d *d, caddr_t buf, u_int offset, void *src, + u_int len) +{ + + switch (d->bd_bufmode) { + case BPF_BUFMODE_BUFFER: + return (bpf_buffer_append_mbuf(d, buf, offset, src, len)); + +#ifdef BPF_ZEROCOPY + case BPF_BUFMODE_ZBUF: + return (bpf_zerocopy_append_mbuf(d, buf, offset, src, len)); +#endif + + default: + panic("bpf_buf_append_mbuf"); + } +} + +static void +bpf_free(struct bpf_d *d) +{ + + switch (d->bd_bufmode) { + case BPF_BUFMODE_BUFFER: + return (bpf_buffer_free(d)); + +#ifdef BPF_ZEROCOPY + case BPF_BUFMODE_ZBUF: + return (bpf_zerocopy_free(d)); +#endif + + default: + panic("bpf_buf_free"); + } +} + +static int +bpf_uiomove(struct bpf_d *d, caddr_t buf, u_int len, struct uio *uio) +{ + + switch (d->bd_bufmode) { + case BPF_BUFMODE_BUFFER: + return (bpf_buffer_uiomove(d, buf, len, uio)); + +#ifdef BPF_ZEROCOPY + case BPF_BUFMODE_ZBUF: + return (bpf_zerocopy_uiomove(d, buf, len, uio)); +#endif + + default: + panic("bpf_buf_uiomove"); + } +} + static int +bpf_ioctl_sblen(struct bpf_d *d, u_int *i) +{ + + if (d->bd_bufmode != BPF_BUFMODE_BUFFER) + return (EOPNOTSUPP); + return (bpf_buffer_ioctl_sblen(d, i)); +} + +static int +bpf_ioctl_ackzbuf(struct thread *td, struct bpf_d *d, struct bpf_zbuf *bz) +{ + + if (d->bd_bufmode != BPF_BUFMODE_ZBUF) + return (EOPNOTSUPP); +#ifdef BPF_ZEROCOPY + return (bpf_zerocopy_ioctl_ackzbuf(td, d, bz)); +#else + panic("bpf_ioctl_getznext"); +#endif +} + +static int +bpf_ioctl_getzbuf(struct thread *td, struct bpf_d *d, struct bpf_zbuf *bz) +{ + + if (d->bd_bufmode != BPF_BUFMODE_ZBUF) + return (EOPNOTSUPP); +#ifdef BPF_ZEROCOPY + return (bpf_zerocopy_ioctl_getzbuf(td, d, bz)); +#else + panic("bpf_ioctl_getznext"); +#endif +} + +static int +bpf_ioctl_getznext(struct thread *td, struct bpf_d *d, struct bpf_zbuf *bz) +{ + + if (d->bd_bufmode != BPF_BUFMODE_ZBUF) + return (EOPNOTSUPP); +#ifdef BPF_ZEROCOPY + return (bpf_zerocopy_ioctl_getznext(td, d, bz)); +#else + panic("bpf_ioctl_getznext"); +#endif +} + +static int +bpf_ioctl_getzmax(struct thread *td, struct bpf_d *d, u_int *i) +{ + + if (d->bd_bufmode != BPF_BUFMODE_ZBUF) + return (EOPNOTSUPP); +#ifdef BPF_ZEROCOPY + return (bpf_zerocopy_ioctl_getzmax(td, d, i)); +#else + return (ENOTTY); +#endif +} + +static int +bpf_ioctl_setzbuf(struct thread *td, struct bpf_d *d, struct bpf_zbuf *bz) +{ + + if (d->bd_bufmode != BPF_BUFMODE_ZBUF) + return (EOPNOTSUPP); +#ifdef BPF_ZEROCOPY + return (bpf_zerocopy_ioctl_setzbuf(td, d, bz)); +#else + return (ENOTTY); +#endif +} + +/* + * General BPF functions. + */ +static int bpf_movein(struct uio *uio, int linktype, int mtu, struct mbuf **mp, struct sockaddr *sockp, struct bpf_insn *wfilter) { @@ -404,7 +556,14 @@ "bpf%d", dev2unit(dev)); MALLOC(d, struct bpf_d *, sizeof(*d), M_BPF, M_WAITOK | M_ZERO); dev->si_drv1 = d; - d->bd_bufsize = bpf_bufsize; + + /* + * XXXRW: For historical reasons, perform a one-time initialization + * call to the buffer routines, even though we're not yet committed + * to a particular buffer method. + */ + bpf_buffer_init(d); + d->bd_bufmode = BPF_BUFMODE_DEFAULT; d->bd_sig = SIGIO; d->bd_seesent = 1; d->bd_pid = td->td_proc->p_pid; @@ -451,18 +610,19 @@ return (0); } - /* - * Rotate the packet buffers in descriptor d. Move the store buffer - * into the hold slot, and the free buffer into the store slot. - * Zero the length of the new store buffer. + * Rotate the packet buffers in descriptor d. Move the store buffer into + * the hold slot, and the free buffer ino the store slot. Zero the length of + * the new store buffer. Descriptor lock should be held. */ -#define ROTATE_BUFFERS(d) \ - (d)->bd_hbuf = (d)->bd_sbuf; \ - (d)->bd_hlen = (d)->bd_slen; \ - (d)->bd_sbuf = (d)->bd_fbuf; \ - (d)->bd_slen = 0; \ - (d)->bd_fbuf = NULL; +#define ROTATE_BUFFERS(d) do { \ + (d)->bd_hbuf = (d)->bd_sbuf; \ + (d)->bd_hlen = (d)->bd_slen; \ + (d)->bd_sbuf = (d)->bd_fbuf; \ + (d)->bd_slen = 0; \ + (d)->bd_fbuf = NULL; \ +} while (0) + /* * bpfread - read next chunk of packets from buffers */ @@ -553,8 +713,12 @@ * Move data from hold buffer into user space. * We know the entire buffer is transferred since * we checked above that the read buffer is bpf_bufsize bytes. + * + * XXXRW: More synchronization needed here: what if a second thread + * issues a read on the same fd at the same time? Don't want this + * getting invalidated. */ - error = uiomove(d->bd_hbuf, d->bd_hlen, uio); + error = bpf_uiomove(d, d->bd_hbuf, d->bd_hlen, uio); BPFD_LOCK(d); d->bd_fbuf = d->bd_hbuf; @@ -565,7 +729,6 @@ return (error); } - /* * If there are processes sleeping on this descriptor, wake them up. */ @@ -685,6 +848,10 @@ * BIOCGSEESENT Get "see packets sent" flag * BIOCSSEESENT Set "see packets sent" flag * BIOCLOCK Set "locked" flag + * BIOCGETZBUF Query current zero-copy buffer locations. + * BIOCSETZBUF Set current zero-copy buffer locations. + * BIOCSETZBUF Acknowledge reading zero-copy buffers. + * BIOCGETZMAX Get maximume zero-copy buffer size. */ /* ARGSUSED */ static int @@ -721,6 +888,8 @@ case BIOCSRTIMEOUT: case BIOCIMMEDIATE: case TIOCGPGRP: + case BIOCACKZBUF: + case BIOCGETZBUF: break; default: return (EPERM); @@ -773,17 +942,7 @@ * Set buffer length. */ case BIOCSBLEN: - if (d->bd_bif != NULL) - error = EINVAL; - else { - u_int size = *(u_int *)addr; - - if (size > bpf_maxbufsize) - *(u_int *)addr = size = bpf_maxbufsize; - else if (size < BPF_MINBUFSIZE) - *(u_int *)addr = size = BPF_MINBUFSIZE; - d->bd_bufsize = size; - } + error = bpf_ioctl_sblen(d, (u_int *)addr); break; /* @@ -1002,6 +1161,59 @@ case BIOCGRSIG: *(u_int *)addr = d->bd_sig; break; + + case BIOCGETBUFMODE: + *(u_int *)addr = d->bd_bufmode; + break; + + case BIOCSETBUFMODE: + /* + * Allow the buffering mode to be changed as long as we + * haven't yet committed to a particular mode. Our + * definition of commitment, for now, is whether or not a + * buffer has been allocated or an interface attached, since + * that's the point where things get tricky. + * + * XXXRW: This will need some refinement. Is checking both + * for buffers and interface binding redundant? + */ + switch (*(u_int *)addr) { + case BPF_BUFMODE_BUFFER: + break; + +#ifdef BPF_ZEROCOPY + case BPF_BUFMODE_ZBUF: + break; +#endif + + default: + return (EINVAL); + } + + BPFD_LOCK(d); + if (d->bd_sbuf != NULL || d->bd_hbuf != NULL || + d->bd_fbuf != NULL || d->bd_bif != NULL) { + BPFD_UNLOCK(d); + return (EBUSY); + } + d->bd_bufmode = *(u_int *)addr; + BPFD_UNLOCK(d); + break; + + case BIOCACKZBUF: + return (bpf_ioctl_ackzbuf(td, d, (struct bpf_zbuf *)addr)); + + case BIOCGETZBUF: + return (bpf_ioctl_getzbuf(td, d, (struct bpf_zbuf *)addr)); + + case BIOCGETZMAX: + return (bpf_ioctl_getzmax(td, d, (u_int *)addr)); + + case BIOCGETZNEXT: + return (bpf_ioctl_getznext(td, d, (struct bpf_zbuf *)addr)); + + case BIOCSETZBUF: + return (bpf_ioctl_setzbuf(td, d, (struct bpf_zbuf *)addr)); } return (error); } @@ -1102,13 +1314,30 @@ return (ENXIO); bp = theywant->if_bpf; + /* - * Allocate the packet buffers if we need to. - * If we're already attached to requested interface, - * just flush the buffer. + * Behavior here depends on the buffering model. If we're using + * kernel memory buffers, then we can allocate them here. If we're + * using zero-copy, then the user process must have registered + * buffers by the time we get here. If not, return an error. + * + * XXXRW: Could this be better abstracted? */ - if (d->bd_sbuf == NULL) - bpf_allocbufs(d); + switch (d->bd_bufmode) { + case BPF_BUFMODE_BUFFER: + if (d->bd_sbuf == NULL) + bpf_buffer_alloc(d); + KASSERT(d->bd_sbuf != NULL, ("bpf_setif: bd_sbuf NULL")); + break; + + case BPF_BUFMODE_ZBUF: + if (d->bd_sbuf == NULL) + return (EINVAL); + break; + + default: + panic("bpf_setif: bufmode %d", d->bd_bufmode); + } if (bp != d->bd_bif) { if (d->bd_bif) /* @@ -1252,7 +1481,8 @@ #ifdef MAC if (mac_check_bpfdesc_receive(d, bp->bif_ifp) == 0) #endif - catchpacket(d, pkt, pktlen, slen, bcopy, &tv); + catchpacket(d, pkt, pktlen, slen, + bpf_append_bytes, &tv); } BPFD_UNLOCK(d); } @@ -1260,30 +1490,6 @@ } /* - * Copy data from an mbuf chain into a buffer. This code is derived - * from m_copydata in sys/uipc_mbuf.c. - */ -static void -bpf_mcopy(const void *src_arg, void *dst_arg, size_t len) -{ - const struct mbuf *m; - u_int count; - u_char *dst; - - m = src_arg; - dst = dst_arg; - while (len > 0) { - if (m == NULL) - panic("bpf_mcopy"); - count = min(m->m_len, len); - bcopy(mtod(m, void *), dst, count); - m = m->m_next; - dst += count; - len -= count; - } -} - -/* * Incoming linkage from device drivers, when packet is in an mbuf chain. */ void @@ -1323,7 +1529,7 @@ if (mac_check_bpfdesc_receive(d, bp->bif_ifp) == 0) #endif catchpacket(d, (u_char *)m, pktlen, slen, - bpf_mcopy, &tv); + bpf_append_mbuf, &tv); } BPFD_UNLOCK(d); } @@ -1373,7 +1579,7 @@ if (mac_check_bpfdesc_receive(d, bp->bif_ifp) == 0) #endif catchpacket(d, (u_char *)&mb, pktlen, slen, - bpf_mcopy, &tv); + bpf_append_mbuf, &tv); } BPFD_UNLOCK(d); } @@ -1384,14 +1590,15 @@ * Move the packet data from interface memory (pkt) into the * store buffer. "cpfn" is the routine called to do the actual data * transfer. bcopy is passed in to copy contiguous chunks, while - * bpf_mcopy is passed in to copy mbuf chains. In the latter case, + * bpf_append_mbuf is passed in to copy mbuf chains. In the latter case, * pkt is really an mbuf. */ static void catchpacket(struct bpf_d *d, u_char *pkt, u_int pktlen, u_int snaplen, - void (*cpfn)(const void *, void *, size_t), struct timeval *tv) + void (*cpfn)(struct bpf_d *, caddr_t, u_int, void *, u_int), + struct timeval *tv) { - struct bpf_hdr *hp; + struct bpf_hdr hdr; int totlen, curlen; int hdrlen = d->bd_bif->bif_hdrlen; int do_wakeup = 0; @@ -1438,16 +1645,20 @@ do_wakeup = 1; /* - * Append the bpf header. + * Append the bpf header. Note we append the actual header size, but + * move forward the length of the header plus padding. */ - hp = (struct bpf_hdr *)(d->bd_sbuf + curlen); - hp->bh_tstamp = *tv; - hp->bh_datalen = pktlen; - hp->bh_hdrlen = hdrlen; + bzero(&hdr, sizeof(hdr)); + hdr.bh_tstamp = *tv; + hdr.bh_datalen = pktlen; + hdr.bh_hdrlen = hdrlen; + hdr.bh_caplen = totlen - hdrlen; + bpf_append_bytes(d, d->bd_sbuf, curlen, &hdr, sizeof(hdr)); + /* * Copy the packet data into the store buffer and update its length. */ - (*cpfn)(pkt, (u_char *)hp + hdrlen, (hp->bh_caplen = totlen - hdrlen)); + (*cpfn)(d, d->bd_sbuf, curlen + hdrlen, pkt, hdr.bh_caplen); d->bd_slen = curlen + totlen; if (do_wakeup) @@ -1455,41 +1666,19 @@ } /* - * Initialize all nonzero fields of a descriptor. - */ -static void -bpf_allocbufs(struct bpf_d *d) -{ - - KASSERT(d->bd_fbuf == NULL, ("bpf_allocbufs: bd_fbuf != NULL")); - KASSERT(d->bd_sbuf == NULL, ("bpf_allocbufs: bd_sbuf != NULL")); - KASSERT(d->bd_hbuf == NULL, ("bpf_allocbufs: bd_hbuf != NULL")); - - d->bd_fbuf = (caddr_t)malloc(d->bd_bufsize, M_BPF, M_WAITOK); - d->bd_sbuf = (caddr_t)malloc(d->bd_bufsize, M_BPF, M_WAITOK); - d->bd_slen = 0; - d->bd_hlen = 0; -} - -/* * Free buffers currently in use by a descriptor. * Called on close. */ static void bpf_freed(struct bpf_d *d) { + /* * We don't need to lock out interrupts since this descriptor has * been detached from its interface and it yet hasn't been marked * free. */ - if (d->bd_sbuf != NULL) { - free(d->bd_sbuf, M_BPF); - if (d->bd_hbuf != NULL) - free(d->bd_hbuf, M_BPF); - if (d->bd_fbuf != NULL) - free(d->bd_fbuf, M_BPF); - } + bpf_free(d); if (d->bd_rfilter) { free((caddr_t)d->bd_rfilter, M_BPF); #ifdef BPF_JITTER ==== //depot/projects/zcopybpf/src/sys/net/bpf.h#2 (text+ko) ==== @@ -92,6 +92,38 @@ #define BPF_MAJOR_VERSION 1 #define BPF_MINOR_VERSION 1 +/* + * Historically, BPF has supported a single buffering model, first using mbuf + * clusters in kernel, and later using malloc(9) buffers in kernel. We now + * support multiple buffering modes, which may be queried and set using + * BIOCGETBUFMODE and BIOCSETBUFMODE. So as to avoid handling the complexity + * of changing modes while sniffing packets, the mode becomes fixed once an + * interface has been attached to the BPF descriptor. + */ +#define BPF_BUFMODE_BUFFER 1 /* Kernel buffers with read(). */ +#define BPF_BUFMODE_ZBUF 2 /* Zero-copy buffers. */ + +#define BPF_BUFMODE_DEFAULT BPF_BUFMODE_BUFFER /* Default. */ + +/* + * Struct used by BIOCACKZBUF, BIOCGETZNEXT, BIOCGETZBUF, BIOCSETZBUF: + * describes up to two zero-copy buffer as used by BPF. + * + * BIOCACKZBUF Acknowledge read of stored zero-copy buffer (rotate). + * BIOCGETZBUF Query current zero-copy buffer locations. + * BIOCGETZNEXT Query next stored buffer, if available. + * BIOCSETZBUF Set current zero-copy buffer locations (once only). + * + * Pointers may be set to NULL to indicate a buffer is not configure, should + * be freed, or is not being acknowledged. + */ +struct bpf_zbuf { + void *bz_bufa; /* Location of 'a' zero-copy buffer. */ + size_t bz_bufalen; /* Size of 'a' zero-copy buffer. */ + void *bz_bufb; /* Location of 'b' zero-copy buffer. */ + size_t bz_bufblen; /* Size of 'b' zero-copy buffer. */ +}; + #define BIOCGBLEN _IOR('B',102, u_int) #define BIOCSBLEN _IOWR('B',102, u_int) #define BIOCSETF _IOW('B',103, struct bpf_program) @@ -115,6 +147,13 @@ #define BIOCGDLTLIST _IOWR('B',121, struct bpf_dltlist) #define BIOCLOCK _IO('B', 122) #define BIOCSETWF _IOW('B',123, struct bpf_program) +#define BIOCGETBUFMODE _IOR('B', 124, u_int) +#define BIOCSETBUFMODE _IOW('B', 125, u_int) +#define BIOCACKZBUF _IOW('B', 126, struct bpf_zbuf) +#define BIOCGETZBUF _IOR('B', 127, struct bpf_zbuf) +#define BIOCGETZMAX _IOR('B', 128, u_int) +#define BIOCGETZNEXT _IOR('B', 129, struct bpf_zbuf) +#define BIOCSETZBUF _IOW('B', 130, struct bpf_zbuf) /* * Structure prepended to each packet. @@ -615,6 +654,15 @@ }; #ifdef _KERNEL + +#ifdef MALLOC_DECLARE +MALLOC_DECLARE(M_BPF); +#endif + +#ifdef SYSCTL_DECL +SYSCTL_DECL(_net_bpf); +#endif + /* * Descriptor associated with each attached hardware interface. */ ==== //depot/projects/zcopybpf/src/sys/net/bpf_buffer.c#3 (text+ko) ==== @@ -1,4 +1,31 @@ /*- + * Copyright (c) 2007 Seccuris Inc. + * All rights reserved. + * + * This sofware was developed by Robert N. M. Watson under contract to + * Seccuris Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * * Copyright (c) 1990, 1991, 1993 * The Regents of the University of California. All rights reserved. * @@ -37,180 +64,81 @@ */ #include "opt_bpf.h" -#include "opt_mac.h" -#include "opt_netgraph.h" -#include #include -#include -#include -#include #include #include -#include -#include -#include -#include -#include -#include -#include +#include #include +#include +#include -#include -#include -#include -#include - -#include - #include #include -#ifdef BPF_JITTER -#include -#endif +#include #include -#include -#include -#include -#include +/* + * Implement historical kernel memory buffering model for BPF: two malloc(9) + * kernel buffers are hung off of the descriptor. The size is fixed prior to + * attaching to an ifnet, ad cannot be changed after that. read(2) simply + * copies the data to user space using uiomove(9). + */ -#include +static int bpf_bufsize = 4096; +SYSCTL_INT(_net_bpf, OID_AUTO, bufsize, CTLFLAG_RW, + &bpf_bufsize, 0, ""); +static int bpf_maxbufsize = BPF_MAXBUFSIZE; +SYSCTL_INT(_net_bpf, OID_AUTO, maxbufsize, CTLFLAG_RW, + &bpf_maxbufsize, 0, ""); -#include +void +bpf_buffer_alloc(struct bpf_d *d) +{ -static MALLOC_DEFINE(M_BPF, "BPF", "BPF data"); + KASSERT(d->bd_fbuf == NULL, ("bpf_buffer_alloc: bd_fbuf != NULL")); + KASSERT(d->bd_sbuf == NULL, ("bpf_buffer_alloc: bd_sbuf != NULL")); + KASSERT(d->bd_hbuf == NULL, ("bpf_buffer_alloc: bd_hbuf != NULL")); -#if defined(DEV_BPF) || defined(NETGRAPH_BPF) + // printf("bpf_buffer_alloc size %d\n", d->bd_bufsize); -#define PRINET 26 /* interruptible */ + d->bd_fbuf = (caddr_t)malloc(d->bd_bufsize, M_BPF, M_WAITOK); + d->bd_sbuf = (caddr_t)malloc(d->bd_bufsize, M_BPF, M_WAITOK); + d->bd_hbuf = NULL; + d->bd_slen = 0; + d->bd_hlen = 0; +} /* - * Rotate the packet buffers in descriptor d. Move the store buffer - * into the hold slot, and the free buffer into the store slot. - * Zero the length of the new store buffer. + * Simple data copy to the current kernel buffer. */ -#define ROTATE_BUFFERS(d) \ - (d)->bd_hbuf = (d)->bd_sbuf; \ - (d)->bd_hlen = (d)->bd_slen; \ - (d)->bd_sbuf = (d)->bd_fbuf; \ - (d)->bd_slen = 0; \ - (d)->bd_fbuf = NULL; -/* - * bpfread - read next chunk of packets from buffers - */ -static int -bpfread(struct cdev *dev, struct uio *uio, int ioflag) +void +bpf_buffer_append_bytes(struct bpf_d *d, caddr_t buf, u_int offset, + void *src, u_int len) { - struct bpf_d *d = dev->si_drv1; - int timed_out; - int error; + u_char *src_bytes; - /* - * Restrict application to use a buffer the same size as - * as kernel buffers. - */ - if (uio->uio_resid != d->bd_bufsize) - return (EINVAL); + // printf("bpf_buffer_append_bytes size %d\n", len); - BPFD_LOCK(d); - if (d->bd_state == BPF_WAITING) - callout_stop(&d->bd_callout); - timed_out = (d->bd_state == BPF_TIMED_OUT); - d->bd_state = BPF_IDLE; - /* - * If the hold buffer is empty, then do a timed sleep, which - * ends when the timeout expires or when enough packets - * have arrived to fill the store buffer. - */ - while (d->bd_hbuf == NULL) { - if ((d->bd_immediate || timed_out) && d->bd_slen != 0) { - /* - * A packet(s) either arrived since the previous - * read or arrived while we were asleep. - * Rotate the buffers and return what's here. - */ - ROTATE_BUFFERS(d); - break; - } - - /* - * No data is available, check to see if the bpf device - * is still pointed at a real interface. If not, return - * ENXIO so that the userland process knows to rebind - * it before using it again. - */ - if (d->bd_bif == NULL) { - BPFD_UNLOCK(d); - return (ENXIO); - } - - if (ioflag & O_NONBLOCK) { - BPFD_UNLOCK(d); - return (EWOULDBLOCK); - } - error = msleep(d, &d->bd_mtx, PRINET|PCATCH, - "bpf", d->bd_rtout); - if (error == EINTR || error == ERESTART) { - BPFD_UNLOCK(d); - return (error); - } - if (error == EWOULDBLOCK) { - /* - * On a timeout, return what's in the buffer, - * which may be nothing. If there is something - * in the store buffer, we can rotate the buffers. - */ - if (d->bd_hbuf) - /* - * We filled up the buffer in between - * getting the timeout and arriving - * here, so we don't need to rotate. - */ - break; - - if (d->bd_slen == 0) { - BPFD_UNLOCK(d); - return (0); - } - ROTATE_BUFFERS(d); - break; - } - } - /* - * At this point, we know we have something in the hold slot. - */ - BPFD_UNLOCK(d); - - /* - * Move data from hold buffer into user space. - * We know the entire buffer is transferred since - * we checked above that the read buffer is bpf_bufsize bytes. - */ - error = uiomove(d->bd_hbuf, d->bd_hlen, uio); - - BPFD_LOCK(d); - d->bd_fbuf = d->bd_hbuf; - d->bd_hbuf = NULL; - d->bd_hlen = 0; - BPFD_UNLOCK(d); - - return (error); + src_bytes = (u_char *)src; + bcopy(src_bytes, buf + offset, len); } /* - * Copy data from an mbuf chain into a buffer. This code is derived - * from m_copydata in sys/uipc_mbuf.c. + * Scatter-gather data copy from an mbuf chain to the current kernel buffer. */ -static void -bpf_mcopy(const void *src_arg, void *dst_arg, size_t len) +void +bpf_buffer_append_mbuf(struct bpf_d *d, caddr_t buf, u_int offset, void *src, + u_int len) { const struct mbuf *m; + u_char *dst; u_int count; - u_char *dst; + + // printf("bpf_buffer_append_mbuf size %d\n", len); - m = src_arg; - dst = dst_arg; + m = (struct mbuf *)src; + dst = (u_char *)buf + offset; while (len > 0) { if (m == NULL) panic("bpf_mcopy"); @@ -223,18 +151,76 @@ } /* - * Initialize all nonzero fields of a descriptor. + * Free BPF kernel buffers on device close. + */ +void +bpf_buffer_free(struct bpf_d *d) +{ + + // printf("bpf_buffer_free(sbuf: %p, hbuf: %p, fbuf: %p)\n", + // d->bd_sbuf, d->bd_hbuf, d->bd_fbuf); + + if (d->bd_sbuf != NULL) + free(d->bd_sbuf, M_BPF); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jan 30 18:49:37 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BC38816A409; Tue, 30 Jan 2007 18:49:37 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 99DED16A407 for ; Tue, 30 Jan 2007 18:49:37 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 8A2DC13C4B3 for ; Tue, 30 Jan 2007 18:49:37 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UInbCE047699 for ; Tue, 30 Jan 2007 18:49:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UInblN047690 for perforce@freebsd.org; Tue, 30 Jan 2007 18:49:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 30 Jan 2007 18:49:37 GMT Message-Id: <200701301849.l0UInblN047690@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113715 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 18:49:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=113715 Change 113715 by rwatson@rwatson_cinnamon on 2007/01/30 18:49:17 Some initial hackings at exercise and testing tools for zerocopy BPF. Very initial. Affected files ... .. //depot/projects/zcopybpf/utils/zbuf_ioctl/Makefile#1 add .. //depot/projects/zcopybpf/utils/zbuf_ioctl/zbuf_ioctl.c#1 add .. //depot/projects/zcopybpf/utils/zbuf_tap/Makefile#1 add .. //depot/projects/zcopybpf/utils/zbuf_tap/bpf_util.c#1 add .. //depot/projects/zcopybpf/utils/zbuf_tap/tap_util.c#1 add .. //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.c#1 add .. //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Tue Jan 30 21:37:14 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2804616A404; Tue, 30 Jan 2007 21:37:14 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F117D16A400 for ; Tue, 30 Jan 2007 21:37:13 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E262E13C428 for ; Tue, 30 Jan 2007 21:37:13 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0ULbDhe061757 for ; Tue, 30 Jan 2007 21:37:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0ULbD9T061754 for perforce@freebsd.org; Tue, 30 Jan 2007 21:37:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 30 Jan 2007 21:37:13 GMT Message-Id: <200701302137.l0ULbD9T061754@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113729 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 21:37:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=113729 Change 113729 by rwatson@rwatson_cinnamon on 2007/01/30 21:36:36 Add TAPGETUNIT ioctl to if_tap, which allows the user daemon to query the ifnet unit number without playing fstat() and minor device number games. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/if_tap.c#2 edit .. //depot/projects/zcopybpf/src/sys/net/if_tap.h#2 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/if_tap.c#2 (text+ko) ==== @@ -639,6 +639,10 @@ tapp->baudrate = ifp->if_baudrate; break; + case TAPGETUNIT: + *(u_int *)data = dev2unit(dev); + break; + case TAPSDEBUG: tapdebug = *(int *)data; break; ==== //depot/projects/zcopybpf/src/sys/net/if_tap.h#2 (text+ko) ==== @@ -55,6 +55,7 @@ #define TAPGDEBUG _IOR('t', 89, int) #define TAPSIFINFO _IOW('t', 91, struct tapinfo) #define TAPGIFINFO _IOR('t', 92, struct tapinfo) +#define TAPGETUNIT _IOR('t', 93, u_int) /* VMware ioctl's */ #define VMIO_SIOCSIFFLAGS _IOWINT('V', 0) From owner-p4-projects@FreeBSD.ORG Tue Jan 30 21:42:22 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4B42616A407; Tue, 30 Jan 2007 21:42:22 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 040A316A400 for ; Tue, 30 Jan 2007 21:42:22 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D21CC13C48E for ; Tue, 30 Jan 2007 21:42:21 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0ULgLS1064262 for ; Tue, 30 Jan 2007 21:42:21 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0ULgLvH064259 for perforce@freebsd.org; Tue, 30 Jan 2007 21:42:21 GMT (envelope-from csjp@freebsd.org) Date: Tue, 30 Jan 2007 21:42:21 GMT Message-Id: <200701302142.l0ULgLvH064259@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113731 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 21:42:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=113731 Change 113731 by csjp@csjp_rnd01 on 2007/01/30 21:42:07 Spelling tweak Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.c#3 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#3 (text+ko) ==== @@ -851,7 +851,7 @@ * BIOCGETZBUF Query current zero-copy buffer locations. * BIOCSETZBUF Set current zero-copy buffer locations. * BIOCSETZBUF Acknowledge reading zero-copy buffers. - * BIOCGETZMAX Get maximume zero-copy buffer size. + * BIOCGETZMAX Get maximum zero-copy buffer size. */ /* ARGSUSED */ static int From owner-p4-projects@FreeBSD.ORG Tue Jan 30 22:14:02 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F138316A979; Tue, 30 Jan 2007 22:14:01 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AC0F716A8FA for ; Tue, 30 Jan 2007 22:14:01 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9BCBA13C47E for ; Tue, 30 Jan 2007 22:14:01 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UME1SW071237 for ; Tue, 30 Jan 2007 22:14:01 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UME18J071234 for perforce@freebsd.org; Tue, 30 Jan 2007 22:14:01 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 30 Jan 2007 22:14:01 GMT Message-Id: <200701302214.l0UME18J071234@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113733 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 22:14:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=113733 Change 113733 by rwatson@rwatson_cinnamon on 2007/01/30 22:13:21 Rather than offering two length fields in bpf_zbuf (which must be equal), just have one length avoiding the whole issue. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.h#3 edit .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#2 edit .. //depot/projects/zcopybpf/utils/zbuf_ioctl/zbuf_ioctl.c#2 edit .. //depot/projects/zcopybpf/utils/zbuf_tap/bpf_util.c#2 edit .. //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.c#2 edit .. //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.h#2 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.h#3 (text+ko) ==== @@ -119,9 +119,8 @@ */ struct bpf_zbuf { void *bz_bufa; /* Location of 'a' zero-copy buffer. */ - size_t bz_bufalen; /* Size of 'a' zero-copy buffer. */ void *bz_bufb; /* Location of 'b' zero-copy buffer. */ - size_t bz_bufblen; /* Size of 'b' zero-copy buffer. */ + size_t bz_buflen; /* Size of zero-copy buffers. */ }; #define BIOCGBLEN _IOR('B',102, u_int) ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#2 (text+ko) ==== @@ -398,8 +398,8 @@ ("bpf_zerocopy_ioctl_ackzbuf: not in zbuf mode")); // printf("bpf_zerocopy_ioctl_ackzbuf(td: %p, pid: %d, d: %p, " - // "bz.bz_bufa: %p, bz.bz_bufalen: %d)\n", td, td->td_proc->p_pid, - // d, bz->bz_bufa, bz->bz_bufalen); + // "bz.bz_bufa: %p, bz.bz_buflen: %d)\n", td, td->td_proc->p_pid, + // d, bz->bz_bufa, bz->bz_buflen); BPFD_LOCK(d); if (d->bd_hbuf == NULL) { @@ -445,20 +445,18 @@ if (d->bd_hbuf != NULL) { zb = (struct zbuf *)d->bd_hbuf; bz->bz_bufa = (void *)zb->zb_uaddr; - bz->bz_bufalen = zb->zb_size; + bz->bz_buflen = zb->zb_size; zb = (struct zbuf *)d->bd_sbuf; bz->bz_bufb = (void *)zb->zb_uaddr; - bz->bz_bufblen = zb->zb_size; } else if (d->bd_sbuf != NULL) { zb = (struct zbuf *)d->bd_sbuf; bz->bz_bufa = (void *)zb->zb_uaddr; - bz->bz_bufalen = zb->zb_size; + bz->bz_buflen = zb->zb_size; zb = (struct zbuf *)d->bd_fbuf; bz->bz_bufb = (void *)zb->zb_uaddr; - bz->bz_bufblen = zb->zb_size; } else { bz->bz_bufa = bz->bz_bufb = NULL; - bz->bz_bufalen = bz->bz_bufblen = 0; + bz->bz_buflen = 0; } BPFD_UNLOCK(d); return (0); @@ -503,7 +501,7 @@ if (d->bd_hbuf != NULL) { zb = (struct zbuf *)d->bd_hbuf; bz->bz_bufa = (void *)zb->zb_uaddr; - bz->bz_bufalen = zb->zb_size; + bz->bz_buflen = zb->zb_size; } BPFD_UNLOCK(d); return (0); @@ -532,13 +530,10 @@ return (EINVAL); /* - * Both buffers must be the same size and must not be zero in size. - * Alignment and other size validity checking is done in - * zbuf_setup(). + * Buffers must have a size greater than 0. Alignment and other size + * validity checking is done in zbuf_setup(). */ - if (bz->bz_bufalen != bz->bz_bufblen) - return (EINVAL); - if (bz->bz_bufalen == 0) + if (bz->bz_buflen == 0) return (EINVAL); /* @@ -556,12 +551,12 @@ /* * Allocate new buffers if required. */ - error = zbuf_setup(td, (vm_offset_t)bz->bz_bufa, bz->bz_bufalen, + error = zbuf_setup(td, (vm_offset_t)bz->bz_bufa, bz->bz_buflen, &zba); if (error) return (error); - error = zbuf_setup(td, (vm_offset_t)bz->bz_bufb, bz->bz_bufblen, + error = zbuf_setup(td, (vm_offset_t)bz->bz_bufb, bz->bz_buflen, &zbb); if (error) { zbuf_free(zba); @@ -583,7 +578,7 @@ d->bd_sbuf = (caddr_t)zba; d->bd_slen = 0; d->bd_hlen = 0; - d->bd_bufsize = bz->bz_bufalen; + d->bd_bufsize = bz->bz_buflen; BPFD_UNLOCK(d); return (0); } ==== //depot/projects/zcopybpf/utils/zbuf_ioctl/zbuf_ioctl.c#2 (text+ko) ==== @@ -54,17 +54,15 @@ bzero(&bz, sizeof(bz)); bz.bz_bufa = buf; - bz.bz_bufalen = buflen; bz.bz_bufb = (void *)0xffffffff; - bz.bz_bufalen = 0xffffffff; + bz.bz_buflen = buflen; if (ioctl(fd, BIOCACKZBUF, &bz) < 0) return (-1); return (0); } static int -bpf_getzbuf(int fd, char **bufa, size_t *bufalen, char **bufb, - size_t *bufblen) +bpf_getzbuf(int fd, char **bufa, char **bufb, size_t *buflen) { struct bpf_zbuf bz; @@ -72,22 +70,20 @@ if (ioctl(fd, BIOCGETZBUF, &bz) < 0) return (-1); *bufa = bz.bz_bufa; - *bufalen = bz.bz_bufalen; *bufb = bz.bz_bufb; - *bufblen = bz.bz_bufblen; + *buflen = bz.bz_buflen; return (0); } static int -bpf_setzbuf(int fd, char *bufa, size_t bufalen, char *bufb, size_t bufblen) +bpf_setzbuf(int fd, char *bufa, char *bufb, size_t buflen) { struct bpf_zbuf bz; bzero(&bz, sizeof(bz)); bz.bz_bufa = bufa; - bz.bz_bufalen = bufalen; bz.bz_bufb = bufb; - bz.bz_bufblen = bufblen; + bz.bz_buflen = buflen; if (ioctl(fd, BIOCSETZBUF, &bz) < 0) return (-1); return (0); @@ -117,11 +113,11 @@ * error. Abort program only if unable to set back to the original state. */ static void -bpf_test_setzbuf(char *desc, char *bufa, size_t bufalen, char *bufb, - size_t bufblen, int error) +bpf_test_setzbuf(char *desc, char *bufa, char *bufb, size_t buflen, + int error) { - size_t bufalen_check, bufblen_check; char *bufa_check, *bufb_check; + size_t buflen_check; int fd, ret; u_int mode; @@ -135,28 +131,31 @@ "bpf_test_setzbuf(%s): ioctl(BIOCSETBUFMODE, " "BPF_BUFMODE_ZBUF)", desc); - ret = bpf_setzbuf(fd, bufa, bufalen, bufb, bufblen); + ret = bpf_setzbuf(fd, bufa, bufb, buflen); if (ret == 0 && error != 0) { - warnx("bpf_test_setzbuf(%s): bpf_setzbuf(0x%x, %d, 0x%x, %d)" + warnx("bpf_test_setzbuf(%s): bpf_setzbuf(0x%x, 0x%x, %d)" " should fail with %d (%s) but returned 0", desc, - (uintptr_t)bufa, bufalen, (uintptr_t)bufb, bufblen, - error, strerror(error)); + (uintptr_t)bufa, (uintptr_t)bufb, buflen, error, + strerror(error)); goto out; } if (ret < 0 && error != errno) { - warnx("bpf_test_setzbuf(%s): bpf_setzbuf(0x%x, %d, 0x%x, %d)" + warnx("bpf_test_setzbuf(%s): bpf_setzbuf(0x%x, 0x%x, %d)" " should fail with %d (%s) but failed with %d (%s) " - "instead", desc, (uintptr_t)bufa, bufalen, - (uintptr_t)bufb, bufblen, error, strerror(error), errno, - strerror(errno)); + "instead", desc, (uintptr_t)bufa, (uintptr_t)bufb, + buflen, error, strerror(error), errno, strerror(errno)); goto out; } - ret = bpf_getzbuf(fd, &bufa_check, &bufalen_check, &bufb_check, - &bufblen_check); + ret = bpf_getzbuf(fd, &bufa_check, &bufb_check, &buflen_check); if (ret < 0) err(-1, "bpf_test_setzbuf(%s): bpf_getzbuf() to confirm " "results failed", desc); + if (bufa_check != bufa || bufb_check != bufb || + buflen != buflen_check) + errx(-1, "bpf_test_setzbuf(%s): getzbuf returned " + "(0x%x, 0x%x, %d)", desc, (uintptr_t)bufa_check, + (uintptr_t)bufb_check, buflen_check); out: close(fd); } @@ -180,11 +179,11 @@ int main(int argc, char *argv[]) { - size_t bufalen_real, bufblen_real, pagesize; + size_t buflen_real, pagesize; char *bufa_real, *bufb_real; pagesize = getpagesize(); - bufalen_real = bufblen_real = pagesize * USE_BUFFER_PAGES; + buflen_real = pagesize * USE_BUFFER_PAGES; bufa_real = mmap(NULL, pagesize * ALLOC_BUFFER_PAGES, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); @@ -200,55 +199,42 @@ /* * Query and make sure zbufs are not configured up front. */ - if (bpf_getzbuf(fd, &bufa, &bufalen, &bufb, &bufblen) < 0) + if (bpf_getzbuf(fd, &bufa, &bufb, &buflen) < 0) err(-1, "bpf_getzbuf"); #endif /* * Make sure that attempts to set just one buffer are rejected. */ - bpf_test_setzbuf("just_bufa", bufa_real, bufalen_real, NULL, 0, - EINVAL); - bpf_test_setzbuf("just_bufb", NULL, 0, bufb_real, bufblen_real, - EINVAL); + bpf_test_setzbuf("just_bufa", bufa_real, NULL, buflen_real, EINVAL); + bpf_test_setzbuf("just_bufb", NULL, bufb_real, buflen_real, EINVAL); /* * Set the aligned buffers with proper sizes. */ - bpf_test_setzbuf("align_good", bufa_real, bufalen_real, bufb_real, - bufblen_real, 0); + bpf_test_setzbuf("align_good", bufa_real, bufb_real, buflen_real, 0); /* * Try some non-aligned values. */ - bpf_test_setzbuf("nonalign_good", bufa_real, pagesize, bufb_real, - pagesize, 0); - bpf_test_setzbuf("nonalign_bufa", bufa_real + 4, pagesize, bufb_real, - pagesize, EINVAL); - bpf_test_setzbuf("nonalign_bufb", bufa_real, pagesize, bufb_real + 4, - pagesize, EINVAL); - bpf_test_setzbuf("nonalign_both", bufa_real + 4, pagesize, - bufb_real + 4, pagesize, EINVAL); + bpf_test_setzbuf("nonalign_good", bufa_real, bufb_real, pagesize, 0); + bpf_test_setzbuf("nonalign_bufa", bufa_real + 4, bufb_real, pagesize, + EINVAL); + bpf_test_setzbuf("nonalign_bufb", bufa_real, bufb_real + 4, pagesize, + EINVAL); /* - * Try some invalid sizes. + * Try an invalid size. */ - bpf_test_setzbuf("isize_good", bufa_real, pagesize, bufb_real, - pagesize, 0); - bpf_test_setzbuf("isize_bufa", bufa_real, pagesize + 4, bufb_real, - pagesize, EINVAL); - bpf_test_setzbuf("isize_bufb", bufa_real, pagesize, bufb_real, - pagesize + 4, EINVAL); - bpf_test_setzbuf("isize_both", bufa_real, pagesize + 4, bufb_real, - pagesize + 4, EINVAL); + bpf_test_setzbuf("isize_good", bufa_real, bufb_real, pagesize, 0); + bpf_test_setzbuf("isize_buflen", bufa_real, bufb_real, pagesize + 4, + EINVAL); /* * Try a ridiculously large size (based on a priori knowledge of the * size limit). */ - bpf_test_setzbuf("size_toobig", bufa_real, - ALLOC_BUFFER_PAGES * pagesize, bufb_real, pagesize, EINVAL); - bpf_test_setzbuf("size_toobig", bufa_real, pagesize, bufb_real, + bpf_test_setzbuf("size_toobig", bufa_real, bufb_real, ALLOC_BUFFER_PAGES * pagesize, EINVAL); /* @@ -263,8 +249,8 @@ if (bufa_real == MAP_FAILED) err(-1, "mmap"); - bpf_test_setzbuf("prot_readonly", bufa_real, pagesize, bufb_real, - pagesize, EFAULT); + bpf_test_setzbuf("prot_readonly", bufa_real, bufb_real, pagesize, + EFAULT); #if 0 /* @@ -280,20 +266,20 @@ if (bufa_real == MAP_FAILED) err(-1, "mmap"); - bpf_test_setzbuf("prot_writeonly", bufa_real, pagesize, bufb_real, - pagesize, EFAULT); + bpf_test_setzbuf("prot_writeonly", bufa_real, bufb_real, pagesize, + EFAULT); #endif if (munmap(bufa_real, pagesize * ALLOC_BUFFER_PAGES) < 0) err(-1, "munmap(bufa_real)"); - bufa_real = mmap(NULL, pagesize * ALLOC_BUFFER_PAGES, - 0, MAP_ANON, -1, 0); + bufa_real = mmap(NULL, pagesize * ALLOC_BUFFER_PAGES, 0, MAP_ANON, + -1, 0); if (bufa_real == MAP_FAILED) err(-1, "mmap"); - bpf_test_setzbuf("prot_none", bufa_real, pagesize, bufb_real, - pagesize, EFAULT); + bpf_test_setzbuf("prot_none", bufa_real, bufb_real, pagesize, + EFAULT); /* * Test other functions. ==== //depot/projects/zcopybpf/utils/zbuf_tap/bpf_util.c#2 (text+ko) ==== @@ -60,7 +60,7 @@ bzero(&bz, sizeof(bz)); bz.bz_bufa = buf; - bz.bz_bufalen = buflen; + bz.bz_buflen = buflen; if (ioctl(fd, BIOCACKZBUF, &bz) < 0) return (-1); return (0); @@ -105,7 +105,7 @@ if (ioctl(fd, BIOCGETZNEXT, &bz) < 0) return (-1); *buf = bz.bz_bufa; - *buflen = bz.bz_bufalen; + *buflen = bz.bz_buflen; return (0); } @@ -168,15 +168,14 @@ } int -bpf_setzbuf(int fd, void *bufa, u_int bufalen, void *bufb, u_int bufblen) +bpf_setzbuf(int fd, void *bufa, void *bufb, u_int buflen) { struct bpf_zbuf bz; bzero(&bz, sizeof(bz)); bz.bz_bufa = bufa; - bz.bz_bufalen = bufalen; bz.bz_bufb = bufb; - bz.bz_bufblen = bufblen; + bz.bz_buflen = buflen; if (ioctl(fd, BIOCSETZBUF, &bz) < 0) return (-1); ==== //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.c#2 (text+ko) ==== @@ -53,19 +53,19 @@ int main(int argc, char *argv[]) { - u_int bufalen, bufblen, buflen; u_char *bufa, *bufb, *buf; + u_int buflen, maxbuflen; char name[PATH_MAX]; int bpf_fd, tap_fd; int i, tap_unit; - bufblen = bufalen = getpagesize() * 2; + buflen = getpagesize() * 2; - bufa = mmap(NULL, bufalen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); + bufa = mmap(NULL, buflen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); if (bufa == MAP_FAILED) err(-1, "mmap"); - bufb = mmap(NULL, bufblen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); + bufb = mmap(NULL, buflen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); if (bufb == MAP_FAILED) err(-1, "mmap"); @@ -84,11 +84,11 @@ if (bpf_setbufmode(bpf_fd, BPF_BUFMODE_ZBUF) < 0) err(-1, "bpf_setbufmode(BPF_BUFMODE_ZBUF)"); - if (bpf_getzmax(bpf_fd, &buflen) < 0) + if (bpf_getzmax(bpf_fd, &maxbuflen) < 0) err(-1, "bpf_getzmax"); - printf("zmax: %d\n", buflen); + printf("zmax: %d\n", maxbuflen); - if (bpf_setzbuf(bpf_fd, bufa, bufalen, bufb, bufblen) < 0) + if (bpf_setzbuf(bpf_fd, bufa, bufb, buflen) < 0) err(-1, "bpf_setzbuf"); if (bpf_captureall(bpf_fd) < 0) @@ -100,7 +100,6 @@ while (1) { sleep(1); - if (bpf_getznext(bpf_fd, (void **)&buf, &buflen) < 0) err(-1, "bpf_getznext"); printf("bpf_getznext returned (0x%x, %d)\n", (uintptr_t)buf, @@ -110,8 +109,8 @@ printf("FIONREAD returned %d\n", i); if (buf != NULL) { if (bpf_ackzbuf(bpf_fd, buf, buflen) < 0) - err(-1, "bpf_ackzbuf(0x%x, %d)", (uintptr_t)buf, - buflen); + err(-1, "bpf_ackzbuf(0x%x, %d)", + (uintptr_t)buf, buflen); } } return (0); ==== //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.h#2 (text+ko) ==== @@ -41,8 +41,7 @@ int bpf_send(int fd, u_char *packet, u_int packetlen); int bpf_setbufmode(int fd, u_int bufmode); int bpf_setif(int fd, const char *ifname); -int bpf_setzbuf(int fd, void *bufa, u_int bufalen, void *bufb, - u_int bufblen); +int bpf_setzbuf(int fd, void *bufa, void *bufb, u_int buflen); void tap_close(int fd); int tap_getunit(int fd); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 22:59:00 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3469816A40F; Tue, 30 Jan 2007 22:59:00 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EC9D816A401 for ; Tue, 30 Jan 2007 22:58:59 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id DDAE013C428 for ; Tue, 30 Jan 2007 22:58:59 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UMwxF6078096 for ; Tue, 30 Jan 2007 22:58:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UMwxBp078093 for perforce@freebsd.org; Tue, 30 Jan 2007 22:58:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 30 Jan 2007 22:58:59 GMT Message-Id: <200701302258.l0UMwxBp078093@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113736 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 22:59:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=113736 Change 113736 by rwatson@rwatson_peppercorn on 2007/01/30 22:58:27 Cause BIOCGETZNEXT to return the amount of data in the current hold buffer, rather than the size of the buffer. Suggested by: csjp Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#3 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#3 (text+ko) ==== @@ -501,7 +501,7 @@ if (d->bd_hbuf != NULL) { zb = (struct zbuf *)d->bd_hbuf; bz->bz_bufa = (void *)zb->zb_uaddr; - bz->bz_buflen = zb->zb_size; + bz->bz_buflen = d->bd_hlen; } BPFD_UNLOCK(d); return (0); From owner-p4-projects@FreeBSD.ORG Tue Jan 30 23:38:50 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8CEC116A40B; Tue, 30 Jan 2007 23:38:50 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 511CF16A409 for ; Tue, 30 Jan 2007 23:38:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4206013C4A5 for ; Tue, 30 Jan 2007 23:38:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0UNcohT085653 for ; Tue, 30 Jan 2007 23:38:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0UNcnFo085650 for perforce@freebsd.org; Tue, 30 Jan 2007 23:38:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 30 Jan 2007 23:38:49 GMT Message-Id: <200701302338.l0UNcnFo085650@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113738 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jan 2007 23:38:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=113738 Change 113738 by rwatson@rwatson_peppercorn on 2007/01/30 23:38:17 For now, entirely disable the uiomove in bpfread(). Still thinking through this, but we may want to make bpfread() be a per-buffer mode method, rather than making uiomove() vary. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#4 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#4 (text+ko) ==== @@ -358,13 +358,9 @@ } /* - * Copy memory from BPF buffer to userspace. - * - * Since the memory is already shared, we just return (0) and allow this to - * be a notification that the buffer is ready to be returned to service. The - * pointer to the buffer is ignored. - * - * XXX: Semantically dubious. + * For now, allow bpfread() to rotate the buffers, but don't perform a copy + * operation or return a value. If we want to copy, we'll need to implement + * scatter-gather copying with a series of uiomove calls here. */ int bpf_zerocopy_uiomove(struct bpf_d *d, caddr_t buf, u_int len, @@ -377,8 +373,7 @@ // printf("bpf_zerocopy_uiomove(d: %p, buf: %p, len: %d, uio: %p)\n", d, // buf, len, uio); - uio->uio_resid -= d->bd_bufsize; - return (0); + return (EOPNOTSUPP); } /* From owner-p4-projects@FreeBSD.ORG Wed Jan 31 00:16:39 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3708B16A402; Wed, 31 Jan 2007 00:16:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0339216A400 for ; Wed, 31 Jan 2007 00:16:39 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E9AC013C442 for ; Wed, 31 Jan 2007 00:16:38 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0V0Gc5c095664 for ; Wed, 31 Jan 2007 00:16:38 GMT (envelope-from jkim@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0V0GccJ095661 for perforce@freebsd.org; Wed, 31 Jan 2007 00:16:38 GMT (envelope-from jkim@freebsd.org) Date: Wed, 31 Jan 2007 00:16:38 GMT Message-Id: <200701310016.l0V0GccJ095661@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jkim@freebsd.org using -f From: Jung-uk Kim To: Perforce Change Reviews Cc: Subject: PERFORCE change 113739 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 00:16:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=113739 Change 113739 by jkim@jkim_hammer on 2007/01/31 00:15:36 Do not reload %gs from linux_*sigcode(). This seem to fix TLS on amd64, finally. :-) Tested on UP and QEMU. Need more testing on SMP. Affected files ... .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_locore.s#2 edit Differences ... ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_locore.s#2 (text+ko) ==== @@ -11,7 +11,9 @@ NON_GPROF_ENTRY(linux_sigcode) call *LINUX_SIGF_HANDLER(%esp) leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ +#if 0 movl LINUX_SC_GS(%ebx),%gs +#endif movl LINUX_SC_FS(%ebx),%fs movl LINUX_SC_ES(%ebx),%es movl LINUX_SC_DS(%ebx),%ds @@ -25,7 +27,9 @@ linux_rt_sigcode: call *LINUX_RT_SIGF_HANDLER(%esp) leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ +#if 0 movl LINUX_SC_GS(%ebx),%gs +#endif movl LINUX_SC_FS(%ebx),%fs movl LINUX_SC_ES(%ebx),%es movl LINUX_SC_DS(%ebx),%ds From owner-p4-projects@FreeBSD.ORG Wed Jan 31 00:48:20 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DC7D916A403; Wed, 31 Jan 2007 00:48:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7E59116A401 for ; Wed, 31 Jan 2007 00:48:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6EFEA13C48D for ; Wed, 31 Jan 2007 00:48:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0V0mJtH009069 for ; Wed, 31 Jan 2007 00:48:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0V0mIfc009066 for perforce@freebsd.org; Wed, 31 Jan 2007 00:48:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 00:48:18 GMT Message-Id: <200701310048.l0V0mIfc009066@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113740 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 00:48:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=113740 Change 113740 by rwatson@rwatson_peppercorn on 2007/01/31 00:47:31 Don't document the order the pointers are returned in by getzbuf. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#5 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#5 (text+ko) ==== @@ -421,7 +421,8 @@ * copied versions of those originally submitted via the setzbuf ioctl--if * user space has remapped the buffers, then they may be inconsistent. User * applications must be aware that these are in effect buffer names, not - * pointers, if they play such games with their address space. + * pointers, if they play such games with their address space. Pointers are + * returned in arbitrary order, which may vary by ioctl. */ int bpf_zerocopy_ioctl_getzbuf(struct thread *td, struct bpf_d *d, @@ -432,9 +433,6 @@ KASSERT(d->bd_bufmode == BPF_BUFMODE_ZBUF, ("bpf_zerocopy_ioctl_getzbuf: not in zbuf mode")); - /* - * Sort so that the next buffer to read is the 'a' buffer. - */ bzero(bz, sizeof(*bz)); BPFD_LOCK(d); if (d->bd_hbuf != NULL) { From owner-p4-projects@FreeBSD.ORG Wed Jan 31 01:13:53 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 917F916A407; Wed, 31 Jan 2007 01:13:53 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 417DD16A400 for ; Wed, 31 Jan 2007 01:13:53 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 31EB513C461 for ; Wed, 31 Jan 2007 01:13:53 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0V1DrQV014595 for ; Wed, 31 Jan 2007 01:13:53 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0V1DrXN014592 for perforce@freebsd.org; Wed, 31 Jan 2007 01:13:53 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 01:13:53 GMT Message-Id: <200701310113.l0V1DrXN014592@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113742 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 01:13:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=113742 Change 113742 by rwatson@rwatson_cinnamon on 2007/01/31 01:13:02 Correct panic messages; in some cases panic instead of returning ENOTTY as that point shouldn't be reached. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.c#4 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#4 (text+ko) ==== @@ -252,7 +252,7 @@ #ifdef BPF_ZEROCOPY return (bpf_zerocopy_ioctl_ackzbuf(td, d, bz)); #else - panic("bpf_ioctl_getznext"); + panic("bpf_ioctl_ackzbuf"); #endif } @@ -265,7 +265,7 @@ #ifdef BPF_ZEROCOPY return (bpf_zerocopy_ioctl_getzbuf(td, d, bz)); #else - panic("bpf_ioctl_getznext"); + panic("bpf_ioctl_getzbuf"); #endif } @@ -291,7 +291,7 @@ #ifdef BPF_ZEROCOPY return (bpf_zerocopy_ioctl_getzmax(td, d, i)); #else - return (ENOTTY); + panic("bpf_ioctl_getzmax"); #endif } @@ -304,7 +304,7 @@ #ifdef BPF_ZEROCOPY return (bpf_zerocopy_ioctl_setzbuf(td, d, bz)); #else - return (ENOTTY); + panic("bpf_ioctl_setzbuf"); #endif } From owner-p4-projects@FreeBSD.ORG Wed Jan 31 01:32:17 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BF47416A403; Wed, 31 Jan 2007 01:32:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7E17016A401 for ; Wed, 31 Jan 2007 01:32:16 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6FFEC13C471 for ; Wed, 31 Jan 2007 01:32:16 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0V1WGgO020090 for ; Wed, 31 Jan 2007 01:32:16 GMT (envelope-from jkim@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0V1WGmd020067 for perforce@freebsd.org; Wed, 31 Jan 2007 01:32:16 GMT (envelope-from jkim@freebsd.org) Date: Wed, 31 Jan 2007 01:32:16 GMT Message-Id: <200701310132.l0V1WGmd020067@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jkim@freebsd.org using -f From: Jung-uk Kim To: Perforce Change Reviews Cc: Subject: PERFORCE change 113743 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 01:32:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=113743 Change 113743 by jkim@jkim_hammer on 2007/01/31 01:31:54 Don't restore gsbase. We don't need it any more. Affected files ... .. //depot/projects/linuxolator/src/sys/amd64/amd64/cpu_switch.S#4 edit Differences ... ==== //depot/projects/linuxolator/src/sys/amd64/amd64/cpu_switch.S#4 (text+ko) ==== @@ -188,7 +188,7 @@ /* Restore userland 32 bit GS descriptor for Linuxulator */ movq PCB_GS32P(%r8),%rax testq %rax,%rax - jz 3f /* no, skip over */ + jz 2f /* no, skip over */ movq PCB_GS32SD(%r8),%rcx movq %rcx,(%rax) @@ -201,14 +201,13 @@ movl PCB_FSBASE+4(%r8),%edx wrmsr -2: /* Restore userland %gs */ movl $MSR_KGSBASE,%ecx movl PCB_GSBASE(%r8),%eax movl PCB_GSBASE+4(%r8),%edx wrmsr -3: +2: /* Update the TSS_RSP0 pointer for the next interrupt */ movq PCPU(TSSP), %rax addq $COMMON_TSS_RSP0, %rax From owner-p4-projects@FreeBSD.ORG Wed Jan 31 01:51:43 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C758816A40D; Wed, 31 Jan 2007 01:51:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 71BB316A40A for ; Wed, 31 Jan 2007 01:51:42 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 5C35E13C48E for ; Wed, 31 Jan 2007 01:51:42 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0V1pgko034266 for ; Wed, 31 Jan 2007 01:51:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0V1pfTF034263 for perforce@freebsd.org; Wed, 31 Jan 2007 01:51:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 01:51:41 GMT Message-Id: <200701310151.l0V1pfTF034263@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113744 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 01:51:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=113744 Change 113744 by rwatson@rwatson_cinnamon on 2007/01/31 01:50:59 Disable bpfread() for BPF devices in anything but buffered mode until such time as we implement proper support methods for other buffer modes. I.e., a uiomove able to scatter-gather from the zbuf buffer layout. Move bpf_ready() from a macro inbpfdesc.h to bpf.c as a function. Add locking assertion to it. We will be reformulating this to take into account "ready to read" differences between buffer modes. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.c#5 edit .. //depot/projects/zcopybpf/src/sys/net/bpfdesc.h#4 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#5 (text+ko) ==== @@ -641,6 +641,15 @@ return (EINVAL); BPFD_LOCK(d); + if (d->bd_bufmode != BPF_BUFMODE_BUFFER) { + /* + * XXXRW: For now, we don't implement a uiomove for the + * scatter-gather buffers associated with BPF_BUFMODE_ZBUF, + * so simply disallow read(). + */ + BPFD_UNLOCK(d); + return (EOPNOTSUPP); + } if (d->bd_state == BPF_WAITING) callout_stop(&d->bd_callout); timed_out = (d->bd_state == BPF_TIMED_OUT); @@ -764,6 +773,20 @@ } static int +bpf_ready(struct bpf_d *d) +{ + + BPFD_LOCK_ASSERT(d); + + if (d->bd_hlen != 0) + return (1); + if ((d->bd_immediate || d->bd_state == BPF_TIMED_OUT) && + d->bd_slen != 0) + return (1); + return (0); +} + +static int bpfwrite(struct cdev *dev, struct uio *uio, int ioflag) { struct bpf_d *d = dev->si_drv1; ==== //depot/projects/zcopybpf/src/sys/net/bpfdesc.h#4 (text+ko) ==== @@ -108,12 +108,6 @@ NET_ASSERT_GIANT(); \ } while (0) -/* Test whether a BPF is ready for read(). */ -#define bpf_ready(bd) \ - ((bd)->bd_hlen != 0 || \ - (((bd)->bd_immediate || (bd)->bd_state == BPF_TIMED_OUT) && \ - (bd)->bd_slen != 0)) - /* * External representation of the bpf descriptor */ From owner-p4-projects@FreeBSD.ORG Wed Jan 31 01:53:46 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B77816A403; Wed, 31 Jan 2007 01:53:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DE0E916A402 for ; Wed, 31 Jan 2007 01:53:45 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id CE55F13C471 for ; Wed, 31 Jan 2007 01:53:45 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0V1rjgq034614 for ; Wed, 31 Jan 2007 01:53:45 GMT (envelope-from jkim@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0V1rijM034610 for perforce@freebsd.org; Wed, 31 Jan 2007 01:53:44 GMT (envelope-from jkim@freebsd.org) Date: Wed, 31 Jan 2007 01:53:44 GMT Message-Id: <200701310153.l0V1rijM034610@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jkim@freebsd.org using -f From: Jung-uk Kim To: Perforce Change Reviews Cc: Subject: PERFORCE change 113745 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 01:53:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=113745 Change 113745 by jkim@jkim_hammer on 2007/01/31 01:53:40 IFC Affected files ... .. //depot/projects/linuxolator/src/sys/amd64/amd64/machdep.c#14 integrate .. //depot/projects/linuxolator/src/sys/arm/xscale/ixp425/if_npe.c#3 integrate .. //depot/projects/linuxolator/src/sys/conf/NOTES#16 integrate .. //depot/projects/linuxolator/src/sys/conf/files#16 integrate .. //depot/projects/linuxolator/src/sys/conf/options#15 integrate .. //depot/projects/linuxolator/src/sys/dev/ata/ata-queue.c#3 integrate .. //depot/projects/linuxolator/src/sys/dev/mxge/if_mxge.c#5 integrate .. //depot/projects/linuxolator/src/sys/dev/mxge/if_mxge_var.h#4 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/midi.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/midi.h#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/midiq.h#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/mpu401.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/mpu401.h#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/mpu_if.m#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/mpufoi_if.m#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/sequencer.c#4 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/sequencer.h#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/midi/synth_if.m#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/pci/hda/hdac.c#12 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/pci/maestro.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/uipaq.c#1 branch .. //depot/projects/linuxolator/src/sys/dev/usb/usbdevs#7 integrate .. //depot/projects/linuxolator/src/sys/fs/msdosfs/msdosfs_fat.c#3 integrate .. //depot/projects/linuxolator/src/sys/fs/msdosfs/msdosfs_vfsops.c#6 integrate .. //depot/projects/linuxolator/src/sys/fs/msdosfs/msdosfs_vnops.c#5 integrate .. //depot/projects/linuxolator/src/sys/geom/eli/g_eli.c#5 integrate .. //depot/projects/linuxolator/src/sys/geom/geom_io.c#3 integrate .. //depot/projects/linuxolator/src/sys/i386/i386/vm_machdep.c#2 integrate .. //depot/projects/linuxolator/src/sys/kern/subr_firmware.c#3 integrate .. //depot/projects/linuxolator/src/sys/modules/Makefile#7 integrate .. //depot/projects/linuxolator/src/sys/modules/ath/Makefile#3 integrate .. //depot/projects/linuxolator/src/sys/modules/ath_rate_sample/Makefile#3 integrate .. //depot/projects/linuxolator/src/sys/modules/msdosfs/Makefile#2 integrate .. //depot/projects/linuxolator/src/sys/modules/uipaq/Makefile#1 branch .. //depot/projects/linuxolator/src/sys/net/bpf.c#4 integrate .. //depot/projects/linuxolator/src/sys/net/bpf_compat.h#2 delete .. //depot/projects/linuxolator/src/sys/net/bpfdesc.h#2 integrate .. //depot/projects/linuxolator/src/sys/nfsclient/nfs_vfsops.c#7 integrate .. //depot/projects/linuxolator/src/sys/pc98/pc98/machdep.c#9 integrate .. //depot/projects/linuxolator/src/sys/sun4v/conf/.cvsignore#1 branch .. //depot/projects/linuxolator/src/sys/sys/ata.h#2 integrate Differences ... ==== //depot/projects/linuxolator/src/sys/amd64/amd64/machdep.c#14 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.668 2007/01/23 08:01:19 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.669 2007/01/27 18:13:24 jkoshy Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1192,7 +1192,7 @@ setidt(x, &IDTVEC(rsvd), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_DE, &IDTVEC(div), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_DB, &IDTVEC(dbg), SDT_SYSIGT, SEL_KPL, 0); - setidt(IDT_NMI, &IDTVEC(nmi), SDT_SYSIGT, SEL_KPL, 0); + setidt(IDT_NMI, &IDTVEC(nmi), SDT_SYSIGT, SEL_KPL, 1); setidt(IDT_BP, &IDTVEC(bpt), SDT_SYSIGT, SEL_UPL, 0); setidt(IDT_OF, &IDTVEC(ofl), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_BR, &IDTVEC(bnd), SDT_SYSIGT, SEL_KPL, 0); ==== //depot/projects/linuxolator/src/sys/arm/xscale/ixp425/if_npe.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.2 2007/01/17 00:58:25 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.3 2007/01/30 01:18:29 kevlo Exp $"); /* * Intel XScale NPE Ethernet driver. @@ -126,6 +126,7 @@ int sc_debug; /* DPRINTF* control */ int sc_tickinterval; struct callout tick_ch; /* Tick callout */ + int npe_watchdog_timer; struct npedma txdma; struct npebuf *tx_free; /* list of free tx buffers */ struct npedma rxdma; @@ -229,7 +230,7 @@ static void npestart_locked(struct ifnet *); static void npestart(struct ifnet *); static void npestop(struct npe_softc *); -static void npewatchdog(struct ifnet *); +static void npewatchdog(struct npe_softc *); static int npeioctl(struct ifnet * ifp, u_long, caddr_t); static int npe_setrxqosentry(struct npe_softc *, int classix, @@ -328,12 +329,10 @@ ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_start = npestart; ifp->if_ioctl = npeioctl; - ifp->if_watchdog = npewatchdog; ifp->if_init = npeinit; IFQ_SET_MAXLEN(&ifp->if_snd, sc->txdma.nbuf - 1); ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; IFQ_SET_READY(&ifp->if_snd); - ifp->if_timer = 0; ifp->if_linkmib = &sc->mibdata; ifp->if_linkmiblen = sizeof(sc->mibdata); sc->mibdata.dot3Compliance = DOT3COMPLIANCE_STATS; @@ -796,6 +795,8 @@ npe_updatestats(sc); mii_tick(mii); + npewatchdog(sc); + /* schedule next poll */ callout_reset(&sc->tick_ch, sc->sc_tickinterval * hz, npe_tick, sc); #undef ACK @@ -845,7 +846,7 @@ */ ifp->if_opackets += td->count; ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - ifp->if_timer = 0; + sc->npe_watchdog_timer = 0; npestart_locked(ifp); NPE_UNLOCK(sc); } @@ -1104,7 +1105,7 @@ ifp->if_drv_flags |= IFF_DRV_RUNNING; ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - ifp->if_timer = 0; /* just in case */ + sc->npe_watchdog_timer = 0; /* just in case */ /* enable transmitter and reciver in the MAC */ WR4(sc, NPE_MAC_RX_CNTRL1, @@ -1287,7 +1288,7 @@ /* XXX add vlan priority */ ixpqmgr_qwrite(sc->tx_qid, npe->ix_neaddr); - ifp->if_timer = 5; + sc->npe_watchdog_timer = 5; } if (sc->tx_free == NULL) ifp->if_drv_flags |= IFF_DRV_OACTIVE; @@ -1356,7 +1357,7 @@ WR4(sc, NPE_MAC_TX_CNTRL1, RD4(sc, NPE_MAC_TX_CNTRL1) &~ NPE_TX_CNTRL1_TX_EN); - ifp->if_timer = 0; + sc->npe_watchdog_timer = 0; ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); callout_stop(&sc->tick_ch); @@ -1378,15 +1379,17 @@ } void -npewatchdog(struct ifnet *ifp) +npewatchdog(struct npe_softc *sc) { - struct npe_softc *sc = ifp->if_softc; + NPE_ASSERT_LOCKED(sc); + + if (sc->npe_watchdog_timer == 0 || --sc->npe_watchdog_timer != 0) + return; + + device_printf(sc->sc_dev, "watchdog timeout\n"); + sc->sc_ifp->if_oerrors++; - NPE_LOCK(sc); - if_printf(ifp, "device timeout\n"); - ifp->if_oerrors++; npeinit_locked(sc); - NPE_UNLOCK(sc); } static int ==== //depot/projects/linuxolator/src/sys/conf/NOTES#16 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1406 2007/01/10 18:45:17 marius Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1408 2007/01/30 05:01:06 rodrigc Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1082,18 +1082,6 @@ options NTFS_ICONV options UDF_ICONV -# Experimental support for large MS-DOS filesystems. -# -# WARNING: This uses at least 32 bytes of kernel memory (which is not -# reclaimed until the FS is unmounted) for each file on disk to map -# between the 32-bit inode numbers used by VFS and the 64-bit pseudo-inode -# numbers used internally by msdosfs. This is only safe to use in certain -# controlled situations (e.g. read-only FS with less than 1 million files). -# Since the mappings do not persist across unmounts (or reboots), these -# filesystems are not suitable for exporting through NFS, or any other -# application that requires fixed inode numbers. -options MSDOSFS_LARGE - ##################################################################### # POSIX P1003.1B @@ -2436,6 +2424,8 @@ device ubser # USB support for serial adapters based on the FT8U100AX and FT8U232AM device uftdi +# USB support for some Windows CE based serial communication. +device uipaq # USB support for Prolific PL-2303 serial adapters device uplcom # USB Visor and Palm devices ==== //depot/projects/linuxolator/src/sys/conf/files#16 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1171 2007/01/05 01:46:26 ticso Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1173 2007/01/30 03:11:45 rodrigc Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1054,6 +1054,7 @@ dev/usb/uhci_pci.c optional uhci pci dev/usb/uhid.c optional uhid dev/usb/uhub.c optional usb +dev/usb/uipaq.c optional uipaq dev/usb/ukbd.c optional ukbd dev/usb/ulpt.c optional ulpt dev/usb/umass.c optional umass @@ -1105,7 +1106,7 @@ fs/msdosfs/msdosfs_conv.c optional msdosfs fs/msdosfs/msdosfs_denode.c optional msdosfs fs/msdosfs/msdosfs_fat.c optional msdosfs -fs/msdosfs/msdosfs_fileno.c optional msdosfs_large +fs/msdosfs/msdosfs_fileno.c optional msdosfs fs/msdosfs/msdosfs_iconv.c optional msdosfs_iconv fs/msdosfs/msdosfs_lookup.c optional msdosfs fs/msdosfs/msdosfs_vfsops.c optional msdosfs ==== //depot/projects/linuxolator/src/sys/conf/options#15 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.573 2007/01/18 13:33:36 marius Exp $ +# $FreeBSD: src/sys/conf/options,v 1.574 2007/01/30 05:01:06 rodrigc Exp $ # # On the handling of kernel options # @@ -255,9 +255,6 @@ # SMB/CIFS requester NETSMB opt_netsmb.h -# Experimental support for large MS-DOS filesystems; SEE WARNING IN "NOTES"! -MSDOSFS_LARGE opt_msdosfs.h - # Options used only in subr_param.c. HZ opt_param.h MAXFILES opt_param.h ==== //depot/projects/linuxolator/src/sys/dev/ata/ata-queue.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.66 2006/12/23 12:40:54 remko Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.67 2007/01/27 21:15:58 remko Exp $"); #include "opt_ata.h" #include @@ -704,6 +704,7 @@ case 0xa0: return ("PACKET_CMD"); case 0xa1: return ("ATAPI_IDENTIFY"); case 0xa2: return ("SERVICE"); + case 0xb0: return ("SMART"); case 0xc0: return ("CFA ERASE"); case 0xc4: return ("READ_MUL"); case 0xc5: return ("WRITE_MUL"); ==== //depot/projects/linuxolator/src/sys/dev/mxge/if_mxge.c#5 (text+ko) ==== @@ -32,7 +32,7 @@ ***************************************************************************/ #include -__FBSDID("$FreeBSD: src/sys/dev/mxge/if_mxge.c,v 1.16 2006/11/29 15:30:39 gallatin Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mxge/if_mxge.c,v 1.17 2007/01/30 08:39:44 gallatin Exp $"); #include #include @@ -1023,6 +1023,8 @@ sc->tx.req = 0; sc->tx.done = 0; sc->tx.pkt_done = 0; + sc->tx.wake = 0; + sc->tx.stall = 0; sc->rx_big.cnt = 0; sc->rx_small.cnt = 0; sc->rdma_tags_available = 15; @@ -1236,6 +1238,14 @@ "tx_pkt_done", CTLFLAG_RD, &sc->tx.pkt_done, 0, "tx_done"); + SYSCTL_ADD_INT(ctx, children, OID_AUTO, + "tx_stall", + CTLFLAG_RD, &sc->tx.stall, + 0, "tx_stall"); + SYSCTL_ADD_INT(ctx, children, OID_AUTO, + "tx_wake", + CTLFLAG_RD, &sc->tx.wake, + 0, "tx_wake"); /* verbose printing? */ SYSCTL_ADD_INT(ctx, children, OID_AUTO, @@ -1676,7 +1686,10 @@ mxge_encap(sc, m); } /* ran out of transmit slots */ - sc->ifp->if_drv_flags |= IFF_DRV_OACTIVE; + if ((sc->ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) { + sc->ifp->if_drv_flags |= IFF_DRV_OACTIVE; + sc->tx.stall++; + } } static void @@ -2021,6 +2034,7 @@ tx->req - tx->done < (tx->mask + 1)/4) { mtx_lock(&sc->tx_lock); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + sc->tx.wake++; mxge_start_locked(sc); mtx_unlock(&sc->tx_lock); } @@ -2213,8 +2227,8 @@ tx_ring_entries = tx_ring_size / sizeof (mcp_kreq_ether_send_t); rx_ring_entries = rx_ring_size / sizeof (mcp_dma_addr_t); + IFQ_SET_MAXLEN(&sc->ifp->if_snd, tx_ring_entries - 1); sc->ifp->if_snd.ifq_drv_maxlen = sc->ifp->if_snd.ifq_maxlen; - IFQ_SET_MAXLEN(&sc->ifp->if_snd, tx_ring_entries - 1); IFQ_SET_READY(&sc->ifp->if_snd); sc->tx.mask = tx_ring_entries - 1; @@ -2866,7 +2880,8 @@ /* hook into the network stack */ if_initname(ifp, device_get_name(dev), device_get_unit(dev)); ifp->if_baudrate = 100000000; - ifp->if_capabilities = IFCAP_RXCSUM | IFCAP_TXCSUM | IFCAP_TSO4; + ifp->if_capabilities = IFCAP_RXCSUM | IFCAP_TXCSUM | IFCAP_TSO4 | + IFCAP_JUMBO_MTU; ifp->if_hwassist = CSUM_TCP | CSUM_UDP | CSUM_TSO; ifp->if_capenable = ifp->if_capabilities; sc->csum_flag = 1; ==== //depot/projects/linuxolator/src/sys/dev/mxge/if_mxge_var.h#4 (text+ko) ==== @@ -29,7 +29,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -$FreeBSD: src/sys/dev/mxge/if_mxge_var.h,v 1.6 2006/11/22 16:33:40 gallatin Exp $ +$FreeBSD: src/sys/dev/mxge/if_mxge_var.h,v 1.7 2007/01/30 08:39:44 gallatin Exp $ ***************************************************************************/ @@ -106,6 +106,8 @@ int done; /* transmits completed */ int pkt_done; /* packets completed */ int boundary; /* boundary transmits cannot cross*/ + int stall; /* #times hw queue exhausted */ + int wake; /* #times irq re-enabled xmit */ } mxge_tx_buf_t; ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/midi.c#2 (text) ==== @@ -1,6 +1,5 @@ /*- - * (c) 2003 Mathew Kanner - * + * Copyright (c) 2003 Mathew Kanner * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. * @@ -43,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/sound/midi/midi.c,v 1.19 2006/06/18 14:14:41 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sound/midi/midi.c,v 1.21 2007/01/28 20:38:07 joel Exp $"); #include #include @@ -931,11 +930,15 @@ return EBUSY; } midistat_isopen = 1; + mtx_unlock(&midistat_lock); - if (sbuf_new(&midistat_sbuf, NULL, 4096, 0) == NULL) { + if (sbuf_new(&midistat_sbuf, NULL, 4096, SBUF_AUTOEXTEND) == NULL) { error = ENXIO; + mtx_lock(&midistat_lock); goto out; } + + mtx_lock(&midistat_lock); midistat_bufptr = 0; error = (midistat_prepare(&midistat_sbuf) > 0) ? 0 : ENOMEM; @@ -974,9 +977,11 @@ } l = min(buf->uio_resid, sbuf_len(&midistat_sbuf) - midistat_bufptr); err = 0; - if (l > 0) + if (l > 0) { + mtx_unlock(&midistat_lock); err = uiomove(sbuf_data(&midistat_sbuf) + midistat_bufptr, l, buf); - else + mtx_lock(&midistat_lock); + } else l = 0; midistat_bufptr += l; mtx_unlock(&midistat_lock); ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/midi.h#2 (text) ==== @@ -1,27 +1,29 @@ /*- - * (c) 2003 Mathew Kanner - * + * Copyright (c) 2003 Mathew Kanner + * All rights reserved. + * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. 2. - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/sound/midi/midi.h,v 1.14 2006/05/27 16:32:05 netchild Exp $ + * $FreeBSD: src/sys/dev/sound/midi/midi.h,v 1.15 2007/01/28 20:38:07 joel Exp $ */ #ifndef MIDI_H ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/midiq.h#2 (text) ==== @@ -1,27 +1,29 @@ /*- - * (c) 2003 Mathew Kanner - * + * Copyright (c) 2003 Mathew Kanner + * All rights reserved. + * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. 2. - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/sound/midi/midiq.h,v 1.1 2006/05/27 16:32:05 netchild Exp $ + * $FreeBSD: src/sys/dev/sound/midi/midiq.h,v 1.2 2007/01/28 20:38:07 joel Exp $ */ #ifndef MIDIQ_H ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/mpu401.c#2 (text) ==== @@ -1,29 +1,31 @@ /*- - * (c) 2003 Mathew Kanner - * + * Copyright (c) 2003 Mathew Kanner + * All rights reserved. + * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. 2. - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include -__FBSDID("$FreeBSD: src/sys/dev/sound/midi/mpu401.c,v 1.1 2006/05/27 16:32:05 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sound/midi/mpu401.c,v 1.2 2007/01/28 20:38:07 joel Exp $"); #include #include ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/mpu401.h#2 (text) ==== @@ -1,27 +1,29 @@ /*- - * (c) 2003 Mathew Kanner - * + * Copyright (c) 2003 Mathew Kanner + * All rights reserved. + * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. 2. - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/sound/midi/mpu401.h,v 1.1 2006/05/27 16:32:05 netchild Exp $ + * $FreeBSD: src/sys/dev/sound/midi/mpu401.h,v 1.2 2007/01/28 20:38:07 joel Exp $ */ #ifndef MPU401_H ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/mpu_if.m#2 (text) ==== @@ -1,27 +1,29 @@ #- -# (c) 2003 Mathew Kanner +# Copyright (c) 2003 Mathew Kanner +# All rights reserved. # # Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. 2. -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. # -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR -# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/sys/dev/sound/midi/mpu_if.m,v 1.1 2006/05/27 16:32:05 netchild Exp $ +# $FreeBSD: src/sys/dev/sound/midi/mpu_if.m,v 1.2 2007/01/28 20:38:07 joel Exp $ # #include ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/mpufoi_if.m#2 (text) ==== @@ -1,27 +1,29 @@ #- -# (c) 2003 Mathew Kanner +# Copyright (c) 2003 Mathew Kanner +# All rights reserved. # # Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. 2. -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. # -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR -# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/sys/dev/sound/midi/mpufoi_if.m,v 1.1 2006/05/27 16:32:05 netchild Exp $ +# $FreeBSD: src/sys/dev/sound/midi/mpufoi_if.m,v 1.2 2007/01/28 20:38:07 joel Exp $ # #include ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/sequencer.c#4 (text) ==== @@ -1,31 +1,36 @@ -/* - * The sequencer personality manager. - * (c) 2003 Mathew Kanner - * Copyright by Hannu Savolainen 1993 - * +/*- + * Copyright (c) 2003 Mathew Kanner + * Copyright (c) 1993 Hannu Savolainen + * All rights reserved. + * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. 2. - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ +/* + * The sequencer personality manager. + */ + #include -__FBSDID("$FreeBSD: src/sys/dev/sound/midi/sequencer.c,v 1.23 2006/10/15 08:23:48 ariff Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sound/midi/sequencer.c,v 1.24 2007/01/28 20:38:07 joel Exp $"); #include #include ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/sequencer.h#2 (text) ==== @@ -1,7 +1,7 @@ /*- - * Include file for midi sequencer driver. - * (c) 2003 Mathew Kanner - * Copyright by Seigo Tanimura 1999. + * Copyright (c) 2003 Mathew Kanner + * Copyright (c) 1999 Seigo Tanimura + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -24,7 +24,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/sound/midi/sequencer.h,v 1.7 2006/05/27 16:32:05 netchild Exp $ + * $FreeBSD: src/sys/dev/sound/midi/sequencer.h,v 1.8 2007/01/28 20:38:07 joel Exp $ + */ + +/* + * Include file for the midi sequence driver. */ #ifndef _SEQUENCER_H_ ==== //depot/projects/linuxolator/src/sys/dev/sound/midi/synth_if.m#2 (text) ==== @@ -1,27 +1,29 @@ #- -# (c) 2003 Mathew Kanner +# Copyright (c) 2003 Mathew Kanner +# All rights reserved. # # Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. 2. -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. # -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR -# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/sys/dev/sound/midi/synth_if.m,v 1.1 2006/05/27 16:32:05 netchild Exp $ +# $FreeBSD: src/sys/dev/sound/midi/synth_if.m,v 1.2 2007/01/28 20:38:07 joel Exp $ # INTERFACE synth; ==== //depot/projects/linuxolator/src/sys/dev/sound/pci/hda/hdac.c#12 (text+ko) ==== @@ -80,10 +80,10 @@ #include "mixer_if.h" -#define HDA_DRV_TEST_REV "20070105_0038" +#define HDA_DRV_TEST_REV "20070128_0039" #define HDA_WIDGET_PARSER_REV 1 -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.22 2007/01/13 00:24:44 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.23 2007/01/28 03:16:54 ariff Exp $"); #undef HDA_DEBUG_ENABLED #define HDA_DEBUG_ENABLED 1 @@ -172,6 +172,7 @@ #define HP_NX7400_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x30a2) #define HP_NX6310_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x30aa) #define HP_NX6325_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x30b0) +#define HP_XW4300_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x3013) #define HP_ALL_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0xffff) /* What is wrong with XN 2563 anyway? (Got the picture ?) */ #define HP_NX6325_SUBVENDORX 0x103c30b0 @@ -529,8 +530,10 @@ 13, { 14, -1 }, -1 }, { LENOVO_ALL_SUBVENDOR, HDA_CODEC_AD1986A, HDAC_HP_SWITCH_CTL, 1, 26, { 27, -1 }, -1 }, +#if 0 { ACER_ALL_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL, 0, 20, { 21, -1 }, -1 }, +#endif }; #define HDAC_HP_SWITCH_LEN \ (sizeof(hdac_hp_switch) / sizeof(hdac_hp_switch[0])) @@ -3607,6 +3610,18 @@ if (w->nid != 5) w->enable = 0; } + if (subvendor == HP_XW4300_SUBVENDOR) { + ctl = hdac_audio_ctl_amp_get(devinfo, 16, 0, 1); + if (ctl != NULL && ctl->widget != NULL) { + ctl->ossmask = SOUND_MASK_SPEAKER; + ctl->widget->ctlflags |= SOUND_MASK_SPEAKER; + } + ctl = hdac_audio_ctl_amp_get(devinfo, 17, 0, 1); + if (ctl != NULL && ctl->widget != NULL) { + ctl->ossmask = SOUND_MASK_SPEAKER; + ctl->widget->ctlflags |= SOUND_MASK_SPEAKER; + } + } break; case HDA_CODEC_ALC861: ctl = hdac_audio_ctl_amp_get(devinfo, 28, 1, 1); @@ -4358,7 +4373,7 @@ printf(" childnid=%d", ctl->childwidget->nid); printf(" Bind to NONE\n"); - } + } ); if (ctl->step > 0) { ctl->ossval = (ctl->left * 100) / ctl->step; ==== //depot/projects/linuxolator/src/sys/dev/sound/pci/maestro.c#2 (text+ko) ==== @@ -54,11 +54,8 @@ #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro.c,v 1.32 2006/06/18 14:14:41 netchild Exp $"); - +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro.c,v 1.33 2007/01/27 13:30:19 ariff Exp $"); -#define inline __inline - /* * PCI IDs of supported chips: * @@ -198,66 +195,71 @@ SYSCTL_UINT(_debug_maestro, OID_AUTO, powerstate_idle, CTLFLAG_RW, &powerstate_idle, 0, "The Dx power state when idle (0-2)"); SYSCTL_UINT(_debug_maestro, OID_AUTO, powerstate_init, CTLFLAG_RW, - &powerstate_init, 0, "The Dx power state prior to the first use (0-2)"); + &powerstate_init, 0, + "The Dx power state prior to the first use (0-2)"); /* ----------------------------- * Prototypes */ -static inline void agg_lock(struct agg_info*); -static inline void agg_unlock(struct agg_info*); -static inline void agg_sleep(struct agg_info*, const char *wmesg, int msec); +static void agg_sleep(struct agg_info*, const char *wmesg, int msec); -static inline u_int32_t agg_rd(struct agg_info*, int, int size); -static inline void agg_wr(struct agg_info*, int, u_int32_t data, int size); +static __inline u_int32_t agg_rd(struct agg_info*, int, int size); +static __inline void agg_wr(struct agg_info*, int, u_int32_t data, + int size); +static int agg_rdcodec(struct agg_info*, int); +static int agg_wrcodec(struct agg_info*, int, u_int32_t); -static inline int agg_rdcodec(struct agg_info*, int); -static inline int agg_wrcodec(struct agg_info*, int, u_int32_t); +static void ringbus_setdest(struct agg_info*, int, int); -static inline void ringbus_setdest(struct agg_info*, int, int); +static u_int16_t wp_rdreg(struct agg_info*, u_int16_t); +static void wp_wrreg(struct agg_info*, u_int16_t, u_int16_t); +static u_int16_t wp_rdapu(struct agg_info*, unsigned, u_int16_t); +static void wp_wrapu(struct agg_info*, unsigned, u_int16_t, u_int16_t); +static void wp_settimer(struct agg_info*, u_int); +static void wp_starttimer(struct agg_info*); +static void wp_stoptimer(struct agg_info*); -static inline u_int16_t wp_rdreg(struct agg_info*, u_int16_t); -static inline void wp_wrreg(struct agg_info*, u_int16_t, u_int16_t); -static inline u_int16_t wp_rdapu(struct agg_info*, unsigned, u_int16_t); -static inline void wp_wrapu(struct agg_info*, unsigned, u_int16_t, u_int16_t); -static inline void wp_settimer(struct agg_info*, u_int); -static inline void wp_starttimer(struct agg_info*); -static inline void wp_stoptimer(struct agg_info*); +#if 0 +static u_int16_t wc_rdreg(struct agg_info*, u_int16_t); +#endif >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jan 31 06:17:15 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1D54816A414; Wed, 31 Jan 2007 06:17:15 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BEBA616A40E for ; Wed, 31 Jan 2007 06:17:14 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id AE8BE13C4A5 for ; Wed, 31 Jan 2007 06:17:14 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0V6HENG023116 for ; Wed, 31 Jan 2007 06:17:14 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0V6HEhO023113 for perforce@freebsd.org; Wed, 31 Jan 2007 06:17:14 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 06:17:14 GMT Message-Id: <200701310617.l0V6HEhO023113@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113747 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 06:17:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=113747 Change 113747 by csjp@csjp_rnd01 on 2007/01/31 06:16:43 - ANSI'fy this file - Remove some gratutious use of the register keyword - Other cosmetic nits Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_filter.c#2 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf_filter.c#2 (text+ko) ==== @@ -83,14 +83,11 @@ static u_int32_t m_xword(struct mbuf *m, bpf_u_int32 k, int *err); static u_int32_t -m_xword(m, k, err) - register struct mbuf *m; - register bpf_u_int32 k; - register int *err; +m_xword(struct mbuf *m, bpf_u_int32 k, int *err) { - register size_t len; - register u_char *cp, *np; - register struct mbuf *m0; + size_t len; + u_char *cp, *np; + struct mbuf *m0; len = m->m_len; while (k >= len) { @@ -111,21 +108,18 @@ *err = 0; np = mtod(m0, u_char *); switch (len - k) { - case 1: return ((u_int32_t)cp[0] << 24) | ((u_int32_t)np[0] << 16) | ((u_int32_t)np[1] << 8) | (u_int32_t)np[2]; - case 2: return ((u_int32_t)cp[0] << 24) | ((u_int32_t)cp[1] << 16) | ((u_int32_t)np[0] << 8) | (u_int32_t)np[1]; - default: return ((u_int32_t)cp[0] << 24) | @@ -135,18 +129,15 @@ } bad: *err = 1; - return 0; + return (0); } static u_int16_t -m_xhalf(m, k, err) - register struct mbuf *m; - register bpf_u_int32 k; - register int *err; +m_xhalf(struct mbuf *m, bpf_u_int32 k, int *err) { - register size_t len; - register u_char *cp; - register struct mbuf *m0; + size_t len; + u_char *cp; + struct mbuf *m0; len = m->m_len; while (k >= len) { @@ -159,16 +150,16 @@ cp = mtod(m, u_char *) + k; if (len - k >= 2) { *err = 0; - return EXTRACT_SHORT(cp); + return (EXTRACT_SHORT(cp)); } m0 = m->m_next; if (m0 == 0) goto bad; *err = 0; - return (cp[0] << 8) | mtod(m0, u_char *)[0]; + return ((cp[0] << 8) | mtod(m0, u_char *)[0]); bad: *err = 1; - return 0; + return (0); } #endif @@ -178,21 +169,17 @@ * buflen is the amount of data present */ u_int -bpf_filter(pc, p, wirelen, buflen) - register const struct bpf_insn *pc; - register u_char *p; - u_int wirelen; - register u_int buflen; +bpf_filter(const struct bpf_insn *pc, u_char *p, u_int wirelen, u_int buflen) { - register u_int32_t A = 0, X = 0; - register bpf_u_int32 k; + u_int32_t A = 0, X = 0; + bpf_u_int32 k; int32_t mem[BPF_MEMWORDS]; - if (pc == 0) + if (pc == NULL) /* * No filter means accept all. */ - return (u_int)-1; + return ((u_int)-1); --pc; while (1) { @@ -206,10 +193,10 @@ abort(); #endif case BPF_RET|BPF_K: - return (u_int)pc->k; + return ((u_int)pc->k); case BPF_RET|BPF_A: - return (u_int)A; + return ((u_int)A); case BPF_LD|BPF_W|BPF_ABS: k = pc->k; @@ -224,7 +211,7 @@ return 0; continue; #else - return 0; + return (0); #endif } #ifdef BPF_ALIGN @@ -256,7 +243,7 @@ k = pc->k; if (k >= buflen) { #ifdef _KERNEL - register struct mbuf *m; + struct mbuf *m; if (buflen != 0) return 0; @@ -287,13 +274,13 @@ int merr; if (buflen != 0) - return 0; + return (0); A = m_xword((struct mbuf *)p, k, &merr); if (merr != 0) - return 0; + return (0); continue; #else - return 0; + return (0); #endif } #ifdef BPF_ALIGN @@ -315,10 +302,10 @@ return 0; A = m_xhalf((struct mbuf *)p, k, &merr); if (merr != 0) - return 0; + return (0); continue; #else - return 0; + return (0); #endif } A = EXTRACT_SHORT(&p[k]); @@ -328,7 +315,7 @@ k = X + pc->k; if (pc->k >= buflen || X >= buflen - pc->k) { #ifdef _KERNEL - register struct mbuf *m; + struct mbuf *m; if (buflen != 0) return 0; @@ -337,7 +324,7 @@ A = mtod(m, u_char *)[k]; continue; #else - return 0; + return (0); #endif } A = p[k]; From owner-p4-projects@FreeBSD.ORG Wed Jan 31 06:18:17 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA8AA16A408; Wed, 31 Jan 2007 06:18:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 90C1216A405 for ; Wed, 31 Jan 2007 06:18:16 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 817FD13C46B for ; Wed, 31 Jan 2007 06:18:16 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0V6IGYL023204 for ; Wed, 31 Jan 2007 06:18:16 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0V6IGUi023201 for perforce@freebsd.org; Wed, 31 Jan 2007 06:18:16 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 06:18:16 GMT Message-Id: <200701310618.l0V6IGUi023201@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113748 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 06:18:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=113748 Change 113748 by csjp@csjp_rnd01 on 2007/01/31 06:17:29 - Add counters for matching packets written to bpf - Add some additional counters for zero copy to assist with debugging Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.c#6 edit .. //depot/projects/zcopybpf/src/sys/net/bpfdesc.h#5 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#6 (text+ko) ==== @@ -171,6 +171,7 @@ #ifdef BPF_ZEROCOPY case BPF_BUFMODE_ZBUF: + d->bd_zcopy++; return (bpf_zerocopy_append_bytes(d, buf, offset, src, len)); #endif @@ -190,6 +191,7 @@ #ifdef BPF_ZEROCOPY case BPF_BUFMODE_ZBUF: + d->bd_zcopy++; return (bpf_zerocopy_append_mbuf(d, buf, offset, src, len)); #endif @@ -795,23 +797,32 @@ int error; struct sockaddr dst; - if (d->bd_bif == NULL) + d->bd_wcount++; + if (d->bd_bif == NULL) { + d->bd_wdcount++; return (ENXIO); + } ifp = d->bd_bif->bif_ifp; - if ((ifp->if_flags & IFF_UP) == 0) + if ((ifp->if_flags & IFF_UP) == 0) { + d->bd_wdcount++; return (ENETDOWN); + } - if (uio->uio_resid == 0) + if (uio->uio_resid == 0) { + d->bd_wdcount++; return (0); + } bzero(&dst, sizeof(dst)); error = bpf_movein(uio, (int)d->bd_bif->bif_dlt, ifp->if_mtu, &m, &dst, d->bd_wfilter); - if (error) + if (error) { + d->bd_wdcount++; return (error); - + } + d->bd_wfcount++; if (d->bd_hdrcmplt) dst.sa_family = pseudo_AF_HDRCMPLT; @@ -822,6 +833,8 @@ #endif NET_LOCK_GIANT(); error = (*ifp->if_output)(ifp, m, &dst, NULL); + if (error) + d->bd_wdcount++; NET_UNLOCK_GIANT(); /* * The driver frees the mbuf. @@ -848,6 +861,10 @@ d->bd_rcount = 0; d->bd_dcount = 0; d->bd_fcount = 0; + d->bd_wcount = 0; + d->bd_wfcount = 0; + d->bd_wdcount = 0; + d->bd_zcopy = 0; } /* @@ -1921,6 +1938,10 @@ strlcpy(d->bd_ifname, bd->bd_bif->bif_ifp->if_xname, IFNAMSIZ); d->bd_locked = bd->bd_locked; + d->bd_wcount = bd->bd_wcount; + d->bd_wdcount = bd->bd_wdcount; + d->bd_wfcount = bd->bd_wfcount; + d->bd_zcopy = bd->bd_zcopy; } static int ==== //depot/projects/zcopybpf/src/sys/net/bpfdesc.h#5 (text+ko) ==== @@ -94,6 +94,10 @@ pid_t bd_pid; /* PID which created descriptor */ int bd_locked; /* true if descriptor is locked */ u_int bd_bufmode; /* Current buffer mode. */ + u_long bd_wcount; /* number of packets written */ + u_long bd_wfcount; /* number of packets that matched write filter */ + u_long bd_wdcount; /* number of packets dropped during a write */ + u_long bd_zcopy; /* number of zero copy operations */ }; /* Values for bd_state */ @@ -127,6 +131,10 @@ pid_t bd_pid; char bd_ifname[IFNAMSIZ]; int bd_locked; + u_long bd_wcount; + u_long bd_wfcount; + u_long bd_wdcount; + u_long bd_zcopy; }; #define BPFIF_LOCK(bif) mtx_lock(&(bif)->bif_mtx) From owner-p4-projects@FreeBSD.ORG Wed Jan 31 08:59:11 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 19F9A16A405; Wed, 31 Jan 2007 08:59:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 97E0216A402; Wed, 31 Jan 2007 08:59:10 +0000 (UTC) (envelope-from xdivac02@stud.fit.vutbr.cz) Received: from eva.fit.vutbr.cz (eva.fit.vutbr.cz [147.229.176.14]) by mx1.freebsd.org (Postfix) with ESMTP id 2B2E213C442; Wed, 31 Jan 2007 08:59:07 +0000 (UTC) (envelope-from xdivac02@stud.fit.vutbr.cz) Received: from eva.fit.vutbr.cz (localhost [127.0.0.1]) by eva.fit.vutbr.cz (envelope-from xdivac02@eva.fit.vutbr.cz) (8.13.8/8.13.7) with ESMTP id l0V8x6hi028284 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 31 Jan 2007 09:59:06 +0100 (CET) Received: (from xdivac02@localhost) by eva.fit.vutbr.cz (8.13.8/8.13.3/Submit) id l0V8x6pt028283; Wed, 31 Jan 2007 09:59:06 +0100 (CET) Date: Wed, 31 Jan 2007 09:59:06 +0100 From: Divacky Roman To: Jung-uk Kim Message-ID: <20070131085906.GA28186@stud.fit.vutbr.cz> References: <200701310016.l0V0GccJ095661@repoman.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200701310016.l0V0GccJ095661@repoman.freebsd.org> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.57 on 147.229.176.14 Cc: Perforce Change Reviews Subject: Re: PERFORCE change 113739 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 08:59:11 -0000 On Wed, Jan 31, 2007 at 12:16:38AM +0000, Jung-uk Kim wrote: > http://perforce.freebsd.org/chv.cgi?CH=113739 > > Change 113739 by jkim@jkim_hammer on 2007/01/31 00:15:36 > > Do not reload %gs from linux_*sigcode(). > This seem to fix TLS on amd64, finally. :-) > > Tested on UP and QEMU. Need more testing on SMP. > > Affected files ... > > .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_locore.s#2 edit > > Differences ... > > ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_locore.s#2 (text+ko) ==== > > @@ -11,7 +11,9 @@ > NON_GPROF_ENTRY(linux_sigcode) > call *LINUX_SIGF_HANDLER(%esp) > leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ > +#if 0 > movl LINUX_SC_GS(%ebx),%gs > +#endif > movl LINUX_SC_FS(%ebx),%fs > movl LINUX_SC_ES(%ebx),%es > movl LINUX_SC_DS(%ebx),%ds > @@ -25,7 +27,9 @@ > linux_rt_sigcode: > call *LINUX_RT_SIGF_HANDLER(%esp) > leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ > +#if 0 > movl LINUX_SC_GS(%ebx),%gs > +#endif great work! why didnt you just remove those lines but if 0 them? without commit it looks a little strange to someone who doesnt know why/where/how :) From owner-p4-projects@FreeBSD.ORG Wed Jan 31 10:03:59 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 777C516A402; Wed, 31 Jan 2007 10:03:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4F85B16A400 for ; Wed, 31 Jan 2007 10:03:59 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 25A6413C442 for ; Wed, 31 Jan 2007 10:03:59 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VA3xkY008992 for ; Wed, 31 Jan 2007 10:03:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VA3wvs008988 for perforce@freebsd.org; Wed, 31 Jan 2007 10:03:58 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 10:03:58 GMT Message-Id: <200701311003.l0VA3wvs008988@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113751 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 10:03:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=113751 Change 113751 by rwatson@rwatson_cinnamon on 2007/01/31 10:03:38 Branch and integrate bpf.4 into zcopybpf. Affected files ... .. //depot/projects/zcopybpf/src/share/man/man4/bpf.4#1 branch Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jan 31 10:49:57 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2D6F816A411; Wed, 31 Jan 2007 10:49:57 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F04B116A40F for ; Wed, 31 Jan 2007 10:49:56 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id DD00613C48E for ; Wed, 31 Jan 2007 10:49:56 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VAnuVp015657 for ; Wed, 31 Jan 2007 10:49:56 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VAnuhV015654 for perforce@freebsd.org; Wed, 31 Jan 2007 10:49:56 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 10:49:56 GMT Message-Id: <200701311049.l0VAnuhV015654@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113752 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 10:49:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=113752 Change 113752 by rwatson@rwatson_cinnamon on 2007/01/31 10:49:47 Rudimentary documentation of current zero-copy BPF API. This will change. Affected files ... .. //depot/projects/zcopybpf/src/share/man/man4/bpf.4#2 edit Differences ... ==== //depot/projects/zcopybpf/src/share/man/man4/bpf.4#2 (text+ko) ==== @@ -1,3 +1,30 @@ +.\" Copyright (c) 2007 Seccuris Inc. +.\" All rights reserved. +.\" +.\" This sofware was developed by Robert N. M. Watson under contract to +.\" Seccuris Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" .\" Copyright (c) 1990 The Regents of the University of California. .\" All rights reserved. .\" @@ -61,18 +88,53 @@ all file descriptors listening on that interface apply their filter. Each descriptor that accepts the packet receives its own copy. .Pp -Reads from these files return the next group of packets -that have matched the filter. -To improve performance, the buffer passed to read must be -the same size as the buffers used internally by -.Nm . +.Nm +devices operate in one of two buffering modes: buffered +.Xr read 2 , +in which packet data is copied from the kernel explicitly using the +.Xr read 2 +system call, and zero-copy buffer mode, in which the user process provides +two memory regions that +.Nm +will write to directly as the packets are accepted. +The buffering mode may be set with the +.Dv BIOCSETBUFMODE +ioctl (see below), and will default to buffered +.Xr read 2 +mode +.Dv ( BPF_BUFMODE_BUFFER ) +by default. +Buffers return the next group of packets that have matched the filter. +Note that an individual packet larger than the buffer size is necessarily +truncated. +.Pp +In the case of buffered +.Xr read 2 , +the user process will declare a fixed buffer size that will be used both for +sizing internal buffers and for all +.Xr read 2 +operations on the file. This size is returned by the .Dv BIOCGBLEN ioctl (see below), and can be set with .Dv BIOCSBLEN . -Note that an individual packet larger than this size is necessarily -truncated. +.Pp +In zero-copy buffering, the user process registers two memory buffers with +.Nm +via the +.Dv BIOCSETZBUF +ioctl (see below). +The user process may monitor for completion (filling) of a buffer, at which +point the memory contents of the buffer will be stable until the buffer is +returned for further kernel use using the +.Dv BIOCACKZBUF +ioctl. +Buffers will be of a fixed (and equal) size, be +page-aligned, and the size must be an integer multiple of the page size. +The maximum zero-copy buffer size is returned by the +.Dv BIOCGETZMAX +ioctl (see below). .Pp The packet filter will support any link level protocol that has fixed length headers. @@ -127,7 +189,7 @@ The (third) argument to .Xr ioctl 2 should be a pointer to the type indicated. -.Bl -tag -width BIOCGRTIMEOUT +.Bl -tag -width BIOCGETBUFMODE .It Dv BIOCGBLEN .Pq Li u_int Returns the required buffer length for reads on @@ -318,6 +380,70 @@ This prevents the execution of ioctl commands which could change the underlying operating parameters of the device. +.It Dv BIOCGETBUFMODE +.It Dv BIOCSETBUFMODE +.Pq Li u_int +Get or set the current +.Nm +buffering mode; possible values are +.Dv BPF_BUFMODE_BUFFER , +buffered +.Xr read 2 +mode, and +.Dv BPF_BUFMODE_ZBUF , +zero-copy buffer mode. +.It Dv BIOCACKZBUF +.Pq Li struct bpf_zbuf +Return a completed zero-copy buffer to the kernel for reuse. +The following structure is used as an argument to these and other zero-copy +buffer ioctls: +.Bd -literal +struct bpf_zbuf { + void *bz_bufa; + void *bz_bufb; + size_t bz_buflen; +}; +.Ed +.Pp +Only the +.Vt bz_bufa +field will be used with this ioctl. +.It Dv BIOCGETZBUF +.It Dv BIOCSETZBUF +.Pq Li struct bpf_zbuf +Get or set the current zero-copy buffer locations; buffer locations may be +set only once zero-copy buffer mode has been selected, and prior to attaching +the +.Nm +device to an interface. +Buffers must be of identical size, page-aligned, and an integer multiple of +pages in size. +The three fields +.Vt bz_bufa , +.Vt bz_bufb , +and +.Vt bz_buflen +must be filled out. +.It Dv BIOCGETZMAX +.Pq Li u_int +Get the largest individual zero-copy buffer size allowed. +As two buffers are used in zero-copy buffer mode, the limit (in practice) is +twice this size. +As zero-copy buffers consume kernel address space, conservative selection of +buffer size, especially when there are multiple +.Nm +descriptors in use on 32-bit systems. +.It Dv BIOCGETZNEXT +.Pq Li struct bpf_zbuf +Get the buffer pointer of the next completed zero-copy buffer and length of +pending data, or +.Dv NULL +if there is no pending completed buffer. +Only the +.Vt bz_bufa +and +.Vt bz_buflen +fields will be used with this ioctl. .El .Sh BPF HEADER The following structure is prepended to each packet returned by From owner-p4-projects@FreeBSD.ORG Wed Jan 31 11:05:18 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 169EE16A402; Wed, 31 Jan 2007 11:05:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D71D316A416 for ; Wed, 31 Jan 2007 11:05:17 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id C4E6C13C467 for ; Wed, 31 Jan 2007 11:05:17 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VB5HP9020005 for ; Wed, 31 Jan 2007 11:05:17 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VB5Hhj020002 for perforce@freebsd.org; Wed, 31 Jan 2007 11:05:17 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 11:05:17 GMT Message-Id: <200701311105.l0VB5Hhj020002@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113754 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 11:05:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=113754 Change 113754 by rwatson@rwatson_cinnamon on 2007/01/31 11:04:54 When testing the setzbuf ioctl and a failure is supposed to have occurred, check that the setzbuf ioctl didn't set the buffer, rather than that it did set the buffer. Affected files ... .. //depot/projects/zcopybpf/utils/zbuf_ioctl/zbuf_ioctl.c#3 edit Differences ... ==== //depot/projects/zcopybpf/utils/zbuf_ioctl/zbuf_ioctl.c#3 (text+ko) ==== @@ -151,11 +151,19 @@ if (ret < 0) err(-1, "bpf_test_setzbuf(%s): bpf_getzbuf() to confirm " "results failed", desc); - if (bufa_check != bufa || bufb_check != bufb || - buflen != buflen_check) - errx(-1, "bpf_test_setzbuf(%s): getzbuf returned " - "(0x%x, 0x%x, %d)", desc, (uintptr_t)bufa_check, - (uintptr_t)bufb_check, buflen_check); + if (error == 0) { + if (bufa_check != bufa || bufb_check != bufb || + buflen != buflen_check) + errx(-1, "bpf_test_setzbuf(%s): getzbuf returned " + "(0x%x, 0x%x, %d)", desc, (uintptr_t)bufa_check, + (uintptr_t)bufb_check, buflen_check); + } else { + if (bufa_check != NULL || bufb_check != NULL || + buflen_check != 0) + errx(-1, "bpf_test_setzbuf(%s): getzbuf returned " + "(0x%x, 0x%x, %d)", desc, (uintptr_t)bufa_check, + (uintptr_t)bufb_check, buflen_check); + } out: close(fd); } From owner-p4-projects@FreeBSD.ORG Wed Jan 31 11:16:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8D0A216A403; Wed, 31 Jan 2007 11:16:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5117216A400 for ; Wed, 31 Jan 2007 11:16:32 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3F9A913C467 for ; Wed, 31 Jan 2007 11:16:32 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VBGWgb021631 for ; Wed, 31 Jan 2007 11:16:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VBGVfE021628 for perforce@freebsd.org; Wed, 31 Jan 2007 11:16:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 11:16:31 GMT Message-Id: <200701311116.l0VBGVfE021628@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113755 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 11:16:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=113755 Change 113755 by rwatson@rwatson_cinnamon on 2007/01/31 11:16:23 Reintroduce dropped size bound on the size of individual zero-copy buffer regions. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#6 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#6 (text+ko) ==== @@ -196,6 +196,13 @@ return (EINVAL); } + /* Length must not exceed per-buffer resource limit. */ + if ((len / PAGE_SIZE) > BPF_MAX_PAGES) { + // printf("zbuf_setup: len %d greater than max %d\n", len, + // BPF_MAX_PAGES * PAGE_SIZE); + return (EINVAL); + } + error = 0; zb = malloc(sizeof(*zb), M_BPF, M_ZERO | M_WAITOK); zb->zb_uaddr = uaddr; From owner-p4-projects@FreeBSD.ORG Wed Jan 31 11:28:48 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 47FF016A406; Wed, 31 Jan 2007 11:28:48 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0BD1716A401 for ; Wed, 31 Jan 2007 11:28:48 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id ED7AF13C4C1 for ; Wed, 31 Jan 2007 11:28:47 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VBSlRF023213 for ; Wed, 31 Jan 2007 11:28:47 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VBSlGL023210 for perforce@freebsd.org; Wed, 31 Jan 2007 11:28:47 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 11:28:47 GMT Message-Id: <200701311128.l0VBSlGL023210@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113756 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 11:28:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=113756 Change 113756 by rwatson@rwatson_cinnamon on 2007/01/31 11:28:41 Add a commented out debugging printf to bpf_ready(). Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.c#7 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#7 (text+ko) ==== @@ -780,6 +780,9 @@ BPFD_LOCK_ASSERT(d); + // printf("bpf_ready: hlen: %d, immediate %d, state %d, slen %d\n", + // d->bd_hlen, d->bd_immediate, d->bd_state, d->bd_slen); + if (d->bd_hlen != 0) return (1); if ((d->bd_immediate || d->bd_state == BPF_TIMED_OUT) && From owner-p4-projects@FreeBSD.ORG Wed Jan 31 14:51:03 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E97BE16A407; Wed, 31 Jan 2007 14:51:02 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 82DE316A406 for ; Wed, 31 Jan 2007 14:51:02 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 718A813C4D3 for ; Wed, 31 Jan 2007 14:51:02 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VEp22S096886 for ; Wed, 31 Jan 2007 14:51:02 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VEp2tH096880 for perforce@freebsd.org; Wed, 31 Jan 2007 14:51:02 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 14:51:02 GMT Message-Id: <200701311451.l0VEp2tH096880@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113762 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 14:51:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=113762 Change 113762 by rwatson@rwatson_cinnamon on 2007/01/31 14:50:13 When in BPF immediate mode, modify getznext to rotate the buffers if there is data in the stored buffer but not the held buffer: this is effectively the same behavior found in bpfread(), and causes a BPF buffer rotation if it can satisfy the request for a buffer immediately by doing so. Move the BPF rotation logic [back] into the global include file so that bpf_zerocopy.c can use it. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.c#8 edit .. //depot/projects/zcopybpf/src/sys/net/bpf.h#4 edit .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#7 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#8 (text+ko) ==== @@ -613,19 +613,6 @@ } /* - * Rotate the packet buffers in descriptor d. Move the store buffer into - * the hold slot, and the free buffer ino the store slot. Zero the length of - * the new store buffer. Descriptor lock should be held. - */ -#define ROTATE_BUFFERS(d) do { \ - (d)->bd_hbuf = (d)->bd_sbuf; \ - (d)->bd_hlen = (d)->bd_slen; \ - (d)->bd_sbuf = (d)->bd_fbuf; \ - (d)->bd_slen = 0; \ - (d)->bd_fbuf = NULL; \ -} while (0) - -/* * bpfread - read next chunk of packets from buffers */ static int ==== //depot/projects/zcopybpf/src/sys/net/bpf.h#4 (text+ko) ==== @@ -663,6 +663,19 @@ #endif /* + * Rotate the packet buffers in descriptor d. Move the store buffer into the + * hold slot, and the free buffer ino the store slot. Zero the length of the + * new store buffer. Descriptor lock should be held. + */ +#define ROTATE_BUFFERS(d) do { \ + (d)->bd_hbuf = (d)->bd_sbuf; \ + (d)->bd_hlen = (d)->bd_slen; \ + (d)->bd_sbuf = (d)->bd_fbuf; \ + (d)->bd_slen = 0; \ + (d)->bd_fbuf = NULL; \ +} while (0) + +/* * Descriptor associated with each attached hardware interface. */ struct bpf_if { ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#7 (text+ko) ==== @@ -480,9 +480,10 @@ } /* - * Ioctl to return the next completed buffer to read, if any. Only the first - * pointer/length in the zbuf are used, since at most one buffer is in the - * hold position on the descriptor. + * Ioctl to return the next completed buffer to read, if any. In immediate + * mode, this may force a buffer rotation if there is stored data but no held + * data, in similar style to calling bpfread() on an immediate mode + * descriptor. */ int bpf_zerocopy_ioctl_getznext(struct thread *td, struct bpf_d *d, @@ -496,7 +497,14 @@ // printf("bpf_zerocopy_ioctl_getznext(td: %p, pid: %d, d: %p)\n", td, // td->td_proc->p_pid, d); + /* + * If in immediate mode, there's no holder buffer, but there is + * stored packet data, rotate so that the stored buffer is now the + * held buffer. + */ BPFD_LOCK(d); + if (d->bd_immediate && d->bd_hbuf == NULL && d->bd_slen != 0) + ROTATE_BUFFERS(d); bzero(bz, sizeof(*bz)); if (d->bd_hbuf != NULL) { zb = (struct zbuf *)d->bd_hbuf; From owner-p4-projects@FreeBSD.ORG Wed Jan 31 14:54:07 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8C8F016A40A; Wed, 31 Jan 2007 14:54:07 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F2B7716A400 for ; Wed, 31 Jan 2007 14:54:06 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E13F813C442 for ; Wed, 31 Jan 2007 14:54:06 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VEs6Sb099642 for ; Wed, 31 Jan 2007 14:54:06 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VEs6RY099630 for perforce@freebsd.org; Wed, 31 Jan 2007 14:54:06 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 14:54:06 GMT Message-Id: <200701311454.l0VEs6RY099630@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113763 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 14:54:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=113763 Change 113763 by rwatson@rwatson_cinnamon on 2007/01/31 14:53:44 Add BPF utility function to set immediate mode. Affected files ... .. //depot/projects/zcopybpf/utils/zbuf_tap/bpf_util.c#3 edit .. //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.h#3 edit Differences ... ==== //depot/projects/zcopybpf/utils/zbuf_tap/bpf_util.c#3 (text+ko) ==== @@ -168,6 +168,15 @@ } int +bpf_setimmediate(int fd, u_int immediate) +{ + + if (ioctl(fd, BIOCIMMEDIATE, &immediate) < 0) + return (-1); + return (0); +} + +int bpf_setzbuf(int fd, void *bufa, void *bufb, u_int buflen) { struct bpf_zbuf bz; ==== //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.h#3 (text+ko) ==== @@ -41,6 +41,7 @@ int bpf_send(int fd, u_char *packet, u_int packetlen); int bpf_setbufmode(int fd, u_int bufmode); int bpf_setif(int fd, const char *ifname); +int bpf_setimmediate(int fd, u_int immediate); int bpf_setzbuf(int fd, void *bufa, void *bufb, u_int buflen); void tap_close(int fd); From owner-p4-projects@FreeBSD.ORG Wed Jan 31 14:58:13 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0EEEF16A50E; Wed, 31 Jan 2007 14:58:13 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C018A16A503 for ; Wed, 31 Jan 2007 14:58:12 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id ADBA413C49D for ; Wed, 31 Jan 2007 14:58:12 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VEwC0j002320 for ; Wed, 31 Jan 2007 14:58:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VEwCdc002317 for perforce@freebsd.org; Wed, 31 Jan 2007 14:58:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 14:58:12 GMT Message-Id: <200701311458.l0VEwCdc002317@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113764 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 14:58:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=113764 Change 113764 by rwatson@rwatson_cinnamon on 2007/01/31 14:57:30 Also call poll and select to see what the status of a bpf device is once a second. Set immediate mode. Probably want a run-time flag for this. Affected files ... .. //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.c#3 edit Differences ... ==== //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.c#3 (text+ko) ==== @@ -38,6 +38,8 @@ #include #include #include +#include +#include #include #include @@ -46,6 +48,7 @@ #include #include #include +#include #include #include "zbuf_tap.h" @@ -55,9 +58,12 @@ { u_char *bufa, *bufb, *buf; u_int buflen, maxbuflen; + struct pollfd pollfd; char name[PATH_MAX]; int bpf_fd, tap_fd; + struct timeval tv; int i, tap_unit; + fd_set set; buflen = getpagesize() * 2; @@ -91,6 +97,9 @@ if (bpf_setzbuf(bpf_fd, bufa, bufb, buflen) < 0) err(-1, "bpf_setzbuf"); + if (bpf_setimmediate(bpf_fd, 1) < 0) + err(-1, "bpf_setimmediate"); + if (bpf_captureall(bpf_fd) < 0) err(-1, "bpf_captureall"); @@ -100,13 +109,43 @@ while (1) { sleep(1); + /* + * Exercise various poll mechanisms to see which say + * something is ready to read. + */ if (bpf_getznext(bpf_fd, (void **)&buf, &buflen) < 0) err(-1, "bpf_getznext"); printf("bpf_getznext returned (0x%x, %d)\n", (uintptr_t)buf, buflen); + if (ioctl(bpf_fd, FIONREAD, &i) < 0) err(-1, "ioctl(FIONREAD)"); printf("FIONREAD returned %d\n", i); + + bzero(&pollfd, sizeof(pollfd)); + pollfd.fd = bpf_fd; + pollfd.events = POLLIN; + i = poll(&pollfd, 1, 0); + if (i < 0) + err(-1, "poll"); + if (i == 0) + printf("poll returned 0\n"); + else + printf("poll returned revents of 0x%x\n", + pollfd.revents); + + FD_ZERO(&set); + FD_SET(bpf_fd, &set); + bzero(&tv, sizeof(tv)); + tv.tv_sec = 0; + tv.tv_usec = 0; + if (select(bpf_fd + 1, &set, NULL, NULL, &tv) < 0) + err(-1, "select"); + if (FD_ISSET(bpf_fd, &set)) + printf("select returned readable\n"); + else + printf("select returned not readable\n"); + if (buf != NULL) { if (bpf_ackzbuf(bpf_fd, buf, buflen) < 0) err(-1, "bpf_ackzbuf(0x%x, %d)", From owner-p4-projects@FreeBSD.ORG Wed Jan 31 15:27:51 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DF3A016A406; Wed, 31 Jan 2007 15:27:50 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A2EFF16A402 for ; Wed, 31 Jan 2007 15:27:50 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9170513C428 for ; Wed, 31 Jan 2007 15:27:50 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VFRoE4030588 for ; Wed, 31 Jan 2007 15:27:50 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VFRoqt030582 for perforce@freebsd.org; Wed, 31 Jan 2007 15:27:50 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 15:27:50 GMT Message-Id: <200701311527.l0VFRoqt030582@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113768 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 15:27:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=113768 Change 113768 by csjp@csjp_rnd01 on 2007/01/31 15:27:17 Bring in netstat for stats Affected files ... .. //depot/projects/zcopybpf/src/usr.sbin/netstat/Makefile#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/atalk.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/bpf.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/if.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/inet.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/inet6.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/ipsec.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/ipx.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/main.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/mbuf.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/mcast.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/mroute.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/mroute6.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/netgraph.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/netstat.1#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/netstat.h#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/pfkey.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/route.c#1 branch .. //depot/projects/zcopybpf/src/usr.sbin/netstat/unix.c#1 branch Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jan 31 15:58:31 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0560E16A407; Wed, 31 Jan 2007 15:58:31 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B920C16A401 for ; Wed, 31 Jan 2007 15:58:30 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A9BCD13C474 for ; Wed, 31 Jan 2007 15:58:30 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VFwUC5041530 for ; Wed, 31 Jan 2007 15:58:30 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VFwUVH041527 for perforce@freebsd.org; Wed, 31 Jan 2007 15:58:30 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 15:58:30 GMT Message-Id: <200701311558.l0VFwUVH041527@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113771 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 15:58:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=113771 Change 113771 by csjp@csjp_rnd01 on 2007/01/31 15:57:57 Use some of the new stats and implement a -s which gives us extended statistics. Affected files ... .. //depot/projects/zcopybpf/src/usr.sbin/netstat/bpf.c#2 edit .. //depot/projects/zcopybpf/src/usr.sbin/netstat/main.c#2 edit .. //depot/projects/zcopybpf/src/usr.sbin/netstat/netstat.h#2 edit Differences ... ==== //depot/projects/zcopybpf/src/usr.sbin/netstat/bpf.c#2 (text+ko) ==== @@ -82,31 +82,82 @@ *flagbuf++ = '\0'; } -void -bpf_stats(char *ifname) +static int +bpf_get_stats(int *size, struct xbpf_d **bdp) { - struct xbpf_d *d, *bd; - char *pname, flagbuf[12]; - size_t size; + struct xbpf_d *bd; + size_t s; - if (sysctlbyname("net.bpf.stats", NULL, &size, + if (sysctlbyname("net.bpf.stats", NULL, &s, NULL, 0) < 0) { warn("net.bpf.stats"); - return; + return (-1); } - if (size == 0) - return; - bd = malloc(size); + if (s == 0) + return (-1); + bd = malloc(s); if (bd == NULL) { warn("malloc failed"); - return; + return (-1); } - if (sysctlbyname("net.bpf.stats", bd, &size, + if (sysctlbyname("net.bpf.stats", bd, &s, NULL, 0) < 0) { warn("net.bpf.stats"); free(bd); + return (-1); + } + *bdp = bd; + *size = s; + return (0); +} + +void +bpf_stats_extended(char *ifname) +{ + struct xbpf_d *d, *bd; + int size; + char *pname; + + if (bpf_get_stats(&size, &bd) < 0) return; + for (d = &bd[0]; d < &bd[size / sizeof(*d)]; d++) { + if (ifname && strcmp(ifname, d->bd_ifname) != 0) + continue; + pname = bpf_pidname(d->bd_pid); + (void) printf("%s: pid %d on %s:\n", pname, bd->bd_pid, + d->bd_ifname); + (void) printf( + "\t%lu packets received\n" + "\t%lu packets matched receive filter\n" + "\t%lu packets dropped\n" + "\t%d current hold buffer size\n" + "\t%d current store buffer size\n" + "\t%lu packets written\n" + "\t%lu packets matched write filter\n" + "\t%lu packet writes failed\n" + "\t%lu zero copy operations\n", + d->bd_rcount, + d->bd_fcount, + d->bd_dcount, + d->bd_hlen, + d->bd_slen, + d->bd_wcount, + d->bd_wfcount, + d->bd_wdcount, + d->bd_zcopy); + free(pname); } +} + +void +bpf_stats(char *ifname) +{ + char *pname, flagbuf[12]; + struct xbpf_d *d, *bd; + int size; + + if (bpf_get_stats(&size, &bd) < 0) + return; printf("%5s %6s %6s %9s %9s %9s %5s %5s %s\n", "Pid", "Netif", "Flags", "Recv", "Drop", "Match", "Sblen", "Hblen", "Command"); ==== //depot/projects/zcopybpf/src/usr.sbin/netstat/main.c#2 (text+ko) ==== @@ -459,7 +459,10 @@ setgid(getgid()); if (Bflag) { - bpf_stats(interface); + if (sflag) + bpf_stats_extended(interface); + else + bpf_stats(interface); exit(0); } if (mflag) { ==== //depot/projects/zcopybpf/src/usr.sbin/netstat/netstat.h#2 (text+ko) ==== @@ -158,3 +158,4 @@ void mroutepr(u_long, u_long); void mrt_stats(u_long); void bpf_stats(char *); +void bpf_stats_extended(char *); From owner-p4-projects@FreeBSD.ORG Wed Jan 31 16:02:36 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A2F5A16A408; Wed, 31 Jan 2007 16:02:36 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 79AE916A406 for ; Wed, 31 Jan 2007 16:02:36 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 51D3713C4A3 for ; Wed, 31 Jan 2007 16:02:36 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VG2a8Z042461 for ; Wed, 31 Jan 2007 16:02:36 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VG2aM2042457 for perforce@freebsd.org; Wed, 31 Jan 2007 16:02:36 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 16:02:36 GMT Message-Id: <200701311602.l0VG2aM2042457@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113772 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 16:02:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=113772 Change 113772 by csjp@csjp_rnd01 on 2007/01/31 16:02:01 free stats information after we are done with it. Affected files ... .. //depot/projects/zcopybpf/src/usr.sbin/netstat/bpf.c#3 edit Differences ... ==== //depot/projects/zcopybpf/src/usr.sbin/netstat/bpf.c#3 (text+ko) ==== @@ -147,6 +147,7 @@ d->bd_zcopy); free(pname); } + free(bd); } void From owner-p4-projects@FreeBSD.ORG Wed Jan 31 16:38:22 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5569816A406; Wed, 31 Jan 2007 16:38:22 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1833B16A402 for ; Wed, 31 Jan 2007 16:38:22 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 072B513C4B2 for ; Wed, 31 Jan 2007 16:38:22 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VGcLNF049261 for ; Wed, 31 Jan 2007 16:38:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VGcLjJ049258 for perforce@freebsd.org; Wed, 31 Jan 2007 16:38:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 31 Jan 2007 16:38:21 GMT Message-Id: <200701311638.l0VGcLjJ049258@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113774 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 16:38:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=113774 Change 113774 by rwatson@rwatson_cinnamon on 2007/01/31 16:37:37 Chicken scratchings on libpcap to add zero-copy BPF support to it. It does correctly capture packets, but there are issues with the event model, as we currently can't fully support BPF read timeouts with identical semantics to those used with bpfread(), an issue being worked on. Affected files ... .. //depot/projects/zcopybpf/src/contrib/libpcap/pcap-bpf.c#2 edit .. //depot/projects/zcopybpf/src/contrib/libpcap/pcap-int.h#2 edit .. //depot/projects/zcopybpf/src/lib/libpcap/Makefile#2 edit Differences ... ==== //depot/projects/zcopybpf/src/contrib/libpcap/pcap-bpf.c#2 (text+ko) ==== @@ -30,6 +30,8 @@ #endif #include /* optionally get BSD define */ +#include +#include #include #include #include @@ -150,6 +152,10 @@ #ifdef PCAP_FDDIPAD register int pad; #endif +#ifdef BIOCSETBUFMODE + struct pollfd pollfd; + struct bpf_zbuf bz; +#endif fcode = p->md.use_bpf ? NULL : p->fcode.bf_insns; again: @@ -167,7 +173,56 @@ } cc = p->cc; if (p->cc == 0) { - cc = read(p->fd, (char *)p->buffer, p->bufsize); +#ifdef BIOCSETBUFMODE + /* + * XXXRW: All of this could use serious revision. + */ + if (p->zbuf1 != NULL) { + if (p->buffer != NULL) { + bzero(&bz, sizeof(bz)); + bz.bz_bufa = p->buffer; + bz.bz_buflen = p->bufsize; + if (ioctl(p->fd, BIOCACKZBUF, &bz) < 0) { + snprintf(p->errbuf, PCAP_ERRBUF_SIZE, + "BIOCGETZNEXT: %s", + pcap_strerror(errno)); + return (-1); + } + p->buffer = NULL; + } + bzero(&bz, sizeof(bz)); + if (ioctl(p->fd, BIOCGETZNEXT, &bz) < 0) { + snprintf(p->errbuf, PCAP_ERRBUF_SIZE, + "BIOCGETZNEXT: %s", + pcap_strerror(errno)); + return (-1); + } + printf("getznext returned %p\n", bz.bz_bufa); + if (bz.bz_bufa != NULL) { + p->buffer = bz.bz_bufa; + cc = bz.bz_buflen; + } else { + /* + * XXXRW: Need to implement non-blocking + * operation -- query fd with fcntl? + */ + bzero(&pollfd, sizeof(pollfd)); + pollfd.fd = p->fd; + pollfd.events = POLLIN; + printf("poll returned %d\n", + poll(&pollfd, 1, p->timeout == 0 ? INFTIM + : p->timeout)); + printf("pollfd.revents = 0x%x\n", + pollfd.revents); + + /* XXXRW: Should force buffer rotation here. */ + + goto again; + } + } else +#endif + cc = read(p->fd, (char *)p->buffer, p->bufsize); + if (cc < 0) { /* Don't choke when we get ptraced */ switch (errno) { @@ -580,6 +635,13 @@ #define DLT_DOCSIS 143 #endif +/* + * XXXRW: The following is an evil global hack to control whether zero-copy + * BPF is used or not. It should be replaced with something real, if it is + * worth keeping such a frob. + */ +int bpf_zerocopy = 1; + pcap_t * pcap_open_live(const char *device, int snaplen, int promisc, int to_ms, char *ebuf) @@ -598,6 +660,10 @@ struct bpf_insn total_insn; struct bpf_program total_prog; struct utsname osinfo; +#ifdef BIOCSETBUFMODE + struct bpf_zbuf bz; + u_int bufmode, zbufmax; +#endif #ifdef HAVE_DAG_API if (strstr(device, "dag")) { @@ -636,6 +702,71 @@ } /* + * XXXRW: Depending on the availability of zero-copy BPF, we take one + * of two strategies here: if it is available and usable, we go ahead + * and set it up; otherwise we play the song-and-dance to try to + * probe an acceptable read buffer size. Zero-copy BPF requires that + * buffers be mapped into memory before selecting the interface to + * attach to, so we do that here also. + */ +#ifdef BIOCSETBUFMODE + if (bpf_zerocopy) { + bufmode = BPF_BUFMODE_ZBUF; + if (ioctl(fd, BIOCSETBUFMODE, (caddr_t)&bufmode) < 0) { + snprintf(ebuf, PCAP_ERRBUF_SIZE, "BIOCSETBUFMODE: %s", + pcap_strerror(errno)); + goto bad; + } + + if (ioctl(fd, BIOCGETZMAX, (caddr_t)&zbufmax) < 0) { + snprintf(ebuf, PCAP_ERRBUF_SIZE, "BIOCGETZMAX: %s", + pcap_strerror(errno)); + goto bad; + } + + /* + * XXXRW: This logic should be revisited. + */ + v = 32768; + if (v % getpagesize() != 0) + v = getpagesize(); + if (v > zbufmax) + v = zbufmax; + + p->zbuf1 = mmap(NULL, v, PROT_READ | PROT_WRITE, MAP_ANON, + -1, 0); + p->zbuf2 = mmap(NULL, v, PROT_READ | PROT_WRITE, MAP_ANON, + -1, 0); + if (p->zbuf1 == MAP_FAILED || p->zbuf2 == MAP_FAILED) { + if (p->zbuf1 != MAP_FAILED) + munmap(p->zbuf1, v); + if (p->zbuf2 != MAP_FAILED) + munmap(p->zbuf1, v); + snprintf(ebuf, PCAP_ERRBUF_SIZE, "mmap: %s", + pcap_strerror(errno)); + } + + bzero(&bz, sizeof(bz)); + bz.bz_bufa = p->zbuf1; + bz.bz_bufb = p->zbuf2; + bz.bz_buflen = v; + + if (ioctl(fd, BIOCSETZBUF, (caddr_t)&bz) < 0) { + snprintf(ebuf, PCAP_ERRBUF_SIZE, "BIOCSETZBUF: %s", + pcap_strerror(errno)); + goto bad; + } + + (void)strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name)); + if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0) { + snprintf(ebuf, PCAP_ERRBUF_SIZE, "BIOCSETIF: %s: %s", + device, pcap_strerror(errno)); + goto bad; + } + } else { +#endif + + /* * Try finding a good size for the buffer; 32768 may be too * big, so keep cutting it in half until we find a size * that works, or run out of sizes to try. If the default @@ -670,6 +801,9 @@ "BIOCSBLEN: %s: No buffer size worked", device); goto bad; } +#ifdef BIOCSETBUFMODE + } +#endif /* Get the data link layer type. */ if (ioctl(fd, BIOCGDLT, (caddr_t)&v) < 0) { @@ -859,6 +993,9 @@ goto bad; } } +#ifdef BIOCSETBUFMODE + p->timeout = to_ms; +#endif #ifdef _AIX #ifdef BIOCIMMEDIATE @@ -931,16 +1068,22 @@ goto bad; } p->bufsize = v; - p->buffer = (u_char *)malloc(p->bufsize); - if (p->buffer == NULL) { - snprintf(ebuf, PCAP_ERRBUF_SIZE, "malloc: %s", - pcap_strerror(errno)); - goto bad; +#ifdef BIOCSETBUFMODE + if (p->zbuf1 == NULL) { +#endif + p->buffer = (u_char *)malloc(p->bufsize); + if (p->buffer == NULL) { + snprintf(ebuf, PCAP_ERRBUF_SIZE, "malloc: %s", + pcap_strerror(errno)); + goto bad; + } +#ifdef _AIX + /* For some strange reason this seems to prevent the EFAULT + * problems we have experienced from AIX BPF. */ + memset(p->buffer, 0x0, p->bufsize); +#endif +#ifdef BIOCSETBUFMODE } -#ifdef _AIX - /* For some strange reason this seems to prevent the EFAULT - * problems we have experienced from AIX BPF. */ - memset(p->buffer, 0x0, p->bufsize); #endif /* @@ -1025,7 +1168,16 @@ return (p); bad: + (void)close(fd); +#ifdef BIOCSETBUFMODE + if (p->zbuf1 != NULL) + munmap(p->zbuf1, v); + if (p->zbuf2 != NULL) + munmap(p->zbuf2, v); +#endif + if (p->buffer != NULL) + free(p->buffer); if (p->dlt_list != NULL) free(p->dlt_list); free(p); ==== //depot/projects/zcopybpf/src/contrib/libpcap/pcap-int.h#2 (text+ko) ==== @@ -148,7 +148,7 @@ struct pcap_md md; /* - * Read buffer. + * Read buffer -- for file descriptor read buffer model. */ int bufsize; u_char *buffer; @@ -156,6 +156,17 @@ int cc; /* + * XXXRW: Exactly how to handle ifdefs, etc, is not something I've + * worked out yet. Presumably we need to add a configure check for + * zero-copy BPF. + * + * Zero-copy read buffer -- for zero-copy BPF. 'buffer' above will + * alternative between these two actual mmap'd buffers as required. + */ + u_char *zbuf1, *zbuf2; + u_int timeout; + + /* * Place holder for pcap_next(). */ u_char *pkt; ==== //depot/projects/zcopybpf/src/lib/libpcap/Makefile#2 (text+ko) ==== @@ -16,6 +16,7 @@ YFLAGS+=-p pcapyy LFLAGS+=-Ppcapyy +CFLAGS+=-I../../sys -g CFLAGS+=-DHAVE_CONFIG_H -Dyylval=pcapyylval -I${.CURDIR} -I. CFLAGS+=-D_U_="__attribute__((unused))" CFLAGS+=-DHAVE_SNPRINTF -DHAVE_VSNPRINTF From owner-p4-projects@FreeBSD.ORG Wed Jan 31 16:40:25 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9355516A403; Wed, 31 Jan 2007 16:40:25 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1F99D16A401 for ; Wed, 31 Jan 2007 16:40:25 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0E71113C4A7 for ; Wed, 31 Jan 2007 16:40:25 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VGeOHv049384 for ; Wed, 31 Jan 2007 16:40:24 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VGeOhN049381 for perforce@freebsd.org; Wed, 31 Jan 2007 16:40:24 GMT (envelope-from piso@freebsd.org) Date: Wed, 31 Jan 2007 16:40:24 GMT Message-Id: <200701311640.l0VGeOhN049381@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113775 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 16:40:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=113775 Change 113775 by piso@piso_newluxor on 2007/01/31 16:40:09 Start filling in mbuf placeholders i left around: ProtoAliasIn() and ProtoAliasOut() first. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#44 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#44 (text+ko) ==== @@ -692,8 +692,11 @@ struct ip *pip; struct alias_link *lnk; #ifdef _KERNEL - // XXX - m_pullup() - pip = ptr; + struct mbuf *m; + m = m_pullup(ptr, sizeof(struct ip)); + if (m == NULL) + return (PKT_ALIAS_IGNORED); + pip = mtod(m, struct ip *); #else pip = ptr; #endif @@ -731,8 +734,11 @@ struct alias_link *lnk; struct ip *pip; #ifdef _KERNEL - // XXX m_pullup() - pip = ptr; + struct mbuf *m; + m = m_pullup(ptr, sizeof(struct ip)); + if (m == NULL) + return (PKT_ALIAS_IGNORED); + pip = mtod(m, struct ip *); #else pip = ptr; #endif @@ -1368,11 +1374,11 @@ if (error == 0) iresult = PKT_ALIAS_OK; else - iresult = ProtoAliasIn(la, pip); + iresult = ProtoAliasIn(la, ptr); } break; default: - iresult = ProtoAliasIn(la, pip); + iresult = ProtoAliasIn(la, ptr); break; } @@ -1509,11 +1515,11 @@ if (error == 0) iresult = PKT_ALIAS_OK; else - iresult = ProtoAliasOut(la, pip, create); + iresult = ProtoAliasOut(la, ptr, create); } break; default: - iresult = ProtoAliasOut(la, pip, create); + iresult = ProtoAliasOut(la, ptr, create); break; } } else { From owner-p4-projects@FreeBSD.ORG Wed Jan 31 17:18:54 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7875116A406; Wed, 31 Jan 2007 17:18:54 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5132A16A400 for ; Wed, 31 Jan 2007 17:18:54 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from anuket.mj.niksun.com (gwnew.niksun.com [65.115.46.162]) by mx1.freebsd.org (Postfix) with ESMTP id 14FB713C478 for ; Wed, 31 Jan 2007 17:18:53 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from niksun.com (anuket [10.70.0.5]) by anuket.mj.niksun.com (8.13.6/8.13.6) with ESMTP id l0VHIrH2026114; Wed, 31 Jan 2007 12:18:53 -0500 (EST) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: Divacky Roman Date: Wed, 31 Jan 2007 12:18:49 -0500 User-Agent: KMail/1.6.2 References: <200701310016.l0V0GccJ095661@repoman.freebsd.org> <20070131085906.GA28186@stud.fit.vutbr.cz> In-Reply-To: <20070131085906.GA28186@stud.fit.vutbr.cz> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200701311218.51103.jkim@FreeBSD.org> X-Virus-Scanned: ClamAV 0.88.6/2508/Wed Jan 31 11:42:50 2007 on anuket.mj.niksun.com X-Virus-Status: Clean Cc: Perforce Change Reviews Subject: Re: PERFORCE change 113739 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 17:18:54 -0000 On Wednesday 31 January 2007 03:59 am, Divacky Roman wrote: > On Wed, Jan 31, 2007 at 12:16:38AM +0000, Jung-uk Kim wrote: > > http://perforce.freebsd.org/chv.cgi?CH=113739 > > > > Change 113739 by jkim@jkim_hammer on 2007/01/31 00:15:36 > > > > Do not reload %gs from linux_*sigcode(). > > This seem to fix TLS on amd64, finally. :-) > > > > Tested on UP and QEMU. Need more testing on SMP. > > > > Affected files ... > > > > .. > > //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_locore > >.s#2 edit > > > > Differences ... > > > > ==== > > //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_locore > >.s#2 (text+ko) ==== > > > > @@ -11,7 +11,9 @@ > > NON_GPROF_ENTRY(linux_sigcode) > > call *LINUX_SIGF_HANDLER(%esp) > > leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ > > +#if 0 > > movl LINUX_SC_GS(%ebx),%gs > > +#endif > > movl LINUX_SC_FS(%ebx),%fs > > movl LINUX_SC_ES(%ebx),%es > > movl LINUX_SC_DS(%ebx),%ds > > @@ -25,7 +27,9 @@ > > linux_rt_sigcode: > > call *LINUX_RT_SIGF_HANDLER(%esp) > > leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ > > +#if 0 > > movl LINUX_SC_GS(%ebx),%gs > > +#endif > > great work! why didnt you just remove those lines but if 0 them? Because it's not done yet. I need more testing and clean-up before MFP4. I'd like to test it on SMP but I don't have one. :-( > without commit it looks a little strange to someone who doesnt know > why/where/how :) Indeed. Jung-uk Kim From owner-p4-projects@FreeBSD.ORG Wed Jan 31 17:23:19 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6832516A406; Wed, 31 Jan 2007 17:23:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 37ED416A403 for ; Wed, 31 Jan 2007 17:23:19 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 28FB313C494 for ; Wed, 31 Jan 2007 17:23:19 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VHNJ1K066077 for ; Wed, 31 Jan 2007 17:23:19 GMT (envelope-from jkim@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VHNIPk066072 for perforce@freebsd.org; Wed, 31 Jan 2007 17:23:18 GMT (envelope-from jkim@freebsd.org) Date: Wed, 31 Jan 2007 17:23:18 GMT Message-Id: <200701311723.l0VHNIPk066072@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jkim@freebsd.org using -f From: Jung-uk Kim To: Perforce Change Reviews Cc: Subject: PERFORCE change 113777 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 17:23:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=113777 Change 113777 by jkim@jkim_hammer on 2007/01/31 17:22:47 Remove unused _ugs32sel. Affected files ... .. //depot/projects/linuxolator/src/sys/amd64/amd64/machdep.c#15 edit .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_sysvec.c#8 edit Differences ... ==== //depot/projects/linuxolator/src/sys/amd64/amd64/machdep.c#15 (text+ko) ==== @@ -156,7 +156,7 @@ extern vm_offset_t ksym_start, ksym_end; #endif -int _udatasel, _ucodesel, _ucode32sel, _ugs32sel; +int _udatasel, _ucodesel, _ucode32sel; int cold = 1; @@ -1293,7 +1293,6 @@ _ucodesel = GSEL(GUCODE_SEL, SEL_UPL); _udatasel = GSEL(GUDATA_SEL, SEL_UPL); _ucode32sel = GSEL(GUCODE32_SEL, SEL_UPL); - _ugs32sel = GSEL(GUGS32_SEL, SEL_UPL); /* setup proc 0's pcb */ thread0.td_pcb->pcb_flags = 0; /* XXXKSE */ ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_sysvec.c#8 (text+ko) ==== @@ -280,7 +280,7 @@ return 0; } -extern int _ucodesel, _ucode32sel, _udatasel, _ugs32sel; +extern int _ucodesel, _ucode32sel, _udatasel; extern unsigned long linux_sznonrtsigcode; static void From owner-p4-projects@FreeBSD.ORG Wed Jan 31 18:19:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3F38E16A403; Wed, 31 Jan 2007 18:19:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0A74516A401 for ; Wed, 31 Jan 2007 18:19:32 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D713513C4AA for ; Wed, 31 Jan 2007 18:19:31 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VIJVDb085357 for ; Wed, 31 Jan 2007 18:19:31 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VIJV3U085354 for perforce@freebsd.org; Wed, 31 Jan 2007 18:19:31 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 18:19:31 GMT Message-Id: <200701311819.l0VIJV3U085354@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113778 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 18:19:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=113778 Change 113778 by csjp@csjp_rnd01 on 2007/01/31 18:19:15 Add bpfnull for comparing zero copy vs. regular buffering Affected files ... .. //depot/projects/zcopybpf/bpfnull/Makefile#1 add .. //depot/projects/zcopybpf/bpfnull/bpfnull.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jan 31 18:22:37 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B514116A408; Wed, 31 Jan 2007 18:22:37 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 733E716A401 for ; Wed, 31 Jan 2007 18:22:37 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4A31A13C4B3 for ; Wed, 31 Jan 2007 18:22:37 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VIMbGF086247 for ; Wed, 31 Jan 2007 18:22:37 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VIMbUG086243 for perforce@freebsd.org; Wed, 31 Jan 2007 18:22:37 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 18:22:37 GMT Message-Id: <200701311822.l0VIMbUG086243@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113779 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 18:22:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=113779 Change 113779 by csjp@csjp_rnd01 on 2007/01/31 18:21:42 Move bpfnull here. Affected files ... .. //depot/projects/zcopybpf/utils/bpfnull/Makefile#1 add .. //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jan 31 18:22:38 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E93716A518; Wed, 31 Jan 2007 18:22:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C43B716A488 for ; Wed, 31 Jan 2007 18:22:37 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9A9A913C4B5 for ; Wed, 31 Jan 2007 18:22:37 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VIMbE7086254 for ; Wed, 31 Jan 2007 18:22:37 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VIMbGq086250 for perforce@freebsd.org; Wed, 31 Jan 2007 18:22:37 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 18:22:37 GMT Message-Id: <200701311822.l0VIMbGq086250@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113780 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 18:22:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=113780 Change 113780 by csjp@csjp_rnd01 on 2007/01/31 18:22:21 Remove these Affected files ... .. //depot/projects/zcopybpf/utils/bpfnull/Makefile#2 delete .. //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jan 31 18:35:55 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 19E8316A407; Wed, 31 Jan 2007 18:35:55 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E268116A400 for ; Wed, 31 Jan 2007 18:35:54 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id BB6B313C478 for ; Wed, 31 Jan 2007 18:35:54 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VIZsPJ088467 for ; Wed, 31 Jan 2007 18:35:54 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VIZsBJ088464 for perforce@freebsd.org; Wed, 31 Jan 2007 18:35:54 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 18:35:54 GMT Message-Id: <200701311835.l0VIZsBJ088464@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113781 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 18:35:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=113781 Change 113781 by csjp@csjp_rnd01 on 2007/01/31 18:35:25 Lets try this again Affected files ... .. //depot/projects/zcopybpf/bpfnull/Makefile#2 delete .. //depot/projects/zcopybpf/bpfnull/bpfnull.c#2 delete .. //depot/projects/zcopybpf/utils/bpfnull/Makefile#3 add .. //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#3 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jan 31 19:04:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8359D16A40F; Wed, 31 Jan 2007 19:04:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F2C9916A408 for ; Wed, 31 Jan 2007 19:04:31 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E344D13C4B6 for ; Wed, 31 Jan 2007 19:04:31 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VJ4Vnr095041 for ; Wed, 31 Jan 2007 19:04:31 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VJ4Vmu095038 for perforce@freebsd.org; Wed, 31 Jan 2007 19:04:31 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 19:04:31 GMT Message-Id: <200701311904.l0VJ4Vmu095038@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113783 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 19:04:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=113783 Change 113783 by csjp@csjp_rnd01 on 2007/01/31 19:04:17 use malloc buffer instead of stack allocated storage Affected files ... .. //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#4 edit Differences ... ==== //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#4 (text+ko) ==== @@ -83,9 +83,12 @@ { fd_set s_set, r_set; struct bpf_zbuf bz; - char pbuf[65535]; + char *pbuf; int n; + pbuf = malloc(bflag + 1); + if (pbuf == NULL) + err(1, "malloc"); FD_SET(fd, &s_set); for (;;) { r_set = s_set; @@ -98,10 +101,10 @@ (void) fprintf(stderr, "DEBUG: wokeup and bpf is ready to read from\n"); if (zflag == 0) { - n = read(fd, &pbuf[0], bflag); + n = read(fd, pbuf, bflag); if (n < 0) err(1, "read failed"); - bz.bz_bufa = &pbuf[0]; + bz.bz_bufa = pbuf; bz.bz_buflen = n; } else if (ioctl(fd, BIOCGETZNEXT, &bz) < 0) From owner-p4-projects@FreeBSD.ORG Wed Jan 31 19:41:19 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB06916A405; Wed, 31 Jan 2007 19:41:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 815AC16A402 for ; Wed, 31 Jan 2007 19:41:19 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 5AD2113C4A6 for ; Wed, 31 Jan 2007 19:41:19 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VJfJwJ005734 for ; Wed, 31 Jan 2007 19:41:19 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VJfJdX005731 for perforce@freebsd.org; Wed, 31 Jan 2007 19:41:19 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 19:41:19 GMT Message-Id: <200701311941.l0VJfJdX005731@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113786 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 19:41:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=113786 Change 113786 by csjp@csjp_rnd01 on 2007/01/31 19:40:19 -f should imply -w Affected files ... .. //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#5 edit Differences ... ==== //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#5 (text+ko) ==== @@ -214,6 +214,7 @@ break; case 'f': fflag = optarg; + wflag = 1; break; case 'i': iflag = optarg; From owner-p4-projects@FreeBSD.ORG Wed Jan 31 20:34:30 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B474216A409; Wed, 31 Jan 2007 20:34:30 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8DFAD16A407 for ; Wed, 31 Jan 2007 20:34:30 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 8024613C471 for ; Wed, 31 Jan 2007 20:34:30 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VKYUQX015917 for ; Wed, 31 Jan 2007 20:34:30 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VKYUIT015914 for perforce@freebsd.org; Wed, 31 Jan 2007 20:34:30 GMT (envelope-from sam@freebsd.org) Date: Wed, 31 Jan 2007 20:34:30 GMT Message-Id: <200701312034.l0VKYUIT015914@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 113790 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 20:34:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=113790 Change 113790 by sam@sam_ebb on 2007/01/31 20:33:48 correct min/max tx power conversion from hal -> net80211 Affected files ... .. //depot/projects/wifi/sys/dev/ath/if_ath.c#131 edit Differences ... ==== //depot/projects/wifi/sys/dev/ath/if_ath.c#131 (text+ko) ==== @@ -5508,8 +5508,8 @@ ichan->ic_flags); } ichan->ic_maxregpower = c->maxRegTxPower; /* dBm */ - ichan->ic_maxpower = c->maxTxPower / 2; /* 1/2 dBm */ - ichan->ic_minpower = c->minTxPower / 2; /* 1/2 dBm */ + ichan->ic_maxpower = c->maxTxPower; /* 1/2 dBm */ + ichan->ic_minpower = c->minTxPower; /* 1/2 dBm */ } ic->ic_nchans = nchan; free(chans, M_TEMP); From owner-p4-projects@FreeBSD.ORG Wed Jan 31 20:35:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AC92A16A405; Wed, 31 Jan 2007 20:35:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5AE2D16A400 for ; Wed, 31 Jan 2007 20:35:32 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4CE8513C471 for ; Wed, 31 Jan 2007 20:35:32 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VKZWBP016031 for ; Wed, 31 Jan 2007 20:35:32 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VKZV7M016028 for perforce@freebsd.org; Wed, 31 Jan 2007 20:35:31 GMT (envelope-from sam@freebsd.org) Date: Wed, 31 Jan 2007 20:35:31 GMT Message-Id: <200701312035.l0VKZV7M016028@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 113791 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 20:35:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=113791 Change 113791 by sam@sam_ebb on 2007/01/31 20:35:29 standardize on .5 dBm for min/max channel power; we only need 1 dBm units for 11h but there's no reason to discard extra information that's useful to users Affected files ... .. //depot/projects/wifi/sys/net80211/_ieee80211.h#15 edit .. //depot/projects/wifi/sys/net80211/ieee80211.c#40 edit Differences ... ==== //depot/projects/wifi/sys/net80211/_ieee80211.h#15 (text+ko) ==== @@ -109,8 +109,8 @@ u_int16_t ic_flags; /* see below */ u_int8_t ic_ieee; /* IEEE channel number */ int8_t ic_maxregpower; /* maximum regulatory tx power in dBm */ - int8_t ic_maxpower; /* maximum tx power in dBm */ - int8_t ic_minpower; /* minimum tx power in dBm */ + int8_t ic_maxpower; /* maximum tx power in .5 dBm */ + int8_t ic_minpower; /* minimum tx power in .5 dBm */ }; #define IEEE80211_CHAN_MAX 255 ==== //depot/projects/wifi/sys/net80211/ieee80211.c#40 (text+ko) ==== @@ -612,11 +612,12 @@ cw = 5; else cw = 20; - printf("%4d %4d%c %2d %6d %6d %6d\n" + printf("%4d %4d%c %2d %6d %4d.%d %4d.%d\n" , c->ic_ieee, c->ic_freq, type , cw , c->ic_maxregpower - , c->ic_minpower, c->ic_maxpower + , c->ic_minpower / 2, c->ic_minpower & 1 ? 5 : 0 + , c->ic_maxpower / 2, c->ic_maxpower & 1 ? 5 : 0 ); } } From owner-p4-projects@FreeBSD.ORG Wed Jan 31 20:48:49 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 970D116A402; Wed, 31 Jan 2007 20:48:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4829A16A400 for ; Wed, 31 Jan 2007 20:48:49 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3971E13C4B2 for ; Wed, 31 Jan 2007 20:48:49 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VKmnQN026114 for ; Wed, 31 Jan 2007 20:48:49 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VKmmiw026109 for perforce@freebsd.org; Wed, 31 Jan 2007 20:48:48 GMT (envelope-from piso@freebsd.org) Date: Wed, 31 Jan 2007 20:48:48 GMT Message-Id: <200701312048.l0VKmmiw026109@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113792 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 20:48:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=113792 Change 113792 by piso@piso_newluxor on 2007/01/31 20:48:35 In LibAlias[In|Out]Locked() and in (almost) all the functions called from there we need a contiguos ip hdr: for this reason revert the previous changes made to ProtoAlias[In|Out](), and do the pullup of an ip hdr in LibAlias[In|Out]Locked() - this way we can guarantee that all the functions called from LibAlias[In|Out]Locked() will receive, at least, a contiguos ip hdr in their "void *ptr" argument, and, in some cases, where we only need the content of the ip hdr (like in the ProtoAlias[In|Out]()) cases, we will hand down directly a "struct ip *". Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#45 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#45 (text+ko) ==== @@ -264,8 +264,8 @@ static int IcmpAliasOut2(struct libalias *, void *); static int IcmpAliasOut(struct libalias *, void *, int create); -static int ProtoAliasIn(struct libalias *, void *); -static int ProtoAliasOut(struct libalias *, void *, int create); +static int ProtoAliasIn(struct libalias *, struct ip *); +static int ProtoAliasOut(struct libalias *, struct ip *, int create); static int UdpAliasIn(struct libalias *, void *); static int UdpAliasOut(struct libalias *, void *, int create); @@ -681,7 +681,7 @@ static int -ProtoAliasIn(struct libalias *la, void *ptr) +ProtoAliasIn(struct libalias *la, struct ip *pip) { /* Handle incoming IP packets. The @@ -689,17 +689,7 @@ the dest IP address of the packet to our inside machine. */ - struct ip *pip; struct alias_link *lnk; -#ifdef _KERNEL - struct mbuf *m; - m = m_pullup(ptr, sizeof(struct ip)); - if (m == NULL) - return (PKT_ALIAS_IGNORED); - pip = mtod(m, struct ip *); -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); /* Return if proxy-only mode is enabled */ @@ -724,7 +714,7 @@ static int -ProtoAliasOut(struct libalias *la, void *ptr, int create) +ProtoAliasOut(struct libalias *la, struct ip *pip, int create) { /* Handle outgoing IP packets. The @@ -732,16 +722,6 @@ the source IP address of the packet. */ struct alias_link *lnk; - struct ip *pip; -#ifdef _KERNEL - struct mbuf *m; - m = m_pullup(ptr, sizeof(struct ip)); - if (m == NULL) - return (PKT_ALIAS_IGNORED); - pip = mtod(m, struct ip *); -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); (void)create; @@ -1303,10 +1283,10 @@ /* Local prototypes */ static int -LibAliasOutLocked(struct libalias *la, char *ptr, +LibAliasOutLocked(struct libalias *la, void *ptr, int maxpacketsize, int create); static int -LibAliasInLocked(struct libalias *la, char *ptr, +LibAliasInLocked(struct libalias *la, void *ptr, int maxpacketsize); int @@ -1320,13 +1300,24 @@ return (res); } +#ifdef _KERNEL +#define PULLUP_IPHDR(pip, ptr) do { \ + struct mbuf *m; \ + m = m_pullup((ptr), sizeof(struct ip)); \ + (pip) = mtod(m, struct ip *); \ +} while (0) +#else +#define PULLUP_IPHDR(pip, ptr) pip = ptr +#endif + static int -LibAliasInLocked(struct libalias *la, char *ptr, int maxpacketsize) +LibAliasInLocked(struct libalias *la, void *ptr, int maxpacketsize) { struct in_addr alias_addr; struct ip *pip; int iresult; + iresult = PKT_ALIAS_IGNORED; if (la->packetAliasMode & PKT_ALIAS_REVERSE) { la->packetAliasMode &= ~PKT_ALIAS_REVERSE; iresult = LibAliasOutLocked(la, ptr, maxpacketsize, 1); @@ -1335,17 +1326,16 @@ } HouseKeeping(la); ClearCheckNewLink(la); - pip = (struct ip *)ptr; + PULLUP_IPHDR(pip, ptr); + if (pip == NULL) + goto getout; alias_addr = pip->ip_dst; /* Defense against mangled packets */ if (ntohs(pip->ip_len) > maxpacketsize - || (pip->ip_hl << 2) > maxpacketsize) { - iresult = PKT_ALIAS_IGNORED; + || (pip->ip_hl << 2) > maxpacketsize) goto getout; - } - iresult = PKT_ALIAS_IGNORED; if ((ntohs(pip->ip_off) & IP_OFFMASK) == 0) { switch (pip->ip_p) { case IPPROTO_ICMP: @@ -1369,16 +1359,17 @@ .maxpktsize = 0 }; - /* Walk out chain. */ + /* XXX broken - Walk out chain. */ error = find_handler(IN, IP, la, pip, &ad); + // XXX m_pullup() if (error == 0) iresult = PKT_ALIAS_OK; else - iresult = ProtoAliasIn(la, ptr); + iresult = ProtoAliasIn(la, pip); } - break; + break; default: - iresult = ProtoAliasIn(la, ptr); + iresult = ProtoAliasIn(la, pip); break; } @@ -1440,7 +1431,7 @@ } static int -LibAliasOutLocked(struct libalias *la, char *ptr, /* valid IP packet */ +LibAliasOutLocked(struct libalias *la, void *ptr, /* valid IP packet */ int maxpacketsize, /* How much the packet data may grow (FTP * and IRC inline changes) */ int create /* Create new entries ? */ @@ -1450,6 +1441,7 @@ struct in_addr addr_save; struct ip *pip; + iresult = PKT_ALIAS_IGNORED; if (la->packetAliasMode & PKT_ALIAS_REVERSE) { la->packetAliasMode &= ~PKT_ALIAS_REVERSE; iresult = LibAliasInLocked(la, ptr, maxpacketsize); @@ -1458,14 +1450,14 @@ } HouseKeeping(la); ClearCheckNewLink(la); - pip = (struct ip *)ptr; + PULLUP_IPHDR(pip, ptr); + if (pip == NULL) + goto getout; /* Defense against mangled packets */ if (ntohs(pip->ip_len) > maxpacketsize - || (pip->ip_hl << 2) > maxpacketsize) { - iresult = PKT_ALIAS_IGNORED; + || (pip->ip_hl << 2) > maxpacketsize) goto getout; - } addr_save = GetDefaultAliasAddress(la); if (la->packetAliasMode & PKT_ALIAS_UNREGISTERED_ONLY) { @@ -1487,7 +1479,6 @@ } else if (la->packetAliasMode & PKT_ALIAS_PROXY_ONLY) { SetDefaultAliasAddress(la, pip->ip_src); } - iresult = PKT_ALIAS_IGNORED; if ((ntohs(pip->ip_off) & IP_OFFMASK) == 0) { switch (pip->ip_p) { case IPPROTO_ICMP: @@ -1510,16 +1501,17 @@ .dport = NULL, .maxpktsize = 0 }; - /* Walk out chain. */ + /* XXX broken - Walk out chain. */ error = find_handler(OUT, IP, la, pip, &ad); + // XXX m_pullup() if (error == 0) iresult = PKT_ALIAS_OK; else - iresult = ProtoAliasOut(la, ptr, create); + iresult = ProtoAliasOut(la, pip, create); } break; default: - iresult = ProtoAliasOut(la, ptr, create); + iresult = ProtoAliasOut(la, pip, create); break; } } else { From owner-p4-projects@FreeBSD.ORG Wed Jan 31 21:11:18 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F78516A406; Wed, 31 Jan 2007 21:11:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 27FFB16A401 for ; Wed, 31 Jan 2007 21:11:18 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0188713C441 for ; Wed, 31 Jan 2007 21:11:18 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VLBHAQ030865 for ; Wed, 31 Jan 2007 21:11:17 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VLBHUH030849 for perforce@freebsd.org; Wed, 31 Jan 2007 21:11:17 GMT (envelope-from csjp@freebsd.org) Date: Wed, 31 Jan 2007 21:11:17 GMT Message-Id: <200701312111.l0VLBHUH030849@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113793 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 21:11:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=113793 Change 113793 by csjp@csjp_rnd01 on 2007/01/31 21:10:30 Use correct bpf_d pointer when processing PID Affected files ... .. //depot/projects/zcopybpf/src/usr.sbin/netstat/bpf.c#4 edit Differences ... ==== //depot/projects/zcopybpf/src/usr.sbin/netstat/bpf.c#4 (text+ko) ==== @@ -124,7 +124,7 @@ if (ifname && strcmp(ifname, d->bd_ifname) != 0) continue; pname = bpf_pidname(d->bd_pid); - (void) printf("%s: pid %d on %s:\n", pname, bd->bd_pid, + (void) printf("%s: pid %d on %s:\n", pname, d->bd_pid, d->bd_ifname); (void) printf( "\t%lu packets received\n" From owner-p4-projects@FreeBSD.ORG Wed Jan 31 21:17:26 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4E18316A4A1; Wed, 31 Jan 2007 21:17:26 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 216F016A485 for ; Wed, 31 Jan 2007 21:17:26 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 12FDC13C47E for ; Wed, 31 Jan 2007 21:17:26 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VLHPKo031884 for ; Wed, 31 Jan 2007 21:17:25 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VLHPv0031881 for perforce@freebsd.org; Wed, 31 Jan 2007 21:17:25 GMT (envelope-from piso@freebsd.org) Date: Wed, 31 Jan 2007 21:17:25 GMT Message-Id: <200701312117.l0VLHPv0031881@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113794 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 21:17:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=113794 Change 113794 by piso@piso_newluxor on 2007/01/31 21:17:15 In kernel libalias will grok mbuf instead of char * data. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#46 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.h#11 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#46 (text+ko) ==== @@ -1290,7 +1290,11 @@ int maxpacketsize); int +#ifdef _KERNEL +LibAliasIn(struct libalias *la, struct mbuf *ptr, int maxpacketsize) +#else LibAliasIn(struct libalias *la, char *ptr, int maxpacketsize) +#endif { int res; @@ -1409,7 +1413,11 @@ #define UNREG_ADDR_C_UPPER 0xc0a8ffff int +#ifdef _KERNEL +LibAliasOut(struct libalias *la, struct mbuf *ptr, int maxpacketsize) +#else LibAliasOut(struct libalias *la, char *ptr, int maxpacketsize) +#endif { int res; @@ -1420,7 +1428,11 @@ } int +#ifdef _KERNEL +LibAliasOutTry(struct libalias *la, struct mbuf *ptr, int maxpacketsize, int create) +#else LibAliasOutTry(struct libalias *la, char *ptr, int maxpacketsize, int create) +#endif { int res; ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.h#11 (text+ko) ==== @@ -145,9 +145,15 @@ void LibAliasUninit(struct libalias *); /* Packet Handling functions. */ +#ifdef _KERNEL +int LibAliasIn (struct libalias *, struct mbuf *_ptr, int _maxpacketsize); +int LibAliasOut(struct libalias *, struct mbuf *_ptr, int _maxpacketsize); +int LibAliasOutTry(struct libalias *, struct mbuf *_ptr, int _maxpacketsize, int _create); +#else int LibAliasIn (struct libalias *, char *_ptr, int _maxpacketsize); int LibAliasOut(struct libalias *, char *_ptr, int _maxpacketsize); int LibAliasOutTry(struct libalias *, char *_ptr, int _maxpacketsize, int _create); +#endif int LibAliasUnaliasOut(struct libalias *, char *_ptr, int _maxpacketsize); /* Port and address redirection functions. */ From owner-p4-projects@FreeBSD.ORG Wed Jan 31 21:26:38 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 277CA16A408; Wed, 31 Jan 2007 21:26:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 02F5A16A406 for ; Wed, 31 Jan 2007 21:26:38 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E89C013C461 for ; Wed, 31 Jan 2007 21:26:37 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VLQbUs033441 for ; Wed, 31 Jan 2007 21:26:37 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VLQbUY033438 for perforce@freebsd.org; Wed, 31 Jan 2007 21:26:37 GMT (envelope-from piso@freebsd.org) Date: Wed, 31 Jan 2007 21:26:37 GMT Message-Id: <200701312126.l0VLQbUY033438@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113795 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 21:26:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=113795 Change 113795 by piso@piso_newluxor on 2007/01/31 21:26:33 Revert previous modifications to Fragment[In|Out] too: as they are only called from LibAlias[In|Out]Locked() and need just a contiguos ip hdr, we can safely hand them a "struct ip *" (as the actual ip hdr pullup is done in LibAlias[In|Out]Locked() - see previous commit). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#47 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#47 (text+ko) ==== @@ -1146,21 +1146,14 @@ */ /* Local prototypes */ -static int FragmentIn(struct libalias *, void *); -static int FragmentOut(struct libalias *, void *); +static int FragmentIn(struct libalias *, struct ip *); +static int FragmentOut(struct libalias *, struct ip *); static int -FragmentIn(struct libalias *la, void *ptr) +FragmentIn(struct libalias *la, struct ip *pip) { struct alias_link *lnk; - struct ip *pip; -#ifdef _KERNEL - // XXX - m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); lnk = FindFragmentIn2(la, pip->ip_src, pip->ip_dst, pip->ip_id); @@ -1179,16 +1172,9 @@ static int -FragmentOut(struct libalias *la, void *ptr) +FragmentOut(struct libalias *la, struct ip *pip) { - struct ip *pip; struct in_addr alias_address; -#ifdef _KERNEL - // XXX m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); alias_address = FindAliasAddress(la, pip->ip_src); From owner-p4-projects@FreeBSD.ORG Wed Jan 31 22:01:21 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9DEA616A406; Wed, 31 Jan 2007 22:01:21 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 78BA216A403 for ; Wed, 31 Jan 2007 22:01:21 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 524A313C4B2 for ; Wed, 31 Jan 2007 22:01:21 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l0VM1Lcd038520 for ; Wed, 31 Jan 2007 22:01:21 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l0VM1L7W038517 for perforce@freebsd.org; Wed, 31 Jan 2007 22:01:21 GMT (envelope-from sam@freebsd.org) Date: Wed, 31 Jan 2007 22:01:21 GMT Message-Id: <200701312201.l0VM1L7W038517@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 113796 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Jan 2007 22:01:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=113796 Change 113796 by sam@sam_ebb on 2007/01/31 22:00:21 add list txpow Affected files ... .. //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#60 edit Differences ... ==== //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#60 (text+ko) ==== @@ -1525,6 +1525,72 @@ } static void +print_txpow(const struct ieee80211_channel *c) +{ + printf("Channel %3u : %u Mhz %3.1f reg %2d ", + c->ic_ieee, c->ic_freq, + c->ic_maxpower/2., c->ic_maxregpower); +} + +static void +print_txpow_verbose(const struct ieee80211_channel *c) +{ + print_chaninfo(c); + printf("min %4.1f dBm max %3.1f dBm reg %2d dBm", + c->ic_minpower/2., c->ic_maxpower/2., c->ic_maxregpower); + /* indicate where regulatory cap limits power use */ + if (c->ic_maxpower > 2*c->ic_maxregpower) + printf(" <"); +} + +static void +list_txpow(int s) +{ + struct ieee80211req_chaninfo achans; + uint8_t reported[IEEE80211_CHAN_BYTES]; + struct ieee80211_channel *c, *prev; + int i, half; + + getchaninfo(s); + memset(&achans, 0, sizeof(achans)); + memset(reported, 0, sizeof(reported)); + for (i = 0; i < chaninfo.ic_nchans; i++) { + c = &chaninfo.ic_chans[i]; + /* suppress duplicates as above */ + if (isset(reported, c->ic_ieee) && !verbose) { + /* XXX we assume duplicates are adjacent */ + prev = &achans.ic_chans[achans.ic_nchans-1]; + /* display highest power on channel */ + if (c->ic_maxpower > prev->ic_maxpower) + *prev = *c; + } else { + achans.ic_chans[achans.ic_nchans++] = *c; + setbit(reported, c->ic_ieee); + } + } + if (!verbose) { + half = achans.ic_nchans / 2; + if (achans.ic_nchans % 2) + half++; + + for (i = 0; i < achans.ic_nchans / 2; i++) { + print_txpow(&achans.ic_chans[i]); + print_txpow(&achans.ic_chans[half+i]); + printf("\n"); + } + if (achans.ic_nchans % 2) { + print_txpow(&achans.ic_chans[i]); + printf("\n"); + } + } else { + for (i = 0; i < achans.ic_nchans; i++) { + print_txpow_verbose(&achans.ic_chans[i]); + printf("\n"); + } + } +} + +static void list_keys(int s) { } @@ -1686,6 +1752,8 @@ list_wme(s); else if (iseq(arg, "mac")) list_mac(s); + else if (iseq(arg, "txpow")) + list_txpow(s); else errx(1, "Don't know how to list %s for %s", arg, name); #undef iseq From owner-p4-projects@FreeBSD.ORG Thu Feb 1 00:18:16 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5BFAA16A405; Thu, 1 Feb 2007 00:18:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3106816A402 for ; Thu, 1 Feb 2007 00:18:16 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 234B913C46B for ; Thu, 1 Feb 2007 00:18:16 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l110IG0J067343 for ; Thu, 1 Feb 2007 00:18:16 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l110IFf9067340 for perforce@freebsd.org; Thu, 1 Feb 2007 00:18:15 GMT (envelope-from piso@freebsd.org) Date: Thu, 1 Feb 2007 00:18:15 GMT Message-Id: <200702010018.l110IFf9067340@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113800 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 00:18:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=113800 Change 113800 by piso@piso_newluxor on 2007/02/01 00:17:50 Pass down the mbuf and pullup enough data for UdpAlias[In|Out](). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#48 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#48 (text+ko) ==== @@ -143,6 +143,26 @@ #include "alias_mod.h" #endif +#ifdef _KERNEL + +#define PULLUP_IPHDR(pip, ptr) do { \ + struct mbuf *m; \ + m = m_pullup((ptr), sizeof(struct ip)); \ + (pip) = mtod(m, struct ip *); \ +} while (0) + +#define PULLUP_UDPHDR(pip, ptr) do { \ + struct mbuf *m; \ + pip = ptr; \ + m = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct udphdr)); \ + (pip) = mtod(m, struct ip *); \ +} while (0) + +#else +#define PULLUP_IPHDR(pip, ptr) pip = ptr +#define PULLUP_UDPHDR(pip, ptr) pip = ptr +#endif + static __inline int twowords(void *p) { @@ -753,18 +773,15 @@ struct ip *pip; struct udphdr *ud; struct alias_link *lnk; -#ifdef _KERNEL - // XXX - m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); /* Return if proxy-only mode is enabled */ if (la->packetAliasMode & PKT_ALIAS_PROXY_ONLY) return (PKT_ALIAS_OK); + PULLUP_UDPHDR(pip, ptr); + if (pip == NULL) + return (PKT_ALIAS_IGNORED); ud = (struct udphdr *)ip_next(pip); lnk = FindUdpTcpIn(la, pip->ip_src, pip->ip_dst, @@ -791,9 +808,10 @@ alias_port = ud->uh_dport; ud->uh_dport = GetOriginalPort(lnk); - /* Walk out chain. */ + /* XXX broken - Walk out chain. */ error = find_handler(IN, UDP, la, pip, &ad); - + // XXX m_pullup() + /* If UDP checksum is not zero, then adjust since destination port */ /* is being unaliased and destination address is being altered. */ if (ud->uh_sum != 0) { @@ -826,18 +844,15 @@ struct udphdr *ud; struct alias_link *lnk; int error; -#ifdef _KERNEL - // XXX m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); /* Return if proxy-only mode is enabled */ if (la->packetAliasMode & PKT_ALIAS_PROXY_ONLY) return (PKT_ALIAS_OK); + PULLUP_UDPHDR(pip, ptr); + if (pip == NULL) + return (PKT_ALIAS_IGNORED); ud = (struct udphdr *)ip_next(pip); lnk = FindUdpTcpOut(la, pip->ip_src, pip->ip_dst, @@ -859,8 +874,9 @@ alias_address = GetAliasAddress(lnk); alias_port = GetAliasPort(lnk); - /* Walk out chain. */ + /* XXX broken - Walk out chain. */ error = find_handler(OUT, UDP, la, pip, &ad); + // XXX m_pullup() /* If UDP checksum is not zero, adjust since source port is */ /* being aliased and source address is being altered */ @@ -1290,16 +1306,6 @@ return (res); } -#ifdef _KERNEL -#define PULLUP_IPHDR(pip, ptr) do { \ - struct mbuf *m; \ - m = m_pullup((ptr), sizeof(struct ip)); \ - (pip) = mtod(m, struct ip *); \ -} while (0) -#else -#define PULLUP_IPHDR(pip, ptr) pip = ptr -#endif - static int LibAliasInLocked(struct libalias *la, void *ptr, int maxpacketsize) { @@ -1332,7 +1338,7 @@ iresult = IcmpAliasIn(la, pip); break; case IPPROTO_UDP: - iresult = UdpAliasIn(la, pip); + iresult = UdpAliasIn(la, ptr); break; case IPPROTO_TCP: iresult = TcpAliasIn(la, pip); @@ -1483,7 +1489,7 @@ iresult = IcmpAliasOut(la, pip, create); break; case IPPROTO_UDP: - iresult = UdpAliasOut(la, pip, create); + iresult = UdpAliasOut(la, ptr, create); break; case IPPROTO_TCP: iresult = TcpAliasOut(la, pip, maxpacketsize, create); From owner-p4-projects@FreeBSD.ORG Thu Feb 1 00:46:54 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D3DB416A407; Thu, 1 Feb 2007 00:46:53 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8B5AB16A405 for ; Thu, 1 Feb 2007 00:46:53 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7DBB613C428 for ; Thu, 1 Feb 2007 00:46:53 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l110krKY020030 for ; Thu, 1 Feb 2007 00:46:53 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l110krdF020027 for perforce@freebsd.org; Thu, 1 Feb 2007 00:46:53 GMT (envelope-from piso@freebsd.org) Date: Thu, 1 Feb 2007 00:46:53 GMT Message-Id: <200702010046.l110krdF020027@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113802 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 00:46:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=113802 Change 113802 by piso@piso_newluxor on 2007/02/01 00:46:42 Teach mbuf to TcpAlias[In|Out]. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#49 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#49 (text+ko) ==== @@ -158,9 +158,17 @@ (pip) = mtod(m, struct ip *); \ } while (0) +#define PULLUP_TCPHDR(pip, ptr) do { \ + struct mbuf *m; \ + pip = ptr; \ + m = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct tcphdr)); \ + (pip) = mtod(m, struct ip *); \ +} while (0) + #else #define PULLUP_IPHDR(pip, ptr) pip = ptr #define PULLUP_UDPHDR(pip, ptr) pip = ptr +#define PULLUP_TCPHDR(pip, ptr) pip = ptr #endif static __inline int @@ -291,7 +299,7 @@ static int UdpAliasOut(struct libalias *, void *, int create); static int TcpAliasIn(struct libalias *, void *); -static int TcpAliasOut(struct libalias *, struct ip *, int, int create); +static int TcpAliasOut(struct libalias *, void *, int, int create); static int @@ -910,14 +918,11 @@ struct ip *pip; struct tcphdr *tc; struct alias_link *lnk; -#ifdef _KERNEL - // XXX - m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); + PULLUP_TCPHDR(pip, ptr); + if (pip == NULL) + return (PKT_ALIAS_IGNORED); tc = (struct tcphdr *)ip_next(pip); lnk = FindUdpTcpIn(la, pip->ip_src, pip->ip_dst, @@ -948,8 +953,9 @@ .maxpktsize = 0 }; - /* Walk out chain. */ + /* XXX broken - Walk out chain. */ error = find_handler(IN, TCP, la, pip, &ad); + // XXX m_pullup() alias_address = GetAliasAddress(lnk); original_address = GetOriginalAddress(lnk); @@ -1032,17 +1038,21 @@ } static int -TcpAliasOut(struct libalias *la, struct ip *pip, int maxpacketsize, int create) +TcpAliasOut(struct libalias *la, void *ptr, int maxpacketsize, int create) { int proxy_type, error; u_short dest_port, src_port; u_short proxy_server_port; struct in_addr dest_address; struct in_addr proxy_server_address; + struct ip *pip; struct tcphdr *tc; struct alias_link *lnk; LIBALIAS_LOCK_ASSERT(la); + PULLUP_TCPHDR(pip, ptr); + if (pip == NULL) + return (PKT_ALIAS_IGNORED); tc = (struct tcphdr *)ip_next(pip); dest_port = tc->th_dport; src_port = tc->th_sport; @@ -1099,8 +1109,10 @@ if (proxy_type != 0) { SetProxyPort(lnk, dest_port); SetProxyAddress(lnk, dest_address); + // XXX broken ProxyModify(la, lnk, pip, maxpacketsize, proxy_type, src_port); + // XXX m_pullup() tc = (struct tcphdr *)ip_next(pip); } /* Get alias address and port */ @@ -1110,8 +1122,9 @@ /* Monitor TCP connection state */ TcpMonitorOut(lnk, tc->th_flags); - /* Walk out chain. */ + /* XXX broken - Walk out chain. */ error = find_handler(OUT, TCP, la, pip, &ad); + // XXX m_pullup() /* Adjust TCP checksum since source port is being aliased */ /* and source address is being altered */ @@ -1341,7 +1354,7 @@ iresult = UdpAliasIn(la, ptr); break; case IPPROTO_TCP: - iresult = TcpAliasIn(la, pip); + iresult = TcpAliasIn(la, ptr); break; case IPPROTO_GRE: { int error; @@ -1492,7 +1505,7 @@ iresult = UdpAliasOut(la, ptr, create); break; case IPPROTO_TCP: - iresult = TcpAliasOut(la, pip, maxpacketsize, create); + iresult = TcpAliasOut(la, ptr, maxpacketsize, create); break; case IPPROTO_GRE: { int error; From owner-p4-projects@FreeBSD.ORG Thu Feb 1 06:31:16 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 571E316A405; Thu, 1 Feb 2007 06:31:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1337616A400 for ; Thu, 1 Feb 2007 06:31:16 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 03B2913C471 for ; Thu, 1 Feb 2007 06:31:16 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l116VF69006818 for ; Thu, 1 Feb 2007 06:31:15 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l116VFBJ006811 for perforce@freebsd.org; Thu, 1 Feb 2007 06:31:15 GMT (envelope-from imp@freebsd.org) Date: Thu, 1 Feb 2007 06:31:15 GMT Message-Id: <200702010631.l116VFBJ006811@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 113809 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 06:31:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=113809 Change 113809 by imp@imp_lighthouse on 2007/02/01 06:30:17 Kinky new idea: run pccard_ether in the background. This allows devd to respond to things that are happening while pccard_ether is running. Affected files ... .. //depot/projects/arm/src/etc/devd.conf#2 edit Differences ... ==== //depot/projects/arm/src/etc/devd.conf#2 (text+ko) ==== @@ -34,13 +34,13 @@ notify 0 { match "system" "IFNET"; match "type" "ATTACH"; - action "/etc/pccard_ether $subsystem start"; + action "/etc/pccard_ether $subsystem start &"; }; notify 0 { match "system" "IFNET"; match "type" "DETACH"; - action "/etc/pccard_ether $subsystem stop"; + action "/etc/pccard_ether $subsystem stop &"; }; # @@ -63,11 +63,11 @@ # detach 0 { media-type "802.11"; - action "/etc/pccard_ether $device-name stop"; + action "/etc/pccard_ether $device-name stop &"; }; attach 0 { media-type "802.11"; - action "/etc/pccard_ether $device-name start"; + action "/etc/pccard_ether $device-name start &"; }; notify 0 { match "system" "IFNET"; From owner-p4-projects@FreeBSD.ORG Thu Feb 1 06:31:16 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B788116A513; Thu, 1 Feb 2007 06:31:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 94A6916A511 for ; Thu, 1 Feb 2007 06:31:16 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7F69313C474 for ; Thu, 1 Feb 2007 06:31:16 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l116VGa3006827 for ; Thu, 1 Feb 2007 06:31:16 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l116VGqn006821 for perforce@freebsd.org; Thu, 1 Feb 2007 06:31:16 GMT (envelope-from imp@freebsd.org) Date: Thu, 1 Feb 2007 06:31:16 GMT Message-Id: <200702010631.l116VGqn006821@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 113810 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 06:31:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=113810 Change 113810 by imp@imp_lighthouse on 2007/02/01 06:30:50 Give devd a hint to load modules. Affected files ... .. //depot/projects/arm/src/sys/net80211/ieee80211_freebsd.c#7 edit Differences ... ==== //depot/projects/arm/src/sys/net80211/ieee80211_freebsd.c#7 (text+ko) ==== @@ -33,7 +33,8 @@ */ #include #include -#include +#include +#include #include #include #include @@ -333,6 +334,7 @@ #ifdef notyet (void)kern_kldload(curthread, modname, NULL); #else + devctl_notify("ieee80211", "loader", modname, NULL); printf("%s: load the %s module by hand for now.\n", __func__, modname); #endif } From owner-p4-projects@FreeBSD.ORG Thu Feb 1 06:38:26 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AC3B416A406; Thu, 1 Feb 2007 06:38:26 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 87AD616A403 for ; Thu, 1 Feb 2007 06:38:26 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 77ABB13C441 for ; Thu, 1 Feb 2007 06:38:26 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l116cQ7m008238 for ; Thu, 1 Feb 2007 06:38:26 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l116cQJ5008234 for perforce@freebsd.org; Thu, 1 Feb 2007 06:38:26 GMT (envelope-from imp@freebsd.org) Date: Thu, 1 Feb 2007 06:38:26 GMT Message-Id: <200702010638.l116cQJ5008234@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 113811 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 06:38:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=113811 Change 113811 by imp@imp_lighthouse on 2007/02/01 06:37:36 devd glue to automatically load crypto. # Maybe the last rev introduces a race when up/down events # happen quickly? Affected files ... .. //depot/projects/arm/src/etc/devd.conf#3 edit Differences ... ==== //depot/projects/arm/src/etc/devd.conf#3 (text+ko) ==== @@ -76,6 +76,25 @@ action "/etc/rc.d/dhclient start $subsystem"; }; +# The ieee80211 system gives us hints that it would like us to load +# certain drivers. Honor those hints and load them automatically. This +# helps for wpa_supplicant, but not for hostapd because the former retries +# a lot, and the latter doesn't. At least this makes it easier to get +# some of the more oddball crypto goo loaded automatically since there +# are issues doing it synchronously in the kernel. Far from perfect, but +# very adequate for the day. This can be removed when a better automatic +# system is in place. +#XXX Not sure this is the right format for the message, and will need to +#XXX investigate what others do. Maybe the 'type' should be 'LOAD' and +#XXX the subsystem be the module to load to match more closely what +#XXX IFNET does. +notify 10 { + match "system" "ieee80211"; + match "subsystem" "loader"; + action "echo $system $subsystem $type | logger"; + action "kldload $type"; +}; + # An entry like this might be in a different file, but is included here # as an example of how to override things. Normally 'ed50' would match # the above attach/detach stuff, but the value of 100 makes it From owner-p4-projects@FreeBSD.ORG Thu Feb 1 08:54:20 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA75416A406; Thu, 1 Feb 2007 08:54:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7AB9116A403 for ; Thu, 1 Feb 2007 08:54:19 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6748A13C49D for ; Thu, 1 Feb 2007 08:54:19 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l118sIic039844 for ; Thu, 1 Feb 2007 08:54:18 GMT (envelope-from bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l118sIws039841 for perforce@freebsd.org; Thu, 1 Feb 2007 08:54:18 GMT (envelope-from bushman@freebsd.org) Date: Thu, 1 Feb 2007 08:54:18 GMT Message-Id: <200702010854.l118sIws039841@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bushman@freebsd.org using -f From: Michael Bushkov To: Perforce Change Reviews Cc: Subject: PERFORCE change 113815 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 08:54:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=113815 Change 113815 by bushman@bushman_nss_ldap_cached on 2007/02/01 08:54:03 - some cosmetic fixes with namespace.h/un-namespace.h (currently all nss modules use pthread functions with underscore in the beginning (_pthread_getspecific), because most of thread-issues handling is done via nss_tls.h macro definitions, which assume such names; this is done to use standard nss_tls.h and to change modules' code as little as possible to make patching easier; later, when the code is committed, nss-modules should be cleaned up completely from libc-specific functions) Affected files ... .. //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_compat/compat_group.c#7 edit .. //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_compat/compat_serv.c#5 edit .. //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_dns/dns_passwd.c#5 edit .. //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_nis/nis_hosts_addrinfo.c#4 edit Differences ... ==== //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_compat/compat_group.c#7 (text+ko) ==== @@ -39,14 +39,15 @@ #include #include #include +#include "namespace.h" #include #include +#include "un-namespace.h" #include #include #include #include #include -#include "libc_private.h" #include "nss_tls.h" #include "gr_scan.h" #include "nss_compat.h" ==== //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_compat/compat_serv.c#5 (text+ko) ==== ==== //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_dns/dns_passwd.c#5 (text+ko) ==== @@ -54,7 +54,6 @@ #include #include #include -#include "libc_private.h" #include "nss_tls.h" #include "pw_scan.h" ==== //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_nis/nis_hosts_addrinfo.c#4 (text+ko) ==== @@ -90,7 +90,6 @@ #include #include #include -#include "libc_private.h" #include "res_config.h" #ifdef DEBUG From owner-p4-projects@FreeBSD.ORG Thu Feb 1 08:58:26 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2C27C16A405; Thu, 1 Feb 2007 08:58:26 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0097F16A402 for ; Thu, 1 Feb 2007 08:58:26 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E136313C441 for ; Thu, 1 Feb 2007 08:58:25 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l118wPMb040053 for ; Thu, 1 Feb 2007 08:58:25 GMT (envelope-from bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l118wOEk040050 for perforce@freebsd.org; Thu, 1 Feb 2007 08:58:24 GMT (envelope-from bushman@freebsd.org) Date: Thu, 1 Feb 2007 08:58:24 GMT Message-Id: <200702010858.l118wOEk040050@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bushman@freebsd.org using -f From: Michael Bushkov To: Perforce Change Reviews Cc: Subject: PERFORCE change 113816 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 08:58:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=113816 Change 113816 by bushman@bushman_nss_ldap_cached on 2007/02/01 08:58:02 IFC Affected files ... .. //depot/projects/soc2006/nss_ldap_cached/src/etc/etc.powerpc/ttys#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/include/Makefile#7 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/include/objformat.h#2 delete .. //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/gen/Makefile.inc#3 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/gen/Symbol.map#3 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/gen/getobjformat.3#3 delete .. //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/gen/getobjformat.c#2 delete .. //depot/projects/soc2006/nss_ldap_cached/src/share/mk/bsd.own.mk#8 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/Makefile#3 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/calendar/calendars/calendar.music#3 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/Makefile#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/gzexe#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/gzexe.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/gzip.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/gzip.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/unbzip2.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zdiff#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zdiff.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zforce#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zforce.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zgrep#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zgrep.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zmore#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zmore.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/znew#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/znew.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/gzip/zuncompress.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/objformat/Makefile#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/objformat/objformat.1#2 delete .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/objformat/objformat.c#2 delete .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/objformat/objformat.sh#1 branch .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/Makefile#8 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/gstat/Makefile#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/mountd/mountd.c#7 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/pkg_install/sign/main.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/pkg_install/sign/stand.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/quotaon/quotaon.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/sysinstall/index.c#4 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/vnconfig/Makefile#2 delete .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/vnconfig/vnconfig.c#2 delete Differences ... ==== //depot/projects/soc2006/nss_ldap_cached/src/etc/etc.powerpc/ttys#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/etc.powerpc/ttys,v 1.3 2005/09/10 22:46:03 grehan Exp $ +# $FreeBSD: src/etc/etc.powerpc/ttys,v 1.4 2007/01/26 06:22:34 marcel Exp $ # @(#)ttys 5.1 (Berkeley) 4/17/89 # # This file specifies various information about terminals on the system. @@ -32,12 +32,6 @@ # when going to single-user mode. console none unknown off secure # -# ofw_console(4) -#screen "/usr/libexec/getty Pc" cons25 on secure -# zs(4) -#ttyy0 "/usr/libexec/getty std.9600" cons25 on secure -#ttyy1 "/usr/libexec/getty std.9600" cons25 off secure -# ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure @@ -50,10 +44,10 @@ #ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. -ttyd0 "/usr/libexec/getty std.9600" dialup off secure -ttyd1 "/usr/libexec/getty std.9600" dialup off secure -ttyd2 "/usr/libexec/getty std.9600" dialup off secure -ttyd3 "/usr/libexec/getty std.9600" dialup off secure +ttyu0 "/usr/libexec/getty std.9600" vt100 on secure +ttyu1 "/usr/libexec/getty std.9600" dialup off secure +ttyu2 "/usr/libexec/getty std.9600" dialup off secure +ttyu3 "/usr/libexec/getty std.9600" dialup off secure # Dumb console dcons "/usr/libexec/getty std.9600" vt100 off secure # Pseudo terminals ==== //depot/projects/soc2006/nss_ldap_cached/src/include/Makefile#7 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.266 2006/11/11 16:26:54 trhodes Exp $ +# $FreeBSD: src/include/Makefile,v 1.267 2007/01/25 22:38:04 peter Exp $ # # Doing a "make install" builds /usr/include. @@ -15,7 +15,7 @@ inttypes.h iso646.h kenv.h langinfo.h libgen.h limits.h link.h \ locale.h malloc.h malloc_np.h memory.h monetary.h mpool.h mqueue.h \ ndbm.h netconfig.h \ - netdb.h nl_types.h nlist.h nss.h nsswitch.h objformat.h paths.h \ + netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \ printf.h proc_service.h pthread.h \ pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h regexp.h \ res_update.h resolv.h runetype.h search.h setjmp.h sgtty.h \ ==== //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/gen/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.125 2006/03/13 01:14:56 deischen Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.126 2007/01/25 22:25:59 peter Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen @@ -14,7 +14,7 @@ getbootfile.c getbsize.c \ getcap.c getcwd.c getdomainname.c getgrent.c getgrouplist.c \ gethostname.c getloadavg.c getlogin.c getmntinfo.c getnetgrent.c \ - getobjformat.c getosreldate.c getpagesize.c \ + getosreldate.c getpagesize.c \ getpeereid.c getprogname.c getpwent.c getttyent.c \ getusershell.c getvfsbyname.c glob.c \ initgroups.c isatty.c isinf.c isnan.c jrand48.c lcong48.c \ @@ -49,7 +49,7 @@ getbootfile.3 getbsize.3 getcap.3 getcontext.3 getcwd.3 \ getdiskbyname.3 getdomainname.3 getfsent.3 \ getgrent.3 getgrouplist.3 gethostname.3 getloadavg.3 \ - getmntinfo.3 getnetgrent.3 getobjformat.3 getosreldate.3 \ + getmntinfo.3 getnetgrent.3 getosreldate.3 \ getpagesize.3 getpass.3 getpeereid.3 getprogname.3 getpwent.3 \ getttyent.3 getusershell.3 getvfsbyname.3 \ glob.3 initgroups.3 isgreater.3 ldexp.3 lockf.3 makecontext.3 \ ==== //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/gen/Symbol.map#3 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.1 2006/03/13 00:53:17 deischen Exp $ +# $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.2 2007/01/25 22:36:36 peter Exp $ FBSD_1.0 { __xuname; @@ -175,7 +175,6 @@ getnetgrent; endnetgrent; innetgr; - getobjformat; getosreldate; getpagesize; getpeereid; ==== //depot/projects/soc2006/nss_ldap_cached/src/share/mk/bsd.own.mk#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/mk/bsd.own.mk,v 1.59 2006/11/19 16:28:52 ru Exp $ +# $FreeBSD: src/share/mk/bsd.own.mk,v 1.60 2007/01/26 10:19:07 delphij Exp $ # # The include file set common variables for owner, # group, mode, and directories. Defaults are in brackets. @@ -297,6 +297,7 @@ BIND_UTILS \ BLUETOOTH \ BOOT \ + BZIP2 \ CALENDAR \ CDDL \ CPP \ @@ -435,6 +436,7 @@ # MK_* variable is set to "no". # .for var in \ + BZIP2 \ GNU \ INET6 \ IPX \ ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/Makefile#3 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)Makefile 8.3 (Berkeley) 1/7/94 -# $FreeBSD: src/usr.bin/Makefile,v 1.297 2006/11/26 14:36:33 ru Exp $ +# $FreeBSD: src/usr.bin/Makefile,v 1.299 2007/01/26 10:19:07 delphij Exp $ .include @@ -75,6 +75,7 @@ getent \ getopt \ ${_gprof} \ + gzip \ head \ ${_hesinfo} \ hexdump \ @@ -139,7 +140,6 @@ nohup \ ${_nslookup} \ ${_nsupdate} \ - objformat \ opieinfo \ opiekey \ opiepasswd \ ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" SUCH DAMAGE. .\" .\" $Id: rfcomm_sppd.1,v 1.3 2003/09/07 18:15:55 max Exp $ -.\" $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1,v 1.9 2005/12/07 19:41:58 emax Exp $ +.\" $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1,v 1.10 2007/01/25 20:54:59 emax Exp $ .\" -.Dd April 26, 2003 +.Dd January 24, 2007 .Dt RFCOMM_SPPD 1 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd RFCOMM Serial Port Profile daemon .Sh SYNOPSIS .Nm -.Op Fl bh +.Op Fl bhS .Fl a Ar address .Fl c Ar channel .Op Fl t Ar tty @@ -41,7 +41,11 @@ The .Nm utility is a Serial Port Profile daemon. -It opens RFCOMM connection to the specified +It can operate in two modes: client and server. +.Pp +In client mode, +.Nm +opens RFCOMM connection to the specified .Ar address server and .Ar channel . @@ -54,8 +58,29 @@ .Fl t option was specified. .Pp +If the +.Fl S +option is specified, +.Nm +will operate in server mode and act as RFCOMM server, +listening on +.Dv ANY +address and advertising a virtual serial port +via the +.Xr sdpd 8 +daemon. The +.Fl t +option must be specified; +the server side of the virtual serial port is attached to the pseudo-terminal +.Ar tty . .Nm +should be run as root in order to communicate with +.Xr sdp 8 +in this case. +.Pp +The +.Nm utility opens both master and slave pseudo terminals. This is done to ensure that RFCOMM connection stays open until .Nm @@ -71,17 +96,31 @@ The options are as follows: .Bl -tag -width indent .It Fl a Ar address -This required option specifies the address of the remote RFCOMM server. +In client mode, +this required option specifies the address of the remote RFCOMM server. +If this option is specified in server mode, +.Nm +will only accept connections from the +.Tn Bluetooth +device with address +.Ar address . The address can be specified as BD_ADDR or name. -If name was specified then the +If name was specified then .Nm utility will attempt to resolve the name via .Xr bt_gethostbyname 3 . .It Fl b Detach from the controlling terminal, i.e., run in background. .It Fl c Ar channel -This option specifies RFCOMM channel to connect to. -RFCOMM channel could either be a number between 1 and 30 or a service name. +In both client and server mode, +this required option specifies the RFCOMM channel to connect to or listen on. +In server mode, +the channel should be a number between 1 and 30. +If not specified, +.Nm +will try to allocate RFCOMM channel number based on process ID. +In client mode, +the channel could either be a number between 1 and 30 or a service name. Supported service names are: .Cm DUN (for DialUp Networking service), @@ -97,11 +136,16 @@ Discovery Protocol from the server. .It Fl h Display usage message and exit. +.It Fl S +Server mode; see +.Sx DESCRIPTION . .It Fl t Ar tty Slave pseudo tty name. If not set stdin/stdout will be used. This option is required if .Fl b +or +.Fl S option was specified. .El .Sh FILES @@ -129,7 +173,8 @@ .Xr bluetooth 3 , .Xr ng_btsocket 4 , .Xr pty 4 , -.Xr rfcomm_pppd 8 +.Xr rfcomm_pppd 8 , +.Xr sdpd 8 .Sh AUTHORS .An Maksim Yevmenkin Aq m_evmenkin@yahoo.com .Sh BUGS ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $Id: rfcomm_sppd.c,v 1.4 2003/09/07 18:15:55 max Exp $ - * $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c,v 1.8 2005/12/07 19:41:58 emax Exp $ + * $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c,v 1.9 2007/01/25 20:54:59 emax Exp $ */ #include @@ -72,16 +72,17 @@ struct sockaddr_rfcomm ra; bdaddr_t addr; int n, background, channel, service, - s, amaster, aslave, fd; + s, amaster, aslave, fd, doserver; fd_set rfd; char *tty = NULL, *ep = NULL, buf[SPPD_BUFFER_SIZE]; memcpy(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)); background = channel = 0; service = SDP_SERVICE_CLASS_SERIAL_PORT; + doserver = 0; /* Parse command line options */ - while ((n = getopt(argc, argv, "a:bc:t:h")) != -1) { + while ((n = getopt(argc, argv, "a:bc:t:hS")) != -1) { switch (n) { case 'a': /* BDADDR */ if (!bt_aton(optarg, &addr)) { @@ -134,6 +135,10 @@ tty = optarg; break; + case 'S': + doserver = 1; + break; + case 'h': default: usage(); @@ -142,7 +147,7 @@ } /* Check if we have everything we need */ - if (memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) == 0) + if (!doserver && memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) == 0) usage(); /* NOT REACHED */ @@ -165,17 +170,9 @@ if (sigaction(SIGCHLD, &sa, NULL) < 0) err(1, "Could not sigaction(SIGCHLD)"); - /* Check channel, if was not set then obtain it via SDP */ - if (channel == 0 && service != 0) - if (rfcomm_channel_lookup(NULL, &addr, - service, &channel, &n) != 0) - errc(1, n, "Could not obtain RFCOMM channel"); - if (channel <= 0 || channel > 30) - errx(1, "Invalid RFCOMM channel number %d", channel); - /* Open TTYs */ if (tty == NULL) { - if (background) + if (background || doserver) usage(); amaster = STDIN_FILENO; @@ -187,24 +184,95 @@ fd = amaster; } + /* Open RFCOMM connection */ + + if (doserver) { + struct sockaddr_rfcomm ma; + bdaddr_t bt_addr_any; + sdp_lan_profile_t lan; + void *ss; + uint32_t sdp_handle; + int acceptsock, aaddrlen; + + if (channel == 0) { + /* XXX: should check if selected channel is unused */ + channel = (getpid() % 30) + 1; + } + acceptsock = socket(PF_BLUETOOTH, SOCK_STREAM, + BLUETOOTH_PROTO_RFCOMM); + if (acceptsock < 0) + err(1, "Could not create socket"); + + memset(&ma, 0, sizeof(ma)); + ma.rfcomm_len = sizeof(ma); + ma.rfcomm_family = AF_BLUETOOTH; + ma.rfcomm_channel = channel; + + if (bind(acceptsock, (struct sockaddr *)&ma, sizeof(ma)) < 0) + err(1, "Could not bind socket -- channel %d in use?", + channel); + listen(acceptsock, 10); + + ss = sdp_open_local(NULL); + if (ss == NULL) + errx(1, "Unable to create local SDP session"); + if (sdp_error(ss) != 0) + errx(1, "Unable to open local SDP session. %s (%d)", + strerror(sdp_error(ss)), sdp_error(ss)); + memset(&lan, 0, sizeof(lan)); + lan.server_channel = channel; + + memcpy(&bt_addr_any, NG_HCI_BDADDR_ANY, sizeof(bt_addr_any)); + if (sdp_register_service(ss, service, &bt_addr_any, + (void *)&lan, sizeof(lan), &sdp_handle) != 0) { + errx(1, "Unable to register LAN service with " + "local SDP daemon. %s (%d)", + strerror(sdp_error(ss)), sdp_error(ss)); + } + + s = -1; + while (s < 0) { + aaddrlen = sizeof(ra); + s = accept(acceptsock, (struct sockaddr *)&ra, + &aaddrlen); + if (s < 0) + err(1, "Unable to accept()"); + if (memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) && + memcmp(&addr, &ra.rfcomm_bdaddr, sizeof(addr))) { + warnx("Connect from wrong client"); + close(s); + s = -1; + } + } + sdp_unregister_service(ss, sdp_handle); + sdp_close(ss); + close(acceptsock); + } else { + /* Check channel, if was not set then obtain it via SDP */ + if (channel == 0 && service != 0) + if (rfcomm_channel_lookup(NULL, &addr, + service, &channel, &n) != 0) + errc(1, n, "Could not obtain RFCOMM channel"); + if (channel <= 0 || channel > 30) + errx(1, "Invalid RFCOMM channel number %d", channel); - /* Open RFCOMM connection */ - memset(&ra, 0, sizeof(ra)); - ra.rfcomm_len = sizeof(ra); - ra.rfcomm_family = AF_BLUETOOTH; + s = socket(PF_BLUETOOTH, SOCK_STREAM, BLUETOOTH_PROTO_RFCOMM); + if (s < 0) + err(1, "Could not create socket"); - s = socket(PF_BLUETOOTH, SOCK_STREAM, BLUETOOTH_PROTO_RFCOMM); - if (s < 0) - err(1, "Could not create socket"); + memset(&ra, 0, sizeof(ra)); + ra.rfcomm_len = sizeof(ra); + ra.rfcomm_family = AF_BLUETOOTH; - if (bind(s, (struct sockaddr *) &ra, sizeof(ra)) < 0) - err(1, "Could not bind socket"); + if (bind(s, (struct sockaddr *) &ra, sizeof(ra)) < 0) + err(1, "Could not bind socket"); - memcpy(&ra.rfcomm_bdaddr, &addr, sizeof(ra.rfcomm_bdaddr)); - ra.rfcomm_channel = channel; + memcpy(&ra.rfcomm_bdaddr, &addr, sizeof(ra.rfcomm_bdaddr)); + ra.rfcomm_channel = channel; - if (connect(s, (struct sockaddr *) &ra, sizeof(ra)) < 0) - err(1, "Could not connect socket"); + if (connect(s, (struct sockaddr *) &ra, sizeof(ra)) < 0) + err(1, "Could not connect socket"); + } /* Became daemon if required */ if (background) { @@ -346,7 +414,7 @@ ttygid = -1; (void) chown(tty, getuid(), ttygid); - (void) chmod(tty, S_IRUSR|S_IWUSR|S_IWGRP); + (void) chmod(tty, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP); (void) revoke(tty); if ((*aslave = open(tty, O_RDWR, 0)) < 0) { @@ -433,12 +501,12 @@ fprintf(stdout, "Usage: %s options\n" \ "Where options are:\n" \ -"\t-a address Address to connect to (required)\n" \ +"\t-a address Peer address (required in client mode)\n" \ "\t-b Run in background\n" \ -"\t-c channel RFCOMM channel to connect to\n" \ -"\t-t tty TTY name (required in background mode)\n" \ +"\t-c channel RFCOMM channel to connect to or listen on\n" \ +"\t-t tty TTY name (required in background or server mode)\n" \ +"\t-S Server mode\n" \ "\t-h Display this message\n", SPPD_IDENT); - exit(255); } /* usage */ ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/calendar/calendars/calendar.music#3 (text+ko) ==== @@ -1,7 +1,7 @@ /* * Music * - * $FreeBSD: src/usr.bin/calendar/calendars/calendar.music,v 1.18 2006/12/29 06:39:35 ru Exp $ + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.music,v 1.19 2007/01/24 21:21:38 dougb Exp $ */ #ifndef _calendar_music_ @@ -21,7 +21,7 @@ 01/17 Led Zeppelin's first album is released, 1969 01/19 Janis Joplin is born in Port Arthur, Texas, 1943 01/22 Sam Cooke is born in Chicago, 1935 -01/24 Warren Zevon is born, 1947 +01/24 Warren Zevon is born in Chicago, 1947 01/25 Bob Dylan plays the second "Hurricane" benefit, in the Astrodome, 1978 01/27 Bobby "Blue" Bland (Robert Calvin Bland) is born in Tennessee, 1930 01/27 Wolfgang Amadeus Mozart is born in Salzburg, Austria, 1756 @@ -157,6 +157,7 @@ 08/26 Jimi Hendrix's Electric Ladyland Studios opens in New York, 1970 09/04 Edvard Grieg dies in Bergen, Norway, 1907 09/07 Keith Moon (The Who) dies in London of a drug overdose, 1978 +09/07 Warren Zevon dies in Los Angeles of lung cancer (mesothelioma), 2003 09/08 Antonin Dvorak born in Nelahozeves, Bohemia, 1841 09/08 Richard Strauss dies in Garmisch-Partenkirchen, Germany, 1949 09/08 Ron "Pigpen" McKernan (Grateful Dead) is born in San Bruno, California, 1945 ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/objformat/Makefile#2 (text+ko) ==== @@ -1,5 +1,7 @@ -# $FreeBSD: src/usr.bin/objformat/Makefile,v 1.18 2002/09/17 01:49:00 peter Exp $ +# $FreeBSD: src/usr.bin/objformat/Makefile,v 1.20 2007/01/25 23:12:19 peter Exp $ -PROG= objformat +SCRIPTS=objformat.sh +NO_MAN= .include + ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/Makefile#8 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)Makefile 5.20 (Berkeley) 6/12/93 -# $FreeBSD: src/usr.sbin/Makefile,v 1.366 2006/11/27 16:55:14 ru Exp $ +# $FreeBSD: src/usr.sbin/Makefile,v 1.367 2007/01/28 08:53:48 phk Exp $ .include @@ -179,7 +179,6 @@ ${_usbdevs} \ vidcontrol \ vipw \ - vnconfig \ watch \ watchdogd \ wicontrol \ ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/gstat/Makefile#2 (text+ko) ==== @@ -1,9 +1,9 @@ -# $FreeBSD: src/usr.sbin/gstat/Makefile,v 1.7 2006/05/20 19:17:47 simon Exp $ +# $FreeBSD: src/usr.sbin/gstat/Makefile,v 1.8 2007/01/30 15:10:37 ru Exp $ PROG= gstat MAN= gstat.8 WARNS?= 5 -DPADD= ${LIBGEOM} ${LIBDEVSTAT} ${LIBBSDXML} ${LIBCURSES} ${LIBEDIT} -LDADD= -lgeom -ldevstat -lbsdxml -lcurses -ledit +DPADD= ${LIBDEVSTAT} ${LIBKVM} ${LIBGEOM} ${LIBBSDXML} ${LIBSBUF} ${LIBEDIT} ${LIBCURSES} +LDADD= -ldevstat -lkvm -lgeom -lbsdxml -lsbuf -ledit -lcurses .include ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/mountd/mountd.c#7 (text+ko) ==== @@ -43,7 +43,7 @@ #endif #include -__FBSDID("$FreeBSD: src/usr.sbin/mountd/mountd.c,v 1.91 2006/11/18 22:43:20 rodrigc Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/mountd/mountd.c,v 1.92 2007/01/26 13:26:43 rodrigc Exp $"); #include #include @@ -1962,7 +1962,8 @@ if (cp == dirp) { if (debug) warnx("mnt unsucc"); - syslog(LOG_ERR, "can't export %s", dirp); + syslog(LOG_ERR, "can't export %s %s", dirp, + errmsg); ret = 1; goto error_exit; } @@ -1972,7 +1973,8 @@ if (statfs(dirp, &fsb1) != 0 || bcmp(&fsb1.f_fsid, &fsb->f_fsid, sizeof(fsb1.f_fsid)) != 0) { *cp = savedc; - syslog(LOG_ERR, "can't export %s", dirp); + syslog(LOG_ERR, "can't export %s %s", dirp, + errmsg); ret = 1; goto error_exit; } ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/pkg_install/sign/main.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/sign/main.c,v 1.2 2002/04/01 09:39:07 obrien Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/sign/main.c,v 1.3 2007/01/30 15:09:30 ru Exp $"); #include #include @@ -106,9 +106,9 @@ int i; int type = TAG_ANY; -/* #ifndef BSD4_4 */ +#ifndef BSD4_4 set_program_name(argv[0]); -/* #endif */ +#endif #ifdef CHECKER_ONLY mode = CHECK; #else ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/pkg_install/sign/stand.c#2 (text+ko) ==== @@ -1,9 +1,9 @@ #include -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/sign/stand.c,v 1.2 2002/04/01 09:39:07 obrien Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/sign/stand.c,v 1.3 2007/01/30 15:09:30 ru Exp $"); #include "stand.h" -#ifdef BSD4_4 +#ifndef BSD4_4 #include #include #include ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/quotaon/quotaon.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/usr.sbin/quotaon/quotaon.c,v 1.10 2004/08/07 04:28:54 imp Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/quotaon/quotaon.c,v 1.11 2007/01/24 22:52:32 mpp Exp $"); /* * Turn quota on/off for a filesystem. @@ -177,8 +177,8 @@ return (1); } if (vflag) - printf("%s: %s quotas turned on\n", fs->fs_file, - qfextension[type]); + printf("%s: %s quotas turned on with data file %s\n", + fs->fs_file, qfextension[type], qfpathname); return (0); } ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/sysinstall/index.c#4 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/usr.sbin/sysinstall/index.c,v 1.111 2006/12/19 16:46:44 erwin Exp $ + * $FreeBSD: src/usr.sbin/sysinstall/index.c,v 1.112 2007/01/31 19:13:08 erwin Exp $ */ #include @@ -103,6 +103,7 @@ "german", "Ported software for Germanic countries.", "geography", "Geography-related software.", "gnome", "Components of the Gnome Desktop environment.", + "gnustep", "Software for GNUstep desktop environment.", "graphics", "Graphics libraries and utilities.", "haskell", "Software related to the Haskell language.", "hamradio", "Software for amateur radio.", @@ -133,6 +134,7 @@ "perl5", "Utilities/modules for the PERL5 language.", "plan9", "Software from the Plan9 operating system.", "polish", "Ported software for the Polish market.", + "ports-mgmt", "Utilities for managing ports and packages.", "portuguese", "Ported software for the Portuguese market.", "print", "Utilities for dealing with printing.", "python", "Software related to the Python language.", From owner-p4-projects@FreeBSD.ORG Thu Feb 1 09:15:55 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 574E116A403; Thu, 1 Feb 2007 09:15:55 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 302DC16A401 for ; Thu, 1 Feb 2007 09:15:55 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 1EBA813C461 for ; Thu, 1 Feb 2007 09:15:55 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l119FtKD044493 for ; Thu, 1 Feb 2007 09:15:55 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l119FsM3044489 for perforce@freebsd.org; Thu, 1 Feb 2007 09:15:54 GMT (envelope-from rdivacky@FreeBSD.org) Date: Thu, 1 Feb 2007 09:15:54 GMT Message-Id: <200702010915.l119FsM3044489@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113819 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 09:15:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=113819 Change 113819 by rdivacky@rdivacky_witten on 2007/02/01 09:15:53 Reparent all procs that are part of a threading group but not its leaders to init and SIGCHLD init to finish the zombies off. This fixes zombies left after opera's exit. Noticed by: Scott Robbins Affected files ... .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#29 edit Differences ... ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#29 (text+ko) ==== @@ -165,6 +165,17 @@ KASSERT(em != NULL, ("proc_exit: emuldata not found.\n")); + /* reparent all procs that are not a thread leader to initproc */ + if (em->shared->group_pid != p->p_pid) { + sx_xlock(&proctree_lock); + wakeup(initproc); + PROC_LOCK(p); + proc_reparent(p, initproc); + p->p_sigparent = SIGCHLD; + PROC_UNLOCK(p); + sx_xunlock(&proctree_lock); + } + child_clear_tid = em->child_clear_tid; EMUL_UNLOCK(&emul_lock); From owner-p4-projects@FreeBSD.ORG Thu Feb 1 09:30:16 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1270916A575; Thu, 1 Feb 2007 09:30:16 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B0C7A16A573 for ; Thu, 1 Feb 2007 09:30:15 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 820E913C478 for ; Thu, 1 Feb 2007 09:30:15 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l119UDED046334 for ; Thu, 1 Feb 2007 09:30:13 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l119UCpk046331 for perforce@freebsd.org; Thu, 1 Feb 2007 09:30:12 GMT (envelope-from rdivacky@FreeBSD.org) Date: Thu, 1 Feb 2007 09:30:12 GMT Message-Id: <200702010930.l119UCpk046331@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113820 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 09:30:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=113820 Change 113820 by rdivacky@rdivacky_witten on 2007/02/01 09:29:25 IFC Affected files ... .. //depot/projects/linuxolator/src/sys/dev/mxge/if_mxge.c#6 integrate .. //depot/projects/linuxolator/src/sys/dev/mxge/if_mxge_var.h#5 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/driver.c#3 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/pcm/dsp.h#3 integrate .. //depot/projects/linuxolator/src/sys/modules/msdosfs/Makefile#3 integrate .. //depot/projects/linuxolator/src/sys/netinet/in.h#3 integrate .. //depot/projects/linuxolator/src/sys/nfsclient/nfs_vnops.c#7 integrate .. //depot/projects/linuxolator/src/sys/ufs/ufs/ufs_quota.c#6 integrate .. //depot/projects/linuxolator/src/sys/ufs/ufs/ufs_vfsops.c#2 integrate Differences ... ==== //depot/projects/linuxolator/src/sys/dev/mxge/if_mxge.c#6 (text+ko) ==== @@ -32,7 +32,7 @@ ***************************************************************************/ #include -__FBSDID("$FreeBSD: src/sys/dev/mxge/if_mxge.c,v 1.17 2007/01/30 08:39:44 gallatin Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mxge/if_mxge.c,v 1.20 2007/01/31 19:53:36 gallatin Exp $"); #include #include @@ -90,6 +90,7 @@ static int mxge_deassert_wait = 1; static int mxge_flow_control = 1; static int mxge_verbose = 0; +static int mxge_ticks; static char *mxge_fw_unaligned = "mxge_ethp_z8e"; static char *mxge_fw_aligned = "mxge_eth_z8e"; @@ -648,7 +649,7 @@ buf->response_addr.low = htobe32(dma_low); buf->response_addr.high = htobe32(dma_high); - mtx_lock(&sc->cmd_lock); + mtx_lock(&sc->cmd_mtx); response->result = 0xffffffff; mb(); mxge_pio_copy((volatile void *)cmd_addr, buf, sizeof (*buf)); @@ -661,20 +662,20 @@ if (response->result != 0xffffffff) { if (response->result == 0) { data->data0 = be32toh(response->data); - mtx_unlock(&sc->cmd_lock); + mtx_unlock(&sc->cmd_mtx); return 0; } else { device_printf(sc->dev, "mxge: command %d " "failed, result = %d\n", cmd, be32toh(response->result)); - mtx_unlock(&sc->cmd_lock); + mtx_unlock(&sc->cmd_mtx); return ENXIO; } } DELAY(1000); } - mtx_unlock(&sc->cmd_lock); + mtx_unlock(&sc->cmd_mtx); device_printf(sc->dev, "mxge: command %d timed out" "result = %d\n", cmd, be32toh(response->result)); @@ -927,7 +928,6 @@ { mxge_cmd_t cmd; - mxge_dma_t dmabench_dma; size_t bytes; int status; @@ -975,13 +975,10 @@ /* run a DMA benchmark */ sc->read_dma = sc->write_dma = sc->read_write_dma = 0; - status = mxge_dma_alloc(sc, &dmabench_dma, 4096, 4096); - if (status) - goto dmabench_fail; /* Read DMA */ - cmd.data0 = MXGE_LOWPART_TO_U32(dmabench_dma.bus_addr); - cmd.data1 = MXGE_HIGHPART_TO_U32(dmabench_dma.bus_addr); + cmd.data0 = MXGE_LOWPART_TO_U32(sc->dmabench_dma.bus_addr); + cmd.data1 = MXGE_HIGHPART_TO_U32(sc->dmabench_dma.bus_addr); cmd.data2 = sc->tx.boundary * 0x10000; status = mxge_send_cmd(sc, MXGEFW_DMA_TEST, &cmd); @@ -992,8 +989,8 @@ (cmd.data0 & 0xffff); /* Write DMA */ - cmd.data0 = MXGE_LOWPART_TO_U32(dmabench_dma.bus_addr); - cmd.data1 = MXGE_HIGHPART_TO_U32(dmabench_dma.bus_addr); + cmd.data0 = MXGE_LOWPART_TO_U32(sc->dmabench_dma.bus_addr); + cmd.data1 = MXGE_HIGHPART_TO_U32(sc->dmabench_dma.bus_addr); cmd.data2 = sc->tx.boundary * 0x1; status = mxge_send_cmd(sc, MXGEFW_DMA_TEST, &cmd); if (status != 0) @@ -1002,8 +999,8 @@ sc->write_dma = ((cmd.data0>>16) * sc->tx.boundary * 2) / (cmd.data0 & 0xffff); /* Read/Write DMA */ - cmd.data0 = MXGE_LOWPART_TO_U32(dmabench_dma.bus_addr); - cmd.data1 = MXGE_HIGHPART_TO_U32(dmabench_dma.bus_addr); + cmd.data0 = MXGE_LOWPART_TO_U32(sc->dmabench_dma.bus_addr); + cmd.data1 = MXGE_HIGHPART_TO_U32(sc->dmabench_dma.bus_addr); cmd.data2 = sc->tx.boundary * 0x10001; status = mxge_send_cmd(sc, MXGEFW_DMA_TEST, &cmd); if (status != 0) @@ -1013,9 +1010,6 @@ ((cmd.data0>>16) * sc->tx.boundary * 2 * 2) / (cmd.data0 & 0xffff); - mxge_dma_free(&dmabench_dma); - -dmabench_fail: /* reset mcp/driver shared state back to 0 */ bzero(sc->rx_done.entry, bytes); sc->rx_done.idx = 0; @@ -1028,6 +1022,8 @@ sc->rx_big.cnt = 0; sc->rx_small.cnt = 0; sc->rdma_tags_available = 15; + sc->fw_stats->valid = 0; + sc->fw_stats->send_done_count = 0; status = mxge_update_mac_address(sc); mxge_change_promisc(sc, 0); mxge_change_pause(sc, sc->pause); @@ -1054,11 +1050,11 @@ if (intr_coal_delay == 0 || intr_coal_delay > 1000*1000) return EINVAL; - sx_xlock(&sc->driver_lock); + mtx_lock(&sc->driver_mtx); *sc->intr_coal_delay_ptr = htobe32(intr_coal_delay); sc->intr_coal_delay = intr_coal_delay; - sx_xunlock(&sc->driver_lock); + mtx_unlock(&sc->driver_mtx); return err; } @@ -1078,9 +1074,9 @@ if (enabled == sc->pause) return 0; - sx_xlock(&sc->driver_lock); + mtx_lock(&sc->driver_mtx); err = mxge_change_pause(sc, enabled); - sx_xunlock(&sc->driver_lock); + mtx_unlock(&sc->driver_mtx); return err; } @@ -1698,9 +1694,9 @@ mxge_softc_t *sc = ifp->if_softc; - mtx_lock(&sc->tx_lock); + mtx_lock(&sc->tx_mtx); mxge_start_locked(sc); - mtx_unlock(&sc->tx_lock); + mtx_unlock(&sc->tx_mtx); } /* @@ -2032,11 +2028,11 @@ if (ifp->if_drv_flags & IFF_DRV_OACTIVE && tx->req - tx->done < (tx->mask + 1)/4) { - mtx_lock(&sc->tx_lock); + mtx_lock(&sc->tx_mtx); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; sc->tx.wake++; mxge_start_locked(sc); - mtx_unlock(&sc->tx_lock); + mtx_unlock(&sc->tx_mtx); } } @@ -2109,12 +2105,6 @@ } static void -mxge_watchdog(struct ifnet *ifp) -{ - printf("%s called\n", __FUNCTION__); -} - -static void mxge_init(void *arg) { } @@ -2145,6 +2135,7 @@ } for (i = 0; i <= sc->tx.mask; i++) { + sc->tx.info[i].flag = 0; if (sc->tx.info[i].m == NULL) continue; bus_dmamap_unload(sc->tx.dmat, @@ -2168,41 +2159,39 @@ if (sc->rx_big.shadow != NULL) free(sc->rx_big.shadow, M_DEVBUF); if (sc->tx.info != NULL) { - for (i = 0; i <= sc->tx.mask; i++) { - if (sc->tx.info[i].map != NULL) + if (sc->tx.dmat != NULL) { + for (i = 0; i <= sc->tx.mask; i++) { bus_dmamap_destroy(sc->tx.dmat, sc->tx.info[i].map); + } + bus_dma_tag_destroy(sc->tx.dmat); } free(sc->tx.info, M_DEVBUF); } if (sc->rx_small.info != NULL) { - for (i = 0; i <= sc->rx_small.mask; i++) { - if (sc->rx_small.info[i].map != NULL) + if (sc->rx_small.dmat != NULL) { + for (i = 0; i <= sc->rx_small.mask; i++) { bus_dmamap_destroy(sc->rx_small.dmat, sc->rx_small.info[i].map); + } + bus_dmamap_destroy(sc->rx_small.dmat, + sc->rx_small.extra_map); + bus_dma_tag_destroy(sc->rx_small.dmat); } free(sc->rx_small.info, M_DEVBUF); } if (sc->rx_big.info != NULL) { - for (i = 0; i <= sc->rx_big.mask; i++) { - if (sc->rx_big.info[i].map != NULL) + if (sc->rx_big.dmat != NULL) { + for (i = 0; i <= sc->rx_big.mask; i++) { bus_dmamap_destroy(sc->rx_big.dmat, sc->rx_big.info[i].map); + } + bus_dmamap_destroy(sc->rx_big.dmat, + sc->rx_big.extra_map); + bus_dma_tag_destroy(sc->rx_big.dmat); } free(sc->rx_big.info, M_DEVBUF); } - if (sc->rx_big.extra_map != NULL) - bus_dmamap_destroy(sc->rx_big.dmat, - sc->rx_big.extra_map); - if (sc->rx_small.extra_map != NULL) - bus_dmamap_destroy(sc->rx_small.dmat, - sc->rx_small.extra_map); - if (sc->tx.dmat != NULL) - bus_dma_tag_destroy(sc->tx.dmat); - if (sc->rx_small.dmat != NULL) - bus_dma_tag_destroy(sc->rx_small.dmat); - if (sc->rx_big.dmat != NULL) - bus_dma_tag_destroy(sc->rx_big.dmat); } static int @@ -2406,6 +2395,8 @@ device_printf(sc->dev, "failed to reset\n"); return EIO; } + bzero(sc->rx_done.entry, + mxge_max_intr_slots * sizeof(*sc->rx_done.entry)); if (MCLBYTES >= sc->ifp->if_mtu + ETHER_HDR_LEN + MXGEFW_PAD) @@ -2413,18 +2404,6 @@ else sc->big_bytes = MJUMPAGESIZE; - err = mxge_alloc_rings(sc); - if (err != 0) { - device_printf(sc->dev, "failed to allocate rings\n"); - return err; - } - - err = bus_setup_intr(sc->dev, sc->irq_res, - INTR_TYPE_NET | INTR_MPSAFE, - mxge_intr, sc, &sc->ih); - if (err != 0) { - goto abort_with_rings; - } /* get the lanai pointers to the send and receive rings */ @@ -2442,8 +2421,7 @@ if (err != 0) { device_printf(sc->dev, "failed to get ring sizes or locations\n"); - err = EIO; - goto abort_with_irq; + return EIO; } if (sc->wc) { @@ -2532,10 +2510,7 @@ abort: mxge_free_mbufs(sc); -abort_with_irq: - bus_teardown_intr(sc->dev, sc->irq_res, sc->ih); -abort_with_rings: - mxge_free_rings(sc); + return err; } @@ -2554,19 +2529,161 @@ } if (old_down_cnt == sc->down_cnt) { /* wait for down irq */ - (void)tsleep(&sc->down_cnt, PWAIT, "down mxge", hz); + DELAY(10 * sc->intr_coal_delay); } if (old_down_cnt == sc->down_cnt) { device_printf(sc->dev, "never got down irq\n"); } - if (sc->ih != NULL) - bus_teardown_intr(sc->dev, sc->irq_res, sc->ih); + mxge_free_mbufs(sc); - mxge_free_rings(sc); + return 0; } +static void +mxge_setup_cfg_space(mxge_softc_t *sc) +{ + device_t dev = sc->dev; + int reg; + uint16_t cmd, lnk, pectl; + + /* find the PCIe link width and set max read request to 4KB*/ + if (pci_find_extcap(dev, PCIY_EXPRESS, ®) == 0) { + lnk = pci_read_config(dev, reg + 0x12, 2); + sc->link_width = (lnk >> 4) & 0x3f; + + pectl = pci_read_config(dev, reg + 0x8, 2); + pectl = (pectl & ~0x7000) | (5 << 12); + pci_write_config(dev, reg + 0x8, pectl, 2); + } + + /* Enable DMA and Memory space access */ + pci_enable_busmaster(dev); + cmd = pci_read_config(dev, PCIR_COMMAND, 2); + cmd |= PCIM_CMD_MEMEN; + pci_write_config(dev, PCIR_COMMAND, cmd, 2); +} + +static uint32_t +mxge_read_reboot(mxge_softc_t *sc) +{ + device_t dev = sc->dev; + uint32_t vs; + + /* find the vendor specific offset */ + if (pci_find_extcap(dev, PCIY_VENDOR, &vs) != 0) { + device_printf(sc->dev, + "could not find vendor specific offset\n"); + return (uint32_t)-1; + } + /* enable read32 mode */ + pci_write_config(dev, vs + 0x10, 0x3, 1); + /* tell NIC which register to read */ + pci_write_config(dev, vs + 0x18, 0xfffffff0, 4); + return (pci_read_config(dev, vs + 0x14, 4)); +} + +static void +mxge_watchdog_reset(mxge_softc_t *sc) +{ + int err; + uint32_t reboot; + uint16_t cmd; + + err = ENXIO; + + device_printf(sc->dev, "Watchdog reset!\n"); + /* + * check to see if the NIC rebooted. If it did, then all of + * PCI config space has been reset, and things like the + * busmaster bit will be zero. If this is the case, then we + * must restore PCI config space before the NIC can be used + * again + */ + cmd = pci_read_config(sc->dev, PCIR_COMMAND, 2); + if (cmd == 0xffff) { + /* + * maybe the watchdog caught the NIC rebooting; wait + * up to 100ms for it to finish. If it does not come + * back, then give up + */ + DELAY(1000*100); + cmd = pci_read_config(sc->dev, PCIR_COMMAND, 2); + if (cmd == 0xffff) { + device_printf(sc->dev, "NIC disappeared!\n"); + goto abort; + } + } + if ((cmd & PCIM_CMD_BUSMASTEREN) == 0) { + /* print the reboot status */ + reboot = mxge_read_reboot(sc); + device_printf(sc->dev, "NIC rebooted, status = 0x%x\n", + reboot); + /* restore PCI configuration space */ + + /* XXXX waiting for pci_cfg_restore() to be exported */ + goto abort; /* just abort for now */ + + /* and redo any changes we made to our config space */ + mxge_setup_cfg_space(sc); + } else { + device_printf(sc->dev, "NIC did not reboot, ring state:\n"); + device_printf(sc->dev, "tx.req=%d tx.done=%d\n", + sc->tx.req, sc->tx.done); + device_printf(sc->dev, "pkt_done=%d fw=%d\n", + sc->tx.pkt_done, + be32toh(sc->fw_stats->send_done_count)); + } + + if (sc->ifp->if_drv_flags & IFF_DRV_RUNNING) { + mxge_close(sc); + err = mxge_open(sc); + } + +abort: + /* + * stop the watchdog if the nic is dead, to avoid spamming the + * console + */ + if (err != 0) { + callout_stop(&sc->co_hdl); + } +} + +static void +mxge_watchdog(mxge_softc_t *sc) +{ + mxge_tx_buf_t *tx = &sc->tx; + + /* see if we have outstanding transmits, which + have been pending for more than mxge_ticks */ + if (tx->req != tx->done && + tx->watchdog_req != tx->watchdog_done && + tx->done == tx->watchdog_done) + mxge_watchdog_reset(sc); + + tx->watchdog_req = tx->req; + tx->watchdog_done = tx->done; +} + +static void +mxge_tick(void *arg) +{ + mxge_softc_t *sc = arg; + + + /* Synchronize with possible callout reset/stop. */ + if (callout_pending(&sc->co_hdl) || + !callout_active(&sc->co_hdl)) { + mtx_unlock(&sc->driver_mtx); + return; + } + + callout_reset(&sc->co_hdl, mxge_ticks, mxge_tick, sc); + mxge_watchdog(sc); +} + static int mxge_media_change(struct ifnet *ifp) { @@ -2585,10 +2702,11 @@ if ((real_mtu > MXGE_MAX_ETHER_MTU) || real_mtu < 60) return EINVAL; - sx_xlock(&sc->driver_lock); + mtx_lock(&sc->driver_mtx); old_mtu = ifp->if_mtu; ifp->if_mtu = mtu; if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + callout_stop(&sc->co_hdl); mxge_close(sc); err = mxge_open(sc); if (err != 0) { @@ -2596,8 +2714,9 @@ mxge_close(sc); (void) mxge_open(sc); } + callout_reset(&sc->co_hdl, mxge_ticks, mxge_tick, sc); } - sx_xunlock(&sc->driver_lock); + mtx_unlock(&sc->driver_mtx); return err; } @@ -2634,11 +2753,13 @@ break; case SIOCSIFFLAGS: - sx_xlock(&sc->driver_lock); + mtx_lock(&sc->driver_mtx); if (ifp->if_flags & IFF_UP) { - if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) + if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { err = mxge_open(sc); - else { + callout_reset(&sc->co_hdl, mxge_ticks, + mxge_tick, sc); + } else { /* take care of promis can allmulti flag chages */ mxge_change_promisc(sc, @@ -2646,21 +2767,23 @@ mxge_set_multicast_list(sc); } } else { - if (ifp->if_drv_flags & IFF_DRV_RUNNING) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { mxge_close(sc); + callout_stop(&sc->co_hdl); + } } - sx_xunlock(&sc->driver_lock); + mtx_unlock(&sc->driver_mtx); break; case SIOCADDMULTI: case SIOCDELMULTI: - sx_xlock(&sc->driver_lock); + mtx_lock(&sc->driver_mtx); mxge_set_multicast_list(sc); - sx_xunlock(&sc->driver_lock); + mtx_unlock(&sc->driver_mtx); break; case SIOCSIFCAP: - sx_xlock(&sc->driver_lock); + mtx_lock(&sc->driver_mtx); mask = ifr->ifr_reqcap ^ ifp->if_capenable; if (mask & IFCAP_TXCSUM) { if (IFCAP_TXCSUM & ifp->if_capenable) { @@ -2693,7 +2816,7 @@ err = EINVAL; } } - sx_xunlock(&sc->driver_lock); + mtx_unlock(&sc->driver_mtx); break; case SIOCGIFMEDIA: @@ -2723,11 +2846,14 @@ &mxge_deassert_wait); TUNABLE_INT_FETCH("hw.mxge.verbose", &mxge_verbose); + TUNABLE_INT_FETCH("hw.mxge.ticks", &mxge_ticks); if (bootverbose) mxge_verbose = 1; if (mxge_intr_coal_delay < 0 || mxge_intr_coal_delay > 10*1000) mxge_intr_coal_delay = 30; + if (mxge_ticks == 0) + mxge_ticks = hz; sc->pause = mxge_flow_control; } @@ -2737,8 +2863,7 @@ mxge_softc_t *sc = device_get_softc(dev); struct ifnet *ifp; size_t bytes; - int count, rid, err, reg; - uint16_t cmd, pectl, lnk; + int count, rid, err; sc->dev = dev; mxge_fetch_tunables(sc); @@ -2768,28 +2893,21 @@ err = ENOSPC; goto abort_with_parent_dmat; } - mtx_init(&sc->cmd_lock, NULL, - MTX_NETWORK_LOCK, MTX_DEF); - mtx_init(&sc->tx_lock, device_get_nameunit(dev), + snprintf(sc->cmd_mtx_name, sizeof(sc->cmd_mtx_name), "%s:cmd", + device_get_nameunit(dev)); + mtx_init(&sc->cmd_mtx, sc->cmd_mtx_name, NULL, MTX_DEF); + snprintf(sc->tx_mtx_name, sizeof(sc->tx_mtx_name), "%s:tx", + device_get_nameunit(dev)); + mtx_init(&sc->tx_mtx, sc->tx_mtx_name, NULL, MTX_DEF); + snprintf(sc->driver_mtx_name, sizeof(sc->driver_mtx_name), + "%s:drv", device_get_nameunit(dev)); + mtx_init(&sc->driver_mtx, sc->driver_mtx_name, MTX_NETWORK_LOCK, MTX_DEF); - sx_init(&sc->driver_lock, device_get_nameunit(dev)); - /* find the PCIe link width and set max read request to 4KB*/ - if (pci_find_extcap(dev, PCIY_EXPRESS, ®) == 0) { - lnk = pci_read_config(dev, reg + 0x12, 2); - sc->link_width = (lnk >> 4) & 0x3f; - - pectl = pci_read_config(dev, reg + 0x8, 2); - pectl = (pectl & ~0x7000) | (5 << 12); - pci_write_config(dev, reg + 0x8, pectl, 2); - } + callout_init_mtx(&sc->co_hdl, &sc->driver_mtx, 0); - /* Enable DMA and Memory space access */ - pci_enable_busmaster(dev); - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - cmd |= PCIM_CMD_MEMEN; - pci_write_config(dev, PCIR_COMMAND, cmd, 2); - + mxge_setup_cfg_space(sc); + /* Map the board into the kernel */ rid = PCIR_BARS; sc->mem_res = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, 0, @@ -2839,12 +2957,15 @@ goto abort_with_zeropad_dma; sc->fw_stats = (mcp_irq_data_t *)sc->fw_stats_dma.addr; + err = mxge_dma_alloc(sc, &sc->dmabench_dma, 4096, 4096); + if (err != 0) + goto abort_with_fw_stats; /* allocate interrupt queues */ bytes = mxge_max_intr_slots * sizeof (*sc->rx_done.entry); err = mxge_dma_alloc(sc, &sc->rx_done.dma, bytes, 4096); if (err != 0) - goto abort_with_fw_stats; + goto abort_with_dmabench; sc->rx_done.entry = sc->rx_done.dma.addr; bzero(sc->rx_done.entry, bytes); @@ -2877,6 +2998,18 @@ if (err != 0) goto abort_with_irq_res; + err = mxge_alloc_rings(sc); + if (err != 0) { + device_printf(sc->dev, "failed to allocate rings\n"); + goto abort_with_irq_res; + } + + err = bus_setup_intr(sc->dev, sc->irq_res, + INTR_TYPE_NET | INTR_MPSAFE, + mxge_intr, sc, &sc->ih); + if (err != 0) { + goto abort_with_rings; + } /* hook into the network stack */ if_initname(ifp, device_get_name(dev), device_get_unit(dev)); ifp->if_baudrate = 100000000; @@ -2890,7 +3023,6 @@ ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = mxge_ioctl; ifp->if_start = mxge_start; - ifp->if_watchdog = mxge_watchdog; ether_ifattach(ifp, sc->mac_addr); /* ether_ifattach sets mtu to 1500 */ ifp->if_mtu = MXGE_MAX_ETHER_MTU - ETHER_HDR_LEN; @@ -2902,6 +3034,8 @@ mxge_add_sysctls(sc); return 0; +abort_with_rings: + mxge_free_rings(sc); abort_with_irq_res: bus_release_resource(dev, SYS_RES_IRQ, sc->msi_enabled ? 1 : 0, sc->irq_res); @@ -2910,6 +3044,8 @@ abort_with_rx_done: sc->rx_done.entry = NULL; mxge_dma_free(&sc->rx_done.dma); +abort_with_dmabench: + mxge_dma_free(&sc->dmabench_dma); abort_with_fw_stats: mxge_dma_free(&sc->fw_stats_dma); abort_with_zeropad_dma: @@ -2920,9 +3056,9 @@ bus_release_resource(dev, SYS_RES_MEMORY, PCIR_BARS, sc->mem_res); abort_with_lock: pci_disable_busmaster(dev); - mtx_destroy(&sc->cmd_lock); - mtx_destroy(&sc->tx_lock); - sx_destroy(&sc->driver_lock); + mtx_destroy(&sc->cmd_mtx); + mtx_destroy(&sc->tx_mtx); + mtx_destroy(&sc->driver_mtx); if_free(ifp); abort_with_parent_dmat: bus_dma_tag_destroy(sc->parent_dmat); @@ -2936,12 +3072,16 @@ { mxge_softc_t *sc = device_get_softc(dev); - sx_xlock(&sc->driver_lock); + mtx_lock(&sc->driver_mtx); if (sc->ifp->if_drv_flags & IFF_DRV_RUNNING) mxge_close(sc); - sx_xunlock(&sc->driver_lock); + callout_stop(&sc->co_hdl); + mtx_unlock(&sc->driver_mtx); ether_ifdetach(sc->ifp); + ifmedia_removeall(&sc->media); mxge_dummy_rdma(sc, 0); + bus_teardown_intr(sc->dev, sc->irq_res, sc->ih); + mxge_free_rings(sc); bus_release_resource(dev, SYS_RES_IRQ, sc->msi_enabled ? 1 : 0, sc->irq_res); if (sc->msi_enabled) @@ -2950,13 +3090,14 @@ sc->rx_done.entry = NULL; mxge_dma_free(&sc->rx_done.dma); mxge_dma_free(&sc->fw_stats_dma); + mxge_dma_free(&sc->dmabench_dma); mxge_dma_free(&sc->zeropad_dma); mxge_dma_free(&sc->cmd_dma); bus_release_resource(dev, SYS_RES_MEMORY, PCIR_BARS, sc->mem_res); pci_disable_busmaster(dev); - mtx_destroy(&sc->cmd_lock); - mtx_destroy(&sc->tx_lock); - sx_destroy(&sc->driver_lock); + mtx_destroy(&sc->cmd_mtx); + mtx_destroy(&sc->tx_mtx); + mtx_destroy(&sc->driver_mtx); if_free(sc->ifp); bus_dma_tag_destroy(sc->parent_dmat); return 0; ==== //depot/projects/linuxolator/src/sys/dev/mxge/if_mxge_var.h#5 (text+ko) ==== @@ -29,7 +29,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -$FreeBSD: src/sys/dev/mxge/if_mxge_var.h,v 1.7 2007/01/30 08:39:44 gallatin Exp $ +$FreeBSD: src/sys/dev/mxge/if_mxge_var.h,v 1.9 2007/01/31 19:53:36 gallatin Exp $ ***************************************************************************/ @@ -108,13 +108,14 @@ int boundary; /* boundary transmits cannot cross*/ int stall; /* #times hw queue exhausted */ int wake; /* #times irq re-enabled xmit */ - + int watchdog_req; /* cache of req */ + int watchdog_done; /* cache of done */ } mxge_tx_buf_t; typedef struct { struct ifnet* ifp; int big_bytes; - struct mtx tx_lock; + struct mtx tx_mtx; int csum_flag; /* rx_csums? */ uint8_t mac_addr[6]; /* eeprom mac address */ mxge_tx_buf_t tx; /* transmit ring */ @@ -138,8 +139,8 @@ int intr_coal_delay; volatile uint32_t *intr_coal_delay_ptr; int wc; - struct mtx cmd_lock; - struct sx driver_lock; + struct mtx cmd_mtx; + struct mtx driver_mtx; int wake_queue; int stop_queue; int down_cnt; @@ -159,10 +160,15 @@ int read_write_dma; int fw_multicast_support; int link_width; + mxge_dma_t dmabench_dma; + struct callout co_hdl; char *mac_addr_string; char product_code_string[64]; char serial_number_string[64]; char scratch[256]; + char tx_mtx_name[16]; + char cmd_mtx_name[16]; + char driver_mtx_name[16]; } mxge_softc_t; #define MXGE_PCI_VENDOR_MYRICOM 0x14c1 ==== //depot/projects/linuxolator/src/sys/dev/sound/driver.c#3 (text+ko) ==== @@ -18,12 +18,12 @@ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHERIN CONTRACT, STRICT + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/sound/driver.c,v 1.20 2006/10/01 14:57:34 netchild Exp $ + * $FreeBSD: src/sys/dev/sound/driver.c,v 1.21 2007/01/31 08:53:45 joel Exp $ */ #include ==== //depot/projects/linuxolator/src/sys/dev/sound/pcm/dsp.h#3 (text+ko) ==== @@ -1,5 +1,3 @@ -#ifndef _PCMDSP_H_ -#define _PCMDSP_H_ /*- * Copyright (c) 1999 Cameron Grant * All rights reserved. @@ -25,9 +23,12 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/sound/pcm/dsp.h,v 1.10 2006/09/23 20:45:47 netchild Exp $ + * $FreeBSD: src/sys/dev/sound/pcm/dsp.h,v 1.11 2007/01/31 12:10:48 joel Exp $ */ +#ifndef _PCMDSP_H_ +#define _PCMDSP_H_ + extern struct cdevsw dsp_cdevsw; int dsp_oss_audioinfo(struct cdev *, oss_audioinfo *); ==== //depot/projects/linuxolator/src/sys/modules/msdosfs/Makefile#3 (text+ko) ==== @@ -1,11 +1,11 @@ -# $FreeBSD: src/sys/modules/msdosfs/Makefile,v 1.23 2007/01/30 10:17:36 ru Exp $ +# $FreeBSD: src/sys/modules/msdosfs/Makefile,v 1.24 2007/02/01 04:21:03 avatar Exp $ .PATH: ${.CURDIR}/../../fs/msdosfs KMOD= msdosfs SRCS= vnode_if.h \ - msdosfs_conv.c msdosfs_denode.c msdosfs_fat.c msdosfs_lookup.c \ - msdosfs_vfsops.c msdosfs_vnops.c + msdosfs_conv.c msdosfs_denode.c msdosfs_fat.c msdosfs_fileno.c \ + msdosfs_lookup.c msdosfs_vfsops.c msdosfs_vnops.c EXPORT_SYMS= msdosfs_iconv .include ==== //depot/projects/linuxolator/src/sys/netinet/in.h#3 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)in.h 8.3 (Berkeley) 1/3/94 - * $FreeBSD: src/sys/netinet/in.h,v 1.97 2006/12/29 21:59:17 piso Exp $ + * $FreeBSD: src/sys/netinet/in.h,v 1.98 2007/01/31 14:34:47 bms Exp $ */ #ifndef _NETINET_IN_H_ @@ -351,6 +351,16 @@ #define IN_EXPERIMENTAL(i) (((u_int32_t)(i) & 0xf0000000) == 0xf0000000) #define IN_BADCLASS(i) (((u_int32_t)(i) & 0xf0000000) == 0xf0000000) +#define IN_LINKLOCAL(i) (((u_int32_t)(i) & 0xffff0000) == 0xa9fe0000) + +#define IN_PRIVATE(i) ((((u_int32_t)(i) & 0xff000000) == 0x0a000000) || \ + (((u_int32_t)(i) & 0xfff00000) == 0xac100000) || \ + (((u_int32_t)(i) & 0xffff0000) == 0xc0a80000)) + +#define IN_LOCAL_GROUP(i) (((u_int32_t)(i) & 0xffffff00) == 0xe0000000) + +#define IN_ANY_LOCAL(i) (IN_LINKLOCAL(i) || IN_LOCAL_GROUP(i)) + #define INADDR_LOOPBACK (u_int32_t)0x7f000001 #ifndef _KERNEL #define INADDR_NONE 0xffffffff /* -1 return */ ==== //depot/projects/linuxolator/src/sys/nfsclient/nfs_vnops.c#7 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_vnops.c,v 1.272 2007/01/23 10:01:19 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_vnops.c,v 1.273 2007/01/31 23:10:27 mohans Exp $"); /* * vnode op calls for Sun NFS version 2 and 3 @@ -1434,6 +1434,8 @@ if (vap->va_atime.tv_sec == VNOVAL) vap->va_atime = vap->va_mtime; error = nfs_setattrrpc(newvp, vap, cnp->cn_cred, cnp->cn_thread); + if (error) + vput(newvp); } if (!error) { if (cnp->cn_flags & MAKEENTRY) ==== //depot/projects/linuxolator/src/sys/ufs/ufs/ufs_quota.c#6 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ufs/ufs/ufs_quota.c,v 1.87 2007/01/20 13:54:28 delphij Exp $"); +__FBSDID("$FreeBSD: src/sys/ufs/ufs/ufs_quota.c,v 1.88 2007/02/01 01:01:56 mpp Exp $"); #include "opt_ffs.h" @@ -891,6 +891,11 @@ struct uio auio; int error; + /* XXX: Disallow negative id values to prevent the + * creation of 100GB+ quota data files. + */ + if ((int)id < 0) + return (EINVAL); dqvp = ump->um_quotas[type]; if (dqvp == NULLVP || (ump->um_qflags[type] & QTF_CLOSING)) { *dqp = NODQUOT; ==== //depot/projects/linuxolator/src/sys/ufs/ufs/ufs_vfsops.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ufs/ufs/ufs_vfsops.c,v 1.47 2005/12/14 00:49:52 des Exp $"); +__FBSDID("$FreeBSD: src/sys/ufs/ufs/ufs_vfsops.c,v 1.48 2007/02/01 02:13:53 mpp Exp $"); #include "opt_quota.h" #include "opt_ufs.h" @@ -86,10 +86,10 @@ * Do operations associated with quotas */ int -ufs_quotactl(mp, cmds, uid, arg, td) +ufs_quotactl(mp, cmds, id, arg, td) struct mount *mp; int cmds; - uid_t uid; + uid_t id; void *arg; struct thread *td; { @@ -98,10 +98,23 @@ #else int cmd, type, error; - if (uid == -1) - uid = td->td_ucred->cr_ruid; cmd = cmds >> SUBCMDSHIFT; type = cmds & SUBCMDMASK; + if (id == -1) { + switch (type) { + + case USRQUOTA: + id = td->td_ucred->cr_ruid; + break; + + case GRPQUOTA: + id = td->td_ucred->cr_rgid; + break; + + default: + return (EINVAL); + } + } if ((u_int)type >= MAXQUOTAS) return (EINVAL); @@ -118,15 +131,15 @@ break; case Q_SETQUOTA: - error = setquota(td, mp, uid, type, arg); + error = setquota(td, mp, id, type, arg); break; case Q_SETUSE: - error = setuse(td, mp, uid, type, arg); + error = setuse(td, mp, id, type, arg); break; case Q_GETQUOTA: - error = getquota(td, mp, uid, type, arg); + error = getquota(td, mp, id, type, arg); break; case Q_SYNC: From owner-p4-projects@FreeBSD.ORG Thu Feb 1 13:12:47 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F7FD16A406; Thu, 1 Feb 2007 13:12:47 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 569D616A400 for ; Thu, 1 Feb 2007 13:12:47 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2C4CE13C46B for ; Thu, 1 Feb 2007 13:12:47 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11DClkG095022 for ; Thu, 1 Feb 2007 13:12:47 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11DCkI2095018 for perforce@freebsd.org; Thu, 1 Feb 2007 13:12:46 GMT (envelope-from sephe@FreeBSD.org) Date: Thu, 1 Feb 2007 13:12:46 GMT Message-Id: <200702011312.l11DCkI2095018@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 113825 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 13:12:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=113825 Change 113825 by sephe@sephe_zealot:sam_wifi on 2007/02/01 13:11:55 Nuke duplicated assertion. Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_node.c#77 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_node.c#77 (text+ko) ==== @@ -1357,8 +1357,6 @@ IEEE80211_NODE_LOCK_ASSERT(nt); - IEEE80211_NODE_LOCK_ASSERT(nt); - IEEE80211_DPRINTF(ni->ni_ic, IEEE80211_MSG_NODE, "%s: remove %p<%s> from %s table, refcnt %d\n", __func__, ni, ether_sprintf(ni->ni_macaddr), From owner-p4-projects@FreeBSD.ORG Thu Feb 1 13:15:55 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0904216A403; Thu, 1 Feb 2007 13:15:55 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CC02916A401 for ; Thu, 1 Feb 2007 13:15:54 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 20F5313C48E for ; Thu, 1 Feb 2007 13:15:52 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11DFpSH095601 for ; Thu, 1 Feb 2007 13:15:52 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11DFp3v095598 for perforce@freebsd.org; Thu, 1 Feb 2007 13:15:51 GMT (envelope-from sephe@FreeBSD.org) Date: Thu, 1 Feb 2007 13:15:51 GMT Message-Id: <200702011315.l11DFp3v095598@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 113826 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 13:15:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=113826 Change 113826 by sephe@sephe_zealot:sam_wifi on 2007/02/01 13:15:23 Fix comments Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_scan.c#8 edit .. //depot/projects/wifi/sys/net80211/ieee80211_scan_sta.c#12 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_scan.c#8 (text+ko) ==== @@ -547,7 +547,7 @@ * we notify the ap we're in power save mode. When * the scan is complete we leave power save mode. * If any beacon indicates there are frames pending - *for us then we drop out of power save mode + * for us then we drop out of power save mode * (and background scan) automatically by way of the * usual sta power save logic. */ ==== //depot/projects/wifi/sys/net80211/ieee80211_scan_sta.c#12 (text+ko) ==== @@ -494,8 +494,8 @@ } } else { /* - * This lets ieee80211_scan_add_channels - * upgrade an 11b channel to 11g if available. + * This lets add_channels upgrade an 11b channel + * to 11g if available. */ if (mode == IEEE80211_MODE_11B) mode = IEEE80211_MODE_AUTO; @@ -1216,8 +1216,8 @@ } } else { /* - * This lets ieee80211_scan_add_channels - * upgrade an 11b channel to 11g if available. + * This lets add_channels upgrade an 11b channel + * to 11g if available. */ if (mode == IEEE80211_MODE_11B) mode = IEEE80211_MODE_AUTO; From owner-p4-projects@FreeBSD.ORG Thu Feb 1 13:36:19 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6A87016A409; Thu, 1 Feb 2007 13:36:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 34FE616A405 for ; Thu, 1 Feb 2007 13:36:19 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 188B413C481 for ; Thu, 1 Feb 2007 13:36:19 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11DaI06099025 for ; Thu, 1 Feb 2007 13:36:18 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11DaIit098997 for perforce@freebsd.org; Thu, 1 Feb 2007 13:36:18 GMT (envelope-from piso@freebsd.org) Date: Thu, 1 Feb 2007 13:36:18 GMT Message-Id: <200702011336.l11DaIit098997@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113829 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 13:36:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=113829 Change 113829 by piso@piso_newluxor on 2007/02/01 13:35:36 Teach mbuf to IcmpAlias[In|Out]*(). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#50 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#50 (text+ko) ==== @@ -165,10 +165,29 @@ (pip) = mtod(m, struct ip *); \ } while (0) +#define PULLUP_ICMPHDR(pip, ptr) do { \ + struct mbuf *m; \ + pip = ptr; \ + m = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct icmp)); \ + (pip) = mtod(m, struct ip *); \ +} while (0) + +#define PULLUP_ICMPIP64(pip, ptr, ic) do { \ + struct mbuf *m; \ + int s; \ + pip = ptr; \ + s = (pip->ip_hl << 2) + sizeof(struct icmp) + \ + (ic->icmp_ip.ip_hl << 2) - sizeof(struct ip) + 8; \ + m = m_pullup((ptr), s); \ + (pip) = mtod(m, struct ip *); \ +} while (0) + #else #define PULLUP_IPHDR(pip, ptr) pip = ptr #define PULLUP_UDPHDR(pip, ptr) pip = ptr #define PULLUP_TCPHDR(pip, ptr) pip = ptr +#define PULLUP_ICMPHDR(pip, ptr) pip = ptr +#define PULLUP_ICMPIP64(pip, ptr, ic) pip = ptr #endif static __inline int @@ -284,12 +303,12 @@ /* Local prototypes */ -static int IcmpAliasIn1(struct libalias *, void *); -static int IcmpAliasIn2(struct libalias *, void *); +static int IcmpAliasIn1(struct libalias *, struct ip *); +static int IcmpAliasIn2(struct libalias *, struct ip *); static int IcmpAliasIn(struct libalias *, void *); -static int IcmpAliasOut1(struct libalias *, void *, int create); -static int IcmpAliasOut2(struct libalias *, void *); +static int IcmpAliasOut1(struct libalias *, struct ip *, int create); +static int IcmpAliasOut2(struct libalias *, struct ip *); static int IcmpAliasOut(struct libalias *, void *, int create); static int ProtoAliasIn(struct libalias *, struct ip *); @@ -303,17 +322,10 @@ static int -IcmpAliasIn1(struct libalias *la, void *ptr) +IcmpAliasIn1(struct libalias *la, struct ip *pip) { struct alias_link *lnk; - struct ip *pip; struct icmp *ic; -#ifdef _KERNEL - // XXX - m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); /* De-alias incoming echo and timestamp replies. @@ -354,25 +366,18 @@ } static int -IcmpAliasIn2(struct libalias *la, void *ptr) +IcmpAliasIn2(struct libalias *la, struct ip *pip) { /* Alias incoming ICMP error messages containing IP header and first 64 bits of datagram. */ - struct ip *ip, *pip; + struct ip *ip; struct icmp *ic, *ic2; struct udphdr *ud; struct tcphdr *tc; struct alias_link *lnk; -#ifdef _KERNEL - // XXX - m_pullup() - pip = ptr; -#else - pip = ptr; -#endif - LIBALIAS_LOCK_ASSERT(la); ic = (struct icmp *)ip_next(pip); ip = &ic->icmp_ip; @@ -467,37 +472,37 @@ int iresult; struct ip *pip; struct icmp *ic; -#ifdef _KERNEL - // XXX - m_pullup() - pip = ptr; -#else - pip = ptr; -#endif - + LIBALIAS_LOCK_ASSERT(la); /* Return if proxy-only mode is enabled */ if (la->packetAliasMode & PKT_ALIAS_PROXY_ONLY) return (PKT_ALIAS_OK); + iresult = PKT_ALIAS_IGNORED; + PULLUP_ICMPHDR(pip, ptr); + if (pip == NULL) + return (iresult); ic = (struct icmp *)ip_next(pip); - iresult = PKT_ALIAS_IGNORED; switch (ic->icmp_type) { case ICMP_ECHOREPLY: case ICMP_TSTAMPREPLY: if (ic->icmp_code == 0) { - iresult = IcmpAliasIn1(la, ptr); + iresult = IcmpAliasIn1(la, pip); } break; case ICMP_UNREACH: case ICMP_SOURCEQUENCH: case ICMP_TIMXCEED: case ICMP_PARAMPROB: - iresult = IcmpAliasIn2(la, ptr); + PULLUP_ICMPIP64(pip, ptr, ic); + if (pip == NULL) + return (iresult); + iresult = IcmpAliasIn2(la, pip); break; case ICMP_ECHO: case ICMP_TSTAMP: - iresult = IcmpAliasIn1(la, ptr); + iresult = IcmpAliasIn1(la, pip); break; } return (iresult); @@ -505,21 +510,14 @@ static int -IcmpAliasOut1(struct libalias *la, void *ptr, int create) +IcmpAliasOut1(struct libalias *la, struct ip *pip, int create) { /* Alias outgoing echo and timestamp requests. De-alias outgoing echo and timestamp replies. */ struct alias_link *lnk; - struct ip *pip; struct icmp *ic; -#ifdef _KERNEL - // XXX m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); ic = (struct icmp *)ip_next(pip); @@ -557,23 +555,17 @@ static int -IcmpAliasOut2(struct libalias *la, void *ptr) +IcmpAliasOut2(struct libalias *la, struct ip *pip) { /* Alias outgoing ICMP error messages containing IP header and first 64 bits of datagram. */ - struct ip *ip, *pip; + struct ip *ip; struct icmp *ic, *ic2; struct udphdr *ud; struct tcphdr *tc; struct alias_link *lnk; -#ifdef _KERNEL - // XXX m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); ic = (struct icmp *)ip_next(pip); @@ -669,12 +661,6 @@ int iresult; struct icmp *ic; struct ip *pip; -#ifdef _KERNEL - // XXX m_pullup() - pip = ptr; -#else - pip = ptr; -#endif LIBALIAS_LOCK_ASSERT(la); (void)create; @@ -683,25 +669,31 @@ if (la->packetAliasMode & PKT_ALIAS_PROXY_ONLY) return (PKT_ALIAS_OK); + iresult = PKT_ALIAS_IGNORED; + PULLUP_ICMPHDR(pip, ptr); + if (pip == NULL) + return (iresult); ic = (struct icmp *)ip_next(pip); - iresult = PKT_ALIAS_IGNORED; switch (ic->icmp_type) { case ICMP_ECHO: case ICMP_TSTAMP: if (ic->icmp_code == 0) { - iresult = IcmpAliasOut1(la, ptr, create); + iresult = IcmpAliasOut1(la, pip, create); } break; case ICMP_UNREACH: case ICMP_SOURCEQUENCH: case ICMP_TIMXCEED: case ICMP_PARAMPROB: - iresult = IcmpAliasOut2(la, ptr); + PULLUP_ICMPIP64(pip, ptr, ic); + if (pip == NULL) + return (iresult); + iresult = IcmpAliasOut2(la, pip); break; case ICMP_ECHOREPLY: case ICMP_TSTAMPREPLY: - iresult = IcmpAliasOut1(la, ptr, create); + iresult = IcmpAliasOut1(la, pip, create); } return (iresult); } @@ -1348,7 +1340,7 @@ if ((ntohs(pip->ip_off) & IP_OFFMASK) == 0) { switch (pip->ip_p) { case IPPROTO_ICMP: - iresult = IcmpAliasIn(la, pip); + iresult = IcmpAliasIn(la, ptr); break; case IPPROTO_UDP: iresult = UdpAliasIn(la, ptr); @@ -1499,7 +1491,7 @@ if ((ntohs(pip->ip_off) & IP_OFFMASK) == 0) { switch (pip->ip_p) { case IPPROTO_ICMP: - iresult = IcmpAliasOut(la, pip, create); + iresult = IcmpAliasOut(la, ptr, create); break; case IPPROTO_UDP: iresult = UdpAliasOut(la, ptr, create); From owner-p4-projects@FreeBSD.ORG Thu Feb 1 13:47:35 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0ABFA16A40A; Thu, 1 Feb 2007 13:47:35 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AA88616A402 for ; Thu, 1 Feb 2007 13:47:34 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9A81D13C48D for ; Thu, 1 Feb 2007 13:47:34 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11DlYE0000900 for ; Thu, 1 Feb 2007 13:47:34 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11DlY94000897 for perforce@freebsd.org; Thu, 1 Feb 2007 13:47:34 GMT (envelope-from sephe@FreeBSD.org) Date: Thu, 1 Feb 2007 13:47:34 GMT Message-Id: <200702011347.l11DlY94000897@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 113832 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 13:47:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=113832 Change 113832 by sephe@sephe_zealot:sam_wifi on 2007/02/01 13:46:36 - Don't try joining a BSS if one of its basic rates is not supported by the wireless NIC. Add comment about it. - Nuke tab on blank line. Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_scan_sta.c#13 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_scan_sta.c#13 (text+ko) ==== @@ -692,7 +692,7 @@ const u_int8_t *rs; okrate = badrate = fixedrate = 0; - + if (IEEE80211_IS_CHAN_HALF(se->se_chan)) { srs = &ic->ic_sup_half_rates; } else if (IEEE80211_IS_CHAN_QUARTER(se->se_chan)) { @@ -721,6 +721,15 @@ okrate = r; break; } + + if (j == srs->rs_nrates && (rs[i] & IEEE80211_RATE_BASIC)) { + /* + * Don't try joining a BSS, if we don't support + * one of its basic rates. + */ + okrate = 0; + goto back; + } } if (rs == se->se_rates+2) { /* scan xrates too; sort of an algol68-style for loop */ @@ -728,6 +737,8 @@ rs = se->se_xrates+2; goto again; } + +back: if (okrate == 0 || ic->ic_fixed_rate != fixedrate) return badrate | IEEE80211_RATE_BASIC; else From owner-p4-projects@FreeBSD.ORG Thu Feb 1 14:02:23 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 948BC16A40F; Thu, 1 Feb 2007 14:02:23 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3F0B316A402; Thu, 1 Feb 2007 14:02:23 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 1098D13C4B2; Thu, 1 Feb 2007 14:02:22 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id ACE254D015; Thu, 1 Feb 2007 08:33:52 -0500 (EST) Date: Thu, 1 Feb 2007 13:33:51 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Warner Losh In-Reply-To: <200702010631.l116VFBJ006811@repoman.freebsd.org> Message-ID: <20070201133157.X12827@fledge.watson.org> References: <200702010631.l116VFBJ006811@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Perforce Change Reviews Subject: Re: PERFORCE change 113809 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 14:02:23 -0000 On Thu, 1 Feb 2007, Warner Losh wrote: > http://perforce.freebsd.org/chv.cgi?CH=113809 > > Change 113809 by imp@imp_lighthouse on 2007/02/01 06:30:17 > > Kinky new idea: run pccard_ether in the background. This allows devd > to respond to things that are happening while pccard_ether is running. Hmm. Perhaps it would be better to serialize all events associated with a particular device in a particular process or thread, so that events from ed0 and ed1 can run concurrently, but not two events for ed0? I realize that's quite a bit more complicated than slapping '&' in there, but it might provide some useful consistency from the perspective of people writing scripts to start and stop file systems, etc, on removable storage (for example). Robert N M Watson Computer Laboratory University of Cambridge > > Affected files ... > > .. //depot/projects/arm/src/etc/devd.conf#2 edit > > Differences ... > > ==== //depot/projects/arm/src/etc/devd.conf#2 (text+ko) ==== > > @@ -34,13 +34,13 @@ > notify 0 { > match "system" "IFNET"; > match "type" "ATTACH"; > - action "/etc/pccard_ether $subsystem start"; > + action "/etc/pccard_ether $subsystem start &"; > }; > > notify 0 { > match "system" "IFNET"; > match "type" "DETACH"; > - action "/etc/pccard_ether $subsystem stop"; > + action "/etc/pccard_ether $subsystem stop &"; > }; > > # > @@ -63,11 +63,11 @@ > # > detach 0 { > media-type "802.11"; > - action "/etc/pccard_ether $device-name stop"; > + action "/etc/pccard_ether $device-name stop &"; > }; > attach 0 { > media-type "802.11"; > - action "/etc/pccard_ether $device-name start"; > + action "/etc/pccard_ether $device-name start &"; > }; > notify 0 { > match "system" "IFNET"; > From owner-p4-projects@FreeBSD.ORG Thu Feb 1 14:04:02 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9916F16A403; Thu, 1 Feb 2007 14:04:02 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7250216A401 for ; Thu, 1 Feb 2007 14:04:02 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 94A9913C49D for ; Thu, 1 Feb 2007 14:04:00 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11E3te7004745 for ; Thu, 1 Feb 2007 14:03:55 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11E3tg8004741 for perforce@freebsd.org; Thu, 1 Feb 2007 14:03:55 GMT (envelope-from rdivacky@FreeBSD.org) Date: Thu, 1 Feb 2007 14:03:55 GMT Message-Id: <200702011403.l11E3tg8004741@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113833 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 14:04:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=113833 Change 113833 by rdivacky@rdivacky_witten on 2007/02/01 14:02:53 IFC Affected files ... .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux.h#17 integrate .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_machdep.c#33 integrate .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#30 integrate .. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#54 integrate .. //depot/projects/linuxolator/src/sys/compat/linux/linux_socket.c#13 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/pcm/buffer.c#4 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/pcm/buffer.h#4 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/pcm/vchan.c#3 integrate .. //depot/projects/linuxolator/src/sys/i386/linux/linux.h#13 integrate .. //depot/projects/linuxolator/src/sys/i386/linux/linux_machdep.c#27 integrate Differences ... ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux.h#17 (text+ko) ==== @@ -27,7 +27,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.10 2006/12/20 20:17:34 jkim Exp $ + * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.11 2007/02/01 13:36:19 kib Exp $ */ #ifndef _AMD64_LINUX_LINUX_H_ ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_machdep.c#33 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.28 2007/01/23 08:46:49 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.30 2007/02/01 13:27:51 kib Exp $"); #include #include ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#30 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.13 2007/01/20 14:58:59 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.14 2007/02/01 13:29:27 kib Exp $"); #include "opt_compat.h" @@ -254,9 +254,10 @@ struct linux_emuldata *em; /* - * XXX: is it racy? if p->p_sysent still points at linux_sysvec - * it is. someone please check this. we were running with - * this race for quite a long time though. + * XXX:There's a race because here we assign p->p_emuldata NULL + * but the process is still counted as linux one for a short + * time so some other process might reference it and try to + * access its p->p_emuldata and panicing on a NULL reference. */ em = em_find(p, EMUL_DONTLOCK); ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#54 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.205 2007/01/07 19:30:19 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.206 2007/02/01 13:33:33 kib Exp $"); #include "opt_compat.h" #include "opt_mac.h" ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_socket.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.71 2006/09/23 19:06:54 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.72 2007/02/01 13:36:19 kib Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -1074,7 +1074,7 @@ return (error); if ((error = copyin(PTRIN(args->msg), &msg, sizeof (msg)))) - return (error); + return (error); bsd_args.s = linux_args.s; bsd_args.msg = PTRIN(linux_args.msg); ==== //depot/projects/linuxolator/src/sys/dev/sound/pcm/buffer.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ #include "feeder_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/buffer.c,v 1.29 2006/11/26 12:24:05 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/buffer.c,v 1.30 2007/02/01 09:46:03 ariff Exp $"); struct snd_dbuf * sndbuf_create(device_t dev, char *drv, char *desc, struct pcm_channel *channel) @@ -46,6 +46,12 @@ void sndbuf_destroy(struct snd_dbuf *b) { + if (b->tmpbuf) + free(b->tmpbuf, M_DEVBUF); + if (b->shadbuf) + free(b->shadbuf, M_DEVBUF); + if (!(b->flags & SNDBUF_F_MANAGED) && b->buf) + free(b->buf, M_DEVBUF); free(b, M_DEVBUF); } @@ -85,6 +91,7 @@ b->maxsize = size; b->bufsize = b->maxsize; b->buf_addr = 0; + b->flags |= SNDBUF_F_MANAGED; if (bus_dmamem_alloc(b->dmatag, (void **)&b->buf, BUS_DMA_NOWAIT, &b->dmamap)) return (ENOMEM); @@ -104,6 +111,8 @@ int sndbuf_setup(struct snd_dbuf *b, void *buf, unsigned int size) { + if (buf) + b->flags |= SNDBUF_F_MANAGED; b->buf = buf; b->maxsize = size; b->bufsize = b->maxsize; @@ -122,6 +131,9 @@ b->shadbuf = NULL; b->sl = 0; + if (!(b->flags & SNDBUF_F_MANAGED) && b->buf) + free(b->buf, M_DEVBUF); + if (b->dmamap) bus_dmamap_unload(b->dmatag, b->dmamap); ==== //depot/projects/linuxolator/src/sys/dev/sound/pcm/buffer.h#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/sound/pcm/buffer.h,v 1.13 2006/11/26 12:24:05 ariff Exp $ + * $FreeBSD: src/sys/dev/sound/pcm/buffer.h,v 1.14 2007/02/01 09:46:03 ariff Exp $ */ #define SND_DMA(b) (sndbuf_getflags((b)) & SNDBUF_F_DMA) @@ -32,6 +32,7 @@ #define SNDBUF_F_DMA 0x00000001 #define SNDBUF_F_XRUN 0x00000002 #define SNDBUF_F_RUNNING 0x00000004 +#define SNDBUF_F_MANAGED 0x00000008 #define SNDBUF_NAMELEN 48 ==== //depot/projects/linuxolator/src/sys/dev/sound/pcm/vchan.c#3 (text+ko) ==== @@ -32,7 +32,7 @@ #include #include "feeder_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/vchan.c,v 1.26 2006/11/26 12:24:06 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/vchan.c,v 1.27 2007/02/01 09:30:01 ariff Exp $"); MALLOC_DEFINE(M_VCHANFEEDER, "vchanfeed", "pcm vchan feeder"); @@ -334,6 +334,7 @@ static int vchan_free(kobj_t obj, void *data) { + free(data, M_DEVBUF); return 0; } ==== //depot/projects/linuxolator/src/sys/i386/linux/linux.h#13 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/linux/linux.h,v 1.72 2006/12/20 20:17:35 jkim Exp $ + * $FreeBSD: src/sys/i386/linux/linux.h,v 1.73 2007/02/01 13:36:19 kib Exp $ */ #ifndef _I386_LINUX_LINUX_H_ ==== //depot/projects/linuxolator/src/sys/i386/linux/linux_machdep.c#27 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/linux/linux_machdep.c,v 1.68 2007/01/23 08:46:50 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/linux/linux_machdep.c,v 1.69 2007/02/01 13:27:52 kib Exp $"); #include #include From owner-p4-projects@FreeBSD.ORG Thu Feb 1 14:04:57 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A59C916A406; Thu, 1 Feb 2007 14:04:57 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6C44316A401 for ; Thu, 1 Feb 2007 14:04:57 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 5D3D413C49D for ; Thu, 1 Feb 2007 14:04:57 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11E4veI005028 for ; Thu, 1 Feb 2007 14:04:57 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11E4vsa005025 for perforce@freebsd.org; Thu, 1 Feb 2007 14:04:57 GMT (envelope-from sephe@FreeBSD.org) Date: Thu, 1 Feb 2007 14:04:57 GMT Message-Id: <200702011404.l11E4vsa005025@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 113834 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 14:04:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=113834 Change 113834 by sephe@sephe_zealot:sam_wifi on 2007/02/01 14:04:09 In check_bss(), don't overwrite BSS basic rate set with the one in our master rate set, since this function is called by ieee80211_ibss_merge() which implies joining an IBSS. Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_node.c#78 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_node.c#78 (text+ko) ==== @@ -404,7 +404,8 @@ if (ni->ni_capinfo & IEEE80211_CAPINFO_PRIVACY) return 0; } - rate = ieee80211_fix_rate(ni, IEEE80211_F_DONEGO | IEEE80211_F_DOFRATE); + rate = ieee80211_fix_rate(ni, + IEEE80211_F_JOIN | IEEE80211_F_DONEGO | IEEE80211_F_DOFRATE); if (rate & IEEE80211_RATE_BASIC) return 0; if (ic->ic_des_nssid != 0 && From owner-p4-projects@FreeBSD.ORG Thu Feb 1 14:10:20 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC62916A403; Thu, 1 Feb 2007 14:10:05 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 29CF316A401 for ; Thu, 1 Feb 2007 14:10:05 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E970913C428 for ; Thu, 1 Feb 2007 14:10:04 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11EA419005264 for ; Thu, 1 Feb 2007 14:10:04 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11EA4tX005260 for perforce@freebsd.org; Thu, 1 Feb 2007 14:10:04 GMT (envelope-from sephe@FreeBSD.org) Date: Thu, 1 Feb 2007 14:10:04 GMT Message-Id: <200702011410.l11EA4tX005260@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 113835 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 14:10:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=113835 Change 113835 by sephe@sephe_zealot:sam_wifi on 2007/02/01 14:09:07 typo Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_node.c#79 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_node.c#79 (text+ko) ==== @@ -523,7 +523,7 @@ ssid_equal(const struct ieee80211_node *a, const struct ieee80211_node *b) { return (a->ni_esslen == b->ni_esslen && - memcmp(a->ni_essid, b->ni_bssid, a->ni_esslen) == 0); + memcmp(a->ni_essid, b->ni_essid, a->ni_esslen) == 0); } /* From owner-p4-projects@FreeBSD.ORG Thu Feb 1 14:10:21 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6B97016A4D7; Thu, 1 Feb 2007 14:10:20 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D1DB316A405 for ; Thu, 1 Feb 2007 14:10:05 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 489E613C467 for ; Thu, 1 Feb 2007 14:10:05 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11EA5Fm005270 for ; Thu, 1 Feb 2007 14:10:05 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11EA4qs005267 for perforce@freebsd.org; Thu, 1 Feb 2007 14:10:04 GMT (envelope-from rdivacky@FreeBSD.org) Date: Thu, 1 Feb 2007 14:10:04 GMT Message-Id: <200702011410.l11EA4qs005267@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113836 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 14:10:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=113836 Change 113836 by rdivacky@rdivacky_witten on 2007/02/01 14:09:48 Dont litter sources with extern int hz and include kernel.h instead. Suggested by: many Affected files ... .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#31 edit Differences ... ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#31 (text+ko) ==== @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -279,8 +280,6 @@ } } -extern int hz; /* in subr_param.c */ - void linux_schedtail(void *arg __unused, struct proc *p) { From owner-p4-projects@FreeBSD.ORG Thu Feb 1 15:23:35 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4795916A407; Thu, 1 Feb 2007 15:23:35 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0971516A400 for ; Thu, 1 Feb 2007 15:23:35 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E425713C428 for ; Thu, 1 Feb 2007 15:23:34 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11FNYvx039363 for ; Thu, 1 Feb 2007 15:23:34 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11FNYFi039360 for perforce@freebsd.org; Thu, 1 Feb 2007 15:23:34 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 1 Feb 2007 15:23:34 GMT Message-Id: <200702011523.l11FNYFi039360@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113838 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 15:23:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=113838 Change 113838 by rwatson@rwatson_cinnamon on 2007/02/01 15:23:29 Add bpf_buffree() buffer provider function: with zero-copy and shared memory ACKing of user space being done with a buffer, BPF needs to detect when the ACK has happened so it can rotate the buffers making the held buffer free. We call this in catchpacket() so that the free buffer is checked for whenever we have a new packet. We might want to revise the placement. Only zero-copy buffers implement this function. Add bpf_bufheld() buffer provider function: this is used by BPF to notify a buffer provider that a buffer has become "held" -- i.e., that a store buffer has completed. The buffer provider can then do whatever it wants to -- in the case of the zero-copy provider, it will update the buffer header. Modify the zero-copy provider to place a struct bpf_zbuf_header at the front of both shared buffer pages. This contains three fields currently: a kernel generation number, a kernel buffer length value, and a user generation number (and padding up to 32 bytes). When the two generation numbers are equal, the buffer is owned by the kernel. When the kernel completes a buffer, it increments the buffer version number, which can be detected by user space. When user space is done with the buffer, it increments its version numbers. This requires refinement to use volatile and memory arriers. The current buffer length is written by the kernel a rotation time so that user space knows how much data is in the buffer. As with the explicit ioctl-based ACKing, buffers owned by user space are static until acknowledged. Add descriptor locking assertions at several points. NOTE: This changes the ABI/binary layout of shared memory buffers. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.c#9 edit .. //depot/projects/zcopybpf/src/sys/net/bpf.h#5 edit .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#8 edit .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.h#2 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#9 (text+ko) ==== @@ -165,6 +165,8 @@ u_int len) { + BPFD_LOCK_ASSERT(d); + switch (d->bd_bufmode) { case BPF_BUFMODE_BUFFER: return (bpf_buffer_append_bytes(d, buf, offset, src, len)); @@ -185,6 +187,8 @@ u_int len) { + BPFD_LOCK_ASSERT(d); + switch (d->bd_bufmode) { case BPF_BUFMODE_BUFFER: return (bpf_buffer_append_mbuf(d, buf, offset, src, len)); @@ -200,6 +204,41 @@ } } +/* + * If the buffer mechanism has a way to decide that a held buffer can be made + * free, then it is exposed via the bpf_buffree() interface. (1) is returned + * if the buffer can be discarded, (0) is returned if it cannot. + */ +static int +bpf_buffree(struct bpf_d *d) +{ + + BPFD_LOCK_ASSERT(d); + + switch (d->bd_bufmode) { +#ifdef BPF_ZEROCOPY + case BPF_BUFMODE_ZBUF: + return (bpf_zerocopy_buffree(d)); +#endif + } + return (0); +} + +void +bpf_bufheld(struct bpf_d *d) +{ + + BPFD_LOCK_ASSERT(d); + + switch (d->bd_bufmode) { +#ifdef BPF_ZEROCOPY + case BPF_BUFMODE_ZBUF: + bpf_zerocopy_bufheld(d); + break; +#endif + } +} + static void bpf_free(struct bpf_d *d) { @@ -1634,6 +1673,20 @@ int do_wakeup = 0; BPFD_LOCK_ASSERT(d); + + /* + * Detect whether user space has released a buffer back to us, and if + * so, move it from being a hold buffer to a free buffer. This may + * not be the best place to do it (for example, we might only want to + * run this check if we need the space), but for now it's a reliable + * spot to do it. + */ + if (bpf_buffree(d)) { + d->bd_fbuf = d->bd_hbuf; + d->bd_hbuf = NULL; + d->bd_hlen = 0; + } + /* * Figure out how many bytes to move. If the packet is * greater or equal to the snapshot length, transfer that ==== //depot/projects/zcopybpf/src/sys/net/bpf.h#5 (text+ko) ==== @@ -175,6 +175,21 @@ #endif /* + * When using zero-copy BPF buffers, a shared memory header is present + * allowing the kernel BPF implementation and user process to synchronize + * without using system calls. This structure defines that header. + * + * The layout of this structure is critical, and must not be changed; if must + * fit in a single page on all architectures. + */ +struct bpf_zbuf_header { + u_int bzh_kernel_gen; /* Kernel generation number. */ + u_int bzh_kernel_len; /* Length of buffer. */ + u_int bzh_user_gen; /* User generation number. */ + u_int _bzh_pad[5]; /* Padding out to 32-byte boundary. */ +}; + +/* * Data-link level type codes. */ #define DLT_NULL 0 /* BSD loopback encapsulation */ @@ -673,6 +688,7 @@ (d)->bd_sbuf = (d)->bd_fbuf; \ (d)->bd_slen = 0; \ (d)->bd_fbuf = NULL; \ + bpf_bufheld(d); \ } while (0) /* @@ -687,6 +703,7 @@ struct mtx bif_mtx; /* mutex for interface */ }; +void bpf_bufheld(struct bpf_d *d); int bpf_validate(const struct bpf_insn *, int); void bpf_tap(struct bpf_if *, u_char *, u_int); void bpf_mtap(struct bpf_if *, struct mbuf *); ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#8 (text+ko) ==== @@ -75,12 +75,18 @@ * be mapped contiguously in the kernel (i.e., a set of physically * non-contiguous pages in the direct map region) so we must implement * scatter-gather copying. + * + * At the front of the shared memor region is a bpf_zbuf_header, which + * contains shared control data to allow user space and the kernel to + * synchronize; this is included in zb_size, but not bpf_bufsize, so that BPF + * knows that the space is not available. */ struct zbuf { vm_offset_t zb_uaddr; /* User address, may be stale. */ - u_int zb_size; /* Size in bytes. */ + u_int zb_size; /* Size of buffer, incl. header. */ u_int zb_numpages; /* Number of pages. */ struct sf_buf **zb_pages; /* Pages themselves. */ + struct bpf_zbuf_header *zb_header; /* Shared header. */ }; /* @@ -219,6 +225,9 @@ goto error; } } + zb->zb_header = + (struct bpf_zbuf_header *)sf_buf_kva(zb->zb_pages[0]); + bzero(zb->zb_header, sizeof(*zb->zb_header)); *zbp = zb; return (0); @@ -253,6 +262,7 @@ * Scatter-gather copy to user pages mapped into kernel address space * using sf_bufs: copy up to a page at a time. */ + offset += sizeof(struct bpf_zbuf_header); page = offset / PAGE_SIZE; poffset = offset % PAGE_SIZE; while (len > 0) { @@ -298,6 +308,9 @@ // printf("bpf_zerocopy_append_mbuf(d: %p, buf: %p, offset: %d, src " // "%p, len: %d)\n", d, buf, offset, src, len); + m = (struct mbuf *)src; + zb = (struct zbuf *)buf; + /* * Scatter gather both from an mbuf chain and to a user page set * mapped into kernel address space using sf_bufs. If we're lucky, @@ -305,11 +318,10 @@ * mbuf alignment work out less well, we'll be doing two copies per * mbuf. */ + offset += sizeof(struct bpf_zbuf_header); page = offset / PAGE_SIZE; poffset = offset % PAGE_SIZE; moffset = 0; - m = (struct mbuf *)src; - zb = (struct zbuf *)buf; while (len > 0) { KASSERT(page < zb->zb_numpages, ("bpf_zerocopy_append_mbuf: page overflow (%d p %d " @@ -341,6 +353,54 @@ } /* + * Notification from the BPF framework that a buffer has moved into the held + * slot on a descriptor. Zero-copy BPF will update the shared page to let + * the user process know. + * + * XXXRW: Do we need to use a memory barrier, atomic operation, or the like + * to make sure that the generation update is the last write to make it out + * after any packet date so that user space sees the generation increase only + * at or after the last packet data change? + */ +void +bpf_zerocopy_bufheld(struct bpf_d *d) +{ + struct zbuf *zb; + + KASSERT(d->bd_bufmode == BPF_BUFMODE_ZBUF, + ("bpf_zerocopy_bufheld: not in zbuf mode")); + + zb = (struct zbuf *)d->bd_hbuf; + KASSERT(zb != NULL, ("bpf_zerocopy_bufheld: zb == NULL")); + zb->zb_header->bzh_kernel_gen++; + zb->zb_header->bzh_kernel_len = d->bd_hlen; +} + +/* + * Query from the BPF framework regarding whether the buffer currently in the + * held position can be moved to the free position, which can be indicated by + * the user process making their generation number equal to the kernel + * generation number. + * + * XXXRW: Memory ordering also an issue here? + */ +int +bpf_zerocopy_buffree(struct bpf_d *d) +{ + struct zbuf *zb; + + KASSERT(d->bd_bufmode == BPF_BUFMODE_ZBUF, + ("bpf_zerocopy_buffree: not in zbuf mode")); + + zb = (struct zbuf *)d->bd_hbuf; + if (zb == NULL) + return (0); + if (zb->zb_header->bzh_kernel_gen == zb->zb_header->bzh_user_gen) + return (1); + return (0); +} + +/* * Free zero copy buffers at request of descriptor. */ void @@ -416,6 +476,7 @@ BPFD_UNLOCK(d); return (EINVAL); } + zb->zb_header->bzh_user_gen = zb->zb_header->bzh_kernel_gen; d->bd_fbuf = d->bd_hbuf; d->bd_hbuf = NULL; d->bd_hlen = 0; @@ -586,7 +647,12 @@ d->bd_sbuf = (caddr_t)zba; d->bd_slen = 0; d->bd_hlen = 0; - d->bd_bufsize = bz->bz_buflen; + + /* + * We expose only the space left in the buffer after the size of the + * shared management region. + */ + d->bd_bufsize = bz->bz_buflen - sizeof(struct bpf_zbuf_header); BPFD_UNLOCK(d); return (0); } ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.h#2 (text+ko) ==== @@ -40,6 +40,8 @@ void *src, u_int len); void bpf_zerocopy_append_mbuf(struct bpf_d *d, caddr_t buf, u_int offset, void *src, u_int len); +void bpf_zerocopy_bufheld(struct bpf_d *); +int bpf_zerocopy_buffree(struct bpf_d *); void bpf_zerocopy_free(struct bpf_d *d); int bpf_zerocopy_ioctl_ackzbuf(struct thread *td, struct bpf_d *d, struct bpf_zbuf *bz); From owner-p4-projects@FreeBSD.ORG Thu Feb 1 15:25:38 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3BE3D16A405; Thu, 1 Feb 2007 15:25:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 14BE616A402 for ; Thu, 1 Feb 2007 15:25:38 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 05F2C13C4B7 for ; Thu, 1 Feb 2007 15:25:38 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11FPbpR040787 for ; Thu, 1 Feb 2007 15:25:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11FPbRU040778 for perforce@freebsd.org; Thu, 1 Feb 2007 15:25:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 1 Feb 2007 15:25:37 GMT Message-Id: <200702011525.l11FPbRU040778@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113839 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 15:25:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=113839 Change 113839 by rwatson@rwatson_cinnamon on 2007/02/01 15:25:28 Further chicken scratchings at teaching libpcap about shared memory headers for zero-copy BPF. This sort of works; the lack of timeouts is still an issue, and there appears to be a problem under high use leading to a crash (likely a pointer/buffer bug somewhere in the code I've added). Affected files ... .. //depot/projects/zcopybpf/src/contrib/libpcap/pcap-bpf.c#3 edit .. //depot/projects/zcopybpf/src/contrib/libpcap/pcap-int.h#3 edit Differences ... ==== //depot/projects/zcopybpf/src/contrib/libpcap/pcap-bpf.c#3 (text+ko) ==== @@ -141,7 +141,98 @@ return (0); } +#ifdef BIOCGETBUFMODE +/* + * Selection routine for zero-copy BPF: identify the next completed buffer, + * if any. Try shared memory first, and if that doesn't work, make a system + * call, which may dislodge a buffer. + * + * Return (1) if the buffer is found, (0) if a retry is required, and (-1) if + * there is an unrecoverable error. + * + * XXXRW: Check to make sure the version comparison we're doing here is + * really the right thing -- maybe use serial number arithmetic? + */ static int +pcap_next_zbuf(pcap_t *p, u_int *cc) +{ + struct bpf_zbuf_header *bzh; + struct pollfd pollfd; + struct bpf_zbuf bz; + int i; + + p->bzh = NULL; + + /* + * First try directly accessing the zero-copy buffer headers. + */ + bzh = (struct bpf_zbuf_header *)p->zbuf1; + if (bzh->bzh_kernel_gen > bzh->bzh_user_gen) { + printf("pcap_next_zbuf: zbuf1 gen\n"); + goto found; + } + bzh = (struct bpf_zbuf_header *)p->zbuf2; + if (bzh->bzh_kernel_gen > bzh->bzh_user_gen) { + printf("pcap_next_zbuf: zbuf2 gen\n"); + goto found; + } + + /* + * Next, try asking the kernel, which may dislodge a buffer in + * immediate mode. + */ + bzero(&bz, sizeof(bz)); + if (ioctl(p->fd, BIOCGETZNEXT, &bz) < 0) { + snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "BIOCGETZNEXT: %s", + pcap_strerror(errno)); + return (-1); + } + bzh = bz.bz_bufa; + if (bzh != NULL) { + printf("pcap_next_zbuf getznext\n"); + goto found; + } + + printf("poll timeout %d\n", p->timeout); + bzero(&pollfd, sizeof(pollfd)); + pollfd.fd = p->fd; + pollfd.events = POLLIN; + i = poll(&pollfd, 1, p->timeout == 0 ? INFTIM : p->timeout); + if (i < 0 && errno != EINTR) { + snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "poll: %s", + pcap_strerror(errno)); + return (-1); + } + return (0); +found: + p->bzh = bzh; + *cc = bzh->bzh_kernel_len; + p->buffer = (u_char *)(bzh + 1); + return (1); +} + +static int +pcap_ack_zbuf(pcap_t *p) +{ + struct bpf_zbuf bz; + + p->bzh->bzh_user_gen++; +#if 0 + bzero(&bz, sizeof(bz)); + bz.bz_bufa = (u_char *)p->bzh; + if (ioctl(p->fd, BIOCACKZBUF, &bz) < 0) { + snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "BIOCACKZBUF: %s", + pcap_strerror(errno)); + return (-1); + } +#endif + p->bzh = NULL; + p->buffer = NULL; + return (0); +} +#endif + +static int pcap_read_bpf(pcap_t *p, int cnt, pcap_handler callback, u_char *user) { int cc; @@ -149,13 +240,12 @@ register u_char *bp, *ep; u_char *datap; struct bpf_insn *fcode; +#ifdef BIOCSETBUFMODE + int i; +#endif #ifdef PCAP_FDDIPAD register int pad; #endif -#ifdef BIOCSETBUFMODE - struct pollfd pollfd; - struct bpf_zbuf bz; -#endif fcode = p->md.use_bpf ? NULL : p->fcode.bf_insns; again: @@ -174,51 +264,14 @@ cc = p->cc; if (p->cc == 0) { #ifdef BIOCSETBUFMODE - /* - * XXXRW: All of this could use serious revision. - */ if (p->zbuf1 != NULL) { - if (p->buffer != NULL) { - bzero(&bz, sizeof(bz)); - bz.bz_bufa = p->buffer; - bz.bz_buflen = p->bufsize; - if (ioctl(p->fd, BIOCACKZBUF, &bz) < 0) { - snprintf(p->errbuf, PCAP_ERRBUF_SIZE, - "BIOCGETZNEXT: %s", - pcap_strerror(errno)); - return (-1); - } - p->buffer = NULL; - } - bzero(&bz, sizeof(bz)); - if (ioctl(p->fd, BIOCGETZNEXT, &bz) < 0) { - snprintf(p->errbuf, PCAP_ERRBUF_SIZE, - "BIOCGETZNEXT: %s", - pcap_strerror(errno)); + if (p->buffer != NULL) + pcap_ack_zbuf(p); + i = pcap_next_zbuf(p, &cc); + if (i == 0) + goto again; + if (i < 0) return (-1); - } - printf("getznext returned %p\n", bz.bz_bufa); - if (bz.bz_bufa != NULL) { - p->buffer = bz.bz_bufa; - cc = bz.bz_buflen; - } else { - /* - * XXXRW: Need to implement non-blocking - * operation -- query fd with fcntl? - */ - bzero(&pollfd, sizeof(pollfd)); - pollfd.fd = p->fd; - pollfd.events = POLLIN; - printf("poll returned %d\n", - poll(&pollfd, 1, p->timeout == 0 ? INFTIM - : p->timeout)); - printf("pollfd.revents = 0x%x\n", - pollfd.revents); - - /* XXXRW: Should force buffer rotation here. */ - - goto again; - } } else #endif cc = read(p->fd, (char *)p->buffer, p->bufsize); @@ -727,21 +780,21 @@ /* * XXXRW: This logic should be revisited. */ - v = 32768; - if (v % getpagesize() != 0) - v = getpagesize(); - if (v > zbufmax) - v = zbufmax; + p->zbufsize = 32768; + if (p->zbufsize % getpagesize() != 0) + p->zbufsize = getpagesize(); + if (p->zbufsize > zbufmax) + p->zbufsize = zbufmax; - p->zbuf1 = mmap(NULL, v, PROT_READ | PROT_WRITE, MAP_ANON, - -1, 0); - p->zbuf2 = mmap(NULL, v, PROT_READ | PROT_WRITE, MAP_ANON, - -1, 0); + p->zbuf1 = mmap(NULL, p->zbufsize, PROT_READ | PROT_WRITE, + MAP_ANON, -1, 0); + p->zbuf2 = mmap(NULL, p->zbufsize, PROT_READ | PROT_WRITE, + MAP_ANON, -1, 0); if (p->zbuf1 == MAP_FAILED || p->zbuf2 == MAP_FAILED) { if (p->zbuf1 != MAP_FAILED) - munmap(p->zbuf1, v); + munmap(p->zbuf1, p->zbufsize); if (p->zbuf2 != MAP_FAILED) - munmap(p->zbuf1, v); + munmap(p->zbuf1, p->zbufsize); snprintf(ebuf, PCAP_ERRBUF_SIZE, "mmap: %s", pcap_strerror(errno)); } @@ -749,7 +802,7 @@ bzero(&bz, sizeof(bz)); bz.bz_bufa = p->zbuf1; bz.bz_bufb = p->zbuf2; - bz.bz_buflen = v; + bz.bz_buflen = p->zbufsize; if (ioctl(fd, BIOCSETZBUF, (caddr_t)&bz) < 0) { snprintf(ebuf, PCAP_ERRBUF_SIZE, "BIOCSETZBUF: %s", @@ -763,6 +816,8 @@ device, pcap_strerror(errno)); goto bad; } + + v = p->zbufsize - sizeof(struct bpf_zbuf_header); } else { #endif ==== //depot/projects/zcopybpf/src/contrib/libpcap/pcap-int.h#3 (text+ko) ==== @@ -162,11 +162,22 @@ * * Zero-copy read buffer -- for zero-copy BPF. 'buffer' above will * alternative between these two actual mmap'd buffers as required. + * As there is a header on the front size of the mmap'd buffer, only + * some of the buffer is exposed to libpcap as a whole via bufsize; + * zbufsize is the true size. */ u_char *zbuf1, *zbuf2; + u_int zbufsize; u_int timeout; /* + * If there's currently a buffer being actively processed, then it is + * referenced here; 'buffer' is also pointed at it, but offset by the + * size of the header. + */ + struct bpf_zbuf_header *bzh; + + /* * Place holder for pcap_next(). */ u_char *pkt; From owner-p4-projects@FreeBSD.ORG Thu Feb 1 15:27:42 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7BAFF16A403; Thu, 1 Feb 2007 15:27:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 591FC16A401 for ; Thu, 1 Feb 2007 15:27:42 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4A53313C481 for ; Thu, 1 Feb 2007 15:27:42 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11FRfbQ041121 for ; Thu, 1 Feb 2007 15:27:41 GMT (envelope-from bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11FRe5W041118 for perforce@freebsd.org; Thu, 1 Feb 2007 15:27:40 GMT (envelope-from bushman@freebsd.org) Date: Thu, 1 Feb 2007 15:27:40 GMT Message-Id: <200702011527.l11FRe5W041118@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bushman@freebsd.org using -f From: Michael Bushkov To: Perforce Change Reviews Cc: Subject: PERFORCE change 113840 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 15:27:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=113840 Change 113840 by bushman@bushman_nss_ldap_cached on 2007/02/01 15:27:21 IFC Affected files ... .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/etc/etc.powerpc/ttys#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/include/Makefile#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/include/objformat.h#2 delete .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/gen/Makefile.inc#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/gen/Symbol.map#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/gen/getobjformat.3#2 delete .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/gen/getobjformat.c#2 delete .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/nss_compat/compat_group.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/nss_compat/compat_serv.c#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/nss_dns/dns_passwd.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/nss_nis/nis_hosts_addrinfo.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/share/mk/bsd.own.mk#4 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/Makefile#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/calendar/calendars/calendar.music#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/Makefile#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/gzexe#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/gzexe.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/gzip.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/gzip.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/unbzip2.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zdiff#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zdiff.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zforce#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zforce.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zgrep#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zgrep.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zmore#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zmore.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/znew#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/znew.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/gzip/zuncompress.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/objformat/Makefile#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/objformat/objformat.1#2 delete .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/objformat/objformat.c#2 delete .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/objformat/objformat.sh#1 branch .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/Makefile#4 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/gstat/Makefile#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/mountd/mountd.c#4 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/pkg_install/sign/main.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/pkg_install/sign/stand.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/quotaon/quotaon.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/sysinstall/index.c#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/vnconfig/Makefile#2 delete .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/vnconfig/vnconfig.c#2 delete Differences ... ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/etc/etc.powerpc/ttys#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/etc.powerpc/ttys,v 1.3 2005/09/10 22:46:03 grehan Exp $ +# $FreeBSD: src/etc/etc.powerpc/ttys,v 1.4 2007/01/26 06:22:34 marcel Exp $ # @(#)ttys 5.1 (Berkeley) 4/17/89 # # This file specifies various information about terminals on the system. @@ -32,12 +32,6 @@ # when going to single-user mode. console none unknown off secure # -# ofw_console(4) -#screen "/usr/libexec/getty Pc" cons25 on secure -# zs(4) -#ttyy0 "/usr/libexec/getty std.9600" cons25 on secure -#ttyy1 "/usr/libexec/getty std.9600" cons25 off secure -# ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure @@ -50,10 +44,10 @@ #ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. -ttyd0 "/usr/libexec/getty std.9600" dialup off secure -ttyd1 "/usr/libexec/getty std.9600" dialup off secure -ttyd2 "/usr/libexec/getty std.9600" dialup off secure -ttyd3 "/usr/libexec/getty std.9600" dialup off secure +ttyu0 "/usr/libexec/getty std.9600" vt100 on secure +ttyu1 "/usr/libexec/getty std.9600" dialup off secure +ttyu2 "/usr/libexec/getty std.9600" dialup off secure +ttyu3 "/usr/libexec/getty std.9600" dialup off secure # Dumb console dcons "/usr/libexec/getty std.9600" vt100 off secure # Pseudo terminals ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/include/Makefile#3 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.266 2006/11/11 16:26:54 trhodes Exp $ +# $FreeBSD: src/include/Makefile,v 1.267 2007/01/25 22:38:04 peter Exp $ # # Doing a "make install" builds /usr/include. @@ -15,7 +15,7 @@ inttypes.h iso646.h kenv.h langinfo.h libgen.h limits.h link.h \ locale.h malloc.h malloc_np.h memory.h monetary.h mpool.h mqueue.h \ ndbm.h netconfig.h \ - netdb.h nl_types.h nlist.h nss.h nsswitch.h objformat.h paths.h \ + netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \ printf.h proc_service.h pthread.h \ pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h regexp.h \ res_update.h resolv.h runetype.h search.h setjmp.h sgtty.h \ ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/gen/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.125 2006/03/13 01:14:56 deischen Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.126 2007/01/25 22:25:59 peter Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen @@ -14,7 +14,7 @@ getbootfile.c getbsize.c \ getcap.c getcwd.c getdomainname.c getgrent.c getgrouplist.c \ gethostname.c getloadavg.c getlogin.c getmntinfo.c getnetgrent.c \ - getobjformat.c getosreldate.c getpagesize.c \ + getosreldate.c getpagesize.c \ getpeereid.c getprogname.c getpwent.c getttyent.c \ getusershell.c getvfsbyname.c glob.c \ initgroups.c isatty.c isinf.c isnan.c jrand48.c lcong48.c \ @@ -49,7 +49,7 @@ getbootfile.3 getbsize.3 getcap.3 getcontext.3 getcwd.3 \ getdiskbyname.3 getdomainname.3 getfsent.3 \ getgrent.3 getgrouplist.3 gethostname.3 getloadavg.3 \ - getmntinfo.3 getnetgrent.3 getobjformat.3 getosreldate.3 \ + getmntinfo.3 getnetgrent.3 getosreldate.3 \ getpagesize.3 getpass.3 getpeereid.3 getprogname.3 getpwent.3 \ getttyent.3 getusershell.3 getvfsbyname.3 \ glob.3 initgroups.3 isgreater.3 ldexp.3 lockf.3 makecontext.3 \ ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/gen/Symbol.map#3 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.1 2006/03/13 00:53:17 deischen Exp $ +# $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.2 2007/01/25 22:36:36 peter Exp $ FBSD_1.0 { __xuname; @@ -175,7 +175,6 @@ getnetgrent; endnetgrent; innetgr; - getobjformat; getosreldate; getpagesize; getpeereid; ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/nss_compat/compat_group.c#2 (text+ko) ==== @@ -39,14 +39,15 @@ #include #include #include +#include "namespace.h" #include #include +#include "un-namespace.h" #include #include #include #include #include -#include "libc_private.h" #include "nss_tls.h" #include "gr_scan.h" #include "nss_compat.h" ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/nss_compat/compat_serv.c#3 (text+ko) ==== ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/nss_dns/dns_passwd.c#2 (text+ko) ==== @@ -54,7 +54,6 @@ #include #include #include -#include "libc_private.h" #include "nss_tls.h" #include "pw_scan.h" ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/nss_nis/nis_hosts_addrinfo.c#2 (text+ko) ==== @@ -90,7 +90,6 @@ #include #include #include -#include "libc_private.h" #include "res_config.h" #ifdef DEBUG ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/share/mk/bsd.own.mk#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/mk/bsd.own.mk,v 1.59 2006/11/19 16:28:52 ru Exp $ +# $FreeBSD: src/share/mk/bsd.own.mk,v 1.60 2007/01/26 10:19:07 delphij Exp $ # # The include file set common variables for owner, # group, mode, and directories. Defaults are in brackets. @@ -297,6 +297,7 @@ BIND_UTILS \ BLUETOOTH \ BOOT \ + BZIP2 \ CALENDAR \ CDDL \ CPP \ @@ -435,6 +436,7 @@ # MK_* variable is set to "no". # .for var in \ + BZIP2 \ GNU \ INET6 \ IPX \ ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)Makefile 8.3 (Berkeley) 1/7/94 -# $FreeBSD: src/usr.bin/Makefile,v 1.297 2006/11/26 14:36:33 ru Exp $ +# $FreeBSD: src/usr.bin/Makefile,v 1.299 2007/01/26 10:19:07 delphij Exp $ .include @@ -75,6 +75,7 @@ getent \ getopt \ ${_gprof} \ + gzip \ head \ ${_hesinfo} \ hexdump \ @@ -139,7 +140,6 @@ nohup \ ${_nslookup} \ ${_nsupdate} \ - objformat \ opieinfo \ opiekey \ opiepasswd \ ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" SUCH DAMAGE. .\" .\" $Id: rfcomm_sppd.1,v 1.3 2003/09/07 18:15:55 max Exp $ -.\" $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1,v 1.9 2005/12/07 19:41:58 emax Exp $ +.\" $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1,v 1.10 2007/01/25 20:54:59 emax Exp $ .\" -.Dd April 26, 2003 +.Dd January 24, 2007 .Dt RFCOMM_SPPD 1 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd RFCOMM Serial Port Profile daemon .Sh SYNOPSIS .Nm -.Op Fl bh +.Op Fl bhS .Fl a Ar address .Fl c Ar channel .Op Fl t Ar tty @@ -41,7 +41,11 @@ The .Nm utility is a Serial Port Profile daemon. -It opens RFCOMM connection to the specified +It can operate in two modes: client and server. +.Pp +In client mode, +.Nm +opens RFCOMM connection to the specified .Ar address server and .Ar channel . @@ -54,8 +58,29 @@ .Fl t option was specified. .Pp +If the +.Fl S +option is specified, +.Nm +will operate in server mode and act as RFCOMM server, +listening on +.Dv ANY +address and advertising a virtual serial port +via the +.Xr sdpd 8 +daemon. The +.Fl t +option must be specified; +the server side of the virtual serial port is attached to the pseudo-terminal +.Ar tty . .Nm +should be run as root in order to communicate with +.Xr sdp 8 +in this case. +.Pp +The +.Nm utility opens both master and slave pseudo terminals. This is done to ensure that RFCOMM connection stays open until .Nm @@ -71,17 +96,31 @@ The options are as follows: .Bl -tag -width indent .It Fl a Ar address -This required option specifies the address of the remote RFCOMM server. +In client mode, +this required option specifies the address of the remote RFCOMM server. +If this option is specified in server mode, +.Nm +will only accept connections from the +.Tn Bluetooth +device with address +.Ar address . The address can be specified as BD_ADDR or name. -If name was specified then the +If name was specified then .Nm utility will attempt to resolve the name via .Xr bt_gethostbyname 3 . .It Fl b Detach from the controlling terminal, i.e., run in background. .It Fl c Ar channel -This option specifies RFCOMM channel to connect to. -RFCOMM channel could either be a number between 1 and 30 or a service name. +In both client and server mode, +this required option specifies the RFCOMM channel to connect to or listen on. +In server mode, +the channel should be a number between 1 and 30. +If not specified, +.Nm +will try to allocate RFCOMM channel number based on process ID. +In client mode, +the channel could either be a number between 1 and 30 or a service name. Supported service names are: .Cm DUN (for DialUp Networking service), @@ -97,11 +136,16 @@ Discovery Protocol from the server. .It Fl h Display usage message and exit. +.It Fl S +Server mode; see +.Sx DESCRIPTION . .It Fl t Ar tty Slave pseudo tty name. If not set stdin/stdout will be used. This option is required if .Fl b +or +.Fl S option was specified. .El .Sh FILES @@ -129,7 +173,8 @@ .Xr bluetooth 3 , .Xr ng_btsocket 4 , .Xr pty 4 , -.Xr rfcomm_pppd 8 +.Xr rfcomm_pppd 8 , +.Xr sdpd 8 .Sh AUTHORS .An Maksim Yevmenkin Aq m_evmenkin@yahoo.com .Sh BUGS ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $Id: rfcomm_sppd.c,v 1.4 2003/09/07 18:15:55 max Exp $ - * $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c,v 1.8 2005/12/07 19:41:58 emax Exp $ + * $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c,v 1.9 2007/01/25 20:54:59 emax Exp $ */ #include @@ -72,16 +72,17 @@ struct sockaddr_rfcomm ra; bdaddr_t addr; int n, background, channel, service, - s, amaster, aslave, fd; + s, amaster, aslave, fd, doserver; fd_set rfd; char *tty = NULL, *ep = NULL, buf[SPPD_BUFFER_SIZE]; memcpy(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)); background = channel = 0; service = SDP_SERVICE_CLASS_SERIAL_PORT; + doserver = 0; /* Parse command line options */ - while ((n = getopt(argc, argv, "a:bc:t:h")) != -1) { + while ((n = getopt(argc, argv, "a:bc:t:hS")) != -1) { switch (n) { case 'a': /* BDADDR */ if (!bt_aton(optarg, &addr)) { @@ -134,6 +135,10 @@ tty = optarg; break; + case 'S': + doserver = 1; + break; + case 'h': default: usage(); @@ -142,7 +147,7 @@ } /* Check if we have everything we need */ - if (memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) == 0) + if (!doserver && memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) == 0) usage(); /* NOT REACHED */ @@ -165,17 +170,9 @@ if (sigaction(SIGCHLD, &sa, NULL) < 0) err(1, "Could not sigaction(SIGCHLD)"); - /* Check channel, if was not set then obtain it via SDP */ - if (channel == 0 && service != 0) - if (rfcomm_channel_lookup(NULL, &addr, - service, &channel, &n) != 0) - errc(1, n, "Could not obtain RFCOMM channel"); - if (channel <= 0 || channel > 30) - errx(1, "Invalid RFCOMM channel number %d", channel); - /* Open TTYs */ if (tty == NULL) { - if (background) + if (background || doserver) usage(); amaster = STDIN_FILENO; @@ -187,24 +184,95 @@ fd = amaster; } + /* Open RFCOMM connection */ + + if (doserver) { + struct sockaddr_rfcomm ma; + bdaddr_t bt_addr_any; + sdp_lan_profile_t lan; + void *ss; + uint32_t sdp_handle; + int acceptsock, aaddrlen; + + if (channel == 0) { + /* XXX: should check if selected channel is unused */ + channel = (getpid() % 30) + 1; + } + acceptsock = socket(PF_BLUETOOTH, SOCK_STREAM, + BLUETOOTH_PROTO_RFCOMM); + if (acceptsock < 0) + err(1, "Could not create socket"); + + memset(&ma, 0, sizeof(ma)); + ma.rfcomm_len = sizeof(ma); + ma.rfcomm_family = AF_BLUETOOTH; + ma.rfcomm_channel = channel; + + if (bind(acceptsock, (struct sockaddr *)&ma, sizeof(ma)) < 0) + err(1, "Could not bind socket -- channel %d in use?", + channel); + listen(acceptsock, 10); + + ss = sdp_open_local(NULL); + if (ss == NULL) + errx(1, "Unable to create local SDP session"); + if (sdp_error(ss) != 0) + errx(1, "Unable to open local SDP session. %s (%d)", + strerror(sdp_error(ss)), sdp_error(ss)); + memset(&lan, 0, sizeof(lan)); + lan.server_channel = channel; + + memcpy(&bt_addr_any, NG_HCI_BDADDR_ANY, sizeof(bt_addr_any)); + if (sdp_register_service(ss, service, &bt_addr_any, + (void *)&lan, sizeof(lan), &sdp_handle) != 0) { + errx(1, "Unable to register LAN service with " + "local SDP daemon. %s (%d)", + strerror(sdp_error(ss)), sdp_error(ss)); + } + + s = -1; + while (s < 0) { + aaddrlen = sizeof(ra); + s = accept(acceptsock, (struct sockaddr *)&ra, + &aaddrlen); + if (s < 0) + err(1, "Unable to accept()"); + if (memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) && + memcmp(&addr, &ra.rfcomm_bdaddr, sizeof(addr))) { + warnx("Connect from wrong client"); + close(s); + s = -1; + } + } + sdp_unregister_service(ss, sdp_handle); + sdp_close(ss); + close(acceptsock); + } else { + /* Check channel, if was not set then obtain it via SDP */ + if (channel == 0 && service != 0) + if (rfcomm_channel_lookup(NULL, &addr, + service, &channel, &n) != 0) + errc(1, n, "Could not obtain RFCOMM channel"); + if (channel <= 0 || channel > 30) + errx(1, "Invalid RFCOMM channel number %d", channel); - /* Open RFCOMM connection */ - memset(&ra, 0, sizeof(ra)); - ra.rfcomm_len = sizeof(ra); - ra.rfcomm_family = AF_BLUETOOTH; + s = socket(PF_BLUETOOTH, SOCK_STREAM, BLUETOOTH_PROTO_RFCOMM); + if (s < 0) + err(1, "Could not create socket"); - s = socket(PF_BLUETOOTH, SOCK_STREAM, BLUETOOTH_PROTO_RFCOMM); - if (s < 0) - err(1, "Could not create socket"); + memset(&ra, 0, sizeof(ra)); + ra.rfcomm_len = sizeof(ra); + ra.rfcomm_family = AF_BLUETOOTH; - if (bind(s, (struct sockaddr *) &ra, sizeof(ra)) < 0) - err(1, "Could not bind socket"); + if (bind(s, (struct sockaddr *) &ra, sizeof(ra)) < 0) + err(1, "Could not bind socket"); - memcpy(&ra.rfcomm_bdaddr, &addr, sizeof(ra.rfcomm_bdaddr)); - ra.rfcomm_channel = channel; + memcpy(&ra.rfcomm_bdaddr, &addr, sizeof(ra.rfcomm_bdaddr)); + ra.rfcomm_channel = channel; - if (connect(s, (struct sockaddr *) &ra, sizeof(ra)) < 0) - err(1, "Could not connect socket"); + if (connect(s, (struct sockaddr *) &ra, sizeof(ra)) < 0) + err(1, "Could not connect socket"); + } /* Became daemon if required */ if (background) { @@ -346,7 +414,7 @@ ttygid = -1; (void) chown(tty, getuid(), ttygid); - (void) chmod(tty, S_IRUSR|S_IWUSR|S_IWGRP); + (void) chmod(tty, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP); (void) revoke(tty); if ((*aslave = open(tty, O_RDWR, 0)) < 0) { @@ -433,12 +501,12 @@ fprintf(stdout, "Usage: %s options\n" \ "Where options are:\n" \ -"\t-a address Address to connect to (required)\n" \ +"\t-a address Peer address (required in client mode)\n" \ "\t-b Run in background\n" \ -"\t-c channel RFCOMM channel to connect to\n" \ -"\t-t tty TTY name (required in background mode)\n" \ +"\t-c channel RFCOMM channel to connect to or listen on\n" \ +"\t-t tty TTY name (required in background or server mode)\n" \ +"\t-S Server mode\n" \ "\t-h Display this message\n", SPPD_IDENT); - exit(255); } /* usage */ ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/calendar/calendars/calendar.music#2 (text+ko) ==== @@ -1,7 +1,7 @@ /* * Music * - * $FreeBSD: src/usr.bin/calendar/calendars/calendar.music,v 1.18 2006/12/29 06:39:35 ru Exp $ + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.music,v 1.19 2007/01/24 21:21:38 dougb Exp $ */ #ifndef _calendar_music_ @@ -21,7 +21,7 @@ 01/17 Led Zeppelin's first album is released, 1969 01/19 Janis Joplin is born in Port Arthur, Texas, 1943 01/22 Sam Cooke is born in Chicago, 1935 -01/24 Warren Zevon is born, 1947 +01/24 Warren Zevon is born in Chicago, 1947 01/25 Bob Dylan plays the second "Hurricane" benefit, in the Astrodome, 1978 01/27 Bobby "Blue" Bland (Robert Calvin Bland) is born in Tennessee, 1930 01/27 Wolfgang Amadeus Mozart is born in Salzburg, Austria, 1756 @@ -157,6 +157,7 @@ 08/26 Jimi Hendrix's Electric Ladyland Studios opens in New York, 1970 09/04 Edvard Grieg dies in Bergen, Norway, 1907 09/07 Keith Moon (The Who) dies in London of a drug overdose, 1978 +09/07 Warren Zevon dies in Los Angeles of lung cancer (mesothelioma), 2003 09/08 Antonin Dvorak born in Nelahozeves, Bohemia, 1841 09/08 Richard Strauss dies in Garmisch-Partenkirchen, Germany, 1949 09/08 Ron "Pigpen" McKernan (Grateful Dead) is born in San Bruno, California, 1945 ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/objformat/Makefile#2 (text+ko) ==== @@ -1,5 +1,7 @@ -# $FreeBSD: src/usr.bin/objformat/Makefile,v 1.18 2002/09/17 01:49:00 peter Exp $ +# $FreeBSD: src/usr.bin/objformat/Makefile,v 1.20 2007/01/25 23:12:19 peter Exp $ -PROG= objformat +SCRIPTS=objformat.sh +NO_MAN= .include + ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/Makefile#4 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)Makefile 5.20 (Berkeley) 6/12/93 -# $FreeBSD: src/usr.sbin/Makefile,v 1.366 2006/11/27 16:55:14 ru Exp $ +# $FreeBSD: src/usr.sbin/Makefile,v 1.367 2007/01/28 08:53:48 phk Exp $ .include @@ -179,7 +179,6 @@ ${_usbdevs} \ vidcontrol \ vipw \ - vnconfig \ watch \ watchdogd \ wicontrol \ ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/gstat/Makefile#2 (text+ko) ==== @@ -1,9 +1,9 @@ -# $FreeBSD: src/usr.sbin/gstat/Makefile,v 1.7 2006/05/20 19:17:47 simon Exp $ +# $FreeBSD: src/usr.sbin/gstat/Makefile,v 1.8 2007/01/30 15:10:37 ru Exp $ PROG= gstat MAN= gstat.8 WARNS?= 5 -DPADD= ${LIBGEOM} ${LIBDEVSTAT} ${LIBBSDXML} ${LIBCURSES} ${LIBEDIT} -LDADD= -lgeom -ldevstat -lbsdxml -lcurses -ledit +DPADD= ${LIBDEVSTAT} ${LIBKVM} ${LIBGEOM} ${LIBBSDXML} ${LIBSBUF} ${LIBEDIT} ${LIBCURSES} +LDADD= -ldevstat -lkvm -lgeom -lbsdxml -lsbuf -ledit -lcurses .include ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/mountd/mountd.c#4 (text+ko) ==== @@ -43,7 +43,7 @@ #endif #include -__FBSDID("$FreeBSD: src/usr.sbin/mountd/mountd.c,v 1.91 2006/11/18 22:43:20 rodrigc Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/mountd/mountd.c,v 1.92 2007/01/26 13:26:43 rodrigc Exp $"); #include #include @@ -1962,7 +1962,8 @@ if (cp == dirp) { if (debug) warnx("mnt unsucc"); - syslog(LOG_ERR, "can't export %s", dirp); + syslog(LOG_ERR, "can't export %s %s", dirp, + errmsg); ret = 1; goto error_exit; } @@ -1972,7 +1973,8 @@ if (statfs(dirp, &fsb1) != 0 || bcmp(&fsb1.f_fsid, &fsb->f_fsid, sizeof(fsb1.f_fsid)) != 0) { *cp = savedc; - syslog(LOG_ERR, "can't export %s", dirp); + syslog(LOG_ERR, "can't export %s %s", dirp, + errmsg); ret = 1; goto error_exit; } ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/pkg_install/sign/main.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/sign/main.c,v 1.2 2002/04/01 09:39:07 obrien Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/sign/main.c,v 1.3 2007/01/30 15:09:30 ru Exp $"); #include #include @@ -106,9 +106,9 @@ int i; int type = TAG_ANY; -/* #ifndef BSD4_4 */ +#ifndef BSD4_4 set_program_name(argv[0]); -/* #endif */ +#endif #ifdef CHECKER_ONLY mode = CHECK; #else ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/pkg_install/sign/stand.c#2 (text+ko) ==== @@ -1,9 +1,9 @@ #include -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/sign/stand.c,v 1.2 2002/04/01 09:39:07 obrien Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/sign/stand.c,v 1.3 2007/01/30 15:09:30 ru Exp $"); #include "stand.h" -#ifdef BSD4_4 +#ifndef BSD4_4 #include #include #include ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/quotaon/quotaon.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/usr.sbin/quotaon/quotaon.c,v 1.10 2004/08/07 04:28:54 imp Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/quotaon/quotaon.c,v 1.11 2007/01/24 22:52:32 mpp Exp $"); /* * Turn quota on/off for a filesystem. @@ -177,8 +177,8 @@ return (1); } if (vflag) - printf("%s: %s quotas turned on\n", fs->fs_file, - qfextension[type]); + printf("%s: %s quotas turned on with data file %s\n", + fs->fs_file, qfextension[type], qfpathname); return (0); } ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/sysinstall/index.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/usr.sbin/sysinstall/index.c,v 1.111 2006/12/19 16:46:44 erwin Exp $ + * $FreeBSD: src/usr.sbin/sysinstall/index.c,v 1.112 2007/01/31 19:13:08 erwin Exp $ */ #include @@ -103,6 +103,7 @@ "german", "Ported software for Germanic countries.", "geography", "Geography-related software.", "gnome", "Components of the Gnome Desktop environment.", + "gnustep", "Software for GNUstep desktop environment.", "graphics", "Graphics libraries and utilities.", "haskell", "Software related to the Haskell language.", "hamradio", "Software for amateur radio.", @@ -133,6 +134,7 @@ "perl5", "Utilities/modules for the PERL5 language.", "plan9", "Software from the Plan9 operating system.", "polish", "Ported software for the Polish market.", + "ports-mgmt", "Utilities for managing ports and packages.", "portuguese", "Ported software for the Portuguese market.", "print", "Utilities for dealing with printing.", "python", "Software related to the Python language.", From owner-p4-projects@FreeBSD.ORG Thu Feb 1 15:37:07 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5E0F016A408; Thu, 1 Feb 2007 15:37:07 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1FC3416A400; Thu, 1 Feb 2007 15:37:07 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (vc4-2-0-87.dsl.netrack.net [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id AE94913C4B3; Thu, 1 Feb 2007 15:37:06 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.13.4/8.13.4) with ESMTP id l11FX8Qc060852; Thu, 1 Feb 2007 08:33:08 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Thu, 01 Feb 2007 08:33:37 -0700 (MST) Message-Id: <20070201.083337.1645217922.imp@bsdimp.com> To: rwatson@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <20070201133157.X12827@fledge.watson.org> References: <200702010631.l116VFBJ006811@repoman.freebsd.org> <20070201133157.X12827@fledge.watson.org> X-Mailer: Mew version 4.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Thu, 01 Feb 2007 08:33:08 -0700 (MST) Cc: perforce@FreeBSD.org Subject: Re: PERFORCE change 113809 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 15:37:07 -0000 In message: <20070201133157.X12827@fledge.watson.org> Robert Watson writes: : : On Thu, 1 Feb 2007, Warner Losh wrote: : : > http://perforce.freebsd.org/chv.cgi?CH=113809 : > : > Change 113809 by imp@imp_lighthouse on 2007/02/01 06:30:17 : > : > Kinky new idea: run pccard_ether in the background. This allows devd : > to respond to things that are happening while pccard_ether is running. : : Hmm. Perhaps it would be better to serialize all events associated with a : particular device in a particular process or thread, so that events from ed0 : and ed1 can run concurrently, but not two events for ed0? I realize that's : quite a bit more complicated than slapping '&' in there, but it might provide : some useful consistency from the perspective of people writing scripts to : start and stop file systems, etc, on removable storage (for example). I'm pretty sure that devd isn't the place for this. Such cooridnation are best done with the scripts that do the configuration. How does devd know to enforce this? Only one fs at a time can run? Only one device + unit? Only one device? If there are issues, then things like pccard_ether will need to get smarter about them. I'm sure there will be issues with link UP/DOWN events. Warner : Robert N M Watson : Computer Laboratory : University of Cambridge : : > : > Affected files ... : > : > .. //depot/projects/arm/src/etc/devd.conf#2 edit : > : > Differences ... : > : > ==== //depot/projects/arm/src/etc/devd.conf#2 (text+ko) ==== : > : > @@ -34,13 +34,13 @@ : > notify 0 { : > match "system" "IFNET"; : > match "type" "ATTACH"; : > - action "/etc/pccard_ether $subsystem start"; : > + action "/etc/pccard_ether $subsystem start &"; : > }; : > : > notify 0 { : > match "system" "IFNET"; : > match "type" "DETACH"; : > - action "/etc/pccard_ether $subsystem stop"; : > + action "/etc/pccard_ether $subsystem stop &"; : > }; : > : > # : > @@ -63,11 +63,11 @@ : > # : > detach 0 { : > media-type "802.11"; : > - action "/etc/pccard_ether $device-name stop"; : > + action "/etc/pccard_ether $device-name stop &"; : > }; : > attach 0 { : > media-type "802.11"; : > - action "/etc/pccard_ether $device-name start"; : > + action "/etc/pccard_ether $device-name start &"; : > }; : > notify 0 { : > match "system" "IFNET"; : > : From owner-p4-projects@FreeBSD.ORG Thu Feb 1 15:52:12 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DCB0916A403; Thu, 1 Feb 2007 15:52:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B7B1016A401 for ; Thu, 1 Feb 2007 15:52:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id AA01A13C442 for ; Thu, 1 Feb 2007 15:52:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11FqBne049574 for ; Thu, 1 Feb 2007 15:52:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11FqBmg049570 for perforce@freebsd.org; Thu, 1 Feb 2007 15:52:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 1 Feb 2007 15:52:11 GMT Message-Id: <200702011552.l11FqBmg049570@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113841 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 15:52:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=113841 Change 113841 by rwatson@rwatson_cinnamon on 2007/02/01 15:51:33 Update zbuf_tap for shared header in buffers. Affected files ... .. //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.c#4 edit Differences ... ==== //depot/projects/zcopybpf/utils/zbuf_tap/zbuf_tap.c#4 (text+ko) ==== @@ -56,7 +56,9 @@ int main(int argc, char *argv[]) { - u_char *bufa, *bufb, *buf; + struct bpf_zbuf_header *bzh, *bzha, *bzhb; /* Buffer headers. */ + u_char *zbufa, *zbufb, *zbuf; /* Mapped pages. */ + u_char *buf; /* Buffers. */ u_int buflen, maxbuflen; struct pollfd pollfd; char name[PATH_MAX]; @@ -67,14 +69,18 @@ buflen = getpagesize() * 2; - bufa = mmap(NULL, buflen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); - if (bufa == MAP_FAILED) + zbufa = mmap(NULL, buflen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); + if (zbufa == MAP_FAILED) err(-1, "mmap"); - bufb = mmap(NULL, buflen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); - if (bufb == MAP_FAILED) + bzha = (struct bpf_zbuf_header *)zbufa; + + zbufb = mmap(NULL, buflen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); + if (zbufb == MAP_FAILED) err(-1, "mmap"); + bzhb = (struct bpf_zbuf_header *)zbufb; + tap_fd = tap_open(); if (tap_fd < 0) err(-1, "tap_open"); @@ -94,7 +100,7 @@ err(-1, "bpf_getzmax"); printf("zmax: %d\n", maxbuflen); - if (bpf_setzbuf(bpf_fd, bufa, bufb, buflen) < 0) + if (bpf_setzbuf(bpf_fd, zbufa, zbufb, buflen) < 0) err(-1, "bpf_setzbuf"); if (bpf_setimmediate(bpf_fd, 1) < 0) @@ -113,11 +119,25 @@ * Exercise various poll mechanisms to see which say * something is ready to read. */ - if (bpf_getznext(bpf_fd, (void **)&buf, &buflen) < 0) + if (bpf_getznext(bpf_fd, (void **)&zbuf, &buflen) < 0) err(-1, "bpf_getznext"); - printf("bpf_getznext returned (0x%x, %d)\n", (uintptr_t)buf, + printf("bpf_getznext returned (0x%x, %d)\n", (uintptr_t)zbuf, buflen); + if (zbuf != NULL) { + bzh = (struct bpf_zbuf_header *)zbuf; + if (bzh == bzha) + printf("Buffer A is next\n"); + else if (bzh == bzhb) + printf("Buffer B is next\n"); + else + errx(-1, "getznext unrecognized buffer"); + buf = (u_char *)(bzh + 1); + } else { + bzh = NULL; + buf = NULL; + } + if (ioctl(bpf_fd, FIONREAD, &i) < 0) err(-1, "ioctl(FIONREAD)"); printf("FIONREAD returned %d\n", i); @@ -146,8 +166,8 @@ else printf("select returned not readable\n"); - if (buf != NULL) { - if (bpf_ackzbuf(bpf_fd, buf, buflen) < 0) + if (zbuf != NULL) { + if (bpf_ackzbuf(bpf_fd, zbuf, buflen) < 0) err(-1, "bpf_ackzbuf(0x%x, %d)", (uintptr_t)buf, buflen); } From owner-p4-projects@FreeBSD.ORG Thu Feb 1 15:56:17 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB3F916A406; Thu, 1 Feb 2007 15:56:17 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5C40616A402 for ; Thu, 1 Feb 2007 15:56:17 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 5060D13C4B6 for ; Thu, 1 Feb 2007 15:56:17 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11FuHiW053997 for ; Thu, 1 Feb 2007 15:56:17 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11FuHPm053994 for perforce@freebsd.org; Thu, 1 Feb 2007 15:56:17 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 1 Feb 2007 15:56:17 GMT Message-Id: <200702011556.l11FuHPm053994@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 113842 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 15:56:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=113842 Change 113842 by gonzo@gonzo_jeeves on 2007/02/01 15:56:14 o Preserve s0 value in stack through function call as ABI requires. Affected files ... .. //depot/projects/mips2/src/lib/libc/mips/sys/sbrk.S#4 edit Differences ... ==== //depot/projects/mips2/src/lib/libc/mips/sys/sbrk.S#4 (text+ko) ==== @@ -55,6 +55,8 @@ .cpload t9 .set reorder #endif + subu sp, sp, 4 + sw s0, 0(sp) lw s0, _C_LABEL(__curbrk) li v0, SYS_break addu a0, a0, s0 # compute current break @@ -62,6 +64,8 @@ bne a3, zero, 1f move v0, s0 # return old val of curbrk from above sw a0, _C_LABEL(__curbrk) # save current val of curbrk from above + lw s0, 0(sp) + addu sp, sp, 4 j ra 1: la t9, _C_LABEL(__cerror) From owner-p4-projects@FreeBSD.ORG Thu Feb 1 16:17:47 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E44116A402; Thu, 1 Feb 2007 16:17:45 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C49A316A400 for ; Thu, 1 Feb 2007 16:17:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id B795F13C442 for ; Thu, 1 Feb 2007 16:17:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11GHiic058427 for ; Thu, 1 Feb 2007 16:17:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11GHiMT058424 for perforce@freebsd.org; Thu, 1 Feb 2007 16:17:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 1 Feb 2007 16:17:44 GMT Message-Id: <200702011617.l11GHiMT058424@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113843 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 16:17:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=113843 Change 113843 by rwatson@rwatson_cinnamon on 2007/02/01 16:17:41 Volatile. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.h#6 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.h#6 (text+ko) ==== @@ -183,9 +183,9 @@ * fit in a single page on all architectures. */ struct bpf_zbuf_header { - u_int bzh_kernel_gen; /* Kernel generation number. */ - u_int bzh_kernel_len; /* Length of buffer. */ - u_int bzh_user_gen; /* User generation number. */ + volatile u_int bzh_kernel_gen; /* Kernel generation number. */ + volatile u_int bzh_kernel_len; /* Length of buffer. */ + volatile u_int bzh_user_gen; /* User generation number. */ u_int _bzh_pad[5]; /* Padding out to 32-byte boundary. */ }; From owner-p4-projects@FreeBSD.ORG Thu Feb 1 16:59:38 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C88DE16A40B; Thu, 1 Feb 2007 16:59:37 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 98AB416A402 for ; Thu, 1 Feb 2007 16:59:37 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 8CF0513C4B2 for ; Thu, 1 Feb 2007 16:59:37 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11Gxbw6073142 for ; Thu, 1 Feb 2007 16:59:37 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11Gxbe0073139 for perforce@freebsd.org; Thu, 1 Feb 2007 16:59:37 GMT (envelope-from piso@freebsd.org) Date: Thu, 1 Feb 2007 16:59:37 GMT Message-Id: <200702011659.l11Gxbe0073139@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113845 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 16:59:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=113845 Change 113845 by piso@piso_newluxor on 2007/02/01 16:59:07 Teach mbuf to LibAliasUnaliasOut(). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#51 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.h#12 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#51 (text+ko) ==== @@ -167,7 +167,7 @@ #define PULLUP_ICMPHDR(pip, ptr) do { \ struct mbuf *m; \ - pip = ptr; \ + pip = (struct ip *)ptr; \ m = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct icmp)); \ (pip) = mtod(m, struct ip *); \ } while (0) @@ -183,10 +183,10 @@ } while (0) #else -#define PULLUP_IPHDR(pip, ptr) pip = ptr +#define PULLUP_IPHDR(pip, ptr) pip = (struct ip *)ptr #define PULLUP_UDPHDR(pip, ptr) pip = ptr #define PULLUP_TCPHDR(pip, ptr) pip = ptr -#define PULLUP_ICMPHDR(pip, ptr) pip = ptr +#define PULLUP_ICMPHDR(pip, ptr) pip = (struct ip *)ptr #define PULLUP_ICMPIP64(pip, ptr, ic) pip = ptr #endif @@ -1533,9 +1533,15 @@ } int +#ifdef _KERNEL +LibAliasUnaliasOut(struct libalias *la, struct mbuf *ptr, /* valid IP packet */ + int maxpacketsize /* for error checking */ +) +#else LibAliasUnaliasOut(struct libalias *la, char *ptr, /* valid IP packet */ int maxpacketsize /* for error checking */ ) +#endif { struct ip *pip; struct icmp *ic; @@ -1545,13 +1551,19 @@ int iresult = PKT_ALIAS_IGNORED; LIBALIAS_LOCK(la); - pip = (struct ip *)ptr; + PULLUP_IPHDR(pip, ptr); + if (pip == NULL) + goto getout; /* Defense against mangled packets */ if (ntohs(pip->ip_len) > maxpacketsize || (pip->ip_hl << 2) > maxpacketsize) goto getout; + /* Let's make enough space for any of the protocols header below */ + PULLUP_ICMPHDR(pip, ptr); + if (pip == NULL) + goto getout; ud = (struct udphdr *)ip_next(pip); tc = (struct tcphdr *)ip_next(pip); ic = (struct icmp *)ip_next(pip); ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.h#12 (text+ko) ==== @@ -149,12 +149,13 @@ int LibAliasIn (struct libalias *, struct mbuf *_ptr, int _maxpacketsize); int LibAliasOut(struct libalias *, struct mbuf *_ptr, int _maxpacketsize); int LibAliasOutTry(struct libalias *, struct mbuf *_ptr, int _maxpacketsize, int _create); +int LibAliasUnaliasOut(struct libalias *, struct mbuf *_ptr, int _maxpacketsize); #else int LibAliasIn (struct libalias *, char *_ptr, int _maxpacketsize); int LibAliasOut(struct libalias *, char *_ptr, int _maxpacketsize); int LibAliasOutTry(struct libalias *, char *_ptr, int _maxpacketsize, int _create); +int LibAliasUnaliasOut(struct libalias *, char *_ptr, int _maxpacketsize); #endif -int LibAliasUnaliasOut(struct libalias *, char *_ptr, int _maxpacketsize); /* Port and address redirection functions. */ From owner-p4-projects@FreeBSD.ORG Thu Feb 1 17:01:42 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 698A116A406; Thu, 1 Feb 2007 17:01:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 372CB16A403 for ; Thu, 1 Feb 2007 17:01:42 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2D04513C4AA for ; Thu, 1 Feb 2007 17:01:42 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11H1gZV073493 for ; Thu, 1 Feb 2007 17:01:42 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11H1fvl073474 for perforce@freebsd.org; Thu, 1 Feb 2007 17:01:41 GMT (envelope-from piso@freebsd.org) Date: Thu, 1 Feb 2007 17:01:41 GMT Message-Id: <200702011701.l11H1fvl073474@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113846 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 17:01:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=113846 Change 113846 by piso@piso_newluxor on 2007/02/01 17:01:10 We don't export the old PacketAlias* API when libalias is in kernel land: axe alias_old.c as a dependency. Affected files ... .. //depot/projects/soc2005/libalias/sys/modules/libalias/libalias/Makefile#11 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/modules/libalias/libalias/Makefile#11 (text+ko) ==== @@ -3,6 +3,6 @@ .PATH: ${.CURDIR}/../../../netinet/libalias KMOD= libalias -SRCS= alias.c alias_db.c alias_proxy.c alias_util.c alias_old.c alias_mod.c +SRCS= alias.c alias_db.c alias_proxy.c alias_util.c alias_mod.c .include From owner-p4-projects@FreeBSD.ORG Thu Feb 1 17:43:37 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 31FFF16A40E; Thu, 1 Feb 2007 17:43:37 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 07AA316A402 for ; Thu, 1 Feb 2007 17:43:37 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D7D3813C4EA for ; Thu, 1 Feb 2007 17:43:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11HhZKH081740 for ; Thu, 1 Feb 2007 17:43:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11HhZ8A081736 for perforce@freebsd.org; Thu, 1 Feb 2007 17:43:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 1 Feb 2007 17:43:35 GMT Message-Id: <200702011743.l11HhZ8A081736@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113849 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 17:43:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=113849 Change 113849 by rwatson@rwatson_cinnamon on 2007/02/01 17:42:38 Assign length field of header before bumping generation number, as the generation bump is the handoff and we don't want to be updating any fields in the buffer after that. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#9 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#9 (text+ko) ==== @@ -372,8 +372,8 @@ zb = (struct zbuf *)d->bd_hbuf; KASSERT(zb != NULL, ("bpf_zerocopy_bufheld: zb == NULL")); + zb->zb_header->bzh_kernel_len = d->bd_hlen; zb->zb_header->bzh_kernel_gen++; - zb->zb_header->bzh_kernel_len = d->bd_hlen; } /* From owner-p4-projects@FreeBSD.ORG Thu Feb 1 18:09:11 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1FC816A403; Thu, 1 Feb 2007 18:09:10 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 734AF16A400 for ; Thu, 1 Feb 2007 18:09:10 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 68E2013C49D for ; Thu, 1 Feb 2007 18:09:10 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11I9ArX086562 for ; Thu, 1 Feb 2007 18:09:10 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11I9AKb086559 for perforce@freebsd.org; Thu, 1 Feb 2007 18:09:10 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 1 Feb 2007 18:09:10 GMT Message-Id: <200702011809.l11I9AKb086559@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 113851 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 18:09:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=113851 Change 113851 by gonzo@gonzo_jeeves on 2007/02/01 18:08:25 o Make csu meet ABI calls requirements. Affected files ... .. //depot/projects/mips2/src/lib/csu/mips/crt1.c#5 edit .. //depot/projects/mips2/src/lib/csu/mips/crti.S#2 edit Differences ... ==== //depot/projects/mips2/src/lib/csu/mips/crt1.c#5 (text+ko) ==== @@ -79,6 +79,7 @@ " .align 8 \n" " .globl _start \n" " _start: \n" +" .cpload $25 \n" " /* Get argc, argv from stack */ \n" " /* lw a0, 0(sp) */\n" " /* move a1, sp */\n" @@ -95,8 +96,11 @@ " \n" " and $29, 0xfffffff8 \n" "\n" -" j __start "); +" la $25, __start \n" +" nop \n" +" j $25\n"); /* ARGSUSED */ + void __start(int argc, char **argv) { ==== //depot/projects/mips2/src/lib/csu/mips/crti.S#2 (text+ko) ==== @@ -6,9 +6,18 @@ .globl _init .type _init,%function _init: +#ifdef __ABICALLS__ + .set noreorder + .cpload $25 + .set reorder subu sp, sp, 32 + .cprestore 16 sw ra, 28(sp) +#else + subu sp, sp, 32 + sw ra, 28(sp) +#endif .section .fini,"ax",%progbits .align 4 .globl _fini From owner-p4-projects@FreeBSD.ORG Thu Feb 1 18:15:19 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9084D16A403; Thu, 1 Feb 2007 18:15:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 67B2116A401 for ; Thu, 1 Feb 2007 18:15:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 5C9F113C442 for ; Thu, 1 Feb 2007 18:15:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11IFJZM088010 for ; Thu, 1 Feb 2007 18:15:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11IFIqB088006 for perforce@freebsd.org; Thu, 1 Feb 2007 18:15:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 1 Feb 2007 18:15:18 GMT Message-Id: <200702011815.l11IFIqB088006@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 113852 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 18:15:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=113852 Change 113852 by rwatson@rwatson_cinnamon on 2007/02/01 18:14:51 Correct a bug in mbuf append mode, in which the offset into the mbuf wasn't properly taken into account -- as a result, instead of getting the next bit of the mbuf when crossing a page boundary, you got the same bit of the mbuf. Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#10 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf_zerocopy.c#10 (text+ko) ==== @@ -329,9 +329,9 @@ KASSERT(m != NULL, ("bpf_zerocopy_append_mbuf: end of mbuf chain")); - count = min(m->m_len, len); + count = min(m->m_len - moffset, len); count = min(count, PAGE_SIZE - poffset); - bcopy(mtod(m, void *), + bcopy(mtod(m, u_char *) + moffset, ((u_char *)sf_buf_kva(zb->zb_pages[page])) + poffset, count); From owner-p4-projects@FreeBSD.ORG Thu Feb 1 21:29:28 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A3FD216A40B; Thu, 1 Feb 2007 21:29:28 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7E3DE16A408 for ; Thu, 1 Feb 2007 21:29:28 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 74FB013C478 for ; Thu, 1 Feb 2007 21:29:28 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11LTSeB033795 for ; Thu, 1 Feb 2007 21:29:28 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11LTSmB033792 for perforce@freebsd.org; Thu, 1 Feb 2007 21:29:28 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 1 Feb 2007 21:29:28 GMT Message-Id: <200702012129.l11LTSmB033792@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 113862 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 21:29:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=113862 Change 113862 by gonzo@gonzo_jeeves on 2007/02/01 21:28:41 o Add storage space for $gp and $fp(AKA $s8) to trapframe struct o Add storage space for $gp to pcb o Add correspondent entries to genassym Affected files ... .. //depot/projects/mips2/src/sys/mips/include/frame.h#5 edit .. //depot/projects/mips2/src/sys/mips/include/pcb.h#5 edit .. //depot/projects/mips2/src/sys/mips/mips/genassym.c#6 edit Differences ... ==== //depot/projects/mips2/src/sys/mips/include/frame.h#5 (text+ko) ==== @@ -74,9 +74,11 @@ #define TF_MULHI 28 #define TF_EPC 29 /* may be changed by trap() call */ -#define TF_SP 30 +#define TF_S8 30 +#define TF_SP 31 +#define TF_GP 32 -#define TF_NREGS 31 +#define TF_NREGS 33 /* Needs to be 8-byte aligned */ struct trapframe { ==== //depot/projects/mips2/src/sys/mips/include/pcb.h#5 (text+ko) ==== @@ -35,7 +35,7 @@ */ struct pcb { caddr_t pcb_onfault; - __register_t pcb_regs[13]; + __register_t pcb_regs[14]; }; #define PCB_REG_S0 (0) @@ -51,6 +51,7 @@ #define PCB_REG_SR (10) #define PCB_REG_RA (11) #define PCB_REG_PC (12) +#define PCB_REG_GP (13) #ifdef _KERNEL #define PCB_FSR(pcb) (0) ==== //depot/projects/mips2/src/sys/mips/mips/genassym.c#6 (text+ko) ==== @@ -157,6 +157,7 @@ ASSYM(TF_REG_MULHI, offsetof(struct trapframe, tf_regs[TF_MULHI])); ASSYM(TF_REG_EPC, offsetof(struct trapframe, tf_regs[TF_EPC])); ASSYM(TF_REG_SP, offsetof(struct trapframe, tf_regs[TF_SP])); +ASSYM(TF_REG_GP, offsetof(struct trapframe, tf_regs[TF_GP])); ASSYM(TF_REG_S0, offsetof(struct trapframe, tf_regs[TF_S0])); ASSYM(TF_REG_S1, offsetof(struct trapframe, tf_regs[TF_S1])); @@ -166,6 +167,7 @@ ASSYM(TF_REG_S5, offsetof(struct trapframe, tf_regs[TF_S5])); ASSYM(TF_REG_S6, offsetof(struct trapframe, tf_regs[TF_S6])); ASSYM(TF_REG_S7, offsetof(struct trapframe, tf_regs[TF_S7])); +ASSYM(TF_REG_S8, offsetof(struct trapframe, tf_regs[TF_S8])); ASSYM(TF_PPL, offsetof(struct trapframe, tf_ppl)); @@ -181,6 +183,7 @@ ASSYM(PCB_REG_SP, offsetof(struct pcb, pcb_regs[PCB_REG_SP])); ASSYM(PCB_REG_SR, offsetof(struct pcb, pcb_regs[PCB_REG_SR])); ASSYM(PCB_REG_RA, offsetof(struct pcb, pcb_regs[PCB_REG_RA])); +ASSYM(PCB_REG_GP, offsetof(struct pcb, pcb_regs[PCB_REG_GP])); ASSYM(VM_MIN_ADDRESS, VM_MIN_ADDRESS); ASSYM(VM_MAXUSER_ADDRESS, VM_MAXUSER_ADDRESS); From owner-p4-projects@FreeBSD.ORG Thu Feb 1 21:32:33 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1339A16A407; Thu, 1 Feb 2007 21:32:33 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C547916A403 for ; Thu, 1 Feb 2007 21:32:32 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id BC0EF13C4B8 for ; Thu, 1 Feb 2007 21:32:32 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11LWWaG034753 for ; Thu, 1 Feb 2007 21:32:32 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11LWWgv034748 for perforce@freebsd.org; Thu, 1 Feb 2007 21:32:32 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 1 Feb 2007 21:32:32 GMT Message-Id: <200702012132.l11LWWgv034748@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 113863 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 21:32:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=113863 Change 113863 by gonzo@gonzo_jeeves on 2007/02/01 21:32:21 o Add $fp and $gp to exception_save_registers and exception_restore_registers. Affected files ... .. //depot/projects/mips2/src/sys/mips/mips/exception.S#18 edit Differences ... ==== //depot/projects/mips2/src/sys/mips/mips/exception.S#18 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips2/src/sys/mips/mips/exception.S#17 $ + * $P4: //depot/projects/mips2/src/sys/mips/mips/exception.S#18 $ */ /* $NetBSD: mipsX_subr.S,v 1.19 2005/12/11 12:18:09 christos Exp $ */ @@ -784,6 +784,7 @@ lw s5, TF_REG_S5(k1) lw s6, TF_REG_S6(k1) lw s7, TF_REG_S7(k1) + lw s8, TF_REG_S8(k1) @@ -809,9 +810,9 @@ lw a0, TF_REG_A0(k1) lw v1, TF_REG_V1(k1) lw v0, TF_REG_V0(k1) + lw gp, TF_REG_GP(k1) lw sp, TF_REG_SP(k1) - /* * We are done with the assembler temporary, restore it, and * return with it disabled, just in case. @@ -860,6 +861,7 @@ sw s5, TF_REG_S5(k1) sw s6, TF_REG_S6(k1) sw s7, TF_REG_S7(k1) + sw s8, TF_REG_S8(k1) /* * Brief interlude. @@ -897,6 +899,7 @@ * initial subtraction for the trapframe. */ sw sp, TF_REG_SP(k1) + sw gp, TF_REG_GP(k1) From owner-p4-projects@FreeBSD.ORG Thu Feb 1 21:35:37 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 780E616A406; Thu, 1 Feb 2007 21:35:37 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4A1AE16A403 for ; Thu, 1 Feb 2007 21:35:37 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4018113C4AA for ; Thu, 1 Feb 2007 21:35:37 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11LZbJb035297 for ; Thu, 1 Feb 2007 21:35:37 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11LZa0h035294 for perforce@freebsd.org; Thu, 1 Feb 2007 21:35:36 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 1 Feb 2007 21:35:36 GMT Message-Id: <200702012135.l11LZa0h035294@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 113864 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 21:35:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=113864 Change 113864 by gonzo@gonzo_jeeves on 2007/02/01 21:35:03 o Add $gp to PCB handling routines. Affected files ... .. //depot/projects/mips2/src/sys/mips/mips/swtch.S#8 edit Differences ... ==== //depot/projects/mips2/src/sys/mips/mips/swtch.S#8 (text+ko) ==== @@ -122,6 +122,7 @@ lw s8, PCB_REG_S8(t0) lw sp, PCB_REG_SP(t0) lw ra, PCB_REG_RA(t0) + lw gp, PCB_REG_GP(t0) lw t0, PCB_REG_SR(t0) /* Copy s0-s3 into a0-s3 so we can just pass args. */ move a0, s0 @@ -148,6 +149,7 @@ sw s6, PCB_REG_S6(a0) sw s7, PCB_REG_S7(a0) sw s8, PCB_REG_S8(a0) + sw gp, PCB_REG_GP(a0) sw sp, PCB_REG_SP(a0) sw t0, PCB_REG_SR(a0) sw ra, PCB_REG_RA(a0) From owner-p4-projects@FreeBSD.ORG Thu Feb 1 21:40:44 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6756116A405; Thu, 1 Feb 2007 21:40:44 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 12BA016A400 for ; Thu, 1 Feb 2007 21:40:44 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 099EE13C428 for ; Thu, 1 Feb 2007 21:40:44 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11LehCe035596 for ; Thu, 1 Feb 2007 21:40:43 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11LehCl035593 for perforce@freebsd.org; Thu, 1 Feb 2007 21:40:43 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 1 Feb 2007 21:40:43 GMT Message-Id: <200702012140.l11LehCl035593@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 113865 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 21:40:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=113865 Change 113865 by gonzo@gonzo_jeeves on 2007/02/01 21:40:41 o In order to have userland binaries respecting ABI call conventions syscall handler should skip first 4 words starting from $sp to get arguments counting from 5th. This chunk of stack is called "arguments slot" though it carries no actual values. It is just reserved space which could be filled with $a0..$a4 values by called routine. Affected files ... .. //depot/projects/mips2/src/sys/mips/mips/trap.c#15 edit Differences ... ==== //depot/projects/mips2/src/sys/mips/mips/trap.c#15 (text+ko) ==== @@ -407,8 +407,16 @@ /* Copy arguments from stack (if any) */ if(i < nargs) { - error = copyin((void *)frame->tf_regs[TF_SP], copyargs + i, - (nargs - i) * sizeof(register_t)); + /* + * ABI NOTE: + * syscall routine does not modify SP so we should take into + * account "arguments slot" - four words reserved by callee + * for called routine. These words *might* be used by called + * routine as a store place for $a0..$a3 however content of + * slot is undefined. + */ + error = copyin((void *)(frame->tf_regs[TF_SP] + 16), + copyargs + i, (nargs - i) * sizeof(register_t)); if (error) goto bad; From owner-p4-projects@FreeBSD.ORG Thu Feb 1 21:50:57 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4B4FC16A533; Thu, 1 Feb 2007 21:50:57 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C9A7816A51B for ; Thu, 1 Feb 2007 21:50:56 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id BBF9D13C46B for ; Thu, 1 Feb 2007 21:50:56 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11Loucq037433 for ; Thu, 1 Feb 2007 21:50:56 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11LouJZ037429 for perforce@freebsd.org; Thu, 1 Feb 2007 21:50:56 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 1 Feb 2007 21:50:56 GMT Message-Id: <200702012150.l11LouJZ037429@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 113866 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 21:50:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=113866 Change 113866 by gonzo@gonzo_jeeves on 2007/02/01 21:50:04 o Get rid of small data and small bss sections by specifying -G0. Affected files ... .. //depot/projects/mips2/src/sys/conf/Makefile.mips#10 edit Differences ... ==== //depot/projects/mips2/src/sys/conf/Makefile.mips#10 (text+ko) ==== @@ -47,8 +47,8 @@ # We add the -fno-pic flag to kernels because otherwise performance # is extremely poor, as well as -mno-abicalls to force no ABI usage. -CFLAGS+=-fno-pic -mno-abicalls $(ARCH_FLAGS) -HACK_EXTRA_FLAGS+=-fno-pic -mno-abicalls $(ARCH_FLAGS) +CFLAGS+=-fno-pic -mno-abicalls -G0 $(ARCH_FLAGS) +HACK_EXTRA_FLAGS+=-fno-pic -mno-abicalls -G0 $(ARCH_FLAGS) # XXX hardcoded kernel entry point ASM_FLAGS+=${CFLAGS} -D_LOCORE -DLOCORE From owner-p4-projects@FreeBSD.ORG Thu Feb 1 21:53:00 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 500B816A413; Thu, 1 Feb 2007 21:53:00 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 11ABA16A400 for ; Thu, 1 Feb 2007 21:53:00 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E44DA13C478 for ; Thu, 1 Feb 2007 21:52:59 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l11LqxZh038495 for ; Thu, 1 Feb 2007 21:52:59 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l11Lqxm7038491 for perforce@freebsd.org; Thu, 1 Feb 2007 21:52:59 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 1 Feb 2007 21:52:59 GMT Message-Id: <200702012152.l11Lqxm7038491@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 113867 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2007 21:53:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=113867 Change 113867 by gonzo@gonzo_jeeves on 2007/02/01 21:52:16 o Define __ABICALLS__ in case of -mabicalls. Affected files ... .. //depot/projects/mips2/src/contrib/gcc/config/mips/freebsd.h#5 edit Differences ... ==== //depot/projects/mips2/src/contrib/gcc/config/mips/freebsd.h#5 (text+ko) ==== @@ -109,6 +109,9 @@ else \ builtin_define ("__MIPSEL__"); \ \ + if (TARGET_ABICALLS) \ + builtin_define ("__ABICALLS__"); \ + \ /* No language dialect defines. */ \ \ /* ABIs handled in TARGET_OS_CPP_BUILTINS. */ \ From owner-p4-projects@FreeBSD.ORG Fri Feb 2 00:38:15 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2D23A16A405; Fri, 2 Feb 2007 00:38:15 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BF74216A402 for ; Fri, 2 Feb 2007 00:38:14 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from anuket.mj.niksun.com (gwnew.niksun.com [65.115.46.162]) by mx1.freebsd.org (Postfix) with ESMTP id 81FBF13C494 for ; Fri, 2 Feb 2007 00:38:14 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from niksun.com (anuket [10.70.0.5]) by anuket.mj.niksun.com (8.13.6/8.13.6) with ESMTP id l120c8W1012027; Thu, 1 Feb 2007 19:38:13 -0500 (EST) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: Divacky Roman Date: Thu, 1 Feb 2007 19:37:50 -0500 User-Agent: KMail/1.6.2 References: <200701310016.l0V0GccJ095661@repoman.freebsd.org> <20070131085906.GA28186@stud.fit.vutbr.cz> <200701311218.51103.jkim@FreeBSD.org> In-Reply-To: <200701311218.51103.jkim@FreeBSD.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200702011938.05616.jkim@FreeBSD.org> X-Virus-Scanned: ClamAV 0.88.6/2514/Thu Feb 1 16:50:10 2007 on anuket.mj.niksun.com X-Virus-Status: Clean Cc: Perforce Change Reviews Subject: Re: PERFORCE change 113739 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 00:38:15 -0000 On Wednesday 31 January 2007 12:18 pm, Jung-uk Kim wrote: > On Wednesday 31 January 2007 03:59 am, Divacky Roman wrote: > > On Wed, Jan 31, 2007 at 12:16:38AM +0000, Jung-uk Kim wrote: > > > http://perforce.freebsd.org/chv.cgi?CH=113739 > > > > > > Change 113739 by jkim@jkim_hammer on 2007/01/31 00:15:36 > > > > > > Do not reload %gs from linux_*sigcode(). > > > This seem to fix TLS on amd64, finally. :-) > > > > > > Tested on UP and QEMU. Need more testing on SMP. > > > > > > Affected files ... > > > > > > .. > > > //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_loco > > >re .s#2 edit > > > > > > Differences ... > > > > > > ==== > > > //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_loco > > >re .s#2 (text+ko) ==== > > > > > > @@ -11,7 +11,9 @@ > > > NON_GPROF_ENTRY(linux_sigcode) > > > call *LINUX_SIGF_HANDLER(%esp) > > > leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ > > > +#if 0 > > > movl LINUX_SC_GS(%ebx),%gs > > > +#endif > > > movl LINUX_SC_FS(%ebx),%fs > > > movl LINUX_SC_ES(%ebx),%es > > > movl LINUX_SC_DS(%ebx),%ds > > > @@ -25,7 +27,9 @@ > > > linux_rt_sigcode: > > > call *LINUX_RT_SIGF_HANDLER(%esp) > > > leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ > > > +#if 0 > > > movl LINUX_SC_GS(%ebx),%gs > > > +#endif > > > > great work! why didnt you just remove those lines but if 0 them? > > Because it's not done yet. I need more testing and clean-up before > MFP4. I'd like to test it on SMP but I don't have one. :-( I tried this on QEMU with dual-CPU emulation but it didn't look good. :-( We will have to find correct way to fix this. Jung-uk Kim From owner-p4-projects@FreeBSD.ORG Fri Feb 2 09:07:24 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 09C0216A406; Fri, 2 Feb 2007 09:07:24 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BC9EF16A401 for ; Fri, 2 Feb 2007 09:07:23 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A9B5B13C48E for ; Fri, 2 Feb 2007 09:07:23 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l1297NrU070605 for ; Fri, 2 Feb 2007 09:07:23 GMT (envelope-from bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l1297N8G070597 for perforce@freebsd.org; Fri, 2 Feb 2007 09:07:23 GMT (envelope-from bushman@freebsd.org) Date: Fri, 2 Feb 2007 09:07:23 GMT Message-Id: <200702020907.l1297N8G070597@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bushman@freebsd.org using -f From: Michael Bushkov To: Perforce Change Reviews Cc: Subject: PERFORCE change 113889 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 09:07:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=113889 Change 113889 by bushman@bushman_nss_ldap_cached on 2007/02/02 09:06:21 IFC Affected files ... .. //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/stdlib/malloc.c#8 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/sys/quotactl.2#3 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/share/mk/bsd.libnames.mk#3 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/quota/quota.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/pkg_install/add/main.c#5 integrate Differences ... ==== //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/stdlib/malloc.c#8 (text+ko) ==== @@ -185,7 +185,7 @@ #endif #include -__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.138 2006/12/23 00:18:51 jasone Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.139 2007/01/31 22:54:19 jasone Exp $"); #include "libc_private.h" #ifdef MALLOC_DEBUG @@ -550,6 +550,14 @@ qr(arena_run_t) link; }; +/* Avoid pointer aliasing issues. */ +static inline arena_run_t * +arena_bin_link(void *ptr) +{ + + return ((arena_run_t *)ptr); +} + struct arena_bin_s { /* * Current run being used to service allocations of this bin's size @@ -1318,7 +1326,7 @@ if (incr == size) { ret = brk_cur; } else { - ret = (void *)(intptr_t)brk_cur + incr; + ret = (void *)((intptr_t)brk_cur + incr); incr += size; } @@ -1326,7 +1334,7 @@ if (brk_prev == brk_cur) { /* Success. */ malloc_mutex_unlock(&brk_mtx); - brk_max = (void *)(intptr_t)ret + size; + brk_max = (void *)((intptr_t)ret + size); goto RETURN; } } while (brk_prev != (void *)-1); @@ -1412,13 +1420,13 @@ * the sake of poorly designed multi-threaded programs. */ if (brk_cur == brk_max - && (void *)(uintptr_t)chunk + size == brk_max + && (void *)((uintptr_t)chunk + size) == brk_max && sbrk(-(intptr_t)size) == brk_max) { malloc_mutex_unlock(&brk_mtx); if (brk_prev == brk_max) { /* Success. */ - brk_prev = (void *)(intptr_t)brk_max - - (intptr_t)size; + brk_prev = (void *)((intptr_t)brk_max + - (intptr_t)size); brk_max = brk_prev; } goto RETURN; @@ -1608,7 +1616,7 @@ mask = run->regs_mask[i]; if (mask != 0) { /* Usable allocation found. */ - bit = ffs(mask) - 1; + bit = ffs((int)mask) - 1; regind = ((i << (SIZEOF_INT_2POW + 3)) + bit); ret = (void *)&((char *)run)[bin->reg0_offset @@ -1764,7 +1772,7 @@ /* Update map for trailing pages. */ map_offset += need_pages; while (map_offset < run_ind + total_pages) { - log2_run_pages = ffs(map_offset) - 1; + log2_run_pages = ffs((int)map_offset) - 1; run_pages = (1 << log2_run_pages); chunk->map[map_offset].free = true; @@ -1848,7 +1856,7 @@ * of by "allocating" the leading pages. */ while (map_offset < (chunk_size >> pagesize_2pow)) { - log2_run_pages = ffs(map_offset) - 1; + log2_run_pages = ffs((int)map_offset) - 1; run_pages = (1 << log2_run_pages); chunk->map[map_offset].free = true; @@ -1904,7 +1912,8 @@ assert(0); break; case RUN_Q0: - qr_before_insert((arena_run_t *)&bin->runs0, run, link); + qr_before_insert(arena_bin_link(&bin->runs0), run, + link); run->free_max = bin->nregs - 1; run->free_min = (bin->nregs >> 1) + 1; assert(run->nfree <= run->free_max); @@ -1912,7 +1921,7 @@ break; case RUN_Q25: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs25, run, + qr_before_insert(arena_bin_link(&bin->runs25), run, link); run->free_max = ((bin->nregs >> 2) * 3) - 1; run->free_min = (bin->nregs >> 2) + 1; @@ -1921,7 +1930,7 @@ break; case RUN_Q50: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs50, run, + qr_before_insert(arena_bin_link(&bin->runs50), run, link); run->free_max = (bin->nregs >> 1) - 1; run->free_min = 1; @@ -1985,7 +1994,8 @@ break; case RUN_Q0: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs0, run, link); + qr_before_insert(arena_bin_link(&bin->runs0), run, + link); run->free_max = bin->nregs - 1; run->free_min = (bin->nregs >> 1) + 1; assert(run->nfree <= run->free_max); @@ -1993,7 +2003,7 @@ break; case RUN_Q25: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs25, run, + qr_before_insert(arena_bin_link(&bin->runs25), run, link); run->free_max = ((bin->nregs >> 2) * 3) - 1; run->free_min = (bin->nregs >> 2) + 1; @@ -2002,7 +2012,7 @@ break; case RUN_Q50: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs50, run, + qr_before_insert(arena_bin_link(&bin->runs50), run, link); run->free_max = (bin->nregs >> 1) - 1; run->free_min = 1; @@ -2010,7 +2020,7 @@ assert(run->nfree >= run->free_min); break; case RUN_Q75: - qr_before_insert((arena_run_t *)&bin->runs75, run, + qr_before_insert(arena_bin_link(&bin->runs75), run, link); run->free_max = (bin->nregs >> 2) - 1; run->free_min = 1; @@ -2047,7 +2057,7 @@ * large enough. Look for a precise fit, but do not pass up a chunk * that has a run which is large enough to split. */ - min_ind = ffs(size >> pagesize_2pow) - 1; + min_ind = ffs((int)(size >> pagesize_2pow)) - 1; RB_FOREACH(chunk, arena_chunk_tree_s, &arena->chunks) { for (i = min_ind; i < (opt_chunk_2pow - pagesize_2pow); @@ -2096,7 +2106,7 @@ run_ind = (unsigned)(((uintptr_t)run - (uintptr_t)chunk) >> pagesize_2pow); run_pages = (size >> pagesize_2pow); - log2_run_pages = ffs(run_pages) - 1; + log2_run_pages = ffs((int)run_pages) - 1; assert(run_pages > 0); /* Subtract pages from count of pages used in chunk. */ @@ -2168,14 +2178,14 @@ unsigned i, remainder; /* Look for a usable run. */ - if ((run = qr_next((arena_run_t *)&bin->runs50, link)) - != (arena_run_t *)&bin->runs50 - || (run = qr_next((arena_run_t *)&bin->runs25, link)) - != (arena_run_t *)&bin->runs25 - || (run = qr_next((arena_run_t *)&bin->runs0, link)) - != (arena_run_t *)&bin->runs0 - || (run = qr_next((arena_run_t *)&bin->runs75, link)) - != (arena_run_t *)&bin->runs75) { + if ((run = qr_next(arena_bin_link(&bin->runs50), link)) + != arena_bin_link(&bin->runs50) + || (run = qr_next(arena_bin_link(&bin->runs25), link)) + != arena_bin_link(&bin->runs25) + || (run = qr_next(arena_bin_link(&bin->runs0), link)) + != arena_bin_link(&bin->runs0) + || (run = qr_next(arena_bin_link(&bin->runs75), link)) + != arena_bin_link(&bin->runs75)) { /* run is guaranteed to have available space. */ qr_remove(run, link); return (run); @@ -2276,7 +2286,8 @@ if (size < small_min) { /* Tiny. */ size = pow2_ceil(size); - bin = &arena->bins[ffs(size >> (tiny_min_2pow + 1))]; + bin = &arena->bins[ffs((int)(size >> (tiny_min_2pow + + 1)))]; #if (!defined(NDEBUG) || defined(MALLOC_STATS)) /* * Bin calculation is always correct, but we may need @@ -2295,7 +2306,7 @@ /* Sub-page. */ size = pow2_ceil(size); bin = &arena->bins[ntbins + nqbins - + (ffs(size >> opt_small_max_2pow) - 2)]; + + (ffs((int)(size >> opt_small_max_2pow)) - 2)]; } assert(size == bin->reg_size); @@ -2375,8 +2386,8 @@ /* Avoid moving the allocation if the size class would not change. */ if (size < small_min) { if (oldsize < small_min && - ffs(pow2_ceil(size) >> (tiny_min_2pow + 1)) - == ffs(pow2_ceil(oldsize) >> (tiny_min_2pow + 1))) + ffs((int)(pow2_ceil(size) >> (tiny_min_2pow + 1))) + == ffs((int)(pow2_ceil(oldsize) >> (tiny_min_2pow + 1)))) goto IN_PLACE; } else if (size <= small_max) { if (oldsize >= small_min && oldsize <= small_max && @@ -2493,10 +2504,10 @@ for (i = 0; i < ntbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = (1 << (tiny_min_2pow + i)); @@ -2530,10 +2541,10 @@ for (; i < ntbins + nqbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = quantum * (i - ntbins + 1); @@ -2564,10 +2575,10 @@ for (; i < ntbins + nqbins + nsbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = (small_max << (i - (ntbins + nqbins) + 1)); @@ -2940,7 +2951,7 @@ malloc_mutex_lock(&chunks_mtx); /* Extract from tree of huge allocations. */ - key.chunk = (void *)ptr; + key.chunk = __DECONST(void *, ptr); node = RB_FIND(chunk_tree_s, &huge, &key); assert(node != NULL); @@ -3150,7 +3161,7 @@ * pagesize_2pow. */ assert(((result - 1) & result) == 0); - pagesize_2pow = ffs(result) - 1; + pagesize_2pow = ffs((int)result) - 1; } for (i = 0; i < 3; i++) { @@ -3410,7 +3421,7 @@ 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263}; - unsigned i, nprimes, parenas; + unsigned nprimes, parenas; /* * Pick a prime number of hash arenas that is more than narenas @@ -3559,6 +3570,7 @@ size_t num_size; if (malloc_init()) { + num_size = 0; ret = NULL; goto RETURN; } ==== //depot/projects/soc2006/nss_ldap_cached/src/lib/libc/sys/quotactl.2#3 (text+ko) ==== @@ -29,7 +29,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)quotactl.2 8.2 (Berkeley) 3/10/95 -.\" $FreeBSD: src/lib/libc/sys/quotactl.2,v 1.25 2007/01/09 00:28:15 imp Exp $ +.\" $FreeBSD: src/lib/libc/sys/quotactl.2,v 1.26 2007/02/01 02:31:02 mpp Exp $ .\" .Dd March 5, 1999 .Dt QUOTACTL 2 @@ -54,7 +54,7 @@ .Fa cmd operates on the given filename .Fa path -for the given user +for the given user or group .Fa id . (NOTE: One should use the QCMD macro defined in .In ufs/ufs/quota.h @@ -65,6 +65,12 @@ may be given; its interpretation is discussed below with each command. .Pp +For commands that use the +.Fa id +identifier, it must be either -1 or any positive value. +The value of -1 indicates that the current UID or GID should be used. +Any other negative value will return an error. +.Pp Currently quotas are supported only for the .Dq ufs file system. @@ -175,6 +181,15 @@ and .Dv Q_SETQUOTA , quotas are not currently enabled for this file system. +.Pp +The +.Fa id +argument to +.Dv Q_GETQUOTA , +.Dv Q_SETQUOTA +or +.Dv Q_SETUSE +is a negative value. .It Bq Er EACCES In .Dv Q_QUOTAON , ==== //depot/projects/soc2006/nss_ldap_cached/src/share/mk/bsd.libnames.mk#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.99 2006/09/30 11:32:46 ru Exp $ +# $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.100 2007/02/01 08:45:27 rafan Exp $ # The include file define library names. # Other include files (e.g. bsd.prog.mk, bsd.lib.mk) include this @@ -81,7 +81,6 @@ LIBMILTER?= ${DESTDIR}${LIBDIR}/libmilter.a .endif LIBMP?= ${DESTDIR}${LIBDIR}/libmp.a -LIBMYTINFO?= "don't use LIBMYTINFO, use LIBNCURSES" .if ${MK_NCP} != "no" LIBNCP?= ${DESTDIR}${LIBDIR}/libncp.a .endif ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.bin/quota/quota.c#2 (text+ko) ==== @@ -48,7 +48,7 @@ * Disk quota reporting program. */ #include -__FBSDID("$FreeBSD: src/usr.bin/quota/quota.c,v 1.25 2006/10/21 23:57:38 ru Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/quota/quota.c,v 1.26 2007/02/01 08:37:44 mpp Exp $"); #include #include @@ -88,11 +88,11 @@ static const char *timeprt(time_t seconds); static struct quotause *getprivs(long id, int quotatype); static void usage(void); -static void showuid(u_long uid); -static void showgid(u_long gid); -static void showusrname(char *name); -static void showgrpname(char *name); -static void showquotas(int type, u_long id, const char *name); +static int showuid(u_long uid); +static int showgid(u_long gid); +static int showusrname(char *name); +static int showgrpname(char *name); +static int showquotas(int type, u_long id, const char *name); static void heading(int type, u_long id, const char *name, const char *tag); static int ufshasquota(struct fstab *fs, int type, char **qfnamep); static int getufsquota(struct fstab *fs, struct quotause *qup, long id, @@ -113,7 +113,7 @@ { int ngroups; gid_t mygid, gidset[NGROUPS]; - int i, ch, gflag = 0, uflag = 0; + int i, ch, gflag = 0, uflag = 0, errflag = 0; while ((ch = getopt(argc, argv, "ghlquv")) != -1) { switch(ch) { @@ -145,39 +145,39 @@ uflag++; if (argc == 0) { if (uflag) - showuid(getuid()); + errflag += showuid(getuid()); if (gflag) { mygid = getgid(); ngroups = getgroups(NGROUPS, gidset); if (ngroups < 0) err(1, "getgroups"); - showgid(mygid); + errflag += showgid(mygid); for (i = 0; i < ngroups; i++) if (gidset[i] != mygid) - showgid(gidset[i]); + errflag += showgid(gidset[i]); } - return(0); + return(errflag); } if (uflag && gflag) usage(); if (uflag) { for (; argc > 0; argc--, argv++) { if (alldigits(*argv)) - showuid(atoi(*argv)); + errflag += showuid(atoi(*argv)); else - showusrname(*argv); + errflag += showusrname(*argv); } - return(0); + return(errflag); } if (gflag) { for (; argc > 0; argc--, argv++) { if (alldigits(*argv)) - showgid(atoi(*argv)); + errflag += showgid(atoi(*argv)); else - showgrpname(*argv); + errflag += showgrpname(*argv); } } - return(0); + return(errflag); } static void @@ -194,7 +194,7 @@ /* * Print out quotas for a specified user identifier. */ -static void +static int showuid(u_long uid) { struct passwd *pwd = getpwuid(uid); @@ -204,28 +204,28 @@ name = "(no account)"; else name = pwd->pw_name; - showquotas(USRQUOTA, uid, name); + return(showquotas(USRQUOTA, uid, name)); } /* * Print out quotas for a specifed user name. */ -static void +static int showusrname(char *name) { struct passwd *pwd = getpwnam(name); if (pwd == NULL) { warnx("%s: unknown user", name); - return; + return(1); } - showquotas(USRQUOTA, pwd->pw_uid, name); + return(showquotas(USRQUOTA, pwd->pw_uid, name)); } /* * Print out quotas for a specified group identifier. */ -static void +static int showgid(u_long gid) { struct group *grp = getgrgid(gid); @@ -235,22 +235,22 @@ name = "(no entry)"; else name = grp->gr_name; - showquotas(GRPQUOTA, gid, name); + return(showquotas(GRPQUOTA, gid, name)); } /* * Print out quotas for a specifed group name. */ -static void +static int showgrpname(char *name) { struct group *grp = getgrnam(name); if (grp == NULL) { warnx("%s: unknown group", name); - return; + return(1); } - showquotas(GRPQUOTA, grp->gr_gid, name); + return(showquotas(GRPQUOTA, grp->gr_gid, name)); } static void @@ -264,14 +264,14 @@ (void)printf(" %*s", len, buf); } -static void +static int showquotas(int type, u_long id, const char *name) { struct quotause *qup; struct quotause *quplist; const char *msgi, *msgb; const char *nam; - int lines = 0; + int lines = 0, overquota = 0; static time_t now; if (now == 0) @@ -286,10 +286,13 @@ continue; msgi = (char *)0; if (qup->dqblk.dqb_ihardlimit && - qup->dqblk.dqb_curinodes >= qup->dqblk.dqb_ihardlimit) + qup->dqblk.dqb_curinodes >= qup->dqblk.dqb_ihardlimit) { + overquota++; msgi = "File limit reached on"; + } else if (qup->dqblk.dqb_isoftlimit && qup->dqblk.dqb_curinodes >= qup->dqblk.dqb_isoftlimit) { + overquota++; if (qup->dqblk.dqb_itime > now) msgi = "In file grace period on"; else @@ -297,10 +300,13 @@ } msgb = (char *)0; if (qup->dqblk.dqb_bhardlimit && - qup->dqblk.dqb_curblocks >= qup->dqblk.dqb_bhardlimit) + qup->dqblk.dqb_curblocks >= qup->dqblk.dqb_bhardlimit) { + overquota++; msgb = "Block limit reached on"; + } else if (qup->dqblk.dqb_bsoftlimit && qup->dqblk.dqb_curblocks >= qup->dqblk.dqb_bsoftlimit) { + overquota++; if (qup->dqblk.dqb_btime > now) msgb = "In block grace period on"; else @@ -357,6 +363,7 @@ } if (!qflag && lines == 0) heading(type, id, name, "none"); + return(overquota); } static void ==== //depot/projects/soc2006/nss_ldap_cached/src/usr.sbin/pkg_install/add/main.c#5 (text+ko) ==== @@ -19,7 +19,7 @@ */ #include -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/main.c,v 1.70 2006/09/29 17:17:53 ru Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/main.c,v 1.72 2007/02/01 15:52:47 pav Exp $"); #include #include @@ -47,9 +47,7 @@ char FirstPen[FILENAME_MAX]; add_mode_t AddMode = NORMAL; -#define MAX_PKGS 200 -char pkgnames[MAX_PKGS][MAXPATHLEN]; -char *pkgs[MAX_PKGS]; +char **pkgs; struct { int lowver; /* Lowest version number to match */ @@ -179,15 +177,13 @@ argc -= optind; argv += optind; - if (argc > MAX_PKGS) { - errx(1, "too many packages (max %d)", MAX_PKGS); - } - if (AddMode != SLAVE) { - for (ch = 0; ch < MAX_PKGS; pkgs[ch++] = NULL) ; + pkgs = (char **)malloc((argc+1) * sizeof(char *)); + for (ch = 0; ch <= argc; pkgs[ch++] = NULL) ; /* Get all the remaining package names, if any */ for (ch = 0; *argv; ch++, argv++) { + char temp[MAXPATHLEN]; if (Remote) { if ((packagesite = getpackagesite()) == NULL) errx(1, "package name too long"); @@ -213,31 +209,27 @@ if (!strcmp(*argv, "-")) /* stdin? */ pkgs[ch] = (char *)"-"; else if (isURL(*argv)) { /* preserve URLs */ - if (strlcpy(pkgnames[ch], *argv, sizeof(pkgnames[ch])) - >= sizeof(pkgnames[ch])) + if (strlcpy(temp, *argv, sizeof(temp)) >= sizeof(temp)) errx(1, "package name too long"); - pkgs[ch] = pkgnames[ch]; + pkgs[ch] = strdup(temp); } else if ((Remote) && isURL(remotepkg)) { - if (strlcpy(pkgnames[ch], remotepkg, sizeof(pkgnames[ch])) - >= sizeof(pkgnames[ch])) + if (strlcpy(temp, remotepkg, sizeof(temp)) >= sizeof(temp)) errx(1, "package name too long"); - pkgs[ch] = pkgnames[ch]; + pkgs[ch] = strdup(temp); } else { /* expand all pathnames to fullnames */ if (fexists(*argv)) /* refers to a file directly */ - pkgs[ch] = realpath(*argv, pkgnames[ch]); + pkgs[ch] = strdup(realpath(*argv, temp)); else { /* look for the file in the expected places */ if (!(cp = fileFindByPath(NULL, *argv))) { /* let pkg_do() fail later, so that error is reported */ - if (strlcpy(pkgnames[ch], *argv, sizeof(pkgnames[ch])) - >= sizeof(pkgnames[ch])) + if (strlcpy(temp, *argv, sizeof(temp)) >= sizeof(temp)) errx(1, "package name too long"); - pkgs[ch] = pkgnames[ch]; + pkgs[ch] = strdup(temp); } else { - if (strlcpy(pkgnames[ch], cp, sizeof(pkgnames[ch])) - >= sizeof(pkgnames[ch])) + if (strlcpy(temp, cp, sizeof(temp)) >= sizeof(temp)) errx(1, "package name too long"); - pkgs[ch] = pkgnames[ch]; + pkgs[ch] = strdup(temp); } } } From owner-p4-projects@FreeBSD.ORG Fri Feb 2 09:07:24 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 639B316A521; Fri, 2 Feb 2007 09:07:24 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2EA3916A4C9 for ; Fri, 2 Feb 2007 09:07:24 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 14B5213C494 for ; Fri, 2 Feb 2007 09:07:24 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l1297Olk070620 for ; Fri, 2 Feb 2007 09:07:24 GMT (envelope-from bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l1297NhS070608 for perforce@freebsd.org; Fri, 2 Feb 2007 09:07:23 GMT (envelope-from bushman@freebsd.org) Date: Fri, 2 Feb 2007 09:07:23 GMT Message-Id: <200702020907.l1297NhS070608@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bushman@freebsd.org using -f From: Michael Bushkov To: Perforce Change Reviews Cc: Subject: PERFORCE change 113890 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 09:07:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=113890 Change 113890 by bushman@bushman_nss_ldap_cached on 2007/02/02 09:07:09 IFC Affected files ... .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/stdlib/malloc.c#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/sys/quotactl.2#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/share/mk/bsd.libnames.mk#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/quota/quota.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/pkg_install/add/main.c#2 integrate Differences ... ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/stdlib/malloc.c#3 (text+ko) ==== @@ -185,7 +185,7 @@ #endif #include -__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.138 2006/12/23 00:18:51 jasone Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.139 2007/01/31 22:54:19 jasone Exp $"); #include "libc_private.h" #ifdef MALLOC_DEBUG @@ -550,6 +550,14 @@ qr(arena_run_t) link; }; +/* Avoid pointer aliasing issues. */ +static inline arena_run_t * +arena_bin_link(void *ptr) +{ + + return ((arena_run_t *)ptr); +} + struct arena_bin_s { /* * Current run being used to service allocations of this bin's size @@ -1318,7 +1326,7 @@ if (incr == size) { ret = brk_cur; } else { - ret = (void *)(intptr_t)brk_cur + incr; + ret = (void *)((intptr_t)brk_cur + incr); incr += size; } @@ -1326,7 +1334,7 @@ if (brk_prev == brk_cur) { /* Success. */ malloc_mutex_unlock(&brk_mtx); - brk_max = (void *)(intptr_t)ret + size; + brk_max = (void *)((intptr_t)ret + size); goto RETURN; } } while (brk_prev != (void *)-1); @@ -1412,13 +1420,13 @@ * the sake of poorly designed multi-threaded programs. */ if (brk_cur == brk_max - && (void *)(uintptr_t)chunk + size == brk_max + && (void *)((uintptr_t)chunk + size) == brk_max && sbrk(-(intptr_t)size) == brk_max) { malloc_mutex_unlock(&brk_mtx); if (brk_prev == brk_max) { /* Success. */ - brk_prev = (void *)(intptr_t)brk_max - - (intptr_t)size; + brk_prev = (void *)((intptr_t)brk_max + - (intptr_t)size); brk_max = brk_prev; } goto RETURN; @@ -1608,7 +1616,7 @@ mask = run->regs_mask[i]; if (mask != 0) { /* Usable allocation found. */ - bit = ffs(mask) - 1; + bit = ffs((int)mask) - 1; regind = ((i << (SIZEOF_INT_2POW + 3)) + bit); ret = (void *)&((char *)run)[bin->reg0_offset @@ -1764,7 +1772,7 @@ /* Update map for trailing pages. */ map_offset += need_pages; while (map_offset < run_ind + total_pages) { - log2_run_pages = ffs(map_offset) - 1; + log2_run_pages = ffs((int)map_offset) - 1; run_pages = (1 << log2_run_pages); chunk->map[map_offset].free = true; @@ -1848,7 +1856,7 @@ * of by "allocating" the leading pages. */ while (map_offset < (chunk_size >> pagesize_2pow)) { - log2_run_pages = ffs(map_offset) - 1; + log2_run_pages = ffs((int)map_offset) - 1; run_pages = (1 << log2_run_pages); chunk->map[map_offset].free = true; @@ -1904,7 +1912,8 @@ assert(0); break; case RUN_Q0: - qr_before_insert((arena_run_t *)&bin->runs0, run, link); + qr_before_insert(arena_bin_link(&bin->runs0), run, + link); run->free_max = bin->nregs - 1; run->free_min = (bin->nregs >> 1) + 1; assert(run->nfree <= run->free_max); @@ -1912,7 +1921,7 @@ break; case RUN_Q25: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs25, run, + qr_before_insert(arena_bin_link(&bin->runs25), run, link); run->free_max = ((bin->nregs >> 2) * 3) - 1; run->free_min = (bin->nregs >> 2) + 1; @@ -1921,7 +1930,7 @@ break; case RUN_Q50: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs50, run, + qr_before_insert(arena_bin_link(&bin->runs50), run, link); run->free_max = (bin->nregs >> 1) - 1; run->free_min = 1; @@ -1985,7 +1994,8 @@ break; case RUN_Q0: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs0, run, link); + qr_before_insert(arena_bin_link(&bin->runs0), run, + link); run->free_max = bin->nregs - 1; run->free_min = (bin->nregs >> 1) + 1; assert(run->nfree <= run->free_max); @@ -1993,7 +2003,7 @@ break; case RUN_Q25: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs25, run, + qr_before_insert(arena_bin_link(&bin->runs25), run, link); run->free_max = ((bin->nregs >> 2) * 3) - 1; run->free_min = (bin->nregs >> 2) + 1; @@ -2002,7 +2012,7 @@ break; case RUN_Q50: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs50, run, + qr_before_insert(arena_bin_link(&bin->runs50), run, link); run->free_max = (bin->nregs >> 1) - 1; run->free_min = 1; @@ -2010,7 +2020,7 @@ assert(run->nfree >= run->free_min); break; case RUN_Q75: - qr_before_insert((arena_run_t *)&bin->runs75, run, + qr_before_insert(arena_bin_link(&bin->runs75), run, link); run->free_max = (bin->nregs >> 2) - 1; run->free_min = 1; @@ -2047,7 +2057,7 @@ * large enough. Look for a precise fit, but do not pass up a chunk * that has a run which is large enough to split. */ - min_ind = ffs(size >> pagesize_2pow) - 1; + min_ind = ffs((int)(size >> pagesize_2pow)) - 1; RB_FOREACH(chunk, arena_chunk_tree_s, &arena->chunks) { for (i = min_ind; i < (opt_chunk_2pow - pagesize_2pow); @@ -2096,7 +2106,7 @@ run_ind = (unsigned)(((uintptr_t)run - (uintptr_t)chunk) >> pagesize_2pow); run_pages = (size >> pagesize_2pow); - log2_run_pages = ffs(run_pages) - 1; + log2_run_pages = ffs((int)run_pages) - 1; assert(run_pages > 0); /* Subtract pages from count of pages used in chunk. */ @@ -2168,14 +2178,14 @@ unsigned i, remainder; /* Look for a usable run. */ - if ((run = qr_next((arena_run_t *)&bin->runs50, link)) - != (arena_run_t *)&bin->runs50 - || (run = qr_next((arena_run_t *)&bin->runs25, link)) - != (arena_run_t *)&bin->runs25 - || (run = qr_next((arena_run_t *)&bin->runs0, link)) - != (arena_run_t *)&bin->runs0 - || (run = qr_next((arena_run_t *)&bin->runs75, link)) - != (arena_run_t *)&bin->runs75) { + if ((run = qr_next(arena_bin_link(&bin->runs50), link)) + != arena_bin_link(&bin->runs50) + || (run = qr_next(arena_bin_link(&bin->runs25), link)) + != arena_bin_link(&bin->runs25) + || (run = qr_next(arena_bin_link(&bin->runs0), link)) + != arena_bin_link(&bin->runs0) + || (run = qr_next(arena_bin_link(&bin->runs75), link)) + != arena_bin_link(&bin->runs75)) { /* run is guaranteed to have available space. */ qr_remove(run, link); return (run); @@ -2276,7 +2286,8 @@ if (size < small_min) { /* Tiny. */ size = pow2_ceil(size); - bin = &arena->bins[ffs(size >> (tiny_min_2pow + 1))]; + bin = &arena->bins[ffs((int)(size >> (tiny_min_2pow + + 1)))]; #if (!defined(NDEBUG) || defined(MALLOC_STATS)) /* * Bin calculation is always correct, but we may need @@ -2295,7 +2306,7 @@ /* Sub-page. */ size = pow2_ceil(size); bin = &arena->bins[ntbins + nqbins - + (ffs(size >> opt_small_max_2pow) - 2)]; + + (ffs((int)(size >> opt_small_max_2pow)) - 2)]; } assert(size == bin->reg_size); @@ -2375,8 +2386,8 @@ /* Avoid moving the allocation if the size class would not change. */ if (size < small_min) { if (oldsize < small_min && - ffs(pow2_ceil(size) >> (tiny_min_2pow + 1)) - == ffs(pow2_ceil(oldsize) >> (tiny_min_2pow + 1))) + ffs((int)(pow2_ceil(size) >> (tiny_min_2pow + 1))) + == ffs((int)(pow2_ceil(oldsize) >> (tiny_min_2pow + 1)))) goto IN_PLACE; } else if (size <= small_max) { if (oldsize >= small_min && oldsize <= small_max && @@ -2493,10 +2504,10 @@ for (i = 0; i < ntbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = (1 << (tiny_min_2pow + i)); @@ -2530,10 +2541,10 @@ for (; i < ntbins + nqbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = quantum * (i - ntbins + 1); @@ -2564,10 +2575,10 @@ for (; i < ntbins + nqbins + nsbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = (small_max << (i - (ntbins + nqbins) + 1)); @@ -2940,7 +2951,7 @@ malloc_mutex_lock(&chunks_mtx); /* Extract from tree of huge allocations. */ - key.chunk = (void *)ptr; + key.chunk = __DECONST(void *, ptr); node = RB_FIND(chunk_tree_s, &huge, &key); assert(node != NULL); @@ -3150,7 +3161,7 @@ * pagesize_2pow. */ assert(((result - 1) & result) == 0); - pagesize_2pow = ffs(result) - 1; + pagesize_2pow = ffs((int)result) - 1; } for (i = 0; i < 3; i++) { @@ -3410,7 +3421,7 @@ 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263}; - unsigned i, nprimes, parenas; + unsigned nprimes, parenas; /* * Pick a prime number of hash arenas that is more than narenas @@ -3559,6 +3570,7 @@ size_t num_size; if (malloc_init()) { + num_size = 0; ret = NULL; goto RETURN; } ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/lib/libc/sys/quotactl.2#3 (text+ko) ==== @@ -29,7 +29,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)quotactl.2 8.2 (Berkeley) 3/10/95 -.\" $FreeBSD: src/lib/libc/sys/quotactl.2,v 1.25 2007/01/09 00:28:15 imp Exp $ +.\" $FreeBSD: src/lib/libc/sys/quotactl.2,v 1.26 2007/02/01 02:31:02 mpp Exp $ .\" .Dd March 5, 1999 .Dt QUOTACTL 2 @@ -54,7 +54,7 @@ .Fa cmd operates on the given filename .Fa path -for the given user +for the given user or group .Fa id . (NOTE: One should use the QCMD macro defined in .In ufs/ufs/quota.h @@ -65,6 +65,12 @@ may be given; its interpretation is discussed below with each command. .Pp +For commands that use the +.Fa id +identifier, it must be either -1 or any positive value. +The value of -1 indicates that the current UID or GID should be used. +Any other negative value will return an error. +.Pp Currently quotas are supported only for the .Dq ufs file system. @@ -175,6 +181,15 @@ and .Dv Q_SETQUOTA , quotas are not currently enabled for this file system. +.Pp +The +.Fa id +argument to +.Dv Q_GETQUOTA , +.Dv Q_SETQUOTA +or +.Dv Q_SETUSE +is a negative value. .It Bq Er EACCES In .Dv Q_QUOTAON , ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/share/mk/bsd.libnames.mk#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.99 2006/09/30 11:32:46 ru Exp $ +# $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.100 2007/02/01 08:45:27 rafan Exp $ # The include file define library names. # Other include files (e.g. bsd.prog.mk, bsd.lib.mk) include this @@ -81,7 +81,6 @@ LIBMILTER?= ${DESTDIR}${LIBDIR}/libmilter.a .endif LIBMP?= ${DESTDIR}${LIBDIR}/libmp.a -LIBMYTINFO?= "don't use LIBMYTINFO, use LIBNCURSES" .if ${MK_NCP} != "no" LIBNCP?= ${DESTDIR}${LIBDIR}/libncp.a .endif ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.bin/quota/quota.c#2 (text+ko) ==== @@ -48,7 +48,7 @@ * Disk quota reporting program. */ #include -__FBSDID("$FreeBSD: src/usr.bin/quota/quota.c,v 1.25 2006/10/21 23:57:38 ru Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/quota/quota.c,v 1.26 2007/02/01 08:37:44 mpp Exp $"); #include #include @@ -88,11 +88,11 @@ static const char *timeprt(time_t seconds); static struct quotause *getprivs(long id, int quotatype); static void usage(void); -static void showuid(u_long uid); -static void showgid(u_long gid); -static void showusrname(char *name); -static void showgrpname(char *name); -static void showquotas(int type, u_long id, const char *name); +static int showuid(u_long uid); +static int showgid(u_long gid); +static int showusrname(char *name); +static int showgrpname(char *name); +static int showquotas(int type, u_long id, const char *name); static void heading(int type, u_long id, const char *name, const char *tag); static int ufshasquota(struct fstab *fs, int type, char **qfnamep); static int getufsquota(struct fstab *fs, struct quotause *qup, long id, @@ -113,7 +113,7 @@ { int ngroups; gid_t mygid, gidset[NGROUPS]; - int i, ch, gflag = 0, uflag = 0; + int i, ch, gflag = 0, uflag = 0, errflag = 0; while ((ch = getopt(argc, argv, "ghlquv")) != -1) { switch(ch) { @@ -145,39 +145,39 @@ uflag++; if (argc == 0) { if (uflag) - showuid(getuid()); + errflag += showuid(getuid()); if (gflag) { mygid = getgid(); ngroups = getgroups(NGROUPS, gidset); if (ngroups < 0) err(1, "getgroups"); - showgid(mygid); + errflag += showgid(mygid); for (i = 0; i < ngroups; i++) if (gidset[i] != mygid) - showgid(gidset[i]); + errflag += showgid(gidset[i]); } - return(0); + return(errflag); } if (uflag && gflag) usage(); if (uflag) { for (; argc > 0; argc--, argv++) { if (alldigits(*argv)) - showuid(atoi(*argv)); + errflag += showuid(atoi(*argv)); else - showusrname(*argv); + errflag += showusrname(*argv); } - return(0); + return(errflag); } if (gflag) { for (; argc > 0; argc--, argv++) { if (alldigits(*argv)) - showgid(atoi(*argv)); + errflag += showgid(atoi(*argv)); else - showgrpname(*argv); + errflag += showgrpname(*argv); } } - return(0); + return(errflag); } static void @@ -194,7 +194,7 @@ /* * Print out quotas for a specified user identifier. */ -static void +static int showuid(u_long uid) { struct passwd *pwd = getpwuid(uid); @@ -204,28 +204,28 @@ name = "(no account)"; else name = pwd->pw_name; - showquotas(USRQUOTA, uid, name); + return(showquotas(USRQUOTA, uid, name)); } /* * Print out quotas for a specifed user name. */ -static void +static int showusrname(char *name) { struct passwd *pwd = getpwnam(name); if (pwd == NULL) { warnx("%s: unknown user", name); - return; + return(1); } - showquotas(USRQUOTA, pwd->pw_uid, name); + return(showquotas(USRQUOTA, pwd->pw_uid, name)); } /* * Print out quotas for a specified group identifier. */ -static void +static int showgid(u_long gid) { struct group *grp = getgrgid(gid); @@ -235,22 +235,22 @@ name = "(no entry)"; else name = grp->gr_name; - showquotas(GRPQUOTA, gid, name); + return(showquotas(GRPQUOTA, gid, name)); } /* * Print out quotas for a specifed group name. */ -static void +static int showgrpname(char *name) { struct group *grp = getgrnam(name); if (grp == NULL) { warnx("%s: unknown group", name); - return; + return(1); } - showquotas(GRPQUOTA, grp->gr_gid, name); + return(showquotas(GRPQUOTA, grp->gr_gid, name)); } static void @@ -264,14 +264,14 @@ (void)printf(" %*s", len, buf); } -static void +static int showquotas(int type, u_long id, const char *name) { struct quotause *qup; struct quotause *quplist; const char *msgi, *msgb; const char *nam; - int lines = 0; + int lines = 0, overquota = 0; static time_t now; if (now == 0) @@ -286,10 +286,13 @@ continue; msgi = (char *)0; if (qup->dqblk.dqb_ihardlimit && - qup->dqblk.dqb_curinodes >= qup->dqblk.dqb_ihardlimit) + qup->dqblk.dqb_curinodes >= qup->dqblk.dqb_ihardlimit) { + overquota++; msgi = "File limit reached on"; + } else if (qup->dqblk.dqb_isoftlimit && qup->dqblk.dqb_curinodes >= qup->dqblk.dqb_isoftlimit) { + overquota++; if (qup->dqblk.dqb_itime > now) msgi = "In file grace period on"; else @@ -297,10 +300,13 @@ } msgb = (char *)0; if (qup->dqblk.dqb_bhardlimit && - qup->dqblk.dqb_curblocks >= qup->dqblk.dqb_bhardlimit) + qup->dqblk.dqb_curblocks >= qup->dqblk.dqb_bhardlimit) { + overquota++; msgb = "Block limit reached on"; + } else if (qup->dqblk.dqb_bsoftlimit && qup->dqblk.dqb_curblocks >= qup->dqblk.dqb_bsoftlimit) { + overquota++; if (qup->dqblk.dqb_btime > now) msgb = "In block grace period on"; else @@ -357,6 +363,7 @@ } if (!qflag && lines == 0) heading(type, id, name, "none"); + return(overquota); } static void ==== //depot/projects/soc2006/nss_ldap_cached_no_nss_ldap/src/usr.sbin/pkg_install/add/main.c#2 (text+ko) ==== @@ -19,7 +19,7 @@ */ #include -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/main.c,v 1.70 2006/09/29 17:17:53 ru Exp $"); +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/main.c,v 1.72 2007/02/01 15:52:47 pav Exp $"); #include #include @@ -47,9 +47,7 @@ char FirstPen[FILENAME_MAX]; add_mode_t AddMode = NORMAL; -#define MAX_PKGS 200 -char pkgnames[MAX_PKGS][MAXPATHLEN]; -char *pkgs[MAX_PKGS]; +char **pkgs; struct { int lowver; /* Lowest version number to match */ @@ -179,15 +177,13 @@ argc -= optind; argv += optind; - if (argc > MAX_PKGS) { - errx(1, "too many packages (max %d)", MAX_PKGS); - } - if (AddMode != SLAVE) { - for (ch = 0; ch < MAX_PKGS; pkgs[ch++] = NULL) ; + pkgs = (char **)malloc((argc+1) * sizeof(char *)); + for (ch = 0; ch <= argc; pkgs[ch++] = NULL) ; /* Get all the remaining package names, if any */ for (ch = 0; *argv; ch++, argv++) { + char temp[MAXPATHLEN]; if (Remote) { if ((packagesite = getpackagesite()) == NULL) errx(1, "package name too long"); @@ -213,31 +209,27 @@ if (!strcmp(*argv, "-")) /* stdin? */ pkgs[ch] = (char *)"-"; else if (isURL(*argv)) { /* preserve URLs */ - if (strlcpy(pkgnames[ch], *argv, sizeof(pkgnames[ch])) - >= sizeof(pkgnames[ch])) + if (strlcpy(temp, *argv, sizeof(temp)) >= sizeof(temp)) errx(1, "package name too long"); - pkgs[ch] = pkgnames[ch]; + pkgs[ch] = strdup(temp); } else if ((Remote) && isURL(remotepkg)) { - if (strlcpy(pkgnames[ch], remotepkg, sizeof(pkgnames[ch])) - >= sizeof(pkgnames[ch])) + if (strlcpy(temp, remotepkg, sizeof(temp)) >= sizeof(temp)) errx(1, "package name too long"); - pkgs[ch] = pkgnames[ch]; + pkgs[ch] = strdup(temp); } else { /* expand all pathnames to fullnames */ if (fexists(*argv)) /* refers to a file directly */ - pkgs[ch] = realpath(*argv, pkgnames[ch]); + pkgs[ch] = strdup(realpath(*argv, temp)); else { /* look for the file in the expected places */ if (!(cp = fileFindByPath(NULL, *argv))) { /* let pkg_do() fail later, so that error is reported */ - if (strlcpy(pkgnames[ch], *argv, sizeof(pkgnames[ch])) - >= sizeof(pkgnames[ch])) + if (strlcpy(temp, *argv, sizeof(temp)) >= sizeof(temp)) errx(1, "package name too long"); - pkgs[ch] = pkgnames[ch]; + pkgs[ch] = strdup(temp); } else { - if (strlcpy(pkgnames[ch], cp, sizeof(pkgnames[ch])) - >= sizeof(pkgnames[ch])) + if (strlcpy(temp, cp, sizeof(temp)) >= sizeof(temp)) errx(1, "package name too long"); - pkgs[ch] = pkgnames[ch]; + pkgs[ch] = strdup(temp); } } } From owner-p4-projects@FreeBSD.ORG Fri Feb 2 09:10:30 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 60FBF16A406; Fri, 2 Feb 2007 09:10:30 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 38CB816A401 for ; Fri, 2 Feb 2007 09:10:30 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2635413C441 for ; Fri, 2 Feb 2007 09:10:30 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l129AUeK070868 for ; Fri, 2 Feb 2007 09:10:30 GMT (envelope-from bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l129ATwC070862 for perforce@freebsd.org; Fri, 2 Feb 2007 09:10:29 GMT (envelope-from bushman@freebsd.org) Date: Fri, 2 Feb 2007 09:10:29 GMT Message-Id: <200702020910.l129ATwC070862@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bushman@freebsd.org using -f From: Michael Bushkov To: Perforce Change Reviews Cc: Subject: PERFORCE change 113892 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 09:10:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=113892 Change 113892 by bushman@bushman_nss_ldap_cached on 2007/02/02 09:09:51 IFC Affected files ... .. //depot/projects/soc2006/nss_ldap_cached_openldap/nss_ldap_port/src/ldap_passwd.c#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/etc/etc.powerpc/ttys#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/include/Makefile#5 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/include/objformat.h#2 delete .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/gen/Makefile.inc#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/gen/Symbol.map#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/gen/getobjformat.3#3 delete .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/gen/getobjformat.c#2 delete .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/stdlib/malloc.c#5 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/sys/quotactl.2#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/nss_compat/compat_group.c#4 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/nss_compat/compat_serv.c#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/nss_dns/dns_passwd.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/nss_nis/nis_hosts_addrinfo.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/share/mk/bsd.libnames.mk#6 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/share/mk/bsd.own.mk#6 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/Makefile#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/calendar/calendars/calendar.music#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/Makefile#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/gzexe#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/gzexe.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/gzip.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/gzip.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/unbzip2.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zdiff#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zdiff.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zforce#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zforce.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zgrep#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zgrep.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zmore#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zmore.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/znew#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/znew.1#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/gzip/zuncompress.c#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/objformat/Makefile#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/objformat/objformat.1#2 delete .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/objformat/objformat.c#2 delete .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/objformat/objformat.sh#1 branch .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/quota/quota.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/Makefile#5 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/gstat/Makefile#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/mountd/mountd.c#4 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/pkg_install/add/main.c#4 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/pkg_install/sign/main.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/pkg_install/sign/stand.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/quotaon/quotaon.c#2 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/sysinstall/index.c#3 integrate .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/vnconfig/Makefile#2 delete .. //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.sbin/vnconfig/vnconfig.c#2 delete Differences ... ==== //depot/projects/soc2006/nss_ldap_cached_openldap/nss_ldap_port/src/ldap_passwd.c#3 (text+ko) ==== @@ -188,7 +188,7 @@ _ATM(schema, PASSWD, uid), &pwd->pw_name, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s)", _ATM(schema, PASSWD, uid), rv, __nss_ldap_err2str(rv)); goto errfin; @@ -200,7 +200,7 @@ _ATM(schema, PASSWD, gecos), &pwd->pw_gecos, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s), falling back to %s", _ATM(schema, PASSWD, gecos), rv, __nss_ldap_err2str(rv), _ATM(schema, PASSWD, cn)); @@ -210,7 +210,7 @@ &pwd->pw_gecos, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s)", _ATM(schema, PASSWD, cn), rv, __nss_ldap_err2str(rv)); goto errfin; @@ -224,14 +224,14 @@ _ATM(schema, PASSWD, homeDirectory), &pwd->pw_dir, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s), falling back to empty " "value", _ATM(schema, PASSWD, homeDirectory), rv, __nss_ldap_err2str(rv)); rv = __nss_ldap_assign_str("", &pwd->pw_dir, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: " "can't assign empty value as home directory, " "error %d (%s)", rv, __nss_ldap_err2str(rv)); goto errfin; @@ -244,7 +244,7 @@ _ATM(schema, PASSWD, loginShell), &pwd->pw_shell, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s), falling back to empty " "value", _ATM(schema, PASSWD, loginShell), rv, __nss_ldap_err2str(rv)); @@ -252,7 +252,7 @@ rv = __nss_ldap_assign_str("", &pwd->pw_shell, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: " "can't assign empty value as user shell, " "error %d (%s)", rv, __nss_ldap_err2str(rv)); goto errfin; @@ -265,7 +265,7 @@ _ATM(schema, PASSWD, loginClass), &pwd->pw_class, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s), falling back to empty " "value", _ATM(schema, PASSWD, loginClass), rv, __nss_ldap_err2str(rv)); @@ -273,7 +273,7 @@ rv = __nss_ldap_assign_str("", &pwd->pw_class, &len, buf, buflen); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: " "can't assign empty value as login class, " "error %d (%s)", rv, __nss_ldap_err2str(rv)); goto errfin; @@ -286,7 +286,7 @@ _ATM(schema, PASSWD, uidNumber), &pwd->pw_uid); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s)", _ATM(schema, PASSWD, uidNumber), rv, __nss_ldap_err2str(rv)); goto errfin; @@ -296,7 +296,7 @@ _ATM(schema, PASSWD, gidNumber), &pwd->pw_gid); if (rv != NSS_LDAP_SUCCESS) { - __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s)", _ATM(schema, PASSWD, gidNumber), rv, __nss_ldap_err2str(rv)); @@ -308,7 +308,7 @@ if (rv == NSS_LDAP_SUCCESS) pwd->pw_change *= 24*60*60; else { - __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: ", + __nss_ldap_log(NSS_LDAP_LL_WARN_INT, "nss_ldap_parse_passwd: " "can't assign %s, error %d (%s)", _ATM(schema, PASSWD, shadowMax), rv, __nss_ldap_err2str(rv)); ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/etc/etc.powerpc/ttys#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/etc.powerpc/ttys,v 1.3 2005/09/10 22:46:03 grehan Exp $ +# $FreeBSD: src/etc/etc.powerpc/ttys,v 1.4 2007/01/26 06:22:34 marcel Exp $ # @(#)ttys 5.1 (Berkeley) 4/17/89 # # This file specifies various information about terminals on the system. @@ -32,12 +32,6 @@ # when going to single-user mode. console none unknown off secure # -# ofw_console(4) -#screen "/usr/libexec/getty Pc" cons25 on secure -# zs(4) -#ttyy0 "/usr/libexec/getty std.9600" cons25 on secure -#ttyy1 "/usr/libexec/getty std.9600" cons25 off secure -# ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure @@ -50,10 +44,10 @@ #ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. -ttyd0 "/usr/libexec/getty std.9600" dialup off secure -ttyd1 "/usr/libexec/getty std.9600" dialup off secure -ttyd2 "/usr/libexec/getty std.9600" dialup off secure -ttyd3 "/usr/libexec/getty std.9600" dialup off secure +ttyu0 "/usr/libexec/getty std.9600" vt100 on secure +ttyu1 "/usr/libexec/getty std.9600" dialup off secure +ttyu2 "/usr/libexec/getty std.9600" dialup off secure +ttyu3 "/usr/libexec/getty std.9600" dialup off secure # Dumb console dcons "/usr/libexec/getty std.9600" vt100 off secure # Pseudo terminals ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/include/Makefile#5 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.266 2006/11/11 16:26:54 trhodes Exp $ +# $FreeBSD: src/include/Makefile,v 1.267 2007/01/25 22:38:04 peter Exp $ # # Doing a "make install" builds /usr/include. @@ -15,7 +15,7 @@ inttypes.h iso646.h kenv.h langinfo.h libgen.h limits.h link.h \ locale.h malloc.h malloc_np.h memory.h monetary.h mpool.h mqueue.h \ ndbm.h netconfig.h \ - netdb.h nl_types.h nlist.h nss.h nsswitch.h objformat.h paths.h \ + netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \ printf.h proc_service.h pthread.h \ pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h regexp.h \ res_update.h resolv.h runetype.h search.h setjmp.h sgtty.h \ ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/gen/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.125 2006/03/13 01:14:56 deischen Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.126 2007/01/25 22:25:59 peter Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen @@ -14,7 +14,7 @@ getbootfile.c getbsize.c \ getcap.c getcwd.c getdomainname.c getgrent.c getgrouplist.c \ gethostname.c getloadavg.c getlogin.c getmntinfo.c getnetgrent.c \ - getobjformat.c getosreldate.c getpagesize.c \ + getosreldate.c getpagesize.c \ getpeereid.c getprogname.c getpwent.c getttyent.c \ getusershell.c getvfsbyname.c glob.c \ initgroups.c isatty.c isinf.c isnan.c jrand48.c lcong48.c \ @@ -49,7 +49,7 @@ getbootfile.3 getbsize.3 getcap.3 getcontext.3 getcwd.3 \ getdiskbyname.3 getdomainname.3 getfsent.3 \ getgrent.3 getgrouplist.3 gethostname.3 getloadavg.3 \ - getmntinfo.3 getnetgrent.3 getobjformat.3 getosreldate.3 \ + getmntinfo.3 getnetgrent.3 getosreldate.3 \ getpagesize.3 getpass.3 getpeereid.3 getprogname.3 getpwent.3 \ getttyent.3 getusershell.3 getvfsbyname.3 \ glob.3 initgroups.3 isgreater.3 ldexp.3 lockf.3 makecontext.3 \ ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/gen/Symbol.map#3 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.1 2006/03/13 00:53:17 deischen Exp $ +# $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.2 2007/01/25 22:36:36 peter Exp $ FBSD_1.0 { __xuname; @@ -175,7 +175,6 @@ getnetgrent; endnetgrent; innetgr; - getobjformat; getosreldate; getpagesize; getpeereid; ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/stdlib/malloc.c#5 (text+ko) ==== @@ -185,7 +185,7 @@ #endif #include -__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.138 2006/12/23 00:18:51 jasone Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.139 2007/01/31 22:54:19 jasone Exp $"); #include "libc_private.h" #ifdef MALLOC_DEBUG @@ -550,6 +550,14 @@ qr(arena_run_t) link; }; +/* Avoid pointer aliasing issues. */ +static inline arena_run_t * +arena_bin_link(void *ptr) +{ + + return ((arena_run_t *)ptr); +} + struct arena_bin_s { /* * Current run being used to service allocations of this bin's size @@ -1318,7 +1326,7 @@ if (incr == size) { ret = brk_cur; } else { - ret = (void *)(intptr_t)brk_cur + incr; + ret = (void *)((intptr_t)brk_cur + incr); incr += size; } @@ -1326,7 +1334,7 @@ if (brk_prev == brk_cur) { /* Success. */ malloc_mutex_unlock(&brk_mtx); - brk_max = (void *)(intptr_t)ret + size; + brk_max = (void *)((intptr_t)ret + size); goto RETURN; } } while (brk_prev != (void *)-1); @@ -1412,13 +1420,13 @@ * the sake of poorly designed multi-threaded programs. */ if (brk_cur == brk_max - && (void *)(uintptr_t)chunk + size == brk_max + && (void *)((uintptr_t)chunk + size) == brk_max && sbrk(-(intptr_t)size) == brk_max) { malloc_mutex_unlock(&brk_mtx); if (brk_prev == brk_max) { /* Success. */ - brk_prev = (void *)(intptr_t)brk_max - - (intptr_t)size; + brk_prev = (void *)((intptr_t)brk_max + - (intptr_t)size); brk_max = brk_prev; } goto RETURN; @@ -1608,7 +1616,7 @@ mask = run->regs_mask[i]; if (mask != 0) { /* Usable allocation found. */ - bit = ffs(mask) - 1; + bit = ffs((int)mask) - 1; regind = ((i << (SIZEOF_INT_2POW + 3)) + bit); ret = (void *)&((char *)run)[bin->reg0_offset @@ -1764,7 +1772,7 @@ /* Update map for trailing pages. */ map_offset += need_pages; while (map_offset < run_ind + total_pages) { - log2_run_pages = ffs(map_offset) - 1; + log2_run_pages = ffs((int)map_offset) - 1; run_pages = (1 << log2_run_pages); chunk->map[map_offset].free = true; @@ -1848,7 +1856,7 @@ * of by "allocating" the leading pages. */ while (map_offset < (chunk_size >> pagesize_2pow)) { - log2_run_pages = ffs(map_offset) - 1; + log2_run_pages = ffs((int)map_offset) - 1; run_pages = (1 << log2_run_pages); chunk->map[map_offset].free = true; @@ -1904,7 +1912,8 @@ assert(0); break; case RUN_Q0: - qr_before_insert((arena_run_t *)&bin->runs0, run, link); + qr_before_insert(arena_bin_link(&bin->runs0), run, + link); run->free_max = bin->nregs - 1; run->free_min = (bin->nregs >> 1) + 1; assert(run->nfree <= run->free_max); @@ -1912,7 +1921,7 @@ break; case RUN_Q25: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs25, run, + qr_before_insert(arena_bin_link(&bin->runs25), run, link); run->free_max = ((bin->nregs >> 2) * 3) - 1; run->free_min = (bin->nregs >> 2) + 1; @@ -1921,7 +1930,7 @@ break; case RUN_Q50: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs50, run, + qr_before_insert(arena_bin_link(&bin->runs50), run, link); run->free_max = (bin->nregs >> 1) - 1; run->free_min = 1; @@ -1985,7 +1994,8 @@ break; case RUN_Q0: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs0, run, link); + qr_before_insert(arena_bin_link(&bin->runs0), run, + link); run->free_max = bin->nregs - 1; run->free_min = (bin->nregs >> 1) + 1; assert(run->nfree <= run->free_max); @@ -1993,7 +2003,7 @@ break; case RUN_Q25: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs25, run, + qr_before_insert(arena_bin_link(&bin->runs25), run, link); run->free_max = ((bin->nregs >> 2) * 3) - 1; run->free_min = (bin->nregs >> 2) + 1; @@ -2002,7 +2012,7 @@ break; case RUN_Q50: qr_remove(run, link); - qr_before_insert((arena_run_t *)&bin->runs50, run, + qr_before_insert(arena_bin_link(&bin->runs50), run, link); run->free_max = (bin->nregs >> 1) - 1; run->free_min = 1; @@ -2010,7 +2020,7 @@ assert(run->nfree >= run->free_min); break; case RUN_Q75: - qr_before_insert((arena_run_t *)&bin->runs75, run, + qr_before_insert(arena_bin_link(&bin->runs75), run, link); run->free_max = (bin->nregs >> 2) - 1; run->free_min = 1; @@ -2047,7 +2057,7 @@ * large enough. Look for a precise fit, but do not pass up a chunk * that has a run which is large enough to split. */ - min_ind = ffs(size >> pagesize_2pow) - 1; + min_ind = ffs((int)(size >> pagesize_2pow)) - 1; RB_FOREACH(chunk, arena_chunk_tree_s, &arena->chunks) { for (i = min_ind; i < (opt_chunk_2pow - pagesize_2pow); @@ -2096,7 +2106,7 @@ run_ind = (unsigned)(((uintptr_t)run - (uintptr_t)chunk) >> pagesize_2pow); run_pages = (size >> pagesize_2pow); - log2_run_pages = ffs(run_pages) - 1; + log2_run_pages = ffs((int)run_pages) - 1; assert(run_pages > 0); /* Subtract pages from count of pages used in chunk. */ @@ -2168,14 +2178,14 @@ unsigned i, remainder; /* Look for a usable run. */ - if ((run = qr_next((arena_run_t *)&bin->runs50, link)) - != (arena_run_t *)&bin->runs50 - || (run = qr_next((arena_run_t *)&bin->runs25, link)) - != (arena_run_t *)&bin->runs25 - || (run = qr_next((arena_run_t *)&bin->runs0, link)) - != (arena_run_t *)&bin->runs0 - || (run = qr_next((arena_run_t *)&bin->runs75, link)) - != (arena_run_t *)&bin->runs75) { + if ((run = qr_next(arena_bin_link(&bin->runs50), link)) + != arena_bin_link(&bin->runs50) + || (run = qr_next(arena_bin_link(&bin->runs25), link)) + != arena_bin_link(&bin->runs25) + || (run = qr_next(arena_bin_link(&bin->runs0), link)) + != arena_bin_link(&bin->runs0) + || (run = qr_next(arena_bin_link(&bin->runs75), link)) + != arena_bin_link(&bin->runs75)) { /* run is guaranteed to have available space. */ qr_remove(run, link); return (run); @@ -2276,7 +2286,8 @@ if (size < small_min) { /* Tiny. */ size = pow2_ceil(size); - bin = &arena->bins[ffs(size >> (tiny_min_2pow + 1))]; + bin = &arena->bins[ffs((int)(size >> (tiny_min_2pow + + 1)))]; #if (!defined(NDEBUG) || defined(MALLOC_STATS)) /* * Bin calculation is always correct, but we may need @@ -2295,7 +2306,7 @@ /* Sub-page. */ size = pow2_ceil(size); bin = &arena->bins[ntbins + nqbins - + (ffs(size >> opt_small_max_2pow) - 2)]; + + (ffs((int)(size >> opt_small_max_2pow)) - 2)]; } assert(size == bin->reg_size); @@ -2375,8 +2386,8 @@ /* Avoid moving the allocation if the size class would not change. */ if (size < small_min) { if (oldsize < small_min && - ffs(pow2_ceil(size) >> (tiny_min_2pow + 1)) - == ffs(pow2_ceil(oldsize) >> (tiny_min_2pow + 1))) + ffs((int)(pow2_ceil(size) >> (tiny_min_2pow + 1))) + == ffs((int)(pow2_ceil(oldsize) >> (tiny_min_2pow + 1)))) goto IN_PLACE; } else if (size <= small_max) { if (oldsize >= small_min && oldsize <= small_max && @@ -2493,10 +2504,10 @@ for (i = 0; i < ntbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = (1 << (tiny_min_2pow + i)); @@ -2530,10 +2541,10 @@ for (; i < ntbins + nqbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = quantum * (i - ntbins + 1); @@ -2564,10 +2575,10 @@ for (; i < ntbins + nqbins + nsbins; i++) { bin = &arena->bins[i]; bin->runcur = NULL; - qr_new((arena_run_t *)&bin->runs0, link); - qr_new((arena_run_t *)&bin->runs25, link); - qr_new((arena_run_t *)&bin->runs50, link); - qr_new((arena_run_t *)&bin->runs75, link); + qr_new(arena_bin_link(&bin->runs0), link); + qr_new(arena_bin_link(&bin->runs25), link); + qr_new(arena_bin_link(&bin->runs50), link); + qr_new(arena_bin_link(&bin->runs75), link); bin->reg_size = (small_max << (i - (ntbins + nqbins) + 1)); @@ -2940,7 +2951,7 @@ malloc_mutex_lock(&chunks_mtx); /* Extract from tree of huge allocations. */ - key.chunk = (void *)ptr; + key.chunk = __DECONST(void *, ptr); node = RB_FIND(chunk_tree_s, &huge, &key); assert(node != NULL); @@ -3150,7 +3161,7 @@ * pagesize_2pow. */ assert(((result - 1) & result) == 0); - pagesize_2pow = ffs(result) - 1; + pagesize_2pow = ffs((int)result) - 1; } for (i = 0; i < 3; i++) { @@ -3410,7 +3421,7 @@ 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263}; - unsigned i, nprimes, parenas; + unsigned nprimes, parenas; /* * Pick a prime number of hash arenas that is more than narenas @@ -3559,6 +3570,7 @@ size_t num_size; if (malloc_init()) { + num_size = 0; ret = NULL; goto RETURN; } ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/libc/sys/quotactl.2#3 (text+ko) ==== @@ -29,7 +29,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)quotactl.2 8.2 (Berkeley) 3/10/95 -.\" $FreeBSD: src/lib/libc/sys/quotactl.2,v 1.25 2007/01/09 00:28:15 imp Exp $ +.\" $FreeBSD: src/lib/libc/sys/quotactl.2,v 1.26 2007/02/01 02:31:02 mpp Exp $ .\" .Dd March 5, 1999 .Dt QUOTACTL 2 @@ -54,7 +54,7 @@ .Fa cmd operates on the given filename .Fa path -for the given user +for the given user or group .Fa id . (NOTE: One should use the QCMD macro defined in .In ufs/ufs/quota.h @@ -65,6 +65,12 @@ may be given; its interpretation is discussed below with each command. .Pp +For commands that use the +.Fa id +identifier, it must be either -1 or any positive value. +The value of -1 indicates that the current UID or GID should be used. +Any other negative value will return an error. +.Pp Currently quotas are supported only for the .Dq ufs file system. @@ -175,6 +181,15 @@ and .Dv Q_SETQUOTA , quotas are not currently enabled for this file system. +.Pp +The +.Fa id +argument to +.Dv Q_GETQUOTA , +.Dv Q_SETQUOTA +or +.Dv Q_SETUSE +is a negative value. .It Bq Er EACCES In .Dv Q_QUOTAON , ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/nss_compat/compat_group.c#4 (text+ko) ==== @@ -39,14 +39,15 @@ #include #include #include +#include "namespace.h" #include #include +#include "un-namespace.h" #include #include #include #include #include -#include "libc_private.h" #include "nss_tls.h" #include "gr_scan.h" #include "nss_compat.h" ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/nss_compat/compat_serv.c#3 (text+ko) ==== ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/nss_dns/dns_passwd.c#2 (text+ko) ==== @@ -54,7 +54,6 @@ #include #include #include -#include "libc_private.h" #include "nss_tls.h" #include "pw_scan.h" ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/lib/nss_nis/nis_hosts_addrinfo.c#2 (text+ko) ==== @@ -90,7 +90,6 @@ #include #include #include -#include "libc_private.h" #include "res_config.h" #ifdef DEBUG ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/share/mk/bsd.libnames.mk#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.99 2006/09/30 11:32:46 ru Exp $ +# $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.100 2007/02/01 08:45:27 rafan Exp $ # The include file define library names. # Other include files (e.g. bsd.prog.mk, bsd.lib.mk) include this @@ -85,7 +85,6 @@ LIBMILTER?= ${DESTDIR}${LIBDIR}/libmilter.a .endif LIBMP?= ${DESTDIR}${LIBDIR}/libmp.a -LIBMYTINFO?= "don't use LIBMYTINFO, use LIBNCURSES" .if ${MK_NCP} != "no" LIBNCP?= ${DESTDIR}${LIBDIR}/libncp.a .endif ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/share/mk/bsd.own.mk#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/mk/bsd.own.mk,v 1.59 2006/11/19 16:28:52 ru Exp $ +# $FreeBSD: src/share/mk/bsd.own.mk,v 1.60 2007/01/26 10:19:07 delphij Exp $ # # The include file set common variables for owner, # group, mode, and directories. Defaults are in brackets. @@ -299,6 +299,7 @@ BIND_UTILS \ BLUETOOTH \ BOOT \ + BZIP2 \ CALENDAR \ CDDL \ CPP \ @@ -443,6 +444,7 @@ # MK_* variable is set to "no". # .for var in \ + BZIP2 \ GNU \ INET6 \ IPX \ ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)Makefile 8.3 (Berkeley) 1/7/94 -# $FreeBSD: src/usr.bin/Makefile,v 1.297 2006/11/26 14:36:33 ru Exp $ +# $FreeBSD: src/usr.bin/Makefile,v 1.299 2007/01/26 10:19:07 delphij Exp $ .include @@ -75,6 +75,7 @@ getent \ getopt \ ${_gprof} \ + gzip \ head \ ${_hesinfo} \ hexdump \ @@ -139,7 +140,6 @@ nohup \ ${_nslookup} \ ${_nsupdate} \ - objformat \ opieinfo \ opiekey \ opiepasswd \ ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" SUCH DAMAGE. .\" .\" $Id: rfcomm_sppd.1,v 1.3 2003/09/07 18:15:55 max Exp $ -.\" $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1,v 1.9 2005/12/07 19:41:58 emax Exp $ +.\" $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1,v 1.10 2007/01/25 20:54:59 emax Exp $ .\" -.Dd April 26, 2003 +.Dd January 24, 2007 .Dt RFCOMM_SPPD 1 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd RFCOMM Serial Port Profile daemon .Sh SYNOPSIS .Nm -.Op Fl bh +.Op Fl bhS .Fl a Ar address .Fl c Ar channel .Op Fl t Ar tty @@ -41,7 +41,11 @@ The .Nm utility is a Serial Port Profile daemon. -It opens RFCOMM connection to the specified +It can operate in two modes: client and server. +.Pp +In client mode, +.Nm +opens RFCOMM connection to the specified .Ar address server and .Ar channel . @@ -54,8 +58,29 @@ .Fl t option was specified. .Pp +If the +.Fl S +option is specified, +.Nm +will operate in server mode and act as RFCOMM server, +listening on +.Dv ANY +address and advertising a virtual serial port +via the +.Xr sdpd 8 +daemon. The +.Fl t +option must be specified; +the server side of the virtual serial port is attached to the pseudo-terminal +.Ar tty . .Nm +should be run as root in order to communicate with +.Xr sdp 8 +in this case. +.Pp +The +.Nm utility opens both master and slave pseudo terminals. This is done to ensure that RFCOMM connection stays open until .Nm @@ -71,17 +96,31 @@ The options are as follows: .Bl -tag -width indent .It Fl a Ar address -This required option specifies the address of the remote RFCOMM server. +In client mode, +this required option specifies the address of the remote RFCOMM server. +If this option is specified in server mode, +.Nm +will only accept connections from the +.Tn Bluetooth +device with address +.Ar address . The address can be specified as BD_ADDR or name. -If name was specified then the +If name was specified then .Nm utility will attempt to resolve the name via .Xr bt_gethostbyname 3 . .It Fl b Detach from the controlling terminal, i.e., run in background. .It Fl c Ar channel -This option specifies RFCOMM channel to connect to. -RFCOMM channel could either be a number between 1 and 30 or a service name. +In both client and server mode, +this required option specifies the RFCOMM channel to connect to or listen on. +In server mode, +the channel should be a number between 1 and 30. +If not specified, +.Nm +will try to allocate RFCOMM channel number based on process ID. +In client mode, +the channel could either be a number between 1 and 30 or a service name. Supported service names are: .Cm DUN (for DialUp Networking service), @@ -97,11 +136,16 @@ Discovery Protocol from the server. .It Fl h Display usage message and exit. +.It Fl S +Server mode; see +.Sx DESCRIPTION . .It Fl t Ar tty Slave pseudo tty name. If not set stdin/stdout will be used. This option is required if .Fl b +or +.Fl S option was specified. .El .Sh FILES @@ -129,7 +173,8 @@ .Xr bluetooth 3 , .Xr ng_btsocket 4 , .Xr pty 4 , -.Xr rfcomm_pppd 8 +.Xr rfcomm_pppd 8 , +.Xr sdpd 8 .Sh AUTHORS .An Maksim Yevmenkin Aq m_evmenkin@yahoo.com .Sh BUGS ==== //depot/projects/soc2006/nss_ldap_cached_openldap/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $Id: rfcomm_sppd.c,v 1.4 2003/09/07 18:15:55 max Exp $ - * $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c,v 1.8 2005/12/07 19:41:58 emax Exp $ + * $FreeBSD: src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c,v 1.9 2007/01/25 20:54:59 emax Exp $ */ #include @@ -72,16 +72,17 @@ struct sockaddr_rfcomm ra; bdaddr_t addr; int n, background, channel, service, - s, amaster, aslave, fd; + s, amaster, aslave, fd, doserver; fd_set rfd; char *tty = NULL, *ep = NULL, buf[SPPD_BUFFER_SIZE]; memcpy(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)); background = channel = 0; service = SDP_SERVICE_CLASS_SERIAL_PORT; + doserver = 0; /* Parse command line options */ - while ((n = getopt(argc, argv, "a:bc:t:h")) != -1) { + while ((n = getopt(argc, argv, "a:bc:t:hS")) != -1) { switch (n) { case 'a': /* BDADDR */ if (!bt_aton(optarg, &addr)) { @@ -134,6 +135,10 @@ tty = optarg; break; + case 'S': + doserver = 1; + break; + case 'h': default: usage(); @@ -142,7 +147,7 @@ } /* Check if we have everything we need */ - if (memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) == 0) + if (!doserver && memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) == 0) usage(); /* NOT REACHED */ @@ -165,17 +170,9 @@ if (sigaction(SIGCHLD, &sa, NULL) < 0) err(1, "Could not sigaction(SIGCHLD)"); - /* Check channel, if was not set then obtain it via SDP */ - if (channel == 0 && service != 0) - if (rfcomm_channel_lookup(NULL, &addr, - service, &channel, &n) != 0) - errc(1, n, "Could not obtain RFCOMM channel"); - if (channel <= 0 || channel > 30) - errx(1, "Invalid RFCOMM channel number %d", channel); - /* Open TTYs */ if (tty == NULL) { - if (background) + if (background || doserver) usage(); amaster = STDIN_FILENO; @@ -187,24 +184,95 @@ fd = amaster; } + /* Open RFCOMM connection */ + + if (doserver) { + struct sockaddr_rfcomm ma; + bdaddr_t bt_addr_any; + sdp_lan_profile_t lan; + void *ss; + uint32_t sdp_handle; + int acceptsock, aaddrlen; + + if (channel == 0) { + /* XXX: should check if selected channel is unused */ + channel = (getpid() % 30) + 1; + } + acceptsock = socket(PF_BLUETOOTH, SOCK_STREAM, + BLUETOOTH_PROTO_RFCOMM); + if (acceptsock < 0) + err(1, "Could not create socket"); + + memset(&ma, 0, sizeof(ma)); + ma.rfcomm_len = sizeof(ma); + ma.rfcomm_family = AF_BLUETOOTH; + ma.rfcomm_channel = channel; + + if (bind(acceptsock, (struct sockaddr *)&ma, sizeof(ma)) < 0) + err(1, "Could not bind socket -- channel %d in use?", + channel); + listen(acceptsock, 10); + + ss = sdp_open_local(NULL); + if (ss == NULL) + errx(1, "Unable to create local SDP session"); + if (sdp_error(ss) != 0) + errx(1, "Unable to open local SDP session. %s (%d)", + strerror(sdp_error(ss)), sdp_error(ss)); + memset(&lan, 0, sizeof(lan)); + lan.server_channel = channel; + + memcpy(&bt_addr_any, NG_HCI_BDADDR_ANY, sizeof(bt_addr_any)); + if (sdp_register_service(ss, service, &bt_addr_any, + (void *)&lan, sizeof(lan), &sdp_handle) != 0) { + errx(1, "Unable to register LAN service with " + "local SDP daemon. %s (%d)", + strerror(sdp_error(ss)), sdp_error(ss)); + } + + s = -1; + while (s < 0) { + aaddrlen = sizeof(ra); + s = accept(acceptsock, (struct sockaddr *)&ra, + &aaddrlen); + if (s < 0) + err(1, "Unable to accept()"); + if (memcmp(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)) && + memcmp(&addr, &ra.rfcomm_bdaddr, sizeof(addr))) { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Feb 2 09:19:43 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 41FBB16A530; Fri, 2 Feb 2007 09:19:43 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 01EA716A509 for ; Fri, 2 Feb 2007 09:19:43 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E28BD13C4A6 for ; Fri, 2 Feb 2007 09:19:42 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l129JgFR072366 for ; Fri, 2 Feb 2007 09:19:42 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l129Jgk2072363 for perforce@freebsd.org; Fri, 2 Feb 2007 09:19:42 GMT (envelope-from rdivacky@FreeBSD.org) Date: Fri, 2 Feb 2007 09:19:42 GMT Message-Id: <200702020919.l129Jgk2072363@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 113893 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 09:19:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=113893 Change 113893 by rdivacky@rdivacky_witten on 2007/02/02 09:18:56 IFC Affected files ... .. //depot/projects/linuxolator/src/sys/arm/xscale/ixp425/avila_machdep.c#3 integrate .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#32 integrate .. //depot/projects/linuxolator/src/sys/dev/iwi/if_iwi.c#6 integrate .. //depot/projects/linuxolator/src/sys/kern/sched_4bsd.c#10 integrate .. //depot/projects/linuxolator/src/sys/kern/subr_witness.c#6 integrate .. //depot/projects/linuxolator/src/sys/kern/uipc_socket.c#10 integrate .. //depot/projects/linuxolator/src/sys/net80211/_ieee80211.h#4 integrate .. //depot/projects/linuxolator/src/sys/netinet/tcp_input.c#7 integrate .. //depot/projects/linuxolator/src/sys/netinet/tcp_output.c#5 integrate .. //depot/projects/linuxolator/src/sys/netinet/tcp_syncache.c#5 integrate .. //depot/projects/linuxolator/src/sys/netinet/tcp_usrreq.c#4 integrate .. //depot/projects/linuxolator/src/sys/netinet/tcp_var.h#3 integrate .. //depot/projects/linuxolator/src/sys/sun4v/include/intr_machdep.h#3 integrate .. //depot/projects/linuxolator/src/sys/sun4v/include/smp.h#4 integrate .. //depot/projects/linuxolator/src/sys/sun4v/sun4v/intr_machdep.c#4 integrate .. //depot/projects/linuxolator/src/sys/sun4v/sun4v/mp_machdep.c#5 integrate .. //depot/projects/linuxolator/src/sys/sun4v/sun4v/tte.c#4 integrate .. //depot/projects/linuxolator/src/sys/sys/socketvar.h#2 integrate Differences ... ==== //depot/projects/linuxolator/src/sys/arm/xscale/ixp425/avila_machdep.c#3 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_machdep.c,v 1.2 2006/12/06 06:34:54 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_machdep.c,v 1.3 2007/02/02 05:14:21 kevlo Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -274,7 +274,7 @@ #ifdef DDB vm_offset_t zstart = 0, zend = 0; #endif - int i = 0; + int i; uint32_t fake_preload[35]; uint32_t memsize; ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#32 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.14 2007/02/01 13:29:27 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.15 2007/02/02 08:58:16 kib Exp $"); #include "opt_compat.h" ==== //depot/projects/linuxolator/src/sys/dev/iwi/if_iwi.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.44 2006/12/07 15:24:38 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.45 2007/02/02 05:17:18 kevlo Exp $"); /*- * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver @@ -545,9 +545,10 @@ ring->queued = 0; ring->cur = ring->next = 0; - error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, count * IWI_CMD_DESC_SIZE, 1, - count * IWI_CMD_DESC_SIZE, 0, NULL, NULL, &ring->desc_dmat); + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 4, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + count * IWI_CMD_DESC_SIZE, 1, count * IWI_CMD_DESC_SIZE, 0, + NULL, NULL, &ring->desc_dmat); if (error != 0) { device_printf(sc->sc_dev, "could not create desc DMA tag\n"); goto fail; @@ -606,9 +607,10 @@ ring->csr_ridx = csr_ridx; ring->csr_widx = csr_widx; - error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, count * IWI_TX_DESC_SIZE, 1, - count * IWI_TX_DESC_SIZE, 0, NULL, NULL, &ring->desc_dmat); + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 4, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + count * IWI_TX_DESC_SIZE, 1, count * IWI_TX_DESC_SIZE, 0, NULL, + NULL, &ring->desc_dmat); if (error != 0) { device_printf(sc->sc_dev, "could not create desc DMA tag\n"); goto fail; @@ -636,9 +638,9 @@ goto fail; } - error = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, IWI_MAX_NSEG, - MCLBYTES, 0, NULL, NULL, &ring->data_dmat); + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, + IWI_MAX_NSEG, MCLBYTES, 0, NULL, NULL, &ring->data_dmat); if (error != 0) { device_printf(sc->sc_dev, "could not create data DMA tag\n"); goto fail; @@ -744,9 +746,9 @@ goto fail; } - error = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, 1, MCLBYTES, 0, NULL, - NULL, &ring->data_dmat); + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, + 1, MCLBYTES, 0, NULL, NULL, &ring->data_dmat); if (error != 0) { device_printf(sc->sc_dev, "could not create data DMA tag\n"); goto fail; @@ -3111,9 +3113,10 @@ if (sc->fw_uc.size > sc->fw_dma_size) sc->fw_dma_size = sc->fw_uc.size; - if (bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, sc->fw_dma_size, 1, sc->fw_dma_size, - 0, NULL, NULL, &sc->fw_dmat) != 0) { + if (bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 4, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + sc->fw_dma_size, 1, sc->fw_dma_size, 0, NULL, NULL, + &sc->fw_dmat) != 0) { device_printf(sc->sc_dev, "could not create firmware DMA tag\n"); IWI_LOCK(sc); ==== //depot/projects/linuxolator/src/sys/kern/sched_4bsd.c#10 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.95 2007/01/23 08:46:50 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.96 2007/02/02 05:14:21 julian Exp $"); #include "opt_hwpmc_hooks.h" @@ -866,9 +866,12 @@ * or stopped or any thing else similar. We never put the idle * threads on the run queue, however. */ - if (td == PCPU_GET(idlethread)) + if (td->td_flags & TDF_IDLETD) { TD_SET_CAN_RUN(td); - else { +#ifdef SMP + idle_cpus_mask &= ~PCPU_GET(cpumask); +#endif + } else { if (TD_IS_RUNNING(td)) { /* Put us back on the run queue. */ sched_add(td, (flags & SW_PREEMPT) ? @@ -901,13 +904,33 @@ PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_OUT); #endif + /* I feel sleepy */ cpu_switch(td, newtd); + /* + * Where am I? What year is it? + * We are in the same thread that went to sleep above, + * but any amount of time may have passed. All out context + * will still be available as will local variables. + * PCPU values however may have changed as we may have + * changed CPU so don't trust cached values of them. + * New threads will go to fork_exit() instead of here + * so if you change things here you may need to change + * things there too. + * If the thread above was exiting it will never wake + * up again here, so either it has saved everything it + * needed to, or the thread_wait() or wait() will + * need to reap it. + */ #ifdef HWPMC_HOOKS if (PMC_PROC_IS_USING_PMCS(td->td_proc)) PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_IN); #endif } +#ifdef SMP + if (td->td_flags & TDF_IDLETD) + idle_cpus_mask |= PCPU_GET(cpumask); +#endif sched_lock.mtx_lock = (uintptr_t)td; td->td_oncpu = PCPU_GET(cpuid); } @@ -1326,18 +1349,9 @@ { struct proc *p; struct thread *td; -#ifdef SMP - cpumask_t mycpu; -#endif td = curthread; p = td->td_proc; -#ifdef SMP - mycpu = PCPU_GET(cpumask); - mtx_lock_spin(&sched_lock); - idle_cpus_mask |= mycpu; - mtx_unlock_spin(&sched_lock); -#endif for (;;) { mtx_assert(&Giant, MA_NOTOWNED); @@ -1345,13 +1359,7 @@ cpu_idle(); mtx_lock_spin(&sched_lock); -#ifdef SMP - idle_cpus_mask &= ~mycpu; -#endif mi_switch(SW_VOL, NULL); -#ifdef SMP - idle_cpus_mask |= mycpu; -#endif mtx_unlock_spin(&sched_lock); } } ==== //depot/projects/linuxolator/src/sys/kern/subr_witness.c#6 (text+ko) ==== @@ -82,7 +82,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.221 2007/01/16 22:56:28 ssouhlal Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.222 2007/02/02 09:02:18 kib Exp $"); #include "opt_ddb.h" #include "opt_witness.h" @@ -370,6 +370,13 @@ { "cdev", &lock_class_mtx_sleep }, { NULL, NULL }, /* + * kqueue/VFS interaction + */ + { "kqueue", &lock_class_mtx_sleep }, + { "struct mount mtx", &lock_class_mtx_sleep }, + { "vnode interlock", &lock_class_mtx_sleep }, + { NULL, NULL }, + /* * spin locks */ #ifdef SMP ==== //depot/projects/linuxolator/src/sys/kern/uipc_socket.c#10 (text+ko) ==== @@ -95,7 +95,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.289 2007/01/22 14:50:28 andre Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.290 2007/02/01 17:53:40 andre Exp $"); #include "opt_inet.h" #include "opt_mac.h" @@ -368,6 +368,10 @@ knlist_init(&so->so_snd.sb_sel.si_note, SOCKBUF_MTX(&so->so_snd), NULL, NULL, NULL); so->so_count = 1; + /* + * Auto-sizing of socket buffers is managed by the protocols and + * the appropriate flags must be set in the pru_attach function. + */ error = (*prp->pr_usrreqs->pru_attach)(so, proto, td); if (error) { KASSERT(so->so_count == 1, ("socreate: so_count %d", @@ -442,6 +446,8 @@ so->so_snd.sb_lowat = head->so_snd.sb_lowat; so->so_rcv.sb_timeo = head->so_rcv.sb_timeo; so->so_snd.sb_timeo = head->so_snd.sb_timeo; + so->so_rcv.sb_flags |= head->so_rcv.sb_flags & SB_AUTOSIZE; + so->so_snd.sb_flags |= head->so_snd.sb_flags & SB_AUTOSIZE; so->so_state |= connstatus; ACCEPT_LOCK(); if (connstatus) { @@ -2116,6 +2122,8 @@ error = ENOBUFS; goto bad; } + (sopt->sopt_name == SO_SNDBUF ? &so->so_snd : + &so->so_rcv)->sb_flags &= ~SB_AUTOSIZE; break; /* ==== //depot/projects/linuxolator/src/sys/net80211/_ieee80211.h#4 (text+ko) ==== @@ -29,7 +29,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/net80211/_ieee80211.h,v 1.6 2007/01/15 01:12:28 sam Exp $ + * $FreeBSD: src/sys/net80211/_ieee80211.h,v 1.7 2007/02/02 02:45:33 sam Exp $ */ #ifndef _NET80211__IEEE80211_H_ #define _NET80211__IEEE80211_H_ @@ -186,6 +186,8 @@ (((_c)->ic_flags & (IEEE80211_CHAN_QUARTER | IEEE80211_CHAN_HALF)) == 0) #define IEEE80211_IS_CHAN_GSM(_c) \ (((_c)->ic_flags & IEEE80211_CHAN_GSM) != 0) +#define IEEE80211_IS_CHAN_PASSIVE(_c) \ + (((_c)->ic_flags & IEEE80211_CHAN_PASSIVE) != 0) /* ni_chan encoding for FH phy */ #define IEEE80211_FH_CHANMOD 80 ==== //depot/projects/linuxolator/src/sys/netinet/tcp_input.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.311 2006/12/12 12:17:56 bz Exp $ + * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.312 2007/02/01 18:32:13 andre Exp $ */ #include "opt_ipfw.h" /* for ipfw_fwd */ @@ -161,6 +161,18 @@ &tcp_reass_overflows, 0, "Global number of TCP Segment Reassembly Queue Overflows"); +int tcp_do_autorcvbuf = 1; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, recvbuf_auto, CTLFLAG_RW, + &tcp_do_autorcvbuf, 0, "Enable automatic receive buffer sizing"); + +int tcp_autorcvbuf_inc = 16*1024; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, recvbuf_inc, CTLFLAG_RW, + &tcp_autorcvbuf_inc, 0, "Incrementor step size of automatic receive buffer"); + +int tcp_autorcvbuf_max = 256*1024; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, recvbuf_max, CTLFLAG_RW, + &tcp_autorcvbuf_max, 0, "Max size of automatic receive buffer"); + struct inpcbhead tcb; #define tcb6 tcb /* for KAME src sync over BSD*'s */ struct inpcbinfo tcbinfo; @@ -1295,6 +1307,8 @@ } else if (th->th_ack == tp->snd_una && LIST_EMPTY(&tp->t_segq) && tlen <= sbspace(&so->so_rcv)) { + int newsize = 0; /* automatic sockbuf scaling */ + KASSERT(headlocked, ("headlocked")); INP_INFO_WUNLOCK(&tcbinfo); headlocked = 0; @@ -1321,18 +1335,78 @@ tcpstat.tcps_rcvpack++; tcpstat.tcps_rcvbyte += tlen; ND6_HINT(tp); /* some progress has been done */ - /* #ifdef TCPDEBUG if (so->so_options & SO_DEBUG) tcp_trace(TA_INPUT, ostate, tp, (void *)tcp_saveipgen, &tcp_savetcp, 0); #endif - * Add data to socket buffer. - */ + /* + * Automatic sizing of receive socket buffer. Often the send + * buffer size is not optimally adjusted to the actual network + * conditions at hand (delay bandwidth product). Setting the + * buffer size too small limits throughput on links with high + * bandwidth and high delay (eg. trans-continental/oceanic links). + * + * On the receive side the socket buffer memory is only rarely + * used to any significant extent. This allows us to be much + * more aggressive in scaling the receive socket buffer. For + * the case that the buffer space is actually used to a large + * extent and we run out of kernel memory we can simply drop + * the new segments; TCP on the sender will just retransmit it + * later. Setting the buffer size too big may only consume too + * much kernel memory if the application doesn't read() from + * the socket or packet loss or reordering makes use of the + * reassembly queue. + * + * The criteria to step up the receive buffer one notch are: + * 1. the number of bytes received during the time it takes + * one timestamp to be reflected back to us (the RTT); + * 2. received bytes per RTT is within seven eighth of the + * current socket buffer size; + * 3. receive buffer size has not hit maximal automatic size; + * + * This algorithm does one step per RTT at most and only if + * we receive a bulk stream w/o packet losses or reorderings. + * Shrinking the buffer during idle times is not necessary as + * it doesn't consume any memory when idle. + * + * TODO: Only step up if the application is actually serving + * the buffer to better manage the socket buffer resources. + */ + if (tcp_do_autorcvbuf && + to.to_tsecr && + (so->so_rcv.sb_flags & SB_AUTOSIZE)) { + if (to.to_tsecr > tp->rfbuf_ts && + to.to_tsecr - tp->rfbuf_ts < hz) { + if (tp->rfbuf_cnt > + (so->so_rcv.sb_hiwat / 8 * 7) && + so->so_rcv.sb_hiwat < + tcp_autorcvbuf_max) { + newsize = + min(so->so_rcv.sb_hiwat + + tcp_autorcvbuf_inc, + tcp_autorcvbuf_max); + } + /* Start over with next RTT. */ + tp->rfbuf_ts = 0; + tp->rfbuf_cnt = 0; + } else + tp->rfbuf_cnt += tlen; /* add up */ + } + + /* Add data to socket buffer. */ SOCKBUF_LOCK(&so->so_rcv); if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { m_freem(m); } else { + /* + * Set new socket buffer size. + * Give up when limit is reached. + */ + if (newsize) + if (!sbreserve_locked(&so->so_rcv, + newsize, so, curthread)) + so->so_rcv.sb_flags &= ~SB_AUTOSIZE; m_adj(m, drop_hdrlen); /* delayed header drop */ sbappendstream_locked(&so->so_rcv, m); } @@ -1361,6 +1435,10 @@ tp->rcv_wnd = imax(win, (int)(tp->rcv_adv - tp->rcv_nxt)); } + /* Reset receive buffer auto scaling when not in bulk receive mode. */ + tp->rfbuf_ts = 0; + tp->rfbuf_cnt = 0; + switch (tp->t_state) { /* ==== //depot/projects/linuxolator/src/sys/netinet/tcp_output.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)tcp_output.c 8.4 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/tcp_output.c,v 1.121 2006/10/22 11:52:16 rwatson Exp $ + * $FreeBSD: src/sys/netinet/tcp_output.c,v 1.122 2007/02/01 18:32:13 andre Exp $ */ #include "opt_inet.h" @@ -110,6 +110,19 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, tso, CTLFLAG_RW, &tcp_do_tso, 0, "Enable TCP Segmentation Offload"); +int tcp_do_autosndbuf = 1; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, sendbuf_auto, CTLFLAG_RW, + &tcp_do_autosndbuf, 0, "Enable automatic send buffer sizing"); + +int tcp_autosndbuf_inc = 8*1024; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, sendbuf_inc, CTLFLAG_RW, + &tcp_autosndbuf_inc, 0, "Incrementor step size of automatic send buffer"); + +int tcp_autosndbuf_max = 256*1024; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, sendbuf_max, CTLFLAG_RW, + &tcp_autosndbuf_max, 0, "Max size of automatic send buffer"); + + /* * Tcp output routine: figure out what should be sent and send it. */ @@ -380,11 +393,60 @@ } } + /* len will be >= 0 after this point. */ + KASSERT(len >= 0, ("%s: len < 0", __func__)); + + /* + * Automatic sizing of send socket buffer. Often the send buffer + * size is not optimally adjusted to the actual network conditions + * at hand (delay bandwidth product). Setting the buffer size too + * small limits throughput on links with high bandwidth and high + * delay (eg. trans-continental/oceanic links). Setting the + * buffer size too big consumes too much real kernel memory, + * especially with many connections on busy servers. + * + * The criteria to step up the send buffer one notch are: + * 1. receive window of remote host is larger than send buffer + * (with a fudge factor of 5/4th); + * 2. send buffer is filled to 7/8th with data (so we actually + * have data to make use of it); + * 3. send buffer fill has not hit maximal automatic size; + * 4. our send window (slow start and cogestion controlled) is + * larger than sent but unacknowledged data in send buffer. + * + * The remote host receive window scaling factor may limit the + * growing of the send buffer before it reaches its allowed + * maximum. + * + * It scales directly with slow start or congestion window + * and does at most one step per received ACK. This fast + * scaling has the drawback of growing the send buffer beyond + * what is strictly necessary to make full use of a given + * delay*bandwith product. However testing has shown this not + * to be much of an problem. At worst we are trading wasting + * of available bandwith (the non-use of it) for wasting some + * socket buffer memory. + * + * TODO: Shrink send buffer during idle periods together + * with congestion window. Requires another timer. Has to + * wait for upcoming tcp timer rewrite. + */ + if (tcp_do_autosndbuf && so->so_snd.sb_flags & SB_AUTOSIZE) { + if ((tp->snd_wnd / 4 * 5) >= so->so_snd.sb_hiwat && + so->so_snd.sb_cc >= (so->so_snd.sb_hiwat / 8 * 7) && + so->so_snd.sb_cc < tcp_autosndbuf_max && + sendwin >= (so->so_snd.sb_cc - (tp->snd_nxt - tp->snd_una))) { + if (!sbreserve_locked(&so->so_snd, + min(so->so_snd.sb_hiwat + tcp_autosndbuf_inc, + tcp_autosndbuf_max), so, curthread)) + so->so_snd.sb_flags &= ~SB_AUTOSIZE; + } + } + /* - * len will be >= 0 after this point. Truncate to the maximum - * segment length or enable TCP Segmentation Offloading (if supported - * by hardware) and ensure that FIN is removed if the length no longer - * contains the last data byte. + * Truncate to the maximum segment length or enable TCP Segmentation + * Offloading (if supported by hardware) and ensure that FIN is removed + * if the length no longer contains the last data byte. * * TSO may only be used if we are in a pure bulk sending state. The * presence of TCP-MD5, SACK retransmits, SACK advertizements and @@ -606,6 +668,10 @@ optlen += TCPOLEN_TSTAMP_APPA; } + /* Set receive buffer autosizing timestamp. */ + if (tp->rfbuf_ts == 0 && (so->so_rcv.sb_flags & SB_AUTOSIZE)) + tp->rfbuf_ts = ticks; + #ifdef TCP_SIGNATURE #ifdef INET6 if (!isipv6) ==== //depot/projects/linuxolator/src/sys/netinet/tcp_syncache.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/netinet/tcp_syncache.c,v 1.103 2006/12/13 06:00:56 csjp Exp $ + * $FreeBSD: src/sys/netinet/tcp_syncache.c,v 1.104 2007/02/01 17:39:18 andre Exp $ */ #include "opt_inet.h" @@ -1014,9 +1014,15 @@ if (to->to_flags & TOF_SCALE) { int wscale = 0; - /* Compute proper scaling value from buffer space */ + /* + * Compute proper scaling value from buffer space. + * Leave enough room for the socket buffer to grow + * with auto sizing. This allows us to scale the + * receive buffer over a wide range while not losing + * any efficiency or fine granularity. + */ while (wscale < TCP_MAX_WINSHIFT && - (TCP_MAXWIN << wscale) < sb_hiwat) + (0x1 << wscale) < tcp_minmss) wscale++; sc->sc_requested_r_scale = wscale; sc->sc_requested_s_scale = to->to_requested_s_scale; ==== //depot/projects/linuxolator/src/sys/netinet/tcp_usrreq.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ * SUCH DAMAGE. * * From: @(#)tcp_usrreq.c 8.2 (Berkeley) 1/3/94 - * $FreeBSD: src/sys/netinet/tcp_usrreq.c,v 1.142 2006/11/22 17:16:54 sam Exp $ + * $FreeBSD: src/sys/netinet/tcp_usrreq.c,v 1.144 2007/02/01 18:32:13 andre Exp $ */ #include "opt_inet.h" @@ -1131,9 +1131,14 @@ inp->inp_laddr = laddr; in_pcbrehash(inp); - /* Compute window scaling to request. */ + /* + * Compute window scaling to request: + * Scale to fit into sweet spot. See tcp_syncache.c. + * XXX: This should move to tcp_output(). + * XXX: This should be based on the actual MSS. + */ while (tp->request_r_scale < TCP_MAX_WINSHIFT && - (TCP_MAXWIN << tp->request_r_scale) < so->so_rcv.sb_hiwat) + (0x1 << tp->request_r_scale) < tcp_minmss) tp->request_r_scale++; soisconnecting(so); @@ -1441,6 +1446,8 @@ if (error) return (error); } + so->so_rcv.sb_flags |= SB_AUTOSIZE; + so->so_snd.sb_flags |= SB_AUTOSIZE; INP_INFO_WLOCK(&tcbinfo); error = in_pcballoc(so, &tcbinfo); if (error) { ==== //depot/projects/linuxolator/src/sys/netinet/tcp_var.h#3 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)tcp_var.h 8.4 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.137 2006/09/13 13:08:27 andre Exp $ + * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.138 2007/02/01 18:32:13 andre Exp $ */ #ifndef _NETINET_TCP_VAR_H_ @@ -202,6 +202,8 @@ episode starts at this seq number */ struct sackhint sackhint; /* SACK scoreboard hint */ int t_rttlow; /* smallest observerved RTT */ + u_int32_t rfbuf_ts; /* recv buffer autoscaling timestamp */ + int rfbuf_cnt; /* recv buffer autoscaling byte count */ }; #define IN_FASTRECOVERY(tp) (tp->t_flags & TF_FASTRECOVERY) ==== //depot/projects/linuxolator/src/sys/sun4v/include/intr_machdep.h#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sun4v/include/intr_machdep.h,v 1.2 2007/01/19 11:15:33 marius Exp $ + * $FreeBSD: src/sys/sun4v/include/intr_machdep.h,v 1.3 2007/02/02 05:00:21 kmacy Exp $ */ #ifndef _MACHINE_INTR_MACHDEP_H_ @@ -46,6 +46,7 @@ #define PIL_RENDEZVOUS 3 /* smp rendezvous ipi */ #define PIL_AST 4 /* ast ipi */ #define PIL_STOP 5 /* stop cpu ipi */ +#define PIL_PREEMPT 6 /* preempt idle thread cpu ipi */ #define PIL_FAST 13 /* fast interrupts */ #define PIL_TICK 14 ==== //depot/projects/linuxolator/src/sys/sun4v/include/smp.h#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sun4v/include/smp.h,v 1.3 2006/12/25 02:05:52 kmacy Exp $ + * $FreeBSD: src/sys/sun4v/include/smp.h,v 1.4 2007/02/02 05:00:21 kmacy Exp $ */ #ifndef _MACHINE_SMP_H_ @@ -44,7 +44,9 @@ #define IPI_AST PIL_AST #define IPI_RENDEZVOUS PIL_RENDEZVOUS #define IPI_STOP PIL_STOP +#define IPI_PREEMPT PIL_PREEMPT + #define IPI_RETRIES 5000 struct cpu_start_args { @@ -79,6 +81,7 @@ void cpu_ipi_ast(struct trapframe *tf); void cpu_ipi_stop(struct trapframe *tf); +void cpu_ipi_preempt(struct trapframe *tf); void ipi_selected(u_int cpus, u_int ipi); void ipi_all(u_int ipi); ==== //depot/projects/linuxolator/src/sys/sun4v/sun4v/intr_machdep.c#4 (text+ko) ==== @@ -59,7 +59,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/intr_machdep.c,v 1.3 2006/11/24 05:27:49 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/intr_machdep.c,v 1.4 2007/02/02 05:00:21 kmacy Exp $"); #include #include @@ -114,7 +114,8 @@ "rndzvs", /* PIL_RENDEZVOUS */ "ast", /* PIL_AST */ "stop", /* PIL_STOP */ - "stray", "stray", "stray", "stray", "stray", "stray", "stray", + "preempt", /* PIL_PREEMPT */ + "stray", "stray", "stray", "stray", "stray", "stray", "fast", /* PIL_FAST */ "tick", /* PIL_TICK */ }; @@ -266,6 +267,7 @@ intr_handlers[PIL_AST] = cpu_ipi_ast; intr_handlers[PIL_RENDEZVOUS] = (ih_func_t *)smp_rendezvous_action; intr_handlers[PIL_STOP]= cpu_ipi_stop; + intr_handlers[PIL_PREEMPT]= cpu_ipi_preempt; #endif mtx_init(&intr_table_lock, "intr table", NULL, MTX_SPIN); cpu_intrq_alloc(); ==== //depot/projects/linuxolator/src/sys/sun4v/sun4v/mp_machdep.c#5 (text+ko) ==== @@ -55,7 +55,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/mp_machdep.c,v 1.5 2006/12/17 01:31:56 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/mp_machdep.c,v 1.6 2007/02/02 05:00:21 kmacy Exp $"); #include "opt_trap_trace.h" @@ -456,6 +456,20 @@ } void +cpu_ipi_preempt(struct trapframe *tf) +{ + struct thread *running_thread = curthread; + + mtx_lock_spin(&sched_lock); + if (running_thread->td_critnest > 1) + running_thread->td_owepreempt = 1; + else + mi_switch(SW_INVOL | SW_PREEMPT, NULL); + mtx_unlock_spin(&sched_lock); + +} + +void cpu_ipi_selected(int cpu_count, uint16_t *cpulist, u_long d0, u_long d1, u_long d2, uint64_t *ackmask) { ==== //depot/projects/linuxolator/src/sys/sun4v/sun4v/tte.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/tte.c,v 1.3 2006/12/24 08:03:27 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/tte.c,v 1.4 2007/02/02 04:57:11 kmacy Exp $"); #include "opt_ddb.h" #include "opt_pmap.h" @@ -74,7 +74,7 @@ PMAP_LOCK(pmap); otte_data = tte_hash_clear_bits(pmap->pm_hash, pv->pv_va, flags); if ((matchbits = (otte_data & active_flags)) != 0) { - if (matchbits == VTD_W) + if ((otte_data & (VTD_SW_W|VTD_W)) == (VTD_SW_W|VTD_W)) vm_page_dirty(m); pmap_invalidate_page(pmap, pv->pv_va, TRUE); } ==== //depot/projects/linuxolator/src/sys/sys/socketvar.h#2 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)socketvar.h 8.3 (Berkeley) 2/19/95 - * $FreeBSD: src/sys/sys/socketvar.h,v 1.154 2006/08/01 10:30:26 rwatson Exp $ + * $FreeBSD: src/sys/sys/socketvar.h,v 1.155 2007/02/01 17:53:41 andre Exp $ */ #ifndef _SYS_SOCKETVAR_H_ @@ -128,6 +128,7 @@ #define SB_NOINTR 0x40 /* operations not interruptible */ #define SB_AIO 0x80 /* AIO operations queued */ #define SB_KNOTE 0x100 /* kernel note attached */ +#define SB_AUTOSIZE 0x800 /* automatically size socket buffer */ void (*so_upcall)(struct socket *, void *, int); void *so_upcallarg; From owner-p4-projects@FreeBSD.ORG Fri Feb 2 15:01:14 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B07A16A40D; Fri, 2 Feb 2007 15:01:14 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4943016A406 for ; Fri, 2 Feb 2007 15:01:14 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 1CDF613C49D for ; Fri, 2 Feb 2007 15:01:14 +0000 (UTC) (envelope-from bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l12F1Dcv028650 for ; Fri, 2 Feb 2007 15:01:13 GMT (envelope-from bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l12F1DA9028647 for perforce@freebsd.org; Fri, 2 Feb 2007 15:01:13 GMT (envelope-from bushman@freebsd.org) Date: Fri, 2 Feb 2007 15:01:13 GMT Message-Id: <200702021501.l12F1DA9028647@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bushman@freebsd.org using -f From: Michael Bushkov To: Perforce Change Reviews Cc: Subject: PERFORCE change 113904 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 15:01:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=113904 Change 113904 by bushman@bushman_nss_ldap_cached on 2007/02/02 15:00:18 Scripts to save some time. Affected files ... .. //depot/projects/soc2006/nss_ldap_cached/branches.bl#1 add .. //depot/projects/soc2006/nss_ldap_cached/create_patches.sh#1 add .. //depot/projects/soc2006/nss_ldap_cached/update_branches.sh#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Fri Feb 2 21:48:18 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 377D916A410; Fri, 2 Feb 2007 21:48:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D30EF16A400 for ; Fri, 2 Feb 2007 21:48:17 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id BF0FE13C4AC for ; Fri, 2 Feb 2007 21:48:17 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l12LmH0R022305 for ; Fri, 2 Feb 2007 21:48:17 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l12LltFd022298 for perforce@freebsd.org; Fri, 2 Feb 2007 21:47:55 GMT (envelope-from imp@freebsd.org) Date: Fri, 2 Feb 2007 21:47:55 GMT Message-Id: <200702022147.l12LltFd022298@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 113920 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 21:48:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=113920 Change 113920 by imp@imp_paco-paco on 2007/02/02 21:47:28 IFC @113915 Affected files ... .. //depot/projects/arm/src/Makefile.inc1#21 integrate .. //depot/projects/arm/src/ObsoleteFiles.inc#15 integrate .. //depot/projects/arm/src/bin/sh/exec.c#3 integrate .. //depot/projects/arm/src/contrib/bind9/CHANGES#5 integrate .. //depot/projects/arm/src/contrib/bind9/FAQ#3 integrate .. //depot/projects/arm/src/contrib/bind9/FAQ.xml#3 integrate .. //depot/projects/arm/src/contrib/bind9/README#3 integrate .. //depot/projects/arm/src/contrib/bind9/lib/dns/api#3 integrate .. //depot/projects/arm/src/contrib/bind9/lib/dns/include/dns/validator.h#3 integrate .. //depot/projects/arm/src/contrib/bind9/lib/dns/resolver.c#5 integrate .. //depot/projects/arm/src/contrib/bind9/lib/dns/validator.c#3 integrate .. //depot/projects/arm/src/contrib/bind9/version#5 integrate .. //depot/projects/arm/src/contrib/ncurses/ANNOUNCE#2 integrate .. //depot/projects/arm/src/contrib/ncurses/AUTHORS#1 branch .. //depot/projects/arm/src/contrib/ncurses/FREEBSD-Xlist#1 branch .. //depot/projects/arm/src/contrib/ncurses/FREEBSD-upgrade#1 branch .. //depot/projects/arm/src/contrib/ncurses/INSTALL#2 integrate .. //depot/projects/arm/src/contrib/ncurses/MANIFEST#2 integrate .. //depot/projects/arm/src/contrib/ncurses/Makefile.glibc#2 delete .. //depot/projects/arm/src/contrib/ncurses/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/Makefile.os2#2 integrate .. //depot/projects/arm/src/contrib/ncurses/NEWS#2 integrate .. //depot/projects/arm/src/contrib/ncurses/README#2 integrate .. //depot/projects/arm/src/contrib/ncurses/README.emx#2 integrate .. //depot/projects/arm/src/contrib/ncurses/README.glibc#2 delete .. //depot/projects/arm/src/contrib/ncurses/TO-DO#2 integrate .. //depot/projects/arm/src/contrib/ncurses/aclocal.m4#2 integrate .. //depot/projects/arm/src/contrib/ncurses/announce.html.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/c++/Makefile.in#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/NEWS#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/PROBLEMS#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/README-first#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesapp.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesapp.h#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesf.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesf.h#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesm.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesm.h#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesmain.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesp.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesp.h#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursespad.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesw.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursesw.h#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursslk.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/cursslk.h#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/demo.cc#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/edit_cfg.sh#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/etip.h.in#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/headers#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/internal.h#2 delete .. //depot/projects/arm/src/contrib/ncurses/c++/modules#2 delete .. //depot/projects/arm/src/contrib/ncurses/config.guess#2 integrate .. //depot/projects/arm/src/contrib/ncurses/config.sub#2 integrate .. //depot/projects/arm/src/contrib/ncurses/configure#2 integrate .. //depot/projects/arm/src/contrib/ncurses/configure.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/convert_configure.pl#2 integrate .. //depot/projects/arm/src/contrib/ncurses/dist.mk#2 integrate .. //depot/projects/arm/src/contrib/ncurses/doc/hackguide.doc#2 integrate .. //depot/projects/arm/src/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html#1 branch .. //depot/projects/arm/src/contrib/ncurses/doc/html/announce.html#2 integrate .. //depot/projects/arm/src/contrib/ncurses/doc/html/hackguide.html#2 integrate .. //depot/projects/arm/src/contrib/ncurses/doc/html/ncurses-intro.html#2 integrate .. //depot/projects/arm/src/contrib/ncurses/doc/ncurses-intro.doc#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/READ.ME#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/f_trace.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/form/fld_arg.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_attr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_current.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_def.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_dup.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_ftchoice.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_ftlink.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_info.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_just.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_link.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_max.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_move.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_newftyp.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_opts.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_pad.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_page.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_stat.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_type.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fld_user.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/form.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/form.priv.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_cursor.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_data.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_def.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_driver.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_hook.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_opts.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_page.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_post.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_req_name.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_scale.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_sub.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_user.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/frm_win.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fty_alnum.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fty_alpha.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fty_enum.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fty_int.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fty_ipv4.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fty_num.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/fty_regex.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/llib-lform#2 integrate .. //depot/projects/arm/src/contrib/ncurses/form/llib-lformw#1 branch .. //depot/projects/arm/src/contrib/ncurses/form/modules#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/Caps#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/Caps.aix4#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/Caps.hpux11#1 branch .. //depot/projects/arm/src/contrib/ncurses/include/Caps.keys#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/Caps.osf1r5#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/Caps.uwin#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/MKhashsize.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/MKkey_defs.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/MKncurses_def.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/MKparametrized.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/MKterm.h.awk.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/curses.h.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/curses.tail#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/curses.wide#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/hashed_db.h#1 branch .. //depot/projects/arm/src/contrib/ncurses/include/nc_alloc.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/nc_tparm.h#1 branch .. //depot/projects/arm/src/contrib/ncurses/include/ncurses_cfg.hin#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/ncurses_defs#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/ncurses_dll.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/term_entry.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/include/tic.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/install-sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/captoinfo.1m#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/clear.1#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_add_wch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_add_wchstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_addch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_addchstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_addstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_addwstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_attr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_beep.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_bkgd.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_bkgrnd.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_border.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_border_set.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_clear.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_color.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_delch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_deleteln.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_extend.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_get_wch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_get_wstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_getcchar.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_getch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_getstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_getyx.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_in_wch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_in_wchstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_inch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_inchstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_initscr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_inopts.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_ins_wch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_ins_wstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_insch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_insstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_instr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_inwstr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_kernel.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_mouse.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_move.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_outopts.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_overlay.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_pad.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_print.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_printw.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_refresh.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_scanw.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_scr_dump.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_scroll.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_slk.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_termattrs.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_termcap.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_terminfo.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_touch.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_trace.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_util.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/curs_window.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/default_colors.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/define_key.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_cursor.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_data.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_driver.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field_attributes.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field_buffer.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field_info.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field_just.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field_new.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field_opts.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field_userptr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_field_validation.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_fieldtype.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_hook.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_new.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_new_page.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_opts.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_page.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_post.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_requestname.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_userptr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/form_win.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/infocmp.1m#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/infotocap.1m#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/key_defined.3x#1 branch .. //depot/projects/arm/src/contrib/ncurses/man/keybound.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/keyok.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/legacy_coding.3x#1 branch .. //depot/projects/arm/src/contrib/ncurses/man/make_sed.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/man_db.renames#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/manlinks.sed#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_attributes.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_cursor.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_driver.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_format.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_hook.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_items.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_mark.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_new.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_opts.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_pattern.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_post.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_requestname.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_spacing.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_userptr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/menu_win.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/mitem_current.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/mitem_name.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/mitem_new.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/mitem_opts.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/mitem_userptr.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/mitem_value.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/ncurses.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/panel.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/resizeterm.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/term.5#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/term.7#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/terminfo.head#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/terminfo.tail#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/tic.1m#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/toe.1m#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/tput.1#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/tset.1#2 integrate .. //depot/projects/arm/src/contrib/ncurses/man/wresize.3x#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/READ.ME#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/eti.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/llib-lmenu#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/llib-lmenuw#1 branch .. //depot/projects/arm/src/contrib/ncurses/menu/m_attribs.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_cursor.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_driver.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_format.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_global.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_hook.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_item_cur.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_item_nam.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_item_new.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_item_opt.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_item_top.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_item_use.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_item_val.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_item_vis.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_items.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_new.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_opts.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_pad.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_pattern.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_post.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_req_name.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_scale.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_spacing.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_sub.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_trace.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/menu/m_userptr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/m_win.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/menu.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/menu.priv.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/mf_common.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/menu/modules#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/chkdef.cmd#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/cleantic.cmd#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/cmpdef.cmd#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/csort#1 branch .. //depot/projects/arm/src/contrib/ncurses/misc/emx.src#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/gen_edit.sh#1 branch .. //depot/projects/arm/src/contrib/ncurses/misc/indent.pro#2 delete .. //depot/projects/arm/src/contrib/ncurses/misc/jpf-indent#1 branch .. //depot/projects/arm/src/contrib/ncurses/misc/makedef.cmd#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/ncu-indent#1 branch .. //depot/projects/arm/src/contrib/ncurses/misc/ncurses-config.in#1 branch .. //depot/projects/arm/src/contrib/ncurses/misc/run_tic.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/shlib#2 integrate .. //depot/projects/arm/src/contrib/ncurses/misc/terminfo.src#2 integrate .. //depot/projects/arm/src/contrib/ncurses/mk-0th.awk#2 integrate .. //depot/projects/arm/src/contrib/ncurses/mk-1st.awk#2 integrate .. //depot/projects/arm/src/contrib/ncurses/mk-2nd.awk#2 integrate .. //depot/projects/arm/src/contrib/ncurses/mkinstalldirs#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/README#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/README.IZ#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/SigAction.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/MKkeyname.awk#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/MKlib_gen.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/MKunctrl.awk#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/README#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/define_key.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/key_defined.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/keybound.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/keyok.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/legacy_coding.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_addch.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_addstr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_beep.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_bkgd.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_box.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_chgat.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_clrbot.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_color.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_colorset.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_dft_fgbg.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_erase.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_freeall.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_getch.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_getstr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_hline.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_initscr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_insch.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_insdel.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_insnstr.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_insstr.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_instr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_mouse.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_move.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_mvwin.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_newterm.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_newwin.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_overlay.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_pad.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_printw.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_redrawln.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_refresh.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_restart.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_screen.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_scroll.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_set_term.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slk.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkatr_set.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkatrof.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkatron.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkatrset.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkattr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkclear.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkcolor.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slklab.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkrefr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_slkset.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_ungetch.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_vline.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_wattroff.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_wattron.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/lib_window.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/resizeterm.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/safe_sprintf.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/sigaction.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/tries.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/version.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/vsscanf.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/base/wresize.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/curses.priv.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/llib-lncurses#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/llib-lncursesw#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/modules#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/MKcaptab.awk#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/MKfallback.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/MKkeys_list.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/MKnames.awk#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/README#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/access.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/add_tries.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/alloc_entry.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/alloc_ttype.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/captoinfo.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/comp_error.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/comp_expand.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/comp_hash.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/comp_parse.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/comp_scan.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/db_iterator.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/doalloc.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/free_ttype.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/hashed_db.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/home_terminfo.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/init_keytry.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_acs.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_cur_term.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_data.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_has_cap.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_kernel.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_napms.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_options.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_print.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_raw.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_setup.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_termcap.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_termname.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_tgoto.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_ti.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_tparm.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_tputs.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/lib_ttyflags.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/make_keys.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/name_match.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/parse_entry.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/read_entry.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/read_termcap.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/setbuf.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/strings.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/trim_sgr0.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/tinfo/write_entry.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/README#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/lib_trace.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/lib_traceatr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/lib_tracebits.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/lib_tracechr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/lib_tracedmp.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/lib_tracemse.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/trace_buf.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/varargs.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/trace/visbuf.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tty/MKexpanded.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tty/hashmap.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tty/lib_mvcur.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tty/lib_tstp.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tty/lib_twait.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tty/lib_vidattr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tty/tty_display.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/tty/tty_update.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/charable.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_add_wch.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_box_set.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_cchar.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_get_wch.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_get_wstr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_in_wch.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_ins_nwstr.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_ins_wch.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_inwstr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_slk_wset.c#1 branch .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_unget_wch.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_vid_attr.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_wacs.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/ncurses/widechar/lib_wunctrl.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/llib-lpanel#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/llib-lpanelw#1 branch .. //depot/projects/arm/src/contrib/ncurses/panel/p_above.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_below.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_bottom.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_delete.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_hidden.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_hide.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_move.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_new.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_replace.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_show.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_top.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_update.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_user.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/p_win.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/panel.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/panel.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/panel/panel.priv.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/MKtermsort.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/capconvert#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/clear.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/clear.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/dump_entry.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/dump_entry.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/infocmp.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/modules#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/progs.priv.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/tic.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/toe.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/tput.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/progs/tset.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/COPYING#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/HISTORY#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/Makefile.in#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/ansi.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/charset.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/color.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/control.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/crum.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/edit.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/fun.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/init.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/menu.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/modes.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/modules#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/output.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/pad.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/scan.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/sync.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/sysdep.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/tack.1#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/tack.c#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tack/tack.h#2 integrate .. //depot/projects/arm/src/contrib/ncurses/tar-copy.sh#2 integrate .. //depot/projects/arm/src/contrib/ncurses/test/Makefile.in#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/README#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/blue.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/bs.6#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/bs.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/cardfile.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/cardfile.dat#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/configure#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/configure.in#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/ditto.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/dots.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/filter.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/firework.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/firstlast.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/gdc.6#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/gdc.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/hanoi.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/hashtest.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/keynames.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/knight.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/lrtest.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/modules#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/ncurses.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/ncurses_tst.hin#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/newdemo.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/railroad.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/rain.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/tclock.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/test.priv.h#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/testaddch.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/testcurs.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/testscanw.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/tracemunch#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/view.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/worm.c#2 delete .. //depot/projects/arm/src/contrib/ncurses/test/xmas.c#2 delete .. //depot/projects/arm/src/etc/defaults/rc.conf#10 integrate .. //depot/projects/arm/src/etc/etc.powerpc/ttys#2 integrate .. //depot/projects/arm/src/etc/rc.d/quota#2 integrate .. //depot/projects/arm/src/gnu/usr.bin/Makefile#5 integrate .. //depot/projects/arm/src/gnu/usr.bin/gdb/kgdb/kthr.c#4 integrate .. //depot/projects/arm/src/gnu/usr.bin/gzip/COPYING#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/ChangeLog#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/Makefile#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/NEWS#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/README#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/THANKS#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/TODO#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/algorithm.doc#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/bits.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/crypt.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/crypt.h#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/deflate.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/gzexe#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/gzexe.1#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/gzip.1#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/gzip.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/gzip.h#3 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/inflate.c#3 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/lzw.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/lzw.h#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/match.S#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/revision.h#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/tailor.h#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/trees.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/unlzh.c#3 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/unlzw.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/unpack.c#3 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/unzip.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/util.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zdiff#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zdiff.1#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zforce#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zforce.1#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zgrep#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zgrep.1#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zgrep.getopt#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zgrep.libz#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zip.c#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zmore#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/zmore.1#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/znew#2 delete .. //depot/projects/arm/src/gnu/usr.bin/gzip/znew.1#2 delete .. //depot/projects/arm/src/include/Makefile#7 integrate .. //depot/projects/arm/src/include/objformat.h#2 delete .. //depot/projects/arm/src/include/rpc/auth_kerb.h#2 integrate .. //depot/projects/arm/src/include/tgmath.h#2 integrate .. //depot/projects/arm/src/lib/Makefile#6 integrate .. //depot/projects/arm/src/lib/bind/bind/config.h#3 integrate .. //depot/projects/arm/src/lib/bind/config.h#3 integrate .. //depot/projects/arm/src/lib/bind/dns/code.h#3 integrate .. //depot/projects/arm/src/lib/bind/dns/dns/enumclass.h#3 integrate .. //depot/projects/arm/src/lib/bind/dns/dns/enumtype.h#3 integrate .. //depot/projects/arm/src/lib/bind/dns/dns/rdatastruct.h#3 integrate .. //depot/projects/arm/src/lib/libarchive/Makefile#6 integrate .. //depot/projects/arm/src/lib/libarchive/archive.h.in#8 integrate .. //depot/projects/arm/src/lib/libarchive/archive_read.3#7 integrate .. //depot/projects/arm/src/lib/libarchive/archive_read.c#7 integrate .. //depot/projects/arm/src/lib/libarchive/archive_read_support_format_all.c#3 integrate .. //depot/projects/arm/src/lib/libarchive/archive_read_support_format_empty.c#1 branch .. //depot/projects/arm/src/lib/libc/gen/Makefile.inc#2 integrate .. //depot/projects/arm/src/lib/libc/gen/Symbol.map#2 integrate .. //depot/projects/arm/src/lib/libc/gen/getobjformat.3#3 delete .. //depot/projects/arm/src/lib/libc/gen/getobjformat.c#2 delete .. //depot/projects/arm/src/lib/libc/gen/siglist.c#3 integrate .. //depot/projects/arm/src/lib/libc/net/nsdispatch.3#3 integrate .. //depot/projects/arm/src/lib/libc/rpc/getnetconfig.c#3 integrate .. //depot/projects/arm/src/lib/libc/rpc/getnetpath.c#3 integrate .. //depot/projects/arm/src/lib/libc/stdlib/malloc.c#9 integrate .. //depot/projects/arm/src/lib/libc/stdtime/localtime.c#2 integrate .. //depot/projects/arm/src/lib/libc/sys/chmod.2#5 integrate .. //depot/projects/arm/src/lib/libc/sys/quotactl.2#3 integrate .. //depot/projects/arm/src/lib/libform/Makefile#2 delete .. //depot/projects/arm/src/lib/libmenu/Makefile#2 delete .. //depot/projects/arm/src/lib/libncurses/Makefile#2 delete .. //depot/projects/arm/src/lib/libncurses/ncurses_cfg.h#2 delete .. //depot/projects/arm/src/lib/libncurses/pathnames.h#3 delete .. //depot/projects/arm/src/lib/libncurses/termcap.c#3 delete .. //depot/projects/arm/src/lib/libpam/modules/pam_radius/pam_radius.c#2 integrate .. //depot/projects/arm/src/lib/libpanel/Makefile#2 delete .. //depot/projects/arm/src/lib/ncurses/Makefile#1 branch .. //depot/projects/arm/src/lib/ncurses/Makefile.inc#1 branch .. //depot/projects/arm/src/lib/ncurses/config.mk#1 branch .. //depot/projects/arm/src/lib/ncurses/form/Makefile#1 branch .. //depot/projects/arm/src/lib/ncurses/menu/Makefile#1 branch .. //depot/projects/arm/src/lib/ncurses/ncurses/Makefile#1 branch .. //depot/projects/arm/src/lib/ncurses/ncurses/ncurses_cfg.h#1 branch .. //depot/projects/arm/src/lib/ncurses/ncurses/pathnames.h#1 branch .. //depot/projects/arm/src/lib/ncurses/ncurses/termcap.c#1 branch .. //depot/projects/arm/src/lib/ncurses/panel/Makefile#1 branch .. //depot/projects/arm/src/libexec/rtld-elf/rtld.1#3 integrate .. //depot/projects/arm/src/release/Makefile#9 integrate .. //depot/projects/arm/src/rescue/rescue/Makefile#5 integrate .. //depot/projects/arm/src/sbin/Makefile#5 integrate .. //depot/projects/arm/src/sbin/camcontrol/camcontrol.c#5 integrate .. //depot/projects/arm/src/sbin/dhclient/dhclient.c#4 integrate .. //depot/projects/arm/src/sbin/geom/class/eli/geom_eli.c#5 integrate .. //depot/projects/arm/src/sbin/geom/class/journal/gjournal.8#1 branch .. //depot/projects/arm/src/sbin/geom/misc/subr.c#2 integrate .. //depot/projects/arm/src/sbin/geom/misc/subr.h#3 integrate .. //depot/projects/arm/src/sbin/ifconfig/ifconfig.8#10 integrate .. //depot/projects/arm/src/sbin/ifconfig/ifieee80211.c#6 integrate .. //depot/projects/arm/src/sbin/ifconfig/ifmedia.c#4 integrate .. //depot/projects/arm/src/sbin/ldconfig/ldconfig.c#2 integrate .. //depot/projects/arm/src/sbin/mount_ext2fs/mount_ext2fs.c#2 integrate .. //depot/projects/arm/src/sbin/mount_msdosfs/mount_msdosfs.c#2 integrate .. //depot/projects/arm/src/sbin/mount_nfs/Makefile#3 integrate .. //depot/projects/arm/src/sbin/mount_nfs/mount_nfs.8#3 integrate .. //depot/projects/arm/src/sbin/mount_nfs/mount_nfs.c#4 integrate .. //depot/projects/arm/src/sbin/mount_nfs4/Makefile#2 delete .. //depot/projects/arm/src/sbin/mount_nfs4/mount_nfs4.8#2 delete .. //depot/projects/arm/src/sbin/mount_nfs4/mount_nfs4.c#2 delete .. //depot/projects/arm/src/sbin/quotacheck/quotacheck.8#3 integrate .. //depot/projects/arm/src/sbin/quotacheck/quotacheck.c#3 integrate .. //depot/projects/arm/src/share/dict/freebsd#2 integrate .. //depot/projects/arm/src/share/examples/cvsup/ports-supfile#2 integrate .. //depot/projects/arm/src/share/examples/etc/make.conf#3 integrate .. //depot/projects/arm/src/share/man/man3/pthread.3#3 integrate .. //depot/projects/arm/src/share/man/man4/an.4#2 integrate .. //depot/projects/arm/src/share/man/man4/ath.4#3 integrate .. //depot/projects/arm/src/share/man/man4/awi.4#2 integrate .. //depot/projects/arm/src/share/man/man4/bfe.4#2 integrate .. //depot/projects/arm/src/share/man/man4/bge.4#3 integrate .. //depot/projects/arm/src/share/man/man4/dc.4#2 integrate .. //depot/projects/arm/src/share/man/man4/de.4#2 integrate .. //depot/projects/arm/src/share/man/man4/ed.4#2 integrate .. //depot/projects/arm/src/share/man/man4/em.4#3 integrate .. //depot/projects/arm/src/share/man/man4/fxp.4#3 integrate .. //depot/projects/arm/src/share/man/man4/hme.4#2 integrate .. //depot/projects/arm/src/share/man/man4/if_bridge.4#7 integrate .. //depot/projects/arm/src/share/man/man4/le.4#5 integrate .. //depot/projects/arm/src/share/man/man4/man4.i386/ep.4#2 integrate .. //depot/projects/arm/src/share/man/man4/msk.4#2 integrate .. //depot/projects/arm/src/share/man/man4/mxge.4#3 integrate .. //depot/projects/arm/src/share/man/man4/my.4#2 integrate .. //depot/projects/arm/src/share/man/man4/ng_deflate.4#2 integrate .. //depot/projects/arm/src/share/man/man4/nve.4#2 integrate .. //depot/projects/arm/src/share/man/man4/re.4#3 integrate .. //depot/projects/arm/src/share/man/man4/rl.4#2 integrate .. //depot/projects/arm/src/share/man/man4/sf.4#2 integrate .. //depot/projects/arm/src/share/man/man4/sis.4#5 integrate .. //depot/projects/arm/src/share/man/man4/sk.4#2 integrate .. //depot/projects/arm/src/share/man/man4/snd_hda.4#5 integrate .. //depot/projects/arm/src/share/man/man4/ste.4#2 integrate .. //depot/projects/arm/src/share/man/man4/stge.4#5 integrate .. //depot/projects/arm/src/share/man/man4/tcp.4#3 integrate .. //depot/projects/arm/src/share/man/man4/vr.4#2 integrate .. //depot/projects/arm/src/share/man/man4/wi.4#2 integrate .. //depot/projects/arm/src/share/man/man4/xl.4#2 integrate .. //depot/projects/arm/src/share/man/man5/linsysfs.5#4 integrate .. //depot/projects/arm/src/share/man/man5/nsswitch.conf.5#2 integrate .. //depot/projects/arm/src/share/man/man5/rc.conf.5#7 integrate .. //depot/projects/arm/src/share/man/man5/src.conf.5#5 integrate .. //depot/projects/arm/src/share/man/man7/tuning.7#3 integrate .. //depot/projects/arm/src/share/man/man9/Makefile#7 integrate .. //depot/projects/arm/src/share/man/man9/disk.9#3 integrate .. //depot/projects/arm/src/share/man/man9/hashinit.9#2 integrate .. //depot/projects/arm/src/share/man/man9/pmap_extract.9#2 integrate .. //depot/projects/arm/src/share/man/man9/sf_buf.9#1 branch .. //depot/projects/arm/src/share/man/man9/style.9#3 integrate .. //depot/projects/arm/src/share/man/man9/vm_map.9#2 integrate .. //depot/projects/arm/src/share/misc/bsd-family-tree#6 integrate .. //depot/projects/arm/src/share/mk/bsd.cpu.mk#6 integrate .. //depot/projects/arm/src/share/mk/bsd.libnames.mk#3 integrate .. //depot/projects/arm/src/share/mk/bsd.own.mk#9 integrate .. //depot/projects/arm/src/share/syscons/keymaps/INDEX.keymaps#2 integrate .. //depot/projects/arm/src/share/syscons/keymaps/Makefile#2 integrate .. //depot/projects/arm/src/share/syscons/keymaps/fr.dvorak.acc.kbd#1 branch .. //depot/projects/arm/src/share/zoneinfo/leapseconds#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/machdep.c#21 integrate .. //depot/projects/arm/src/sys/amd64/amd64/mp_machdep.c#14 integrate .. //depot/projects/arm/src/sys/amd64/amd64/mptable_pci.c#6 integrate .. //depot/projects/arm/src/sys/amd64/amd64/msi.c#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/nexus.c#7 integrate .. //depot/projects/arm/src/sys/amd64/include/clock.h#5 integrate .. //depot/projects/arm/src/sys/amd64/include/intr_machdep.h#8 integrate .. //depot/projects/arm/src/sys/amd64/include/md_var.h#5 integrate .. //depot/projects/arm/src/sys/amd64/isa/clock.c#9 integrate .. //depot/projects/arm/src/sys/amd64/linux32/linux.h#9 integrate .. //depot/projects/arm/src/sys/amd64/linux32/linux32_machdep.c#12 integrate .. //depot/projects/arm/src/sys/amd64/pci/pci_bus.c#8 integrate .. //depot/projects/arm/src/sys/arm/arm/busdma_machdep.c#10 integrate .. //depot/projects/arm/src/sys/arm/arm/vm_machdep.c#11 integrate .. //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#40 integrate .. //depot/projects/arm/src/sys/arm/include/bus_dma.h#2 integrate .. //depot/projects/arm/src/sys/arm/include/md_var.h#3 integrate .. //depot/projects/arm/src/sys/arm/include/pmap.h#13 integrate .. //depot/projects/arm/src/sys/arm/sa11x0/uart_dev_sa1110.c#7 integrate .. //depot/projects/arm/src/sys/arm/xscale/ixp425/avila_machdep.c#11 integrate .. //depot/projects/arm/src/sys/arm/xscale/ixp425/if_npe.c#27 integrate .. //depot/projects/arm/src/sys/arm/xscale/ixp425/ixp425.c#22 integrate .. //depot/projects/arm/src/sys/arm/xscale/ixp425/ixp425_mem.c#5 integrate .. //depot/projects/arm/src/sys/arm/xscale/ixp425/ixp425_pci.c#18 integrate .. //depot/projects/arm/src/sys/arm/xscale/ixp425/ixp425var.h#10 integrate .. //depot/projects/arm/src/sys/boot/forth/loader.conf#11 integrate .. //depot/projects/arm/src/sys/cam/scsi/scsi_da.c#15 integrate .. //depot/projects/arm/src/sys/coda/coda_vfsops.h#3 integrate .. //depot/projects/arm/src/sys/compat/linprocfs/linprocfs.c#13 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_emul.c#10 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_file.c#9 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_ipc.c#8 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_mib.c#6 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_misc.c#23 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_socket.c#12 integrate .. //depot/projects/arm/src/sys/conf/NOTES#41 integrate .. //depot/projects/arm/src/sys/conf/files#61 integrate .. //depot/projects/arm/src/sys/conf/files.sparc64#10 integrate .. //depot/projects/arm/src/sys/conf/options#39 integrate .. //depot/projects/arm/src/sys/conf/options.sun4v#2 integrate .. //depot/projects/arm/src/sys/ddb/db_command.c#9 integrate .. //depot/projects/arm/src/sys/ddb/db_thread.c#4 integrate .. //depot/projects/arm/src/sys/dev/aac/aac_cam.c#5 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_cpu.c#4 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_pcib_acpi.c#7 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_pcib_pci.c#5 integrate .. //depot/projects/arm/src/sys/dev/aic7xxx/aic79xx.h#2 integrate .. //depot/projects/arm/src/sys/dev/aic7xxx/aic79xx_pci.c#3 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-queue.c#15 integrate .. //depot/projects/arm/src/sys/dev/ath/ath_rate/sample/sample.c#7 integrate .. //depot/projects/arm/src/sys/dev/ath/ath_rate/sample/sample.h#6 integrate .. //depot/projects/arm/src/sys/dev/ath/if_ath.c#23 integrate .. //depot/projects/arm/src/sys/dev/ath/if_ath_pci.c#6 integrate .. //depot/projects/arm/src/sys/dev/ath/if_athvar.h#15 integrate .. //depot/projects/arm/src/sys/dev/bce/if_bce.c#15 integrate .. //depot/projects/arm/src/sys/dev/bge/if_bge.c#28 integrate .. //depot/projects/arm/src/sys/dev/bge/if_bgereg.h#21 integrate .. //depot/projects/arm/src/sys/dev/cardbus/cardbus.c#9 integrate .. //depot/projects/arm/src/sys/dev/dpt/dpt.h#2 integrate .. //depot/projects/arm/src/sys/dev/dpt/dpt_eisa.c#5 integrate .. //depot/projects/arm/src/sys/dev/dpt/dpt_scsi.c#6 integrate .. //depot/projects/arm/src/sys/dev/esp/esp_sbus.c#5 integrate .. //depot/projects/arm/src/sys/dev/fb/creator.c#4 integrate .. //depot/projects/arm/src/sys/dev/fb/creatorreg.h#2 integrate .. //depot/projects/arm/src/sys/dev/fb/fbreg.h#4 integrate .. //depot/projects/arm/src/sys/dev/fb/gallant12x22.c#2 integrate .. //depot/projects/arm/src/sys/dev/firewire/fwohci_pci.c#5 integrate .. //depot/projects/arm/src/sys/dev/fxp/if_fxp.c#15 integrate .. //depot/projects/arm/src/sys/dev/isp/isp.c#17 integrate .. //depot/projects/arm/src/sys/dev/isp/isp_freebsd.c#21 integrate .. //depot/projects/arm/src/sys/dev/isp/isp_freebsd.h#16 integrate .. //depot/projects/arm/src/sys/dev/isp/isp_pci.c#20 integrate .. //depot/projects/arm/src/sys/dev/isp/isp_sbus.c#12 integrate .. //depot/projects/arm/src/sys/dev/isp/isp_target.c#10 integrate .. //depot/projects/arm/src/sys/dev/isp/isp_target.h#7 integrate .. //depot/projects/arm/src/sys/dev/isp/isp_tpublic.h#8 integrate .. //depot/projects/arm/src/sys/dev/isp/ispvar.h#15 integrate .. //depot/projects/arm/src/sys/dev/iwi/if_iwi.c#13 integrate .. //depot/projects/arm/src/sys/dev/le/if_le_cbus.c#3 integrate .. //depot/projects/arm/src/sys/dev/le/if_le_isa.c#2 integrate .. //depot/projects/arm/src/sys/dev/le/if_le_lebuffer.c#1 branch .. //depot/projects/arm/src/sys/dev/le/if_le_ledma.c#3 integrate .. //depot/projects/arm/src/sys/dev/le/if_le_pci.c#4 integrate .. //depot/projects/arm/src/sys/dev/le/lance.c#4 integrate .. //depot/projects/arm/src/sys/dev/le/lebuffer_sbus.c#1 branch .. //depot/projects/arm/src/sys/dev/mc146818/mc146818reg.h#2 integrate .. //depot/projects/arm/src/sys/dev/mfi/mfi_pci.c#4 integrate .. //depot/projects/arm/src/sys/dev/mii/brgphy.c#14 integrate .. //depot/projects/arm/src/sys/dev/mii/gentbi.c#3 integrate .. //depot/projects/arm/src/sys/dev/mii/mii.c#4 integrate .. //depot/projects/arm/src/sys/dev/mii/miidevs#13 integrate .. //depot/projects/arm/src/sys/dev/mii/rlphy.c#6 integrate .. //depot/projects/arm/src/sys/dev/mii/ukphy.c#4 integrate .. //depot/projects/arm/src/sys/dev/mpt/mpt_cam.c#32 integrate .. //depot/projects/arm/src/sys/dev/mxge/if_mxge.c#10 integrate .. //depot/projects/arm/src/sys/dev/mxge/if_mxge_var.h#5 integrate .. //depot/projects/arm/src/sys/dev/pci/pci.c#21 integrate .. //depot/projects/arm/src/sys/dev/pci/pci_if.m#5 integrate .. //depot/projects/arm/src/sys/dev/pci/pci_pci.c#9 integrate .. //depot/projects/arm/src/sys/dev/pci/pci_private.h#10 integrate .. //depot/projects/arm/src/sys/dev/pci/pcib_if.m#4 integrate .. //depot/projects/arm/src/sys/dev/pci/pcib_private.h#6 integrate .. //depot/projects/arm/src/sys/dev/pci/pcireg.h#8 integrate .. //depot/projects/arm/src/sys/dev/pci/pcivar.h#10 integrate .. //depot/projects/arm/src/sys/dev/re/if_re.c#21 integrate .. //depot/projects/arm/src/sys/dev/si/si.c#5 integrate .. //depot/projects/arm/src/sys/dev/sk/if_sk.c#10 integrate .. //depot/projects/arm/src/sys/dev/sound/driver.c#7 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/ad1816.c#5 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/ad1816.h#2 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/ess.c#4 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/mss.c#5 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/mss.h#2 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/sb.h#2 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/sb16.c#3 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/sb8.c#3 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/midi.c#4 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/midi.h#2 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/midiq.h#2 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/mpu401.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/mpu401.h#2 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/mpu_if.m#2 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/mpufoi_if.m#2 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/sequencer.c#7 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/sequencer.h#2 integrate .. //depot/projects/arm/src/sys/dev/sound/midi/synth_if.m#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/es137x.c#7 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/hda/hdac.c#7 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/hda/hdac_private.h#4 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/maestro.c#5 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/via8233.c#7 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/buffer.c#6 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/buffer.h#5 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/dsp.h#3 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/sound.c#11 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/vchan.c#8 integrate .. //depot/projects/arm/src/sys/dev/sound/sbus/cs4231.c#4 integrate .. //depot/projects/arm/src/sys/dev/sound/usb/uaudio.c#10 integrate .. //depot/projects/arm/src/sys/dev/sound/usb/uaudio_pcm.c#5 integrate .. //depot/projects/arm/src/sys/dev/stge/if_stge.c#4 integrate .. //depot/projects/arm/src/sys/dev/sym/sym_hipd.c#8 integrate .. //depot/projects/arm/src/sys/dev/ti/if_ti.c#7 integrate .. //depot/projects/arm/src/sys/dev/uart/uart_cpu.h#4 integrate .. //depot/projects/arm/src/sys/dev/uart/uart_dev_ns8250.c#6 integrate .. //depot/projects/arm/src/sys/dev/uart/uart_dev_sab82532.c#4 integrate .. //depot/projects/arm/src/sys/dev/uart/uart_dev_z8530.c#7 integrate .. //depot/projects/arm/src/sys/dev/uart/uart_kbd_sun.c#6 integrate .. //depot/projects/arm/src/sys/dev/usb/ehci_pci.c#7 integrate .. //depot/projects/arm/src/sys/dev/usb/uhci_pci.c#4 integrate .. //depot/projects/arm/src/sys/dev/usb/uipaq.c#1 branch .. //depot/projects/arm/src/sys/dev/usb/ums.c#5 integrate .. //depot/projects/arm/src/sys/dev/usb/usbdevs#24 integrate .. //depot/projects/arm/src/sys/fs/deadfs/dead_vnops.c#4 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/denode.h#6 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_fat.c#2 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_vfsops.c#14 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_vnops.c#8 integrate .. //depot/projects/arm/src/sys/fs/udf/udf_vnops.c#8 integrate .. //depot/projects/arm/src/sys/geom/eli/g_eli.c#15 integrate .. //depot/projects/arm/src/sys/geom/geom_io.c#7 integrate .. //depot/projects/arm/src/sys/geom/geom_vfs.c#4 integrate .. //depot/projects/arm/src/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c#7 integrate .. //depot/projects/arm/src/sys/i386/cpufreq/powernow.c#3 integrate .. //depot/projects/arm/src/sys/i386/i386/machdep.c#25 integrate .. //depot/projects/arm/src/sys/i386/i386/mp_machdep.c#13 integrate .. //depot/projects/arm/src/sys/i386/i386/mptable_pci.c#6 integrate .. //depot/projects/arm/src/sys/i386/i386/msi.c#2 integrate .. //depot/projects/arm/src/sys/i386/i386/nexus.c#7 integrate .. //depot/projects/arm/src/sys/i386/i386/pmap.c#26 integrate .. //depot/projects/arm/src/sys/i386/i386/vm_machdep.c#6 integrate .. //depot/projects/arm/src/sys/i386/ibcs2/ibcs2_sysvec.c#3 integrate .. //depot/projects/arm/src/sys/i386/include/clock.h#7 integrate .. //depot/projects/arm/src/sys/i386/include/intr_machdep.h#8 integrate .. //depot/projects/arm/src/sys/i386/isa/clock.c#9 integrate .. //depot/projects/arm/src/sys/i386/linux/linux.h#9 integrate .. //depot/projects/arm/src/sys/i386/linux/linux_machdep.c#12 integrate .. //depot/projects/arm/src/sys/i386/pci/pci_bus.c#7 integrate .. //depot/projects/arm/src/sys/kern/imgact_elf.c#8 integrate .. //depot/projects/arm/src/sys/kern/init_main.c#13 integrate .. //depot/projects/arm/src/sys/kern/kern_descrip.c#16 integrate .. //depot/projects/arm/src/sys/kern/kern_fork.c#15 integrate .. //depot/projects/arm/src/sys/kern/kern_idle.c#6 integrate .. //depot/projects/arm/src/sys/kern/kern_intr.c#10 integrate .. //depot/projects/arm/src/sys/kern/kern_kse.c#10 integrate .. //depot/projects/arm/src/sys/kern/kern_kthread.c#4 integrate .. //depot/projects/arm/src/sys/kern/kern_ktrace.c#11 integrate .. //depot/projects/arm/src/sys/kern/kern_mbuf.c#13 integrate .. //depot/projects/arm/src/sys/kern/kern_resource.c#14 integrate .. //depot/projects/arm/src/sys/kern/kern_sig.c#19 integrate .. //depot/projects/arm/src/sys/kern/kern_subr.c#5 integrate .. //depot/projects/arm/src/sys/kern/kern_switch.c#10 integrate .. //depot/projects/arm/src/sys/kern/kern_thr.c#15 integrate .. //depot/projects/arm/src/sys/kern/sched_4bsd.c#15 integrate .. //depot/projects/arm/src/sys/kern/sched_core.c#6 integrate .. //depot/projects/arm/src/sys/kern/sched_ule.c#14 integrate .. //depot/projects/arm/src/sys/kern/subr_firmware.c#7 integrate .. //depot/projects/arm/src/sys/kern/subr_taskqueue.c#8 integrate .. //depot/projects/arm/src/sys/kern/subr_turnstile.c#10 integrate .. //depot/projects/arm/src/sys/kern/subr_witness.c#14 integrate .. //depot/projects/arm/src/sys/kern/uipc_mbuf.c#17 integrate .. //depot/projects/arm/src/sys/kern/uipc_socket.c#30 integrate .. //depot/projects/arm/src/sys/kern/uipc_syscalls.c#19 integrate .. //depot/projects/arm/src/sys/kern/vfs_bio.c#16 integrate .. //depot/projects/arm/src/sys/kern/vfs_export.c#6 integrate .. //depot/projects/arm/src/sys/kern/vfs_lookup.c#13 integrate .. //depot/projects/arm/src/sys/modules/Makefile#35 integrate .. //depot/projects/arm/src/sys/modules/ath/Makefile#5 integrate .. //depot/projects/arm/src/sys/modules/ath_rate_sample/Makefile#4 integrate .. //depot/projects/arm/src/sys/modules/le/Makefile#3 integrate .. //depot/projects/arm/src/sys/modules/msdosfs/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/uipaq/Makefile#1 branch .. //depot/projects/arm/src/sys/net/bpf.c#16 integrate .. //depot/projects/arm/src/sys/net/bpf_compat.h#2 delete .. //depot/projects/arm/src/sys/net/bpfdesc.h#5 integrate .. //depot/projects/arm/src/sys/net/bridgestp.c#15 integrate .. //depot/projects/arm/src/sys/net80211/_ieee80211.h#5 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211.c#12 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_node.c#13 integrate .. //depot/projects/arm/src/sys/netgraph/ng_deflate.c#3 integrate .. //depot/projects/arm/src/sys/netgraph/ng_ppp.c#4 integrate .. //depot/projects/arm/src/sys/netgraph/ng_pptpgre.c#3 integrate .. //depot/projects/arm/src/sys/netgraph/ng_pred1.c#2 integrate .. //depot/projects/arm/src/sys/netgraph/ng_tcpmss.c#3 integrate .. //depot/projects/arm/src/sys/netinet/if_ether.c#14 integrate .. //depot/projects/arm/src/sys/netinet/in.h#7 integrate .. //depot/projects/arm/src/sys/netinet/ip_carp.c#11 integrate .. //depot/projects/arm/src/sys/netinet/sctp_asconf.c#4 integrate .. //depot/projects/arm/src/sys/netinet/sctp_asconf.h#3 integrate .. //depot/projects/arm/src/sys/netinet/sctp_auth.c#3 integrate .. //depot/projects/arm/src/sys/netinet/sctp_bsd_addr.c#4 integrate .. //depot/projects/arm/src/sys/netinet/sctp_bsd_addr.h#2 integrate .. //depot/projects/arm/src/sys/netinet/sctp_constants.h#4 integrate .. //depot/projects/arm/src/sys/netinet/sctp_crc32.c#3 integrate .. //depot/projects/arm/src/sys/netinet/sctp_crc32.h#2 integrate .. //depot/projects/arm/src/sys/netinet/sctp_indata.c#5 integrate .. //depot/projects/arm/src/sys/netinet/sctp_indata.h#2 integrate .. //depot/projects/arm/src/sys/netinet/sctp_input.c#5 integrate .. //depot/projects/arm/src/sys/netinet/sctp_input.h#2 integrate .. //depot/projects/arm/src/sys/netinet/sctp_os.h#3 integrate .. //depot/projects/arm/src/sys/netinet/sctp_os_bsd.h#3 integrate .. //depot/projects/arm/src/sys/netinet/sctp_output.c#5 integrate .. //depot/projects/arm/src/sys/netinet/sctp_output.h#2 integrate .. //depot/projects/arm/src/sys/netinet/sctp_pcb.c#5 integrate .. //depot/projects/arm/src/sys/netinet/sctp_pcb.h#3 integrate .. //depot/projects/arm/src/sys/netinet/sctp_peeloff.c#3 integrate .. //depot/projects/arm/src/sys/netinet/sctp_peeloff.h#2 integrate .. //depot/projects/arm/src/sys/netinet/sctp_structs.h#5 integrate .. //depot/projects/arm/src/sys/netinet/sctp_timer.c#3 integrate .. //depot/projects/arm/src/sys/netinet/sctp_timer.h#2 integrate .. //depot/projects/arm/src/sys/netinet/sctp_uio.h#5 integrate .. //depot/projects/arm/src/sys/netinet/sctp_usrreq.c#5 integrate .. //depot/projects/arm/src/sys/netinet/sctp_var.h#3 integrate .. //depot/projects/arm/src/sys/netinet/sctputil.c#5 integrate .. //depot/projects/arm/src/sys/netinet/sctputil.h#5 integrate .. //depot/projects/arm/src/sys/netinet/tcp.h#4 integrate .. //depot/projects/arm/src/sys/netinet/tcp_input.c#21 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Feb 2 21:58:31 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9044716A406; Fri, 2 Feb 2007 21:58:31 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 47FDF16A402 for ; Fri, 2 Feb 2007 21:58:31 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 383E013C46B for ; Fri, 2 Feb 2007 21:58:31 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l12LwV6n023874 for ; Fri, 2 Feb 2007 21:58:31 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l12LwUYo023871 for perforce@freebsd.org; Fri, 2 Feb 2007 21:58:30 GMT (envelope-from csjp@freebsd.org) Date: Fri, 2 Feb 2007 21:58:30 GMT Message-Id: <200702022158.l12LwUYo023871@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113921 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 21:58:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=113921 Change 113921 by csjp@csjp_rnd01 on 2007/02/02 21:58:07 - Drop the Giant requirement for the system calls - Fix a problem which resulted in select(2)/poll(2) waking up constantly indicating that the file descriptor was ready to read. This occured because the old old simply looked at the size of the hold buffer and used that to indicate that there was data ready to read. In the old world order we used set the hold buffer length to 0 after bpf_uiomove() returned. In the zero copy world, we tell the kernel we are done with the buffer by incrementing the user generation number, leaving the hold buffer length un-touched. This change basically looks to see if the user and kernel generation numbers are different, and if so, wakes up the reader Affected files ... .. //depot/projects/zcopybpf/src/sys/net/bpf.c#10 edit Differences ... ==== //depot/projects/zcopybpf/src/sys/net/bpf.c#10 (text+ko) ==== @@ -141,7 +141,6 @@ static struct cdevsw bpf_cdevsw = { .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, .d_open = bpfopen, .d_close = bpfclose, .d_read = bpfread, @@ -809,7 +808,7 @@ // printf("bpf_ready: hlen: %d, immediate %d, state %d, slen %d\n", // d->bd_hlen, d->bd_immediate, d->bd_state, d->bd_slen); - if (d->bd_hlen != 0) + if (!bpf_buffree(d) && d->bd_hlen != 0) return (1); if ((d->bd_immediate || d->bd_state == BPF_TIMED_OUT) && d->bd_slen != 0) From owner-p4-projects@FreeBSD.ORG Fri Feb 2 22:07:44 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7FEE016A409; Fri, 2 Feb 2007 22:07:44 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 44BC816A403 for ; Fri, 2 Feb 2007 22:07:44 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 339CE13C4A3 for ; Fri, 2 Feb 2007 22:07:44 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l12M7ir2026602 for ; Fri, 2 Feb 2007 22:07:44 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l12M7hi6026599 for perforce@freebsd.org; Fri, 2 Feb 2007 22:07:43 GMT (envelope-from imp@freebsd.org) Date: Fri, 2 Feb 2007 22:07:43 GMT Message-Id: <200702022207.l12M7hi6026599@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 113923 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 22:07:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=113923 Change 113923 by imp@imp_paco-paco on 2007/02/02 22:07:03 IFC @113921 Affected files ... .. //depot/projects/arm/src/sys/arm/conf/BWCT#4 integrate .. //depot/projects/arm/src/sys/arm/conf/BWCT.hints#2 integrate .. //depot/projects/arm/src/sys/dev/flash/at45d.c#13 integrate .. //depot/projects/arm/src/sys/dev/mii/rlswitch.c#3 integrate .. //depot/projects/arm/src/sys/netinet/if_ether.c#15 integrate .. //depot/projects/arm/src/sys/sun4v/sun4v/hcall.S#4 integrate Differences ... ==== //depot/projects/arm/src/sys/arm/conf/BWCT#4 (text+ko) ==== @@ -15,19 +15,18 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/KB920X,v 1.9 2006/07/17 21:17:20 cognet Exp $ +# $FreeBSD: src/sys/arm/conf/BWCT,v 1.2 2007/01/05 10:30:51 ticso Exp $ machine arm ident BWCT -#options MAXUSERS=96 options VERBOSE_INIT_ARM options AT91_BWCT include "../at91/std.kb920x" #To statically compile in device wiring instead of /boot/device.hints -hints "hints.at91rm9200" +#hints "hints.at91rm9200" hints "BWCT.hints" #makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols @@ -46,13 +45,12 @@ #options MD_ROOT #MD is a potential root device #options MD_ROOT_SIZE=4096 # 3MB ram disk #options ROOTDEVNAME=\"ufs:md0\" -options ROOTDEVNAME=\"ufs:/dev/mmcsd0s1a\" -#options ROOTDEVNAME=\"ufs:at91_qdmmc0a\" +#options ROOTDEVNAME=\"ufs:/dev/mmcsd0s1a\" options NFSCLIENT #Network Filesystem Client #options NFSSERVER #Network Filesystem Server -#options NFS_ROOT #NFS usable as /, requires NFSCLIENT -#options BOOTP_NFSROOT -#options BOOTP +options NFS_ROOT #NFS usable as /, requires NFSCLIENT +options BOOTP_NFSROOT +options BOOTP #options MSDOSFS #MSDOS Filesystem #options CD9660 #ISO 9660 Filesystem @@ -92,7 +90,7 @@ device md device at91_twi # TWI: Two Wire Interface device at91_spi # SPI: -#device at91_ssc +device at91_ssc device at91_mci device mmc # mmc/sd bus device mmcsd # mmc/sd flash cards ==== //depot/projects/arm/src/sys/arm/conf/BWCT.hints#2 (text+ko) ==== ==== //depot/projects/arm/src/sys/dev/flash/at45d.c#13 (text+ko) ==== ==== //depot/projects/arm/src/sys/dev/mii/rlswitch.c#3 (text+ko) ==== ==== //depot/projects/arm/src/sys/netinet/if_ether.c#15 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if_ether.c 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/netinet/if_ether.c,v 1.158 2007/01/14 18:44:17 maxim Exp $ + * $FreeBSD: src/sys/netinet/if_ether.c,v 1.159 2007/02/02 20:31:44 bms Exp $ */ /* @@ -885,11 +885,23 @@ } } + if (itaddr.s_addr == myaddr.s_addr && + IN_LINKLOCAL(ntohl(itaddr.s_addr))) { + /* RFC 3927 link-local IPv4; always reply by broadcast. */ +#ifdef DEBUG_LINKLOCAL + printf("arp: sending reply for link-local addr %s\n", + inet_ntoa(itaddr)); +#endif + m->m_flags |= M_BCAST; + m->m_flags &= ~M_MCAST; + } else { + /* default behaviour; never reply by broadcast. */ + m->m_flags &= ~(M_BCAST|M_MCAST); + } (void)memcpy(ar_tpa(ah), ar_spa(ah), ah->ar_pln); (void)memcpy(ar_spa(ah), &itaddr, ah->ar_pln); ah->ar_op = htons(ARPOP_REPLY); ah->ar_pro = htons(ETHERTYPE_IP); /* let's be sure! */ - m->m_flags &= ~(M_BCAST|M_MCAST); /* never reply by broadcast */ m->m_len = sizeof(*ah) + (2 * ah->ar_pln) + (2 * ah->ar_hln); m->m_pkthdr.len = m->m_len; sa.sa_family = AF_ARP; ==== //depot/projects/arm/src/sys/sun4v/sun4v/hcall.S#4 (text+ko) ==== @@ -1,1433 +1,1852 @@ -/* - * CDDL HEADER START +/*- + * Copyright (c) 2006 Kip Macy + * All rights reserved. * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END + * $FreeBSD: src/sys/sun4v/sun4v/hcall.S,v 1.18 2006/12/17 01:22:51 kmacy Exp $ */ -/* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ -#pragma ident "@(#)hcall.s 1.10 05/09/28 SMI" - -/* - * Hypervisor calls - */ -#define _ASM - +#include + #include -__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/hcall.S,v 1.3 2006/11/08 22:16:05 kmacy Exp $") - #include #include -#include +#include #include #include "assym.s" +/* + * Section 9 API Versioning + * + */ -#if defined(lint) -#error lint -#endif -#if defined(__lint) -#error __lint -#endif -#if defined(lint) || defined(__lint) +/* + * request and check for a version of the hypervisor apis + * which may be compatible + * + * arg0 api_group (%o0) + * arg1 major_number (%o1) + * arg2 req_minor_number (%o2) + * + * ret0 status (%o0) + * ret1 act_minor_number (%o1) + * + */ +ENTRY(api_set_version) + mov API_SET_VERSION, %o5 + ta CORE_TRAP + retl + stx %o1, [%o3] +END(api_set_version) -/*ARGSUSED*/ -int64_t -hv_cnputchar(uint8_t ch) -{ return (0); } +/* + * retrieve the major and minor number of the most recently + * successfully negotiated API + * + * arg0 api_group (%o0) + * + * ret0 status (%o0) + * ret1 major_number (%o1) + * ret2 major_number (%o2) + * + */ +ENTRY(api_get_version) + mov %o2, %o4 + mov %o1, %o3 + mov API_GET_VERSION, %o5 + ta CORE_TRAP + retl + stx %o1, [%o4] + +END(api_get_version) + +/* + * Section 10 Domain Services + * + */ -/*ARGSUSED*/ -int64_t -hv_cngetchar(uint8_t *ch) -{ return (0); } +/* + * stop all CPUs in the virtual machine domain and place them + * in the stopped state + * + * arg0 exit_code (%o0) + * + */ +ENTRY(hv_mach_exit) + mov MACH_EXIT, %o5 + ta FAST_TRAP + retl + nop +END(hv_mach_exit) + +/* + * copy the most current machine description into buffer + * upon success or EINVAL the service returns the actual + * size of the machine description + * + * arg0 buffer (%o0) + * arg1 length (%o1) + * + * ret0 status (%o0) + * ret1 length (%o1) + * + */ +ENTRY(hv_mach_desc) + mov %o1, %o2 + ldx [%o1], %o1 + mov MACH_DESC, %o5 + ta FAST_TRAP + retl + stx %o1, [%o2] +END(hv_mach_desc) -/*ARGSUSED*/ -uint64_t -hv_tod_get(uint64_t *seconds) -{ return (0); } +/* + * execute a software initiated reset of a virtual machine domain + * + */ +ENTRY(hv_mach_sir) + mov MACH_SIR, %o5 + ta FAST_TRAP + retl + nop +END(hv_mach_sir) + +/* + * report the guests soft state to the hypervisor + * + * arg0 soft_state (%o0) + * arg1 soft_state_desc_ptr (%o1) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mach_set_soft_state) + mov MACH_SET_SOFT_STATE, %o5 + ta FAST_TRAP + retl + nop +END(hv_mach_set_soft_state) + +/* + * retrieve the current value of the guest's software state + * + * arg0 soft_desc_ptr (%o0) + * + * ret0 status (%o0) + * arg1 soft_state (%o1) + * + */ +ENTRY(hv_mach_get_soft_state) + mov %o1, %o2 + mov MACH_SET_SOFT_STATE, %o5 + ta FAST_TRAP + retl + stx %o1, [%o2] +END(hv_mach_get_soft_state) + +/* + * set a watchdog timer, 0 disables, upon success + * time_remaining contains the time previously remaining + * + * arg0 timeout (%o0) + * + * ret0 status (%o0) + * ret1 time_remaining (%o1) + * + */ +ENTRY(hv_mach_watchdog) + mov %o1, %o2 + mov MACH_WATCHDOG, %o5 + ta FAST_TRAP + brnz,pn %o0, 1f + nop + stx %o1, [%o2] +1: retl + nop +END(hv_mach_watchdog) + +/* + * Section 11 CPU Services + * + */ -/*ARGSUSED*/ -uint64_t -hv_tod_set(uint64_t seconds) -{ return (0);} +/* + * start CPU with id cpuid with pc in %pc and real trap base address + * of rtba + * + * arg0 cpuid (%o0) + * arg1 pc (%o1) + * arg2 rtba (%o2) + * arg3 target_arg0 (%o3) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_cpu_start) + mov CPU_START, %o5 + ta FAST_TRAP + retl + nop +END(hv_cpu_start) -/*ARGSUSED*/ -uint64_t -hv_mmu_map_perm_addr(void *vaddr, int ctx, uint64_t tte, int flags) -{ return (0); } +/* + * stop CPU with id cpuid + * + * arg0 cpuid (%o0) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_cpu_stop) + mov CPU_STOP, %o5 + ta FAST_TRAP + retl + nop +END(hv_cpu_stop) -/*ARGSUSED*/ -uint64_t -hv_mmu_unmap_perm_addr(void *vaddr, int ctx, int flags) -{ return (0); } +/* + * set the real trap base address of the local cpu to rtba + * upon success the previous_rtba contains the address of the + * old rtba + * + * arg0 rtba (%o0) + * + * ret0 status (%o0) + * ret1 previous_rtba(%o1) + * + */ +ENTRY(hv_cpu_set_rtba) + mov %o1, %o2 + mov CPU_SET_RTBA, %o5 + ta FAST_TRAP + retl + stx %o1, [%o2] + +END(hv_cpu_set_rtba) -/*ARGSUSED*/ -uint64_t -hv_set_ctx0(uint64_t ntsb_descriptor, uint64_t desc_ra) -{ return (0); } +/* + * return the current real trap base address + * + * ret0 status (%o0) + * ret1 rtba (%o1) + * + */ +ENTRY(hv_cpu_get_rtba) + mov CPU_GET_RTBA, %o5 + ta FAST_TRAP + retl + nop +END(hv_cpu_get_rtba) + +/* + * suspend execution on current cpu + * + * ret0 status (%o0) + * + */ +ENTRY(hv_cpu_yield) + mov CPU_YIELD, %o5 + ta FAST_TRAP + retl + nop +END(hv_cpu_yield) -/*ARGSUSED*/ -uint64_t -hv_set_ctxnon0(uint64_t ntsb_descriptor, uint64_t desc_ra) -{ return (0); } +/* + * configure queue of size nentries to be placed at base raddr + * + * arg0 queue (%o0) + * arg1 base raddr (%o1) + * arg2 nentries (%o2) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_cpu_qconf) + mov CPU_QCONF, %o5 + ta FAST_TRAP + retl + nop +END(hv_cpu_qconf) + +/* + * return configuration of queue queue + * + * arg0 queue (%o0) + * + * ret0 status (%o0) + * ret1 base raddr (%o1) + * ret2 nentries (%o2) + * + */ +ENTRY(hv_cpu_qinfo) +END(hv_cpu_qinfo) + +/* + * send cpu mondo interrupt to cpulist + * + * arg0 ncpus (%o0) + * arg1 cpu list ra (%o1) + * arg2 mondo data ra(%o2) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_cpu_mondo_send) + ldx [PCPU(MONDO_DATA_RA)], %o2 + mov CPU_MONDO_SEND, %o5 + ta FAST_TRAP + retl + membar #Sync +END(hv_cpu_mondo_send) -#ifdef SET_MMU_STATS -/*ARGSUSED*/ -uint64_t -hv_mmu_set_stat_area(uint64_t rstatarea, uint64_t size) -{ return (0); } -#endif /* SET_MMU_STATS */ +/* + * return the hypervisor id for the current cpu + * + * ret0 status (%o0) + * ret1 cpuid (%o1) + * + */ +ENTRY(hv_cpu_myid) + mov %o0, %o2 + mov CPU_MYID, %o5 + ta FAST_TRAP + stx %o1, [%o2] + retl + nop +END(hv_cpu_myid) -/*ARGSUSED*/ -uint64_t -hv_cpu_qconf(int queue, uint64_t paddr, int size) -{ return (0); } +/* + * retrieve the current state of cpu cpuid + * + * arg0 cpuid (%o0) + * + * ret0 status (%o0) + * ret1 state (%o1) + * + */ +ENTRY(hv_cpu_state) + mov %o1, %o2 + mov CPU_STATE, %o5 + ta FAST_TRAP + stx %o1, [%o2] + retl + nop +END(hv_cpu_state) + +/* + * Section 12 MMU Services + * + */ + +/* + * set the tsb(s) for the current cpu for context 0 + * + * arg0 ntsb (%o0) + * arg1 tsbdptr (%o1) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_tsb_ctx0) + mov MMU_TSB_CTX0, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_tsb_ctx0) -/*ARGSUSED*/ -uint64_t -hvio_config_get(devhandle_t dev_hdl, pci_device_t bdf, - pci_config_offset_t off, pci_config_size_t size, pci_cfg_data_t *data_p) -{ return (0); } +/* + * set the tsb(s) for the current cpu for non-zero contexts + * + * arg0 ntsb (%o0) + * arg1 tsbptr (%o1) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_tsb_ctxnon0) + mov MMU_TSB_CTXNON0, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_tsb_ctxnon0) -/*ARGSUSED*/ -uint64_t -hvio_config_put(devhandle_t dev_hdl, pci_device_t bdf, - pci_config_offset_t off, pci_config_size_t size, pci_cfg_data_t data) -{ return (0); } +/* + * demap any page mapping of virtual address vaddr in context ctx + * + * arg0 reserved (%o0) + * arg1 reserved (%o1) + * arg2 vaddr (%o2) + * arg3 ctx (%o3) + * arg4 flags (%o4) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_demap_page) + mov MMU_DEMAP_PAGE, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_demap_page) -/*ARGSUSED*/ -uint64_t -hvio_intr_devino_to_sysino(uint64_t dev_hdl, uint32_t devino, uint64_t *sysino) -{ return (0); } +/* + * demap all non-permanent virtual address mappings in context ctx + * + * arg0 reserved (%o0) + * arg1 reserved (%o1) + * arg2 ctx (%o2) + * arg3 flags (%o3) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_demap_ctx) + mov MMU_DEMAP_CTX, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_demap_ctx) -/*ARGSUSED*/ -uint64_t -hvio_intr_getvalid(uint64_t sysino, int *intr_valid_state) -{ return (0); } +/* + * demap all non-permanent virtual address mappings for the current + * virtual cpu + * + * arg0 reserved (%o0) + * arg1 reserved (%o1) + * arg2 flags (%o2) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_demap_all) + mov MMU_DEMAP_ALL, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_demap_all) -/*ARGSUSED*/ -uint64_t -hvio_intr_setvalid(uint64_t sysino, int intr_valid_state) -{ return (0); } +/* + * create a non-permanent mapping for the calling virtual cpu + * + * arg0 vaddr (%o0) + * arg1 context (%o1) + * arg2 TTE (%o2) + * arg3 flags (%o3) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_map_addr) + mov MMU_MAP_ADDR, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_map_addr) -/*ARGSUSED*/ -uint64_t -hvio_intr_getstate(uint64_t sysino, int *intr_state) -{ return (0); } +/* + * create a permanent mapping for the calling virtual cpu + * + * arg0 vaddr (%o0) + * arg1 reserved (%o1) + * arg2 TTE (%o2) + * arg3 flags (%o3) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_map_perm_addr) + mov MMU_MAP_PERM_ADDR, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_map_perm_addr) -/*ARGSUSED*/ -uint64_t -hvio_intr_setstate(uint64_t sysino, int intr_state) -{ return (0); } +/* + * demap virtual address vaddr in context ctx on current virtual cpu + * + * arg0 vaddr (%o0) + * arg1 ctx (%o1) + * arg2 flags (%o2) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_unmap_addr) + mov MMU_UNMAP_ADDR, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_unmap_addr) -/*ARGSUSED*/ -uint64_t -hvio_intr_gettarget(uint64_t sysino, uint32_t *cpuid) -{ return (0); } +/* + * demap any permanent mapping at virtual address vaddr on current virtual cpu + * + * arg0 vaddr (%o0) + * arg1 reserved (%o1) + * arg2 flags (%o2) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_unmap_perm_addr) + mov %o1, %o2 + clr %o1 + mov MMU_UNMAP_PERM_ADDR, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_unmap_perm_addr) -/*ARGSUSED*/ -uint64_t -hvio_intr_settarget(uint64_t sysino, uint32_t cpuid) -{ return (0); } +/* + * configure the MMU fault status area for the current virtual cpu + * + * arg0 raddr (%o0) + * + * ret0 status (%o0) + * ret1 prev_raddr (%o1) + * + */ +ENTRY(hv_mmu_fault_area_conf) + mov %o1, %o2 + mov MMU_FAULT_AREA_CONF, %o5 + ta FAST_TRAP + retl + stx %o1, [%o2] +END(hv_mmu_fault_area_conf) -/*ARGSUSED*/ -uint64_t -hvio_iommu_map(devhandle_t dev_hdl, tsbid_t tsbid, - pages_t pages, io_attributes_t io_attributes, - io_page_list_t *io_page_list_p, pages_t *pages_mapped) -{ return (0); } +/* + * enable or disable virtual address translation for the current virtual cpu + * + * arg0 enable_flag (%o0) + * arg1 return_target (%o1) + * + * ret0 status (%o0) + * + */ +ENTRY(hv_mmu_enable) + mov MMU_ENABLE, %o5 + ta FAST_TRAP + retl + nop +END(hv_mmu_enable) -/*ARGSUSED*/ -uint64_t -hvio_iommu_demap(devhandle_t dev_hdl, tsbid_t tsbid, - pages_t pages, pages_t *pages_demapped) -{ return (0); } +/* + * return the TSB configuration as previously defined by mmu_tsb_ctx0 + * + * arg0 maxtsbs (%o0) + * arg1 buffer_ra (%o1) + * + * ret0 status (%o0) + * ret1 ntsbs (%o1) + * + */ +ENTRY(hv_mmu_tsb_ctx0_info) + mov %o1, %o2 + mov MMU_TSB_CTX0_INFO, %o5 + ta FAST_TRAP + retl + stx %o1, [%o2] +END(hv_mmu_tsb_ctx0_info) -/*ARGSUSED*/ -uint64_t -hvio_iommu_getmap(devhandle_t dev_hdl, tsbid_t tsbid, - io_attributes_t *attributes_p, r_addr_t *r_addr_p) -{ return (0); } +/* + * return the TSB configuration as previously defined by mmu_tsb_ctxnon0 + * + * arg0 maxtsbs (%o0) + * arg1 buffer_ra (%o1) + * + * ret0 status (%o0) + * ret1 ntsbs (%o1) + * + */ +ENTRY(hv_mmu_tsb_ctxnon0_info) + mov %o1, %o2 + mov MMU_TSB_CTXNON0_INFO, %o5 + ta FAST_TRAP + retl + stx %o1, [%o2] +END(hv_mmu_tsb_ctxnon0_info) -/*ARGSUSED*/ -uint64_t -hvio_iommu_getbypass(devhandle_t dev_hdl, r_addr_t ra, - io_attributes_t io_attributes, io_addr_t *io_addr_p) -{ return (0); } - -/*ARGSUSED*/ -uint64_t -hvio_peek(devhandle_t dev_hdl, r_addr_t ra, size_t size, uint32_t *status, - uint64_t *data_p) -{ return (0); } - -/*ARGSUSED*/ -uint64_t -hvio_poke(devhandle_t dev_hdl, r_addr_t ra, uint64_t sizes, uint64_t data, - r_addr_t ra2, uint32_t *rdbk_status) -{ return (0); } - -/*ARGSUSED*/ -uint64_t -hvio_dma_sync(devhandle_t dev_hdl, r_addr_t ra, size_t num_bytes, - int io_sync_direction, size_t *bytes_synched) -{ return (0); } - -/*ARGSUSED*/ -uint64_t -hvio_msiq_conf(devhandle_t dev_hdl, msiqid_t msiq_id, r_addr_t ra, - uint_t msiq_rec_cnt) -{ return (0); } - -/*ARGSUSED*/ -uint64_t -hvio_msiq_info(devhandle_t dev_hdl, msiqid_t msiq_id, r_addr_t *r_addr_p, - uint_t *msiq_rec_cnt_p) -{ return (0); } +/* + * return the MMU fault status area defined for the current virtual cpu + * + * ret0 status (%o0) + * ret1 mmfsara (%o1) + * + */ +ENTRY(hv_mmu_fault_area_info) + mov %o0, %o2 + mov MMU_FAULT_AREA_INFO, %o5 + ta FAST_TRAP + retl + stx %o1, [%o2] -/*ARGSUSED*/ -uint64_t -hvio_msiq_getvalid(devhandle_t dev_hdl, msiqid_t msiq_id, - pci_msiq_valid_state_t *msiq_valid_state) -{ return (0); } +END(hv_mmu_fault_area_info) -/*ARGSUSED*/ -uint64_t -hvio_msiq_setvalid(devhandle_t dev_hdl, msiqid_t msiq_id, - pci_msiq_valid_state_t msiq_valid_state) -{ return (0); } +/* + * Section 13 Cache and Memory Services + * + */ -/*ARGSUSED*/ -uint64_t -hvio_msiq_getstate(devhandle_t dev_hdl, msiqid_t msiq_id, - pci_msiq_state_t *msiq_state) -{ return (0); } +/* + * zero from raddr to raddr+length-1 + * + * arg0 raddr (%o0) + * arg1 length (%o1) + * + * ret0 status (%o0) + * ret1 length scrubbed (%o1) + * + */ +ENTRY(hv_mem_scrub) + mov MEM_SCRUB, %o5 + ta FAST_TRAP + stx %o1, [%o2] + retl + nop +END(hv_mem_scrub) -/*ARGSUSED*/ -uint64_t -hvio_msiq_setstate(devhandle_t dev_hdl, msiqid_t msiq_id, - pci_msiq_state_t msiq_state) -{ return (0); } +/* + * for the memory address range from raddr to raddr+length-1 + * for the next access within that range from main system memory + * + * arg0 raddr (%o0) + * arg1 length (%o1) + * + * ret0 status (%o0) + * ret1 length synced (%o1) + * + */ +ENTRY(hv_mem_sync) + mov MEM_SYNC, %o5 + ta FAST_TRAP + stx %o1, [%o2] + retl + nop +END(hv_mem_sync) -/*ARGSUSED*/ -uint64_t -hvio_msiq_gethead(devhandle_t dev_hdl, msiqid_t msiq_id, - msiqhead_t *msiq_head) -{ return (0); } +/* + * Section 14 Device Interrupt Services + * + */ -/*ARGSUSED*/ -uint64_t -hvio_msiq_sethead(devhandle_t dev_hdl, msiqid_t msiq_id, - msiqhead_t msiq_head) -{ return (0); } +/* + * converts a device specific interrupt number given by + * devhandle and devino to a system specific ino (sysino) + * + * arg0 devhandle (%o0) + * arg1 devino (%o1) + * + * ret0 status (%o0) + * ret1 sysino (%o1) + * + */ +ENTRY(hv_intr_devino_to_sysino) + mov INTR_DEVINO2SYSINO, %o5 + ta FAST_TRAP + retl + stx %o1, [%o2] +END(hv_intr_devino_to_sysino) -/*ARGSUSED*/ -uint64_t -hvio_msiq_gettail(devhandle_t dev_hdl, msiqid_t msiq_id, - msiqtail_t *msiq_tail) -{ return (0); } +/* + * return intr enabled state + * + * arg0 sysino (%o0) + * + * ret0 status (%o0) + * ret1 intr_enabled (%o1) + * + */ +ENTRY(hv_intr_getenabled) + mov %o1, %o2 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Feb 2 23:09:01 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E97416A403; Fri, 2 Feb 2007 23:09:01 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7AFAD16A401 for ; Fri, 2 Feb 2007 23:09:01 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 69D0013C481 for ; Fri, 2 Feb 2007 23:09:01 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l12N91tl041153 for ; Fri, 2 Feb 2007 23:09:01 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l12N91B1041150 for perforce@freebsd.org; Fri, 2 Feb 2007 23:09:01 GMT (envelope-from csjp@freebsd.org) Date: Fri, 2 Feb 2007 23:09:01 GMT Message-Id: <200702022309.l12N91B1041150@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113925 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 23:09:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=113925 Change 113925 by csjp@csjp_rnd01 on 2007/02/02 23:08:41 Import testing for new zero copy model Affected files ... .. //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#6 edit Differences ... ==== //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#6 (text+ko) ==== @@ -23,6 +23,7 @@ #include #include #include +#include int bpf_open(void); void usage(void); @@ -37,7 +38,14 @@ static int wflag; static int vflag; static int zflag; +static u_char *bufa, *bufb; +static int +handle_int(int sig __unused) +{ + exit(0); +} + static void bpf_init_dumpfile(void) { @@ -53,16 +61,22 @@ } static void -bpf_process_packets(struct bpf_zbuf *bz) +bpf_process_packets(struct bpf_zbuf *bz, char *bufname) { struct pcap_pkthdr phd; int clen, hlen; - u_char *bp, *ep, *p; + u_char *b,*bp, *ep, *p; + int i; #define bhp ((struct bpf_hdr *)bp) - bp = bz->bz_bufa; + b = bp = bz->bz_bufa; ep = bp + bz->bz_buflen; + i = 0; while (bp < ep) { + i++; + if (vflag) + fprintf(stderr, "%s %d clen=%i hlen=%d dlen=%d bp=%lu pd=%lu ep=%lu %lu bytes away from eob %lu bytes into buffer\n", + bufname, i, clen, hlen, bhp->bh_datalen, bp, (u_char *)bp + hlen, ep, ep - bp, bp - b); clen = bhp->bh_caplen; hlen = bhp->bh_hdrlen; p = (u_char *)bp + hlen; @@ -85,6 +99,8 @@ struct bpf_zbuf bz; char *pbuf; int n; + struct bpf_zbuf_header *bzha, *bzhb; + int d; pbuf = malloc(bflag + 1); if (pbuf == NULL) @@ -93,10 +109,14 @@ for (;;) { r_set = s_set; n = select(fd + 1, &r_set, NULL, NULL, NULL); - if (n < 0) + if (n < 0) { + fprintf(stderr,"owned by select\n"); err(1, "select failed"); - if (!FD_ISSET(fd, &r_set)) + } + if (!FD_ISSET(fd, &r_set)) { + fprintf(stderr, "FD is NOT set\n"); continue; + } if (vflag) (void) fprintf(stderr, "DEBUG: wokeup and bpf is ready to read from\n"); @@ -106,25 +126,31 @@ err(1, "read failed"); bz.bz_bufa = pbuf; bz.bz_buflen = n; - } else - if (ioctl(fd, BIOCGETZNEXT, &bz) < 0) - err(1, "ioctl(BIOCGETZNEXT)"); - if (wflag) - bpf_process_packets(&bz); - if (zflag == 0) - continue; - if (ioctl(fd, BIOCACKZBUF, &bz) < 0) - err(1, "ioctl(BIOCACKZBUF)"); + if (wflag) + bpf_process_packets(&bz, "W"); + } else { + bzha = (struct bpf_zbuf_header *)bufa; + bzhb = (struct bpf_zbuf_header *)bufb; + if (bzha->bzh_kernel_gen > bzha->bzh_user_gen) { + bz.bz_bufa = bufa; + bz.bz_bufa += sizeof(struct bpf_zbuf_header); + bz.bz_buflen = bzha->bzh_kernel_len; + if (wflag) + bpf_process_packets(&bz, "A"); + bzha->bzh_user_gen++; + } + if (bzhb->bzh_kernel_gen > bzhb->bzh_user_gen) { + bz.bz_bufa = bufb; + bz.bz_bufa += sizeof(struct bpf_zbuf_header); + bz.bz_buflen = bzhb->bzh_kernel_len; + if (wflag) + bpf_process_packets(&bz, "B"); + bzhb->bzh_user_gen++; + } + } } } -void * -handle_int(int sig __unused) -{ - - exit(0); -} - int bpf_open(void) { @@ -154,7 +180,6 @@ static int bpf_zbuf_init(int fd, struct bpf_zbuf *bz) { - u_char *bufa, *bufb; int bmode; if ((bflag % getpagesize()) != 0) @@ -166,7 +191,7 @@ err(1, "mmap(bufa)"); bufb = mmap(NULL, bz->bz_buflen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); - if (bufa == MAP_FAILED) + if (bufb == MAP_FAILED) err(1, "mmap(bufb)"); bz->bz_bufa = bufa; bz->bz_bufb = bufb; From owner-p4-projects@FreeBSD.ORG Fri Feb 2 23:13:07 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 06CB416A406; Fri, 2 Feb 2007 23:13:07 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CF06F16A400 for ; Fri, 2 Feb 2007 23:13:06 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id BE03413C48E for ; Fri, 2 Feb 2007 23:13:06 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l12ND6Md042472 for ; Fri, 2 Feb 2007 23:13:06 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l12ND6CN042469 for perforce@freebsd.org; Fri, 2 Feb 2007 23:13:06 GMT (envelope-from csjp@freebsd.org) Date: Fri, 2 Feb 2007 23:13:06 GMT Message-Id: <200702022313.l12ND6CN042469@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113926 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 23:13:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=113926 Change 113926 by csjp@csjp_rnd01 on 2007/02/02 23:12:19 General house cleaning Affected files ... .. //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#7 edit Differences ... ==== //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#7 (text+ko) ==== @@ -1,5 +1,30 @@ -/* $Id: bpfnull.c,v 1.5 2007/01/18 22:23:47 csjp Exp $ */ - +/*- + * Copyright (c) 2007 Seccuris Inc. + * Copyright (c) 2007 Christian S.J. Peron + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ #include #include #include From owner-p4-projects@FreeBSD.ORG Fri Feb 2 23:17:12 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A228516A405; Fri, 2 Feb 2007 23:17:12 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6373D16A401 for ; Fri, 2 Feb 2007 23:17:12 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 52C2A13C4A5 for ; Fri, 2 Feb 2007 23:17:12 +0000 (UTC) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l12NHCjV042657 for ; Fri, 2 Feb 2007 23:17:12 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l12NHCtA042654 for perforce@freebsd.org; Fri, 2 Feb 2007 23:17:12 GMT (envelope-from csjp@freebsd.org) Date: Fri, 2 Feb 2007 23:17:12 GMT Message-Id: <200702022317.l12NHCtA042654@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to csjp@freebsd.org using -f From: "Christian S.J. Peron" To: Perforce Change Reviews Cc: Subject: PERFORCE change 113927 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Feb 2007 23:17:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=113927 Change 113927 by csjp@csjp_rnd01 on 2007/02/02 23:16:32 Clean up for -Wall Affected files ... .. //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#8 edit Differences ... ==== //depot/projects/zcopybpf/utils/bpfnull/bpfnull.c#8 (text+ko) ==== @@ -91,17 +91,11 @@ struct pcap_pkthdr phd; int clen, hlen; u_char *b,*bp, *ep, *p; - int i; #define bhp ((struct bpf_hdr *)bp) b = bp = bz->bz_bufa; ep = bp + bz->bz_buflen; - i = 0; while (bp < ep) { - i++; - if (vflag) - fprintf(stderr, "%s %d clen=%i hlen=%d dlen=%d bp=%lu pd=%lu ep=%lu %lu bytes away from eob %lu bytes into buffer\n", - bufname, i, clen, hlen, bhp->bh_datalen, bp, (u_char *)bp + hlen, ep, ep - bp, bp - b); clen = bhp->bh_caplen; hlen = bhp->bh_hdrlen; p = (u_char *)bp + hlen; @@ -125,7 +119,6 @@ char *pbuf; int n; struct bpf_zbuf_header *bzha, *bzhb; - int d; pbuf = malloc(bflag + 1); if (pbuf == NULL) @@ -252,7 +245,7 @@ int main(int argc, char *argv[]) { - int opt, in, bufmode; + int opt, in; struct bpf_zbuf bz; char ch; From owner-p4-projects@FreeBSD.ORG Sat Feb 3 20:06:58 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BEF3716A40D; Sat, 3 Feb 2007 20:06:58 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 42CCA16A403 for ; Sat, 3 Feb 2007 20:06:58 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 26C6213C442 for ; Sat, 3 Feb 2007 20:06:58 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l13K6wxq051123 for ; Sat, 3 Feb 2007 20:06:58 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l13K6vtB051120 for perforce@freebsd.org; Sat, 3 Feb 2007 20:06:57 GMT (envelope-from piso@freebsd.org) Date: Sat, 3 Feb 2007 20:06:57 GMT Message-Id: <200702032006.l13K6vtB051120@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 113964 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Feb 2007 20:06:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=113964 Change 113964 by piso@piso_newluxor on 2007/02/03 20:06:15 Teach mbuf to LibAliasFragmentIn(), LibAliasGetFragment() and LibAliasSaveFragment(). Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#52 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.h#13 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#22 edit .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#17 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#52 (text+ko) ==== @@ -1225,16 +1225,24 @@ int +#ifdef _KERNEL +LibAliasSaveFragment(struct libalias *la, struct mbuf *ptr) +#else LibAliasSaveFragment(struct libalias *la, char *ptr) +#endif { int iresult; struct alias_link *lnk; struct ip *pip; LIBALIAS_LOCK(la); - pip = (struct ip *)ptr; + iresult = PKT_ALIAS_ERROR; + PULLUP_IPHDR(pip, ptr); + if (pip == NULL) { + LIBALIAS_UNLOCK(la); + return (iresult); + } lnk = AddFragmentPtrLink(la, pip->ip_src, pip->ip_id); - iresult = PKT_ALIAS_ERROR; if (lnk != NULL) { SetFragmentPtr(lnk, ptr); iresult = PKT_ALIAS_OK; @@ -1243,16 +1251,28 @@ return (iresult); } - +#ifdef _KERNEL +struct mbuf * +LibAliasGetFragment(struct libalias *la, struct mbuf *ptr) +#else char * LibAliasGetFragment(struct libalias *la, char *ptr) +#endif { struct alias_link *lnk; +#ifdef _KERNEL + struct mbuf *fptr; +#else char *fptr; +#endif struct ip *pip; LIBALIAS_LOCK(la); - pip = (struct ip *)ptr; + PULLUP_IPHDR(pip, ptr); + if (pip == NULL) { + LIBALIAS_UNLOCK(la); + return (NULL); + } lnk = FindFragmentPtr(la, pip->ip_src, pip->ip_id); if (lnk != NULL) { GetFragmentPtr(lnk, &fptr); @@ -1265,7 +1285,11 @@ return (fptr); } - +#ifdef _KERNEL +void +LibAliasFragmentIn(struct libalias *la, struct mbuf *ptr, + struct mbuf *ptr_fragment) +#else void LibAliasFragmentIn(struct libalias *la, char *ptr, /* Points to correctly * de-aliased header @@ -1273,15 +1297,23 @@ char *ptr_fragment /* Points to fragment which must be * de-aliased */ ) +#endif { struct ip *pip; struct ip *fpip; LIBALIAS_LOCK(la); + PULLUP_IPHDR(pip, ptr); + if (pip == NULL) { + LIBALIAS_UNLOCK(la); + return; + } + PULLUP_IPHDR(fpip, ptr_fragment); + if (fpip == NULL) { + LIBALIAS_UNLOCK(la); + return; + } (void)la; - pip = (struct ip *)ptr; - fpip = (struct ip *)ptr_fragment; - DifferentialChecksum(&fpip->ip_sum, &pip->ip_dst, &fpip->ip_dst, 2); fpip->ip_dst = pip->ip_dst; ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.h#13 (text+ko) ==== @@ -178,9 +178,16 @@ unsigned char _proto); /* Fragment Handling functions. */ +#ifdef _KERNEL +void LibAliasFragmentIn(struct libalias *, struct mbuf *_ptr, + struct mbuf *_ptr_fragment); +struct mbuf *LibAliasGetFragment(struct libalias *, struct mbuf *_ptr); +int LibAliasSaveFragment(struct libalias *, struct mbuf *_ptr); +#else void LibAliasFragmentIn(struct libalias *, char *_ptr, char *_ptr_fragment); char *LibAliasGetFragment(struct libalias *, char *_ptr); int LibAliasSaveFragment(struct libalias *, char *_ptr); +#endif /* Miscellaneous functions. */ int LibAliasCheckNewLink(struct libalias *); ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#22 (text+ko) ==== @@ -327,7 +327,11 @@ * lookup tables */ union { /* Auxiliary data */ +#ifdef _KERNEL + struct mbuf *frag_ptr; +#else char *frag_ptr; +#endif struct in_addr frag_addr; struct tcp_dat *tcp; } data; @@ -1814,14 +1818,22 @@ void +#ifdef _KERNEL +SetFragmentPtr(struct alias_link *lnk, struct mbuf *fptr) +#else SetFragmentPtr(struct alias_link *lnk, char *fptr) +#endif { lnk->data.frag_ptr = fptr; } void +#ifdef _KERNEL +GetFragmentPtr(struct alias_link *lnk, struct mbuf **fptr) +#else GetFragmentPtr(struct alias_link *lnk, char **fptr) +#endif { *fptr = lnk->data.frag_ptr; } ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#17 (text+ko) ==== @@ -274,8 +274,13 @@ u_char _proto, u_char _align); void GetFragmentAddr(struct alias_link *_lnk, struct in_addr *_src_addr); void SetFragmentAddr(struct alias_link *_lnk, struct in_addr _src_addr); +#ifdef _KERNEL +void GetFragmentPtr(struct alias_link *_lnk, struct mbuf **_fptr); +void SetFragmentPtr(struct alias_link *_lnk, struct mbuf *fptr); +#else void GetFragmentPtr(struct alias_link *_lnk, char **_fptr); void SetFragmentPtr(struct alias_link *_lnk, char *fptr); +#endif void SetStateIn(struct alias_link *_lnk, int _state); void SetStateOut(struct alias_link *_lnk, int _state); int GetStateIn (struct alias_link *_lnk);