Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Aug 2008 17:28:32 GMT
From:      Julian Elischer <julian@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 147744 for review
Message-ID:  <200808181728.m7IHSWi4097667@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=147744

Change 147744 by julian@julian_trafmon1 on 2008/08/18 17:27:52

	IF-vimage-commit2
	loopback that the first commit was made to SVN.
	also catch the Xen stuff and a few fixes

Affected files ...

.. //depot/projects/vimage-commit3/src/sys/amd64/amd64/dump_machdep.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/amd64/amd64/exception.S#2 integrate
.. //depot/projects/vimage-commit3/src/sys/amd64/amd64/minidump_machdep.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/arm/arm/dump_machdep.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/cam/scsi/scsi_all.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/compat/linprocfs/linprocfs.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/compat/linux/linux_ioctl.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/compat/linux/linux_misc.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/compat/linux/linux_socket.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/compat/svr4/svr4_sockio.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/compat/svr4/svr4_stat.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/conf/files#6 integrate
.. //depot/projects/vimage-commit3/src/sys/conf/files.i386#4 integrate
.. //depot/projects/vimage-commit3/src/sys/conf/options#5 integrate
.. //depot/projects/vimage-commit3/src/sys/conf/options.i386#2 integrate
.. //depot/projects/vimage-commit3/src/sys/contrib/altq/altq/altq_subr.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/contrib/ipfilter/netinet/fil.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/contrib/pf/net/pf.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/contrib/pf/net/pf_if.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/contrib/pf/net/pf_ioctl.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/contrib/pf/net/pf_subr.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/contrib/rdma/rdma_cma.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/ddb/db_textdump.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/firewire/firewire.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/pci/pci_pci.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/pci/pcib_private.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/syscons/daemon/daemon_saver.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/usb/ehci.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/usb/ehcireg.h#3 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/usb/ehcivar.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/usb/ufoma.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/usb/usb.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/dev/xen/blkfront/blkfront.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/fs/cd9660/cd9660_rrip.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/geom/vinum/geom_vinum_drive.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/conf/DEFAULTS#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/conf/XEN#1 branch
.. //depot/projects/vimage-commit3/src/sys/i386/i386/busdma_machdep.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/dump_machdep.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/genassym.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/machdep.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/minidump_machdep.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/support.s#3 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/swtch.s#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/sys_machdep.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/trap.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/i386/vm_machdep.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/ibcs2/ibcs2_socksys.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/asmacros.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/cpufunc.h#3 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/pcpu.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/pmap.h#3 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/segments.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/trap.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/vmparam.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/xen/xenfunc.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/include/xen/xenvar.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/isa/npx.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/pci/pci_cfgreg.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/pci/pci_pir.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/xen/exception.s#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/xen/pmap.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/i386/xen/xen_machdep.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/ia64/ia64/dump_machdep.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/kern/init_main.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/kern/kern_jail.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/kern/kern_mib.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/kern/kern_poll.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/kern/kern_uuid.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/kern/kern_xxx.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/kern/vfs_cache.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/net/bridgestp.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_bridge.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_ef.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_ethersubr.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_faith.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_gif.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_loop.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_mib.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_spppsubr.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_stf.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/net/if_vlan.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/net/raw_cb.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/net/raw_usrreq.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/net/route.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/net/rtsock.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netgraph/atm/ng_atm.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/netgraph/ng_base.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/netgraph/ng_bridge.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netgraph/ng_eiface.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netgraph/ng_ether.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netgraph/ng_gif.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netgraph/ng_iface.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netgraph/ng_source.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/if_ether.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/igmp.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/in.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/in_gif.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/in_mcast.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/in_pcb.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/in_rmx.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/in_var.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip6.h#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_carp.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_divert.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_fastfwd.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_fw2.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_fw_nat.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_fw_pfil.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_icmp.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_input.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_ipsec.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_mroute.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_options.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_output.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/ip_var.h#3 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/raw_ip.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/sctp_os_bsd.h#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/sctp_pcb.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_hostcache.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_input.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_offload.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_output.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_reass.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_sack.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_subr.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_syncache.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_timer.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_timewait.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/tcp_usrreq.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/udp_usrreq.c#8 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet/udp_var.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/dest6.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/frag6.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/icmp6.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/in6.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/in6_gif.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/in6_ifattach.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/in6_pcb.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/in6_proto.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/in6_rmx.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/in6_src.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/ip6_forward.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/ip6_input.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/ip6_ipsec.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/ip6_mroute.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/ip6_output.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/ip6_var.h#3 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/mld6.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/nd6.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/nd6.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/nd6_nbr.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/nd6_rtr.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/raw_ip6.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/route6.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/scope6.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netinet6/udp6_usrreq.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/ipsec.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/ipsec.h#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/ipsec_input.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/ipsec_mbuf.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/ipsec_output.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/key.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/key_debug.h#2 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/keysock.c#6 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/xform_ah.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/xform_esp.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/xform_ipcomp.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/netipsec/xform_ipip.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/nfsclient/bootp_subr.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/nfsclient/nfs_diskless.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/nfsclient/nfs_vfsops.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/nfsclient/nfs_vnops.c#5 integrate
.. //depot/projects/vimage-commit3/src/sys/rpc/authunix_prot.c#7 integrate
.. //depot/projects/vimage-commit3/src/sys/rpc/rpcclnt.c#3 integrate
.. //depot/projects/vimage-commit3/src/sys/sparc64/sparc64/dump_machdep.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/sun4v/sun4v/dump_machdep.c#4 integrate
.. //depot/projects/vimage-commit3/src/sys/sys/param.h#6 integrate
.. //depot/projects/vimage-commit3/src/sys/sys/vimage.h#6 integrate
.. //depot/projects/vimage-commit3/src/sys/vm/vm_page.c#2 integrate
.. //depot/projects/vimage-commit3/src/sys/xen/features.c#1 branch
.. //depot/projects/vimage-commit3/src/sys/xen/gnttab.c#2 integrate

