PERFORCE change 147744 for review
Julian Elischer
julian at FreeBSD.org
Mon Aug 18 17:28:33 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=147744
Change 147744 by julian at 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) <<<
More information about the p4-projects
mailing list