Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Sep 2006 05:13:06 GMT
From:      Alex Lyashkov <als@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 106279 for review
Message-ID:  <200609180513.k8I5D65Z038119@repoman.freebsd.org>

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

Change 106279 by als@als_head on 2006/09/18 05:12:22

	integrate with HEAD.

Affected files ...

.. //depot/projects/jail2/sys/amd64/amd64/local_apic.c#3 integrate
.. //depot/projects/jail2/sys/amd64/amd64/machdep.c#4 integrate
.. //depot/projects/jail2/sys/amd64/amd64/mp_machdep.c#2 integrate
.. //depot/projects/jail2/sys/amd64/amd64/nexus.c#2 integrate
.. //depot/projects/jail2/sys/amd64/amd64/vm_machdep.c#3 integrate
.. //depot/projects/jail2/sys/amd64/linux32/linux32_machdep.c#4 integrate
.. //depot/projects/jail2/sys/amd64/linux32/linux32_sysvec.c#3 integrate
.. //depot/projects/jail2/sys/arm/arm/fusu.S#3 integrate
.. //depot/projects/jail2/sys/arm/arm/pmap.c#3 integrate
.. //depot/projects/jail2/sys/arm/at91/at91.c#2 integrate
.. //depot/projects/jail2/sys/arm/at91/at91_twi.c#3 integrate
.. //depot/projects/jail2/sys/arm/at91/at91rm92reg.h#3 integrate
.. //depot/projects/jail2/sys/arm/at91/if_atereg.h#2 integrate
.. //depot/projects/jail2/sys/arm/at91/kb920x_machdep.c#4 integrate
.. //depot/projects/jail2/sys/arm/include/asm.h#2 integrate
.. //depot/projects/jail2/sys/boot/i386/pxeldr/pxeldr.S#2 integrate
.. //depot/projects/jail2/sys/bsm/audit_internal.h#3 integrate
.. //depot/projects/jail2/sys/bsm/audit_record.h#4 integrate
.. //depot/projects/jail2/sys/cam/cam_xpt.c#3 integrate
.. //depot/projects/jail2/sys/cam/scsi/scsi_da.c#3 integrate
.. //depot/projects/jail2/sys/compat/freebsd32/freebsd32_proto.h#4 integrate
.. //depot/projects/jail2/sys/compat/freebsd32/freebsd32_syscall.h#4 integrate
.. //depot/projects/jail2/sys/compat/freebsd32/freebsd32_syscalls.c#4 integrate
.. //depot/projects/jail2/sys/compat/freebsd32/freebsd32_sysent.c#4 integrate
.. //depot/projects/jail2/sys/compat/freebsd32/syscalls.master#4 integrate
.. //depot/projects/jail2/sys/compat/linux/linux_emul.c#2 integrate
.. //depot/projects/jail2/sys/compat/linux/linux_file.c#3 integrate
.. //depot/projects/jail2/sys/compat/linux/linux_futex.c#3 integrate
.. //depot/projects/jail2/sys/compat/linux/linux_misc.c#6 integrate
.. //depot/projects/jail2/sys/compat/svr4/svr4_stat.c#3 integrate
.. //depot/projects/jail2/sys/conf/files.amd64#4 integrate
.. //depot/projects/jail2/sys/contrib/pf/net/pf.c#2 integrate
.. //depot/projects/jail2/sys/contrib/pf/net/pf_ioctl.c#3 integrate
.. //depot/projects/jail2/sys/crypto/via/padlock_cipher.c#2 integrate
.. //depot/projects/jail2/sys/dev/acpica/acpi.c#3 integrate
.. //depot/projects/jail2/sys/dev/acpica/acpi_thermal.c#3 integrate
.. //depot/projects/jail2/sys/dev/aic7xxx/ahc_eisa.c#2 integrate
.. //depot/projects/jail2/sys/dev/aic7xxx/ahc_isa.c#2 integrate
.. //depot/projects/jail2/sys/dev/aic7xxx/ahc_pci.c#2 integrate
.. //depot/projects/jail2/sys/dev/aic7xxx/ahd_pci.c#2 integrate
.. //depot/projects/jail2/sys/dev/aic7xxx/aic7xxx_osm.c#2 integrate
.. //depot/projects/jail2/sys/dev/arcmsr/arcmsr.c#2 integrate
.. //depot/projects/jail2/sys/dev/ata/ata-all.c#2 integrate
.. //depot/projects/jail2/sys/dev/ata/ata-chipset.c#4 integrate
.. //depot/projects/jail2/sys/dev/ata/ata-disk.c#3 integrate
.. //depot/projects/jail2/sys/dev/ata/ata-dma.c#2 integrate
.. //depot/projects/jail2/sys/dev/ata/ata-pci.h#3 integrate
.. //depot/projects/jail2/sys/dev/ata/ata-raid.h#2 integrate
.. //depot/projects/jail2/sys/dev/ata/ata-usb.c#2 integrate
.. //depot/projects/jail2/sys/dev/atkbdc/atkbdc.c#2 integrate
.. //depot/projects/jail2/sys/dev/bce/if_bce.c#3 integrate
.. //depot/projects/jail2/sys/dev/bge/if_bge.c#4 integrate
.. //depot/projects/jail2/sys/dev/bge/if_bgereg.h#4 integrate
.. //depot/projects/jail2/sys/dev/bktr/bktr_i2c.c#2 integrate
.. //depot/projects/jail2/sys/dev/cs/if_cs.c#2 integrate
.. //depot/projects/jail2/sys/dev/cs/if_csvar.h#2 integrate
.. //depot/projects/jail2/sys/dev/dc/if_dc.c#2 integrate
.. //depot/projects/jail2/sys/dev/dc/if_dcreg.h#2 integrate
.. //depot/projects/jail2/sys/dev/de/if_de.c#2 integrate
.. //depot/projects/jail2/sys/dev/de/if_devar.h#2 integrate
.. //depot/projects/jail2/sys/dev/drm/drmP.h#2 integrate
.. //depot/projects/jail2/sys/dev/drm/drm_drv.c#2 integrate
.. //depot/projects/jail2/sys/dev/drm/drm_pciids.h#2 integrate
.. //depot/projects/jail2/sys/dev/drm/i915_dma.c#2 integrate
.. //depot/projects/jail2/sys/dev/drm/i915_drm.h#2 integrate
.. //depot/projects/jail2/sys/dev/drm/i915_drv.h#2 integrate
.. //depot/projects/jail2/sys/dev/drm/i915_irq.c#2 integrate
.. //depot/projects/jail2/sys/dev/drm/mach64_drm.h#2 integrate
.. //depot/projects/jail2/sys/dev/drm/radeon_cp.c#2 integrate
.. //depot/projects/jail2/sys/dev/drm/radeon_drm.h#2 integrate
.. //depot/projects/jail2/sys/dev/drm/radeon_drv.h#2 integrate
.. //depot/projects/jail2/sys/dev/drm/radeon_state.c#2 integrate
.. //depot/projects/jail2/sys/dev/em/if_em.c#4 integrate
.. //depot/projects/jail2/sys/dev/em/if_em.h#3 integrate
.. //depot/projects/jail2/sys/dev/en/if_en_pci.c#2 integrate
.. //depot/projects/jail2/sys/dev/en/midway.c#2 integrate
.. //depot/projects/jail2/sys/dev/fdc/fdc.c#3 integrate
.. //depot/projects/jail2/sys/dev/gem/if_gem.c#2 integrate
.. //depot/projects/jail2/sys/dev/hwpmc/hwpmc_mod.c#3 integrate
.. //depot/projects/jail2/sys/dev/ic/nec765.h#3 integrate
.. //depot/projects/jail2/sys/dev/ichsmb/ichsmb.c#2 integrate
.. //depot/projects/jail2/sys/dev/if_ndis/if_ndis_usb.c#2 integrate
.. //depot/projects/jail2/sys/dev/iicbus/iic.c#3 integrate
.. //depot/projects/jail2/sys/dev/iicbus/iicsmb.c#2 integrate
.. //depot/projects/jail2/sys/dev/isp/isp.c#3 integrate
.. //depot/projects/jail2/sys/dev/isp/isp_freebsd.c#3 integrate
.. //depot/projects/jail2/sys/dev/isp/isp_freebsd.h#3 integrate
.. //depot/projects/jail2/sys/dev/isp/isp_pci.c#4 integrate
.. //depot/projects/jail2/sys/dev/isp/isp_sbus.c#3 integrate
.. //depot/projects/jail2/sys/dev/ixgb/if_ixgb.c#3 integrate
.. //depot/projects/jail2/sys/dev/lge/if_lge.c#2 integrate
.. //depot/projects/jail2/sys/dev/lge/if_lgereg.h#2 integrate
.. //depot/projects/jail2/sys/dev/mfi/mfi.c#4 integrate
.. //depot/projects/jail2/sys/dev/mfi/mfireg.h#3 integrate
.. //depot/projects/jail2/sys/dev/mii/brgphy.c#4 integrate
.. //depot/projects/jail2/sys/dev/mii/miidevs#3 integrate
.. //depot/projects/jail2/sys/dev/mk48txx/mk48txx.c#2 integrate
.. //depot/projects/jail2/sys/dev/mpt/mpt.c#4 integrate
.. //depot/projects/jail2/sys/dev/mpt/mpt.h#4 integrate
.. //depot/projects/jail2/sys/dev/mpt/mpt_cam.c#4 integrate
.. //depot/projects/jail2/sys/dev/mpt/mpt_pci.c#4 integrate
.. //depot/projects/jail2/sys/dev/mxge/eth_z8e.dat.gz.uu#2 integrate
.. //depot/projects/jail2/sys/dev/mxge/ethp_z8e.dat.gz.uu#2 integrate
.. //depot/projects/jail2/sys/dev/mxge/if_mxge.c#3 integrate
.. //depot/projects/jail2/sys/dev/mxge/if_mxge_var.h#2 integrate
.. //depot/projects/jail2/sys/dev/mxge/mxge_mcp.h#2 integrate
.. //depot/projects/jail2/sys/dev/my/if_my.c#2 integrate
.. //depot/projects/jail2/sys/dev/my/if_myreg.h#2 integrate
.. //depot/projects/jail2/sys/dev/nfe/if_nfe.c#3 integrate
.. //depot/projects/jail2/sys/dev/nfe/if_nfereg.h#2 integrate
.. //depot/projects/jail2/sys/dev/nge/if_nge.c#2 integrate
.. //depot/projects/jail2/sys/dev/nge/if_ngereg.h#2 integrate
.. //depot/projects/jail2/sys/dev/ofw/openfirmio.c#2 integrate
.. //depot/projects/jail2/sys/dev/puc/pucdata.c#3 integrate
.. //depot/projects/jail2/sys/dev/re/if_re.c#4 integrate
.. //depot/projects/jail2/sys/dev/sio/sio_pccard.c#2 integrate
.. //depot/projects/jail2/sys/dev/smbus/smb.c#2 integrate
.. //depot/projects/jail2/sys/dev/smbus/smb.h#2 integrate
.. //depot/projects/jail2/sys/dev/smbus/smbconf.c#2 integrate
.. //depot/projects/jail2/sys/dev/smbus/smbconf.h#2 integrate
.. //depot/projects/jail2/sys/dev/smbus/smbus.c#2 integrate
.. //depot/projects/jail2/sys/dev/smbus/smbus.h#2 integrate
.. //depot/projects/jail2/sys/dev/smbus/smbus_if.m#2 integrate
.. //depot/projects/jail2/sys/dev/sound/usb/uaudio.c#2 integrate
.. //depot/projects/jail2/sys/dev/stge/if_stge.c#2 integrate
.. //depot/projects/jail2/sys/dev/syscons/scmouse.c#2 integrate
.. //depot/projects/jail2/sys/dev/syscons/syscons.c#2 integrate
.. //depot/projects/jail2/sys/dev/syscons/syscons.h#2 integrate
.. //depot/projects/jail2/sys/dev/ti/if_ti.c#3 integrate
.. //depot/projects/jail2/sys/dev/txp/if_txp.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ehci.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ehci_pci.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ehcivar.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/hid.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/if_aue.c#3 integrate
.. //depot/projects/jail2/sys/dev/usb/if_axe.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/if_cdce.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/if_cue.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/if_kue.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/if_rue.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/if_udav.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/if_udavreg.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/if_ural.c#3 integrate
.. //depot/projects/jail2/sys/dev/usb/if_uralvar.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/kue_fw.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ohci.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ohci_pci.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ohcivar.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/sl811hs.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/sl811hsvar.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ubsa.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ubser.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ucom.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ucomvar.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/udbp.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ufm.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ufoma.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/uftdi.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ugen.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/uhci.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/uhcivar.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/uhid.c#3 integrate
.. //depot/projects/jail2/sys/dev/usb/uhub.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ukbd.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/ulpt.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/umass.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/umct.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/umodem.c#3 integrate
.. //depot/projects/jail2/sys/dev/usb/ums.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/uplcom.c#4 integrate
.. //depot/projects/jail2/sys/dev/usb/urio.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usb.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usb.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usb_ethersubr.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usb_mem.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usb_port.h#3 integrate
.. //depot/projects/jail2/sys/dev/usb/usb_quirks.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usb_subr.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usbdi.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usbdi.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usbdi_util.c#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usbdi_util.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/usbdivar.h#2 integrate
.. //depot/projects/jail2/sys/dev/usb/uscanner.c#4 integrate
.. //depot/projects/jail2/sys/dev/usb/uvisor.c#3 integrate
.. //depot/projects/jail2/sys/dev/usb/uvscom.c#2 integrate
.. //depot/projects/jail2/sys/dev/vge/if_vge.c#2 integrate
.. //depot/projects/jail2/sys/fs/udf/osta.h#2 integrate
.. //depot/projects/jail2/sys/geom/eli/g_eli.h#3 integrate
.. //depot/projects/jail2/sys/geom/eli/g_eli_ctl.c#3 integrate
.. //depot/projects/jail2/sys/geom/gate/g_gate.c#2 integrate
.. //depot/projects/jail2/sys/geom/gate/g_gate.h#2 integrate
.. //depot/projects/jail2/sys/geom/geom.h#3 integrate
.. //depot/projects/jail2/sys/geom/geom_event.c#2 integrate
.. //depot/projects/jail2/sys/geom/geom_subr.c#2 integrate
.. //depot/projects/jail2/sys/geom/label/g_label_ufs.c#2 integrate
.. //depot/projects/jail2/sys/geom/mirror/g_mirror.c#3 integrate
.. //depot/projects/jail2/sys/geom/nop/g_nop.c#2 integrate
.. //depot/projects/jail2/sys/geom/nop/g_nop.h#2 integrate
.. //depot/projects/jail2/sys/geom/raid3/g_raid3.c#3 integrate
.. //depot/projects/jail2/sys/geom/raid3/g_raid3_ctl.c#3 integrate
.. //depot/projects/jail2/sys/i386/acpica/Makefile#2 integrate
.. //depot/projects/jail2/sys/i386/conf/NOTES#4 integrate
.. //depot/projects/jail2/sys/i386/i386/busdma_machdep.c#2 integrate
.. //depot/projects/jail2/sys/i386/i386/local_apic.c#3 integrate
.. //depot/projects/jail2/sys/i386/i386/machdep.c#3 integrate
.. //depot/projects/jail2/sys/i386/i386/mp_machdep.c#2 integrate
.. //depot/projects/jail2/sys/i386/i386/nexus.c#2 integrate
.. //depot/projects/jail2/sys/i386/i386/sys_machdep.c#2 integrate
.. //depot/projects/jail2/sys/i386/linux/linux_sysvec.c#3 integrate
.. //depot/projects/jail2/sys/ia64/ia32/ia32_trap.c#3 integrate
.. //depot/projects/jail2/sys/ia64/ia64/trap.c#3 integrate
.. //depot/projects/jail2/sys/kern/bus_if.m#3 integrate
.. //depot/projects/jail2/sys/kern/init_sysent.c#4 integrate
.. //depot/projects/jail2/sys/kern/kern_acct.c#2 integrate
.. //depot/projects/jail2/sys/kern/kern_exec.c#4 integrate
.. //depot/projects/jail2/sys/kern/kern_exit.c#3 integrate
.. //depot/projects/jail2/sys/kern/kern_jail.c#6 integrate
.. //depot/projects/jail2/sys/kern/kern_ktr.c#3 integrate
.. //depot/projects/jail2/sys/kern/kern_mbuf.c#2 integrate
.. //depot/projects/jail2/sys/kern/kern_prot.c#4 integrate
.. //depot/projects/jail2/sys/kern/kern_umtx.c#3 integrate
.. //depot/projects/jail2/sys/kern/subr_bus.c#4 integrate
.. //depot/projects/jail2/sys/kern/subr_prf.c#3 integrate
.. //depot/projects/jail2/sys/kern/subr_rman.c#3 integrate
.. //depot/projects/jail2/sys/kern/subr_witness.c#3 integrate
.. //depot/projects/jail2/sys/kern/syscalls.c#4 integrate
.. //depot/projects/jail2/sys/kern/syscalls.master#4 integrate
.. //depot/projects/jail2/sys/kern/systrace_args.c#3 integrate
.. //depot/projects/jail2/sys/kern/tty.c#2 integrate
.. //depot/projects/jail2/sys/kern/uipc_sockbuf.c#2 integrate
.. //depot/projects/jail2/sys/kern/uipc_socket.c#5 integrate
.. //depot/projects/jail2/sys/kern/vfs_aio.c#3 integrate
.. //depot/projects/jail2/sys/kern/vfs_lookup.c#3 integrate
.. //depot/projects/jail2/sys/kern/vfs_subr.c#4 integrate
.. //depot/projects/jail2/sys/kern/vfs_syscalls.c#4 integrate
.. //depot/projects/jail2/sys/modules/Makefile#5 integrate
.. //depot/projects/jail2/sys/modules/agp/Makefile#3 integrate
.. //depot/projects/jail2/sys/modules/ipfw/Makefile#2 integrate
.. //depot/projects/jail2/sys/modules/pf/Makefile#2 integrate
.. //depot/projects/jail2/sys/modules/sound/sound/Makefile#3 integrate
.. //depot/projects/jail2/sys/net/bpf.h#2 integrate
.. //depot/projects/jail2/sys/net/if.c#5 integrate
.. //depot/projects/jail2/sys/net/if.h#3 integrate
.. //depot/projects/jail2/sys/net/if_bridge.c#5 integrate
.. //depot/projects/jail2/sys/net/if_var.h#4 integrate
.. //depot/projects/jail2/sys/net/if_vlan.c#5 integrate
.. //depot/projects/jail2/sys/net/if_vlan_var.h#2 integrate
.. //depot/projects/jail2/sys/net80211/ieee80211_input.c#3 integrate
.. //depot/projects/jail2/sys/net80211/ieee80211_output.c#3 integrate
.. //depot/projects/jail2/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#2 integrate
.. //depot/projects/jail2/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h#2 integrate
.. //depot/projects/jail2/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#2 integrate
.. //depot/projects/jail2/sys/netgraph/ng_eiface.c#2 integrate
.. //depot/projects/jail2/sys/netgraph/ng_fec.c#3 integrate
.. //depot/projects/jail2/sys/netgraph/ng_vlan.c#2 integrate
.. //depot/projects/jail2/sys/netinet/in_pcb.c#4 integrate
.. //depot/projects/jail2/sys/netinet/ip_fw2.c#5 integrate
.. //depot/projects/jail2/sys/netinet/ip_output.c#3 integrate
.. //depot/projects/jail2/sys/netinet/raw_ip.c#4 integrate
.. //depot/projects/jail2/sys/netinet/tcp_input.c#4 integrate
.. //depot/projects/jail2/sys/netinet/tcp_output.c#2 integrate
.. //depot/projects/jail2/sys/netinet/tcp_subr.c#4 integrate
.. //depot/projects/jail2/sys/netinet/tcp_syncache.c#3 integrate
.. //depot/projects/jail2/sys/netinet/tcp_timer.c#3 integrate
.. //depot/projects/jail2/sys/netinet/tcp_timer.h#3 integrate
.. //depot/projects/jail2/sys/netinet/tcp_usrreq.c#5 integrate
.. //depot/projects/jail2/sys/netinet/tcp_var.h#3 integrate
.. //depot/projects/jail2/sys/netinet/udp_usrreq.c#4 integrate
.. //depot/projects/jail2/sys/netinet6/icmp6.c#4 integrate
.. //depot/projects/jail2/sys/netinet6/ip6_forward.c#3 integrate
.. //depot/projects/jail2/sys/netinet6/nd6.c#3 integrate
.. //depot/projects/jail2/sys/netinet6/udp6_usrreq.c#3 integrate
.. //depot/projects/jail2/sys/nfs4client/nfs4_vfsops.c#2 integrate
.. //depot/projects/jail2/sys/nfs4client/nfs4_vnops.c#3 integrate
.. //depot/projects/jail2/sys/nfsclient/nfs_node.c#2 integrate
.. //depot/projects/jail2/sys/nfsclient/nfs_socket.c#3 integrate
.. //depot/projects/jail2/sys/nfsclient/nfs_subs.c#2 integrate
.. //depot/projects/jail2/sys/nfsclient/nfs_vfsops.c#4 integrate
.. //depot/projects/jail2/sys/nfsclient/nfs_vnops.c#3 integrate
.. //depot/projects/jail2/sys/nfsclient/nfsnode.h#2 integrate
.. //depot/projects/jail2/sys/pc98/cbus/fdc.c#2 integrate
.. //depot/projects/jail2/sys/pci/agp_ati.c#2 integrate
.. //depot/projects/jail2/sys/pci/alpm.c#2 integrate
.. //depot/projects/jail2/sys/pci/amdpm.c#2 integrate
.. //depot/projects/jail2/sys/pci/amdsmb.c#2 integrate
.. //depot/projects/jail2/sys/pci/if_rl.c#2 integrate
.. //depot/projects/jail2/sys/pci/if_sf.c#2 integrate
.. //depot/projects/jail2/sys/pci/if_sfreg.h#2 integrate
.. //depot/projects/jail2/sys/pci/if_sis.c#2 integrate
.. //depot/projects/jail2/sys/pci/if_sisreg.h#2 integrate
.. //depot/projects/jail2/sys/pci/if_ste.c#2 integrate
.. //depot/projects/jail2/sys/pci/if_tl.c#2 integrate
.. //depot/projects/jail2/sys/pci/if_tlreg.h#2 integrate
.. //depot/projects/jail2/sys/pci/if_vr.c#2 integrate
.. //depot/projects/jail2/sys/pci/if_vrreg.h#2 integrate
.. //depot/projects/jail2/sys/pci/if_wb.c#2 integrate
.. //depot/projects/jail2/sys/pci/if_wbreg.h#2 integrate
.. //depot/projects/jail2/sys/pci/if_xl.c#3 integrate
.. //depot/projects/jail2/sys/pci/if_xlreg.h#2 integrate
.. //depot/projects/jail2/sys/pci/intpm.c#2 integrate
.. //depot/projects/jail2/sys/pci/intpmreg.h#2 integrate
.. //depot/projects/jail2/sys/pci/nfsmb.c#3 integrate
.. //depot/projects/jail2/sys/pci/viapm.c#2 integrate
.. //depot/projects/jail2/sys/powerpc/powerpc/trap.c#3 integrate
.. //depot/projects/jail2/sys/powerpc/powerpc/vm_machdep.c#2 integrate
.. //depot/projects/jail2/sys/security/audit/audit.c#2 integrate
.. //depot/projects/jail2/sys/security/audit/audit.h#3 integrate
.. //depot/projects/jail2/sys/security/audit/audit_arg.c#3 integrate
.. //depot/projects/jail2/sys/security/audit/audit_bsm.c#4 integrate
.. //depot/projects/jail2/sys/security/audit/audit_bsm_token.c#4 integrate
.. //depot/projects/jail2/sys/security/audit/audit_private.h#2 integrate
.. //depot/projects/jail2/sys/security/audit/audit_syscalls.c#2 integrate
.. //depot/projects/jail2/sys/security/audit/audit_worker.c#2 integrate
.. //depot/projects/jail2/sys/security/mac/mac_inet.c#2 integrate
.. //depot/projects/jail2/sys/security/mac/mac_internal.h#2 integrate
.. //depot/projects/jail2/sys/security/mac_biba/mac_biba.c#3 integrate
.. //depot/projects/jail2/sys/security/mac_lomac/mac_lomac.c#2 integrate
.. //depot/projects/jail2/sys/security/mac_mls/mac_mls.c#3 integrate
.. //depot/projects/jail2/sys/sparc64/sparc64/mp_machdep.c#2 integrate
.. //depot/projects/jail2/sys/sys/_bus_dma.h#1 branch
.. //depot/projects/jail2/sys/sys/bus.h#3 integrate
.. //depot/projects/jail2/sys/sys/bus_dma.h#2 integrate
.. //depot/projects/jail2/sys/sys/mac.h#2 integrate
.. //depot/projects/jail2/sys/sys/mac_policy.h#3 integrate
.. //depot/projects/jail2/sys/sys/mbuf.h#3 integrate
.. //depot/projects/jail2/sys/sys/mount.h#2 integrate
.. //depot/projects/jail2/sys/sys/msgbuf.h#2 integrate
.. //depot/projects/jail2/sys/sys/param.h#3 integrate
.. //depot/projects/jail2/sys/sys/sx.h#4 integrate
.. //depot/projects/jail2/sys/sys/syscall.h#4 integrate
.. //depot/projects/jail2/sys/sys/syscall.mk#4 integrate
.. //depot/projects/jail2/sys/sys/sysctl.h#4 integrate
.. //depot/projects/jail2/sys/sys/sysproto.h#4 integrate
.. //depot/projects/jail2/sys/ufs/ufs/ufs_quota.c#2 integrate
.. //depot/projects/jail2/sys/vm/vm_contig.c#3 integrate
.. //depot/projects/jail2/sys/vm/vm_page.h#4 integrate