Differences ...

==== //depot/projects/vimage-commit3/src/sys/amd64/amd64/dump_machdep.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/dump_machdep.c,v 1.14 2008/02/15 06:26:25 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/dump_machdep.c,v 1.15 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/vimage-commit3/src/sys/amd64/amd64/exception.S#2 (text+ko) ====

@@ -31,7 +31,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.132 2008/05/24 06:32:26 jb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.133 2008/08/18 08:47:27 kib Exp $
  */
 
 #include "opt_atpic.h"
@@ -636,13 +636,10 @@
 	.globl	doreti_iret_fault
 doreti_iret_fault:
 	subq	$TF_RIP,%rsp		/* space including tf_err, tf_trapno */
-	testb	$SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */
-	jz	1f			/* already running with kernel GS.base */
-	swapgs
-1:	testl	$PSL_I,TF_RFLAGS(%rsp)
-	jz	2f
+	testl	$PSL_I,TF_RFLAGS(%rsp)
+	jz	1f
 	sti
-2:	movq	%rdi,TF_RDI(%rsp)
+1:	movq	%rdi,TF_RDI(%rsp)
 	movq	%rsi,TF_RSI(%rsp)
 	movq	%rdx,TF_RDX(%rsp)
 	movq	%rcx,TF_RCX(%rsp)

==== //depot/projects/vimage-commit3/src/sys/amd64/amd64/minidump_machdep.c#6 (text) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.6 2008/07/08 04:00:22 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.7 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/vimage-commit3/src/sys/arm/arm/dump_machdep.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/dump_machdep.c,v 1.3 2008/01/28 19:04:06 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/dump_machdep.c,v 1.4 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/vimage-commit3/src/sys/cam/scsi/scsi_all.c#3 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.52 2008/08/07 17:25:05 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.53 2008/08/16 21:26:58 ken Exp $");
 
 #include <sys/param.h>
 
@@ -65,7 +65,7 @@
 #endif /* !_KERNEL */
 
 /*
- * This is the default number of seconds we wait for devices to settle
+ * This is the default number of milliseconds we wait for devices to settle
  * after a SCSI bus reset.
  */
 #ifndef SCSI_DELAY

==== //depot/projects/vimage-commit3/src/sys/compat/linprocfs/linprocfs.c#5 (text+ko) ====

@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.119 2008/03/31 12:01:18 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.120 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/queue.h>

==== //depot/projects/vimage-commit3/src/sys/compat/linux/linux_ioctl.c#6 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.140 2008/07/23 17:47:44 ed Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.141 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/vimage-commit3/src/sys/compat/linux/linux_misc.c#6 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.223 2008/07/23 17:19:02 rdivacky Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.224 2008/08/17 23:27:27 bz Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"

