Date: Tue, 15 Apr 2008 21:55:13 GMT From: Julian Elischer <julian@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 140089 for review Message-ID: <200804152155.m3FLtDbp031282@repoman.freebsd.org>
index | next in thread | raw e-mail
http://perforce.freebsd.org/chv.cgi?CH=140089 Change 140089 by julian@julian_trafmon1 on 2008/04/15 21:54:58 IFC to 140087 Affected files ... .. //depot/projects/arp-v2/src/Makefile.inc1#3 integrate .. //depot/projects/arp-v2/src/lib/libc/gen/Makefile.inc#4 integrate .. //depot/projects/arp-v2/src/lib/libc/gen/Symbol.map#3 integrate .. //depot/projects/arp-v2/src/lib/libc/gen/tcgetsid.3#1 branch .. //depot/projects/arp-v2/src/lib/libc/gen/termios.c#2 integrate .. //depot/projects/arp-v2/src/sys/ia64/conf/DEFAULTS#3 integrate .. //depot/projects/arp-v2/src/sys/ia64/conf/GENERIC#4 integrate .. //depot/projects/arp-v2/src/sys/ia64/conf/SKI#2 integrate .. //depot/projects/arp-v2/src/sys/ia64/ia64/clock.c#2 integrate .. //depot/projects/arp-v2/src/sys/ia64/ia64/interrupt.c#4 integrate .. //depot/projects/arp-v2/src/sys/ia64/ia64/machdep.c#4 integrate .. //depot/projects/arp-v2/src/sys/ia64/ia64/nexus.c#3 integrate .. //depot/projects/arp-v2/src/sys/kern/sched_ule.c#4 integrate .. //depot/projects/arp-v2/src/sys/kern/tty.c#4 integrate .. //depot/projects/arp-v2/src/sys/mips/mips/cache.c#2 integrate .. //depot/projects/arp-v2/src/sys/mips/mips/copystr.S#2 integrate .. //depot/projects/arp-v2/src/sys/net/bpf.c#5 integrate .. //depot/projects/arp-v2/src/sys/net/if_tap.c#2 integrate .. //depot/projects/arp-v2/src/sys/netgraph/bluetooth/include/ng_bluetooth.h#2 integrate .. //depot/projects/arp-v2/src/sys/netgraph/netgraph.h#3 integrate .. //depot/projects/arp-v2/src/sys/netgraph/ng_base.c#5 integrate .. //depot/projects/arp-v2/src/sys/sys/ttycom.h#2 integrate .. //depot/projects/arp-v2/src/usr.sbin/ndiscvt/inf.c#2 integrate .. //depot/projects/arp-v2/src/usr.sbin/ndiscvt/ndiscvt.c#2 integrate .. //depot/projects/arp-v2/src/usr.sbin/ndiscvt/ndisgen.sh#2 integrate Differences ... ==== //depot/projects/arp-v2/src/Makefile.inc1#3 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.602 2008/03/29 17:44:38 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.603 2008/04/15 05:14:42 ru Exp $ # # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir @@ -963,10 +963,12 @@ # # cross-tools: Build cross-building tools # -.if ${TARGET_ARCH} != ${MACHINE_ARCH} +.if ${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 800035 .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" _btxld= usr.sbin/btxld .endif +.endif +.if ${TARGET_ARCH} != ${MACHINE_ARCH} .if ${MK_RESCUE} != "no" || defined(RELEASEDIR) _crunchide= usr.sbin/crunch/crunchide .endif ==== //depot/projects/arp-v2/src/lib/libc/gen/Makefile.inc#4 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.133 2008/03/29 16:19:35 das Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.134 2008/04/15 08:33:32 davidxu Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen @@ -63,7 +63,7 @@ setjmp.3 setmode.3 setproctitle.3 \ siginterrupt.3 signal.3 sigsetops.3 sleep.3 \ statvfs.3 stringlist.3 \ - strtofflags.3 sysconf.3 sysctl.3 syslog.3 tcgetpgrp.3 \ + strtofflags.3 sysconf.3 sysctl.3 syslog.3 tcgetpgrp.3 tcgetsid.3 \ tcsendbreak.3 tcsetattr.3 tcsetpgrp.3 time.3 times.3 timezone.3 \ ttyname.3 tzset.3 ualarm.3 ucontext.3 ulimit.3 uname.3 \ unvis.3 usleep.3 utime.3 valloc.3 vis.3 wordexp.3 ==== //depot/projects/arp-v2/src/lib/libc/gen/Symbol.map#3 (text) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.8 2008/01/26 17:09:40 yar Exp $ + * $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.9 2008/04/15 08:33:32 davidxu Exp $ */ FBSD_1.0 { @@ -337,6 +337,7 @@ fts_get_clientptr; fts_get_stream; fts_set_clientptr; + tcgetsid; }; FBSDprivate_1.0 { ==== //depot/projects/arp-v2/src/lib/libc/gen/termios.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ static char sccsid[] = "@(#)termios.c 8.2 (Berkeley) 2/21/94"; #endif /* LIBC_SCCS and not lint */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libc/gen/termios.c,v 1.14 2007/01/09 00:27:55 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/termios.c,v 1.15 2008/04/15 08:33:32 davidxu Exp $"); #include "namespace.h" #include <sys/types.h> @@ -99,6 +99,17 @@ return ((pid_t)s); } +pid_t +tcgetsid(int fd) +{ + int s; + + if (_ioctl(fd, TIOCGSID, &s) < 0) + return ((pid_t)-1); + + return ((pid_t)s); +} + speed_t cfgetospeed(t) const struct termios *t; ==== //depot/projects/arp-v2/src/sys/ia64/conf/DEFAULTS#3 (text+ko) ==== @@ -1,7 +1,7 @@ # # DEFAULTS -- Default kernel configuration file for FreeBSD/ia64 # -# $FreeBSD: src/sys/ia64/conf/DEFAULTS,v 1.13 2008/03/12 10:11:58 jeff Exp $ +# $FreeBSD: src/sys/ia64/conf/DEFAULTS,v 1.14 2008/04/15 17:02:23 marcel Exp $ machine ia64 @@ -9,6 +9,7 @@ device acpi # ACPI support # Pseudo devices. +device genclock # Real-time clock device mem # Memory and kernel memory devices # UART chips on this platform ==== //depot/projects/arp-v2/src/sys/ia64/conf/GENERIC#4 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/ia64/conf/GENERIC,v 1.96 2008/03/27 11:54:18 dfr Exp $ +# $FreeBSD: src/sys/ia64/conf/GENERIC,v 1.97 2008/04/15 05:02:41 marcel Exp $ cpu ITANIUM ident GENERIC @@ -48,7 +48,7 @@ options NFS_ROOT # NFS usable as root device options PROCFS # Process filesystem (/proc) options PSEUDOFS # Pseudo-filesystem framework -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options SCTP # Stream Control Transmission Protocol options SMP # Symmetric Multi-Processor support ==== //depot/projects/arp-v2/src/sys/ia64/conf/SKI#2 (text+ko) ==== @@ -17,7 +17,7 @@ # If you are in doubt as to the purpose or necessity of a line, check # first in NOTES. # -# $FreeBSD: src/sys/ia64/conf/SKI,v 1.24 2006/06/15 19:58:53 netchild Exp $ +# $FreeBSD: src/sys/ia64/conf/SKI,v 1.25 2008/04/15 05:02:41 marcel Exp $ cpu ITANIUM ident SKI @@ -35,8 +35,8 @@ options MD_ROOT # MD usable as root device options PROCFS # Process filesystem (/proc) options PSEUDOFS # Pseudo-filesystem framework -options SCHED_4BSD # 4BSD scheduler -#options SCHED_ULE # ULE scheduler +#options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options SKI # Include SKI support code options SOFTUPDATES # Enable FFS soft updates support options SYSVMSG # SYSV-style message queues ==== //depot/projects/arp-v2/src/sys/ia64/ia64/clock.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ia64/ia64/clock.c,v 1.32 2007/08/04 19:28:19 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/clock.c,v 1.33 2008/04/15 17:02:23 marcel Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -44,8 +44,6 @@ uint64_t ia64_clock_reload; -static int clock_initialized = 0; - #ifndef SMP static timecounter_get_t ia64_get_timecount; @@ -110,93 +108,3 @@ /* nothing to do */ } - -void -inittodr(time_t base) -{ - long days; - struct efi_tm tm; - struct timespec ts; - struct clocktime ct; - - efi_get_time(&tm); - - /* - * This code was written in 2005, so logically EFI cannot return - * a year smaller than that. Assume the EFI clock is out of whack - * in that case and reset the EFI clock. - */ - if (tm.tm_year < 2005) { - printf("WARNING: CHECK AND RESET THE DATE!\n"); - memset(&tm, 0, sizeof(tm)); - tm.tm_year = 2005; - tm.tm_mon = tm.tm_mday = 1; - if (efi_set_time(&tm)) - printf("ERROR: COULD NOT RESET EFI CLOCK!\n"); - } - - ct.nsec = tm.tm_nsec; - ct.sec = tm.tm_sec; - ct.min = tm.tm_min; - ct.hour = tm.tm_hour; - ct.day = tm.tm_mday; - ct.mon = tm.tm_mon; - ct.year = tm.tm_year; - ct.dow = -1; - if (clock_ct_to_ts(&ct, &ts)) - printf("Invalid time in clock: check and reset the date!\n"); - ts.tv_sec += utc_offset(); - - /* - * The EFI clock is supposed to be a real-time clock, whereas the - * base argument is coming from a saved (as on disk) time. It's - * impossible for a saved time to represent a time in the future, - * so we expect the EFI clock to be larger. If not, the EFI clock - * may not be reliable and we trust the base. - * Warn if the EFI clock was off by 2 or more days. - */ - if (ts.tv_sec < base) { - days = (base - ts.tv_sec) / (60L * 60L * 24L); - if (days >= 2) - printf("WARNING: EFI clock lost %ld days!\n", days); - ts.tv_sec = base; - ts.tv_nsec = 0; - } - - tc_setclock(&ts); - clock_initialized = 1; -} - -/* - * Reset the TODR based on the time value; used when the TODR has a - * preposterous value and also when the time is reset by the stime - * system call. Also called when the TODR goes past - * TODRZERO + 100*(SECYEAR+2*SECDAY) (e.g. on Jan 2 just after midnight) - * to wrap the TODR around. - */ -void -resettodr() -{ - struct timespec ts; - struct clocktime ct; - struct efi_tm tm; - - if (!clock_initialized || disable_rtc_set) - return; - - efi_get_time(&tm); - getnanotime(&ts); - ts.tv_sec -= utc_offset(); - clock_ts_to_ct(&ts, &ct); - - tm.tm_nsec = ts.tv_nsec; - tm.tm_sec = ct.sec; - tm.tm_min = ct.min; - tm.tm_hour = ct.hour; - - tm.tm_year = ct.year; - tm.tm_mon = ct.mon; - tm.tm_mday = ct.day; - if (efi_set_time(&tm)) - printf("ERROR: COULD NOT RESET EFI CLOCK!\n"); -} ==== //depot/projects/arp-v2/src/sys/ia64/ia64/interrupt.c#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/ia64/ia64/interrupt.c,v 1.67 2008/04/11 23:10:39 jeff Exp $ */ +/* $FreeBSD: src/sys/ia64/ia64/interrupt.c,v 1.68 2008/04/15 05:02:42 marcel Exp $ */ /* $NetBSD: interrupt.c,v 1.23 1998/02/24 07:38:01 thorpej Exp $ */ /*- @@ -47,6 +47,7 @@ #include <sys/ktr.h> #include <sys/lock.h> #include <sys/mutex.h> +#include <sys/sched.h> #include <sys/smp.h> #include <sys/sysctl.h> #include <sys/syslog.h> @@ -241,6 +242,9 @@ } else if (vector == ipi_vector[IPI_TEST]) { CTR1(KTR_SMP, "IPI_TEST, cpuid=%d", PCPU_GET(cpuid)); mp_ipi_test++; + } else if (vector == ipi_vector[IPI_PREEMPT]) { + CTR1(KTR_SMP, "IPI_PREEMPT, cpuid=%d", PCPU_GET(cpuid)); + sched_preempt(curthread); #endif } else { ints[PCPU_GET(cpuid)]++; ==== //depot/projects/arp-v2/src/sys/ia64/ia64/machdep.c#4 (text+ko) ==== @@ -26,12 +26,13 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.235 2008/03/30 23:09:14 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.236 2008/04/15 05:02:42 marcel Exp $"); #include "opt_compat.h" #include "opt_ddb.h" #include "opt_kstack_pages.h" #include "opt_msgbuf.h" +#include "opt_sched.h" #include <sys/param.h> #include <sys/proc.h> @@ -370,6 +371,12 @@ if (PCPU_GET(fpcurthread) == old) old->td_frame->tf_special.psr |= IA64_PSR_DFH; if (!savectx(oldpcb)) { + old->td_lock = mtx; +#if defined(SCHED_ULE) && defined(SMP) + /* td_lock is volatile */ + while (new->td_lock == &blocked_lock) + ; +#endif newpcb = new->td_pcb; oldpcb->pcb_current_pmap = pmap_switch(newpcb->pcb_current_pmap); @@ -890,12 +897,16 @@ { u_int64_t start, end, now; + sched_pin(); + start = ia64_get_itc(); end = start + (itc_frequency * n) / 1000000; /* printf("DELAY from 0x%lx to 0x%lx\n", start, end); */ do { now = ia64_get_itc(); } while (now < end || (now > start && end < start)); + + sched_unpin(); } /* ==== //depot/projects/arp-v2/src/sys/ia64/ia64/nexus.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/ia64/nexus.c,v 1.19 2008/03/13 20:39:04 jhb Exp $ + * $FreeBSD: src/sys/ia64/ia64/nexus.c,v 1.20 2008/04/15 17:02:23 marcel Exp $ */ /* @@ -43,6 +43,7 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/bus.h> +#include <sys/clock.h> #include <sys/kernel.h> #include <sys/malloc.h> #include <sys/module.h> @@ -53,6 +54,7 @@ #include <vm/vm.h> #include <vm/pmap.h> +#include <machine/efi.h> #include <machine/intr.h> #include <machine/nexusvar.h> #include <machine/pmap.h> @@ -66,6 +68,8 @@ #include <isa/isareg.h> #include <sys/rtprio.h> +#include "clock_if.h" + static MALLOC_DEFINE(M_NEXUSDEV, "nexusdev", "Nexus device"); struct nexus_device { struct resource_list nx_resources; @@ -104,6 +108,9 @@ static int nexus_config_intr(device_t, int, enum intr_trigger, enum intr_polarity); +static int nexus_gettime(device_t, struct timespec *); +static int nexus_settime(device_t, struct timespec *); + static device_method_t nexus_methods[] = { /* Device interface */ DEVMETHOD(device_probe, nexus_probe), @@ -130,6 +137,10 @@ DEVMETHOD(bus_delete_resource, nexus_delete_resource), DEVMETHOD(bus_config_intr, nexus_config_intr), + /* Clock interface */ + DEVMETHOD(clock_gettime, nexus_gettime), + DEVMETHOD(clock_settime, nexus_settime), + { 0, 0 } }; @@ -229,6 +240,7 @@ if (acpi_identify() == 0) BUS_ADD_CHILD(dev, 10, "acpi", 0); + clock_register(dev, 1000); bus_generic_attach(dev); return 0; } @@ -521,54 +533,49 @@ return (sapic_config_intr(irq, trig, pol)); } -#if 0 +static int +nexus_gettime(device_t dev, struct timespec *ts) +{ + struct clocktime ct; + struct efi_tm tm; + + efi_get_time(&tm); -/* - * Placeholder which claims PnP 'devices' which describe system - * resources. - */ -static struct isa_pnp_id sysresource_ids[] = { - { 0x010cd041 /* PNP0c01 */, "System Memory" }, - { 0x020cd041 /* PNP0c02 */, "System Resource" }, - { 0 } -}; + /* + * This code was written in 2005, so logically EFI cannot return + * a year smaller than that. Assume the EFI clock is out of whack + * in that case and reset the EFI clock. + */ + if (tm.tm_year < 2005) + return (EINVAL); -static int -sysresource_probe(device_t dev) -{ - int result; - - if ((result = ISA_PNP_PROBE(device_get_parent(dev), dev, sysresource_ids)) <= 0) { - device_quiet(dev); - } - return(result); + ct.nsec = tm.tm_nsec; + ct.sec = tm.tm_sec; + ct.min = tm.tm_min; + ct.hour = tm.tm_hour; + ct.day = tm.tm_mday; + ct.mon = tm.tm_mon; + ct.year = tm.tm_year; + ct.dow = -1; + return (clock_ct_to_ts(&ct, ts)); } static int -sysresource_attach(device_t dev) +nexus_settime(device_t dev, struct timespec *ts) { - return(0); -} + struct clocktime ct; + struct efi_tm tm; -static device_method_t sysresource_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, sysresource_probe), - DEVMETHOD(device_attach, sysresource_attach), - DEVMETHOD(device_detach, bus_generic_detach), - DEVMETHOD(device_shutdown, bus_generic_shutdown), - DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), - { 0, 0 } -}; + efi_get_time(&tm); -static driver_t sysresource_driver = { - "sysresource", - sysresource_methods, - 1, /* no softc */ -}; + clock_ts_to_ct(ts, &ct); + tm.tm_nsec = ts->tv_nsec; + tm.tm_sec = ct.sec; + tm.tm_min = ct.min; + tm.tm_hour = ct.hour; + tm.tm_year = ct.year; + tm.tm_mon = ct.mon; + tm.tm_mday = ct.day; + return (efi_set_time(&tm)); +} -static devclass_t sysresource_devclass; - -DRIVER_MODULE(sysresource, isa, sysresource_driver, sysresource_devclass, 0, 0); - -#endif ==== //depot/projects/arp-v2/src/sys/kern/sched_ule.c#4 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.240 2008/04/04 01:16:18 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.241 2008/04/15 05:02:42 marcel Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_sched.h" @@ -72,7 +72,7 @@ #include <machine/cpu.h> #include <machine/smp.h> -#if !defined(__i386__) && !defined(__amd64__) && !defined(__powerpc__) && !defined(__arm__) +#if defined(__sparc64__) || defined(__mips__) #error "This architecture is not currently compatible with ULE" #endif ==== //depot/projects/arp-v2/src/sys/kern/tty.c#4 (text+ko) ==== @@ -71,7 +71,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/tty.c,v 1.275 2008/03/19 06:19:00 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/tty.c,v 1.276 2008/04/15 08:33:32 davidxu Exp $"); #include "opt_compat.h" #include "opt_tty.h" @@ -1010,6 +1010,11 @@ return (ENOTTY); *(int *)data = tp->t_pgrp ? tp->t_pgrp->pg_id : NO_PID; break; + case TIOCGSID: /* get sid of tty */ + if (!isctty(p, tp)) + return (ENOTTY); + *(int *)data = tp->t_session->s_sid; + break; #ifdef TIOCHPCL case TIOCHPCL: /* hang up on last close */ s = spltty(); ==== //depot/projects/arp-v2/src/sys/mips/mips/cache.c#2 (text+ko) ==== @@ -1,32 +1,74 @@ +/* $NetBSD: cache.c,v 1.33 2005/12/24 23:24:01 perry Exp $ */ + /*- - * Copyright (c) 2006 Fill this file and put your name here + * Copyright 2001, 2002 Wasabi Systems, Inc. * All rights reserved. * + * Written by Jason R. Thorpe and Simon Burge for Wasabi Systems, 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, - * without modification, immediately at the beginning of the file. - * 2. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed for the NetBSD Project by + * Wasabi Systems, Inc. + * 4. The name of Wasabi Systems, Inc. may not be used to endorse + * or promote products derived from this software without specific prior + * written permission. * - * 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. + * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``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 WASABI SYSTEMS, INC + * 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 2000, 2001 + * Broadcom Corporation. All rights reserved. + * + * This software is furnished under license and may be used and copied only + * in accordance with the following terms and conditions. Subject to these + * conditions, you may download, copy, install, use, modify and distribute + * modified or unmodified copies of this software in source and/or binary + * form. No title or ownership is transferred hereby. + * + * 1) Any source code used, modified or distributed must reproduce and + * retain this copyright notice and list of conditions as they appear in + * the source file. + * + * 2) No right is granted to use any trade name, trademark, or logo of + * Broadcom Corporation. The "Broadcom Corporation" name may not be + * used to endorse or promote products derived from this software + * without the prior written permission of Broadcom Corporation. * + * 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR + * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL BROADCOM BE LIABLE + * FOR ANY DAMAGES WHATSOEVER, AND IN PARTICULAR, BROADCOM SHALL NOT BE + * LIABLE FOR 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), EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/mips/mips/cache.c,v 1.1 2008/04/13 07:27:37 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/mips/mips/cache.c,v 1.2 2008/04/15 05:35:00 imp Exp $"); #include <sys/types.h> #include <sys/systm.h> ==== //depot/projects/arp-v2/src/sys/mips/mips/copystr.S#2 (text+ko) ==== @@ -1,6 +1,11 @@ +/* $NetBSD: copy.S,v 1.5 2007/10/17 19:55:37 garbled Exp $ */ + /*- - * Copyright (c) [year] [your name] - * All rights reserved. + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Digital Equipment Corporation and Ralph Campbell. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -10,11 +15,14 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS 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) @@ -23,13 +31,28 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id$ + * Copyright (C) 1989 Digital Equipment Corporation. + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appears in all copies. + * Digital Equipment Corporation makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * from: Header: /sprite/src/kernel/mach/ds3100.md/RCS/loMem.s, + * v 1.1 89/07/11 17:55:04 nelson Exp SPRITE (DECWRL) + * from: Header: /sprite/src/kernel/mach/ds3100.md/RCS/machAsm.s, + * v 9.2 90/01/29 18:00:39 shirriff Exp SPRITE (DECWRL) + * from: Header: /sprite/src/kernel/vm/ds3100.md/vmPmaxAsm.s, + * v 1.1 89/07/10 14:27:41 nelson Exp SPRITE (DECWRL) + * + * @(#)locore.s 8.5 (Berkeley) 1/4/94 */ #include "assym.s" #include <machine/asm.h> #include <machine/asmacros.h> -__FBSDID("$FreeBSD: src/sys/mips/mips/copystr.S,v 1.1 2008/04/13 07:27:37 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/mips/mips/copystr.S,v 1.2 2008/04/15 05:31:19 imp Exp $"); #include <sys/errno.h> ==== //depot/projects/arp-v2/src/sys/net/bpf.c#5 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/net/bpf.c,v 1.192 2008/04/15 00:50:01 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/net/bpf.c,v 1.193 2008/04/15 17:08:24 jkim Exp $"); #include "opt_bpf.h" #include "opt_mac.h" @@ -841,6 +841,9 @@ mc = m_dup(m, M_DONTWAIT); if (mc != NULL) mc->m_pkthdr.rcvif = ifp; + /* Set M_PROMISC for outgoing packets to be discarded. */ + if (d->bd_direction == BPF_D_INOUT) + m->m_flags |= M_PROMISC; } else mc = NULL; @@ -1571,9 +1574,6 @@ #define BPF_CHECK_DIRECTION(d, i) \ (((d)->bd_direction == BPF_D_IN && (i) == NULL) || \ ((d)->bd_direction == BPF_D_OUT && (i) != NULL)) -#define BPF_CHECK_DUPLICATE(d, i) \ - ((d)->bd_feedback && \ - (d)->bd_direction == BPF_D_INOUT && (i) == NULL) /* * Incoming linkage from device drivers, when packet is in an mbuf chain. @@ -1586,14 +1586,19 @@ int gottime; struct timeval tv; + /* Skip outgoing duplicate packets. */ + if ((m->m_flags & M_PROMISC) != 0 && m->m_pkthdr.rcvif == NULL) { + m->m_flags &= ~M_PROMISC; + return; + } + gottime = 0; pktlen = m_length(m, NULL); BPFIF_LOCK(bp); LIST_FOREACH(d, &bp->bif_dlist, bd_next) { - if (BPF_CHECK_DIRECTION(d, m->m_pkthdr.rcvif) || - BPF_CHECK_DUPLICATE(d, m->m_pkthdr.rcvif)) + if (BPF_CHECK_DIRECTION(d, m->m_pkthdr.rcvif)) continue; BPFD_LOCK(d); ++d->bd_rcount; @@ -1636,6 +1641,12 @@ int gottime; struct timeval tv; + /* Skip outgoing duplicate packets. */ + if ((m->m_flags & M_PROMISC) != 0 && m->m_pkthdr.rcvif == NULL) { + m->m_flags &= ~M_PROMISC; + return; + } + gottime = 0; pktlen = m_length(m, NULL); @@ -1651,8 +1662,7 @@ BPFIF_LOCK(bp); LIST_FOREACH(d, &bp->bif_dlist, bd_next) { - if (BPF_CHECK_DIRECTION(d, m->m_pkthdr.rcvif) || - BPF_CHECK_DUPLICATE(d, m->m_pkthdr.rcvif)) + if (BPF_CHECK_DIRECTION(d, m->m_pkthdr.rcvif)) continue; BPFD_LOCK(d); ++d->bd_rcount; @@ -1675,7 +1685,6 @@ } #undef BPF_CHECK_DIRECTION -#undef BPF_CHECK_DUPLICATE /* * Move the packet data from interface memory (pkt) into the ==== //depot/projects/arp-v2/src/sys/net/if_tap.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ /* - * $FreeBSD: src/sys/net/if_tap.c,v 1.71 2007/03/19 18:17:31 bms Exp $ + * $FreeBSD: src/sys/net/if_tap.c,v 1.72 2008/04/15 16:54:39 emax Exp $ * $Id: if_tap.c,v 0.21 2000/07/23 21:46:02 max Exp $ */ @@ -404,6 +404,7 @@ struct ifnet *ifp = NULL; struct tap_softc *tp = NULL; unsigned short macaddr_hi; + uint32_t macaddr_mid; int unit, s; char *name = NULL; u_char eaddr[6]; @@ -432,8 +433,9 @@ /* generate fake MAC address: 00 bd xx xx xx unit_no */ macaddr_hi = htons(0x00bd); + macaddr_mid = (uint32_t) ticks; bcopy(&macaddr_hi, eaddr, sizeof(short)); - bcopy(&ticks, &eaddr[2], sizeof(long)); + bcopy(&macaddr_mid, &eaddr[2], sizeof(uint32_t)); eaddr[5] = (u_char)unit; /* fill the rest and attach interface */ ==== //depot/projects/arp-v2/src/sys/netgraph/bluetooth/include/ng_bluetooth.h#2 (text+ko) ==== @@ -28,12 +28,14 @@ * SUCH DAMAGE. * * $Id: ng_bluetooth.h,v 1.4 2003/04/26 22:32:34 max Exp $ - * $FreeBSD: src/sys/netgraph/bluetooth/include/ng_bluetooth.h,v 1.4 2005/01/07 01:45:43 imp Exp $ + * $FreeBSD: src/sys/netgraph/bluetooth/include/ng_bluetooth.h,v 1.5 2008/04/15 21:15:32 mav Exp $ */ #ifndef _NETGRAPH_BLUETOOTH_H_ #define _NETGRAPH_BLUETOOTH_H_ +#include <sys/queue.h> + /* * Version of the stack */ @@ -147,8 +149,7 @@ struct ng_item; struct ng_bt_itemq { - struct ng_item *head; /* first item in the queue */ - struct ng_item *tail; /* last item in the queue */ + STAILQ_HEAD(, ng_item) queue; /* actually items queue */ u_int32_t len; /* number of items in the queue */ u_int32_t maxlen; /* maximal number of items in the queue */ u_int32_t drops; /* number if dropped items */ @@ -156,14 +157,20 @@ typedef struct ng_bt_itemq ng_bt_itemq_t; typedef struct ng_bt_itemq * ng_bt_itemq_p; -#define NG_BT_ITEMQ_INIT(q, _maxlen) NG_BT_MBUFQ_INIT((q), (_maxlen)) +#define NG_BT_ITEMQ_INIT(q, _maxlen) \ + do { \ + STAILQ_INIT(&(q)->queue); \ + (q)->len = 0; \ + (q)->maxlen = (_maxlen); \ + (q)->drops = 0; \ + } while (0) #define NG_BT_ITEMQ_DESTROY(q) \ do { \ NG_BT_ITEMQ_DRAIN((q)); \ } while (0) -#define NG_BT_ITEMQ_FIRST(q) NG_BT_MBUFQ_FIRST((q)) +#define NG_BT_ITEMQ_FIRST(q) STAILQ_FIRST(&(q)->queue) #define NG_BT_ITEMQ_LEN(q) NG_BT_MBUFQ_LEN((q)) @@ -173,37 +180,22 @@ #define NG_BT_ITEMQ_ENQUEUE(q, i) \ do { \ - (i)->el_next = NULL; \ - \ - if ((q)->tail == NULL) \ - (q)->head = (i); \ - else \ - (q)->tail->el_next = (i); \ - \ - (q)->tail = (i); \ + STAILQ_INSERT_TAIL(&(q)->queue, (i), el_next); \ (q)->len ++; \ } while (0) #define NG_BT_ITEMQ_DEQUEUE(q, i) \ do { \ - (i) = (q)->head; \ + (i) = STAILQ_FIRST(&(q)->queue); \ if ((i) != NULL) { \ - (q)->head = (q)->head->el_next; \ - if ((q)->head == NULL) \ - (q)->tail = NULL; \ - \ + STAILQ_REMOVE_HEAD(&(q)->queue, el_next); \ (q)->len --; \ - (i)->el_next = NULL; \ } \ } while (0) #define NG_BT_ITEMQ_PREPEND(q, i) \ do { \ - (i)->el_next = (q)->head; \ - if ((q)->tail == NULL) \ - (q)->tail = (i); \ - \ - (q)->head = (i); \ + STAILQ_INSERT_HEAD(&(q)->queue, (i), el_next); \ (q)->len ++; \ } while (0) ==== //depot/projects/arp-v2/src/sys/netgraph/netgraph.h#3 (text+ko) ==== @@ -37,7 +37,7 @@ * * Author: Julian Elischer <julian@freebsd.org> * - * $FreeBSD: src/sys/netgraph/netgraph.h,v 1.72 2008/03/11 21:58:48 mav Exp $ + * $FreeBSD: src/sys/netgraph/netgraph.h,v 1.73 2008/04/15 21:15:31 mav Exp $ * $Whistle: netgraph.h,v 1.29 1999/11/01 07:56:13 julian Exp $ */ @@ -66,7 +66,7 @@ * Change it for NETGRAPH_DEBUG version so we cannot mix debug and non debug * modules. */ -#define _NG_ABI_VERSION 11 +#define _NG_ABI_VERSION 12 #ifdef NETGRAPH_DEBUG /*----------------------------------------------*/ #define NG_ABI_VERSION (_NG_ABI_VERSION + 0x10000) #else /* NETGRAPH_DEBUG */ /*----------------------------------------------*/ @@ -107,13 +107,13 @@ char hk_name[NG_HOOKSIZ]; /* what this node knows this link as */ void *hk_private; /* node dependant ID for this hook */ int hk_flags; /* info about this hook/link */ - int hk_refs; /* dont actually free this till 0 */ int hk_type; /* tbd: hook data link type */ struct ng_hook *hk_peer; /* the other end of this link */ struct ng_node *hk_node; /* The node this hook is attached to */ LIST_ENTRY(ng_hook) hk_hooks; /* linked list of all hooks on node */ ng_rcvmsg_t *hk_rcvmsg; /* control messages come here */ ng_rcvdata_t *hk_rcvdata; /* data comes here */ + int hk_refs; /* dont actually free this till 0 */ #ifdef NETGRAPH_DEBUG /*----------------------------------------------*/ #define HK_MAGIC 0x78573011 int hk_magic; @@ -331,26 +331,25 @@ * embedded in the node structure */ struct ng_queue { - u_long q_flags; + u_int q_flags; /* Current r/w/q lock flags */ + u_int q_flags2; /* Other queue flags */ struct mtx q_mtx; - item_p queue; - item_p *last; - struct ng_node *q_node; /* find the front of the node.. */ + STAILQ_ENTRY(ng_node) q_work; /* nodes with work to do */ + STAILQ_HEAD(, ng_item) queue; /* actually items queue */ >>> TRUNCATED FOR MAIL (1000 lines) <<<help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804152155.m3FLtDbp031282>