Differences ...

==== //depot/projects/jail2/sys/amd64/amd64/local_apic.c#3 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.26 2006/07/12 21:22:42 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.29 2006/09/11 20:12:42 jhb Exp $");
 
 #include "opt_hwpmc_hooks.h"
 
@@ -613,6 +613,18 @@
 	/* Send EOI first thing. */
 	lapic_eoi();
 
+#ifdef SMP
+	/*
+	 * Don't do any accounting for the disabled HTT cores, since it
+	 * will provide misleading numbers for the userland.
+	 *
+	 * No locking is necessary here, since even if we loose the race
+	 * when hlt_cpus_mask changes it is not a big deal, really.
+	 */
+	if ((hlt_cpus_mask & (1 << PCPU_GET(cpuid))) != 0)
+		return;
+#endif
+
 	/* Look up our local APIC structure for the tick counters. */
 	la = &lapics[PCPU_GET(apic_id)];
 	(*la->la_timer_count)++;
@@ -782,6 +794,76 @@
 		}
 	}
 }
+
+static void
+dump_mask(const char *prefix, uint32_t v, int base)
+{
+	int i, first;
+
+	first = 1;
+	for (i = 0; i < 32; i++)
+		if (v & (1 << i)) {
+			if (first) {
+				db_printf("%s:", prefix);
+				first = 0;
+			}
+			db_printf(" %02x", base + i);
+		}
+	if (!first)
+		db_printf("\n");
+}
+
+/* Show info from the lapic regs for this CPU. */
+DB_SHOW_COMMAND(lapic, db_show_lapic)
+{
+	uint32_t v;
+
+	db_printf("lapic ID = %d\n", lapic_id());
+	v = lapic->version;
+	db_printf("version  = %d.%d\n", (v & APIC_VER_VERSION) >> 4,
+	    v & 0xf);
+	db_printf("max LVT  = %d\n", (v & APIC_VER_MAXLVT) >> MAXLVTSHIFT);
+	v = lapic->svr;
+	db_printf("SVR      = %02x (%s)\n", v & APIC_SVR_VECTOR,
+	    v & APIC_SVR_ENABLE ? "enabled" : "disabled");
+	db_printf("TPR      = %02x\n", lapic->tpr);
+
+#define dump_field(prefix, index)					\
+	dump_mask(__XSTRING(prefix ## index), lapic->prefix ## index,	\
+	    index * 32)
+
+	db_printf("In-service Interrupts:\n");
+	dump_field(isr, 0);
+	dump_field(isr, 1);
+	dump_field(isr, 2);
+	dump_field(isr, 3);
+	dump_field(isr, 4);
+	dump_field(isr, 5);
+	dump_field(isr, 6);
+	dump_field(isr, 7);
+
+	db_printf("TMR Interrupts:\n");
+	dump_field(tmr, 0);
+	dump_field(tmr, 1);
+	dump_field(tmr, 2);
+	dump_field(tmr, 3);
+	dump_field(tmr, 4);
+	dump_field(tmr, 5);
+	dump_field(tmr, 6);
+	dump_field(tmr, 7);
+
+	db_printf("IRR Interrupts:\n");
+	dump_field(irr, 0);
+	dump_field(irr, 1);
+	dump_field(irr, 2);
+	dump_field(irr, 3);
+	dump_field(irr, 4);
+	dump_field(irr, 5);
+	dump_field(irr, 6);
+	dump_field(irr, 7);
+
+#undef dump_field
+}
 #endif
 
 /*

==== //depot/projects/jail2/sys/amd64/amd64/machdep.c#4 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.651 2006/07/27 19:47:22 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.652 2006/09/07 15:03:02 jhb Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -160,8 +160,10 @@
 long Maxmem = 0;
 long realmem = 0;
 
-vm_paddr_t phys_avail[20];
-vm_paddr_t dump_avail[20];
+#define PHYSMAP_SIZE	(2 * 30)
+
+vm_paddr_t phys_avail[PHYSMAP_SIZE + 2];
+vm_paddr_t dump_avail[PHYSMAP_SIZE + 2];
 
 /* must be 2 less so 0 0 can signal end of chunks */
 #define PHYS_AVAIL_ARRAY_END ((sizeof(phys_avail) / sizeof(phys_avail[0])) - 2)
@@ -832,8 +834,6 @@
 }
 #endif
 
