PERFORCE change 120042 for review
Roman Divacky
rdivacky at FreeBSD.org
Sat May 19 10:50:17 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=120042
Change 120042 by rdivacky at rdivacky_witten on 2007/05/19 10:49:53
IFC
Affected files ...
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mp_machdep.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/md_var.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/smp.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_sysvec.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/Makefile#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_periph.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_cd.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_ch.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_da.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_pass.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_pt.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sa.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_ses.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sg.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_targ_bh.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vnops.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ia32/ia32_sysvec.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linprocfs/linprocfs.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_misc.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_misc.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.amd64#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.arm#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.i386#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.ia64#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.pc98#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.powerpc#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.sparc64#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.sun4v#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/NOTES#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kern.mk#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kern.pre.mk#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kmod.mk#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/options#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi_hpet.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpivar.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bce.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bcefw.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bcereg.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cardbus/cardbus.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cardbus/cardbus_cis.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ciss/ciss.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_80003es2lan.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_80003es2lan.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82540.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82541.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82541.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82542.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82543.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82543.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82571.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82571.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82575.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82575.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_api.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_api.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_defines.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_hw.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_ich8lan.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_ich8lan.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_mac.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_mac.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_manage.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_manage.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_nvm.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_nvm.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_osdep.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_phy.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_phy.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_regs.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/if_em.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/if_em.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/isp_freebsd.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfi.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfi_cam.c#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfireg.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfivar.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmc.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcsd.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcvar.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pccbb/pccbb.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pci/pci.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pci/pci_private.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pci/pcireg.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/twa/tw_osl.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/twa/tw_osl_share.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/uart/uart_bus_pci.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ufoma.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/nullfs/null_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/smbfs/smbfs_io.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/umapfs/umap_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/unionfs/union_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/part/g_part.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/Makefile#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/smp.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/machdep.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/Make.tags.inc#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/imgact_elf.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/init_main.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_exec.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_exit.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_fork.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_lock.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_malloc.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_mib.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_mutex.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_resource.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_rwlock.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_sx.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_synch.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_thread.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/subr_lock.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/subr_sleepqueue.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/subr_trap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/subr_turnstile.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_domain.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_mbuf.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_sockbuf.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_socket.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_syscalls.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vfs_bio.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vfs_default.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vfs_subr.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vfs_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vnode_if.src#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/mfi/Makefile#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/mfi/mfip/Makefile#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/netgraph/Makefile#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/netgraph/car/Makefile#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/ethernet.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/ieee8023ad_lacp.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/ieee8023ad_lacp.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if_fwsubr.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if_lagg.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if_lagg.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if_var.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netgraph/ng_car.c#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netgraph/ng_car.h#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netgraph/ng_fec.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netgraph/ng_mppc.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/icmp6.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/ip_input.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_asconf.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_auth.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_constants.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_indata.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_input.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_output.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_pcb.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_sysctl.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_timer.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_uio.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_usrreq.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctputil.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_input.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_output.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_reass.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_subr.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_syncache.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_timer.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_timer.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_timewait.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_var.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/udp_usrreq.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet6/icmp6.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet6/in6_proto.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet6/ip6_input.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet6/sctp6_usrreq.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/nfsclient/nfs_bio.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/nfsclient/nfs_socket.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/pc98/conf/GENERIC#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/pc98/pc98/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/powerpc/powerpc/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sparc64/include/smp.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sparc64/sparc64/machdep.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sparc64/sparc64/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sun4v/sun4v/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sun4v/sun4v/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sun4v/sun4v/tsb.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sun4v/sun4v/tte_hash.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/lockf.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/param.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/sysctl.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/sysent.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/vmmeter.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/vnode.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/ufs/ffs/ffs_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/swap_pager.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/uma_core.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_contig.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_fault.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_glue.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_map.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_meter.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_mmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_object.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_page.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_pageout.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_pageq.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_zeroidle.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vnode_pager.c#2 integrate
Differences ...
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/machdep.c#2 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.670 2007/03/30 00:06:20 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.671 2007/05/18 07:10:42 jeff Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -221,8 +221,8 @@
vm_ksubmap_init(&kmi);
printf("avail memory = %ju (%ju MB)\n",
- ptoa((uintmax_t)cnt.v_free_count),
- ptoa((uintmax_t)cnt.v_free_count) / 1048576);
+ ptoa((uintmax_t)VMCNT_GET(free_count)),
+ ptoa((uintmax_t)VMCNT_GET(free_count)) / 1048576);
/*
* Set up buffers, so they can be used to read disk labels.
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mp_machdep.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.284 2007/05/08 22:01:02 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.285 2007/05/19 05:03:59 kan Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -80,6 +80,8 @@
int boot_cpu_id = -1; /* designated BSP */
extern int nkpt;
+extern struct pcpu __pcpu[];
+
/*
* CPU topology map datastructures for HTT.
*/
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/pmap.c#2 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.584 2007/04/25 18:10:43 ups Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.585 2007/05/18 07:10:43 jeff Exp $");
/*
* Manages physical address maps.
@@ -620,7 +620,7 @@
* numbers of pv entries.
*/
TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
- pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
+ pv_entry_max = shpgperproc * maxproc + VMCNT_GET(page_count);
TUNABLE_INT_FETCH("vm.pmap.pv_entries", &pv_entry_max);
pv_entry_high_water = 9 * (pv_entry_max / 10);
}
@@ -633,7 +633,7 @@
error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req);
if (error == 0 && req->newptr) {
- shpgperproc = (pv_entry_max - cnt.v_page_count) / maxproc;
+ shpgperproc = (pv_entry_max - VMCNT_GET(page_count)) / maxproc;
pv_entry_high_water = 9 * (pv_entry_max / 10);
}
return (error);
@@ -648,7 +648,7 @@
error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req);
if (error == 0 && req->newptr) {
- pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
+ pv_entry_max = shpgperproc * maxproc + VMCNT_GET(page_count);
pv_entry_high_water = 9 * (pv_entry_max / 10);
}
return (error);
@@ -1149,8 +1149,7 @@
*/
m->right = *free;
*free = m;
-
- atomic_subtract_int(&cnt.v_wire_count, 1);
+ VMCNT_DEC(wire_count, 1);
return 1;
}
@@ -1460,7 +1459,7 @@
pmap->pm_pml4[PML4PML4I] = 0; /* Recursive Mapping */
m->wire_count--;
- atomic_subtract_int(&cnt.v_wire_count, 1);
+ VMCNT_DEC(wire_count, 1);
vm_page_free_zero(m);
PMAP_LOCK_DESTROY(pmap);
}
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/md_var.h#2 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.80 2007/01/18 05:46:32 rodrigc Exp $
+ * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.81 2007/05/19 05:03:59 kan Exp $
*/
#ifndef _MACHINE_MD_VAR_H_
@@ -57,8 +57,6 @@
extern uint64_t *vm_page_dump;
extern int vm_page_dump_size;
-extern struct pcpu __pcpu[];
-
typedef void alias_for_inthand_t(u_int cs, u_int ef, u_int esp, u_int ss);
struct thread;
struct reg;
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/smp.h#2 (text+ko) ====
@@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
- * $FreeBSD: src/sys/amd64/include/smp.h,v 1.89 2007/03/06 17:16:46 jhb Exp $
+ * $FreeBSD: src/sys/amd64/include/smp.h,v 1.90 2007/05/19 05:01:43 kan Exp $
*
*/
@@ -23,6 +23,7 @@
#include <machine/frame.h>
#include <machine/intr_machdep.h>
#include <machine/apicvar.h>
+#include <machine/pcb.h>
/* global symbols in mpboot.S */
extern char mptramp_start[];
==== //depot/projects/soc2007/rdivacky/linux_futex/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.28 2007/04/02 18:38:12 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.29 2007/05/14 22:40:04 jhb Exp $");
#include "opt_compat.h"
#ifndef COMPAT_IA32
@@ -121,7 +121,7 @@
static void linux_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask);
static void exec_linux_setregs(struct thread *td, u_long entry,
u_long stack, u_long ps_strings);
-static void linux32_fixlimits(struct proc *p);
+static void linux32_fixlimit(struct rlimit *rl, int which);
extern LIST_HEAD(futex_list, futex) futex_list;
extern struct sx futex_sx;
@@ -966,42 +966,36 @@
SYSCTL_ULONG(_compat_linux32, OID_AUTO, maxvmem, CTLFLAG_RW,
&linux32_maxvmem, 0, "");
-/*
- * XXX copied from ia32_sysvec.c.
- */
static void
-linux32_fixlimits(struct proc *p)
+linux32_fixlimit(struct rlimit *rl, int which)
{
- struct plimit *oldlim, *newlim;
- if (linux32_maxdsiz == 0 && linux32_maxssiz == 0 &&
- linux32_maxvmem == 0)
- return;
- newlim = lim_alloc();
- PROC_LOCK(p);
- oldlim = p->p_limit;
- lim_copy(newlim, oldlim);
- if (linux32_maxdsiz != 0) {
- if (newlim->pl_rlimit[RLIMIT_DATA].rlim_cur > linux32_maxdsiz)
- newlim->pl_rlimit[RLIMIT_DATA].rlim_cur = linux32_maxdsiz;
- if (newlim->pl_rlimit[RLIMIT_DATA].rlim_max > linux32_maxdsiz)
- newlim->pl_rlimit[RLIMIT_DATA].rlim_max = linux32_maxdsiz;
- }
- if (linux32_maxssiz != 0) {
- if (newlim->pl_rlimit[RLIMIT_STACK].rlim_cur > linux32_maxssiz)
- newlim->pl_rlimit[RLIMIT_STACK].rlim_cur = linux32_maxssiz;
- if (newlim->pl_rlimit[RLIMIT_STACK].rlim_max > linux32_maxssiz)
- newlim->pl_rlimit[RLIMIT_STACK].rlim_max = linux32_maxssiz;
- }
- if (linux32_maxvmem != 0) {
- if (newlim->pl_rlimit[RLIMIT_VMEM].rlim_cur > linux32_maxvmem)
- newlim->pl_rlimit[RLIMIT_VMEM].rlim_cur = linux32_maxvmem;
- if (newlim->pl_rlimit[RLIMIT_VMEM].rlim_max > linux32_maxvmem)
- newlim->pl_rlimit[RLIMIT_VMEM].rlim_max = linux32_maxvmem;
+ switch (which) {
+ case RLIMIT_DATA:
+ if (linux32_maxdsiz != 0) {
+ if (rl->rlim_cur > linux32_maxdsiz)
+ rl->rlim_cur = linux32_maxdsiz;
+ if (rl->rlim_max > linux32_maxdsiz)
+ rl->rlim_max = linux32_maxdsiz;
+ }
+ break;
+ case RLIMIT_STACK:
+ if (linux32_maxssiz != 0) {
+ if (rl->rlim_cur > linux32_maxssiz)
+ rl->rlim_cur = linux32_maxssiz;
+ if (rl->rlim_max > linux32_maxssiz)
+ rl->rlim_max = linux32_maxssiz;
+ }
+ break;
+ case RLIMIT_VMEM:
+ if (linux32_maxvmem != 0) {
+ if (rl->rlim_cur > linux32_maxvmem)
+ rl->rlim_cur = linux32_maxvmem;
+ if (rl->rlim_max > linux32_maxvmem)
+ rl->rlim_max = linux32_maxvmem;
+ }
+ break;
}
- p->p_limit = newlim;
- PROC_UNLOCK(p);
- lim_free(oldlim);
}
struct sysentvec elf_linux_sysvec = {
@@ -1030,7 +1024,7 @@
VM_PROT_ALL,
linux_copyout_strings,
exec_linux_setregs,
- linux32_fixlimits
+ linux32_fixlimit
};
static Elf32_Brandinfo linux_brand = {
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/machdep.c#2 (text+ko) ====
@@ -44,7 +44,7 @@
#include "opt_compat.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.25 2007/02/14 04:41:28 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.26 2007/05/18 07:10:43 jeff Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -286,8 +286,8 @@
vm_ksubmap_init(&kmi);
printf("avail memory = %ju (%ju MB)\n",
- (uintmax_t)ptoa(cnt.v_free_count),
- (uintmax_t)ptoa(cnt.v_free_count) / 1048576);
+ (uintmax_t)ptoa(VMCNT_GET(free_count)),
+ (uintmax_t)ptoa(VMCNT_GET(free_count)) / 1048576);
bufinit();
vm_pager_bufferinit();
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/pmap.c#2 (text+ko) ====
@@ -147,7 +147,7 @@
#include "opt_vm.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.78 2007/02/05 10:33:39 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.79 2007/05/18 07:10:43 jeff Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -1970,7 +1970,7 @@
TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
- pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
+ pv_entry_max = shpgperproc * maxproc + VMCNT_GET(page_count);
pv_entry_high_water = 9 * (pv_entry_max / 10);
l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor,
NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/Makefile#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.59 2005/07/15 12:22:14 ache Exp $
+# $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.60 2007/05/19 05:07:47 kan Exp $
FILES= boot boot1 boot2
@@ -36,7 +36,8 @@
-I${.CURDIR}/../btx/lib -I. \
-Wall -Waggregate-return -Wbad-function-cast -Wcast-align \
-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
- -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings
+ -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
+ -Winline --param max-inline-insns-single=100
LDFLAGS=-static -N --gc-sections
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_periph.c#2 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.68 2007/04/19 23:34:51 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.69 2007/05/14 21:48:52 scottl Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -102,7 +102,8 @@
int ndrivers;
ndrivers = nperiph_drivers + 2;
- newdrivers = malloc(sizeof(*newdrivers) * ndrivers, M_TEMP, M_WAITOK);
+ newdrivers = malloc(sizeof(*newdrivers) * ndrivers, M_CAMPERIPH,
+ M_WAITOK);
if (periph_drivers)
bcopy(periph_drivers, newdrivers,
sizeof(*newdrivers) * nperiph_drivers);
@@ -111,7 +112,7 @@
old = periph_drivers;
periph_drivers = newdrivers;
if (old)
- free(old, M_TEMP);
+ free(old, M_CAMPERIPH);
nperiph_drivers++;
}
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.c#2 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.183 2007/04/27 14:23:05 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.187 2007/05/16 16:57:21 scottl Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -1197,6 +1197,7 @@
error = ENOTSUP;
break;
}
+ xpt_release_bus(bus);
break;
}
/*
@@ -1533,7 +1534,7 @@
*/
xsoftc.xpt_config_hook =
(struct intr_config_hook *)malloc(sizeof(struct intr_config_hook),
- M_TEMP, M_NOWAIT | M_ZERO);
+ M_CAMXPT, M_NOWAIT | M_ZERO);
if (xsoftc.xpt_config_hook == NULL) {
printf("xpt_init: Cannot malloc config hook "
"- failing attach\n");
@@ -1542,7 +1543,7 @@
xsoftc.xpt_config_hook->ich_func = xpt_config;
if (config_intrhook_establish(xsoftc.xpt_config_hook) != 0) {
- free (xsoftc.xpt_config_hook, M_TEMP);
+ free (xsoftc.xpt_config_hook, M_CAMXPT);
printf("xpt_init: config_intrhook_establish failed "
"- failing attach\n");
}
@@ -4139,7 +4140,6 @@
void
xpt_print_path(struct cam_path *path)
{
- mtx_assert(path->bus->sim->mtx, MA_OWNED);
if (path == NULL)
printf("(nopath): ");
@@ -5243,7 +5243,7 @@
/* Save some state for use while we probe for devices */
scan_info = (xpt_scan_bus_info *)
- malloc(sizeof(xpt_scan_bus_info), M_TEMP, M_NOWAIT);
+ malloc(sizeof(xpt_scan_bus_info), M_CAMXPT, M_NOWAIT);
scan_info->request_ccb = request_ccb;
scan_info->cpi = &work_ccb->cpi;
@@ -5277,7 +5277,7 @@
printf("xpt_scan_bus: xpt_create_path failed"
" with status %#x, bus scan halted\n",
status);
- free(scan_info, M_TEMP);
+ free(scan_info, M_CAMXPT);
request_ccb->ccb_h.status = status;
xpt_free_ccb(work_ccb);
xpt_done(request_ccb);
@@ -5285,7 +5285,7 @@
}
work_ccb = xpt_alloc_ccb_nowait();
if (work_ccb == NULL) {
- free(scan_info, M_TEMP);
+ free(scan_info, M_CAMXPT);
xpt_free_path(path);
request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
xpt_done(request_ccb);
@@ -5398,7 +5398,7 @@
xpt_free_ccb(request_ccb);
xpt_free_ccb((union ccb *)scan_info->cpi);
request_ccb = scan_info->request_ccb;
- free(scan_info, M_TEMP);
+ free(scan_info, M_CAMXPT);
request_ccb->ccb_h.status = CAM_REQ_CMP;
xpt_done(request_ccb);
break;
@@ -5417,7 +5417,7 @@
xpt_free_ccb(request_ccb);
xpt_free_ccb((union ccb *)scan_info->cpi);
request_ccb = scan_info->request_ccb;
- free(scan_info, M_TEMP);
+ free(scan_info, M_CAMXPT);
request_ccb->ccb_h.status = status;
xpt_done(request_ccb);
break;
@@ -5518,17 +5518,17 @@
}
if (request_ccb == NULL) {
- request_ccb = malloc(sizeof(union ccb), M_TEMP, M_NOWAIT);
+ request_ccb = malloc(sizeof(union ccb), M_CAMXPT, M_NOWAIT);
if (request_ccb == NULL) {
xpt_print(path, "xpt_scan_lun: can't allocate CCB, "
"can't continue\n");
return;
}
- new_path = malloc(sizeof(*new_path), M_TEMP, M_NOWAIT);
+ new_path = malloc(sizeof(*new_path), M_CAMXPT, M_NOWAIT);
if (new_path == NULL) {
xpt_print(path, "xpt_scan_lun: can't allocate path, "
"can't continue\n");
- free(request_ccb, M_TEMP);
+ free(request_ccb, M_CAMXPT);
return;
}
status = xpt_compile_path(new_path, xpt_periph,
@@ -5539,8 +5539,8 @@
if (status != CAM_REQ_CMP) {
xpt_print(path, "xpt_scan_lun: can't compile path, "
"can't continue\n");
- free(request_ccb, M_TEMP);
- free(new_path, M_TEMP);
+ free(request_ccb, M_CAMXPT);
+ free(new_path, M_CAMXPT);
return;
}
xpt_setup_ccb(&request_ccb->ccb_h, new_path, /*priority*/ 1);
@@ -5575,8 +5575,8 @@
xptscandone(struct cam_periph *periph, union ccb *done_ccb)
{
xpt_release_path(done_ccb->ccb_h.path);
- free(done_ccb->ccb_h.path, M_TEMP);
- free(done_ccb, M_TEMP);
+ free(done_ccb->ccb_h.path, M_CAMXPT);
+ free(done_ccb, M_CAMXPT);
}
static cam_status
@@ -5598,7 +5598,7 @@
return(CAM_REQ_CMP_ERR);
}
- softc = (probe_softc *)malloc(sizeof(*softc), M_TEMP, M_NOWAIT);
+ softc = (probe_softc *)malloc(sizeof(*softc), M_CAMXPT, M_NOWAIT);
if (softc == NULL) {
printf("proberegister: Unable to probe new device. "
@@ -5751,7 +5751,7 @@
if (softc->action == PROBE_INQUIRY_BASIC_DV1
|| softc->action == PROBE_INQUIRY_BASIC_DV2) {
- inq_buf = malloc(inquiry_len, M_TEMP, M_NOWAIT);
+ inq_buf = malloc(inquiry_len, M_CAMXPT, M_NOWAIT);
}
if (inq_buf == NULL) {
xpt_print(periph->path, "malloc failure- skipping Basic"
@@ -5785,7 +5785,7 @@
mode_buf_len = sizeof(struct scsi_mode_header_6)
+ sizeof(struct scsi_mode_blk_desc)
+ sizeof(struct scsi_control_page);
- mode_buf = malloc(mode_buf_len, M_TEMP, M_NOWAIT);
+ mode_buf = malloc(mode_buf_len, M_CAMXPT, M_NOWAIT);
if (mode_buf != NULL) {
scsi_mode_sense(csio,
/*retries*/4,
@@ -5817,7 +5817,7 @@
if ((device->quirk->quirks & CAM_QUIRK_NOSERIAL) == 0)
serial_buf = (struct scsi_vpd_unit_serial_number *)
- malloc(sizeof(*serial_buf), M_TEMP,
+ malloc(sizeof(*serial_buf), M_CAMXPT,
M_NOWAIT | M_ZERO);
if (serial_buf != NULL) {
@@ -6107,7 +6107,7 @@
/*count*/1, /*run_queue*/TRUE);
}
xpt_release_ccb(done_ccb);
- free(mode_hdr, M_TEMP);
+ free(mode_hdr, M_CAMXPT);
softc->action = PROBE_SERIAL_NUM;
xpt_schedule(periph, priority);
return;
@@ -6194,7 +6194,7 @@
xpt_async(AC_LOST_DEVICE, path, NULL);
}
if (serial_buf != NULL)
- free(serial_buf, M_TEMP);
+ free(serial_buf, M_CAMXPT);
if (changed != 0) {
/*
@@ -6283,12 +6283,12 @@
/* give up */
softc->action = PROBE_DV_EXIT;
}
- free(nbuf, M_TEMP);
+ free(nbuf, M_CAMXPT);
xpt_release_ccb(done_ccb);
xpt_schedule(periph, priority);
return;
}
- free(nbuf, M_TEMP);
+ free(nbuf, M_CAMXPT);
if (softc->action == PROBE_INQUIRY_BASIC_DV1) {
softc->action = PROBE_INQUIRY_BASIC_DV2;
xpt_release_ccb(done_ccb);
@@ -6327,7 +6327,7 @@
static void
probecleanup(struct cam_periph *periph)
{
- free(periph->softc, M_TEMP);
+ free(periph->softc, M_CAMXPT);
}
static void
@@ -6984,7 +6984,7 @@
/* Release our hook so that the boot can continue. */
config_intrhook_disestablish(xsoftc.xpt_config_hook);
- free(xsoftc.xpt_config_hook, M_TEMP);
+ free(xsoftc.xpt_config_hook, M_CAMXPT);
xsoftc.xpt_config_hook = NULL;
}
@@ -7029,6 +7029,39 @@
xpt_free_ccb(done_ccb);
}
+cam_status
+xpt_register_async(int event, ac_callback_t *cbfunc, void *cbarg,
+ struct cam_path *path)
+{
+ struct ccb_setasync csa;
+ cam_status status;
+ int xptpath = 0;
+
+ if (path == NULL) {
+ mtx_lock(&xsoftc.xpt_lock);
+ status = xpt_create_path(&path, /*periph*/NULL, CAM_XPT_PATH_ID,
+ CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD);
+ if (status != CAM_REQ_CMP) {
+ mtx_unlock(&xsoftc.xpt_lock);
+ return (status);
+ }
+ xptpath = 1;
+ }
+
+ xpt_setup_ccb(&csa.ccb_h, path, /*priority*/5);
+ csa.ccb_h.func_code = XPT_SASYNC_CB;
+ csa.event_enable = event;
+ csa.callback = cbfunc;
+ csa.callback_arg = cbarg;
+ xpt_action((union ccb *)&csa);
+ status = csa.ccb_h.status;
+ if (xptpath) {
+ xpt_free_path(path);
+ mtx_unlock(&xsoftc.xpt_lock);
+ }
+ return (status);
+}
+
static void
xptaction(struct cam_sim *sim, union ccb *work_ccb)
{
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.h#2 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/cam/cam_xpt.h,v 1.8 2007/04/15 08:49:09 scottl Exp $
+ * $FreeBSD: src/sys/cam/cam_xpt.h,v 1.9 2007/05/16 16:54:23 scottl Exp $
*/
#ifndef _CAM_CAM_XPT_H
@@ -79,6 +79,8 @@
void xpt_rescan(union ccb *ccb);
void xpt_lock_buses(void);
void xpt_unlock_buses(void);
+cam_status xpt_register_async(int event, ac_callback_t *cbfunc,
+ void *cbarg, struct cam_path *path);
#endif /* _KERNEL */
#endif /* _CAM_CAM_XPT_H */
==== //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_cd.c#2 (text+ko) ====
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.99 2007/04/16 19:41:14 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.101 2007/05/16 16:54:23 scottl Exp $");
#include "opt_cd.h"
@@ -329,11 +329,12 @@
static STAILQ_HEAD(changerlist, cdchanger) changerq;
static int num_changers;
+MALLOC_DEFINE(M_SCSICD, "scsi_cd", "scsi_cd buffers");
+
static void
cdinit(void)
{
cam_status status;
- struct cam_path *path;
mtx_init(&changerq_mtx, "cdchangerq", "SCSI CD Changer List", MTX_DEF);
STAILQ_INIT(&changerq);
@@ -342,22 +343,8 @@
* Install a global async callback. This callback will
* receive async callbacks like "new device found".
*/
- status = xpt_create_path(&path, /*periph*/NULL, CAM_XPT_PATH_ID,
- CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD);
-
- if (status == CAM_REQ_CMP) {
- struct ccb_setasync csa;
+ status = xpt_register_async(AC_FOUND_DEVICE, cdasync, NULL, NULL);
- xpt_setup_ccb(&csa.ccb_h, path, /*priority*/5);
- csa.ccb_h.func_code = XPT_SASYNC_CB;
- csa.event_enable = AC_FOUND_DEVICE;
- csa.callback = cdasync;
- csa.callback_arg = NULL;
- xpt_action((union ccb *)&csa);
- status = csa.ccb_h.status;
- xpt_free_path(path);
- }
-
if (status != CAM_REQ_CMP) {
printf("cd: Failed to attach master async callback "
"due to status 0x%x!\n", status);
@@ -368,20 +355,13 @@
cdoninvalidate(struct cam_periph *periph)
{
struct cd_softc *softc;
- struct ccb_setasync csa;
softc = (struct cd_softc *)periph->softc;
/*
* De-register any async callbacks.
*/
- xpt_setup_ccb(&csa.ccb_h, periph->path,
- /* priority */ 5);
- csa.ccb_h.func_code = XPT_SASYNC_CB;
- csa.event_enable = 0;
- csa.callback = cdasync;
- csa.callback_arg = periph;
- xpt_action((union ccb *)&csa);
+ xpt_register_async(0, cdasync, periph, periph->path);
softc->flags |= CD_FLAG_INVALID;
@@ -637,7 +617,6 @@
cdregister(struct cam_periph *periph, void *arg)
{
struct cd_softc *softc;
- struct ccb_setasync csa;
struct ccb_pathinq cpi;
struct ccb_getdev *cgd;
char tmpstr[80];
@@ -749,13 +728,8 @@
* Add an async callback so that we get
* notified if this device goes away.
*/
- xpt_setup_ccb(&csa.ccb_h, periph->path,
- /* priority */ 5);
- csa.ccb_h.func_code = XPT_SASYNC_CB;
- csa.event_enable = AC_SENT_BDR | AC_BUS_RESET | AC_LOST_DEVICE;
- csa.callback = cdasync;
- csa.callback_arg = periph;
- xpt_action((union ccb *)&csa);
+ xpt_register_async(AC_SENT_BDR | AC_BUS_RESET | AC_LOST_DEVICE,
+ cdasync, periph, periph->path);
/*
* If the target lun is greater than 0, we most likely have a CD
@@ -1519,7 +1493,7 @@
{
rcap = (struct scsi_read_capacity_data *)malloc(sizeof(*rcap),
- M_TEMP,
+ M_SCSICD,
M_NOWAIT);
if (rcap == NULL) {
xpt_print(periph->path,
@@ -1778,7 +1752,7 @@
}
}
}
- free(rdcap, M_TEMP);
+ free(rdcap, M_SCSICD);
if (announce_buf[0] != '\0') {
xpt_announce_periph(periph, announce_buf);
if (softc->flags & CD_FLAG_CHANGER)
@@ -1906,7 +1880,7 @@
union cd_pages *page;
params.alloc_len = sizeof(union cd_mode_data_6_10);
- params.mode_buf = malloc(params.alloc_len, M_TEMP,
+ params.mode_buf = malloc(params.alloc_len, M_SCSICD,
M_WAITOK | M_ZERO);
cam_periph_lock(periph);
@@ -1915,7 +1889,7 @@
error = cdgetmode(periph, ¶ms, AUDIO_PAGE);
if (error) {
- free(params.mode_buf, M_TEMP);
+ free(params.mode_buf, M_SCSICD);
cam_periph_unlock(periph);
break;
}
@@ -1924,7 +1898,7 @@
page->audio.flags &= ~CD_PA_SOTC;
page->audio.flags |= CD_PA_IMMED;
error = cdsetmode(periph, ¶ms);
- free(params.mode_buf, M_TEMP);
+ free(params.mode_buf, M_SCSICD);
if (error) {
cam_periph_unlock(periph);
break;
@@ -2001,7 +1975,7 @@
union cd_pages *page;
params.alloc_len = sizeof(union cd_mode_data_6_10);
- params.mode_buf = malloc(params.alloc_len, M_TEMP,
+ params.mode_buf = malloc(params.alloc_len, M_SCSICD,
M_WAITOK | M_ZERO);
cam_periph_lock(periph);
@@ -2010,7 +1984,7 @@
error = cdgetmode(periph, ¶ms, AUDIO_PAGE);
if (error) {
- free(params.mode_buf, M_TEMP);
+ free(params.mode_buf, M_SCSICD);
cam_periph_unlock(periph);
break;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list