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>