-#define PHYSMAP_SIZE	(2 * 20)
-
 u_int basemem;
 
 /*

==== //depot/projects/jail2/sys/amd64/amd64/mp_machdep.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.276 2006/05/16 14:32:16 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.277 2006/09/11 20:10:42 jhb Exp $");
 
 #include "opt_cpu.h"
 #include "opt_kstack_pages.h"
@@ -342,7 +342,10 @@
 	setidt(IPI_INVLTLB, IDTVEC(invltlb), SDT_SYSIGT, SEL_KPL, 0);
 	setidt(IPI_INVLPG, IDTVEC(invlpg), SDT_SYSIGT, SEL_KPL, 0);
 	setidt(IPI_INVLRNG, IDTVEC(invlrng), SDT_SYSIGT, SEL_KPL, 0);
-	
+
+	/* Install an inter-CPU IPI for cache invalidation. */
+	setidt(IPI_INVLCACHE, IDTVEC(invlcache), SDT_SYSIGT, SEL_KPL, 0);
+
 	/* Install an inter-CPU IPI for all-CPU rendezvous */
 	setidt(IPI_RENDEZVOUS, IDTVEC(rendezvous), SDT_SYSIGT, SEL_KPL, 0);
 

==== //depot/projects/jail2/sys/amd64/amd64/nexus.c#2 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.68 2006/04/20 04:16:34 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.69 2006/09/11 19:31:51 jhb Exp $");
 
 /*
  * This code implements a `root nexus' for Intel Architecture
@@ -140,7 +140,7 @@
 static int
 nexus_probe(device_t dev)
 {
-	int irq, last;
+	int irq;
 
 	device_quiet(dev);	/* suppress attach message for neatness */
 
