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>