==== //depot/projects/vimage-commit3/src/sys/compat/linux/linux_socket.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.74 2007/08/06 14:25:59 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.75 2008/08/17 23:27:27 bz Exp $");
 
 /* XXX we use functions that might not exist. */
 #include "opt_compat.h"

==== //depot/projects/vimage-commit3/src/sys/compat/svr4/svr4_sockio.c#4 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.18 2006/08/04 21:15:09 brooks Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.19 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>

==== //depot/projects/vimage-commit3/src/sys/compat/svr4/svr4_stat.c#4 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stat.c,v 1.24 2008/07/05 13:10:10 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stat.c,v 1.25 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/vimage-commit3/src/sys/conf/files#6 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1329 2008/08/14 21:26:29 imp Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1330 2008/08/15 20:58:57 kmacy Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1725,6 +1725,7 @@
 libkern/strcat.c		standard
 libkern/strcmp.c		standard
 libkern/strcpy.c		standard
+libkern/strcspn.c		standard
 libkern/strdup.c		standard
 libkern/strlcat.c		standard
 libkern/strlcpy.c		standard
@@ -2339,3 +2340,18 @@
 	compile-with "${NORMAL_C} -I$S/gnu/fs/xfs/FreeBSD -I$S/gnu/fs/xfs/FreeBSD/support -I$S/gnu/fs/xfs"
 gnu/fs/xfs/xfs_behavior.c	optional xfs \
 	compile-with "${NORMAL_C} -I$S/gnu/fs/xfs/FreeBSD -I$S/gnu/fs/xfs/FreeBSD/support -I$S/gnu/fs/xfs"
+
+xen/gnttab.c                   optional xen
+xen/features.c                 optional xen
+xen/evtchn/evtchn.c            optional xen
+xen/evtchn/evtchn_dev.c                optional xen
+xen/xenbus/xenbus_client.c     optional xen
+xen/xenbus/xenbus_comms.c      optional xen
+xen/xenbus/xenbus_dev.c                optional xen
+xen/xenbus/xenbus_probe.c      optional xen
+xen/xenbus/xenbus_probe_backend.c      optional xen
+xen/xenbus/xenbus_xs.c         optional xen
+dev/xen/console/console.c      optional xen
+dev/xen/console/xencons_ring.c optional xen
+dev/xen/blkfront/blkfront.c    optional xen
+dev/xen/netfront/netfront.c    optional xen
==== //depot/projects/vimage-commit3/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.602 2008/08/09 14:52:31 philip Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.604 2008/08/17 23:44:09 kmacy Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -254,8 +254,8 @@
 i386/i386/atomic.c		standard		\
 	compile-with	"${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}"
 i386/i386/autoconf.c		standard
-i386/i386/bios.c		standard
-i386/i386/bioscall.s		standard
+i386/i386/bios.c		optional native
+i386/i386/bioscall.s		optional native
 i386/i386/bpf_jit_machdep.c	optional bpf_jitter
 i386/i386/busdma_machdep.c	standard
 i386/i386/db_disasm.c		optional ddb
@@ -264,7 +264,8 @@
 i386/i386/dump_machdep.c	standard
 i386/i386/elan-mmcr.c		optional cpu_elan | cpu_soekris
 i386/i386/elf_machdep.c		standard
-i386/i386/exception.s		standard
+i386/i386/exception.s		optional native
+i386/xen/exception.s		optional xen
 i386/i386/gdb_machdep.c		optional gdb
 i386/i386/geode.c		optional cpu_geode
 i386/i386/i686_mem.c		optional mem
@@ -275,11 +276,13 @@
 i386/i386/io.c			optional io
 i386/i386/io_apic.c		optional apic
 i386/i386/k6_mem.c		optional mem
-i386/i386/legacy.c		standard
+i386/i386/legacy.c		optional native
 i386/i386/local_apic.c		optional apic
-i386/i386/locore.s		standard	no-obj
+i386/i386/locore.s		optional native	no-obj
+i386/xen/locore.s		optional xen	no-obj
 i386/i386/longrun.c		optional cpu_enable_longrun
 i386/i386/machdep.c		standard
+i386/xen/xen_machdep.c		optional xen
 i386/i386/mem.c			optional mem
 i386/i386/minidump_machdep.c	standard
 i386/i386/mp_clock.c		optional smp