@@ -173,18 +173,10 @@
 	 * We search for regions of existing IRQs and add those to the IRQ
 	 * resource manager.
 	 */
-	last = -1;
 	for (irq = 0; irq < NUM_IO_INTS; irq++)
-		if (intr_lookup_source(irq) != NULL) {
-			if (last == -1)
-				last = irq;
-		} else if (last != -1) {
-			if (rman_manage_region(&irq_rman, last, irq - 1) != 0)
+		if (intr_lookup_source(irq) != NULL)
+			if (rman_manage_region(&irq_rman, irq, irq) != 0)
 				panic("nexus_probe irq_rman add");
-			last = -1;
-		}
-	if (last != -1 && rman_manage_region(&irq_rman, last, irq - 1) != 0)
-		panic("nexus_probe irq_rman add");
 
 	/*
 	 * ISA DMA on PCI systems is implemented in the ISA part of each

==== //depot/projects/jail2/sys/amd64/amd64/vm_machdep.c#3 (text+ko) ====

@@ -41,10 +41,11 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.251 2006/07/24 12:24:56 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.252 2006/09/17 14:54:14 davidxu Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"
+#include "opt_compat.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -69,6 +70,7 @@
 #include <machine/cpu.h>
 #include <machine/md_var.h>
 #include <machine/pcb.h>
+#include <machine/specialreg.h>
 
 #include <vm/vm.h>
 #include <vm/vm_extern.h>
@@ -79,6 +81,12 @@
 
 #include <amd64/isa/isa.h>
 
+#ifdef COMPAT_IA32
+
+extern struct sysentvec ia32_freebsd_sysvec;
+
+#endif
+
 static void	cpu_reset_real(void);
 #ifdef SMP
 static void	cpu_reset_proxy(void);
@@ -320,6 +328,28 @@
 	 */
 	cpu_thread_clean(td);
 
