PERFORCE change 104674 for review
Paolo Pisati
piso at FreeBSD.org
Mon Aug 21 10:24:41 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=104674
Change 104674 by piso at piso_newluxor on 2006/08/21 10:23:35
IFC
Affected files ...
.. //depot/projects/soc2006/intr_filter/Makefile#3 integrate
.. //depot/projects/soc2006/intr_filter/amd64/acpica/madt.c#2 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/pmap.c#7 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/support.S#2 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/trap.c#4 integrate
.. //depot/projects/soc2006/intr_filter/amd64/include/pmap.h#3 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux.h#2 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_dummy.c#3 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_machdep.c#2 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_proto.h#7 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_syscall.h#7 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_sysent.c#7 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_sysvec.c#2 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/syscalls.conf#2 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/syscalls.master#7 integrate
.. //depot/projects/soc2006/intr_filter/arm/arm/elf_trampoline.c#5 integrate
.. //depot/projects/soc2006/intr_filter/arm/arm/mem.c#2 integrate
.. //depot/projects/soc2006/intr_filter/arm/arm/pmap.c#4 integrate
.. //depot/projects/soc2006/intr_filter/arm/arm/vm_machdep.c#3 integrate
.. //depot/projects/soc2006/intr_filter/arm/at91/at91_st.c#6 integrate
.. //depot/projects/soc2006/intr_filter/arm/at91/kb920x_machdep.c#5 integrate
.. //depot/projects/soc2006/intr_filter/arm/include/pmap.h#2 integrate
.. //depot/projects/soc2006/intr_filter/arm/include/sf_buf.h#2 integrate
.. //depot/projects/soc2006/intr_filter/arm/include/vmparam.h#2 integrate
.. //depot/projects/soc2006/intr_filter/arm/sa11x0/assabet_machdep.c#2 integrate
.. //depot/projects/soc2006/intr_filter/arm/xscale/i80321/iq31244_machdep.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/Makefile#3 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/Makefile.inc#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/boot0/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/boot0iic/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/boot0iic/doit.c#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/boot0iic/main.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/boot0spi/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/boot0spi/doit.c#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/boot0spi/main.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootiic/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootiic/arm_init.S#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootiic/env_vars.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootiic/env_vars.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootiic/loader_prompt.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootiic/loader_prompt.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootiic/main.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootspi/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootspi/arm_init.S#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootspi/arm_init.s#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootspi/env_vars.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootspi/env_vars.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootspi/loader_prompt.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootspi/loader_prompt.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/bootspi/main.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/at91rm9200.h#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/at91rm9200_lowlevel.h#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/delay.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/eeprom.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/eeprom.h#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/emac.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/emac.h#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/emac_init.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/env_vars.c#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/env_vars.h#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/lib.h#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/lib_AT91RM9200.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/loader_prompt.c#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/loader_prompt.h#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/mci_device.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/mci_device.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/p_string.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/p_string.h#2 delete
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/reset.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/sd-card.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/sd-card.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/spi_flash.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/spi_flash.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/arm/at91/libat91/xmodem.c#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/common/help.common#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/common/loader.8#2 integrate
.. //depot/projects/soc2006/intr_filter/boot/ficl/arm/sysdep.c#1 branch
.. //depot/projects/soc2006/intr_filter/boot/ficl/arm/sysdep.h#1 branch
.. //depot/projects/soc2006/intr_filter/boot/forth/loader.conf#3 integrate
.. //depot/projects/soc2006/intr_filter/cam/scsi/scsi_pass.c#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/freebsd32/freebsd32.h#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/freebsd32/freebsd32_misc.c#3 integrate
.. //depot/projects/soc2006/intr_filter/compat/freebsd32/freebsd32_proto.h#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/freebsd32/freebsd32_syscall.h#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/freebsd32/freebsd32_syscalls.c#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/freebsd32/freebsd32_sysent.c#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/freebsd32/syscalls.conf#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/freebsd32/syscalls.master#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/linprocfs/linprocfs.c#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_emul.c#1 branch
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_emul.h#1 branch
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_futex.c#1 branch
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_futex.h#1 branch
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_misc.c#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_signal.c#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_time.c#1 branch
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_util.c#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/ndis/ntoskrnl_var.h#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/svr4/svr4_proto.h#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/svr4/svr4_stream.c#3 integrate
.. //depot/projects/soc2006/intr_filter/compat/svr4/svr4_syscall.h#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/svr4/svr4_syscallnames.c#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/svr4/svr4_sysent.c#4 integrate
.. //depot/projects/soc2006/intr_filter/compat/svr4/syscalls.conf#2 integrate
.. //depot/projects/soc2006/intr_filter/conf/NOTES#7 integrate
.. //depot/projects/soc2006/intr_filter/conf/files#6 integrate
.. //depot/projects/soc2006/intr_filter/conf/files.amd64#4 integrate
.. //depot/projects/soc2006/intr_filter/conf/files.i386#4 integrate
.. //depot/projects/soc2006/intr_filter/conf/files.pc98#3 integrate
.. //depot/projects/soc2006/intr_filter/conf/kern.post.mk#4 integrate
.. //depot/projects/soc2006/intr_filter/conf/kmod.mk#3 integrate
.. //depot/projects/soc2006/intr_filter/conf/options#5 integrate
.. //depot/projects/soc2006/intr_filter/conf/options.arm#3 integrate
.. //depot/projects/soc2006/intr_filter/contrib/dev/acpica/acfreebsd.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/fil.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_auth.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_auth.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_compat.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_fil.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_fil_freebsd.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_frag.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_ftp_pxy.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_log.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_nat.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_pptp_pxy.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_proxy.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_rcmd_pxy.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_scan.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_state.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_sync.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ip_sync.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/ipl.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ipfilter/netinet/mlfk_ipl.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/acpi_support/acpi_ibm.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/acpica/Osd/OsdMemory.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/acpica/acpi_dock.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/acpica/acpi_hpet.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/acpica/acpi_pci_link.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/acpica/acpi_video.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/arl/if_arlreg.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/ata/ata-chipset.c#7 integrate
.. //depot/projects/soc2006/intr_filter/dev/ata/ata-disk.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/ata/ata-pci.h#5 integrate
.. //depot/projects/soc2006/intr_filter/dev/ath/if_ath.c#5 integrate
.. //depot/projects/soc2006/intr_filter/dev/ath/if_athioctl.h#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/ath/if_athvar.h#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/bce/if_bce.c#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/bge/if_bge.c#5 integrate
.. //depot/projects/soc2006/intr_filter/dev/bge/if_bgereg.h#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/em/if_em.c#11 integrate
.. //depot/projects/soc2006/intr_filter/dev/em/if_em.h#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/em/if_em_hw.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/em/if_em_hw.h#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/exca/excareg.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/hme/if_hme.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/ips/ips.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/isp.c#5 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/isp_ioctl.h#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/isp_pci.c#6 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/ispvar.h#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/mii/rgephy.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/nfe/if_nfe.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/pccard/pccard_cis.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/pccbb/pccbb.c#6 integrate
.. //depot/projects/soc2006/intr_filter/dev/pccbb/pccbb_pci.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/pccbb/pccbbreg.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/sk/if_sk.c#5 integrate
.. //depot/projects/soc2006/intr_filter/dev/sound/pci/emu10k1.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/sound/pci/emu10kx-pcm.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/sound/pci/emu10kx.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/sound/pci/emu10kx.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/sound/pci/ich.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/stge/if_stge.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/ti/if_ti.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/usb/usb_port.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/usb/usbdevs#5 integrate
.. //depot/projects/soc2006/intr_filter/dev/usb/uscanner.c#3 integrate
.. //depot/projects/soc2006/intr_filter/fs/msdosfs/denode.h#2 integrate
.. //depot/projects/soc2006/intr_filter/fs/nwfs/nwfs_io.c#2 integrate
.. //depot/projects/soc2006/intr_filter/fs/smbfs/smbfs_io.c#2 integrate
.. //depot/projects/soc2006/intr_filter/geom/eli/g_eli.c#3 integrate
.. //depot/projects/soc2006/intr_filter/geom/eli/g_eli.h#2 integrate
.. //depot/projects/soc2006/intr_filter/geom/eli/g_eli_ctl.c#2 integrate
.. //depot/projects/soc2006/intr_filter/geom/geom_gpt.c#3 integrate
.. //depot/projects/soc2006/intr_filter/geom/label/g_label.c#2 integrate
.. //depot/projects/soc2006/intr_filter/geom/label/g_label_msdosfs.c#2 integrate
.. //depot/projects/soc2006/intr_filter/geom/label/g_label_msdosfs.h#1 branch
.. //depot/projects/soc2006/intr_filter/geom/mirror/g_mirror.c#4 integrate
.. //depot/projects/soc2006/intr_filter/geom/raid3/g_raid3.c#4 integrate
.. //depot/projects/soc2006/intr_filter/geom/vinum/geom_vinum_raid5.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/acpica/acpi_machdep.c#3 integrate
.. //depot/projects/soc2006/intr_filter/i386/acpica/acpi_wakeup.c#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/acpica/madt.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/conf/XBOX#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/machdep.c#3 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/pmap.c#6 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/support.s#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/i386/trap.c#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_isc_syscall.h#3 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_isc_sysent.c#3 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_proto.h#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_syscall.h#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_sysent.c#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_xenix.h#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_xenix_syscall.h#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_xenix_sysent.c#4 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/syscalls.conf#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/syscalls.isc.conf#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/syscalls.xenix.conf#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/include/pmap.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/isa/clock.c#6 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_dummy.c#3 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_machdep.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_proto.h#7 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_syscall.h#7 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_sysent.c#7 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_sysvec.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/syscalls.conf#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/syscalls.master#7 integrate
.. //depot/projects/soc2006/intr_filter/i386/xbox/xbox.c#2 integrate
.. //depot/projects/soc2006/intr_filter/ia64/include/pmap.h#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/init_sysent.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_exec.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_fork.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_lock.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_mutex.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_subr.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_sx.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_time.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/makesyscalls.sh#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/subr_turnstile.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/sys_process.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/syscalls.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/syscalls.master#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/systrace_args.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/uipc_proto.c#2 delete
.. //depot/projects/soc2006/intr_filter/kern/uipc_sem.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/uipc_socket.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/uipc_syscalls.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/uipc_usrreq.c#6 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_aio.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_bio.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_lookup.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_subr.c#5 integrate
.. //depot/projects/soc2006/intr_filter/libkern/strstr.c#1 branch
.. //depot/projects/soc2006/intr_filter/modules/Makefile#6 integrate
.. //depot/projects/soc2006/intr_filter/modules/if_ef/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/modules/if_ppp/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/modules/linprocfs/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/modules/linsysfs/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/modules/linux/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/modules/netgraph/mppc/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/modules/sound/sound/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/net/bpf.c#5 integrate
.. //depot/projects/soc2006/intr_filter/net/bridgestp.c#3 integrate
.. //depot/projects/soc2006/intr_filter/net/if_bridge.c#6 integrate
.. //depot/projects/soc2006/intr_filter/net/if_tun.c#3 integrate
.. //depot/projects/soc2006/intr_filter/net/if_vlan.c#6 integrate
.. //depot/projects/soc2006/intr_filter/net80211/ieee80211_input.c#3 integrate
.. //depot/projects/soc2006/intr_filter/net80211/ieee80211_ioctl.c#3 integrate
.. //depot/projects/soc2006/intr_filter/net80211/ieee80211_ioctl.h#3 integrate
.. //depot/projects/soc2006/intr_filter/net80211/ieee80211_output.c#3 integrate
.. //depot/projects/soc2006/intr_filter/netgraph/ng_pppoe.c#2 integrate
.. //depot/projects/soc2006/intr_filter/netgraph/ng_pppoe.h#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/ip_fastfwd.c#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/ip_fw.h#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/ip_fw2.c#5 integrate
.. //depot/projects/soc2006/intr_filter/netinet/ip_input.c#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/ip_output.c#3 integrate
.. //depot/projects/soc2006/intr_filter/netinet/tcp_input.c#4 integrate
.. //depot/projects/soc2006/intr_filter/netinet/tcp_subr.c#3 integrate
.. //depot/projects/soc2006/intr_filter/netinet/tcp_timer.c#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/tcp_timer.h#2 integrate
.. //depot/projects/soc2006/intr_filter/nfsclient/nfs_bio.c#2 integrate
.. //depot/projects/soc2006/intr_filter/nfsclient/nfs_lock.c#2 integrate
.. //depot/projects/soc2006/intr_filter/nfsclient/nfs_vfsops.c#2 integrate
.. //depot/projects/soc2006/intr_filter/pc98/include/md_var.h#2 integrate
.. //depot/projects/soc2006/intr_filter/pc98/pc98/pc98_machdep.c#2 integrate
.. //depot/projects/soc2006/intr_filter/pci/agp.c#2 integrate
.. //depot/projects/soc2006/intr_filter/pci/if_xl.c#5 integrate
.. //depot/projects/soc2006/intr_filter/pci/nfsmb.c#2 integrate
.. //depot/projects/soc2006/intr_filter/security/mac_biba/mac_biba.c#3 integrate
.. //depot/projects/soc2006/intr_filter/sparc64/sparc64/pmap.c#4 integrate
.. //depot/projects/soc2006/intr_filter/sys/dirent.h#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/domain.h#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/eventhandler.h#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/imgact.h#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/libkern.h#3 integrate
.. //depot/projects/soc2006/intr_filter/sys/lockmgr.h#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/mac_policy.h#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/param.h#3 integrate
.. //depot/projects/soc2006/intr_filter/sys/sx.h#3 integrate
.. //depot/projects/soc2006/intr_filter/sys/syscall.h#4 integrate
.. //depot/projects/soc2006/intr_filter/sys/syscall.mk#4 integrate
.. //depot/projects/soc2006/intr_filter/sys/sysctl.h#4 integrate
.. //depot/projects/soc2006/intr_filter/sys/sysent.h#3 integrate
.. //depot/projects/soc2006/intr_filter/sys/sysproto.h#4 integrate
.. //depot/projects/soc2006/intr_filter/ufs/ufs/ufs_vnops.c#2 integrate
.. //depot/projects/soc2006/intr_filter/vm/device_pager.c#2 integrate
.. //depot/projects/soc2006/intr_filter/vm/swap_pager.c#3 integrate
.. //depot/projects/soc2006/intr_filter/vm/vm_fault.c#4 integrate
.. //depot/projects/soc2006/intr_filter/vm/vm_object.c#3 integrate
.. //depot/projects/soc2006/intr_filter/vm/vm_page.c#4 integrate
.. //depot/projects/soc2006/intr_filter/vm/vm_page.h#2 integrate
.. //depot/projects/soc2006/intr_filter/vm/vm_pageq.c#3 integrate
.. //depot/projects/soc2006/intr_filter/vm/vm_zeroidle.c#2 integrate
.. //depot/projects/soc2006/intr_filter/vm/vnode_pager.c#2 integrate
Differences ...
==== //depot/projects/soc2006/intr_filter/Makefile#3 (text+ko) ====
@@ -1,13 +1,11 @@
-# $FreeBSD: src/sys/Makefile,v 1.37 2006/07/04 14:14:16 maxim Exp $
+# $FreeBSD: src/sys/Makefile,v 1.38 2006/08/10 06:29:43 imp Exp $
.include <bsd.own.mk>
# The boot loader
.if ${MK_BOOT} != "no"
-.if ${MACHINE_ARCH} != "arm"
SUBDIR= boot
.endif
-.endif
# Directories to include in cscope name file and TAGS.
CSCOPEDIRS= coda compat conf contrib crypto ddb dev fs geom gnu i4b isa \
==== //depot/projects/soc2006/intr_filter/amd64/acpica/madt.c#2 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.20 2006/03/27 15:59:48 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.21 2006/08/11 19:22:55 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -203,15 +203,15 @@
/*
* Map in the RSDP. Since ACPI uses AcpiOsMapMemory() which in turn
- * calls pmap_mapdev() to find the RSDP, we assume that we can use
- * pmap_mapdev() to map the RSDP.
+ * calls pmap_mapbios() to find the RSDP, we assume that we can use
+ * pmap_mapbios() to map the RSDP.
*/
if (AcpiOsGetRootPointer(ACPI_LOGICAL_ADDRESSING, &rsdp_ptr) != AE_OK)
return (ENXIO);
#ifdef __i386__
KASSERT(rsdp_ptr.Pointer.Physical < KERNLOAD, ("RSDP too high"));
#endif
- rsdp = pmap_mapdev(rsdp_ptr.Pointer.Physical, sizeof(RSDP_DESCRIPTOR));
+ rsdp = pmap_mapbios(rsdp_ptr.Pointer.Physical, sizeof(RSDP_DESCRIPTOR));
if (rsdp == NULL) {
if (bootverbose)
printf("MADT: Failed to map RSDP\n");
@@ -261,7 +261,7 @@
break;
madt_unmap_table(rsdt);
}
- pmap_unmapdev((vm_offset_t)rsdp, sizeof(RSDP_DESCRIPTOR));
+ pmap_unmapbios((vm_offset_t)rsdp, sizeof(RSDP_DESCRIPTOR));
if (madt_physaddr == 0) {
if (bootverbose)
printf("MADT: No MADT table found\n");
@@ -335,7 +335,7 @@
madt_setup_local(void)
{
- madt = pmap_mapdev(madt_physaddr, madt_length);
+ madt = pmap_mapbios(madt_physaddr, madt_length);
lapic_init((uintptr_t)madt->LocalApicAddress);
printf("ACPI APIC Table: <%.*s %.*s>\n",
(int)sizeof(madt->OemId), madt->OemId,
==== //depot/projects/soc2006/intr_filter/amd64/amd64/pmap.c#7 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.568 2006/08/01 19:06:04 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.571 2006/08/14 15:39:41 jhb Exp $");
/*
* Manages physical address maps.
@@ -665,6 +665,84 @@
* Low level helper routines.....
***************************************************/
+/*
+ * Determine the appropriate bits to set in a PTE or PDE for a specified
+ * caching mode.
+ */
+static int
+pmap_cache_bits(int mode, boolean_t is_pde)
+{
+ int pat_flag, pat_index, cache_bits;
+
+ /* The PAT bit is different for PTE's and PDE's. */
+ pat_flag = is_pde ? PG_PDE_PAT : PG_PTE_PAT;
+
+ /* If we don't support PAT, map extended modes to older ones. */
+ if (!(cpu_feature & CPUID_PAT)) {
+ switch (mode) {
+ case PAT_UNCACHEABLE:
+ case PAT_WRITE_THROUGH:
+ case PAT_WRITE_BACK:
+ break;
+ case PAT_UNCACHED:
+ case PAT_WRITE_COMBINING:
+ case PAT_WRITE_PROTECTED:
+ mode = PAT_UNCACHEABLE;
+ break;
+ }
+ }
+
+ /* Map the caching mode to a PAT index. */
+ switch (mode) {
+#ifdef PAT_WORKS
+ case PAT_UNCACHEABLE:
+ pat_index = 3;
+ break;
+ case PAT_WRITE_THROUGH:
+ pat_index = 1;
+ break;
+ case PAT_WRITE_BACK:
+ pat_index = 0;
+ break;
+ case PAT_UNCACHED:
+ pat_index = 2;
+ break;
+ case PAT_WRITE_COMBINING:
+ pat_index = 5;
+ break;
+ case PAT_WRITE_PROTECTED:
+ pat_index = 4;
+ break;
+#else
+ case PAT_UNCACHED:
+ case PAT_UNCACHEABLE:
+ case PAT_WRITE_PROTECTED:
+ pat_index = 3;
+ break;
+ case PAT_WRITE_THROUGH:
+ pat_index = 1;
+ break;
+ case PAT_WRITE_BACK:
+ pat_index = 0;
+ break;
+ case PAT_WRITE_COMBINING:
+ pat_index = 2;
+ break;
+#endif
+ default:
+ panic("Unknown caching mode %d\n", mode);
+ }
+
+ /* Map the 3-bit index value into the PAT, PCD, and PWT bits. */
+ cache_bits = 0;
+ if (pat_index & 0x4)
+ cache_bits |= pat_flag;
+ if (pat_index & 0x2)
+ cache_bits |= PG_NC_PCD;
+ if (pat_index & 0x1)
+ cache_bits |= PG_NC_PWT;
+ return (cache_bits);
+}
#ifdef SMP
/*
* For SMP, these functions have to use the IPI mechanism for coherence.
@@ -962,6 +1040,15 @@
pte_store(pte, pa | PG_RW | PG_V | PG_G);
}
+PMAP_INLINE void
+pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode)
+{
+ pt_entry_t *pte;
+
+ pte = vtopte(va);
+ pte_store(pte, pa | PG_RW | PG_V | PG_G | pmap_cache_bits(mode, 0));
+}
+
/*
* Remove a page from the kernel pagetables.
* Note: not SMP coherent.
@@ -2506,7 +2593,6 @@
retry:
p = vm_page_lookup(object, pindex);
if (p != NULL) {
- vm_page_lock_queues();
if (vm_page_sleep_if_busy(p, FALSE, "init4p"))
goto retry;
} else {
@@ -2525,8 +2611,8 @@
p = vm_page_lookup(object, pindex);
vm_page_lock_queues();
vm_page_wakeup(p);
+ vm_page_unlock_queues();
}
- vm_page_unlock_queues();
ptepa = VM_PAGE_TO_PHYS(p);
if (ptepa & (NBPDR - 1))
@@ -3102,6 +3188,46 @@
* Miscellaneous support routines follow
*/
+/* Adjust the cache mode for a 4KB page mapped via a PTE. */
+static __inline void
+pmap_pte_attr(vm_offset_t va, int mode)
+{
+ pt_entry_t *pte;
+ u_int opte, npte;
+
+ pte = vtopte(va);
+
+ /*
+ * The cache mode bits are all in the low 32-bits of the
+ * PTE, so we can just spin on updating the low 32-bits.
+ */
+ do {
+ opte = *(u_int *)pte;
+ npte = opte & ~(PG_PTE_PAT | PG_NC_PCD | PG_NC_PWT);
+ npte |= pmap_cache_bits(mode, 0);
+ } while (npte != opte && !atomic_cmpset_int((u_int *)pte, opte, npte));
+}
+
+/* Adjust the cache mode for a 2MB page mapped via a PDE. */
+static __inline void
+pmap_pde_attr(vm_offset_t va, int mode)
+{
+ pd_entry_t *pde;
+ u_int opde, npde;
+
+ pde = pmap_pde(kernel_pmap, va);
+
+ /*
+ * The cache mode bits are all in the low 32-bits of the
+ * PDE, so we can just spin on updating the low 32-bits.
+ */
+ do {
+ opde = *(u_int *)pde;
+ npde = opde & ~(PG_PDE_PAT | PG_NC_PCD | PG_NC_PWT);
+ npde |= pmap_cache_bits(mode, 1);
+ } while (npde != opde && !atomic_cmpset_int((u_int *)pde, opde, npde));
+}
+
/*
* Map a set of physical memory pages into the kernel virtual
* address space. Return a pointer to where it is mapped. This
@@ -3109,12 +3235,15 @@
* NOT real memory.
*/
void *
-pmap_mapdev(vm_paddr_t pa, vm_size_t size)
+pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode)
{
vm_offset_t va, tmpva, offset;
- /* If this fits within the direct map window, use it */
- if (pa < dmaplimit && (pa + size) < dmaplimit)
+ /*
+ * If this fits within the direct map window and use WB caching
+ * mode, use the direct map.
+ */
+ if (pa < dmaplimit && (pa + size) < dmaplimit && mode == PAT_WRITE_BACK)
return ((void *)PHYS_TO_DMAP(pa));
offset = pa & PAGE_MASK;
size = roundup(offset + size, PAGE_SIZE);
@@ -3123,15 +3252,30 @@
panic("pmap_mapdev: Couldn't alloc kernel virtual memory");
pa = trunc_page(pa);
for (tmpva = va; size > 0; ) {
- pmap_kenter(tmpva, pa);
+ pmap_kenter_attr(tmpva, pa, mode);
size -= PAGE_SIZE;
tmpva += PAGE_SIZE;
pa += PAGE_SIZE;
}
pmap_invalidate_range(kernel_pmap, va, tmpva);
+ pmap_invalidate_cache();
return ((void *)(va + offset));
}
+void *
+pmap_mapdev(vm_paddr_t pa, vm_size_t size)
+{
+
+ return (pmap_mapdev_attr(pa, size, PAT_UNCACHEABLE));
+}
+
+void *
+pmap_mapbios(vm_paddr_t pa, vm_size_t size)
+{
+
+ return (pmap_mapdev_attr(pa, size, PAT_WRITE_BACK));
+}
+
void
pmap_unmapdev(vm_offset_t va, vm_size_t size)
{
@@ -3149,6 +3293,73 @@
kmem_free(kernel_map, base, size);
}
+int
+pmap_change_attr(va, size, mode)
+ vm_offset_t va;
+ vm_size_t size;
+ int mode;
+{
+ vm_offset_t base, offset, tmpva;
+ pd_entry_t *pde;
+ pt_entry_t *pte;
+
+ base = va & PG_FRAME;
+ offset = va & PAGE_MASK;
+ size = roundup(offset + size, PAGE_SIZE);
+
+ /* Only supported on kernel virtual addresses. */
+ if (base <= VM_MAXUSER_ADDRESS)
+ return (EINVAL);
+
+ /*
+ * XXX: We have to support tearing 2MB pages down into 4k pages if
+ * needed here.
+ */
+ /* Pages that aren't mapped aren't supported. */
+ for (tmpva = base; tmpva < (base + size); ) {
+ pde = pmap_pde(kernel_pmap, tmpva);
+ if (*pde == 0)
+ return (EINVAL);
+ if (*pde & PG_PS) {
+ /* Handle 2MB pages that are completely contained. */
+ if (size >= NBPDR) {
+ tmpva += NBPDR;
+ continue;
+ }
+ return (EINVAL);
+ }
+ pte = vtopte(va);
+ if (*pte == 0)
+ return (EINVAL);
+ tmpva += PAGE_SIZE;
+ }
+
+ /*
+ * Ok, all the pages exist, so run through them updating their
+ * cache mode.
+ */
+ for (tmpva = base; size > 0; ) {
+ pde = pmap_pde(kernel_pmap, tmpva);
+ if (*pde & PG_PS) {
+ pmap_pde_attr(tmpva, mode);
+ tmpva += NBPDR;
+ size -= NBPDR;
+ } else {
+ pmap_pte_attr(tmpva, mode);
+ tmpva += PAGE_SIZE;
+ size -= PAGE_SIZE;
+ }
+ }
+
+ /*
+ * Flush CPU caches to make sure any data isn't cached that shouldn't
+ * be, etc.
+ */
+ pmap_invalidate_range(kernel_pmap, base, tmpva);
+ pmap_invalidate_cache();
+ return (0);
+}
+
/*
* perform the pmap work for mincore
*/
==== //depot/projects/soc2006/intr_filter/amd64/amd64/support.S#2 (text+ko) ====
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.116 2005/09/27 18:32:46 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.119 2006/08/16 22:22:28 davidxu Exp $
*/
#include "opt_ddb.h"
==== //depot/projects/soc2006/intr_filter/amd64/amd64/trap.c#4 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.307 2006/07/28 20:22:57 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.310 2006/08/14 19:53:53 alc Exp $");
/*
* AMD64 Trap and System call handling
@@ -535,7 +535,7 @@
{
vm_offset_t va;
struct vmspace *vm = NULL;
- vm_map_t map = 0;
+ vm_map_t map;
int rv = 0;
vm_prot_t ftype;
struct thread *td = curthread;
@@ -566,8 +566,14 @@
map = &vm->vm_map;
}
+ /*
+ * PGEX_I is defined only if the execute disable bit capability is
+ * supported and enabled.
+ */
if (frame->tf_err & PGEX_W)
ftype = VM_PROT_WRITE;
+ else if ((frame->tf_err & PGEX_I) && pg_nx != 0)
+ ftype = VM_PROT_EXECUTE;
else
ftype = VM_PROT_READ;
==== //depot/projects/soc2006/intr_filter/amd64/include/pmap.h#3 (text+ko) ====
@@ -39,7 +39,7 @@
*
* from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.133 2006/08/02 16:24:23 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.134 2006/08/11 19:22:56 jhb Exp $
*/
#ifndef _MACHINE_PMAP_H_
@@ -302,14 +302,19 @@
extern vm_offset_t virtual_end;
#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list))
+#define pmap_unmapbios(va, sz) pmap_unmapdev((va), (sz))
void pmap_bootstrap(vm_paddr_t *);
+int pmap_change_attr(vm_offset_t, vm_size_t, int);
void pmap_init_pat(void);
void pmap_kenter(vm_offset_t va, vm_paddr_t pa);
+void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode);
void *pmap_kenter_temporary(vm_paddr_t pa, int i);
vm_paddr_t pmap_kextract(vm_offset_t);
void pmap_kremove(vm_offset_t);
+void *pmap_mapbios(vm_paddr_t, vm_size_t);
void *pmap_mapdev(vm_paddr_t, vm_size_t);
+void *pmap_mapdev_attr(vm_paddr_t, vm_size_t, int);
void pmap_unmapdev(vm_offset_t, vm_size_t);
void pmap_invalidate_page(pmap_t, vm_offset_t);
void pmap_invalidate_range(pmap_t, vm_offset_t, vm_offset_t);
==== //depot/projects/soc2006/intr_filter/amd64/linux32/linux.h#2 (text+ko) ====
@@ -27,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.2 2006/03/18 18:24:38 netchild Exp $
+ * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.5 2006/08/19 15:13:01 netchild Exp $
*/
#ifndef _AMD64_LINUX_LINUX_H_
@@ -495,6 +495,7 @@
extern int bsd_to_linux_signal[];
extern int linux_to_bsd_signal[];
+extern struct sysentvec elf_linux_sysvec;
/*
* Pluggable ioctl handlers
@@ -527,6 +528,11 @@
#define LINUX_O_NDELAY LINUX_O_NONBLOCK
#define LINUX_O_SYNC 010000
#define LINUX_FASYNC 020000
+#define LINUX_O_DIRECT 040000 /* direct disk access hint */
+#define LINUX_O_LARGEFILE 0100000
+#define LINUX_O_DIRECTORY 0200000 /* must be a directory */
+#define LINUX_O_NOFOLLOW 0400000 /* don't follow links */
+#define LINUX_O_NOATIME 01000000
#define LINUX_F_DUPFD 0
#define LINUX_F_GETFD 1
@@ -737,4 +743,100 @@
l_short revents;
} __packed;
+struct l_user_desc {
+ l_uint entry_number;
+ l_uint base_addr;
+ l_uint limit;
+ l_uint seg_32bit:1;
+ l_uint contents:2;
+ l_uint read_exec_only:1;
+ l_uint limit_in_pages:1;
+ l_uint seg_not_present:1;
+ l_uint useable:1;
+};
+
+struct l_desc_struct {
+ unsigned long a,b;
+};
+
+
+#define LINUX_LOWERWORD 0x0000ffff
+
+/*
+ * macros which does the same thing as those in linux include/asm-um/ldt-i386.h
+ * these convert linux user-space descriptor to machine one
+ */
+#define LDT_entry_a(info) \
+ ((((info)->base_addr & LINUX_LOWERWORD) << 16) | ((info)->limit & LINUX_LOWERWORD))
+
+#define ENTRY_B_READ_EXEC_ONLY 9
+#define ENTRY_B_CONTENTS 10
+#define ENTRY_B_SEG_NOT_PRESENT 15
+#define ENTRY_B_BASE_ADDR 16
+#define ENTRY_B_USEABLE 20
+#define ENTRY_B_SEG32BIT 22
+#define ENTRY_B_LIMIT 23
+
+#define LDT_entry_b(info) \
+ (((info)->base_addr & 0xff000000) | \
+ ((info)->limit & 0xf0000) | \
+ ((info)->contents << ENTRY_B_CONTENTS) | \
+ (((info)->seg_not_present == 0) << ENTRY_B_SEG_NOT_PRESENT) | \
+ (((info)->base_addr & 0x00ff0000) >> ENTRY_B_BASE_ADDR) | \
+ (((info)->read_exec_only == 0) << ENTRY_B_READ_EXEC_ONLY) | \
+ ((info)->seg_32bit << ENTRY_B_SEG32BIT) | \
+ ((info)->useable << ENTRY_B_USEABLE) | \
+ ((info)->limit_in_pages << ENTRY_B_LIMIT) | 0x7000)
+
+#define LDT_empty(info) (\
+ (info)->base_addr == 0 && \
+ (info)->limit == 0 && \
+ (info)->contents == 0 && \
+ (info)->seg_not_present == 1 && \
+ (info)->read_exec_only == 1 && \
+ (info)->seg_32bit == 0 && \
+ (info)->limit_in_pages == 0 && \
+ (info)->useable == 0 )
+
+/* macros for converting segments, they do the same as those in arch/i386/kernel/process.c */
+#define GET_BASE(desc) ( \
+ (((desc)->a >> 16) & LINUX_LOWERWORD) | \
+ (((desc)->b << 16) & 0x00ff0000) | \
+ ( (desc)->b & 0xff000000) )
+
+#define GET_LIMIT(desc) ( \
+ ((desc)->a & LINUX_LOWERWORD) | \
+ ((desc)->b & 0xf0000) )
+
+#define GET_32BIT(desc) (((desc)->b >> ENTRY_B_SEG32BIT) & 1)
+#define GET_CONTENTS(desc) (((desc)->b >> ENTRY_B_CONTENTS) & 3)
+#define GET_WRITABLE(desc) (((desc)->b >> ENTRY_B_READ_EXEC_ONLY) & 1)
+#define GET_LIMIT_PAGES(desc) (((desc)->b >> ENTRY_B_LIMIT) & 1)
+#define GET_PRESENT(desc) (((desc)->b >> ENTRY_B_SEG_NOT_PRESENT) & 1)
+#define GET_USEABLE(desc) (((desc)->b >> ENTRY_B_USEABLE) & 1)
+
+#define LINUX_CLOCK_REALTIME 0
+#define LINUX_CLOCK_MONOTONIC 1
+#define LINUX_CLOCK_PROCESS_CPUTIME_ID 2
+#define LINUX_CLOCK_THREAD_CPUTIME_ID 3
+#define LINUX_CLOCK_REALTIME_HR 4
+#define LINUX_CLOCK_MONOTONIC_HR 5
+
+typedef int l_timer_t;
+typedef int l_mqd_t;
+
+#define CLONE_VM 0x100
+#define CLONE_FS 0x200
+#define CLONE_FILES 0x400
+#define CLONE_SIGHAND 0x800
+#define CLONE_PID 0x1000 /* this flag does not exist in linux anymore */
+#define CLONE_PARENT 0x00008000
+#define CLONE_THREAD 0x10000
+#define CLONE_SETTLS 0x80000
+#define CLONE_CHILD_CLEARTID 0x00200000
+#define CLONE_CHILD_SETTID 0x01000000
+#define CLONE_PARENT_SETTID 0x00100000
+
+#define THREADING_FLAGS (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND)
+
#endif /* !_AMD64_LINUX_LINUX_H_ */
==== //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_dummy.c#3 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.3 2006/06/21 08:45:40 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.4 2006/08/15 12:54:29 netchild Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -72,19 +72,13 @@
DUMMY(epoll_ctl);
DUMMY(epoll_wait);
DUMMY(remap_file_pages);
-DUMMY(set_tid_address);
DUMMY(timer_create);
DUMMY(timer_settime);
DUMMY(timer_gettime);
DUMMY(timer_getoverrun);
DUMMY(timer_delete);
-DUMMY(clock_settime);
-DUMMY(clock_gettime);
-DUMMY(clock_getres);
-DUMMY(clock_nanosleep);
DUMMY(statfs64);
DUMMY(fstatfs64);
-DUMMY(tgkill);
DUMMY(utimes);
DUMMY(fadvise64_64);
DUMMY(mbind);
==== //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_machdep.c#2 (text+ko) ====
@@ -29,12 +29,13 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.12 2006/03/08 20:21:53 ups Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.15 2006/08/20 13:50:27 netchild Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/imgact.h>
+#include <sys/limits.h>
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/mman.h>
@@ -59,6 +60,7 @@
#include <compat/linux/linux_ipc.h>
#include <compat/linux/linux_signal.h>
#include <compat/linux/linux_util.h>
+#include <compat/linux/linux_emul.h>
struct l_old_select_argv {
l_int nfds;
@@ -210,6 +212,14 @@
free(path, M_TEMP);
if (error == 0)
error = kern_execve(td, &eargs, NULL);
+ if (error == 0)
+ /* linux process can exec fbsd one, dont attempt
+ * to create emuldata for such process using
+ * linux_proc_init, this leads to a panic on KASSERT
+ * because such process has p->p_emuldata == NULL
+ */
+ if (td->td_proc->p_sysent == &elf_linux_sysvec)
+ error = linux_proc_init(td, 0, 0);
return (error);
}
@@ -451,6 +461,10 @@
if (td->td_retval[1] == 1)
td->td_retval[0] = 0;
+ error = linux_proc_init(td, td->td_retval[0], 0);
+ if (error)
+ return (error);
+
return (0);
}
@@ -469,15 +483,12 @@
/* Are we the child? */
if (td->td_retval[1] == 1)
td->td_retval[0] = 0;
+ error = linux_proc_init(td, td->td_retval[0], 0);
+ if (error)
+ return (error);
return (0);
}
-#define CLONE_VM 0x100
-#define CLONE_FS 0x200
-#define CLONE_FILES 0x400
-#define CLONE_SIGHAND 0x800
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list