@@ -291,7 +294,8 @@
 i386/i386/msi.c			optional apic pci
 i386/i386/nexus.c		standard
 i386/i386/perfmon.c		optional perfmon
-i386/i386/pmap.c		standard
+i386/i386/pmap.c		optional native
+i386/xen/pmap.c			optional xen
 i386/i386/ptrace_machdep.c	standard
 i386/i386/stack_machdep.c	optional ddb | stack
 i386/i386/support.s		standard
@@ -321,9 +325,10 @@
 i386/ibcs2/ibcs2_xenix.c	optional ibcs2
 i386/ibcs2/ibcs2_xenix_sysent.c	optional ibcs2
 i386/ibcs2/imgact_coff.c	optional ibcs2
-i386/isa/atpic.c		standard
+i386/isa/atpic.c		optional atpic	
 #i386/isa/atpic_vector.s		standard
-i386/isa/clock.c		standard
+i386/isa/clock.c		optional native
+i386/xen/clock.c		optional xen
 i386/isa/elcr.c			standard
 i386/isa/elink.c		optional ep | ie
 i386/isa/isa.c			optional isa
@@ -346,13 +351,13 @@
 i386/linux/linux_sysvec.c	optional compat_linux
 i386/pci/pci_bus.c		optional pci
 i386/pci/pci_cfgreg.c		optional pci
-i386/pci/pci_pir.c		optional pci
+i386/pci/pci_pir.c		optional pci 
 i386/svr4/svr4_locore.s		optional compat_svr4	\
 	dependency	"svr4_assym.h"	\
 	warning "COMPAT_SVR4 is broken and should be avoided"
 i386/svr4/svr4_machdep.c	optional compat_svr4
 #
-isa/atrtc.c			standard
+isa/atrtc.c			optional atpic
 isa/syscons_isa.c		optional sc
 isa/vga_isa.c			optional vga
 kern/imgact_aout.c		optional compat_aout

==== //depot/projects/vimage-commit3/src/sys/conf/options#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.633 2008/07/18 14:44:51 dwmalone Exp $
+# $FreeBSD: src/sys/conf/options,v 1.634 2008/08/17 23:27:27 bz Exp $
 #
 #        On the handling of kernel options
 #

==== //depot/projects/vimage-commit3/src/sys/conf/options.i386#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.i386,v 1.242 2008/06/14 12:51:44 wkoszek Exp $
+# $FreeBSD: src/sys/conf/options.i386,v 1.243 2008/08/15 20:58:57 kmacy Exp $
 # Options specific to the i386 platform kernels
 
 AUTO_EOI_1		opt_auto_eoi.h
@@ -111,3 +111,6 @@
 
 # BPF just-in-time compiler
 BPF_JITTER		opt_bpf.h
+
+NATIVE			opt_global.h
+XEN			opt_global.h

==== //depot/projects/vimage-commit3/src/sys/contrib/altq/altq/altq_subr.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.10 2007/07/12 17:00:51 njl Exp $	*/
+/*	$FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.11 2008/08/17 23:27:27 bz Exp $	*/
 /*	$KAME: altq_subr.c,v 1.21 2003/11/06 06:32:53 kjc Exp $	*/
 
 /*

==== //depot/projects/vimage-commit3/src/sys/contrib/ipfilter/netinet/fil.c#7 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.55 2007/11/26 08:18:19 darrenr Exp $	*/
+/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.56 2008/08/17 23:27:27 bz Exp $	*/
 
 /*
  * Copyright (C) 1993-2003 by Darren Reed.
@@ -158,7 +158,7 @@
 
 #if !defined(lint)
 static const char sccsid[] = "@(#)fil.c	1.36 6/5/96 (C) 1993-2000 Darren Reed";
-static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.55 2007/11/26 08:18:19 darrenr Exp $";
+static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.56 2008/08/17 23:27:27 bz Exp $";
 /* static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.125 2007/10/10 09:27:20 darrenr Exp $"; */
 #endif
 