+#ifdef COMPAT_IA32
+	if (td->td_proc->p_sysent == &ia32_freebsd_sysvec) {
+		/*
+	 	 * Set the trap frame to point at the beginning of the uts
+		 * function.
+		 */
+		td->td_frame->tf_rbp = 0;
+		td->td_frame->tf_rsp =
+		   (((uintptr_t)stack->ss_sp + stack->ss_size - 4) & ~0x0f) - 4;
+		td->td_frame->tf_rip = (uintptr_t)entry;
+
+		/*
+		 * Pass the address of the mailbox for this kse to the uts
+		 * function as a parameter on the stack.
+		 */
+		suword32((void *)(td->td_frame->tf_rsp + sizeof(int32_t)),
+		    (uint32_t)(uintptr_t)arg);
+
+		return;
+	}
+#endif
+
 	/*
 	 * Set the trap frame to point at the beginning of the uts
 	 * function.
@@ -344,6 +374,19 @@
 	if ((u_int64_t)tls_base >= VM_MAXUSER_ADDRESS)
 		return (EINVAL);
 
+#ifdef COMPAT_IA32
+	if (td->td_proc->p_sysent == &ia32_freebsd_sysvec) {
+		if (td == curthread) {
+			critical_enter();
+			td->td_pcb->pcb_gsbase = (register_t)tls_base;
+			wrmsr(MSR_KGSBASE, td->td_pcb->pcb_gsbase);
+			critical_exit();
+		} else {
+			td->td_pcb->pcb_gsbase = (register_t)tls_base;
+		}
+		return (0);
+	}
+#endif
 	if (td == curthread) {
 		critical_enter();
 		td->td_pcb->pcb_fsbase = (register_t)tls_base;

==== //depot/projects/jail2/sys/amd64/linux32/linux32_machdep.c#4 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.16 2006/08/25 11:59:56 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.17 2006/08/28 13:09:24 netchild Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -570,24 +570,24 @@
 		}
 	}
 
-	if (args->flags & CLONE_PARENT) {
-#ifdef DEBUG
-	   	printf("linux_clone: CLONE_PARENT\n");
-#endif
+	if (args->flags & (CLONE_PARENT|CLONE_THREAD)) {
+	   	sx_xlock(&proctree_lock);
+		PROC_LOCK(p2);
+		proc_reparent(p2, td->td_proc->p_pptr);
+		PROC_UNLOCK(p2);
+		sx_xunlock(&proctree_lock);
 	}
-	   	
+
 	if (args->flags & CLONE_THREAD) {
 	   	/* XXX: linux mangles pgrp and pptr somehow
 		 * I think it might be this but I am not sure.
 		 */
 #ifdef notyet
