From owner-p4-projects@FreeBSD.ORG Sun Sep 11 11:41:47 2005 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 488B816A423; Sun, 11 Sep 2005 11:41:47 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DFB8916A422 for ; Sun, 11 Sep 2005 11:41:46 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 665EC43D48 for ; Sun, 11 Sep 2005 11:41:46 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8BBfkbO031712 for ; Sun, 11 Sep 2005 11:41:46 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BBfkZv031709 for perforce@freebsd.org; Sun, 11 Sep 2005 11:41:46 GMT (envelope-from soc-victor@freebsd.org) Date: Sun, 11 Sep 2005 11:41:46 GMT Message-Id: <200509111141.j8BBfkZv031709@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 83391 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, 11 Sep 2005 11:41:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=83391 Change 83391 by soc-victor@soc-victor_82.76.158.176 on 2005/09/11 11:41:43 BSNMP: Integrate from the latest CVS changes. Affected files ... .. //depot/projects/soc2005/bsnmp/lib/libbegemot/Makefile#2 integrate .. //depot/projects/soc2005/bsnmp/lib/libbsnmp/Makefile.inc#2 integrate .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/Makefile.inc#2 integrate .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3#2 integrate .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c#2 integrate Differences ... ==== //depot/projects/soc2005/bsnmp/lib/libbegemot/Makefile#2 (text+ko) ==== @@ -1,11 +1,11 @@ -# $FreeBSD: src/lib/libbegemot/Makefile,v 1.2 2004/11/04 08:25:03 ru Exp $ +# $FreeBSD: src/lib/libbegemot/Makefile,v 1.3 2005/07/22 17:18:59 kensmith Exp $ LIBBEGEMOT_DIR=${.CURDIR}/../../contrib/libbegemot .PATH: ${LIBBEGEMOT_DIR} LIB= begemot -SHLIB_MAJOR= 1 +SHLIB_MAJOR= 2 SHLIBDIR?= /lib # WARNS?= 6 ==== //depot/projects/soc2005/bsnmp/lib/libbsnmp/Makefile.inc#2 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/lib/libbsnmp/Makefile.inc,v 1.5 2004/10/24 15:32:30 ru Exp $ +# $FreeBSD: src/lib/libbsnmp/Makefile.inc,v 1.6 2005/07/22 17:18:59 kensmith Exp $ -SHLIB_MAJOR= 2 +SHLIB_MAJOR= 3 WARNS?= 6 NO_WERROR= INCSDIR= ${INCLUDEDIR}/bsnmp ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/Makefile.inc#2 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/usr.sbin/bsnmpd/modules/Makefile.inc,v 1.9 2005/05/23 11:22:54 harti Exp $ +# $FreeBSD: src/usr.sbin/bsnmpd/modules/Makefile.inc,v 1.10 2005/07/22 17:18:57 kensmith Exp $ -SHLIB_MAJOR= 3 +SHLIB_MAJOR= 4 WARNS?= 6 INCSDIR= ${INCLUDEDIR}/bsnmp ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3#2 (text+ko) ==== @@ -27,7 +27,7 @@ .\" 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/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3,v 1.8 2005/02/13 23:23:30 ru Exp $ +.\" $FreeBSD: src/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3,v 1.9 2005/07/31 03:30:47 keramida Exp $ .\" .Dd November 14, 2003 .Dt snmp_netgraph 3 @@ -170,7 +170,7 @@ .It Fa cookie is the node specific command cookie, .It Fa opcode -is the node specific code for the operation to performa, +is the node specific code for the operation to perform, .It Fa arg is a pointer to the message itself. This message must start with a @@ -208,7 +208,7 @@ All three functions take the same arguments as the .Fn ng_output* functions. -The functions return the reponse message in a buffer allocated by +The functions return the response message in a buffer allocated by .Xr malloc 3 or NULL in case of an error. The maximum size of the response buffer can be @@ -223,14 +223,14 @@ the size of the message. It returns -1 if an error happens. .Ss ASYNCHRONOUS CONTROL AND DATA MESSAGES -A module can register functions to asynchronuosly receive control and data +A module can register functions to asynchronously receive control and data message. .Pp The function .Fn ng_register_cookie registers a control message receive function. If a control message is -received, that is not consumed by the dialog functions, the list of registerred +received, that is not consumed by the dialog functions, the list of registered control message receive functions is scanned. If the cookie in the received message is the same as the @@ -256,7 +256,7 @@ A control message registration can be undone by calling .Fn ng_unregister_cookie with the return value of the registration call. -If an error occures while registering, +If an error occurs while registering, .Fn ng_register_cookie returns NULL. .Pp @@ -275,7 +275,7 @@ A data message registration can be undone by calling .Fn ng_unregister_hook with the return value of the registration call. -If an error occures while registering, +If an error occurs while registering, .Fn ng_register_hook returns NULL. .Pp @@ -348,7 +348,7 @@ .Fa type . The function skips intermediate tee nodes (see .Xr ng_tee 4 ) . -It returns the node id of the peer node or 0 if an error occurres or the +It returns the node id of the peer node or 0 if an error occurs or the types do not match. .Ss CHANGING THE GRAPH A number of functions can be used to create or destroy nodes and hooks. ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c,v 1.5 2005/05/23 11:41:14 philip Exp $ + * $FreeBSD: src/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c,v 1.6 2005/08/29 10:08:04 philip Exp $ */ #include @@ -899,7 +899,7 @@ pfi_refresh(void) { struct pfioc_iface io; - struct pfi_if *p; + struct pfi_if *p = NULL; struct pfi_entry *e; int i, numifs = 1; @@ -913,19 +913,23 @@ } bzero(&io, sizeof(io)); - p = malloc(sizeof(struct pfi_if)); io.pfiio_flags = PFI_FLAG_INSTANCE; io.pfiio_esize = sizeof(struct pfi_if); for (;;) { - p = realloc(p, numifs * sizeof(struct pfi_if)); + p = reallocf(p, numifs * sizeof(struct pfi_if)); + if (p == NULL) { + syslog(LOG_ERR, "pfi_refresh(): reallocf() numifs=%d: %s", + numifs, strerror(errno)); + goto err2; + } io.pfiio_size = numifs; io.pfiio_buffer = p; if (ioctl(dev, DIOCIGETIFACES, &io)) { syslog(LOG_ERR, "pfi_refresh(): ioctl(): %s", strerror(errno)); - return (-1); + goto err2; } if (numifs >= io.pfiio_size) @@ -936,6 +940,8 @@ for (i = 0; i < numifs; i++) { e = malloc(sizeof(struct pfi_entry)); + if (e == NULL) + goto err1; e->index = i + 1; memcpy(&e->pfi, p+i, sizeof(struct pfi_if)); TAILQ_INSERT_TAIL(&pfi_table, e, link); @@ -947,6 +953,16 @@ free(p); return (0); + +err1: + while (!TAILQ_EMPTY(&pfi_table)) { + e = TAILQ_FIRST(&pfi_table); + TAILQ_REMOVE(&pfi_table, e, link); + free(e); + } +err2: + free(p); + return(-1); } static int @@ -978,6 +994,12 @@ for (i = 0; i < numqs; i++) { e = malloc(sizeof(struct pfq_entry)); + if (e == NULL) { + syslog(LOG_ERR, "pfq_refresh(): " + "malloc(): %s", + strerror(errno)); + goto err; + } pa.ticket = ticket; pa.nr = i; @@ -985,7 +1007,7 @@ syslog(LOG_ERR, "pfq_refresh(): " "ioctl(DIOCGETALTQ): %s", strerror(errno)); - return (-1); + goto err; } if (pa.altq.qid > 0) { @@ -1000,6 +1022,14 @@ pf_tick = this_tick; return (0); +err: + free(e); + while (!TAILQ_EMPTY(&pfq_table)) { + e = TAILQ_FIRST(&pfq_table); + TAILQ_REMOVE(&pfq_table, e, link); + free(e); + } + return(-1); } static int @@ -1024,7 +1054,7 @@ pft_refresh(void) { struct pfioc_table io; - struct pfr_tstats *t; + struct pfr_tstats *t = NULL; struct pft_entry *e; int i, numtbls = 1; @@ -1038,18 +1068,22 @@ } bzero(&io, sizeof(io)); - t = malloc(sizeof(struct pfr_tstats)); io.pfrio_esize = sizeof(struct pfr_tstats); for (;;) { - t = realloc(t, numtbls * sizeof(struct pfr_tstats)); + t = reallocf(t, numtbls * sizeof(struct pfr_tstats)); + if (t == NULL) { + syslog(LOG_ERR, "pft_refresh(): reallocf() numtbls=%d: %s", + numtbls, strerror(errno)); + goto err2; + } io.pfrio_size = numtbls; io.pfrio_buffer = t; if (ioctl(dev, DIOCRGETTSTATS, &io)) { syslog(LOG_ERR, "pft_refresh(): ioctl(): %s", strerror(errno)); - return (-1); + goto err2; } if (numtbls >= io.pfrio_size) @@ -1060,6 +1094,8 @@ for (i = 0; i < numtbls; i++) { e = malloc(sizeof(struct pfr_tstats)); + if (e == NULL) + goto err1; e->index = i + 1; memcpy(&e->pft, t+i, sizeof(struct pfr_tstats)); TAILQ_INSERT_TAIL(&pft_table, e, link); @@ -1071,6 +1107,15 @@ free(t); return (0); +err1: + while (!TAILQ_EMPTY(&pft_table)) { + e = TAILQ_FIRST(&pft_table); + TAILQ_REMOVE(&pft_table, e, link); + free(e); + } +err2: + free(t); + return(-1); } /* From owner-p4-projects@FreeBSD.ORG Sun Sep 11 12:06:24 2005 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 9BDF716A421; Sun, 11 Sep 2005 12:06:23 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7487D16A41F for ; Sun, 11 Sep 2005 12:06:23 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2DA8243D4C for ; Sun, 11 Sep 2005 12:06:22 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8BC6M36032683 for ; Sun, 11 Sep 2005 12:06:22 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BC6LNN032680 for perforce@freebsd.org; Sun, 11 Sep 2005 12:06:21 GMT (envelope-from soc-victor@freebsd.org) Date: Sun, 11 Sep 2005 12:06:21 GMT Message-Id: <200509111206.j8BC6LNN032680@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 83393 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, 11 Sep 2005 12:06:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=83393 Change 83393 by soc-victor@soc-victor_82.76.158.176 on 2005/09/11 12:06:06 Updated the snmpd configuration file ( let the people see how the new modules can be loaded) Affected files ... .. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmpd/snmpd.config#3 edit Differences ... ==== //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmpd/snmpd.config#3 (text+ko) ==== @@ -78,7 +78,7 @@ # # Load MIB-2 module # -begemotSnmpdModulePath."mibII" = "/usr/local/lib/snmp_mibII.so" +begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so" # @@ -86,11 +86,16 @@ # begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so" +# +# Load TCP-MIB and UDP-MIB module (combined IPv4 & IPv6) +# +begemotSnmpdModulePath."ipL4" = "/usr/lib/snmp_tcp_udp46.so" + # # Netgraph module # -begemotSnmpdModulePath."netgraph" = "/usr/local/lib/snmp_netgraph.so" +begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so" %netgraph begemotNgControlNodeName = "snmpd" From owner-p4-projects@FreeBSD.ORG Sun Sep 11 15:21:43 2005 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 3E48016A421; Sun, 11 Sep 2005 15:21:43 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E694C16A41F for ; Sun, 11 Sep 2005 15:21:42 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7474E43D45 for ; Sun, 11 Sep 2005 15:21:42 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8BFLgkE048821 for ; Sun, 11 Sep 2005 15:21:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BFLfIl048812 for perforce@freebsd.org; Sun, 11 Sep 2005 15:21:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 11 Sep 2005 15:21:41 GMT Message-Id: <200509111521.j8BFLfIl048812@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 83401 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, 11 Sep 2005 15:21:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=83401 Change 83401 by rwatson@rwatson_peppercorn on 2005/09/11 15:20:44 Integrate netsmp branch. Affected files ... .. //depot/projects/netsmp/src/sys/alpha/alpha/db_trace.c#3 integrate .. //depot/projects/netsmp/src/sys/alpha/alpha/pmap.c#2 integrate .. //depot/projects/netsmp/src/sys/amd64/amd64/db_trace.c#4 integrate .. //depot/projects/netsmp/src/sys/amd64/amd64/pmap.c#6 integrate .. //depot/projects/netsmp/src/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/netsmp/src/sys/amd64/conf/NOTES#3 integrate .. //depot/projects/netsmp/src/sys/arm/arm/db_trace.c#3 integrate .. //depot/projects/netsmp/src/sys/arm/arm/pmap.c#2 integrate .. //depot/projects/netsmp/src/sys/conf/Makefile.amd64#2 integrate .. //depot/projects/netsmp/src/sys/conf/Makefile.powerpc#2 integrate .. //depot/projects/netsmp/src/sys/conf/files#8 integrate .. //depot/projects/netsmp/src/sys/conf/files.amd64#3 integrate .. //depot/projects/netsmp/src/sys/conf/files.ia64#2 integrate .. //depot/projects/netsmp/src/sys/conf/kern.post.mk#2 integrate .. //depot/projects/netsmp/src/sys/conf/kern.pre.mk#2 integrate .. //depot/projects/netsmp/src/sys/conf/kmod.mk#2 integrate .. //depot/projects/netsmp/src/sys/contrib/pf/net/if_pfsync.c#5 integrate .. //depot/projects/netsmp/src/sys/contrib/pf/net/pf.c#3 integrate .. //depot/projects/netsmp/src/sys/contrib/pf/net/pf_ioctl.c#2 integrate .. //depot/projects/netsmp/src/sys/ddb/db_watch.c#2 integrate .. //depot/projects/netsmp/src/sys/ddb/ddb.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-raid.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-raid.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/bge/if_bge.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/cp/if_cp.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/ctau/if_ct.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/cx/if_cx.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_ed.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_ed_novell.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_ed_pccard.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_edreg.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_edvar.h#3 integrate .. //depot/projects/netsmp/src/sys/dev/hme/if_hme.c#9 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/access601.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/amd64-elf.raid.o.uu#1 branch .. //depot/projects/netsmp/src/sys/dev/hptmv/array.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/atapi.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/command.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/entry.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/global.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/gui_lib.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/hptintf.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/hptproc.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/i386-elf.raid.o.uu#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/ioctl.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/mv.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/mvOs.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/mvSata.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/mvStorageDev.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/osbsd.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/raid5n.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/readme.txt#2 integrate .. //depot/projects/netsmp/src/sys/dev/hptmv/vdevice.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/md/md.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/pccard/pccarddevs#3 integrate .. //depot/projects/netsmp/src/sys/dev/pccbb/pccbb.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/pci/pci.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/pci/pcivar.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/isa/sb16.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pci/csapcm.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/ac97.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/ac97.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/channel.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/channel.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/dsp.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/fake.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/feeder.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/feeder_fmt.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/sound.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/vchan.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/usb/uaudio.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/syscons/scmouse.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/syscons/scvidctl.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/twa/tw_osl_cam.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/twa/tw_osl_freebsd.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/twa/tw_osl_includes.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/twa/tw_osl_ioctl.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/twa/tw_osl_share.h#2 integrate .. //depot/projects/netsmp/src/sys/fs/hpfs/hpfs_vfsops.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/msdosfs/msdosfs_vfsops.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/ntfs/ntfs_vfsops.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/nullfs/null_vnops.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/udf/udf_vfsops.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/eli/g_eli.c#4 integrate .. //depot/projects/netsmp/src/sys/geom/geom.h#2 integrate .. //depot/projects/netsmp/src/sys/geom/geom_event.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_rm.c#3 integrate .. //depot/projects/netsmp/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#2 integrate .. //depot/projects/netsmp/src/sys/gnu/fs/ext2fs/fs.h#2 integrate .. //depot/projects/netsmp/src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#2 integrate .. //depot/projects/netsmp/src/sys/i386/conf/PAE#3 integrate .. //depot/projects/netsmp/src/sys/i386/i386/db_trace.c#3 integrate .. //depot/projects/netsmp/src/sys/i386/i386/pmap.c#7 integrate .. //depot/projects/netsmp/src/sys/i386/pci/pci_pir.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/conf/GENERIC#2 integrate .. //depot/projects/netsmp/src/sys/ia64/ia32/ia32_reg.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/ia32/ia32_signal.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/ia32/ia32_sigtramp.c#2 delete .. //depot/projects/netsmp/src/sys/ia64/ia64/db_interface.c#2 delete .. //depot/projects/netsmp/src/sys/ia64/ia64/db_machdep.c#1 branch .. //depot/projects/netsmp/src/sys/ia64/ia64/db_trace.c#3 delete .. //depot/projects/netsmp/src/sys/ia64/ia64/interrupt.c#3 integrate .. //depot/projects/netsmp/src/sys/ia64/ia64/machdep.c#3 integrate .. //depot/projects/netsmp/src/sys/ia64/ia64/mp_machdep.c#4 integrate .. //depot/projects/netsmp/src/sys/ia64/ia64/pmap.c#4 integrate .. //depot/projects/netsmp/src/sys/ia64/ia64/trap.c#3 integrate .. //depot/projects/netsmp/src/sys/ia64/ia64/vm_machdep.c#3 integrate .. //depot/projects/netsmp/src/sys/ia64/include/pmap.h#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_acl.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_cpu.c#5 integrate .. //depot/projects/netsmp/src/sys/kern/kern_exit.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_kse.c#3 integrate .. //depot/projects/netsmp/src/sys/kern/kern_lock.c#4 integrate .. //depot/projects/netsmp/src/sys/kern/kern_mutex.c#3 integrate .. //depot/projects/netsmp/src/sys/kern/kern_poll.c#4 integrate .. //depot/projects/netsmp/src/sys/kern/kern_shutdown.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_tc.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_timeout.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/subr_prf.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/subr_witness.c#8 integrate .. //depot/projects/netsmp/src/sys/kern/uipc_socket.c#4 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_mount.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_syscalls.c#2 integrate .. //depot/projects/netsmp/src/sys/modules/Makefile#4 integrate .. //depot/projects/netsmp/src/sys/modules/hptmv/Makefile#2 integrate .. //depot/projects/netsmp/src/sys/net/bpf.c#5 integrate .. //depot/projects/netsmp/src/sys/net/bpfdesc.h#4 integrate .. //depot/projects/netsmp/src/sys/net/if.c#14 integrate .. //depot/projects/netsmp/src/sys/net/if_bridge.c#9 integrate .. //depot/projects/netsmp/src/sys/net/if_ethersubr.c#8 integrate .. //depot/projects/netsmp/src/sys/net/rtsock.c#8 integrate .. //depot/projects/netsmp/src/sys/netgraph/ng_base.c#5 integrate .. //depot/projects/netsmp/src/sys/netgraph/ng_ksocket.c#3 integrate .. //depot/projects/netsmp/src/sys/netgraph/ng_pptpgre.c#3 integrate .. //depot/projects/netsmp/src/sys/netinet/if_ether.c#5 integrate .. //depot/projects/netsmp/src/sys/netinet/ip_carp.c#5 integrate .. //depot/projects/netsmp/src/sys/netinet/ip_fw2.c#5 integrate .. //depot/projects/netsmp/src/sys/netinet/tcp_subr.c#4 integrate .. //depot/projects/netsmp/src/sys/netinet6/in6.c#5 integrate .. //depot/projects/netsmp/src/sys/netinet6/in6_ifattach.c#3 integrate .. //depot/projects/netsmp/src/sys/netinet6/in6_pcb.c#3 integrate .. //depot/projects/netsmp/src/sys/netinet6/in6_var.h#8 integrate .. //depot/projects/netsmp/src/sys/netinet6/ip6_mroute.c#4 integrate .. //depot/projects/netsmp/src/sys/netinet6/ip6_output.c#6 integrate .. //depot/projects/netsmp/src/sys/netinet6/mld6.c#6 integrate .. //depot/projects/netsmp/src/sys/netinet6/nd6.c#6 integrate .. //depot/projects/netsmp/src/sys/netinet6/nd6_nbr.c#6 integrate .. //depot/projects/netsmp/src/sys/netipx/ipx_proto.c#2 integrate .. //depot/projects/netsmp/src/sys/netnatm/natm_proto.c#2 integrate .. //depot/projects/netsmp/src/sys/powerpc/powerpc/db_hwwatch.c#2 integrate .. //depot/projects/netsmp/src/sys/powerpc/powerpc/pmap.c#2 integrate .. //depot/projects/netsmp/src/sys/sparc64/sparc64/db_hwwatch.c#2 integrate .. //depot/projects/netsmp/src/sys/sparc64/sparc64/pmap.c#2 integrate .. //depot/projects/netsmp/src/sys/sys/acl.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/buf.h#3 integrate .. //depot/projects/netsmp/src/sys/sys/callout.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/iconv.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/kernel.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/ktr.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/sx.h#2 integrate .. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_softdep.c#4 integrate .. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_vfsops.c#4 integrate .. //depot/projects/netsmp/src/sys/ufs/ufs/ufs_vnops.c#2 integrate .. //depot/projects/netsmp/src/sys/vm/pmap.h#2 integrate .. //depot/projects/netsmp/src/sys/vm/uma_core.c#4 integrate .. //depot/projects/netsmp/src/sys/vm/vm_fault.c#2 integrate .. //depot/projects/netsmp/src/sys/vm/vm_map.c#3 integrate .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/hash1.0#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/hash1.0.stdout#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/hash2.0#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/hash2.0.stdout#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/hash3.0#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/hash3.0.stdout#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/return1.0#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/return2.1#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/builtins/return3.1#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/regress.sh#2 integrate .. //depot/projects/netsmp/src/tools/regression/bin/sh/set-e/for1.0#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/set-e/func1.0#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/set-e/func2.1#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/set-e/until3.0#1 branch .. //depot/projects/netsmp/src/tools/regression/bin/sh/set-e/while3.0#1 branch .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_create/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_create/fifo_create.c#1 branch .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_open/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_open/fifo_open.c#1 branch .. //depot/projects/netsmp/src/tools/regression/netinet/msocket_ifnet_remove/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/netinet/msocket_ifnet_remove/msocket_ifnet_remove.c#1 branch Differences ... ==== //depot/projects/netsmp/src/sys/alpha/alpha/db_trace.c#3 (text+ko) ==== @@ -42,7 +42,7 @@ #include /* RCS ID & Copyright macro defns */ /*__KERNEL_RCSID(0, "$NetBSD: db_trace.c,v 1.9 2000/12/13 03:16:36 mycroft Exp $");*/ -__FBSDID("$FreeBSD: src/sys/alpha/alpha/db_trace.c,v 1.24 2005/08/03 04:27:38 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/db_trace.c,v 1.25 2005/09/10 03:01:23 marcel Exp $"); #include #include @@ -100,11 +100,6 @@ }; -int db_md_set_watchpoint(db_expr_t addr, db_expr_t size); -int db_md_clr_watchpoint(db_expr_t addr, db_expr_t size); -void db_md_list_watchpoints(void); - - /* * Decode the function prologue for the function we're in, and note * which registers are stored where, and how large the stack frame is. ==== //depot/projects/netsmp/src/sys/alpha/alpha/pmap.c#2 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.178 2005/06/10 03:33:35 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.179 2005/09/03 18:20:18 alc Exp $"); #include #include @@ -1787,12 +1787,12 @@ * 2. Not wired. * 3. Read access. * 4. No page table pages. - * 6. Page IS managed. * but is *MUCH* faster than pmap_enter... */ vm_page_t -pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) +pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, + vm_page_t mpte) { register pt_entry_t *pte; int managed; ==== //depot/projects/netsmp/src/sys/amd64/amd64/db_trace.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.69 2005/08/27 16:03:39 jkoshy Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.70 2005/09/10 03:01:24 marcel Exp $"); #include #include @@ -202,9 +202,6 @@ int amd64_set_watch(int watchnum, unsigned int watchaddr, int size, int access, struct dbreg * d); int amd64_clr_watch(int watchnum, struct dbreg * d); -int db_md_set_watchpoint(db_expr_t addr, db_expr_t size); -int db_md_clr_watchpoint(db_expr_t addr, db_expr_t size); -void db_md_list_watchpoints(void); /* * Figure out how many arguments were passed into the frame at "fp". ==== //depot/projects/netsmp/src/sys/amd64/amd64/pmap.c#6 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.526 2005/08/26 05:18:46 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.528 2005/09/04 19:06:26 alc Exp $"); /* * Manages physical address maps. @@ -1872,6 +1872,7 @@ vm_paddr_t opa; pt_entry_t origpte, newpte; vm_page_t mpte, om; + boolean_t invlva; va = trunc_page(va); #ifdef PMAP_DIAGNOSTIC @@ -1935,14 +1936,6 @@ else if (!wired && (origpte & PG_W)) pmap->pm_stats.wired_count--; -#if defined(PMAP_DIAGNOSTIC) - if (pmap_nw_modified((pt_entry_t) origpte)) { - printf( - "pmap_enter: modified page not writable: va: 0x%lx, pte: 0x%lx\n", - va, origpte); - } -#endif - /* * Remove extra pte reference */ @@ -2014,17 +2007,30 @@ * to update the pte. */ if ((origpte & ~(PG_M|PG_A)) != newpte) { - if (origpte & PG_MANAGED) { + if (origpte & PG_V) { + invlva = FALSE; origpte = pte_load_store(pte, newpte | PG_A); - if ((origpte & PG_M) && pmap_track_modified(va)) - vm_page_dirty(om); - if (origpte & PG_A) - vm_page_flag_set(om, PG_REFERENCED); + if (origpte & PG_A) { + if (origpte & PG_MANAGED) + vm_page_flag_set(om, PG_REFERENCED); + if (opa != VM_PAGE_TO_PHYS(m) || ((origpte & + PG_NX) == 0 && (newpte & PG_NX))) + invlva = TRUE; + } + if (origpte & PG_M) { + KASSERT((origpte & PG_RW), + ("pmap_enter: modified page not writable:" + " va: 0x%lx, pte: 0x%lx", va, origpte)); + if ((origpte & PG_MANAGED) && + pmap_track_modified(va)) + vm_page_dirty(om); + if ((newpte & PG_RW) == 0) + invlva = TRUE; + } + if (invlva) + pmap_invalidate_page(pmap, va); } else pte_store(pte, newpte | PG_A); - if (origpte) { - pmap_invalidate_page(pmap, va); - } } vm_page_unlock_queues(); PMAP_UNLOCK(pmap); @@ -2036,12 +2042,12 @@ * 2. Not wired. * 3. Read access. * 4. No page table pages. - * 6. Page IS managed. * but is *MUCH* faster than pmap_enter... */ vm_page_t -pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) +pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, + vm_page_t mpte) { pt_entry_t *pte; vm_paddr_t pa; @@ -2130,6 +2136,8 @@ pmap->pm_stats.resident_count++; pa = VM_PAGE_TO_PHYS(m); + if ((prot & VM_PROT_EXECUTE) == 0) + pa |= pg_nx; /* * Now validate mapping with RO protection ==== //depot/projects/netsmp/src/sys/amd64/conf/GENERIC#3 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.441 2005/07/24 17:55:57 mux Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.442 2005/09/08 03:29:18 scottl Exp $ machine amd64 cpu HAMMER @@ -130,6 +130,7 @@ device arcmsr # Areca SATA II RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options +device hptmv # Highpoint RocketRAID 182x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID ==== //depot/projects/netsmp/src/sys/amd64/conf/NOTES#3 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.41 2005/07/22 16:02:40 ru Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.42 2005/09/08 03:29:18 scottl Exp $ # # @@ -278,7 +278,7 @@ # # Highpoint RocketRAID 182x. This is really just software RAID on a # Marvell SATA chip. -#device hptmv # Broken, i386-only binary. +device hptmv # # IBM (now Adaptec) ServeRAID controllers ==== //depot/projects/netsmp/src/sys/arm/arm/db_trace.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/db_trace.c,v 1.11 2005/08/03 04:27:38 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/db_trace.c,v 1.12 2005/09/10 03:01:24 marcel Exp $"); #include #include @@ -51,9 +51,6 @@ #define INKERNEL(va) (((vm_offset_t)(va)) >= VM_MIN_KERNEL_ADDRESS) -int db_md_set_watchpoint(db_expr_t addr, db_expr_t size); -int db_md_clr_watchpoint(db_expr_t addr, db_expr_t size); -void db_md_list_watchpoints(void); /* * APCS stack frames are awkward beasts, so I don't think even trying to use * a structure to represent them is a good idea. ==== //depot/projects/netsmp/src/sys/arm/arm/pmap.c#2 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.36 2005/06/23 11:37:41 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.37 2005/09/03 18:20:18 alc Exp $"); #include #include #include @@ -3536,19 +3536,19 @@ * 2. Not wired. * 3. Read access. * 4. No page table pages. - * 6. Page IS managed. * but is *MUCH* faster than pmap_enter... */ vm_page_t -pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) +pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, + vm_page_t mpte) { vm_page_busy(m); vm_page_unlock_queues(); VM_OBJECT_UNLOCK(m->object); mtx_lock(&Giant); - pmap_enter(pmap, va, m, VM_PROT_READ|VM_PROT_EXECUTE, FALSE); + pmap_enter(pmap, va, m, prot & (VM_PROT_READ | VM_PROT_EXECUTE), FALSE); pmap_idcache_wbinv_all(pmap); mtx_unlock(&Giant); VM_OBJECT_LOCK(m->object); ==== //depot/projects/netsmp/src/sys/conf/Makefile.amd64#2 (text+ko) ==== @@ -2,7 +2,7 @@ # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 # from FreeBSD: src/sys/conf/Makefile.i386,v 1.255 2002/02/20 23:35:49 -# $FreeBSD: src/sys/conf/Makefile.amd64,v 1.16 2005/04/13 14:49:57 imp Exp $ +# $FreeBSD: src/sys/conf/Makefile.amd64,v 1.17 2005/09/07 17:38:46 obrien Exp $ # # Makefile for FreeBSD # @@ -32,7 +32,7 @@ .include "$S/conf/kern.pre.mk" DDB_ENABLED!= grep DDB opt_ddb.h || true -.if ${DDB_ENABLED} != "" +.if !empty(DDB_ENABLED) CFLAGS+= -fno-omit-frame-pointer .endif ==== //depot/projects/netsmp/src/sys/conf/Makefile.powerpc#2 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.powerpc -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.powerpc,v 1.277 2005/04/13 14:49:57 imp Exp $ +# $FreeBSD: src/sys/conf/Makefile.powerpc,v 1.278 2005/09/07 17:38:46 obrien Exp $ # # Makefile for FreeBSD # @@ -33,7 +33,7 @@ CFLAGS+= -msoft-float DDB_ENABLED!= grep DDB opt_ddb.h || true -.if ${DDB_ENABLED} != "" +.if !empty(DDB_ENABLED) CFLAGS+= -fno-omit-frame-pointer .endif ==== //depot/projects/netsmp/src/sys/conf/files#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1042 2005/08/26 12:48:34 takawata Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1047 2005/09/11 03:38:18 obrien Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -111,14 +111,20 @@ coda/coda_vfsops.c optional vcoda coda/coda_vnops.c optional vcoda compat/linprocfs/linprocfs.c optional linprocfs -contrib/altq/altq/altq_cbq.c optional altq +contrib/altq/altq/altq_cbq.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/altq/altq/altq_cdnr.c optional altq -contrib/altq/altq/altq_hfsc.c optional altq -contrib/altq/altq/altq_priq.c optional altq -contrib/altq/altq/altq_red.c optional altq -contrib/altq/altq/altq_rio.c optional altq +contrib/altq/altq/altq_hfsc.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/altq/altq/altq_priq.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/altq/altq/altq_red.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/altq/altq/altq_rio.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/altq/altq/altq_rmclass.c optional altq -contrib/altq/altq/altq_subr.c optional altq +contrib/altq/altq/altq_subr.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/dev/acpica/dbcmds.c optional acpi acpi_debug contrib/dev/acpica/dbdisply.c optional acpi acpi_debug contrib/dev/acpica/dbexec.c optional acpi acpi_debug @@ -240,51 +246,96 @@ contrib/dev/acpica/utmisc.c optional acpi contrib/dev/acpica/utobject.c optional acpi contrib/dev/acpica/utxface.c optional acpi -contrib/dev/ath/freebsd/ah_osdep.c optional ath_hal -contrib/ipfilter/netinet/fil.c optional ipfilter inet -contrib/ipfilter/netinet/ip_auth.c optional ipfilter inet -contrib/ipfilter/netinet/ip_fil_freebsd.c optional ipfilter inet -contrib/ipfilter/netinet/ip_frag.c optional ipfilter inet -contrib/ipfilter/netinet/ip_log.c optional ipfilter inet -contrib/ipfilter/netinet/ip_nat.c optional ipfilter inet -contrib/ipfilter/netinet/ip_proxy.c optional ipfilter inet -contrib/ipfilter/netinet/ip_state.c optional ipfilter inet -contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet -contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet -contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet -contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet -contrib/ipfilter/netinet/mlfk_ipl.c optional ipfilter inet -contrib/ngatm/netnatm/api/cc_conn.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_data.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_dump.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_port.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_sig.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_user.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/unisap.c optional ngatm_ccatm -contrib/ngatm/netnatm/misc/straddr.c optional ngatm_atmbase -contrib/ngatm/netnatm/misc/unimsg_common.c optional ngatm_atmbase -contrib/ngatm/netnatm/msg/traffic.c optional ngatm_atmbase -contrib/ngatm/netnatm/msg/uni_ie.c optional ngatm_atmbase -contrib/ngatm/netnatm/msg/uni_msg.c optional ngatm_atmbase -contrib/ngatm/netnatm/saal/saal_sscfu.c optional ngatm_sscfu -contrib/ngatm/netnatm/saal/saal_sscop.c optional ngatm_sscop -contrib/ngatm/netnatm/sig/sig_call.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_coord.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_party.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_print.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_reset.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_uni.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_unimsgcpy.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni -contrib/pf/net/if_pflog.c optional pflog -contrib/pf/net/if_pfsync.c optional pfsync -contrib/pf/net/pf.c optional pf -contrib/pf/net/pf_if.c optional pf -contrib/pf/net/pf_subr.c optional pf -contrib/pf/net/pf_ioctl.c optional pf -contrib/pf/net/pf_norm.c optional pf -contrib/pf/net/pf_table.c optional pf -contrib/pf/net/pf_osfp.c optional pf +contrib/dev/ath/freebsd/ah_osdep.c optional ath_hal \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" +contrib/ipfilter/netinet/fil.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_auth.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_fil_freebsd.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_frag.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_log.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_nat.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_proxy.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/mlfk_ipl.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ngatm/netnatm/api/cc_conn.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_data.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_dump.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_port.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_sig.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_user.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/unisap.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/misc/straddr.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/misc/unimsg_common.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/msg/traffic.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/msg/uni_ie.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/msg/uni_msg.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/saal/saal_sscfu.c optional ngatm_sscfu \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/saal/saal_sscop.c optional ngatm_sscop \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_call.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_coord.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_party.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_print.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_reset.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_uni.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_unimsgcpy.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/pf/net/if_pflog.c optional pflog \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/if_pfsync.c optional pfsync \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_if.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_subr.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_ioctl.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_norm.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_table.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_osfp.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/pf/netinet/in4_cksum.c optional pf inet crypto/blowfish/bf_ecb.c optional ipsec ipsec_esp crypto/blowfish/bf_skey.c optional crypto @@ -430,10 +481,13 @@ dev/ata/atapi-fd.c optional atapifd dev/ata/atapi-tape.c optional atapist dev/ath/ath_rate/amrr/amrr.c optional ath_rate_amrr -dev/ath/ath_rate/onoe/onoe.c optional ath_rate_onoe +dev/ath/ath_rate/onoe/onoe.c optional ath_rate_onoe \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" dev/ath/ath_rate/sample/sample.c optional ath_rate_sample -dev/ath/if_ath.c optional ath -dev/ath/if_ath_pci.c optional ath pci +dev/ath/if_ath.c optional ath \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" +dev/ath/if_ath_pci.c optional ath pci \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" dev/awi/am79c930.c optional awi dev/awi/awi.c optional awi dev/awi/if_awi_pccard.c optional awi pccard @@ -859,11 +913,16 @@ dev/syscons/warp/warp_saver.c optional warp_saver dev/tdfx/tdfx_pci.c optional tdfx pci dev/trm/trm.c optional trm -dev/twa/tw_cl_fwimg.c optional twa -dev/twa/tw_cl_init.c optional twa -dev/twa/tw_cl_intr.c optional twa -dev/twa/tw_cl_io.c optional twa -dev/twa/tw_cl_misc.c optional twa +dev/twa/tw_cl_fwimg.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" +dev/twa/tw_cl_init.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" +dev/twa/tw_cl_intr.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" +dev/twa/tw_cl_io.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" +dev/twa/tw_cl_misc.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" dev/twa/tw_osl_cam.c optional twa dev/twa/tw_osl_freebsd.c optional twa dev/twe/twe.c optional twe @@ -1506,12 +1565,17 @@ netatm/uni/unisig_vc_state.c optional atm_uni atm_core netgraph/atm/atmpif/ng_atmpif.c optional netgraph_atm_atmpif netgraph/atm/atmpif/ng_atmpif_harp.c optional netgraph_atm_atmpif -netgraph/atm/ccatm/ng_ccatm.c optional ngatm_ccatm +netgraph/atm/ccatm/ng_ccatm.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/atm/ng_atm.c optional ngatm_atm -netgraph/atm/ngatmbase.c optional ngatm_atmbase -netgraph/atm/sscfu/ng_sscfu.c optional ngatm_sscfu -netgraph/atm/sscop/ng_sscop.c optional ngatm_sscop -netgraph/atm/uni/ng_uni.c optional ngatm_uni +netgraph/atm/ngatmbase.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +netgraph/atm/sscfu/ng_sscfu.c optional ngatm_sscfu \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +netgraph/atm/sscop/ng_sscop.c optional ngatm_sscop \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +netgraph/atm/uni/ng_uni.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/bluetooth/common/ng_bluetooth.c optional netgraph_bluetooth netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c optional netgraph_bluetooth_bt3c netgraph/bluetooth/drivers/h4/ng_h4.c optional netgraph_bluetooth_h4 @@ -1584,7 +1648,8 @@ netinet/ip_gre.c optional gre inet netinet/ip_id.c optional inet netinet/in_pcb.c optional inet -netinet/in_proto.c optional inet +netinet/in_proto.c optional inet \ + compile-with "${NORMAL_C} -I$S/contrib/pf" netinet/in_rmx.c optional inet netinet/ip_divert.c optional ipdivert netinet/ip_dummynet.c optional dummynet ==== //depot/projects/netsmp/src/sys/conf/files.amd64#3 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.75 2005/07/21 21:57:31 peter Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.76 2005/09/08 03:29:18 scottl Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -68,6 +68,11 @@ no-implicit-rule no-obj before-depend \ clean "os+%DIKED-nve.h" # +hptmvraid.o optional hptmv \ + dependency "$S/dev/hptmv/amd64-elf.raid.o.uu" \ + compile-with "uudecode < $S/dev/hptmv/amd64-elf.raid.o.uu" \ + no-implicit-rule +# amd64/acpica/OsdEnvironment.c optional acpi amd64/acpica/acpi_machdep.c optional acpi amd64/acpica/acpi_wakeup.c optional acpi @@ -157,6 +162,11 @@ dev/fdc/fdc_acpi.c optional fdc dev/fdc/fdc_isa.c optional fdc isa dev/fdc/fdc_pccard.c optional fdc pccard +dev/hptmv/entry.c optional hptmv +dev/hptmv/mv.c optional hptmv +dev/hptmv/gui_lib.c optional hptmv +dev/hptmv/hptproc.c optional hptmv +dev/hptmv/ioctl.c optional hptmv dev/hwpmc/hwpmc_amd.c optional hwpmc dev/hwpmc/hwpmc_piv.c optional hwpmc dev/hwpmc/hwpmc_x86.c optional hwpmc ==== //depot/projects/netsmp/src/sys/conf/files.ia64#2 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.ia64,v 1.81 2005/06/30 07:49:21 peter Exp $ +# $FreeBSD: src/sys/conf/files.ia64,v 1.83 2005/09/10 03:18:51 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -91,14 +91,12 @@ ia64/disasm/disasm_format.c standard ia64/ia32/ia32_reg.c optional compat_ia32 ia64/ia32/ia32_signal.c optional compat_ia32 -ia64/ia32/ia32_sigtramp.c optional compat_ia32 ia64/ia32/ia32_trap.c optional compat_ia32 ia64/ia64/autoconf.c standard ia64/ia64/busdma_machdep.c standard ia64/ia64/clock.c standard ia64/ia64/context.S standard -ia64/ia64/db_interface.c optional ddb -ia64/ia64/db_trace.c optional ddb +ia64/ia64/db_machdep.c optional ddb ia64/ia64/dump_machdep.c standard ia64/ia64/efi.c standard ia64/ia64/elf_machdep.c standard ==== //depot/projects/netsmp/src/sys/conf/kern.post.mk#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.post.mk,v 1.83 2005/06/09 05:38:18 imp Exp $ +# $FreeBSD: src/sys/conf/kern.post.mk,v 1.84 2005/09/11 00:22:21 obrien Exp $ # Part of a unified Makefile for building kernels. This part includes all # the definitions that need to be after all the % directives except %RULES @@ -63,12 +63,7 @@ .endif .endif -.if !defined(DEBUG) -FULLKERNEL= ${KERNEL_KO} -.else -FULLKERNEL= ${KERNEL_KO}.debug -${KERNEL_KO}: ${FULLKERNEL} - ${OBJCOPY} --strip-debug ${FULLKERNEL} ${KERNEL_KO} +.if defined(DEBUG) install.debug reinstall.debug: gdbinit cd ${.CURDIR}; ${MAKE} -DINSTALL_DEBUG ${.TARGET:R} @@ -83,7 +78,7 @@ .endif .endif -${FULLKERNEL}: ${SYSTEM_DEP} vers.o +${KERNEL_KO}: ${SYSTEM_DEP} vers.o @rm -f ${.TARGET} @echo linking ${.TARGET} ${SYSTEM_LD} @@ -109,7 +104,7 @@ kernel-clean: rm -f *.o *.so *.So *.ko *.s eddep errs \ - ${FULLKERNEL} ${KERNEL_KO} linterrs makelinks tags vers.c \ + ${KERNEL_KO} linterrs makelinks tags vers.c \ vnode_if.c vnode_if.h vnode_if_newproto.h vnode_if_typedef.h \ ${MFILES:T:S/.m$/.c/} ${MFILES:T:S/.m$/.h/} \ ${CLEAN} @@ -186,7 +181,7 @@ .endif kernel-install: - @if [ ! -f ${FULLKERNEL} ] ; then \ + @if [ ! -f ${KERNEL_KO} ] ; then \ echo "You must build a kernel first." ; \ exit 1 ; \ fi @@ -205,19 +200,11 @@ fi .endif mkdir -p ${DESTDIR}${KODIR} -.if defined(DEBUG) && defined(INSTALL_DEBUG) - ${INSTALL} -p -m 555 -o root -g wheel ${FULLKERNEL} ${DESTDIR}${KODIR} -.else ${INSTALL} -p -m 555 -o root -g wheel ${KERNEL_KO} ${DESTDIR}${KODIR} -.endif kernel-reinstall: @-chflags -R noschg ${DESTDIR}${KODIR} -.if defined(DEBUG) && defined(INSTALL_DEBUG) - ${INSTALL} -p -m 555 -o root -g wheel ${FULLKERNEL} ${DESTDIR}${KODIR} -.else ${INSTALL} -p -m 555 -o root -g wheel ${KERNEL_KO} ${DESTDIR}${KODIR} -.endif config.o env.o hints.o vers.o vnode_if.o: ${NORMAL_C} ==== //depot/projects/netsmp/src/sys/conf/kern.pre.mk#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.65 2005/04/13 14:49:57 imp Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.71 2005/09/11 07:33:43 obrien Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -55,6 +55,14 @@ # ... and the same for altq INCLUDES+= -I$S/contrib/altq +# ... and the same for Atheros HAL when the author builds it from +# non-distributable sources. +.if defined(ATH_BUILDING_FROM_SOURCE) +INCLUDES+= -I$S/contrib/dev/ath +.endif + +.if make(depend) || make(kernel-depend) + # ... and the same for ipfilter INCLUDES+= -I$S/contrib/ipfilter @@ -62,7 +70,7 @@ INCLUDES+= -I$S/contrib/pf # ... and the same for Atheros HAL -INCLUDES+= -I$S/contrib/dev/ath -I$S/contrib/dev/ath/freebsd +INCLUDES+= -I$S/contrib/dev/ath/freebsd # ... and the same for the NgATM stuff INCLUDES+= -I$S/contrib/ngatm @@ -70,6 +78,8 @@ # .. and the same for twa INCLUDES+= -I$S/dev/twa +.endif + CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} CFLAGS+= ${INCLUDES} -D_KERNEL -include opt_global.h .if ${CC} != "icc" ==== //depot/projects/netsmp/src/sys/conf/kmod.mk#2 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 -# $FreeBSD: src/sys/conf/kmod.mk,v 1.192 2005/04/22 17:39:58 ru Exp $ +# $FreeBSD: src/sys/conf/kmod.mk,v 1.193 2005/09/07 17:38:46 obrien Exp $ # # The include file handles building and installing loadable # kernel modules. @@ -331,7 +331,7 @@ .endfor # _ext .endfor # _srcsrc -.if ${SRCS:Mvnode_if.c} != "" +.if !empty(SRCS:Mvnode_if.c) CLEANFILES+= vnode_if.c .if !exists(@) vnode_if.c: @ @@ -341,7 +341,7 @@ ${AWK} -f @/tools/vnode_if.awk @/kern/vnode_if.src -c .endif -.if ${SRCS:Mvnode_if.h} != "" +.if !empty(SRCS:Mvnode_if.h) CLEANFILES+= vnode_if.h vnode_if_newproto.h vnode_if_typedef.h .if !exists(@) vnode_if.h vnode_if_newproto.h vnode_if_typedef.h: @ @@ -358,7 +358,7 @@ .endif .for _i in mii pccard -.if ${SRCS:M${_i}devs.h} != "" +.if !empty(SRCS:M${_i}devs.h) CLEANFILES+= ${_i}devs.h .if !exists(@) ${_i}devs.h: @ @@ -369,7 +369,7 @@ .endif .endfor # _i -.if ${SRCS:Musbdevs.h} != "" +.if !empty(SRCS:Musbdevs.h) CLEANFILES+= usbdevs.h .if !exists(@) usbdevs.h: @ @@ -379,7 +379,7 @@ ${AWK} -f @/tools/usbdevs2h.awk @/dev/usb/usbdevs -h .endif -.if ${SRCS:Musbdevs_data.h} != "" +.if !empty(SRCS:Musbdevs_data.h) CLEANFILES+= usbdevs_data.h .if !exists(@) usbdevs_data.h: @ @@ -389,7 +389,7 @@ ${AWK} -f @/tools/usbdevs2h.awk @/dev/usb/usbdevs -d .endif -.if ${SRCS:Macpi_quirks.h} != "" +.if !empty(SRCS:Macpi_quirks.h) CLEANFILES+= acpi_quirks.h .if !exists(@) acpi_quirks.h: @ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Sep 11 17:03:09 2005 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 A1C9416A421; Sun, 11 Sep 2005 17:03:08 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6121F16A41F for ; Sun, 11 Sep 2005 17:03:08 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 27EB643D45 for ; Sun, 11 Sep 2005 17:03:08 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8BH38qZ060122 for ; Sun, 11 Sep 2005 17:03:08 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BH37vI060119 for perforce@freebsd.org; Sun, 11 Sep 2005 17:03:07 GMT (envelope-from soc-chenk@freebsd.org) Date: Sun, 11 Sep 2005 17:03:07 GMT Message-Id: <200509111703.j8BH37vI060119@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 83407 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, 11 Sep 2005 17:03:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=83407 Change 83407 by soc-chenk@soc-chenk_leavemealone on 2005/09/11 17:02:51 First "complete" version Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/Makefile#1 add .. //depot/projects/soc2005/fuse4bsd2/README#1 add .. //depot/projects/soc2005/fuse4bsd2/fuse_module/Makefile#1 add .. //depot/projects/soc2005/fuse4bsd2/fuse_module/Makefile-5.4#1 add .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fmaster.c#1 add .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#1 add .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#1 add .. //depot/projects/soc2005/fuse4bsd2/fuse_module/kernel-header.diff#1 add .. //depot/projects/soc2005/fuse4bsd2/fuse_module/linux_compat.h#1 add .. //depot/projects/soc2005/fuse4bsd2/fuselib/fusermount.c#1 add .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/Makefile#1 add .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#1 add .. //depot/projects/soc2005/fuse4bsd2/tools/fuse-structs.yml#1 add .. //depot/projects/soc2005/fuse4bsd2/tools/fuse_vfsemu.rb#1 add .. //depot/projects/soc2005/fuse4bsd2/tools/genopnames.awk#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Sep 11 17:08:15 2005 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 6973616A421; Sun, 11 Sep 2005 17:08:15 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2A58B16A41F for ; Sun, 11 Sep 2005 17:08:15 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C6E7A43D46 for ; Sun, 11 Sep 2005 17:08:14 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8BH8ErZ060298 for ; Sun, 11 Sep 2005 17:08:14 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BH8E3c060295 for perforce@freebsd.org; Sun, 11 Sep 2005 17:08:14 GMT (envelope-from soc-chenk@freebsd.org) Date: Sun, 11 Sep 2005 17:08:14 GMT Message-Id: <200509111708.j8BH8E3c060295@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 83408 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, 11 Sep 2005 17:08:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=83408 Change 83408 by soc-chenk@soc-chenk_leavemealone on 2005/09/11 17:07:48 Code state tagged as "version 0.01.1 Affected files ... .. //depot/projects/soc2005/fuse4bsd2/COPYRIGHT#1 add .. //depot/projects/soc2005/fuse4bsd2/Changelog#1 add .. //depot/projects/soc2005/fuse4bsd2/README#2 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/Makefile#2 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#2 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse_subr.c#1 add .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#2 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/README#2 (text+ko) ==== @@ -1,21 +1,162 @@ -This is a FreeBSD kernel module to support the Fuse userspace virtual -filesystem framework (http://fuse.sourceforge.net). +Fuse module for FreeBSD. + +Fuse is an userspace filesystem framework, originally for Linux, +see http://fuse.sourceforge.net. + +This distributions contains a port of Fuse to FreeBSD. + +Mainly this consists of writing a compatible kernel module for FreeBSD. +The userspace part is pretty portable. You'll find here a patch to get +that compiled, and brief instruvctions to get that running. + +The module was written for and tested with CURRENT, aka FreeBSD-7.0. +I'd guess it will work fine with RELENG 6 too, but currently its not usable +with 5.x (or lower) versions. + +Waht can be considered as a public homepage for the project is + + http://wikitest.freebsd.org/moin.cgi/FuseFilesystem + +see updtates, further info there. Get in contact with me at +soc-chenk@freebsd.org. + +Installation + +I'll describe here the installation of the core Fuse components and a Fuse +based filesystem, sshfs, which lets you mount a machine remotely by means +of an ssh conncetion. + +I'll describe a non-privileged installation. + +Downloads + +You need to get a bunch of things. + + * Fuse itself. Get Fuse 2.4.0-pre1 from their homepage, + http://fuse.sourceforge.net + + * This module. The latest version is available via Darcs, you can fetch it by + the + + darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd + + command. These instructions are appropriate for the version in place (with + which this README ships). + + * Fuse sshfs. The latest release (1.2) will do, fetch the sshfs-fuse package from + [WWW]http://sourceforge.net/projects/fuse. + +Compilation + +Let's start with the module. + + * From your Fuse distribuiton copy over kernel/fuse_kernel.h as + fuse_module/fuse_kernel.h.orig. + + * Type make. If you want normal quantity of debug output, use + DEBUG2G=1, if you want tons of debug output, use DEBUG=1. + +Now go for the fuse userspace. + + * We will assume that you have my module at ../fuse4bsd + + * Apply the patch with + + patch -Np1 < ../fuse4bsd/fuselib/fuselib-2.4.0-pre1.diff + + * Do + + cp ../fuse4bsd/fuselib/fusermount.c util/ && + cp ../fuse4bsd/fuse_module/fuse_kernel.h include/ && + cp ../fuse4bsd/fuse_module/linux_compat.h include/ + + (the first command replaces fusermount.c with a trimmed down version + without the mount support code, and the other two dynamically customize the + header file defining the kernel-userland interface; as these are needed in + the module as well, they are handled separately from the userspace patch). + + * We will do a non-privileged install, I'll use ~/meta/fuse-2.4.0-pre1 as the + prefix. Configure fuse with + + /configure --prefix ~/meta/fuse-2.4.0-pre1 --disable-kernel-module MOUNT_FUSE_PATH=/tmp + + * Now type + + make && + ln -s /usr/bin/true chown && + ln -s /usr/bin/true mknod && + ln -s /usr/bin/true chmod && + env PATH=`pwd`:$PATH make install + + +You have successfully installed fuse libs. Go on to sshfs. + + * Edit sshfs.c: add a #include line to its includes. + + * Type + env PKG_CONFIG_PATH=~/meta/fuse-2.4.0-pre1/lib/pkgconfig/ ./configure && + make + +Congratulations, you have all components prepared! + +In the following, you'll need to act as superuser, or enable the vfs.usermount +sysctl. + +First, of course, load fuse_module/fuse.ko (for this you definitely need to be a +superuser). + +Then pick your favourite ssh accessible account (though maybe you'd better +stick to servers running OpenSSH -- I've seen commits in sshfs' CVS for better +interoperability with other servers, which show there might occur problems with +them), say, it's foo@bar.baz. + +Firing up a Fuse daemon + +... sshfs, more concretely. + +Go to sshfs' directory. Type something along the following line: + +env PATH=$PATH:~csaba/meta/fuse-2.4.0-pre1/bin/ \ + LD_LIBRARY_PATH=~csaba/meta/fuse-2.4.0-pre1/lib/ \ + ./sshfs foo@bar.baz / -d + +Note that common Fuse arguments include the mountpoint -- in our case, that's +just ignored, but required nevertheless --, and "-d" which doesn't let the +daemon fork to background and enables debug messages. + +Mounting a Fuse filesystem + +Mounting is nnpfs style, in contrast to Linux Fuse style. + +In Linux, when you start a Fuse daemon, it first connects to the (unique) Fuse +device, and then calls the mount system call with the appropriate parameters, +so as a user, you can't separate the stages of Fuse mounting. + +In FreeBSD, you first start the daemon as above, then it gets a shiny fresh new +dedicated fuse device (like /dev/fuse0), and you have to do the mounting +manually, like + +mount_fusefs /dev/fuse0 /mnt/fuse + +(Find mount_fusefs in the mount_fusefs/ subdir of the fuse4bsd source tree. +If you run it without arguments, it prints the available options.) + +You can ask: how to find out the device number? If you start your first daemon, +by all chance it will be /dev/fuse0. But in general, you can do a fstat /dev/ +fuse* to see which device is in use. -It's not yet ready, but you can test those parts which has already been -completed. +If you mounted it successfully, you can use the filesystem. -See http://wikitest.freebsd.org/moin.cgi/FuseFilesystem for more info. +It supports common POSIX fucntionality (mmap is read-only). -Some of the stuff needed for compiling the userspace component for -FreeBSD (those ones namely which don't require active development, just -synchronization with Fuse sources from time to time) are available from +When you finished, umount it with the "-f" siwtch. -http://creo.hu/~csaba/projects/fuse4bsd +It's a bug that you have to use that, but harmless... in the 95% +percent of cases. If you had intensive I/O which has been interrupted, +then there will remain dirty buffers, and in this case forced umount +may result in a panic. -The latest version of this module is available from the FreeBSD Perforce -server (htpp://perforce.freebsd.org) at the path -//depot/projects/soc2005/fuse4bsd/, and by Darcs, via the +Any feedbakc is highly welcome. -darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd +Csaba Henk -command. ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -SRCS=fuse.c +SRCS=fuse.c fuse_subr.c .if defined(FMASTER) SRCS+= fmaster.c ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#2 (text+ko) ==== @@ -21,7 +21,6 @@ #include #include /* pathconf */ #include /* open */ -//#include /* open */ #include /* open */ #include /* open */ #include /* readdir */ @@ -32,13 +31,7 @@ #include #include -//#include #include -//#include -//#include -//#include -//#include -//extern int vnode_pbuf_freecnt; #include "fuse.h" @@ -1186,7 +1179,7 @@ if (! fdip->tick) fdip->tick = ticket_fetch(fdip->data); - FUSE_DIMALLOC2(&fdip->tick->msgn.msg, fdip->finh, fdip->indata, fdip->iosize); + FUSE_DIMALLOC(&fdip->tick->msgn.msg, fdip->finh, fdip->indata, fdip->iosize); fuse_setup_ihead(fdip->finh, fdip->tick, nid, op, td, cred); } @@ -1353,6 +1346,11 @@ int err = 0; DEBUG("sending FORGET with %llu lookups\n", nlookup); +#if 0 & _DEBUG2G + DEBUG2G("=============>\n"); + kdb_backtrace(); + DEBUG2G("<=============\n"); +#endif fdip->iosize = sizeof(*ffi); if (fdip->tick) { @@ -1457,6 +1455,7 @@ .vfs_root = fuse_root, .vfs_statfs = fuse_statfs, //.vfs_vget = fuse_vget, + //.vfs_sync = vfs_stdsync, }; #if __FreeBSD_version >= 600000 @@ -1623,9 +1622,24 @@ return (ENXIO); } - MALLOC(fmnt, struct fuse_mnt_data *, sizeof(*fmnt), M_FUSEFS, M_WAITOK); + MALLOC(fmnt, struct fuse_mnt_data *, sizeof(*fmnt), M_FUSEFS, M_WAITOK| M_ZERO); fmnt->fdev = fdev; + vfs_flagopt(opts, "allow_other", &fmnt->mntopts, FUSEFS_DAEMON_CAN_SPY); + if (fmnt->mntopts & FUSEFS_DAEMON_CAN_SPY && suser(td)) { + uprintf("only root can use \"allow_other\"\n"); + free(fmnt, M_FUSEFS); + return (EPERM); + } + vfs_flagopt(opts, "direct_io", &fmnt->mntopts, FUSEFS_DIRECTIO); + vfs_flagopt(opts, "kernel_cache", &fmnt->mntopts, FUSEFS_KEEPCACHE); +#if ! REALTIME_TRACK_UNPRIVPROCDBG + fmnt->mntopts &= ~FUSEFS_UNPRIVPROCDBG; + fmnt->mntopts |= get_unprivileged_proc_debug(td) ? FUSEFS_UNPRIVPROCDBG : 0; +#endif + + DEBUG2G("mntopts 0x%x\n", fmnt->mntopts); + sx_slock(slock); /* Sanity + permission checks */ @@ -1644,7 +1658,7 @@ } if ((! err) && suser(td)) { - if (td->td_ucred->cr_ruid != data->daemoncred->cr_ruid) { + if (td->td_ucred->cr_uid != data->daemoncred->cr_uid) { err = EPERM; uprintf("attempt to mount other user's daemon\n"); } @@ -1729,7 +1743,10 @@ flags |= FORCECLOSE; #if _DEBUG - vn_printf(((struct fuse_mnt_data *)mp->mnt_data)->rvp, DEBLABEL "root node before execution\n"); + //vn_printf(((struct fuse_mnt_data *)mp->mnt_data)->rvp, DEBLABEL "root node before execution\n"); + DEBUG2G("=============>\n"); + kdb_backtrace(); + DEBUG2G("<=============\n"); #endif /* Flush files -> vflush */ /* There is 1 extra root vnode reference (mp->mnt_data). */ @@ -1890,6 +1907,7 @@ } + /****************** * * >>> Vnode ops @@ -1990,6 +2008,12 @@ struct thread *td = ap->a_td; DEBUG("pfft...\n"); +#if _DEBUG + DEBUG2G("=============>\n"); + kdb_backtrace(); + vn_printf(vp, " "); + DEBUG2G("<=============\n"); +#endif fuse_filehandle_gc(vp, td, NULL); vnode_destroy_vobject(vp); return (fuse_recyc_backend(vp, td)); @@ -2004,6 +2028,12 @@ int err; DEBUG("getting at vnode of ino %d\n", VTOI(vp)); +#if _DEBUG + DEBUG2G("=============>\n"); + kdb_backtrace(); + vn_printf(vp, " "); + DEBUG2G("<=============\n"); +#endif fuse_filehandle_gc(vp, td, NULL); @@ -2107,37 +2137,43 @@ struct ucred *cred = ap->a_cred; struct thread *td = ap->a_td; + struct fuse_mnt_data *fmnt = vp->v_mount->mnt_data; struct fuse_dispatcher fdi; int err = 0; if ((err = fdisp_simple_putget(&fdi, FUSE_GETATTR, vp, td, cred))) return (err); - - /* XXX we discard timeout related info, * just go for the attributes */ fat2vat(vp->v_mount, &((struct fuse_attr_out *)fdi.answ)->attr, vap); ticket_drop(fdi.tick); -#if ! DAEMON_CAN_SPY - /* The default policy is to forbid a user from using the filesystem, - * if she is *more* privileged than the daemon. This is to protect - * the power user from the daemon spying on her I/O operations. - * Yes, it is a crude and blunt protection... - * XXX there should be a sysctl interface to this. Ideally not just a - * "daemon can spy bit", but some clever data which determines in a - * compact but flexible way whose daemon can spy on whom. - */ + if (! (fmnt->mntopts & FUSEFS_DAEMON_CAN_SPY)) { + /* The policy is to forbid a user from using the filesystem, + * if she is *more* privileged than the daemon. This is to protect + * the power user from the daemon spying on her I/O operations. + * Yes, it is a crude and blunt protection... + * XXX there should be a sysctl interface to this. Ideally not just a + * "daemon can spy bit", but some clever data which determines in a + * compact but flexible way whose daemon can spy on whom. + */ - if (cr_cansee(fusedev_get_data(fdi.fdev)->daemoncred, cred)) { - sx_sunlock(fdi.slock); - uprintf("Your access is blocked in order to prevent the fuse daemon spying on you\n"); - return (EPERM); + //DEBUG2G("mntopts 0x%x\n", ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->mntopts); + if (cr_candebug( +#if REALTIME_TRACK_UNPRIVPROCDBG + get_unprivileged_proc_debug(td), +#else + ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->mntopts & FUSEFS_UNPRIVPROCDBG, +#endif + fusedev_get_data(fdi.fdev)->daemoncred, cred)) + { + sx_sunlock(fdi.slock); + uprintf("Your access is blocked in order to prevent the fuse daemon spying on you\n (consider mounting with \"allow_other\")\n"); + return (EPERM); + } } -#endif - sx_sunlock(fdi.slock); if (vp->v_type != vap->va_type) { @@ -2633,6 +2669,7 @@ static int fuse_standard_metrics(struct vnode *vp, struct thread *td, struct ucred *cred, int mode, struct fuse_filehandle *fufh, void *param) { + DEBUG2G("fufh->mode, %x mode %x\n", fufh->mode, mode); if (fufh->cred->cr_uid == cred->cr_uid && fufh->cred->cr_rgid == cred->cr_rgid && fufh->pid == td->td_proc->p_pid && @@ -2711,7 +2748,7 @@ struct vnode *vp = ap->a_vp; int fdidx = ap->a_fdidx; struct ucred *cred = ap->a_cred; - int mode = OFLAGS(ap->a_mode); + int mode = ap->a_mode; struct fuse_filehandle *fufh; struct fuse_vnode_data *fvdat = vp->v_data; @@ -2724,6 +2761,7 @@ int err = 0; struct file *fp = NULL; int keep_cache; + struct fuse_mnt_data *fmnt = vp->v_mount->mnt_data; if (! vp->v_object) /* The "if" here is just to avoid needless getattr'ing */ @@ -2753,12 +2791,13 @@ if (! fp) panic("nonneg file desc passed to us but no file there"); + DEBUG2G("fp->f_flag 0x%x, open mode %d\n", fp->f_flag, mode); fdi.iosize = sizeof(*foi); if ((err = fdisp_prepare_all(&fdi, (vp->v_type == VDIR) ? FUSE_OPENDIR : FUSE_OPEN, vp, td, cred))) return (err); foi = fdi.indata; - foi->flags = mode; + foi->flags = OFLAGS(mode); if ((err = fdisp_wait_answ(&fdi))) return (err); @@ -2768,14 +2807,41 @@ fufh->fh_id = foo->fh; +#if 0 + /* + * We ignore the following flags sent from userspace, as they are in + * fact mount options... just for some bizarre reason in Linux they + * are kept at the daemon an she sends them down all the time. + * + * Well, that bizarre reason might be that this way daemons can + * interpret/evaluate/override mount options. Yet you shouldn't + * worry too mich about that happenning, as its accessible only + * via the low-level API (filesystem writers are not encouraged to + * fiddle with it). + * + * This implementation gives the mount opts to the mount util, which in turn + * passes them to the kernel, not to the daemon, so our mount info + * is authoritative, not the flags as seen by the daemon. So we ignore + * them. + */ + if (foo->open_flags & FOPEN_DIRECT_IO) fp->f_flag |= O_DIRECT; keep_cache = foo->open_flags & FOPEN_KEEP_CACHE; +#endif ticket_drop(fdi.tick); sx_sunlock(fdi.slock); + fp->f_flag = mode; + if (fmnt->mntopts & FUSEFS_DIRECTIO) + fp->f_flag |= O_DIRECT; + + + DEBUG2G("fp->f_flag 0x%x\n", fp->f_flag); + keep_cache = fmnt->mntopts & FUSEFS_KEEPCACHE; + #if DIRECTIO_FOR_DIRS if (vp->v_type == VDIR) { DEBUG("coloring file #%d\n", fdidx); @@ -2900,7 +2966,7 @@ fri = fdi.indata; fri->fh = fufh->fh_id; - fri->flags = flags; + fri->flags = OFLAGS(flags); fuse_insert_callback(fdi.tick, NULL); fuse_insert_message(fdi.tick); @@ -2963,7 +3029,7 @@ fp->f_data = NULL; if (fufh->useco == 0) - err = fuse_send_release(fp->f_vnode, td, NULL, fufh, OFLAGS(fp->f_flag) & ~O_EXCL); + err = fuse_send_release(fp->f_vnode, td, NULL, fufh, fp->f_flag & ~O_EXCL); //DEBUG2G("closing vnode #%d, opencount now is %d\n", VTOI(fp->f_vnode), --(fvdat->opencount)); return (err); @@ -3132,6 +3198,7 @@ { int err = 0; struct fuse_filehandle *fufh = fp->f_data; + struct fuse_mnt_data *fmnt = fp->f_vnode->v_mount->mnt_data; BREAK_IF_BAD(fp); @@ -3141,7 +3208,16 @@ if ((flags & FOF_OFFSET) == 0) uio->uio_offset = fp->f_offset; - if (fp->f_flag & O_DIRECT) { + DEBUG2G("fp->f_flag 0x%x\n", fp->f_flag); + + /* The great idea is to use the directio mnt opt such that it just + * controls the default mode of the file, later on it can be tuned + * by fcntl. Alas, that doesn't work -- the system always stripes + * out the O_DIRECT bit from my customized flag. So we fall back + * to the hardcoded behaviour (similar to Linux's, btw). + */ + //if (fp->f_flag & O_DIRECT) { + if (fmnt->mntopts & FUSEFS_DIRECTIO) { DEBUG2G("direct read of vnode %d via file handle %llu\n", VTOI(fp->f_vnode), fufh->fh_id); err = fuse_read_directbackend(fp->f_vnode, fufh->fh_id, uio, cred, td, FUSE_READ, fuse_std_buffeater, NULL); } else { @@ -4366,6 +4442,7 @@ { struct fuse_filehandle *fufh = fp->f_data; struct vattr va; + struct fuse_mnt_data *fmnt = fp->f_vnode->v_mount->mnt_data; int err = 0; BREAK_IF_BAD(fp); @@ -4387,7 +4464,8 @@ } else if ((flags & FOF_OFFSET) == 0) uio->uio_offset = fp->f_offset; - if (fp->f_flag & O_DIRECT) { + //if (fp->f_flag & O_DIRECT) { + if (fmnt->mntopts & FUSEFS_DIRECTIO) { DEBUG2G("direct write of vnode %d via file handle %llu\n", VTOI(fp->f_vnode), fufh->fh_id); err = fuse_write_directbackend(fp->f_vnode, fufh->fh_id, uio, cred, td); } else { @@ -4454,7 +4532,7 @@ #if _DEBUG vn_printf(vp, DEBLABEL "fuse_strategy: looking for fufh for vnode #%d, to read from block #%d\n", VTOI(vp), (int)bp->b_blkno); #endif - if (! (fufh = get_filehandle(vp, NULL, cred, bp->b_iocmd == BIO_READ ? O_RDONLY : O_WRONLY))) + if (! (fufh = get_filehandle(vp, NULL, cred, bp->b_iocmd == BIO_READ ? FREAD : FWRITE))) err = EIO; if (! err) @@ -4608,7 +4686,7 @@ { struct fuse_vnode_data *fvdat = ap->a_vp->v_data; - printf("nodeid: %d, fh_counter: %d\n", VTOI(ap->a_vp), fvdat->fh_counter); + printf("nodeid: %d, fh_counter: %d, nlookup: %llu\n", VTOI(ap->a_vp), fvdat->fh_counter, fvdat->nlookup); return (0); } ==== //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#2 (text+ko) ==== @@ -39,29 +39,30 @@ #include "mntopts.h" -struct mntopt mopts[] = { - MOPT_STDOPTS, - { NULL } -}; - void usage(void); int main(int argc, char *argv[]) { -#if __FreeBSD_version >= 600000 struct iovec *iov; -#else - struct iovec iov[6]; -#endif int ch, mntflags, iovlen; char *dev, *dir, mntpath[MAXPATHLEN]; + iov = NULL; + iovlen = 0; mntflags = 0; while ((ch = getopt(argc, argv, "o:")) != -1) { switch(ch) { case 'o': - getmntopts(optarg, mopts, &mntflags, 0); + if (strcmp(optarg,"fspath") && + strcmp(optarg,"from") && + strcmp(optarg,"allow_other") && + strcmp(optarg,"kernel_cache") && + strcmp(optarg,"direct_io")) { + usage(); + return (1); + } + build_iovec(&iov, &iovlen, optarg, "", -1); break; case '?': default: @@ -86,30 +87,11 @@ /* Prepare the options vector for nmount(). build_iovec() is declared * in mntopts.h. */ -#if __FreeBSD_version >= 600000 - iov = NULL; - iovlen = 0; build_iovec(&iov, &iovlen, "fstype", "fusefs", -1); build_iovec(&iov, &iovlen, "fspath", mntpath, -1); build_iovec(&iov, &iovlen, "from", dev, -1); - if (nmount(iov, iovlen, mntflags) < 0) -#else - iov[0].iov_base = "fstype"; - iov[0].iov_len = sizeof("fstype"); - iov[1].iov_base = "fusefs"; - iov[1].iov_len = strlen(iov[1].iov_base) + 1; - iov[2].iov_base = "fspath"; - iov[2].iov_len = sizeof("fspath"); - iov[3].iov_base = mntpath; - iov[3].iov_len = strlen(mntpath) + 1; - iov[4].iov_base = "from"; - iov[4].iov_len = sizeof("from"); - iov[5].iov_base = dev; - iov[5].iov_len = strlen(dev) + 1; - - if (nmount(iov, 6, mntflags) < 0) -#endif + if (nmount(iov, iovlen, 0) < 0) err(EX_OSERR, "%s", dev); exit(0); @@ -119,6 +101,9 @@ usage(void) { fprintf(stderr, - "usage: mount_fusefs [-o options] special node\n"); + "usage: mount_fusefs [-o option...] special node\n" + "known options: allow_other kernel_cache direct_io\n" + "(multiple options require separate \"-o\"-s)\n"); + exit(EX_USAGE); } From owner-p4-projects@FreeBSD.ORG Sun Sep 11 17:16:26 2005 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 254FD16A421; Sun, 11 Sep 2005 17:16:26 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EA19216A41F for ; Sun, 11 Sep 2005 17:16:25 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3BF7D43D5E for ; Sun, 11 Sep 2005 17:16:25 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8BHGPGb060686 for ; Sun, 11 Sep 2005 17:16:25 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BHGP6P060683 for perforce@freebsd.org; Sun, 11 Sep 2005 17:16:25 GMT (envelope-from soc-chenk@freebsd.org) Date: Sun, 11 Sep 2005 17:16:25 GMT Message-Id: <200509111716.j8BHGP6P060683@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 83409 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, 11 Sep 2005 17:16:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=83409 Change 83409 by soc-chenk@soc-chenk_leavemealone on 2005/09/11 17:16:20 Many bugfixes Sanitized look User-friendly mounting Tons of docs Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/Changelog#2 edit .. //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#1 add .. //depot/projects/soc2005/fuse4bsd2/README#3 delete .. //depot/projects/soc2005/fuse4bsd2/README.html#1 add .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fmaster.c#2 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#3 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#2 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse_subr.c#2 edit .. //depot/projects/soc2005/fuse4bsd2/fuselib/fuselib-2.4.0-pre1.diff#1 add .. //depot/projects/soc2005/fuse4bsd2/fuselib/fusermount.c#2 delete .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/Makefile#2 edit .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#3 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/Changelog#2 (text+ko) ==== @@ -1,11 +1,147 @@ -2005 09 02 - Release 0.01.1 - - Fix of a small but showstopper error in installation instructions. - Added a missing file. - Added Changelog. +Sun Sep 11 18:45:52 CEST 2005 at node: creo.hu, nick: csaba + * Sanitized fuse.c's look + +Sun Sep 11 14:22:17 CEST 2005 at node: creo.hu, nick: csaba + * Documentation updated + +Sun Sep 11 13:31:47 CEST 2005 at node: creo.hu, nick: csaba + * Module subroutines polished, some bugs were fixed + + * An internal version of strategy was introduced, which takes a filehandle parameter + (so filehandle can be passed on to strategy directly upon buffered I/O). + + * bug causing blocksize of root vnode being zero was corrected + + * mode mismatch of FUSE_OPENs sent by get_filehandle corrected + + * directories open mode is always FREAD (and no other flag) + + * cross-device hardlink requests refused + + +Sun Sep 11 13:27:50 CEST 2005 at node: creo.hu, nick: csaba + * Library patch polished and integrated into repo + + The use of fusermount was eliminated, we open devices directly instead + (in a way which is compatible with mount_fusefs) + +Sun Sep 11 13:20:48 CEST 2005 at node: creo.hu, nick: csaba + * mount_fusefs improved + + mount_fusefs can spawn the daemon by itself + a reduced version, mount_fusefs_safe were added which can't do this + + +Fri Sep 2 18:48:17 CEST 2005 at node: creo.hu, nick: csaba + * added metafiles and fuse_subr.c + +Fri Sep 2 07:15:47 CEST 2005 at node: creo.hu, nick: csaba + * added mount options, fixed access and open mode problems + +Wed Aug 31 22:23:47 CEST 2005 at node: creo.hu, nick: csaba + * refactored filehandle handling + bio write done + + This means "by and large complete" + + +Tue Aug 30 23:21:00 CEST 2005 at node: creo.hu, nick: csaba + * implemented read-only buffered io/mmap stuff + +Sat Aug 27 08:42:52 CEST 2005 at node: creo.hu, nick: csaba + * fixed zero-read bug and fix of zero-write bug, and handling of open flags + +Fri Aug 26 19:50:09 CEST 2005 at node: creo.hu, nick: csaba + * Fixed zero-write bug and compilations errors with no DEBUG + +Fri Aug 26 17:13:54 CEST 2005 at node: creo.hu, nick: csaba + * lookup bug fixed + +Fri Aug 26 12:17:50 CEST 2005 at node: creo.hu, nick: csaba + * Filesystem is USeablE + +Tue Aug 23 20:13:38 CEST 2005 at node: creo.hu, nick: csaba + * readlink implemented, bugs with open and lookup fixed + +Tue Aug 23 00:11:02 CEST 2005 at node: creo.hu, nick: csaba + * read, readdir implemented + +Sat Aug 20 22:05:04 CEST 2005 at node: creo.hu, nick: csaba + * vget/lookup code refactored, minor code cleanups + +Fri Aug 19 05:50:52 CEST 2005 at node: creo.hu, nick: csaba + * implemented lookup + +Tue Aug 16 05:30:21 CEST 2005 at node: creo.hu, nick: csaba + * a trivial mutex-left-locked bugfix + +Tue Aug 16 03:57:52 CEST 2005 at node: creo.hu, nick: csaba + * Makefile bugfix and kicking made more strict + +Tue Aug 16 00:03:13 CEST 2005 at node: creo.hu, nick: csaba + * changed occurrences of fusedummy to fuse + +Mon Aug 15 23:54:23 CEST 2005 at node: creo.hu, nick: csaba + * VFS ops and getattr implemented + + You can now mount the filesystem! + +Wed Aug 10 04:25:16 CEST 2005 at node: creo.hu, nick: csaba + * converted genopnames script from ruby to awk + +Tue Aug 9 09:23:00 CEST 2005 at node: creo.hu, nick: csaba + * smaller changes in genopnames.rb + +Tue Aug 9 00:40:46 CEST 2005 at node: creo.hu, nick: csaba + * Distribution cleanups + + - A more comprehensive Makefile was put together + - Removed fuselib/fuselib.diff as it's not the appropriate place to keep in + sync with Fuse + - Added a concise README + + +Tue Aug 9 00:39:31 CEST 2005 at node: creo.hu, nick: csaba + * Fixed the bug which led to panic when multithreaded daemons were killed + +Sun Aug 7 16:42:37 CEST 2005 at node: creo.hu, nick: csaba + * source tree cleaned up, other bits of were incorporated into this repo + +Sun Aug 7 12:38:23 CEST 2005 at node: creo.hu, nick: csaba + * code cleanup and bugfixes -2005 09 02 - Release 0.01 + Fixed bugs: + - ticket was not cleaned upon dropping, stale info infected its later usage + - it was impossible to know fuse_dev_writer's returned error value for + pretenders using fuse_standard_handler (a dedicated field was added to + fuse_callback_node) + - prettyprintring routine wanted to print body as buffer for bodyless answers + +Sat Aug 6 22:06:57 CEST 2005 at node: creo.hu, nick: csaba + * Full messaging implemented + +Wed Aug 3 18:45:01 CEST 2005 at node: creo.hu, nick: csaba + * fuse_kernel.h is produced from original linux version by a patch + +Tue Aug 2 14:46:50 CEST 2005 at node: creo.hu, nick: csaba + * fat requests (tickets) implemented, stronger oo approach + +Mon Aug 1 21:58:31 CEST 2005 at node: creo.hu, nick: csaba + * just a (non-working) snapshot before ripping data and &a->b's + +Sun Jul 31 16:39:11 CEST 2005 at node: creo.hu, nick: csaba + * minor changes before implementing fat requests + +Sat Jul 30 18:17:39 CEST 2005 at node: creo.hu, nick: csaba + * Communication infrastructure implemented + +Thu Jul 28 22:51:19 CEST 2005 at node: creo.hu, nick: csaba + * code has been broken up to separate files + +Thu Jul 28 15:52:46 CEST 2005 at node: creo.hu, nick: csaba + * Indentation sanitized + +Thu Jul 28 14:45:45 CEST 2005 at node: creo.hu, nick: csaba + * make it able to communicate with real fuse daemons - Initial release. +Tue Jul 26 12:30:13 CEST 2005 at node: creo.hu, nick: csaba + * first working version based on echodev ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fmaster.c#2 (text+ko) ==== @@ -43,7 +43,6 @@ extern struct fuse_data *fusedev_get_data(struct cdev *fdev); extern int fdisp_wait_answ(struct fuse_dispatcher *fdi); -static void prettyprint(struct fuse_iov *fiov, size_t dlen); static void pp_fuse_entry_out(struct fuse_entry_out *stru); static void pp_fuse_open_out(struct fuse_open_out *stru); static void pp_fuse_write_out(struct fuse_write_out *stru); @@ -290,20 +289,6 @@ ******************************/ static void -prettyprint(struct fuse_iov *fiov, size_t dlen) -{ - static char *pptable[] = { "\\000", "\\001", "\\002", "\\003", "\\004", "\\005", "\\006", "\\a", "\\010", "\\t", "\\n", "\\v", "\\f", "\\r", "\\016", "\\017", "\\020", "\\021", "\\022", "\\023", "\\024", "\\025", "\\026", "\\027", "\\030", "\\031", "\\032", "\\e", "\\034", "\\035", "\\036", "\\037", " ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "\\177", "\\200", "\\201", "\\202", "\\203", "\\204", "\\205", "\\206", "\\207", "\\210", "\\211", "\\212", "\\213", "\\214", "\\215", "\\216", "\\217", "\\220", "\\221", "\\222", "\\223", "\\224", "\\225", "\\ 226", "\\227", "\\230", "\\231", "\\232", "\\233", "\\234", "\\235", "\\236", "\\237", "\\240", "\\241", "\\242", "\\243", "\\244", "\\245", "\\246", "\\247", "\\250", "\\251", "\\252", "\\253", "\\254", "\\255", "\\256", "\\257", "\\260", "\\261", "\\262", "\\263", "\\264", "\\265", "\\266", "\\267", "\\270", "\\271", "\\272", "\\273", "\\274", "\\275", "\\276", "\\277", "\\300", "\\301", "\\302", "\\303", "\\304", "\\305", "\\306", "\\307", "\\310", "\\311", "\\312", "\\313", "\\314", "\\315", "\\316", "\\317", "\\320", "\\321", "\\322", "\\323", "\\324", "\\325", "\\326", "\\327", "\\330", "\\331", "\\332", "\\333", "\\334", "\\335", "\\336", "\\337", "\\340", "\\341", "\\342", "\\343", "\\344", "\\345", "\\346", "\\347", "\\350", "\\351", "\\352", "\\353", "\\354", "\\355", "\\356", "\\357", "\\360", "\\361", "\\362", "\\363", "\\364", "\\365", "\\366", "\\367", "\\370", "\\371", "\\372", "\\373", "\\374", "\\375", "\\376", "\\377" }; - int i; - - uprintf("\""); - for (i=0; i < MIN(fiov->len, dlen); i++) { - uprintf("%s",pptable[((uint8_t *)fiov->base)[i]]); - } - uprintf("\""); - uprintf("%s\n", dlen < fiov->len ? "..." : ""); -} - -static void pp_fuse_entry_out(struct fuse_entry_out *stru) { fuprintf("fuse_entry_out -- nodeid: %llu, generation: %llu, entry_valid: %llu, attr_valid: %llu, entry_valid_nsec: %i, attr_valid_nsec: %i, struct attr...\n", @@ -360,7 +345,7 @@ pp_buf(struct fuse_iov *fiov) { fuprintf("buffer -- "); - prettyprint(fiov, 80); + fprettyprint(fiov, 80); } static void ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#3 (text+ko) ==== @@ -47,7 +47,8 @@ #define __static static #endif -MALLOC_DEFINE(M_FUSEMSG, "fuse messaging", "buffer for fuse messaging related things"); +MALLOC_DEFINE(M_FUSEMSG, "fuse messaging", + "buffer for fuse messaging related things"); static uint32_t fuse_useco = 0; static struct mtx fuse_useco_mtx; @@ -70,11 +71,6 @@ .d_read = fusedev_read, .d_write = fusedev_write, .d_version = D_VERSION, -/* .d_flags = D_PSEUDO | D_NEEDGIANT, - */ - /* XXX do we need Giant? - * However, it pretty much seems like we don't need D_PSEUDO - */ }; @@ -97,7 +93,6 @@ #if FMASTER __static int fuse_callbn_wait_answer(struct fuse_callback_node *caliban); #endif -__static __inline size_t fuse_response_body_len(struct uio *uio); __static __inline int fuse_callbn_pull_uio(struct fuse_callback_node *caliban, struct uio *uio); __static __inline int fuse_callbn_get_opcode(struct fuse_callback_node *caliban); @@ -248,12 +243,14 @@ fuse_callbn_teardown(struct fuse_callback_node *caliban) { - /* It is important to use NFREE for freeing - pointer elements of a fuse_callback_node - when they are in use (and being dropped), - so that when the end of its lifecycle comes, - we can know whether those elements should be - freed */ + /* + * It is important to use NFREE for freeing + * pointer elements of a fuse_callback_node + * when they are in use (and being dropped), + * so that when the end of its lifecycle comes, + * we can know whether those elements should be + * freed + */ fuse_iov_teardown(&caliban->params); mtx_destroy(&caliban->answer_mtx); @@ -314,36 +311,22 @@ out: mtx_unlock(&caliban->answer_mtx); - KASSERT(err || fuse_callbn_answered(caliban), ("fuse requester was woken up but still no answer")); + KASSERT(err || fuse_callbn_answered(caliban), + ("fuse requester was woken up but still no answer")); return (err); } -__static __inline size_t -fuse_response_body_len(struct uio *uio) -{ - - /* It seems that this just boils down to reading the uio_resid field. - * XXX this function is just line noise. Should be eliminated sooner or later. - */ - - return (uio->uio_resid); -} - __static __inline int fuse_callbn_pull_uio(struct fuse_callback_node *caliban, struct uio *uio) { int err = 0; size_t len; - //DEBUG("getting at next uio item\n"); - len = fuse_response_body_len(uio); - //DEBUG("response len: %d\n", len); + len = uio->uio_resid; if (len) { - //DEBUG("adjusting resp\n"); if (caliban->resp_bufdata) { - //KASSERT(caliban->resp_bufsize >= len, ("inconsistency between response body len and size of target buffer chunk")); caliban->resp_bufsize = len; err = uiomove(caliban->resp_bufdata, len, uio); } else { @@ -458,16 +441,19 @@ { struct fuse_data *data; - MALLOC(data, struct fuse_data *, sizeof(struct fuse_data), M_FUSEMSG, M_WAITOK | M_ZERO); + MALLOC(data, struct fuse_data *, sizeof(struct fuse_data), M_FUSEMSG, + M_WAITOK | M_ZERO); /* Setting up fields of mine */ mtx_init(&data->msg_mtx, "mutex for fuse message list", NULL, MTX_DEF); cv_init(&data->msg_cv, "cv to wake up fusedev_read"); STAILQ_INIT(&data->fmsg_head); - mtx_init(&data->ticket_mtx, "mutex for the fuse ticketer", NULL, MTX_DEF); + mtx_init(&data->ticket_mtx, "mutex for the fuse ticketer", NULL, + MTX_DEF); STAILQ_INIT(&data->freetickets_head); TAILQ_INIT(&data->busytickets_head); - mtx_init(&data->callback_mtx, "mutex for the fuse callback list", NULL, MTX_DEF); + mtx_init(&data->callback_mtx, "mutex for the fuse callback list", NULL, + MTX_DEF); TAILQ_INIT(&data->fcallb_head); data->ticketer = 0; data->freeticket_counter = 0; @@ -517,26 +503,30 @@ /* fuse_ticket methods ==> */ -/* Tickets are carriers of communication with a fuse daemon. +/* + * Tickets are carriers of communication with a fuse daemon. * Tickets have a unique id, which should be kept unique * among synchronously used tickets. The everyday routine: * + Syscall handler gets one by ticket_fetch() * (then, behind the scenes, either a fresh one is allocated * or a cached old one is put into use again) - * + Sets up data to be passed to the daemon (there is a message node attached to the ticket) + * + Sets up data to be passed to the daemon + * (there is a message node attached to the ticket) * + If she knows that answer will come, sets up the callback node * attached to the ticket, and enqueues it to the callback nodes' list * + enqueues the message and kicks fusedev_read() * + if daemon gives a proper answer, it will contain the unique id, by which * fusedev_write() can pick the pre-prepared callback node and run it. - * There is the standard callback handler which just awakes the syscall handler - * who then waits for the response, deal with it by herself. - * Another option is to write a full-fledged callback handler which does all data processing - * within fusedev_write()'s thread. Or, if the answer is uninteresting, a NULL handler can be used. - * + After answer has been consumed, the handler or anyone to whom the control has been passed supposed to - * call ticket_drop() - * (then, behind the scenes, either the ticket is destroyed, or put into cache) -*/ + * There is the standard callback handler which just awakes the syscall + * handler who then waits for the response, deal with it by herself. + * Another option is to write a full-fledged callback handler which does all + * data processing within fusedev_write()'s thread (although we never do + * this). Or, if the answer is uninteresting, a NULL handler can be used. + * + After answer has been consumed, the handler or anyone to whom the control + * has been passed supposed to call ticket_drop() + * (then, behind the scenes, either the ticket is destroyed, or put into + * cache) + */ static struct fuse_ticket * @@ -544,7 +534,8 @@ { struct fuse_ticket *tick; - MALLOC(tick, struct fuse_ticket *, sizeof(*tick), M_FUSEMSG, M_WAITOK | M_ZERO); + MALLOC(tick, struct fuse_ticket *, sizeof(*tick), M_FUSEMSG, + M_WAITOK | M_ZERO); tick->unique = data->ticketer++; tick->data = data; @@ -576,8 +567,12 @@ { int die = 0; - /* XXX limit below should be tunable by a sysctl */ - if (FUSE_MAX_STORED_FREE_TICKETS && FUSE_MAX_STORED_FREE_TICKETS <= tick->data->freeticket_counter) { + /* + * Limit below should be tunable by a sysctl? + * Probably not worth for the effort. + */ + if (FUSE_MAX_STORED_FREE_TICKETS && + FUSE_MAX_STORED_FREE_TICKETS <= tick->data->freeticket_counter) { die = 1; DEBUG("ticket will die\n"); } else @@ -617,20 +612,15 @@ DEBUG("fetching ticket\n"); if (data->freeticket_counter == 0) { - //DEBUG("no tick :(\n"); tick = ticket_alloc(data); - //DEBUG("make then one\n"); mtx_lock(&data->ticket_mtx); } else { mtx_lock(&data->ticket_mtx); - //DEBUG("pop a tick\n"); tick = fdata_pop_ftick(data); KASSERT(tick, ("no free ticket available tho counter said there is")); } - //DEBUG("push into busy ones\n"); ticket_push_btick(tick); - //DEBUG("unlock mtx\n"); mtx_unlock(&data->ticket_mtx); return (tick); @@ -651,11 +641,8 @@ { tick->callbn.handler = handler; - //DEBUG("lock callb mtx\n"); mtx_lock(&tick->data->callback_mtx); - //DEBUG("insert callb list\n"); fuse_callbn_push(&tick->callbn); - //DEBUG("unlock callb mtx\n"); mtx_unlock(&tick->data->callback_mtx); } @@ -669,7 +656,6 @@ fuse_msgn_push(&tick->msgn); DEBUG("ring the bell\n"); cv_signal(&tick->data->msg_cv); - //DEBUG("bell sounded\n"); mtx_unlock(&tick->data->msg_mtx); } @@ -680,17 +666,18 @@ fuprintf("\tOut header -- len: %i, error: %i, unique: %llu; iovecs: %d\n", ohead->len, ohead->error, ohead->unique, uio->uio_iovcnt); - if (fuse_response_body_len(uio) + sizeof(struct fuse_out_header) != ohead->len) { + if (uio->uio_resid + sizeof(struct fuse_out_header) != ohead->len) { fuprintf("Format error: body size differs from size claimed by header\n"); return (EINVAL); } - if (fuse_response_body_len(uio) && ohead->error) { + if (uio->uio_resid && ohead->error) { fuprintf("Format error: non zero error but message had a body\n"); return (EINVAL); } - ohead->error = -(ohead->error); /* Sanitize the linuxism of negative errnos */ + /* Sanitize the linuxism of negative errnos */ + ohead->error = -(ohead->error); return (0); } @@ -748,11 +735,15 @@ err = blen == sizeof(struct fuse_open_out) ? 0 : EINVAL; break; case FUSE_READ: - /* we do whatever crazyness is needed to read the original + /* + * we do whatever crazyness is needed to read the original * request size, starting from the callback node, and then * check whether available data doesn't grow over that. */ - err = ((struct fuse_read_in *)((char *)caliban->ticket->msgn.msg.base + sizeof(struct fuse_in_header)))->size >= blen ? 0 : EINVAL; + err = ((struct fuse_read_in *)( + (char *)caliban->ticket->msgn.msg.base + + sizeof(struct fuse_in_header) + ))->size >= blen ? 0 : EINVAL; break; case FUSE_WRITE: err = blen == sizeof(struct fuse_write_out) ? 0 : EINVAL; @@ -788,7 +779,10 @@ err = blen == sizeof(struct fuse_open_out) ? 0 : EINVAL; break; case FUSE_READDIR: - err = ((struct fuse_read_in *)((char *)caliban->ticket->msgn.msg.base + sizeof(struct fuse_in_header)))->size >= blen ? 0 : EINVAL; + err = ((struct fuse_read_in *)( + (char *)caliban->ticket->msgn.msg.base + + sizeof(struct fuse_in_header) + ))->size >= blen ? 0 : EINVAL; break; case FUSE_RELEASEDIR: err = blen == 0 ? 0 : EINVAL; @@ -826,7 +820,9 @@ } while (0) static __inline void -fuse_setup_ihead(struct fuse_in_header *ihead, struct fuse_ticket *tick, uint64_t nid, enum fuse_opcode op, struct thread* td, struct ucred *cred) +fuse_setup_ihead(struct fuse_in_header *ihead, struct fuse_ticket *tick, + uint64_t nid, enum fuse_opcode op, struct thread* td, + struct ucred *cred) { ihead->len = 0; /* actually not used by lib */ ihead->unique = tick->unique; @@ -861,7 +857,8 @@ * ********************/ -/* fuse_standard_handler just pulls in data and wakes up pretender. +/* + * fuse_standard_handler just pulls in data and wakes up pretender. * Doesn't try to interpret data, that's left for the pretender. * Though might do a basic size verification before the pull-in takes place */ @@ -874,7 +871,7 @@ if (caliban->ohead->error) goto out; - if ((err = fuse_body_audit(caliban, fuse_response_body_len(uio)))) + if ((err = fuse_body_audit(caliban, uio->uio_resid))) goto out; if ((err = fuse_callbn_pull_uio(caliban, uio))) goto out; @@ -883,8 +880,8 @@ mtx_lock(&caliban->answer_mtx); if (fuse_callbn_answered(caliban)) /* The requester was interrupted and she set the "answered" flag - * to notify us. In this case, we don't have to care about anything, - * just drop the ticket and get out as fast as we can. + * to notify us. In this case, we don't have to care about + * anything, just drop the ticket and get out as fast as we can. */ dropflag = 1; else { @@ -905,8 +902,8 @@ * ****************************/ - -/* Resources are set up on a per-open basis +/* + * Resources are set up on a per-open basis */ static int fusedev_open(struct cdev *dev, int oflags, int devtype, struct thread *td) @@ -959,9 +956,10 @@ return(0); } -/* fusedev_read hangs on the queue of VFS messages. - When it's notified that there is a new one, it picks that and - passes up to the daemon +/* + * fusedev_read hangs on the queue of VFS messages. + * When it's notified that there is a new one, it picks that and + * passes up to the daemon */ int fusedev_read(struct cdev *dev, struct uio *uio, int ioflag) @@ -976,27 +974,24 @@ mtx_lock(&data->msg_mtx); if (fdata_kick_get(data)) { - DEBUG("we know early on that reader should be kicked so we don't wait for newsn\n"); + DEBUG("we know early on that reader should be kicked so we don't wait for news\n"); mtx_unlock(&data->msg_mtx); return (ENODEV); } if ( ! (fmsgn = fdata_pop_msg(data))) { - //DEBUG("FR1,%d\n", uio->uio_td->td_tid); err = cv_wait_sig(&data->msg_cv, &data->msg_mtx); if (err != 0) { - //DEBUG("FR2,%d\n", uio->uio_td->td_tid); mtx_unlock(&data->msg_mtx); - //DEBUG("FR3,%d\n", uio->uio_td->td_tid); return err; } - //DEBUG("FR4,%d\n", uio->uio_td->td_tid); fmsgn = fdata_pop_msg(data); } mtx_unlock(&data->msg_mtx); if (fdata_kick_get(data)) { - /* somebody somewhere -- eg., umount routine -- + /* + * somebody somewhere -- eg., umount routine -- * wants this liaison finished off */ DEBUG("reader is to be sacked\n"); @@ -1007,43 +1002,51 @@ return (ENODEV); /* This should make the daemon get off of us */ } if (! fmsgn) { - /* We can get here if fuse daemon suddenly terminates, + /* + * We can get here if fuse daemon suddenly terminates, * eg, by being hit by a SIGKILL * -- and some other cases, too, tho not totally clear, when + * (cv_signal signals the whole process ?) */ DEBUG("no message on thread #%d\n", uio->uio_td->td_tid); return (EINTR); } DEBUG("message got on thread #%d\n", uio->uio_td->td_tid); - KASSERT(fmsgn->msg_bufdata || fmsgn->msg_bufsize == 0, ("non-null buf pointer with positive size")); - - /* Why not ban mercilessly stupid daemons who can't keep up with us? + KASSERT(fmsgn->msg_bufdata || fmsgn->msg_bufsize == 0, + ("non-null buf pointer with positive size")); + /* + * Why not ban mercilessly stupid daemons who can't keep up with us? * (There is no much use of a partial read here...) */ if (uio->uio_resid < fmsgn->msg.len) { - //fdata_kick_set(data); data->dataflag |= FU_KICK; err = ENODEV; } if (! err) - err = uiomove(fmsgn->msg.base, MIN(uio->uio_resid, fmsgn->msg.len), uio); + err = uiomove(fmsgn->msg.base, + MIN(uio->uio_resid, fmsgn->msg.len), uio); if (! err && fmsgn->msg_bufsize != 0) - err = uiomove(fmsgn->msg_bufdata, MIN(uio->uio_resid, fmsgn->msg_bufsize), uio); + err = uiomove(fmsgn->msg_bufdata, + MIN(uio->uio_resid, fmsgn->msg_bufsize), uio); - /* fusedev_read will drop "invalidated" tickets -- - for cases when no reply is expected + /* + * fusedev_read will drop "invalidated" tickets + * (used when the one who inserted the message thinks the daemon + * won't aswer ) */ ticket_drop_invalid(fmsgn->ticket); return(err); } -/* fusedev_write first reads the header sent by the daemon. - If that's OK, looks up ticket/callback node by the unique id seen in header. - If the callback node contains a handler function, the uio is passed over that. +/* + * fusedev_write first reads the header sent by the daemon. + * If that's OK, looks up ticket/callback node by the unique id seen in header. + * If the callback node contains a handler function, the uio is passed over + * that. */ static int fusedev_write(struct cdev *dev, struct uio *uio, int ioflag) @@ -1065,14 +1068,18 @@ return (EINVAL); } - MALLOC(ohead, struct fuse_out_header *, sizeof(struct fuse_out_header), M_TEMP, M_WAITOK); + MALLOC(ohead, struct fuse_out_header *, sizeof(struct fuse_out_header), + M_TEMP, M_WAITOK); if ((err = uiomove(ohead, sizeof(struct fuse_out_header), uio)) != 0) goto drophead; - /* We check header information (which is redundant) and compare it with what we see. - * If we see some inconsistency we discard the whole answer and proceed on as if it had never - * existed. In particular, no pretender will be woken up, regardless the "unique" value in the header. + /* + * We check header information (which is redundant) and compare it with + * what we see. If we see some inconsistency we discard the whole + * answer and proceed on as if it had never existed. In particular, no + * pretender will be woken up, regardless the "unique" value in the + * header. */ if ((err = fuse_ohead_audit(ohead, uio))) goto drophead; @@ -1083,9 +1090,10 @@ /* Looking for ticket with the unique id of header */ mtx_lock(&data->callback_mtx); - /* Note: actual type of container shows up (that is, not hidden by the closet oo) */ - TAILQ_FOREACH_SAFE(fcallbn, &data->fcallb_head, fcallb_link, fcallbn_temp) { - fuprintf("bumped into callback #%llu\n", fcallbn->ticket->unique); + TAILQ_FOREACH_SAFE(fcallbn, &data->fcallb_head, fcallb_link, + fcallbn_temp) { + fuprintf("bumped into callback #%llu\n", + fcallbn->ticket->unique); if (fcallbn->ticket->unique == ohead->unique) { found = 1; fuse_callbn_remove(fcallbn); @@ -1097,11 +1105,11 @@ if (found) { if (fcallbn->handler) { /* We found a callback with proper handler. - In this case the out header will be 0wnd by - the callback, so the fun of freeing that is - left for her. - (Then, by all chance, she'll just get that's done - via ticket_drop(), so no manual mucking around...) + * In this case the out header will be 0wnd by + * the callback, so the fun of freeing that is + * left for her. + * (Then, by all chance, she'll just get that's done + * via ticket_drop(), so no manual mucking around...) */ fcallbn->ohead = ohead; err = fcallbn->handler(fcallbn, uio); @@ -1114,24 +1122,25 @@ } } else { /* no callback at all! */ - /* this is BAD: - + if unique id was generated by fuse userspace, - that's way too bogus. Userspace should only - pass unique ids back and forth. - + else we generated the unique id by ticket_fetch() - somewhere in the foggy past. - Now that ticket is either - + dropped, which means it could have been - reused by now, and then this answer we work - with would be misdelivered (it's just luck that - it's not the case now) - + not dropped, which means it's either - + lost: will be kept on busy list for the - whole lifetime - + someone will drop it randomly without - any event based triggering (this would be - the place for such a thing), which is just - nonsense. + /* + * this is BAD: + * + if unique id was generated by fuse userspace, + * that's way too bogus. Userspace should only + * pass unique ids back and forth. + * + else we generated the unique id by ticket_fetch() + * somewhere in the foggy past. + * Now that ticket is either + * + dropped, which means it could have been + * reused by now, and then this answer we work + * with would be misdelivered (it's + * just luck that it's not the case now) + * + not dropped, which means it's either + * + lost: will be kept on busy list for + * the whole lifetime + * + someone will drop it randomly without + * any event based triggering (this + * would be the place for such a thing), + * which is just nonsense. */ fuprintf("erhm, no handler for this response\n"); goto drophead; @@ -1174,19 +1183,22 @@ /* aka stage 2 */ static void -fdisp_prepare_msg(struct fuse_dispatcher *fdip, enum fuse_opcode op, uint64_t nid, struct thread *td, struct ucred *cred) +fdisp_prepare_msg(struct fuse_dispatcher *fdip, enum fuse_opcode op, + uint64_t nid, struct thread *td, struct ucred *cred) { if (! fdip->tick) fdip->tick = ticket_fetch(fdip->data); - FUSE_DIMALLOC(&fdip->tick->msgn.msg, fdip->finh, fdip->indata, fdip->iosize); + FUSE_DIMALLOC(&fdip->tick->msgn.msg, fdip->finh, + fdip->indata, fdip->iosize); fuse_setup_ihead(fdip->finh, fdip->tick, nid, op, td, cred); } /* prev. two in one */ static __inline int -fdisp_prepare_all(struct fuse_dispatcher *fdip, enum fuse_opcode op, struct vnode *vp, struct thread *td, struct ucred *cred) +fdisp_prepare_all(struct fuse_dispatcher *fdip, enum fuse_opcode op, + struct vnode *vp, struct thread *td, struct ucred *cred) { int err = 0; @@ -1218,14 +1230,16 @@ mtx_lock(&fdip->tick->callbn.answer_mtx); if (fuse_callbn_answered(&fdip->tick->callbn)) { - /* Just between noticing the interrupt and getting here, + /* + * Just between noticing the interrupt and getting here, * the standard handler has completed his job. * So we drop the ticket and exit as usual. */ mtx_unlock(&fdip->tick->callbn.answer_mtx); goto out; } else { - /* So we were faster than the standard handler. + /* + * So we were faster than the standard handler. * Then by setting the answered flag we get *him* * to drop the ticket. */ @@ -1233,16 +1247,19 @@ fuse_callbn_set_answered(&fdip->tick->callbn); mtx_unlock(&fdip->tick->callbn.answer_mtx); #if ! DONT_TRY_HARD_PREVENT_IO_IN_VAIN - /* If we are willing to pay with one more locking, - * we can save on I/O by getting the device write handler + /* + * If we are willing to pay with one more locking, we + * can save on I/O by getting the device write handler * to drop the ticket. That is, if we are fast enough, * the standard handler -- who does the uiomove -- - * won't even be called. (No guarantee though for being fast.) + * won't even be called. (No guarantee though for + * being fast.) */ DEBUG2G("interrupted, now trying to prevent io in vain (I'll tell you if it succeeds...)\n"); mtx_lock(&fdip->data->callback_mtx); - TAILQ_FOREACH(fcallbn, &fdip->data->fcallb_head, fcallb_link) { + TAILQ_FOREACH(fcallbn, &fdip->data->fcallb_head, + fcallb_link) { if (fcallbn->ticket == fdip->tick) { if (fdip->tick->age == age) { DEBUG2G("preventing io in vain succeeded\n"); @@ -1260,7 +1277,8 @@ } if (fdip->tick->callbn.errno) { - /* Error with messaging, the VFS layer + /* + * Error with messaging, the VFS layer * won't be particularly interested about * its exact nature */ @@ -1269,7 +1287,8 @@ } if ((err = fdip->tick->callbn.ohead->error)) { - /* This means a "proper" fuse syscall error. + /* + * This means a "proper" fuse syscall error. * We record this value so the caller will * be able to know it's not a boring messaging * failure, if she wishes so (and if not, she can @@ -1296,7 +1315,8 @@ /* stage 1, 2, 3 together for the simple case when only a header is sent up */ static __inline int -fdisp_simple_putget(struct fuse_dispatcher *fdip, enum fuse_opcode op, struct vnode *vp, struct thread *td, struct ucred *cred) +fdisp_simple_putget(struct fuse_dispatcher *fdip, enum fuse_opcode op, + struct vnode *vp, struct thread *td, struct ucred *cred) { int err = 0; @@ -1331,7 +1351,7 @@ fiio = fdi.answ; /* XXX is the following check adequate? */ if (fiio->major < 7) { - DEBUG("userpace version too low\n"); + DEBUG2G("userpace version too low\n"); err = EPROTONOSUPPORT; } @@ -1340,17 +1360,14 @@ } static __inline int -fuse_send_forget(struct mount *mp, struct thread *td, struct ucred *cred, uint64_t nodeid, uint64_t nlookup, struct fuse_dispatcher *fdip) +fuse_send_forget(struct mount *mp, struct thread *td, struct ucred *cred, + uint64_t nodeid, uint64_t nlookup, + struct fuse_dispatcher *fdip) { struct fuse_forget_in *ffi; int err = 0; DEBUG("sending FORGET with %llu lookups\n", nlookup); -#if 0 & _DEBUG2G - DEBUG2G("=============>\n"); - kdb_backtrace(); - DEBUG2G("<=============\n"); -#endif fdip->iosize = sizeof(*ffi); if (fdip->tick) { @@ -1368,8 +1385,10 @@ ticket_invalidate(fdip->tick); fuse_insert_message(fdip->tick); - /* I think we can unlock here -- users of this routine won't wanna - * go and fetch a new ticket... let's just save them from dealing with this lock + /* + * I think we can unlock here -- users of this routine won't wanna + * go and fetch a new ticket... + * let's just save them from dealing with this lock */ sx_sunlock(fdip->slock); @@ -1390,7 +1409,7 @@ static vfs_unmount_t fuse_unmount; static vfs_root_t fuse_root; static vfs_statfs_t fuse_statfs; -//static vfs_vget_t fuse_vget; +/* static vfs_vget_t fuse_vget; */ static int fuse_vget_i(struct mount *mp, struct thread *td, uint64_t nodeid, enum vtype vtyp, struct vnode **vpp); static __inline void fat2vat(struct mount *mp, struct fuse_attr *fat, struct vattr *vap); #if __FreeBSD_version >= 600000 @@ -1406,20 +1425,18 @@ static __inline void fuse_vnode_kick(struct vnode *vp); static vop_access_t fuse_access; static __inline int fuse_access_by_attr(struct mount *mp, struct vattr *vap, mode_t mode, struct ucred *cred); -//static vop_cachedlookup_t fuse_lookup; +/* static vop_cachedlookup_t fuse_lookup; */ static vop_lookup_t fuse_lookup; -//static vop_pathconf_t fuse_pathconf; +/* static vop_pathconf_t fuse_pathconf; */ static int iterate_filehandles(struct vnode *vp, struct thread *td, struct ucred *cred, int mode, fuse_metrics_t fmetr, void *param); static int fuse_standard_metrics(struct vnode *vp, struct thread *td, struct ucred *cred, int mode, struct fuse_filehandle *fufh, void *param); static struct fuse_filehandle *get_filehandle(struct vnode *vp, struct thread *td, struct ucred *cred, int mode); static vop_open_t fuse_open; static int fuse_send_release(struct vnode *vp, struct thread *td, struct ucred *cred, struct fuse_filehandle *fufh, int flags); static fo_close_t fuse_close_f; -static int fuse_read_directbackend(struct vnode *vp, uint64_t fuse_fh, struct uio *uio, struct ucred *cred, struct thread *td, enum fuse_opcode op, fuse_buffeater_t *buffe, void *param); -static int fuse_read_biobackend(struct vnode *vp, uint64_t fuse_fh, struct uio *uio, struct ucred *cred, struct thread *td, enum fuse_opcode op, fuse_buffeater_t *buffe, void *param); -//static vop_read_t fuse_read; +static int fuse_read_directbackend(struct vnode *vp, struct fuse_filehandle *fufh, struct uio *uio, struct ucred *cred, struct thread *td, enum fuse_opcode op, fuse_buffeater_t *buffe, void *param); +static int fuse_read_biobackend(struct vnode *vp, struct fuse_filehandle *fufh, struct uio *uio, struct ucred *cred, struct thread *td, enum fuse_opcode op, fuse_buffeater_t *buffe, void *param); static fo_rdwr_t fuse_read_f; -//static vop_close_t fuse_close; static vop_readdir_t fuse_readdir; static vop_readlink_t fuse_readlink; static int fuse_newentry_backend(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, enum fuse_opcode op, void *buf, size_t bufsize, enum vtype vtyp); @@ -1439,10 +1456,10 @@ static fuse_metrics_t fuse_fsync_filehandle; static vop_fsync_t fuse_fsync; static int fuse_write_directbackend(struct vnode *vp, uint64_t fh_id, struct uio *uio, struct ucred *cred, struct thread *td); -static int fuse_write_biobackend(struct vnode *vp, struct uio *uio, struct ucred *cred, struct thread *td); //;, size_t fsize, int ioflag); +static int fuse_write_biobackend(struct vnode *vp, struct uio *uio, struct ucred *cred, struct thread *td); static fo_rdwr_t fuse_write_f; +static int fuse_strategy_i(struct vnode *vp, struct buf *bp, struct fuse_filehandle *fufh); static vop_strategy_t fuse_strategy; -//static vop_getpages_t fuse_getpages; static vop_bmap_t fuse_bmap; static vop_print_t fuse_print; @@ -1454,8 +1471,8 @@ .vfs_unmount = fuse_unmount, .vfs_root = fuse_root, .vfs_statfs = fuse_statfs, - //.vfs_vget = fuse_vget, - //.vfs_sync = vfs_stdsync, + /* .vfs_vget = fuse_vget, + .vfs_sync = vfs_stdsync, */ }; #if __FreeBSD_version >= 600000 @@ -1469,9 +1486,6 @@ .vop_cachedlookup = */ fuse_lookup, //.vop_pathconf = fuse_pathconf, .vop_open = fuse_open, - //.vop_read = fuse_read, - //.vop_close = fuse_close, - //.vop_close = VOP_PANIC, .vop_readdir = fuse_readdir, .vop_readlink = fuse_readlink, .vop_mknod = fuse_mknod, @@ -1485,7 +1499,6 @@ .vop_setattr = fuse_setattr, .vop_fsync = fuse_fsync, .vop_strategy = fuse_strategy, - //.vop_getpages = fuse_getpages, .vop_bmap = fuse_bmap, .vop_print = fuse_print, }; @@ -1515,20 +1528,24 @@ static fuse_buffeater_t fuse_dir_buffeater; -/* As I don't use the name cache, I can muck with the v_dd field. - (First I tried to use a private field but v_dd has to be set - as vn_fullpath1() of vfs_cache.c b0rks without it, and __getcwd() - relies on that function +/* + * As I don't use the name cache, I can muck with the v_dd field. + * (First I tried to use a private field but v_dd has to be set + * as vn_fullpath1() of vfs_cache.c b0rks without it, and __getcwd() + * relies on that function */ -#define GETPARENT(pvp, vp) \ -do { \ - KASSERT((vp)->v_dd != (vp) || VTOI((vp)) == FUSE_ROOT_INODE, ("self-parented non-root")); \ - (pvp) = (vp)->v_dd; \ +#define GETPARENT(pvp, vp) \ +do { \ + KASSERT((vp)->v_dd != (vp) || VTOI((vp)) == FUSE_ROOT_INODE, \ + ("self-parented non-root")); \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Sep 11 20:57:59 2005 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 0418416A421; Sun, 11 Sep 2005 20:57:59 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A17F816A41F for ; Sun, 11 Sep 2005 20:57:58 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6435F43D46 for ; Sun, 11 Sep 2005 20:57:58 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8BKvwoH077796 for ; Sun, 11 Sep 2005 20:57:58 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BKvubT077793 for perforce@freebsd.org; Sun, 11 Sep 2005 20:57:56 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 11 Sep 2005 20:57:56 GMT Message-Id: <200509112057.j8BKvubT077793@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 83418 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, 11 Sep 2005 20:57:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=83418 Change 83418 by rwatson@rwatson_peppercorn on 2005/09/11 20:57:01 Identify a number of minor and serious bugs in fifofs, and close some of them in an attempt to fix races and polling/select on fifos: - Add a run-time assertion that allocation of fifo state hasn't raced with another thread doing the same. In theory this shouldn't happen due to vnode locking. - Use soconnect2() instead of reaching into the UNIX domain socket internals using uipc_connect2(). - Use sorwakeup() on the read endpoint of the socket pair, not the write endpoint, or we wake up the wrong end. - Close two races: we must re-check the condition on wakeup and re-sleep if other threads are also using the fifo and may have been waiting simultaneously. In particular, we have to do this because we re-lock the vnode lock, which can sleep for extended periods. - Check 'levents', not 'events' to decide whether or not to poll for write state on a fifo: otherwise we poll the wrong socket for read state if both read and write are requested, resulting in general weirdness. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#2 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#2 (text+ko) ==== @@ -172,6 +172,12 @@ struct file *fp; int error; + /* + * In theory, writes to vp->v_fifoinfo are serialized by the vnode + * lock, so there can't be a race between multiple simultaneous opens + * here. We assert there hasn't been at the end of the allocation, + * however, to be sure. + */ if ((fip = vp->v_fifoinfo) == NULL) { MALLOC(fip, struct fifoinfo *, sizeof(*fip), M_VNODE, M_WAITOK); error = socreate(AF_LOCAL, &rso, SOCK_STREAM, 0, cred, td); @@ -182,7 +188,7 @@ if (error) goto fail2; fip->fi_writesock = wso; - error = uipc_connect2(wso, rso); + error = soconnect2(wso, rso); if (error) { (void)soclose(wso); fail2: @@ -196,6 +202,12 @@ SOCKBUF_LOCK(&rso->so_rcv); rso->so_rcv.sb_state |= SBS_CANTRCVMORE; SOCKBUF_UNLOCK(&rso->so_rcv); + /* + * If the vnode lock is insufficiently serializing, we might + * have to detect a race here and recover. + */ + KASSERT(vp->v_fifoinfo == NULL, + ("fifo_open: v_fifoinfo race")); vp->v_fifoinfo = fip; } @@ -234,12 +246,12 @@ SOCKBUF_UNLOCK(&fip->fi_writesock->so_rcv); if (fip->fi_readers > 0) { wakeup(&fip->fi_readers); - sorwakeup(fip->fi_writesock); + sorwakeup(fip->fi_readsock); } } } if ((ap->a_mode & O_NONBLOCK) == 0) { - if ((ap->a_mode & FREAD) && fip->fi_writers == 0) { + while ((ap->a_mode & FREAD) && fip->fi_writers == 0) { VOP_UNLOCK(vp, 0, td); error = msleep(&fip->fi_readers, &fifo_mtx, PDROP | PCATCH | PSOCK, "fifoor", 0); @@ -253,13 +265,8 @@ return (error); } mtx_lock(&fifo_mtx); - /* - * We must have got woken up because we had a writer. - * That (and not still having one) is the condition - * that we must wait for. - */ } - if ((ap->a_mode & FWRITE) && fip->fi_readers == 0) { + while ((ap->a_mode & FWRITE) && fip->fi_readers == 0) { VOP_UNLOCK(vp, 0, td); error = msleep(&fip->fi_writers, &fifo_mtx, PDROP | PCATCH | PSOCK, "fifoow", 0); @@ -272,11 +279,6 @@ } return (error); } - /* - * We must have got woken up because we had - * a reader. That (and not still having one) - * is the condition that we must wait for. - */ mtx_lock(&fifo_mtx); } } @@ -639,7 +641,7 @@ } } levents = events & (POLLOUT | POLLWRNORM | POLLWRBAND); - if (events) { + if (levents) { filetmp.f_data = fip->fi_writesock; filetmp.f_cred = cred; if (filetmp.f_data) { From owner-p4-projects@FreeBSD.ORG Sun Sep 11 21:16:22 2005 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 D82A616A421; Sun, 11 Sep 2005 21:16:21 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AC4E216A41F for ; Sun, 11 Sep 2005 21:16:21 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0E12043D46 for ; Sun, 11 Sep 2005 21:16:21 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8BLGL3E078628 for ; Sun, 11 Sep 2005 21:16:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BLGKj5078625 for perforce@freebsd.org; Sun, 11 Sep 2005 21:16:20 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 11 Sep 2005 21:16:20 GMT Message-Id: <200509112116.j8BLGKj5078625@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 83419 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, 11 Sep 2005 21:16:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=83419 Change 83419 by rwatson@rwatson_zoo on 2005/09/11 21:16:01 Integer netsmp branch from FreeBSD CVS HEAD. - Much include path cleanup, some popular. Affected files ... .. //depot/projects/netsmp/src/sys/alpha/include/param.h#2 integrate .. //depot/projects/netsmp/src/sys/alpha/include/vmparam.h#2 integrate .. //depot/projects/netsmp/src/sys/amd64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/netsmp/src/sys/amd64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/amd64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/netsmp/src/sys/amd64/acpica/madt.c#2 integrate .. //depot/projects/netsmp/src/sys/contrib/dev/nve/amd64/nvenetlib.README#1 branch .. //depot/projects/netsmp/src/sys/contrib/dev/nve/i386/nvenetlib.README#1 branch .. //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_asus.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_fujitsu.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_panasonic.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_sony.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_toshiba.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdDebug.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdHardware.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdInterrupt.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdMemory.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSchedule.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdStream.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSynch.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdTable.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_acad.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_battery.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_button.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_cmbat.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_cpu.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_ec.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_if.m#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_lid.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_package.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pci.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pci_link.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib_acpi.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib_pci.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_perf.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_powerres.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_quirk.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_resource.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_thermal.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_throttle.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_timer.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_video.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/fdc/fdc_acpi.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/mpt/mpt_pci.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pci/neomagic.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/ntfs/ntfs.h#2 integrate .. //depot/projects/netsmp/src/sys/fs/ntfs/ntfs_vfsops.c#3 integrate .. //depot/projects/netsmp/src/sys/i386/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/netsmp/src/sys/i386/acpica/acpi_machdep.c#3 integrate .. //depot/projects/netsmp/src/sys/i386/acpica/acpi_wakeup.c#3 integrate .. //depot/projects/netsmp/src/sys/i386/acpica/madt.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/acpica/madt.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/include/param.h#3 integrate .. //depot/projects/netsmp/src/sys/ia64/include/vmparam.h#2 integrate .. //depot/projects/netsmp/src/sys/net/zlib.c#2 integrate .. //depot/projects/netsmp/src/sys/netatalk/at_proto.c#2 integrate Differences ... ==== //depot/projects/netsmp/src/sys/alpha/include/param.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/param.h,v 1.38 2005/01/05 20:05:50 imp Exp $ */ +/* $FreeBSD: src/sys/alpha/include/param.h,v 1.39 2005/09/11 20:51:14 alc Exp $ */ /* From: NetBSD: param.h,v 1.20 1997/09/19 13:52:53 leo Exp */ /*- @@ -106,13 +106,6 @@ #define KERNBASE 0xfffffc0000300000LL /* start of kernel virtual */ #define BTOPKERNBASE ((u_long)KERNBASE >> PGSHIFT) -#define CLSIZE 1 -#define CLSIZELOG2 0 - -/* NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE */ -#define SSIZE 1 /* initial stack size/NBPG */ -#define SINCR 1 /* increment of stack/NBPG */ - #ifndef KSTACK_PAGES #define KSTACK_PAGES 2 /* pages of kstack (with pcb) */ #endif ==== //depot/projects/netsmp/src/sys/alpha/include/vmparam.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/vmparam.h,v 1.10 2005/01/05 20:05:50 imp Exp $ */ +/* $FreeBSD: src/sys/alpha/include/vmparam.h,v 1.11 2005/09/11 20:51:14 alc Exp $ */ /* From: NetBSD: vmparam.h,v 1.6 1997/09/23 23:23:23 mjacob Exp */ #ifndef _ALPHA_VMPARAM_H #define _ALPHA_VMPARAM_H @@ -118,7 +118,7 @@ * by the page replacement algorithm. Basically this says that if you are * swapped in you deserve some resources. We protect the last SAFERSS * pages against paging and will just swap you out rather than paging you. - * Note that each process has at least UPAGES+CLSIZE pages which are not + * Note that each process has at least UPAGES pages which are not * paged anyways, in addition to SAFERSS. */ #define SAFERSS 10 /* nominal ``small'' resident set size ==== //depot/projects/netsmp/src/sys/amd64/acpica/OsdEnvironment.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/OsdEnvironment.c,v 1.12 2004/05/06 02:18:57 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/OsdEnvironment.c,v 1.13 2005/09/11 18:39:00 obrien Exp $"); /* * 6.1 : Environmental support @@ -35,7 +35,7 @@ #include #include -#include "acpi.h" +#include static u_long amd64_acpi_root; ==== //depot/projects/netsmp/src/sys/amd64/acpica/acpi_machdep.c#2 (text+ko) ==== @@ -25,12 +25,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.16 2004/10/11 05:39:14 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.17 2005/09/11 18:39:00 obrien Exp $"); #include #include -#include "acpi.h" +#include #include static int intr_model = ACPI_INTR_PIC; ==== //depot/projects/netsmp/src/sys/amd64/acpica/acpi_wakeup.c#2 (text+ko) ==== @@ -26,12 +26,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.21 2003/08/28 16:30:31 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.22 2005/09/11 18:39:00 obrien Exp $"); #include #include -#include "acpi.h" +#include #include int ==== //depot/projects/netsmp/src/sys/amd64/acpica/madt.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.16 2005/04/15 18:44:53 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.17 2005/09/11 18:39:00 obrien Exp $"); #include #include @@ -48,7 +48,7 @@ #include #include -#include "acpi.h" +#include #include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_asus.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_asus.c,v 1.24 2005/05/09 12:51:48 philip Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_asus.c,v 1.25 2005/09/11 18:39:00 obrien Exp $"); /* * Driver for extra ACPI-controlled gadgets (hotkeys, leds, etc) found on @@ -47,7 +47,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_fujitsu.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_fujitsu.c,v 1.2 2005/04/04 10:21:20 philip Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_fujitsu.c,v 1.3 2005/09/11 18:39:00 obrien Exp $"); #include "opt_acpi.h" #include @@ -37,7 +37,7 @@ #include #include -#include "acpi.h" +#include #include /* Hooks for the ACPI CA debugging infrastructure */ ==== //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_ibm.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_ibm.c,v 1.8 2005/08/04 22:48:36 markus Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_ibm.c,v 1.9 2005/09/11 18:39:00 obrien Exp $"); /* * Driver for extra ACPI-controlled gadgets found on IBM ThinkPad laptops. @@ -42,7 +42,7 @@ #include #include #include -#include "acpi.h" +#include #include "acpi_if.h" #include #include ==== //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_panasonic.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_panasonic.c,v 1.8 2005/05/14 10:51:16 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_panasonic.c,v 1.9 2005/09/11 18:39:00 obrien Exp $"); #include "opt_acpi.h" #include @@ -37,7 +37,7 @@ #include #include -#include "acpi.h" +#include #include #define _COMPONENT ACPI_OEM ==== //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_sony.c#2 (text+ko) ==== @@ -25,13 +25,13 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_sony.c,v 1.8 2005/03/02 09:22:34 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_sony.c,v 1.9 2005/09/11 18:39:00 obrien Exp $"); #include "opt_acpi.h" #include #include #include -#include "acpi.h" +#include #include "acpi_if.h" #include #include ==== //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_toshiba.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_toshiba.c,v 1.16 2005/03/24 19:02:13 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_toshiba.c,v 1.17 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -34,7 +34,7 @@ #include #include -#include "acpi.h" +#include #include #define _COMPONENT ACPI_OEM ==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdDebug.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdDebug.c,v 1.10 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdDebug.c,v 1.11 2005/09/11 18:39:02 obrien Exp $"); #include "opt_ddb.h" #include @@ -41,8 +41,8 @@ #include #include -#include "acpi.h" -#include "acdebug.h" +#include +#include #include UINT32 ==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdHardware.c#3 (text+ko) ==== @@ -30,9 +30,9 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.16 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.17 2005/09/11 18:39:02 obrien Exp $"); -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdInterrupt.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdInterrupt.c,v 1.20 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdInterrupt.c,v 1.21 2005/09/11 18:39:02 obrien Exp $"); #include #include @@ -39,7 +39,7 @@ #include #include -#include "acpi.h" +#include #include #define _COMPONENT ACPI_OS_SERVICES ==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdMemory.c#3 (text+ko) ==== @@ -31,9 +31,9 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdMemory.c,v 1.12 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdMemory.c,v 1.13 2005/09/11 18:39:02 obrien Exp $"); -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSchedule.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSchedule.c,v 1.33 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSchedule.c,v 1.34 2005/09/11 18:39:02 obrien Exp $"); #include "opt_acpi.h" #include @@ -44,7 +44,7 @@ #include #include -#include "acpi.h" +#include #include #define _COMPONENT ACPI_OS_SERVICES ==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdStream.c#3 (text+ko) ==== @@ -30,9 +30,9 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdStream.c,v 1.5 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdStream.c,v 1.6 2005/09/11 18:39:02 obrien Exp $"); -#include "acpi.h" +#include void AcpiOsPrintf(const char *Format, ...) ==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSynch.c#3 (text+ko) ==== @@ -30,9 +30,9 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.23 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.24 2005/09/11 18:39:02 obrien Exp $"); -#include "acpi.h" +#include #include "opt_acpi.h" #include ==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdTable.c#3 (text+ko) ==== @@ -29,14 +29,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdTable.c,v 1.9 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdTable.c,v 1.10 2005/09/11 18:39:02 obrien Exp $"); #include #include #include #include -#include "acpi.h" +#include #include #undef _COMPONENT ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.214 2005/06/03 20:12:12 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.215 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -55,7 +55,7 @@ #include #include -#include "acpi.h" +#include #include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_acad.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_acad.c,v 1.34 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_acad.c,v 1.35 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -40,7 +40,7 @@ #include #include -#include "acpi.h" +#include #include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_battery.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.18 2005/08/11 17:12:57 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.19 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -36,7 +36,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_button.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_button.c,v 1.30 2005/03/02 09:22:34 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_button.c,v 1.31 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -35,7 +35,7 @@ #include #include -#include "acpi.h" +#include #include /* Hooks for the ACPI CA debugging infrastructure */ ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_cmbat.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.40 2005/07/23 19:35:59 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.41 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -41,7 +41,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_cpu.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.57 2005/04/10 19:21:42 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.58 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -46,7 +46,7 @@ #include #include -#include "acpi.h" +#include #include /* ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_ec.c#2 (text+ko) ==== @@ -136,7 +136,7 @@ *****************************************************************************/ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.65 2005/05/12 22:35:08 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.66 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -150,7 +150,7 @@ #include #include -#include "acpi.h" +#include #include /* Hooks for the ACPI CA debugging infrastructure */ ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_if.m#3 (text+ko) ==== @@ -23,12 +23,12 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/sys/dev/acpica/acpi_if.m,v 1.7 2005/07/23 19:35:59 njl Exp $ +# $FreeBSD: src/sys/dev/acpica/acpi_if.m,v 1.8 2005/09/11 18:39:01 obrien Exp $ # #include #include -#include "acpi.h" +#include INTERFACE acpi; ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_isab.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.9 2004/06/29 19:02:27 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.10 2005/09/11 18:39:01 obrien Exp $"); /* * ISA Bridge driver for Generic ISA Bus Devices. See section 10.7 of the @@ -39,7 +39,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_lid.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_lid.c,v 1.27 2004/08/25 20:09:15 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_lid.c,v 1.28 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -37,7 +37,7 @@ #include #include -#include "acpi.h" +#include #include /* Hooks for the ACPI CA debugging infrastructure */ ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_package.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_package.c,v 1.7 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_package.c,v 1.8 2005/09/11 18:39:01 obrien Exp $"); #include #include @@ -36,7 +36,7 @@ #include #include -#include "acpi.h" +#include #include /* ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_pci.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.26 2005/01/06 01:42:24 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.27 2005/09/11 18:39:01 obrien Exp $"); #include #include @@ -36,7 +36,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_pci_link.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.45 2005/07/27 15:21:32 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.46 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -35,7 +35,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib.c,v 1.56 2005/03/08 17:22:11 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib.c,v 1.57 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -34,7 +34,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib_acpi.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib_acpi.c,v 1.47 2005/03/02 09:22:34 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib_acpi.c,v 1.48 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -36,7 +36,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib_pci.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib_pci.c,v 1.12 2004/12/27 05:36:47 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib_pci.c,v 1.13 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" @@ -36,7 +36,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_perf.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_perf.c,v 1.21 2005/05/29 04:42:16 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_perf.c,v 1.22 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -44,7 +44,7 @@ #include #include -#include "acpi.h" +#include #include #include "cpufreq_if.h" ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_powerres.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_powerres.c,v 1.28 2004/12/27 05:36:47 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_powerres.c,v 1.29 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -33,7 +33,7 @@ #include #include -#include "acpi.h" +#include #include /* ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_quirk.c#3 (text+ko) ==== @@ -25,12 +25,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_quirk.c,v 1.2 2005/07/22 23:10:02 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_quirk.c,v 1.3 2005/09/11 18:39:01 obrien Exp $"); #include #include -#include "acpi.h" +#include #include enum ops_t { ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_resource.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_resource.c,v 1.34 2005/03/18 11:57:44 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_resource.c,v 1.35 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -39,7 +39,7 @@ #include #include -#include "acpi.h" +#include #include /* Hooks for the ACPI CA debugging infrastructure */ ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_thermal.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.59 2005/08/26 02:21:02 kan Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.60 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -45,7 +45,7 @@ #include "cpufreq_if.h" -#include "acpi.h" +#include #include /* Hooks for the ACPI CA debugging infrastructure */ ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_throttle.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_throttle.c,v 1.7 2005/04/10 20:04:30 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_throttle.c,v 1.8 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -39,7 +39,7 @@ #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_timer.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_timer.c,v 1.38 2005/03/02 09:22:34 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_timer.c,v 1.39 2005/09/11 18:39:01 obrien Exp $"); #include "opt_acpi.h" #include @@ -40,7 +40,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_video.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_video.c,v 1.10 2005/03/02 09:22:34 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_video.c,v 1.11 2005/09/11 18:39:01 obrien Exp $"); #include #include @@ -38,7 +38,7 @@ #include #include -#include "acpi.h" +#include #include /* ACPI video extension driver. */ ==== //depot/projects/netsmp/src/sys/dev/fdc/fdc_acpi.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/fdc/fdc_acpi.c,v 1.10 2004/09/29 19:08:34 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fdc/fdc_acpi.c,v 1.11 2005/09/11 18:39:02 obrien Exp $"); #include #include @@ -35,7 +35,7 @@ #include #include -#include "acpi.h" +#include #include #include ==== //depot/projects/netsmp/src/sys/dev/mpt/mpt_pci.c#3 (text+ko) ==== @@ -63,7 +63,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt_pci.c,v 1.21 2005/08/03 14:08:41 gibbs Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt_pci.c,v 1.22 2005/09/11 19:58:19 mjacob Exp $"); #include #include @@ -97,6 +97,10 @@ #define PCI_PRODUCT_LSI_FC929 0x0622 #endif +#ifndef PCI_PRODUCT_LSI_FC929X +#define PCI_PRODUCT_LSI_FC929X 0x0626 +#endif + >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Sep 11 22:06:23 2005 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 B13BE16A421; Sun, 11 Sep 2005 22:06:22 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 86DDF16A41F for ; Sun, 11 Sep 2005 22:06:22 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5132A43D49 for ; Sun, 11 Sep 2005 22:06:22 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8BM6MMF081427 for ; Sun, 11 Sep 2005 22:06:22 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BM6Mae081424 for perforce@freebsd.org; Sun, 11 Sep 2005 22:06:22 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 11 Sep 2005 22:06:22 GMT Message-Id: <200509112206.j8BM6Mae081424@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 83422 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, 11 Sep 2005 22:06:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=83422 Change 83422 by rwatson@rwatson_peppercorn on 2005/09/11 22:05:22 When generating polling results for fifos, don't report read-only fifos as writable, or write-only fifos as readable. That would be dumb. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#3 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#3 (text+ko) ==== @@ -615,7 +615,7 @@ fip = fp->f_data; levents = events & (POLLIN | POLLINIGNEOF | POLLPRI | POLLRDNORM | POLLRDBAND); - if (levents) { + if ((fp->f_flag & FREAD) && levents) { /* * If POLLIN or POLLRDNORM is requested and POLLINIGNEOF is * not, then convert the first two to the last one. This @@ -641,7 +641,7 @@ } } levents = events & (POLLOUT | POLLWRNORM | POLLWRBAND); - if (levents) { + if ((fp->f_flag & FWRITE) && levents) { filetmp.f_data = fip->fi_writesock; filetmp.f_cred = cred; if (filetmp.f_data) { From owner-p4-projects@FreeBSD.ORG Sun Sep 11 22:23:44 2005 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 230C016A421; Sun, 11 Sep 2005 22:23:44 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EF54F16A41F for ; Sun, 11 Sep 2005 22:23:43 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BA9F543D46 for ; Sun, 11 Sep 2005 22:23:43 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8BMNhXI082241 for ; Sun, 11 Sep 2005 22:23:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8BMNh3K082238 for perforce@freebsd.org; Sun, 11 Sep 2005 22:23:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 11 Sep 2005 22:23:43 GMT Message-Id: <200509112223.j8BMNh3K082238@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 83423 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, 11 Sep 2005 22:23:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=83423 Change 83423 by rwatson@rwatson_peppercorn on 2005/09/11 22:23:07 Fix more of the previous bug: poll the write socket only for write-related events. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#4 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#4 (text+ko) ==== @@ -645,7 +645,7 @@ filetmp.f_data = fip->fi_writesock; filetmp.f_cred = cred; if (filetmp.f_data) { - revents |= soo_poll(&filetmp, events, cred, td); + revents |= soo_poll(&filetmp, levents, cred, td); } } return (revents); From owner-p4-projects@FreeBSD.ORG Mon Sep 12 03:34:26 2005 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 9039616A422; Mon, 12 Sep 2005 03:34:25 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4F55916A41F for ; Mon, 12 Sep 2005 03:34:25 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 93E9643D46 for ; Mon, 12 Sep 2005 03:34:24 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8C3YOb8000581 for ; Mon, 12 Sep 2005 03:34:24 GMT (envelope-from gnn@neville-neil.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8C3YONJ000578 for perforce@freebsd.org; Mon, 12 Sep 2005 03:34:24 GMT (envelope-from gnn@neville-neil.com) Date: Mon, 12 Sep 2005 03:34:24 GMT Message-Id: <200509120334.j8C3YONJ000578@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gnn@neville-neil.com using -f From: "George V. Neville-Neil" To: Perforce Change Reviews Cc: Subject: PERFORCE change 83428 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, 12 Sep 2005 03:34:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=83428 Change 83428 by gnn@gnn_ipsecv6_integ on 2005/09/12 03:33:26 Branch the head of the tree into a project branch for the IPSec/IPv6 cleanup work. Affected files ... .. //depot/projects/ipsecv6/Makefile#1 branch .. //depot/projects/ipsecv6/alpha/Makefile#1 branch .. //depot/projects/ipsecv6/alpha/alpha/api_up1000.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/atomic.s#1 branch .. //depot/projects/ipsecv6/alpha/alpha/autoconf.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/busdma_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/busspace.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/clock.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/clock_if.m#1 branch .. //depot/projects/ipsecv6/alpha/alpha/cpuconf.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/db_disasm.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/db_instruction.h#1 branch .. //depot/projects/ipsecv6/alpha/alpha/db_interface.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/db_trace.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_1000a.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_2100_a50.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_2100_a500.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_3000_300.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_3000_500.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_axppci_33.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_eb164.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_eb64plus.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_kn20aa.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_kn300.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_kn8ae.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_st550.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dec_st6600.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/divrem.m4#1 branch .. //depot/projects/ipsecv6/alpha/alpha/dump_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/elf_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/exception.s#1 branch .. //depot/projects/ipsecv6/alpha/alpha/fp_emulate.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/gdb_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/genassym.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/ieee_float.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/ieee_float.h#1 branch .. //depot/projects/ipsecv6/alpha/alpha/in_cksum.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/interrupt.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/locore.s#1 branch .. //depot/projects/ipsecv6/alpha/alpha/machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/mem.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/mp_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/pal.s#1 branch .. //depot/projects/ipsecv6/alpha/alpha/pmap.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/prom.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/prom_disp.s#1 branch .. //depot/projects/ipsecv6/alpha/alpha/promcons.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/sgmap.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/support.s#1 branch .. //depot/projects/ipsecv6/alpha/alpha/swtch.s#1 branch .. //depot/projects/ipsecv6/alpha/alpha/sys_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/trap.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/uio_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/uma_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/alpha/vm_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/compile/.cvsignore#1 branch .. //depot/projects/ipsecv6/alpha/conf/.cvsignore#1 branch .. //depot/projects/ipsecv6/alpha/conf/GENERIC#1 branch .. //depot/projects/ipsecv6/alpha/conf/GENERIC.hints#1 branch .. //depot/projects/ipsecv6/alpha/conf/Makefile#1 branch .. //depot/projects/ipsecv6/alpha/conf/NOTES#1 branch .. //depot/projects/ipsecv6/alpha/include/_bus.h#1 branch .. //depot/projects/ipsecv6/alpha/include/_inttypes.h#1 branch .. //depot/projects/ipsecv6/alpha/include/_limits.h#1 branch .. //depot/projects/ipsecv6/alpha/include/_stdint.h#1 branch .. //depot/projects/ipsecv6/alpha/include/_types.h#1 branch .. //depot/projects/ipsecv6/alpha/include/alpha_cpu.h#1 branch .. //depot/projects/ipsecv6/alpha/include/asm.h#1 branch .. //depot/projects/ipsecv6/alpha/include/atomic.h#1 branch .. //depot/projects/ipsecv6/alpha/include/bootinfo.h#1 branch .. //depot/projects/ipsecv6/alpha/include/bus.h#1 branch .. //depot/projects/ipsecv6/alpha/include/bus_dma.h#1 branch .. //depot/projects/ipsecv6/alpha/include/bwx.h#1 branch .. //depot/projects/ipsecv6/alpha/include/chipset.h#1 branch .. //depot/projects/ipsecv6/alpha/include/clock.h#1 branch .. //depot/projects/ipsecv6/alpha/include/clockvar.h#1 branch .. //depot/projects/ipsecv6/alpha/include/cpu.h#1 branch .. //depot/projects/ipsecv6/alpha/include/cpuconf.h#1 branch .. //depot/projects/ipsecv6/alpha/include/cpufunc.h#1 branch .. //depot/projects/ipsecv6/alpha/include/db_machdep.h#1 branch .. //depot/projects/ipsecv6/alpha/include/elf.h#1 branch .. //depot/projects/ipsecv6/alpha/include/endian.h#1 branch .. //depot/projects/ipsecv6/alpha/include/exec.h#1 branch .. //depot/projects/ipsecv6/alpha/include/float.h#1 branch .. //depot/projects/ipsecv6/alpha/include/floatingpoint.h#1 branch .. //depot/projects/ipsecv6/alpha/include/fpu.h#1 branch .. //depot/projects/ipsecv6/alpha/include/frame.h#1 branch .. //depot/projects/ipsecv6/alpha/include/gdb_machdep.h#1 branch .. //depot/projects/ipsecv6/alpha/include/ieee.h#1 branch .. //depot/projects/ipsecv6/alpha/include/ieeefp.h#1 branch .. //depot/projects/ipsecv6/alpha/include/in_cksum.h#1 branch .. //depot/projects/ipsecv6/alpha/include/inst.h#1 branch .. //depot/projects/ipsecv6/alpha/include/intr.h#1 branch .. //depot/projects/ipsecv6/alpha/include/intrcnt.h#1 branch .. //depot/projects/ipsecv6/alpha/include/ioctl_bt848.h#1 branch .. //depot/projects/ipsecv6/alpha/include/ioctl_meteor.h#1 branch .. //depot/projects/ipsecv6/alpha/include/kdb.h#1 branch .. //depot/projects/ipsecv6/alpha/include/limits.h#1 branch .. //depot/projects/ipsecv6/alpha/include/md_var.h#1 branch .. //depot/projects/ipsecv6/alpha/include/memdev.h#1 branch .. //depot/projects/ipsecv6/alpha/include/mutex.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pal.h#1 branch .. //depot/projects/ipsecv6/alpha/include/param.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pc/bios.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pc/display.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pc/vesa.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pcb.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pcpu.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pmap.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pmc_mdep.h#1 branch .. //depot/projects/ipsecv6/alpha/include/ppireg.h#1 branch .. //depot/projects/ipsecv6/alpha/include/proc.h#1 branch .. //depot/projects/ipsecv6/alpha/include/profile.h#1 branch .. //depot/projects/ipsecv6/alpha/include/prom.h#1 branch .. //depot/projects/ipsecv6/alpha/include/pte.h#1 branch .. //depot/projects/ipsecv6/alpha/include/ptrace.h#1 branch .. //depot/projects/ipsecv6/alpha/include/reg.h#1 branch .. //depot/projects/ipsecv6/alpha/include/reloc.h#1 branch .. //depot/projects/ipsecv6/alpha/include/resource.h#1 branch .. //depot/projects/ipsecv6/alpha/include/rpb.h#1 branch .. //depot/projects/ipsecv6/alpha/include/runq.h#1 branch .. //depot/projects/ipsecv6/alpha/include/setjmp.h#1 branch .. //depot/projects/ipsecv6/alpha/include/sf_buf.h#1 branch .. //depot/projects/ipsecv6/alpha/include/sgmap.h#1 branch .. //depot/projects/ipsecv6/alpha/include/sigframe.h#1 branch .. //depot/projects/ipsecv6/alpha/include/signal.h#1 branch .. //depot/projects/ipsecv6/alpha/include/smp.h#1 branch .. //depot/projects/ipsecv6/alpha/include/stdarg.h#1 branch .. //depot/projects/ipsecv6/alpha/include/swiz.h#1 branch .. //depot/projects/ipsecv6/alpha/include/sysarch.h#1 branch .. //depot/projects/ipsecv6/alpha/include/timerreg.h#1 branch .. //depot/projects/ipsecv6/alpha/include/ucontext.h#1 branch .. //depot/projects/ipsecv6/alpha/include/varargs.h#1 branch .. //depot/projects/ipsecv6/alpha/include/vmparam.h#1 branch .. //depot/projects/ipsecv6/alpha/isa/isa.c#1 branch .. //depot/projects/ipsecv6/alpha/isa/isa_dma.c#1 branch .. //depot/projects/ipsecv6/alpha/isa/isavar.h#1 branch .. //depot/projects/ipsecv6/alpha/isa/mcclock_isa.c#1 branch .. //depot/projects/ipsecv6/alpha/linux/Makefile#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux.h#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_dummy.c#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_genassym.c#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_ipc64.h#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_locore.s#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_machdep.c#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_proto.h#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_syscall.h#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_sysent.c#1 branch .. //depot/projects/ipsecv6/alpha/linux/linux_sysvec.c#1 branch .. //depot/projects/ipsecv6/alpha/linux/syscalls.conf#1 branch .. //depot/projects/ipsecv6/alpha/linux/syscalls.master#1 branch .. //depot/projects/ipsecv6/alpha/mcbus/mcbus.c#1 branch .. //depot/projects/ipsecv6/alpha/mcbus/mcbusreg.h#1 branch .. //depot/projects/ipsecv6/alpha/mcbus/mcbusvar.h#1 branch .. //depot/projects/ipsecv6/alpha/mcbus/mcmem.c#1 branch .. //depot/projects/ipsecv6/alpha/mcbus/mcpcia.c#1 branch .. //depot/projects/ipsecv6/alpha/mcbus/mcpciareg.h#1 branch .. //depot/projects/ipsecv6/alpha/mcbus/mcpciavar.h#1 branch .. //depot/projects/ipsecv6/alpha/osf1/Makefile#1 branch .. //depot/projects/ipsecv6/alpha/osf1/README.mach-traps#1 branch .. //depot/projects/ipsecv6/alpha/osf1/exec_ecoff.h#1 branch .. //depot/projects/ipsecv6/alpha/osf1/imgact_osf1.c#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1.h#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_ioctl.c#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_misc.c#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_mount.c#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_proto.h#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_signal.c#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_signal.h#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_syscall.h#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_sysent.c#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_sysvec.c#1 branch .. //depot/projects/ipsecv6/alpha/osf1/osf1_util.h#1 branch .. //depot/projects/ipsecv6/alpha/osf1/syscalls.conf#1 branch .. //depot/projects/ipsecv6/alpha/osf1/syscalls.master#1 branch .. //depot/projects/ipsecv6/alpha/pci/alphapci_if.m#1 branch .. //depot/projects/ipsecv6/alpha/pci/apecs.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/apecs_pci.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/apecsreg.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/apecsvar.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/bwx.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/cia.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/cia_pci.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/ciareg.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/ciavar.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/irongate.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/irongate_pci.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/irongatereg.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/irongatevar.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/lca.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/lca_pci.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/lcareg.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/lcavar.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/pci_eb164_intr.s#1 branch .. //depot/projects/ipsecv6/alpha/pci/pci_eb64plus_intr.s#1 branch .. //depot/projects/ipsecv6/alpha/pci/pcibus.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/pcibus.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/swiz.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/t2.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/t2_pci.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/t2reg.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/t2var.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/tsunami.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/tsunami_pci.c#1 branch .. //depot/projects/ipsecv6/alpha/pci/tsunamireg.h#1 branch .. //depot/projects/ipsecv6/alpha/pci/tsunamivar.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/dwlpx.c#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/dwlpxreg.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/dwlpxvar.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/gbus.c#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/gbusreg.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/gbusvar.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/kftxx.c#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/kftxxreg.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/kftxxvar.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/mcclock_tlsb.c#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/tlsb.c#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/tlsbcpu.c#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/tlsbmem.c#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/tlsbreg.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/tlsbvar.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/zs_tlsb.c#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/zsreg.h#1 branch .. //depot/projects/ipsecv6/alpha/tlsb/zsvar.h#1 branch .. //depot/projects/ipsecv6/amd64/Makefile#1 branch .. //depot/projects/ipsecv6/amd64/acpica/OsdEnvironment.c#1 branch .. //depot/projects/ipsecv6/amd64/acpica/acpi_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/acpica/acpi_wakeup.c#1 branch .. //depot/projects/ipsecv6/amd64/acpica/madt.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/amd64_mem.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/apic_vector.S#1 branch .. //depot/projects/ipsecv6/amd64/amd64/atomic.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/autoconf.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/bios.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/busdma_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/cpu_switch.S#1 branch .. //depot/projects/ipsecv6/amd64/amd64/db_disasm.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/db_interface.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/db_trace.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/dump_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/elf_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/exception.S#1 branch .. //depot/projects/ipsecv6/amd64/amd64/fpu.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/gdb_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/genassym.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/identcpu.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/in_cksum.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/initcpu.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/intr_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/io.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/io_apic.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/legacy.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/local_apic.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/locore.S#1 branch .. //depot/projects/ipsecv6/amd64/amd64/machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/mem.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/mp_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/mp_watchdog.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/mpboot.S#1 branch .. //depot/projects/ipsecv6/amd64/amd64/mptable.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/mptable_pci.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/nexus.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/pmap.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/prof_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/sigtramp.S#1 branch .. //depot/projects/ipsecv6/amd64/amd64/support.S#1 branch .. //depot/projects/ipsecv6/amd64/amd64/sys_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/trap.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/tsc.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/uio_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/uma_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/amd64/vm_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/compile/.cvsignore#1 branch .. //depot/projects/ipsecv6/amd64/conf/.cvsignore#1 branch .. //depot/projects/ipsecv6/amd64/conf/GENERIC#1 branch .. //depot/projects/ipsecv6/amd64/conf/GENERIC.hints#1 branch .. //depot/projects/ipsecv6/amd64/conf/Makefile#1 branch .. //depot/projects/ipsecv6/amd64/conf/NOTES#1 branch .. //depot/projects/ipsecv6/amd64/ia32/ia32_exception.S#1 branch .. //depot/projects/ipsecv6/amd64/ia32/ia32_reg.c#1 branch .. //depot/projects/ipsecv6/amd64/ia32/ia32_signal.c#1 branch .. //depot/projects/ipsecv6/amd64/ia32/ia32_sigtramp.S#1 branch .. //depot/projects/ipsecv6/amd64/ia32/ia32_syscall.c#1 branch .. //depot/projects/ipsecv6/amd64/include/_bus.h#1 branch .. //depot/projects/ipsecv6/amd64/include/_inttypes.h#1 branch .. //depot/projects/ipsecv6/amd64/include/_limits.h#1 branch .. //depot/projects/ipsecv6/amd64/include/_stdint.h#1 branch .. //depot/projects/ipsecv6/amd64/include/_types.h#1 branch .. //depot/projects/ipsecv6/amd64/include/acpica_machdep.h#1 branch .. //depot/projects/ipsecv6/amd64/include/apicreg.h#1 branch .. //depot/projects/ipsecv6/amd64/include/apicvar.h#1 branch .. //depot/projects/ipsecv6/amd64/include/asm.h#1 branch .. //depot/projects/ipsecv6/amd64/include/asmacros.h#1 branch .. //depot/projects/ipsecv6/amd64/include/atomic.h#1 branch .. //depot/projects/ipsecv6/amd64/include/bus.h#1 branch .. //depot/projects/ipsecv6/amd64/include/bus_dma.h#1 branch .. //depot/projects/ipsecv6/amd64/include/clock.h#1 branch .. //depot/projects/ipsecv6/amd64/include/cpu.h#1 branch .. //depot/projects/ipsecv6/amd64/include/cpufunc.h#1 branch .. //depot/projects/ipsecv6/amd64/include/cputypes.h#1 branch .. //depot/projects/ipsecv6/amd64/include/db_machdep.h#1 branch .. //depot/projects/ipsecv6/amd64/include/elf.h#1 branch .. //depot/projects/ipsecv6/amd64/include/endian.h#1 branch .. //depot/projects/ipsecv6/amd64/include/exec.h#1 branch .. //depot/projects/ipsecv6/amd64/include/float.h#1 branch .. //depot/projects/ipsecv6/amd64/include/floatingpoint.h#1 branch .. //depot/projects/ipsecv6/amd64/include/fpu.h#1 branch .. //depot/projects/ipsecv6/amd64/include/frame.h#1 branch .. //depot/projects/ipsecv6/amd64/include/gdb_machdep.h#1 branch .. //depot/projects/ipsecv6/amd64/include/ieeefp.h#1 branch .. //depot/projects/ipsecv6/amd64/include/in_cksum.h#1 branch .. //depot/projects/ipsecv6/amd64/include/intr_machdep.h#1 branch .. //depot/projects/ipsecv6/amd64/include/iodev.h#1 branch .. //depot/projects/ipsecv6/amd64/include/kdb.h#1 branch .. //depot/projects/ipsecv6/amd64/include/legacyvar.h#1 branch .. //depot/projects/ipsecv6/amd64/include/limits.h#1 branch .. //depot/projects/ipsecv6/amd64/include/md_var.h#1 branch .. //depot/projects/ipsecv6/amd64/include/memdev.h#1 branch .. //depot/projects/ipsecv6/amd64/include/metadata.h#1 branch .. //depot/projects/ipsecv6/amd64/include/mp_watchdog.h#1 branch .. //depot/projects/ipsecv6/amd64/include/mptable.h#1 branch .. //depot/projects/ipsecv6/amd64/include/mutex.h#1 branch .. //depot/projects/ipsecv6/amd64/include/param.h#1 branch .. //depot/projects/ipsecv6/amd64/include/pc/bios.h#1 branch .. //depot/projects/ipsecv6/amd64/include/pc/display.h#1 branch .. //depot/projects/ipsecv6/amd64/include/pcb.h#1 branch .. //depot/projects/ipsecv6/amd64/include/pcb_ext.h#1 branch .. //depot/projects/ipsecv6/amd64/include/pci_cfgreg.h#1 branch .. //depot/projects/ipsecv6/amd64/include/pcpu.h#1 branch .. //depot/projects/ipsecv6/amd64/include/pmap.h#1 branch .. //depot/projects/ipsecv6/amd64/include/pmc_mdep.h#1 branch .. //depot/projects/ipsecv6/amd64/include/ppireg.h#1 branch .. //depot/projects/ipsecv6/amd64/include/proc.h#1 branch .. //depot/projects/ipsecv6/amd64/include/profile.h#1 branch .. //depot/projects/ipsecv6/amd64/include/psl.h#1 branch .. //depot/projects/ipsecv6/amd64/include/ptrace.h#1 branch .. //depot/projects/ipsecv6/amd64/include/reg.h#1 branch .. //depot/projects/ipsecv6/amd64/include/reloc.h#1 branch .. //depot/projects/ipsecv6/amd64/include/resource.h#1 branch .. //depot/projects/ipsecv6/amd64/include/runq.h#1 branch .. //depot/projects/ipsecv6/amd64/include/segments.h#1 branch .. //depot/projects/ipsecv6/amd64/include/setjmp.h#1 branch .. //depot/projects/ipsecv6/amd64/include/sf_buf.h#1 branch .. //depot/projects/ipsecv6/amd64/include/sigframe.h#1 branch .. //depot/projects/ipsecv6/amd64/include/signal.h#1 branch .. //depot/projects/ipsecv6/amd64/include/smp.h#1 branch .. //depot/projects/ipsecv6/amd64/include/specialreg.h#1 branch .. //depot/projects/ipsecv6/amd64/include/stdarg.h#1 branch .. //depot/projects/ipsecv6/amd64/include/sysarch.h#1 branch .. //depot/projects/ipsecv6/amd64/include/timerreg.h#1 branch .. //depot/projects/ipsecv6/amd64/include/trap.h#1 branch .. //depot/projects/ipsecv6/amd64/include/tss.h#1 branch .. //depot/projects/ipsecv6/amd64/include/ucontext.h#1 branch .. //depot/projects/ipsecv6/amd64/include/varargs.h#1 branch .. //depot/projects/ipsecv6/amd64/include/vmparam.h#1 branch .. //depot/projects/ipsecv6/amd64/isa/atpic.c#1 branch .. //depot/projects/ipsecv6/amd64/isa/atpic_vector.S#1 branch .. //depot/projects/ipsecv6/amd64/isa/clock.c#1 branch .. //depot/projects/ipsecv6/amd64/isa/elcr.c#1 branch .. //depot/projects/ipsecv6/amd64/isa/icu.h#1 branch .. //depot/projects/ipsecv6/amd64/isa/isa.c#1 branch .. //depot/projects/ipsecv6/amd64/isa/isa.h#1 branch .. //depot/projects/ipsecv6/amd64/isa/isa_dma.c#1 branch .. //depot/projects/ipsecv6/amd64/isa/nmi.c#1 branch .. //depot/projects/ipsecv6/amd64/linux32/Makefile#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux.h#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_dummy.c#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_genassym.c#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_ipc64.h#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_locore.s#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_machdep.c#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_proto.h#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_syscall.h#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_sysent.c#1 branch .. //depot/projects/ipsecv6/amd64/linux32/linux32_sysvec.c#1 branch .. //depot/projects/ipsecv6/amd64/linux32/syscalls.conf#1 branch .. //depot/projects/ipsecv6/amd64/linux32/syscalls.master#1 branch .. //depot/projects/ipsecv6/amd64/pci/pci_bus.c#1 branch .. //depot/projects/ipsecv6/amd64/pci/pci_cfgreg.c#1 branch .. //depot/projects/ipsecv6/arm/arm/autoconf.c#1 branch .. //depot/projects/ipsecv6/arm/arm/bcopy_page.S#1 branch .. //depot/projects/ipsecv6/arm/arm/bcopyinout.S#1 branch .. //depot/projects/ipsecv6/arm/arm/bcopyinout_xscale.S#1 branch .. //depot/projects/ipsecv6/arm/arm/blockio.S#1 branch .. //depot/projects/ipsecv6/arm/arm/bootconfig.c#1 branch .. //depot/projects/ipsecv6/arm/arm/bus_space_asm_generic.S#1 branch .. //depot/projects/ipsecv6/arm/arm/busdma_machdep.c#1 branch .. //depot/projects/ipsecv6/arm/arm/copystr.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc.c#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_arm10.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_arm7tdmi.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_arm8.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_arm9.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_armv4.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_ixp12x0.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_sa1.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_sa11x0.S#1 branch .. //depot/projects/ipsecv6/arm/arm/cpufunc_asm_xscale.S#1 branch .. //depot/projects/ipsecv6/arm/arm/db_disasm.c#1 branch .. //depot/projects/ipsecv6/arm/arm/db_interface.c#1 branch .. //depot/projects/ipsecv6/arm/arm/db_trace.c#1 branch .. //depot/projects/ipsecv6/arm/arm/disassem.c#1 branch .. //depot/projects/ipsecv6/arm/arm/dump_machdep.c#1 branch .. //depot/projects/ipsecv6/arm/arm/elf_machdep.c#1 branch .. //depot/projects/ipsecv6/arm/arm/exception.S#1 branch .. //depot/projects/ipsecv6/arm/arm/fiq.c#1 branch .. //depot/projects/ipsecv6/arm/arm/fiq_subr.S#1 branch .. //depot/projects/ipsecv6/arm/arm/fusu.S#1 branch .. //depot/projects/ipsecv6/arm/arm/genassym.c#1 branch .. //depot/projects/ipsecv6/arm/arm/identcpu.c#1 branch .. //depot/projects/ipsecv6/arm/arm/in_cksum.c#1 branch .. //depot/projects/ipsecv6/arm/arm/in_cksum_arm.S#1 branch .. //depot/projects/ipsecv6/arm/arm/intr.c#1 branch .. //depot/projects/ipsecv6/arm/arm/irq_dispatch.S#1 branch .. //depot/projects/ipsecv6/arm/arm/locore.S#1 branch .. //depot/projects/ipsecv6/arm/arm/machdep.c#1 branch .. //depot/projects/ipsecv6/arm/arm/mem.c#1 branch .. //depot/projects/ipsecv6/arm/arm/nexus.c#1 branch .. //depot/projects/ipsecv6/arm/arm/nexus_io.c#1 branch .. //depot/projects/ipsecv6/arm/arm/nexus_io_asm.S#1 branch .. //depot/projects/ipsecv6/arm/arm/pmap.c#1 branch .. //depot/projects/ipsecv6/arm/arm/setcpsr.S#1 branch .. //depot/projects/ipsecv6/arm/arm/setstack.s#1 branch .. //depot/projects/ipsecv6/arm/arm/support.S#1 branch .. //depot/projects/ipsecv6/arm/arm/swtch.S#1 branch .. //depot/projects/ipsecv6/arm/arm/sys_machdep.c#1 branch .. //depot/projects/ipsecv6/arm/arm/trap.c#1 branch .. //depot/projects/ipsecv6/arm/arm/uio_machdep.c#1 branch .. //depot/projects/ipsecv6/arm/arm/undefined.c#1 branch .. //depot/projects/ipsecv6/arm/arm/vectors.S#1 branch .. //depot/projects/ipsecv6/arm/arm/vm_machdep.c#1 branch .. //depot/projects/ipsecv6/arm/compile/.cvsignore#1 branch .. //depot/projects/ipsecv6/arm/conf/.cvsignore#1 branch .. //depot/projects/ipsecv6/arm/conf/IQ31244#1 branch .. //depot/projects/ipsecv6/arm/conf/SIMICS#1 branch .. //depot/projects/ipsecv6/arm/include/_bus.h#1 branch .. //depot/projects/ipsecv6/arm/include/_inttypes.h#1 branch .. //depot/projects/ipsecv6/arm/include/_limits.h#1 branch .. //depot/projects/ipsecv6/arm/include/_stdint.h#1 branch .. //depot/projects/ipsecv6/arm/include/_types.h#1 branch .. //depot/projects/ipsecv6/arm/include/armreg.h#1 branch .. //depot/projects/ipsecv6/arm/include/asm.h#1 branch .. //depot/projects/ipsecv6/arm/include/asmacros.h#1 branch .. //depot/projects/ipsecv6/arm/include/atomic.h#1 branch .. //depot/projects/ipsecv6/arm/include/blockio.h#1 branch .. //depot/projects/ipsecv6/arm/include/bootconfig.h#1 branch .. //depot/projects/ipsecv6/arm/include/bus.h#1 branch .. //depot/projects/ipsecv6/arm/include/bus_dma.h#1 branch .. //depot/projects/ipsecv6/arm/include/clock.h#1 branch .. //depot/projects/ipsecv6/arm/include/cpu.h#1 branch .. //depot/projects/ipsecv6/arm/include/cpuconf.h#1 branch .. //depot/projects/ipsecv6/arm/include/cpufunc.h#1 branch .. //depot/projects/ipsecv6/arm/include/db_machdep.h#1 branch .. //depot/projects/ipsecv6/arm/include/disassem.h#1 branch .. //depot/projects/ipsecv6/arm/include/elf.h#1 branch .. //depot/projects/ipsecv6/arm/include/endian.h#1 branch .. //depot/projects/ipsecv6/arm/include/exec.h#1 branch .. //depot/projects/ipsecv6/arm/include/fiq.h#1 branch .. //depot/projects/ipsecv6/arm/include/float.h#1 branch .. //depot/projects/ipsecv6/arm/include/floatingpoint.h#1 branch .. //depot/projects/ipsecv6/arm/include/fp.h#1 branch .. //depot/projects/ipsecv6/arm/include/frame.h#1 branch .. //depot/projects/ipsecv6/arm/include/ieee.h#1 branch .. //depot/projects/ipsecv6/arm/include/ieeefp.h#1 branch .. //depot/projects/ipsecv6/arm/include/in_cksum.h#1 branch .. //depot/projects/ipsecv6/arm/include/intr.h#1 branch .. //depot/projects/ipsecv6/arm/include/katelib.h#1 branch .. //depot/projects/ipsecv6/arm/include/kdb.h#1 branch .. //depot/projects/ipsecv6/arm/include/limits.h#1 branch .. //depot/projects/ipsecv6/arm/include/machdep.h#1 branch .. //depot/projects/ipsecv6/arm/include/md_var.h#1 branch .. //depot/projects/ipsecv6/arm/include/memdev.h#1 branch .. //depot/projects/ipsecv6/arm/include/metadata.h#1 branch .. //depot/projects/ipsecv6/arm/include/mutex.h#1 branch .. //depot/projects/ipsecv6/arm/include/param.h#1 branch .. //depot/projects/ipsecv6/arm/include/pcb.h#1 branch .. //depot/projects/ipsecv6/arm/include/pcpu.h#1 branch .. //depot/projects/ipsecv6/arm/include/pmap.h#1 branch .. //depot/projects/ipsecv6/arm/include/pmc_mdep.h#1 branch .. //depot/projects/ipsecv6/arm/include/proc.h#1 branch .. //depot/projects/ipsecv6/arm/include/profile.h#1 branch .. //depot/projects/ipsecv6/arm/include/psl.h#1 branch .. //depot/projects/ipsecv6/arm/include/pte.h#1 branch .. //depot/projects/ipsecv6/arm/include/ptrace.h#1 branch .. //depot/projects/ipsecv6/arm/include/reg.h#1 branch .. //depot/projects/ipsecv6/arm/include/reloc.h#1 branch .. //depot/projects/ipsecv6/arm/include/resource.h#1 branch .. //depot/projects/ipsecv6/arm/include/runq.h#1 branch .. //depot/projects/ipsecv6/arm/include/setjmp.h#1 branch .. //depot/projects/ipsecv6/arm/include/sf_buf.h#1 branch .. //depot/projects/ipsecv6/arm/include/sigframe.h#1 branch .. //depot/projects/ipsecv6/arm/include/signal.h#1 branch .. //depot/projects/ipsecv6/arm/include/smp.h#1 branch .. //depot/projects/ipsecv6/arm/include/stdarg.h#1 branch .. //depot/projects/ipsecv6/arm/include/swi.h#1 branch .. //depot/projects/ipsecv6/arm/include/sysarch.h#1 branch .. //depot/projects/ipsecv6/arm/include/trap.h#1 branch .. //depot/projects/ipsecv6/arm/include/ucontext.h#1 branch .. //depot/projects/ipsecv6/arm/include/undefined.h#1 branch .. //depot/projects/ipsecv6/arm/include/utrap.h#1 branch .. //depot/projects/ipsecv6/arm/include/vmparam.h#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/assabet_machdep.c#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/files.sa11x0#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0.c#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_dmacreg.h#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_gpioreg.h#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_io.c#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_io_asm.S#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_irq.S#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_irqhandler.c#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_ost.c#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_ostreg.h#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_ppcreg.h#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_reg.h#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/sa11x0_var.h#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/std.sa11x0#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/uart_bus_sa1110.c#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/uart_cpu_sa1110.c#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/uart_dev_sa1110.c#1 branch .. //depot/projects/ipsecv6/arm/sa11x0/uart_dev_sa1110.h#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/files.i80321#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/files.iq31244#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321_intr.h#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321_mcu.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321_pci.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321_space.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321_timer.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321_wdog.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321reg.h#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/i80321var.h#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/iq31244_7seg.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/iq31244_machdep.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/iq80321.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/iq80321reg.h#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/iq80321var.h#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/obio.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/obio_space.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/obiovar.h#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/std.i80321#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/std.iq31244#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/uart_bus_i80321.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/i80321/uart_cpu_i80321.c#1 branch .. //depot/projects/ipsecv6/arm/xscale/std.xscale#1 branch .. //depot/projects/ipsecv6/arm/xscale/xscalereg.h#1 branch .. //depot/projects/ipsecv6/arm/xscale/xscalevar.h#1 branch .. //depot/projects/ipsecv6/boot/Makefile#1 branch .. //depot/projects/ipsecv6/boot/README#1 branch .. //depot/projects/ipsecv6/boot/alpha/Makefile#1 branch .. //depot/projects/ipsecv6/boot/alpha/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/alpha/boot1/Makefile#1 branch .. //depot/projects/ipsecv6/boot/alpha/boot1/boot1.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/cdboot/Makefile#1 branch .. //depot/projects/ipsecv6/boot/alpha/cdboot/version#1 branch .. //depot/projects/ipsecv6/boot/alpha/common/Makefile.common#1 branch .. //depot/projects/ipsecv6/boot/alpha/common/conf.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/common/help.alpha#1 branch .. //depot/projects/ipsecv6/boot/alpha/common/ldscript#1 branch .. //depot/projects/ipsecv6/boot/alpha/common/main.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/Makefile#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/OSFpal.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/alpha_copy.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/alpha_module.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/bbinfo.h#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/bootinfo.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/common.h#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/delay.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/devicename.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/elf_freebsd.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/getsecs.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/libalpha.h#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/pal.S#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/prom.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/prom_disp.S#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/prom_swpal.S#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/reboot.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/srmdisk.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/srmnet.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/start.S#1 branch .. //depot/projects/ipsecv6/boot/alpha/libalpha/time.c#1 branch .. //depot/projects/ipsecv6/boot/alpha/loader/Makefile#1 branch .. //depot/projects/ipsecv6/boot/alpha/loader/version#1 branch .. //depot/projects/ipsecv6/boot/alpha/netboot/Makefile#1 branch .. //depot/projects/ipsecv6/boot/alpha/netboot/version#1 branch .. //depot/projects/ipsecv6/boot/arc/Makefile#1 branch .. //depot/projects/ipsecv6/boot/arc/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/arc/include/arcfuncs.h#1 branch .. //depot/projects/ipsecv6/boot/arc/include/arctypes.h#1 branch .. //depot/projects/ipsecv6/boot/arc/include/libarc.h#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/Makefile#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/abort.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/arcconsole.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/arcdisk.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/arch/alpha/copy.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/arch/alpha/rpb.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/arch/alpha/setjmp.S#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/arch/alpha/start.S#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/bootinfo.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/delay.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/devicename.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/elf_freebsd.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/module.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/prom.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/setjmperr.c#1 branch .. //depot/projects/ipsecv6/boot/arc/lib/time.c#1 branch .. //depot/projects/ipsecv6/boot/arc/loader/Makefile#1 branch .. //depot/projects/ipsecv6/boot/arc/loader/conf.c#1 branch .. //depot/projects/ipsecv6/boot/arc/loader/help.alpha#1 branch .. //depot/projects/ipsecv6/boot/arc/loader/main.c#1 branch .. //depot/projects/ipsecv6/boot/arc/loader/version#1 branch .. //depot/projects/ipsecv6/boot/common/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/common/bcache.c#1 branch .. //depot/projects/ipsecv6/boot/common/boot.c#1 branch .. //depot/projects/ipsecv6/boot/common/bootstrap.h#1 branch .. //depot/projects/ipsecv6/boot/common/commands.c#1 branch .. //depot/projects/ipsecv6/boot/common/console.c#1 branch .. //depot/projects/ipsecv6/boot/common/dev_net.c#1 branch .. //depot/projects/ipsecv6/boot/common/dev_net.h#1 branch .. //depot/projects/ipsecv6/boot/common/devopen.c#1 branch .. //depot/projects/ipsecv6/boot/common/help.common#1 branch .. //depot/projects/ipsecv6/boot/common/interp.c#1 branch .. //depot/projects/ipsecv6/boot/common/interp_backslash.c#1 branch .. //depot/projects/ipsecv6/boot/common/interp_forth.c#1 branch .. //depot/projects/ipsecv6/boot/common/interp_parse.c#1 branch .. //depot/projects/ipsecv6/boot/common/isapnp.c#1 branch .. //depot/projects/ipsecv6/boot/common/isapnp.h#1 branch .. //depot/projects/ipsecv6/boot/common/load.c#1 branch .. //depot/projects/ipsecv6/boot/common/load_elf.c#1 branch .. //depot/projects/ipsecv6/boot/common/load_elf32.c#1 branch .. //depot/projects/ipsecv6/boot/common/load_elf32_obj.c#1 branch .. //depot/projects/ipsecv6/boot/common/load_elf64.c#1 branch .. //depot/projects/ipsecv6/boot/common/load_elf64_obj.c#1 branch .. //depot/projects/ipsecv6/boot/common/load_elf_obj.c#1 branch .. //depot/projects/ipsecv6/boot/common/loader.8#1 branch .. //depot/projects/ipsecv6/boot/common/ls.c#1 branch .. //depot/projects/ipsecv6/boot/common/merge_help.awk#1 branch .. //depot/projects/ipsecv6/boot/common/misc.c#1 branch .. //depot/projects/ipsecv6/boot/common/module.c#1 branch .. //depot/projects/ipsecv6/boot/common/newvers.sh#1 branch .. //depot/projects/ipsecv6/boot/common/panic.c#1 branch .. //depot/projects/ipsecv6/boot/common/pnp.c#1 branch .. //depot/projects/ipsecv6/boot/common/pnpdata#1 branch .. //depot/projects/ipsecv6/boot/common/reloc_elf.c#1 branch .. //depot/projects/ipsecv6/boot/common/reloc_elf32.c#1 branch .. //depot/projects/ipsecv6/boot/common/reloc_elf64.c#1 branch .. //depot/projects/ipsecv6/boot/common/ufsread.c#1 branch .. //depot/projects/ipsecv6/boot/efi/Makefile#1 branch .. //depot/projects/ipsecv6/boot/efi/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/efi/include/README#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efi.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efi_nii.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efiapi.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/eficon.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efidebug.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efidef.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efidevp.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efierr.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efifpswa.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efifs.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efilib.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efinet.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efipart.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efiprot.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efipxebc.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efiser.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/efistdarg.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/i386/efibind.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/i386/pe.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/ia64/efibind.h#1 branch .. //depot/projects/ipsecv6/boot/efi/include/ia64/pe.h#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/Makefile#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/bootinfo.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/copy.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/delay.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/devicename.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/efi_console.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/efiboot.h#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/efifpswa.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/efifs.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/efinet.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/elf_freebsd.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/libefi.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/module.c#1 branch .. //depot/projects/ipsecv6/boot/efi/libefi/time.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/Makefile#1 branch .. //depot/projects/ipsecv6/boot/ficl/alpha/sysdep.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/alpha/sysdep.h#1 branch .. //depot/projects/ipsecv6/boot/ficl/dict.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/ficl.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/ficl.h#1 branch .. //depot/projects/ipsecv6/boot/ficl/fileaccess.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/float.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/i386/sysdep.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/i386/sysdep.h#1 branch .. //depot/projects/ipsecv6/boot/ficl/ia64/sysdep.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/ia64/sysdep.h#1 branch .. //depot/projects/ipsecv6/boot/ficl/loader.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/math64.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/math64.h#1 branch .. //depot/projects/ipsecv6/boot/ficl/powerpc/sysdep.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/powerpc/sysdep.h#1 branch .. //depot/projects/ipsecv6/boot/ficl/prefix.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/search.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/classes.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/ficlclass.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/ficllocal.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/fileaccess.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/forml.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/freebsd.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/ifbrack.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/jhlocal.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/marker.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/oo.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/prefix.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/softcore.awk#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/softcore.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/softwords/string.fr#1 branch .. //depot/projects/ipsecv6/boot/ficl/sparc64/sysdep.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/sparc64/sysdep.h#1 branch .. //depot/projects/ipsecv6/boot/ficl/stack.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/testmain.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/tools.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/unix.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/vm.c#1 branch .. //depot/projects/ipsecv6/boot/ficl/words.c#1 branch .. //depot/projects/ipsecv6/boot/forth/beastie.4th#1 branch .. //depot/projects/ipsecv6/boot/forth/frames.4th#1 branch .. //depot/projects/ipsecv6/boot/forth/loader.4th#1 branch .. //depot/projects/ipsecv6/boot/forth/loader.4th.8#1 branch .. //depot/projects/ipsecv6/boot/forth/loader.conf#1 branch .. //depot/projects/ipsecv6/boot/forth/loader.conf.5#1 branch .. //depot/projects/ipsecv6/boot/forth/loader.rc#1 branch .. //depot/projects/ipsecv6/boot/forth/pnp.4th#1 branch .. //depot/projects/ipsecv6/boot/forth/screen.4th#1 branch .. //depot/projects/ipsecv6/boot/forth/support.4th#1 branch .. //depot/projects/ipsecv6/boot/i386/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/i386/boot0/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/boot0/boot0.S#1 branch .. //depot/projects/ipsecv6/boot/i386/boot0/boot0ext.S#1 branch .. //depot/projects/ipsecv6/boot/i386/boot0ext/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/boot0sio/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/boot2/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/boot2/boot1.S#1 branch .. //depot/projects/ipsecv6/boot/i386/boot2/boot2.c#1 branch .. //depot/projects/ipsecv6/boot/i386/boot2/lib.h#1 branch .. //depot/projects/ipsecv6/boot/i386/boot2/sio.S#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/btx/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/btx/btx.S#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/btxldr/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/btxldr/btxldr.S#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/lib/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/lib/btxcsu.s#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/lib/btxsys.s#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/lib/btxv86.h#1 branch .. //depot/projects/ipsecv6/boot/i386/btx/lib/btxv86.s#1 branch .. //depot/projects/ipsecv6/boot/i386/cdboot/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/cdboot/cdboot.s#1 branch .. //depot/projects/ipsecv6/boot/i386/kgzldr/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/kgzldr/boot.c#1 branch .. //depot/projects/ipsecv6/boot/i386/kgzldr/crt.s#1 branch .. //depot/projects/ipsecv6/boot/i386/kgzldr/kgzldr.h#1 branch .. //depot/projects/ipsecv6/boot/i386/kgzldr/lib.c#1 branch .. //depot/projects/ipsecv6/boot/i386/kgzldr/sio.s#1 branch .. //depot/projects/ipsecv6/boot/i386/kgzldr/start.s#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/amd64_tramp.S#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/biosacpi.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/bioscd.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/biosdisk.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/biosmem.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/biospci.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/biospnp.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/biossmap.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/bootinfo.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/bootinfo32.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/bootinfo64.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/comconsole.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/devicename.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/elf32_freebsd.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/elf64_freebsd.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/gatea20.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/i386_copy.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/i386_module.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/libi386.h#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/nullconsole.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/pread.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/pxe.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/pxe.h#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/pxetramp.s#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/smbios.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/time.c#1 branch .. //depot/projects/ipsecv6/boot/i386/libi386/vidconsole.c#1 branch .. //depot/projects/ipsecv6/boot/i386/loader/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/loader/conf.c#1 branch .. //depot/projects/ipsecv6/boot/i386/loader/help.i386#1 branch .. //depot/projects/ipsecv6/boot/i386/loader/main.c#1 branch .. //depot/projects/ipsecv6/boot/i386/loader/version#1 branch .. //depot/projects/ipsecv6/boot/i386/mbr/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/mbr/mbr.s#1 branch .. //depot/projects/ipsecv6/boot/i386/pxeldr/Makefile#1 branch .. //depot/projects/ipsecv6/boot/i386/pxeldr/pxeboot.8#1 branch .. //depot/projects/ipsecv6/boot/i386/pxeldr/pxeldr.S#1 branch .. //depot/projects/ipsecv6/boot/ia64/Makefile#1 branch .. //depot/projects/ipsecv6/boot/ia64/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/ia64/efi/Makefile#1 branch .. //depot/projects/ipsecv6/boot/ia64/efi/conf.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/efi/efimd.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/efi/ldscript.ia64#1 branch .. //depot/projects/ipsecv6/boot/ia64/efi/main.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/efi/start.S#1 branch .. //depot/projects/ipsecv6/boot/ia64/efi/version#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/Makefile#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/acpi_stub.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/bootinfo.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/conf.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/copy.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/delay.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/devicename.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/efi_stub.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/elf_freebsd.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/exit.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/ldscript.ia64#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/libski.h#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/main.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/pal_stub.S#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/sal_stub.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/skiconsole.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/skifs.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/skiload.cmd#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/ssc.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/start.S#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/time.c#1 branch .. //depot/projects/ipsecv6/boot/ia64/ski/version#1 branch .. //depot/projects/ipsecv6/boot/ofw/Makefile#1 branch .. //depot/projects/ipsecv6/boot/ofw/common/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/ofw/common/main.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/Makefile#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/devicename.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/elf_freebsd.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/libofw.h#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/ofw_console.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/ofw_copy.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/ofw_disk.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/ofw_memory.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/ofw_module.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/ofw_net.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/ofw_reboot.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/ofw_time.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/openfirm.c#1 branch .. //depot/projects/ipsecv6/boot/ofw/libofw/openfirm.h#1 branch .. //depot/projects/ipsecv6/boot/pc98/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0.5/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0.5/boot.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0.5/boot0.5.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0.5/disk.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0.5/selector.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0.5/start.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0.5/support.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0.5/syscons.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot0/boot0.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/README.serial.98#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/asm.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/asm.h#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/bios.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/boot.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/boot.h#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/boot2.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/dinode.h#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/disk.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/fs.h#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/inode.h#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/io.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/probe_keyboard.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/quota.h#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/serial.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/serial_16550.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/serial_8251.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/start.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/sys.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/boot2/table.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/btx/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/btx/btx.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/btxldr/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/btxldr/btxldr.S#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/lib/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/lib/btxcsu.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/lib/btxsys.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/lib/btxv86.h#1 branch .. //depot/projects/ipsecv6/boot/pc98/btx/lib/btxv86.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/kgzldr/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/kgzldr/crt.s#1 branch .. //depot/projects/ipsecv6/boot/pc98/libpc98/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/libpc98/biosdisk.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/libpc98/biosmem.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/libpc98/comconsole.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/libpc98/gatea20.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/libpc98/i386_module.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/libpc98/time.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/libpc98/vidconsole.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/loader/Makefile#1 branch .. //depot/projects/ipsecv6/boot/pc98/loader/conf.c#1 branch .. //depot/projects/ipsecv6/boot/pc98/loader/help.pc98#1 branch .. //depot/projects/ipsecv6/boot/pc98/loader/main.c#1 branch .. //depot/projects/ipsecv6/boot/powerpc/Makefile#1 branch .. //depot/projects/ipsecv6/boot/powerpc/loader/Makefile#1 branch .. //depot/projects/ipsecv6/boot/powerpc/loader/conf.c#1 branch .. //depot/projects/ipsecv6/boot/powerpc/loader/help.ofw#1 branch .. //depot/projects/ipsecv6/boot/powerpc/loader/ldscript.powerpc#1 branch .. //depot/projects/ipsecv6/boot/powerpc/loader/metadata.c#1 branch .. //depot/projects/ipsecv6/boot/powerpc/loader/start.c#1 branch .. //depot/projects/ipsecv6/boot/powerpc/loader/version#1 branch .. //depot/projects/ipsecv6/boot/sparc64/Makefile#1 branch .. //depot/projects/ipsecv6/boot/sparc64/Makefile.inc#1 branch .. //depot/projects/ipsecv6/boot/sparc64/boot1/Makefile#1 branch .. //depot/projects/ipsecv6/boot/sparc64/boot1/_start.s#1 branch .. //depot/projects/ipsecv6/boot/sparc64/boot1/boot1.c#1 branch .. //depot/projects/ipsecv6/boot/sparc64/loader/Makefile#1 branch .. //depot/projects/ipsecv6/boot/sparc64/loader/help.sparc64#1 branch .. //depot/projects/ipsecv6/boot/sparc64/loader/locore.S#1 branch .. //depot/projects/ipsecv6/boot/sparc64/loader/main.c#1 branch .. //depot/projects/ipsecv6/boot/sparc64/loader/metadata.c#1 branch .. //depot/projects/ipsecv6/boot/sparc64/loader/version#1 branch .. //depot/projects/ipsecv6/bsm/audit.h#1 branch .. //depot/projects/ipsecv6/bsm/audit_kevents.h#1 branch .. //depot/projects/ipsecv6/cam/cam.c#1 branch .. //depot/projects/ipsecv6/cam/cam.h#1 branch .. //depot/projects/ipsecv6/cam/cam_ccb.h#1 branch .. //depot/projects/ipsecv6/cam/cam_debug.h#1 branch .. //depot/projects/ipsecv6/cam/cam_periph.c#1 branch .. //depot/projects/ipsecv6/cam/cam_periph.h#1 branch .. //depot/projects/ipsecv6/cam/cam_queue.c#1 branch .. //depot/projects/ipsecv6/cam/cam_queue.h#1 branch .. //depot/projects/ipsecv6/cam/cam_sim.c#1 branch .. //depot/projects/ipsecv6/cam/cam_sim.h#1 branch .. //depot/projects/ipsecv6/cam/cam_xpt.c#1 branch .. //depot/projects/ipsecv6/cam/cam_xpt.h#1 branch .. //depot/projects/ipsecv6/cam/cam_xpt_periph.h#1 branch .. //depot/projects/ipsecv6/cam/cam_xpt_sim.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_all.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_all.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_cd.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_cd.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_ch.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_ch.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_da.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_da.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_dvcfg.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_iu.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_low.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_low.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_low_pisa.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_low_pisa.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_message.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_pass.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_pass.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_pt.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_pt.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_sa.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_sa.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_ses.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_ses.h#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_targ_bh.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_target.c#1 branch .. //depot/projects/ipsecv6/cam/scsi/scsi_targetio.h#1 branch .. //depot/projects/ipsecv6/coda/00READ#1 branch .. //depot/projects/ipsecv6/coda/README#1 branch .. //depot/projects/ipsecv6/coda/TODO#1 branch .. //depot/projects/ipsecv6/coda/cnode.h#1 branch .. //depot/projects/ipsecv6/coda/coda.h#1 branch .. //depot/projects/ipsecv6/coda/coda_fbsd.c#1 branch .. //depot/projects/ipsecv6/coda/coda_io.h#1 branch .. //depot/projects/ipsecv6/coda/coda_kernel.h#1 branch .. //depot/projects/ipsecv6/coda/coda_namecache.c#1 branch .. //depot/projects/ipsecv6/coda/coda_namecache.h#1 branch .. //depot/projects/ipsecv6/coda/coda_opstats.h#1 branch .. //depot/projects/ipsecv6/coda/coda_pioctl.h#1 branch .. //depot/projects/ipsecv6/coda/coda_psdev.c#1 branch .. //depot/projects/ipsecv6/coda/coda_psdev.h#1 branch .. //depot/projects/ipsecv6/coda/coda_subr.c#1 branch .. //depot/projects/ipsecv6/coda/coda_subr.h#1 branch .. //depot/projects/ipsecv6/coda/coda_venus.c#1 branch .. //depot/projects/ipsecv6/coda/coda_venus.h#1 branch .. //depot/projects/ipsecv6/coda/coda_vfsops.c#1 branch .. //depot/projects/ipsecv6/coda/coda_vfsops.h#1 branch .. //depot/projects/ipsecv6/coda/coda_vnops.c#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Sep 12 05:15:14 2005 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 96DC916A422; Mon, 12 Sep 2005 05:15:13 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4CB2516A41F for ; Mon, 12 Sep 2005 05:15:13 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E2EA43D4C for ; Mon, 12 Sep 2005 05:15:12 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8C5FB9c011557 for ; Mon, 12 Sep 2005 05:15:12 GMT (envelope-from gnn@neville-neil.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8C5FBWx011545 for perforce@freebsd.org; Mon, 12 Sep 2005 05:15:11 GMT (envelope-from gnn@neville-neil.com) Date: Mon, 12 Sep 2005 05:15:11 GMT Message-Id: <200509120515.j8C5FBWx011545@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gnn@neville-neil.com using -f From: "George V. Neville-Neil" To: Perforce Change Reviews Cc: Subject: PERFORCE change 83433 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, 12 Sep 2005 05:15:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=83433 Change 83433 by gnn@fast_ipsec_integ on 2005/09/12 05:13:58 Integration from HEAD into our private little branch. Affected files ... .. //depot/projects/fast_ipsec/src/sys/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/api_up1000.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/atomic.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/autoconf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/busdma_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/busspace.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/clock.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/clock_if.m#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/cpuconf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/db_disasm.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/db_instruction.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/db_interface.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/db_trace.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_1000a.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_2100_a50.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_2100_a500.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_3000_300.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_3000_500.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_axppci_33.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_eb164.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_eb64plus.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_kn20aa.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_kn300.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_kn8ae.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_st550.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dec_st6600.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/divrem.m4#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/dump_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/elf_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/exception.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/fp_emulate.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/gdb_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/genassym.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/ieee_float.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/ieee_float.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/in_cksum.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/interrupt.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/locore.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/mem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/mp_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/pal.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/pmap.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/prom.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/prom_disp.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/promcons.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/sgmap.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/support.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/swtch.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/sys_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/trap.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/uio_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/uma_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/vm_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/compile/.cvsignore#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/conf/.cvsignore#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/conf/GENERIC#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/conf/GENERIC.hints#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/conf/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/conf/NOTES#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/_bus.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/_inttypes.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/_limits.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/_stdint.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/_types.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/alpha_cpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/asm.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/atomic.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/bootinfo.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/bus.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/bus_dma.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/bwx.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/chipset.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/clock.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/clockvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/cpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/cpuconf.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/cpufunc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/db_machdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/elf.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/endian.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/exec.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/float.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/floatingpoint.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/fpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/frame.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/gdb_machdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/ieee.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/ieeefp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/in_cksum.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/inst.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/intr.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/intrcnt.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/ioctl_bt848.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/ioctl_meteor.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/kdb.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/limits.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/md_var.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/memdev.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/mutex.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pal.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/param.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pc/bios.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pc/display.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pc/vesa.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pcb.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pcpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pmap.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pmc_mdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/ppireg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/proc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/profile.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/prom.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/pte.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/ptrace.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/reg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/reloc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/resource.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/rpb.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/runq.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/setjmp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/sf_buf.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/sgmap.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/sigframe.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/signal.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/smp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/stdarg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/swiz.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/sysarch.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/timerreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/ucontext.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/varargs.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/include/vmparam.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/isa/isa.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/isa/isa_dma.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/isa/isavar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/isa/mcclock_isa.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_dummy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_genassym.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_ipc64.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_locore.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_proto.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_syscall.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_sysent.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/linux_sysvec.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/syscalls.conf#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/linux/syscalls.master#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/mcbus/mcbus.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/mcbus/mcbusreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/mcbus/mcbusvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/mcbus/mcmem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/mcbus/mcpcia.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/mcbus/mcpciareg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/mcbus/mcpciavar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/README.mach-traps#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/exec_ecoff.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/imgact_osf1.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_ioctl.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_misc.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_mount.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_proto.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_signal.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_signal.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_syscall.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_sysent.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_sysvec.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/osf1_util.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/syscalls.conf#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/osf1/syscalls.master#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/alphapci_if.m#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/apecs.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/apecs_pci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/apecsreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/apecsvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/bwx.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/cia.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/cia_pci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/ciareg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/ciavar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/irongate.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/irongate_pci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/irongatereg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/irongatevar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/lca.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/lca_pci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/lcareg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/lcavar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/pci_eb164_intr.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/pci_eb64plus_intr.s#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/pcibus.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/pcibus.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/swiz.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/t2.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/t2_pci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/t2reg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/t2var.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/tsunami.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/tsunami_pci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/tsunamireg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/pci/tsunamivar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/dwlpx.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/dwlpxreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/dwlpxvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/gbus.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/gbusreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/gbusvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/kftxx.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/kftxxreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/kftxxvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/mcclock_tlsb.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/tlsb.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/tlsbcpu.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/tlsbmem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/tlsbreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/tlsbvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/zs_tlsb.c#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/zsreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/zsvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/acpica/OsdEnvironment.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/acpica/acpi_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/acpica/acpi_wakeup.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/acpica/madt.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/amd64_mem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/apic_vector.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/atomic.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/autoconf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/bios.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/busdma_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/cpu_switch.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/db_disasm.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/db_interface.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/db_trace.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/dump_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/elf_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/exception.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/fpu.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/gdb_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/genassym.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/identcpu.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/in_cksum.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/initcpu.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/intr_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/io.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/io_apic.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/legacy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/local_apic.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/locore.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/mem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/mp_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/mp_watchdog.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/mpboot.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/mptable.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/mptable_pci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/nexus.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/pmap.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/prof_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/sigtramp.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/support.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/sys_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/trap.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/tsc.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/uio_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/uma_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/vm_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/compile/.cvsignore#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/conf/.cvsignore#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/conf/GENERIC#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/conf/GENERIC.hints#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/conf/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/conf/NOTES#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/ia32/ia32_exception.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/ia32/ia32_reg.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/ia32/ia32_signal.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/ia32/ia32_sigtramp.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/ia32/ia32_syscall.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/_bus.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/_inttypes.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/_limits.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/_stdint.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/_types.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/acpica_machdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/apicreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/apicvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/asm.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/asmacros.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/atomic.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/bus.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/bus_dma.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/clock.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/cpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/cpufunc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/cputypes.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/db_machdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/elf.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/endian.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/exec.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/float.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/floatingpoint.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/fpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/frame.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/gdb_machdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/ieeefp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/in_cksum.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/intr_machdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/iodev.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/kdb.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/legacyvar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/limits.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/md_var.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/memdev.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/metadata.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/mp_watchdog.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/mptable.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/mutex.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/param.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/pc/bios.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/pc/display.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/pcb.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/pcb_ext.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/pci_cfgreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/pcpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/pmap.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/pmc_mdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/ppireg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/proc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/profile.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/psl.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/ptrace.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/reg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/reloc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/resource.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/runq.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/segments.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/setjmp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/sf_buf.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/sigframe.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/signal.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/smp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/specialreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/stdarg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/sysarch.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/timerreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/trap.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/tss.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/ucontext.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/varargs.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/include/vmparam.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/atpic.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/atpic_vector.S#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/clock.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/elcr.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/icu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/isa.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/isa.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/isa_dma.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/isa/nmi.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_dummy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_genassym.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_ipc64.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_locore.s#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_proto.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_syscall.h#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_sysent.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/linux32_sysvec.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/syscalls.conf#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/linux32/syscalls.master#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/pci/pci_bus.c#1 branch .. //depot/projects/fast_ipsec/src/sys/amd64/pci/pci_cfgreg.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/autoconf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/bcopy_page.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/bcopyinout.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/bcopyinout_xscale.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/blockio.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/bootconfig.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/bus_space_asm_generic.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/busdma_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/copystr.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_arm10.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_arm7tdmi.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_arm8.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_arm9.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_armv4.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_ixp12x0.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_sa1.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_sa11x0.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc_asm_xscale.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/db_disasm.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/db_interface.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/db_trace.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/disassem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/dump_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/elf_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/exception.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/fiq.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/fiq_subr.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/fusu.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/genassym.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/identcpu.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/in_cksum.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/in_cksum_arm.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/intr.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/irq_dispatch.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/locore.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/mem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/nexus.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/nexus_io.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/nexus_io_asm.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/pmap.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/setcpsr.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/setstack.s#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/support.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/swtch.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/sys_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/trap.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/uio_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/undefined.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/vectors.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/arm/vm_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/compile/.cvsignore#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/conf/.cvsignore#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/conf/IQ31244#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/conf/SIMICS#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/_bus.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/_inttypes.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/_limits.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/_stdint.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/_types.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/armreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/asm.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/asmacros.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/atomic.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/blockio.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/bootconfig.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/bus.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/bus_dma.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/clock.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/cpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/cpuconf.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/cpufunc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/db_machdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/disassem.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/elf.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/endian.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/exec.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/fiq.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/float.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/floatingpoint.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/fp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/frame.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/ieee.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/ieeefp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/in_cksum.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/intr.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/katelib.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/kdb.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/limits.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/machdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/md_var.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/memdev.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/metadata.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/mutex.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/param.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/pcb.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/pcpu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/pmap.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/pmc_mdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/proc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/profile.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/psl.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/pte.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/ptrace.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/reg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/reloc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/resource.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/runq.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/setjmp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/sf_buf.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/sigframe.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/signal.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/smp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/stdarg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/swi.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/sysarch.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/trap.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/ucontext.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/undefined.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/utrap.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/include/vmparam.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/assabet_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/files.sa11x0#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_dmacreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_gpioreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_io.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_io_asm.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_irq.S#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_irqhandler.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_ost.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_ostreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_ppcreg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_reg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/sa11x0_var.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/std.sa11x0#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/uart_bus_sa1110.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/uart_cpu_sa1110.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/uart_dev_sa1110.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/uart_dev_sa1110.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/files.i80321#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/files.iq31244#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_intr.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_mcu.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_pci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_space.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_timer.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_wdog.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321reg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321var.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/iq31244_7seg.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/iq31244_machdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/iq80321.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/iq80321reg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/iq80321var.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/obio.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/obio_space.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/obiovar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/std.i80321#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/std.iq31244#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/uart_bus_i80321.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/uart_cpu_i80321.c#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/std.xscale#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/xscalereg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/arm/xscale/xscalevar.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/README#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/boot1/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/boot1/boot1.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/cdboot/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/cdboot/version#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/common/Makefile.common#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/common/conf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/common/help.alpha#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/common/ldscript#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/common/main.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/OSFpal.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/alpha_copy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/alpha_module.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/bbinfo.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/bootinfo.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/common.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/delay.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/devicename.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/elf_freebsd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/getsecs.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/libalpha.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/pal.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/prom.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/prom_disp.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/prom_swpal.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/reboot.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/srmdisk.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/srmnet.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/start.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/libalpha/time.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/loader/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/loader/version#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/netboot/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/alpha/netboot/version#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/include/arcfuncs.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/include/arctypes.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/include/libarc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/abort.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/arcconsole.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/arcdisk.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/arch/alpha/copy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/arch/alpha/rpb.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/arch/alpha/setjmp.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/arch/alpha/start.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/bootinfo.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/delay.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/devicename.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/elf_freebsd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/module.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/prom.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/setjmperr.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/lib/time.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/loader/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/loader/conf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/loader/help.alpha#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/loader/main.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/arc/loader/version#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/bcache.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/boot.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/bootstrap.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/commands.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/console.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/dev_net.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/dev_net.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/devopen.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/help.common#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/interp.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/interp_backslash.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/interp_forth.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/interp_parse.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/isapnp.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/isapnp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/load.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/load_elf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/load_elf32.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/load_elf32_obj.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/load_elf64.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/load_elf64_obj.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/load_elf_obj.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/loader.8#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/ls.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/merge_help.awk#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/misc.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/module.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/newvers.sh#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/panic.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/pnp.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/pnpdata#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/reloc_elf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/reloc_elf32.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/reloc_elf64.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/common/ufsread.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/README#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efi.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efi_nii.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efiapi.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/eficon.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efidebug.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efidef.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efidevp.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efierr.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efifpswa.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efifs.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efilib.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efinet.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efipart.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efiprot.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efipxebc.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efiser.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/efistdarg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/i386/efibind.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/i386/pe.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/ia64/efibind.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/include/ia64/pe.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/bootinfo.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/copy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/delay.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/devicename.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/efi_console.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/efiboot.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/efifpswa.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/efifs.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/efinet.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/elf_freebsd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/libefi.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/module.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/efi/libefi/time.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/alpha/sysdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/alpha/sysdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/dict.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/ficl.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/ficl.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/fileaccess.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/float.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/i386/sysdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/i386/sysdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/ia64/sysdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/ia64/sysdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/loader.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/math64.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/math64.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/powerpc/sysdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/powerpc/sysdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/prefix.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/search.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/classes.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/ficlclass.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/ficllocal.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/fileaccess.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/forml.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/freebsd.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/ifbrack.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/jhlocal.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/marker.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/oo.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/prefix.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/softcore.awk#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/softcore.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/softwords/string.fr#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/sparc64/sysdep.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/sparc64/sysdep.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/stack.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/testmain.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/tools.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/unix.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/vm.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ficl/words.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/beastie.4th#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/frames.4th#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/loader.4th#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/loader.4th.8#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/loader.conf#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/loader.conf.5#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/loader.rc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/pnp.4th#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/screen.4th#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/forth/support.4th#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot0/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot0/boot0.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot0/boot0ext.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot0ext/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot0sio/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/boot1.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/boot2.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/lib.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/sio.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/btx/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/btx/btx.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/btxldr/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/btxldr/btxldr.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/lib/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/lib/btxcsu.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/lib/btxsys.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/lib/btxv86.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/btx/lib/btxv86.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/cdboot/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/cdboot/cdboot.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/kgzldr/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/kgzldr/boot.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/kgzldr/crt.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/kgzldr/kgzldr.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/kgzldr/lib.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/kgzldr/sio.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/kgzldr/start.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/amd64_tramp.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/biosacpi.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/bioscd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/biosdisk.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/biosmem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/biospci.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/biospnp.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/biossmap.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/bootinfo.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/bootinfo32.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/bootinfo64.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/comconsole.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/devicename.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/elf32_freebsd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/elf64_freebsd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/gatea20.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/i386_copy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/i386_module.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/libi386.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/nullconsole.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/pread.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/pxe.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/pxe.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/pxetramp.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/smbios.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/time.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/vidconsole.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/loader/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/loader/conf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/loader/help.i386#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/loader/main.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/loader/version#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/mbr/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/mbr/mbr.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/pxeldr/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/pxeldr/pxeboot.8#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/i386/pxeldr/pxeldr.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/efi/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/efi/conf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/efi/efimd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/efi/ldscript.ia64#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/efi/main.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/efi/start.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/efi/version#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/acpi_stub.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/bootinfo.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/conf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/copy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/delay.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/devicename.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/efi_stub.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/elf_freebsd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/exit.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/ldscript.ia64#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/libski.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/main.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/pal_stub.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/sal_stub.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/skiconsole.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/skifs.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/skiload.cmd#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/ssc.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/start.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/time.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ia64/ski/version#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/common/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/common/main.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/devicename.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/elf_freebsd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/libofw.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_console.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_copy.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_disk.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_memory.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_module.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_net.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_reboot.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_time.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/openfirm.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/openfirm.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0.5/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0.5/boot.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0.5/boot0.5.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0.5/disk.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0.5/selector.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0.5/start.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0.5/support.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0.5/syscons.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot0/boot0.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/README.serial.98#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/asm.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/asm.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/bios.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/boot.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/boot.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/boot2.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/dinode.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/disk.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/fs.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/inode.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/io.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/probe_keyboard.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/quota.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/serial.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/serial_16550.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/serial_8251.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/start.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/sys.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/boot2/table.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/btx/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/btx/btx.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/btxldr/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/btxldr/btxldr.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/lib/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/lib/btxcsu.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/lib/btxsys.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/lib/btxv86.h#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/btx/lib/btxv86.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/kgzldr/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/kgzldr/crt.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/libpc98/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/libpc98/biosdisk.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/libpc98/biosmem.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/libpc98/comconsole.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/libpc98/gatea20.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/libpc98/i386_module.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/libpc98/time.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/libpc98/vidconsole.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/loader/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/loader/conf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/loader/help.pc98#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/pc98/loader/main.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/powerpc/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/powerpc/loader/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/powerpc/loader/conf.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/powerpc/loader/help.ofw#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/powerpc/loader/ldscript.powerpc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/powerpc/loader/metadata.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/powerpc/loader/start.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/powerpc/loader/version#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/Makefile.inc#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/boot1/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/boot1/_start.s#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/boot1/boot1.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/loader/Makefile#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/loader/help.sparc64#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/loader/locore.S#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/loader/main.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/loader/metadata.c#1 branch .. //depot/projects/fast_ipsec/src/sys/boot/sparc64/loader/version#1 branch .. //depot/projects/fast_ipsec/src/sys/bsm/audit.h#1 branch .. //depot/projects/fast_ipsec/src/sys/bsm/audit_kevents.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_ccb.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_debug.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_periph.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_periph.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_queue.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_queue.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_sim.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_sim.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_xpt.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_xpt.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_xpt_periph.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/cam_xpt_sim.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_all.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_all.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_cd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_cd.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_ch.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_ch.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_da.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_da.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_dvcfg.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_iu.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_low.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_low.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_low_pisa.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_low_pisa.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_message.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_pass.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_pass.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_pt.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_pt.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_sa.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_sa.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_ses.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_ses.h#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_targ_bh.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_target.c#1 branch .. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_targetio.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/00READ#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/README#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/TODO#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/cnode.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_fbsd.c#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_io.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_kernel.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_namecache.c#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_namecache.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_opstats.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_pioctl.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_psdev.c#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_psdev.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_subr.c#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_subr.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_venus.c#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_venus.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_vfsops.c#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_vfsops.h#1 branch .. //depot/projects/fast_ipsec/src/sys/coda/coda_vnops.c#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Sep 12 08:39:28 2005 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 09B3916A421; Mon, 12 Sep 2005 08:39:28 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D666316A41F for ; Mon, 12 Sep 2005 08:39:27 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 92DF343D45 for ; Mon, 12 Sep 2005 08:39:27 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8C8dRaH019913 for ; Mon, 12 Sep 2005 08:39:27 GMT (envelope-from soc-tyler@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8C8dRgZ019910 for perforce@freebsd.org; Mon, 12 Sep 2005 08:39:27 GMT (envelope-from soc-tyler@freebsd.org) Date: Mon, 12 Sep 2005 08:39:27 GMT Message-Id: <200509120839.j8C8dRgZ019910@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-tyler@freebsd.org using -f From: soc-tyler To: Perforce Change Reviews Cc: Subject: PERFORCE change 83442 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, 12 Sep 2005 08:39:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=83442 Change 83442 by soc-tyler@soc-tyler_launchd on 2005/09/12 08:38:52 A bit of cleanup, setting up a machine to break with the init-emul stuff Affected files ... .. //depot/projects/soc2005/launchd/Makefile#21 edit .. //depot/projects/soc2005/launchd/includes/compat.h#2 delete .. //depot/projects/soc2005/launchd/includes/launchd.h#10 edit .. //depot/projects/soc2005/launchd/includes/property.h#4 delete .. //depot/projects/soc2005/launchd/launchctl/Makefile#11 edit .. //depot/projects/soc2005/launchd/launchctl/launchctl.c#24 edit .. //depot/projects/soc2005/launchd/launchd.c#24 edit .. //depot/projects/soc2005/launchd/launchdebugd/Makefile#4 edit .. //depot/projects/soc2005/launchd/launchdebugd/launchdebugd.c#3 edit .. //depot/projects/soc2005/launchd/launchproxy/Makefile#4 edit .. //depot/projects/soc2005/launchd/launchproxy/launchproxy.c#3 edit .. //depot/projects/soc2005/launchd/misc.c#3 edit Differences ... ==== //depot/projects/soc2005/launchd/Makefile#21 (text+ko) ==== ==== //depot/projects/soc2005/launchd/includes/launchd.h#10 (text+ko) ==== ==== //depot/projects/soc2005/launchd/launchctl/Makefile#11 (text+ko) ==== @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= launchctl -SRCS= launchctl.c liblaunch.c property.c +SRCS= launchctl.c liblaunch.c LAUNCHD= ${.CURDIR}/../ ==== //depot/projects/soc2005/launchd/launchctl/launchctl.c#24 (text+ko) ==== @@ -73,10 +73,15 @@ */ #include "launch.h" +#include "launchd.h" #include "launch_priv.h" -#include "property.h" #define LAUNCH_SECDIR "/tmp/launch-XXXXXX" +/* launchd(8) specific definitions */ +#define LAUNCH_PROPERTY_LABEL "Label" +#define LAUNCH_PROPERTY_PATH "Path" +#define LAUNCH_PROPERTY_FLAGS "Flags" +#define LAUNCH_PROPERTY_LENGTH 128 static bool launch_data_array_append(launch_data_t a, launch_data_t o); static void distill_config_file(launch_data_t); ==== //depot/projects/soc2005/launchd/launchd.c#24 (text+ko) ==== @@ -56,9 +56,7 @@ #include #include #include -#ifndef __OpenBSD__ #include -#endif #include #include #include @@ -82,7 +80,6 @@ #include "launch.h" #include "launch_priv.h" #include "launchd.h" -#include "compat.h" #ifdef _BUILD_DARWIN_ #include "bootstrap_internal.h" ==== //depot/projects/soc2005/launchd/launchdebugd/Makefile#4 (text+ko) ==== @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= launchdebugd -SRCS= launchdebugd.c liblaunch.c misc.c +SRCS= launchdebugd.c liblaunch.c MAN= launchdebugd.8 LAUNCHD= ${.CURDIR}/../ ==== //depot/projects/soc2005/launchd/launchdebugd/launchdebugd.c#3 (text+ko) ==== @@ -20,6 +20,7 @@ * * @APPLE_LICENSE_HEADER_END@ */ + #include #include #include @@ -35,7 +36,6 @@ #include #include "launch.h" -#include "compat.h" static void launch_print_obj(launch_data_t o, FILE *w); ==== //depot/projects/soc2005/launchd/launchproxy/Makefile#4 (text+ko) ==== @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= launchproxy -SRCS= launchproxy.c liblaunch.c misc.c +SRCS= launchproxy.c liblaunch.c MAN= launchproxy.8 LAUNCHD= ${.CURDIR}/../ ==== //depot/projects/soc2005/launchd/launchproxy/launchproxy.c#3 (text+ko) ==== @@ -54,7 +54,6 @@ #include "launch.h" #include "launchd.h" -#include "compat.h" static int kq = 0; ==== //depot/projects/soc2005/launchd/misc.c#3 (text+ko) ==== @@ -1,61 +1,0 @@ -/* - * $FreeBSD$ - * - * Copyright (c) 2005 - * R. Tyler Ballance - * - * 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 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 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) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - -/* - * This file includes functions for launchd(8) to extend property(3) - * on FreeBSD - */ - -#include -#include -#include - -#include "property.h" -#include "compat.h" - -int property_count(properties list) { - int count = 1; // there will be at least one element - struct _property *next_ptr = (struct _property *)(list->next); - - while (next_ptr != NULL) { - count++; - next_ptr = (struct _property *)(next_ptr->next); - } - - return count; -} - - -/* For some reason OpenBSD hasn't assimilated NetBSD's getprogname() */ -#ifdef __OpenBSD__ -const char *getprogname() { - return (__progname); -} -#endif - From owner-p4-projects@FreeBSD.ORG Mon Sep 12 08:39:29 2005 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 97B8B16A42B; Mon, 12 Sep 2005 08:39:28 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3614E16A435 for ; Mon, 12 Sep 2005 08:39:28 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E2AA743D45 for ; Mon, 12 Sep 2005 08:39:27 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8C8dRLQ019919 for ; Mon, 12 Sep 2005 08:39:27 GMT (envelope-from soc-tyler@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8C8dRLU019916 for perforce@freebsd.org; Mon, 12 Sep 2005 08:39:27 GMT (envelope-from soc-tyler@freebsd.org) Date: Mon, 12 Sep 2005 08:39:27 GMT Message-Id: <200509120839.j8C8dRLU019916@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-tyler@freebsd.org using -f From: soc-tyler To: Perforce Change Reviews Cc: Subject: PERFORCE change 83443 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, 12 Sep 2005 08:39:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=83443 Change 83443 by soc-tyler@soc-tyler_launchd on 2005/09/12 08:39:17 Remove misc.c Affected files ... .. //depot/projects/soc2005/launchd/misc.c#4 delete Differences ... From owner-p4-projects@FreeBSD.ORG Mon Sep 12 09:43:50 2005 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 2ED3616A422; Mon, 12 Sep 2005 09:43:50 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E807716A420 for ; Mon, 12 Sep 2005 09:43:49 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D645443D55 for ; Mon, 12 Sep 2005 09:43:47 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8C9hlFp030271 for ; Mon, 12 Sep 2005 09:43:47 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8C9hlmo030268 for perforce@freebsd.org; Mon, 12 Sep 2005 09:43:47 GMT (envelope-from soc-chenk@freebsd.org) Date: Mon, 12 Sep 2005 09:43:47 GMT Message-Id: <200509120943.j8C9hlmo030268@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 83446 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, 12 Sep 2005 09:43:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=83446 Change 83446 by soc-chenk@soc-chenk_leavemealone on 2005/09/12 09:43:28 refined handling of cache and unbound filehandles Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/Changelog#3 edit .. //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#2 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#4 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/Changelog#3 (text+ko) ==== @@ -1,3 +1,12 @@ +Mon Sep 12 11:37:04 CEST 2005 at node: creo.hu, nick: csaba + * refined handling of cache and unbound filehandles + + fuse_open always asks for a filehandle (to see if to keep cache) + + filehandle gc done upon each open + + IMPLEMENTATION_NOTES updated to reflect this + Sun Sep 11 18:45:52 CEST 2005 at node: creo.hu, nick: csaba * Sanitized fuse.c's look ==== //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#2 (text+ko) ==== @@ -299,8 +299,12 @@ But what to do with the filehandle when the strategy has done its job? +Releasing it immediately (that is, strategy releases it before +return) is pretty unefficient: the file should be re-opened at each +turn of a lengty read-in. + Just simply forgetting about it and polluting the daemon with worn-out -filehandles is not a good idea. Some kind of resource management should +filehandles is neither a good idea. Some kind of resource management should be used for these "unbound" filehandles. As the first step of that, a list of filehandles is maintained by each @@ -314,27 +318,25 @@ question then: what event should trigger gc and on what thread should gc run? -For a while, I considered running a dedicated kernel daemon to do the -gc, which is activated periodically upon some filesystem usage counter -reaching a certain value, and which would decide about the fate of -unbound filehandles based upon complex filesystem usage statistics. But -in the end, a pretty much simple mechanism was implemented. +There is a neat built-in gc mechanism: it's invoked when vnodes become +unused. The usual effect of this method is disassociating the vnode +from its file (node), and putting it back to the pool of free vnodes. +We don't do that, as then we would lose the number of lookups (which +is needed for Fuse to operate correctly). Yet it's a pretty fine time +to gc unbound filehandles. + +But if a file is kept open for a longer while, that will block this +mechanism: the respective vnode remains in use during this time. +Then the filehandles created by subsequent internal (fileless) opens +will persist. (Imagine that one opens /mnt/fuse/bin/ls as a regular +file, and keeps it open. In this case each execution of this file +will create a new unbound filehandle which won't go away upon the +termination of the process.) -When a file (node) is opened, either the buffer cache of the respective -vnode has to be flushed, or not, depending on whether the daemon -requests its preservation (in fact, this won't happen on a case-by-case -basis, it's determined globally, depending on whether the "kernel_cache" -option has been passed to the daemon). If we are told to flush the -buffer cache (or we are open it for writing), we also walk over the list -of filehandles, and throw away those ones which are not in use at the -moment. That's it. The point is that unbound filehandles won't -proliferate while we keep the buffer cache: as long as we have the -cache, a read-like operation will get its data from the cache, and the -strategy won't be called. (In fact, we could as well just throw away all -unbound filehandles [not in use] upon each open; keeping them when the -cache is not flushed and no write takes place is just a slight -optimization, which has a chance to have impact on anything only when -reading relatively large files.) +So one more gc entry point is needed. Using the open handler +for this purpose is good enough. This will stop the proliferation of +unbound filehandles in the above scenario, yet won't occur with an +unbearable frequency. 3) Syncing ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#4 (text+ko) ==== @@ -176,8 +176,11 @@ fuse_iov_adjust(struct fuse_iov *fiov, size_t size) { /* XXX limits should be settable via sysctl */ - if (fiov->allocated_size < size || (FUSE_MAX_PERMANENT_IOBUF && fiov->allocated_size - size > FUSE_MAX_PERMANENT_IOBUF)) { - fiov->base = realloc(fiov->base, FU_AT_LEAST(size), M_FUSEMSG, M_WAITOK | M_ZERO); + if (fiov->allocated_size < size || + (FUSE_MAX_PERMANENT_IOBUF && + fiov->allocated_size - size > FUSE_MAX_PERMANENT_IOBUF)) { + fiov->base = realloc(fiov->base, FU_AT_LEAST(size), M_FUSEMSG, + M_WAITOK | M_ZERO); fiov->allocated_size = FU_AT_LEAST(size); } @@ -1978,7 +1981,9 @@ int mode, struct fuse_filehandle *fufh, void *param) { KASSERT(fufh->useco >= 0, ("negative use count for fuse filehandle")); - DEBUG("vnode #%d, fufh owner %p, useco %d\n", VTOI(vp), fufh->fp, fufh->useco); + KASSERT(! fufh->fp || fufh->useco > 0, + ("filehandle bound with 0 use counter")); + DEBUG2G("vnode #%d, fufh owner %p, useco %d\n", VTOI(vp), fufh->fp, fufh->useco); if (! fufh->fp && fufh->useco == 0) { LIST_REMOVE(fufh, fh_link); fuse_send_release(vp, td, cred, fufh, fufh->mode); @@ -2734,7 +2739,7 @@ struct ucred *cred = ap->a_cred; int mode = ap->a_mode; - struct fuse_filehandle *fufh; + struct fuse_filehandle *fufh = NULL; struct fuse_vnode_data *fvdat = vp->v_data; #if DIRECTIO_FOR_DIRS struct ucred *clonecrp; @@ -2757,24 +2762,28 @@ } #endif - if (fdidx < 0) - return (0); - if (vp->v_type == VDIR) mode = FREAD; else mode &= ~(O_CREAT | O_EXCL | O_NOCTTY | O_TRUNC); /* - * That certain "pretty disgustingly long chain" - * by which we can put our hands of the file struct - * assinged to this call. + * Contrary to that how it used to be, now we go on even if it's an + * internal (fileless) open: to match the "specs", we must get the + * keep_cache information (and act according to it). */ - fp = td->td_proc->p_fd->fd_ofiles[fdidx]; - if (! fp) - panic("nonneg file desc passed to us but no file there"); + if (fdidx >= 0) { + /* + * That certain "pretty disgustingly long chain" + * by which we can put our hands of the file struct + * assinged to this call. + */ + fp = td->td_proc->p_fd->fd_ofiles[fdidx]; + if (! fp) + panic("nonneg file desc passed to us but no file there"); - DEBUG2G("fp->f_flag 0x%x, open mode %d\n", fp->f_flag, mode); + DEBUG2G("fp->f_flag 0x%x, open mode %d\n", fp->f_flag, mode); + } fdi.iosize = sizeof(*foi); if ((err = fdisp_prepare_all(&fdi, (vp->v_type == VDIR) ? FUSE_OPENDIR : FUSE_OPEN, vp, td, cred))) @@ -2792,9 +2801,12 @@ fufh->fh_id = foo->fh; - fp->f_flag = mode; + if (fp) + fp->f_flag = mode; if (foo->open_flags & FOPEN_DIRECT_IO) { - fp->f_flag |= O_DIRECT; /* This seems not to be permanent */ + if (fp) + /* This seems not to be permanent */ + fp->f_flag |= O_DIRECT; fufh->flags |= FUSEFH_DIRECTIO; } @@ -2862,13 +2874,15 @@ fp->f_ops = &fuse_fileops; #endif - fp->f_ops = &fuse_fileops; fufh->mode = mode; fufh->cred = crhold(cred); fufh->pid = td->td_proc->p_pid; fufh->useco = 1; - fufh->fp = fp; - fp->f_data = fufh; + if (fp) { + fp->f_ops = &fuse_fileops; + fufh->fp = fp; + fp->f_data = fufh; + } #if _DEBUG DEBUG2G("before gc...\n"); @@ -2880,7 +2894,7 @@ /* * The neat idea is that a cache cleanup is the best time for a gc -- * gc'ing unbound filehandles at inactive/reclaim time is not enough, - * they can Just accumulate while something happens with the file, + * they can just accumulate while something happens with the file, * given the cache is flushed frequently (otherwise there is no reason * for the system to spawn them, as the data can be read from core). * So then, let's just tie their gc to cache flush... @@ -2888,10 +2902,14 @@ * is get kept until there is reference to it, because that's done * via the lookup/forget mechanism, and not via filehandles. */ - if ((! keep_cache) || (mode & FWRITE)) { - DEBUG2G("gc'ing...\n"); - iterate_filehandles(vp, td, cred, 0, release_filehandle, NULL); - } + /* + * Now we use unbound filehandles pretty rarely (as read/write of + * regular files doesn't rely on them anymore), only during exec + * and reading directories. It's pretty much unlikely that one + * can be reused in any way, so we drop them unconditionally. + */ + DEBUG2G("gc'ing...\n"); + iterate_filehandles(vp, td, cred, 0, release_filehandle, NULL); sx_xunlock(&fvdat->fh_lock); fvdat->fh_counter++; #if _DEBUG2G @@ -2899,6 +2917,9 @@ vn_printf(vp, " "); #endif + if (! fp) + fufh->useco--; + if (! keep_cache) { DEBUG2G("flushing cache\n"); /* @@ -4765,10 +4786,7 @@ struct vnode *vp; int rc; -#if _DEBUG2G - DEBUG2G("vnode #%d\n", VTOI((struct vnode *)bo->bo_private)); - kdb_backtrace(); -#endif + DEBUG("vnode #%d\n", VTOI((struct vnode *)bo->bo_private)); vp = bo->bo_private; KASSERT(bo == &vp->v_bufobj, ("BO/VP mismatch: vp %p #(%d) bo %p != %p", vp, VTOI(vp), &vp->v_bufobj, bo)); From owner-p4-projects@FreeBSD.ORG Mon Sep 12 10:58:27 2005 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 94F5616A421; Mon, 12 Sep 2005 10:58:26 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 69B5C16A41F for ; Mon, 12 Sep 2005 10:58:26 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 135CB43D48 for ; Mon, 12 Sep 2005 10:58:26 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8CAwQmI033867 for ; Mon, 12 Sep 2005 10:58:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CAwPNM033864 for perforce@freebsd.org; Mon, 12 Sep 2005 10:58:25 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 12 Sep 2005 10:58:25 GMT Message-Id: <200509121058.j8CAwPNM033864@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 83452 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, 12 Sep 2005 10:58:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=83452 Change 83452 by rwatson@rwatson_zoo on 2005/09/12 10:57:53 Integrate netsmp from FreeBSD CVS: - devfs style fixen - vfs_read_dirrent - Loop back a number of fifofs fixes/tweaks. Affected files ... .. //depot/projects/netsmp/src/sys/dev/pccbb/pccbb.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/usb/usbdevs#2 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#6 integrate .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#5 integrate .. //depot/projects/netsmp/src/sys/i386/include/ucontext.h#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_hash.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_subr.c#8 integrate .. //depot/projects/netsmp/src/sys/netgraph/netgraph.h#6 integrate .. //depot/projects/netsmp/src/sys/sys/vnode.h#4 integrate .. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_rawread.c#2 integrate Differences ... ==== //depot/projects/netsmp/src/sys/dev/pccbb/pccbb.c#3 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.127 2005/09/08 17:18:42 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.128 2005/09/12 05:35:11 imp Exp $"); #include #include @@ -1554,7 +1554,6 @@ int error = 0; struct cbb_softc *sc = device_get_softc(self); - cbb_power_disable_socket(device_get_parent(self), self); cbb_set(sc, CBB_SOCKET_MASK, 0); /* Quiet hardware */ bus_teardown_intr(self, sc->irq_res, sc->intrhand); sc->flags &= ~CBB_CARD_OK; /* Card is bogus now */ ==== //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/mss.c,v 1.100 2005/09/11 13:59:02 netchild Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/mss.c,v 1.101 2005/09/12 04:12:50 imp Exp $"); /* board-specific include files */ #include @@ -92,7 +92,9 @@ /* prototypes for local functions */ static int mss_detect(device_t dev, struct mss_info *mss); +#ifndef PC98 static int opti_detect(device_t dev, struct mss_info *mss); +#endif static char *ymf_test(device_t dev, struct mss_info *mss); static void ad_unmute(struct mss_info *mss); @@ -1592,6 +1594,7 @@ return ENXIO; } +#ifndef PC98 static int opti_detect(device_t dev, struct mss_info *mss) { @@ -1637,6 +1640,7 @@ } return 0; } +#endif static char * ymf_test(device_t dev, struct mss_info *mss) ==== //depot/projects/netsmp/src/sys/dev/usb/usbdevs#2 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.232 2005/07/08 16:28:24 sam Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.233 2005/09/12 03:32:46 obrien Exp $ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */ /*- @@ -334,7 +334,7 @@ vendor AGFA 0x06bd AGFA-Gevaert vendor ASIAMD 0x06be Asia Microelectronic Development vendor BIZLINK 0x06c4 Bizlink -vendor KEYSPAN 0x06cd Keyspan +vendor KEYSPAN 0x06cd Keyspan / InnoSys Inc. vendor AASHIMA 0x06d6 Aashima vendor MULTITECH 0x06e0 MultiTech vendor ADS 0x06e1 ADS ==== //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#6 (text+ko) ==== @@ -31,7 +31,7 @@ * @(#)kernfs_vnops.c 8.15 (Berkeley) 5/21/95 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vnops.c 1.43 * - * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.121 2005/08/29 11:14:18 phk Exp $ + * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.122 2005/09/12 08:03:15 phk Exp $ */ /* @@ -67,108 +67,11 @@ #include #include +static struct vop_vector devfs_vnodeops; +static struct vop_vector devfs_specops; +static struct fileops devfs_ops_f; + #include - -static fo_rdwr_t devfs_read_f; -static fo_rdwr_t devfs_write_f; -static fo_ioctl_t devfs_ioctl_f; -static fo_poll_t devfs_poll_f; -static fo_kqfilter_t devfs_kqfilter_f; -static fo_stat_t devfs_stat_f; -static fo_close_t devfs_close_f; - -static struct fileops devfs_ops_f = { - .fo_read = devfs_read_f, - .fo_write = devfs_write_f, - .fo_ioctl = devfs_ioctl_f, - .fo_poll = devfs_poll_f, - .fo_kqfilter = devfs_kqfilter_f, - .fo_stat = devfs_stat_f, - .fo_close = devfs_close_f, - .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE -}; - -static vop_access_t devfs_access; -static vop_advlock_t devfs_advlock; -static vop_close_t devfs_close; -static vop_fsync_t devfs_fsync; -static vop_getattr_t devfs_getattr; -static vop_lookup_t devfs_lookup; -static vop_lookup_t devfs_lookupx; -static vop_mknod_t devfs_mknod; -static vop_open_t devfs_open; -static vop_pathconf_t devfs_pathconf; -static vop_print_t devfs_print; -static vop_readdir_t devfs_readdir; -static vop_readlink_t devfs_readlink; -static vop_reclaim_t devfs_reclaim; -static vop_remove_t devfs_remove; -static vop_revoke_t devfs_revoke; -static vop_ioctl_t devfs_rioctl; -static vop_read_t devfs_rread; -static vop_setattr_t devfs_setattr; -#ifdef MAC -static vop_setlabel_t devfs_setlabel; -#endif -static vop_symlink_t devfs_symlink; - -static struct vop_vector devfs_vnodeops = { - .vop_default = &default_vnodeops, - - .vop_access = devfs_access, - .vop_getattr = devfs_getattr, - .vop_ioctl = devfs_rioctl, - .vop_lookup = devfs_lookup, - .vop_mknod = devfs_mknod, - .vop_pathconf = devfs_pathconf, - .vop_read = devfs_rread, - .vop_readdir = devfs_readdir, - .vop_readlink = devfs_readlink, - .vop_reclaim = devfs_reclaim, - .vop_remove = devfs_remove, - .vop_revoke = devfs_revoke, - .vop_setattr = devfs_setattr, -#ifdef MAC - .vop_setlabel = devfs_setlabel, -#endif - .vop_symlink = devfs_symlink, -}; - -static struct vop_vector devfs_specops = { - .vop_default = &default_vnodeops, - - .vop_access = devfs_access, - .vop_advlock = devfs_advlock, - .vop_bmap = VOP_PANIC, - .vop_close = devfs_close, - .vop_create = VOP_PANIC, - .vop_fsync = devfs_fsync, - .vop_getattr = devfs_getattr, - .vop_lease = VOP_NULL, - .vop_link = VOP_PANIC, - .vop_mkdir = VOP_PANIC, - .vop_mknod = VOP_PANIC, - .vop_open = devfs_open, - .vop_pathconf = devfs_pathconf, - .vop_print = devfs_print, - .vop_read = VOP_PANIC, - .vop_readdir = VOP_PANIC, - .vop_readlink = VOP_PANIC, - .vop_reallocblks = VOP_PANIC, - .vop_reclaim = devfs_reclaim, - .vop_remove = devfs_remove, - .vop_rename = VOP_PANIC, - .vop_revoke = devfs_revoke, - .vop_rmdir = VOP_PANIC, - .vop_setattr = devfs_setattr, -#ifdef MAC - .vop_setlabel = devfs_setlabel, -#endif - .vop_strategy = VOP_PANIC, - .vop_symlink = VOP_PANIC, - .vop_write = VOP_PANIC, -}; - static int devfs_fp_check(struct file *fp, struct cdev **devp, struct cdevsw **dswp) { @@ -278,13 +181,7 @@ } static int -devfs_access(ap) - struct vop_access_args /* { - struct vnode *a_vp; - int a_mode; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_access(struct vop_access_args *ap) { struct vnode *vp = ap->a_vp; struct devfs_dirent *de; @@ -313,14 +210,7 @@ */ /* ARGSUSED */ static int -devfs_advlock(ap) - struct vop_advlock_args /* { - struct vnode *a_vp; - caddr_t a_id; - int a_op; - struct flock *a_fl; - int a_flags; - } */ *ap; +devfs_advlock(struct vop_advlock_args *ap) { return (ap->a_flags & F_FLOCK ? EOPNOTSUPP : EINVAL); @@ -331,13 +221,7 @@ */ /* ARGSUSED */ static int -devfs_close(ap) - struct vop_close_args /* { - struct vnode *a_vp; - int a_fflag; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_close(struct vop_close_args *ap) { struct vnode *vp = ap->a_vp, *oldvp; struct thread *td = ap->a_td; @@ -423,13 +307,7 @@ */ /* ARGSUSED */ static int -devfs_fsync(ap) - struct vop_fsync_args /* { - struct vnode *a_vp; - struct ucred *a_cred; - int a_waitfor; - struct thread *a_td; - } */ *ap; +devfs_fsync(struct vop_fsync_args *ap) { if (!vn_isdisk(ap->a_vp, NULL)) return (0); @@ -438,13 +316,7 @@ } static int -devfs_getattr(ap) - struct vop_getattr_args /* { - struct vnode *a_vp; - struct vattr *a_vap; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_getattr(struct vop_getattr_args *ap) { struct vnode *vp = ap->a_vp; struct vattr *vap = ap->a_vap; @@ -593,12 +465,7 @@ } static int -devfs_lookupx(ap) - struct vop_lookup_args /* { - struct vnode * a_dvp; - struct vnode ** a_vpp; - struct componentname * a_cnp; - } */ *ap; +devfs_lookupx(struct vop_lookup_args *ap) { struct componentname *cnp; struct vnode *dvp, **vpp; @@ -743,14 +610,6 @@ static int devfs_mknod(struct vop_mknod_args *ap) - /* - struct vop_mknod_args { - struct vnodeop_desc *a_desc; - struct vnode *a_dvp; - struct vnode **a_vpp; - struct componentname *a_cnp; - struct vattr *a_vap; - }; */ { struct componentname *cnp; struct vnode *dvp, **vpp; @@ -799,14 +658,7 @@ */ /* ARGSUSED */ static int -devfs_open(ap) - struct vop_open_args /* { - struct vnode *a_vp; - int a_mode; - struct ucred *a_cred; - struct thread *a_td; - int a_fdidx; - } */ *ap; +devfs_open(struct vop_open_args *ap) { struct thread *td = ap->a_td; struct vnode *vp = ap->a_vp; @@ -890,12 +742,7 @@ } static int -devfs_pathconf(ap) - struct vop_pathconf_args /* { - struct vnode *a_vp; - int a_name; - int *a_retval; - } */ *ap; +devfs_pathconf(struct vop_pathconf_args *ap) { switch (ap->a_name) { @@ -942,10 +789,7 @@ * Print out the contents of a special device vnode. */ static int -devfs_print(ap) - struct vop_print_args /* { - struct vnode *a_vp; - } */ *ap; +devfs_print(struct vop_print_args *ap) { printf("\tdev %s\n", devtoname(ap->a_vp->v_rdev)); @@ -986,15 +830,7 @@ } static int -devfs_readdir(ap) - struct vop_readdir_args /* { - struct vnode *a_vp; - struct uio *a_uio; - struct ucred *a_cred; - int *a_eofflag; - int *a_ncookies; - u_long **a_cookies; - } */ *ap; +devfs_readdir(struct vop_readdir_args *ap) { int error; struct uio *uio; @@ -1003,9 +839,6 @@ struct devfs_dirent *de; struct devfs_mount *dmp; off_t off, oldoff; - int ncookies = 0; - u_long *cookiebuf, *cookiep; - struct dirent *dps, *dpe; if (ap->a_vp->v_type != VDIR) return (ENOTDIR); @@ -1021,6 +854,10 @@ de = ap->a_vp->v_data; off = 0; oldoff = uio->uio_offset; + if (ap->a_ncookies != NULL) { + *ap->a_ncookies = 0; + *ap->a_cookies = NULL; + } TAILQ_FOREACH(dd, &de->de_dlist, de_list) { if (dd->de_flags & DE_WHITEOUT) continue; @@ -1033,41 +870,19 @@ break; dp->d_fileno = de->de_inode; if (off >= uio->uio_offset) { - ncookies++; - error = uiomove(dp, dp->d_reclen, uio); + error = vfs_read_dirent(ap, dp, off); if (error) break; } off += dp->d_reclen; } - if( !error && ap->a_ncookies != NULL && ap->a_cookies != NULL ) { - MALLOC(cookiebuf, u_long *, ncookies * sizeof(u_long), - M_TEMP, M_WAITOK); - cookiep = cookiebuf; - dps = (struct dirent *)((char *)uio->uio_iov->iov_base - - (uio->uio_offset - oldoff)); - dpe = (struct dirent *) uio->uio_iov->iov_base; - for( dp = dps; - dp < dpe; - dp = (struct dirent *)((caddr_t) dp + dp->d_reclen)) { - oldoff += dp->d_reclen; - *cookiep++ = (u_long) oldoff; - } - *ap->a_ncookies = ncookies; - *ap->a_cookies = cookiebuf; - } lockmgr(&dmp->dm_lock, LK_RELEASE, 0, curthread); uio->uio_offset = off; return (error); } static int -devfs_readlink(ap) - struct vop_readlink_args /* { - struct vnode *a_vp; - struct uio *a_uio; - struct ucred *a_cead; - } */ *ap; +devfs_readlink(struct vop_readlink_args *ap) { int error; struct devfs_dirent *de; @@ -1078,10 +893,7 @@ } static int -devfs_reclaim(ap) - struct vop_reclaim_args /* { - struct vnode *a_vp; - } */ *ap; +devfs_reclaim(struct vop_reclaim_args *ap) { struct vnode *vp = ap->a_vp; struct devfs_dirent *de; @@ -1109,12 +921,7 @@ } static int -devfs_remove(ap) - struct vop_remove_args /* { - struct vnode *a_dvp; - struct vnode *a_vp; - struct componentname *a_cnp; - } */ *ap; +devfs_remove(struct vop_remove_args *ap) { struct vnode *vp = ap->a_vp; struct devfs_dirent *dd; @@ -1145,11 +952,7 @@ * as well so that we create a new one next time around. */ static int -devfs_revoke(ap) - struct vop_revoke_args /* { - struct vnode *a_vp; - int a_flags; - } */ *ap; +devfs_revoke(struct vop_revoke_args *ap) { struct vnode *vp = ap->a_vp; struct cdev *dev; @@ -1170,15 +973,7 @@ } static int -devfs_rioctl(ap) - struct vop_ioctl_args /* { - struct vnode *a_vp; - u_long a_command; - caddr_t a_data; - int a_fflag; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_rioctl(struct vop_ioctl_args *ap) { int error; struct devfs_mount *dmp; @@ -1193,13 +988,7 @@ } static int -devfs_rread(ap) - struct vop_read_args /* { - struct vnode *a_vp; - struct uio *a_uio; - int a_ioflag; - struct ucred *a_cred; - } */ *ap; +devfs_rread(struct vop_read_args *ap) { if (ap->a_vp->v_type != VDIR) @@ -1208,13 +997,7 @@ } static int -devfs_setattr(ap) - struct vop_setattr_args /* { - struct vnode *a_vp; - struct vattr *a_vap; - struct ucred *a_cred; - struct proc *a_p; - } */ *ap; +devfs_setattr(struct vop_setattr_args *ap) { struct devfs_dirent *de; struct vattr *vap; @@ -1300,13 +1083,7 @@ #ifdef MAC static int -devfs_setlabel(ap) - struct vop_setlabel_args /* { - struct vnode *a_vp; - struct mac *a_label; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_setlabel(struct vop_setlabel_args *ap) { struct vnode *vp; struct devfs_dirent *de; @@ -1329,14 +1106,7 @@ } static int -devfs_symlink(ap) - struct vop_symlink_args /* { - struct vnode *a_dvp; - struct vnode **a_vpp; - struct componentname *a_cnp; - struct vattr *a_vap; - char *a_target; - } */ *ap; +devfs_symlink(struct vop_symlink_args *ap) { int i, error; struct devfs_dirent *dd; @@ -1414,6 +1184,74 @@ return (x->si_inode); } +static struct fileops devfs_ops_f = { + .fo_read = devfs_read_f, + .fo_write = devfs_write_f, + .fo_ioctl = devfs_ioctl_f, + .fo_poll = devfs_poll_f, + .fo_kqfilter = devfs_kqfilter_f, + .fo_stat = devfs_stat_f, + .fo_close = devfs_close_f, + .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE +}; + +static struct vop_vector devfs_vnodeops = { + .vop_default = &default_vnodeops, + + .vop_access = devfs_access, + .vop_getattr = devfs_getattr, + .vop_ioctl = devfs_rioctl, + .vop_lookup = devfs_lookup, + .vop_mknod = devfs_mknod, + .vop_pathconf = devfs_pathconf, + .vop_read = devfs_rread, + .vop_readdir = devfs_readdir, + .vop_readlink = devfs_readlink, + .vop_reclaim = devfs_reclaim, + .vop_remove = devfs_remove, + .vop_revoke = devfs_revoke, + .vop_setattr = devfs_setattr, +#ifdef MAC + .vop_setlabel = devfs_setlabel, +#endif + .vop_symlink = devfs_symlink, +}; + +static struct vop_vector devfs_specops = { + .vop_default = &default_vnodeops, + + .vop_access = devfs_access, + .vop_advlock = devfs_advlock, + .vop_bmap = VOP_PANIC, + .vop_close = devfs_close, + .vop_create = VOP_PANIC, + .vop_fsync = devfs_fsync, + .vop_getattr = devfs_getattr, + .vop_lease = VOP_NULL, + .vop_link = VOP_PANIC, + .vop_mkdir = VOP_PANIC, + .vop_mknod = VOP_PANIC, + .vop_open = devfs_open, + .vop_pathconf = devfs_pathconf, + .vop_print = devfs_print, + .vop_read = VOP_PANIC, + .vop_readdir = VOP_PANIC, + .vop_readlink = VOP_PANIC, + .vop_reallocblks = VOP_PANIC, + .vop_reclaim = devfs_reclaim, + .vop_remove = devfs_remove, + .vop_rename = VOP_PANIC, + .vop_revoke = devfs_revoke, + .vop_rmdir = VOP_PANIC, + .vop_setattr = devfs_setattr, +#ifdef MAC + .vop_setlabel = devfs_setlabel, +#endif + .vop_strategy = VOP_PANIC, + .vop_symlink = VOP_PANIC, + .vop_write = VOP_PANIC, +}; + /* * Our calling convention to the device drivers used to be that we passed ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.113 2005/03/13 12:18:23 jeff Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.118 2005/09/12 10:16:18 rwatson Exp $ */ #include ==== //depot/projects/netsmp/src/sys/i386/include/ucontext.h#2 (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/include/ucontext.h,v 1.10 2002/12/02 19:58:55 deischen Exp $ + * $FreeBSD: src/sys/i386/include/ucontext.h,v 1.11 2005/09/12 03:34:05 obrien Exp $ */ #ifndef _MACHINE_UCONTEXT_H_ @@ -37,26 +37,26 @@ * sigcontext. So that we can support sigcontext * and ucontext_t at the same time. */ - int mc_onstack; /* XXX - sigcontext compat. */ - int mc_gs; /* machine state (struct trapframe) */ - int mc_fs; - int mc_es; - int mc_ds; - int mc_edi; - int mc_esi; - int mc_ebp; - int mc_isp; - int mc_ebx; - int mc_edx; - int mc_ecx; - int mc_eax; - int mc_trapno; - int mc_err; - int mc_eip; - int mc_cs; - int mc_eflags; - int mc_esp; - int mc_ss; + __register_t mc_onstack; /* XXX - sigcontext compat. */ + __register_t mc_gs; /* machine state (struct trapframe) */ + __register_t mc_fs; + __register_t mc_es; + __register_t mc_ds; + __register_t mc_edi; + __register_t mc_esi; + __register_t mc_ebp; + __register_t mc_isp; + __register_t mc_ebx; + __register_t mc_edx; + __register_t mc_ecx; + __register_t mc_eax; + __register_t mc_trapno; + __register_t mc_err; + __register_t mc_eip; + __register_t mc_cs; + __register_t mc_eflags; + __register_t mc_esp; + __register_t mc_ss; int mc_len; /* sizeof(mcontext_t) */ #define _MC_FPFMT_NODEV 0x10000 /* device not present or configured */ @@ -77,28 +77,28 @@ #if defined(_KERNEL) && defined(COMPAT_FREEBSD4) struct mcontext4 { - int mc_onstack; /* XXX - sigcontext compat. */ - int mc_gs; /* machine state (struct trapframe) */ - int mc_fs; - int mc_es; - int mc_ds; - int mc_edi; - int mc_esi; - int mc_ebp; - int mc_isp; - int mc_ebx; - int mc_edx; - int mc_ecx; - int mc_eax; - int mc_trapno; - int mc_err; - int mc_eip; - int mc_cs; - int mc_eflags; - int mc_esp; /* machine state */ - int mc_ss; - int mc_fpregs[28]; /* env87 + fpacc87 + u_long */ - int __spare__[17]; + __register_t mc_onstack; /* XXX - sigcontext compat. */ + __register_t mc_gs; /* machine state (struct trapframe) */ + __register_t mc_fs; + __register_t mc_es; + __register_t mc_ds; + __register_t mc_edi; + __register_t mc_esi; + __register_t mc_ebp; + __register_t mc_isp; + __register_t mc_ebx; + __register_t mc_edx; + __register_t mc_ecx; + __register_t mc_eax; + __register_t mc_trapno; + __register_t mc_err; + __register_t mc_eip; + __register_t mc_cs; + __register_t mc_eflags; + __register_t mc_esp; /* machine state */ + __register_t mc_ss; + __register_t mc_fpregs[28]; /* env87 + fpacc87 + u_long */ + __register_t __spare__[17]; }; #endif ==== //depot/projects/netsmp/src/sys/kern/vfs_hash.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_hash.c,v 1.9 2005/04/07 07:54:08 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_hash.c,v 1.10 2005/09/12 01:48:57 tegge Exp $"); #include #include @@ -79,7 +79,7 @@ VI_LOCK(vp); mtx_unlock(&vfs_hash_mtx); error = vget(vp, flags | LK_INTERLOCK, td); - if (error == ENOENT) + if (error == ENOENT && (flags & LK_NOWAIT) == 0) break; if (error) return (error); @@ -124,7 +124,7 @@ VI_LOCK(vp2); mtx_unlock(&vfs_hash_mtx); error = vget(vp2, flags | LK_INTERLOCK, td); - if (error == ENOENT) + if (error == ENOENT && (flags & LK_NOWAIT) == 0) break; mtx_lock(&vfs_hash_mtx); LIST_INSERT_HEAD(&vfs_hash_side, vp, v_hashlist); ==== //depot/projects/netsmp/src/sys/kern/vfs_subr.c#8 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.643 2005/08/28 23:00:11 ssouhlal Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.644 2005/09/12 08:46:07 phk Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -3838,3 +3839,29 @@ } return (kn->kn_fflags != 0); } + +int +vfs_read_dirent(struct vop_readdir_args *ap, struct dirent *dp, off_t off) +{ + int error; + + if (dp->d_reclen > ap->a_uio->uio_resid) + return (ENAMETOOLONG); + error = uiomove(dp, dp->d_reclen, ap->a_uio); + if (error) { + if (ap->a_ncookies != NULL) { + if (ap->a_cookies != NULL) + free(ap->a_cookies, M_TEMP); + ap->a_cookies = NULL; + *ap->a_ncookies = 0; + } + return (error); + } + if (ap->a_ncookies == NULL) + return (0); + *ap->a_cookies = realloc(*ap->a_cookies, + (*ap->a_ncookies + 1) * sizeof(u_long), M_TEMP, M_WAITOK | M_ZERO); + (*ap->a_cookies)[*ap->a_ncookies] = off; + return (0); +} + ==== //depot/projects/netsmp/src/sys/netgraph/netgraph.h#6 (text+ko) ==== @@ -37,7 +37,7 @@ * * Author: Julian Elischer * - * $FreeBSD: src/sys/netgraph/netgraph.h,v 1.60 2005/08/30 09:44:54 glebius Exp $ + * $FreeBSD: src/sys/netgraph/netgraph.h,v 1.61 2005/09/12 07:41:31 glebius Exp $ * $Whistle: netgraph.h,v 1.29 1999/11/01 07:56:13 julian Exp $ */ @@ -1087,7 +1087,6 @@ int ng_callout(struct callout *c, node_p node, hook_p hook, int ticks, ng_item_fn *fn, void * arg1, int arg2); #define ng_callout_init(c) callout_init(c, CALLOUT_MPSAFE) -#define ng_callout_init_mtx(c,mtx) callout_init_mtx(c, mtx, 0) /* Flags for netgraph functions. */ #define NG_NOFLAGS 0x00000000 /* no special options */ ==== //depot/projects/netsmp/src/sys/sys/vnode.h#4 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)vnode.h 8.7 (Berkeley) 2/4/94 - * $FreeBSD: src/sys/sys/vnode.h,v 1.306 2005/08/06 01:42:04 ssouhlal Exp $ + * $FreeBSD: src/sys/sys/vnode.h,v 1.307 2005/09/12 08:46:07 phk Exp $ */ #ifndef _SYS_VNODE_H_ @@ -727,6 +727,8 @@ void vfs_hash_remove(struct vnode *vp); int vfs_kqfilter(struct vop_kqfilter_args *); +struct dirent; +int vfs_read_dirent(struct vop_readdir_args *ap, struct dirent *dp, off_t off); #endif /* _KERNEL */ ==== //depot/projects/netsmp/src/sys/ufs/ffs/ffs_rawread.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_rawread.c,v 1.25 2005/04/30 11:28:19 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_rawread.c,v 1.26 2005/09/12 01:21:42 tegge Exp $"); #include #include @@ -102,7 +102,6 @@ int upgraded; struct bufobj *bo; - GIANT_REQUIRED; /* Check for dirty mmap, pending writes and dirty buffers */ spl = splbio(); VI_LOCK(vp); @@ -189,7 +188,6 @@ struct inode *ip; ufs2_daddr_t blkno; - GIANT_REQUIRED; bsize = vp->v_mount->mnt_stat.f_iosize; ip = VTOI(vp); @@ -268,7 +266,6 @@ off_t offset; struct thread *td; - GIANT_REQUIRED; td = uio->uio_td ? uio->uio_td : curthread; udata = uio->uio_iov->iov_base; resid = uio->uio_resid; From owner-p4-projects@FreeBSD.ORG Mon Sep 12 11:00:29 2005 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 7CCCE16A421; Mon, 12 Sep 2005 11:00:29 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3DBC116A41F for ; Mon, 12 Sep 2005 11:00:29 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 07C0743D46 for ; Mon, 12 Sep 2005 11:00:29 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8CB0SFL033985 for ; Mon, 12 Sep 2005 11:00:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CB0SPP033982 for perforce@freebsd.org; Mon, 12 Sep 2005 11:00:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 12 Sep 2005 11:00:28 GMT Message-Id: <200509121100.j8CB0SPP033982@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 83453 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, 12 Sep 2005 11:00:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=83453 Change 83453 by rwatson@rwatson_zoo on 2005/09/12 10:59:28 Prepend host information into the juggle csv output using uname(3). Affected files ... .. //depot/projects/netsmp/src/tools/netperf/juggle/juggle.c#2 edit Differences ... ==== //depot/projects/netsmp/src/tools/netperf/juggle/juggle.c#2 (text+ko) ==== @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -494,6 +495,22 @@ struct timespec juggle_results[LOOPS], process_results[LOOPS]; struct timespec thread_results[LOOPS]; int fd1, fd2, i, j, p; + struct utsname uts; + + if (uname(&uts) < 0) + err(-1, "utsname"); + printf("sysname, %s\n", uts.sysname); + printf("nodename, %s\n", uts.nodename); + printf("release, %s\n", uts.release); + printf("version, %s\n", uts.version); + printf("machine, %s\n", uts.machine); + printf("\n"); + + printf("MESSAGELEN, %d\n", MESSAGELEN); + printf("NUMCYCLES, %d\n", NUMCYCLES); + printf("LOOPS, %d\n", LOOPS); + printf("PIPELINE_MAX, %d\n", PIPELINE_MAX); + printf("\n\n"); printf("ipctype, test, pipeline_depth"); for (j = 0; j < LOOPS; j++) From owner-p4-projects@FreeBSD.ORG Mon Sep 12 11:02:34 2005 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 81C0C16A436; Mon, 12 Sep 2005 11:02:33 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4080716A431 for ; Mon, 12 Sep 2005 11:02:33 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 00A4C43D5C for ; Mon, 12 Sep 2005 11:02:31 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8CB2Vhb034112 for ; Mon, 12 Sep 2005 11:02:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CB2VRt034109 for perforce@freebsd.org; Mon, 12 Sep 2005 11:02:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 12 Sep 2005 11:02:31 GMT Message-Id: <200509121102.j8CB2VRt034109@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 83454 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, 12 Sep 2005 11:02:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=83454 Change 83454 by rwatson@rwatson_peppercorn on 2005/09/12 11:01:40 Add a version string to juggle. Affected files ... .. //depot/projects/netsmp/src/tools/netperf/juggle/juggle.c#3 edit Differences ... ==== //depot/projects/netsmp/src/tools/netperf/juggle/juggle.c#3 (text+ko) ==== @@ -497,6 +497,8 @@ int fd1, fd2, i, j, p; struct utsname uts; + printf("version, juggle.c %s\n", "$P4: //depot/projects/netsmp/src/tools/netperf/juggle/juggle.c#3 $"); + if (uname(&uts) < 0) err(-1, "utsname"); printf("sysname, %s\n", uts.sysname); From owner-p4-projects@FreeBSD.ORG Mon Sep 12 12:25:13 2005 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 E78C516A421; Mon, 12 Sep 2005 12:25:12 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A9B3216A41F for ; Mon, 12 Sep 2005 12:25:12 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 720F643D46 for ; Mon, 12 Sep 2005 12:25:12 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8CCPChd037782 for ; Mon, 12 Sep 2005 12:25:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CCPC82037779 for perforce@freebsd.org; Mon, 12 Sep 2005 12:25:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 12 Sep 2005 12:25:12 GMT Message-Id: <200509121225.j8CCPC82037779@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 83457 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, 12 Sep 2005 12:25:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=83457 Change 83457 by rwatson@rwatson_peppercorn on 2005/09/12 12:24:23 Integrate netsmp branch from FreeBSD CVS: - Merge fifo regression test updates. - Merge fifofs "don't seek" fix. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#6 integrate .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_io/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_io/fifo_io.c#1 branch .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_open/fifo_open.c#2 integrate Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.118 2005/09/12 10:16:18 rwatson Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.119 2005/09/12 12:15:12 rwatson Exp $ */ #include @@ -68,7 +68,7 @@ .fo_kqfilter = fifo_kqfilter_f, .fo_stat = fifo_stat_f, .fo_close = fifo_close_f, - .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE + .fo_flags = DFLAG_PASSABLE }; /* ==== //depot/projects/netsmp/src/tools/regression/fifo/fifo_open/fifo_open.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/tools/regression/fifo/fifo_open/fifo_open.c,v 1.1 2005/09/11 13:03:36 rwatson Exp $ + * $FreeBSD: src/tools/regression/fifo/fifo_open/fifo_open.c,v 1.2 2005/09/11 17:41:32 rwatson Exp $ */ #include @@ -462,6 +462,8 @@ strcpy(temp_dir, "/tmp/fifo_create.XXXXXXXXXXX"); if (mkdtemp(temp_dir) == NULL) err(-1, "mkdtemp"); + if (chdir(temp_dir) < 0) + err(-1, "chdir: %s", temp_dir); atexit(atexit_temp_dir); test_non_blocking_reader(); From owner-p4-projects@FreeBSD.ORG Mon Sep 12 12:30:29 2005 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 4FEA516A421; Mon, 12 Sep 2005 12:30:29 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EDBE016A41F for ; Mon, 12 Sep 2005 12:30:28 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FD8343D72 for ; Mon, 12 Sep 2005 12:30:20 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8CCUJHm038028 for ; Mon, 12 Sep 2005 12:30:19 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CCUILL038025 for perforce@freebsd.org; Mon, 12 Sep 2005 12:30:18 GMT (envelope-from soc-chenk@freebsd.org) Date: Mon, 12 Sep 2005 12:30:18 GMT Message-Id: <200509121230.j8CCUILL038025@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 83458 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, 12 Sep 2005 12:30:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=83458 Change 83458 by soc-chenk@soc-chenk_leavemealone on 2005/09/12 12:29:43 Added Messaging chapter to IMPLEMENTATION_NOTES Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/Changelog#4 edit .. //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#3 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/Changelog#4 (text+ko) ==== @@ -1,3 +1,6 @@ +Mon Sep 12 14:28:34 CEST 2005 at node: creo.hu, nick: csaba + * Added Messaging chapter to IMPLEMENTATION_NOTES + Mon Sep 12 11:37:04 CEST 2005 at node: creo.hu, nick: csaba * refined handling of cache and unbound filehandles ==== //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#3 (text+ko) ==== @@ -60,9 +60,20 @@ ones. Let's see those differences of the modules which stem from the differences of the two OS. +TOC: +0) VFS API +1) Mounting +* 1a -- interface +* 1b -- security +* 1c -- anything else +2) [vi]node operations +3) Syncing +4) Messaging +5) Miscellaneous + 0) VFS API -This is the one with the greatest impact. Linux VFS operations are +This is the one of the greatest impact. Linux VFS operations are inherently (struct) file based, BSD VFS operations are inherently vnode based (BSD vnodes correspond to Linux inodes). That is, all file-related VFS operations take a (struct) file parameter in Linux. @@ -402,7 +413,120 @@ described above, in a way which has nothing to do with in-kernel buffers. -4) Miscellaneous +4) Messaging + +Here I give a brief comparison of the ways of implementing messaging +between kernel and userspace in Linux and in FreeBSD. + +Before anything else: I don't claim superiority of either solutions over +the other. I implemented my solution from scratch, without understanding +the respective parts of the Linux code, and without having a clear vision +how this will be used by the VFS. (This latter implies that I tried to +make the design as general as possible. On one hand, this is good; on the other +hand, it means it doesn't contain any Fuse-specific tuning.) + +Now, "post festam" I took the effort of peeking at Linux Fuse's messaging +code, and I feel able to make this comparison. Nothing is carved into stone, +I might make up my mind and bend my code closer to that of Linux Fuse. +Or I might make it even more different. + +Terminology: "up" will mean "from kernel to userspace", "down" will mean... +you can guess. ("In" and "out" are too relativistic to my taste.) The basic +vehicle of messaging is called a "request" in Linux, a "ticket" in FreeBSD. + +The basic mode of operation is similar. + +* There is a pool of requests/tickets. + +* Syscall handler wants to get data from daemon. Takes a request/ticket from + the pool, fills in its fields, and inserts into upgoing queue. If + buffered I/O is being done, the backing pages/buffers are attached to + the request/ticket, too. Handler alerts device's read method and falls + asleep, waiting for answer. + +* The device's read method pushes up the message to the daemon. + +* The daemon does whatever she should do with it, and sends back an answer. + The device's write method grabs the answer and finds out its requester and + wakes that up. If buffered read is being done, appropriate parts of + the answer are handled differently, and copied into attached + page/buffer. + +* Syscall handler woken up, processes answer, drops requests/ticket, returns. + +Differences: + +* In Linux, one Fuse mount works with a fixed number of preallocated requests + (with some exceptions, when new ones are created), in FreeBSD, tickets are + created on demand. + +* In Linux, the buffers hosting the fields of a request are allocated on + the stack (that is, these fields are pointers to structures held in + variables of syscall handlers), in FreeBSD, they are allocated + dynamically (they are not freed when the ticket get dropped, they are + kept, reused, and reallocated on demand). + +* In Linux, the unique field of the request is filled with a really + unique value upon being taken out of the pool (ie., number of + take-out). In FreeBSD, unique values are owned by the ticket itself + (it's not changed during ticket's lifetime), so unique values give + information about the number of messaging sessions going in parallell + (there is a secondary field for each ticket which stores the number of + take-outs that ticket went through, but that's rarely used). + +* Messaging API: in Linux, the fields of requests are Fuse specific + (eg., there are fields named "inode", and "inode2", as file + operations take one or two inode). This means that syscall handlers + usually can fill these fields in a straightforward way + ("req->inode = inode;"). + + In FreeBSD, there are just raw message and answer buffers attached to a + given ticket. Syscall handlers use variables of pointers of the + required structs, and frontend methods for tickets set them to an appropriate + value (to the appropriate point in the ticket's appropriate buffer). + In some of the more complex cases this means a bit of manual pointer + arithmetic; for those of the complex patterns which are not unique + (mknod/creat/link), further, specific frontend methods are used. + In general, I didn't feel that this approach yields too much tedious + repetition when setting up a ticket. + +Interrupt handling: in Linux, when a syscall is interrupted, the +corresponding request is "backgrounded". It's put into another queue, and +when the daemon (unaware of the interrupt) sends its reply, then its +get dropped silently. + +And by-and-large, the same happens in FreeBSD -- just as the special +case of a more general mechanism. + +Tickets have a callback field, which can hold an arbitrary function (of +the given type), or can be NULL. When the device write method finds the +ticket to which a given answer should be passed, then invokes the +callback on the incoming data (so that's what "passing" means), provided +it's not NULL. If the callback is not NULL, then the device write method +expects the handler doing the necessary resource management by the +handler; but if it's NULL, the device write method takes up this role +and does what it can do -- drops the ticket, etc. + +While any type of callback could be used, there are only two in use +currently: the so-called standard one, which does what's described +above: fetch the answer and wake up syscall handler, and NULL. + +NULL is used when we don't want to wait for the answer (in case of doing +a RELEASE, and in FreeBSD, for FSYNC too), and to handle interruption. +If the syscall is interrupted (that is, if it returns from sleep with an +error), then it locks the answer queue and replaces the callback with +NULL, and thus the device write routine will aptly discard the answer. +Well, there is no guarantee of a race win: it's possible that the device +write routine has already taken out the ticket from the answer queue. In +that case, it will be passed to the standard handler. That's not a +problem, we can make him notice the interruption, and then he will +drop the answer rather than waking up anyone. [[Being a bit offtopic: +daemons are treated as female, for the sake of correctness. Let the +standard handler be male.]] The only difference is I/O: the standard +handler copies in data nevertheless, while this is skipped if the device +write routine finds a NULL callback. + +5) Miscellaneous Now you can ask: what do I think, which VFS design is the better? Vnode centric BSD or file centric Linux? From owner-p4-projects@FreeBSD.ORG Mon Sep 12 18:15:25 2005 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 7E49216A421; Mon, 12 Sep 2005 18:15:25 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3AF2A16A41F for ; Mon, 12 Sep 2005 18:15:25 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 06F8943D46 for ; Mon, 12 Sep 2005 18:15:25 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8CIFOAm070397 for ; Mon, 12 Sep 2005 18:15:24 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CIFOa5070394 for perforce@freebsd.org; Mon, 12 Sep 2005 18:15:24 GMT (envelope-from soc-victor@freebsd.org) Date: Mon, 12 Sep 2005 18:15:24 GMT Message-Id: <200509121815.j8CIFOa5070394@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 83481 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, 12 Sep 2005 18:15:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=83481 Change 83481 by soc-victor@soc-victor_82.76.158.176 on 2005/09/12 18:14:27 Removed some bogus asserts Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/tcp46_snmp.c#9 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp_udp46/tcp46_snmp.c#9 (text+ko) ==== @@ -1096,7 +1096,7 @@ abort(); } - assert(tcp_udp46_state_g.tcp4oids[i].index.len == 10); + switch (value->var.subs[sub - 1]) { @@ -1238,8 +1238,7 @@ abort(); } - assert(tcp_udp46_state_g.all_tcpoids[i].index.len == 12 || - tcp_udp46_state_g.all_tcpoids[i].index.len == 36); + switch (value->var.subs[sub - 1]) { @@ -1344,9 +1343,7 @@ abort(); } - assert( tcp_udp46_state_g.listen_tcpoids[i].index.len == 3 || - tcp_udp46_state_g.listen_tcpoids[i].index.len == 6 || - tcp_udp46_state_g.listen_tcpoids[i].index.len == 18); + switch (value->var.subs[sub - 1]) { From owner-p4-projects@FreeBSD.ORG Mon Sep 12 19:22:51 2005 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 DED0416A421; Mon, 12 Sep 2005 19:22:50 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BA95016A41F for ; Mon, 12 Sep 2005 19:22:50 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8966643D46 for ; Mon, 12 Sep 2005 19:22:50 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8CJMojN073095 for ; Mon, 12 Sep 2005 19:22:50 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CJMo7c073092 for perforce@freebsd.org; Mon, 12 Sep 2005 19:22:50 GMT (envelope-from jhb@freebsd.org) Date: Mon, 12 Sep 2005 19:22:50 GMT Message-Id: <200509121922.j8CJMo7c073092@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 83487 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, 12 Sep 2005 19:22:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=83487 Change 83487 by jhb@jhb_slimer on 2005/09/12 19:21:52 Updates. Affected files ... .. //depot/projects/smpng/sys/i386/i386/local_apic.c#32 edit .. //depot/projects/smpng/sys/notes#54 edit Differences ... ==== //depot/projects/smpng/sys/i386/i386/local_apic.c#32 (text+ko) ==== @@ -324,7 +324,7 @@ lapic_timer_enable_intr(); } - /* XXX: Performance counter, error, and thermal LVTs */ + /* XXX: Error and thermal LVTs */ intr_restore(eflags); } ==== //depot/projects/smpng/sys/notes#54 (text+ko) ==== @@ -39,7 +39,7 @@ - sys + start over saving current state in the ktrace branch so I can break this up - stop using '+' with "m" arguments - - implement + + implement - test - commit - see what's left of the diff after these @@ -88,10 +88,6 @@ + Add checks to msleep() and cv_wait*() to ensure they aren't called by an interrupt thread. Would need to provide an exception for the istorm stuff. -- Add witness checks to thread exit to make sure dying threads don't leak - locks. Requested by Jeff. - + Implemented - - Untested - Fix free race in eventhandlers: > In the macro "_EVENTHANDLER_INVOKE" in the file > "/sys/sys/eventhandler.h", you unlock the list lock From owner-p4-projects@FreeBSD.ORG Mon Sep 12 19:54:33 2005 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 5D18F16A421; Mon, 12 Sep 2005 19:54:33 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3307516A41F for ; Mon, 12 Sep 2005 19:54:33 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D95DC43D46 for ; Mon, 12 Sep 2005 19:54:32 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8CJsWjH074793 for ; Mon, 12 Sep 2005 19:54:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CJsWEO074790 for perforce@freebsd.org; Mon, 12 Sep 2005 19:54:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 12 Sep 2005 19:54:32 GMT Message-Id: <200509121954.j8CJsWEO074790@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 83496 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, 12 Sep 2005 19:54:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=83496 Change 83496 by rwatson@rwatson_zoo on 2005/09/12 19:54:04 Add a new "not supported" filter set for kqueue on fifos: when read is requested on a write-only descriptor, or write is requested on a read-only descriptor, permit registration (no error), but never raise the event. That way, kqueue behavior matches poll and select. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#7 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#7 (text+ko) ==== @@ -94,11 +94,15 @@ static int filt_fiforead(struct knote *kn, long hint); static void filt_fifowdetach(struct knote *kn); static int filt_fifowrite(struct knote *kn, long hint); +static void filt_fifodetach_notsup(struct knote *kn); +static int filt_fifo_notsup(struct knote *kn, long hint); static struct filterops fiforead_filtops = { 1, NULL, filt_fifordetach, filt_fiforead }; static struct filterops fifowrite_filtops = { 1, NULL, filt_fifowdetach, filt_fifowrite }; +static struct filterops fifo_notsup_filtops = + { 1, NULL, filt_fifodetach_notsup, filt_fifo_notsup }; struct vop_vector fifo_specops = { .vop_default = &default_vnodeops, @@ -435,6 +439,19 @@ return (result); } +static void +filt_fifodetach_notsup(struct knote *kn) +{ + +} + +static int +filt_fifo_notsup(struct knote *kn, long hint) +{ + + return (0); +} + /* * Device close routine */ @@ -580,6 +597,22 @@ struct sockbuf *sb; fi = fp->f_data; + + /* + * If a filter is requested that is not supported by this file + * descriptor, don't return an error, but also don't ever generate an + * event. + */ + if ((kn->kn_filter == EVFILT_READ) && !(fp->f_flag & FREAD)) { + kn->kn_fop = &fifo_notsup_filtops; + return (0); + } + + if ((kn->kn_filter == EVFILT_WRITE) && !(fp->f_flag & FWRITE)) { + kn->kn_fop = &fifo_notsup_filtops; + return (0); + } + switch (kn->kn_filter) { case EVFILT_READ: kn->kn_fop = &fiforead_filtops; @@ -685,4 +718,3 @@ error = sosend(fip->fi_writesock, NULL, uio, 0, NULL, sflags, td); return (error); } - From owner-p4-projects@FreeBSD.ORG Mon Sep 12 20:08:53 2005 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 864D816A421; Mon, 12 Sep 2005 20:08:52 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4859116A41F for ; Mon, 12 Sep 2005 20:08:52 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 85F2B43D45 for ; Mon, 12 Sep 2005 20:08:51 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8CK8pBT075454 for ; Mon, 12 Sep 2005 20:08:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CK8pJs075451 for perforce@freebsd.org; Mon, 12 Sep 2005 20:08:51 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 12 Sep 2005 20:08:51 GMT Message-Id: <200509122008.j8CK8pJs075451@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 83499 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, 12 Sep 2005 20:08:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=83499 Change 83499 by rwatson@rwatson_peppercorn on 2005/09/12 20:08:21 Integrate netsmp branch from FreeBSD CVS: - NMI fixen for amd64. - sound locking fixes. - kqueue fixes to return EINVAL rather than 1 (EPERM). - time_uptime() instead of time_second() - various fifofs fixes looped back - netgraph ng_ksocket event fix for ENOBUFS - more fifofs regression tests Affected files ... .. //depot/projects/netsmp/src/sys/dev/hwpmc/hwpmc_amd.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/dsp.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/sound.c#4 integrate .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#8 integrate .. //depot/projects/netsmp/src/sys/i386/i386/vm_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_subr.c#9 integrate .. //depot/projects/netsmp/src/sys/net/if.c#15 integrate .. //depot/projects/netsmp/src/sys/netgraph/ng_socket.c#3 integrate .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_io/fifo_io.c#2 integrate .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_misc/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_misc/fifo_misc.c#1 branch .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_open/fifo_open.c#3 integrate .. //depot/projects/netsmp/src/tools/regression/sockets/shutdown/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/sockets/shutdown/shutdown.c#1 branch Differences ... ==== //depot/projects/netsmp/src/sys/dev/hwpmc/hwpmc_amd.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_amd.c,v 1.11 2005/08/27 16:07:12 jkoshy Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_amd.c,v 1.12 2005/09/12 15:55:44 jkoshy Exp $"); /* Support for the AMD K7 and later processors */ @@ -693,9 +693,14 @@ * and which has a valid 'struct pmc' association * * If found, we call a helper to process the interrupt. + * + * If multiple PMCs interrupt at the same time, the AMD64 + * processor appears to deliver as many NMIs as there are + * outstanding PMC interrupts. Thus we need to only process + * one interrupt at a time. */ - for (i = 0; i < AMD_NPMCS-1; i++) { + for (i = 0; retval == 0 && i < AMD_NPMCS-1; i++) { ri = i + 1; /* row index; TSC is at ri == 0 */ @@ -712,6 +717,8 @@ continue; } + retval = 1; /* found an interrupting PMC */ + /* stop the PMC, reload count */ evsel = AMD_PMC_EVSEL_0 + i; perfctr = AMD_PMC_PERFCTR_0 + i; @@ -726,12 +733,10 @@ wrmsr(evsel, config & ~AMD_PMC_ENABLE); wrmsr(perfctr, AMD_RELOAD_COUNT_TO_PERFCTR_VALUE(v)); - /* restart if there was no error during logging */ + /* restart the counter if there was no error during logging */ error = pmc_process_interrupt(cpu, pm, eip, usermode); if (error == 0) wrmsr(evsel, config | AMD_PMC_ENABLE); - - retval = 1; /* found an interrupting PMC */ } atomic_add_int(retval ? &pmc_stats.pm_intr_processed : ==== //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/mss.c,v 1.101 2005/09/12 04:12:50 imp Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/mss.c,v 1.102 2005/09/12 13:40:10 nyan Exp $"); /* board-specific include files */ #include @@ -113,7 +113,9 @@ /* OPTi-specific functions */ static void opti_write(struct mss_info *mss, u_char reg, u_char data); +#ifndef PC98 static u_char opti_read(struct mss_info *mss, u_char reg); +#endif static int opti_init(device_t dev, struct mss_info *mss); /* io primitives */ @@ -2175,6 +2177,7 @@ } } +#ifndef PC98 u_char opti_read(struct mss_info *mss, u_char reg) { @@ -2198,6 +2201,7 @@ } return -1; } +#endif static device_method_t pnpmss_methods[] = { /* Device interface */ ==== //depot/projects/netsmp/src/sys/dev/sound/pcm/dsp.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.83 2005/09/10 17:51:38 netchild Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.84 2005/09/12 18:33:33 netchild Exp $"); #define OLDPCM_IOCTL @@ -329,7 +329,6 @@ s = spltty(); d = dsp_get_info(i_dev); - pcm_lock(d); rdch = i_dev->si_drv1; wrch = i_dev->si_drv2; @@ -351,6 +350,8 @@ */ if ((rdch || wrch) && refs == 0) { + pcm_lock(d); + if (pcm_getfakechan(d)) pcm_getfakechan(d)->flags = 0; @@ -382,8 +383,7 @@ chn_reset(wrch, 0); pcm_chnrelease(wrch); } - } else - pcm_unlock(d); + } splx(s); return 0; } ==== //depot/projects/netsmp/src/sys/dev/sound/pcm/sound.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ #include "feeder_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/sound.c,v 1.95 2005/09/10 18:10:31 netchild Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/sound.c,v 1.96 2005/09/12 18:33:33 netchild Exp $"); devclass_t pcm_devclass; @@ -166,8 +166,6 @@ struct snddev_channel *sce; int err; - snd_mtxassert(d->lock); - /* scan for a free channel */ SLIST_FOREACH(sce, &d->channels, link) { c = sce->channel; ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#8 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.119 2005/09/12 12:15:12 rwatson Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.120 2005/09/12 18:07:49 rwatson Exp $ */ #include @@ -358,7 +358,7 @@ sb = &so->so_snd; break; default: - return (1); + return (EINVAL); } ap->a_kn->kn_hook = (caddr_t)so; @@ -625,7 +625,7 @@ sb = &so->so_snd; break; default: - return (1); + return (EINVAL); } kn->kn_hook = (caddr_t)so; ==== //depot/projects/netsmp/src/sys/i386/i386/vm_machdep.c#2 (text+ko) ==== @@ -41,13 +41,10 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.259 2005/07/10 23:31:10 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.260 2005/09/12 13:50:56 nyan Exp $"); #include "opt_isa.h" #include "opt_npx.h" -#ifdef PC98 -#include "opt_pc98.h" -#endif #include "opt_reset.h" #include "opt_cpu.h" ==== //depot/projects/netsmp/src/sys/kern/vfs_subr.c#9 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.644 2005/09/12 08:46:07 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.646 2005/09/12 19:22:37 rwatson Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -1585,7 +1585,7 @@ syncer_final_iter = 0; first_printf = 1; syncer_state = SYNCER_RUNNING; - starttime = time_second; + starttime = time_uptime; EVENTHANDLER_REGISTER(shutdown_pre_sync, syncer_shutdown, td->td_proc, SHUTDOWN_PRI_LAST); @@ -1600,14 +1600,14 @@ } net_worklist_len = syncer_worklist_len - sync_vnode_count; if (syncer_state != SYNCER_RUNNING && - starttime != time_second) { + starttime != time_uptime) { if (first_printf) { printf("\nSyncing disks, vnodes remaining..."); first_printf = 0; } printf("%d ", net_worklist_len); } - starttime = time_second; + starttime = time_uptime; /* * Push files whose dirty time has expired. Be careful @@ -1696,7 +1696,7 @@ if (syncer_state != SYNCER_RUNNING) tsleep(&dummychan, PPAUSE, "syncfnl", hz / SYNCER_SHUTDOWN_SPEEDUP); - else if (time_second == starttime) + else if (time_uptime == starttime) tsleep(&lbolt, PPAUSE, "syncer", 0); } } @@ -3763,7 +3763,7 @@ kn->kn_fop = &vfsvnode_filtops; break; default: - return (1); + return (EINVAL); } kn->kn_hook = (caddr_t)vp; ==== //depot/projects/netsmp/src/sys/net/if.c#15 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if.c 8.5 (Berkeley) 1/9/95 - * $FreeBSD: src/sys/net/if.c,v 1.245 2005/09/04 17:32:47 sam Exp $ + * $FreeBSD: src/sys/net/if.c,v 1.246 2005/09/12 19:26:03 rwatson Exp $ */ #include "opt_compat.h" @@ -217,7 +217,7 @@ kn->kn_fop = &netdev_filtops; break; default: - return (1); + return (EINVAL); } idx = minor(dev); ==== //depot/projects/netsmp/src/sys/netgraph/ng_socket.c#3 (text+ko) ==== @@ -37,7 +37,7 @@ * * Author: Julian Elischer * - * $FreeBSD: src/sys/netgraph/ng_socket.c,v 1.68 2005/07/23 19:28:51 obrien Exp $ + * $FreeBSD: src/sys/netgraph/ng_socket.c,v 1.69 2005/09/12 14:11:11 glebius Exp $ * $Whistle: ng_socket.c,v 1.28 1999/11/01 09:24:52 julian Exp $ */ @@ -814,6 +814,7 @@ struct socket *const so = pcbp->ng_socket; struct mbuf *mdata; int msglen; + int error = 0; /* Copy the message itself into an mbuf chain */ msglen = sizeof(struct ng_mesg) + msg->header.arglen; @@ -833,10 +834,10 @@ (struct sockaddr *) addr, mdata, NULL) == 0) { TRAP_ERROR; m_freem(mdata); - return (ENOBUFS); + error = so->so_error = ENOBUFS; } sorwakeup(so); - return (0); + return (error); } /*************************************************************** ==== //depot/projects/netsmp/src/tools/regression/fifo/fifo_io/fifo_io.c#2 (text+ko) ==== @@ -23,11 +23,14 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/tools/regression/fifo/fifo_io/fifo_io.c,v 1.1 2005/09/12 09:42:29 rwatson Exp $ + * $FreeBSD: src/tools/regression/fifo/fifo_io/fifo_io.c,v 1.3 2005/09/12 17:05:48 rwatson Exp $ */ +#include +#include #include #include +#include #include #include @@ -107,6 +110,15 @@ (void)unlink(fifoname); } +static void +cleanfifokq(const char *fifoname, int fd1, int fd2, int fd3) +{ + + if (fd3 != -1) + close(fd3); + cleanfifo(fifoname, fd1, fd2); +} + static int openfifo(const char *fifoname, const char *testname, int *reader_fdp, int *writer_fdp) @@ -864,7 +876,7 @@ FD_SET(fd, &exceptfds); timeout.tv_sec = 0; timeout.tv_usec = 0; - if (select(1, &readfds, &writefds, &exceptfds, &timeout) < 0) { + if (select(fd+1, &readfds, &writefds, &exceptfds, &timeout) < 0) { warn("%s: select", testname); return (-1); } @@ -874,21 +886,105 @@ return (0); } +static int +kqueue_setup(int reader_fd, int writer_fd, int *kqueue_fdp, + const char *testname) +{ + struct kevent kevent_changelist[4], kevent_eventlist[4], *kp; + struct timespec timeout; + int i, kqueue_fd, ret; + + kqueue_fd = kqueue(); + if (kqueue_fd < 0) { + warn("%s: kevent_setup: kqueue", testname); + return (-1); + } + + timeout.tv_sec = 0; + timeout.tv_nsec = 0; + + /* + * Add events corresponding to read and write on both descriptors. + */ + bzero(&kevent_changelist, sizeof(kevent_changelist)); + EV_SET(&kevent_changelist[0], reader_fd, EVFILT_READ, EV_ADD, 0, 0, + 0); + EV_SET(&kevent_changelist[1], reader_fd, EVFILT_WRITE, EV_ADD, 0, 0, + 0); + EV_SET(&kevent_changelist[2], writer_fd, EVFILT_READ, EV_ADD, 0, 0, + 0); + EV_SET(&kevent_changelist[3], writer_fd, EVFILT_WRITE, EV_ADD, 0, 0, + 0); + + bzero(&kevent_eventlist, sizeof(kevent_eventlist)); + ret = kevent(kqueue_fd, kevent_changelist, 4, kevent_eventlist, 4, + &timeout); + if (ret < 0) { + warn("%s: kevent initial register", __func__); + cleanfifo("testfifo", reader_fd, writer_fd); + exit(-1); + } + + /* + * Verified that the events registered alright. + */ + for (i = 0; i < ret; i++) { + kp = &kevent_eventlist[i]; + if (kp->flags != EV_ERROR) + continue; + errno = kp->data; + err(-1, "%s: kevent register index %d", __func__, i); + } + + *kqueue_fdp = kqueue_fd; + + return (0); +} + +static int +kqueue_status(int kqueue_fd, int fd, int *readable, int *writable, + int *exception, const char *testname) +{ + struct kevent kevent_eventlist[4], *kp; + struct timespec timeout; + int i; + + timeout.tv_sec = 0; + timeout.tv_nsec = 0; + + if (kevent(kqueue_fd, NULL, 0, kevent_eventlist, 4, &timeout) < 0) { + warn("%s: kqueue_status: kevent", testname); + return (-1); + } + + *readable = *writable = *exception = 0; + for (i = 0; i < 4; i++) { + kp = &kevent_eventlist[i]; + if (kp->ident != (u_int)fd) + continue; + if (kp->filter == EVFILT_READ) + *readable = 1; + if (kp->filter == EVFILT_WRITE) + *writable = 1; + } + + return (0); +} + /* - * test_events() uses poll() and select() to query the status of fifo file - * descriptors and determine whether they match expected state based on - * earlier semantic tests: specifically, whether or not poll/select will - * correctly inform on readable/writable state following I/O. + * test_events() uses poll(), select(), and kevent() to query the status of + * fifo file descriptors and determine whether they match expected state + * based on earlier semantic tests: specifically, whether or not poll/select/ + * kevent will correctly inform on readable/writable state following I/O. * - * It would be nice to also test kqueue here, as well as the wakeup/sleep - * model of these calls. It would be nice to test status changes as a - * result of closing of one or another fifo endpoint. + * It would be nice to also test status changes as a result of closing of one + * or another fifo endpoint. */ static void test_events_outofbox(void) { int readable, writable, exception; - int reader_fd, writer_fd; + int kqueue_fd, reader_fd, writer_fd; makefifo("testfifo", __func__); if (openfifo("testfifo", __func__, &reader_fd, &writer_fd) @@ -898,6 +994,11 @@ exit(-1); } + if (kqueue_setup(reader_fd, writer_fd, &kqueue_fd, __func__) < 0) { + cleanfifo("testfifo", reader_fd, writer_fd); + exit(-1); + } + /* * Make sure that fresh, out-of-the-box fifo file descriptors have * good initial states. The reader_fd should have no active state, @@ -906,27 +1007,40 @@ */ if (poll_status(reader_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || writable || exception) { warnx("test_events_outofbox: reader_fd polls r:%d, w:%d, " "e:%d on create", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (select_status(reader_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || writable || exception) { warnx("test_events_outofbox: reader_fd selects r:%d, w:%d, " "e:%d on create", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (kqueue_status(kqueue_fd, reader_fd, &readable, &writable, + &exception, __func__) < 0) { + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (readable || writable || exception) { + warnx("test_events_outofbox: reader_fd kevent r:%d, w:%d, " + "e:%d on create", readable, writable, exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -936,38 +1050,51 @@ */ if (poll_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || !writable || exception) { warnx("test_events_outofbox: writer_fd polls r:%d, w:%d, " "e:%d on create", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (select_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || !writable || exception) { warnx("test_events_outofbox: writer_fd selects r:%d, w:%d, " "e:%d on create", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (kqueue_status(kqueue_fd, writer_fd, &readable, &writable, + &exception, __func__) < 0) { + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (readable || !writable || exception) { + warnx("test_events_outofbox: writer_fd kevent r:%d, w:%d, " + "e:%d on create", readable, writable, exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); } static void test_events_write_read_byte(void) { int readable, writable, exception; - int reader_fd, writer_fd; + int kqueue_fd, reader_fd, writer_fd; ssize_t len; u_char ch; @@ -979,6 +1106,11 @@ exit(-1); } + if (kqueue_setup(reader_fd, writer_fd, &kqueue_fd, __func__) < 0) { + cleanfifo("testfifo", reader_fd, writer_fd); + exit(-1); + } + /* * Write a byte to the fifo, and make sure that the read end becomes * readable, and that the write end remains writable (small write). @@ -987,33 +1119,46 @@ len = write(writer_fd, &ch, sizeof(ch)); if (len < 0) { warn("test_events_write_read_byte: write"); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (poll_status(reader_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (!readable || writable || exception) { warnx("test_events_write_read_byte: reader_fd polls r:%d, " "w:%d, e:%d after write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (select_status(reader_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (!readable || writable || exception) { warnx("test_events_write_read_byte: reader_fd selects r:%d, " "w:%d, e:%d after write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (kqueue_status(kqueue_fd, reader_fd, &readable, &writable, + &exception, __func__) < 0) { + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (!readable || writable || exception) { + warnx("test_events_write_read_byte: reader_fd kevent r:%d, " + "w:%d, e:%d after write", readable, writable, exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1022,27 +1167,40 @@ */ if (poll_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || !writable || exception) { warnx("test_events_write_read_byte: writer_fd polls r:%d, " "w:%d, e:%d after write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (select_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || !writable || exception) { warnx("test_events_write_read_byte: writer_fd selects r:%d, " "w:%d, e:%d after write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (kqueue_status(kqueue_fd, writer_fd, &readable, &writable, + &exception, __func__) < 0) { + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (readable || !writable || exception) { + warnx("test_events_write_read_byte: writer_fd kevent r:%d, " + "w:%d, e:%d after write", readable, writable, exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1053,33 +1211,49 @@ len = read(reader_fd, &ch, sizeof(ch)); if (len < 0) { warn("test_events_write_read_byte: read"); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (poll_status(reader_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || writable || exception) { warnx("test_events_write_read_byte: reader_fd polls r:%d, " - "w:%d, e:%d after write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + "w:%d, e:%d after write+read", readable, writable, + exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (select_status(reader_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || writable || exception) { warnx("test_events_write_read_byte: reader_fd selects r:%d, " - "w:%d, e:%d after write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + "w:%d, e:%d after write+read", readable, writable, + exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (kqueue_status(kqueue_fd, reader_fd, &readable, &writable, + &exception, __func__) < 0) { + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (readable || writable || exception) { + warnx("test_events_write_read_byte: reader_fd kevent r:%d, " + "w:%d, e:%d after write+read", readable, writable, + exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1088,37 +1262,59 @@ */ if (poll_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || !writable || exception) { warnx("test_events_write_read_byte: writer_fd polls r:%d, " - "w:%d, e:%d after write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + "w:%d, e:%d after write+read", readable, writable, + exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (select_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (readable || !writable || exception) { warnx("test_events_write_read_byte: writer_fd selects r:%d, " - "w:%d, e:%d after write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + "w:%d, e:%d after write+read", readable, writable, + exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (kqueue_status(kqueue_fd, writer_fd, &readable, &writable, + &exception, __func__) < 0) { + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (readable || !writable || exception) { + warnx("test_events_write_read_byte: writer_fd kevent r:%d, " + "w:%d, e:%d after write+read", readable, writable, + exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } - cleanfifo("testfifo", reader_fd, writer_fd); + + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); } +/* + * Write a 512k buffer to the fifo in non-blocking mode, and make sure that + * the write end becomes un-writable as a result of a partial write that + * fills the fifo buffer. + */ static void test_events_partial_write(void) { int readable, writable, exception; - int reader_fd, writer_fd; + int kqueue_fd, reader_fd, writer_fd; u_char *buffer; ssize_t len; @@ -1130,20 +1326,20 @@ exit(-1); } - /* - * Write a 512k buffer to the fifo in non-blocking mode, and make - * sure that the write end becomes un-writable as a result of a - * partial write that fills the fifo buffer. - */ + if (kqueue_setup(reader_fd, writer_fd, &kqueue_fd, __func__) < 0) { + cleanfifo("testfifo", reader_fd, writer_fd); + exit(-1); + } + if (set_nonblocking(writer_fd, "test_events") < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } buffer = malloc(512*1024); if (buffer == NULL) { warn("test_events_partial_write: malloc"); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } bzero(buffer, 512*1024); @@ -1152,7 +1348,7 @@ if (len < 0) { warn("test_events_partial_write: write"); free(buffer); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1160,7 +1356,7 @@ if (poll_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1168,13 +1364,13 @@ warnx("test_events_partial_write: writer_fd polls r:%d, " "w:%d, e:%d after big write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (select_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1182,12 +1378,26 @@ warnx("test_events_partial_write: writer_fd selects r:%d, " "w:%d, e:%d after big write", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (kqueue_status(kqueue_fd, writer_fd, &readable, &writable, + &exception, __func__) < 0) { + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (readable || writable || exception) { + warnx("test_events_partial_write: writer_fd kevent r:%d, " + "w:%d, e:%d after big write", readable, writable, + exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (drain_fd(reader_fd, "test_events") < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1197,7 +1407,7 @@ */ if (poll_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1205,13 +1415,13 @@ warnx("test_events_partial_write: writer_fd polls r:%d, " "w:%d, e:%d after big write + drain", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } if (select_status(writer_fd, &readable, &writable, &exception, __func__) < 0) { - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } @@ -1219,16 +1429,32 @@ warnx("test_events_partial_write: writer_fd selects r:%d, " "w:%d, e:%d after big write + drain", readable, writable, exception); - cleanfifo("testfifo", reader_fd, writer_fd); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (kqueue_status(kqueue_fd, writer_fd, &readable, &writable, + &exception, __func__) < 0) { + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); + exit(-1); + } + + if (readable || !writable || exception) { + warnx("test_events_partial_write: writer_fd kevent r:%d, " + "w:%d, e:%d after big write + drain", readable, writable, + exception); + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); exit(-1); } - cleanfifo("testfifo", reader_fd, writer_fd); + + cleanfifokq("testfifo", reader_fd, writer_fd, kqueue_fd); } + int main(int argc, char *argv[]) { - strcpy(temp_dir, "/tmp/fifo_create.XXXXXXXXXXX"); + strcpy(temp_dir, "/tmp/fifo_io.XXXXXXXXXXX"); if (mkdtemp(temp_dir) == NULL) err(-1, "mkdtemp"); atexit(atexit_temp_dir); ==== //depot/projects/netsmp/src/tools/regression/fifo/fifo_open/fifo_open.c#3 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Sep 12 20:11:56 2005 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 3A5B416A421; Mon, 12 Sep 2005 20:11:56 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F19BC16A41F for ; Mon, 12 Sep 2005 20:11:55 +0000 (GMT) (envelope-from soc-saturnero@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B1D9443D55 for ; Mon, 12 Sep 2005 20:11:55 +0000 (GMT) (envelope-from soc-saturnero@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8CKBtrX075600 for ; Mon, 12 Sep 2005 20:11:55 GMT (envelope-from soc-saturnero@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CKBtHN075597 for perforce@freebsd.org; Mon, 12 Sep 2005 20:11:55 GMT (envelope-from soc-saturnero@freebsd.org) Date: Mon, 12 Sep 2005 20:11:55 GMT Message-Id: <200509122011.j8CKBtHN075597@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-saturnero@freebsd.org using -f From: soc-saturnero To: Perforce Change Reviews Cc: Subject: PERFORCE change 83500 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, 12 Sep 2005 20:11:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=83500 Change 83500 by soc-saturnero@soc-saturnero_cupa on 2005/09/12 20:11:53 Add $FreeBSD$ tag Affected files ... .. //depot/projects/soc2005/freesbie/conf/amd64/FREESBIE#3 edit .. //depot/projects/soc2005/freesbie/conf/i386/FREESBIE#4 edit .. //depot/projects/soc2005/freesbie/conf/powerpc/FREESBIE#3 edit Differences ... ==== //depot/projects/soc2005/freesbie/conf/amd64/FREESBIE#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $Id: FREESBIE.amd64,v 1.7 2005/06/15 21:25:58 saturnero Exp $ +# $FreeBSD$ machine amd64 cpu HAMMER ==== //depot/projects/soc2005/freesbie/conf/i386/FREESBIE#4 (text+ko) ==== @@ -1,3 +1,5 @@ +# $FreeBSD$ + machine i386 cpu I486_CPU cpu I586_CPU ==== //depot/projects/soc2005/freesbie/conf/powerpc/FREESBIE#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $Id: FREESBIE.powerpc,v 1.1 2005/06/30 13:00:29 saturnero Exp $ +# $FreeBSD$ machine powerpc cpu OEA From owner-p4-projects@FreeBSD.ORG Mon Sep 12 22:13:58 2005 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 1034316A421; Mon, 12 Sep 2005 22:13:58 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D725E16A41F for ; Mon, 12 Sep 2005 22:13:57 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A919643D45 for ; Mon, 12 Sep 2005 22:13:57 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8CMDv1j088997 for ; Mon, 12 Sep 2005 22:13:57 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CMDvCV088994 for perforce@freebsd.org; Mon, 12 Sep 2005 22:13:57 GMT (envelope-from jhb@freebsd.org) Date: Mon, 12 Sep 2005 22:13:57 GMT Message-Id: <200509122213.j8CMDvCV088994@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 83515 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, 12 Sep 2005 22:13:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=83515 Change 83515 by jhb@jhb_slimer on 2005/09/12 22:12:56 Another todo. Affected files ... .. //depot/projects/smpng/sys/notes#55 edit Differences ... ==== //depot/projects/smpng/sys/notes#55 (text+ko) ==== @@ -1,6 +1,8 @@ This file serves as a sort of todo list for this branch as well as documenting what patches currently live in this branch. +- Update mutex(9) manual page to note that mtx_trylock only works for + sleep (default) mutexes. - Consolidate linux module version into MI location. - Not sure if we don't want flexibility of MD versions - Fixup asm constraints to use '+' rather than declaring a variable in both From owner-p4-projects@FreeBSD.ORG Mon Sep 12 22:18:04 2005 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 903B816A422; Mon, 12 Sep 2005 22:18:03 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4EF2216A420 for ; Mon, 12 Sep 2005 22:18:03 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1E67A43D45 for ; Mon, 12 Sep 2005 22:18:03 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8CMI38e089189 for ; Mon, 12 Sep 2005 22:18:03 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8CMI2lU089186 for perforce@freebsd.org; Mon, 12 Sep 2005 22:18:02 GMT (envelope-from peter@freebsd.org) Date: Mon, 12 Sep 2005 22:18:02 GMT Message-Id: <200509122218.j8CMI2lU089186@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 83516 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, 12 Sep 2005 22:18:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=83516 Change 83516 by peter@peter_melody on 2005/09/12 22:17:09 Relocate the PLT jump slot entries in a woefully inadequate and incorrect way. I'm ignoring the value and addend records because the two kernel modules that I care about have them all zeros. In the real world this needs to be done correctly because its inevitible that something will put an offset here sooner or later. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/elf_machdep.c#31 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/elf_machdep.c#31 (text+ko) ==== @@ -195,6 +195,7 @@ break; case R_X86_64_GLOB_DAT: /* S */ + case R_X86_64_JMP_SLOT: /* S */ addr = lookup(lf, symidx, 1); if (addr == 0) return -1; From owner-p4-projects@FreeBSD.ORG Tue Sep 13 09:47:38 2005 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 D0FB316A421; Tue, 13 Sep 2005 09:47:37 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A646B16A41F for ; Tue, 13 Sep 2005 09:47:37 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 61F5943D46 for ; Tue, 13 Sep 2005 09:47:37 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8D9lbxn037637 for ; Tue, 13 Sep 2005 09:47:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8D9lb8Q037633 for perforce@freebsd.org; Tue, 13 Sep 2005 09:47:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 13 Sep 2005 09:47:37 GMT Message-Id: <200509130947.j8D9lb8Q037633@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 83530 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, 13 Sep 2005 09:47:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=83530 Change 83530 by rwatson@rwatson_zoo on 2005/09/13 09:47:19 Integrate netsmp from FreeBSD CVS - Loop back fifofs fixes, merge fifofs comments. Affected files ... .. //depot/projects/netsmp/src/sys/boot/pc98/Makefile.inc#2 integrate .. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/comconsole.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#9 integrate Differences ... ==== //depot/projects/netsmp/src/sys/boot/pc98/Makefile.inc#2 (text+ko) ==== @@ -1,11 +1,12 @@ # Common defines for all of /sys/boot/pc98/ # -# $FreeBSD: src/sys/boot/pc98/Makefile.inc,v 1.5 2004/02/09 16:01:44 nyan Exp $ +# $FreeBSD: src/sys/boot/pc98/Makefile.inc,v 1.6 2005/09/13 08:27:38 nyan Exp $ BINDIR?= /boot LOADER_ADDRESS?=0x100000 -CFLAGS+= -ffreestanding -mpreferred-stack-boundary=2 +CFLAGS+= -ffreestanding -mpreferred-stack-boundary=2 \ + -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 LDFLAGS+= -nostdlib # BTX components ==== //depot/projects/netsmp/src/sys/boot/pc98/libpc98/comconsole.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/comconsole.c,v 1.6 2005/05/08 14:17:28 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/comconsole.c,v 1.7 2005/09/13 08:29:03 nyan Exp $"); #include #include @@ -35,6 +35,7 @@ #define COMC_FMT 0x3 /* 8N1 */ #define COMC_TXWAIT 0x40000 /* transmit timeout */ #define COMC_BPS(x) (115200 / (x)) /* speed to DLAB divisor */ +#define COMC_DIV2BPS(x) (115200 / (x)) /* DLAB divisor to speed */ #ifndef COMPORT #define COMPORT 0x238 @@ -47,9 +48,15 @@ static int comc_init(int arg); static void comc_putchar(int c); static int comc_getchar(void); +static int comc_getspeed(void); static int comc_ischar(void); +static int comc_parsespeed(const char *string); +static void comc_setup(int speed); +static int comc_speed_set(struct env_var *ev, int flags, + const void *value); static int comc_started; +static int comc_curspeed; struct console comconsole = { "comconsole", @@ -65,8 +72,36 @@ static void comc_probe(struct console *cp) { + char speedbuf[16]; + char *cons, *speedenv; + int speed; + /* XXX check the BIOS equipment list? */ cp->c_flags |= (C_PRESENTIN | C_PRESENTOUT); + + if (comc_curspeed == 0) { + comc_curspeed = COMSPEED; + /* + * Assume that the speed was set by an earlier boot loader if + * comconsole is already the preferred console. + */ + cons = getenv("console"); + if ((cons != NULL && strcmp(cons, comconsole.c_name) == 0) || + getenv("boot_multicons") != NULL) { + comc_curspeed = comc_getspeed(); + } + speedenv = getenv("comconsole_speed"); + if (speedenv != NULL) { + speed = comc_parsespeed(speedenv); + if (speed > 0) + comc_curspeed = speed; + } + + sprintf(speedbuf, "%d", comc_curspeed); + unsetenv("comconsole_speed"); + env_setenv("comconsole_speed", EV_VOLATILE, speedbuf, comc_speed_set, + env_nounset); + } } static int @@ -76,15 +111,7 @@ return 0; comc_started = 1; - outb(COMPORT + com_cfcr, CFCR_DLAB | COMC_FMT); - outb(COMPORT + com_dlbl, COMC_BPS(COMSPEED) & 0xff); - outb(COMPORT + com_dlbh, COMC_BPS(COMSPEED) >> 8); - outb(COMPORT + com_cfcr, COMC_FMT); - outb(COMPORT + com_mcr, MCR_RTS | MCR_DTR); - - do - inb(COMPORT + com_data); - while (inb(COMPORT + com_lsr) & LSR_RXRDY); + comc_setup(comc_curspeed); return(0); } @@ -112,3 +139,75 @@ { return(inb(COMPORT + com_lsr) & LSR_RXRDY); } + +static int +comc_speed_set(struct env_var *ev, int flags, const void *value) +{ + int speed; + + if (value == NULL || (speed = comc_parsespeed(value)) <= 0) { + printf("Invalid speed\n"); + return (CMD_ERROR); + } + + if (comc_started && comc_curspeed != speed) + comc_setup(speed); + + env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL); + + return (CMD_OK); +} + +static void +comc_setup(int speed) +{ + + comc_curspeed = speed; + + outb(COMPORT + com_cfcr, CFCR_DLAB | COMC_FMT); + outb(COMPORT + com_dlbl, COMC_BPS(speed) & 0xff); + outb(COMPORT + com_dlbh, COMC_BPS(speed) >> 8); + outb(COMPORT + com_cfcr, COMC_FMT); + outb(COMPORT + com_mcr, MCR_RTS | MCR_DTR); + + do + inb(COMPORT + com_data); + while (inb(COMPORT + com_lsr) & LSR_RXRDY); +} + +static int +comc_parsespeed(const char *speedstr) +{ + char *p; + int speed; + + speed = strtol(speedstr, &p, 0); + if (p == speedstr || *p != '\0' || speed <= 0) + return (-1); + + return (speed); +} + +static int +comc_getspeed(void) +{ + u_int divisor; + u_char dlbh; + u_char dlbl; + u_char cfcr; + + cfcr = inb(COMPORT + com_cfcr); + outb(COMPORT + com_cfcr, CFCR_DLAB | cfcr); + + dlbl = inb(COMPORT + com_dlbl); + dlbh = inb(COMPORT + com_dlbh); + + outb(COMPORT + com_cfcr, cfcr); + + divisor = dlbh << 8 | dlbl; + + /* XXX there should be more sanity checking. */ + if (divisor == 0) + return (COMSPEED); + return (COMC_DIV2BPS(divisor)); +} ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.120 2005/09/12 18:07:49 rwatson Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.122 2005/09/13 09:23:22 rwatson Exp $ */ #include @@ -334,6 +334,12 @@ return (0); } +/* + * Currently fifo_kqfilter() isn't reachable beause vop_kqfilter() is only + * called for open files, in which case the fifo code has redirected the + * caller to fifo_kqfilter_f() via the file descriptor operations vector. + * This implementation should be garbage collected. + */ /* ARGSUSED */ static int fifo_kqfilter(ap) @@ -589,6 +595,12 @@ return (error); } +/* + * Because fifos are now a file descriptor layer object, EVFILT_VNODE is not + * implemented. Likely, fifo_kqfilter() should be removed, and + * fifo_kqfilter_f() should know how to forward the request to the underling + * vnode using f_vnode in the file descriptor here. + */ static int fifo_kqfilter_f(struct file *fp, struct knote *kn) { From owner-p4-projects@FreeBSD.ORG Tue Sep 13 09:49:41 2005 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 0589616A421; Tue, 13 Sep 2005 09:49:41 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C512F16A41F for ; Tue, 13 Sep 2005 09:49:40 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 75D6F43D45 for ; Tue, 13 Sep 2005 09:49:40 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8D9neQG037708 for ; Tue, 13 Sep 2005 09:49:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8D9neZ5037705 for perforce@freebsd.org; Tue, 13 Sep 2005 09:49:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 13 Sep 2005 09:49:40 GMT Message-Id: <200509130949.j8D9neZ5037705@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 83531 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, 13 Sep 2005 09:49:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=83531 Change 83531 by rwatson@rwatson_zoo on 2005/09/13 09:48:42 Revert if->while change, the comments were right: we don't want to guarantee the condition is the case, just that it has been the case. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#10 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#10 (text+ko) ==== @@ -176,12 +176,6 @@ struct file *fp; int error; - /* - * In theory, writes to vp->v_fifoinfo are serialized by the vnode - * lock, so there can't be a race between multiple simultaneous opens - * here. We assert there hasn't been at the end of the allocation, - * however, to be sure. - */ if ((fip = vp->v_fifoinfo) == NULL) { MALLOC(fip, struct fifoinfo *, sizeof(*fip), M_VNODE, M_WAITOK); error = socreate(AF_LOCAL, &rso, SOCK_STREAM, 0, cred, td); @@ -206,10 +200,6 @@ SOCKBUF_LOCK(&rso->so_rcv); rso->so_rcv.sb_state |= SBS_CANTRCVMORE; SOCKBUF_UNLOCK(&rso->so_rcv); - /* - * If the vnode lock is insufficiently serializing, we might - * have to detect a race here and recover. - */ KASSERT(vp->v_fifoinfo == NULL, ("fifo_open: v_fifoinfo race")); vp->v_fifoinfo = fip; @@ -255,7 +245,7 @@ } } if ((ap->a_mode & O_NONBLOCK) == 0) { - while ((ap->a_mode & FREAD) && fip->fi_writers == 0) { + if ((ap->a_mode & FREAD) && fip->fi_writers == 0) { VOP_UNLOCK(vp, 0, td); error = msleep(&fip->fi_readers, &fifo_mtx, PDROP | PCATCH | PSOCK, "fifoor", 0); @@ -269,8 +259,13 @@ return (error); } mtx_lock(&fifo_mtx); + /* + * We must have got woken up because we had a writer. + * That (and not still having one) is the condition + * that we must wait for. + */ } - while ((ap->a_mode & FWRITE) && fip->fi_readers == 0) { + if ((ap->a_mode & FWRITE) && fip->fi_readers == 0) { VOP_UNLOCK(vp, 0, td); error = msleep(&fip->fi_writers, &fifo_mtx, PDROP | PCATCH | PSOCK, "fifoow", 0); @@ -283,6 +278,11 @@ } return (error); } + /* + * We must have got woken up because we had + * a reader. That (and not still having one) + * is the condition that we must wait for. + */ mtx_lock(&fifo_mtx); } } From owner-p4-projects@FreeBSD.ORG Tue Sep 13 10:35:37 2005 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 143EC16A421; Tue, 13 Sep 2005 10:35:37 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DEF8616A41F for ; Tue, 13 Sep 2005 10:35:36 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A78AC43D49 for ; Tue, 13 Sep 2005 10:35:36 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8DAZagf039407 for ; Tue, 13 Sep 2005 10:35:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8DAZaOV039404 for perforce@freebsd.org; Tue, 13 Sep 2005 10:35:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 13 Sep 2005 10:35:36 GMT Message-Id: <200509131035.j8DAZaOV039404@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 83533 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, 13 Sep 2005 10:35:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=83533 Change 83533 by rwatson@rwatson_zoo on 2005/09/13 10:35:22 Kqueue and sockets guarantee that socket buffers will be locked when entering the filter for a socket buffer event. Assert instead of conditionally acquiring. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#11 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#11 (text+ko) ==== @@ -393,22 +393,16 @@ filt_fiforead(struct knote *kn, long hint) { struct socket *so = (struct socket *)kn->kn_hook; - int need_lock, result; - need_lock = !SOCKBUF_OWNED(&so->so_rcv); - if (need_lock) - SOCKBUF_LOCK(&so->so_rcv); + SOCKBUF_LOCK_ASSERT(&so->so_rcv); kn->kn_data = so->so_rcv.sb_cc; if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; - result = 1; + return (1); } else { kn->kn_flags &= ~EV_EOF; - result = (kn->kn_data > 0); + return (kn->kn_data > 0); } - if (need_lock) - SOCKBUF_UNLOCK(&so->so_rcv); - return (result); } static void @@ -427,22 +421,16 @@ filt_fifowrite(struct knote *kn, long hint) { struct socket *so = (struct socket *)kn->kn_hook; - int need_lock, result; - need_lock = !SOCKBUF_OWNED(&so->so_snd); - if (need_lock) - SOCKBUF_LOCK(&so->so_snd); + SOCKBUF_LOCK_ASSERT(&so->so_snd); kn->kn_data = sbspace(&so->so_snd); if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; - result = 1; + return (1); } else { kn->kn_flags &= ~EV_EOF; - result = (kn->kn_data >= so->so_snd.sb_lowat); + return (kn->kn_data >= so->so_snd.sb_lowat); } - if (need_lock) - SOCKBUF_UNLOCK(&so->so_snd); - return (result); } static void From owner-p4-projects@FreeBSD.ORG Tue Sep 13 10:49:10 2005 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 A3B0B16A422; Tue, 13 Sep 2005 10:49:09 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7C1C016A41F for ; Tue, 13 Sep 2005 10:49:09 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0B87F43D96 for ; Tue, 13 Sep 2005 10:48:54 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8DAmscM039943 for ; Tue, 13 Sep 2005 10:48:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8DAmsnv039940 for perforce@freebsd.org; Tue, 13 Sep 2005 10:48:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 13 Sep 2005 10:48:54 GMT Message-Id: <200509131048.j8DAmsnv039940@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 83537 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, 13 Sep 2005 10:49:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=83537 Change 83537 by rwatson@rwatson_zoo on 2005/09/13 10:48:36 Merge fifo regression test fixes. Affected files ... .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_misc/fifo_misc.c#2 integrate Differences ... ==== //depot/projects/netsmp/src/tools/regression/fifo/fifo_misc/fifo_misc.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/tools/regression/fifo/fifo_misc/fifo_misc.c,v 1.2 2005/09/12 19:31:16 rwatson Exp $ + * $FreeBSD: src/tools/regression/fifo/fifo_misc/fifo_misc.c,v 1.3 2005/09/13 10:33:32 rwatson Exp $ */ #include @@ -212,7 +212,6 @@ for (i = 0; i < bad_filter_types_len; i++) { bzero(&kev_set, sizeof(kev_set)); - printf("Trying %s\n", bad_filter_types[i].fe_name); EV_SET(&kev_set, reader_fd, bad_filter_types[i].fe_filter, EV_ADD, 0, 0, 0); ret = kevent(kqueue_fd, &kev_set, 1, NULL, 0, &timeout); From owner-p4-projects@FreeBSD.ORG Tue Sep 13 10:49:11 2005 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 76CD916A45C; Tue, 13 Sep 2005 10:49:10 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 109D616A445 for ; Tue, 13 Sep 2005 10:49:10 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B498443D8F for ; Tue, 13 Sep 2005 10:48:54 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8DAmrLN039937 for ; Tue, 13 Sep 2005 10:48:53 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8DAmrcJ039934 for perforce@freebsd.org; Tue, 13 Sep 2005 10:48:53 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 13 Sep 2005 10:48:53 GMT Message-Id: <200509131048.j8DAmrcJ039934@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 83536 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, 13 Sep 2005 10:49:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=83536 Change 83536 by rwatson@rwatson_zoo on 2005/09/13 10:48:15 Loop back fifofs fix. Affected files ... .. //depot/projects/netsmp/src/sys/dev/sound/pci/maestro3.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#12 integrate Differences ... ==== //depot/projects/netsmp/src/sys/dev/sound/pci/maestro3.c#2 (text+ko) ==== @@ -61,7 +61,7 @@ #include #include -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro3.c,v 1.28 2005/05/23 06:27:07 yongari Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro3.c,v 1.29 2005/09/13 10:12:28 yongari Exp $"); /* -------------------------------------------------------------------- */ @@ -1501,6 +1501,8 @@ int hint; M3_LOCK_ASSERT(sc); + + M3_UNLOCK(sc); /* * The volume buttons can be wired up via two different sets of pins. * This presents a problem since we can't tell which way it's @@ -1513,6 +1515,7 @@ hv_cfg = (hint > 0) ? HV_BUTTON_FROM_GD : 0; else hv_cfg = HV_BUTTON_FROM_GD; + M3_LOCK(sc); data = pci_read_config(sc->dev, PCI_ALLEGRO_CONFIG, 4); data &= ~HV_BUTTON_FROM_GD; ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#12 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.122 2005/09/13 09:23:22 rwatson Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.123 2005/09/13 10:39:24 rwatson Exp $ */ #include From owner-p4-projects@FreeBSD.ORG Tue Sep 13 15:12:13 2005 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 752A116A421; Tue, 13 Sep 2005 15:12:13 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1B06316A41F for ; Tue, 13 Sep 2005 15:12:13 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C544C43D46 for ; Tue, 13 Sep 2005 15:12:12 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8DFCC2e058233 for ; Tue, 13 Sep 2005 15:12:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8DFCCrM058230 for perforce@freebsd.org; Tue, 13 Sep 2005 15:12:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 13 Sep 2005 15:12:12 GMT Message-Id: <200509131512.j8DFCCrM058230@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 83542 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, 13 Sep 2005 15:12:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=83542 Change 83542 by rwatson@rwatson_peppercorn on 2005/09/13 15:11:21 Trim down now (believed to be) unuxed fifo_ioctl() and fifo_kqfilter() VOP implementations, since they in theory are used only on open file descriptors, in which case the ioctls are via fifo_ioctl_f() and kqueue requests are via fifo_kqfilter_f(). Generate warnings if they are entered for now. Annotate and re-implement fifo_ioctl_f(): don't arbitrarily forward ioctls to the socket layer, only forward the ones we explicitly support for fifos. In the case of FIONREAD, don't forward the request to the write socket on a read-write fifo, or the read result is overwritten. Annotate a nasty case for the undefined POSIX O_RDWR on fifos, in which failure of the second ioctl will result in the socket pair being in an inconsistent state. Assert copyright as I find myself rewriting non-trivial parts of fifofs. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#13 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#13 (text+ko) ==== @@ -1,6 +1,8 @@ /*- * Copyright (c) 1990, 1993, 1995 - * The Regents of the University of California. All rights reserved. + * The Regents of the University of California. + * Copyright (c) 2005 Robert N. M. Watson + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -296,7 +298,7 @@ } /* - * Device ioctl operation. + * Now unused vnode ioctl routine. */ /* ARGSUSED */ static int @@ -310,35 +312,13 @@ struct thread *a_td; } */ *ap; { - struct file filetmp; /* Local, so need not be locked. */ - int error; - if (ap->a_command == FIONBIO) - return (0); - if (ap->a_fflag & FREAD) { - filetmp.f_data = ap->a_vp->v_fifoinfo->fi_readsock; - filetmp.f_cred = ap->a_cred; - error = soo_ioctl(&filetmp, ap->a_command, ap->a_data, - ap->a_td->td_ucred, ap->a_td); - if (error) - return (error); - } - if (ap->a_fflag & FWRITE) { - filetmp.f_data = ap->a_vp->v_fifoinfo->fi_writesock; - filetmp.f_cred = ap->a_cred; - error = soo_ioctl(&filetmp, ap->a_command, ap->a_data, - ap->a_td->td_ucred, ap->a_td); - if (error) - return (error); - } - return (0); + printf("WARNING: fifo_ioctl called unexpectedly\n"); + return (ENOTTY); } /* - * Currently fifo_kqfilter() isn't reachable beause vop_kqfilter() is only - * called for open files, in which case the fifo code has redirected the - * caller to fifo_kqfilter_f() via the file descriptor operations vector. - * This implementation should be garbage collected. + * Now unused vnode kqfilter routine. */ /* ARGSUSED */ static int @@ -348,33 +328,9 @@ struct knote *a_kn; } */ *ap; { - struct fifoinfo *fi = ap->a_vp->v_fifoinfo; - struct socket *so; - struct sockbuf *sb; - switch (ap->a_kn->kn_filter) { - case EVFILT_READ: - ap->a_kn->kn_fop = &fiforead_filtops; - so = fi->fi_readsock; - sb = &so->so_rcv; - break; - case EVFILT_WRITE: - ap->a_kn->kn_fop = &fifowrite_filtops; - so = fi->fi_writesock; - sb = &so->so_snd; - break; - default: - return (EINVAL); - } - - ap->a_kn->kn_hook = (caddr_t)so; - - SOCKBUF_LOCK(sb); - knlist_add(&sb->sb_sel.si_note, ap->a_kn, 1); - sb->sb_flags |= SB_KNOTE; - SOCKBUF_UNLOCK(sb); - - return (0); + printf("WARNING: fifo_kqfilter called unexpectedly\n"); + return (EINVAL); } static void @@ -557,8 +513,25 @@ return (vnops.fo_close(fp, td)); } +/* + * The implementation of ioctl() for named fifos is complicated by the fact + * that we permit O_RDWR fifo file descriptors, meaning that the actions of + * ioctls may have to be applied to both the underlying sockets rather than + * just one. The original implementation simply forward the ioctl to one + * or both sockets based on fp->f_flag. We now consider each ioctl + * separately, as the composition effect requires careful ordering. + * + * We do not blindly pass all ioctls through to the socket in order to avoid + * providing unnecessary ioctls that might be improperly depended on by + * applications (such as socket-specific, routing, and interface ioctls). + * + * Unlike sys_pipe.c, fifos do not implement the deprecated TIOCSPGRP and + * TIOCGPGRP ioctls. Earlier implementations of fifos did forward SIOCSPGRP + * and SIOCGPGRP ioctls, so we might need to re-add those here. + */ static int -fifo_ioctl_f(struct file *fp, u_long com, void *data, struct ucred *cred, struct thread *td) +fifo_ioctl_f(struct file *fp, u_long com, void *data, struct ucred *cred, + struct thread *td) { struct fifoinfo *fi; struct file filetmp; /* Local, so need not be locked. */ @@ -566,21 +539,58 @@ error = ENOTTY; fi = fp->f_data; - if (com == FIONBIO) + + switch (com) { + case FIONBIO: + /* + * Non-blocking I/O is implemented at the fifo layer using + * MSG_NBIO, so does not need to be forwarded down the stack. + */ return (0); - if (fp->f_flag & FREAD) { + + case FIOASYNC: + case FIOSETOWN: + case FIOGETOWN: + /* + * These socket ioctls don't have any ordering requirements, + * so are called in an arbitrary order, and only on the + * sockets indicated by the file descriptor rights. + * + * XXXRW: If O_RDWR and the read socket accepts an ioctl but + * the write socket doesn't, the socketpair is left in an + * inconsistent state. + */ + if (fp->f_flag & FREAD) { + filetmp.f_data = fi->fi_readsock; + filetmp.f_cred = cred; + error = soo_ioctl(&filetmp, com, data, cred, td); + if (error) + return (error); + } + if (fp->f_flag & FWRITE) { + filetmp.f_data = fi->fi_writesock; + filetmp.f_cred = cred; + error = soo_ioctl(&filetmp, com, data, cred, td); + } + return (error); + + case FIONREAD: + /* + * FIONREAD will return 0 for non-readable descriptors, and + * the results of FIONREAD on the read socket for readable + * descriptors. + */ + if (!(fp->f_flag & FREAD)) { + *(int *)data = 0; + return (0); + } filetmp.f_data = fi->fi_readsock; filetmp.f_cred = cred; - error = soo_ioctl(&filetmp, com, data, cred, td); - if (error) - return (error); - } - if (fp->f_flag & FWRITE) { - filetmp.f_data = fi->fi_writesock; - filetmp.f_cred = cred; - error = soo_ioctl(&filetmp, com, data, cred, td); + return (soo_ioctl(&filetmp, com, data, cred, td)); + + default: + return (ENOTTY); } - return (error); } /* From owner-p4-projects@FreeBSD.ORG Wed Sep 14 06:56:01 2005 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 925C316A421; Wed, 14 Sep 2005 06:56:00 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6E09716A41F for ; Wed, 14 Sep 2005 06:56:00 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 227C543D45 for ; Wed, 14 Sep 2005 06:56:00 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8E6u0Uu031090 for ; Wed, 14 Sep 2005 06:56:00 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8E6txLH031087 for perforce@freebsd.org; Wed, 14 Sep 2005 06:55:59 GMT (envelope-from scottl@freebsd.org) Date: Wed, 14 Sep 2005 06:55:59 GMT Message-Id: <200509140655.j8E6txLH031087@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 83584 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, 14 Sep 2005 06:56:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=83584 Change 83584 by scottl@scottl-junior on 2005/09/14 06:55:09 Check the MNT_JOURNAL flag instead of the FS_JOURNAL flag when deciding whether to journal blocks. The former is only a hint that the journal _should_ be enabled, while the latter is set when the journal actually is enabled. Add DOINGJOURNAL() macro to make the code prettier. Affected files ... .. //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_inode.c#3 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/inode.h#2 edit Differences ... ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_inode.c#3 (text+ko) ==== @@ -112,7 +112,7 @@ /* We only do writes from this point on */ #ifdef UFS_JOURNAL - if (ip->i_ump->um_fs->fs_flags & FS_JOURNAL) + if (DOINGJOURNAL(vp)) ufsj_start_transaction(ip->i_ump, &jnl, J_TYPE_WRITE); #endif @@ -128,7 +128,7 @@ ino_to_fsbo(fs, ip->i_number)) = *ip->i_din2; if (waitfor && !DOINGASYNC(vp)) { #ifdef UFS_JOURNAL - if (ip->i_ump->um_fs->fs_flags & FS_JOURNAL){ + if (DOINGJOURNAL(vp)) { ufsj_write_blocks(jnl, bp); ufsj_end_transaction(jnl); return(0); /* BAW: Correct return value? */ @@ -137,7 +137,7 @@ return (bwrite(bp)); } else if (vm_page_count_severe() || buf_dirty_count_severe()) { #ifdef UFS_JOURNAL - if (ip->i_ump->um_fs->fs_flags & FS_JOURNAL){ + if (DOINGJOURNAL(vp)) { ufsj_write_blocks(jnl, bp); ufsj_end_transaction(jnl); return(0); /* BAW: Correct return value? */ @@ -148,7 +148,7 @@ if (bp->b_bufsize == fs->fs_bsize) bp->b_flags |= B_CLUSTEROK; #ifdef UFS_JOURNAL - if (ip->i_ump->um_fs->fs_flags & FS_JOURNAL){ + if (DOINGJOURNAL(vp)) { ufsj_write_blocks(jnl, bp); ufsj_end_transaction(jnl); } else ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/inode.h#2 (text+ko) ==== @@ -167,6 +167,7 @@ /* Determine if soft dependencies are being done */ #define DOINGSOFTDEP(vp) ((vp)->v_mount->mnt_flag & MNT_SOFTDEP) #define DOINGASYNC(vp) ((vp)->v_mount->mnt_flag & MNT_ASYNC) +#define DOINGJOURNAL(vp) ((vp)->v_mount->mnt_flag & MNT_JOURNAL) /* This overlays the fid structure (see mount.h). */ struct ufid { From owner-p4-projects@FreeBSD.ORG Wed Sep 14 10:31:46 2005 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 AC23316A421; Wed, 14 Sep 2005 10:31:45 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6C3FB16A41F for ; Wed, 14 Sep 2005 10:31:45 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1E9FA43D49 for ; Wed, 14 Sep 2005 10:31:45 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8EAVj9h048496 for ; Wed, 14 Sep 2005 10:31:45 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8EAVi84048492 for perforce@freebsd.org; Wed, 14 Sep 2005 10:31:44 GMT (envelope-from scottl@freebsd.org) Date: Wed, 14 Sep 2005 10:31:44 GMT Message-Id: <200509141031.j8EAVi84048492@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 83592 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, 14 Sep 2005 10:31:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=83592 Change 83592 by scottl@scottl-junior on 2005/09/14 10:30:45 Move transaction management out of the low-level FFS routines and instead just pass a transaction pointer into them that they can then pass onto the journal API. This is only implemented for ffs_update and UFS_UPDATE at the moment since that is the most simple case. Add a large comment block to ffs_update about a possible deadlock in low memory conditions. Affected files ... .. //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_alloc.c#3 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_extern.h#2 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_inode.c#4 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_softdep.c#2 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_vfsops.c#4 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_vnops.c#3 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufs_inode.c#3 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufs_lookup.c#2 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufs_vnops.c#3 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufsmount.h#3 edit Differences ... ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_alloc.c#3 (text+ko) ==== @@ -607,7 +607,7 @@ } else { ip->i_flag |= IN_CHANGE | IN_UPDATE; if (!doasyncfree) - ffs_update(vp, 1); + ffs_update(vp, 1, NULL); } if (ssize < len) { if (doasyncfree) @@ -814,7 +814,7 @@ } else { ip->i_flag |= IN_CHANGE | IN_UPDATE; if (!doasyncfree) - ffs_update(vp, 1); + ffs_update(vp, 1, NULL); } if (ssize < len) { if (doasyncfree) ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_extern.h#2 (text+ko) ==== @@ -47,6 +47,7 @@ struct vnode; struct vop_fsync_args; struct vop_reallocblks_args; +struct ufsj_transaction; int ffs_alloc(struct inode *, ufs2_daddr_t, ufs2_daddr_t, int, struct ucred *, ufs2_daddr_t *); @@ -80,7 +81,7 @@ void ffs_snapshot_unmount(struct mount *mp); int ffs_syncvnode(struct vnode *vp, int waitfor); int ffs_truncate(struct vnode *, off_t, int, struct ucred *, struct thread *); -int ffs_update(struct vnode *, int); +int ffs_update(struct vnode *, int, struct ufsj_transaction *); int ffs_valloc(struct vnode *, int, struct ucred *, struct vnode **); int ffs_vfree(struct vnode *, ino_t, int); ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_inode.c#4 (text+ko) ==== @@ -72,17 +72,15 @@ * set, then wait for the write to complete. */ int -ffs_update(vp, waitfor) +ffs_update(vp, waitfor, jtrn) struct vnode *vp; int waitfor; + ufsj_thandle_t jtrn; { struct fs *fs; struct buf *bp; struct inode *ip; int error; -#ifdef UFS_JOURNAL - ufsj_thandle_t jnl; -#endif ASSERT_VOP_LOCKED(vp, "ffs_update"); ufs_itimes(vp); @@ -111,11 +109,6 @@ } /* We only do writes from this point on */ -#ifdef UFS_JOURNAL - if (DOINGJOURNAL(vp)) - ufsj_start_transaction(ip->i_ump, &jnl, J_TYPE_WRITE); -#endif - if (DOINGSOFTDEP(vp)) softdep_update_inodeblock(ip, bp, waitfor); else if (ip->i_effnlink != ip->i_nlink) @@ -129,31 +122,38 @@ if (waitfor && !DOINGASYNC(vp)) { #ifdef UFS_JOURNAL if (DOINGJOURNAL(vp)) { - ufsj_write_blocks(jnl, bp); - ufsj_end_transaction(jnl); - return(0); /* BAW: Correct return value? */ - } else +#ifdef INVARIANTS + panic("Journaling not allowed on sync filesystems"); +#endif + } #endif - return (bwrite(bp)); + return (bwrite(bp)); } else if (vm_page_count_severe() || buf_dirty_count_severe()) { #ifdef UFS_JOURNAL - if (DOINGJOURNAL(vp)) { - ufsj_write_blocks(jnl, bp); - ufsj_end_transaction(jnl); - return(0); /* BAW: Correct return value? */ - } else + if (DOINGJOURNAL(vp)) + ufsj_write_blocks(jtrn, bp); #endif - return (bwrite(bp)); + /* + * XXX This case is meant to slow down the call and ensure + * that buffers are freed by the time it completes. + * We can't satisfy this with journaling enabled because * the buffer will be pinned until the transaction + * ends. We don't know from here when the transaction + * will end because there might be more sub-operations to + * put into it. + * Buffer management really belongs in the layers that + * manage buffers, not in the buffer consumer code. + * This case should be removed and replaced with + * appropriate handling in the journal and buf/VM layers. + */ + return (bwrite(bp)); } else { if (bp->b_bufsize == fs->fs_bsize) bp->b_flags |= B_CLUSTEROK; #ifdef UFS_JOURNAL - if (DOINGJOURNAL(vp)) { - ufsj_write_blocks(jnl, bp); - ufsj_end_transaction(jnl); - } else + if (DOINGJOURNAL(vp)) + ufsj_write_blocks(jtrn, bp); #endif - bdwrite(bp); + bdwrite(bp); return (0); } } @@ -239,7 +239,7 @@ ip->i_din2->di_extb[i] = 0; } ip->i_flag |= IN_CHANGE | IN_UPDATE; - if ((error = ffs_update(vp, 1))) + if ((error = ffs_update(vp, 1, NULL))) return (error); for (i = 0; i < NXADDR; i++) { if (oldblks[i] == 0) @@ -266,13 +266,13 @@ ip->i_flag |= IN_CHANGE | IN_UPDATE; if (needextclean) softdep_setup_freeblocks(ip, length, IO_EXT); - return (ffs_update(vp, 1)); + return (ffs_update(vp, 1, NULL)); } if (ip->i_size == length) { ip->i_flag |= IN_CHANGE | IN_UPDATE; if (needextclean) softdep_setup_freeblocks(ip, length, IO_EXT); - return (ffs_update(vp, 0)); + return (ffs_update(vp, 0, NULL)); } if (fs->fs_ronly) panic("ffs_truncate: read-only filesystem"); @@ -311,7 +311,7 @@ vinvalbuf(vp, needextclean ? 0 : V_NORMAL, td, 0, 0); vnode_pager_setsize(vp, 0); ip->i_flag |= IN_CHANGE | IN_UPDATE; - return (ffs_update(vp, 0)); + return (ffs_update(vp, 0, NULL)); } } osize = ip->i_size; @@ -335,7 +335,7 @@ else bawrite(bp); ip->i_flag |= IN_CHANGE | IN_UPDATE; - return (ffs_update(vp, 1)); + return (ffs_update(vp, 1, NULL)); } /* * Shorten the size of the file. If the file is not being @@ -413,7 +413,7 @@ DIP_SET(ip, i_db[i], 0); } ip->i_flag |= IN_CHANGE | IN_UPDATE; - allerror = ffs_update(vp, 1); + allerror = ffs_update(vp, 1, NULL); /* * Having written the new inode to disk, save its new configuration ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_softdep.c#2 (text+ko) ==== @@ -4863,7 +4863,7 @@ * then we do the slower ffs_syncvnode of the directory. */ if (flushparent) { - if ((error = ffs_update(pvp, 1)) != 0) { + if ((error = ffs_update(pvp, 1, NULL)) != 0) { vput(pvp); return (error); } @@ -5300,7 +5300,7 @@ */ if (dap->da_state & MKDIR_PARENT) { FREE_LOCK(&lk); - if ((error = ffs_update(pvp, 1)) != 0) + if ((error = ffs_update(pvp, 1, NULL)) != 0) break; ACQUIRE_LOCK(&lk); /* @@ -5457,7 +5457,7 @@ */ if (!(curthread->td_pflags & TDP_COWINPROGRESS)) { UFS_UNLOCK(ump); - error = ffs_update(vp, 1); + error = ffs_update(vp, 1, NULL); UFS_LOCK(ump); if (error != 0) return (0); ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_vfsops.c#4 (text+ko) ==== ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_vnops.c#3 (text+ko) ==== @@ -327,7 +327,7 @@ } VI_UNLOCK(vp); splx(s); - return (ffs_update(vp, wait)); + return (ffs_update(vp, wait, NULL)); } static int @@ -744,7 +744,7 @@ uio->uio_resid = resid; } } else if (resid > uio->uio_resid && (ioflag & IO_SYNC)) - error = ffs_update(vp, 1); + error = ffs_update(vp, 1, NULL); return (error); } @@ -1066,7 +1066,7 @@ uio->uio_resid = resid; } } else if (resid > uio->uio_resid && (ioflag & IO_SYNC)) - error = ffs_update(vp, 1); + error = ffs_update(vp, 1, NULL); return (error); } ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufs_inode.c#3 (text+ko) ==== @@ -115,7 +115,7 @@ ip->i_flag &= ~IN_ACCESS; } else { (void) vn_write_suspend_wait(vp, NULL, V_WAIT); - UFS_UPDATE(vp, 0); + UFS_UPDATE(vp, 0, NULL); } } out: @@ -153,7 +153,7 @@ vnode_destroy_vobject(vp); if (ip->i_flag & IN_LAZYMOD) { ip->i_flag |= IN_MODIFIED; - UFS_UPDATE(vp, 0); + UFS_UPDATE(vp, 0, NULL); } /* * Remove the inode from its hash chain. ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufs_lookup.c#2 (text+ko) ==== @@ -758,7 +758,7 @@ if (softdep_setup_directory_add(bp, dp, dp->i_offset, dirp->d_ino, newdirbp, 1) == 0) { bdwrite(bp); - return (UFS_UPDATE(dvp, 0)); + return (UFS_UPDATE(dvp, 0, NULL)); } /* We have just allocated a directory block in an * indirect block. Rather than tracking when it gets @@ -781,10 +781,10 @@ } if (DOINGASYNC(dvp)) { bdwrite(bp); - return (UFS_UPDATE(dvp, 0)); + return (UFS_UPDATE(dvp, 0, NULL)); } error = bwrite(bp); - ret = UFS_UPDATE(dvp, 1); + ret = UFS_UPDATE(dvp, 1, NULL); if (error == 0) return (ret); return (error); ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufs_vnops.c#3 (text+ko) ==== @@ -569,7 +569,7 @@ ip->i_din2->di_birthtime = vap->va_birthtime.tv_sec; ip->i_din2->di_birthnsec = vap->va_birthtime.tv_nsec; } - error = UFS_UPDATE(vp, 0); + error = UFS_UPDATE(vp, 0, NULL); if (error) return (error); } @@ -810,7 +810,7 @@ ip->i_flag |= IN_CHANGE; if (DOINGSOFTDEP(vp)) softdep_change_linkcnt(ip); - error = UFS_UPDATE(vp, !(DOINGSOFTDEP(vp) | DOINGASYNC(vp))); + error = UFS_UPDATE(vp, !(DOINGSOFTDEP(vp) | DOINGASYNC(vp)), NULL); if (!error) { ufs_makedirentry(ip, cnp, &newdir); error = ufs_direnter(tdvp, vp, &newdir, cnp, NULL); @@ -1023,7 +1023,7 @@ if (DOINGSOFTDEP(fvp)) softdep_change_linkcnt(ip); if ((error = UFS_UPDATE(fvp, !(DOINGSOFTDEP(fvp) | - DOINGASYNC(fvp)))) != 0) { + DOINGASYNC(fvp)), NULL)) != 0) { VOP_UNLOCK(fvp, 0, td); goto bad; } @@ -1089,7 +1089,7 @@ if (DOINGSOFTDEP(tdvp)) softdep_change_linkcnt(dp); error = UFS_UPDATE(tdvp, !(DOINGSOFTDEP(tdvp) | - DOINGASYNC(tdvp))); + DOINGASYNC(tdvp)), NULL); if (error) goto bad; } @@ -1103,7 +1103,7 @@ dp->i_flag |= IN_CHANGE; if (DOINGSOFTDEP(tdvp)) softdep_change_linkcnt(dp); - (void)UFS_UPDATE(tdvp, 1); + (void)UFS_UPDATE(tdvp, 1, NULL); } goto bad; } @@ -1472,7 +1472,7 @@ dp->i_flag |= IN_CHANGE; if (DOINGSOFTDEP(dvp)) softdep_change_linkcnt(dp); - error = UFS_UPDATE(tvp, !(DOINGSOFTDEP(dvp) | DOINGASYNC(dvp))); + error = UFS_UPDATE(tvp, !(DOINGSOFTDEP(dvp) | DOINGASYNC(dvp)), NULL); if (error) goto bad; #ifdef MAC @@ -1554,7 +1554,7 @@ } } if ((error = UFS_UPDATE(tvp, !(DOINGSOFTDEP(tvp) | - DOINGASYNC(tvp)))) != 0) { + DOINGASYNC(tvp)), NULL)) != 0) { (void)bwrite(bp); goto bad; } @@ -2304,7 +2304,7 @@ /* * Make sure inode goes to disk before directory entry. */ - error = UFS_UPDATE(tvp, !(DOINGSOFTDEP(tvp) | DOINGASYNC(tvp))); + error = UFS_UPDATE(tvp, !(DOINGSOFTDEP(tvp) | DOINGASYNC(tvp)), NULL); if (error) goto bad; #ifdef MAC ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufsmount.h#3 (text+ko) ==== @@ -55,6 +55,7 @@ struct uio; struct vnode; struct ufs_extattr_per_mount; +struct ufsj_transaction; /* This structure describes the UFS specific mount structure data. */ struct ufsmount { @@ -81,7 +82,7 @@ int (*um_balloc)(struct vnode *, off_t, int, struct ucred *, int, struct buf **); int (*um_blkatoff)(struct vnode *, off_t, char **, struct buf **); int (*um_truncate)(struct vnode *, off_t, int, struct ucred *, struct thread *); - int (*um_update)(struct vnode *, int); + int (*um_update)(struct vnode *, int, struct ufsj_transaction *); int (*um_valloc)(struct vnode *, int, struct ucred *, struct vnode **); int (*um_vfree)(struct vnode *, ino_t, int); void (*um_ifree)(struct ufsmount *, struct inode *); @@ -90,7 +91,7 @@ #define UFS_BALLOC(aa, bb, cc, dd, ee, ff) VFSTOUFS((aa)->v_mount)->um_balloc(aa, bb, cc, dd, ee, ff) #define UFS_BLKATOFF(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_blkatoff(aa, bb, cc, dd) #define UFS_TRUNCATE(aa, bb, cc, dd, ee) VFSTOUFS((aa)->v_mount)->um_truncate(aa, bb, cc, dd, ee) -#define UFS_UPDATE(aa, bb) VFSTOUFS((aa)->v_mount)->um_update(aa, bb) +#define UFS_UPDATE(aa, bb, cc) VFSTOUFS((aa)->v_mount)->um_update(aa, bb, cc) #define UFS_VALLOC(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_valloc(aa, bb, cc, dd) #define UFS_VFREE(aa, bb, cc) VFSTOUFS((aa)->v_mount)->um_vfree(aa, bb, cc) #define UFS_IFREE(aa, bb) ((aa)->um_ifree(aa, bb)) From owner-p4-projects@FreeBSD.ORG Wed Sep 14 10:34:50 2005 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 A4E4616A421; Wed, 14 Sep 2005 10:34:49 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7FBCC16A41F for ; Wed, 14 Sep 2005 10:34:49 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F61443D46 for ; Wed, 14 Sep 2005 10:34:49 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8EAYnpa048558 for ; Wed, 14 Sep 2005 10:34:49 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8EAYmtt048555 for perforce@freebsd.org; Wed, 14 Sep 2005 10:34:49 GMT (envelope-from scottl@freebsd.org) Date: Wed, 14 Sep 2005 10:34:49 GMT Message-Id: <200509141034.j8EAYmtt048555@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 83593 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, 14 Sep 2005 10:34:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=83593 Change 83593 by scottl@scottl-junior on 2005/09/14 10:34:25 Fix a whitespace mistake. Affected files ... .. //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_inode.c#5 edit Differences ... ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ffs/ffs_inode.c#5 (text+ko) ==== @@ -136,7 +136,8 @@ /* * XXX This case is meant to slow down the call and ensure * that buffers are freed by the time it completes. - * We can't satisfy this with journaling enabled because * the buffer will be pinned until the transaction + * We can't satisfy this with journaling enabled because + * the buffer will be pinned until the transaction * ends. We don't know from here when the transaction * will end because there might be more sub-operations to * put into it. From owner-p4-projects@FreeBSD.ORG Wed Sep 14 19:34:00 2005 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 A966B16A421; Wed, 14 Sep 2005 19:33:59 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8283016A41F for ; Wed, 14 Sep 2005 19:33:59 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 93C6943D45 for ; Wed, 14 Sep 2005 19:33:54 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8EJXsmD086974 for ; Wed, 14 Sep 2005 19:33:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8EJXr9c086971 for perforce@freebsd.org; Wed, 14 Sep 2005 19:33:53 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 14 Sep 2005 19:33:53 GMT Message-Id: <200509141933.j8EJXr9c086971@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 83611 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, 14 Sep 2005 19:34:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=83611 Change 83611 by rwatson@rwatson_peppercorn on 2005/09/14 19:33:13 Un-inline sblock() and sbunlock(). Add sb_lock_owner to socket buffer. Manager sb_lock_owner field in sb_lock(), sblock(), sbunlock(). Add sb_lock_assert()'s in sosend(), soreceive(), and other spots. Affected files ... .. //depot/projects/netsmp/src/sys/kern/uipc_socket.c#5 edit .. //depot/projects/netsmp/src/sys/kern/uipc_socket2.c#3 edit .. //depot/projects/netsmp/src/sys/sys/socketvar.h#3 edit Differences ... ==== //depot/projects/netsmp/src/sys/kern/uipc_socket.c#5 (text+ko) ==== @@ -384,6 +384,7 @@ SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags |= SB_NOINTR; (void)sblock(&so->so_snd, M_WAITOK); + sb_lock_assert(&so->so_snd); /* * socantsendmore_locked() drops the socket buffer mutex so that it * can safely perform wakeups. Re-acquire the mutex before @@ -655,6 +656,7 @@ error = sblock(&so->so_snd, SBLOCKWAIT(flags)); if (error) goto out_locked; + sb_lock_assert(&so->so_snd); do { SOCKBUF_LOCK_ASSERT(&so->so_snd); if (so->so_snd.sb_state & SBS_CANTSENDMORE) @@ -1005,6 +1007,7 @@ error = sblock(&so->so_rcv, SBLOCKWAIT(flags)); if (error) goto out; + sb_lock_assert(&so->so_rcv); m = so->so_rcv.sb_mb; /* @@ -1245,8 +1248,12 @@ disposable); } else #endif /* ZERO_COPY_SOCKETS */ + { + sb_lock_assert(&so->so_rcv); error = uiomove(mtod(m, char *) + moff, (int)len, uio); SOCKBUF_LOCK(&so->so_rcv); + sb_lock_assert(&so->so_rcv); + } if (error) goto release; } else @@ -1442,6 +1449,7 @@ SOCKBUF_LOCK(sb); sb->sb_flags |= SB_NOINTR; (void) sblock(sb, M_WAITOK); + sb_lock_assert(sb); /* * socantrcvmore_locked() drops the socket buffer mutex so that it * can safely perform wakeups. Re-acquire the mutex before ==== //depot/projects/netsmp/src/sys/kern/uipc_socket2.c#3 (text+ko) ==== @@ -353,6 +353,8 @@ /* * Lock a sockbuf already known to be locked; * return any error returned from sleep (EINTR). + * + * XXXRW: Isn't a bit silly that we repeatedly clear and re-set SB_WANT? */ int sb_lock(sb) @@ -371,10 +373,67 @@ return (error); } sb->sb_flags |= SB_LOCK; + sb->sb_lock_owner = curthread; + return (0); +} + +/* + * Un-inlined sblock() macro. + */ +int +sblock(sb, wf) + struct sockbuf *sb; + int wf; +{ + + SOCKBUF_LOCK_ASSERT(sb); + + if (sb->sb_flags & SB_LOCK) { + if (wf == M_WAITOK) + return (sb_lock(sb)); + else + return (EWOULDBLOCK); + } + sb->sb_flags |= SB_LOCK; + sb->sb_lock_owner = curthread; return (0); } /* + * Un-inlined sbunlock() macro. + */ +void +sbunlock(sb) + struct sockbuf *sb; +{ + + SOCKBUF_LOCK_ASSERT(sb); + KASSERT(sb->sb_flags & SB_LOCK, ("sbunlock: !SB_LOCK")); + KASSERT(sb->sb_lock_owner == curthread, ("sbunlock: !curthread")); + + sb->sb_flags &= ~SB_LOCK; + sb->sb_lock_owner = NULL; + if (sb->sb_flags & SB_WANT) { + sb->sb_flags &= ~SB_WANT; + wakeup(&sb->sb_flags); + } +} + + +/* + * We can't assert that the current thread owns the socket buffer sleep lock, + * but we can at least assert that it is held. + */ +void +sb_lock_assert(sb) + struct sockbuf *sb; +{ + + KASSERT(sb->sb_flags & SB_LOCK, ("sb_lock_assert: failed")); + KASSERT(sb->sb_lock_owner == curthread, ("sb_lock_assert: !curthread")); +} + +/* * Wakeup processes waiting on a socket buffer. Do asynchronous * notification via SIGIO if the socket has the SS_ASYNC flag set. * ==== //depot/projects/netsmp/src/sys/sys/socketvar.h#3 (text+ko) ==== @@ -111,6 +111,7 @@ int sb_lowat; /* (c/d) low water mark */ int sb_timeo; /* (c/d) timeout for read/write */ short sb_flags; /* (c/d) flags, see below */ + struct thread *sb_lock_owner; /* (c/d), sb_lock owner */ } so_rcv, so_snd; /* * Constants for sb_flags field of struct sockbuf. @@ -317,25 +318,6 @@ } /* - * Set lock on sockbuf sb; sleep if lock is already held. - * Unless SB_NOINTR is set on sockbuf, sleep is interruptible. - * Returns error without lock if sleep is interrupted. - */ -#define sblock(sb, wf) ((sb)->sb_flags & SB_LOCK ? \ - (((wf) == M_WAITOK) ? sb_lock(sb) : EWOULDBLOCK) : \ - ((sb)->sb_flags |= SB_LOCK), 0) - -/* release lock on sockbuf sb */ -#define sbunlock(sb) do { \ - SOCKBUF_LOCK_ASSERT(sb); \ - (sb)->sb_flags &= ~SB_LOCK; \ - if ((sb)->sb_flags & SB_WANT) { \ - (sb)->sb_flags &= ~SB_WANT; \ - wakeup(&(sb)->sb_flags); \ - } \ -} while (0) - -/* * soref()/sorele() ref-count the socket structure. Note that you must * still explicitly close the socket, but the last ref count will free * the structure. @@ -487,7 +469,10 @@ struct thread *td); void sbtoxsockbuf(struct sockbuf *sb, struct xsockbuf *xsb); int sbwait(struct sockbuf *sb); +int sblock(struct sockbuf *sb, int wf); int sb_lock(struct sockbuf *sb); +void sb_lock_assert(struct sockbuf *sb); +void sbunlock(struct sockbuf *sb); int soabort(struct socket *so); int soaccept(struct socket *so, struct sockaddr **nam); struct socket *soalloc(int mflags); From owner-p4-projects@FreeBSD.ORG Wed Sep 14 21:06:05 2005 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 AF32C16A421; Wed, 14 Sep 2005 21:06:04 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8397B16A41F for ; Wed, 14 Sep 2005 21:06:04 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C58A743D53 for ; Wed, 14 Sep 2005 21:06:02 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8EL62jE098134 for ; Wed, 14 Sep 2005 21:06:02 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8EL5lY8098127 for perforce@freebsd.org; Wed, 14 Sep 2005 21:05:47 GMT (envelope-from scottl@freebsd.org) Date: Wed, 14 Sep 2005 21:05:47 GMT Message-Id: <200509142105.j8EL5lY8098127@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 83617 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, 14 Sep 2005 21:06:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=83617 Change 83617 by scottl@scottl-junior on 2005/09/14 21:05:15 IFC Affected files ... .. //depot/projects/soc2005/ufsj/src/MAINTAINERS#2 integrate .. //depot/projects/soc2005/ufsj/src/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/Makefile.inc1#2 integrate .. //depot/projects/soc2005/ufsj/src/ObsoleteFiles.inc#1 branch .. //depot/projects/soc2005/ufsj/src/UPDATING#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/cp/cp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/cp/extern.h#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/cp/utils.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/csh/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/csh/USD.doc/csh.2#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/dd/dd.1#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/kenv/kenv.1#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/kenv/kenv.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/ls/ls.1#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/mv/mv.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/alias.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/arith.h#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/arith.y#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/arith_lex.l#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/bltin/bltin.h#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/eval.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/exec.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/expand.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/histedit.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/jobs.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/mail.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/miscbltin.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/mkbuiltins#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/mkinit.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/mksyntax.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/parser.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/sh.1#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/show.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/trap.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sh/var.c#2 integrate .. //depot/projects/soc2005/ufsj/src/bin/sleep/sleep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/amd/amd/amd.8#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/amd/scripts/amd.conf.5#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/bind9/FREEBSD-Upgrade#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/bind9/lib/dns/resolver.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/cvs/man/cvs.1#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/cvs/src/cvsbug.in#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/gcc/c-decl.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/gcc/config/i386/i386.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/less/line.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/CHANGES#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/CREDITS#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/FILES#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/INSTALL.txt#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/README.septel#1 branch .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/VERSION#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/config.h.in#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/configure#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/configure.in#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/fad-getad.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/fad-gifc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/fad-glifc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/gencode.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/gencode.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/grammar.y#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/inet.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/nametoaddr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-bpf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-bpf.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-dag.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-dlpi.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-dos.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-int.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-linux.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-namedb.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-nit.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-pf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-septel.c#1 branch .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-septel.h#1 branch .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-snit.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-snoop.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap-win32.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap.3#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/pcap.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/rawss7.h#2 delete .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/savefile.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/libpcap/scanner.l#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/ncurses/ncurses/tinfo/lib_baudrate.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/nvi/docs/USD.doc/vi.ref/vi.ref#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/opie/libopie/readrec.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/opie/libopie/writerec.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/pf/man/pf.os.5#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/pf/man/pflog.4#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/pf/man/pfsync.4#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/pf/pfctl/pfctl.8#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/pf/pflogd/pflogd.8#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/pf/pflogd/pflogd.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/smbfs/lib/smb/ctx.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/smbfs/lib/smb/kiconv.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/smbfs/smbutil/dumptree.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/CHANGES#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/CREDITS#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/FILES#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/INSTALL#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/Makefile.in#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/VERSION#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/acconfig.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/addrtoname.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/atm.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/config.h.in#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/configure#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/configure.in#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/gmpls.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/gmpls.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/interface.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/ip6.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/ipproto.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/ipproto.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/llc.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/oui.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/oui.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/pcap-missing.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/pcap_dump_ftell.c#1 branch .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/pmap_prot.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-802_11.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-atm.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-bfd.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-bgp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-bootp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-chdlc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-cnfp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-decnet.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-domain.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-eigrp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-esp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ether.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-fr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-frag6.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-hsrp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-icmp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-icmp6.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-igrp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ip.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ip6.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ip6opts.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ipx.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-isoclns.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-juniper.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-l2tp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ldp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-llc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-lmp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-lspping.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-mobility.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-mpls.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-nfs.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ntp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-null.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ospf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-pgm.c#1 branch .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-pim.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-ppp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-pppoe.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-rsvp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-rt6.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-sctp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-sll.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-smb.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-snmp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-stp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-sunrpc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-tcp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-vrrp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/print-zephyr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/rpc_auth.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/rpc_msg.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/smbutil.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/tcpdump-stdinc.h#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/tcpdump.1#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/tcpdump.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/tcpdump/util.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/traceroute/traceroute.c#2 integrate .. //depot/projects/soc2005/ufsj/src/contrib/wpa_supplicant/wpa_supplicant.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/CREDITS#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ChangeLog#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/FREEBSD-tricks#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/LICENCE#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/Makefile.in#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/README#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/README.privsep#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/WARNING.RNG#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/acconfig.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/acss.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/atomicio.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/atomicio.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/audit.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-chall.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-krb5.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-pam.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-pam.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-passwd.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-rh-rsa.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-rhosts.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-rsa.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-shadow.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth-skey.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth1.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth2-chall.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth2-gss.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth2-kbdint.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/auth2.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/authfd.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/authfile.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/bufaux.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/canohost.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/channels.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/channels.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/cipher-acss.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/cipher-ctr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/cipher.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/clientloop.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/clientloop.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/compat.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/config.guess#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/config.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/config.sub#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/configure.ac#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/defines.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/dns.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/entropy.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/gss-genr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/gss-serv-krb5.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/gss-serv.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/hostfile.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/includes.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/kex.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/kex.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/key.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/log.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/loginrec.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/loginrec.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/mac.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/match.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/mdoc2man.awk#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/misc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/misc.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/moduli.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/monitor.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/monitor.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/monitor_wrap.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/monitor_wrap.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/mpaux.c#2 delete .. //depot/projects/soc2005/ufsj/src/crypto/openssh/mpaux.h#2 delete .. //depot/projects/soc2005/ufsj/src/crypto/openssh/msg.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/myproposal.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/Makefile.in#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/bsd-cygwin_util.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/bsd-misc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/fake-rfc2553.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/getrrsetbyname.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/openbsd-compat.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/openssl-compat.c#1 branch .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/openssl-compat.h#1 branch .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/port-aix.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/port-aix.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/port-uw.c#1 branch .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/port-uw.h#1 branch .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/realpath.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/strtoll.c#1 branch .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/strtonum.c#1 branch .. //depot/projects/soc2005/ufsj/src/crypto/openssh/openbsd-compat/xcrypt.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/packet.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/packet.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/progressmeter.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/readconf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/readconf.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/readpass.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/regress/reexec.sh#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/regress/test-exec.sh#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/scp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/servconf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/servconf.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/serverloop.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/session.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/session.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sftp-client.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sftp-client.h#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sftp-server.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sftp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-add.1#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-add.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-agent.1#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-agent.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-keygen.1#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-keygen.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-keyscan.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-rand-helper.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh-rsa.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh.1#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh_config#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ssh_config.5#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sshconnect.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sshconnect1.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sshconnect2.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sshd.8#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sshd.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sshd_config#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sshd_config.5#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/sshpty.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/tildexpand.c#2 delete .. //depot/projects/soc2005/ufsj/src/crypto/openssh/ttymodes.c#2 integrate .. //depot/projects/soc2005/ufsj/src/crypto/openssh/version.h#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/defaults/rc.conf#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/devd.conf#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/etc.powerpc/ttys#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/login.conf#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/mtree/BSD.include.dist#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/mtree/BSD.var.dist#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/namedb/named.conf#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/network.subr#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/pccard_ether#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/periodic/security/550.ipfwlimit#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/periodic/security/security.functions#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/portsnap.conf#1 branch .. //depot/projects/soc2005/ufsj/src/etc/rc.d/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/bgfsck#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/cleanvar#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/dhclient#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/dumpon#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/encswap#1 branch .. //depot/projects/soc2005/ufsj/src/etc/rc.d/gbde#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/gbde_swap#2 delete .. //depot/projects/soc2005/ufsj/src/etc/rc.d/geli#1 branch .. //depot/projects/soc2005/ufsj/src/etc/rc.d/geli2#1 branch .. //depot/projects/soc2005/ufsj/src/etc/rc.d/jail#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/netif#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/power_profile#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.d/sendmail#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.initdiskless#2 integrate .. //depot/projects/soc2005/ufsj/src/etc/rc.subr#2 integrate .. //depot/projects/soc2005/ufsj/src/games/fortune/datfiles/fortunes#2 integrate .. //depot/projects/soc2005/ufsj/src/games/fortune/datfiles/fortunes2-o#2 integrate .. //depot/projects/soc2005/ufsj/src/games/fortune/datfiles/freebsd-tips#2 integrate .. //depot/projects/soc2005/ufsj/src/games/fortune/datfiles/startrek#2 integrate .. //depot/projects/soc2005/ufsj/src/games/fortune/fortune/fortune.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/lib/libdialog/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/lib/libdialog/dialog.3#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/lib/libg2c/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/lib/libobjc/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/lib/libreadline/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/lib/libregex/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/lib/libstdc++/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/lib/libsupc++/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/bc/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/dialog/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/kgdb.1#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/kgdb.h#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/kthr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/main.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/trgt.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/trgt_alpha.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/trgt_amd64.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/trgt_i386.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/trgt_ia64.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/kgdb/trgt_sparc64.c#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/libgdb/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/gdb/libgdb/frame-unwind.diff#1 branch .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/groff/tmac/mdoc.local#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/man/apropos/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/man/apropos/apropos.man#2 integrate .. //depot/projects/soc2005/ufsj/src/gnu/usr.bin/man/man/man.man#2 integrate .. //depot/projects/soc2005/ufsj/src/include/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/include/histedit.h#2 integrate .. //depot/projects/soc2005/ufsj/src/include/netdb.h#2 integrate .. //depot/projects/soc2005/ufsj/src/include/pthread.h#2 integrate .. //depot/projects/soc2005/ufsj/src/include/resolv.h#2 integrate .. //depot/projects/soc2005/ufsj/src/include/stdlib.h#2 integrate .. //depot/projects/soc2005/ufsj/src/include/string.h#2 integrate .. //depot/projects/soc2005/ufsj/src/include/wchar.h#2 integrate .. //depot/projects/soc2005/ufsj/src/kerberos5/lib/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/bind/bind/config.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/bind/config.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/bind/config.mk#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/bind/isc/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/bind/isc/isc/platform.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libalias/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_entry.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_entry.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_entry.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_platform.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_private.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_read.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_read.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_read_data_into_fd.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_read_extract.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_read_support_format_tar.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/archive_write_set_format_pax.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/configure.ac.in#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libarchive/libarchive-formats.5#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libautofs/libautofs.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libbegemot/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libbluetooth/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libbsnmp/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libbz2/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/compat-43/gethostid.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/compat-43/sethostid.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/db/man/dbopen.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/daemon.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/devname.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/gethostname.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/getnetgrent.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/getosreldate.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/getpagesize.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/getttyent.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/glob.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/readdir.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/sem.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/sem_init.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/sem_post.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/sem_wait.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/sethostname.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/strtofflags.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/syslog.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/gen/usleep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/i386/gen/_set_tp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/i386/gen/ldexp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/include/libc_private.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/include/namespace.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/include/un-namespace.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isalnum.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isalpha.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isblank.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/iscntrl.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isdigit.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isgraph.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/islower.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isprint.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/ispunct.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isspace.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isupper.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/isxdigit.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/nextwctype.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/rpmatch.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/runetype.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/tolower.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/tolower.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/toupper.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/toupper.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/locale/wctype.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/getaddrinfo.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/getprotoent.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/getservent.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/inet6_rth_space.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/inet_pton.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/ip6opt.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/rcmd.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/net/rthdr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/nls/ko_KR.UTF-8.msg#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/nls/ko_KR.eucKR.msg#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/nls/pl_PL.ISO8859-2.msg#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/posix1e/acl_get_entry.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/posix1e/extattr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/posix1e/mac.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/posix1e/mac_prepare.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/quad/quad.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/regex/engine.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/regex/regex.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/regex/regex2.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/rpc/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdio/fgets.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdio/local.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdio/makebuf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdio/printf.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdio/tmpnam.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdio/ungetwc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdio/vfprintf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdio/vfwscanf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdlib/abort.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdlib/exit.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdlib/strfmon.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdtime/strftime.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/stdtime/time2posix.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/memchr.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/memmem.3#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libc/string/memmem.c#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libc/string/strcat.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/strchr.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/strcpy.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/strcspn.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/strspn.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/strstr.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/string/wcsdup.c#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libc/string/wmemchr.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/sys/intro.2#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/sys/kse.2#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/sys/listen.2#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/sys/mmap.2#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/sys/read.2#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/sys/recv.2#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/sys/umask.2#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc/sys/uuidgen.2#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc_r/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc_r/uthread/uthread_mattr_kind_np.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libc_r/uthread/uthread_mutex.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libcam/camlib.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libcrypt/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libdevinfo/devinfo.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libdevstat/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libdevstat/devstat.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libdevstat/devstat.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/TEST/test.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/chared.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/chared.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/common.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/editline.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/editrc.5#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/el.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/el.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/emacs.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/hist.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/hist.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/history.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/key.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/key.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/makelist#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/map.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/map.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/parse.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/parse.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/prompt.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/prompt.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/read.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/read.h#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libedit/refresh.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/refresh.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/search.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/search.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/sig.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/sig.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/sys.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/term.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/term.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/tokenizer.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/tokenizer.h#2 delete .. //depot/projects/soc2005/ufsj/src/lib/libedit/tty.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/tty.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libedit/vi.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libexpat/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libfetch/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libfetch/ftp.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libfetch/http.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libftpio/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libgpib/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libipsec/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libkiconv/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libkiconv/xlat16_iconv.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libkiconv/xlat16_sysctl.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libmagic/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libmd/sha256.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libmemstat/Makefile#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libmemstat/libmemstat.3#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libmemstat/memstat.c#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libmemstat/memstat.h#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libmemstat/memstat_all.c#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libmemstat/memstat_internal.h#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libmemstat/memstat_malloc.c#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libmemstat/memstat_uma.c#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libmp/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libncp/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libncurses/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libnetgraph/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libngatm/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libopie/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpam/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpmc/pmc.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpmc/pmclog.3#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/arch/i386/i386/pthread_md.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/pthread.map#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/sys/lock.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_kern.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_mattr_kind_np.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_mutex.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_pspinlock.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_rtld.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_sem.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_sigsuspend.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_sleep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libpthread/thread/thr_symbols.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libradius/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libsdp/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libsmb/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libstand/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libtacplus/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/pthread.map#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/thread/thr_create.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/thread/thr_mutex.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/thread/thr_mutexattr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/thread/thr_sem.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/thread/thr_symbols.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/thread/thr_syscalls.c#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthr/thread/thr_umtx.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libthread_db/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libufs/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libufs/getino.3#2 delete .. //depot/projects/soc2005/ufsj/src/lib/libugidfw/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libusbhid/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libutil/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libutil/libutil.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libutil/pidfile.3#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libutil/pidfile.c#1 branch .. //depot/projects/soc2005/ufsj/src/lib/libvgl/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libwrap/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/liby/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libypclnt/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/libz/inftrees.h#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/msun/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/lib/msun/amd64/s_scalbnf.S#2 integrate .. //depot/projects/soc2005/ufsj/src/release/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#2 integrate .. //depot/projects/soc2005/ufsj/src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#2 integrate .. //depot/projects/soc2005/ufsj/src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#2 integrate .. //depot/projects/soc2005/ufsj/src/release/doc/ru_RU.KOI8-R/hardware/common/dev.sgml#2 integrate .. //depot/projects/soc2005/ufsj/src/release/doc/share/misc/dev.archlist.txt#2 integrate .. //depot/projects/soc2005/ufsj/src/release/doc/share/sgml/release.ent#2 integrate .. //depot/projects/soc2005/ufsj/src/release/doc/zh_CN.GB2312/hardware/common/dev.sgml#2 integrate .. //depot/projects/soc2005/ufsj/src/rescue/librescue/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/atacontrol/atacontrol.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/atacontrol/atacontrol.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/atm/atmconfig/diag.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/bsdlabel/bsdlabel.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ccdconfig/ccdconfig.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ccdconfig/ccdconfig.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/devd/devd.cc#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/devd/devd.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/devd/devd.hh#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/devd/parse.y#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/devd/token.l#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/alloc.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/bpf.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/clparse.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/conflex.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/convert.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/dhclient-script#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/dhclient.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/dhclient.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/dispatch.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/errwarn.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/hash.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/inet.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/options.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/packet.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/parse.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/privsep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/tables.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dhclient/tree.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/dump/dump.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/fdisk/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/fdisk/fdisk.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/fdisk_pc98/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/fdisk_pc98/fdisk.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/fsdb/fsdb.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/geom/class/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/geom/class/eli/Makefile#1 branch .. //depot/projects/soc2005/ufsj/src/sbin/geom/class/eli/geli.8#1 branch .. //depot/projects/soc2005/ufsj/src/sbin/geom/class/eli/geom_eli.c#1 branch .. //depot/projects/soc2005/ufsj/src/sbin/geom/class/label/glabel.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/geom/class/raid3/geom_raid3.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/geom/core/geom.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/geom/misc/subr.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/geom/misc/subr.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ggate/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ggate/ggatec/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ggate/ggatec/ggatec.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ggate/ggatec/ggatec.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ggate/ggated/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ggate/ggated/ggated.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ggate/ggatel/ggatel.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/add.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/create.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/destroy.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/gpt.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/gpt.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/gpt.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/label.c#1 branch .. //depot/projects/soc2005/ufsj/src/sbin/gpt/map.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/map.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/migrate.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/mkdisk.sh#2 delete .. //depot/projects/soc2005/ufsj/src/sbin/gpt/recover.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/remove.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gpt/show.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/gvinum/gvinum.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ifconfig/ifconfig.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ifconfig/ifconfig.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ifconfig/ifconfig.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ifconfig/ifieee80211.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/init/init.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ipfw/ipfw.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ipfw/ipfw2.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/kldload/kldload.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/mdconfig/mdconfig.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/mount_ext2fs/mount_ext2fs.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/mount_msdosfs/mount_msdosfs.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/newfs/mkfs.c#4 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ping/ping.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/ping/ping.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/reboot/boot_i386.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/restore/interactive.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/routed/input.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/savecore/savecore.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/startslip/startslip.1#2 integrate .. //depot/projects/soc2005/ufsj/src/sbin/sysctl/sysctl.8#2 integrate .. //depot/projects/soc2005/ufsj/src/secure/lib/libcrypto/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/secure/lib/libssh/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/secure/lib/libssl/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/doc/IPv6/IMPLEMENTATION#2 integrate .. //depot/projects/soc2005/ufsj/src/share/doc/papers/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/Makefile#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/fig1.1.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/fig1.2.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/fig1.3.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/fig2.3.raw#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/fig2.4.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/fig3.2.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/fig3.3.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/pxin0.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/pxin1.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/pxin2.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/pxin3.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/pxin4.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/table2.1.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/table2.2.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/table2.3.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/table3.1.n#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/papers/px/tmac.p#2 delete .. //depot/projects/soc2005/ufsj/src/share/doc/usd/18.msdiffs/ms.diffs#2 integrate .. //depot/projects/soc2005/ufsj/src/share/examples/cvsup/stable-supfile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/examples/etc/make.conf#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man1/builtin.1#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man3/fpgetround.3#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/acpi.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/acpi_thermal.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/acpi_video.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/agp.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/an.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ata.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ath.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/aue.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/awi.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/axe.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/bfe.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/bge.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/bpf.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/carp.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/cdce.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/cm.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/cpufreq.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/cue.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/dc.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/de.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ed.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/em.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/en.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/fwe.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/fwip.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/fxp.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/gif.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/hme.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/hwpmc.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/icmp.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/if_bridge.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/inet.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/inet6.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ip.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ipw.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/iwi.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/kbdmux.4#1 branch .. //depot/projects/soc2005/ufsj/src/share/man/man4/kue.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/led.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/lge.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/acpi_asus.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/acpi_fujitsu.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/acpi_ibm.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/acpi_panasonic.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/acpi_sony.4#1 branch .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/acpi_toshiba.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/arl.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/cp.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/cs.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/cx.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/el.4#2 delete .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/ep.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/ex.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/fe.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/ie.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/lnc.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/mse.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/pbio.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/pnp.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/pnpbios.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/ray.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/snc.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.i386/vx.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.sparc64/openprom.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/man4.sparc64/snd_audiocs.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/my.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/natm.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ng_ccatm.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/nge.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/nve.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/oldcard.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/pcm.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/pcn.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/pcvt.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/psm.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ral.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/re.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/rl.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/rue.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/sf.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/sis.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/sk.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/sn.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/snd_cmi.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/snd_csa.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/snd_emu10k1.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/snd_es137x.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/snd_ess.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/snd_sbc.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/snd_t4dwave.4#1 branch .. //depot/projects/soc2005/ufsj/src/share/man/man4/ste.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/syncache.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/tcp.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ti.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/tl.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ttcp.4#2 delete .. //depot/projects/soc2005/ufsj/src/share/man/man4/twe.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/tx.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/txp.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/udav.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/uhid.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/umodem.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/uplcom.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/ural.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/vge.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/vkbd.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/vlan.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/vr.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/wb.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/wi.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/witness.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/xe.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man4/xl.4#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man5/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man5/autofs.5#2 delete .. //depot/projects/soc2005/ufsj/src/share/man/man5/devfs.conf.5#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man5/disktab.5#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man5/libmap.conf.5#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man5/msdosfs.5#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man5/portsnap.conf.5#1 branch .. //depot/projects/soc2005/ufsj/src/share/man/man5/rc.conf.5#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man7/build.7#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man7/development.7#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man7/environ.7#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man7/ffs.7#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man7/firewall.7#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man7/ports.7#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man7/sdoc.7#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man7/security.7#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/VFS.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/VFS_START.9#2 delete .. //depot/projects/soc2005/ufsj/src/share/man/man9/VOP_LISTEXTATTR.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/bios.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/bus_alloc_resource.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/bus_dma.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/device_add_child.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/device_get_softc.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/driver.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/ifnet.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/mbuf.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/mutex.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/printf.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/timeout.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/man/man9/vhold.9#2 integrate .. //depot/projects/soc2005/ufsj/src/share/misc/pci_vendors#2 integrate .. //depot/projects/soc2005/ufsj/src/share/mk/bsd.incs.mk#2 integrate .. //depot/projects/soc2005/ufsj/src/share/mk/bsd.lib.mk#2 integrate .. //depot/projects/soc2005/ufsj/src/share/mk/bsd.libnames.mk#2 integrate .. //depot/projects/soc2005/ufsj/src/share/termcap/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/termcap/map3270#2 delete .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/africa#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/antarctica#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/asia#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/australasia#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/backward#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/etcetera#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/europe#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/leapseconds#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/northamerica#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/southamerica#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/yearistype.sh#2 integrate .. //depot/projects/soc2005/ufsj/src/share/zoneinfo/zone.tab#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/alpha/db_trace.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/alpha/pmap.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/alpha/vm_machdep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/conf/GENERIC#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/conf/GENERIC.hints#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/include/_limits.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/include/atomic.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/include/param.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/include/signal.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/include/vmparam.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/linux/linux_proto.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/linux/linux_syscall.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/linux/linux_sysent.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/linux/linux_sysvec.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/linux/syscalls.master#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/osf1/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/osf1/osf1_proto.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/osf1/osf1_syscall.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/osf1/osf1_sysent.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/alpha/osf1/syscalls.master#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/acpica/madt.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/bios.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/db_trace.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/exception.S#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/genassym.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/mp_machdep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/pmap.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/sys_machdep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/trap.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/conf/GENERIC#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/conf/NOTES#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/include/_limits.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/include/atomic.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/include/bus_dma.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/include/pc/bios.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/include/signal.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/isa/clock.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/linux32/linux32_proto.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/linux32/linux32_syscall.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/linux32/linux32_sysent.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/linux32/linux32_sysvec.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/amd64/linux32/syscalls.master#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/arm/arm/db_trace.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/arm/arm/pmap.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/arm/arm/vm_machdep.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/arm/include/_limits.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/arm/include/atomic.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/arm/include/clock.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/arm/include/endian.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/arm/include/signal.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/common/console.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/common/help.common#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/common/loader.8#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/ficl/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/forth/loader.conf#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/forth/loader.conf.5#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/boot2/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/boot2/boot2.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/boot2/lib.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/boot2/sio.S#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/libi386/Makefile#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/libi386/comconsole.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/libi386/libi386.h#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/libi386/smbios.c#1 branch .. //depot/projects/soc2005/ufsj/src/sys/boot/i386/loader/main.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/ofw/libofw/ofw_copy.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/pc98/Makefile.inc#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/pc98/boot2/io.c#2 integrate .. //depot/projects/soc2005/ufsj/src/sys/boot/pc98/libpc98/comconsole.c#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Sep 14 21:08:07 2005 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 9D95016A421; Wed, 14 Sep 2005 21:08:06 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 78BB816A41F for ; Wed, 14 Sep 2005 21:08:06 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4879443D46 for ; Wed, 14 Sep 2005 21:08:06 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8EL867U098240 for ; Wed, 14 Sep 2005 21:08:06 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8EL85Rg098237 for perforce@freebsd.org; Wed, 14 Sep 2005 21:08:06 GMT (envelope-from jhb@freebsd.org) Date: Wed, 14 Sep 2005 21:08:06 GMT Message-Id: <200509142108.j8EL85Rg098237@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 83619 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, 14 Sep 2005 21:08:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=83619 Change 83619 by jhb@jhb_slimer on 2005/09/14 21:07:52 Uniquify these messages somewhat. Affected files ... .. //depot/projects/smpng/sys/kern/subr_witness.c#136 edit Differences ... ==== //depot/projects/smpng/sys/kern/subr_witness.c#136 (text+ko) ==== @@ -919,7 +919,16 @@ /* * Ok, yell about it. */ - printf("lock order reversal\n"); + if (((lock->lo_flags & LO_SLEEPABLE) != 0 && + (lock1->li_lock->lo_flags & LO_SLEEPABLE) == 0)) + printf( + "lock order reversal: (sleepable after non-sleepable)\n"); + else if ((lock1->li_lock->lo_flags & LO_SLEEPABLE) == 0 + && lock == &Giant.mtx_object) + printf( + "lock order reversal: (Giant after non-sleepable)\n"); + else + printf("lock order reversal:\n"); /* * Try to locate an earlier lock with * witness w in our list. From owner-p4-projects@FreeBSD.ORG Wed Sep 14 21:35:40 2005 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 56E3216A421; Wed, 14 Sep 2005 21:35:40 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 131E016A41F for ; Wed, 14 Sep 2005 21:35:40 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A85FB43D46 for ; Wed, 14 Sep 2005 21:35:39 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8ELZdqp099552 for ; Wed, 14 Sep 2005 21:35:39 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8ELZdXs099549 for perforce@freebsd.org; Wed, 14 Sep 2005 21:35:39 GMT (envelope-from soc-chenk@freebsd.org) Date: Wed, 14 Sep 2005 21:35:39 GMT Message-Id: <200509142135.j8ELZdXs099549@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 83620 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, 14 Sep 2005 21:35:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=83620 Change 83620 by soc-chenk@soc-chenk_leavemealone on 2005/09/14 21:34:51 implemented shared mounting Upgraded lib to 2.4.0-pre2 Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/Changelog#5 edit .. //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#4 edit .. //depot/projects/soc2005/fuse4bsd2/README.html#2 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/Makefile#3 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#5 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#3 edit .. //depot/projects/soc2005/fuse4bsd2/fuselib/fuselib-2.4.0-pre1.diff#2 delete .. //depot/projects/soc2005/fuse4bsd2/fuselib/fuselib-2.4.0-pre2.diff#1 add .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#4 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/Changelog#5 (text+ko) ==== @@ -1,3 +1,14 @@ +Wed Sep 14 22:06:48 CEST 2005 at node: creo.hu, nick: csaba + * implemented shared mounting + + implemented shared mounting + + added subchapter about "allow other" to IMPLEMENTATION_NOTES + + +Wed Sep 14 22:00:04 CEST 2005 at node: creo.hu, nick: csaba + * Upgraded lib to 2.4.0-pre2 + Mon Sep 12 14:28:34 CEST 2005 at node: creo.hu, nick: csaba * Added Messaging chapter to IMPLEMENTATION_NOTES ==== //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#4 (text+ko) ==== @@ -65,7 +65,8 @@ 1) Mounting * 1a -- interface * 1b -- security -* 1c -- anything else +* 1c -- dealing with the "allow other" misery +* 1d -- anything else 2) [vi]node operations 3) Syncing 4) Messaging @@ -214,23 +215,73 @@ introduce non-orthogonal access policies in parallell, we tend to be liberal in respect of fuse devices. Yet we also have to make our commitment to the "it's better to show up as one who prefers to play on -the safe side" idea. As a compromise, fuse devices are set to be -readable/writable for members of the operator group (the same group -which is usually used for controlling access to devices like sound cards -ands optical drives). One might argue that it's nonsense that mounting a -Fuse filesystem is harder than mounting a traditional, disk based file -system, as the latter requires only vfs.usermount == 1, while the former -requires membership in operator, too. Well, the conscious admin who -takes the effort to set vfs.usermount to 1, can as well take the effort -to adjust devfs(8) rules so that fuse devices become world usable -("devfs rule add path 'fuse*' mode 666"). Hey, conscious admins, hear my -word, I hereby claim thou shalt not fear to do so. And, concerning -paranoiac admins, these defaults save them from a heart attack upon -seeing world writable entries under /dev (though they might better go -and suffer a heart attack when kldstat reports that my module is -loaded...). +the safe side" idea. + +As a compromise, fuse devices are set to be readable/writable for +members of the operator group (the same group which is usually used for +controlling access to devices like sound cards ands optical drives). One +might argue that it's nonsense that mounting a Fuse filesystem is harder +than mounting a traditional, disk based file system, as the latter +requires only vfs.usermount == 1, while the former requires membership +in operator, too. Well, the conscious admin who takes the effort to set +vfs.usermount to 1, can as well take the effort to adjust devfs(8) rules +so that fuse devices become world usable +("devfs rule add path 'fuse*' mode 666"). Hey, conscious admins, +hear my word, I hereby claim thou shalt not fear to do so. And, +concerning paranoiac admins, these defaults save them from a heart +attack upon seeing world writable entries under /dev (though they might +better go and suffer a heart attack when kldstat reports that my module +is loaded...). + +* 1c -- dealing with the "allow other" misery + +This is related to security, too, but deserves an dedicated subchapter. + +The problem is that the Fuse daemon sees I/O activity of the users of the +filesystem driven by her. As usually no privileges are needed for using +Fuse, we can't guarantee that the daemon belongs to a trusted user account. +Moreover, mounts are transparent for normal filesystem related activities, +so the user of a filesystem might be unaware of the fact that a given path +belongs to a Fuse mount. + +How is this handled in Linux? By default a user is denied from usage +of a Fuse mount unless the daemon is "more privileged" than the user +(that is, the daemon's credentials allow her trace the user's processes). + +There is a mount option, "allow_other", which removes this limitation. +Of course, if anyone could use this option, that would pretty much defeat +the whole purpose of its existence. So by default, only root can use this. +However, the final decision is made by the setuid dispatcher; and his decision +is based upon settings in the respective config file /etc/fuse.conf. + +The problem with this approach is that it's pretty hard for the root to make +sure that no user of the system would mind an "everyone can allow_other" +policy. + +And in FreeBSD, we couldn't even follow this approach, as we don't have a +setuid dispatcher for deciding about the fate of "allow_other" attempts. + +So, what do we about it in FreeBSD? + +The basic setup is the same as in Linux: there is an "allow_other" mount +option, useable only by root. But we don't make exceptions: "allow_other" +can be used only by root, period. + +Yet we have our own ways to not be so draconian. We have an explicit +global unique userspace identifier of daemons in work. + +This allows the introduction of shared daemons. When the first (primary) +mount of a daemon has been completed, other users can do secondary mounts +of the same daemon. A secondary mount works like a symlink -- it forwards +all requests to the primary mount. So it is a very lightweight mechanism. + +And what's most important, doing a secondary mount can be viewed as signing +"agreement of traceability". The secondary mounter can be expected to have +the necessary knowledge about the primary mount to which she or he joins. +Hence while she or he posessess the secondary mount, s/he will be allowed +to use the filesystem -- either via its primary or secondary mounts. -* 1c -- anything else +* 1d -- anything else Not specific to Fuse, but it's a great revelation that one doesn't need to fight with the dreaded /etc/mtab file under FreeBSD. Even under @@ -275,9 +326,7 @@ and credentials are also given with a FUSE_READ, these parameters might better match, but apart from that, it should be the indifferent which filehandle is used. ("Highly synthetic" filesystem daemons might opt to -serve data in a filehandle specific manner, but that's an extremity; if -such a daemon is ever needed to be used under FreeBSD, the close -correspondence can still be enforced by using direct io.) +serve data in a filehandle specific manner, but that's an extremity.) So far, it's been explained why is it possible to alter from the "strict correspondence between file structures and daemon's filehandles" model. @@ -460,10 +509,17 @@ (with some exceptions, when new ones are created), in FreeBSD, tickets are created on demand. +* Unlike Linux, messaging facilites are unconditionally avaliable in FreeBSD. + That is, there are no forced delays depending on the intensity of filesystem + usage. (This is not because of a forced-delays-are-evil policy; it's rather + due to a + better-to-do-nothing-than-to-do-something-without-understanding-it + standpoint.) + * In Linux, the buffers hosting the fields of a request are allocated on the stack (that is, these fields are pointers to structures held in variables of syscall handlers), in FreeBSD, they are allocated - dynamically (they are not freed when the ticket get dropped, they are + dynamically (they are not freed when the ticket gets dropped, they are kept, reused, and reallocated on demand). * In Linux, the unique field of the request is filled with a really ==== //depot/projects/soc2005/fuse4bsd2/README.html#2 (text+ko) ==== @@ -50,18 +50,18 @@
  • - Fuse itself. Get Fuse 2.4.0-pre1 from their [WWW]homepage. + Fuse itself. Get Fuse 2.4.0-pre2 from their [WWW]Sourceforge project page.

  • The FreeBSD module. Source tarballs are provided at [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* The current code is available via Darcs, you can fetch it by -

     darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd
    command, or via [WWW]Perforce. +
     darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd
    command, or via [WWW]Perforce (you can use this latter link for online source code browsing).

  • - Fuse sshfs. The latest release (1.2) will do, fetch the sshfs-fuse package from [WWW]http://sourceforge.net/projects/fuse. + Fuse sshfs. The latest release (1.2) will do, fetch the sshfs-fuse package also from the [WWW]Fuse SF project page.

  • @@ -104,8 +104,7 @@
  • Assuming that you have my code at ../fuse4bsd, do -

     cp ../fuse4bsd/fuselib/fusermount.c util/ &&
    - cp ../fuse4bsd/fuse_module/fuse_kernel.h include/ &&
    +
     cp ../fuse4bsd/fuse_module/fuse_kernel.h include/ &&
      cp ../fuse4bsd/fuse_module/linux_compat.h include/
    (the first command replaces fusermount.c with a trimmed down version without the mount support code, and the other two dynamically customize the header file defining the kernel-userland interface; as these are needed in the module as well, they are handled separately from the userspace patch).

  • @@ -116,8 +115,8 @@
  • - We will do a non-privileged install, I'll use ~/meta/fuse-2.4.0-pre1 as the prefix. Configure fuse with -

     ./configure --prefix ~/meta/fuse-2.4.0-pre1 --bindir=/tmp --disable-kernel-module MOUNT_FUSE_PATH=/tmp
    + We will do a non-privileged install (I'd say that's easier than set up a jail), I'll use ~/meta/fuse-2.4.0-pre2 as the prefix. Configure fuse with +
     ./configure --prefix ~/meta/fuse-2.4.0-pre2 --bindir=/tmp --disable-kernel-module MOUNT_FUSE_PATH=/tmp

  • @@ -148,7 +147,7 @@
  • Type -

     env PKG_CONFIG_PATH=~/meta/fuse-2.4.0-pre1/lib/pkgconfig/ ./configure && make
    +
     env PKG_CONFIG_PATH=~/meta/fuse-2.4.0-pre2/lib/pkgconfig/ ./configure && make

  • @@ -171,7 +170,7 @@

    Go to sshfs' directory. First prepare the mount:

    mkdir -p ~/fuse &&
    -export LD_LIBRARY_PATH=~/meta/fuse-2.4.0-pre1/lib/
    and also make sure that mount_fusefs (of FreeBSD Fuse) is in your path. Then do: +export LD_LIBRARY_PATH=~/meta/fuse-2.4.0-pre2/lib/and also make sure that mount_fusefs (of FreeBSD Fuse) is in your path. Then do:
    mount_fusefs auto ~/fuse ./sshfs foo@bar.baz: ""

    @@ -191,7 +190,7 @@

  • - You have to use forced unmount for a Fuse filesystem. The reason for this as follows: + You have to use forced unmount for a Fuse filesystem. The reason for this is as follows:

    With traditional filesystems, relations between fs entities are permanently stored in some background storage; but when one uses the filesystem, the fs hierarchy is built up and maintained by the kernel, and this what's transported to the userspace so that we get the usual "filesystem feeling". ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/Makefile#3 (text+ko) ==== @@ -6,11 +6,11 @@ .endif .if defined(DEBUG) -CFLAGS+= -D_DEBUG -g +DEBUG_FLAGS+= -D_DEBUG -g .endif .if defined(DEBUG2G) -CFLAGS+= -D_DEBUG2G -g +DEBUG_FLAGS+= -D_DEBUG2G -g .endif .if defined(DEBUG_MSGING) @@ -27,7 +27,7 @@ KMOD=fuse -CLEANFILES+= fuse_kernel.h fuse_opnames.c fuse_opnames.o fmaster.o vnode_if.h vnode_if_typedef.h vnode_if_newproto.h +CLEANFILES+= fuse_kernel.h fuse_opnames.c fuse_opnames.o fmaster.o vnode_if.h vnode_if_typedef.h vnode_if_newproto.h fuse.ko.debug fuse.ko: fuse_kernel.h vnode_if.h vnode_if_typedef.h vnode_if_newproto.h @@ -47,7 +47,4 @@ vnode_if_newproto.h: awk -f /sys/tools/vnode_if.awk /sys/kern/vnode_if.src -p -nonstripped: fuse.ko - ld -Bshareable -d -warn-common -o fuse.ko fuse.kld - .include ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#5 (text+ko) ==== @@ -47,6 +47,10 @@ #define __static static #endif +#ifndef ROOTLESS_SHARES +#define ROOTLESS_SHARES 1 +#endif + MALLOC_DEFINE(M_FUSEMSG, "fuse messaging", "buffer for fuse messaging related things"); @@ -137,17 +141,30 @@ static __inline int fuse_ohead_audit(struct fuse_out_header *ohead, struct uio *uio); __static int fuse_body_audit(struct fuse_callback_node *caliban, size_t blen); -static __inline void fuse_setup_ihead(struct fuse_in_header *ihead, struct fuse_ticket *tick, uint64_t nid, enum fuse_opcode op, struct thread* td, struct ucred *cred); +static __inline void fuse_setup_ihead(struct fuse_in_header *ihead, + struct fuse_ticket *tick, uint64_t nid, + enum fuse_opcode op, size_t blen, + struct thread* td, struct ucred *cred); __static __inline struct sx *fusedev_get_lock(struct cdev *fdev); __static __inline struct fuse_data *fusedev_get_data(struct cdev *fdev); static int fdisp_get_vopdata(struct fuse_dispatcher *fdip, struct mount *mp); -static void fdisp_prepare_msg(struct fuse_dispatcher *fdip, enum fuse_opcode op, uint64_t nid, struct thread *td, struct ucred *cred); -static __inline int fdisp_prepare_all(struct fuse_dispatcher *fdip, enum fuse_opcode op, struct vnode *vp, struct thread *td, struct ucred *cred); +static void fdisp_prepare_msg(struct fuse_dispatcher *fdip, + enum fuse_opcode op, uint64_t nid, + struct thread *td, struct ucred *cred); +static __inline int fdisp_prepare_all(struct fuse_dispatcher *fdip, + enum fuse_opcode op, struct vnode *vp, + struct thread *td, struct ucred *cred); __static int fdisp_wait_answ(struct fuse_dispatcher *fdip); -static __inline int fdisp_simple_putget(struct fuse_dispatcher *fdip, enum fuse_opcode op, struct vnode *vp, struct thread *td, struct ucred *cred); +static __inline int fdisp_simple_putget(struct fuse_dispatcher *fdip, + enum fuse_opcode op, struct vnode *vp, + struct thread *td, struct ucred *cred); static __inline int fuse_send_init(struct fuse_data *data, struct thread *td); -static __inline int fuse_send_forget(struct mount *mp, struct thread *td, struct ucred *cred, uint64_t nodeid, uint64_t nlookup, struct fuse_dispatcher *fdip); +static __inline int fuse_send_forget(struct mount *mp, struct thread *td, + struct ucred *cred, uint64_t nodeid, + uint64_t nlookup, + + struct fuse_dispatcher *fdip); /*************************************** @@ -462,6 +479,9 @@ data->freeticket_counter = 0; data->daemoncred = crhold(cred); + /* sx_init(&data->shareslock, "lock for fuse shares consistency"); */ + LIST_INIT(&data->fuse_shares_head); + return (data); } @@ -484,6 +504,8 @@ crfree(data->daemoncred); + /* sx_destroy(&data->shareslock); */ + FREE(data,M_FUSEMSG); } @@ -491,7 +513,7 @@ fdata_kick_set(struct fuse_data *data) { mtx_lock(&data->msg_mtx); - data->dataflag |= FU_KICK; + data->dataflag |= FDAT_KICK; cv_signal(&data->msg_cv); mtx_unlock(&data->msg_mtx); } @@ -499,7 +521,7 @@ static __inline int fdata_kick_get(struct fuse_data *data) { - return (data->dataflag & FU_KICK); + return (data->dataflag & FDAT_KICK); } /* <== fuse_data methods */ @@ -702,7 +724,7 @@ err = blen == sizeof(struct fuse_entry_out) ? 0 : EINVAL; break; case FUSE_FORGET: - KASSERT(0, ("a handler has been intalled for FUSE_FORGET")); + panic("a handler has been intalled for FUSE_FORGET"); break; case FUSE_GETATTR: err = blen == sizeof(struct fuse_attr_out) ? 0 : EINVAL; @@ -764,16 +786,16 @@ err = blen == 0 ? 0 : EINVAL; break; case FUSE_SETXATTR: - KASSERT(0, ("FUSE_SETXATTR implementor has forgotten to define a response body format check")); + panic("FUSE_SETXATTR implementor has forgotten to define a response body format check"); break; case FUSE_GETXATTR: - KASSERT(0, ("FUSE_GETXATTR implementor has forgotten to define a response body format check")); + panic("FUSE_GETXATTR implementor has forgotten to define a response body format check"); break; case FUSE_LISTXATTR: - KASSERT(0, ("FUSE_LISTXATTR implementor has forgotten to define a response body format check")); + panic("FUSE_LISTXATTR implementor has forgotten to define a response body format check"); break; case FUSE_REMOVEXATTR: - KASSERT(0, ("FUSE_REMOVEXATTR implementor has forgotten to define a response body format check")); + panic("FUSE_REMOVEXATTR implementor has forgotten to define a response body format check"); break; case FUSE_INIT: err = blen == sizeof(struct fuse_init_in_out) ? 0 : EINVAL; @@ -793,20 +815,28 @@ case FUSE_FSYNCDIR: err = blen == 0 ? 0 : EINVAL; break; +#ifdef FUSE_GETLK case FUSE_GETLK: - KASSERT(0, ("FUSE_GETLK implementor has forgotten to define a response body format check")); + panic("FUSE_GETLK implementor has forgotten to define a response body format check"); break; +#endif +#ifdef FUSE_SETLK case FUSE_SETLK: - KASSERT(0, ("FUSE_SETLK implementor has forgotten to define a response body format check")); + panic("FUSE_SETLK implementor has forgotten to define a response body format check"); break; +#endif +#ifdef FUSE_SETLKW case FUSE_SETLKW: - KASSERT(0, ("FUSE_SETLKW implementor has forgotten to define a response body format check")); + panic("FUSE_SETLKW implementor has forgotten to define a response body format check"); break; +#endif +#ifdef FUSE_ACCESS case FUSE_ACCESS: - KASSERT(0, ("FUSE_ACCESS implementor has forgotten to define a response body format check")); + panic("FUSE_ACCESS implementor has forgotten to define a response body format check"); break; +#endif default: - KASSERT(0, ("fuse opcodes out of sync")); + panic("fuse opcodes out of sync"); } if (err) @@ -824,10 +854,10 @@ static __inline void fuse_setup_ihead(struct fuse_in_header *ihead, struct fuse_ticket *tick, - uint64_t nid, enum fuse_opcode op, struct thread* td, - struct ucred *cred) + uint64_t nid, enum fuse_opcode op, size_t blen, + struct thread* td, struct ucred *cred) { - ihead->len = 0; /* actually not used by lib */ + ihead->len = sizeof(ihead) + blen; /* actually not used by lib */ ihead->unique = tick->unique; ihead->nodeid = nid; ihead->opcode = op; @@ -905,6 +935,18 @@ * ****************************/ +#define FUSEREF \ +do { \ + mtx_lock(&fuse_useco_mtx); \ + if (fuse_useco < 0) { \ + /* Module unload is going on */ \ + mtx_unlock(&fuse_useco_mtx); \ + return (ENOENT); \ + } else \ + fuse_useco++; \ + mtx_unlock(&fuse_useco_mtx); \ +} while (0) + /* * Resources are set up on a per-open basis */ @@ -917,14 +959,7 @@ if (dev->si_usecount > 1) return (EBUSY); - mtx_lock(&fuse_useco_mtx); - if (fuse_useco < 0) { - /* Module unload is going on */ - mtx_unlock(&fuse_useco_mtx); - return (ENOENT); - } else - fuse_useco++; - mtx_unlock(&fuse_useco_mtx); + FUSEREF; data = fdata_alloc(td->td_ucred); @@ -1023,7 +1058,7 @@ * (There is no much use of a partial read here...) */ if (uio->uio_resid < fmsgn->msg.len) { - data->dataflag |= FU_KICK; + data->dataflag |= FDAT_KICK; err = ENODEV; } @@ -1194,7 +1229,7 @@ FUSE_DIMALLOC(&fdip->tick->msgn.msg, fdip->finh, fdip->indata, fdip->iosize); - fuse_setup_ihead(fdip->finh, fdip->tick, nid, op, td, cred); + fuse_setup_ihead(fdip->finh, fdip->tick, nid, op, fdip->iosize, td, cred); } /* prev. two in one */ @@ -1565,7 +1600,8 @@ fuse_mount(struct mount *mp, struct thread *td) { int err = 0; - int len; + int len, sharecount = 0; + int sharing = 0; char *fspec; struct vnode *devvp; struct vfsoptlist *opts; @@ -1577,6 +1613,10 @@ struct vnode *rvp; struct fuse_vnode_data *fvdat; +#define SHAREDMOUNT 0x1 +#define PRIVMOUNT 0x2 +#define IS_SHARED(sh) (!((sh) & PRIVMOUNT)) + if (mp->mnt_flag & MNT_UPDATE) { uprintf("fuse: updating mounts is not supported\n"); return (EOPNOTSUPP); @@ -1606,6 +1646,14 @@ return (err); if (!fspec || fspec[len - 1] != '\0') return (EINVAL); + +/* + vfs_flagopt(opts, "shared", sharing, SHAREDMOUNT); + */ + vfs_flagopt(opts, "private", &sharing, PRIVMOUNT); + + FUSEREF; + /* * Not an update, or updating the name: look up the name * and verify that it refers to a sensible disk device. @@ -1613,13 +1661,14 @@ NDINIT(ndp, LOOKUP, FOLLOW, UIO_SYSSPACE, fspec, td); if ((err = namei(ndp)) != 0) - return (err); + goto out; NDFREE(ndp, NDF_ONLY_PNBUF); devvp = ndp->ni_vp; if (devvp->v_type != VCHR) { vrele(devvp); - return (ENXIO); + err = ENXIO; + goto out; } fdev = devvp->v_rdev; @@ -1632,7 +1681,8 @@ if (! fdev->si_devsw || strcmp("fuse", fdev->si_devsw->d_name) || ! (slock = fusedev_get_lock(fdev))) { - return (ENXIO); + err = ENXIO; + goto out; } MALLOC(fmnt, struct fuse_mnt_data *, sizeof(*fmnt), M_FUSEFS, @@ -1643,17 +1693,13 @@ if (fmnt->mntopts & FUSEFS_DAEMON_CAN_SPY && suser(td)) { uprintf("only root can use \"allow_other\"\n"); free(fmnt, M_FUSEFS); - return (EPERM); + err = EPERM; + goto out; } -#if ! REALTIME_TRACK_UNPRIVPROCDBG - fmnt->mntopts &= ~FUSEFS_UNPRIVPROCDBG; - fmnt->mntopts |= get_unprivileged_proc_debug(td) ? FUSEFS_UNPRIVPROCDBG : 0; -#endif - DEBUG2G("mntopts 0x%x\n", fmnt->mntopts); - sx_slock(slock); + sx_xlock(slock); /* Sanity + permission checks */ @@ -1670,42 +1716,80 @@ uprintf("fuse daemon found, but has been backlisted\n"); } - if ((! err) && suser(td)) { - if (td->td_ucred->cr_uid != data->daemoncred->cr_uid) { - err = EPERM; - uprintf("attempt to mount other user's daemon\n"); + if (!err) { + if (data->mp) { + if (! (data->dataflag & FDAT_SHARED && + IS_SHARED(sharing))) + /* + * device is owned and either us or owner + * insits on a private mount + */ + goto deny; + } else { + if (suser(td) && + td->td_ucred->cr_uid != data->daemoncred->cr_uid) + /* we are not allowed to do the first mount */ + goto deny; } + goto allow; +deny: + err = EPERM; } +allow: if (err) { - sx_sunlock(slock); + sx_xunlock(slock); FREE(fmnt, M_FUSEFS); - return (err); + goto out; } - /* Now handshaking with daemon */ + if (data->mp) { + struct fuse_share *fsh; + MALLOC(fsh, struct fuse_share *, sizeof(*fsh), + M_FUSEFS, M_WAITOK); + fsh->uid = td->td_ucred->cr_uid; + fsh->master = data->mp; + LIST_INSERT_HEAD(&data->fuse_shares_head, fsh, + fuse_shares_link); + fmnt->share = fsh; + LIST_FOREACH(fsh, &data->fuse_shares_head, + fuse_shares_link) + sharecount++; + } else { + /* Now handshaking with daemon */ - if ((err = fuse_send_init(data, td))) { - /* - * Something went wrong with sending init -- - * eg., bad version number - * Thus we tell the daemon it's time to get off - */ - fdata_kick_set(data); - - sx_sunlock(slock); - FREE(fmnt, M_FUSEFS); - return (err); + if ((err = fuse_send_init(data, td))) { + /* + * Something went wrong with sending init -- + * eg., bad version number + * Thus we tell the daemon it's time to get off + */ + fdata_kick_set(data); + + sx_xunlock(slock); + FREE(fmnt, M_FUSEFS); + goto out; + } + if (IS_SHARED(sharing)) + data->dataflag |= FDAT_SHARED; } - sx_sunlock(slock); /* We need this here as this slot is used by getnewvnode() */ mp->mnt_stat.f_iosize = PAGE_SIZE; + mp->mnt_data = fmnt; +#if ROOTLESS_SHARES + if (fmnt->share) + goto rootdone; +#endif + /* code stolen from portalfs */ - MALLOC(fvdat, struct fuse_vnode_data *, sizeof(*fvdat), M_FUSEFS, - M_WAITOK | M_ZERO); + if (data->mp) + fvdat = ((struct fuse_mnt_data *)data->mp->mnt_data)->rvp->v_data; + else + MALLOC(fvdat, struct fuse_vnode_data *, sizeof(*fvdat), + M_FUSEFS, M_WAITOK | M_ZERO); #if __FreeBSD_version >= 600000 err = getnewvnode("fuse", mp, &fuse_vnops, &rvp); #else @@ -1713,29 +1797,77 @@ #endif if (err) { - FREE(fmnt, M_FUSEFS); - FREE(fvdat, M_FUSEFS); - return (err); + if (data->mp) { + fdata_kick_set(data); + FREE(fmnt, M_FUSEFS); + FREE(fvdat, M_FUSEFS); + } + sx_xunlock(slock); + goto out; } /* * FUSE_ROOT_INODE as an inode number will be resolved directly. - * without resorting to the vfs hashing mechanism, thus it also can - * be inserted directly to the v_hash slot. + * without resorting to the vfs hashing mechanism, thus it also + * can be inserted directly to the v_hash slot. */ rvp->v_hash = FUSE_ROOT_INODE; + fmnt->rvp = rvp; fuse_vnode_init(rvp, fvdat, VDIR); rvp->v_vflag |= VV_ROOT; - fmnt->rvp = rvp; +#if ROOTLESS_SHARES +rootdone: +#endif + + if (! data->mp) { + data->mp = mp; +#if ! REALTIME_TRACK_UNPRIVPROCDBG + fmnt->mntopts &= ~FUSEFS_UNPRIVPROCDBG; + fmnt->mntopts |= get_unprivileged_proc_debug(td) ? FUSEFS_UNPRIVPROCDBG : 0; +#endif + } + + sx_xunlock(slock); + vfs_getnewfsid(mp); - mp->mnt_data = fmnt; mp->mnt_flag |= MNT_LOCAL; copystr(fspec, mp->mnt_stat.f_mntfromname, MNAMELEN - 1, &len); + if (fmnt->share && len >= 1) { + /* + * I've considered using s1, s2,... for shares, instead + * #1, #2,... as s* is more conventional... + * Finally I chose #* as I feel it's more expressive + * and s* can be misleading (slices are strung up + * serially, shares exist in parallell) + */ + mp->mnt_stat.f_mntfromname[len-1] = '#'; + if (len < MNAMELEN - 1) { + /* Duhh, ain't there a better way of doing this? */ + int log = 0, lim = 1; + while (sharecount >= lim) { + lim *= 10; + log++; + } + if (log >= MNAMELEN - len) { + mp->mnt_stat.f_mntfromname[len] = '?'; + len++; + } else { + sprintf(mp->mnt_stat.f_mntfromname + len, "%d", + sharecount); + len += log; + } + } + } bzero(mp->mnt_stat.f_mntfromname + len, MNAMELEN - len); + DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); - return (0); +out: + if (err) + fuse_useco--; + + return (err); } /* @@ -1744,34 +1876,57 @@ static int fuse_unmount(struct mount *mp, int mntflags, struct thread *td) { - int err, flags = 0; + int flags = 0, err = 0; struct sx *slock; struct fuse_data *data; struct fuse_mnt_data *fmnt; + DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); /* Flag handling */ if (mntflags & MNT_FORCE) flags |= FORCECLOSE; - /* Flush files -> vflush */ - /* There is 1 extra root vnode reference (mp->mnt_data). */ - if ((err = vflush(mp, 1, flags, td))) - return (err); - fmnt = mp->mnt_data; slock = fusedev_get_lock(fmnt->fdev); - sx_slock(slock); - if ((data = fusedev_get_data(fmnt->fdev))) + sx_xlock(slock); + if (! (data = fusedev_get_data(fmnt->fdev))) + goto out; + if (fmnt->share) + LIST_REMOVE(fmnt->share, fuse_shares_link); + else { + if (! LIST_EMPTY(&data->fuse_shares_head)) { + sx_xunlock(slock); + return (EBUSY); + } fdata_kick_set(data); - sx_sunlock(slock); + } + +out: + sx_xunlock(slock); + + + if ( +#if ROOTLESS_SHARES + ! fmnt->share +#else + 1 +#endif + ) { + /* Flush files -> vflush */ + /* There is 1 extra root vnode reference (mp->mnt_data). */ + if ((err = vflush(mp, 1, flags, td))) + return (err); + } mp->mnt_data = NULL; + FREE(fmnt->share, M_FUSEFS); FREE(fmnt, M_FUSEFS); - /* Other guys do this, I don't know what is it good for... */ + /* Other guys do this, I don't know what it is good for... */ mp->mnt_flag &= ~MNT_LOCAL; + fuse_useco--; return (0); } @@ -1787,9 +1942,17 @@ /* * Return locked reference to root. */ + struct fuse_mnt_data *fmnt = mp->mnt_data; struct vnode *vp; - vp = ((struct fuse_mnt_data *)mp->mnt_data)->rvp; + DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); + +#if ROOTLESS_SHARES + if (fmnt->share) + return fuse_root(fmnt->share->master, flags, vpp, td); +#endif + + vp = fmnt->rvp; vref(vp); VOP_UNLOCK(vp, 0, td); vn_lock(vp, flags | LK_RETRY, td); @@ -1802,10 +1965,18 @@ { struct fuse_dispatcher fdi; struct fuse_statfs_out *fsfo; + struct fuse_mnt_data *fmnt; int err = 0; - if ((err = fdisp_simple_putget(&fdi, FUSE_STATFS, - ((struct fuse_mnt_data *)mp->mnt_data)->rvp, td, NULL))) + DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); + fmnt = mp->mnt_data; + +#if ROOTLESS_SHARES + if (fmnt->share) + fmnt = (struct fuse_mnt_data *)fmnt->share->master->mnt_data; +#endif + + if ((err = fdisp_simple_putget(&fdi, FUSE_STATFS, fmnt->rvp, td, NULL))) return (err); fsfo = fdi.answ; @@ -1834,10 +2005,12 @@ enum vtype vtyp, struct vnode **vpp) { int err = 0; + struct fuse_mnt_data *fmnt; struct fuse_vnode_data *fvdat; struct vnode *vp2; int myflags = LK_EXCLUSIVE; + DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); DEBUG("been asked for vno #%llu\n", nodeid); if (nodeid == FUSE_ROOT_INODE) { @@ -1845,6 +2018,13 @@ return (err); } + fmnt = mp->mnt_data; +#if ! ROOTLESS_SHARES + if (fmnt->share) + mp = fmnt->share->master; +#endif + DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); + /* XXX nodeid: cast from 64 bytes to 32 */ if ((err = vfs_hash_get(mp, nodeid, /*flags*/ myflags, td, vpp, NULL, NULL))) return (err); @@ -1921,8 +2101,17 @@ vp->v_data = fvdat; SETPARENT(vp, (VTOI(vp) == FUSE_ROOT_INODE) ? vp : NULL); vp->v_type = vtyp; - sx_init(&fvdat->fh_lock, "lock for fuse filehandles"); - LIST_INIT(&fvdat->fh_head); + if ( +#if ROOTLESS_SHARES + 1 +#else + ! ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->share +#endif + ) { + + sx_init(&fvdat->fh_lock, "lock for fuse filehandles"); + LIST_INIT(&fvdat->fh_head); + } vp->v_bufobj.bo_ops = &fuse_bufops; vp->v_bufobj.bo_private = vp; @@ -1967,7 +2156,11 @@ * Taking down fuse_vnode_data structures is just hooked in here... * no separate destructor. */ - if (fvdat) { + if ( +#if ! ROOTLESS_SHARES + ! ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->share && +#endif + fvdat) { sx_destroy(&fvdat->fh_lock); FREE(fvdat, M_FUSEFS); } @@ -2143,6 +2336,15 @@ struct fuse_dispatcher fdi; int err = 0; +#if ! ROOTLESS_SHARES + if (VTOI(vp) == FUSE_ROOT_INODE) { + if (fmnt->share) { + fmnt = fmnt->share->master->mnt_data; + vp = fmnt->rvp; + } + } +#endif + if ((err = fdisp_simple_putget(&fdi, FUSE_GETATTR, vp, td, cred))) return (err); @@ -2160,26 +2362,34 @@ * if she is *more* privileged than the daemon. This is to * protect the power user from the daemon spying on her I/O * operations. - * Yes, it is a crude and blunt protection... - * XXX there should be a sysctl interface to this. - * Ideally not just a "daemon can spy bit", but some clever - * data which determines in a compact but flexible way whose - * daemon can spy on whom. - * (Though controlling it via a mount option seems to be good - * enough...) + * + * If a user wouldn't mind this, she can relax this check + * by doing a shared mount. */ - if (cr_candebug( + int denied; + + if ((denied = cr_candebug( #if REALTIME_TRACK_UNPRIVPROCDBG get_unprivileged_proc_debug(td), #else ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->mntopts & FUSEFS_UNPRIVPROCDBG, #endif - fusedev_get_data(fdi.fdev)->daemoncred, cred)) + fusedev_get_data(fdi.fdev)->daemoncred, cred))) { - sx_sunlock(fdi.slock); - uprintf("Your access is blocked in order to prevent the fuse daemon spying on you\n (consider mounting with \"allow_other\")\n"); - return (EPERM); + struct fuse_share *fsh; + + LIST_FOREACH(fsh, &fdi.data->fuse_shares_head, fuse_shares_link) { + if (! (denied = (fsh->uid != cred->cr_uid))) + break; + } + + if (denied) { + sx_sunlock(fdi.slock); + uprintf("Your access is blocked in order to prevent the Fuse daemon spying on you.\n" + "To get further, you can do a shared mount, cf. mount_fusefs(8).\n"); + return (EPERM); + } } } sx_sunlock(fdi.slock); @@ -2751,6 +2961,23 @@ struct file *fp = NULL; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Sep 14 22:04:25 2005 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 196A416A421; Wed, 14 Sep 2005 22:04:25 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E4E7816A41F for ; Wed, 14 Sep 2005 22:04:24 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B374E43D45 for ; Wed, 14 Sep 2005 22:04:24 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8EM4Otf001033 for ; Wed, 14 Sep 2005 22:04:24 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8EM4Oln001030 for perforce@freebsd.org; Wed, 14 Sep 2005 22:04:24 GMT (envelope-from soc-chenk@freebsd.org) Date: Wed, 14 Sep 2005 22:04:24 GMT Message-Id: <200509142204.j8EM4Oln001030@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 83623 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, 14 Sep 2005 22:04:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=83623 Change 83623 by soc-chenk@soc-chenk_leavemealone on 2005/09/14 22:03:35 deleted reference to "configure tarball" Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/Changelog#6 edit .. //depot/projects/soc2005/fuse4bsd2/README.html#3 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/Changelog#6 (text+ko) ==== @@ -1,3 +1,6 @@ +Thu Sep 15 00:01:08 CEST 2005 at node: creo.hu, nick: csaba + * deleted reference to "configure tarball" + Wed Sep 14 22:06:48 CEST 2005 at node: creo.hu, nick: csaba * implemented shared mounting ==== //depot/projects/soc2005/fuse4bsd2/README.html#3 (text+ko) ==== @@ -110,11 +110,6 @@

  • - If you use my configure tarball, extract it in the fuse directory. -

    -
  • -
  • -

    We will do a non-privileged install (I'd say that's easier than set up a jail), I'll use ~/meta/fuse-2.4.0-pre2 as the prefix. Configure fuse with

     ./configure --prefix ~/meta/fuse-2.4.0-pre2 --bindir=/tmp --disable-kernel-module MOUNT_FUSE_PATH=/tmp

    From owner-p4-projects@FreeBSD.ORG Thu Sep 15 09:17:11 2005 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 E785C16A428; Thu, 15 Sep 2005 09:17:10 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A127C16A429 for ; Thu, 15 Sep 2005 09:17:10 +0000 (GMT) (envelope-from soc-emennucci@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3249043D45 for ; Thu, 15 Sep 2005 09:17:10 +0000 (GMT) (envelope-from soc-emennucci@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8F9HASi051473 for ; Thu, 15 Sep 2005 09:17:10 GMT (envelope-from soc-emennucci@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8F9H9eq051470 for perforce@freebsd.org; Thu, 15 Sep 2005 09:17:10 GMT (envelope-from soc-emennucci@freebsd.org) Date: Thu, 15 Sep 2005 09:17:10 GMT Message-Id: <200509150917.j8F9H9eq051470@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-emennucci@freebsd.org using -f From: soc-emennucci To: Perforce Change Reviews Cc: Subject: PERFORCE change 83651 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, 15 Sep 2005 09:17:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=83651 Change 83651 by soc-emennucci@derceto on 2005/09/15 09:16:47 Soc final patches Affected files ... .. //depot/projects/soc2005/hybrid/a#1 add .. //depot/projects/soc2005/hybrid/hybrid-4_11.patch#1 add .. //depot/projects/soc2005/hybrid/hybrid-5_4.patch#1 add .. //depot/projects/soc2005/hybrid/hybrid-6.patch#1 add .. //depot/projects/soc2005/hybrid/nice-4_11.patch#1 add .. //depot/projects/soc2005/hybrid/nice-5_4.patch#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Sep 15 09:18:16 2005 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 4684716A421; Thu, 15 Sep 2005 09:18:16 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2028B16A41F for ; Thu, 15 Sep 2005 09:18:16 +0000 (GMT) (envelope-from soc-emennucci@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0DCF643D75 for ; Thu, 15 Sep 2005 09:18:11 +0000 (GMT) (envelope-from soc-emennucci@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8F9IBxJ051525 for ; Thu, 15 Sep 2005 09:18:11 GMT (envelope-from soc-emennucci@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8F9IBPd051522 for perforce@freebsd.org; Thu, 15 Sep 2005 09:18:11 GMT (envelope-from soc-emennucci@freebsd.org) Date: Thu, 15 Sep 2005 09:18:11 GMT Message-Id: <200509150918.j8F9IBPd051522@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-emennucci@freebsd.org using -f From: soc-emennucci To: Perforce Change Reviews Cc: Subject: PERFORCE change 83652 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, 15 Sep 2005 09:18:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=83652 Change 83652 by soc-emennucci@derceto on 2005/09/15 09:17:47 Deleted dummy file Affected files ... .. //depot/projects/soc2005/hybrid/a#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Thu Sep 15 09:48:50 2005 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 27D8716A421; Thu, 15 Sep 2005 09:48:50 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D4F1716A41F for ; Thu, 15 Sep 2005 09:48:49 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9FE3743D45 for ; Thu, 15 Sep 2005 09:48:49 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8F9mnic054074 for ; Thu, 15 Sep 2005 09:48:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8F9mnqV054071 for perforce@freebsd.org; Thu, 15 Sep 2005 09:48:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 15 Sep 2005 09:48:49 GMT Message-Id: <200509150948.j8F9mnqV054071@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 83653 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, 15 Sep 2005 09:48:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=83653 Change 83653 by rwatson@rwatson_peppercorn on 2005/09/15 09:48:05 The socket pointers in fifoinfo are not permitted to be NULL, so don't check if they are, it just confuses the fifo code more. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#14 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#14 (text+ko) ==== @@ -674,8 +674,7 @@ filetmp.f_data = fip->fi_readsock; filetmp.f_cred = cred; - if (filetmp.f_data) - revents |= soo_poll(&filetmp, levents, cred, td); + revents |= soo_poll(&filetmp, levents, cred, td); /* Reverse the above conversion. */ if ((revents & POLLINIGNEOF) && !(events & POLLINIGNEOF)) { @@ -687,9 +686,7 @@ if ((fp->f_flag & FWRITE) && levents) { filetmp.f_data = fip->fi_writesock; filetmp.f_cred = cred; - if (filetmp.f_data) { - revents |= soo_poll(&filetmp, levents, cred, td); - } + revents |= soo_poll(&filetmp, levents, cred, td); } return (revents); } From owner-p4-projects@FreeBSD.ORG Thu Sep 15 17:21:45 2005 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 C39CF16A41F; Thu, 15 Sep 2005 17:21:44 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 565D516A41F for ; Thu, 15 Sep 2005 17:21:44 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1CFA643D45 for ; Thu, 15 Sep 2005 17:21:44 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FHLiQY001523 for ; Thu, 15 Sep 2005 17:21:44 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FHLhe6001519 for perforce@freebsd.org; Thu, 15 Sep 2005 17:21:43 GMT (envelope-from jhb@freebsd.org) Date: Thu, 15 Sep 2005 17:21:43 GMT Message-Id: <200509151721.j8FHLhe6001519@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 83676 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, 15 Sep 2005 17:21:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=83676 Change 83676 by jhb@jhb_slimer on 2005/09/15 17:21:06 Use the input memory operand rather than the output one for the load instructions for clarity. Suggested by: alc Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#30 edit Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#30 (text+ko) ==== @@ -56,7 +56,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "bis %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ @@ -72,7 +72,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "bic %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ @@ -88,7 +88,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "addl %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ @@ -104,7 +104,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "subl %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ @@ -121,7 +121,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( "wmb\n" /* ensure pending writes have drained */ - "1:\tldl_l %0,%2\n\t" /* load current value, asserting lock */ + "1:\tldl_l %0,%3\n\t" /* load current value, asserting lock */ "ldiq %1,0\n\t" /* value to store */ "stl_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ @@ -139,7 +139,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "bis %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ @@ -155,7 +155,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "bic %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ @@ -171,7 +171,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "addq %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ @@ -187,7 +187,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "subq %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ @@ -204,7 +204,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( "wmb\n" /* ensure pending writes have drained */ - "1:\tldq_l %0,%2\n\t" /* load current value, asserting lock */ + "1:\tldq_l %0,%3\n\t" /* load current value, asserting lock */ "ldiq %1,0\n\t" /* value to store */ "stq_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ @@ -289,7 +289,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %4\n\t" /* load old value */ "cmpeq %0, %2, %0\n\t" /* compare */ "beq %0, 2f\n\t" /* exit if not equal */ "mov %3, %0\n\t" /* value to store */ @@ -316,7 +316,7 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %4\n\t" /* load old value */ "cmpeq %0, %2, %0\n\t" /* compare */ "beq %0, 2f\n\t" /* exit if not equal */ "mov %3, %0\n\t" /* value to store */ From owner-p4-projects@FreeBSD.ORG Thu Sep 15 18:48:32 2005 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 3169916A421; Thu, 15 Sep 2005 18:48:32 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E237D16A41F for ; Thu, 15 Sep 2005 18:48:31 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7518143D45 for ; Thu, 15 Sep 2005 18:48:31 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FImVZ4007147 for ; Thu, 15 Sep 2005 18:48:31 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FImTQQ007144 for perforce@freebsd.org; Thu, 15 Sep 2005 18:48:29 GMT (envelope-from jhb@freebsd.org) Date: Thu, 15 Sep 2005 18:48:29 GMT Message-Id: <200509151848.j8FImTQQ007144@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 83680 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, 15 Sep 2005 18:48:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=83680 Change 83680 by jhb@jhb_slimer on 2005/09/15 18:47:58 IFC @83679. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#28 integrate .. //depot/projects/smpng/sys/alpha/alpha/db_trace.c#18 integrate .. //depot/projects/smpng/sys/alpha/alpha/pmap.c#70 integrate .. //depot/projects/smpng/sys/alpha/include/param.h#14 integrate .. //depot/projects/smpng/sys/alpha/include/vmparam.h#6 integrate .. //depot/projects/smpng/sys/amd64/acpica/OsdEnvironment.c#6 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#9 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#4 integrate .. //depot/projects/smpng/sys/amd64/acpica/madt.c#7 integrate .. //depot/projects/smpng/sys/amd64/amd64/db_trace.c#14 integrate .. //depot/projects/smpng/sys/amd64/amd64/exception.S#16 integrate .. //depot/projects/smpng/sys/amd64/amd64/genassym.c#14 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#45 integrate .. //depot/projects/smpng/sys/amd64/amd64/trap.c#30 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#36 integrate .. //depot/projects/smpng/sys/amd64/conf/NOTES#20 integrate .. //depot/projects/smpng/sys/arm/arm/db_trace.c#13 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#19 integrate .. //depot/projects/smpng/sys/boot/forth/loader.conf#37 integrate .. //depot/projects/smpng/sys/boot/pc98/Makefile.inc#4 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/io.c#7 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/comconsole.c#4 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#41 integrate .. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#29 integrate .. //depot/projects/smpng/sys/conf/Makefile.amd64#11 integrate .. //depot/projects/smpng/sys/conf/Makefile.powerpc#30 integrate .. //depot/projects/smpng/sys/conf/NOTES#102 integrate .. //depot/projects/smpng/sys/conf/files#148 integrate .. //depot/projects/smpng/sys/conf/files.amd64#35 integrate .. //depot/projects/smpng/sys/conf/files.ia64#51 integrate .. //depot/projects/smpng/sys/conf/kern.post.mk#47 integrate .. //depot/projects/smpng/sys/conf/kern.pre.mk#47 integrate .. //depot/projects/smpng/sys/conf/kmod.mk#48 integrate .. //depot/projects/smpng/sys/contrib/dev/nve/amd64/nvenetlib.README#1 branch .. //depot/projects/smpng/sys/contrib/dev/nve/i386/nvenetlib.README#1 branch .. //depot/projects/smpng/sys/contrib/pf/net/if_pfsync.c#16 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf.c#19 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#15 integrate .. //depot/projects/smpng/sys/ddb/db_watch.c#6 integrate .. //depot/projects/smpng/sys/ddb/ddb.h#16 integrate .. //depot/projects/smpng/sys/dev/aac/aac.c#50 integrate .. //depot/projects/smpng/sys/dev/aac/aac_cam.c#16 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_asus.c#6 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_fujitsu.c#3 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_ibm.c#6 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_panasonic.c#4 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_sony.c#4 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_toshiba.c#4 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdDebug.c#10 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdHardware.c#17 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdInterrupt.c#15 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdMemory.c#9 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdSchedule.c#26 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdStream.c#6 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdSynch.c#17 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdTable.c#10 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#86 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_acad.c#24 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_battery.c#15 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_button.c#18 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cmbat.c#27 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cpu.c#34 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_ec.c#39 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_if.m#8 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_isab.c#8 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_lid.c#16 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_package.c#7 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci.c#18 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#29 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#32 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib_acpi.c#19 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib_pci.c#10 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_perf.c#7 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_powerres.c#21 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_quirk.c#3 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_resource.c#27 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#35 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_throttle.c#5 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_timer.c#22 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_video.c#9 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#73 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#56 integrate .. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#30 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#34 integrate .. //depot/projects/smpng/sys/dev/ata/ata-queue.c#28 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.c#37 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.h#21 integrate .. //depot/projects/smpng/sys/dev/bge/if_bge.c#58 integrate .. //depot/projects/smpng/sys/dev/cp/if_cp.c#14 integrate .. //depot/projects/smpng/sys/dev/ctau/if_ct.c#16 integrate .. //depot/projects/smpng/sys/dev/cx/if_cx.c#20 integrate .. //depot/projects/smpng/sys/dev/digi/digi.c#29 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed.c#33 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_3c503.c#3 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_cbus.c#14 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_hpp.c#3 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_isa.c#11 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_novell.c#3 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#32 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_pci.c#12 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_sic.c#3 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_wd80x3.c#3 integrate .. //depot/projects/smpng/sys/dev/ed/if_edreg.h#6 integrate .. //depot/projects/smpng/sys/dev/ed/if_edvar.h#11 integrate .. //depot/projects/smpng/sys/dev/em/if_em.c#50 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep_eisa.c#12 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep_pccard.c#21 integrate .. //depot/projects/smpng/sys/dev/ex/if_ex_pccard.c#12 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc.c#19 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc_acpi.c#7 integrate .. //depot/projects/smpng/sys/dev/gem/if_gem.c#24 integrate .. //depot/projects/smpng/sys/dev/hme/if_hme.c#26 integrate .. //depot/projects/smpng/sys/dev/hptmv/access601.h#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/amd64-elf.raid.o.uu#1 branch .. //depot/projects/smpng/sys/dev/hptmv/array.h#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/atapi.h#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/command.h#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/entry.c#7 integrate .. //depot/projects/smpng/sys/dev/hptmv/global.h#4 integrate .. //depot/projects/smpng/sys/dev/hptmv/gui_lib.c#4 integrate .. //depot/projects/smpng/sys/dev/hptmv/hptintf.h#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/hptproc.c#5 integrate .. //depot/projects/smpng/sys/dev/hptmv/i386-elf.raid.o.uu#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/ioctl.c#4 integrate .. //depot/projects/smpng/sys/dev/hptmv/mv.c#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/mvOs.h#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/mvSata.h#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/mvStorageDev.h#4 integrate .. //depot/projects/smpng/sys/dev/hptmv/osbsd.h#4 integrate .. //depot/projects/smpng/sys/dev/hptmv/raid5n.h#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/readme.txt#3 integrate .. //depot/projects/smpng/sys/dev/hptmv/vdevice.h#3 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_amd.c#6 integrate .. //depot/projects/smpng/sys/dev/ieee488/tnt4882.c#1 branch .. //depot/projects/smpng/sys/dev/ieee488/upd7210.c#5 integrate .. //depot/projects/smpng/sys/dev/ieee488/upd7210.h#4 integrate .. //depot/projects/smpng/sys/dev/md/md.c#67 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#15 integrate .. //depot/projects/smpng/sys/dev/pccard/card_if.m#15 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard.c#38 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard_cis.c#22 integrate .. //depot/projects/smpng/sys/dev/pccard/pccarddevs#50 integrate .. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#24 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#50 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#59 integrate .. //depot/projects/smpng/sys/dev/pci/pci_pci.c#26 integrate .. //depot/projects/smpng/sys/dev/pci/pcivar.h#15 integrate .. //depot/projects/smpng/sys/dev/sn/if_sn_pccard.c#19 integrate .. //depot/projects/smpng/sys/dev/sound/isa/mss.c#25 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sb16.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/pci/csapcm.c#14 integrate .. //depot/projects/smpng/sys/dev/sound/pci/maestro3.c#22 integrate .. //depot/projects/smpng/sys/dev/sound/pci/neomagic.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#27 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.h#9 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#31 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.h#12 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#27 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/fake.c#7 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder.c#12 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_fmt.c#12 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sndstat.c#17 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.c#27 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#22 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/vchan.c#11 integrate .. //depot/projects/smpng/sys/dev/sound/usb/uaudio.c#7 integrate .. //depot/projects/smpng/sys/dev/syscons/scmouse.c#12 integrate .. //depot/projects/smpng/sys/dev/syscons/scvesactl.c#6 integrate .. //depot/projects/smpng/sys/dev/syscons/scvidctl.c#9 integrate .. //depot/projects/smpng/sys/dev/syscons/syscons.c#50 integrate .. //depot/projects/smpng/sys/dev/syscons/syscons.h#13 integrate .. //depot/projects/smpng/sys/dev/twa/tw_osl_cam.c#4 integrate .. //depot/projects/smpng/sys/dev/twa/tw_osl_freebsd.c#2 integrate .. //depot/projects/smpng/sys/dev/twa/tw_osl_includes.h#2 integrate .. //depot/projects/smpng/sys/dev/twa/tw_osl_ioctl.h#2 integrate .. //depot/projects/smpng/sys/dev/twa/tw_osl_share.h#3 integrate .. //depot/projects/smpng/sys/dev/txp/if_txp.c#27 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#78 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi.c#75 integrate .. //depot/projects/smpng/sys/dev/xe/if_xe_pccard.c#22 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs.h#15 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_devs.c#19 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_rule.c#12 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#50 integrate .. //depot/projects/smpng/sys/fs/fifofs/fifo_vnops.c#35 integrate .. //depot/projects/smpng/sys/fs/hpfs/hpfs_vfsops.c#29 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_denode.c#24 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vfsops.c#42 integrate .. //depot/projects/smpng/sys/fs/ntfs/ntfs.h#9 integrate .. //depot/projects/smpng/sys/fs/ntfs/ntfs_vfsops.c#30 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_vnops.c#24 integrate .. //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#22 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli.c#4 integrate .. //depot/projects/smpng/sys/geom/geom.h#44 integrate .. //depot/projects/smpng/sys/geom/geom_event.c#32 integrate .. //depot/projects/smpng/sys/geom/geom_io.c#38 integrate .. //depot/projects/smpng/sys/geom/geom_slice.c#32 integrate .. //depot/projects/smpng/sys/geom/label/g_label_ntfs.c#2 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_init.c#10 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_rm.c#7 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_vfsops.c#3 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/fs.h#2 integrate .. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#2 integrate .. //depot/projects/smpng/sys/i386/acpica/OsdEnvironment.c#9 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_machdep.c#22 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_wakeup.c#32 integrate .. //depot/projects/smpng/sys/i386/acpica/madt.c#13 integrate .. //depot/projects/smpng/sys/i386/conf/PAE#15 integrate .. //depot/projects/smpng/sys/i386/i386/db_trace.c#26 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#85 integrate .. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#44 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#71 integrate .. //depot/projects/smpng/sys/i386/include/pcb_ext.h#5 integrate .. //depot/projects/smpng/sys/i386/include/ucontext.h#8 integrate .. //depot/projects/smpng/sys/i386/pci/pci_pir.c#10 integrate .. //depot/projects/smpng/sys/ia64/acpica/OsdEnvironment.c#9 integrate .. //depot/projects/smpng/sys/ia64/acpica/acpi_machdep.c#6 integrate .. //depot/projects/smpng/sys/ia64/acpica/acpi_wakeup.c#3 integrate .. //depot/projects/smpng/sys/ia64/acpica/madt.c#13 integrate .. //depot/projects/smpng/sys/ia64/conf/GENERIC#45 integrate .. //depot/projects/smpng/sys/ia64/ia32/ia32_reg.c#2 integrate .. //depot/projects/smpng/sys/ia64/ia32/ia32_signal.c#2 integrate .. //depot/projects/smpng/sys/ia64/ia32/ia32_sigtramp.c#2 delete .. //depot/projects/smpng/sys/ia64/ia64/db_interface.c#21 delete .. //depot/projects/smpng/sys/ia64/ia64/db_machdep.c#1 branch .. //depot/projects/smpng/sys/ia64/ia64/db_trace.c#22 delete .. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#31 integrate .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#96 integrate .. //depot/projects/smpng/sys/ia64/ia64/mp_machdep.c#31 integrate .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#72 integrate .. //depot/projects/smpng/sys/ia64/ia64/trap.c#76 integrate .. //depot/projects/smpng/sys/ia64/ia64/vm_machdep.c#50 integrate .. //depot/projects/smpng/sys/ia64/include/param.h#17 integrate .. //depot/projects/smpng/sys/ia64/include/pmap.h#22 integrate .. //depot/projects/smpng/sys/ia64/include/vmparam.h#10 integrate .. //depot/projects/smpng/sys/kern/imgact_elf.c#45 integrate .. //depot/projects/smpng/sys/kern/init_main.c#56 integrate .. //depot/projects/smpng/sys/kern/kern_acl.c#24 integrate .. //depot/projects/smpng/sys/kern/kern_conf.c#41 integrate .. //depot/projects/smpng/sys/kern/kern_cpu.c#6 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#99 integrate .. //depot/projects/smpng/sys/kern/kern_kse.c#24 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#43 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#104 integrate .. //depot/projects/smpng/sys/kern/kern_poll.c#17 integrate .. //depot/projects/smpng/sys/kern/kern_shutdown.c#60 integrate .. //depot/projects/smpng/sys/kern/kern_tc.c#32 integrate .. //depot/projects/smpng/sys/kern/kern_timeout.c#25 integrate .. //depot/projects/smpng/sys/kern/link_elf.c#27 integrate .. //depot/projects/smpng/sys/kern/link_elf_obj.c#6 integrate .. //depot/projects/smpng/sys/kern/subr_prf.c#40 integrate .. //depot/projects/smpng/sys/kern/subr_stack.c#2 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#137 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#38 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#73 integrate .. //depot/projects/smpng/sys/kern/vfs_hash.c#3 integrate .. //depot/projects/smpng/sys/kern/vfs_lookup.c#30 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#50 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#109 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#92 integrate .. //depot/projects/smpng/sys/modules/Makefile#104 integrate .. //depot/projects/smpng/sys/modules/de/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/hptmv/Makefile#3 integrate .. //depot/projects/smpng/sys/net/bpf.c#56 integrate .. //depot/projects/smpng/sys/net/bpfdesc.h#14 integrate .. //depot/projects/smpng/sys/net/if.c#73 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#9 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#63 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#38 integrate .. //depot/projects/smpng/sys/net/if_vlan_var.h#14 integrate .. //depot/projects/smpng/sys/net/route.h#22 integrate .. //depot/projects/smpng/sys/net/rtsock.c#49 integrate .. //depot/projects/smpng/sys/net/zlib.c#10 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#20 integrate .. //depot/projects/smpng/sys/netatalk/at_proto.c#3 integrate .. //depot/projects/smpng/sys/netatalk/ddp_output.c#11 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/include/ng_l2cap.h#4 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/l2cap/ng_l2cap_cmds.c#6 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c#11 integrate .. //depot/projects/smpng/sys/netgraph/netgraph.h#22 integrate .. //depot/projects/smpng/sys/netgraph/ng_base.c#39 integrate .. //depot/projects/smpng/sys/netgraph/ng_ksocket.c#28 integrate .. //depot/projects/smpng/sys/netgraph/ng_pptpgre.c#17 integrate .. //depot/projects/smpng/sys/netgraph/ng_socket.c#33 integrate .. //depot/projects/smpng/sys/netgraph/ng_split.c#7 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#38 integrate .. //depot/projects/smpng/sys/netinet/ip_carp.c#11 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#58 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#70 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#76 integrate .. //depot/projects/smpng/sys/netinet/tcp_subr.c#72 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.c#41 integrate .. //depot/projects/smpng/sys/netinet6/in6.c#28 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#15 integrate .. //depot/projects/smpng/sys/netinet6/in6_pcb.c#38 integrate .. //depot/projects/smpng/sys/netinet6/in6_var.h#14 integrate .. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#21 integrate .. //depot/projects/smpng/sys/netinet6/ip6_output.c#42 integrate .. //depot/projects/smpng/sys/netinet6/mld6.c#14 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#28 integrate .. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#18 integrate .. //depot/projects/smpng/sys/netipx/ipx_proto.c#6 integrate .. //depot/projects/smpng/sys/netnatm/natm_proto.c#14 integrate .. //depot/projects/smpng/sys/pc98/cbus/fdc.c#2 integrate .. //depot/projects/smpng/sys/pc98/cbus/gdc.c#2 integrate .. //depot/projects/smpng/sys/pc98/cbus/nmi.c#2 integrate .. //depot/projects/smpng/sys/pc98/cbus/sio.c#2 integrate .. //depot/projects/smpng/sys/pc98/pc98/epsonio.h#3 delete .. //depot/projects/smpng/sys/pc98/pc98/machdep.c#4 integrate .. //depot/projects/smpng/sys/pc98/pc98/pc98_machdep.c#5 integrate .. //depot/projects/smpng/sys/pc98/pc98/pc98_machdep.h#4 integrate .. //depot/projects/smpng/sys/pci/if_dc.c#69 integrate .. //depot/projects/smpng/sys/pci/if_pcn.c#35 integrate .. //depot/projects/smpng/sys/pci/if_rl.c#57 integrate .. //depot/projects/smpng/sys/pci/if_ste.c#38 integrate .. //depot/projects/smpng/sys/pci/if_stereg.h#10 integrate .. //depot/projects/smpng/sys/pci/if_tl.c#28 integrate .. //depot/projects/smpng/sys/pci/if_tlreg.h#6 integrate .. //depot/projects/smpng/sys/pci/if_wb.c#31 integrate .. //depot/projects/smpng/sys/pci/if_wbreg.h#5 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/db_hwwatch.c#3 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/pmap.c#56 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/db_hwwatch.c#6 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#60 integrate .. //depot/projects/smpng/sys/sys/acl.h#11 integrate .. //depot/projects/smpng/sys/sys/buf.h#39 integrate .. //depot/projects/smpng/sys/sys/callout.h#10 integrate .. //depot/projects/smpng/sys/sys/conf.h#43 integrate .. //depot/projects/smpng/sys/sys/filedesc.h#28 integrate .. //depot/projects/smpng/sys/sys/iconv.h#11 integrate .. //depot/projects/smpng/sys/sys/kernel.h#32 integrate .. //depot/projects/smpng/sys/sys/ktr.h#22 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#53 integrate .. //depot/projects/smpng/sys/sys/stack.h#2 integrate .. //depot/projects/smpng/sys/sys/sx.h#16 integrate .. //depot/projects/smpng/sys/sys/vnode.h#66 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_rawread.c#16 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#48 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#75 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#52 integrate .. //depot/projects/smpng/sys/vm/pmap.h#27 integrate .. //depot/projects/smpng/sys/vm/uma_core.c#58 integrate .. //depot/projects/smpng/sys/vm/vm_fault.c#50 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#74 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#28 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.51 2005/05/25 07:25:12 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.52 2005/09/15 17:09:42 jhb Exp $"); #include #include @@ -891,6 +891,10 @@ } } } + + /* Ensure any pending writes have drained. */ + if (op & (BUS_DMASYNC_PREWRITE)) + alpha_mb(); } static void ==== //depot/projects/smpng/sys/alpha/alpha/db_trace.c#18 (text+ko) ==== @@ -42,7 +42,7 @@ #include /* RCS ID & Copyright macro defns */ /*__KERNEL_RCSID(0, "$NetBSD: db_trace.c,v 1.9 2000/12/13 03:16:36 mycroft Exp $");*/ -__FBSDID("$FreeBSD: src/sys/alpha/alpha/db_trace.c,v 1.24 2005/08/03 04:27:38 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/db_trace.c,v 1.25 2005/09/10 03:01:23 marcel Exp $"); #include #include @@ -100,11 +100,6 @@ }; -int db_md_set_watchpoint(db_expr_t addr, db_expr_t size); -int db_md_clr_watchpoint(db_expr_t addr, db_expr_t size); -void db_md_list_watchpoints(void); - - /* * Decode the function prologue for the function we're in, and note * which registers are stored where, and how large the stack frame is. ==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#70 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.178 2005/06/10 03:33:35 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.179 2005/09/03 18:20:18 alc Exp $"); #include #include @@ -1787,12 +1787,12 @@ * 2. Not wired. * 3. Read access. * 4. No page table pages. - * 6. Page IS managed. * but is *MUCH* faster than pmap_enter... */ vm_page_t -pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) +pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, + vm_page_t mpte) { register pt_entry_t *pte; int managed; ==== //depot/projects/smpng/sys/alpha/include/param.h#14 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/param.h,v 1.38 2005/01/05 20:05:50 imp Exp $ */ +/* $FreeBSD: src/sys/alpha/include/param.h,v 1.39 2005/09/11 20:51:14 alc Exp $ */ /* From: NetBSD: param.h,v 1.20 1997/09/19 13:52:53 leo Exp */ /*- @@ -106,13 +106,6 @@ #define KERNBASE 0xfffffc0000300000LL /* start of kernel virtual */ #define BTOPKERNBASE ((u_long)KERNBASE >> PGSHIFT) -#define CLSIZE 1 -#define CLSIZELOG2 0 - -/* NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE */ -#define SSIZE 1 /* initial stack size/NBPG */ -#define SINCR 1 /* increment of stack/NBPG */ - #ifndef KSTACK_PAGES #define KSTACK_PAGES 2 /* pages of kstack (with pcb) */ #endif ==== //depot/projects/smpng/sys/alpha/include/vmparam.h#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/vmparam.h,v 1.10 2005/01/05 20:05:50 imp Exp $ */ +/* $FreeBSD: src/sys/alpha/include/vmparam.h,v 1.11 2005/09/11 20:51:14 alc Exp $ */ /* From: NetBSD: vmparam.h,v 1.6 1997/09/23 23:23:23 mjacob Exp */ #ifndef _ALPHA_VMPARAM_H #define _ALPHA_VMPARAM_H @@ -118,7 +118,7 @@ * by the page replacement algorithm. Basically this says that if you are * swapped in you deserve some resources. We protect the last SAFERSS * pages against paging and will just swap you out rather than paging you. - * Note that each process has at least UPAGES+CLSIZE pages which are not + * Note that each process has at least UPAGES pages which are not * paged anyways, in addition to SAFERSS. */ #define SAFERSS 10 /* nominal ``small'' resident set size ==== //depot/projects/smpng/sys/amd64/acpica/OsdEnvironment.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/OsdEnvironment.c,v 1.12 2004/05/06 02:18:57 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/OsdEnvironment.c,v 1.13 2005/09/11 18:39:00 obrien Exp $"); /* * 6.1 : Environmental support @@ -35,7 +35,7 @@ #include #include -#include "acpi.h" +#include static u_long amd64_acpi_root; ==== //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#9 (text+ko) ==== @@ -25,12 +25,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.16 2004/10/11 05:39:14 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.17 2005/09/11 18:39:00 obrien Exp $"); #include #include -#include "acpi.h" +#include #include static int intr_model = ACPI_INTR_PIC; ==== //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#4 (text+ko) ==== @@ -26,12 +26,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.21 2003/08/28 16:30:31 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.22 2005/09/11 18:39:00 obrien Exp $"); #include #include -#include "acpi.h" +#include #include int ==== //depot/projects/smpng/sys/amd64/acpica/madt.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.16 2005/04/15 18:44:53 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.17 2005/09/11 18:39:00 obrien Exp $"); #include #include @@ -48,7 +48,7 @@ #include #include -#include "acpi.h" +#include #include #include #include ==== //depot/projects/smpng/sys/amd64/amd64/db_trace.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.68 2005/08/03 04:33:48 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.70 2005/09/10 03:01:24 marcel Exp $"); #include #include @@ -202,9 +202,6 @@ int amd64_set_watch(int watchnum, unsigned int watchaddr, int size, int access, struct dbreg * d); int amd64_clr_watch(int watchnum, struct dbreg * d); -int db_md_set_watchpoint(db_expr_t addr, db_expr_t size); -int db_md_clr_watchpoint(db_expr_t addr, db_expr_t size); -void db_md_list_watchpoints(void); /* * Figure out how many arguments were passed into the frame at "fp". @@ -317,7 +314,8 @@ db_symbol_values(sym, &name, NULL); if (name != NULL) { if (strcmp(name, "calltrap") == 0 || - strcmp(name, "fork_trampoline") == 0) + strcmp(name, "fork_trampoline") == 0 || + strcmp(name, "nmi_calltrap") == 0) frame_type = TRAP; else if (strncmp(name, "Xatpic_intr", 11) == 0 || strncmp(name, "Xatpic_fastintr", 15) == 0 || ==== //depot/projects/smpng/sys/amd64/amd64/exception.S#16 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.126 2005/08/25 20:33:43 ups Exp $ + * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.127 2005/08/27 16:03:40 jkoshy Exp $ */ #include "opt_atpic.h" @@ -93,8 +93,6 @@ jmp alltraps IDTVEC(div) TRAP(T_DIVIDE) -IDTVEC(nmi) - TRAP_NOEN(T_NMI) IDTVEC(ofl) TRAP(T_OFLOW) IDTVEC(bnd) @@ -313,6 +311,82 @@ IDTVEC(fast_syscall32) sysret +/* + * NMI handling is special. + * + * First, NMIs do not respect the state of the processor's RFLAGS.IF + * bit and the NMI handler may be invoked at any time, including when + * the processor is in a critical section with RFLAGS.IF == 0. In + * particular, this means that the processor's GS.base values could be + * inconsistent on entry to the handler, and so we need to read + * MSR_GSBASE to determine if a 'swapgs' is needed. We use '%ebx', a + * C-preserved register, to remember whether to swap GS back on the + * exit path. + * + * Second, the processor treats NMIs specially, blocking further NMIs + * until an 'iretq' instruction is executed. We therefore need to + * execute the NMI handler with interrupts disabled to prevent a + * nested interrupt from executing an 'iretq' instruction and + * inadvertently taking the processor out of NMI mode. + */ + +IDTVEC(nmi) + subq $TF_RIP,%rsp + movq $(T_NMI),TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + movq %rdi,TF_RDI(%rsp) + movq %rsi,TF_RSI(%rsp) + movq %rdx,TF_RDX(%rsp) + movq %rcx,TF_RCX(%rsp) + movq %r8,TF_R8(%rsp) + movq %r9,TF_R9(%rsp) + movq %rax,TF_RAX(%rsp) + movq %rbx,TF_RBX(%rsp) + movq %rbp,TF_RBP(%rsp) + movq %r10,TF_R10(%rsp) + movq %r11,TF_R11(%rsp) + movq %r12,TF_R12(%rsp) + movq %r13,TF_R13(%rsp) + movq %r14,TF_R14(%rsp) + movq %r15,TF_R15(%rsp) + xorl %ebx,%ebx + testb $SEL_RPL_MASK,TF_CS(%rsp) + jnz nmi_needswapgs /* we came from userland */ + movl $MSR_GSBASE,%ecx + rdmsr + cmpl $VM_MAXUSER_ADDRESS >> 32,%edx + jae nmi_calltrap /* GS.base holds a kernel VA */ +nmi_needswapgs: + incl %ebx + swapgs +/* Note: this label is also used by ddb and gdb: */ +nmi_calltrap: + FAKE_MCOUNT(TF_RIP(%rsp)) + call trap + MEXITCOUNT + testl %ebx,%ebx + jz nmi_restoreregs + swapgs +nmi_restoreregs: + movq TF_RDI(%rsp),%rdi + movq TF_RSI(%rsp),%rsi + movq TF_RDX(%rsp),%rdx + movq TF_RCX(%rsp),%rcx + movq TF_R8(%rsp),%r8 + movq TF_R9(%rsp),%r9 + movq TF_RAX(%rsp),%rax + movq TF_RBX(%rsp),%rbx + movq TF_RBP(%rsp),%rbp + movq TF_R10(%rsp),%r10 + movq TF_R11(%rsp),%r11 + movq TF_R12(%rsp),%r12 + movq TF_R13(%rsp),%r13 + movq TF_R14(%rsp),%r14 + movq TF_R15(%rsp),%r15 + addq $TF_RIP,%rsp + iretq + ENTRY(fork_trampoline) movq %r12, %rdi /* function */ movq %rbx, %rsi /* arg1 */ ==== //depot/projects/smpng/sys/amd64/amd64/genassym.c#14 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.155 2004/11/20 02:30:59 das Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.156 2005/08/27 16:03:40 jkoshy Exp $"); #include "opt_compat.h" #include "opt_kstack_pages.h" @@ -209,3 +209,5 @@ ASSYM(MTX_LOCK, offsetof(struct mtx, mtx_lock)); ASSYM(MTX_RECURSECNT, offsetof(struct mtx, mtx_recurse)); + +ASSYM(MSR_GSBASE, MSR_GSBASE); ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#45 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.526 2005/08/26 05:18:46 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.528 2005/09/04 19:06:26 alc Exp $"); /* * Manages physical address maps. @@ -1872,6 +1872,7 @@ vm_paddr_t opa; pt_entry_t origpte, newpte; vm_page_t mpte, om; + boolean_t invlva; va = trunc_page(va); #ifdef PMAP_DIAGNOSTIC @@ -1935,14 +1936,6 @@ else if (!wired && (origpte & PG_W)) pmap->pm_stats.wired_count--; -#if defined(PMAP_DIAGNOSTIC) - if (pmap_nw_modified((pt_entry_t) origpte)) { - printf( - "pmap_enter: modified page not writable: va: 0x%lx, pte: 0x%lx\n", - va, origpte); - } -#endif - /* * Remove extra pte reference */ @@ -2014,17 +2007,30 @@ * to update the pte. */ if ((origpte & ~(PG_M|PG_A)) != newpte) { - if (origpte & PG_MANAGED) { + if (origpte & PG_V) { + invlva = FALSE; origpte = pte_load_store(pte, newpte | PG_A); - if ((origpte & PG_M) && pmap_track_modified(va)) - vm_page_dirty(om); - if (origpte & PG_A) - vm_page_flag_set(om, PG_REFERENCED); + if (origpte & PG_A) { + if (origpte & PG_MANAGED) + vm_page_flag_set(om, PG_REFERENCED); + if (opa != VM_PAGE_TO_PHYS(m) || ((origpte & + PG_NX) == 0 && (newpte & PG_NX))) + invlva = TRUE; + } + if (origpte & PG_M) { + KASSERT((origpte & PG_RW), + ("pmap_enter: modified page not writable:" + " va: 0x%lx, pte: 0x%lx", va, origpte)); + if ((origpte & PG_MANAGED) && + pmap_track_modified(va)) + vm_page_dirty(om); + if ((newpte & PG_RW) == 0) + invlva = TRUE; + } + if (invlva) + pmap_invalidate_page(pmap, va); } else pte_store(pte, newpte | PG_A); - if (origpte) { - pmap_invalidate_page(pmap, va); - } } vm_page_unlock_queues(); PMAP_UNLOCK(pmap); @@ -2036,12 +2042,12 @@ * 2. Not wired. * 3. Read access. * 4. No page table pages. - * 6. Page IS managed. * but is *MUCH* faster than pmap_enter... */ vm_page_t -pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) +pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, + vm_page_t mpte) { pt_entry_t *pte; vm_paddr_t pa; @@ -2130,6 +2136,8 @@ pmap->pm_stats.resident_count++; pa = VM_PAGE_TO_PHYS(m); + if ((prot & VM_PROT_EXECUTE) == 0) + pa |= pg_nx; /* * Now validate mapping with RO protection ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#30 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.289 2005/06/29 23:23:16 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.290 2005/08/27 16:03:40 jkoshy Exp $"); /* * AMD64 Trap and System call handling @@ -210,7 +210,8 @@ printf( "pid %ld (%s): trap %d with interrupts disabled\n", (long)curproc->p_pid, curproc->p_comm, type); - else if (type != T_BPTFLT && type != T_TRCTRAP) { + else if (type != T_NMI && type != T_BPTFLT && + type != T_TRCTRAP) { /* * XXX not quite right, since this may be for a * multiple fault in user mode. ==== //depot/projects/smpng/sys/amd64/conf/GENERIC#36 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.441 2005/07/24 17:55:57 mux Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.442 2005/09/08 03:29:18 scottl Exp $ machine amd64 cpu HAMMER @@ -130,6 +130,7 @@ device arcmsr # Areca SATA II RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options +device hptmv # Highpoint RocketRAID 182x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID ==== //depot/projects/smpng/sys/amd64/conf/NOTES#20 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.41 2005/07/22 16:02:40 ru Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.42 2005/09/08 03:29:18 scottl Exp $ # # @@ -278,7 +278,7 @@ # # Highpoint RocketRAID 182x. This is really just software RAID on a # Marvell SATA chip. -#device hptmv # Broken, i386-only binary. +device hptmv # # IBM (now Adaptec) ServeRAID controllers ==== //depot/projects/smpng/sys/arm/arm/db_trace.c#13 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/db_trace.c,v 1.11 2005/08/03 04:27:38 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/db_trace.c,v 1.12 2005/09/10 03:01:24 marcel Exp $"); #include #include @@ -51,9 +51,6 @@ #define INKERNEL(va) (((vm_offset_t)(va)) >= VM_MIN_KERNEL_ADDRESS) -int db_md_set_watchpoint(db_expr_t addr, db_expr_t size); -int db_md_clr_watchpoint(db_expr_t addr, db_expr_t size); -void db_md_list_watchpoints(void); /* * APCS stack frames are awkward beasts, so I don't think even trying to use * a structure to represent them is a good idea. ==== //depot/projects/smpng/sys/arm/arm/pmap.c#19 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.36 2005/06/23 11:37:41 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.37 2005/09/03 18:20:18 alc Exp $"); #include #include #include @@ -3536,19 +3536,19 @@ * 2. Not wired. * 3. Read access. * 4. No page table pages. - * 6. Page IS managed. * but is *MUCH* faster than pmap_enter... */ vm_page_t -pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) +pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, + vm_page_t mpte) { vm_page_busy(m); vm_page_unlock_queues(); VM_OBJECT_UNLOCK(m->object); mtx_lock(&Giant); - pmap_enter(pmap, va, m, VM_PROT_READ|VM_PROT_EXECUTE, FALSE); + pmap_enter(pmap, va, m, prot & (VM_PROT_READ | VM_PROT_EXECUTE), FALSE); pmap_idcache_wbinv_all(pmap); mtx_unlock(&Giant); VM_OBJECT_LOCK(m->object); ==== //depot/projects/smpng/sys/boot/forth/loader.conf#37 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.99 2005/08/18 01:39:43 iedowse Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.100 2005/08/31 10:51:55 glebius Exp $ ############################################################## ### Basic configuration options ############################ @@ -108,7 +108,6 @@ #debug.ktr.mask="0x1200" # Bitmask of KTR events to enable #debug.ktr.verbose="1" # Enable console dump of KTR events #net.graph.maxalloc="128" # Maximum number of queue items to allocate -#net.graph.ngqfreemax="64" # Maximum number of free queue items to cache ############################################################## ==== //depot/projects/smpng/sys/boot/pc98/Makefile.inc#4 (text+ko) ==== @@ -1,11 +1,12 @@ # Common defines for all of /sys/boot/pc98/ # -# $FreeBSD: src/sys/boot/pc98/Makefile.inc,v 1.5 2004/02/09 16:01:44 nyan Exp $ +# $FreeBSD: src/sys/boot/pc98/Makefile.inc,v 1.6 2005/09/13 08:27:38 nyan Exp $ BINDIR?= /boot LOADER_ADDRESS?=0x100000 -CFLAGS+= -ffreestanding -mpreferred-stack-boundary=2 +CFLAGS+= -ffreestanding -mpreferred-stack-boundary=2 \ + -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 LDFLAGS+= -nostdlib # BTX components ==== //depot/projects/smpng/sys/boot/pc98/boot2/io.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/io.c,v 1.8 2005/05/10 12:02:14 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/io.c,v 1.9 2005/09/14 12:39:06 nyan Exp $"); #include "boot.h" #include @@ -354,7 +354,6 @@ int ret; int i; int data = 0; - u_char epson_machine_id = *(unsigned char *)V(0xA1624); /* PC98_SYSTEM_PARAMETER(0x501) */ ret = ((*(unsigned char*)V(0xA1501)) & 0x08) >> 3; @@ -390,18 +389,8 @@ } else { ret |= M_NOT_H98; } - } else { + } else ret |= M_NOT_H98; - switch (epson_machine_id) { - case 0x20: /* note A */ - case 0x22: /* note W */ - case 0x27: /* note AE */ - case 0x2a: /* note WR */ - ret |= M_NOTE; - break; - default: - break; - } - } + (*(unsigned long *)V(0xA1620)) = ret; } ==== //depot/projects/smpng/sys/boot/pc98/libpc98/comconsole.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Sep 15 19:17:28 2005 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 32BF316A421; Thu, 15 Sep 2005 19:17:28 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0768016A41F for ; Thu, 15 Sep 2005 19:17:28 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B4CB743D45 for ; Thu, 15 Sep 2005 19:17:27 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FJHRah008748 for ; Thu, 15 Sep 2005 19:17:27 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FJHRVq008745 for perforce@freebsd.org; Thu, 15 Sep 2005 19:17:27 GMT (envelope-from jhb@freebsd.org) Date: Thu, 15 Sep 2005 19:17:27 GMT Message-Id: <200509151917.j8FJHRVq008745@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 83686 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, 15 Sep 2005 19:17:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=83686 Change 83686 by jhb@jhb_slimer on 2005/09/15 19:16:44 Fix one more case of using the input memory operand for a read. Affected files ... .. //depot/projects/smpng/sys/i386/include/atomic.h#43 edit Differences ... ==== //depot/projects/smpng/sys/i386/include/atomic.h#43 (text+ko) ==== @@ -121,7 +121,7 @@ __asm __volatile( " pushfl ; " " cli ; " - " cmpl %0,%2 ; " + " cmpl %0,%3 ; " " jne 1f ; " " movl %2,%1 ; " "1: " From owner-p4-projects@FreeBSD.ORG Thu Sep 15 19:33:49 2005 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 3A68216A421; Thu, 15 Sep 2005 19:33:49 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1544F16A41F for ; Thu, 15 Sep 2005 19:33:49 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D7C2F43D45 for ; Thu, 15 Sep 2005 19:33:48 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FJXmau009578 for ; Thu, 15 Sep 2005 19:33:48 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FJXmC2009575 for perforce@freebsd.org; Thu, 15 Sep 2005 19:33:48 GMT (envelope-from jhb@freebsd.org) Date: Thu, 15 Sep 2005 19:33:48 GMT Message-Id: <200509151933.j8FJXmC2009575@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 83689 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, 15 Sep 2005 19:33:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=83689 Change 83689 by jhb@jhb_slimer on 2005/09/15 19:33:21 Updates. Affected files ... .. //depot/projects/smpng/sys/notes#56 edit .. //depot/user/jhb/acpipci/notes#157 edit Differences ... ==== //depot/projects/smpng/sys/notes#56 (text+ko) ==== @@ -1,8 +1,6 @@ This file serves as a sort of todo list for this branch as well as documenting what patches currently live in this branch. -- Update mutex(9) manual page to note that mtx_trylock only works for - sleep (default) mutexes. - Consolidate linux module version into MI location. - Not sure if we don't want flexibility of MD versions - Fixup asm constraints to use '+' rather than declaring a variable in both @@ -40,10 +38,6 @@ - sparc64 - sys + start over saving current state in the ktrace branch so I can break this up - - stop using '+' with "m" arguments - + implement - - test - - commit - see what's left of the diff after these - Fixup td_ucred of thread doing execve() to re-sync with process ucred after single threading during an exec. @@ -87,9 +81,6 @@ - fork counts? - Add a cache-line padded mtx_aligned union and use it for the mutex pools. - Robert wants intrcnt's for IPIs -+ Add checks to msleep() and cv_wait*() to ensure they aren't called by an - interrupt thread. Would need to provide an exception for the istorm - stuff. - Fix free race in eventhandlers: > In the macro "_EVENTHANDLER_INVOKE" in the file > "/sys/sys/eventhandler.h", you unlock the list lock ==== //depot/user/jhb/acpipci/notes#157 (text+ko) ==== @@ -34,9 +34,6 @@ + implemented - untested - ti - - tl - + implemented - - untested - wb + implemented - untested From owner-p4-projects@FreeBSD.ORG Thu Sep 15 19:41:03 2005 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 B9AA816A421; Thu, 15 Sep 2005 19:41:02 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7C8C216A41F for ; Thu, 15 Sep 2005 19:41:02 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A319743D58 for ; Thu, 15 Sep 2005 19:40:59 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FJexNK009992 for ; Thu, 15 Sep 2005 19:40:59 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FJexac009989 for perforce@freebsd.org; Thu, 15 Sep 2005 19:40:59 GMT (envelope-from jhb@freebsd.org) Date: Thu, 15 Sep 2005 19:40:59 GMT Message-Id: <200509151940.j8FJexac009989@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 83692 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, 15 Sep 2005 19:41:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=83692 Change 83692 by jhb@jhb_slimer on 2005/09/15 19:40:43 IFC @83690. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#31 integrate .. //depot/projects/smpng/sys/amd64/include/atomic.h#27 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#26 integrate .. //depot/projects/smpng/sys/dev/sn/if_sn.c#24 integrate .. //depot/projects/smpng/sys/dev/sn/if_snvar.h#7 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_vnops.c#25 integrate .. //depot/projects/smpng/sys/geom/geom_io.c#39 integrate .. //depot/projects/smpng/sys/i386/i386/local_apic.c#33 integrate .. //depot/projects/smpng/sys/i386/include/atomic.h#44 integrate .. //depot/projects/smpng/sys/kern/kern_intr.c#70 integrate .. //depot/projects/smpng/sys/kern/subr_sleepqueue.c#18 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#138 integrate .. //depot/projects/smpng/sys/powerpc/include/atomic.h#16 integrate .. //depot/projects/smpng/sys/sys/proc.h#149 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#31 (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/alpha/include/atomic.h,v 1.22 2005/07/15 18:17:57 jhb Exp $ + * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.23 2005/09/15 19:31:22 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ ==== //depot/projects/smpng/sys/amd64/include/atomic.h#27 (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/amd64/include/atomic.h,v 1.37 2005/08/18 14:36:47 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.38 2005/09/15 19:31:22 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ ==== //depot/projects/smpng/sys/dev/re/if_re.c#26 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.51 2005/08/18 18:36:39 sobomax Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.53 2005/09/15 19:07:10 ru Exp $"); /* * RealTek 8139C+/8169/8169S/8110S PCI NIC driver @@ -1234,7 +1234,6 @@ printf("re%d: attach aborted due to hardware diag failure\n", unit); ether_ifdetach(ifp); - if_free(ifp); goto fail; } @@ -1244,7 +1243,6 @@ if (error) { printf("re%d: couldn't set up irq\n", unit); ether_ifdetach(ifp); - if_free(ifp); } fail: @@ -1268,27 +1266,19 @@ struct rl_softc *sc; struct ifnet *ifp; int i; - int attached; sc = device_get_softc(dev); ifp = sc->rl_ifp; KASSERT(mtx_initialized(&sc->rl_mtx), ("re mutex not initialized")); - attached = device_is_attached(dev); /* These should only be active if attach succeeded */ - if (attached) - ether_ifdetach(ifp); - if (ifp == NULL) - if_free(ifp); - - RL_LOCK(sc); + if (device_is_attached(dev)) { + RL_LOCK(sc); #if 0 - sc->suspended = 1; + sc->suspended = 1; #endif - - /* These should only be active if attach succeeded */ - if (attached) { re_stop(sc); + RL_UNLOCK(sc); /* * Force off the IFF_UP flag here, in case someone * still had a BPF descriptor attached to this @@ -1302,6 +1292,7 @@ * anymore. */ ifp->if_flags &= ~IFF_UP; + ether_ifdetach(ifp); } if (sc->rl_miibus) device_delete_child(dev, sc->rl_miibus); @@ -1311,8 +1302,9 @@ * The rest is resource deallocation, so we should already be * stopped here. */ - RL_UNLOCK(sc); + if (ifp != NULL) + if_free(ifp); if (sc->rl_intrhand) bus_teardown_intr(dev, sc->rl_irq, sc->rl_intrhand); if (sc->rl_irq) @@ -2493,8 +2485,7 @@ /* * Mark interface as down since otherwise we will panic if * interrupt comes in later on, which can happen in some - * cases. Another option is to call re_detach() instead of - * re_stop(), like ve(4) does. + * cases. */ sc->rl_ifp->if_flags &= ~IFF_UP; RL_UNLOCK(sc); ==== //depot/projects/smpng/sys/dev/sn/if_sn.c#24 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/sn/if_sn.c,v 1.49 2005/08/15 17:20:34 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sn/if_sn.c,v 1.50 2005/09/15 19:34:12 ru Exp $"); /* * This is a driver for SMC's 9000 series of Ethernet adapters. @@ -235,7 +235,7 @@ ether_ifdetach(ifp); if_free(ifp); sn_deactivate(dev); - SN_LOCK_DESTORY(sc); + SN_LOCK_DESTROY(sc); return 0; } ==== //depot/projects/smpng/sys/dev/sn/if_snvar.h#7 (text+ko) ==== @@ -22,7 +22,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/dev/sn/if_snvar.h,v 1.9 2005/08/15 17:20:34 imp Exp $ + * $FreeBSD: src/sys/dev/sn/if_snvar.h,v 1.10 2005/09/15 19:34:12 ru Exp $ */ #ifndef _IF_SNVAR_H @@ -75,7 +75,7 @@ #define SN_LOCK_INIT(_sc) \ mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \ MTX_NETWORK_LOCK, MTX_DEF) -#define SN_LOCK_DESTORY(_sc) mtx_destroy(&_sc->sc_mtx); +#define SN_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); #define SN_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); #define SN_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); ==== //depot/projects/smpng/sys/fs/nullfs/null_vnops.c#25 (text+ko) ==== @@ -36,7 +36,7 @@ * ...and... * @(#)null_vnodeops.c 1.20 92/07/07 UCLA Ficus project * - * $FreeBSD: src/sys/fs/nullfs/null_vnops.c,v 1.88 2005/09/02 15:49:55 ssouhlal Exp $ + * $FreeBSD: src/sys/fs/nullfs/null_vnops.c,v 1.89 2005/09/15 19:21:26 kan Exp $ */ /* @@ -180,6 +180,7 @@ #include #include #include +#include #include @@ -545,6 +546,30 @@ */ vholdl(lvp); error = VOP_LOCK(lvp, flags, td); + + /* + * We might have slept to get the lock and someone might have + * clean our vnode already, switching vnode lock from one in + * lowervp to v_lock in our own vnode structure. Handle this + * case by reacquiring correct lock in requested mode. + */ + if (VTONULL(vp) == NULL && error == 0) { + ap->a_flags &= ~(LK_TYPE_MASK | LK_INTERLOCK); + switch (flags & LK_TYPE_MASK) { + case LK_SHARED: + ap->a_flags |= LK_SHARED; + break; + case LK_UPGRADE: + case LK_EXCLUSIVE: + ap->a_flags |= LK_EXCLUSIVE; + break; + default: + panic("Unsupported lock request %d\n", + ap->a_flags); + } + VOP_LOCK(lvp, LK_RELEASE, td); + error = vop_stdlock(ap); + } vdrop(lvp); } else error = vop_stdlock(ap); @@ -633,14 +658,13 @@ */ VI_LOCK(vp); vp->v_data = NULL; - VI_UNLOCK(vp); + vnlock = vp->v_vnlock; + vp->v_vnlock = &vp->v_lock; + lockmgr(vp->v_vnlock, LK_EXCLUSIVE|LK_INTERLOCK, VI_MTX(vp), curthread); if (lowervp) null_hashrem(xp); vp->v_object = NULL; - vnlock = vp->v_vnlock; - vp->v_vnlock = &vp->v_lock; - lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL, curthread); if (lowervp) { vput(lowervp); } else ==== //depot/projects/smpng/sys/geom/geom_io.c#39 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/geom_io.c,v 1.66 2005/08/29 11:39:24 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/geom_io.c,v 1.67 2005/09/15 19:05:37 jhb Exp $"); #include #include ==== //depot/projects/smpng/sys/i386/i386/local_apic.c#33 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/local_apic.c,v 1.17 2005/06/24 00:16:57 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/local_apic.c,v 1.18 2005/09/15 19:02:01 jhb Exp $"); #include "opt_hwpmc_hooks.h" ==== //depot/projects/smpng/sys/i386/include/atomic.h#44 (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/i386/include/atomic.h,v 1.39 2005/07/15 18:17:58 jhb Exp $ + * $FreeBSD: src/sys/i386/include/atomic.h,v 1.40 2005/09/15 19:31:22 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ ==== //depot/projects/smpng/sys/kern/kern_intr.c#70 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.124 2005/06/20 19:32:23 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.125 2005/09/15 19:05:37 jhb Exp $"); #include "opt_ddb.h" ==== //depot/projects/smpng/sys/kern/subr_sleepqueue.c#18 (text+ko) ==== @@ -62,7 +62,7 @@ #include "opt_sleepqueue_profiling.h" #include -__FBSDID("$FreeBSD: src/sys/kern/subr_sleepqueue.c,v 1.18 2005/05/27 15:57:27 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_sleepqueue.c,v 1.19 2005/09/15 19:05:37 jhb Exp $"); #include #include ==== //depot/projects/smpng/sys/kern/subr_witness.c#138 (text+ko) ==== @@ -82,7 +82,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.200 2005/09/11 07:57:06 truckman Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.201 2005/09/15 19:07:14 jhb Exp $"); #include "opt_ddb.h" #include "opt_witness.h" ==== //depot/projects/smpng/sys/powerpc/include/atomic.h#16 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/powerpc/include/atomic.h,v 1.12 2005/07/15 18:17:58 jhb Exp $ + * $FreeBSD: src/sys/powerpc/include/atomic.h,v 1.13 2005/09/15 19:31:22 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ ==== //depot/projects/smpng/sys/sys/proc.h#149 (text+ko) ==== @@ -32,7 +32,7 @@ * SUCH DAMAGE. * * @(#)proc.h 8.15 (Berkeley) 5/19/95 - * $FreeBSD: src/sys/sys/proc.h,v 1.433 2005/08/10 07:10:02 obrien Exp $ + * $FreeBSD: src/sys/sys/proc.h,v 1.434 2005/09/15 19:05:37 jhb Exp $ */ #ifndef _SYS_PROC_H_ From owner-p4-projects@FreeBSD.ORG Thu Sep 15 20:55:47 2005 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 7049C16A421; Thu, 15 Sep 2005 20:55:47 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 468F716A41F for ; Thu, 15 Sep 2005 20:55:47 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0CBFB43D45 for ; Thu, 15 Sep 2005 20:55:47 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8FKtkwe022054 for ; Thu, 15 Sep 2005 20:55:46 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FKtkqA022051 for perforce@freebsd.org; Thu, 15 Sep 2005 20:55:46 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 15 Sep 2005 20:55:46 GMT Message-Id: <200509152055.j8FKtkqA022051@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 83704 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, 15 Sep 2005 20:55:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=83704 Change 83704 by rwatson@rwatson_peppercorn on 2005/09/15 20:55:46 Assert vnode lock in fifo_close(), as it is relied upon to synchronize the reference counts in struct fifoinfo. Affected files ... .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#15 edit Differences ... ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#15 (text+ko) ==== @@ -418,6 +418,7 @@ struct vnode *vp = ap->a_vp; struct fifoinfo *fip = vp->v_fifoinfo; + ASSERT_VOP_LOCKED(vp, "fifo_close"); if (ap->a_fflag & FREAD) { fip->fi_readers--; if (fip->fi_readers == 0) From owner-p4-projects@FreeBSD.ORG Thu Sep 15 21:22:03 2005 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 D374716A421; Thu, 15 Sep 2005 21:22:02 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A79FE16A41F for ; Thu, 15 Sep 2005 21:22:02 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3AF3B43D45 for ; Thu, 15 Sep 2005 21:22:02 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FLM2wi025053 for ; Thu, 15 Sep 2005 21:22:02 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FLLlVv025017 for perforce@freebsd.org; Thu, 15 Sep 2005 21:21:47 GMT (envelope-from sam@freebsd.org) Date: Thu, 15 Sep 2005 21:21:47 GMT Message-Id: <200509152121.j8FLLlVv025017@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 83711 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, 15 Sep 2005 21:22:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=83711 Change 83711 by sam@sam_ebb on 2005/09/15 21:21:27 IFC from sometime back Affected files ... .. //depot/projects/wifi/MAINTAINERS#9 integrate .. //depot/projects/wifi/Makefile.inc1#24 integrate .. //depot/projects/wifi/ObsoleteFiles.inc#3 integrate .. //depot/projects/wifi/UPDATING#19 integrate .. //depot/projects/wifi/bin/cp/cp.c#3 integrate .. //depot/projects/wifi/bin/cp/extern.h#2 integrate .. //depot/projects/wifi/bin/cp/utils.c#3 integrate .. //depot/projects/wifi/bin/kenv/kenv.1#3 integrate .. //depot/projects/wifi/bin/kenv/kenv.c#3 integrate .. //depot/projects/wifi/bin/ls/ls.1#6 integrate .. //depot/projects/wifi/bin/mv/mv.c#4 integrate .. //depot/projects/wifi/bin/sh/Makefile#2 integrate .. //depot/projects/wifi/bin/sh/alias.c#2 integrate .. //depot/projects/wifi/bin/sh/arith.h#2 integrate .. //depot/projects/wifi/bin/sh/arith.y#2 integrate .. //depot/projects/wifi/bin/sh/arith_lex.l#2 integrate .. //depot/projects/wifi/bin/sh/bltin/bltin.h#2 integrate .. //depot/projects/wifi/bin/sh/eval.c#2 integrate .. //depot/projects/wifi/bin/sh/exec.c#2 integrate .. //depot/projects/wifi/bin/sh/expand.c#3 integrate .. //depot/projects/wifi/bin/sh/histedit.c#2 integrate .. //depot/projects/wifi/bin/sh/jobs.c#3 integrate .. //depot/projects/wifi/bin/sh/mail.c#2 integrate .. //depot/projects/wifi/bin/sh/miscbltin.c#2 integrate .. //depot/projects/wifi/bin/sh/mkbuiltins#3 integrate .. //depot/projects/wifi/bin/sh/mkinit.c#2 integrate .. //depot/projects/wifi/bin/sh/mksyntax.c#2 integrate .. //depot/projects/wifi/bin/sh/parser.c#3 integrate .. //depot/projects/wifi/bin/sh/sh.1#8 integrate .. //depot/projects/wifi/bin/sh/show.c#2 integrate .. //depot/projects/wifi/bin/sh/trap.c#2 integrate .. //depot/projects/wifi/bin/sh/var.c#2 integrate .. //depot/projects/wifi/contrib/amd/amd/amd.8#3 integrate .. //depot/projects/wifi/contrib/bind9/lib/dns/resolver.c#3 integrate .. //depot/projects/wifi/contrib/cvs/src/cvsbug.in#2 integrate .. //depot/projects/wifi/contrib/gcc/c-decl.c#3 integrate .. //depot/projects/wifi/contrib/less/line.c#2 integrate .. //depot/projects/wifi/contrib/nvi/docs/USD.doc/vi.ref/vi.ref#2 integrate .. //depot/projects/wifi/contrib/pf/pflogd/pflogd.c#3 integrate .. //depot/projects/wifi/contrib/smbfs/lib/smb/kiconv.c#2 integrate .. //depot/projects/wifi/contrib/traceroute/traceroute.c#2 integrate .. //depot/projects/wifi/crypto/openssh/CREDITS#3 integrate .. //depot/projects/wifi/crypto/openssh/ChangeLog#4 integrate .. //depot/projects/wifi/crypto/openssh/FREEBSD-tricks#3 integrate .. //depot/projects/wifi/crypto/openssh/LICENCE#3 integrate .. //depot/projects/wifi/crypto/openssh/Makefile.in#4 integrate .. //depot/projects/wifi/crypto/openssh/README#4 integrate .. //depot/projects/wifi/crypto/openssh/README.privsep#4 integrate .. //depot/projects/wifi/crypto/openssh/WARNING.RNG#3 integrate .. //depot/projects/wifi/crypto/openssh/acconfig.h#4 integrate .. //depot/projects/wifi/crypto/openssh/acss.c#2 integrate .. //depot/projects/wifi/crypto/openssh/atomicio.c#2 integrate .. //depot/projects/wifi/crypto/openssh/atomicio.h#2 integrate .. //depot/projects/wifi/crypto/openssh/audit.c#2 integrate .. //depot/projects/wifi/crypto/openssh/auth-chall.c#3 integrate .. //depot/projects/wifi/crypto/openssh/auth-krb5.c#4 integrate .. //depot/projects/wifi/crypto/openssh/auth-pam.c#4 integrate .. //depot/projects/wifi/crypto/openssh/auth-pam.h#4 integrate .. //depot/projects/wifi/crypto/openssh/auth-passwd.c#4 integrate .. //depot/projects/wifi/crypto/openssh/auth-rh-rsa.c#2 integrate .. //depot/projects/wifi/crypto/openssh/auth-rhosts.c#2 integrate .. //depot/projects/wifi/crypto/openssh/auth-rsa.c#4 integrate .. //depot/projects/wifi/crypto/openssh/auth-shadow.c#3 integrate .. //depot/projects/wifi/crypto/openssh/auth-skey.c#2 integrate .. //depot/projects/wifi/crypto/openssh/auth.c#4 integrate .. //depot/projects/wifi/crypto/openssh/auth.h#4 integrate .. //depot/projects/wifi/crypto/openssh/auth1.c#4 integrate .. //depot/projects/wifi/crypto/openssh/auth2-chall.c#4 integrate .. //depot/projects/wifi/crypto/openssh/auth2-gss.c#3 integrate .. //depot/projects/wifi/crypto/openssh/auth2-kbdint.c#3 integrate .. //depot/projects/wifi/crypto/openssh/auth2.c#4 integrate .. //depot/projects/wifi/crypto/openssh/authfd.c#3 integrate .. //depot/projects/wifi/crypto/openssh/authfile.c#4 integrate .. //depot/projects/wifi/crypto/openssh/bufaux.c#3 integrate .. //depot/projects/wifi/crypto/openssh/canohost.c#4 integrate .. //depot/projects/wifi/crypto/openssh/channels.c#4 integrate .. //depot/projects/wifi/crypto/openssh/channels.h#4 integrate .. //depot/projects/wifi/crypto/openssh/cipher-acss.c#2 integrate .. //depot/projects/wifi/crypto/openssh/cipher-ctr.c#3 integrate .. //depot/projects/wifi/crypto/openssh/cipher.c#4 integrate .. //depot/projects/wifi/crypto/openssh/clientloop.c#4 integrate .. //depot/projects/wifi/crypto/openssh/clientloop.h#4 integrate .. //depot/projects/wifi/crypto/openssh/compat.c#3 integrate .. //depot/projects/wifi/crypto/openssh/config.guess#4 integrate .. //depot/projects/wifi/crypto/openssh/config.h#4 integrate .. //depot/projects/wifi/crypto/openssh/config.sub#3 integrate .. //depot/projects/wifi/crypto/openssh/configure.ac#4 integrate .. //depot/projects/wifi/crypto/openssh/defines.h#4 integrate .. //depot/projects/wifi/crypto/openssh/dns.c#3 integrate .. //depot/projects/wifi/crypto/openssh/entropy.c#2 integrate .. //depot/projects/wifi/crypto/openssh/gss-genr.c#2 integrate .. //depot/projects/wifi/crypto/openssh/gss-serv-krb5.c#3 integrate .. //depot/projects/wifi/crypto/openssh/gss-serv.c#2 integrate .. //depot/projects/wifi/crypto/openssh/hostfile.c#3 integrate .. //depot/projects/wifi/crypto/openssh/includes.h#4 integrate .. //depot/projects/wifi/crypto/openssh/kex.c#3 integrate .. //depot/projects/wifi/crypto/openssh/kex.h#3 integrate .. //depot/projects/wifi/crypto/openssh/key.c#4 integrate .. //depot/projects/wifi/crypto/openssh/log.h#3 integrate .. //depot/projects/wifi/crypto/openssh/loginrec.c#4 integrate .. //depot/projects/wifi/crypto/openssh/loginrec.h#3 integrate .. //depot/projects/wifi/crypto/openssh/mac.c#2 integrate .. //depot/projects/wifi/crypto/openssh/match.c#2 integrate .. //depot/projects/wifi/crypto/openssh/mdoc2man.awk#3 integrate .. //depot/projects/wifi/crypto/openssh/misc.c#4 integrate .. //depot/projects/wifi/crypto/openssh/misc.h#4 integrate .. //depot/projects/wifi/crypto/openssh/moduli.c#4 integrate .. //depot/projects/wifi/crypto/openssh/monitor.c#4 integrate .. //depot/projects/wifi/crypto/openssh/monitor.h#3 integrate .. //depot/projects/wifi/crypto/openssh/monitor_wrap.c#4 integrate .. //depot/projects/wifi/crypto/openssh/monitor_wrap.h#4 integrate .. //depot/projects/wifi/crypto/openssh/mpaux.c#2 delete .. //depot/projects/wifi/crypto/openssh/mpaux.h#2 delete .. //depot/projects/wifi/crypto/openssh/msg.c#2 integrate .. //depot/projects/wifi/crypto/openssh/myproposal.h#3 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/Makefile.in#3 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/bsd-cygwin_util.c#3 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/bsd-misc.c#4 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/fake-rfc2553.h#4 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/getrrsetbyname.c#4 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/openbsd-compat.h#3 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/openssl-compat.c#1 branch .. //depot/projects/wifi/crypto/openssh/openbsd-compat/openssl-compat.h#1 branch .. //depot/projects/wifi/crypto/openssh/openbsd-compat/port-aix.c#4 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/port-aix.h#4 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/port-uw.c#1 branch .. //depot/projects/wifi/crypto/openssh/openbsd-compat/port-uw.h#1 branch .. //depot/projects/wifi/crypto/openssh/openbsd-compat/realpath.c#3 integrate .. //depot/projects/wifi/crypto/openssh/openbsd-compat/strtoll.c#1 branch .. //depot/projects/wifi/crypto/openssh/openbsd-compat/strtonum.c#1 branch .. //depot/projects/wifi/crypto/openssh/openbsd-compat/xcrypt.c#2 integrate .. //depot/projects/wifi/crypto/openssh/packet.c#4 integrate .. //depot/projects/wifi/crypto/openssh/packet.h#3 integrate .. //depot/projects/wifi/crypto/openssh/progressmeter.c#3 integrate .. //depot/projects/wifi/crypto/openssh/readconf.c#4 integrate .. //depot/projects/wifi/crypto/openssh/readconf.h#4 integrate .. //depot/projects/wifi/crypto/openssh/readpass.c#4 integrate .. //depot/projects/wifi/crypto/openssh/regress/reexec.sh#3 integrate .. //depot/projects/wifi/crypto/openssh/regress/test-exec.sh#4 integrate .. //depot/projects/wifi/crypto/openssh/scp.c#4 integrate .. //depot/projects/wifi/crypto/openssh/servconf.c#4 integrate .. //depot/projects/wifi/crypto/openssh/servconf.h#4 integrate .. //depot/projects/wifi/crypto/openssh/serverloop.c#3 integrate .. //depot/projects/wifi/crypto/openssh/session.c#4 integrate .. //depot/projects/wifi/crypto/openssh/session.h#3 integrate .. //depot/projects/wifi/crypto/openssh/sftp-client.c#4 integrate .. //depot/projects/wifi/crypto/openssh/sftp-client.h#3 integrate .. //depot/projects/wifi/crypto/openssh/sftp-server.c#3 integrate .. //depot/projects/wifi/crypto/openssh/sftp.c#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh-add.1#3 integrate .. //depot/projects/wifi/crypto/openssh/ssh-add.c#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh-agent.1#3 integrate .. //depot/projects/wifi/crypto/openssh/ssh-agent.c#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh-keygen.1#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh-keygen.c#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh-keyscan.c#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh-rand-helper.c#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh-rsa.c#2 integrate .. //depot/projects/wifi/crypto/openssh/ssh.1#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh.c#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh_config#4 integrate .. //depot/projects/wifi/crypto/openssh/ssh_config.5#4 integrate .. //depot/projects/wifi/crypto/openssh/sshconnect.c#4 integrate .. //depot/projects/wifi/crypto/openssh/sshconnect1.c#3 integrate .. //depot/projects/wifi/crypto/openssh/sshconnect2.c#3 integrate .. //depot/projects/wifi/crypto/openssh/sshd.8#4 integrate .. //depot/projects/wifi/crypto/openssh/sshd.c#4 integrate .. //depot/projects/wifi/crypto/openssh/sshd_config#4 integrate .. //depot/projects/wifi/crypto/openssh/sshd_config.5#4 integrate .. //depot/projects/wifi/crypto/openssh/sshpty.c#3 integrate .. //depot/projects/wifi/crypto/openssh/tildexpand.c#3 delete .. //depot/projects/wifi/crypto/openssh/ttymodes.c#2 integrate .. //depot/projects/wifi/crypto/openssh/version.h#4 integrate .. //depot/projects/wifi/etc/Makefile#9 integrate .. //depot/projects/wifi/etc/defaults/rc.conf#19 integrate .. //depot/projects/wifi/etc/etc.powerpc/ttys#3 integrate .. //depot/projects/wifi/etc/login.conf#2 integrate .. //depot/projects/wifi/etc/namedb/named.conf#4 integrate .. //depot/projects/wifi/etc/network.subr#5 integrate .. //depot/projects/wifi/etc/pccard_ether#7 integrate .. //depot/projects/wifi/etc/periodic/security/550.ipfwlimit#3 integrate .. //depot/projects/wifi/etc/periodic/security/security.functions#2 integrate .. //depot/projects/wifi/etc/portsnap.conf#2 integrate .. //depot/projects/wifi/etc/rc.d/Makefile#11 integrate .. //depot/projects/wifi/etc/rc.d/dumpon#4 integrate .. //depot/projects/wifi/etc/rc.d/gbde#4 integrate .. //depot/projects/wifi/etc/rc.d/geli#1 branch .. //depot/projects/wifi/etc/rc.d/geli2#1 branch .. //depot/projects/wifi/etc/rc.d/netif#4 integrate .. //depot/projects/wifi/etc/rc.d/sendmail#3 integrate .. //depot/projects/wifi/etc/rc.initdiskless#3 integrate .. //depot/projects/wifi/etc/rc.subr#5 integrate .. //depot/projects/wifi/games/fortune/datfiles/fortunes#15 integrate .. //depot/projects/wifi/games/fortune/datfiles/fortunes2-o#4 integrate .. //depot/projects/wifi/games/fortune/datfiles/startrek#3 integrate .. //depot/projects/wifi/gnu/lib/libdialog/dialog.3#4 integrate .. //depot/projects/wifi/gnu/lib/libobjc/Makefile#7 integrate .. //depot/projects/wifi/gnu/lib/libsupc++/Makefile#2 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/kgdb.h#3 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/kthr.c#3 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/main.c#7 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/trgt.c#4 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/trgt_alpha.c#3 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/trgt_amd64.c#3 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/trgt_i386.c#3 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/trgt_ia64.c#3 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/kgdb/trgt_sparc64.c#3 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/libgdb/Makefile#7 integrate .. //depot/projects/wifi/gnu/usr.bin/gdb/libgdb/frame-unwind.diff#1 branch .. //depot/projects/wifi/gnu/usr.bin/man/apropos/apropos.man#3 integrate .. //depot/projects/wifi/gnu/usr.bin/man/man/man.man#3 integrate .. //depot/projects/wifi/include/Makefile#15 integrate .. //depot/projects/wifi/include/pthread.h#5 integrate .. //depot/projects/wifi/include/resolv.h#2 integrate .. //depot/projects/wifi/include/stdlib.h#3 integrate .. //depot/projects/wifi/include/string.h#3 integrate .. //depot/projects/wifi/include/wchar.h#2 integrate .. //depot/projects/wifi/lib/libarchive/Makefile#13 integrate .. //depot/projects/wifi/lib/libarchive/archive_entry.c#6 integrate .. //depot/projects/wifi/lib/libarchive/archive_entry.h#4 integrate .. //depot/projects/wifi/lib/libarchive/archive_private.h#5 integrate .. //depot/projects/wifi/lib/libarchive/archive_read.c#5 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_extract.c#8 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_support_format_tar.c#8 integrate .. //depot/projects/wifi/lib/libarchive/archive_write_set_format_pax.c#10 integrate .. //depot/projects/wifi/lib/libc/compat-43/gethostid.c#2 integrate .. //depot/projects/wifi/lib/libc/compat-43/sethostid.c#2 integrate .. //depot/projects/wifi/lib/libc/db/man/dbopen.3#3 integrate .. //depot/projects/wifi/lib/libc/gen/Makefile.inc#6 integrate .. //depot/projects/wifi/lib/libc/gen/daemon.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/devname.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/gethostname.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/getosreldate.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/getpagesize.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/readdir.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/sem.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/sethostname.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/strtofflags.c#2 integrate .. //depot/projects/wifi/lib/libc/i386/gen/_set_tp.c#6 integrate .. //depot/projects/wifi/lib/libc/i386/gen/ldexp.c#2 integrate .. //depot/projects/wifi/lib/libc/include/libc_private.h#2 integrate .. //depot/projects/wifi/lib/libc/locale/runetype.c#3 integrate .. //depot/projects/wifi/lib/libc/locale/tolower.c#2 integrate .. //depot/projects/wifi/lib/libc/locale/toupper.c#2 integrate .. //depot/projects/wifi/lib/libc/net/getprotoent.c#5 integrate .. //depot/projects/wifi/lib/libc/net/getservent.c#6 integrate .. //depot/projects/wifi/lib/libc/posix1e/extattr.c#2 integrate .. //depot/projects/wifi/lib/libc/quad/quad.h#2 integrate .. //depot/projects/wifi/lib/libc/regex/engine.c#4 integrate .. //depot/projects/wifi/lib/libc/regex/regex.3#4 integrate .. //depot/projects/wifi/lib/libc/regex/regex2.h#2 integrate .. //depot/projects/wifi/lib/libc/rpc/Makefile.inc#2 integrate .. //depot/projects/wifi/lib/libc/stdio/fgets.3#2 integrate .. //depot/projects/wifi/lib/libc/stdio/local.h#2 integrate .. //depot/projects/wifi/lib/libc/stdio/makebuf.c#2 integrate .. //depot/projects/wifi/lib/libc/stdio/printf.3#2 integrate .. //depot/projects/wifi/lib/libc/stdio/tmpnam.3#3 integrate .. //depot/projects/wifi/lib/libc/stdio/ungetwc.c#2 integrate .. //depot/projects/wifi/lib/libc/stdio/vfwscanf.c#2 integrate .. //depot/projects/wifi/lib/libc/stdlib/abort.c#2 integrate .. //depot/projects/wifi/lib/libc/stdlib/exit.c#2 integrate .. //depot/projects/wifi/lib/libc/stdlib/strfmon.c#2 integrate .. //depot/projects/wifi/lib/libc/stdtime/time2posix.3#3 integrate .. //depot/projects/wifi/lib/libc/string/Makefile.inc#2 integrate .. //depot/projects/wifi/lib/libc/string/memchr.3#2 integrate .. //depot/projects/wifi/lib/libc/string/memmem.3#1 branch .. //depot/projects/wifi/lib/libc/string/memmem.c#1 branch .. //depot/projects/wifi/lib/libc/string/strcat.3#2 integrate .. //depot/projects/wifi/lib/libc/string/strchr.3#2 integrate .. //depot/projects/wifi/lib/libc/string/strcpy.3#2 integrate .. //depot/projects/wifi/lib/libc/string/strcspn.3#2 integrate .. //depot/projects/wifi/lib/libc/string/strspn.3#2 integrate .. //depot/projects/wifi/lib/libc/string/strstr.3#2 integrate .. //depot/projects/wifi/lib/libc/string/wcsdup.c#1 branch .. //depot/projects/wifi/lib/libc/string/wmemchr.3#2 integrate .. //depot/projects/wifi/lib/libc/sys/listen.2#2 integrate .. //depot/projects/wifi/lib/libc/sys/umask.2#2 integrate .. //depot/projects/wifi/lib/libc_r/uthread/uthread_mattr_kind_np.c#3 integrate .. //depot/projects/wifi/lib/libc_r/uthread/uthread_mutex.c#2 integrate .. //depot/projects/wifi/lib/libdevinfo/devinfo.h#2 integrate .. //depot/projects/wifi/lib/libfetch/ftp.c#2 integrate .. //depot/projects/wifi/lib/libfetch/http.c#4 integrate .. //depot/projects/wifi/lib/libkiconv/xlat16_sysctl.c#2 integrate .. //depot/projects/wifi/lib/libmemstat/libmemstat.3#7 integrate .. //depot/projects/wifi/lib/libpthread/thread/thr_kern.c#3 integrate .. //depot/projects/wifi/lib/libpthread/thread/thr_mattr_kind_np.c#2 integrate .. //depot/projects/wifi/lib/libpthread/thread/thr_mutex.c#4 integrate .. //depot/projects/wifi/lib/libpthread/thread/thr_pspinlock.c#2 integrate .. //depot/projects/wifi/lib/libpthread/thread/thr_rtld.c#2 integrate .. //depot/projects/wifi/lib/libpthread/thread/thr_sem.c#3 integrate .. //depot/projects/wifi/lib/libpthread/thread/thr_sigsuspend.c#4 integrate .. //depot/projects/wifi/lib/libpthread/thread/thr_symbols.c#2 integrate .. //depot/projects/wifi/lib/libthr/thread/thr_create.c#5 integrate .. //depot/projects/wifi/lib/libthr/thread/thr_mutex.c#3 integrate .. //depot/projects/wifi/lib/libthr/thread/thr_mutexattr.c#2 integrate .. //depot/projects/wifi/lib/libthr/thread/thr_sem.c#3 integrate .. //depot/projects/wifi/lib/libthr/thread/thr_symbols.c#3 integrate .. //depot/projects/wifi/lib/libufs/Makefile#2 integrate .. //depot/projects/wifi/lib/libufs/getino.3#2 delete .. //depot/projects/wifi/lib/libutil/Makefile#3 integrate .. //depot/projects/wifi/lib/libutil/libutil.h#2 integrate .. //depot/projects/wifi/lib/libutil/pidfile.3#1 branch .. //depot/projects/wifi/lib/libutil/pidfile.c#1 branch .. //depot/projects/wifi/lib/msun/amd64/s_scalbnf.S#2 integrate .. //depot/projects/wifi/release/Makefile#11 integrate .. //depot/projects/wifi/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#16 integrate .. //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#17 integrate .. //depot/projects/wifi/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#6 integrate .. //depot/projects/wifi/release/doc/ru_RU.KOI8-R/hardware/common/dev.sgml#6 integrate .. //depot/projects/wifi/release/doc/share/misc/dev.archlist.txt#14 integrate .. //depot/projects/wifi/release/doc/zh_CN.GB2312/hardware/common/dev.sgml#4 integrate .. //depot/projects/wifi/sbin/atacontrol/atacontrol.8#3 integrate .. //depot/projects/wifi/sbin/bsdlabel/bsdlabel.c#3 integrate .. //depot/projects/wifi/sbin/ccdconfig/ccdconfig.8#7 integrate .. //depot/projects/wifi/sbin/dhclient/alloc.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/bpf.c#6 integrate .. //depot/projects/wifi/sbin/dhclient/clparse.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/conflex.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/convert.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/dhclient-script#8 integrate .. //depot/projects/wifi/sbin/dhclient/dhclient.c#11 integrate .. //depot/projects/wifi/sbin/dhclient/dispatch.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/errwarn.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/hash.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/inet.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/options.c#4 integrate .. //depot/projects/wifi/sbin/dhclient/packet.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/parse.c#4 integrate .. //depot/projects/wifi/sbin/dhclient/privsep.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/tables.c#4 integrate .. //depot/projects/wifi/sbin/dhclient/tree.c#3 integrate .. //depot/projects/wifi/sbin/geom/class/Makefile#6 integrate .. //depot/projects/wifi/sbin/geom/class/eli/geli.8#3 integrate .. //depot/projects/wifi/sbin/geom/class/eli/geom_eli.c#2 integrate .. //depot/projects/wifi/sbin/geom/class/label/glabel.8#6 integrate .. //depot/projects/wifi/sbin/geom/class/raid3/geom_raid3.c#7 integrate .. //depot/projects/wifi/sbin/geom/core/geom.c#7 integrate .. //depot/projects/wifi/sbin/geom/misc/subr.c#2 integrate .. //depot/projects/wifi/sbin/geom/misc/subr.h#2 integrate .. //depot/projects/wifi/sbin/gpt/Makefile#2 integrate .. //depot/projects/wifi/sbin/gpt/add.c#4 integrate .. //depot/projects/wifi/sbin/gpt/create.c#4 integrate .. //depot/projects/wifi/sbin/gpt/destroy.c#3 integrate .. //depot/projects/wifi/sbin/gpt/gpt.8#7 integrate .. //depot/projects/wifi/sbin/gpt/gpt.c#4 integrate .. //depot/projects/wifi/sbin/gpt/gpt.h#4 integrate .. //depot/projects/wifi/sbin/gpt/label.c#1 branch .. //depot/projects/wifi/sbin/gpt/map.c#2 integrate .. //depot/projects/wifi/sbin/gpt/map.h#2 integrate .. //depot/projects/wifi/sbin/gpt/migrate.c#5 integrate .. //depot/projects/wifi/sbin/gpt/mkdisk.sh#3 delete .. //depot/projects/wifi/sbin/gpt/recover.c#3 integrate .. //depot/projects/wifi/sbin/gpt/remove.c#4 integrate .. //depot/projects/wifi/sbin/gpt/show.c#3 integrate .. //depot/projects/wifi/sbin/gvinum/gvinum.c#3 integrate .. //depot/projects/wifi/sbin/ifconfig/ifconfig.8#10 integrate .. //depot/projects/wifi/sbin/init/init.8#3 integrate .. //depot/projects/wifi/sbin/ipfw/ipfw.8#13 integrate .. //depot/projects/wifi/sbin/ipfw/ipfw2.c#12 integrate .. //depot/projects/wifi/sbin/kldload/kldload.8#3 integrate .. //depot/projects/wifi/sbin/mdconfig/mdconfig.c#9 integrate .. //depot/projects/wifi/sbin/newfs/mkfs.c#4 integrate .. //depot/projects/wifi/sbin/ping/ping.8#2 integrate .. //depot/projects/wifi/sbin/ping/ping.c#2 integrate .. //depot/projects/wifi/sbin/reboot/boot_i386.8#5 integrate .. //depot/projects/wifi/sbin/savecore/savecore.c#6 integrate .. //depot/projects/wifi/secure/lib/libssh/Makefile#7 integrate .. //depot/projects/wifi/share/examples/cvsup/stable-supfile#3 integrate .. //depot/projects/wifi/share/examples/etc/make.conf#16 integrate .. //depot/projects/wifi/share/man/man1/builtin.1#5 integrate .. //depot/projects/wifi/share/man/man4/Makefile#24 integrate .. //depot/projects/wifi/share/man/man4/ata.4#8 integrate .. //depot/projects/wifi/share/man/man4/ath.4#12 integrate .. //depot/projects/wifi/share/man/man4/bpf.4#5 integrate .. //depot/projects/wifi/share/man/man4/carp.4#7 integrate .. //depot/projects/wifi/share/man/man4/hwpmc.4#7 integrate .. //depot/projects/wifi/share/man/man4/icmp.4#3 integrate .. //depot/projects/wifi/share/man/man4/if_bridge.4#3 integrate .. //depot/projects/wifi/share/man/man4/inet.4#6 integrate .. //depot/projects/wifi/share/man/man4/inet6.4#3 integrate .. //depot/projects/wifi/share/man/man4/ip.4#5 integrate .. //depot/projects/wifi/share/man/man4/man4.i386/Makefile#6 integrate .. //depot/projects/wifi/share/man/man4/man4.i386/acpi_ibm.4#5 integrate .. //depot/projects/wifi/share/man/man4/man4.i386/el.4#6 delete .. //depot/projects/wifi/share/man/man4/man4.i386/ep.4#10 integrate .. //depot/projects/wifi/share/man/man4/pcm.4#4 integrate .. //depot/projects/wifi/share/man/man4/sn.4#6 integrate .. //depot/projects/wifi/share/man/man4/snd_cmi.4#4 integrate .. //depot/projects/wifi/share/man/man4/snd_csa.4#4 integrate .. //depot/projects/wifi/share/man/man4/snd_emu10k1.4#5 integrate .. //depot/projects/wifi/share/man/man4/snd_es137x.4#5 integrate .. //depot/projects/wifi/share/man/man4/snd_sbc.4#5 integrate .. //depot/projects/wifi/share/man/man4/snd_t4dwave.4#1 branch .. //depot/projects/wifi/share/man/man4/syncache.4#2 integrate .. //depot/projects/wifi/share/man/man4/tcp.4#3 integrate .. //depot/projects/wifi/share/man/man4/ttcp.4#2 delete .. //depot/projects/wifi/share/man/man4/umodem.4#2 integrate .. //depot/projects/wifi/share/man/man4/vlan.4#8 integrate .. //depot/projects/wifi/share/man/man5/autofs.5#4 delete .. //depot/projects/wifi/share/man/man5/libmap.conf.5#3 integrate .. //depot/projects/wifi/share/man/man5/portsnap.conf.5#2 integrate .. //depot/projects/wifi/share/man/man5/rc.conf.5#18 integrate .. //depot/projects/wifi/share/man/man7/environ.7#2 integrate .. //depot/projects/wifi/share/man/man7/sdoc.7#3 integrate .. //depot/projects/wifi/share/man/man7/security.7#6 integrate .. //depot/projects/wifi/share/man/man9/VOP_LISTEXTATTR.9#3 integrate .. //depot/projects/wifi/share/man/man9/bus_dma.9#7 integrate .. //depot/projects/wifi/share/man/man9/mutex.9#5 integrate .. //depot/projects/wifi/share/man/man9/timeout.9#6 integrate .. //depot/projects/wifi/share/zoneinfo/Makefile#2 integrate .. //depot/projects/wifi/share/zoneinfo/africa#2 integrate .. //depot/projects/wifi/share/zoneinfo/antarctica#2 integrate .. //depot/projects/wifi/share/zoneinfo/asia#2 integrate .. //depot/projects/wifi/share/zoneinfo/australasia#2 integrate .. //depot/projects/wifi/share/zoneinfo/backward#2 integrate .. //depot/projects/wifi/share/zoneinfo/etcetera#2 integrate .. //depot/projects/wifi/share/zoneinfo/europe#3 integrate .. //depot/projects/wifi/share/zoneinfo/leapseconds#4 integrate .. //depot/projects/wifi/share/zoneinfo/northamerica#3 integrate .. //depot/projects/wifi/share/zoneinfo/southamerica#3 integrate .. //depot/projects/wifi/share/zoneinfo/yearistype.sh#2 integrate .. //depot/projects/wifi/share/zoneinfo/zone.tab#2 integrate .. //depot/projects/wifi/sys/alpha/alpha/db_trace.c#5 integrate .. //depot/projects/wifi/sys/alpha/alpha/pmap.c#7 integrate .. //depot/projects/wifi/sys/alpha/include/_limits.h#3 integrate .. //depot/projects/wifi/sys/alpha/include/param.h#4 integrate .. //depot/projects/wifi/sys/alpha/include/signal.h#3 integrate .. //depot/projects/wifi/sys/alpha/include/vmparam.h#3 integrate .. //depot/projects/wifi/sys/amd64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/wifi/sys/amd64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/wifi/sys/amd64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/wifi/sys/amd64/acpica/madt.c#4 integrate .. //depot/projects/wifi/sys/amd64/amd64/db_trace.c#6 integrate .. //depot/projects/wifi/sys/amd64/amd64/exception.S#5 integrate .. //depot/projects/wifi/sys/amd64/amd64/genassym.c#3 integrate .. //depot/projects/wifi/sys/amd64/amd64/mp_machdep.c#10 integrate .. //depot/projects/wifi/sys/amd64/amd64/pmap.c#11 integrate .. //depot/projects/wifi/sys/amd64/amd64/trap.c#7 integrate .. //depot/projects/wifi/sys/amd64/conf/GENERIC#12 integrate .. //depot/projects/wifi/sys/amd64/conf/NOTES#14 integrate .. //depot/projects/wifi/sys/amd64/include/_limits.h#3 integrate .. //depot/projects/wifi/sys/amd64/include/atomic.h#6 integrate .. //depot/projects/wifi/sys/amd64/include/signal.h#3 integrate .. //depot/projects/wifi/sys/arm/arm/db_trace.c#7 integrate .. //depot/projects/wifi/sys/arm/arm/pmap.c#14 integrate .. //depot/projects/wifi/sys/arm/include/_limits.h#3 integrate .. //depot/projects/wifi/sys/arm/include/signal.h#3 integrate .. //depot/projects/wifi/sys/boot/common/loader.8#6 integrate .. //depot/projects/wifi/sys/boot/forth/loader.conf#7 integrate .. //depot/projects/wifi/sys/boot/forth/loader.conf.5#3 integrate .. //depot/projects/wifi/sys/boot/i386/boot2/boot2.c#4 integrate .. //depot/projects/wifi/sys/boot/i386/boot2/lib.h#2 integrate .. //depot/projects/wifi/sys/boot/i386/boot2/sio.S#2 integrate .. //depot/projects/wifi/sys/boot/i386/libi386/comconsole.c#2 integrate .. //depot/projects/wifi/sys/boot/pc98/Makefile.inc#2 integrate .. //depot/projects/wifi/sys/boot/pc98/libpc98/comconsole.c#3 integrate .. //depot/projects/wifi/sys/boot/sparc64/loader/metadata.c#3 integrate .. //depot/projects/wifi/sys/compat/linux/linux_ioctl.c#8 integrate .. //depot/projects/wifi/sys/compat/ndis/kern_ndis.c#15 integrate .. //depot/projects/wifi/sys/conf/Makefile.amd64#5 integrate .. //depot/projects/wifi/sys/conf/Makefile.powerpc#6 integrate .. //depot/projects/wifi/sys/conf/files.amd64#17 integrate .. //depot/projects/wifi/sys/conf/files.ia64#6 integrate .. //depot/projects/wifi/sys/conf/kern.post.mk#9 integrate .. //depot/projects/wifi/sys/conf/kern.pre.mk#8 integrate .. //depot/projects/wifi/sys/conf/kmod.mk#14 integrate .. //depot/projects/wifi/sys/conf/newvers.sh#5 integrate .. //depot/projects/wifi/sys/contrib/dev/nve/amd64/nvenetlib.README#1 branch .. //depot/projects/wifi/sys/contrib/dev/nve/i386/nvenetlib.README#1 branch .. //depot/projects/wifi/sys/contrib/pf/net/if_pfsync.c#7 integrate .. //depot/projects/wifi/sys/contrib/pf/net/pf.c#12 integrate .. //depot/projects/wifi/sys/contrib/pf/net/pf_ioctl.c#6 integrate .. //depot/projects/wifi/sys/crypto/rijndael/rijndael-alg-fst.c#3 integrate .. //depot/projects/wifi/sys/crypto/via/padlock.c#1 branch .. //depot/projects/wifi/sys/ddb/db_watch.c#3 integrate .. //depot/projects/wifi/sys/ddb/ddb.h#5 integrate .. //depot/projects/wifi/sys/dev/acpi_support/acpi_asus.c#6 integrate .. //depot/projects/wifi/sys/dev/acpi_support/acpi_fujitsu.c#3 integrate .. //depot/projects/wifi/sys/dev/acpi_support/acpi_ibm.c#7 integrate .. //depot/projects/wifi/sys/dev/acpi_support/acpi_panasonic.c#4 integrate .. //depot/projects/wifi/sys/dev/acpi_support/acpi_sony.c#5 integrate .. //depot/projects/wifi/sys/dev/acpi_support/acpi_toshiba.c#4 integrate .. //depot/projects/wifi/sys/dev/acpica/Osd/OsdDebug.c#3 integrate .. //depot/projects/wifi/sys/dev/acpica/Osd/OsdHardware.c#4 integrate .. //depot/projects/wifi/sys/dev/acpica/Osd/OsdInterrupt.c#4 integrate .. //depot/projects/wifi/sys/dev/acpica/Osd/OsdMemory.c#3 integrate .. //depot/projects/wifi/sys/dev/acpica/Osd/OsdSchedule.c#6 integrate .. //depot/projects/wifi/sys/dev/acpica/Osd/OsdStream.c#3 integrate .. //depot/projects/wifi/sys/dev/acpica/Osd/OsdSynch.c#3 integrate .. //depot/projects/wifi/sys/dev/acpica/Osd/OsdTable.c#3 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi.c#16 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_acad.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_battery.c#6 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_button.c#3 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_cmbat.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_cpu.c#6 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_ec.c#8 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_if.m#7 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_lid.c#2 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_package.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_pci.c#4 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_pci_link.c#11 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_pcib.c#8 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_pcib_acpi.c#6 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_pcib_pci.c#4 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_perf.c#8 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_powerres.c#3 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_quirk.c#3 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_resource.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_thermal.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_throttle.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_timer.c#4 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_video.c#4 integrate .. //depot/projects/wifi/sys/dev/ata/ata-all.c#12 integrate .. //depot/projects/wifi/sys/dev/ata/ata-all.h#11 integrate .. //depot/projects/wifi/sys/dev/ata/ata-chipset.c#16 integrate .. //depot/projects/wifi/sys/dev/ata/ata-disk.c#11 integrate .. //depot/projects/wifi/sys/dev/ata/ata-lowlevel.c#14 integrate .. //depot/projects/wifi/sys/dev/ata/ata-pci.h#11 integrate .. //depot/projects/wifi/sys/dev/ata/ata-raid.c#12 integrate .. //depot/projects/wifi/sys/dev/ata/ata-raid.h#8 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-cd.c#10 integrate .. //depot/projects/wifi/sys/dev/awi/awi.c#13 integrate .. //depot/projects/wifi/sys/dev/bge/if_bge.c#14 integrate .. //depot/projects/wifi/sys/dev/cp/if_cp.c#9 integrate .. //depot/projects/wifi/sys/dev/ctau/if_ct.c#9 integrate .. //depot/projects/wifi/sys/dev/cx/if_cx.c#8 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed.c#12 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_3c503.c#3 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_cbus.c#7 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_hpp.c#3 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_isa.c#6 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_novell.c#4 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_pccard.c#9 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_pci.c#7 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_sic.c#4 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_wd80x3.c#4 integrate .. //depot/projects/wifi/sys/dev/ed/if_edreg.h#5 integrate .. //depot/projects/wifi/sys/dev/ed/if_edvar.h#7 integrate .. //depot/projects/wifi/sys/dev/ep/if_ep_eisa.c#4 integrate .. //depot/projects/wifi/sys/dev/ep/if_ep_pccard.c#5 integrate .. //depot/projects/wifi/sys/dev/ex/if_ex_pccard.c#5 integrate .. //depot/projects/wifi/sys/dev/fdc/fdc.c#8 integrate .. //depot/projects/wifi/sys/dev/fdc/fdc_acpi.c#2 integrate .. //depot/projects/wifi/sys/dev/firewire/if_fwip.c#5 integrate .. //depot/projects/wifi/sys/dev/fxp/if_fxp.c#13 integrate .. //depot/projects/wifi/sys/dev/gem/if_gem.c#6 integrate .. //depot/projects/wifi/sys/dev/hme/if_hme.c#9 integrate .. //depot/projects/wifi/sys/dev/hptmv/access601.h#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/amd64-elf.raid.o.uu#1 branch .. //depot/projects/wifi/sys/dev/hptmv/array.h#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/atapi.h#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/command.h#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/entry.c#7 integrate .. //depot/projects/wifi/sys/dev/hptmv/global.h#4 integrate .. //depot/projects/wifi/sys/dev/hptmv/gui_lib.c#3 integrate .. //depot/projects/wifi/sys/dev/hptmv/hptintf.h#3 integrate .. //depot/projects/wifi/sys/dev/hptmv/hptproc.c#3 integrate .. //depot/projects/wifi/sys/dev/hptmv/i386-elf.raid.o.uu#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/ioctl.c#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/mv.c#3 integrate .. //depot/projects/wifi/sys/dev/hptmv/mvOs.h#3 integrate .. //depot/projects/wifi/sys/dev/hptmv/mvSata.h#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/mvStorageDev.h#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/osbsd.h#4 integrate .. //depot/projects/wifi/sys/dev/hptmv/raid5n.h#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/readme.txt#2 integrate .. //depot/projects/wifi/sys/dev/hptmv/vdevice.h#2 integrate .. //depot/projects/wifi/sys/dev/hwpmc/hwpmc_amd.c#4 integrate .. //depot/projects/wifi/sys/dev/hwpmc/hwpmc_mod.c#6 integrate .. //depot/projects/wifi/sys/dev/hwpmc/hwpmc_x86.c#2 integrate .. //depot/projects/wifi/sys/dev/iwi/if_iwireg.h#4 integrate .. //depot/projects/wifi/sys/dev/iwi/if_iwivar.h#5 integrate .. //depot/projects/wifi/sys/dev/md/md.c#10 integrate .. //depot/projects/wifi/sys/dev/mpt/mpt_pci.c#6 integrate .. //depot/projects/wifi/sys/dev/my/if_my.c#6 integrate .. //depot/projects/wifi/sys/dev/my/if_myreg.h#4 integrate .. //depot/projects/wifi/sys/dev/pccard/card_if.m#6 integrate .. //depot/projects/wifi/sys/dev/pccard/pccard.c#10 integrate .. //depot/projects/wifi/sys/dev/pccard/pccard_cis.c#8 integrate .. //depot/projects/wifi/sys/dev/pccard/pccarddevs#10 integrate .. //depot/projects/wifi/sys/dev/pccard/pccardvar.h#5 integrate .. //depot/projects/wifi/sys/dev/pccbb/pccbb.c#6 integrate .. //depot/projects/wifi/sys/dev/pci/pci.c#17 integrate .. //depot/projects/wifi/sys/dev/pci/pci_pci.c#5 integrate .. //depot/projects/wifi/sys/dev/pci/pci_user.c#4 integrate .. //depot/projects/wifi/sys/dev/pci/pcivar.h#4 integrate .. //depot/projects/wifi/sys/dev/ral/if_ral_pccard.c#3 integrate .. //depot/projects/wifi/sys/dev/re/if_re.c#9 integrate .. //depot/projects/wifi/sys/dev/sn/if_sn.c#7 integrate .. //depot/projects/wifi/sys/dev/sn/if_sn_pccard.c#4 integrate .. //depot/projects/wifi/sys/dev/sn/if_snvar.h#4 integrate .. //depot/projects/wifi/sys/dev/sound/isa/mss.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/isa/sb16.c#3 integrate .. //depot/projects/wifi/sys/dev/sound/pci/csapcm.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/pci/maestro3.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/pci/neomagic.c#3 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/ac97.c#5 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/ac97.h#3 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/channel.c#5 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/channel.h#3 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/dsp.c#7 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/fake.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/feeder.c#3 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/feeder_fmt.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/sound.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/sound.h#5 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/vchan.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/usb/uaudio.c#5 integrate .. //depot/projects/wifi/sys/dev/syscons/scmouse.c#3 integrate .. //depot/projects/wifi/sys/dev/syscons/scvesactl.c#3 integrate .. //depot/projects/wifi/sys/dev/syscons/scvidctl.c#3 integrate .. //depot/projects/wifi/sys/dev/syscons/syscons.c#6 integrate .. //depot/projects/wifi/sys/dev/syscons/syscons.h#4 integrate .. //depot/projects/wifi/sys/dev/twa/tw_osl_cam.c#4 integrate .. //depot/projects/wifi/sys/dev/twa/tw_osl_freebsd.c#2 integrate .. //depot/projects/wifi/sys/dev/twa/tw_osl_includes.h#2 integrate .. //depot/projects/wifi/sys/dev/twa/tw_osl_ioctl.h#2 integrate .. //depot/projects/wifi/sys/dev/twa/tw_osl_share.h#3 integrate .. //depot/projects/wifi/sys/dev/txp/if_txp.c#7 integrate .. //depot/projects/wifi/sys/dev/uart/uart_cpu_sparc64.c#9 integrate .. //depot/projects/wifi/sys/dev/usb/uhub.c#6 integrate .. //depot/projects/wifi/sys/dev/usb/usbdevs#14 integrate .. //depot/projects/wifi/sys/dev/xe/if_xe_pccard.c#7 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs.h#4 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_devs.c#7 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_int.h#1 branch .. //depot/projects/wifi/sys/fs/devfs/devfs_rule.c#3 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_vfsops.c#11 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_vnops.c#25 integrate .. //depot/projects/wifi/sys/fs/fifofs/fifo_vnops.c#10 integrate .. //depot/projects/wifi/sys/fs/hpfs/hpfs_vfsops.c#9 integrate .. //depot/projects/wifi/sys/fs/msdosfs/msdosfs_denode.c#8 integrate .. //depot/projects/wifi/sys/fs/msdosfs/msdosfs_vfsops.c#11 integrate .. //depot/projects/wifi/sys/fs/ntfs/ntfs.h#5 integrate .. //depot/projects/wifi/sys/fs/ntfs/ntfs_vfsops.c#13 integrate .. //depot/projects/wifi/sys/fs/nullfs/null_vnops.c#12 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs_vnops.c#9 integrate .. //depot/projects/wifi/sys/fs/udf/udf_vfsops.c#8 integrate .. //depot/projects/wifi/sys/geom/eli/g_eli.c#2 integrate .. //depot/projects/wifi/sys/geom/eli/g_eli.h#3 integrate .. //depot/projects/wifi/sys/geom/eli/g_eli_ctl.c#2 integrate .. //depot/projects/wifi/sys/geom/geom.h#6 integrate .. //depot/projects/wifi/sys/geom/geom_ctl.c#4 integrate .. //depot/projects/wifi/sys/geom/geom_event.c#4 integrate .. //depot/projects/wifi/sys/geom/geom_io.c#3 integrate .. //depot/projects/wifi/sys/geom/label/g_label.c#3 integrate .. //depot/projects/wifi/sys/geom/label/g_label.h#3 integrate .. //depot/projects/wifi/sys/geom/label/g_label_ext2fs.c#1 branch .. //depot/projects/wifi/sys/geom/label/g_label_iso9660.c#2 integrate .. //depot/projects/wifi/sys/geom/label/g_label_ntfs.c#1 branch .. //depot/projects/wifi/sys/geom/label/g_label_reiserfs.c#1 branch .. //depot/projects/wifi/sys/geom/stripe/g_stripe.c#7 integrate .. //depot/projects/wifi/sys/geom/stripe/g_stripe.h#4 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum.c#5 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_drive.c#6 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_init.c#6 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_plex.c#5 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_rm.c#3 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_var.h#7 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_volume.c#5 integrate .. //depot/projects/wifi/sys/gnu/fs/ext2fs/ext2_vfsops.c#2 integrate .. //depot/projects/wifi/sys/gnu/fs/ext2fs/fs.h#2 integrate .. //depot/projects/wifi/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#2 integrate .. //depot/projects/wifi/sys/i386/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/wifi/sys/i386/acpica/acpi_machdep.c#3 integrate .. //depot/projects/wifi/sys/i386/acpica/acpi_wakeup.c#3 integrate .. //depot/projects/wifi/sys/i386/acpica/madt.c#4 integrate .. //depot/projects/wifi/sys/i386/conf/NOTES#19 integrate .. //depot/projects/wifi/sys/i386/conf/PAE#7 integrate .. //depot/projects/wifi/sys/i386/i386/db_trace.c#6 integrate .. //depot/projects/wifi/sys/i386/i386/mp_machdep.c#12 integrate .. //depot/projects/wifi/sys/i386/i386/pmap.c#12 integrate .. //depot/projects/wifi/sys/i386/i386/swtch.s#3 integrate .. //depot/projects/wifi/sys/i386/i386/vm_machdep.c#15 integrate .. //depot/projects/wifi/sys/i386/include/_limits.h#3 integrate .. //depot/projects/wifi/sys/i386/include/signal.h#3 integrate .. //depot/projects/wifi/sys/i386/include/ucontext.h#2 integrate .. //depot/projects/wifi/sys/i386/isa/if_el.c#5 delete .. //depot/projects/wifi/sys/i386/isa/if_elreg.h#3 delete .. //depot/projects/wifi/sys/i386/pci/pci_pir.c#6 integrate .. //depot/projects/wifi/sys/ia64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/wifi/sys/ia64/acpica/acpi_machdep.c#2 integrate .. //depot/projects/wifi/sys/ia64/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/wifi/sys/ia64/acpica/madt.c#2 integrate .. //depot/projects/wifi/sys/ia64/conf/GENERIC#4 integrate .. //depot/projects/wifi/sys/ia64/ia32/ia32_reg.c#2 integrate .. //depot/projects/wifi/sys/ia64/ia32/ia32_signal.c#2 integrate .. //depot/projects/wifi/sys/ia64/ia32/ia32_sigtramp.c#2 delete .. //depot/projects/wifi/sys/ia64/ia64/db_interface.c#4 delete .. //depot/projects/wifi/sys/ia64/ia64/db_machdep.c#1 branch .. //depot/projects/wifi/sys/ia64/ia64/db_trace.c#5 delete .. //depot/projects/wifi/sys/ia64/ia64/elf_machdep.c#2 integrate .. //depot/projects/wifi/sys/ia64/ia64/interrupt.c#5 integrate .. //depot/projects/wifi/sys/ia64/ia64/machdep.c#10 integrate .. //depot/projects/wifi/sys/ia64/ia64/mp_machdep.c#5 integrate .. //depot/projects/wifi/sys/ia64/ia64/pmap.c#10 integrate .. //depot/projects/wifi/sys/ia64/ia64/sal.c#2 integrate .. //depot/projects/wifi/sys/ia64/ia64/trap.c#7 integrate .. //depot/projects/wifi/sys/ia64/ia64/vm_machdep.c#9 integrate .. //depot/projects/wifi/sys/ia64/include/_limits.h#3 integrate .. //depot/projects/wifi/sys/ia64/include/param.h#5 integrate .. //depot/projects/wifi/sys/ia64/include/pmap.h#3 integrate .. //depot/projects/wifi/sys/ia64/include/signal.h#3 integrate .. //depot/projects/wifi/sys/ia64/include/vmparam.h#3 integrate .. //depot/projects/wifi/sys/isofs/cd9660/cd9660_vfsops.c#10 integrate .. //depot/projects/wifi/sys/kern/kern_acl.c#2 integrate .. //depot/projects/wifi/sys/kern/kern_conf.c#11 integrate .. //depot/projects/wifi/sys/kern/kern_cpu.c#6 integrate .. //depot/projects/wifi/sys/kern/kern_descrip.c#16 integrate .. //depot/projects/wifi/sys/kern/kern_exit.c#12 integrate .. //depot/projects/wifi/sys/kern/kern_kse.c#9 integrate .. //depot/projects/wifi/sys/kern/kern_lock.c#12 integrate .. //depot/projects/wifi/sys/kern/kern_mib.c#5 integrate .. //depot/projects/wifi/sys/kern/kern_mutex.c#6 integrate .. //depot/projects/wifi/sys/kern/kern_poll.c#4 integrate .. //depot/projects/wifi/sys/kern/kern_shutdown.c#5 integrate .. //depot/projects/wifi/sys/kern/kern_tc.c#3 integrate .. //depot/projects/wifi/sys/kern/kern_timeout.c#5 integrate .. //depot/projects/wifi/sys/kern/link_elf.c#2 integrate .. //depot/projects/wifi/sys/kern/link_elf_obj.c#2 integrate .. //depot/projects/wifi/sys/kern/sched_ule.c#15 integrate .. //depot/projects/wifi/sys/kern/subr_prf.c#5 integrate .. //depot/projects/wifi/sys/kern/subr_stack.c#2 integrate .. //depot/projects/wifi/sys/kern/subr_witness.c#13 integrate .. //depot/projects/wifi/sys/kern/sys_process.c#6 integrate .. //depot/projects/wifi/sys/kern/uipc_mbuf.c#13 integrate .. //depot/projects/wifi/sys/kern/uipc_socket.c#16 integrate .. //depot/projects/wifi/sys/kern/vfs_cluster.c#12 integrate .. //depot/projects/wifi/sys/kern/vfs_default.c#20 integrate .. //depot/projects/wifi/sys/kern/vfs_hash.c#3 integrate .. //depot/projects/wifi/sys/kern/vfs_lookup.c#12 integrate .. //depot/projects/wifi/sys/kern/vfs_mount.c#22 integrate .. //depot/projects/wifi/sys/kern/vfs_subr.c#31 integrate .. //depot/projects/wifi/sys/kern/vfs_syscalls.c#13 integrate .. //depot/projects/wifi/sys/libkern/iconv.c#4 integrate .. //depot/projects/wifi/sys/modules/Makefile#27 integrate .. //depot/projects/wifi/sys/modules/de/Makefile#3 integrate .. //depot/projects/wifi/sys/modules/el/Makefile#2 delete .. //depot/projects/wifi/sys/modules/geom/geom_label/Makefile#2 integrate .. //depot/projects/wifi/sys/modules/geom/geom_vinum/Makefile#2 integrate .. //depot/projects/wifi/sys/modules/hptmv/Makefile#3 integrate .. //depot/projects/wifi/sys/modules/padlock/Makefile#1 branch .. //depot/projects/wifi/sys/modules/procfs/Makefile#2 integrate .. //depot/projects/wifi/sys/net/bpf.c#14 integrate .. //depot/projects/wifi/sys/net/bpf.h#4 integrate .. //depot/projects/wifi/sys/net/bpfdesc.h#4 integrate .. //depot/projects/wifi/sys/net/bridgestp.c#4 integrate .. //depot/projects/wifi/sys/net/if.c#19 integrate .. //depot/projects/wifi/sys/net/if_atmsubr.c#6 integrate .. //depot/projects/wifi/sys/net/if_bridge.c#6 integrate .. //depot/projects/wifi/sys/net/if_ethersubr.c#12 integrate .. //depot/projects/wifi/sys/net/if_fwsubr.c#7 integrate .. //depot/projects/wifi/sys/net/if_iso88025subr.c#6 integrate .. //depot/projects/wifi/sys/net/if_ppp.c#6 integrate .. //depot/projects/wifi/sys/net/if_pppvar.h#5 integrate .. //depot/projects/wifi/sys/net/if_vlan.c#8 integrate .. //depot/projects/wifi/sys/net/if_vlan_var.h#4 integrate .. //depot/projects/wifi/sys/net/ppp_tty.c#7 integrate .. //depot/projects/wifi/sys/net/route.c#5 integrate .. //depot/projects/wifi/sys/net/rtsock.c#9 integrate .. //depot/projects/wifi/sys/net/zlib.c#3 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_acl.c#6 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#48 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#30 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_node.c#64 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_proto.h#23 integrate .. //depot/projects/wifi/sys/netatalk/at_proto.c#3 integrate .. //depot/projects/wifi/sys/netatalk/ddp_output.c#5 integrate .. //depot/projects/wifi/sys/netgraph/bluetooth/include/ng_l2cap.h#3 integrate .. //depot/projects/wifi/sys/netgraph/bluetooth/l2cap/ng_l2cap_cmds.c#3 integrate .. //depot/projects/wifi/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c#5 integrate .. //depot/projects/wifi/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.h#3 integrate .. //depot/projects/wifi/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#4 integrate .. //depot/projects/wifi/sys/netgraph/netgraph.h#12 integrate .. //depot/projects/wifi/sys/netgraph/ng_base.c#16 integrate .. //depot/projects/wifi/sys/netgraph/ng_fec.c#6 integrate .. //depot/projects/wifi/sys/netgraph/ng_ksocket.c#6 integrate .. //depot/projects/wifi/sys/netgraph/ng_pptpgre.c#4 integrate .. //depot/projects/wifi/sys/netgraph/ng_socket.c#9 integrate .. //depot/projects/wifi/sys/netgraph/ng_split.c#4 integrate .. //depot/projects/wifi/sys/netinet/if_atm.c#3 integrate .. //depot/projects/wifi/sys/netinet/if_ether.c#9 integrate .. //depot/projects/wifi/sys/netinet/in.c#8 integrate .. //depot/projects/wifi/sys/netinet/in.h#4 integrate .. //depot/projects/wifi/sys/netinet/in_pcb.h#4 integrate .. //depot/projects/wifi/sys/netinet/ip_carp.c#10 integrate .. //depot/projects/wifi/sys/netinet/ip_fastfwd.c#8 integrate .. //depot/projects/wifi/sys/netinet/ip_fw.h#8 integrate .. //depot/projects/wifi/sys/netinet/ip_fw2.c#14 integrate .. //depot/projects/wifi/sys/netinet/ip_icmp.c#6 integrate .. //depot/projects/wifi/sys/netinet/ip_input.c#10 integrate .. //depot/projects/wifi/sys/netinet/ip_output.c#10 integrate .. //depot/projects/wifi/sys/netinet/raw_ip.c#7 integrate .. //depot/projects/wifi/sys/netinet/tcp.h#7 integrate .. //depot/projects/wifi/sys/netinet/tcp_input.c#14 integrate .. //depot/projects/wifi/sys/netinet/tcp_sack.c#13 integrate .. //depot/projects/wifi/sys/netinet/tcp_subr.c#18 integrate .. //depot/projects/wifi/sys/netinet/tcp_syncache.c#7 integrate .. //depot/projects/wifi/sys/netinet/tcp_usrreq.c#15 integrate .. //depot/projects/wifi/sys/netinet/udp_usrreq.c#8 integrate .. //depot/projects/wifi/sys/netinet6/icmp6.c#10 integrate .. //depot/projects/wifi/sys/netinet6/in6.c#7 integrate .. //depot/projects/wifi/sys/netinet6/in6.h#6 integrate .. //depot/projects/wifi/sys/netinet6/in6_ifattach.c#5 integrate .. //depot/projects/wifi/sys/netinet6/in6_pcb.c#4 integrate .. //depot/projects/wifi/sys/netinet6/in6_proto.c#6 integrate .. //depot/projects/wifi/sys/netinet6/in6_src.c#5 integrate .. //depot/projects/wifi/sys/netinet6/in6_var.h#6 integrate .. //depot/projects/wifi/sys/netinet6/ip6_fw.c#4 integrate .. //depot/projects/wifi/sys/netinet6/ip6_mroute.c#5 integrate .. //depot/projects/wifi/sys/netinet6/ip6_output.c#10 integrate .. //depot/projects/wifi/sys/netinet6/ip6_var.h#7 integrate .. //depot/projects/wifi/sys/netinet6/mld6.c#7 integrate .. //depot/projects/wifi/sys/netinet6/nd6.c#7 integrate .. //depot/projects/wifi/sys/netinet6/nd6_nbr.c#7 integrate .. //depot/projects/wifi/sys/netinet6/nd6_rtr.c#4 integrate .. //depot/projects/wifi/sys/netinet6/raw_ip6.c#8 integrate .. //depot/projects/wifi/sys/netipx/ipx_proto.c#3 integrate .. //depot/projects/wifi/sys/netkey/key.c#6 integrate .. //depot/projects/wifi/sys/netnatm/natm_proto.c#5 integrate .. //depot/projects/wifi/sys/opencrypto/cryptodev.c#5 integrate .. //depot/projects/wifi/sys/opencrypto/xform.c#4 integrate .. //depot/projects/wifi/sys/pc98/cbus/fdc.c#2 integrate .. //depot/projects/wifi/sys/pc98/pc98/epsonio.h#3 integrate .. //depot/projects/wifi/sys/pci/if_dc.c#9 integrate .. //depot/projects/wifi/sys/pci/if_dcreg.h#4 integrate .. //depot/projects/wifi/sys/pci/if_de.c#9 integrate .. //depot/projects/wifi/sys/pci/if_devar.h#5 integrate .. //depot/projects/wifi/sys/pci/if_pcn.c#9 integrate .. //depot/projects/wifi/sys/pci/if_sf.c#9 integrate .. //depot/projects/wifi/sys/pci/if_sfreg.h#6 integrate .. //depot/projects/wifi/sys/pci/if_sk.c#16 integrate .. //depot/projects/wifi/sys/pci/if_ste.c#7 integrate .. //depot/projects/wifi/sys/pci/if_stereg.h#4 integrate .. //depot/projects/wifi/sys/pci/if_wb.c#7 integrate .. //depot/projects/wifi/sys/pci/if_wbreg.h#4 integrate .. //depot/projects/wifi/sys/pci/if_xl.c#11 integrate .. //depot/projects/wifi/sys/pci/if_xlreg.h#6 integrate .. //depot/projects/wifi/sys/powerpc/include/_limits.h#3 integrate .. //depot/projects/wifi/sys/powerpc/include/signal.h#3 integrate .. //depot/projects/wifi/sys/powerpc/ofw/ofw_syscons.c#5 integrate .. //depot/projects/wifi/sys/powerpc/powerpc/db_hwwatch.c#3 integrate .. //depot/projects/wifi/sys/powerpc/powerpc/pmap.c#10 integrate .. //depot/projects/wifi/sys/sparc64/conf/GENERIC#10 integrate .. //depot/projects/wifi/sys/sparc64/include/_limits.h#3 integrate .. //depot/projects/wifi/sys/sparc64/include/signal.h#3 integrate .. //depot/projects/wifi/sys/sparc64/sparc64/db_hwwatch.c#2 integrate .. //depot/projects/wifi/sys/sparc64/sparc64/pmap.c#10 integrate .. //depot/projects/wifi/sys/sys/acl.h#3 integrate .. //depot/projects/wifi/sys/sys/ata.h#6 integrate .. //depot/projects/wifi/sys/sys/buf.h#10 integrate .. //depot/projects/wifi/sys/sys/callout.h#3 integrate .. //depot/projects/wifi/sys/sys/conf.h#12 integrate .. //depot/projects/wifi/sys/sys/iconv.h#5 integrate .. //depot/projects/wifi/sys/sys/kernel.h#8 integrate .. //depot/projects/wifi/sys/sys/ktr.h#7 integrate .. //depot/projects/wifi/sys/sys/malloc.h#4 integrate .. //depot/projects/wifi/sys/sys/mbuf.h#15 integrate .. //depot/projects/wifi/sys/sys/param.h#16 integrate .. //depot/projects/wifi/sys/sys/protosw.h#4 integrate .. //depot/projects/wifi/sys/sys/signal.h#2 integrate .. //depot/projects/wifi/sys/sys/stack.h#2 integrate .. //depot/projects/wifi/sys/sys/sx.h#3 integrate .. //depot/projects/wifi/sys/sys/systm.h#14 integrate .. //depot/projects/wifi/sys/sys/vnode.h#25 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_rawread.c#9 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_softdep.c#12 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_vfsops.c#23 integrate .. //depot/projects/wifi/sys/ufs/ufs/ufs_dirhash.c#4 integrate .. //depot/projects/wifi/sys/ufs/ufs/ufs_vnops.c#18 integrate .. //depot/projects/wifi/sys/vm/pmap.h#4 integrate .. //depot/projects/wifi/sys/vm/uma_core.c#14 integrate .. //depot/projects/wifi/sys/vm/vm_contig.c#7 integrate .. //depot/projects/wifi/sys/vm/vm_fault.c#9 integrate .. //depot/projects/wifi/sys/vm/vm_map.c#8 integrate .. //depot/projects/wifi/sys/vm/vm_page.c#10 integrate .. //depot/projects/wifi/sys/vm/vm_pager.c#8 integrate .. //depot/projects/wifi/sys/vm/vnode_pager.c#20 integrate .. //depot/projects/wifi/tools/regression/bin/sh/Makefile#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/alias.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/alias.0.stdout#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/alias.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/alias.1.stderr#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/hash1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/hash1.0.stdout#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/hash2.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/hash2.0.stdout#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/hash3.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/hash3.0.stdout#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/return1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/return2.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/return3.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/builtins/unalias.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/regress.sh#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/regress.t#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/and1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/and2.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/and3.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/and4.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/background1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/cmd1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/cmd2.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/elif1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/elif2.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/for1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/func1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/func2.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/if1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/if2.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/if3.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/not1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/not2.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/or1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/or2.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/or3.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/pipe1.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/pipe2.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/return1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/semi1.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/semi2.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/subshell1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/subshell2.1#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/until1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/until2.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/until3.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/while1.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/while2.0#1 branch .. //depot/projects/wifi/tools/regression/bin/sh/set-e/while3.0#1 branch .. //depot/projects/wifi/tools/regression/fifo/fifo_create/Makefile#1 branch .. //depot/projects/wifi/tools/regression/fifo/fifo_create/fifo_create.c#1 branch .. //depot/projects/wifi/tools/regression/fifo/fifo_io/Makefile#1 branch .. //depot/projects/wifi/tools/regression/fifo/fifo_io/fifo_io.c#1 branch .. //depot/projects/wifi/tools/regression/fifo/fifo_misc/Makefile#1 branch .. //depot/projects/wifi/tools/regression/fifo/fifo_misc/fifo_misc.c#1 branch .. //depot/projects/wifi/tools/regression/fifo/fifo_open/Makefile#1 branch .. //depot/projects/wifi/tools/regression/fifo/fifo_open/fifo_open.c#1 branch .. //depot/projects/wifi/tools/regression/netinet/msocket_ifnet_remove/Makefile#1 branch .. //depot/projects/wifi/tools/regression/netinet/msocket_ifnet_remove/msocket_ifnet_remove.c#1 branch .. //depot/projects/wifi/tools/regression/sockets/shutdown/Makefile#1 branch .. //depot/projects/wifi/tools/regression/sockets/shutdown/shutdown.c#1 branch .. //depot/projects/wifi/tools/regression/usr.bin/pkill/pgrep-F.t#2 integrate .. //depot/projects/wifi/tools/regression/usr.bin/pkill/pgrep-LF.t#1 branch .. //depot/projects/wifi/tools/regression/usr.bin/pkill/pkill-F.t#2 integrate .. //depot/projects/wifi/tools/regression/usr.bin/pkill/pkill-LF.t#1 branch .. //depot/projects/wifi/tools/tools/ath/athctrl.sh#1 branch .. //depot/projects/wifi/tools/tools/bpfstat/Makefile#2 delete .. //depot/projects/wifi/tools/tools/bpfstat/bpfstat.8#2 delete .. //depot/projects/wifi/tools/tools/bpfstat/bpfstat.c#2 delete .. //depot/projects/wifi/tools/tools/bpfstat/bpfstat.h#2 delete .. //depot/projects/wifi/tools/tools/nanobsd/nanobsd.sh#3 integrate .. //depot/projects/wifi/tools/tools/recoverdisk/README#3 integrate .. //depot/projects/wifi/tools/tools/recoverdisk/recoverdisk.c#2 integrate .. //depot/projects/wifi/usr.bin/at/parsetime.c#3 integrate .. //depot/projects/wifi/usr.bin/calendar/calendars/calendar.birthday#3 integrate .. //depot/projects/wifi/usr.bin/calendar/calendars/calendar.history#3 integrate .. //depot/projects/wifi/usr.bin/calendar/calendars/calendar.holiday#2 integrate .. //depot/projects/wifi/usr.bin/cmp/Makefile#2 integrate .. //depot/projects/wifi/usr.bin/cmp/cmp.1#2 integrate .. //depot/projects/wifi/usr.bin/cmp/cmp.c#2 integrate .. //depot/projects/wifi/usr.bin/cmp/extern.h#2 integrate .. //depot/projects/wifi/usr.bin/cmp/link.c#1 branch .. //depot/projects/wifi/usr.bin/compress/compress.1#3 integrate .. //depot/projects/wifi/usr.bin/find/function.c#3 integrate .. //depot/projects/wifi/usr.bin/find/getdate.y#2 integrate .. //depot/projects/wifi/usr.bin/locate/locate/locate.rc#2 integrate .. //depot/projects/wifi/usr.bin/locate/locate/updatedb.sh#2 integrate .. //depot/projects/wifi/usr.bin/mail/USD.doc/mail0.nr#2 integrate .. //depot/projects/wifi/usr.bin/make/main.c#21 integrate .. //depot/projects/wifi/usr.bin/netstat/Makefile#6 integrate .. //depot/projects/wifi/usr.bin/netstat/bpf.c#1 branch .. //depot/projects/wifi/usr.bin/netstat/if.c#3 integrate .. //depot/projects/wifi/usr.bin/netstat/main.c#6 integrate .. //depot/projects/wifi/usr.bin/netstat/netstat.1#2 integrate .. //depot/projects/wifi/usr.bin/netstat/netstat.h#4 integrate .. //depot/projects/wifi/usr.bin/pkill/pkill.1#4 integrate .. //depot/projects/wifi/usr.bin/pkill/pkill.c#5 integrate .. //depot/projects/wifi/usr.bin/rpcgen/Makefile#2 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_clntout.c#3 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_cout.c#3 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_hout.c#3 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_main.c#4 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_parse.h#2 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_sample.c#2 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_scan.h#2 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_svcout.c#3 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_tblout.c#4 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpc_util.h#2 integrate .. //depot/projects/wifi/usr.bin/rpcgen/rpcgen.1#3 integrate .. //depot/projects/wifi/usr.bin/ruptime/ruptime.c#3 integrate .. //depot/projects/wifi/usr.bin/split/split.1#3 integrate .. //depot/projects/wifi/usr.bin/split/split.c#2 integrate .. //depot/projects/wifi/usr.bin/tail/forward.c#6 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Sep 15 21:24:12 2005 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 0CBC316A422; Thu, 15 Sep 2005 21:24:12 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BD3AC16A41F for ; Thu, 15 Sep 2005 21:24:11 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 77FF543D69 for ; Thu, 15 Sep 2005 21:24:05 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FLO5w0025251 for ; Thu, 15 Sep 2005 21:24:05 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FLO42I025246 for perforce@freebsd.org; Thu, 15 Sep 2005 21:24:04 GMT (envelope-from sam@freebsd.org) Date: Thu, 15 Sep 2005 21:24:04 GMT Message-Id: <200509152124.j8FLO42I025246@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 83712 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, 15 Sep 2005 21:24:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=83712 Change 83712 by sam@sam_ebb on 2005/09/15 21:23:52 IFC and list caps fixup Affected files ... .. //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#46 edit Differences ... ==== //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#46 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sbin/ifconfig/ifieee80211.c,v 1.23 2005/08/01 16:34:41 sam Exp $ + * $FreeBSD: src/sbin/ifconfig/ifieee80211.c,v 1.24 2005/08/03 20:57:33 stefanf Exp $ */ /*- @@ -301,8 +301,8 @@ } /* - * This function is purly a NetBSD compatability interface. The NetBSD - * iterface is too inflexable, but it's there so we'll support it since + * This function is purely a NetBSD compatability interface. The NetBSD + * interface is too inflexible, but it's there so we'll support it since * it's not all that hard. */ static void @@ -636,6 +636,30 @@ } static +DECL_CMD_FUNC(set80211kickmac, val, d) +{ + char *temp; + struct sockaddr_dl sdl; + struct ieee80211req_mlme mlme; + + temp = malloc(strlen(val) + 1); + if (temp == NULL) + errx(1, "malloc failed"); + temp[0] = ':'; + strcpy(temp + 1, val); + sdl.sdl_len = sizeof(sdl); + link_addr(temp, &sdl); + free(temp); + if (sdl.sdl_alen != IEEE80211_ADDR_LEN) + errx(1, "malformed link-level address"); + memset(&mlme, 0, sizeof(mlme)); + mlme.im_op = IEEE80211_MLME_DEAUTH; + mlme.im_reason = IEEE80211_REASON_AUTH_EXPIRE; + memcpy(mlme.im_macaddr, LLADDR(&sdl), IEEE80211_ADDR_LEN); + set80211(s, IEEE80211_IOC_MLME, 0, sizeof(mlme), (u_int8_t *) &mlme); +} + +static DECL_CMD_FUNC(set80211maccmd, val, d) { set80211(s, IEEE80211_IOC_MACCMD, d, 0, NULL); @@ -827,7 +851,7 @@ return maxlen; } -/* unalligned little endian access */ +/* unaligned little endian access */ #define LE_READ_4(p) \ ((u_int32_t) \ ((((const u_int8_t *)(p))[0] ) | \ @@ -1109,7 +1133,7 @@ } #define IEEE80211_C_BITS \ -"\020\1WEP\2TKIP\3AES\4AES_CCM\6CKIP\11IBSS\12PMGT\13HOSTAP\14AHDEMO" \ +"\020\1WEP\2TKIP\3AES\4AES_CCM\6CKIP\7FF\10TURBOP\11IBSS\12PMGT\13HOSTAP\14AHDEMO" \ "\15SWRETRY\16TXPMGT\17SHSLOT\20SHPREAMBLE\21MONITOR\22TKIPMIC\30WPA1" \ "\31WPA2\32BURST\33WME\34WDS\36BGSCAN\37TXFRAG" @@ -1187,6 +1211,63 @@ } } +static void +list_mac(int s) +{ + struct ieee80211req ireq; + struct ieee80211req_maclist *acllist; + int i, nacls, policy; + char c; + + (void) memset(&ireq, 0, sizeof(ireq)); + (void) strncpy(ireq.i_name, name, sizeof(ireq.i_name)); /* XXX ?? */ + ireq.i_type = IEEE80211_IOC_MACCMD; + ireq.i_val = IEEE80211_MACCMD_POLICY; + if (ioctl(s, SIOCG80211, &ireq) < 0) { + if (errno == EINVAL) { + printf("No acl policy loaded\n"); + return; + } + err(1, "unable to get mac policy"); + } + policy = ireq.i_val; + + ireq.i_val = IEEE80211_MACCMD_LIST; + ireq.i_len = 0; + if (ioctl(s, SIOCG80211, &ireq) < 0) + err(1, "unable to get mac acl list size"); + if (ireq.i_len == 0) /* NB: no acls */ + return; + + ireq.i_data = malloc(ireq.i_len); + if (ireq.i_data == NULL) + err(1, "out of memory for acl list"); + + if (ioctl(s, SIOCG80211, &ireq) < 0) + err(1, "unable to get mac acl list"); + if (policy == IEEE80211_MACCMD_POLICY_OPEN) { + if (verbose) + printf("policy: open\n"); + c = '*'; + } else if (policy == IEEE80211_MACCMD_POLICY_ALLOW) { + if (verbose) + printf("policy: allow\n"); + c = '+'; + } else if (policy == IEEE80211_MACCMD_POLICY_DENY) { + if (verbose) + printf("policy: deny\n"); + c = '-'; + } else { + printf("policy: unknown (%u)\n", policy); + c = '?'; + } + nacls = ireq.i_len / sizeof(*acllist); + acllist = (struct ieee80211req_maclist *) ireq.i_data; + for (i = 0; i < nacls; i++) + printf("%c%s\n", c, ether_ntoa( + (const struct ether_addr *) acllist[i].ml_macaddr)); +} + static DECL_CMD_FUNC(set80211list, arg, d) { @@ -1206,6 +1287,8 @@ list_capabilities(s); else if (iseq(arg, "wme")) list_wme(s); + else if (iseq(arg, "mac")) + list_mac(s); else errx(1, "Don't know how to list %s for %s", arg, name); #undef iseq @@ -1404,7 +1487,7 @@ ireq.i_type = IEEE80211_IOC_SSID; ireq.i_val = -1; if (ioctl(s, SIOCG80211, &ireq) < 0) { - /* If we can't get the SSID, the this isn't an 802.11 device. */ + /* If we can't get the SSID, this isn't an 802.11 device. */ return; } num = 0; @@ -1970,9 +2053,7 @@ DEF_CMD("mac:detach", IEEE80211_MACCMD_DETACH, set80211maccmd), DEF_CMD_ARG("mac:add", set80211addmac), DEF_CMD_ARG("mac:del", set80211delmac), -#if 0 DEF_CMD_ARG("mac:kick", set80211kickmac), -#endif DEF_CMD("pureg", 1, set80211pureg), DEF_CMD("-pureg", 0, set80211pureg), DEF_CMD("ff", 1, set80211fastframes), From owner-p4-projects@FreeBSD.ORG Thu Sep 15 22:50:54 2005 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 2573416A421; Thu, 15 Sep 2005 22:50:54 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BF6B416A41F for ; Thu, 15 Sep 2005 22:50:53 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7250B43D45 for ; Thu, 15 Sep 2005 22:50:51 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FMopBC028641 for ; Thu, 15 Sep 2005 22:50:51 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FMopXs028638 for perforce@freebsd.org; Thu, 15 Sep 2005 22:50:51 GMT (envelope-from sam@freebsd.org) Date: Thu, 15 Sep 2005 22:50:51 GMT Message-Id: <200509152250.j8FMopXs028638@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 83715 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, 15 Sep 2005 22:50:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=83715 Change 83715 by sam@sam_ebb on 2005/09/15 22:50:38 o make country code writable o check for state transition between frags o eliminate private tx timer now that we're the sole user of the ifnet timer o fix rssi stats collected for the hal o IFC cts duration fix Affected files ... .. //depot/projects/wifi/sys/dev/ath/if_ath.c#102 edit .. //depot/projects/wifi/sys/dev/ath/if_athvar.h#42 edit Differences ... ==== //depot/projects/wifi/sys/dev/ath/if_ath.c#102 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.102 2005/08/10 16:22:29 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.103 2005/08/12 23:11:44 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -150,6 +150,7 @@ static int ath_wme_update(struct ieee80211com *); static void ath_tx_cleanupq(struct ath_softc *, struct ath_txq *); static void ath_tx_cleanup(struct ath_softc *); +static void ath_freetx(struct mbuf *); static int ath_tx_start(struct ath_softc *, struct ieee80211_node *, struct ath_buf *, struct mbuf *); static void ath_tx_proc_q0(void *, int); @@ -195,7 +196,7 @@ 0, "extended channel mode"); TUNABLE_INT("hw.ath.xchanmode", &ath_xchanmode); static int ath_countrycode = CTRY_DEFAULT; /* country code */ -SYSCTL_INT(_hw_ath, OID_AUTO, countrycode, CTLFLAG_RD, &ath_countrycode, +SYSCTL_INT(_hw_ath, OID_AUTO, countrycode, CTLFLAG_RW, &ath_countrycode, 0, "country code"); TUNABLE_INT("hw.ath.countrycode", &ath_countrycode); static int ath_regdomain = 0; /* regulatory domain */ @@ -1465,8 +1466,9 @@ */ if (ic->ic_state != IEEE80211_S_RUN) { DPRINTF(sc, ATH_DEBUG_ANY, - "%s: ignore data packet, state %u\n", - __func__, ic->ic_state); + "%s: discard data packet, state %s\n", + __func__, + ieee80211_state_name[ic->ic_state]); sc->sc_stats.ast_tx_discard++; ATH_TXBUF_LOCK(sc); STAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); @@ -1623,6 +1625,18 @@ continue; } if (next != NULL) { + /* + * Beware of state changing between frags. + * XXX check sta power-save state? + */ + if (ic->ic_state != IEEE80211_S_RUN) { + DPRINTF(sc, ATH_DEBUG_ANY, + "%s: flush fragmented packet, state %s\n", + __func__, + ieee80211_state_name[ic->ic_state]); + ath_freetx(next); + goto reclaim; + } m = next; bf = STAILQ_FIRST(&frags); KASSERT(bf != NULL, ("no buf for txfrag")); @@ -1630,8 +1644,7 @@ goto nextfrag; } - sc->sc_tx_timer = 5; - ifp->if_timer = 1; + ifp->if_timer = 5; #if 0 /* * Flush stale frames from the fast-frame staging queue. @@ -2870,9 +2883,6 @@ return NULL; } an->an_avgrssi = ATH_RSSI_DUMMY_MARKER; - an->an_halstats.ns_avgbrssi = ATH_RSSI_DUMMY_MARKER; - an->an_halstats.ns_avgrssi = ATH_RSSI_DUMMY_MARKER; - an->an_halstats.ns_avgtxrssi = ATH_RSSI_DUMMY_MARKER; ath_rate_node_init(sc, an); DPRINTF(sc, ATH_DEBUG_NODE, "%s: an %p\n", __func__, an); @@ -3019,7 +3029,7 @@ switch (subtype) { case IEEE80211_FC0_SUBTYPE_BEACON: /* update rssi statistics for use by the hal */ - ATH_RSSI_LPF(ATH_NODE(ni)->an_halstats.ns_avgbrssi, rssi); + ATH_RSSI_LPF(sc->sc_halstats.ns_avgbrssi, rssi); if (sc->sc_syncbeacon && ni == ic->ic_bss && ic->ic_state == IEEE80211_S_RUN) { /* @@ -3306,6 +3316,7 @@ */ an = ATH_NODE(ni); ATH_RSSI_LPF(an->an_avgrssi, ds->ds_rxstat.rs_rssi); + ATH_RSSI_LPF(sc->sc_halstats.ns_avgrssi, ds->ds_rxstat.rs_rssi); /* * Send frame up for processing. */ @@ -3990,14 +4001,14 @@ ctsduration += ath_hal_computetxtime(ah, rt, pktlen, rix, AH_TRUE); if ((flags & HAL_TXDESC_NOACK) == 0) /* SIFS + ACK */ - ctsduration += rt->info[cix].spAckDuration; + ctsduration += rt->info[rix].spAckDuration; } else { if (flags & HAL_TXDESC_RTSENA) /* SIFS + CTS */ ctsduration += rt->info[cix].lpAckDuration; ctsduration += ath_hal_computetxtime(ah, rt, pktlen, rix, AH_FALSE); if ((flags & HAL_TXDESC_NOACK) == 0) /* SIFS + ACK */ - ctsduration += rt->info[cix].lpAckDuration; + ctsduration += rt->info[rix].lpAckDuration; } /* * Must disable multi-rate retry when using RTS/CTS. @@ -4226,7 +4237,7 @@ sc->sc_stats.ast_tx_altrate++; sc->sc_stats.ast_tx_rssi = ds->ds_txstat.ts_rssi; - ATH_RSSI_LPF(an->an_halstats.ns_avgtxrssi, + ATH_RSSI_LPF(sc->sc_halstats.ns_avgtxrssi, ds->ds_txstat.ts_rssi); pri = M_WME_GETAC(bf->bf_m); if (pri >= WME_AC_VO) @@ -4302,7 +4313,7 @@ if (txqactive(sc->sc_ah, sc->sc_cabq->axq_qnum)) ath_tx_processq(sc, sc->sc_cabq); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - sc->sc_tx_timer = 0; + ifp->if_timer = 0; if (sc->sc_softled) ath_led_event(sc, ATH_LED_TX); @@ -4335,7 +4346,7 @@ ath_tx_processq(sc, sc->sc_cabq); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - sc->sc_tx_timer = 0; + ifp->if_timer = 0; if (sc->sc_softled) ath_led_event(sc, ATH_LED_TX); @@ -4361,7 +4372,7 @@ ath_tx_processq(sc, &sc->sc_txq[i]); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - sc->sc_tx_timer = 0; + ifp->if_timer = 0; if (sc->sc_softled) ath_led_event(sc, ATH_LED_TX); @@ -4450,7 +4461,7 @@ if (ATH_TXQ_SETUP(sc, i)) ath_tx_draintxq(sc, &sc->sc_txq[i]); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - sc->sc_tx_timer = 0; + ifp->if_timer = 0; } /* @@ -5227,17 +5238,11 @@ { struct ath_softc *sc = ifp->if_softc; - ifp->if_timer = 0; - if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || sc->sc_invalid) - return; - if (sc->sc_tx_timer) { - if (--sc->sc_tx_timer == 0) { - if_printf(ifp, "device timeout\n"); - ath_reset(ifp); - ifp->if_oerrors++; - sc->sc_stats.ast_watchdog++; - } else - ifp->if_timer = 1; + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) && !sc->sc_invalid) { + if_printf(ifp, "device timeout\n"); + ath_reset(ifp); + ifp->if_oerrors++; + sc->sc_stats.ast_watchdog++; } } ==== //depot/projects/wifi/sys/dev/ath/if_athvar.h#42 (text+ko) ==== @@ -84,7 +84,6 @@ u_int8_t an_tx_mgtrate; /* h/w rate for management/ctl frames */ u_int8_t an_tx_mgtratesp;/* short preamble h/w rate for " " */ u_int32_t an_avgrssi; /* average rssi over all rx frames */ - HAL_NODE_STATS an_halstats; /* rssi statistics used by hal */ struct ath_buf *an_ff_buf[WME_NUM_AC]; /* ff staging area */ /* variable-length rate control state follows */ }; @@ -293,7 +292,6 @@ struct ath_descdma sc_txdma; /* TX descriptors */ ath_bufhead sc_txbuf; /* transmit buffer */ struct mtx sc_txbuflock; /* txbuf lock */ - int sc_tx_timer; /* transmit timeout */ u_int sc_txqsetup; /* h/w queues setup */ u_int sc_txintrperiod;/* tx interrupt batching */ struct ath_txq sc_txq[HAL_NUM_TX_QUEUES]; @@ -533,7 +531,7 @@ #define ath_hal_setuprxdesc(_ah, _ds, _size, _intreq) \ ((*(_ah)->ah_setupRxDesc)((_ah), (_ds), (_size), (_intreq))) #define ath_hal_rxprocdesc(_ah, _ds, _dspa, _dsnext) \ - ((*(_ah)->ah_procRxDesc)((_ah), (_ds), (_dspa), (_dsnext))) + ((*(_ah)->ah_procRxDesc)((_ah), (_ds), (_dspa), (_dsnext), 0)) #define ath_hal_setuptxdesc(_ah, _ds, _plen, _hlen, _atype, _txpow, \ _txr0, _txtr0, _keyix, _ant, _flags, \ _rtsrate, _rtsdura) \ From owner-p4-projects@FreeBSD.ORG Thu Sep 15 22:51:54 2005 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 B622F16A421; Thu, 15 Sep 2005 22:51:53 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7873016A41F for ; Thu, 15 Sep 2005 22:51:53 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2C0D043D46 for ; Thu, 15 Sep 2005 22:51:53 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FMprrF028693 for ; Thu, 15 Sep 2005 22:51:53 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FMpqPx028690 for perforce@freebsd.org; Thu, 15 Sep 2005 22:51:52 GMT (envelope-from sam@freebsd.org) Date: Thu, 15 Sep 2005 22:51:52 GMT Message-Id: <200509152251.j8FMpqPx028690@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 83716 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, 15 Sep 2005 22:51:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=83716 Change 83716 by sam@sam_ebb on 2005/09/15 22:51:17 checkpoint driver conversion Affected files ... .. //depot/projects/wifi/sys/dev/ipw/if_ipw.c#6 edit .. //depot/projects/wifi/sys/dev/iwi/if_iwi.c#8 edit .. //depot/projects/wifi/sys/dev/ral/if_ral.c#5 edit .. //depot/projects/wifi/sys/dev/ral/if_ralvar.h#3 edit .. //depot/projects/wifi/sys/dev/usb/if_ural.c#5 edit .. //depot/projects/wifi/sys/dev/usb/if_uralvar.h#3 edit .. //depot/projects/wifi/sys/dev/wi/if_wi.c#18 edit Differences ... ==== //depot/projects/wifi/sys/dev/ipw/if_ipw.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.7 2005/07/08 19:30:29 damien Exp $ */ +/* $FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.13 2005/08/20 15:03:41 damien Exp $ */ /*- * Copyright (c) 2004, 2005 @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.7 2005/07/08 19:30:29 damien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.13 2005/08/20 15:03:41 damien Exp $"); /*- * Intel(R) PRO/Wireless 2100 MiniPCI driver @@ -130,9 +130,7 @@ static int ipw_config(struct ipw_softc *); static void ipw_init(void *); static void ipw_stop(void *); -#ifdef IPW_DEBUG static int ipw_sysctl_stats(SYSCTL_HANDLER_ARGS); -#endif static int ipw_sysctl_radio(SYSCTL_HANDLER_ARGS); static uint32_t ipw_read_table1(struct ipw_softc *, uint32_t); static void ipw_write_table1(struct ipw_softc *, uint32_t, uint32_t); @@ -289,8 +287,7 @@ /* set device capabilities */ ic->ic_caps = IEEE80211_C_SHPREAMBLE | IEEE80211_C_TXPMGT | - IEEE80211_C_PMGT | IEEE80211_C_IBSS | IEEE80211_C_MONITOR | - IEEE80211_C_WPA; + IEEE80211_C_PMGT | IEEE80211_C_IBSS | IEEE80211_C_MONITOR; /* read MAC address from EEPROM */ val = ipw_read_prom_word(sc, IPW_EEPROM_MAC + 0); @@ -350,12 +347,10 @@ CTLTYPE_INT | CTLFLAG_RD, sc, 0, ipw_sysctl_radio, "I", "radio transmitter switch state (0=off, 1=on)"); -#ifdef IPW_DEBUG SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "stats", CTLTYPE_OPAQUE | CTLFLAG_RD, sc, 0, ipw_sysctl_stats, "S", "statistics"); -#endif SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "dwell", @@ -735,7 +730,7 @@ if (ifp->if_flags & IFF_UP) { ifp->if_init(ifp->if_softc); - if (ifp->if_flags & IFF_RUNNING) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) ifp->if_start(ifp); } @@ -758,7 +753,7 @@ return error; } - if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == (IFF_UP | IFF_RUNNING)) + if ((ifp->if_flags & IFF_UP) && (ifp->if_drv_flags & IFF_DRV_RUNNING)) ipw_init(sc); IPW_UNLOCK(sc); @@ -828,7 +823,6 @@ { struct ifnet *ifp = ic->ic_ifp; struct ipw_softc *sc = ifp->if_softc; - struct ieee80211_node *ni; uint8_t macaddr[IEEE80211_ADDR_LEN]; uint32_t len; @@ -839,16 +833,18 @@ len = IEEE80211_ADDR_LEN; ipw_read_table2(sc, IPW_INFO_CURRENT_BSSID, macaddr, &len); +#if 0 ni = ieee80211_find_node(&ic->ic_scan, macaddr); if (ni == NULL) break; ieee80211_ref_node(ni); ieee80211_sta_join(ic, ni); - ieee80211_node_authorize(ic, ni); + ieee80211_node_authorize(ni); if (ic->ic_opmode == IEEE80211_M_STA) ieee80211_notify_node_join(ic, ni, 1); +#endif break; case IEEE80211_S_INIT: @@ -1204,7 +1200,7 @@ /* remember what the firmware has processed */ sc->txold = (r == 0) ? IPW_NTBD - 1 : r - 1; - ifp->if_flags &= ~IFF_OACTIVE; + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; ipw_start(ifp); } @@ -1480,7 +1476,7 @@ if (sc->txfree < 1 + IPW_MAX_NSEG) { IFQ_DRV_PREPEND(&ifp->if_snd, m0); - ifp->if_flags |= IFF_OACTIVE; + ifp->if_drv_flags |= IFF_DRV_OACTIVE; break; } @@ -1523,7 +1519,6 @@ ipw_watchdog(struct ifnet *ifp) { struct ipw_softc *sc = ifp->if_softc; - struct ieee80211com *ic = &sc->sc_ic; ifp->if_timer = 0; @@ -1537,8 +1532,6 @@ } ifp->if_timer = 1; } - - ieee80211_watchdog(ic); } static int @@ -1554,10 +1547,10 @@ switch (cmd) { case SIOCSIFFLAGS: if (ifp->if_flags & IFF_UP) { - if (!(ifp->if_flags & IFF_RUNNING)) + if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) ipw_init(sc); } else { - if (ifp->if_flags & IFF_RUNNING) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) ipw_stop(sc); } break; @@ -1586,8 +1579,8 @@ } if (error == ENETRESET) { - if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == - (IFF_UP | IFF_RUNNING)) + if ((ifp->if_flags & IFF_UP) && + (ifp->if_drv_flags & IFF_DRV_RUNNING)) ipw_init(sc); error = 0; } @@ -1933,8 +1926,8 @@ printf("\n"); } #endif - error = ipw_cmd(sc, IPW_CMD_SET_ESSID, ic->ic_des_essid, - ic->ic_des_esslen); + error = ipw_cmd(sc, IPW_CMD_SET_ESSID, ic->ic_des_ssid[0].ssid, + ic->ic_des_ssid[0].len); if (error != 0) return error; @@ -2007,7 +2000,7 @@ #endif if (ic->ic_opmode == IEEE80211_M_IBSS) { - data = htole32(ic->ic_lintval); + data = htole32(ic->ic_bintval); DPRINTF(("Setting beacon interval to %u\n", le32toh(data))); error = ipw_cmd(sc, IPW_CMD_SET_BEACON_INTERVAL, &data, sizeof data); @@ -2096,8 +2089,8 @@ goto fail; } - ifp->if_flags &= ~IFF_OACTIVE; - ifp->if_flags |= IFF_RUNNING; + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + ifp->if_drv_flags |= IFF_DRV_RUNNING; return; @@ -2125,12 +2118,11 @@ sc->sc_tx_timer = 0; ifp->if_timer = 0; - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); ieee80211_new_state(ic, IEEE80211_S_INIT, -1); } -#ifdef IPW_DEBUG static int ipw_sysctl_stats(SYSCTL_HANDLER_ARGS) { @@ -2150,7 +2142,6 @@ return SYSCTL_OUT(req, buf, sizeof buf); } -#endif static int ipw_sysctl_radio(SYSCTL_HANDLER_ARGS) ==== //depot/projects/wifi/sys/dev/iwi/if_iwi.c#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.8 2005/07/10 00:17:04 sam Exp $ */ +/* $FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.15 2005/08/21 09:52:18 damien Exp $ */ /*- * Copyright (c) 2004, 2005 @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.8 2005/07/10 00:17:04 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.15 2005/08/21 09:52:18 damien Exp $"); /*- * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver @@ -109,7 +109,7 @@ static void iwi_reset_cmd_ring(struct iwi_softc *, struct iwi_cmd_ring *); static void iwi_free_cmd_ring(struct iwi_softc *, struct iwi_cmd_ring *); static int iwi_alloc_tx_ring(struct iwi_softc *, struct iwi_tx_ring *, - int); + int, bus_addr_t, bus_addr_t); static void iwi_reset_tx_ring(struct iwi_softc *, struct iwi_tx_ring *); static void iwi_free_tx_ring(struct iwi_softc *, struct iwi_tx_ring *); static int iwi_alloc_rx_ring(struct iwi_softc *, struct iwi_rx_ring *, @@ -119,13 +119,14 @@ static int iwi_media_change(struct ifnet *); static void iwi_media_status(struct ifnet *, struct ifmediareq *); static int iwi_newstate(struct ieee80211com *, enum ieee80211_state, int); +static int iwi_wme_update(struct ieee80211com *); static uint16_t iwi_read_prom_word(struct iwi_softc *, uint8_t); static void iwi_fix_channel(struct ieee80211com *, struct mbuf *); static void iwi_frame_intr(struct iwi_softc *, struct iwi_rx_data *, int, struct iwi_frame *); static void iwi_notification_intr(struct iwi_softc *, struct iwi_notif *); static void iwi_rx_intr(struct iwi_softc *); -static void iwi_tx_intr(struct iwi_softc *); +static void iwi_tx_intr(struct iwi_softc *, struct iwi_tx_ring *); static void iwi_intr(void *); static int iwi_cmd(struct iwi_softc *, uint8_t, void *, uint8_t, int); static int iwi_tx_start(struct ifnet *, struct mbuf *, @@ -145,9 +146,7 @@ static int iwi_auth_and_assoc(struct iwi_softc *); static void iwi_init(void *); static void iwi_stop(void *); -#ifdef IWI_DEBUG static int iwi_sysctl_stats(SYSCTL_HANDLER_ARGS); -#endif static int iwi_sysctl_radio(SYSCTL_HANDLER_ARGS); static int iwi_probe(device_t); @@ -281,8 +280,31 @@ goto fail; } - if (iwi_alloc_tx_ring(sc, &sc->txq, IWI_TX_RING_COUNT) != 0) { - device_printf(dev, "could not allocate Tx ring\n"); + error = iwi_alloc_tx_ring(sc, &sc->txq[0], IWI_TX_RING_COUNT, + IWI_CSR_TX1_RIDX, IWI_CSR_TX1_WIDX); + if (error != 0) { + device_printf(dev, "could not allocate Tx ring 1\n"); + goto fail; + } + + error = iwi_alloc_tx_ring(sc, &sc->txq[1], IWI_TX_RING_COUNT, + IWI_CSR_TX2_RIDX, IWI_CSR_TX2_WIDX); + if (error != 0) { + device_printf(dev, "could not allocate Tx ring 2\n"); + goto fail; + } + + error = iwi_alloc_tx_ring(sc, &sc->txq[2], IWI_TX_RING_COUNT, + IWI_CSR_TX3_RIDX, IWI_CSR_TX3_WIDX); + if (error != 0) { + device_printf(dev, "could not allocate Tx ring 3\n"); + goto fail; + } + + error = iwi_alloc_tx_ring(sc, &sc->txq[3], IWI_TX_RING_COUNT, + IWI_CSR_TX4_RIDX, IWI_CSR_TX4_WIDX); + if (error != 0) { + device_printf(dev, "could not allocate Tx ring 4\n"); goto fail; } @@ -309,13 +331,18 @@ IFQ_SET_READY(&ifp->if_snd); ic->ic_ifp = ifp; + ic->ic_wme.wme_update = iwi_wme_update; ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */ ic->ic_opmode = IEEE80211_M_STA; /* default to BSS mode */ ic->ic_state = IEEE80211_S_INIT; /* set device capabilities */ - ic->ic_caps = IEEE80211_C_WPA | IEEE80211_C_PMGT | IEEE80211_C_TXPMGT | - IEEE80211_C_SHPREAMBLE | IEEE80211_C_MONITOR; + ic->ic_caps = + IEEE80211_C_MONITOR | /* monitor mode supported */ + IEEE80211_C_TXPMGT | /* tx power management */ + IEEE80211_C_SHPREAMBLE | /* short preamble supported */ + IEEE80211_C_WPA | /* 802.11i */ + IEEE80211_C_WME; /* 802.11e */ /* read MAC address from EEPROM */ val = iwi_read_prom_word(sc, IWI_EEPROM_MAC + 0); @@ -390,12 +417,10 @@ CTLTYPE_INT | CTLFLAG_RD, sc, 0, iwi_sysctl_radio, "I", "radio transmitter switch state (0=off, 1=on)"); -#ifdef IWI_DEBUG SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "stats", CTLTYPE_OPAQUE | CTLFLAG_RD, sc, 0, iwi_sysctl_stats, "S", "statistics"); -#endif SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "dwell", @@ -447,7 +472,10 @@ if_free(ifp); iwi_free_cmd_ring(sc, &sc->cmdq); - iwi_free_tx_ring(sc, &sc->txq); + iwi_free_tx_ring(sc, &sc->txq[0]); + iwi_free_tx_ring(sc, &sc->txq[1]); + iwi_free_tx_ring(sc, &sc->txq[2]); + iwi_free_tx_ring(sc, &sc->txq[3]); iwi_free_rx_ring(sc, &sc->rxq); if (sc->irq != NULL) { @@ -533,13 +561,16 @@ } static int -iwi_alloc_tx_ring(struct iwi_softc *sc, struct iwi_tx_ring *ring, int count) +iwi_alloc_tx_ring(struct iwi_softc *sc, struct iwi_tx_ring *ring, int count, + bus_addr_t csr_ridx, bus_addr_t csr_widx) { int i, error; ring->count = count; ring->queued = 0; ring->cur = ring->next = 0; + 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, @@ -788,7 +819,7 @@ if (ifp->if_flags & IFF_UP) { ifp->if_init(ifp->if_softc); - if (ifp->if_flags & IFF_RUNNING) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) ifp->if_start(ifp); } @@ -811,7 +842,7 @@ return error; } - if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == (IFF_UP | IFF_RUNNING)) + if ((ifp->if_flags & IFF_UP) && (ifp->if_drv_flags & IFF_DRV_RUNNING)) iwi_init(sc); IWI_UNLOCK(sc); @@ -890,11 +921,15 @@ struct iwi_softc *sc = ifp->if_softc; switch (nstate) { + case IEEE80211_S_INIT: + sc->flags &= ~IWI_FLAG_SCANNING; + break; + case IEEE80211_S_SCAN: if (sc->flags & IWI_FLAG_SCANNING) break; - ieee80211_node_table_reset(&ic->ic_scan); + ieee80211_scan_flush(ic); ic->ic_flags |= IEEE80211_F_SCAN | IEEE80211_F_ASCAN; sc->flags |= IWI_FLAG_SCANNING; iwi_scan(sc); @@ -907,17 +942,11 @@ case IEEE80211_S_RUN: if (ic->ic_opmode == IEEE80211_M_IBSS) ieee80211_new_state(ic, IEEE80211_S_AUTH, -1); - else if (ic->ic_opmode == IEEE80211_M_MONITOR) - iwi_set_chan(sc, ic->ic_curchan); return sc->sc_newstate(ic, nstate, IEEE80211_FC0_SUBTYPE_ASSOC_RESP); - case IEEE80211_S_ASSOC: - break; - - case IEEE80211_S_INIT: - sc->flags &= ~IWI_FLAG_SCANNING; + default: break; } @@ -926,6 +955,74 @@ } /* + * WME parameters coming from IEEE 802.11e specification. These values are + * already declared in ieee80211_proto.c, but they are static so they can't + * be reused here. + */ +static const struct wmeParams iwi_wme_cck_params[WME_NUM_AC] = { + { 0, 3, 5, 7, 0 }, /* WME_AC_BE */ + { 0, 3, 5, 10, 0 }, /* WME_AC_BK */ + { 0, 2, 4, 5, 188 }, /* WME_AC_VI */ + { 0, 2, 3, 4, 102 } /* WME_AC_VO */ +}; + +static const struct wmeParams iwi_wme_ofdm_params[WME_NUM_AC] = { + { 0, 3, 4, 6, 0 }, /* WME_AC_BE */ + { 0, 3, 4, 10, 0 }, /* WME_AC_BK */ + { 0, 2, 3, 4, 94 }, /* WME_AC_VI */ + { 0, 2, 2, 3, 47 } /* WME_AC_VO */ +}; + +static int +iwi_wme_update(struct ieee80211com *ic) +{ +#define IWI_EXP2(v) htole16((1 << (v)) - 1) +#define IWI_USEC(v) htole16(IEEE80211_TXOP_TO_US(v)) + struct iwi_softc *sc = ic->ic_ifp->if_softc; + struct iwi_wme_params wme[3]; + const struct wmeParams *wmep; + int ac; + + /* + * We shall not override firmware default WME values if WME is not + * actually enabled. + */ + if (!(ic->ic_flags & IEEE80211_F_WME)) + return 0; + + for (ac = 0; ac < WME_NUM_AC; ac++) { + /* set WME values for current operating mode */ + wmep = &ic->ic_wme.wme_chanParams.cap_wmeParams[ac]; + wme[0].aifsn[ac] = wmep->wmep_aifsn; + wme[0].cwmin[ac] = IWI_EXP2(wmep->wmep_logcwmin); + wme[0].cwmax[ac] = IWI_EXP2(wmep->wmep_logcwmax); + wme[0].burst[ac] = IWI_USEC(wmep->wmep_txopLimit); + wme[0].acm[ac] = wmep->wmep_acm; + + /* set WME values for CCK modulation */ + wmep = &iwi_wme_cck_params[ac]; + wme[1].aifsn[ac] = wmep->wmep_aifsn; + wme[1].cwmin[ac] = IWI_EXP2(wmep->wmep_logcwmin); + wme[1].cwmax[ac] = IWI_EXP2(wmep->wmep_logcwmax); + wme[1].burst[ac] = IWI_USEC(wmep->wmep_txopLimit); + wme[1].acm[ac] = wmep->wmep_acm; + + /* set WME values for OFDM modulation */ + wmep = &iwi_wme_ofdm_params[ac]; + wme[2].aifsn[ac] = wmep->wmep_aifsn; + wme[2].cwmin[ac] = IWI_EXP2(wmep->wmep_logcwmin); + wme[2].cwmax[ac] = IWI_EXP2(wmep->wmep_logcwmax); + wme[2].burst[ac] = IWI_USEC(wmep->wmep_txopLimit); + wme[2].acm[ac] = wmep->wmep_acm; + } + + DPRINTF(("Setting WME parameters\n")); + return iwi_cmd(sc, IWI_CMD_SET_WME_PARAMS, wme, sizeof wme, 1); +#undef IWI_USEC +#undef IWI_EXP2 +} + +/* * Read 16 bits at address 'addr' from the serial EEPROM. */ static uint16_t @@ -1128,7 +1225,7 @@ switch (auth->state) { case IWI_AUTHENTICATED: - ieee80211_node_authorize(ic, ic->ic_bss); + ieee80211_node_authorize(ic->ic_bss); ieee80211_new_state(ic, IEEE80211_S_ASSOC, -1); break; @@ -1157,7 +1254,11 @@ break; case IWI_DEASSOCIATED: +#if 0 ieee80211_begin_scan(ic, 1); +#else + ieee80211_new_state(ic, IEEE80211_S_SCAN, 0); +#endif break; default: @@ -1222,36 +1323,36 @@ } static void -iwi_tx_intr(struct iwi_softc *sc) +iwi_tx_intr(struct iwi_softc *sc, struct iwi_tx_ring *txq) { struct ieee80211com *ic = &sc->sc_ic; struct ifnet *ifp = ic->ic_ifp; struct iwi_tx_data *data; uint32_t hw; - hw = CSR_READ_4(sc, IWI_CSR_TX1_RIDX); + hw = CSR_READ_4(sc, txq->csr_ridx); - for (; sc->txq.next != hw;) { - data = &sc->txq.data[sc->txq.next]; + for (; txq->next != hw;) { + data = &txq->data[txq->next]; - bus_dmamap_sync(sc->txq.data_dmat, data->map, + bus_dmamap_sync(txq->data_dmat, data->map, BUS_DMASYNC_POSTWRITE); - bus_dmamap_unload(sc->txq.data_dmat, data->map); + bus_dmamap_unload(txq->data_dmat, data->map); m_freem(data->m); data->m = NULL; ieee80211_free_node(data->ni); data->ni = NULL; - DPRINTFN(15, ("tx done idx=%u\n", sc->txq.next)); + DPRINTFN(15, ("tx done idx=%u\n", txq->next)); ifp->if_opackets++; - sc->txq.queued--; - sc->txq.next = (sc->txq.next + 1) % IWI_TX_RING_COUNT; + txq->queued--; + txq->next = (txq->next + 1) % IWI_TX_RING_COUNT; } sc->sc_tx_timer = 0; - ifp->if_flags &= ~IFF_OACTIVE; + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; iwi_start(ifp); } @@ -1288,14 +1389,23 @@ iwi_stop(sc); } - if (r & IWI_INTR_RX_DONE) - iwi_rx_intr(sc); - if (r & IWI_INTR_CMD_DONE) wakeup(sc); if (r & IWI_INTR_TX1_DONE) - iwi_tx_intr(sc); + iwi_tx_intr(sc, &sc->txq[0]); + + if (r & IWI_INTR_TX2_DONE) + iwi_tx_intr(sc, &sc->txq[1]); + + if (r & IWI_INTR_TX3_DONE) + iwi_tx_intr(sc, &sc->txq[2]); + + if (r & IWI_INTR_TX4_DONE) + iwi_tx_intr(sc, &sc->txq[3]); + + if (r & IWI_INTR_RX_DONE) + iwi_rx_intr(sc); /* acknowledge interrupts */ CSR_WRITE_4(sc, IWI_CSR_INTR, r); @@ -1336,21 +1446,48 @@ { struct iwi_softc *sc = ifp->if_softc; struct ieee80211com *ic = &sc->sc_ic; - struct ieee80211_frame wh; + struct ieee80211_frame *wh; struct ieee80211_key *k; + const struct chanAccParams *cap; + struct iwi_tx_ring *txq; struct iwi_tx_data *data; struct iwi_tx_desc *desc; struct mbuf *mnew; bus_dma_segment_t segs[IWI_MAX_NSEG]; - int nsegs, error, i; + int error, nsegs, hdrlen, ac, i, noack = 0; + + wh = mtod(m0, struct ieee80211_frame *); + + if (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS) { + hdrlen = sizeof (struct ieee80211_qosframe); + ac = M_WME_GETAC(m0); + cap = &ic->ic_wme.wme_chanParams; + noack = cap->cap_wmeParams[ac].wmep_noackPolicy; + } else { + hdrlen = sizeof (struct ieee80211_frame); + ac = WME_AC_BE; + } + + txq = &sc->txq[ac]; + if (txq->queued >= IWI_TX_RING_COUNT - 4) { + /* + * There is no place left in this ring. Perhaps in 802.11e, + * we should try to fallback to a lowest priority ring? + */ + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + m_freem(m0); + return 0; + } - bcopy(mtod(m0, struct ieee80211_frame *), &wh, sizeof (struct ieee80211_frame)); - if (wh.i_fc[1] & IEEE80211_FC1_WEP) { + if (wh->i_fc[1] & IEEE80211_FC1_WEP) { k = ieee80211_crypto_encap(ic, ni, m0); if (k == NULL) { m_freem(m0); return ENOBUFS; } + + /* packet header may have moved, reset our local pointer */ + wh = mtod(m0, struct ieee80211_frame *); } if (sc->sc_drvbpf != NULL) { @@ -1363,13 +1500,14 @@ bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_txtap_len, m0); } - data = &sc->txq.data[sc->txq.cur]; - desc = &sc->txq.desc[sc->txq.cur]; + data = &txq->data[txq->cur]; + desc = &txq->desc[txq->cur]; - /* trim IEEE802.11 header */ - m_adj(m0, sizeof (struct ieee80211_frame)); + /* save and trim IEEE802.11 header */ + m_copydata(m0, 0, hdrlen, (caddr_t)&desc->wh); + m_adj(m0, hdrlen); - error = bus_dmamap_load_mbuf_sg(sc->txq.data_dmat, data->map, m0, segs, + error = bus_dmamap_load_mbuf_sg(txq->data_dmat, data->map, m0, segs, &nsegs, 0); if (error != 0 && error != EFBIG) { device_printf(sc->sc_dev, "could not map mbuf (error %d)\n", @@ -1387,7 +1525,7 @@ } m0 = mnew; - error = bus_dmamap_load_mbuf_sg(sc->txq.data_dmat, data->map, + error = bus_dmamap_load_mbuf_sg(txq->data_dmat, data->map, m0, segs, &nsegs, 0); if (error != 0) { device_printf(sc->sc_dev, @@ -1404,15 +1542,15 @@ desc->hdr.flags = IWI_HDR_FLAG_IRQ; desc->cmd = IWI_DATA_CMD_TX; desc->len = htole16(m0->m_pkthdr.len); - memcpy(&desc->wh, &wh, sizeof (struct ieee80211_frame)); desc->flags = 0; + desc->xflags = 0; - if (!IEEE80211_IS_MULTICAST(wh.i_addr1)) + if (!noack && !IEEE80211_IS_MULTICAST(desc->wh.i_addr1)) desc->flags |= IWI_DATA_FLAG_NEED_ACK; #if 0 if (ic->ic_flags & IEEE80211_F_PRIVACY) { - wh.i_fc[1] |= IEEE80211_FC1_WEP; + desc->wh.i_fc[1] |= IEEE80211_FC1_WEP; desc->wep_txkey = ic->ic_crypto.cs_def_txkey; } else #endif @@ -1421,22 +1559,24 @@ if (ic->ic_flags & IEEE80211_F_SHPREAMBLE) desc->flags |= IWI_DATA_FLAG_SHPREAMBLE; + if (desc->wh.i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS) + desc->xflags |= IWI_DATA_XFLAG_QOS; + desc->nseg = htole32(nsegs); for (i = 0; i < nsegs; i++) { desc->seg_addr[i] = htole32(segs[i].ds_addr); desc->seg_len[i] = htole32(segs[i].ds_len); } - bus_dmamap_sync(sc->txq.data_dmat, data->map, BUS_DMASYNC_PREWRITE); - bus_dmamap_sync(sc->txq.desc_dmat, sc->txq.desc_map, - BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(txq->data_dmat, data->map, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(txq->desc_dmat, txq->desc_map, BUS_DMASYNC_PREWRITE); - DPRINTFN(5, ("sending data frame idx=%u len=%u nseg=%u\n", sc->txq.cur, - desc->len, desc->nseg)); + DPRINTFN(5, ("sending data frame txq=%u idx=%u len=%u nseg=%u\n", + ac, txq->cur, desc->len, desc->nseg)); - sc->txq.queued++; - sc->txq.cur = (sc->txq.cur + 1) % IWI_TX_RING_COUNT; - CSR_WRITE_4(sc, IWI_CSR_TX1_WIDX, sc->txq.cur); + txq->queued++; + txq->cur = (txq->cur + 1) % IWI_TX_RING_COUNT; + CSR_WRITE_4(sc, txq->csr_widx, txq->cur); return 0; } @@ -1462,12 +1602,6 @@ if (m0 == NULL) break; - if (sc->txq.queued >= IWI_TX_RING_COUNT - 4) { - IFQ_DRV_PREPEND(&ifp->if_snd, m0); - ifp->if_flags |= IFF_OACTIVE; - break; - } - if (m0->m_len < sizeof (struct ether_header) && (m0 = m_pullup(m0, sizeof (struct ether_header))) == NULL) continue; @@ -1478,6 +1612,10 @@ m_freem(m0); continue; } + if (ieee80211_classify(ic, m0, ni) != 0) { + m_freem(m0); + continue; + } BPF_MTAP(ifp, m0); m0 = ieee80211_encap(ic, m0, ni); @@ -1506,7 +1644,6 @@ iwi_watchdog(struct ifnet *ifp) { struct iwi_softc *sc = ifp->if_softc; - struct ieee80211com *ic = &sc->sc_ic; IWI_LOCK(sc); @@ -1524,8 +1661,6 @@ ifp->if_timer = 1; } - ieee80211_watchdog(ic); - IWI_UNLOCK(sc); } @@ -1542,10 +1677,10 @@ switch (cmd) { case SIOCSIFFLAGS: if (ifp->if_flags & IFF_UP) { - if (!(ifp->if_flags & IFF_RUNNING)) + if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) iwi_init(sc); } else { - if (ifp->if_flags & IFF_RUNNING) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) iwi_stop(sc); } break; @@ -1574,8 +1709,9 @@ } if (error == ENETRESET) { - if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == - (IFF_UP | IFF_RUNNING)) + if ((ifp->if_flags & IFF_UP) && + (ifp->if_drv_flags & IFF_DRV_RUNNING) && + (ic->ic_roaming != IEEE80211_ROAMING_MANUAL)) iwi_init(sc); error = 0; } @@ -2102,6 +2238,7 @@ struct ieee80211com *ic = &sc->sc_ic; struct ifnet *ifp = ic->ic_ifp; struct ieee80211_node *ni = ic->ic_bss; + struct ieee80211_wme_info wme; struct iwi_configuration config; struct iwi_associate assoc; struct iwi_rateset rs; @@ -2148,6 +2285,23 @@ if (error != 0) return error; + if ((ic->ic_flags & IEEE80211_F_WME) && ni->ni_wme_ie != NULL) { + wme.wme_id = IEEE80211_ELEMID_VENDOR; + wme.wme_len = sizeof (struct ieee80211_wme_info) - 2; + wme.wme_oui[0] = 0x00; + wme.wme_oui[1] = 0x50; + wme.wme_oui[2] = 0xf2; + wme.wme_type = WME_OUI_TYPE; + wme.wme_subtype = WME_INFO_OUI_SUBTYPE; + wme.wme_version = WME_VERSION; + wme.wme_info = 0; + + DPRINTF(("Setting WME IE (len=%u)\n", wme.wme_len)); + error = iwi_cmd(sc, IWI_CMD_SET_WMEIE, &wme, sizeof wme, 1); + if (error != 0) + return error; + } + if (ic->ic_opt_ie != NULL) { DPRINTF(("Setting optional IE (len=%u)\n", ic->ic_opt_ie_len)); error = iwi_cmd(sc, IWI_CMD_SET_OPTIE, ic->ic_opt_ie, @@ -2168,8 +2322,10 @@ assoc.chan = ieee80211_chan2ieee(ic, ic->ic_bsschan); if (ni->ni_authmode == IEEE80211_AUTH_SHARED) assoc.auth = ic->ic_crypto.cs_def_txkey << 4 | IWI_AUTH_SHARED; + if ((ic->ic_flags & IEEE80211_F_WME) && ni->ni_wme_ie != NULL) + assoc.policy |= htole16(IWI_POLICY_WME); if (ic->ic_opt_ie != NULL) - assoc.policy |= htole16(IWI_POLICY_OPTIE); + assoc.policy |= htole16(IWI_POLICY_WPA); memcpy(assoc.tstamp, ni->ni_tstamp.data, 8); if (ic->ic_opmode == IEEE80211_M_IBSS) @@ -2240,21 +2396,21 @@ CSR_WRITE_4(sc, IWI_CSR_CMD_SIZE, sc->cmdq.count); CSR_WRITE_4(sc, IWI_CSR_CMD_WIDX, sc->cmdq.cur); - CSR_WRITE_4(sc, IWI_CSR_TX1_BASE, sc->txq.physaddr); - CSR_WRITE_4(sc, IWI_CSR_TX1_SIZE, sc->txq.count); - CSR_WRITE_4(sc, IWI_CSR_TX1_WIDX, sc->txq.cur); + CSR_WRITE_4(sc, IWI_CSR_TX1_BASE, sc->txq[0].physaddr); + CSR_WRITE_4(sc, IWI_CSR_TX1_SIZE, sc->txq[0].count); + CSR_WRITE_4(sc, IWI_CSR_TX1_WIDX, sc->txq[0].cur); - CSR_WRITE_4(sc, IWI_CSR_TX2_BASE, sc->txq.physaddr); - CSR_WRITE_4(sc, IWI_CSR_TX2_SIZE, sc->txq.count); - CSR_WRITE_4(sc, IWI_CSR_TX2_WIDX, sc->txq.cur); + CSR_WRITE_4(sc, IWI_CSR_TX2_BASE, sc->txq[1].physaddr); + CSR_WRITE_4(sc, IWI_CSR_TX2_SIZE, sc->txq[1].count); + CSR_WRITE_4(sc, IWI_CSR_TX2_WIDX, sc->txq[1].cur); - CSR_WRITE_4(sc, IWI_CSR_TX3_BASE, sc->txq.physaddr); - CSR_WRITE_4(sc, IWI_CSR_TX3_SIZE, sc->txq.count); - CSR_WRITE_4(sc, IWI_CSR_TX3_WIDX, sc->txq.cur); + CSR_WRITE_4(sc, IWI_CSR_TX3_BASE, sc->txq[2].physaddr); + CSR_WRITE_4(sc, IWI_CSR_TX3_SIZE, sc->txq[2].count); + CSR_WRITE_4(sc, IWI_CSR_TX3_WIDX, sc->txq[2].cur); - CSR_WRITE_4(sc, IWI_CSR_TX4_BASE, sc->txq.physaddr); - CSR_WRITE_4(sc, IWI_CSR_TX4_SIZE, sc->txq.count); - CSR_WRITE_4(sc, IWI_CSR_TX4_WIDX, sc->txq.cur); + CSR_WRITE_4(sc, IWI_CSR_TX4_BASE, sc->txq[3].physaddr); + CSR_WRITE_4(sc, IWI_CSR_TX4_SIZE, sc->txq[3].count); + CSR_WRITE_4(sc, IWI_CSR_TX4_WIDX, sc->txq[3].cur); for (i = 0; i < sc->rxq.count; i++) { data = &sc->rxq.data[i]; @@ -2275,13 +2431,14 @@ goto fail; } - if (ic->ic_opmode == IEEE80211_M_MONITOR) + if (ic->ic_opmode != IEEE80211_M_MONITOR) { + if (ic->ic_roaming != IEEE80211_ROAMING_MANUAL) + ieee80211_new_state(ic, IEEE80211_S_SCAN, -1); + } else ieee80211_new_state(ic, IEEE80211_S_RUN, -1); - else - ieee80211_new_state(ic, IEEE80211_S_SCAN, -1); - ifp->if_flags &= ~IFF_OACTIVE; - ifp->if_flags |= IFF_RUNNING; + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + ifp->if_drv_flags |= IFF_DRV_RUNNING; return; @@ -2302,17 +2459,19 @@ /* reset rings */ iwi_reset_cmd_ring(sc, &sc->cmdq); - iwi_reset_tx_ring(sc, &sc->txq); + iwi_reset_tx_ring(sc, &sc->txq[0]); + iwi_reset_tx_ring(sc, &sc->txq[1]); + iwi_reset_tx_ring(sc, &sc->txq[2]); + iwi_reset_tx_ring(sc, &sc->txq[3]); iwi_reset_rx_ring(sc, &sc->rxq); sc->sc_tx_timer = 0; ifp->if_timer = 0; - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); ieee80211_new_state(ic, IEEE80211_S_INIT, -1); } -#ifdef IWI_DEBUG static int iwi_sysctl_stats(SYSCTL_HANDLER_ARGS) { @@ -2329,7 +2488,6 @@ return SYSCTL_OUT(req, buf, sizeof buf); } -#endif static int iwi_sysctl_radio(SYSCTL_HANDLER_ARGS) ==== //depot/projects/wifi/sys/dev/ral/if_ral.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/ral/if_ral.c,v 1.10 2005/07/10 22:25:44 sam Exp $ */ +/* $FreeBSD: src/sys/dev/ral/if_ral.c,v 1.15 2005/08/21 14:16:19 damien Exp $ */ /*- * Copyright (c) 2005 @@ -18,7 +18,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ral/if_ral.c,v 1.10 2005/07/10 22:25:44 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ral/if_ral.c,v 1.15 2005/08/21 14:16:19 damien Exp $"); /*- * Ralink Technology RT2500 chipset driver @@ -91,7 +91,6 @@ static struct ieee80211_node *ral_node_alloc( struct ieee80211_node_table *); static int ral_media_change(struct ifnet *); -static void ral_next_scan(void *); static void ral_iter_func(void *, struct ieee80211_node *); static void ral_update_rssadapt(void *); static int ral_newstate(struct ieee80211com *, @@ -105,7 +104,7 @@ static void ral_beacon_expire(struct ral_softc *); static void ral_wakeup_expire(struct ral_softc *); static void ral_intr(void *); -static int ral_ack_rate(int); +static int ral_ack_rate(struct ieee80211com *, int); static uint16_t ral_txtime(int, int, uint32_t); static uint8_t ral_plcp_signal(int); static void ral_setup_tx_desc(struct ral_softc *, @@ -350,7 +349,6 @@ mtx_init(&sc->sc_mtx, device_get_nameunit(dev), MTX_NETWORK_LOCK, MTX_DEF | MTX_RECURSE); - callout_init(&sc->scan_ch, debug_mpsafenet ? CALLOUT_MPSAFE : 0); callout_init(&sc->rssadapt_ch, CALLOUT_MPSAFE); /* retrieve RT2560 rev. no */ @@ -533,7 +531,6 @@ struct ieee80211com *ic = &sc->sc_ic; struct ifnet *ifp = ic->ic_ifp; - callout_stop(&sc->scan_ch); callout_stop(&sc->rssadapt_ch); bpfdetach(ifp); @@ -921,27 +918,14 @@ if (error != ENETRESET) return error; - if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == (IFF_UP | IFF_RUNNING)) + if ((ifp->if_flags & IFF_UP) && + (ifp->if_drv_flags & IFF_DRV_RUNNING)) ral_init(sc); return 0; } /* - * This function is called periodically (every 200ms) during scanning to - * switch from one channel to another. - */ -static void -ral_next_scan(void *arg) -{ - struct ral_softc *sc = arg; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Sep 15 22:52:56 2005 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 9B2EC16A439; Thu, 15 Sep 2005 22:52:55 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6A58116A420 for ; Thu, 15 Sep 2005 22:52:55 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 39CB443D46 for ; Thu, 15 Sep 2005 22:52:55 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FMqtxV028737 for ; Thu, 15 Sep 2005 22:52:55 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FMqsYE028734 for perforce@freebsd.org; Thu, 15 Sep 2005 22:52:54 GMT (envelope-from sam@freebsd.org) Date: Thu, 15 Sep 2005 22:52:54 GMT Message-Id: <200509152252.j8FMqsYE028734@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 83718 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, 15 Sep 2005 22:52:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=83718 Change 83718 by sam@sam_ebb on 2005/09/15 22:52:23 undo breakage Affected files ... .. //depot/projects/wifi/sys/conf/kern.pre.mk#9 edit Differences ... ==== //depot/projects/wifi/sys/conf/kern.pre.mk#9 (text+ko) ==== @@ -55,11 +55,8 @@ # ... and the same for altq INCLUDES+= -I$S/contrib/altq -# ... and the same for Atheros HAL when the author builds it from -# non-distributable sources. -.if defined(ATH_BUILDING_FROM_SOURCE) -INCLUDES+= -I$S/contrib/dev/ath -.endif +# ... and the same for Atheros HAL +INCLUDES+= -I$S/contrib/dev/ath -I$S/contrib/dev/ath/freebsd .if make(depend) || make(kernel-depend) @@ -69,9 +66,6 @@ # ... and the same for pf INCLUDES+= -I$S/contrib/pf -# ... and the same for Atheros HAL -INCLUDES+= -I$S/contrib/dev/ath/freebsd - # ... and the same for the NgATM stuff INCLUDES+= -I$S/contrib/ngatm From owner-p4-projects@FreeBSD.ORG Thu Sep 15 22:52:57 2005 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 3620916A47A; Thu, 15 Sep 2005 22:52:56 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BD3C216A448 for ; Thu, 15 Sep 2005 22:52:55 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8819143D45 for ; Thu, 15 Sep 2005 22:52:55 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FMqtOS028744 for ; Thu, 15 Sep 2005 22:52:55 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FMqtlZ028740 for perforce@freebsd.org; Thu, 15 Sep 2005 22:52:55 GMT (envelope-from sam@freebsd.org) Date: Thu, 15 Sep 2005 22:52:55 GMT Message-Id: <200509152252.j8FMqtlZ028740@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 83719 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, 15 Sep 2005 22:52:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=83719 Change 83719 by sam@sam_ebb on 2005/09/15 22:52:43 IFC Affected files ... .. //depot/projects/wifi/sys/conf/files.i386#20 edit Differences ... ==== //depot/projects/wifi/sys/conf/files.i386#20 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.538 2005/06/21 10:17:54 dumbbell Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.540 2005/08/26 13:42:03 jhb Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -135,6 +135,7 @@ crypto/des/arch/i386/des_enc.S optional crypto crypto/des/des_ecb.c optional crypto crypto/des/des_setkey.c optional crypto +crypto/via/padlock.c optional padlock dev/advansys/adv_isa.c optional adv isa dev/aic/aic_isa.c optional aic isa dev/arcmsr/arcmsr.c optional arcmsr pci @@ -320,7 +321,6 @@ i386/isa/elcr.c standard i386/isa/elink.c optional ep i386/isa/elink.c optional ie -i386/isa/if_el.c optional el i386/isa/isa.c optional isa i386/isa/isa_dma.c optional isa i386/isa/nmi.c standard From owner-p4-projects@FreeBSD.ORG Thu Sep 15 22:53:58 2005 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 C571C16A421; Thu, 15 Sep 2005 22:53:57 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9DBA516A41F for ; Thu, 15 Sep 2005 22:53:57 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4967043D45 for ; Thu, 15 Sep 2005 22:53:57 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8FMrvB0028829 for ; Thu, 15 Sep 2005 22:53:57 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8FMruNe028826 for perforce@freebsd.org; Thu, 15 Sep 2005 22:53:56 GMT (envelope-from sam@freebsd.org) Date: Thu, 15 Sep 2005 22:53:56 GMT Message-Id: <200509152253.j8FMruNe028826@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 83720 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, 15 Sep 2005 22:53:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=83720 Change 83720 by sam@sam_ebb on 2005/09/15 22:53:29 IFC Affected files ... .. //depot/projects/wifi/sys/conf/files#31 edit Differences ... ==== //depot/projects/wifi/sys/conf/files#31 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1038 2005/07/27 21:47:55 pjd Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1047 2005/09/11 03:38:18 obrien Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -111,14 +111,20 @@ coda/coda_vfsops.c optional vcoda coda/coda_vnops.c optional vcoda compat/linprocfs/linprocfs.c optional linprocfs -contrib/altq/altq/altq_cbq.c optional altq +contrib/altq/altq/altq_cbq.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/altq/altq/altq_cdnr.c optional altq -contrib/altq/altq/altq_hfsc.c optional altq -contrib/altq/altq/altq_priq.c optional altq -contrib/altq/altq/altq_red.c optional altq -contrib/altq/altq/altq_rio.c optional altq +contrib/altq/altq/altq_hfsc.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/altq/altq/altq_priq.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/altq/altq/altq_red.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/altq/altq/altq_rio.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/altq/altq/altq_rmclass.c optional altq -contrib/altq/altq/altq_subr.c optional altq +contrib/altq/altq/altq_subr.c optional altq \ + compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/dev/acpica/dbcmds.c optional acpi acpi_debug contrib/dev/acpica/dbdisply.c optional acpi acpi_debug contrib/dev/acpica/dbexec.c optional acpi acpi_debug @@ -240,51 +246,96 @@ contrib/dev/acpica/utmisc.c optional acpi contrib/dev/acpica/utobject.c optional acpi contrib/dev/acpica/utxface.c optional acpi -contrib/dev/ath/freebsd/ah_osdep.c optional ath_hal -contrib/ipfilter/netinet/fil.c optional ipfilter inet -contrib/ipfilter/netinet/ip_auth.c optional ipfilter inet -contrib/ipfilter/netinet/ip_fil_freebsd.c optional ipfilter inet -contrib/ipfilter/netinet/ip_frag.c optional ipfilter inet -contrib/ipfilter/netinet/ip_log.c optional ipfilter inet -contrib/ipfilter/netinet/ip_nat.c optional ipfilter inet -contrib/ipfilter/netinet/ip_proxy.c optional ipfilter inet -contrib/ipfilter/netinet/ip_state.c optional ipfilter inet -contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet -contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet -contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet -contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet -contrib/ipfilter/netinet/mlfk_ipl.c optional ipfilter inet -contrib/ngatm/netnatm/api/cc_conn.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_data.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_dump.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_port.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_sig.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/cc_user.c optional ngatm_ccatm -contrib/ngatm/netnatm/api/unisap.c optional ngatm_ccatm -contrib/ngatm/netnatm/misc/straddr.c optional ngatm_atmbase -contrib/ngatm/netnatm/misc/unimsg_common.c optional ngatm_atmbase -contrib/ngatm/netnatm/msg/traffic.c optional ngatm_atmbase -contrib/ngatm/netnatm/msg/uni_ie.c optional ngatm_atmbase -contrib/ngatm/netnatm/msg/uni_msg.c optional ngatm_atmbase -contrib/ngatm/netnatm/saal/saal_sscfu.c optional ngatm_sscfu -contrib/ngatm/netnatm/saal/saal_sscop.c optional ngatm_sscop -contrib/ngatm/netnatm/sig/sig_call.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_coord.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_party.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_print.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_reset.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_uni.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_unimsgcpy.c optional ngatm_uni -contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni -contrib/pf/net/if_pflog.c optional pflog -contrib/pf/net/if_pfsync.c optional pfsync -contrib/pf/net/pf.c optional pf -contrib/pf/net/pf_if.c optional pf -contrib/pf/net/pf_subr.c optional pf -contrib/pf/net/pf_ioctl.c optional pf -contrib/pf/net/pf_norm.c optional pf -contrib/pf/net/pf_table.c optional pf -contrib/pf/net/pf_osfp.c optional pf +contrib/dev/ath/freebsd/ah_osdep.c optional ath_hal \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" +contrib/ipfilter/netinet/fil.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_auth.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_fil_freebsd.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_frag.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_log.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_nat.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_proxy.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ipfilter/netinet/mlfk_ipl.c optional ipfilter inet \ + compile-with "${NORMAL_C} -I$S/contrib/ipfilter" +contrib/ngatm/netnatm/api/cc_conn.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_data.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_dump.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_port.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_sig.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/cc_user.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/api/unisap.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/misc/straddr.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/misc/unimsg_common.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/msg/traffic.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/msg/uni_ie.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/msg/uni_msg.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/saal/saal_sscfu.c optional ngatm_sscfu \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/saal/saal_sscop.c optional ngatm_sscop \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_call.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_coord.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_party.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_print.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_reset.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_uni.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_unimsgcpy.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +contrib/pf/net/if_pflog.c optional pflog \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/if_pfsync.c optional pfsync \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_if.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_subr.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_ioctl.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_norm.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_table.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" +contrib/pf/net/pf_osfp.c optional pf \ + compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/pf/netinet/in4_cksum.c optional pf inet crypto/blowfish/bf_ecb.c optional ipsec ipsec_esp crypto/blowfish/bf_skey.c optional crypto @@ -429,11 +480,16 @@ dev/ata/atapi-cd.c optional atapicd dev/ata/atapi-fd.c optional atapifd dev/ata/atapi-tape.c optional atapist -dev/ath/ath_rate/amrr/amrr.c optional ath_rate_amrr -dev/ath/ath_rate/onoe/onoe.c optional ath_rate_onoe -dev/ath/ath_rate/sample/sample.c optional ath_rate_sample -dev/ath/if_ath.c optional ath -dev/ath/if_ath_pci.c optional ath pci +dev/ath/ath_rate/amrr/amrr.c optional ath_rate_amrr \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" +dev/ath/ath_rate/onoe/onoe.c optional ath_rate_onoe \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" +dev/ath/ath_rate/sample/sample.c optional ath_rate_sample \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" +dev/ath/if_ath.c optional ath \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" +dev/ath/if_ath_pci.c optional ath pci \ + compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" dev/awi/am79c930.c optional awi dev/awi/awi.c optional awi dev/awi/if_awi_pccard.c optional awi pccard @@ -859,11 +915,16 @@ dev/syscons/warp/warp_saver.c optional warp_saver dev/tdfx/tdfx_pci.c optional tdfx pci dev/trm/trm.c optional trm -dev/twa/tw_cl_fwimg.c optional twa -dev/twa/tw_cl_init.c optional twa -dev/twa/tw_cl_intr.c optional twa -dev/twa/tw_cl_io.c optional twa -dev/twa/tw_cl_misc.c optional twa +dev/twa/tw_cl_fwimg.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" +dev/twa/tw_cl_init.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" +dev/twa/tw_cl_intr.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" +dev/twa/tw_cl_io.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" +dev/twa/tw_cl_misc.c optional twa \ + compile-with "${NORMAL_C} -I$S/dev/twa" dev/twa/tw_osl_cam.c optional twa dev/twa/tw_osl_freebsd.c optional twa dev/twe/twe.c optional twe @@ -1060,8 +1121,11 @@ geom/geom_vfs.c standard geom/geom_vol_ffs.c optional geom_vol geom/label/g_label.c optional geom_label +geom/label/g_label_ext2fs.c optional geom_label geom/label/g_label_iso9660.c optional geom_label geom/label/g_label_msdosfs.c optional geom_label +geom/label/g_label_ntfs.c optional geom_label +geom/label/g_label_reiserfs.c optional geom_label geom/label/g_label_ufs.c optional geom_label geom/mirror/g_mirror.c optional geom_mirror geom/mirror/g_mirror_ctl.c optional geom_mirror @@ -1259,6 +1323,7 @@ kern/subr_scanf.c standard kern/subr_sleepqueue.c standard kern/subr_smp.c standard +kern/subr_stack.c optional ddb kern/subr_taskqueue.c standard kern/subr_trap.c standard kern/subr_turnstile.c standard @@ -1330,6 +1395,7 @@ libkern/rindex.c standard libkern/scanc.c standard libkern/skpc.c standard +libkern/strcasecmp.c standard libkern/strcat.c standard libkern/strcmp.c standard libkern/strcpy.c standard @@ -1505,12 +1571,17 @@ netatm/uni/unisig_vc_state.c optional atm_uni atm_core netgraph/atm/atmpif/ng_atmpif.c optional netgraph_atm_atmpif netgraph/atm/atmpif/ng_atmpif_harp.c optional netgraph_atm_atmpif -netgraph/atm/ccatm/ng_ccatm.c optional ngatm_ccatm +netgraph/atm/ccatm/ng_ccatm.c optional ngatm_ccatm \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/atm/ng_atm.c optional ngatm_atm -netgraph/atm/ngatmbase.c optional ngatm_atmbase -netgraph/atm/sscfu/ng_sscfu.c optional ngatm_sscfu -netgraph/atm/sscop/ng_sscop.c optional ngatm_sscop -netgraph/atm/uni/ng_uni.c optional ngatm_uni +netgraph/atm/ngatmbase.c optional ngatm_atmbase \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +netgraph/atm/sscfu/ng_sscfu.c optional ngatm_sscfu \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +netgraph/atm/sscop/ng_sscop.c optional ngatm_sscop \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" +netgraph/atm/uni/ng_uni.c optional ngatm_uni \ + compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/bluetooth/common/ng_bluetooth.c optional netgraph_bluetooth netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c optional netgraph_bluetooth_bt3c netgraph/bluetooth/drivers/h4/ng_h4.c optional netgraph_bluetooth_h4 @@ -1583,7 +1654,8 @@ netinet/ip_gre.c optional gre inet netinet/ip_id.c optional inet netinet/in_pcb.c optional inet -netinet/in_proto.c optional inet +netinet/in_proto.c optional inet \ + compile-with "${NORMAL_C} -I$S/contrib/pf" netinet/in_rmx.c optional inet netinet/ip_divert.c optional ipdivert netinet/ip_dummynet.c optional dummynet From owner-p4-projects@FreeBSD.ORG Fri Sep 16 01:35:14 2005 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 8CE1516A421; Fri, 16 Sep 2005 01:35:13 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 586A216A41F for ; Fri, 16 Sep 2005 01:35:12 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F29A343D45 for ; Fri, 16 Sep 2005 01:35:11 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8G1ZBW5043476 for ; Fri, 16 Sep 2005 01:35:11 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8G1ZBvR043473 for perforce@freebsd.org; Fri, 16 Sep 2005 01:35:11 GMT (envelope-from csjp@freebsd.org) Date: Fri, 16 Sep 2005 01:35:11 GMT Message-Id: <200509160135.j8G1ZBvR043473@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 83723 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, 16 Sep 2005 01:35:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=83723 Change 83723 by csjp@csjp_xor on 2005/09/16 01:34:15 Conditionally pickup giant if the filesystem is not marked as being MPsafe. This incorporates the new world order of VFS locking. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac_chkexec/mac_chkexec.c#15 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac_chkexec/mac_chkexec.c#15 (text+ko) ==== @@ -507,7 +507,7 @@ { struct nameidata nd; char *depends, *ap; - int alen, error; + int vfslocked, alen, error; size_t ealen; ASSERT_VOP_LOCKED(vp, "no vlock held"); @@ -531,18 +531,17 @@ for (; (ap = strsep(&depends, ":")) != NULL && error == 0;) { if (strlen(ap) == 0) continue; - mtx_lock(&Giant); - NDINIT(&nd, LOOKUP, LOCKLEAF | FOLLOW, UIO_SYSSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | LOCKLEAF | FOLLOW, UIO_SYSSPACE, ap, curthread); if ((error = namei(&nd)) != 0) { free(depends, M_CHKEXEC); - mtx_unlock(&Giant); return (error); } + vfslocked = NDHASGIANT(&nd); error = mac_chkexec_check(nd.ni_vp, cred); NDFREE(&nd, NDF_ONLY_PNBUF); vput(nd.ni_vp); - mtx_unlock(&Giant); + VFS_UNLOCK_GIANT(vfslocked); } free(depends, M_CHKEXEC); return (error); @@ -813,7 +812,7 @@ { u_char digest[MAXCSUMSIZE]; struct nameidata nd; - int error; + int vfslocked, error; struct hash_algo *ha; struct mac_vcsum vcsum; @@ -839,18 +838,16 @@ CTR0(KTR_MAC, "mac_chkexec_check: invalid checksum algorithm"); return (EPERM); } - /* XXX MPSAFE VFS */ - mtx_lock(&Giant); - NDINIT(&nd, LOOKUP, LOCKLEAF | FOLLOW, UIO_USERSPACE, arg, td); + NDINIT(&nd, LOOKUP, MPSAFE | LOCKLEAF | FOLLOW, UIO_USERSPACE, arg, td); if ((error = namei(&nd)) != 0) { - mtx_unlock(&Giant); return (error); } + vfslocked = NDHASGIANT(&nd); error = ha->crypto_hash(nd.ni_vp, td->td_ucred, digest); if (error) { NDFREE(&nd, NDF_ONLY_PNBUF); vput(nd.ni_vp); - mtx_unlock(&Giant); + VFS_UNLOCK_GIANT(vfslocked); return (error); } bzero(&vcsum, sizeof(vcsum)); @@ -859,7 +856,7 @@ error = mac_chkexec_set_vcsum(nd.ni_vp, &vcsum); NDFREE(&nd, NDF_ONLY_PNBUF); vput(nd.ni_vp); - mtx_unlock(&Giant); + VFS_UNLOCK_GIANT(vfslocked); return (error); } From owner-p4-projects@FreeBSD.ORG Fri Sep 16 12:19:48 2005 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 61CCE16A421; Fri, 16 Sep 2005 12:19:48 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F264516A41F for ; Fri, 16 Sep 2005 12:19:47 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 869EA43D45 for ; Fri, 16 Sep 2005 12:19:47 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8GCJl8u084399 for ; Fri, 16 Sep 2005 12:19:47 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8GCJjhR084396 for perforce@freebsd.org; Fri, 16 Sep 2005 12:19:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 16 Sep 2005 12:19:45 GMT Message-Id: <200509161219.j8GCJjhR084396@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 83743 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, 16 Sep 2005 12:19:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=83743 Change 83743 by rwatson@rwatson_zoo on 2005/09/16 12:19:41 Integrate netsmp branch from FreeBSD CVS: - Busdma memory barrier for Alpha. - !+ for assembly. - CAM tweaks for probing. - More wide use of time_uptime() rather than time_second(). - Sundry ATA attachment and failure tweaks. - Several ethernet interfaces get free/detach fixes; if_tl mpsafe! - if_ed retrofitting and mii. - pccard cis and other attachment cleanups. - several devfs rules tweaks and devfs locking work - If IPI gets stuck... stumble onwards! - TSS fix - execve() and symlink locking fixes - Kqueue race fix - THREAD_NO_SLEEPING()/TDF_NOSLEEPING - Broken bpf optimization removed. - more fifo regression test work Affected files ... .. //depot/projects/netsmp/src/sys/alpha/alpha/busdma_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/alpha/include/atomic.h#2 integrate .. //depot/projects/netsmp/src/sys/amd64/include/atomic.h#4 integrate .. //depot/projects/netsmp/src/sys/boot/pc98/boot2/io.c#2 integrate .. //depot/projects/netsmp/src/sys/cam/cam_xpt.c#2 integrate .. //depot/projects/netsmp/src/sys/conf/NOTES#3 integrate .. //depot/projects/netsmp/src/sys/conf/files#9 integrate .. //depot/projects/netsmp/src/sys/dev/aac/aac.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/aac/aac_cam.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib_acpi.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-all.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-chipset.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-lowlevel.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-queue.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/ath/if_ath.c#11 integrate .. //depot/projects/netsmp/src/sys/dev/bfe/if_bfe.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/bge/if_bge.c#8 integrate .. //depot/projects/netsmp/src/sys/dev/cnw/if_cnw.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/digi/digi.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_ed.c#8 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_ed_cbus.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_ed_pccard.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_ed_pci.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_edreg.h#3 integrate .. //depot/projects/netsmp/src/sys/dev/ed/if_edvar.h#4 integrate .. //depot/projects/netsmp/src/sys/dev/em/if_em.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/en/if_en_pci.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/ep/if_ep_pccard.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/ex/if_ex.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/ex/if_ex_pccard.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/hatm/if_hatm.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/ie/if_ie.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/ieee488/tnt4882.c#1 branch .. //depot/projects/netsmp/src/sys/dev/ieee488/upd7210.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/ieee488/upd7210.h#3 integrate .. //depot/projects/netsmp/src/sys/dev/nge/if_nge.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/pccard/card_if.m#2 integrate .. //depot/projects/netsmp/src/sys/dev/pccard/pccard.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/pccard/pccard_cis.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/pccard/pccardvar.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/re/if_re.c#8 integrate .. //depot/projects/netsmp/src/sys/dev/sn/if_sn.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/sn/if_sn_pccard.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sn/if_snvar.h#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/txp/if_txp.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_aue.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_axe.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_cdce.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_cue.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_kue.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_rue.c#8 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_udav.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/vge/if_vge.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/xe/if_xe_pccard.c#4 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs.h#3 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_devs.c#3 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_rule.c#3 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#7 integrate .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#16 integrate .. //depot/projects/netsmp/src/sys/fs/nullfs/null_vnops.c#3 integrate .. //depot/projects/netsmp/src/sys/geom/geom_io.c#4 integrate .. //depot/projects/netsmp/src/sys/geom/geom_slice.c#2 integrate .. //depot/projects/netsmp/src/sys/i386/i386/local_apic.c#2 integrate .. //depot/projects/netsmp/src/sys/i386/i386/sys_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/i386/include/atomic.h#2 integrate .. //depot/projects/netsmp/src/sys/i386/include/pcb_ext.h#2 integrate .. //depot/projects/netsmp/src/sys/i386/pci/pci_bus.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/imgact_elf.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/init_main.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_conf.c#3 integrate .. //depot/projects/netsmp/src/sys/kern/kern_event.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_intr.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_timeout.c#3 integrate .. //depot/projects/netsmp/src/sys/kern/subr_sleepqueue.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/subr_witness.c#9 integrate .. //depot/projects/netsmp/src/sys/kern/uipc_socket.c#6 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_lookup.c#3 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_syscalls.c#3 integrate .. //depot/projects/netsmp/src/sys/net/bpf.c#6 integrate .. //depot/projects/netsmp/src/sys/net/if_vlan.c#9 integrate .. //depot/projects/netsmp/src/sys/net/route.h#2 integrate .. //depot/projects/netsmp/src/sys/netinet/ip_fw2.c#6 integrate .. //depot/projects/netsmp/src/sys/netinet/tcp_syncache.c#3 integrate .. //depot/projects/netsmp/src/sys/netinet6/nd6_nbr.c#7 integrate .. //depot/projects/netsmp/src/sys/pc98/cbus/fdc.c#2 integrate .. //depot/projects/netsmp/src/sys/pc98/cbus/gdc.c#2 integrate .. //depot/projects/netsmp/src/sys/pc98/cbus/nmi.c#2 integrate .. //depot/projects/netsmp/src/sys/pc98/cbus/sio.c#2 integrate .. //depot/projects/netsmp/src/sys/pc98/pc98/epsonio.h#2 delete .. //depot/projects/netsmp/src/sys/pc98/pc98/machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/pc98/pc98/pc98_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/pc98/pc98/pc98_machdep.h#2 integrate .. //depot/projects/netsmp/src/sys/pci/if_dc.c#9 integrate .. //depot/projects/netsmp/src/sys/pci/if_pcn.c#10 integrate .. //depot/projects/netsmp/src/sys/pci/if_rl.c#6 integrate .. //depot/projects/netsmp/src/sys/pci/if_sf.c#8 integrate .. //depot/projects/netsmp/src/sys/pci/if_sis.c#7 integrate .. //depot/projects/netsmp/src/sys/pci/if_sk.c#7 integrate .. //depot/projects/netsmp/src/sys/pci/if_ste.c#8 integrate .. //depot/projects/netsmp/src/sys/pci/if_ti.c#6 integrate .. //depot/projects/netsmp/src/sys/pci/if_tl.c#6 integrate .. //depot/projects/netsmp/src/sys/pci/if_tlreg.h#2 integrate .. //depot/projects/netsmp/src/sys/pci/if_vr.c#6 integrate .. //depot/projects/netsmp/src/sys/pci/if_wb.c#7 integrate .. //depot/projects/netsmp/src/sys/pci/if_xl.c#8 integrate .. //depot/projects/netsmp/src/sys/powerpc/include/atomic.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/conf.h#4 integrate .. //depot/projects/netsmp/src/sys/sys/filedesc.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/proc.h#3 integrate .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_io/fifo_io.c#3 integrate .. //depot/projects/netsmp/src/tools/regression/fifo/fifo_misc/fifo_misc.c#3 integrate .. //depot/projects/netsmp/src/tools/regression/sockets/shutdown/shutdown.c#2 integrate Differences ... ==== //depot/projects/netsmp/src/sys/alpha/alpha/busdma_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.51 2005/05/25 07:25:12 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.52 2005/09/15 17:09:42 jhb Exp $"); #include #include @@ -891,6 +891,10 @@ } } } + + /* Ensure any pending writes have drained. */ + if (op & (BUS_DMASYNC_PREWRITE)) + alpha_mb(); } static void ==== //depot/projects/netsmp/src/sys/alpha/include/atomic.h#2 (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/alpha/include/atomic.h,v 1.22 2005/07/15 18:17:57 jhb Exp $ + * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.23 2005/09/15 19:31:22 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ @@ -56,12 +56,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %2\n\t" /* load old value */ - "bis %0, %3, %0\n\t" /* calculate new value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ + "bis %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "m" (*p), "r" (v) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -72,12 +72,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "bic %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -88,12 +88,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "addl %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -104,12 +104,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "subl %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -121,12 +121,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( "wmb\n" /* ensure pending writes have drained */ - "1:\tldl_l %0,%2\n\t" /* load current value, asserting lock */ + "1:\tldl_l %0,%3\n\t" /* load current value, asserting lock */ "ldiq %1,0\n\t" /* value to store */ "stl_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ - : "=&r"(result), "=&r"(temp), "+m" (*addr) - : + : "=&r"(result), "=&r"(temp), "=m" (*addr) + : "m" (*addr) : "memory"); #endif @@ -139,12 +139,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "bis %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -155,12 +155,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "bic %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -171,12 +171,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "addq %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -187,12 +187,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "subq %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -204,12 +204,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( "wmb\n" /* ensure pending writes have drained */ - "1:\tldq_l %0,%2\n\t" /* load current value, asserting lock */ + "1:\tldq_l %0,%3\n\t" /* load current value, asserting lock */ "ldiq %1,0\n\t" /* value to store */ "stq_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ - : "=&r"(result), "=&r"(temp), "+m" (*addr) - : + : "=&r"(result), "=&r"(temp), "=m" (*addr) + : "m" (*addr) : "memory"); #endif @@ -289,15 +289,15 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %4\n\t" /* load old value */ "cmpeq %0, %2, %0\n\t" /* compare */ "beq %0, 2f\n\t" /* exit if not equal */ "mov %3, %0\n\t" /* value to store */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n\t" /* if it failed, spin */ "2:\n" - : "=&r" (ret), "+m" (*p) - : "r" ((long)(int)cmpval), "r" (newval) + : "=&r" (ret), "=m" (*p) + : "r" ((long)(int)cmpval), "r" (newval), "m" (*p) : "memory"); #endif @@ -316,15 +316,15 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %4\n\t" /* load old value */ "cmpeq %0, %2, %0\n\t" /* compare */ "beq %0, 2f\n\t" /* exit if not equal */ "mov %3, %0\n\t" /* value to store */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n\t" /* if it failed, spin */ "2:\n" - : "=&r" (ret), "+m" (*p) - : "r" (cmpval), "r" (newval) + : "=&r" (ret), "=m" (*p) + : "r" (cmpval), "r" (newval), "m" (*p) : "memory"); #endif ==== //depot/projects/netsmp/src/sys/amd64/include/atomic.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/amd64/include/atomic.h,v 1.37 2005/08/18 14:36:47 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.38 2005/09/15 19:31:22 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ @@ -99,8 +99,8 @@ atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ { \ __asm __volatile(__XSTRING(MPLOCKED) OP \ - : "+m" (*p) \ - : CONS (V)); \ + : "=m" (*p) \ + : CONS (V), "m" (*p)); \ } \ struct __hack @@ -119,15 +119,16 @@ __asm __volatile ( " " __XSTRING(MPLOCKED) " " - " cmpxchgl %1,%2 ; " + " cmpxchgl %2,%1 ; " " setz %%al ; " " movzbl %%al,%0 ; " "1: " "# atomic_cmpset_int" - : "+a" (res) /* 0 (result) */ - : "r" (src), /* 1 */ - "m" (*(dst)) /* 2 */ - : "memory"); + : "+a" (res), /* 0 (result) */ + "=m" (*dst) /* 1 */ + : "r" (src), /* 2 */ + "m" (*dst) /* 3 */ + : "memory"); return (res); } @@ -139,15 +140,16 @@ __asm __volatile ( " " __XSTRING(MPLOCKED) " " - " cmpxchgq %1,%2 ; " + " cmpxchgq %2,%1 ; " " setz %%al ; " " movzbq %%al,%0 ; " "1: " "# atomic_cmpset_long" - : "+a" (res) /* 0 (result) */ - : "r" (src), /* 1 */ - "m" (*(dst)) /* 2 */ - : "memory"); + : "+a" (res), /* 0 (result) */ + "=m" (*dst) /* 1 */ + : "r" (src), /* 2 */ + "m" (*dst) /* 3 */ + : "memory"); return (res); } @@ -185,8 +187,9 @@ \ __asm __volatile(__XSTRING(MPLOCKED) LOP \ : "=a" (res), /* 0 (result) */\ - "+m" (*p) /* 1 */ \ - : : "memory"); \ + "=m" (*p) /* 1 */ \ + : "m" (*p) /* 2 */ \ + : "memory"); \ \ return (res); \ } \ @@ -198,9 +201,9 @@ atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ { \ __asm __volatile(SOP \ - : "+m" (*p), /* 0 */ \ + : "=m" (*p), /* 0 */ \ "+r" (v) /* 1 */ \ - : : "memory"); \ + : "m" (*p)); /* 2 */ \ } \ struct __hack @@ -246,12 +249,13 @@ { u_int result; + result = 0; __asm __volatile ( - " xorl %0,%0 ; " " xchgl %1,%0 ; " "# atomic_readandclear_int" - : "=&r" (result) /* 0 (result) */ - : "m" (*addr)); /* 1 (addr) */ + : "+r" (result), /* 0 (result) */ + "=m" (*addr) /* 1 (addr) */ + : "m" (*addr)); return (result); } @@ -261,12 +265,13 @@ { u_long result; + result = 0; __asm __volatile ( - " xorq %0,%0 ; " " xchgq %1,%0 ; " "# atomic_readandclear_long" - : "=&r" (result) /* 0 (result) */ - : "m" (*addr)); /* 1 (addr) */ + : "+r" (result), /* 0 (result) */ + "=m" (*addr) /* 1 (addr) */ + : "m" (*addr)); return (result); } ==== //depot/projects/netsmp/src/sys/boot/pc98/boot2/io.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/io.c,v 1.8 2005/05/10 12:02:14 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/io.c,v 1.9 2005/09/14 12:39:06 nyan Exp $"); #include "boot.h" #include @@ -354,7 +354,6 @@ int ret; int i; int data = 0; - u_char epson_machine_id = *(unsigned char *)V(0xA1624); /* PC98_SYSTEM_PARAMETER(0x501) */ ret = ((*(unsigned char*)V(0xA1501)) & 0x08) >> 3; @@ -390,18 +389,8 @@ } else { ret |= M_NOT_H98; } - } else { + } else ret |= M_NOT_H98; - switch (epson_machine_id) { - case 0x20: /* note A */ - case 0x22: /* note W */ - case 0x27: /* note AE */ - case 0x2a: /* note WR */ - ret |= M_NOTE; - break; - default: - break; - } - } + (*(unsigned long *)V(0xA1620)) = ret; } ==== //depot/projects/netsmp/src/sys/cam/cam_xpt.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.155 2005/07/01 15:21:29 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.156 2005/09/16 01:26:17 mjacob Exp $"); #include #include @@ -45,6 +45,7 @@ #include #include +#include #ifdef PC98 #include /* geometry translation */ @@ -208,16 +209,31 @@ u_int mintags; u_int maxtags; }; + +static int cam_srch_hi = 0; +TUNABLE_INT("kern.cam.cam_srch_hi", &cam_srch_hi); +static int sysctl_cam_search_luns(SYSCTL_HANDLER_ARGS); +SYSCTL_PROC(_kern_cam, OID_AUTO, cam_srch_hi, CTLTYPE_INT|CTLFLAG_RW, 0, 0, + sysctl_cam_search_luns, "I", + "allow search above LUN 7 for SCSI3 and greater devices"); + #define CAM_SCSI2_MAXLUN 8 /* * If we're not quirked to search <= the first 8 luns * and we are either quirked to search above lun 8, - * or we're > SCSI-2, we can look for luns above lun 8. + * or we're > SCSI-2 and we've enabled hilun searching, + * or we're > SCSI-2 and the last lun was a success, + * we can look for luns above lun 8. */ -#define CAN_SRCH_HI(dv) \ +#define CAN_SRCH_HI_SPARSE(dv) \ + (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \ + && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \ + || (SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2 && cam_srch_hi))) + +#define CAN_SRCH_HI_DENSE(dv) \ (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \ && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \ - || SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2)) + || (SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2))) typedef enum { XPT_FLAG_OPEN = 0x01 @@ -5334,7 +5350,7 @@ s = splcam(); device = TAILQ_FIRST(&target->ed_entries); if (device != NULL) { - phl = CAN_SRCH_HI(device); + phl = CAN_SRCH_HI_SPARSE(device); if (device->lun_id == 0) device = TAILQ_NEXT(device, links); } @@ -5351,7 +5367,7 @@ if ((device->quirk->quirks & CAM_QUIRK_NOLUNS) == 0) { /* Try the next lun */ if (lun_id < (CAM_SCSI2_MAXLUN-1) - || CAN_SRCH_HI(device)) + || CAN_SRCH_HI_DENSE(device)) lun_id++; } } @@ -6115,6 +6131,23 @@ device->quirk = (struct xpt_quirk_entry *)match; } +static int +sysctl_cam_search_luns(SYSCTL_HANDLER_ARGS) +{ + int error, bool; + + bool = cam_srch_hi; + error = sysctl_handle_int(oidp, &bool, sizeof(bool), req); + if (error != 0 || req->newptr == NULL) + return (error); + if (bool == 0 || bool == 1) { + cam_srch_hi = bool; + return (0); + } else { + return (EINVAL); + } +} + #ifdef CAM_NEW_TRAN_CODE static void ==== //depot/projects/netsmp/src/sys/conf/NOTES#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1328 2005/07/27 21:47:55 pjd Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1329 2005/09/15 13:28:33 phk Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1999,13 +1999,17 @@ # # IEEE-488 hardware: -# pcii: PCIIA cards (uPD7210 based isa cards) +# pcii: PCIIA cards (uPD7210 based isa cards) +# tnt4882: National Instruments PCI-GPIB card. + device pcii hint.pcii.0.at="isa" hint.pcii.0.port="0x2e1" hint.pcii.0.irq="5" hint.pcii.0.drq="1" +device tnt4882 + # # Miscellaneous hardware: # ==== //depot/projects/netsmp/src/sys/conf/files#9 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1047 2005/09/11 03:38:18 obrien Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1048 2005/09/15 13:28:33 phk Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -648,9 +648,12 @@ dev/ida/ida_pci.c optional ida pci dev/ie/if_ie.c optional ie isa nowerror dev/ie/if_ie_isa.c optional ie isa -dev/ieee488/ibfoo.c optional pcii -dev/ieee488/pcii.c optional pcii +dev/ieee488/ibfoo.c optional pcii +dev/ieee488/ibfoo.c optional tnt4882 +dev/ieee488/pcii.c optional pcii +dev/ieee488/tnt4882.c optional tnt4882 dev/ieee488/upd7210.c optional pcii +dev/ieee488/upd7210.c optional tnt4882 dev/iicbus/if_ic.c optional ic dev/iicbus/iic.c optional iic dev/iicbus/iicbb.c optional iicbb ==== //depot/projects/netsmp/src/sys/dev/aac/aac.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.109 2005/06/01 07:11:17 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.110 2005/09/14 05:46:28 scottl Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -925,7 +925,7 @@ cm->cm_datalen = bp->bio_bcount; cm->cm_complete = aac_bio_complete; cm->cm_private = bp; - cm->cm_timestamp = time_second; + cm->cm_timestamp = time_uptime; cm->cm_queue = AAC_ADAP_NORM_CMD_QUEUE; /* build the FIB */ @@ -1426,7 +1426,7 @@ /* * First wait for the adapter to come ready. */ - then = time_second; + then = time_uptime; do { code = AAC_GET_FWSTATUS(sc); if (code & AAC_SELF_TEST_FAILED) { @@ -1438,7 +1438,7 @@ "FATAL: controller kernel panic\n"); return(ENXIO); } - if (time_second > (then + AAC_BOOT_TIMEOUT)) { + if (time_uptime > (then + AAC_BOOT_TIMEOUT)) { device_printf(sc->aac_dev, "FATAL: controller not coming ready, " "status %x\n", code); @@ -1573,7 +1573,7 @@ ip->HostPhysMemPages = (ip->HostPhysMemPages + AAC_PAGE_SIZE) / AAC_PAGE_SIZE; } - ip->HostElapsedSeconds = time_second; /* reset later if invalid */ + ip->HostElapsedSeconds = time_uptime; /* reset later if invalid */ /* * Initialise FIB queues. Note that it appears that the layout of the @@ -1701,9 +1701,9 @@ AAC_QNOTIFY(sc, AAC_DB_SYNC_COMMAND); /* spin waiting for the command to complete */ - then = time_second; + then = time_uptime; do { - if (time_second > (then + AAC_IMMEDIATE_TIMEOUT)) { + if (time_uptime > (then + AAC_IMMEDIATE_TIMEOUT)) { debug(1, "timed out"); return(EIO); } @@ -1997,14 +1997,14 @@ * only. */ timedout = 0; - deadline = time_second - AAC_CMD_TIMEOUT; + deadline = time_uptime - AAC_CMD_TIMEOUT; TAILQ_FOREACH(cm, &sc->aac_busy, cm_link) { if ((cm->cm_timestamp < deadline) /* && !(cm->cm_flags & AAC_CMD_TIMEDOUT) */) { cm->cm_flags |= AAC_CMD_TIMEDOUT; device_printf(sc->aac_dev, "COMMAND %p TIMEOUT AFTER %d SECONDS\n", - cm, (int)(time_second-cm->cm_timestamp)); + cm, (int)(time_uptime-cm->cm_timestamp)); AAC_PRINT_FIB(sc, cm->cm_fib); timedout++; } @@ -2602,7 +2602,7 @@ if ((error = copyin(ufib, cm->cm_fib, size)) != 0) goto out; cm->cm_fib->Header.Size = size; - cm->cm_timestamp = time_second; + cm->cm_timestamp = time_uptime; /* * Pass the FIB to the controller, wait for it to complete. ==== //depot/projects/netsmp/src/sys/dev/aac/aac_cam.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac_cam.c,v 1.20 2005/02/09 11:47:05 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac_cam.c,v 1.21 2005/09/14 05:49:34 scottl Exp $"); /* * CAM front-end for communicating with non-DASD devices @@ -397,7 +397,7 @@ cm->cm_complete = aac_cam_complete; cm->cm_private = ccb; - cm->cm_timestamp = time_second; + cm->cm_timestamp = time_uptime; cm->cm_queue = AAC_ADAP_NORM_CMD_QUEUE; fib->Header.XferState = ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib_acpi.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib_acpi.c,v 1.48 2005/09/11 18:39:01 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib_acpi.c,v 1.49 2005/09/16 07:02:29 imp Exp $"); #include "opt_acpi.h" #include @@ -322,6 +322,8 @@ */ if (type == SYS_RES_MEMORY && start == 0UL && end == ~0UL) start = acpi_host_mem_start; + if (type == SYS_RES_IOPORT && start == 0UL && end == ~0UL) + start = 0x1000; return (bus_generic_alloc_resource(dev, child, type, rid, start, end, count, flags)); } ==== //depot/projects/netsmp/src/sys/dev/ata/ata-all.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.256 2005/08/29 18:19:06 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.257 2005/09/14 12:45:06 sos Exp $"); #include "opt_ata.h" #include @@ -158,7 +158,7 @@ device_t *children; int nchildren, i; - /* check that we have a vaild channel to detach */ + /* check that we have a valid channel to detach */ if (!ch->r_irq) return ENXIO; @@ -183,10 +183,11 @@ ata_reinit(device_t dev) { struct ata_channel *ch = device_get_softc(dev); + struct ata_request *request; device_t *children; int nchildren, i; - /* check that we have a vaild channel to reinit */ + /* check that we have a valid channel to reinit */ if (!ch || !ch->r_irq) return ENXIO; @@ -216,12 +217,25 @@ * this child we need to inform the request that the * device is gone and remove it from ch->running */ + mtx_lock(&ch->state_mtx); if (ch->running && ch->running->dev == children[i]) { - device_printf(ch->running->dev, + callout_stop(&ch->running->callout); + request = ch->running; + ch->running = NULL; + } + else + request = NULL; + mtx_unlock(&ch->state_mtx); + + if (request) { + request->result = ENXIO; + device_printf(request->dev, "FAILURE - device detached\n"); - ch->running->dev = NULL; - ch->running = NULL; - } + + /* if not timeout finish request here */ + if (!(request->flags & ATA_R_TIMEOUT)) + ata_finish(request); + } device_delete_child(dev, children[i]); } } @@ -230,7 +244,23 @@ } /* catch request in ch->running if we havn't already */ - ata_catch_inflight(dev); + mtx_lock(&ch->state_mtx); + if ((request = ch->running)) + callout_stop(&request->callout); + ch->running = NULL; + mtx_unlock(&ch->state_mtx); + + /* if we got one put it on the queue again */ + if (request) { + device_printf(request->dev, + "WARNING - %s requeued due to channel reset", + ata_cmd2str(request)); + if (!(request->flags & (ATA_R_ATAPI | ATA_R_CONTROL))) + printf(" LBA=%llu", (unsigned long long)request->u.ata.lba); + printf("\n"); + request->flags |= ATA_R_REQUEUE; + ata_queue_request(request); + } /* we're done release the channel for new work */ mtx_lock(&ch->state_mtx); @@ -297,7 +327,7 @@ mtx_lock(&ch->state_mtx); do { /* do we have a running request */ - if (!(request = ch->running) || (request->flags & ATA_R_TIMEOUT)) + if (!(request = ch->running)) break; ATA_DEBUG_RQ(request, "interrupt"); @@ -311,8 +341,7 @@ /* check for the right state */ if (ch->state != ATA_ACTIVE && ch->state != ATA_STALL_QUEUE) { - device_printf(request->dev, - "interrupt state=%d unexpected\n", ch->state); + device_printf(request->dev, "interrupt on idle channel ignored\n"); break; } ==== //depot/projects/netsmp/src/sys/dev/ata/ata-chipset.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.132 2005/08/29 09:01:57 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.133 2005/09/14 12:45:06 sos Exp $"); #include "opt_ata.h" #include @@ -313,13 +313,12 @@ ata_sata_phy_event(void *context, int dummy) { struct ata_connect_task *tp = (struct ata_connect_task *)context; + struct ata_channel *ch = device_get_softc(tp->dev); device_t *children; int nchildren, i; mtx_lock(&Giant); /* newbus suckage it needs Giant */ if (tp->action == ATA_C_ATTACH) { - struct ata_channel *ch = device_get_softc(tp->dev); - device_printf(tp->dev, "CONNECTED\n"); ata_sata_connect(ch); ata_identify(tp->dev); @@ -331,6 +330,9 @@ device_delete_child(tp->dev, children[i]); free(children, M_TEMP); } + mtx_lock(&ch->state_mtx); + ch->state = ATA_IDLE; + mtx_unlock(&ch->state_mtx); device_printf(tp->dev, "DISCONNECTED\n"); } mtx_unlock(&Giant); /* suckage code dealt with, release Giant */ ==== //depot/projects/netsmp/src/sys/dev/ata/ata-lowlevel.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.70 2005/08/17 15:00:33 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.71 2005/09/14 12:45:06 sos Exp $"); #include "opt_ata.h" #include @@ -117,7 +117,8 @@ /* if write command output the data */ if (write) { if (ata_wait(ch, atadev, (ATA_S_READY | ATA_S_DRQ)) < 0) { - device_printf(request->dev,"timeout waiting for write DRQ"); + device_printf(request->dev, + "timeout waiting for write DRQ\n"); request->result = EIO; goto begin_finished; } @@ -278,7 +279,8 @@ /* if read data get it */ if (request->flags & ATA_R_READ) { if (ata_wait(ch, atadev, (ATA_S_READY | ATA_S_DRQ)) < 0) { - device_printf(request->dev, "timeout waiting for read DRQ"); + device_printf(request->dev, + "timeout waiting for read DRQ\n"); request->result = EIO; goto end_finished; } @@ -302,7 +304,7 @@ /* if we get an error here we are done with the HW */ if (ata_wait(ch, atadev, (ATA_S_READY | ATA_S_DRQ)) < 0) { device_printf(request->dev, - "timeout waiting for write DRQ"); + "timeout waiting for write DRQ\n"); request->status = ATA_IDX_INB(ch, ATA_STATUS); goto end_finished; } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Sep 16 16:56:22 2005 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 5C23416A421; Fri, 16 Sep 2005 16:56:22 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2A0FF16A420 for ; Fri, 16 Sep 2005 16:56:22 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 728AD43D5A for ; Fri, 16 Sep 2005 16:56:20 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8GGuK4L010194 for ; Fri, 16 Sep 2005 16:56:20 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8GGuK9m010191 for perforce@freebsd.org; Fri, 16 Sep 2005 16:56:20 GMT (envelope-from sam@freebsd.org) Date: Fri, 16 Sep 2005 16:56:20 GMT Message-Id: <200509161656.j8GGuK9m010191@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 83747 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, 16 Sep 2005 16:56:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=83747 Change 83747 by sam@sam_ebb on 2005/09/16 16:55:47 check ic_set_tim before using it Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_power.c#3 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_power.c#3 (text+ko) ==== @@ -217,7 +217,7 @@ "[%s] save frame with age %d, %u now queued\n", ether_sprintf(ni->ni_macaddr), age, qlen); - if (qlen == 1) + if (qlen == 1 && ic->ic_set_tim != NULL) ic->ic_set_tim(ni, 1); } From owner-p4-projects@FreeBSD.ORG Fri Sep 16 16:57:23 2005 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 88B1416A421; Fri, 16 Sep 2005 16:57:22 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6336D16A41F for ; Fri, 16 Sep 2005 16:57:22 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3326943D45 for ; Fri, 16 Sep 2005 16:57:22 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8GGvMbW010245 for ; Fri, 16 Sep 2005 16:57:22 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8GGvLCq010242 for perforce@freebsd.org; Fri, 16 Sep 2005 16:57:21 GMT (envelope-from sam@freebsd.org) Date: Fri, 16 Sep 2005 16:57:21 GMT Message-Id: <200509161657.j8GGvLCq010242@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 83748 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, 16 Sep 2005 16:57:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=83748 Change 83748 by sam@sam_ebb on 2005/09/16 16:56:24 optimize cancel scan; check if cancel already requested Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_scan.c#3 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_scan.c#3 (text+ko) ==== @@ -554,7 +554,8 @@ struct ieee80211_scan_state *ss = ic->ic_scan; IEEE80211_LOCK(ic); - if (ic->ic_flags & IEEE80211_F_SCAN) { + if ((ic->ic_flags & IEEE80211_F_SCAN) && + (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL) == 0) { IEEE80211_DPRINTF(ic, IEEE80211_MSG_SCAN, "%s: cancel %s scan\n", __func__, ss->ss_flags & IEEE80211_SCAN_ACTIVE ? From owner-p4-projects@FreeBSD.ORG Fri Sep 16 20:37:49 2005 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 1A79816A421; Fri, 16 Sep 2005 20:37:49 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E5B5F16A41F for ; Fri, 16 Sep 2005 20:37:48 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B2E2C43D46 for ; Fri, 16 Sep 2005 20:37:48 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8GKbmmh020432 for ; Fri, 16 Sep 2005 20:37:48 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8GKbmlj020429 for perforce@freebsd.org; Fri, 16 Sep 2005 20:37:48 GMT (envelope-from sam@freebsd.org) Date: Fri, 16 Sep 2005 20:37:48 GMT Message-Id: <200509162037.j8GKbmlj020429@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 83752 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, 16 Sep 2005 20:37:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=83752 Change 83752 by sam@sam_ebb on 2005/09/16 20:37:22 display scanvalid when != bgscaninterval Affected files ... .. //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#47 edit Differences ... ==== //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#47 (text+ko) ==== @@ -1472,7 +1472,7 @@ { static const uint8_t zerobssid[IEEE80211_ADDR_LEN]; enum ieee80211_opmode opmode = get80211opmode(s); - int i, num, wpa, wme, bgscan; + int i, num, wpa, wme, bgscan, bgscaninterval; struct ieee80211req ireq; u_int8_t data[32]; const struct ieee80211_channel *c; @@ -1700,6 +1700,18 @@ LINE_CHECK("%cmcastrate %d", spacer, ireq.i_val/2); } + ireq.i_type = IEEE80211_IOC_BGSCAN_INTERVAL; + if (ioctl(s, SIOCG80211, &ireq) != -1) + bgscaninterval = ireq.i_val; + else + bgscaninterval = -1; + + ireq.i_type = IEEE80211_IOC_SCANVALID; + if (ioctl(s, SIOCG80211, &ireq) != -1) { + if (ireq.i_val != bgscaninterval || verbose) + LINE_CHECK("%cscanvalid %u", spacer, ireq.i_val); + } + ireq.i_type = IEEE80211_IOC_BGSCAN; if (ioctl(s, SIOCG80211, &ireq) != -1) { bgscan = ireq.i_val; @@ -1709,9 +1721,8 @@ LINE_CHECK("%c-bgscan", spacer); } if (bgscan || verbose) { - ireq.i_type = IEEE80211_IOC_BGSCAN_INTERVAL; - if (ioctl(s, SIOCG80211, &ireq) != -1) - LINE_CHECK("%cbgscanintvl %u", spacer, ireq.i_val); + if (bgscaninterval != -1) + LINE_CHECK("%cbgscanintvl %u", spacer, bgscaninterval); ireq.i_type = IEEE80211_IOC_BGSCAN_IDLE; if (ioctl(s, SIOCG80211, &ireq) != -1) LINE_CHECK("%cbgscanidle %u", spacer, ireq.i_val); From owner-p4-projects@FreeBSD.ORG Fri Sep 16 20:41:55 2005 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 0128D16A421; Fri, 16 Sep 2005 20:41:54 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CCFA116A41F for ; Fri, 16 Sep 2005 20:41:54 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9A75643D46 for ; Fri, 16 Sep 2005 20:41:54 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8GKfsLJ020696 for ; Fri, 16 Sep 2005 20:41:54 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8GKfsDc020693 for perforce@freebsd.org; Fri, 16 Sep 2005 20:41:54 GMT (envelope-from sam@freebsd.org) Date: Fri, 16 Sep 2005 20:41:54 GMT Message-Id: <200509162041.j8GKfsDc020693@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 83754 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, 16 Sep 2005 20:41:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=83754 Change 83754 by sam@sam_ebb on 2005/09/16 20:41:00 default valid scan cache age to the bgscan interval; when roaming is enabled and it's less than the bgscan intvl it effectively overrides the bgscan intvl Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_scan.c#4 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_scan.c#4 (text+ko) ==== @@ -80,13 +80,12 @@ * driver (dBm). Transmit rate thresholds are IEEE rate codes (i.e * .5M units). */ -#define SCAN_VALID_DEFAULT 60 /* scan cache valid age (secs) */ #define ROAM_RSSI_11A_DEFAULT 24 /* rssi threshold for 11a bss */ #define ROAM_RSSI_11B_DEFAULT 24 /* rssi threshold for 11b bss */ #define ROAM_RSSI_11BONLY_DEFAULT 24 /* rssi threshold for 11b-only bss */ -#define ROAM_RATE_11A_DEFAULT 2*24 /* tx rate threshold for 11a bss */ -#define ROAM_RATE_11B_DEFAULT 2*9 /* tx rate threshold for 11b bss */ -#define ROAM_RATE_11BONLY_DEFAULT 2*5 /* tx rate threshold for 11b-only bss */ +#define ROAM_RATE_11A_DEFAULT 2*24 /* tx rate thresh for 11a bss */ +#define ROAM_RATE_11B_DEFAULT 2*9 /* tx rate thresh for 11b bss */ +#define ROAM_RATE_11BONLY_DEFAULT 2*5 /* tx rate thresh for 11b-only bss */ static void scan_restart_pwrsav(void *); static void scan_next(void *); @@ -111,7 +110,7 @@ ic->ic_bgscanidle = (IEEE80211_BGSCAN_IDLE_DEFAULT*1000)/hz; ic->ic_bgscanintvl = IEEE80211_BGSCAN_INTVAL_DEFAULT*hz; - ic->ic_scanvalid = SCAN_VALID_DEFAULT*hz; + ic->ic_scanvalid = ic->ic_bgscanintvl; ic->ic_roam.rssi11a = ROAM_RSSI_11A_DEFAULT; ic->ic_roam.rssi11b = ROAM_RSSI_11B_DEFAULT; ic->ic_roam.rssi11bOnly = ROAM_RSSI_11BONLY_DEFAULT; From owner-p4-projects@FreeBSD.ORG Fri Sep 16 20:41:56 2005 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 F29EB16A422; Fri, 16 Sep 2005 20:41:55 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A4A8516A431 for ; Fri, 16 Sep 2005 20:41:55 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3F10343D46 for ; Fri, 16 Sep 2005 20:41:55 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8GKft5h020703 for ; Fri, 16 Sep 2005 20:41:55 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8GKfsBj020699 for perforce@freebsd.org; Fri, 16 Sep 2005 20:41:54 GMT (envelope-from sam@freebsd.org) Date: Fri, 16 Sep 2005 20:41:54 GMT Message-Id: <200509162041.j8GKfsBj020699@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 83755 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, 16 Sep 2005 20:41:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=83755 Change 83755 by sam@sam_ebb on 2005/09/16 20:41:34 IFC Affected files ... .. //depot/projects/wifi/etc/rc.initdiskless#4 integrate .. //depot/projects/wifi/include/Makefile#16 integrate .. //depot/projects/wifi/lib/libc/gen/getcwd.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/glob.c#2 integrate .. //depot/projects/wifi/lib/libmd/sha256.3#3 integrate .. //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#18 integrate .. //depot/projects/wifi/sbin/init/init.8#4 integrate .. //depot/projects/wifi/sbin/init/init.c#3 integrate .. //depot/projects/wifi/sbin/mount_msdosfs/mount_msdosfs.8#3 integrate .. //depot/projects/wifi/sbin/sysctl/sysctl.8#6 integrate .. //depot/projects/wifi/sbin/sysctl/sysctl.c#5 integrate .. //depot/projects/wifi/share/man/man4/man4.i386/Makefile#7 integrate .. //depot/projects/wifi/share/man/man4/man4.i386/acpi_sony.4#1 branch .. //depot/projects/wifi/share/man/man5/msdosfs.5#2 integrate .. //depot/projects/wifi/share/man/man5/rc.conf.5#19 integrate .. //depot/projects/wifi/sys/alpha/alpha/busdma_machdep.c#6 integrate .. //depot/projects/wifi/sys/alpha/include/atomic.h#5 integrate .. //depot/projects/wifi/sys/amd64/include/atomic.h#7 integrate .. //depot/projects/wifi/sys/boot/pc98/boot2/io.c#4 integrate .. //depot/projects/wifi/sys/conf/NOTES#26 integrate .. //depot/projects/wifi/sys/conf/files#32 integrate .. //depot/projects/wifi/sys/dev/aac/aac.c#7 integrate .. //depot/projects/wifi/sys/dev/aac/aac_cam.c#5 integrate .. //depot/projects/wifi/sys/dev/ata/ata-all.c#13 integrate .. //depot/projects/wifi/sys/dev/ata/ata-chipset.c#17 integrate .. //depot/projects/wifi/sys/dev/ata/ata-lowlevel.c#15 integrate .. //depot/projects/wifi/sys/dev/ata/ata-queue.c#10 integrate .. //depot/projects/wifi/sys/dev/digi/digi.c#3 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_cbus.c#8 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_pccard.c#10 integrate .. //depot/projects/wifi/sys/dev/ed/if_ed_pci.c#8 integrate .. //depot/projects/wifi/sys/dev/em/if_em.c#14 integrate .. //depot/projects/wifi/sys/dev/ieee488/tnt4882.c#1 branch .. //depot/projects/wifi/sys/dev/ieee488/upd7210.c#5 integrate .. //depot/projects/wifi/sys/dev/ieee488/upd7210.h#4 integrate .. //depot/projects/wifi/sys/dev/nge/if_nge.c#9 integrate .. //depot/projects/wifi/sys/dev/re/if_re.c#10 integrate .. //depot/projects/wifi/sys/dev/sn/if_sn.c#8 integrate .. //depot/projects/wifi/sys/dev/sn/if_snvar.h#5 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/sndstat.c#4 integrate .. //depot/projects/wifi/sys/dev/txp/if_txp.c#8 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs.h#5 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_devs.c#8 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_rule.c#4 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_vnops.c#26 integrate .. //depot/projects/wifi/sys/fs/fifofs/fifo_vnops.c#11 integrate .. //depot/projects/wifi/sys/fs/nullfs/null_vnops.c#13 integrate .. //depot/projects/wifi/sys/geom/geom_io.c#4 integrate .. //depot/projects/wifi/sys/geom/geom_slice.c#3 integrate .. //depot/projects/wifi/sys/i386/i386/local_apic.c#9 integrate .. //depot/projects/wifi/sys/i386/i386/sys_machdep.c#10 integrate .. //depot/projects/wifi/sys/i386/include/atomic.h#6 integrate .. //depot/projects/wifi/sys/i386/include/pcb_ext.h#2 integrate .. //depot/projects/wifi/sys/kern/imgact_elf.c#8 integrate .. //depot/projects/wifi/sys/kern/init_main.c#9 integrate .. //depot/projects/wifi/sys/kern/kern_conf.c#12 integrate .. //depot/projects/wifi/sys/kern/kern_event.c#9 integrate .. //depot/projects/wifi/sys/kern/kern_intr.c#10 integrate .. //depot/projects/wifi/sys/kern/kern_timeout.c#6 integrate .. //depot/projects/wifi/sys/kern/subr_sleepqueue.c#7 integrate .. //depot/projects/wifi/sys/kern/subr_witness.c#14 integrate .. //depot/projects/wifi/sys/kern/uipc_socket.c#17 integrate .. //depot/projects/wifi/sys/kern/vfs_lookup.c#13 integrate .. //depot/projects/wifi/sys/kern/vfs_syscalls.c#14 integrate .. //depot/projects/wifi/sys/net/bpf.c#15 integrate .. //depot/projects/wifi/sys/net/route.h#3 integrate .. //depot/projects/wifi/sys/netinet/ip_fw2.c#15 integrate .. //depot/projects/wifi/sys/netinet/tcp_syncache.c#8 integrate .. //depot/projects/wifi/sys/pc98/cbus/fdc.c#3 integrate .. //depot/projects/wifi/sys/pc98/cbus/gdc.c#2 integrate .. //depot/projects/wifi/sys/pc98/cbus/nmi.c#2 integrate .. //depot/projects/wifi/sys/pc98/cbus/sio.c#2 integrate .. //depot/projects/wifi/sys/pc98/pc98/epsonio.h#4 delete .. //depot/projects/wifi/sys/pc98/pc98/machdep.c#3 integrate .. //depot/projects/wifi/sys/pc98/pc98/pc98_machdep.c#5 integrate .. //depot/projects/wifi/sys/pc98/pc98/pc98_machdep.h#3 integrate .. //depot/projects/wifi/sys/pci/if_dc.c#10 integrate .. //depot/projects/wifi/sys/pci/if_rl.c#8 integrate .. //depot/projects/wifi/sys/pci/if_tl.c#7 integrate .. //depot/projects/wifi/sys/pci/if_tlreg.h#4 integrate .. //depot/projects/wifi/sys/powerpc/include/atomic.h#5 integrate .. //depot/projects/wifi/sys/sys/conf.h#13 integrate .. //depot/projects/wifi/sys/sys/filedesc.h#9 integrate .. //depot/projects/wifi/sys/sys/proc.h#18 integrate .. //depot/projects/wifi/tools/regression/sockets/shutdown/shutdown.c#2 integrate .. //depot/projects/wifi/usr.bin/netstat/bpf.c#2 integrate .. //depot/projects/wifi/usr.sbin/pmcstat/pmcstat_log.c#3 integrate .. //depot/projects/wifi/usr.sbin/portsnap/portsnap/portsnap.sh#3 integrate Differences ... ==== //depot/projects/wifi/etc/rc.initdiskless#4 (text+ko) ==== @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.initdiskless,v 1.44 2005/08/28 18:48:04 bmah Exp $ +# $FreeBSD: src/etc/rc.initdiskless,v 1.45 2005/09/15 16:09:28 rwatson Exp $ # On entry to this script the entire system consists of a read-only root # mounted via NFS. The kernel has run BOOTP and configured an interface @@ -191,7 +191,7 @@ fi done # Get the values passed with the T134 bootp cookie. - class="`/sbin/sysctl -n kern.bootp_cookie`" + class="`/sbin/sysctl -qn kern.bootp_cookie`" echo "Interface ${bootp_ifc} IP-Address ${bootp_ipa} Broadcast ${bootp_ipbca} ${class}" fi ==== //depot/projects/wifi/include/Makefile#16 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.247 2005/09/12 16:11:48 stefanf Exp $ +# $FreeBSD: src/include/Makefile,v 1.248 2005/09/14 09:01:06 stefanf Exp $ # # Doing a "make install" builds /usr/include. @@ -84,7 +84,6 @@ echo "#else" >> osreldate.h; \ echo \#'undef __FreeBSD_version' >> osreldate.h; \ echo \#'define __FreeBSD_version' $$RELDATE >> osreldate.h; \ - echo "int getosreldate(void);" >> osreldate.h; \ echo "#endif" >> osreldate.h .for i in ${LHDRS} ==== //depot/projects/wifi/lib/libc/gen/getcwd.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ static char sccsid[] = "@(#)getcwd.c 8.5 (Berkeley) 2/7/95"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/getcwd.c,v 1.25 2003/10/29 10:45:01 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/getcwd.c,v 1.27 2005/09/15 17:25:52 ache Exp $"); #include "namespace.h" #include @@ -91,7 +91,7 @@ } ept = pt + size; } else { - if ((pt = malloc(ptsize = 1024 - 4)) == NULL) + if ((pt = malloc(ptsize = PATH_MAX)) == NULL) return (NULL); ept = pt + ptsize; } @@ -111,13 +111,13 @@ *bpt = '\0'; /* - * Allocate bytes (1024 - malloc space) for the string of "../"'s. - * Should always be enough (it's 340 levels). If it's not, allocate + * Allocate 1024 bytes for the string of "../"'s. + * Should always be enough. If it's not, allocate * as necessary. Special case the first stat, it's ".", not "..". */ - if ((up = malloc(upsize = 1024 - 4)) == NULL) + if ((up = malloc(upsize = 1024)) == NULL) goto err; - eup = up + MAXPATHLEN; + eup = up + upsize; bup = up; up[0] = '.'; up[1] = '\0'; ==== //depot/projects/wifi/lib/libc/gen/glob.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)glob.c 8.3 (Berkeley) 10/13/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/glob.c,v 1.22 2004/07/29 03:48:52 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/glob.c,v 1.23 2005/09/14 19:14:32 ache Exp $"); /* * glob(3) -- a superset of the one defined in POSIX 1003.2. @@ -277,7 +277,7 @@ { int i; Char *lm, *ls; - const Char *pe, *pm, *pl; + const Char *pe, *pm, *pm1, *pl; Char patbuf[MAXPATHLEN]; /* copy part up to the brace */ @@ -318,14 +318,14 @@ switch (*pm) { case LBRACKET: /* Ignore everything between [] */ - for (pl = pm++; *pm != RBRACKET && *pm != EOS; pm++) + for (pm1 = pm++; *pm != RBRACKET && *pm != EOS; pm++) continue; if (*pm == EOS) { /* * We could not find a matching RBRACKET. * Ignore and just look for RBRACE */ - pm = pl; + pm = pm1; } break; ==== //depot/projects/wifi/lib/libmd/sha256.3#3 (text+ko) ==== @@ -7,7 +7,7 @@ .\" ---------------------------------------------------------------------------- .\" .\" From: Id: mdX.3,v 1.14 1999/02/11 20:31:49 wollman Exp -.\" $FreeBSD: src/lib/libmd/sha256.3,v 1.2 2005/06/16 21:53:41 ru Exp $ +.\" $FreeBSD: src/lib/libmd/sha256.3,v 1.3 2005/09/14 10:42:51 pjd Exp $ .\" .Dd March 9, 2005 .Dt SHA256 3 @@ -27,13 +27,13 @@ .In sys/types.h .In sha256.h .Ft void -.Fn SHA256_Init "SHA_CTX *context" +.Fn SHA256_Init "SHA256_CTX *context" .Ft void -.Fn SHA256_Update "SHA_CTX *context" "const unsigned char *data" "size_t len" +.Fn SHA256_Update "SHA256_CTX *context" "const unsigned char *data" "size_t len" .Ft void -.Fn SHA256_Final "unsigned char digest[32]" "SHA_CTX *context" +.Fn SHA256_Final "unsigned char digest[32]" "SHA256_CTX *context" .Ft "char *" -.Fn SHA256_End "SHA_CTX *context" "char *buf" +.Fn SHA256_End "SHA256_CTX *context" "char *buf" .Ft "char *" .Fn SHA256_File "const char *filename" "char *buf" .Ft "char *" ==== //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#18 (text+ko) ==== @@ -3,7 +3,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.889 2005/09/05 17:16:50 brueffer Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.890 2005/09/14 05:50:09 brueffer Exp $ 2000 @@ -257,8 +257,8 @@ Documentation Documentation of existing functionality has been improved by - the addition of the following manual page: - &man.snd.t4dwave.4;. + the addition of the following manual pages: + &man.acpi.sony.4;, &man.snd.t4dwave.4;. ==== //depot/projects/wifi/sbin/init/init.8#4 (text+ko) ==== @@ -29,9 +29,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)init.8 8.3 (Berkeley) 4/18/94 -.\" $FreeBSD: src/sbin/init/init.8,v 1.47 2005/09/03 17:16:00 garys Exp $ +.\" $FreeBSD: src/sbin/init/init.8,v 1.48 2005/09/15 13:16:07 rse Exp $ .\" -.Dd April 18, 1994 +.Dd September 15, 2005 .Dt INIT 8 .Os .Sh NAME @@ -270,6 +270,12 @@ as .Nm innd (the InterNetNews server). +If this script does not terminate within 120 seconds, +.Nm +will terminate it. The timeout can be configured via the +.Xr sysctl 8 +variable +.Va kern.init_shutdown_timeout . .Pp The role of .Nm ==== //depot/projects/wifi/sbin/init/init.c#3 (text+ko) ==== @@ -41,7 +41,7 @@ static char sccsid[] = "@(#)init.c 8.1 (Berkeley) 7/15/93"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/init/init.c,v 1.60 2005/01/11 14:34:29 delphij Exp $"; + "$FreeBSD: src/sbin/init/init.c,v 1.61 2005/09/15 13:16:07 rse Exp $"; #endif /* not lint */ #include @@ -1520,7 +1520,7 @@ } len = sizeof(shutdowntimeout); - if (sysctlbyname("kern.shutdown_timeout", + if (sysctlbyname("kern.init_shutdown_timeout", &shutdowntimeout, &len, NULL, 0) == -1 || shutdowntimeout < 2) shutdowntimeout = DEATH_SCRIPT; ==== //depot/projects/wifi/sbin/mount_msdosfs/mount_msdosfs.8#3 (text+ko) ==== @@ -28,7 +28,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/sbin/mount_msdosfs/mount_msdosfs.8,v 1.31 2005/02/10 09:19:30 ru Exp $ +.\" $FreeBSD: src/sbin/mount_msdosfs/mount_msdosfs.8,v 1.32 2005/09/14 16:36:19 joel Exp $ .\" .Dd April 7, 1994 .Dt MOUNT_MSDOSFS 8 @@ -189,6 +189,7 @@ .Xr mount 2 , .Xr unmount 2 , .Xr fstab 5 , +.Xr msdosfs 5 , .Xr mount 8 .Pp List of Localized MS Operating Systems: ==== //depot/projects/wifi/sbin/sysctl/sysctl.8#6 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" From: @(#)sysctl.8 8.1 (Berkeley) 6/6/93 -.\" $FreeBSD: src/sbin/sysctl/sysctl.8,v 1.58 2005/07/14 20:29:06 brueffer Exp $ +.\" $FreeBSD: src/sbin/sysctl/sysctl.8,v 1.59 2005/09/15 16:08:04 rwatson Exp $ .\" .Dd March 10, 2002 .Dt SYSCTL 8 @@ -40,7 +40,7 @@ .Ar name Ns Op = Ns Ar value .Ar ... .Nm -.Op Fl bdehNnox +.Op Fl bdehNnoqx .Fl a .Sh DESCRIPTION The @@ -111,6 +111,10 @@ Show opaque variables (which are normally suppressed). The format and length are printed, as well as a hex dump of the first sixteen bytes of the value. +.It Fl q +Suppress some warnings generated by +.Nm +to standard error. .It Fl X Equivalent to .Fl x a ==== //depot/projects/wifi/sbin/sysctl/sysctl.c#5 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)from: sysctl.c 8.1 (Berkeley) 6/6/93"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/sysctl/sysctl.c,v 1.67 2005/04/13 06:59:07 mdodd Exp $"; + "$FreeBSD: src/sbin/sysctl/sysctl.c,v 1.68 2005/09/15 16:08:04 rwatson Exp $"; #endif /* not lint */ #ifdef __i386__ @@ -60,7 +60,8 @@ #include #include -static int aflag, bflag, dflag, eflag, hflag, Nflag, nflag, oflag, xflag; +static int aflag, bflag, dflag, eflag, hflag, Nflag, nflag, oflag; +static int qflag, xflag; static int oidfmt(int *, int, char *, u_int *); static void parse(char *); @@ -89,7 +90,7 @@ setbuf(stdout,0); setbuf(stderr,0); - while ((ch = getopt(argc, argv, "AabdehNnowxX")) != -1) { + while ((ch = getopt(argc, argv, "AabdehNnoqwxX")) != -1) { switch (ch) { case 'A': /* compatibility */ @@ -119,6 +120,9 @@ case 'o': oflag = 1; break; + case 'q': + qflag = 1; + break; case 'w': /* compatibility */ /* ignored */ @@ -181,8 +185,12 @@ } len = name2oid(bufp, mib); - if (len < 0) - errx(1, "unknown oid '%s'", bufp); + if (len < 0) { + if (qflag) + exit(1); + else + errx(1, "unknown oid '%s'", bufp); + } if (oidfmt(mib, len, fmt, &kind)) err(1, "couldn't find format of oid '%s'", bufp); ==== //depot/projects/wifi/share/man/man4/man4.i386/Makefile#7 (text+ko) ==== @@ -1,9 +1,10 @@ -# $FreeBSD: src/share/man/man4/man4.i386/Makefile,v 1.179 2005/08/27 18:14:53 marius Exp $ +# $FreeBSD: src/share/man/man4/man4.i386/Makefile,v 1.180 2005/09/14 05:09:33 brueffer Exp $ MAN= acpi_asus.4 \ acpi_fujitsu.4 \ acpi_ibm.4 \ acpi_panasonic.4 \ + acpi_sony.4 \ acpi_toshiba.4 \ aic.4 \ alpm.4 \ ==== //depot/projects/wifi/share/man/man5/msdosfs.5#2 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" $FreeBSD: src/share/man/man5/msdosfs.5,v 1.4 2003/02/24 22:53:23 ru Exp $ +.\" $FreeBSD: src/share/man/man5/msdosfs.5,v 1.5 2005/09/14 16:32:21 joel Exp $ .\" Written by Tom Rhodes .\" This file is in the public domain. .\" @@ -64,10 +64,6 @@ .Xr mount 8 , .Xr mount_msdosfs 8 , .Xr umount 8 -.Rs -.%T "The FreeBSD Handbook" -.%O "http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/" -.Re .Sh AUTHORS This manual page was written by .An Tom Rhodes Aq trhodes@FreeBSD.org . ==== //depot/projects/wifi/share/man/man5/rc.conf.5#19 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.263 2005/09/08 09:22:21 yar Exp $ +.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.264 2005/09/15 13:16:07 rse Exp $ .\" -.Dd September 8, 2005 +.Dd September 15, 2005 .Dt RC.CONF 5 .Os .Sh NAME @@ -3170,6 +3170,21 @@ if .Xr shutdown 8 has not completed within the specified time (in seconds). +Notice that in addition to this soft timeout, +.Xr init 8 +also applies a hard timeout for the execution of +.Pa rc.shutdown . +This is configured via +.Xr sysctl 8 +variable +.Va kern.init_shutdown_timeout +and defaults to 120 seconds. Setting the value of +.Va rcshutdown_timeout +to more than 120 seconds will have no effect until the +.Xr sysctl 8 +variable +.Va kern.init_shutdown_timeout +is also increased. .It Va virecover_enable .Pq Vt bool Set to ==== //depot/projects/wifi/sys/alpha/alpha/busdma_machdep.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.51 2005/05/25 07:25:12 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.52 2005/09/15 17:09:42 jhb Exp $"); #include #include @@ -891,6 +891,10 @@ } } } + + /* Ensure any pending writes have drained. */ + if (op & (BUS_DMASYNC_PREWRITE)) + alpha_mb(); } static void ==== //depot/projects/wifi/sys/alpha/include/atomic.h#5 (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/alpha/include/atomic.h,v 1.22 2005/07/15 18:17:57 jhb Exp $ + * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.23 2005/09/15 19:31:22 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ @@ -56,12 +56,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %2\n\t" /* load old value */ - "bis %0, %3, %0\n\t" /* calculate new value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ + "bis %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "m" (*p), "r" (v) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -72,12 +72,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "bic %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -88,12 +88,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "addl %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -104,12 +104,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %3\n\t" /* load old value */ "subl %0, %2, %0\n\t" /* calculate new value */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -121,12 +121,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( "wmb\n" /* ensure pending writes have drained */ - "1:\tldl_l %0,%2\n\t" /* load current value, asserting lock */ + "1:\tldl_l %0,%3\n\t" /* load current value, asserting lock */ "ldiq %1,0\n\t" /* value to store */ "stl_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ - : "=&r"(result), "=&r"(temp), "+m" (*addr) - : + : "=&r"(result), "=&r"(temp), "=m" (*addr) + : "m" (*addr) : "memory"); #endif @@ -139,12 +139,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "bis %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -155,12 +155,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "bic %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -171,12 +171,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "addq %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -187,12 +187,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %3\n\t" /* load old value */ "subq %0, %2, %0\n\t" /* calculate new value */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ - : "=&r" (temp), "+m" (*p) - : "r" (v) + : "=&r" (temp), "=m" (*p) + : "r" (v), "m" (*p) : "memory"); #endif } @@ -204,12 +204,12 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( "wmb\n" /* ensure pending writes have drained */ - "1:\tldq_l %0,%2\n\t" /* load current value, asserting lock */ + "1:\tldq_l %0,%3\n\t" /* load current value, asserting lock */ "ldiq %1,0\n\t" /* value to store */ "stq_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ - : "=&r"(result), "=&r"(temp), "+m" (*addr) - : + : "=&r"(result), "=&r"(temp), "=m" (*addr) + : "m" (*addr) : "memory"); #endif @@ -289,15 +289,15 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldl_l %0, %1\n\t" /* load old value */ + "1:\tldl_l %0, %4\n\t" /* load old value */ "cmpeq %0, %2, %0\n\t" /* compare */ "beq %0, 2f\n\t" /* exit if not equal */ "mov %3, %0\n\t" /* value to store */ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n\t" /* if it failed, spin */ "2:\n" - : "=&r" (ret), "+m" (*p) - : "r" ((long)(int)cmpval), "r" (newval) + : "=&r" (ret), "=m" (*p) + : "r" ((long)(int)cmpval), "r" (newval), "m" (*p) : "memory"); #endif @@ -316,15 +316,15 @@ #ifdef __GNUCLIKE_ASM __asm __volatile ( - "1:\tldq_l %0, %1\n\t" /* load old value */ + "1:\tldq_l %0, %4\n\t" /* load old value */ "cmpeq %0, %2, %0\n\t" /* compare */ "beq %0, 2f\n\t" /* exit if not equal */ "mov %3, %0\n\t" /* value to store */ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n\t" /* if it failed, spin */ "2:\n" - : "=&r" (ret), "+m" (*p) - : "r" (cmpval), "r" (newval) + : "=&r" (ret), "=m" (*p) + : "r" (cmpval), "r" (newval), "m" (*p) : "memory"); #endif ==== //depot/projects/wifi/sys/amd64/include/atomic.h#7 (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/amd64/include/atomic.h,v 1.37 2005/08/18 14:36:47 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.38 2005/09/15 19:31:22 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ @@ -99,8 +99,8 @@ atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ { \ __asm __volatile(__XSTRING(MPLOCKED) OP \ - : "+m" (*p) \ - : CONS (V)); \ + : "=m" (*p) \ + : CONS (V), "m" (*p)); \ } \ struct __hack @@ -119,15 +119,16 @@ __asm __volatile ( " " __XSTRING(MPLOCKED) " " - " cmpxchgl %1,%2 ; " + " cmpxchgl %2,%1 ; " " setz %%al ; " " movzbl %%al,%0 ; " "1: " "# atomic_cmpset_int" - : "+a" (res) /* 0 (result) */ - : "r" (src), /* 1 */ - "m" (*(dst)) /* 2 */ - : "memory"); + : "+a" (res), /* 0 (result) */ + "=m" (*dst) /* 1 */ + : "r" (src), /* 2 */ + "m" (*dst) /* 3 */ + : "memory"); return (res); } @@ -139,15 +140,16 @@ __asm __volatile ( " " __XSTRING(MPLOCKED) " " - " cmpxchgq %1,%2 ; " + " cmpxchgq %2,%1 ; " " setz %%al ; " " movzbq %%al,%0 ; " "1: " "# atomic_cmpset_long" - : "+a" (res) /* 0 (result) */ - : "r" (src), /* 1 */ - "m" (*(dst)) /* 2 */ - : "memory"); + : "+a" (res), /* 0 (result) */ + "=m" (*dst) /* 1 */ + : "r" (src), /* 2 */ + "m" (*dst) /* 3 */ + : "memory"); return (res); } @@ -185,8 +187,9 @@ \ __asm __volatile(__XSTRING(MPLOCKED) LOP \ : "=a" (res), /* 0 (result) */\ - "+m" (*p) /* 1 */ \ - : : "memory"); \ + "=m" (*p) /* 1 */ \ + : "m" (*p) /* 2 */ \ + : "memory"); \ \ return (res); \ } \ @@ -198,9 +201,9 @@ atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ { \ __asm __volatile(SOP \ - : "+m" (*p), /* 0 */ \ + : "=m" (*p), /* 0 */ \ "+r" (v) /* 1 */ \ - : : "memory"); \ + : "m" (*p)); /* 2 */ \ } \ struct __hack @@ -246,12 +249,13 @@ { u_int result; + result = 0; __asm __volatile ( - " xorl %0,%0 ; " " xchgl %1,%0 ; " "# atomic_readandclear_int" - : "=&r" (result) /* 0 (result) */ - : "m" (*addr)); /* 1 (addr) */ + : "+r" (result), /* 0 (result) */ + "=m" (*addr) /* 1 (addr) */ + : "m" (*addr)); return (result); } @@ -261,12 +265,13 @@ { u_long result; + result = 0; __asm __volatile ( - " xorq %0,%0 ; " " xchgq %1,%0 ; " "# atomic_readandclear_long" - : "=&r" (result) /* 0 (result) */ - : "m" (*addr)); /* 1 (addr) */ + : "+r" (result), /* 0 (result) */ + "=m" (*addr) /* 1 (addr) */ + : "m" (*addr)); return (result); } ==== //depot/projects/wifi/sys/boot/pc98/boot2/io.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/io.c,v 1.8 2005/05/10 12:02:14 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/io.c,v 1.9 2005/09/14 12:39:06 nyan Exp $"); #include "boot.h" #include @@ -354,7 +354,6 @@ int ret; int i; int data = 0; - u_char epson_machine_id = *(unsigned char *)V(0xA1624); /* PC98_SYSTEM_PARAMETER(0x501) */ ret = ((*(unsigned char*)V(0xA1501)) & 0x08) >> 3; @@ -390,18 +389,8 @@ } else { ret |= M_NOT_H98; } - } else { + } else ret |= M_NOT_H98; - switch (epson_machine_id) { - case 0x20: /* note A */ - case 0x22: /* note W */ - case 0x27: /* note AE */ - case 0x2a: /* note WR */ - ret |= M_NOTE; - break; - default: - break; - } - } + (*(unsigned long *)V(0xA1620)) = ret; } ==== //depot/projects/wifi/sys/conf/NOTES#26 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1328 2005/07/27 21:47:55 pjd Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1329 2005/09/15 13:28:33 phk Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1999,13 +1999,17 @@ # # IEEE-488 hardware: -# pcii: PCIIA cards (uPD7210 based isa cards) +# pcii: PCIIA cards (uPD7210 based isa cards) +# tnt4882: National Instruments PCI-GPIB card. + device pcii hint.pcii.0.at="isa" hint.pcii.0.port="0x2e1" hint.pcii.0.irq="5" hint.pcii.0.drq="1" +device tnt4882 + # # Miscellaneous hardware: # ==== //depot/projects/wifi/sys/conf/files#32 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1047 2005/09/11 03:38:18 obrien Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1048 2005/09/15 13:28:33 phk Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -650,9 +650,12 @@ dev/ida/ida_pci.c optional ida pci dev/ie/if_ie.c optional ie isa nowerror dev/ie/if_ie_isa.c optional ie isa -dev/ieee488/ibfoo.c optional pcii -dev/ieee488/pcii.c optional pcii +dev/ieee488/ibfoo.c optional pcii +dev/ieee488/ibfoo.c optional tnt4882 +dev/ieee488/pcii.c optional pcii +dev/ieee488/tnt4882.c optional tnt4882 dev/ieee488/upd7210.c optional pcii +dev/ieee488/upd7210.c optional tnt4882 dev/iicbus/if_ic.c optional ic dev/iicbus/iic.c optional iic dev/iicbus/iicbb.c optional iicbb ==== //depot/projects/wifi/sys/dev/aac/aac.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.109 2005/06/01 07:11:17 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.110 2005/09/14 05:46:28 scottl Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -925,7 +925,7 @@ cm->cm_datalen = bp->bio_bcount; cm->cm_complete = aac_bio_complete; cm->cm_private = bp; - cm->cm_timestamp = time_second; + cm->cm_timestamp = time_uptime; cm->cm_queue = AAC_ADAP_NORM_CMD_QUEUE; /* build the FIB */ @@ -1426,7 +1426,7 @@ /* * First wait for the adapter to come ready. */ - then = time_second; + then = time_uptime; do { code = AAC_GET_FWSTATUS(sc); if (code & AAC_SELF_TEST_FAILED) { @@ -1438,7 +1438,7 @@ "FATAL: controller kernel panic\n"); return(ENXIO); } - if (time_second > (then + AAC_BOOT_TIMEOUT)) { + if (time_uptime > (then + AAC_BOOT_TIMEOUT)) { device_printf(sc->aac_dev, "FATAL: controller not coming ready, " "status %x\n", code); @@ -1573,7 +1573,7 @@ ip->HostPhysMemPages = (ip->HostPhysMemPages + AAC_PAGE_SIZE) / AAC_PAGE_SIZE; } - ip->HostElapsedSeconds = time_second; /* reset later if invalid */ + ip->HostElapsedSeconds = time_uptime; /* reset later if invalid */ /* * Initialise FIB queues. Note that it appears that the layout of the @@ -1701,9 +1701,9 @@ AAC_QNOTIFY(sc, AAC_DB_SYNC_COMMAND); /* spin waiting for the command to complete */ - then = time_second; + then = time_uptime; do { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Sep 16 20:43:59 2005 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 A3CD616A447; Fri, 16 Sep 2005 20:43:58 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 66D5316A42C for ; Fri, 16 Sep 2005 20:43:58 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3644243D45 for ; Fri, 16 Sep 2005 20:43:58 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8GKhw4J020943 for ; Fri, 16 Sep 2005 20:43:58 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8GKhvno020940 for perforce@freebsd.org; Fri, 16 Sep 2005 20:43:57 GMT (envelope-from sam@freebsd.org) Date: Fri, 16 Sep 2005 20:43:57 GMT Message-Id: <200509162043.j8GKhvno020940@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 83756 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, 16 Sep 2005 20:43:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=83756 Change 83756 by sam@sam_ebb on 2005/09/16 20:43:25 cancel any bg scan when we get a frame to send Affected files ... .. //depot/projects/wifi/sys/dev/ath/if_ath.c#103 edit Differences ... ==== //depot/projects/wifi/sys/dev/ath/if_ath.c#103 (text+ko) ==== @@ -1508,6 +1508,15 @@ * the frame back when the time is right. */ ieee80211_pwrsave(ni, m); + /* + * If we're in power save mode 'cuz of a bg + * scan cancel it so the traffic can flow. + * The packet we just queued will automatically + * get sent when we drop out of power save. + * XXX locking + */ + if (ic->ic_flags & IEEE80211_F_SCAN) + ieee80211_cancel_scan(ic); goto reclaim; } /* calculate priority so we can find the tx queue */ From owner-p4-projects@FreeBSD.ORG Fri Sep 16 20:47:03 2005 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 0261316A421; Fri, 16 Sep 2005 20:47:03 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B7AA316A41F for ; Fri, 16 Sep 2005 20:47:02 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FB9843D45 for ; Fri, 16 Sep 2005 20:47:02 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8GKl2gc022105 for ; Fri, 16 Sep 2005 20:47:02 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8GKl2CC021947 for perforce@freebsd.org; Fri, 16 Sep 2005 20:47:02 GMT (envelope-from sam@freebsd.org) Date: Fri, 16 Sep 2005 20:47:02 GMT Message-Id: <200509162047.j8GKl2CC021947@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 83757 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, 16 Sep 2005 20:47:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=83757 Change 83757 by sam@sam_ebb on 2005/09/16 20:46:28 reduce the max xmit attempts for mgt/ctl frames to deal with probe response backlog caused by low xmit rates (also need to bump the tx buffer pool); adjust the logic for deciding when a multi-rate retry callback to the rate control module is required as we can no longer depend on the #tries to decide (need to rev the rate control module api) Affected files ... .. //depot/projects/wifi/sys/dev/ath/if_ath.c#104 edit .. //depot/projects/wifi/sys/dev/ath/if_athvar.h#43 edit Differences ... ==== //depot/projects/wifi/sys/dev/ath/if_ath.c#104 (text+ko) ==== @@ -3661,7 +3661,8 @@ struct ath_hal *ah = sc->sc_ah; struct ifnet *ifp = sc->sc_ifp; const struct chanAccParams *cap = &ic->ic_wme.wme_chanParams; - int i, error, iswep, ismcast, isfrag, keyix, hdrlen, pktlen, try0; + int i, error, iswep, ismcast, isfrag, ismrr; + int keyix, hdrlen, pktlen, try0; u_int8_t rix, txrate, ctsrate; u_int8_t cix = 0xff; /* NB: silence compiler */ struct ath_desc *ds, *ds0; @@ -3805,6 +3806,7 @@ an = ATH_NODE(ni); flags = HAL_TXDESC_CLRDMASK; /* XXX needed for crypto errs */ + ismrr = 0; /* default no multi-rate retry*/ /* * Calculate Atheros packet type from IEEE80211 packet header, * setup for rate calculations, and select h/w transmit queue. @@ -3824,7 +3826,7 @@ txrate = rt->info[rix].rateCode; if (shortPreamble) txrate |= rt->info[rix].shortPreamble; - try0 = ATH_TXMAXTRY; + try0 = ATH_TXMGTTRY; /* NB: force all management frames to highest queue */ if (ni->ni_flags & IEEE80211_NODE_QOS) { /* NB: force all management frames to highest queue */ @@ -3839,7 +3841,7 @@ txrate = rt->info[rix].rateCode; if (shortPreamble) txrate |= rt->info[rix].shortPreamble; - try0 = ATH_TXMAXTRY; + try0 = ATH_TXMGTTRY; /* NB: force all ctl frames to highest queue */ if (ni->ni_flags & IEEE80211_NODE_QOS) { /* NB: force all ctl frames to highest queue */ @@ -3869,12 +3871,14 @@ txrate = rt->info[rix].rateCode; if (shortPreamble) txrate |= rt->info[rix].shortPreamble; - try0 = ATH_TXMAXTRY; + try0 = 1; } else { ath_rate_findrate(sc, an, shortPreamble, pktlen, &rix, &try0, &txrate); sc->sc_txrate = txrate; /* for LED blinking */ sc->sc_lastdatarix = rix; /* for fast frames */ + if (try0 != ATH_TXMAXTRY) + ismrr = 1; } /* * Default all non-QoS traffic to the best-effort queue. @@ -3976,7 +3980,8 @@ * fragment by disabling multi-rate retry which updates * duration based on the multi-rate duration table. */ - try0 = ATH_TXMAXTRY; + ismrr = 0; + try0 = ATH_TXMGTTRY; /* XXX? */ } *(u_int16_t *)wh->i_dur = htole16(dur); } @@ -4022,7 +4027,8 @@ /* * Must disable multi-rate retry when using RTS/CTS. */ - try0 = ATH_TXMAXTRY; + ismrr = 0; + try0 = ATH_TXMGTTRY; /* XXX */ } else ctsrate = 0; @@ -4099,7 +4105,7 @@ * when the hardware supports multi-rate retry and * we don't use it. */ - if (try0 != ATH_TXMAXTRY) + if (ismrr) ath_rate_setupxtxdesc(sc, an, ds, shortPreamble, rix); /* ==== //depot/projects/wifi/sys/dev/ath/if_athvar.h#43 (text+ko) ==== @@ -53,6 +53,7 @@ #define ATH_TXBUF 100 /* number of TX buffers */ #define ATH_TXDESC 10 /* number of descriptors per buffer */ #define ATH_TXMAXTRY 11 /* max number of transmit attempts */ +#define ATH_TXMGTTRY 4 /* xmit attempts for mgt/ctl frames */ #define ATH_TXINTR_PERIOD 5 /* max number of batched tx descriptors */ #define ATH_BEACON_AIFS_DEFAULT 0 /* default aifs for ap beacon q */ From owner-p4-projects@FreeBSD.ORG Sat Sep 17 09:46:55 2005 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 6FBA916A421; Sat, 17 Sep 2005 09:46:55 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3B2F916A41F for ; Sat, 17 Sep 2005 09:46:55 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D360B43D45 for ; Sat, 17 Sep 2005 09:46:54 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8H9ksTH012788 for ; Sat, 17 Sep 2005 09:46:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8H9ksYa012782 for perforce@freebsd.org; Sat, 17 Sep 2005 09:46:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 17 Sep 2005 09:46:54 GMT Message-Id: <200509170946.j8H9ksYa012782@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 83777 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, 17 Sep 2005 09:46:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=83777 Change 83777 by rwatson@rwatson_zoo on 2005/09/17 09:45:57 Integrate netsmp branch from FreeBSD CVS: - ATI AGP driver, AGP work generally. - More if_free fixes. - geom_gpt rewrite. - Buffer cache fixes. Affected files ... .. //depot/projects/netsmp/src/sys/conf/files.i386#4 integrate .. //depot/projects/netsmp/src/sys/contrib/dev/oltr/if_oltr.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/fe/if_fe.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/lnc/if_lnc.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/nve/if_nve.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/patm/if_patm_attach.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/ral/if_ral.c#7 integrate .. //depot/projects/netsmp/src/sys/geom/geom_gpt.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_subr.c#10 integrate .. //depot/projects/netsmp/src/sys/modules/agp/Makefile#2 integrate .. //depot/projects/netsmp/src/sys/net/if_vlan.c#10 integrate .. //depot/projects/netsmp/src/sys/pci/agp_ati.c#1 branch .. //depot/projects/netsmp/src/sys/pci/agp_nvidia.c#2 integrate .. //depot/projects/netsmp/src/sys/pci/agpreg.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/gpt.h#2 integrate Differences ... ==== //depot/projects/netsmp/src/sys/conf/files.i386#4 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.540 2005/08/26 13:42:03 jhb Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.541 2005/09/17 03:36:46 anholt Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -456,6 +456,7 @@ pci/agp_ali.c optional agp pci/agp_amd.c optional agp pci/agp_amd64.c optional agp +pci/agp_ati.c optional agp pci/agp_i810.c optional agp pci/agp_intel.c optional agp pci/agp_nvidia.c optional agp ==== //depot/projects/netsmp/src/sys/contrib/dev/oltr/if_oltr.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/sys/contrib/dev/oltr/if_oltr.c,v 1.38 2005/08/09 10:19:41 rwatson Exp $ + * $FreeBSD: src/sys/contrib/dev/oltr/if_oltr.c,v 1.39 2005/09/16 12:49:05 ru Exp $ */ #include @@ -152,12 +152,14 @@ RF_ACTIVE | RF_SHAREABLE : RF_ACTIVE); if (sc->irq_res == NULL) { device_printf(dev, "couldn't map interrupt\n"); + if_free(ifp); return (-1); } if (bus_setup_intr(dev, sc->irq_res, INTR_TYPE_NET, oltr_intr, sc, &sc-> oltr_intrhand)) { device_printf(dev, "couldn't setup interrupt\n"); bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq_res); + if_free(ifp); return (-1); } ==== //depot/projects/netsmp/src/sys/dev/fe/if_fe.c#6 (text+ko) ==== @@ -21,7 +21,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/fe/if_fe.c,v 1.93 2005/08/09 10:19:47 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fe/if_fe.c,v 1.94 2005/09/16 12:49:06 ru Exp $"); /* * @@ -743,6 +743,7 @@ error = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_NET, fe_intr, sc, &sc->irq_handle); if (error) { + if_free(ifp); fe_release_resource(dev); return ENXIO; } ==== //depot/projects/netsmp/src/sys/dev/lnc/if_lnc.c#7 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/lnc/if_lnc.c,v 1.113 2005/08/09 10:19:50 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/lnc/if_lnc.c,v 1.114 2005/09/16 12:49:05 ru Exp $"); /* #define DIAGNOSTIC @@ -212,6 +212,9 @@ } bus_dma_tag_destroy(sc->dmat); } + + if (sc->ifp) + if_free(sc->ifp); } /* @@ -897,7 +900,6 @@ int s = splimp(); ether_ifdetach(sc->ifp); - if_free(sc->ifp); lnc_stop(sc); lnc_release_resources(dev); ==== //depot/projects/netsmp/src/sys/dev/nve/if_nve.c#7 (text+ko) ==== @@ -74,7 +74,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/nve/if_nve.c,v 1.10 2005/08/09 10:19:51 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/nve/if_nve.c,v 1.11 2005/09/16 12:49:05 ru Exp $"); #include #include @@ -560,8 +560,10 @@ if (device_is_attached(dev)) { nve_stop(sc); ether_ifdetach(ifp); + } + + if (ifp) if_free(ifp); - } if (sc->miibus) device_delete_child(dev, sc->miibus); ==== //depot/projects/netsmp/src/sys/dev/patm/if_patm_attach.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/patm/if_patm_attach.c,v 1.11 2005/07/01 10:45:02 harti Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/patm/if_patm_attach.c,v 1.12 2005/09/16 12:49:06 ru Exp $"); #include "opt_inet.h" #include "opt_natm.h" @@ -477,7 +477,6 @@ mtx_unlock(&sc->mtx); atm_ifdetach(sc->ifp); - if_free(sc->ifp); patm_destroy(sc); @@ -562,6 +561,9 @@ cv_destroy(&sc->vcc_cv); mtx_destroy(&sc->tst_lock); mtx_destroy(&sc->mtx); + + if (sc->ifp != NULL) + if_free(sc->ifp); } /* ==== //depot/projects/netsmp/src/sys/dev/ral/if_ral.c#7 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/ral/if_ral.c,v 1.15 2005/08/21 14:16:19 damien Exp $ */ +/* $FreeBSD: src/sys/dev/ral/if_ral.c,v 1.16 2005/09/16 12:17:12 ru Exp $ */ /*- * Copyright (c) 2005 @@ -18,7 +18,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ral/if_ral.c,v 1.15 2005/08/21 14:16:19 damien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ral/if_ral.c,v 1.16 2005/09/16 12:17:12 ru Exp $"); /*- * Ralink Technology RT2500 chipset driver @@ -508,9 +508,8 @@ fail7: bpfdetach(ifp); ieee80211_ifdetach(ic); -fail6: if_free(ifp); - - ral_free_rx_ring(sc, &sc->rxq); + if_free(ifp); +fail6: ral_free_rx_ring(sc, &sc->rxq); fail5: ral_free_tx_ring(sc, &sc->bcnq); fail4: ral_free_tx_ring(sc, &sc->prioq); fail3: ral_free_tx_ring(sc, &sc->atimq); ==== //depot/projects/netsmp/src/sys/geom/geom_gpt.c#2 (text+ko) ==== @@ -1,247 +1,819 @@ /*- - * Copyright (c) 2002 Marcel Moolenaar - * Copyright (c) 2002 Poul-Henning Kamp - * Copyright (c) 2002 Networks Associates Technology, Inc. + * Copyright (c) 2002, 2005 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: + * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. The names of the authors 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 THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include -__FBSDID("$FreeBSD: src/sys/geom/geom_gpt.c,v 1.32 2005/03/18 07:03:56 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/geom_gpt.c,v 1.33 2005/09/17 07:05:17 marcel Exp $"); #include -#include +#include +#include +#include +#include #include +#include #include -#include -#include #include -#include -#include +#include #include +#include #include -#include #include -#include CTASSERT(offsetof(struct gpt_hdr, padding) == 92); CTASSERT(sizeof(struct gpt_ent) == 128); +#define G_GPT_TRACE(args) /* g_trace args */ + +/* + * The GEOM GPT class. Nothing fancy... + */ +static g_ctl_req_t g_gpt_ctlreq; +static g_ctl_destroy_geom_t g_gpt_destroy_geom; +static g_taste_t g_gpt_taste; + +static g_access_t g_gpt_access; +static g_dumpconf_t g_gpt_dumpconf; +static g_orphan_t g_gpt_orphan; +static g_spoiled_t g_gpt_spoiled; +static g_start_t g_gpt_start; + +static struct g_class g_gpt_class = { + .name = "GPT", + .version = G_VERSION, + /* Class methods. */ + .ctlreq = g_gpt_ctlreq, + .destroy_geom = g_gpt_destroy_geom, + .taste = g_gpt_taste, + /* Geom methods. */ + .access = g_gpt_access, + .dumpconf = g_gpt_dumpconf, + .orphan = g_gpt_orphan, + .spoiled = g_gpt_spoiled, + .start = g_gpt_start, +}; + +DECLARE_GEOM_CLASS(g_gpt_class, g_gpt); + /* - * XXX: GEOM is not dynamic enough. We are forced to use a compile-time - * limit. The minimum number of partitions (128) as required by EFI is - * most of the time just a waste of space. + * The GEOM GPT instance data. */ -#define GPT_MAX_SLICES 128 +struct g_gpt_part { + LIST_ENTRY(g_gpt_part) parts; + struct g_provider *provider; + off_t offset; + struct gpt_ent ent; + int index; +}; + +enum gpt_hdr_type { + GPT_HDR_PRIMARY, + GPT_HDR_SECONDARY, + GPT_HDR_COUNT +}; + +enum gpt_hdr_state { + GPT_HDR_UNKNOWN, + GPT_HDR_MISSING, + GPT_HDR_CORRUPT, + GPT_HDR_INVALID, + GPT_HDR_OK +}; struct g_gpt_softc { - struct gpt_ent *part[GPT_MAX_SLICES]; + LIST_HEAD(, g_gpt_part) parts; + struct gpt_hdr hdr[GPT_HDR_COUNT]; + enum gpt_hdr_state state[GPT_HDR_COUNT]; }; -static int -is_gpt_hdr(struct gpt_hdr *hdr) -{ - uint32_t crc; +static struct uuid g_gpt_freebsd = GPT_ENT_TYPE_FREEBSD; +static struct uuid g_gpt_freebsd_swap = GPT_ENT_TYPE_FREEBSD_SWAP; +static struct uuid g_gpt_linux_swap = GPT_ENT_TYPE_LINUX_SWAP; +static struct uuid g_gpt_unused = GPT_ENT_TYPE_UNUSED; - if (memcmp(hdr->hdr_sig, GPT_HDR_SIG, sizeof(hdr->hdr_sig))) - return (0); - crc = le32toh(hdr->hdr_crc_self); - hdr->hdr_crc_self = 0; - if (crc32(hdr, le32toh(hdr->hdr_size)) != crc) - return (0); - hdr->hdr_crc_self = htole32(crc); - /* We're happy... */ - return (1); -} +/* + * Support functions. + */ static int -is_pmbr(char *mbr) +g_gpt_has_pmbr(struct g_consumer *cp, int *error) { struct dos_partition *part; - int i; + char *buf; + int i, pmbr; uint16_t magic; - magic = le16toh(*(uint16_t *)(uintptr_t)(mbr + DOSMAGICOFFSET)); + buf = g_read_data(cp, 0L, cp->provider->sectorsize, error); + if (*error != 0) + return (0); + + pmbr = 0; + + magic = le16toh(*(uint16_t *)(uintptr_t)(buf + DOSMAGICOFFSET)); if (magic != DOSMAGIC) - return (0); + goto out; - part = (struct dos_partition *)(uintptr_t)(mbr + DOSPARTOFF); + part = (struct dos_partition *)(uintptr_t)(buf + DOSPARTOFF); for (i = 0; i < 4; i++) { if (part[i].dp_typ != 0 && part[i].dp_typ != DOSPTYP_PMBR) - return (0); + goto out; } - return (1); + pmbr = 1; + +out: + g_free(buf); + return (pmbr); } -static int -g_gpt_start(struct bio *bp) +static void +g_gpt_load_hdr(struct g_gpt_softc *softc, struct g_provider *pp, + enum gpt_hdr_type type, void *buf) { + struct uuid uuid; + struct gpt_hdr *hdr; + uint64_t lba, last; + uint32_t crc, sz; + + softc->state[type] = GPT_HDR_MISSING; + + hdr = softc->hdr + type; + bcopy(buf, hdr, sizeof(*hdr)); + if (memcmp(hdr->hdr_sig, GPT_HDR_SIG, sizeof(hdr->hdr_sig)) != 0) + return; + + softc->state[type] = GPT_HDR_CORRUPT; + + sz = le32toh(hdr->hdr_size); + if (sz < 92 || sz > pp->sectorsize) + return; + crc = le32toh(hdr->hdr_crc_self); + hdr->hdr_crc_self = 0; + if (crc32(hdr, sz) != crc) + return; + hdr->hdr_size = sz; + hdr->hdr_crc_self = crc; + + softc->state[type] = GPT_HDR_INVALID; - return (0); + last = (pp->mediasize / pp->sectorsize) - 1; + hdr->hdr_revision = le32toh(hdr->hdr_revision); + if (hdr->hdr_revision < 0x00010000) + return; + hdr->hdr_lba_self = le64toh(hdr->hdr_lba_self); + if (hdr->hdr_lba_self != (type == GPT_HDR_PRIMARY ? 1 : last)) + return; + hdr->hdr_lba_alt = le64toh(hdr->hdr_lba_alt); + if (hdr->hdr_lba_alt != (type == GPT_HDR_PRIMARY ? last : 1)) + return; + + /* Check the managed area. */ + hdr->hdr_lba_start = le64toh(hdr->hdr_lba_start); + if (hdr->hdr_lba_start < 2 || hdr->hdr_lba_start >= last) + return; + hdr->hdr_lba_end = le64toh(hdr->hdr_lba_end); + if (hdr->hdr_lba_end < hdr->hdr_lba_start || hdr->hdr_lba_end >= last) + return; + + /* Check the table location and size of the table. */ + hdr->hdr_entries = le32toh(hdr->hdr_entries); + hdr->hdr_entsz = le32toh(hdr->hdr_entsz); + if (hdr->hdr_entries == 0 || hdr->hdr_entsz < 128 || + (hdr->hdr_entsz & 7) != 0) + return; + hdr->hdr_lba_table = le64toh(hdr->hdr_lba_table); + if (hdr->hdr_lba_table < 2 || hdr->hdr_lba_table >= last) + return; + if (hdr->hdr_lba_table >= hdr->hdr_lba_start && + hdr->hdr_lba_table <= hdr->hdr_lba_end) + return; + lba = hdr->hdr_lba_table + + (hdr->hdr_entries * hdr->hdr_entsz + pp->sectorsize - 1) / + pp->sectorsize - 1; + if (lba >= last) + return; + if (lba >= hdr->hdr_lba_start && lba <= hdr->hdr_lba_end) + return; + + softc->state[type] = GPT_HDR_OK; + + le_uuid_dec(&hdr->hdr_uuid, &uuid); + hdr->hdr_uuid = uuid; + hdr->hdr_crc_table = le32toh(hdr->hdr_crc_table); } static void -g_gpt_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, - struct g_consumer *cp, struct g_provider *pp) +g_gpt_load_tbl(struct g_geom *gp, struct g_provider *pp, struct gpt_hdr *hdr, + char *tbl) { - struct g_slicer *gsp = gp->softc; - struct g_gpt_softc *gs = gsp->softc; struct uuid uuid; + struct gpt_ent *ent; + struct g_gpt_part *last, *part; + struct g_gpt_softc *softc; + uint64_t part_start, part_end; + unsigned int ch, idx; + + softc = gp->softc; - g_slice_dumpconf(sb, indent, gp, cp, pp); + for (idx = 0, last = part = NULL; + idx < hdr->hdr_entries; + idx++, last = part, tbl += hdr->hdr_entsz) { + ent = (struct gpt_ent *)(uintptr_t)tbl; + le_uuid_dec(&ent->ent_type, &uuid); + if (!memcmp(&uuid, &g_gpt_unused, sizeof(struct uuid))) + continue; + part_start = le64toh(ent->ent_lba_start); + part_end = le64toh(ent->ent_lba_end); + if (part_start < hdr->hdr_lba_start || part_start > part_end || + part_end > hdr->hdr_lba_end) { + printf("GEOM: %s: GPT partition %d is invalid -- " + "ignored.\n", gp->name, idx + 1); + continue; + } - if (pp != NULL) { - le_uuid_dec(&gs->part[pp->index]->ent_type, &uuid); - if (indent != NULL) - sbuf_printf(sb, "%s", indent); + part = g_malloc(sizeof(struct g_gpt_part), M_WAITOK | M_ZERO); + part->index = idx; + part->offset = part_start * pp->sectorsize; + if (last == NULL) + LIST_INSERT_HEAD(&softc->parts, part, parts); else - sbuf_printf(sb, " ty "); - sbuf_printf_uuid(sb, &uuid); - if (indent != NULL) - sbuf_printf(sb, "\n"); + LIST_INSERT_AFTER(last, part, parts); + part->ent.ent_type = uuid; + le_uuid_dec(&ent->ent_uuid, &part->ent.ent_uuid); + part->ent.ent_lba_start = part_start; + part->ent.ent_lba_end = part_end; + part->ent.ent_attr = le64toh(ent->ent_attr); + for (ch = 0; ch < sizeof(ent->ent_name)/2; ch++) + part->ent.ent_name[ch] = le16toh(ent->ent_name[ch]); + + g_topology_lock(); + part->provider = g_new_providerf(gp, "%s%c%d", gp->name, + !memcmp(&uuid, &g_gpt_freebsd, sizeof(struct uuid)) + ? 's' : 'p', idx + 1); + part->provider->index = idx; + part->provider->private = part; /* Close the circle. */ + part->provider->mediasize = (part_end - part_start + 1) * + pp->sectorsize; + part->provider->sectorsize = pp->sectorsize; + part->provider->flags = pp->flags & G_PF_CANDELETE; + if (pp->stripesize > 0) { + part->provider->stripesize = pp->stripesize; + part->provider->stripeoffset = + (pp->stripeoffset + part->offset) % pp->stripesize; + } + g_error_provider(part->provider, 0); + g_topology_unlock(); + + if (bootverbose) { + printf("GEOM: %s: partition ", part->provider->name); + printf_uuid(&part->ent.ent_uuid); + printf(".\n"); + } + } +} + +static int +g_gpt_matched_hdrs(struct gpt_hdr *pri, struct gpt_hdr *sec) +{ + + if (memcmp(&pri->hdr_uuid, &sec->hdr_uuid, sizeof(struct uuid)) != 0) + return (0); + return ((pri->hdr_revision == sec->hdr_revision && + pri->hdr_size == sec->hdr_size && + pri->hdr_lba_start == sec->hdr_lba_start && + pri->hdr_lba_end == sec->hdr_lba_end && + pri->hdr_entries == sec->hdr_entries && + pri->hdr_entsz == sec->hdr_entsz && + pri->hdr_crc_table == sec->hdr_crc_table) ? 1 : 0); +} + +static int +g_gpt_tbl_ok(struct gpt_hdr *hdr, char *tbl) +{ + size_t sz; + uint32_t crc; + + crc = hdr->hdr_crc_table; + sz = hdr->hdr_entries * hdr->hdr_entsz; + return ((crc32(tbl, sz) == crc) ? 1 : 0); +} + +static void +g_gpt_to_utf8(struct sbuf *sb, uint16_t *str, size_t len) +{ + u_int bo; + uint32_t ch; + uint16_t c; + + bo = BYTE_ORDER; + while (len > 0 && *str != 0) { + ch = (bo == BIG_ENDIAN) ? be16toh(*str) : le16toh(*str); + str++, len--; + if ((ch & 0xf800) == 0xd800) { + if (len > 0) { + c = (bo == BIG_ENDIAN) ? be16toh(*str) + : le16toh(*str); + str++, len--; + } else + c = 0xfffd; + if ((ch & 0x400) == 0 && (c & 0xfc00) == 0xdc00) { + ch = ((ch & 0x3ff) << 10) + (c & 0x3ff); + ch += 0x10000; + } else + ch = 0xfffd; + } else if (ch == 0xfffe) { /* BOM (U+FEFF) swapped. */ + bo = (bo == BIG_ENDIAN) ? LITTLE_ENDIAN : BIG_ENDIAN; + continue; + } else if (ch == 0xfeff) /* BOM (U+FEFF) unswapped. */ + continue; + + if (ch < 0x80) + sbuf_printf(sb, "%c", ch); + else if (ch < 0x800) + sbuf_printf(sb, "%c%c", 0xc0 | (ch >> 6), + 0x80 | (ch & 0x3f)); + else if (ch < 0x10000) + sbuf_printf(sb, "%c%c%c", 0xe0 | (ch >> 12), + 0x80 | ((ch >> 6) & 0x3f), 0x80 | (ch & 0x3f)); + else if (ch < 0x200000) + sbuf_printf(sb, "%c%c%c%c", 0xf0 | (ch >> 18), + 0x80 | ((ch >> 12) & 0x3f), + 0x80 | ((ch >> 6) & 0x3f), 0x80 | (ch & 0x3f)); + } +} + +static void +g_gpt_wither(struct g_geom *gp, int error) +{ + struct g_gpt_part *part; + struct g_gpt_softc *softc; + + softc = gp->softc; + if (softc != NULL) { + part = LIST_FIRST(&softc->parts); + while (part != NULL) { + LIST_REMOVE(part, parts); + g_free(part); + part = LIST_FIRST(&softc->parts); + } + g_free(softc); + gp->softc = NULL; } + g_wither_geom(gp, error); +} + +/* + * Class methods. + */ + +static void +g_gpt_ctlreq(struct gctl_req *req, struct g_class *mp, const char *verb) +{ + /* XXX todo */ +} + +static int +g_gpt_destroy_geom(struct gctl_req *req, struct g_class *mp, + struct g_geom *gp) +{ + + G_GPT_TRACE((G_T_TOPOLOGY, "%s(%s,%s)", __func__, mp->name, gp->name)); + + g_topology_assert(); + + g_gpt_wither(gp, EINVAL); + return (0); } static struct g_geom * g_gpt_taste(struct g_class *mp, struct g_provider *pp, int insist __unused) { - struct uuid tmp; struct g_consumer *cp; struct g_geom *gp; - struct g_gpt_softc *gs; - u_char *buf, *mbr; - struct gpt_ent *ent, *part; + struct g_gpt_softc *softc; struct gpt_hdr *hdr; - u_int i, secsz, tblsz; - int error, ps; - uint32_t entries, entsz; + void *buf; + off_t ofs; + size_t nbytes; + int error; - g_trace(G_T_TOPOLOGY, "g_gpt_taste(%s,%s)", mp->name, pp->name); + G_GPT_TRACE((G_T_TOPOLOGY, "%s(%s,%s)", __func__, mp->name, pp->name)); g_topology_assert(); /* - * XXX: I don't like to hardcode a maximum number of slices, since - * it's wasting space most of the time and insufficient any time. - * It's easier for now... + * Sanity-check the provider. Since the first sector on the provider + * must be a PMBR and a PMBR is 512 bytes large, the sector size must + * be at least 512 bytes. We also require that the sector size is a + * multiple of the GPT entry size (which is 128 bytes). + * Also, since the theoretical minimum number of sectors needed by + * GPT is 6, any medium that has less than 6 sectors is never going + * to hold a GPT. The number 6 comes from: + * 1 sector for the PMBR + * 2 sectors for the GPT headers (each 1 sector) + * 2 sectors for the GPT tables (each 1 sector) + * 1 sector for an actual partition + * It's better to catch this pathological case early than behaving + * pathologically later on by panicing... + */ + if (pp->sectorsize < 512 || + pp->sectorsize % sizeof(struct gpt_ent) != 0 || + pp->mediasize < 6 * pp->sectorsize) + return (NULL); + + /* + * We don't nest. That is, we disallow nesting a GPT inside a GPT + * partition. We check only for direct nesting. Indirect nesting is + * not easy to determine. If you want, you can therefore nest GPT + * partitions by putting a dummy GEOM in between them. But I didn't + * say that... + */ + if (pp->geom->class == &g_gpt_class) + return (NULL); + + /* + * Create a GEOM with consumer and hook it up to the provider. + * With that we become part of the topology. Optain read, write + * and exclusive access to the provider. */ - gp = g_slice_new(mp, GPT_MAX_SLICES, pp, &cp, &gs, sizeof(*gs), - g_gpt_start); - if (gp == NULL) + gp = g_new_geomf(mp, "%s", pp->name); + softc = g_malloc(sizeof(struct g_gpt_softc), M_WAITOK | M_ZERO); + gp->softc = softc; + LIST_INIT(&softc->parts); + cp = g_new_consumer(gp); + error = g_attach(cp, pp); + if (error == 0) + error = g_access(cp, 1, 0, 0); + if (error != 0) { + g_gpt_wither(gp, error); return (NULL); + } g_topology_unlock(); - do { - mbr = NULL; + /* + * Read both the primary and secondary GPT headers. We have all + * the information at our fingertips that way to determine if + * there's a GPT, including whether recovery is appropriate. + */ + buf = g_read_data(cp, pp->sectorsize, pp->sectorsize, &error); + if (error != 0) + goto fail; + g_gpt_load_hdr(softc, pp, GPT_HDR_PRIMARY, buf); + g_free(buf); + + buf = g_read_data(cp, pp->mediasize - pp->sectorsize, pp->sectorsize, + &error); + if (error != 0) + goto fail; + g_gpt_load_hdr(softc, pp, GPT_HDR_SECONDARY, buf); + g_free(buf); + + /* Bail out if there are no GPT headers at all. */ + if (softc->state[GPT_HDR_PRIMARY] == GPT_HDR_MISSING && + softc->state[GPT_HDR_SECONDARY] == GPT_HDR_MISSING) { + error = ENXIO; /* Device not configured for GPT. */ + goto fail; + } - secsz = cp->provider->sectorsize; - if (secsz < 512) - break; + /* + * We have at least one GPT header (though that one may be corrupt + * or invalid). This disk supposedly has GPT in some shape or form. + * First check that there's a protective MBR. Complain if there + * is none and fail. + */ + if (!g_gpt_has_pmbr(cp, &error)) { + printf("GEOM: %s: GPT detected, but no protective MBR.\n", + pp->name); + error = ENXIO; + goto fail; + } - /* XXX: we need to get the media size as well. */ + /* + * Now, catch the non-recoverable case where there's no good GPT + * header at all. That is, unrecoverable by us. The user may able + * to fix it up with some magic. + */ + if (softc->state[GPT_HDR_PRIMARY] != GPT_HDR_OK && + softc->state[GPT_HDR_SECONDARY] != GPT_HDR_OK) { + printf("GEOM: %s: corrupt or invalid GPT detected.\n", + pp->name); + printf("GEOM: %s: GPT rejected -- may not be recoverable.\n", + pp->name); + error = EINVAL; /* No valid GPT header exists. */ + goto fail; + } - /* Read both the MBR sector and the GPT sector. */ - mbr = g_read_data(cp, 0, 2 * secsz, &error); - if (mbr == NULL || error != 0) - break; + /* + * Ok, at least one header is good. We can use the GPT. If there's + * a corrupt or invalid header, we'd like to user to know about it. + * Also catch the case where both headers appear to be good but are + * not mirroring each other. We only check superficially for that. + */ + if (softc->state[GPT_HDR_PRIMARY] != GPT_HDR_OK) { + printf("GEOM: %s: the primary GPT header is corrupt or " + "invalid.\n", pp->name); + printf("GEOM: %s: using the secondary instead -- recovery " + "strongly advised.\n", pp->name); + } else if (softc->state[GPT_HDR_SECONDARY] != GPT_HDR_OK) { + printf("GEOM: %s: the secondary GPT header is corrupt or " + "invalid.\n", pp->name); + printf("GEOM: %s: using the primary only -- recovery " + "suggested.\n", pp->name); + } else if (!g_gpt_matched_hdrs(softc->hdr + GPT_HDR_PRIMARY, + softc->hdr + GPT_HDR_SECONDARY)) { + printf("GEOM: %s: the primary and secondary GPT header do " + "not agree.\n", pp->name); + printf("GEOM: %s: GPT rejected -- recovery required.\n", + pp->name); + error = EINVAL; /* No consistent GPT exists. */ + goto fail; + } - if (!is_pmbr(mbr)) - break; + /* Always prefer the primary header. */ + hdr = (softc->state[GPT_HDR_PRIMARY] == GPT_HDR_OK) + ? softc->hdr + GPT_HDR_PRIMARY : softc->hdr + GPT_HDR_SECONDARY; - hdr = (void*)(mbr + secsz); + /* + * Now that we've got a GPT header, we have to deal with the table + * itself. Again there's a primary table and a secondary table and + * either or both may be corrupt or invalid. Redundancy is nice, + * but it's a combinatorial pain in the butt. + */ - /* - * XXX: if we don't have a GPT header at LBA 1, we should - * check if there's a backup GPT at the end of the medium. If - * we have a valid backup GPT, we should restore the primary - * GPT and claim this lunch. - */ - if (!is_gpt_hdr(hdr)) - break; + nbytes = ((hdr->hdr_entries * hdr->hdr_entsz + pp->sectorsize - 1) / + pp->sectorsize) * pp->sectorsize; - entries = le32toh(hdr->hdr_entries); - entsz = le32toh(hdr->hdr_entsz); - tblsz = (entries * entsz + secsz - 1) & ~(secsz - 1); - buf = g_read_data(cp, le64toh(hdr->hdr_lba_table) * secsz, - tblsz, &error); - if (buf == NULL) - break; + ofs = hdr->hdr_lba_table * pp->sectorsize; + buf = g_read_data(cp, ofs, nbytes, &error); + if (error != 0) + goto fail; - for (i = 0; i < entries; i++) { - struct uuid unused = GPT_ENT_TYPE_UNUSED; - struct uuid freebsd = GPT_ENT_TYPE_FREEBSD; + /* + * If the table is corrupt, check if we can use the other one. + * Complain and bail if not. + */ + if (!g_gpt_tbl_ok(hdr, buf)) { + g_free(buf); + if (hdr != softc->hdr + GPT_HDR_PRIMARY || + softc->state[GPT_HDR_SECONDARY] != GPT_HDR_OK) { + printf("GEOM: %s: the GPT table is corrupt -- " + "may not be recoverable.\n", pp->name); + goto fail; + } + softc->state[GPT_HDR_PRIMARY] = GPT_HDR_CORRUPT; + hdr = softc->hdr + GPT_HDR_SECONDARY; + ofs = hdr->hdr_lba_table * pp->sectorsize; + buf = g_read_data(cp, ofs, nbytes, &error); + if (error != 0) + goto fail; - if (i >= GPT_MAX_SLICES) - break; - ent = (void*)(buf + i * entsz); - le_uuid_dec(&ent->ent_type, &tmp); - if (!memcmp(&tmp, &unused, sizeof(unused))) - continue; - /* XXX: This memory leaks */ - part = gs->part[i] = g_malloc(entsz, M_WAITOK); - if (part == NULL) - break; - part->ent_type = tmp; - le_uuid_dec(&ent->ent_uuid, &part->ent_uuid); - part->ent_lba_start = le64toh(ent->ent_lba_start); - part->ent_lba_end = le64toh(ent->ent_lba_end); - part->ent_attr = le64toh(ent->ent_attr); - /* XXX do we need to byte-swap UNICODE-16? */ - bcopy(ent->ent_name, part->ent_name, - sizeof(part->ent_name)); - ps = (!memcmp(&tmp, &freebsd, sizeof(freebsd))) - ? 's' : 'p'; - g_topology_lock(); - (void)g_slice_config(gp, i, G_SLICE_CONFIG_SET, - part->ent_lba_start * secsz, - (1 + part->ent_lba_end - part->ent_lba_start) * - secsz, secsz, "%s%c%d", gp->name, ps, i + 1); - g_topology_unlock(); + if (!g_gpt_tbl_ok(hdr, buf)) { + g_free(buf); + printf("GEOM: %s: both primary and secondary GPT " + "tables are corrupt.\n", pp->name); + printf("GEOM: %s: GPT rejected -- may not be " + "recoverable.\n", pp->name); + goto fail; } - g_free(buf); - } while (0); + printf("GEOM: %s: the primary GPT table is corrupt.\n", + pp->name); + printf("GEOM: %s: using the secondary table -- recovery " + "strongly advised.\n", pp->name); + } + + if (bootverbose) { + printf("GEOM: %s: GPT ", pp->name); + printf_uuid(&hdr->hdr_uuid); + printf(".\n"); + } - if (mbr != NULL) - g_free(mbr); + g_gpt_load_tbl(gp, pp, hdr, buf); + g_free(buf); + g_topology_lock(); + g_access(cp, -1, 0, 0); + return (gp); + fail: g_topology_lock(); g_access(cp, -1, 0, 0); - if (LIST_EMPTY(&gp->provider)) { - g_slice_spoiled(cp); - return (NULL); + g_gpt_wither(gp, error); + return (NULL); +} + +/* + * Geom methods. + */ + +static int +g_gpt_access(struct g_provider *pp, int dr, int dw, int de) +{ + struct g_consumer *cp; + + G_GPT_TRACE((G_T_ACCESS, "%s(%s,%d,%d,%d)", __func__, pp->name, dr, + dw, de)); + + cp = LIST_FIRST(&pp->geom->consumer); + + /* We always gain write-exclusive access. */ + return (g_access(cp, dr, dw, dw + de)); +} + >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Sep 17 18:23:24 2005 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 820C116A421; Sat, 17 Sep 2005 18:23:23 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5BC3216A41F for ; Sat, 17 Sep 2005 18:23:23 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 09E8443D46 for ; Sat, 17 Sep 2005 18:23:23 +0000 (GMT) (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.1/8.13.1) with ESMTP id j8HINMPA048160 for ; Sat, 17 Sep 2005 18:23:22 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HINMZ8048157 for perforce@freebsd.org; Sat, 17 Sep 2005 18:23:22 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 17 Sep 2005 18:23:22 GMT Message-Id: <200509171823.j8HINMZ8048157@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 83793 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, 17 Sep 2005 18:23:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=83793 Change 83793 by rwatson@rwatson_zoo on 2005/09/17 18:22:52 Integrate netsmp branch from FreeBSD CVS. Affected files ... .. //depot/projects/netsmp/src/sys/dev/iwi/if_iwi.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/iwi/if_iwireg.h#3 integrate .. //depot/projects/netsmp/src/sys/dev/iwi/if_iwivar.h#3 integrate Differences ... ==== //depot/projects/netsmp/src/sys/dev/iwi/if_iwi.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.15 2005/08/21 09:52:18 damien Exp $ */ +/* $FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.16 2005/09/17 12:41:05 damien Exp $ */ /*- * Copyright (c) 2004, 2005 @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.15 2005/08/21 09:52:18 damien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.16 2005/09/17 12:41:05 damien Exp $"); /*- * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver @@ -121,6 +121,7 @@ static int iwi_newstate(struct ieee80211com *, enum ieee80211_state, int); static int iwi_wme_update(struct ieee80211com *); static uint16_t iwi_read_prom_word(struct iwi_softc *, uint8_t); +static int iwi_find_txnode(struct iwi_softc *, const uint8_t *); static void iwi_fix_channel(struct ieee80211com *, struct mbuf *); static void iwi_frame_intr(struct iwi_softc *, struct iwi_rx_data *, int, struct iwi_frame *); @@ -130,7 +131,7 @@ static void iwi_intr(void *); static int iwi_cmd(struct iwi_softc *, uint8_t, void *, uint8_t, int); static int iwi_tx_start(struct ifnet *, struct mbuf *, - struct ieee80211_node *); + struct ieee80211_node *, int); static void iwi_start(struct ifnet *); static void iwi_watchdog(struct ifnet *); static int iwi_ioctl(struct ifnet *, u_long, caddr_t); @@ -316,7 +317,6 @@ if (ifp == NULL) { device_printf(dev, "can not if_alloc()\n"); goto fail; - return (ENOSPC); } ifp->if_softc = sc; if_initname(ifp, device_get_name(dev), device_get_unit(dev)); @@ -337,6 +337,7 @@ /* set device capabilities */ ic->ic_caps = + IEEE80211_C_IBSS | /* IBSS mode supported */ IEEE80211_C_MONITOR | /* monitor mode supported */ IEEE80211_C_TXPMGT | /* tx power management */ IEEE80211_C_SHPREAMBLE | /* short preamble supported */ @@ -463,11 +464,11 @@ iwi_free_firmware(sc); - if (ifp != NULL) + if (ifp != NULL) { bpfdetach(ifp); - ieee80211_ifdetach(ic); - if (ifp != NULL) + ieee80211_ifdetach(ic); if_free(ifp); + } iwi_free_cmd_ring(sc, &sc->cmdq); iwi_free_tx_ring(sc, &sc->txq[0]); @@ -922,6 +923,7 @@ if (sc->flags & IWI_FLAG_SCANNING) break; + sc->nsta = 0; /* flush IBSS nodes */ ieee80211_node_table_reset(&ic->ic_scan); ic->ic_flags |= IEEE80211_F_SCAN | IEEE80211_F_ASCAN; sc->flags |= IWI_FLAG_SCANNING; @@ -1077,6 +1079,37 @@ } /* + * This is only used for IBSS mode where the firmware expect an index to an + * internal node table instead of a destination address. + */ +static int +iwi_find_txnode(struct iwi_softc *sc, const uint8_t *macaddr) +{ + struct iwi_node node; + int i; + + for (i = 0; i < sc->nsta; i++) + if (IEEE80211_ADDR_EQ(sc->sta[i], macaddr)) + return i; /* already existing node */ + + if (i == IWI_MAX_NODE) + return -1; /* no place left in neighbor table */ + + /* save this new node in our softc table */ + IEEE80211_ADDR_COPY(sc->sta[i], macaddr); + sc->nsta = i; + + /* write node information into NIC memory */ + memset(&node, 0, sizeof node); + IEEE80211_ADDR_COPY(node.bssid, macaddr); + + CSR_WRITE_REGION_1(sc, IWI_CSR_NODE_BASE + i * sizeof node, + (uint8_t *)&node, sizeof node); + + return i; +} + +/* * XXX: Hack to set the current channel to the value advertised in beacons or * probe responses. Only used during AP detection. */ @@ -1436,41 +1469,38 @@ } static int -iwi_tx_start(struct ifnet *ifp, struct mbuf *m0, struct ieee80211_node *ni) +iwi_tx_start(struct ifnet *ifp, struct mbuf *m0, struct ieee80211_node *ni, + int ac) { struct iwi_softc *sc = ifp->if_softc; struct ieee80211com *ic = &sc->sc_ic; struct ieee80211_frame *wh; struct ieee80211_key *k; const struct chanAccParams *cap; - struct iwi_tx_ring *txq; + struct iwi_tx_ring *txq = &sc->txq[ac]; struct iwi_tx_data *data; struct iwi_tx_desc *desc; struct mbuf *mnew; bus_dma_segment_t segs[IWI_MAX_NSEG]; - int error, nsegs, hdrlen, ac, i, noack = 0; + int error, nsegs, hdrlen, i, station = 0, noack = 0; wh = mtod(m0, struct ieee80211_frame *); if (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS) { hdrlen = sizeof (struct ieee80211_qosframe); - ac = M_WME_GETAC(m0); cap = &ic->ic_wme.wme_chanParams; noack = cap->cap_wmeParams[ac].wmep_noackPolicy; - } else { + } else hdrlen = sizeof (struct ieee80211_frame); - ac = WME_AC_BE; - } - txq = &sc->txq[ac]; - if (txq->queued >= IWI_TX_RING_COUNT - 4) { - /* - * There is no place left in this ring. Perhaps in 802.11e, - * we should try to fallback to a lowest priority ring? - */ - ifp->if_drv_flags |= IFF_DRV_OACTIVE; - m_freem(m0); - return 0; + if (ic->ic_opmode == IEEE80211_M_IBSS) { + station = iwi_find_txnode(sc, wh->i_addr1); + if (station == -1) { + m_freem(m0); + ieee80211_free_node(ni); + ifp->if_oerrors++; + return 0; + } } if (wh->i_fc[1] & IEEE80211_FC1_WEP) { @@ -1534,6 +1564,7 @@ desc->hdr.type = IWI_HDR_TYPE_DATA; desc->hdr.flags = IWI_HDR_FLAG_IRQ; + desc->station = station; desc->cmd = IWI_DATA_CMD_TX; desc->len = htole16(m0->m_pkthdr.len); desc->flags = 0; @@ -1583,6 +1614,7 @@ struct mbuf *m0; struct ether_header *eh; struct ieee80211_node *ni; + int ac; IWI_LOCK(sc); @@ -1597,31 +1629,50 @@ break; if (m0->m_len < sizeof (struct ether_header) && - (m0 = m_pullup(m0, sizeof (struct ether_header))) == NULL) + (m0 = m_pullup(m0, sizeof (struct ether_header))) == NULL) { + ifp->if_oerrors++; continue; - + } eh = mtod(m0, struct ether_header *); ni = ieee80211_find_txnode(ic, eh->ether_dhost); if (ni == NULL) { m_freem(m0); + ifp->if_oerrors++; continue; } + + /* classify mbuf so we can find which tx ring to use */ if (ieee80211_classify(ic, m0, ni) != 0) { m_freem(m0); + ieee80211_free_node(ni); + ifp->if_oerrors++; continue; } + + /* no QoS encapsulation for EAPOL frames */ + ac = (eh->ether_type != htons(ETHERTYPE_PAE)) ? + M_WME_GETAC(m0) : WME_AC_BE; + + if (sc->txq[ac].queued > IWI_TX_RING_COUNT - 8) { + /* there is no place left in this ring */ + IFQ_DRV_PREPEND(&ifp->if_snd, m0); + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + break; + } + BPF_MTAP(ifp, m0); m0 = ieee80211_encap(ic, m0, ni); if (m0 == NULL) { ieee80211_free_node(ni); + ifp->if_oerrors++; continue; } if (ic->ic_rawbpf != NULL) bpf_mtap(ic->ic_rawbpf, m0); - if (iwi_tx_start(ifp, m0, ni) != 0) { + if (iwi_tx_start(ifp, m0, ni, ac) != 0) { ieee80211_free_node(ni); ifp->if_oerrors++; break; @@ -2148,6 +2199,22 @@ if (error != 0) return error; + /* if we have a desired ESSID, set it now */ + if (ic->ic_des_esslen != 0) { +#ifdef IWI_DEBUG + if (iwi_debug > 0) { + printf("Setting desired ESSID to "); + ieee80211_print_essid(ic->ic_des_essid, + ic->ic_des_esslen); + printf("\n"); + } +#endif + error = iwi_cmd(sc, IWI_CMD_SET_ESSID, ic->ic_des_essid, + ic->ic_des_esslen, 1); + if (error != 0) + return error; + } + data = htole32(arc4random()); DPRINTF(("Setting initialization vector to %u\n", le32toh(data))); error = iwi_cmd(sc, IWI_CMD_SET_IV, &data, sizeof data, 0); @@ -2201,7 +2268,8 @@ int i, count; memset(&scan, 0, sizeof scan); - scan.type = IWI_SCAN_TYPE_BROADCAST; + scan.type = (ic->ic_des_esslen != 0) ? IWI_SCAN_TYPE_BDIRECTED : + IWI_SCAN_TYPE_BROADCAST; scan.dwelltime = htole16(sc->dwelltime); p = scan.channels; ==== //depot/projects/netsmp/src/sys/dev/iwi/if_iwireg.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/iwi/if_iwireg.h,v 1.4 2005/08/21 09:52:18 damien Exp $ */ +/* $FreeBSD: src/sys/dev/iwi/if_iwireg.h,v 1.5 2005/09/17 12:41:05 damien Exp $ */ /*- * Copyright (c) 2004, 2005 @@ -62,6 +62,7 @@ #define IWI_CSR_RX_BASE 0x0500 #define IWI_CSR_TABLE0_SIZE 0x0700 #define IWI_CSR_TABLE0_BASE 0x0704 +#define IWI_CSR_NODE_BASE 0x0c0c #define IWI_CSR_CMD_WIDX 0x0f80 #define IWI_CSR_TX1_WIDX 0x0f84 #define IWI_CSR_TX2_WIDX 0x0f88 @@ -269,6 +270,12 @@ uint8_t data[120]; } __packed; +/* node information (IBSS) */ +struct iwi_node { + uint8_t bssid[IEEE80211_ADDR_LEN]; + uint8_t reserved[2]; +} __packed; + /* constants for 'mode' fields */ #define IWI_MODE_11A 0 #define IWI_MODE_11B 1 @@ -331,7 +338,9 @@ struct iwi_scan { uint8_t type; #define IWI_SCAN_TYPE_PASSIVE 1 +#define IWI_SCAN_TYPE_DIRECTED 2 #define IWI_SCAN_TYPE_BROADCAST 3 +#define IWI_SCAN_TYPE_BDIRECTED 4 uint16_t dwelltime; uint8_t channels[54]; @@ -424,6 +433,10 @@ #define CSR_WRITE_4(sc, reg, val) \ bus_space_write_4((sc)->sc_st, (sc)->sc_sh, (reg), (val)) +#define CSR_WRITE_REGION_1(sc, offset, datap, count) \ + bus_space_write_region_1((sc)->sc_st, (sc)->sc_sh, (offset), \ + (datap), (count)) + /* * indirect memory space access macros */ ==== //depot/projects/netsmp/src/sys/dev/iwi/if_iwivar.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/iwi/if_iwivar.h,v 1.5 2005/08/20 16:49:03 damien Exp $ */ +/* $FreeBSD: src/sys/dev/iwi/if_iwivar.h,v 1.6 2005/09/17 12:41:05 damien Exp $ */ /*- * Copyright (c) 2004, 2005 @@ -130,6 +130,10 @@ struct iwi_tx_ring txq[WME_NUM_AC]; struct iwi_rx_ring rxq; +#define IWI_MAX_NODE 32 + uint8_t sta[IWI_MAX_NODE][IEEE80211_ADDR_LEN]; + uint8_t nsta; + struct resource *irq; struct resource *mem; bus_space_tag_t sc_st; From owner-p4-projects@FreeBSD.ORG Sat Sep 17 21:37:19 2005 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 8CC6816A422; Sat, 17 Sep 2005 21:37:18 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 474EE16A41F for ; Sat, 17 Sep 2005 21:37:18 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B66F343D48 for ; Sat, 17 Sep 2005 21:37:17 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8HLbHKR064940 for ; Sat, 17 Sep 2005 21:37:17 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HLbHxZ064937 for perforce@freebsd.org; Sat, 17 Sep 2005 21:37:17 GMT (envelope-from soc-chenk@freebsd.org) Date: Sat, 17 Sep 2005 21:37:17 GMT Message-Id: <200509172137.j8HLbHxZ064937@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 83797 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, 17 Sep 2005 21:37:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=83797 Change 83797 by soc-chenk@soc-chenk_leavemealone on 2005/09/17 21:37:03 Fixed mount/unmount related problems Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/Changelog#7 edit .. //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#5 edit .. //depot/projects/soc2005/fuse4bsd2/README.html#4 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#6 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#4 edit .. //depot/projects/soc2005/fuse4bsd2/fuselib/fuselib-2.4.0-pre2.diff#2 edit .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/Makefile#3 edit .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.8#1 add .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#5 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/Changelog#7 (text+ko) ==== @@ -1,3 +1,17 @@ +Sat Sep 17 23:24:31 CEST 2005 at node: creo.hu, nick: csaba + * Fixed mount/unmount related problems + + Fixed reference leaks which prevented non-forced unmount + + Fixed handling of dirty buffers + + Refactored mount/unmount code + + Improved user interface + (no dummy mountpoint argument is needed for daemon anymore) + + Yet again cleaned up README.html + Thu Sep 15 00:01:08 CEST 2005 at node: creo.hu, nick: csaba * deleted reference to "configure tarball" ==== //depot/projects/soc2005/fuse4bsd2/IMPLEMENTATION_NOTES#5 (text+ko) ==== @@ -58,7 +58,7 @@ later). That is, these differences are related to the level of maturity of the two implementations, and as such, these are the less interesting ones. Let's see those differences of the modules which stem from the -differences of the two OS. +differences of the two OS and/or preferences of the implementors. TOC: 0) VFS API @@ -106,7 +106,7 @@ In FreeBSD, there are several fuse devices. When a Fuse daemon is started, it attaches itself to one -- either completely on its own or -using an already exsiting file descriptor, but it doesn't call any +using an already existing file descriptor, but it doesn't call any helper program and doesn't do anything mount related. Mounting is done by an external utility. This means that there must exist a global namespace in which the mounter can specify the daemon to mount. As one @@ -129,8 +129,8 @@ (struct) file via which a given file is opened/read/written. But this access is fragile, and in case of devices, it's readily broken by devfs in which devices live, as devfs bastardizes the (struct) files for its -own purposes (for those who don't know: FreeBSD implements a wisely -designed in-kernel device filesystem). +own purposes. (For those who don't know: FreeBSD implements a wisely +designed in-kernel device filesystem.) So devfs takes away acces from the file structures, but on the other hand, it makes the current implementation possible: it provides a @@ -166,13 +166,15 @@ * 1b -- security Fuse is a dedicatedly Promethean filesystem: it aims to the bring the -power of mounting to ordinary users. In Linux, ordinary users are -usually allowed to do mounts via the "user(s)" option of fstab. This is -a fairly static mechanism, so to provide the possibility of -non-privileged mounts, Linux Fuse rolls his own: the above mentioned -device opener/mounter utility is written in a way so that it can safely -bear the suid bit, and then the custom permission handling logic is -stuffed into this utility, too. +power of interaction via a custom filesystem interface to ordinary +users. Practically, this boils down to doing customized non-privileged +mounts. In Linux, ordinary users are usually allowed to do mounts via +the "user(s)" option of fstab. This is a fairly static mechanism, so to +be able to do the customized non-privileged mounts as it's required, +Linux Fuse rolls his own: the above mentioned device opener/mounter +utility is written in a way so that it can safely bear the suid bit, and +then the appropriate permission handling logic is stuffed into this +utility, too. In FreeBSD no heroic action is needed. No setuid mounting is needed -- unlike Linux, there are no "user(s)" option in fstab, and mount(8) @@ -229,9 +231,7 @@ ("devfs rule add path 'fuse*' mode 666"). Hey, conscious admins, hear my word, I hereby claim thou shalt not fear to do so. And, concerning paranoiac admins, these defaults save them from a heart -attack upon seeing world writable entries under /dev (though they might -better go and suffer a heart attack when kldstat reports that my module -is loaded...). +attack upon seeing world writable entries under /dev. * 1c -- dealing with the "allow other" misery @@ -250,7 +250,7 @@ There is a mount option, "allow_other", which removes this limitation. Of course, if anyone could use this option, that would pretty much defeat -the whole purpose of its existence. So by default, only root can use this. +the very purpose of its existence. So by default, only root can use this. However, the final decision is made by the setuid dispatcher; and his decision is based upon settings in the respective config file /etc/fuse.conf. @@ -267,7 +267,7 @@ option, useable only by root. But we don't make exceptions: "allow_other" can be used only by root, period. -Yet we have our own ways to not be so draconian. We have an explicit +Yet we have our own ways of being not too draconian. We have an explicit global unique userspace identifier of daemons in work. This allows the introduction of shared daemons. When the first (primary) @@ -334,12 +334,12 @@ There is the so-called "strategy" vnode method, which is used to transfer data between the "storage" (the daemon in our case) and the -vmio buffers; this is the central component of buffered I/O in BSD. It -takes only two parameters: the vnode we operate on, and the buffer -object we read into from or write to the storage (to read or to write: -this info is kept with the buffer). With Fuse, what are we to say to the -daemon, when the strategy is invoked? We need a "key", a suitable -filehandle identifier to perform the I/O request -- where to get one? +vmio buffers; this is the engine of buffered I/O in BSD. It takes only +two parameters: the vnode we operate on, and the buffer object we read +into from or write to the storage (to read or to write: this info is +kept with the buffer). With Fuse, what are we to say to the daemon, when +the strategy is invoked? We need a "key", a suitable filehandle +identifier to perform the I/O request -- where to get one? The situation is easy when reading or writing regular files: these operations can easily be arranged in a way that they will be file aware. @@ -361,7 +361,7 @@ Releasing it immediately (that is, strategy releases it before return) is pretty unefficient: the file should be re-opened at each -turn of a lengty read-in. +turn of a lengthy read-in. Just simply forgetting about it and polluting the daemon with worn-out filehandles is neither a good idea. Some kind of resource management should @@ -379,7 +379,7 @@ run? There is a neat built-in gc mechanism: it's invoked when vnodes become -unused. The usual effect of this method is disassociating the vnode +unused. The intended effect of this method is disassociating the vnode from its file (node), and putting it back to the pool of free vnodes. We don't do that, as then we would lose the number of lookups (which is needed for Fuse to operate correctly). Yet it's a pretty fine time @@ -434,7 +434,7 @@ come. When trying to implement fsync for Fuse, once again we bump into the -basic difference: Linux fsync (flush) file based, FreeBSD fsync is vnode +basic difference: Linux fsync (flush) is file based, FreeBSD fsync is vnode based. Here I can imagine that file basedness has a significance to the userspace: eg., it is possible that sshfs runs different sftp connection threads for different filehandles, and syncing the data stuffed into one @@ -449,19 +449,6 @@ would be too much pain (and we can't [yet] send/wait for many messages once, in a batch). -Note that in FreeBSD there is a different operation for syncing buffer -objects and vnodes; but usually this difference is invisible, as by -default the buffer syncing function just calls the syncer of the vnode -(for which there is a useable default provided, too). That is, traditional -file system authors deal only with the vnode fsync function, and in most -cases, they don't even do that, just accept the default. - -In Fuse, a no-op function is given as the buf syncer (as we insist on -all writes being synchronous, although there are still technical -problems in this regard), and the vnode's fsync operation works as -described above, in a way which has nothing to do with in-kernel -buffers. - 4) Messaging Here I give a brief comparison of the ways of implementing messaging @@ -525,7 +512,7 @@ * In Linux, the unique field of the request is filled with a really unique value upon being taken out of the pool (ie., number of take-out). In FreeBSD, unique values are owned by the ticket itself - (it's not changed during ticket's lifetime), so unique values give + (it's not changed during the ticket's lifetime), so unique values give information about the number of messaging sessions going in parallell (there is a secondary field for each ticket which stores the number of take-outs that ticket went through, but that's rarely used). @@ -541,10 +528,10 @@ required structs, and frontend methods for tickets set them to an appropriate value (to the appropriate point in the ticket's appropriate buffer). In some of the more complex cases this means a bit of manual pointer - arithmetic; for those of the complex patterns which are not unique - (mknod/creat/link), further, specific frontend methods are used. - In general, I didn't feel that this approach yields too much tedious - repetition when setting up a ticket. + arithmetic; for those of the complex patterns which occur repeatedly + (mknod/creat/link), further, specific frontend methods are used (to note, + in Linux, too). In general, I didn't feel that this approach yields too + much tedious repetition when setting up a ticket. Interrupt handling: in Linux, when a syscall is interrupted, the corresponding request is "backgrounded". It's put into another queue, and @@ -624,7 +611,7 @@ eg.: "shouldn't we bail out here because we are mounted read only?"; check whether a directory is tried to be moved into a subdirectory of itself when doing a rename; check whether vnodes are from the same - filesystem when doing hard linking, and so on. Sometimes it's trivial + filesystem when creating hard links, and so on. Sometimes it's trivial to do these (just shouldn't be forgotten about), sometimes not so much... ==== //depot/projects/soc2005/fuse4bsd2/README.html#4 (text+ko) ==== @@ -35,7 +35,7 @@ The module was written for and tested with CURRENT, aka FreeBSD-7.0. I'd guess it will work fine with RELENG 6 too, but currently it's not usable with 5.x (or lower) versions.

    -Waht can be considered as a public homepage for the project is [WWW]http://wikitest.freebsd.org/moin.cgi/FuseFilesystem; for updates, further info go there. Get in contact with me via the soc-chenk email addrees of the FreeBSD organization (freebsd.org). +What can be considered as a public homepage for the project is [WWW]http://wikitest.freebsd.org/moin.cgi/FuseFilesystem; for updates, further info go there. Get in contact with me via the soc-chenk email addrees of the FreeBSD organization (freebsd.org).

    Installation

    @@ -98,32 +98,27 @@

  • Apply the patch with -

     patch -Np1 < fuselib<date>.diff
    +
     patch -Np1 < ../fuse4bsd/fuselib/fuselib-2.4.0-pre2.diff

  • - Assuming that you have my code at ../fuse4bsd, do + Do

     cp ../fuse4bsd/fuse_module/fuse_kernel.h include/ &&
    - cp ../fuse4bsd/fuse_module/linux_compat.h include/
    (the first command replaces fusermount.c with a trimmed down version without the mount support code, and the other two dynamically customize the header file defining the kernel-userland interface; as these are needed in the module as well, they are handled separately from the userspace patch). + cp ../fuse4bsd/fuse_module/linux_compat.h include/ (these commands dynamically customize the header file defining the kernel-userland interface; as these are needed in the module as well, they are handled separately from the userspace patch).

  • - We will do a non-privileged install (I'd say that's easier than set up a jail), I'll use ~/meta/fuse-2.4.0-pre2 as the prefix. Configure fuse with -

     ./configure --prefix ~/meta/fuse-2.4.0-pre2 --bindir=/tmp --disable-kernel-module MOUNT_FUSE_PATH=/tmp
    + We will do a non-privileged install (I'd say that's easier than set up a jail), I'll use ~/meta/fuse-2.4.0-pre2 as the prefix. Type the following commands: +
     mkdir junk &&
    + ./configure --prefix=$HOME/meta/fuse-2.4.0-pre2 --bindir=`pwd`/junk --disable-kernel-module MOUNT_FUSE_PATH=`pwd`/junk &&
    + make &&
    + ln -s /usr/bin/true junk/chown &&
    + ln -s /usr/bin/true junk/mknod &&
    + env PATH=`pwd`/junk:$PATH make install

  • -
  • -

    - Now type -

     make &&
    - ln -s /usr/bin/true chown &&
    - ln -s /usr/bin/true mknod &&
    - ln -s /usr/bin/true chmod &&
    - env PATH=`pwd`:$PATH make install
    -

    -
  • @@ -166,78 +161,30 @@ Go to sshfs' directory. First prepare the mount:
    mkdir -p ~/fuse &&
     export LD_LIBRARY_PATH=~/meta/fuse-2.4.0-pre2/lib/
    and also make sure that mount_fusefs (of FreeBSD Fuse) is in your path. Then do: -
    mount_fusefs auto ~/fuse ./sshfs foo@bar.baz: ""
    +
    mount_fusefs auto ~/fuse ./sshfs foo@bar.baz:

    If you want the daemon print the messages she gots from the kernel, you can append the -d flag to the end of the mount command (standard Fuse flag, as debug). However, this can be a little annoying, as the daemon will go to background, but will also muck up the terminal with its reports (unlike when you use -d under Linux). To keep it foreground, you can do the following: -

    env FUSE_DEV_NAME=/dev/fuse0 ./sshfs foo@bar.baz: "" -d
    Then open an other terminal, and type there: +
    env FUSE_DEV_NAME=/dev/fuse0 ./sshfs foo@bar.baz: -d
    Then open another terminal, and type there:
    mount_fusefs /dev/fuse0 ~/fuse
    (If /dev/fuse0 happens to be busy, use any other free Fuse device /dev/fuseN; most free of all is the one who doesn't exist.)

    -Finally, you will have to umount the filesystem by umount -f ~/fuse. You can't omit -f as of now. +Finally, you will have to umount the filesystem by umount ~/fuse.

    For more details, see the man page (mount_fusefs(8)).

    Bugs

    - -
      - -
    • - You have to use forced unmount for a Fuse filesystem. The reason for this is as follows: +See the respective section of mount_fusefs(8).

      -

      - With traditional filesystems, relations between fs entities are permanently stored in some background storage; but when one uses the filesystem, the fs hierarchy is built up and maintained by the kernel, and this what's transported to the userspace so that we get the usual "filesystem feeling". -

      -

      - Now with Fuse there is no permanent background storage. What takes the role of the background storage is the Fuse daemon's memory, that's where the primary instance of the fs hierarchy reigns. In this case, the above mentioned in-kernel hierarchy is a "mirror" of the hierarchy as seen by the daemon. This mirroring is required to be kept exact. This implies the following: if we want to maintain a given file's identity for the whole lifetime of the filesystem, we have to keep its in-kernel counterpart (a vnode), too. -

      -

      - This is in contrast with traditional filesystems: there, if the use count of a vnode falls to zero, then it's inactivated (file-specific data gets thrown away, vnode is put to the free list of the filesystem, ready for recirculation). If the file the vnode used to refer to is asked for again, no problem, a vnode is pulled from the free list and the file data attributes will be filled from the disk, yielding a vnode which is undistinguishable to the previous one. -

      -

      - In Fuse, if we inactivated the vnode upon use count falling to zero, then the file on the "storage" would vanish, too. In case of "less synthetic" filesystems as sshfs this wouldn't be catastrophic, but even then, creating/destroying/re-creating files would occupy a large part of the daemon's resources, and inodes would be wildly changing. In case of a "more synthetic" filesystem this might deeply disturb the filesystem's functionality. -

      -

      - So we don't let unused vnodes to be inactivated. And active vnodes prevent normal unmount. -

      -

      - The minor problem with this is the aesthetical one, The bigger one is that the above described "innocent" unmount blockage becomes undistinguishable from the real ones, when there is a serious reason for the kernel to not to let you unmount the fs. Eg., it might happen that there are open files on the filesystem. You forcibly umount it, but the reference to the open file is kept at the process using it. When that process tries to do something with the open file, that will most likely result in a panic. And the forced unmount itself can result in a panic if there are dirty buffers... which shouldn't exist. -

      -
    • -
    • -

      - Dirty buffers are considered to be non-existent yet they can strike in. -

      -

      - All writes are forced to be synchronous. That is, when data is written to a file of a Fuse filesystem, it is filtered through the buffer cache system, but unlike traditional filesystems, it's immediately gets written to the "storage". Again, the daemon's state has to be kept in sync with the kernel's, and the writing can't really be considered valid until the daemon accepts it -- there is no FUSE_IS_THIS_WRITE_LEGAL? rpc, only FUSE_WRITE. Moreover, writing data to "storage" is fast -- it's just pushing some buffers to userspace. What might be not so cheap is to push that data to its own background storage by the daemon, and thus daemons might maintain their own userspace buffer cache systems. That is, with Fuse dirty buffers are a userspace phenomenon, not an in-kernel one. -

      -

      - But if an I/O intensive write takes place, and it's interrupted, the above schema breaks -- there might be buffers written into the kernel which couldn't be passed to the daemon because of the interrupt. These will be marked as dirty, against all intention. And this makes forced unmount dangerous. -

      -
    • -
    • -

      - Solutions. The unmount implementation should be refined so it can throw away zero-usecount vnodes one by one, and that it can devalidate and throw away dirty buffers (with traditional filesystems, throwing away dirty buffers sounds to be a nonsense, as it means data loss, but with Fuse they are just a byproduct of an abortion; this reversed semantics might make it harder to do the refinement, I don't yet know). -

      -
    • - -
    - -

    TODO

    • - Fix umount -

      -
    • -
    • -

      - Backport to 5.x + Backport to 5.x, if it can be done without a major rewrite

    • ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#6 (text+ko) ==== @@ -47,10 +47,6 @@ #define __static static #endif -#ifndef ROOTLESS_SHARES -#define ROOTLESS_SHARES 1 -#endif - MALLOC_DEFINE(M_FUSEMSG, "fuse messaging", "buffer for fuse messaging related things"); @@ -145,6 +141,7 @@ struct fuse_ticket *tick, uint64_t nid, enum fuse_opcode op, size_t blen, struct thread* td, struct ucred *cred); +__static __inline struct fuse_gate *fusedev_get_gate(struct cdev *fdev); __static __inline struct sx *fusedev_get_lock(struct cdev *fdev); __static __inline struct fuse_data *fusedev_get_data(struct cdev *fdev); @@ -479,9 +476,6 @@ data->freeticket_counter = 0; data->daemoncred = crhold(cred); - /* sx_init(&data->shareslock, "lock for fuse shares consistency"); */ - LIST_INIT(&data->fuse_shares_head); - return (data); } @@ -872,16 +866,22 @@ ihead->nodeid); } +__static __inline struct fuse_gate * +fusedev_get_gate(struct cdev *fdev) +{ + return (fdev->si_drv1); +} + __static __inline struct sx * fusedev_get_lock(struct cdev *fdev) { - return ((struct sx *)fdev->si_drv2); + return (&fusedev_get_gate(fdev)->slock); } __static __inline struct fuse_data * fusedev_get_data(struct cdev *fdev) { - return ((struct fuse_data *)fdev->si_drv1); + return (fusedev_get_gate(fdev)->fdata); } /******************** @@ -931,7 +931,7 @@ /**************************** * - * >>> Dummy fuse device op defs + * >>> Fuse device op defs * ****************************/ @@ -953,22 +953,24 @@ static int fusedev_open(struct cdev *dev, int oflags, int devtype, struct thread *td) { - struct fuse_data *data; struct sx *slock; + struct fuse_gate *fgate; if (dev->si_usecount > 1) return (EBUSY); FUSEREF; - data = fdata_alloc(td->td_ucred); - slock = fusedev_get_lock(dev); + fgate = fusedev_get_gate(dev); sx_xlock(slock); - dev->si_drv1 = data; + if (fgate->mp) { + sx_xunlock(slock); + return (EBUSY); + } + fgate->fdata = fdata_alloc(td->td_ucred); sx_xunlock(slock); - DEBUG("Opened device \"fuse\" (that of minor %d) successfully on thread %d.\n", minor(dev), td->td_tid); return(0); @@ -978,12 +980,14 @@ fusedev_close(struct cdev *dev, int fflag, int devtype, struct thread *p) { struct fuse_data *data; + struct fuse_gate *fgate; struct sx *slock; - data = dev->si_drv1; + data = fusedev_get_data(dev); slock = fusedev_get_lock(dev); sx_xlock(slock); - dev->si_drv1 = NULL; + fgate = fusedev_get_gate(dev); + fgate->fdata = NULL; sx_xunlock(slock); fdata_destroy(data); @@ -1006,7 +1010,7 @@ struct fuse_data *data; struct fuse_msg_node *fmsgn; - data = dev->si_drv1; + data = fusedev_get_data(dev); fuprintf("fuse device being read on thread %d\n", uio->uio_td->td_tid); @@ -1122,7 +1126,7 @@ if ((err = fuse_ohead_audit(ohead, uio))) goto drophead; - data = dev->si_drv1; + data = fusedev_get_data(dev); /* Pass stuff over to callback if there is one installed */ @@ -1501,7 +1505,6 @@ static vop_bmap_t fuse_bmap; static vop_print_t fuse_print; -static b_sync_t fuse_bufsync; static b_strategy_t fuse_bufstrategy; static struct vfsops fuse_vfsops = { @@ -1556,11 +1559,11 @@ .bop_name = "Fuse", .bop_strategy = fuse_bufstrategy, .bop_write = bufwrite, - .bop_sync = fuse_bufsync, + .bop_sync = bufsync, }; MALLOC_DEFINE(M_FUSEFS, "fuse filesystem", "buffer for fuse vfs layer"); -MALLOC_DEFINE(M_FUSEFH, "fuse filesystem", "buffer for fuse filehandles"); +MALLOC_DEFINE(M_FUSEFH, "fuse filehandles", "buffer for fuse filehandles"); static fuse_buffeater_t fuse_std_buffeater; static fuse_buffeater_t fuse_dir_buffeater; @@ -1601,22 +1604,18 @@ { int err = 0; int len, sharecount = 0; - int sharing = 0; char *fspec; struct vnode *devvp; struct vfsoptlist *opts; struct nameidata nd, *ndp = &nd; struct cdev *fdev; struct sx *slock; + struct fuse_gate *fgate; struct fuse_data *data; struct fuse_mnt_data *fmnt; struct vnode *rvp; struct fuse_vnode_data *fvdat; -#define SHAREDMOUNT 0x1 -#define PRIVMOUNT 0x2 -#define IS_SHARED(sh) (!((sh) & PRIVMOUNT)) - if (mp->mnt_flag & MNT_UPDATE) { uprintf("fuse: updating mounts is not supported\n"); return (EOPNOTSUPP); @@ -1647,11 +1646,6 @@ if (!fspec || fspec[len - 1] != '\0') return (EINVAL); -/* - vfs_flagopt(opts, "shared", sharing, SHAREDMOUNT); - */ - vfs_flagopt(opts, "private", &sharing, PRIVMOUNT); - FUSEREF; /* @@ -1672,6 +1666,7 @@ } fdev = devvp->v_rdev; + /* dev_ref(fdev); */ /* * according to coda code, no extra lock is needed -- * although in sys/vnode.h this field is marked "v" @@ -1687,12 +1682,17 @@ MALLOC(fmnt, struct fuse_mnt_data *, sizeof(*fmnt), M_FUSEFS, M_WAITOK| M_ZERO); + fmnt->fdev = fdev; + fmnt->mp = mp; + vfs_flagopt(opts, "private", &fmnt->mntopts, FUSEFS_PRIVATE); + vfs_flagopt(opts, "neglect_shares", &fmnt->mntopts, + FUSEFS_NEGLECT_SHARES); vfs_flagopt(opts, "allow_other", &fmnt->mntopts, FUSEFS_DAEMON_CAN_SPY); if (fmnt->mntopts & FUSEFS_DAEMON_CAN_SPY && suser(td)) { uprintf("only root can use \"allow_other\"\n"); - free(fmnt, M_FUSEFS); + FREE(fmnt, M_FUSEFS); err = EPERM; goto out; } @@ -1716,26 +1716,37 @@ uprintf("fuse daemon found, but has been backlisted\n"); } + fgate = fusedev_get_gate(fdev); if (!err) { - if (data->mp) { - if (! (data->dataflag & FDAT_SHARED && - IS_SHARED(sharing))) - /* - * device is owned and either us or owner - * insits on a private mount - */ - goto deny; + if (fgate->mp) { + fmnt->master = fgate->mp->mnt_data; + fmnt->mntopts |= FUSEFS_SECONDARY; + if (fmnt->master->mntopts & FUSEFS_BUSY) + /* + * Umount attempt is going on + */ + err = EBUSY; + if (fmnt->master->mntopts & FUSEFS_PRIVATE) + /* + * device is owned and owner doesn't + * wanna share it with us + */ + err = EPERM; + if (fmnt->mntopts & ~FUSEFS_SECONDARY) + /* + * Secondary mounts not allowed to have + * options (basicly, that would be + * useless though harmless, just let's + * be explicit about it) + */ + err = EINVAL; } else { if (suser(td) && td->td_ucred->cr_uid != data->daemoncred->cr_uid) /* we are not allowed to do the first mount */ - goto deny; + err = EPERM; } - goto allow; -deny: - err = EPERM; } -allow: if (err) { sx_xunlock(slock); @@ -1743,19 +1754,15 @@ goto out; } - if (data->mp) { - struct fuse_share *fsh; - MALLOC(fsh, struct fuse_share *, sizeof(*fsh), - M_FUSEFS, M_WAITOK); - fsh->uid = td->td_ucred->cr_uid; - fsh->master = data->mp; - LIST_INSERT_HEAD(&data->fuse_shares_head, fsh, - fuse_shares_link); - fmnt->share = fsh; - LIST_FOREACH(fsh, &data->fuse_shares_head, - fuse_shares_link) - sharecount++; + if (fmnt->mntopts & FUSEFS_SECONDARY) { + struct fuse_mnt_data *x_fmnt; + + LIST_INSERT_HEAD(&fmnt->master->slaves_head, fmnt, slaves_link); + LIST_FOREACH(x_fmnt, &fmnt->master->slaves_head, slaves_link) + sharecount++; } else { + LIST_INIT(&fmnt->slaves_head); + /* Now handshaking with daemon */ if ((err = fuse_send_init(data, td))) { @@ -1770,26 +1777,21 @@ FREE(fmnt, M_FUSEFS); goto out; } - if (IS_SHARED(sharing)) - data->dataflag |= FDAT_SHARED; } /* We need this here as this slot is used by getnewvnode() */ mp->mnt_stat.f_iosize = PAGE_SIZE; mp->mnt_data = fmnt; -#if ROOTLESS_SHARES - if (fmnt->share) + + /* code stolen from portalfs */ + + if (fmnt->mntopts & FUSEFS_SECONDARY) goto rootdone; -#endif - /* code stolen from portalfs */ + MALLOC(fvdat, struct fuse_vnode_data *, sizeof(*fvdat), M_FUSEFS, + M_WAITOK | M_ZERO); - if (data->mp) - fvdat = ((struct fuse_mnt_data *)data->mp->mnt_data)->rvp->v_data; - else - MALLOC(fvdat, struct fuse_vnode_data *, sizeof(*fvdat), - M_FUSEFS, M_WAITOK | M_ZERO); #if __FreeBSD_version >= 600000 err = getnewvnode("fuse", mp, &fuse_vnops, &rvp); #else @@ -1797,11 +1799,10 @@ #endif if (err) { - if (data->mp) { - fdata_kick_set(data); - FREE(fmnt, M_FUSEFS); - FREE(fvdat, M_FUSEFS); - } + fdata_kick_set(data); + FREE(fmnt, M_FUSEFS); + FREE(fvdat, M_FUSEFS); + sx_xunlock(slock); goto out; } @@ -1816,12 +1817,10 @@ fuse_vnode_init(rvp, fvdat, VDIR); rvp->v_vflag |= VV_ROOT; -#if ROOTLESS_SHARES rootdone: -#endif - if (! data->mp) { - data->mp = mp; + if (! (fmnt->mntopts & FUSEFS_SECONDARY)) { + fgate->mp = mp; #if ! REALTIME_TRACK_UNPRIVPROCDBG fmnt->mntopts &= ~FUSEFS_UNPRIVPROCDBG; fmnt->mntopts |= get_unprivileged_proc_debug(td) ? FUSEFS_UNPRIVPROCDBG : 0; @@ -1834,7 +1833,7 @@ mp->mnt_flag |= MNT_LOCAL; copystr(fspec, mp->mnt_stat.f_mntfromname, MNAMELEN - 1, &len); - if (fmnt->share && len >= 1) { + if (fmnt->mntopts & FUSEFS_SECONDARY && len >= 1) { /* * I've considered using s1, s2,... for shares, instead * #1, #2,... as s* is more conventional... @@ -1887,45 +1886,66 @@ flags |= FORCECLOSE; fmnt = mp->mnt_data; + slock = fusedev_get_lock(fmnt->fdev); + + if (! (fmnt->mntopts & FUSEFS_SECONDARY)) { +#if _DEBUG + struct vnode *vp, *nvp; +#endif - slock = fusedev_get_lock(fmnt->fdev); - sx_xlock(slock); - if (! (data = fusedev_get_data(fmnt->fdev))) - goto out; - if (fmnt->share) - LIST_REMOVE(fmnt->share, fuse_shares_link); - else { - if (! LIST_EMPTY(&data->fuse_shares_head)) { - sx_xunlock(slock); + sx_slock(slock); + if (! (mntflags & MNT_FORCE || + fmnt->mntopts & FUSEFS_NEGLECT_SHARES || + LIST_EMPTY(&fmnt->slaves_head))) { + sx_sunlock(slock); return (EBUSY); } - fdata_kick_set(data); + /* setting flag protecting lock upgrade */ + fmnt->mntopts |= FUSEFS_BUSY; + sx_sunlock(slock); +#if _DEBUG + MNT_ILOCK(mp); + MNT_VNODE_FOREACH(vp, mp, nvp) { + DEBUG2G("\n"); + vn_printf(vp, "..."); + } + MNT_IUNLOCK(mp); +#endif + + /* Flush files -> vflush */ + /* There is 1 extra root vnode reference (mp->mnt_data). */ + if ((err = vflush(mp, 1, flags, td))) { + DEBUG2G("err %d\n", err); + fmnt->mntopts &= ~FUSEFS_BUSY; + return (err); + } } -out: - sx_xunlock(slock); + sx_xlock(slock); + if (fmnt->mntopts & FUSEFS_SECONDARY) { + if (fmnt->master) + LIST_REMOVE(fmnt, slaves_link); + } else { + struct fuse_mnt_data *x_fmnt; + + fmnt->mntopts &= ~FUSEFS_BUSY; + LIST_FOREACH(x_fmnt, &fmnt->slaves_head, slaves_link) + x_fmnt->master = NULL; + if ((data = fusedev_get_data(fmnt->fdev))) + fdata_kick_set(data); - if ( -#if ROOTLESS_SHARES - ! fmnt->share -#else - 1 -#endif - ) { - /* Flush files -> vflush */ - /* There is 1 extra root vnode reference (mp->mnt_data). */ - if ((err = vflush(mp, 1, flags, td))) - return (err); + fusedev_get_gate(fmnt->fdev)->mp = NULL; } + sx_xunlock(slock); mp->mnt_data = NULL; - FREE(fmnt->share, M_FUSEFS); FREE(fmnt, M_FUSEFS); /* Other guys do this, I don't know what it is good for... */ mp->mnt_flag &= ~MNT_LOCAL; + /* dev_rel(fmnt->fdev); */ fuse_useco--; return (0); } @@ -1947,16 +1967,29 @@ DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); -#if ROOTLESS_SHARES - if (fmnt->share) - return fuse_root(fmnt->share->master, flags, vpp, td); -#endif + if (fmnt->mntopts & FUSEFS_SECONDARY) { + struct sx *slock; + int err; + + slock = fusedev_get_lock(fmnt->fdev); + sx_slock(slock); + if (fmnt->master) + err = fuse_root(fmnt->master->mp, flags, vpp, td); + else + err = ENXIO; + sx_sunlock(slock); + return (err); + } vp = fmnt->rvp; vref(vp); VOP_UNLOCK(vp, 0, td); vn_lock(vp, flags | LK_RETRY, td); *vpp = vp; +#if _DEBUG2G + DEBUG2G("root node:\n"); + vn_printf(vp, " * "); +#endif return (0); } @@ -1971,10 +2004,18 @@ DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); fmnt = mp->mnt_data; -#if ROOTLESS_SHARES - if (fmnt->share) - fmnt = (struct fuse_mnt_data *)fmnt->share->master->mnt_data; -#endif + if (fmnt->mntopts & FUSEFS_SECONDARY) { + struct sx *slock; + + slock = fusedev_get_lock(fmnt->fdev); + sx_slock(slock); + if (fmnt->master) + err = fuse_statfs(fmnt->master->mp, sbp, td); + else + err = ENXIO; + sx_sunlock(slock); + return (err); + } if ((err = fdisp_simple_putget(&fdi, FUSE_STATFS, fmnt->rvp, td, NULL))) return (err); @@ -2013,16 +2054,13 @@ DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); DEBUG("been asked for vno #%llu\n", nodeid); + fmnt = mp->mnt_data; if (nodeid == FUSE_ROOT_INODE) { - err = fuse_root(mp, myflags, vpp, td); - return (err); + vpp = &fmnt->rvp; + vn_lock(*vpp, myflags | LK_RETRY, td); + return (0); } - fmnt = mp->mnt_data; -#if ! ROOTLESS_SHARES - if (fmnt->share) - mp = fmnt->share->master; -#endif DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); /* XXX nodeid: cast from 64 bytes to 32 */ @@ -2048,7 +2086,8 @@ err = getnewvnode("fuse", mp, fuse_vnodeop_p, vpp); #endif #if _DEBUG - vn_printf(*vpp, DEBLABEL "fuse_vget_i: allocated new vnode\n"); + DEBUG2G("allocated new vnode:\n"); + vn_printf(*vpp, " * "); #endif if (err) { @@ -2077,7 +2116,8 @@ fuse_vnode_init(*vpp, fvdat, vtyp); #if _DEBUG - vn_printf(*vpp, DEBLABEL "fuse_vget_i: node #%d\n", VTOI(*vpp)); + DEBUG2G("\n"); + vn_printf(*vpp, " * "); #endif return (err); } @@ -2101,17 +2141,9 @@ vp->v_data = fvdat; SETPARENT(vp, (VTOI(vp) == FUSE_ROOT_INODE) ? vp : NULL); vp->v_type = vtyp; - if ( -#if ROOTLESS_SHARES - 1 -#else - ! ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->share -#endif - ) { - sx_init(&fvdat->fh_lock, "lock for fuse filehandles"); - LIST_INIT(&fvdat->fh_head); - } + sx_init(&fvdat->fh_lock, "lock for fuse filehandles"); + LIST_INIT(&fvdat->fh_head); vp->v_bufobj.bo_ops = &fuse_bufops; vp->v_bufobj.bo_private = vp; @@ -2156,11 +2188,7 @@ * Taking down fuse_vnode_data structures is just hooked in here... * no separate destructor. */ - if ( -#if ! ROOTLESS_SHARES - ! ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->share && -#endif - fvdat) { + if (fvdat) { sx_destroy(&fvdat->fh_lock); FREE(fvdat, M_FUSEFS); } @@ -2336,15 +2364,6 @@ struct fuse_dispatcher fdi; int err = 0; -#if ! ROOTLESS_SHARES - if (VTOI(vp) == FUSE_ROOT_INODE) { - if (fmnt->share) { - fmnt = fmnt->share->master->mnt_data; - vp = fmnt->rvp; - } - } -#endif - if ((err = fdisp_simple_putget(&fdi, FUSE_GETATTR, vp, td, cred))) return (err); @@ -2373,14 +2392,14 @@ #if REALTIME_TRACK_UNPRIVPROCDBG get_unprivileged_proc_debug(td), #else - ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->mntopts & FUSEFS_UNPRIVPROCDBG, + fmnt->mntopts & FUSEFS_UNPRIVPROCDBG, #endif fusedev_get_data(fdi.fdev)->daemoncred, cred))) { - struct fuse_share *fsh; + struct fuse_mnt_data *x_fmnt; - LIST_FOREACH(fsh, &fdi.data->fuse_shares_head, fuse_shares_link) { - if (! (denied = (fsh->uid != cred->cr_uid))) + LIST_FOREACH(x_fmnt, &fmnt->slaves_head, slaves_link) { + if (! (denied = (x_fmnt->mp->mnt_cred->cr_uid != cred->cr_uid))) break; } @@ -2403,7 +2422,8 @@ DEBUG("node #%d, type %d\n", VTOI(vp), vap->va_type); #if _DEBUG - vn_printf(vp, DEBLABEL "fuse_getattr: node #%d\n", VTOI(vp)); + DEBUG2G("\n"); + vn_printf(vp, " * "); #endif return (0); } @@ -2498,6 +2518,11 @@ /* general stuff, based on vfs_cache_lookup */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Sep 17 23:10:10 2005 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 6C1A416A421; Sat, 17 Sep 2005 23:10:10 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4461916A41F for ; Sat, 17 Sep 2005 23:10:10 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0D4A543D48 for ; Sat, 17 Sep 2005 23:10:10 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8HNA9ad069850 for ; Sat, 17 Sep 2005 23:10:09 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HNA99q069847 for perforce@freebsd.org; Sat, 17 Sep 2005 23:10:09 GMT (envelope-from csjp@freebsd.org) Date: Sat, 17 Sep 2005 23:10:09 GMT Message-Id: <200509172310.j8HNA99q069847@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 83799 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, 17 Sep 2005 23:10:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=83799 Change 83799 by csjp@csjp_xor on 2005/09/17 23:09:37 Keep track of any error which occurs. Error should not be fatal if a single operation fails but we should keep track of the fact that an error occured on one of the files so we can propagate it back to the shell. This seems to be what most userspace utilities which handle file lists do. Affected files ... .. //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.c#13 edit Differences ... ==== //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.c#13 (text+ko) ==== @@ -48,6 +48,8 @@ static int print_hash_from_stdin(void); static int depth; +static int eval; + static int dflag; static int rflag; static char *mflag; @@ -186,15 +188,19 @@ warn("extattr_delete_file failed"); return; } - if (syscall(SYS_mac_syscall, "mac_chkexec", 0, pathname) < 0) + if (syscall(SYS_mac_syscall, "mac_chkexec", 0, pathname) < 0) { + eval++; warn("%s", pathname); + } if (!mflag) return; slen = strlen(mflag); error = extattr_set_file(pathname, MAC_CHKEXEC_ATTRN, MAC_CHKEXEC_DEP, mflag, slen); - if (error < 0) + if (error < 0) { + eval++; warn("extattr_set_file failed"); + } } static void @@ -299,5 +305,5 @@ } else handler(argv[i]); } - return (0); + return (eval); } From owner-p4-projects@FreeBSD.ORG Sat Sep 17 23:17:20 2005 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 2746216A421; Sat, 17 Sep 2005 23:17:20 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0032F16A41F for ; Sat, 17 Sep 2005 23:17:19 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 57C5A43D48 for ; Sat, 17 Sep 2005 23:17:19 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8HNHJxs071347 for ; Sat, 17 Sep 2005 23:17:19 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HNHJPN071344 for perforce@freebsd.org; Sat, 17 Sep 2005 23:17:19 GMT (envelope-from csjp@freebsd.org) Date: Sat, 17 Sep 2005 23:17:19 GMT Message-Id: <200509172317.j8HNHJPN071344@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 83800 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, 17 Sep 2005 23:17:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=83800 Change 83800 by csjp@csjp_xor on 2005/09/17 23:17:03 Print a warning if a dependency is not accessible for any reason. Affected files ... .. //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.c#14 edit Differences ... ==== //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.c#14 (text+ko) ==== @@ -178,6 +178,7 @@ static void set_hash(const char *pathname) { + struct stat sb; int error; size_t slen; @@ -194,6 +195,8 @@ } if (!mflag) return; + if (stat(mflag, &sb) < 0) + fprintf(stderr, "WARNING: %s: %s\n", mflag, strerror(errno)); slen = strlen(mflag); error = extattr_set_file(pathname, MAC_CHKEXEC_ATTRN, MAC_CHKEXEC_DEP, mflag, slen); From owner-p4-projects@FreeBSD.ORG Sat Sep 17 23:24:31 2005 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 DDDAB16A421; Sat, 17 Sep 2005 23:24:30 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B6F7E16A41F for ; Sat, 17 Sep 2005 23:24:30 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4C38343D6A for ; Sat, 17 Sep 2005 23:24:28 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8HNOSDe072865 for ; Sat, 17 Sep 2005 23:24:28 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HNOSOK072862 for perforce@freebsd.org; Sat, 17 Sep 2005 23:24:28 GMT (envelope-from csjp@freebsd.org) Date: Sat, 17 Sep 2005 23:24:28 GMT Message-Id: <200509172324.j8HNOSOK072862@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 83801 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, 17 Sep 2005 23:24:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=83801 Change 83801 by csjp@csjp_xor on 2005/09/17 23:24:26 Introduce -f flag which, if an object has no checksum associated with it, will trigger the calculation and storage of the checksum by the kernel. Affected files ... .. //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.c#15 edit Differences ... ==== //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.c#15 (text+ko) ==== @@ -51,6 +51,7 @@ static int eval; static int dflag; +static int fflag; static int rflag; static char *mflag; static int Wflag; @@ -216,9 +217,15 @@ u_char digest[64]; int (*checksum)(const char *, u_char *); +again: error = extattr_get_file(pathname, MAC_CHKEXEC_ATTRN, MAC_CHKEXEC, (void *)&sum, sizeof(sum)); - if (error < 0) { + if (error < 0 && errno == ENOATTR && fflag) { + if (syscall(SYS_mac_syscall, "mac_chkexec", 0, pathname) < 0) + warn("%s", pathname); + else + goto again; + } else if (error < 0) { warn("%s", pathname); return; } @@ -279,11 +286,14 @@ handler = print_hash; else errx(1, "what program am I supposed to be?"); - while ((ch = getopt(argc, argv, "dhm:rW")) != -1) + while ((ch = getopt(argc, argv, "dfhm:rW")) != -1) switch(ch) { case 'd': dflag++; break; + case 'f': + fflag++; + break; case 'm': mflag = optarg; break; From owner-p4-projects@FreeBSD.ORG Sat Sep 17 23:33:41 2005 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 5CF7416A438; Sat, 17 Sep 2005 23:33:40 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 177CF16A420 for ; Sat, 17 Sep 2005 23:33:40 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C36E443D46 for ; Sat, 17 Sep 2005 23:33:39 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8HNXdtM073634 for ; Sat, 17 Sep 2005 23:33:39 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HNXd1N073631 for perforce@freebsd.org; Sat, 17 Sep 2005 23:33:39 GMT (envelope-from csjp@freebsd.org) Date: Sat, 17 Sep 2005 23:33:39 GMT Message-Id: <200509172333.j8HNXd1N073631@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 83802 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, 17 Sep 2005 23:33:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=83802 Change 83802 by csjp@csjp_xor on 2005/09/17 23:33:35 Introduce a series of regression tests for mac_chkexec Affected files ... .. //depot/projects/trustedbsd/mac/tools/regression/mac/mac_chkexec/mac_chkexec.t#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sat Sep 17 23:35:46 2005 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 5DA7416A420; Sat, 17 Sep 2005 23:35:46 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3233616A421 for ; Sat, 17 Sep 2005 23:35:46 +0000 (GMT) (envelope-from csjp@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id C2E0743D49 for ; Sat, 17 Sep 2005 23:35:45 +0000 (GMT) (envelope-from csjp@FreeBSD.org) Received: from freefall.freebsd.org (csjp@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j8HNZjTl047657 for ; Sat, 17 Sep 2005 23:35:45 GMT (envelope-from csjp@freefall.freebsd.org) Received: (from csjp@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j8HNZj9p047656 for perforce@freebsd.org; Sat, 17 Sep 2005 23:35:45 GMT (envelope-from csjp) Date: Sat, 17 Sep 2005 23:35:45 +0000 From: "Christian S.J. Peron" To: Perforce Change Reviews Message-ID: <20050917233545.GA47494@freefall.freebsd.org> References: <200509172333.j8HNXd1N073631@repoman.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200509172333.j8HNXd1N073631@repoman.freebsd.org> User-Agent: Mutt/1.4.2.1i Cc: Subject: Re: PERFORCE change 83802 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, 17 Sep 2005 23:35:47 -0000 On Sat, Sep 17, 2005 at 11:33:39PM +0000, Christian S.J. Peron wrote: > http://perforce.freebsd.org/chv.cgi?CH=83802 > > Change 83802 by csjp@csjp_xor on 2005/09/17 23:33:35 > > Introduce a series of regression tests for mac_chkexec > > Affected files ... > > .. //depot/projects/trustedbsd/mac/tools/regression/mac/mac_chkexec/mac_chkexec.t#1 add > > Differences ... Sorry, should have added: cd tools/regression/mac/mac_chkexec prove To actually run the tests :) -- Christian S.J. Peron csjp@FreeBSD.ORG FreeBSD Committer FreeBSD Security Team From owner-p4-projects@FreeBSD.ORG Sat Sep 17 23:43:53 2005 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 D7F7C16A421; Sat, 17 Sep 2005 23:43:52 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B431C16A41F for ; Sat, 17 Sep 2005 23:43:52 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 819CD43D45 for ; Sat, 17 Sep 2005 23:43:52 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8HNhqSh074113 for ; Sat, 17 Sep 2005 23:43:52 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HNhqN3074110 for perforce@freebsd.org; Sat, 17 Sep 2005 23:43:52 GMT (envelope-from csjp@freebsd.org) Date: Sat, 17 Sep 2005 23:43:52 GMT Message-Id: <200509172343.j8HNhqN3074110@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 83803 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, 17 Sep 2005 23:43:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=83803 Change 83803 by csjp@csjp_xor on 2005/09/17 23:43:09 Error if the mac_chkexec kernel module is not present if the regression tests are run. This test checks for the presence of sysctl variables rather than the presense of the module in the event that mac_chkexec was compiled straight into the kernel. Affected files ... .. //depot/projects/trustedbsd/mac/tools/regression/mac/mac_chkexec/mac_chkexec.t#2 edit Differences ... ==== //depot/projects/trustedbsd/mac/tools/regression/mac/mac_chkexec/mac_chkexec.t#2 (text+ko) ==== @@ -1,6 +1,11 @@ #!/bin/sh # +sysctl security.mac.chkexec >/dev/null +if [ $? -ne 0 ]; then + echo ERROR: mac_chkexec must be loaded for these tests >/dev/stderr + exit 1 +fi sysctl security.mac.chkexec.ignore_untagged=0 sysctl security.mac.chkexec.enforce=0 rm -fr /tmp/prog.sh From owner-p4-projects@FreeBSD.ORG Sat Sep 17 23:50:01 2005 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 DB0C716A421; Sat, 17 Sep 2005 23:50:00 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8FA1C16A41F for ; Sat, 17 Sep 2005 23:50:00 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 583A343D49 for ; Sat, 17 Sep 2005 23:50:00 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8HNo0Xc074330 for ; Sat, 17 Sep 2005 23:50:00 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HNo0KB074327 for perforce@freebsd.org; Sat, 17 Sep 2005 23:50:00 GMT (envelope-from csjp@freebsd.org) Date: Sat, 17 Sep 2005 23:50:00 GMT Message-Id: <200509172350.j8HNo0KB074327@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 83804 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, 17 Sep 2005 23:50:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=83804 Change 83804 by csjp@csjp_xor on 2005/09/17 23:49:10 Add documentation for -f Affected files ... .. //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.8#3 edit Differences ... ==== //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.8#3 (text+ko) ==== @@ -32,7 +32,7 @@ .Nd "retrieve object hash information" .Sh SYNOPSIS .Nm -.Op Fl dW +.Op Fl dfW .Ar file .Sh DESCRIPTION The @@ -48,6 +48,10 @@ .Bl -tag -width indent .It Fl d List all hash dependencies +.It Fl f +If a checksum has not been registered for an object, trigger the +calculation and storage of the checksum in the kernel so the +checksum can be processed. .It Fl W Produce a warning if the checksum registered with the object conflicts with the object's current checksum. This option may From owner-p4-projects@FreeBSD.ORG Sat Sep 17 23:53:07 2005 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 4E3F716A421; Sat, 17 Sep 2005 23:53:06 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2535016A41F for ; Sat, 17 Sep 2005 23:53:06 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C593643D46 for ; Sat, 17 Sep 2005 23:53:04 +0000 (GMT) (envelope-from csjp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8HNr41W074518 for ; Sat, 17 Sep 2005 23:53:04 GMT (envelope-from csjp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8HNr4QU074515 for perforce@freebsd.org; Sat, 17 Sep 2005 23:53:04 GMT (envelope-from csjp@freebsd.org) Date: Sat, 17 Sep 2005 23:53:04 GMT Message-Id: <200509172353.j8HNr4QU074515@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 83805 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, 17 Sep 2005 23:53:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=83805 Change 83805 by csjp@csjp_xor on 2005/09/17 23:52:16 ipfw doesn't live in /bin it lives in /sbin Affected files ... .. //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.8#4 edit Differences ... ==== //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.8#4 (text+ko) ==== @@ -67,7 +67,7 @@ To see dependencies for .Xr ipfw 8 , the following command would be issued : -.Dl Nm Fl d Pa /bin/ipfw +.Dl Nm Fl d Pa /sbin/ipfw .Sh SEE ALSO .Xr mac 4 , .Xr mac_chkexec 4 ,