==== //depot/projects/vimage-commit3/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#4 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c,v 1.10 2008/05/09 23:02:55 julian Exp $	*/
+/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c,v 1.11 2008/08/17 23:27:27 bz Exp $	*/
 
 /*
  * Copyright (C) 1993-2003 by Darren Reed.

==== //depot/projects/vimage-commit3/src/sys/contrib/pf/net/pf.c#4 (text+ko) ====

@@ -41,7 +41,7 @@
 #include "opt_inet6.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.55 2008/08/04 14:42:09 mlaier Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.56 2008/08/17 23:27:27 bz Exp $");
 #endif
 
 #ifdef __FreeBSD__

==== //depot/projects/vimage-commit3/src/sys/contrib/pf/net/pf_if.c#3 (text+ko) ====

@@ -37,7 +37,7 @@
 #include "opt_inet6.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_if.c,v 1.15 2008/03/29 00:24:36 mlaier Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_if.c,v 1.16 2008/08/17 23:27:27 bz Exp $");
 #endif
 
 #include <sys/param.h>

==== //depot/projects/vimage-commit3/src/sys/contrib/pf/net/pf_ioctl.c#4 (text+ko) ====

@@ -40,7 +40,7 @@
 #include "opt_inet6.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.34 2008/07/24 19:05:58 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.35 2008/08/17 23:27:27 bz Exp $");
 #endif
 
 #ifdef __FreeBSD__

==== //depot/projects/vimage-commit3/src/sys/contrib/pf/net/pf_subr.c#3 (text+ko) ====

@@ -32,7 +32,7 @@
 #include "opt_inet6.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_subr.c,v 1.4 2007/07/05 15:28:59 mlaier Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_subr.c,v 1.5 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>

==== //depot/projects/vimage-commit3/src/sys/contrib/rdma/rdma_cma.c#4 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/rdma/rdma_cma.c,v 1.1 2008/05/05 18:35:54 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/rdma/rdma_cma.c,v 1.2 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/condvar.h>

==== //depot/projects/vimage-commit3/src/sys/ddb/db_textdump.c#4 (text+ko) ====

@@ -57,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ddb/db_textdump.c,v 1.3 2008/01/31 16:22:14 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/ddb/db_textdump.c,v 1.4 2008/08/17 23:27:27 bz Exp $");
 
 #include "opt_config.h"
 

==== //depot/projects/vimage-commit3/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#4 (text+ko) ====

@@ -28,7 +28,7 @@
 ***************************************************************************/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.17 2008/07/31 01:52:04 ps Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.18 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -48,6 +48,7 @@
 #include <sys/syslog.h>
 #include <sys/protosw.h>
 #include <sys/priv.h>
+#include <sys/vimage.h>
 
 #include <net/if.h>
 #include <net/route.h>
@@ -293,8 +294,8 @@
  
 		/* Sendbuffer is in units of 32KB.
 		 */
-		if (tcp_do_autosndbuf && snd->sb_flags & SB_AUTOSIZE) 
-			req->param |= htonl(V_TX_SNDBUF(tcp_autosndbuf_max >> 15));
+		if (V_tcp_do_autosndbuf && snd->sb_flags & SB_AUTOSIZE) 
+			req->param |= htonl(V_TX_SNDBUF(V_tcp_autosndbuf_max >> 15));
 		else {
 			req->param |= htonl(V_TX_SNDBUF(snd->sb_hiwat >> 15));
 		}
@@ -1215,7 +1216,7 @@
 	if (space > MAX_RCV_WND)
 		space = MAX_RCV_WND;
 
-	if (tcp_do_rfc1323)
+	if (V_tcp_do_rfc1323)
 		for (; space > 65535 && wscale < 14; space >>= 1, ++wscale) ;
 
 	return (wscale);
@@ -1234,8 +1235,8 @@
 
 	rcv = so_sockbuf_rcv(so);
 	
-	if (tcp_do_autorcvbuf)
-		wnd = tcp_autorcvbuf_max;
+	if (V_tcp_do_autorcvbuf)
+		wnd = V_tcp_autorcvbuf_max;
 	else
 		wnd = rcv->sb_hiwat;
 
@@ -3821,7 +3822,7 @@
 #endif
 
 	toep->tp_state = tp->t_state;
-	tcpstat.tcps_connects++;
+	V_tcpstat.tcps_connects++;
 				
 }
 

==== //depot/projects/vimage-commit3/src/sys/dev/firewire/firewire.c#5 (text+ko) ====

@@ -31,7 +31,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  * 
- * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.102 2008/05/10 13:40:41 simokawa Exp $
+ * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.103 2008/08/17 23:27:27 bz Exp $
  *
  */
 