+	   	PROC_LOCK(p2);
 	   	p2->p_pgrp = td->td_proc->p_pgrp;
-	 	p2->p_pptr = td->td_proc->p_pptr;
+	   	PROC_UNLOCK(p2);
 #endif
 	 	exit_signal = 0;
-#ifdef DEBUG
-	   	printf("linux_clone: CLONE_THREADS\n");
-#endif
 	}
 
 	if (args->flags & CLONE_CHILD_SETTID)
@@ -599,6 +599,7 @@
 		em->child_clear_tid = args->child_tidptr;
 	else
 	   	em->child_clear_tid = NULL;
+
 	EMUL_UNLOCK(&emul_lock);
 
 	PROC_LOCK(p2);

==== //depot/projects/jail2/sys/amd64/linux32/linux32_sysvec.c#3 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.23 2006/08/17 21:06:48 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.24 2006/09/09 16:25:25 netchild Exp $");
 #include "opt_compat.h"
 
 #ifndef COMPAT_IA32
@@ -124,7 +124,7 @@
 static void	linux32_fixlimits(struct proc *p);
 
 extern LIST_HEAD(futex_list, futex) futex_list;
-extern struct mtx futex_mtx;
+extern struct sx futex_sx;
 
 static eventhandler_tag linux_exit_tag;
 static eventhandler_tag linux_schedtail_tag;