==== //depot/projects/vimage-commit3/src/sys/dev/pci/pci_pci.c#3 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pci/pci_pci.c,v 1.51 2008/07/23 09:44:36 luoqi Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pci/pci_pci.c,v 1.54 2008/08/17 17:34:07 imp Exp $");
 
 /*
  * PCI:PCI bridge support.
@@ -139,6 +139,8 @@
 {
     struct pcib_softc	*sc;
     uint8_t		iolow;
+    struct sysctl_ctx_list *sctx;
+    struct sysctl_oid	*soid;
 
     sc = device_get_softc(dev);
     sc->dev = dev;
@@ -148,6 +150,7 @@
      */
     sc->command   = pci_read_config(dev, PCIR_COMMAND, 1);
     sc->domain    = pci_get_domain(dev);
+    sc->pribus    = pci_read_config(dev, PCIR_PRIBUS_1, 1);
     sc->secbus    = pci_read_config(dev, PCIR_SECBUS_1, 1);
     sc->subbus    = pci_read_config(dev, PCIR_SUBBUS_1, 1);
     sc->secstat   = pci_read_config(dev, PCIR_SECSTAT_1, 2);
@@ -155,6 +158,20 @@
     sc->seclat    = pci_read_config(dev, PCIR_SECLAT_1, 1);
 
     /*
+     * Setup sysctl reporting nodes
+     */
+    sctx = device_get_sysctl_ctx(dev);
+    soid = device_get_sysctl_tree(dev);
+    SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "domain",
+	CTLFLAG_RD, &sc->domain, 0, "Domain number");
+    SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "pribus",
+	CTLFLAG_RD, &sc->pribus, 0, "Primary bus number");
+    SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "secbus",
+	CTLFLAG_RD, &sc->secbus, 0, "Secondary bus number");
+    SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "subbus",
+	CTLFLAG_RD, &sc->subbus, 0, "Subordinate bus number");
+
+    /*
      * Determine current I/O decode.
      */
     if (sc->command & PCIM_CMD_PORTEN) {
@@ -276,14 +293,16 @@
 
     /*
      * XXX If the secondary bus number is zero, we should assign a bus number
-     *     since the BIOS hasn't, then initialise the bridge.
-     */
-
-    /*
-     * XXX If the subordinate bus number is less than the secondary bus number,
+     *     since the BIOS hasn't, then initialise the bridge.  A simple
+     *     bus_alloc_resource with the a couple of busses seems like the right
+     *     approach, but we don't know what busses the BIOS might have already
+     *     assigned to other bridges on this bus that probe later than we do.
+     *
+     *     If the subordinate bus number is less than the secondary bus number,
      *     we should pick a better value.  One sensible alternative would be to
      *     pick 255; the only tradeoff here is that configuration transactions
-     *     would be more widely routed than absolutely necessary.
+     *     would be more widely routed than absolutely necessary.  We could
+     *     then do a walk of the tree later and fix it.
      */
 }
 
@@ -299,7 +318,7 @@
 	child = device_add_child(dev, "pci", sc->secbus);
 	if (child != NULL)
 	    return(bus_generic_attach(dev));
-    } 
+    }
 
     /* no secondary bus; we should have fixed this */
     return(0);