@@ -1080,7 +1080,7 @@
 			sx_init(&emul_lock, "emuldata lock");
 			sx_init(&emul_shared_lock, "emuldata->shared lock");
 			LIST_INIT(&futex_list);
-			mtx_init(&futex_mtx, "futex protection lock", NULL, MTX_DEF);
+			sx_init(&futex_sx, "futex protection lock");
 			linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, linux_proc_exit,
 			      NULL, 1000);
 			linux_schedtail_tag = EVENTHANDLER_REGISTER(schedtail, linux_schedtail,
@@ -1110,7 +1110,7 @@
 				linux_device_unregister_handler(*ldhp);
 			sx_destroy(&emul_lock);
 			sx_destroy(&emul_shared_lock);
-			mtx_destroy(&futex_mtx);
+			sx_destroy(&futex_sx);
 			EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag);
 			EVENTHANDLER_DEREGISTER(schedtail, linux_schedtail_tag);
 			EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag);

==== //depot/projects/jail2/sys/arm/arm/fusu.S#3 (text+ko) ====

@@ -37,7 +37,7 @@
 #include <machine/asmacros.h>
 #include <machine/armreg.h>
 #include "assym.s"
-__FBSDID("$FreeBSD: src/sys/arm/arm/fusu.S,v 1.8 2006/08/28 02:28:14 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/fusu.S,v 1.10 2006/08/30 11:44:37 cognet Exp $");
 
 #ifdef MULTIPROCESSOR
 .Lcpu_info:
@@ -52,7 +52,7 @@
  * Fetch an int from the user's address space.
  */
 
-ALTENTRY(casuword32)
+ENTRY_NP(casuword32)
 ENTRY(casuptr)
 #ifdef MULTIPROCESSOR
 	/* XXX Probably not appropriate for non-Hydra SMPs */
@@ -99,7 +99,7 @@
  * Fetch an int from the user's address space.
  */
 
-ENTRY(fuword32)
+ENTRY_NP(fuword32)
 ENTRY(fuword)
 #ifdef MULTIPROCESSOR
 	/* XXX Probably not appropriate for non-Hydra SMPs */
@@ -301,7 +301,7 @@
  * Store an int in the user's address space.
  */
 
-ENTRY(suword32)
+ENTRY_NP(suword32)
 ENTRY(suword)
 #ifdef MULTIPROCESSOR
 	/* XXX Probably not appropriate for non-Hydra SMPs */

==== //depot/projects/jail2/sys/arm/arm/pmap.c#3 (text+ko) ====

@@ -147,7 +147,7 @@
 #include "opt_vm.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.68 2006/08/08 20:59:38 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.69 2006/08/28 21:43:34 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -4469,11 +4469,8 @@
 pmap_remove_write(vm_page_t m)
 {
 
-	if (m->md.pvh_attrs & PVF_WRITE)
+	if (m->flags & PG_WRITEABLE)
 		pmap_clearbit(m, PVF_WRITE);
-	else
-		KASSERT((m->flags & PG_WRITEABLE) == 0,
-		    ("pmap_clear_write: page %p has PG_WRITEABLE set", m));
 }
 
 

==== //depot/projects/jail2/sys/arm/at91/at91.c#2 (text) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.7 2006/05/19 11:27:02 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.8 2006/08/28 20:05:00 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -54,7 +54,11 @@
 	vm_paddr_t pa, endpa;
 
 	pa = trunc_page(bpa);
-	if (pa >= 0xfff00000)
+	if (pa >= 0xfff00000) {
+		*bshp = pa - 0xf0000000 + 0xd0000000;
+		return (0);
+	}
+	if (pa >= 0xdff00000)
 		return (0);
 	endpa = round_page(bpa + size);
 
@@ -417,8 +421,8 @@
 	    rman_manage_region(&sc->sc_irq_rman, 1, 31) != 0)
 		panic("at91_attach: failed to set up IRQ rman");
 	if (rman_init(&sc->sc_mem_rman) != 0 ||
-	    rman_manage_region(&sc->sc_mem_rman, 0xfff00000ul,
-	    0xfffffffful) != 0)
+	    rman_manage_region(&sc->sc_mem_rman, 0xdff00000ul,
+	    0xdffffffful) != 0)
 		panic("at91_attach: failed to set up memory rman");
 	if (rman_manage_region(&sc->sc_mem_rman, AT91RM92_OHCI_BASE,
 	    AT91RM92_OHCI_BASE + AT91RM92_OHCI_SIZE - 1) != 0)