@@ -447,7 +466,6 @@
 			}
 		} else if (!ok) {
 			ok = 1;	/* subtractive bridge: always ok */
-#if 1
 			if (pcib_is_nonprefetch_open(sc)) {
 				if (start < sc->membase && end > sc->memlimit) {
 					start = sc->membase;
@@ -460,7 +478,6 @@
 					end = sc->pmemlimit;
 				}
 			}
-#endif
 		}
 		if (end < start) {
 			device_printf(dev, "memory: end (%lx) < start (%lx)\n",

==== //depot/projects/vimage-commit3/src/sys/dev/pci/pcib_private.h#2 (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/dev/pci/pcib_private.h,v 1.13 2007/09/30 11:05:15 marius Exp $
+ * $FreeBSD: src/sys/dev/pci/pcib_private.h,v 1.14 2008/08/16 20:18:40 imp Exp $
  */
 
 #ifndef __PCIB_PRIVATE_H__
@@ -48,9 +48,10 @@
 #define	PCIB_SUBTRACTIVE	0x1
 #define	PCIB_DISABLE_MSI	0x2
     uint16_t	command;	/* command register */
-    uint32_t	domain;		/* domain number */
-    uint8_t	secbus;		/* secondary bus number */
-    uint8_t	subbus;		/* subordinate bus number */
+    u_int	domain;		/* domain number */
+    u_int	pribus;		/* primary bus number */
+    u_int	secbus;		/* secondary bus number */
+    u_int	subbus;		/* subordinate bus number */
     pci_addr_t	pmembase;	/* base address of prefetchable memory */
     pci_addr_t	pmemlimit;	/* topmost address of prefetchable memory */
     pci_addr_t	membase;	/* base address of memory window */

==== //depot/projects/vimage-commit3/src/sys/dev/syscons/daemon/daemon_saver.c#4 (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/dev/syscons/daemon/daemon_saver.c,v 1.25 2008/07/05 13:10:10 rwatson Exp $
+ * $FreeBSD: src/sys/dev/syscons/daemon/daemon_saver.c,v 1.26 2008/08/17 23:27:27 bz Exp $
  */
 
 #include <sys/param.h>

==== //depot/projects/vimage-commit3/src/sys/dev/usb/ehci.c#2 (text+ko) ====

@@ -59,7 +59,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/ehci.c,v 1.64 2008/06/10 02:41:36 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/ehci.c,v 1.66 2008/08/18 10:39:59 kris Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -129,7 +129,10 @@
 			u_int length;
 		} bulk;
 		/* Iso pipe */
-		/* XXX */
+		struct {
+			u_int next_frame;
+			u_int cur_xfers;
+		} isoc;
 	} u;
 };
 
@@ -139,6 +142,8 @@
 static int		ehci_intr1(ehci_softc_t *);
 static void		ehci_waitintr(ehci_softc_t *, usbd_xfer_handle);
 static void		ehci_check_intr(ehci_softc_t *, struct ehci_xfer *);
+static void		ehci_check_qh_intr(ehci_softc_t *, struct ehci_xfer *);
+static void		ehci_check_itd_intr(ehci_softc_t *, struct ehci_xfer *);
 static void		ehci_idone(struct ehci_xfer *);
 static void		ehci_timeout(void *);
 static void		ehci_timeout_task(void *);
@@ -205,6 +210,12 @@
 static void		ehci_free_sqtd_chain(ehci_softc_t *, ehci_soft_qh_t *,
 			    ehci_soft_qtd_t *, ehci_soft_qtd_t *);
 
+static ehci_soft_itd_t	*ehci_alloc_itd(ehci_softc_t *);
+static void		ehci_free_itd(ehci_softc_t *, ehci_soft_itd_t *);
+static void 		ehci_rem_free_itd_chain(ehci_softc_t *, 
+			    struct ehci_xfer *);
+static void 		ehci_abort_isoc_xfer(usbd_xfer_handle, usbd_status);
+
 static usbd_status	ehci_device_request(usbd_xfer_handle xfer);
 
 static usbd_status	ehci_device_setintr(ehci_softc_t *, ehci_soft_qh_t *,
@@ -228,6 +239,10 @@
 static void		ehci_dump_sqtd(ehci_soft_qtd_t *);
 static void		ehci_dump_qtd(ehci_qtd_t *);
 static void		ehci_dump_sqh(ehci_soft_qh_t *);
+#ifdef notyet
+static void		ehci_dump_sitd(struct ehci_soft_itd *);
+static void		ehci_dump_itd(struct ehci_soft_itd *);
+#endif
 #ifdef DIAGNOSTIC
 static void		ehci_dump_exfer(struct ehci_xfer *);
 #endif
@@ -414,8 +429,19 @@
 		return (err);
 	DPRINTF(("%s: flsize=%d\n", device_get_nameunit(sc->sc_bus.bdev),sc->sc_flsize));
 	sc->sc_flist = KERNADDR(&sc->sc_fldma, 0);
+
+	for (i = 0; i < sc->sc_flsize; i++) {
+		sc->sc_flist[i] = EHCI_NULL;
+	}
+
 	EOWRITE4(sc, EHCI_PERIODICLISTBASE, DMAADDR(&sc->sc_fldma, 0));
 
+	sc->sc_softitds = malloc(sc->sc_flsize * sizeof(ehci_soft_itd_t *),
+	    M_USB, M_NOWAIT | M_ZERO);
+	if (sc->sc_softitds == NULL)
+		return (ENOMEM);
+	LIST_INIT(&sc->sc_freeitds);
+
 	/* Set up the bus struct. */
 	sc->sc_bus.methods = &ehci_bus_methods;
 	sc->sc_bus.pipe_size = sizeof(struct ehci_pipe);
@@ -714,19 +740,31 @@
 void
 ehci_check_intr(ehci_softc_t *sc, struct ehci_xfer *ex)
 {
+	int attr;
+
+	DPRINTFN(/*15*/2, ("ehci_check_intr: ex=%p\n", ex));
+
+	attr = ex->xfer.pipe->endpoint->edesc->bmAttributes;
+	if (UE_GET_XFERTYPE(attr) == UE_ISOCHRONOUS)
+		ehci_check_itd_intr(sc, ex);
+	else
+		ehci_check_qh_intr(sc, ex);
+}
+
+void
+ehci_check_qh_intr(ehci_softc_t *sc, struct ehci_xfer *ex)
+{
 	ehci_soft_qtd_t *sqtd, *lsqtd;
 	u_int32_t status;
 
-	DPRINTFN(/*15*/2, ("ehci_check_intr: ex=%p\n", ex));
-
 	if (ex->sqtdstart == NULL) {
-		printf("ehci_check_intr: sqtdstart=NULL\n");
+		printf("ehci_check_qh_intr: not valid sqtd\n");
 		return;
 	}
 	lsqtd = ex->sqtdend;
 #ifdef DIAGNOSTIC
 	if (lsqtd == NULL) {
-		printf("ehci_check_intr: lsqtd==0\n");
+		printf("ehci_check_qh_intr: lsqtd==0\n");
 		return;
 	}
 #endif
@@ -761,6 +799,64 @@
 }
 
 void
+ehci_check_itd_intr(ehci_softc_t *sc, struct ehci_xfer *ex)
+{
+	ehci_soft_itd_t *itd;
+	int i;
+
+	if (ex->itdstart == NULL) {
+		printf("ehci_check_itd_intr: not valid itd\n");
+		return;
+	}
+
+	itd = ex->itdend;
+#ifdef DIAGNOSTIC
+	if (itd == NULL) {
+		printf("ehci_check_itd_intr: itdend == 0\n");
+		return;
+	}
+#endif
+
+	/*
+	 * Step 1, check no active transfers in last itd, meaning we're finished
+	 */
+	for (i = 0; i < 8; i++) {
+		if (le32toh(itd->itd.itd_ctl[i]) & EHCI_ITD_ACTIVE)
+			break;
+	}
+
+	if (i == 8) {
+		goto done;	/* All 8 descriptors inactive, it's done */
+	}
+
+	/*
+	 * Step 2, check for errors in status bits, throughout chain...
+	 */
+
+	DPRINTFN(12, ("ehci_check_itd_intr: active ex=%p\n", ex));
+
+	for (itd = ex->itdstart; itd != ex->itdend; itd = itd->xfer_next) {
+		for (i = 0; i < 8; i++) {
+			if (le32toh(itd->itd.itd_ctl[i]) & (EHCI_ITD_BUF_ERR |
+			    EHCI_ITD_BABBLE | EHCI_ITD_ERROR))
+				break;
+		}
+		if (i != 8) { /* Error in one of the itds */
+			goto done;
+		}
+	} /* itd search loop */
+
+	DPRINTFN(12, ("ehci_check_itd_intr: ex %p itd %p still active\n", ex,
+	    ex->itdstart));
+	return;
+done:
+	DPRINTFN(12, ("ehci_check_itd_intr: ex=%p done\n", ex));
+	callout_stop(&ex->xfer.timeout_handle);
+	usb_rem_task(ex->xfer.pipe->device, &ex->abort_task);
+	ehci_idone(ex);
+}
+
+void
 ehci_idone(struct ehci_xfer *ex)
 {
 	usbd_xfer_handle xfer = &ex->xfer;
@@ -826,9 +922,64 @@
 	}
 
 	/* The transfer is done, compute actual length and status. */
+	if (UE_GET_XFERTYPE(xfer->pipe->endpoint->edesc->bmAttributes)

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808181728.m7IHSWi4097667>