@@ -543,7 +547,7 @@
     void **cookiep)
 {
 	struct at91_softc *sc = device_get_softc(dev);
-	
+
 	if (rman_get_start(ires) == AT91RM92_IRQ_SYSTEM && !(flags & INTR_FAST))
 		panic("All system interrupt ISRs must be type INTR_FAST");
 	BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, intr, arg,

==== //depot/projects/jail2/sys/arm/at91/at91_twi.c#3 (text) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.3 2006/07/14 22:40:24 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.4 2006/09/07 21:53:28 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -128,20 +128,16 @@
 	sc->cwgr = TWI_CWGR_CKDIV(8 * AT91C_MASTER_CLOCK / 90000) |
 	    TWI_CWGR_CHDIV(TWI_CWGR_DIV(TWI_DEF_CLK)) |
 	    TWI_CWGR_CLDIV(TWI_CWGR_DIV(TWI_DEF_CLK));
-
 	WR4(sc, TWI_CR, TWI_CR_SWRST);
 	WR4(sc, TWI_CR, TWI_CR_MSEN | TWI_CR_SVDIS);
 	WR4(sc, TWI_CWGR, sc->cwgr);
-
 	WR4(sc, TWI_IER, TWI_SR_RXRDY | TWI_SR_OVRE | TWI_SR_UNRE |
 	    TWI_SR_NACK);
 
 	if ((sc->iicbus = device_add_child(dev, "iicbus", -1)) == NULL)
 		device_printf(dev, "could not allocate iicbus instance\n");
-
 	/* probe and attach the iicbus */
 	bus_generic_attach(dev);
-
 out:;
 	if (err)
 		at91_twi_deactivate(dev);
@@ -228,12 +224,15 @@
 }
 
 static int
-at91_twi_wait_stop_done(struct at91_twi_softc *sc)
+at91_twi_wait(struct at91_twi_softc *sc, uint32_t bit)
 {
 	int err = 0;
+	int counter = 10000;
 
-	while (!(RD4(sc, TWI_SR) & TWI_SR_TXCOMP))
+	while (!(RD4(sc, TWI_SR) & bit) && counter-- != 0)
 		continue;
+	if (counter == 0)
+		err = EIO;
 	return (err);
 }
 
@@ -252,7 +251,7 @@
 	sc = device_get_softc(dev);
 	if (sc->sc_started) {
 		WR4(sc, TWI_CR, TWI_CR_STOP);
-		err = at91_twi_wait_stop_done(sc);
+		err = at91_twi_wait(sc, TWI_SR_TXCOMP);
 	}
 	return (err);
 }
@@ -345,7 +344,7 @@
 	if (!last)
 		goto errout;
 	WR4(sc, TWI_CR, TWI_CR_STOP);
-	err = at91_twi_wait_stop_done(sc);
+	err = at91_twi_wait(sc, TWI_SR_TXCOMP);
 	*walker = RD4(sc, TWI_RHR) & 0xff;
 	if (read)
 		*read = walker - buf;
@@ -419,6 +418,53 @@
 	return (error);
 }
 
+static int
+at91_twi_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs)
+{
+	struct at91_twi_softc *sc;
+	int i, len;
+	uint32_t rdwr;
+	uint8_t *buf;
+
+	sc = device_get_softc(dev);
+	for (i = 0; i < nmsgs; i++) {
+		/*
+		 * The linux atmel driver doesn't use the internal device
+		 * address feature of twi.  A separate i2c message needs to
+		 * be written to use this.
+		 * See http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2004-September/024411.html
+		 * for details.
+		 */
+		rdwr = (msgs[i].flags & IIC_M_RD) ? TWI_MMR_MREAD : 0;
+		WR4(sc, TWI_MMR, TWI_MMR_DADR(msgs[i].slave) | rdwr);
+		len = msgs[i].len;
+		buf = msgs[i].buf;
+		if (len != 0 || buf == NULL)
+			return EINVAL;
+		WR4(sc, TWI_CR, TWI_CR_START);
+		if (msgs[i].flags & IIC_M_RD) {
+			while (len--) {
+				if (len == 0)
+					WR4(sc, TWI_CR, TWI_CR_STOP);
+				if (!at91_twi_wait(sc, TWI_SR_RXRDY))
+					return EIO;
+				*buf++ = RD4(sc, TWI_RHR) & 0xff;
+			}
+		} else {
+			while (len--) {
+				WR4(sc, TWI_THR, *buf++);
+				if (len == 0)
+					WR4(sc, TWI_CR, TWI_CR_STOP);
+				if (!at91_twi_wait(sc, TWI_SR_TXRDY))
+					return EIO;
+			}
+		}
+		if (!at91_twi_wait(sc, TWI_SR_TXCOMP))
+			return EIO;
+	}
+	return 0;
+}
+
 static device_method_t at91_twi_methods[] = {
 	/* Device interface */
 	DEVMETHOD(device_probe,		at91_twi_probe),
@@ -433,6 +479,7 @@
 	DEVMETHOD(iicbus_write,		at91_twi_write),
 	DEVMETHOD(iicbus_read,		at91_twi_read),
 	DEVMETHOD(iicbus_reset,		at91_twi_rst_card),
+	DEVMETHOD(iicbus_transfer,	at91_twi_transfer),
 	{ 0, 0 }
 };
 

==== //depot/projects/jail2/sys/arm/at91/at91rm92reg.h#3 (text) ====

@@ -22,7 +22,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/* $FreeBSD: src/sys/arm/at91/at91rm92reg.h,v 1.3 2006/06/20 20:13:40 imp Exp $ */
+/* $FreeBSD: src/sys/arm/at91/at91rm92reg.h,v 1.4 2006/08/28 20:05:00 cognet Exp $ */
 
 #ifndef AT91RM92REG_H_
 #define AT91RM92REG_H_
@@ -41,7 +41,7 @@
  * 0xf0000000 - 0xfffffffff : Peripherals
  */
 
-#define AT91RM92_BASE		0xf0000000
+#define AT91RM92_BASE		0xd0000000
 /* Usart */
 
 #define AT91RM92_USART0_BASE	0xffc0000

==== //depot/projects/jail2/sys/arm/at91/if_atereg.h#2 (text) ====

@@ -22,7 +22,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 

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



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