ia64/xen-unstable

changeset 4456:445b12a7221a

bitkeeper revision 1.1267 (4251679dHqcry__n_OW9aNhfUtjZ_A)

Hand merged

Signed-off-by: michael.fetterman@cl.cam.ac.uk
author mafetter@fleming.research
date Mon Apr 04 16:13:17 2005 +0000 (2005-04-04)
parents 571783a694e5 7d50508a59d1
children ce2c7268f935
files .rootkeys BitKeeper/etc/ignore BitKeeper/etc/logging_ok Config.mk buildconfigs/Rules.mk buildconfigs/mk.linux-2.6-xen0 buildconfigs/mk.linux-2.6-xenU docs/src/interface.tex docs/src/user.tex freebsd-5.3-xen-sparse/i386-xen/i386-xen/ctrl_if.c freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c freebsd-5.3-xen-sparse/i386-xen/include/hypervisor.h freebsd-5.3-xen-sparse/i386-xen/xen/blkfront/xb_blkfront.c freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c linux-2.4.29-xen-sparse/arch/xen/kernel/head.S linux-2.4.29-xen-sparse/arch/xen/kernel/ldt.c linux-2.4.29-xen-sparse/arch/xen/kernel/process.c linux-2.4.29-xen-sparse/arch/xen/kernel/setup.c linux-2.4.29-xen-sparse/arch/xen/kernel/traps.c linux-2.4.29-xen-sparse/arch/xen/mm/fault.c linux-2.4.29-xen-sparse/arch/xen/mm/init.c linux-2.4.29-xen-sparse/arch/xen/mm/ioremap.c linux-2.4.29-xen-sparse/fs/exec.c linux-2.4.29-xen-sparse/include/asm-xen/desc.h linux-2.4.29-xen-sparse/include/asm-xen/mmu_context.h linux-2.4.29-xen-sparse/include/asm-xen/page.h linux-2.4.29-xen-sparse/include/asm-xen/pgalloc.h linux-2.4.29-xen-sparse/include/asm-xen/pgtable-2level.h linux-2.4.29-xen-sparse/include/asm-xen/pgtable.h linux-2.4.29-xen-sparse/mkbuildtree linux-2.4.29-xen-sparse/mm/highmem.c linux-2.4.29-xen-sparse/mm/memory.c linux-2.4.29-xen-sparse/mm/mremap.c linux-2.4.29-xen-sparse/mm/swapfile.c linux-2.4.29-xen-sparse/mm/vmalloc.c linux-2.6.11-xen-sparse/arch/xen/Kconfig linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64 linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64 linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/traps.c linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c linux-2.6.11-xen-sparse/arch/xen/i386/mm/hypervisor.c linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c linux-2.6.11-xen-sparse/arch/xen/i386/mm/ioremap.c linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c linux-2.6.11-xen-sparse/arch/xen/kernel/ctrl_if.c linux-2.6.11-xen-sparse/arch/xen/kernel/fixup.c linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig linux-2.6.11-xen-sparse/arch/xen/x86_64/Makefile linux-2.6.11-xen-sparse/arch/xen/x86_64/defconfig linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/Makefile linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/asm-offsets.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/e820.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/early_printk.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/entry.S linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head.S linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head64.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/init_task.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/ioport.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/irq.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/ldt.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/pci-dma.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/pci-nommu.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/process.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/setup.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/setup64.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/signal.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/smp.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/smpboot.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/time.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/vsyscall.c linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/x8664_ksyms.c linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/Makefile linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/fault.c linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/hypervisor.c linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/init.c linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/ioremap.c linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/pageattr.c linux-2.6.11-xen-sparse/arch/xen/x86_64/pci/Makefile linux-2.6.11-xen-sparse/arch/xen/x86_64/pci/Makefile-BUS linux-2.6.11-xen-sparse/drivers/xen/balloon/balloon.c linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c linux-2.6.11-xen-sparse/drivers/xen/blkback/common.h linux-2.6.11-xen-sparse/drivers/xen/blkback/control.c linux-2.6.11-xen-sparse/drivers/xen/blkback/interface.c linux-2.6.11-xen-sparse/drivers/xen/blkback/vbd.c linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c linux-2.6.11-xen-sparse/drivers/xen/blkfront/block.h linux-2.6.11-xen-sparse/drivers/xen/blkfront/vbd.c linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap.h linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_userdev.c linux-2.6.11-xen-sparse/drivers/xen/netback/control.c linux-2.6.11-xen-sparse/drivers/xen/netback/interface.c linux-2.6.11-xen-sparse/drivers/xen/netback/netback.c linux-2.6.11-xen-sparse/drivers/xen/netfront/netfront.c linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c linux-2.6.11-xen-sparse/drivers/xen/usbback/control.c linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c linux-2.6.11-xen-sparse/drivers/xen/usbfront/usbfront.c linux-2.6.11-xen-sparse/drivers/xen/usbfront/xhci.h linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/desc.h linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mmu_context.h linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgalloc.h linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable.h linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/processor.h linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/tlbflush.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/arch_hooks.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/bootsetup.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/desc.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/dma-mapping.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/fixmap.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/floppy.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/io.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/irq.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/io_ports.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/irq_vectors.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/mach_time.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/mach_timer.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/setup_arch_post.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/setup_arch_pre.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/smpboot_hooks.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mmu_context.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/page.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/param.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pci.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pda.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pgalloc.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/processor.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/ptrace.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/segment.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/smp.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/synch_bitops.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/system.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/timer.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/tlbflush.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/vga.h linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/xor.h linux-2.6.11-xen-sparse/include/asm-xen/hypervisor.h linux-2.6.11-xen-sparse/include/asm-xen/multicall.h netbsd-2.0-xen-sparse/sys/arch/xen/include/hypervisor.h netbsd-2.0-xen-sparse/sys/arch/xen/xen/if_xennet.c patches/linux-2.6.11/x86_64-linux.patch tools/Makefile tools/Rules.mk tools/blktap/Makefile tools/blktap/blkdump.c tools/blktap/blktaplib.c tools/blktap/blockstore.c tools/blktap/parallax-threaded.h tools/examples/vnc/Xservers tools/examples/vnc/Xvnc-xen tools/examples/xend-config.sxp tools/ioemu/iodev/Makefile tools/ioemu/iodev/cpu.cc tools/ioemu/iodev/eth_linux.cc tools/ioemu/iodev/harddrv.cc tools/ioemu/memory/memory.cc tools/ioemu/memory/memory.h tools/libxc/xc.h tools/libxc/xc_domain.c tools/libxc/xc_linux_build.c tools/libxc/xc_linux_restore.c tools/libxc/xc_plan9_build.c tools/libxc/xc_private.c tools/libxc/xc_private.h tools/libxc/xc_ptrace.c tools/libxc/xc_vmx_build.c tools/libxutil/sxpr.c tools/libxutil/sxpr.h tools/libxutil/sys_net.c tools/misc/Makefile tools/misc/mbootpack/GPL tools/misc/mbootpack/Makefile tools/misc/mbootpack/README tools/misc/mbootpack/bin2c.c tools/misc/mbootpack/bootsect.S tools/misc/mbootpack/buildimage.c tools/misc/mbootpack/mb_header.h tools/misc/mbootpack/mb_info.h tools/misc/mbootpack/mbootpack.c tools/misc/mbootpack/mbootpack.h tools/misc/mbootpack/setup.S tools/python/xen/lowlevel/xu/xu.c tools/python/xen/xend/Vifctl.py tools/python/xen/xend/XendClient.py tools/python/xen/xend/XendDomain.py tools/python/xen/xend/XendDomainInfo.py tools/python/xen/xend/XendMigrate.py tools/python/xen/xend/server/SrvDomain.py tools/python/xen/xend/server/blkif.py tools/python/xen/xend/server/channel.py tools/python/xen/xend/server/messages.py tools/python/xen/xend/server/netif.py tools/python/xen/xm/create.py tools/python/xen/xm/main.py tools/xcs/ctrl_interface.c tools/xcs/dump.c tools/xfrd/xen_domain.c xen/Makefile xen/Rules.mk xen/arch/ia64/Makefile xen/arch/ia64/Rules.mk xen/arch/ia64/domain.c xen/arch/ia64/hypercall.c xen/arch/ia64/irq.c xen/arch/ia64/mm_init.c xen/arch/ia64/patch/linux-2.6.7/entry.S xen/arch/ia64/patch/linux-2.6.7/head.S xen/arch/ia64/patch/linux-2.6.7/ivt.S xen/arch/ia64/patch/linux-2.6.7/mca_asm.h xen/arch/ia64/patch/linux-2.6.7/minstate.h xen/arch/ia64/patch/linux-2.6.7/mm_contig.c xen/arch/ia64/patch/linux-2.6.7/page.h xen/arch/ia64/patch/linux-2.6.7/pal.S xen/arch/ia64/patch/linux-2.6.7/pgalloc.h xen/arch/ia64/patch/linux-2.6.7/setup.c xen/arch/ia64/patch/linux-2.6.7/swiotlb.c xen/arch/ia64/patch/linux-2.6.7/system.h xen/arch/ia64/patch/linux-2.6.7/time.c xen/arch/ia64/process.c xen/arch/ia64/regionreg.c xen/arch/ia64/smp.c xen/arch/ia64/tools/README.xenia64linux xen/arch/ia64/tools/mkbuildtree xen/arch/ia64/vcpu.c xen/arch/ia64/vhpt.c xen/arch/ia64/xenasm.S xen/arch/ia64/xenmisc.c xen/arch/ia64/xensetup.c xen/arch/x86/dom0_ops.c xen/arch/x86/domain.c xen/arch/x86/domain_build.c xen/arch/x86/mm.c xen/arch/x86/mtrr/generic.c xen/arch/x86/mtrr/main.c xen/arch/x86/setup.c xen/arch/x86/shadow.c xen/arch/x86/smp.c xen/arch/x86/smpboot.c xen/arch/x86/time.c xen/arch/x86/traps.c xen/arch/x86/vmx.c xen/arch/x86/vmx_intercept.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_platform.c xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_32/mm.c xen/arch/x86/x86_64/entry.S xen/arch/x86/x86_64/mm.c xen/common/Makefile xen/common/dom0_ops.c xen/common/domain.c xen/common/elf.c xen/common/grant_table.c xen/common/kernel.c xen/common/page_alloc.c xen/common/schedule.c xen/drivers/char/console.c xen/include/asm-ia64/config.h xen/include/asm-ia64/debugger.h xen/include/asm-ia64/domain_page.h xen/include/asm-ia64/flushtlb.h xen/include/asm-ia64/init.h xen/include/asm-ia64/mm.h xen/include/asm-ia64/vhpt.h xen/include/asm-x86/debugger.h xen/include/asm-x86/flushtlb.h xen/include/asm-x86/mm.h xen/include/asm-x86/page.h xen/include/asm-x86/processor.h xen/include/asm-x86/vmx_vmcs.h xen/include/public/arch-ia64.h xen/include/public/arch-x86_32.h xen/include/public/arch-x86_64.h xen/include/public/dom0_ops.h xen/include/public/io/blkif.h xen/include/public/io/domain_controller.h xen/include/public/io/ring.h xen/include/public/io/usbif.h xen/include/public/xen.h xen/include/xen/elf.h xen/include/xen/mm.h xen/include/xen/sched.h xen/include/xen/smp.h
line diff
     1.1 --- a/.rootkeys	Mon Apr 04 10:52:11 2005 +0000
     1.2 +++ b/.rootkeys	Mon Apr 04 16:13:17 2005 +0000
     1.3 @@ -167,7 +167,6 @@ 3f108aeaLcGDgQdFAANLTUEid0a05w linux-2.4
     1.4  3e5a4e66rw65CxyolW9PKz4GG42RcA linux-2.4.29-xen-sparse/drivers/char/tty_io.c
     1.5  40c9c0c1pPwYE3-4i-oI3ubUu7UgvQ linux-2.4.29-xen-sparse/drivers/scsi/aic7xxx/Makefile
     1.6  41f97f64nW0wmgLxhwzPTzkF4E5ERA linux-2.4.29-xen-sparse/drivers/usb/hcd.c
     1.7 -3e5a4e669uzIE54VwucPYtGwXLAbzA linux-2.4.29-xen-sparse/fs/exec.c
     1.8  3e5a4e66wbeCpsJgVf_U8Jde-CNcsA linux-2.4.29-xen-sparse/include/asm-xen/bugs.h
     1.9  3e5a4e66HdSkvIV6SJ1evG_xmTmXHA linux-2.4.29-xen-sparse/include/asm-xen/desc.h
    1.10  3e5a4e66SYp_UpAVcF8Lc1wa3Qtgzw linux-2.4.29-xen-sparse/include/asm-xen/fixmap.h
    1.11 @@ -205,15 +204,15 @@ 3e5a4e68GxCIaFH4sy01v1wjapetaA linux-2.4
    1.12  3f108af5VxPkLv13tXpXgoRKALQtXQ linux-2.4.29-xen-sparse/mm/mprotect.c
    1.13  3e5a4e681xMPdF9xCMwpyfuYMySU5g linux-2.4.29-xen-sparse/mm/mremap.c
    1.14  409ba2e7akOFqQUg6Qyg2s28xcXiMg linux-2.4.29-xen-sparse/mm/page_alloc.c
    1.15 -3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.29-xen-sparse/mm/swapfile.c
    1.16 -41180721bNns9Na7w1nJ0ZVt8bhUNA linux-2.4.29-xen-sparse/mm/vmalloc.c
    1.17  41505c57WAd5l1rlfCLNSCpx9J13vA linux-2.4.29-xen-sparse/net/core/skbuff.c
    1.18  40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.11-xen-sparse/arch/xen/Kconfig
    1.19  40f56237utH41NPukqHksuNf29IC9A linux-2.6.11-xen-sparse/arch/xen/Kconfig.drivers
    1.20  40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.11-xen-sparse/arch/xen/Makefile
    1.21  40f56237JTc60m1FRlUxkUaGSQKrNw linux-2.6.11-xen-sparse/arch/xen/boot/Makefile
    1.22 -40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig
    1.23 -40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig
    1.24 +40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32
    1.25 +424f001dsaMEQ1wWQnPmu0ejo6pgPA linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64
    1.26 +40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32
    1.27 +424f001dsBzCezYZD8vAn-h5D9ZRtQ linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64
    1.28  40f56237Mta0yHNaMS_qtM2rge0qYA linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig
    1.29  40f56238u2CJdXNpjsZgHBxeVyY-2g linux-2.6.11-xen-sparse/arch/xen/i386/Makefile
    1.30  40f56238eczveJ86k_4hNxCLRQIF-g linux-2.6.11-xen-sparse/arch/xen/i386/kernel/Makefile
    1.31 @@ -260,6 +259,40 @@ 40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6
    1.32  414c113396tK1HTVeUalm3u-1DF16g linux-2.6.11-xen-sparse/arch/xen/kernel/skbuff.c
    1.33  418f90e4lGdeJK9rmbOB1kN-IKSjsQ linux-2.6.11-xen-sparse/arch/xen/kernel/smp.c
    1.34  3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.11-xen-sparse/arch/xen/kernel/xen_proc.c
    1.35 +424efaa6xahU2q85_dT-SjUJEaivfg linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig
    1.36 +424efaa6kKleWe45IrqsG8gkejgEQA linux-2.6.11-xen-sparse/arch/xen/x86_64/Makefile
    1.37 +424efaa7hjpGexXRf5TYBwgP7uT5Wg linux-2.6.11-xen-sparse/arch/xen/x86_64/defconfig
    1.38 +424efaa6HSyuVodl6SxFGj39vlp6MA linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/Makefile
    1.39 +424efaa7bVAw3Z_q0SdFivfNVavyIg linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/asm-offsets.c
    1.40 +424efaa7ddTVabh547Opf0u9vKmUXw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/e820.c
    1.41 +424efaa72fQEHYQ-Sp2IW9X2xTA5zQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/early_printk.c
    1.42 +424efaa7B_BWrAkLPJNoKk4EQY2a7w linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/entry.S
    1.43 +424efaa7vhgi7th5QVICjfuHmEWOkw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head.S
    1.44 +424efaa7tiMEZSAYepwyjaNWxyXF7Q linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head64.c
    1.45 +424efaa6M6AGf53TJa2y9cl6coos0g linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/init_task.c
    1.46 +424efaa6wHXXaloZygAv6ywDb7u7nQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/ioport.c
    1.47 +424efaa6gOkc9_uHCLgvY_DXPqh_sg linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/irq.c
    1.48 +424efaa6ibN3xXEeXoxURmKfJF_CUA linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/ldt.c
    1.49 +424efaa6aX4JkXAzBf4nqxRmLUfhqQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/pci-dma.c
    1.50 +424efaa7e8nVw04q-pK8XRFaHPVx_A linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/pci-nommu.c
    1.51 +424efaa7CxY9cbhqapUfqVYnD7T9LQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/process.c
    1.52 +424efaa7I-DPzj1fkZeYPJS7rA4FAw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/setup.c
    1.53 +424efaa7DIVTR1U4waPGHucha9Xilg linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/setup64.c
    1.54 +424efaa6L1lrzwCIadTNxogSvljFwg linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/signal.c
    1.55 +424efaa61XzweJyW3v5Lb9egpe3rtw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/smp.c
    1.56 +424efaa778MkpdkAIq0An1FjQENN_Q linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/smpboot.c
    1.57 +424efaa7vzbNdhwhkQPhs1V7LrAH4Q linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/time.c
    1.58 +424efaa7szEu90xkjpXk5TufZxxa4g linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/traps.c
    1.59 +424efaa6sJsuHdGIGxm0r-ugsss3OQ linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/vsyscall.c
    1.60 +424efaa6xbX9LkKyaXvgbL9s_39Trw linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/x8664_ksyms.c
    1.61 +424efaa670zlQTtnOYK_aNgqhmSx-Q linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/Makefile
    1.62 +424efaa6HUC68-hBHgiWOMDfKZogIA linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/fault.c
    1.63 +424f001d6S-OiHsk1n9gv1jGwws-9w linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/hypervisor.c
    1.64 +424efaa65ELRJ3JfgQQKLzW6y0ECYQ linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/init.c
    1.65 +424efaa60dTbHfv65JBLVhNLcNPcRA linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/ioremap.c
    1.66 +424efaa6uMX8YJASAVJT8ral74dz9Q linux-2.6.11-xen-sparse/arch/xen/x86_64/mm/pageattr.c
    1.67 +424efaa629XgfZi3vvTAuQmhCqmvIA linux-2.6.11-xen-sparse/arch/xen/x86_64/pci/Makefile
    1.68 +424efaa64SRL9FZhtQovFJAVh9sZlQ linux-2.6.11-xen-sparse/arch/xen/x86_64/pci/Makefile-BUS
    1.69  41261688yS8eAyy-7kzG4KBs0xbYCA linux-2.6.11-xen-sparse/drivers/Makefile
    1.70  4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.11-xen-sparse/drivers/char/mem.c
    1.71  4111308bZAIzwf_Kzu6x1TZYZ3E0_Q linux-2.6.11-xen-sparse/drivers/char/tty_io.c
    1.72 @@ -332,6 +365,39 @@ 40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6
    1.73  40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/system.h
    1.74  40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/tlbflush.h
    1.75  41062ab7uFxnCq-KtPeAm-aV8CicgA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/vga.h
    1.76 +424f001delsctIT-_5gdbHsN9VfaQA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/arch_hooks.h
    1.77 +424efa21QfpO4QqQf9ADB4U_2zo8dQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/bootsetup.h
    1.78 +424efa21riixePBPesLRsVnhFxfEfQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/desc.h
    1.79 +424efa21iAXuoKIT3-zDni6aryFlPQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/dma-mapping.h
    1.80 +424efa21QCdU7W3An0BM0bboJZ6f4Q linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/fixmap.h
    1.81 +424efa21S7Ruo0JzTFH1qwezpdtCbw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/floppy.h
    1.82 +424f001ds3cL9WAgSH5Nja1BAkZfDg linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h
    1.83 +424efa20tMbuEQuxvPjow-wkBx83rA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/io.h
    1.84 +424efa20meDrUt6I2XWbpuf72e4gEw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/irq.h
    1.85 +424f001d3cpZoX9SZD_zjTapOs-ZIQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/io_ports.h
    1.86 +424f001eirTAXdX_1gCugGtzSGJUXw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/irq_vectors.h
    1.87 +424f001eTD7ATy8MC71Lm2rOHHyUCA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/mach_time.h
    1.88 +424f001ew4jIwfKeZUNa_U54UAaJcw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/mach_timer.h
    1.89 +424f001ePIPWhBJGeTgj-KmiHOYvqw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/setup_arch_post.h
    1.90 +424f001e0S9hTGOoEN8pgheQJ76yqQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/setup_arch_pre.h
    1.91 +424f001eQPBrY1621DbCPKn9wK36ZQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mach-xen/smpboot_hooks.h
    1.92 +424efa21FvJNdHFfm2w2TOWohNsqDQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/mmu_context.h
    1.93 +424efa214neirHds4zbtwaefvG5PYA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/page.h
    1.94 +424efa21-7jaHj-W-T4E9oM3kqFA7Q linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/param.h
    1.95 +424efa20I76WtOlPh71MaXtai3-qZA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pci.h
    1.96 +424efa20Fs7EHhAV6Hz_UtifwEfczg linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pda.h
    1.97 +424efa20CGx-5HD8ahpdHxPW2KlrtA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pgalloc.h
    1.98 +424efa21YaMjX7hz7eCkVNcNWRK42A linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h
    1.99 +424efa21wPKwwFR1fcqrPD0_o3GKWA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/processor.h
   1.100 +424efa20fTFqmaE0stH6lfB_4yN_lA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/ptrace.h
   1.101 +424efa21fY4IvK0luYgDJHKV-MD3eQ linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/segment.h
   1.102 +424efa21KcupuJlHgmPiTk_T214FrA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/smp.h
   1.103 +424f001eT-7wjT_7K5AMlNVigIcuHA linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/synch_bitops.h
   1.104 +424efa210ZRt2U_8WmtyI7g74Nz-4Q linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/system.h
   1.105 +424f001eBp9fMbZ0Mo2kRJQ84gMgRw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/timer.h
   1.106 +424efa21Xk2acvaHYnpyTCLE6nU6hw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/tlbflush.h
   1.107 +424efa21Ey6Q4L4AsXxcEwH3vMDeiw linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/vga.h
   1.108 +424efa214gNhOfFimFJHq4in24Yp1g linux-2.6.11-xen-sparse/include/asm-xen/asm-x86_64/xor.h
   1.109  41af4017PDMuSmMWtSRU5UC9Vylw5g linux-2.6.11-xen-sparse/include/asm-xen/balloon.h
   1.110  40f5623bYNP7tHE2zX6YQxp9Zq2utQ linux-2.6.11-xen-sparse/include/asm-xen/ctrl_if.h
   1.111  40f5623b3Eqs8pAc5WpPX8_jTzV2qw linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h
   1.112 @@ -340,7 +406,6 @@ 412dfaeazclyNDM0cpnp60Yo4xulpQ linux-2.6
   1.113  40f5623aGPlsm0u1LTO-NVZ6AGzNRQ linux-2.6.11-xen-sparse/include/asm-xen/hypervisor.h
   1.114  3f108af1ylCIm82H052FVTfXACBHrw linux-2.6.11-xen-sparse/include/asm-xen/linux-public/privcmd.h
   1.115  3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ linux-2.6.11-xen-sparse/include/asm-xen/linux-public/suspend.h
   1.116 -40f5623cndVUFlkxpf7Lfx7xu8madQ linux-2.6.11-xen-sparse/include/asm-xen/multicall.h
   1.117  4122466356eIBnC9ot44WSVVIFyhQA linux-2.6.11-xen-sparse/include/asm-xen/queues.h
   1.118  3f689063BoW-HWV3auUJ-OqXfcGArw linux-2.6.11-xen-sparse/include/asm-xen/xen_proc.h
   1.119  419b4e93z2S0gR17XTy8wg09JEwAhg linux-2.6.11-xen-sparse/include/linux/gfp.h
   1.120 @@ -391,6 +456,7 @@ 422e4430-gOD358H8nGGnNWes08Nng netbsd-2.
   1.121  413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs
   1.122  413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.11/agpgart.patch
   1.123  42372652KCUP-IOH9RN19YQmGhs4aA patches/linux-2.6.11/iomap.patch
   1.124 +424f001e_M1Tnxc52rDrmCLelnDWMQ patches/linux-2.6.11/x86_64-linux.patch
   1.125  3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile
   1.126  40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Rules.mk
   1.127  4209033eUwhDBJ_bxejiv5c6gjXS4A tools/blktap/Makefile
   1.128 @@ -465,6 +531,8 @@ 41e661e1giIEKbJ25qfiP-ke8u8hFA tools/exa
   1.129  40ee75a967sxgcRY4Q7zXoVUaJ4flA tools/examples/vif-bridge
   1.130  41fc0c18AFAVXA1uGm1JFWHMeeznVw tools/examples/vif-nat
   1.131  41e661e1ooiRKlOfwumG6wwzc0PdhQ tools/examples/vif-route
   1.132 +423ab2eaNCzxk3c-9yU1BwzxWvsDCQ tools/examples/vnc/Xservers
   1.133 +423ab2ea7ajZLdZOI-8Z-bpNdNhhAQ tools/examples/vnc/Xvnc-xen
   1.134  40ee75a93cqxHp6MiYXxxwR5j2_8QQ tools/examples/xend-config.sxp
   1.135  41dde8af6M2Pm1Rrv_f5jEFC_BIOIA tools/examples/xmexample.vmx
   1.136  41090ec8Pj_bkgCBpg2W7WfmNkumEA tools/examples/xmexample1
   1.137 @@ -705,6 +773,17 @@ 4225f56dqlGC_UZ681F95mCgLbOeHQ tools/mis
   1.138  4225f56dnmms-VFr1MiDVG_dYoM7IQ tools/misc/cpuperf/module/perfcntr.c
   1.139  4225f56dYhIGQRD_kKVJ6xQrkqO0YQ tools/misc/cpuperf/p4perf.h
   1.140  40ab2cfawIw8tsYo0dQKtp83h4qfTQ tools/misc/fakei386xen
   1.141 +4249273cDOw6_uLUPvvUwWU1ZrJxnQ tools/misc/mbootpack/GPL
   1.142 +4249273cSmj2h8Fj3UpTg0g-k6CLsA tools/misc/mbootpack/Makefile
   1.143 +4249273c8gKIttF1QPiczvGo5AEOeA tools/misc/mbootpack/README
   1.144 +4249273c4N4PAkvt3trNlto4h76k8A tools/misc/mbootpack/bin2c.c
   1.145 +4249273cISg5nhW1Pt7OJ0jFu343ig tools/misc/mbootpack/bootsect.S
   1.146 +4249273cUiz8CgLqnG7XYFa8x5-MoQ tools/misc/mbootpack/buildimage.c
   1.147 +4249273c_gZ2yI_h-ci66E1Y5oSEPA tools/misc/mbootpack/mb_header.h
   1.148 +4249273cWnlW0-lOIYua1bkKirn6vA tools/misc/mbootpack/mb_info.h
   1.149 +4249273cA8LI3IMaSuhLOjykuMeQJA tools/misc/mbootpack/mbootpack.c
   1.150 +4249273cVTgyv2HYd-mC29IDaz0-mg tools/misc/mbootpack/mbootpack.h
   1.151 +4249273cLXQbRWFp_v-FqcyOm0sYtg tools/misc/mbootpack/setup.S
   1.152  3f6dc136ZKOjd8PIqLbFBl_v-rnkGg tools/misc/miniterm/Makefile
   1.153  3f6dc140C8tAeBfroAF24VrmCS4v_w tools/misc/miniterm/README
   1.154  3f6dc142IHaf6XIcAYGmhV9nNSIHFQ tools/misc/miniterm/miniterm.c
   1.155 @@ -996,6 +1075,7 @@ 421098b26C_0yoypoHqjDcJA9UrG_g xen/arch/
   1.156  421098b2PHgzf_Gg4R65YRNi_QzMKQ xen/arch/ia64/dom0_ops.c
   1.157  421098b2O7jsNfzQXA1v3rbAc1QhpA xen/arch/ia64/dom_fw.c
   1.158  421098b2ZlaBcyiuuPr3WpzaSDwg6Q xen/arch/ia64/domain.c
   1.159 +4239e98a_HX-FCIcXtVqY0BbrDqVug xen/arch/ia64/hypercall.c
   1.160  421098b3LYAS8xJkQiGP7tiTlyBt0Q xen/arch/ia64/idle0_task.c
   1.161  421098b3ys5GAr4z6_H1jD33oem82g xen/arch/ia64/irq.c
   1.162  421098b3Heh72KuoVlND3CH6c0B0aA xen/arch/ia64/lib/Makefile
   1.163 @@ -1022,17 +1102,21 @@ 421098b4C0Lc3xag4Nm-_yC9IMTDqA xen/arch/
   1.164  421098b4weyd0AQTjPLmooChUJm13Q xen/arch/ia64/patch/linux-2.6.7/kregs.h
   1.165  421098b4vHCejAUPem4w8p5V-AD1Ig xen/arch/ia64/patch/linux-2.6.7/lds.S
   1.166  421098b4uooGl5X8zZM96qpmS0Furg xen/arch/ia64/patch/linux-2.6.7/linuxtime.h
   1.167 +424dad01Txy4dcgKHGkTx1L2z7GuQA xen/arch/ia64/patch/linux-2.6.7/mca_asm.h
   1.168  421098b4awnw3Jf23gohJWoK8s7-Qg xen/arch/ia64/patch/linux-2.6.7/minstate.h
   1.169  421098b5hIfMbZlQTfrOKN4BtzJgDQ xen/arch/ia64/patch/linux-2.6.7/mm_bootmem.c
   1.170  421098b53IVBoQPcDjFciZy86YEhRQ xen/arch/ia64/patch/linux-2.6.7/mm_contig.c
   1.171  421098b5pZw41QuBTvhjvSol6aAHDw xen/arch/ia64/patch/linux-2.6.7/mmzone.h
   1.172  421098b5B_dClZDGuPYeY3IXo8Hlbw xen/arch/ia64/patch/linux-2.6.7/page.h
   1.173  421098b5saClfxPj36l47H9Um7h1Fw xen/arch/ia64/patch/linux-2.6.7/page_alloc.c
   1.174 +424dab78_JGGpJDaAb6ZtkPJAkAKOA xen/arch/ia64/patch/linux-2.6.7/pal.S
   1.175 +4241ed05l9ZdG7Aj0tygIxIwPRXhog xen/arch/ia64/patch/linux-2.6.7/pgalloc.h
   1.176  421098b5OkmcjMBq8gxs7ZrTa4Ao6g xen/arch/ia64/patch/linux-2.6.7/processor.h
   1.177  421098b51RLB6jWr6rIlpB2SNObxZg xen/arch/ia64/patch/linux-2.6.7/sal.h
   1.178  421098b5WFeRnwGtZnHkSvHVzA4blg xen/arch/ia64/patch/linux-2.6.7/setup.c
   1.179  421098b5Jm2i8abzb0mpT6mlEiKZDg xen/arch/ia64/patch/linux-2.6.7/slab.c
   1.180  421098b5w6MBnluEpQJAWDTBFrbWSQ xen/arch/ia64/patch/linux-2.6.7/slab.h
   1.181 +4241eb584dcZqssR_Uuz2-PgMJXZ5Q xen/arch/ia64/patch/linux-2.6.7/swiotlb.c
   1.182  421098b5Cg7nbIXm3RhUF-uG3SKaUA xen/arch/ia64/patch/linux-2.6.7/system.h
   1.183  421098b5XrkDYW_Nd9lg5CDgNzHLmg xen/arch/ia64/patch/linux-2.6.7/time.c
   1.184  421098b5_kFbvZIIPM3bdCES1Ocqnw xen/arch/ia64/patch/linux-2.6.7/tlb.c
   1.185 @@ -1046,6 +1130,7 @@ 41a26ebcJ30TFl1v2kR8rqpEBvOtVw xen/arch/
   1.186  421098b69pUiIJrqu_w0JMUnZ2uc2A xen/arch/ia64/smp.c
   1.187  421098b6_ToSGrf6Pk1Uwg5aMAIBxg xen/arch/ia64/smpboot.c
   1.188  421098b6AUdbxR3wyn1ATcmNuTao_Q xen/arch/ia64/tools/README.xenia64
   1.189 +42376c6dfyY0eq8MS2dK3BW2rFuEGg xen/arch/ia64/tools/README.xenia64linux
   1.190  421098b6rQ2BQ103qu1n1HNofbS2Og xen/arch/ia64/tools/mkbuildtree
   1.191  41a26ebc--sjlYZQxmIxyCx3jw70qA xen/arch/ia64/vcpu.c
   1.192  421098b6M2WhsJ_ZMzFamAQcdc5gzw xen/arch/ia64/vhpt.c
   1.193 @@ -1195,6 +1280,8 @@ 421098b6Y3xqcv873Gvg1rQ5CChfFw xen/inclu
   1.194  421098b6ZcIrn_gdqjUtdJyCE0YkZQ xen/include/asm-ia64/debugger.h
   1.195  421098b6z0zSuW1rcSJK1gR8RUi-fw xen/include/asm-ia64/dom_fw.h
   1.196  421098b6Nn0I7hGB8Mkd1Cis0KMkhA xen/include/asm-ia64/domain.h
   1.197 +4241e879ry316Y_teC18DuK7mGKaQw xen/include/asm-ia64/domain_page.h
   1.198 +4241e880hAyo_dk0PPDYj3LsMIvf-Q xen/include/asm-ia64/flushtlb.h
   1.199  421098b6X3Fs2yht42TE2ufgKqt2Fw xen/include/asm-ia64/ia64_int.h
   1.200  421098b7psFAn8kbeR-vcRCdc860Vw xen/include/asm-ia64/init.h
   1.201  421098b7XC1A5PhA-lrU9pIO3sSSmA xen/include/asm-ia64/mm.h
     2.1 --- a/BitKeeper/etc/ignore	Mon Apr 04 10:52:11 2005 +0000
     2.2 +++ b/BitKeeper/etc/ignore	Mon Apr 04 16:13:17 2005 +0000
     2.3 @@ -44,6 +44,7 @@ docs/user/internals.pl
     2.4  docs/user/labels.pl
     2.5  docs/user/user.css
     2.6  docs/user/user.html
     2.7 +extras/mini-os/h/hypervisor-ifs
     2.8  extras/mini-os/h/xen-public
     2.9  extras/mini-os/mini-os.*
    2.10  install/*
    2.11 @@ -92,6 +93,11 @@ tools/ioemu/iodev/device-model
    2.12  tools/libxc/xen/*
    2.13  tools/misc/cpuperf/cpuperf-perfcntr
    2.14  tools/misc/cpuperf/cpuperf-xen
    2.15 +tools/misc/mbootpack/bin2c
    2.16 +tools/misc/mbootpack/bootsect
    2.17 +tools/misc/mbootpack/bzimage_header.c
    2.18 +tools/misc/mbootpack/mbootpack
    2.19 +tools/misc/mbootpack/setup
    2.20  tools/misc/miniterm/miniterm
    2.21  tools/misc/xc_shadow
    2.22  tools/misc/xen_cpuperf
    2.23 @@ -111,6 +117,7 @@ tools/xcs/xcsdump
    2.24  tools/xentrace/xentrace
    2.25  tools/xfrd/xfrd
    2.26  xen/BLOG
    2.27 +xen/TAGS
    2.28  xen/arch/x86/asm-offsets.s
    2.29  xen/arch/x86/boot/mkelf32
    2.30  xen/ddb/*
    2.31 @@ -120,10 +127,12 @@ xen/drivers/pci/gen-devlist
    2.32  xen/figlet/figlet
    2.33  xen/include/asm
    2.34  xen/include/asm-*/asm-offsets.h
    2.35 +xen/include/hypervisor-ifs/arch
    2.36  xen/include/public/public
    2.37  xen/include/xen/*.new
    2.38  xen/include/xen/banner.h
    2.39  xen/include/xen/compile.h
    2.40 +xen/tags
    2.41  xen/tools/elf-reloc
    2.42  xen/tools/figlet/figlet
    2.43  xen/xen
     3.1 --- a/BitKeeper/etc/logging_ok	Mon Apr 04 10:52:11 2005 +0000
     3.2 +++ b/BitKeeper/etc/logging_ok	Mon Apr 04 16:13:17 2005 +0000
     3.3 @@ -20,7 +20,9 @@ cl349@freefall.cl.cam.ac.uk
     3.4  cl349@labyrinth.cl.cam.ac.uk
     3.5  cwc22@centipede.cl.cam.ac.uk
     3.6  cwc22@donkeykong.cl.cam.ac.uk
     3.7 +djm@djmnc4000.(none)
     3.8  djm@kirby.fc.hp.com
     3.9 +djm@sportsman.spdomain
    3.10  doogie@brainfood.com
    3.11  gm281@boulderdash.cl.cam.ac.uk
    3.12  gm281@tetrapod.cl.cam.ac.uk
    3.13 @@ -50,6 +52,7 @@ kaf24@striker.cl.cam.ac.uk
    3.14  kaf24@viper.(none)
    3.15  kmacy@shemp.lab.netapp.com
    3.16  laudney@eclipse.(none)
    3.17 +leendert@watson.ibm.com
    3.18  lynx@idefix.cl.cam.ac.uk
    3.19  maf46@burn.cl.cam.ac.uk
    3.20  mafetter@fleming.research
    3.21 @@ -72,12 +75,14 @@ rneugeba@wyvis.research.intel-research.n
    3.22  sd386@font.cl.cam.ac.uk
    3.23  shand@spidean.research.intel-research.net
    3.24  smh22@boulderdash.cl.cam.ac.uk
    3.25 +smh22@firebug.cl.cam.ac.uk
    3.26  smh22@labyrinth.cl.cam.ac.uk
    3.27  smh22@tempest.cl.cam.ac.uk
    3.28  smh22@uridium.cl.cam.ac.uk
    3.29  sos22@donkeykong.cl.cam.ac.uk
    3.30  sos22@douglas.cl.cam.ac.uk
    3.31  sos22@labyrinth.cl.cam.ac.uk
    3.32 +tjd21@arcadians.cl.cam.ac.uk
    3.33  tlh20@elite.cl.cam.ac.uk
    3.34  tlh20@labyrinth.cl.cam.ac.uk
    3.35  tw275@labyrinth.cl.cam.ac.uk
     4.1 --- a/Config.mk	Mon Apr 04 10:52:11 2005 +0000
     4.2 +++ b/Config.mk	Mon Apr 04 16:13:17 2005 +0000
     4.3 @@ -1,11 +1,16 @@
     4.4  # -*- mode: Makefile; -*-
     4.5 +
     4.6  # Currently supported architectures: x86_32, x86_64
     4.7  XEN_COMPILE_ARCH    ?= $(shell uname -m | sed -e s/i.86/x86_32/)
     4.8  XEN_TARGET_ARCH     ?= $(XEN_COMPILE_ARCH)
     4.9  
    4.10 -#
    4.11 -# Tool configuration Makefile fragment
    4.12 -#
    4.13 +# Set ARCH/SUBARCH appropriately.
    4.14 +override COMPILE_SUBARCH := $(XEN_COMPILE_ARCH)
    4.15 +override TARGET_SUBARCH  := $(XEN_TARGET_ARCH)
    4.16 +override COMPILE_ARCH    := $(patsubst x86%,x86,$(XEN_COMPILE_ARCH))
    4.17 +override TARGET_ARCH     := $(patsubst x86%,x86,$(XEN_TARGET_ARCH))
    4.18 +
    4.19 +# Tools to run on system hosting the build
    4.20  HOSTCC     = gcc
    4.21  HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer 
    4.22  
    4.23 @@ -19,7 +24,6 @@ STRIP      = $(CROSS_COMPILE)strip
    4.24  OBJCOPY    = $(CROSS_COMPILE)objcopy
    4.25  OBJDUMP    = $(CROSS_COMPILE)objdump
    4.26  
    4.27 -
    4.28  ifneq ($(EXTRA_PREFIX),)
    4.29  EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
    4.30  EXTRA_LIB += $(EXTRA_PREFIX)/lib
    4.31 @@ -27,7 +31,3 @@ endif
    4.32  
    4.33  LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i)) 
    4.34  CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
    4.35 -
    4.36 -CFLAGS += -g
    4.37 -
    4.38 -
     5.1 --- a/buildconfigs/Rules.mk	Mon Apr 04 10:52:11 2005 +0000
     5.2 +++ b/buildconfigs/Rules.mk	Mon Apr 04 16:13:17 2005 +0000
     5.3 @@ -1,3 +1,5 @@
     5.4 +
     5.5 +include Config.mk
     5.6  
     5.7  # We expect these two to already be set if people 
     5.8  # are using the top-level Makefile
     6.1 --- a/buildconfigs/mk.linux-2.6-xen0	Mon Apr 04 10:52:11 2005 +0000
     6.2 +++ b/buildconfigs/mk.linux-2.6-xen0	Mon Apr 04 16:13:17 2005 +0000
     6.3 @@ -32,7 +32,7 @@ build: $(LINUX_DIR)/include/linux/autoco
     6.4  	# Re-use config from install dir if one exits else use default config
     6.5  	[ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \
     6.6  	  cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \
     6.7 -	  || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig \
     6.8 +	  || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig_$(TARGET_SUBARCH) \
     6.9  		$(LINUX_DIR)/.config
    6.10  	$(MAKE) -C $(LINUX_DIR) ARCH=xen oldconfig
    6.11  
     7.1 --- a/buildconfigs/mk.linux-2.6-xenU	Mon Apr 04 10:52:11 2005 +0000
     7.2 +++ b/buildconfigs/mk.linux-2.6-xenU	Mon Apr 04 16:13:17 2005 +0000
     7.3 @@ -32,7 +32,7 @@ build: $(LINUX_DIR)/include/linux/autoco
     7.4  	# Re-use config from install dir if one exits else use default config
     7.5  	[ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \
     7.6  	  cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \
     7.7 -	  || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig \
     7.8 +	  || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig_$(TARGET_SUBARCH) \
     7.9  		$(LINUX_DIR)/.config
    7.10  	$(MAKE) -C $(LINUX_DIR) ARCH=xen oldconfig
    7.11  
     8.1 --- a/docs/src/interface.tex	Mon Apr 04 10:52:11 2005 +0000
     8.2 +++ b/docs/src/interface.tex	Mon Apr 04 16:13:17 2005 +0000
     8.3 @@ -601,22 +601,24 @@ documentation.
     8.4  
     8.5  \section{Mailing lists}
     8.6  
     8.7 -There are currently three official Xen mailing lists:
     8.8 +There are currently four official Xen mailing lists:
     8.9  
    8.10  \begin{description}
    8.11 -\item[xen-devel@lists.sourceforge.net] Used for development
    8.12 +\item[xen-devel@lists.xensource.com] Used for development
    8.13 +discussions and bug reports.  Subscribe at: \\
    8.14 +{\small {\tt http://lists.xensource.com/xen-devel}}
    8.15 +\item[xen-users@lists.xensource.com] Used for installation and usage
    8.16  discussions and requests for help.  Subscribe at: \\
    8.17 -{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-devel}}
    8.18 -\item[xen-announce@lists.sourceforge.net] Used for announcements only.
    8.19 +{\small {\tt http://lists.xensource.com/xen-users}}
    8.20 +\item[xen-announce@lists.xensource.com] Used for announcements only.
    8.21  Subscribe at: \\
    8.22 -{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-announce}}
    8.23 -\item[xen-changelog@lists.sourceforge.net]  Changelog feed
    8.24 +{\small {\tt http://lists.xensource.com/xen-announce}}
    8.25 +\item[xen-changelog@lists.xensource.com]  Changelog feed
    8.26  from the unstable and 2.0 trees - developer oriented.  Subscribe at: \\
    8.27 -{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-changelog}}
    8.28 +{\small {\tt http://lists.xensource.com/xen-changelog}}
    8.29  \end{description}
    8.30  
    8.31 -Of these, xen-devel is the most active; it is currently used for 
    8.32 -both developer and user-related discussions. 
    8.33 +Of these, xen-devel is the most active.
    8.34  
    8.35  
    8.36  
     9.1 --- a/docs/src/user.tex	Mon Apr 04 10:52:11 2005 +0000
     9.2 +++ b/docs/src/user.tex	Mon Apr 04 16:13:17 2005 +0000
     9.3 @@ -1101,7 +1101,7 @@ features.
     9.4  To initialise a partition to support LVM volumes:
     9.5  \begin{quote}
     9.6  \begin{verbatim} 
     9.7 -# pvcreate /dev/sda10		
     9.8 +# pvcreate /dev/sda10           
     9.9  \end{verbatim} 
    9.10  \end{quote}
    9.11  
    9.12 @@ -1850,23 +1850,23 @@ documentation (including the lateset ver
    9.13  
    9.14  \section{Mailing Lists}
    9.15  
    9.16 -There are currently three official Xen mailing lists:
    9.17 +There are currently four official Xen mailing lists:
    9.18  
    9.19  \begin{description}
    9.20 -\item[xen-devel@lists.sourceforge.net] Used for development
    9.21 +\item[xen-devel@lists.xensource.com] Used for development
    9.22 +discussions and bug reports.  Subscribe at: \\
    9.23 +{\small {\tt http://lists.xensource.com/xen-devel}}
    9.24 +\item[xen-users@lists.xensource.com] Used for installation and usage
    9.25  discussions and requests for help.  Subscribe at: \\
    9.26 -\path{http://lists.sourceforge.net/mailman/listinfo/xen-devel}
    9.27 -\item[xen-announce@lists.sourceforge.net] Used for announcements only.
    9.28 +{\small {\tt http://lists.xensource.com/xen-users}}
    9.29 +\item[xen-announce@lists.xensource.com] Used for announcements only.
    9.30  Subscribe at: \\
    9.31 -\path{http://lists.sourceforge.net/mailman/listinfo/xen-announce}
    9.32 -\item[xen-changelog@lists.sourceforge.net]  Changelog feed
    9.33 +{\small {\tt http://lists.xensource.com/xen-announce}}
    9.34 +\item[xen-changelog@lists.xensource.com]  Changelog feed
    9.35  from the unstable and 2.0 trees - developer oriented.  Subscribe at: \\
    9.36 -\path{http://lists.sourceforge.net/mailman/listinfo/xen-changelog}
    9.37 +{\small {\tt http://lists.xensource.com/xen-changelog}}
    9.38  \end{description}
    9.39  
    9.40 -Although there is no specific user support list, the developers try to
    9.41 -assist users who post on xen-devel.  As the bulk of traffic on this
    9.42 -list increases, a dedicated user support list may be introduced.
    9.43  
    9.44  \appendix
    9.45  
    10.1 --- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/ctrl_if.c	Mon Apr 04 10:52:11 2005 +0000
    10.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/ctrl_if.c	Mon Apr 04 16:13:17 2005 +0000
    10.3 @@ -470,8 +470,8 @@ ctrl_if_resume(void)
    10.4      
    10.5  
    10.6      /* Sync up with shared indexes. */
    10.7 -    FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring);
    10.8 -    BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring);
    10.9 +    FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring, CONTROL_RING_MEM);
   10.10 +    BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring, CONTROL_RING_MEM);
   10.11  
   10.12      ctrl_if_evtchn = xen_start_info->domain_controller_evtchn;
   10.13      ctrl_if_irq    = bind_evtchn_to_irq(ctrl_if_evtchn);
   10.14 @@ -498,8 +498,8 @@ ctrl_if_init(void *dummy __unused)
   10.15      for ( i = 0; i < 256; i++ )
   10.16          ctrl_if_rxmsg_handler[i] = ctrl_if_rxmsg_default_handler;
   10.17      
   10.18 -    FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring);
   10.19 -    BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring);
   10.20 +    FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring, CONTROL_RING_MEM);
   10.21 +    BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring, CONTROL_RING_MEM);
   10.22  
   10.23      mtx_init(&ctrl_if_lock, "ctrlif", NULL, MTX_SPIN | MTX_NOWITNESS);
   10.24      
    11.1 --- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c	Mon Apr 04 10:52:11 2005 +0000
    11.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c	Mon Apr 04 16:13:17 2005 +0000
    11.3 @@ -540,7 +540,7 @@ mcl_queue_pt_update(vm_offset_t va, vm_p
    11.4      MCL_QUEUE[MCL_IDX].op = __HYPERVISOR_update_va_mapping;
    11.5      MCL_QUEUE[MCL_IDX].args[0] = (unsigned long)va;
    11.6      MCL_QUEUE[MCL_IDX].args[1] = (unsigned long)ma;
    11.7 -    MCL_QUEUE[MCL_IDX].args[2] = UVMF_INVLPG;
    11.8 +    MCL_QUEUE[MCL_IDX].args[2] = UVMF_INVLPG|UVMF_LOCAL;
    11.9      mcl_increment_idx();
   11.10  }
   11.11  
    12.1 --- a/freebsd-5.3-xen-sparse/i386-xen/include/hypervisor.h	Mon Apr 04 10:52:11 2005 +0000
    12.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/include/hypervisor.h	Mon Apr 04 16:13:17 2005 +0000
    12.3 @@ -176,7 +176,7 @@ static inline long HYPERVISOR_set_timer_
    12.4      __asm__ __volatile__ (
    12.5          TRAP_INSTR
    12.6          : "=a" (ret) : "0" (__HYPERVISOR_set_timer_op),
    12.7 -        "b" (timeout_hi), "c" (timeout_lo) : "memory" );
    12.8 +        "b" (timeout_lo), "c" (timeout_hi) : "memory" );
    12.9  
   12.10      return ret;
   12.11  }
    13.1 --- a/freebsd-5.3-xen-sparse/i386-xen/xen/blkfront/xb_blkfront.c	Mon Apr 04 10:52:11 2005 +0000
    13.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/xen/blkfront/xb_blkfront.c	Mon Apr 04 16:13:17 2005 +0000
    13.3 @@ -102,8 +102,10 @@ static blkif_response_t blkif_control_rs
    13.4  
    13.5  static blkif_front_ring_t   blk_ring;
    13.6  
    13.7 +#define BLK_RING_SIZE __RING_SIZE((blkif_sring_t *)0, PAGE_SIZE)
    13.8 +
    13.9  static unsigned long rec_ring_free;		
   13.10 -blkif_request_t rec_ring[RING_SIZE(&blk_ring)];	/* shadow recovery ring */
   13.11 +blkif_request_t rec_ring[BLK_RING_SIZE];
   13.12  
   13.13  /* XXX move to xb_vbd.c when VBD update support is added */
   13.14  #define MAX_VBDS 64
   13.15 @@ -133,7 +135,7 @@ GET_ID_FROM_FREELIST( void )
   13.16  {
   13.17      unsigned long free = rec_ring_free;
   13.18  
   13.19 -    KASSERT(free <= RING_SIZE(&blk_ring), ("free %lu > RING_SIZE", free));
   13.20 +    KASSERT(free <= BLK_RING_SIZE, ("free %lu > RING_SIZE", free));
   13.21  
   13.22      rec_ring_free = rec_ring[free].id;
   13.23  
   13.24 @@ -638,7 +640,7 @@ blkif_disconnect(void)
   13.25      if (blk_ring.sring) free(blk_ring.sring, M_DEVBUF);
   13.26      blk_ring.sring = (blkif_sring_t *)malloc(PAGE_SIZE, M_DEVBUF, M_WAITOK);
   13.27      SHARED_RING_INIT(blk_ring.sring);
   13.28 -    FRONT_RING_INIT(&blk_ring, blk_ring.sring);
   13.29 +    FRONT_RING_INIT(&blk_ring, blk_ring.sring, PAGE_SIZE);
   13.30      blkif_state  = BLKIF_STATE_DISCONNECTED;
   13.31      blkif_send_interface_connect();
   13.32  }
   13.33 @@ -662,7 +664,7 @@ blkif_recover(void)
   13.34       * This will need to be fixed once we have barriers */
   13.35  
   13.36      /* Stage 1 : Find active and move to safety. */
   13.37 -    for ( i = 0; i < RING_SIZE(&blk_ring); i++ ) {
   13.38 +    for ( i = 0; i < BLK_RING_SIZE; i++ ) {
   13.39          if ( rec_ring[i].id >= KERNBASE ) {
   13.40  	    req = RING_GET_REQUEST(&blk_ring, 
   13.41                                     blk_ring.req_prod_pvt);
   13.42 @@ -682,11 +684,11 @@ blkif_recover(void)
   13.43      }
   13.44  
   13.45      /* Stage 3 : Set up free list. */
   13.46 -    for ( ; i < RING_SIZE(&blk_ring); i++ ){
   13.47 +    for ( ; i < BLK_RING_SIZE; i++ ){
   13.48          rec_ring[i].id = i+1;
   13.49      }
   13.50      rec_ring_free = blk_ring.req_prod_pvt;
   13.51 -    rec_ring[RING_SIZE(&blk_ring)-1].id = 0x0fffffff;
   13.52 +    rec_ring[BLK_RING_SIZE-1].id = 0x0fffffff;
   13.53  
   13.54      /* blk_ring.req_prod will be set when we flush_requests().*/
   13.55      wmb();
   13.56 @@ -874,10 +876,10 @@ xb_init(void *unused)
   13.57      printk("[XEN] Initialising virtual block device driver\n");
   13.58  
   13.59      rec_ring_free = 0;
   13.60 -    for (i = 0; i < RING_SIZE(&blk_ring); i++) {
   13.61 +    for (i = 0; i < BLK_RING_SIZE; i++) {
   13.62  	rec_ring[i].id = i+1;
   13.63      }
   13.64 -    rec_ring[RING_SIZE(&blk_ring)-1].id = 0x0fffffff;
   13.65 +    rec_ring[BLK_RING_SIZE-1].id = 0x0fffffff;
   13.66  
   13.67      (void)ctrl_if_register_receiver(CMSG_BLKIF_FE, blkif_ctrlif_rx, 0);
   13.68  
    14.1 --- a/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c	Mon Apr 04 10:52:11 2005 +0000
    14.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c	Mon Apr 04 16:13:17 2005 +0000
    14.3 @@ -440,7 +440,7 @@ xn_alloc_rx_buffers(struct xn_softc *sc)
    14.4      PT_UPDATES_FLUSH();
    14.5  
    14.6      /* After all PTEs have been zapped we blow away stale TLB entries. */
    14.7 -    xn_rx_mcl[i-1].args[2] = UVMF_FLUSH_TLB;
    14.8 +    xn_rx_mcl[i-1].args[2] = UVMF_TLB_FLUSH|UVMF_LOCAL;
    14.9  
   14.10      /* Give away a batch of pages. */
   14.11      xn_rx_mcl[i].op = __HYPERVISOR_dom_mem_op;
    15.1 --- a/linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c	Mon Apr 04 10:52:11 2005 +0000
    15.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c	Mon Apr 04 16:13:17 2005 +0000
    15.3 @@ -114,12 +114,6 @@ static int xlvbd_init_device(vdisk_t *xd
    15.4      if ( (bd = bdget(device)) == NULL )
    15.5          return -1;
    15.6  
    15.7 -    /*
    15.8 -     * Update of partition info, and check of usage count, is protected
    15.9 -     * by the per-block-device semaphore.
   15.10 -     */
   15.11 -    down(&bd->bd_sem);
   15.12 -
   15.13      if ( ((disk = xldev_to_xldisk(device)) != NULL) && (disk->usage != 0) )
   15.14      {
   15.15          printk(KERN_ALERT "VBD update failed - in use [dev=%x]\n", device);
   15.16 @@ -169,14 +163,14 @@ static int xlvbd_init_device(vdisk_t *xd
   15.17              blksize_size[major]  = xlide_blksize_size;
   15.18              hardsect_size[major] = xlide_hardsect_size;
   15.19              max_sectors[major]   = xlide_max_sectors;
   15.20 -            read_ahead[major]    = 8; /* from drivers/ide/ide-probe.c */
   15.21 +            read_ahead[major]    = 8;
   15.22          } 
   15.23          else if ( is_scsi )
   15.24          { 
   15.25              blksize_size[major]  = xlscsi_blksize_size;
   15.26              hardsect_size[major] = xlscsi_hardsect_size;
   15.27              max_sectors[major]   = xlscsi_max_sectors;
   15.28 -            read_ahead[major]    = 0; /* XXX 8; -- guessing */
   15.29 +            read_ahead[major]    = 8;
   15.30          }
   15.31          else
   15.32          { 
   15.33 @@ -331,7 +325,6 @@ static int xlvbd_init_device(vdisk_t *xd
   15.34      }
   15.35  
   15.36   out:
   15.37 -    up(&bd->bd_sem);
   15.38      bdput(bd);    
   15.39      return rc;
   15.40  }
   15.41 @@ -356,12 +349,6 @@ static int xlvbd_remove_device(int devic
   15.42      if ( (bd = bdget(device)) == NULL )
   15.43          return -1;
   15.44  
   15.45 -    /*
   15.46 -     * Update of partition info, and check of usage count, is protected
   15.47 -     * by the per-block-device semaphore.
   15.48 -     */
   15.49 -    down(&bd->bd_sem);
   15.50 -
   15.51      if ( ((gd = get_gendisk(device)) == NULL) ||
   15.52           ((disk = xldev_to_xldisk(device)) == NULL) )
   15.53          BUG();
   15.54 @@ -423,7 +410,6 @@ static int xlvbd_remove_device(int devic
   15.55      }
   15.56  
   15.57   out:
   15.58 -    up(&bd->bd_sem);
   15.59      bdput(bd);
   15.60      return rc;
   15.61  }
   15.62 @@ -529,20 +515,17 @@ int xlvbd_init(void)
   15.63      /* Initialize the global arrays. */
   15.64      for ( i = 0; i < 256; i++ ) 
   15.65      {
   15.66 -        /* from the generic ide code (drivers/ide/ide-probe.c, etc) */
   15.67          xlide_blksize_size[i]  = 1024;
   15.68          xlide_hardsect_size[i] = 512;
   15.69 -        xlide_max_sectors[i]   = 128;  /* 'hwif->rqsize' if we knew it */
   15.70 +        xlide_max_sectors[i]   = 512;
   15.71  
   15.72 -        /* from the generic scsi disk code (drivers/scsi/sd.c) */
   15.73 -        xlscsi_blksize_size[i]  = 1024; /* XXX 512; */
   15.74 +        xlscsi_blksize_size[i]  = 1024;
   15.75          xlscsi_hardsect_size[i] = 512;
   15.76 -        xlscsi_max_sectors[i]   = 128*8; /* XXX 128; */
   15.77 +        xlscsi_max_sectors[i]   = 512;
   15.78  
   15.79 -        /* we don't really know what to set these too since it depends */
   15.80          xlvbd_blksize_size[i]  = 512;
   15.81          xlvbd_hardsect_size[i] = 512;
   15.82 -        xlvbd_max_sectors[i]   = 128;
   15.83 +        xlvbd_max_sectors[i]   = 512;
   15.84      }
   15.85  
   15.86      vbd_info = kmalloc(MAX_VBDS * sizeof(vdisk_t), GFP_KERNEL);
    16.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/head.S	Mon Apr 04 10:52:11 2005 +0000
    16.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/head.S	Mon Apr 04 16:13:17 2005 +0000
    16.3 @@ -1,6 +1,8 @@
    16.4  
    16.5  .section __xen_guest
    16.6 -    .asciz "GUEST_OS=linux,GUEST_VER=2.4,XEN_VER=3.0,VIRT_BASE=0xC0000000"
    16.7 +    .ascii "GUEST_OS=linux,GUEST_VER=2.4,XEN_VER=3.0,VIRT_BASE=0xC0000000"
    16.8 +    .ascii ",LOADER=generic"
    16.9 +    .byte  0
   16.10  
   16.11  .text
   16.12  #include <linux/config.h>
    17.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/ldt.c	Mon Apr 04 10:52:11 2005 +0000
    17.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/ldt.c	Mon Apr 04 16:13:17 2005 +0000
    17.3 @@ -14,6 +14,7 @@
    17.4  #include <linux/vmalloc.h>
    17.5  #include <linux/slab.h>
    17.6  
    17.7 +#include <asm/mmu_context.h>
    17.8  #include <asm/uaccess.h>
    17.9  #include <asm/system.h>
   17.10  #include <asm/ldt.h>
   17.11 @@ -58,7 +59,6 @@ static int alloc_ldt(mm_context_t *pc, i
   17.12  			pc->ldt,
   17.13  			(pc->size*LDT_ENTRY_SIZE)/PAGE_SIZE);
   17.14  		load_LDT(pc);
   17.15 -		flush_page_update_queue();
   17.16  #ifdef CONFIG_SMP
   17.17  		if (current->mm->cpu_vm_mask != (1<<smp_processor_id()))
   17.18  			smp_call_function(flush_ldt, 0, 1, 1);
   17.19 @@ -66,6 +66,8 @@ static int alloc_ldt(mm_context_t *pc, i
   17.20  	}
   17.21  	wmb();
   17.22  	if (oldsize) {
   17.23 +		make_pages_writable(
   17.24 +			oldldt, (oldsize*LDT_ENTRY_SIZE)/PAGE_SIZE);
   17.25  		if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE)
   17.26  			vfree(oldldt);
   17.27  		else
   17.28 @@ -118,7 +120,6 @@ void destroy_context(struct mm_struct *m
   17.29  		make_pages_writable(
   17.30  			mm->context.ldt, 
   17.31  			(mm->context.size*LDT_ENTRY_SIZE)/PAGE_SIZE);
   17.32 -		flush_page_update_queue();
   17.33  		if (mm->context.size*LDT_ENTRY_SIZE > PAGE_SIZE)
   17.34  			vfree(mm->context.ldt);
   17.35  		else
    18.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/process.c	Mon Apr 04 10:52:11 2005 +0000
    18.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/process.c	Mon Apr 04 16:13:17 2005 +0000
    18.3 @@ -43,7 +43,6 @@
    18.4  #include <asm/i387.h>
    18.5  #include <asm/desc.h>
    18.6  #include <asm/mmu_context.h>
    18.7 -#include <asm/multicall.h>
    18.8  #include <asm-xen/xen-public/physdev.h>
    18.9  
   18.10  #include <linux/irq.h>
   18.11 @@ -305,19 +304,7 @@ void fastcall __switch_to(struct task_st
   18.12  {
   18.13      struct thread_struct *next = &next_p->thread;
   18.14      physdev_op_t op;
   18.15 -
   18.16 -    __cli();
   18.17 -
   18.18 -    /*
   18.19 -     * We clobber FS and GS here so that we avoid a GPF when restoring previous
   18.20 -     * task's FS/GS values in Xen when the LDT is switched. If we don't do this
   18.21 -     * then we can end up erroneously re-flushing the page-update queue when
   18.22 -     * we 'execute_multicall_list'.
   18.23 -     */
   18.24 -    __asm__ __volatile__ ( 
   18.25 -        "xorl %%eax,%%eax; movl %%eax,%%fs; movl %%eax,%%gs" : : : "eax" );
   18.26 -
   18.27 -    MULTICALL_flush_page_update_queue();
   18.28 +    multicall_entry_t _mcl[8], *mcl = _mcl;
   18.29  
   18.30      /*
   18.31       * This is basically 'unlazy_fpu', except that we queue a multicall to 
   18.32 @@ -332,21 +319,26 @@ void fastcall __switch_to(struct task_st
   18.33              asm volatile( "fnsave %0 ; fwait"
   18.34                            : "=m" (prev_p->thread.i387.fsave) );
   18.35  	prev_p->flags &= ~PF_USEDFPU;
   18.36 -        queue_multicall1(__HYPERVISOR_fpu_taskswitch, 1);
   18.37 +        mcl->op      = __HYPERVISOR_fpu_taskswitch;
   18.38 +        mcl->args[0] = 1;
   18.39 +        mcl++;
   18.40      }
   18.41  
   18.42 -    queue_multicall2(__HYPERVISOR_stack_switch, __KERNEL_DS, next->esp0);
   18.43 +    mcl->op      = __HYPERVISOR_stack_switch;
   18.44 +    mcl->args[0] = __KERNEL_DS;
   18.45 +    mcl->args[1] = next->esp0;
   18.46 +    mcl++;
   18.47  
   18.48      if ( prev_p->thread.io_pl != next->io_pl ) 
   18.49      {
   18.50          op.cmd             = PHYSDEVOP_SET_IOPL;
   18.51  	op.u.set_iopl.iopl = next->io_pl;
   18.52 -        queue_multicall1(__HYPERVISOR_physdev_op, (unsigned long)&op);
   18.53 +        mcl->op      = __HYPERVISOR_physdev_op;
   18.54 +        mcl->args[0] = (unsigned long)&op;
   18.55 +        mcl++;
   18.56      }
   18.57  
   18.58 -    /* EXECUTE ALL TASK SWITCH XEN SYSCALLS AT THIS POINT. */
   18.59 -    execute_multicall_list();
   18.60 -    __sti();
   18.61 +    (void)HYPERVISOR_multicall(_mcl, mcl - _mcl);
   18.62  
   18.63      /*
   18.64       * Restore %fs and %gs.
    19.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/setup.c	Mon Apr 04 10:52:11 2005 +0000
    19.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/setup.c	Mon Apr 04 16:13:17 2005 +0000
    19.3 @@ -62,9 +62,6 @@ shared_info_t *HYPERVISOR_shared_info = 
    19.4  
    19.5  unsigned int *phys_to_machine_mapping, *pfn_to_mfn_frame_list;
    19.6  
    19.7 -DEFINE_PER_CPU(multicall_entry_t, multicall_list[8]);
    19.8 -DEFINE_PER_CPU(int, nr_multicall_ents);
    19.9 -
   19.10  /*
   19.11   * Machine setup..
   19.12   */
   19.13 @@ -231,8 +228,10 @@ void __init setup_arch(char **cmdline_p)
   19.14      blk_nohighio = 1;
   19.15  #endif
   19.16  
   19.17 -    HYPERVISOR_vm_assist(VMASST_CMD_enable,
   19.18 -                         VMASST_TYPE_4gb_segments);
   19.19 +    HYPERVISOR_vm_assist(
   19.20 +        VMASST_CMD_enable, VMASST_TYPE_4gb_segments);
   19.21 +    HYPERVISOR_vm_assist(
   19.22 +        VMASST_CMD_enable, VMASST_TYPE_writable_pagetables);
   19.23          
   19.24      HYPERVISOR_set_callbacks(
   19.25          __KERNEL_CS, (unsigned long)hypervisor_callback,
   19.26 @@ -1206,7 +1205,6 @@ void __init cpu_init (void)
   19.27      HYPERVISOR_stack_switch(__KERNEL_DS, current->thread.esp0);
   19.28  
   19.29      load_LDT(&init_mm.context);
   19.30 -    flush_page_update_queue();
   19.31  
   19.32      /* Force FPU initialization. */
   19.33      current->flags &= ~PF_USEDFPU;
    20.1 --- a/linux-2.4.29-xen-sparse/arch/xen/kernel/traps.c	Mon Apr 04 10:52:11 2005 +0000
    20.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/kernel/traps.c	Mon Apr 04 16:13:17 2005 +0000
    20.3 @@ -316,15 +316,7 @@ asmlinkage void do_general_protection(st
    20.4  		__asm__ __volatile__ ( "sldt %0" : "=r" (ldt) );
    20.5  		if ( ldt == 0 )
    20.6  		{
    20.7 -		    mmu_update_t u;
    20.8 -		    u.ptr  = MMU_EXTENDED_COMMAND;
    20.9 -		    u.ptr |= (unsigned long)&default_ldt[0];
   20.10 -		    u.val  = MMUEXT_SET_LDT | (5 << MMUEXT_CMD_SHIFT);
   20.11 -		    if ( unlikely(HYPERVISOR_mmu_update(&u, 1, NULL) < 0) )
   20.12 -		    {
   20.13 -			show_trace(NULL);
   20.14 -			panic("Failed to install default LDT");
   20.15 -		    }
   20.16 +                    xen_set_ldt((unsigned long)&default_ldt[0], 5);
   20.17  		    return;
   20.18  		}
   20.19  	}
    21.1 --- a/linux-2.4.29-xen-sparse/arch/xen/mm/fault.c	Mon Apr 04 10:52:11 2005 +0000
    21.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/mm/fault.c	Mon Apr 04 16:13:17 2005 +0000
    21.3 @@ -84,9 +84,6 @@ asmlinkage void do_page_fault(struct pt_
    21.4          error_code &= 3;
    21.5          error_code |= (regs->xcs & 2) << 1;
    21.6  
    21.7 -	/* ensure all updates have completed */
    21.8 -	flush_page_update_queue();
    21.9 -
   21.10  	/*
   21.11  	 * We fault-in kernel-space virtual memory on-demand. The
   21.12  	 * 'reference' page table is init_mm.pgd.
   21.13 @@ -296,7 +293,6 @@ vmalloc_fault:
   21.14  		if (!pmd_present(*pmd_k))
   21.15  			goto no_context;
   21.16  		set_pmd(pmd, *pmd_k);
   21.17 -                XEN_flush_page_update_queue(); /* flush PMD update */
   21.18  
   21.19  		pte_k = pte_offset(pmd_k, address);
   21.20  		if (!pte_present(*pte_k))
    22.1 --- a/linux-2.4.29-xen-sparse/arch/xen/mm/init.c	Mon Apr 04 10:52:11 2005 +0000
    22.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/mm/init.c	Mon Apr 04 16:13:17 2005 +0000
    22.3 @@ -142,7 +142,7 @@ static inline void set_pte_phys (unsigne
    22.4      }
    22.5      pte = pte_offset(pmd, vaddr);
    22.6  
    22.7 -    queue_l1_entry_update(pte, phys | pgprot_val(prot));
    22.8 +    set_pte(pte, (pte_t) { phys | pgprot_val(prot) });
    22.9  
   22.10      /*
   22.11       * It's enough to flush this one mapping.
   22.12 @@ -201,17 +201,13 @@ static void __init fixrange_init (unsign
   22.13                  kpgd = pgd_offset_k((unsigned long)pte);
   22.14                  kpmd = pmd_offset(kpgd, (unsigned long)pte);
   22.15                  kpte = pte_offset(kpmd, (unsigned long)pte);
   22.16 -                queue_l1_entry_update(kpte,
   22.17 -                                      (*(unsigned long *)kpte)&~_PAGE_RW);
   22.18 -
   22.19 +                set_pte(kpte, pte_wrprotect(*kpte));
   22.20                  set_pmd(pmd, __pmd(_KERNPG_TABLE + __pa(pte)));
   22.21              }
   22.22              vaddr += PMD_SIZE;
   22.23          }
   22.24          j = 0;
   22.25      }
   22.26 -	
   22.27 -    XEN_flush_page_update_queue();
   22.28  }
   22.29  
   22.30  
   22.31 @@ -257,10 +253,8 @@ static void __init pagetable_init (void)
   22.32              kpgd = pgd_offset_k((unsigned long)pte_base);
   22.33              kpmd = pmd_offset(kpgd, (unsigned long)pte_base);
   22.34              kpte = pte_offset(kpmd, (unsigned long)pte_base);
   22.35 -            queue_l1_entry_update(kpte,
   22.36 -                                  (*(unsigned long *)kpte)&~_PAGE_RW);
   22.37 +            set_pte(kpte, pte_wrprotect(*kpte));
   22.38              set_pmd(pmd, __pmd(_KERNPG_TABLE + __pa(pte_base)));
   22.39 -            XEN_flush_page_update_queue();
   22.40          }
   22.41      }
   22.42  
   22.43 @@ -311,6 +305,7 @@ void __init paging_init(void)
   22.44      pagetable_init();
   22.45  
   22.46      zone_sizes_init();
   22.47 +
   22.48      /* Switch to the real shared_info page, and clear the dummy page. */
   22.49      set_fixmap(FIX_SHARED_INFO, xen_start_info.shared_info);
   22.50      HYPERVISOR_shared_info = (shared_info_t *)fix_to_virt(FIX_SHARED_INFO);
    23.1 --- a/linux-2.4.29-xen-sparse/arch/xen/mm/ioremap.c	Mon Apr 04 10:52:11 2005 +0000
    23.2 +++ b/linux-2.4.29-xen-sparse/arch/xen/mm/ioremap.c	Mon Apr 04 16:13:17 2005 +0000
    23.3 @@ -113,12 +113,7 @@ int direct_remap_area_pages(struct mm_st
    23.4      int i;
    23.5      unsigned long start_address;
    23.6  #define MAX_DIRECTMAP_MMU_QUEUE 130
    23.7 -    mmu_update_t u[MAX_DIRECTMAP_MMU_QUEUE], *w, *v;
    23.8 -
    23.9 -    u[0].ptr  = MMU_EXTENDED_COMMAND;
   23.10 -    u[0].val  = MMUEXT_SET_FOREIGNDOM;
   23.11 -    u[0].val |= (unsigned long)domid << 16;
   23.12 -    v = w = &u[1];
   23.13 +    mmu_update_t u[MAX_DIRECTMAP_MMU_QUEUE], *v = u;
   23.14  
   23.15      start_address = address;
   23.16  
   23.17 @@ -130,11 +125,11 @@ int direct_remap_area_pages(struct mm_st
   23.18  	    __direct_remap_area_pages( mm,
   23.19  				       start_address, 
   23.20  				       address-start_address, 
   23.21 -				       w);
   23.22 +				       u);
   23.23  	    
   23.24 -	    if ( HYPERVISOR_mmu_update(u, v - u, NULL) < 0 )
   23.25 +	    if ( HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0 )
   23.26  		return -EFAULT;	    
   23.27 -	    v = w;
   23.28 +	    v = u;
   23.29  	    start_address = address;
   23.30  	}
   23.31  
   23.32 @@ -149,14 +144,14 @@ int direct_remap_area_pages(struct mm_st
   23.33          v++;
   23.34      }
   23.35  
   23.36 -    if ( v != w )
   23.37 +    if ( v != u )
   23.38      {
   23.39  	/* get the ptep's filled in */
   23.40  	__direct_remap_area_pages(mm,
   23.41                                    start_address, 
   23.42                                    address-start_address, 
   23.43 -                                  w);	 
   23.44 -	if ( unlikely(HYPERVISOR_mmu_update(u, v - u, NULL) < 0) )
   23.45 +                                  u);	 
   23.46 +	if ( unlikely(HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0) )
   23.47  	    return -EFAULT;	    
   23.48      }
   23.49      
    24.1 --- a/linux-2.4.29-xen-sparse/fs/exec.c	Mon Apr 04 10:52:11 2005 +0000
    24.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.3 @@ -1,1179 +0,0 @@
    24.4 -/*
    24.5 - *  linux/fs/exec.c
    24.6 - *
    24.7 - *  Copyright (C) 1991, 1992  Linus Torvalds
    24.8 - */
    24.9 -
   24.10 -/*
   24.11 - * #!-checking implemented by tytso.
   24.12 - */
   24.13 -/*
   24.14 - * Demand-loading implemented 01.12.91 - no need to read anything but
   24.15 - * the header into memory. The inode of the executable is put into
   24.16 - * "current->executable", and page faults do the actual loading. Clean.
   24.17 - *
   24.18 - * Once more I can proudly say that linux stood up to being changed: it
   24.19 - * was less than 2 hours work to get demand-loading completely implemented.
   24.20 - *
   24.21 - * Demand loading changed July 1993 by Eric Youngdale.   Use mmap instead,
   24.22 - * current->executable is only used by the procfs.  This allows a dispatch
   24.23 - * table to check for several different types  of binary formats.  We keep
   24.24 - * trying until we recognize the file or we run out of supported binary
   24.25 - * formats. 
   24.26 - */
   24.27 -
   24.28 -#include <linux/config.h>
   24.29 -#include <linux/slab.h>
   24.30 -#include <linux/file.h>
   24.31 -#include <linux/mman.h>
   24.32 -#include <linux/a.out.h>
   24.33 -#include <linux/stat.h>
   24.34 -#include <linux/fcntl.h>
   24.35 -#include <linux/smp_lock.h>
   24.36 -#include <linux/init.h>
   24.37 -#include <linux/pagemap.h>
   24.38 -#include <linux/highmem.h>
   24.39 -#include <linux/spinlock.h>
   24.40 -#include <linux/personality.h>
   24.41 -#include <linux/swap.h>
   24.42 -#include <linux/utsname.h>
   24.43 -#define __NO_VERSION__
   24.44 -#include <linux/module.h>
   24.45 -
   24.46 -#include <asm/uaccess.h>
   24.47 -#include <asm/pgalloc.h>
   24.48 -#include <asm/mmu_context.h>
   24.49 -
   24.50 -#ifdef CONFIG_KMOD
   24.51 -#include <linux/kmod.h>
   24.52 -#endif
   24.53 -
   24.54 -int core_uses_pid;
   24.55 -char core_pattern[65] = "core";
   24.56 -int core_setuid_ok = 0;
   24.57 -/* The maximal length of core_pattern is also specified in sysctl.c */ 
   24.58 -
   24.59 -static struct linux_binfmt *formats;
   24.60 -static rwlock_t binfmt_lock = RW_LOCK_UNLOCKED;
   24.61 -
   24.62 -int register_binfmt(struct linux_binfmt * fmt)
   24.63 -{
   24.64 -	struct linux_binfmt ** tmp = &formats;
   24.65 -
   24.66 -	if (!fmt)
   24.67 -		return -EINVAL;
   24.68 -	if (fmt->next)
   24.69 -		return -EBUSY;
   24.70 -	write_lock(&binfmt_lock);
   24.71 -	while (*tmp) {
   24.72 -		if (fmt == *tmp) {
   24.73 -			write_unlock(&binfmt_lock);
   24.74 -			return -EBUSY;
   24.75 -		}
   24.76 -		tmp = &(*tmp)->next;
   24.77 -	}
   24.78 -	fmt->next = formats;
   24.79 -	formats = fmt;
   24.80 -	write_unlock(&binfmt_lock);
   24.81 -	return 0;	
   24.82 -}
   24.83 -
   24.84 -int unregister_binfmt(struct linux_binfmt * fmt)
   24.85 -{
   24.86 -	struct linux_binfmt ** tmp = &formats;
   24.87 -
   24.88 -	write_lock(&binfmt_lock);
   24.89 -	while (*tmp) {
   24.90 -		if (fmt == *tmp) {
   24.91 -			*tmp = fmt->next;
   24.92 -			write_unlock(&binfmt_lock);
   24.93 -			return 0;
   24.94 -		}
   24.95 -		tmp = &(*tmp)->next;
   24.96 -	}
   24.97 -	write_unlock(&binfmt_lock);
   24.98 -	return -EINVAL;
   24.99 -}
  24.100 -
  24.101 -static inline void put_binfmt(struct linux_binfmt * fmt)
  24.102 -{
  24.103 -	if (fmt->module)
  24.104 -		__MOD_DEC_USE_COUNT(fmt->module);
  24.105 -}
  24.106 -
  24.107 -/*
  24.108 - * Note that a shared library must be both readable and executable due to
  24.109 - * security reasons.
  24.110 - *
  24.111 - * Also note that we take the address to load from from the file itself.
  24.112 - */
  24.113 -asmlinkage long sys_uselib(const char * library)
  24.114 -{
  24.115 -	struct file * file;
  24.116 -	struct nameidata nd;
  24.117 -	int error;
  24.118 -
  24.119 -	error = user_path_walk(library, &nd);
  24.120 -	if (error)
  24.121 -		goto out;
  24.122 -
  24.123 -	error = -EINVAL;
  24.124 -	if (!S_ISREG(nd.dentry->d_inode->i_mode))
  24.125 -		goto exit;
  24.126 -
  24.127 -	error = permission(nd.dentry->d_inode, MAY_READ | MAY_EXEC);
  24.128 -	if (error)
  24.129 -		goto exit;
  24.130 -
  24.131 -	file = dentry_open(nd.dentry, nd.mnt, O_RDONLY);
  24.132 -	error = PTR_ERR(file);
  24.133 -	if (IS_ERR(file))
  24.134 -		goto out;
  24.135 -
  24.136 -	error = -ENOEXEC;
  24.137 -	if(file->f_op && file->f_op->read) {
  24.138 -		struct linux_binfmt * fmt;
  24.139 -
  24.140 -		read_lock(&binfmt_lock);
  24.141 -		for (fmt = formats ; fmt ; fmt = fmt->next) {
  24.142 -			if (!fmt->load_shlib)
  24.143 -				continue;
  24.144 -			if (!try_inc_mod_count(fmt->module))
  24.145 -				continue;
  24.146 -			read_unlock(&binfmt_lock);
  24.147 -			error = fmt->load_shlib(file);
  24.148 -			read_lock(&binfmt_lock);
  24.149 -			put_binfmt(fmt);
  24.150 -			if (error != -ENOEXEC)
  24.151 -				break;
  24.152 -		}
  24.153 -		read_unlock(&binfmt_lock);
  24.154 -	}
  24.155 -	fput(file);
  24.156 -out:
  24.157 -  	return error;
  24.158 -exit:
  24.159 -	path_release(&nd);
  24.160 -	goto out;
  24.161 -}
  24.162 -
  24.163 -/*
  24.164 - * count() counts the number of arguments/envelopes
  24.165 - */
  24.166 -static int count(char ** argv, int max)
  24.167 -{
  24.168 -	int i = 0;
  24.169 -
  24.170 -	if (argv != NULL) {
  24.171 -		for (;;) {
  24.172 -			char * p;
  24.173 -
  24.174 -			if (get_user(p, argv))
  24.175 -				return -EFAULT;
  24.176 -			if (!p)
  24.177 -				break;
  24.178 -			argv++;
  24.179 -			if(++i > max)
  24.180 -				return -E2BIG;
  24.181 -		}
  24.182 -	}
  24.183 -	return i;
  24.184 -}
  24.185 -
  24.186 -/*
  24.187 - * 'copy_strings()' copies argument/envelope strings from user
  24.188 - * memory to free pages in kernel mem. These are in a format ready
  24.189 - * to be put directly into the top of new user memory.
  24.190 - */
  24.191 -int copy_strings(int argc,char ** argv, struct linux_binprm *bprm) 
  24.192 -{
  24.193 -	struct page *kmapped_page = NULL;
  24.194 -	char *kaddr = NULL;
  24.195 -	int ret;
  24.196 -
  24.197 -	while (argc-- > 0) {
  24.198 -		char *str;
  24.199 -		int len;
  24.200 -		unsigned long pos;
  24.201 -
  24.202 -		if (get_user(str, argv+argc) ||
  24.203 -				!(len = strnlen_user(str, bprm->p))) {
  24.204 -			ret = -EFAULT;
  24.205 -			goto out;
  24.206 -		}
  24.207 -
  24.208 -		if (bprm->p < len)  {
  24.209 -			ret = -E2BIG;
  24.210 -			goto out;
  24.211 -		}
  24.212 -
  24.213 -		bprm->p -= len;
  24.214 -		/* XXX: add architecture specific overflow check here. */ 
  24.215 -		pos = bprm->p;
  24.216 -
  24.217 -		while (len > 0) {
  24.218 -			int i, new, err;
  24.219 -			int offset, bytes_to_copy;
  24.220 -			struct page *page;
  24.221 -
  24.222 -			offset = pos % PAGE_SIZE;
  24.223 -			i = pos/PAGE_SIZE;
  24.224 -			page = bprm->page[i];
  24.225 -			new = 0;
  24.226 -			if (!page) {
  24.227 -				page = alloc_page(GFP_HIGHUSER);
  24.228 -				bprm->page[i] = page;
  24.229 -				if (!page) {
  24.230 -					ret = -ENOMEM;
  24.231 -					goto out;
  24.232 -				}
  24.233 -				new = 1;
  24.234 -			}
  24.235 -
  24.236 -			if (page != kmapped_page) {
  24.237 -				if (kmapped_page)
  24.238 -					kunmap(kmapped_page);
  24.239 -				kmapped_page = page;
  24.240 -				kaddr = kmap(kmapped_page);
  24.241 -			}
  24.242 -			if (new && offset)
  24.243 -				memset(kaddr, 0, offset);
  24.244 -			bytes_to_copy = PAGE_SIZE - offset;
  24.245 -			if (bytes_to_copy > len) {
  24.246 -				bytes_to_copy = len;
  24.247 -				if (new)
  24.248 -					memset(kaddr+offset+len, 0,
  24.249 -						PAGE_SIZE-offset-len);
  24.250 -			}
  24.251 -			err = copy_from_user(kaddr+offset, str, bytes_to_copy);
  24.252 -			if (err) {
  24.253 -				ret = -EFAULT;
  24.254 -				goto out;
  24.255 -			}
  24.256 -
  24.257 -			pos += bytes_to_copy;
  24.258 -			str += bytes_to_copy;
  24.259 -			len -= bytes_to_copy;
  24.260 -		}
  24.261 -	}
  24.262 -	ret = 0;
  24.263 -out:
  24.264 -	if (kmapped_page)
  24.265 -		kunmap(kmapped_page);
  24.266 -	return ret;
  24.267 -}
  24.268 -
  24.269 -/*
  24.270 - * Like copy_strings, but get argv and its values from kernel memory.
  24.271 - */
  24.272 -int copy_strings_kernel(int argc,char ** argv, struct linux_binprm *bprm)
  24.273 -{
  24.274 -	int r;
  24.275 -	mm_segment_t oldfs = get_fs();
  24.276 -	set_fs(KERNEL_DS); 
  24.277 -	r = copy_strings(argc, argv, bprm);
  24.278 -	set_fs(oldfs);
  24.279 -	return r; 
  24.280 -}
  24.281 -
  24.282 -/*
  24.283 - * This routine is used to map in a page into an address space: needed by
  24.284 - * execve() for the initial stack and environment pages.
  24.285 - *
  24.286 - * tsk->mmap_sem is held for writing.
  24.287 - */
  24.288 -void put_dirty_page(struct task_struct * tsk, struct page *page, unsigned long address)
  24.289 -{
  24.290 -	pgd_t * pgd;
  24.291 -	pmd_t * pmd;
  24.292 -	pte_t * pte;
  24.293 -	struct vm_area_struct *vma; 
  24.294 -	pgprot_t prot = PAGE_COPY; 
  24.295 -
  24.296 -	if (page_count(page) != 1)
  24.297 -		printk(KERN_ERR "mem_map disagrees with %p at %08lx\n", page, address);
  24.298 -	pgd = pgd_offset(tsk->mm, address);
  24.299 -
  24.300 -	spin_lock(&tsk->mm->page_table_lock);
  24.301 -	pmd = pmd_alloc(tsk->mm, pgd, address);
  24.302 -	if (!pmd)
  24.303 -		goto out;
  24.304 -	pte = pte_alloc(tsk->mm, pmd, address);
  24.305 -	if (!pte)
  24.306 -		goto out;
  24.307 -	if (!pte_none(*pte))
  24.308 -		goto out;
  24.309 -	lru_cache_add(page);
  24.310 -	flush_dcache_page(page);
  24.311 -	flush_page_to_ram(page);
  24.312 -	/* lookup is cheap because there is only a single entry in the list */
  24.313 -	vma = find_vma(tsk->mm, address);
  24.314 -	if (vma)
  24.315 -		prot = vma->vm_page_prot;
  24.316 -	set_pte(pte, pte_mkdirty(pte_mkwrite(mk_pte(page, prot))));
  24.317 -	XEN_flush_page_update_queue();
  24.318 -	tsk->mm->rss++;
  24.319 -	spin_unlock(&tsk->mm->page_table_lock);
  24.320 -
  24.321 -	/* no need for flush_tlb */
  24.322 -	return;
  24.323 -out:
  24.324 -	spin_unlock(&tsk->mm->page_table_lock);
  24.325 -	__free_page(page);
  24.326 -	force_sig(SIGKILL, tsk);
  24.327 -	return;
  24.328 -}
  24.329 -
  24.330 -int setup_arg_pages(struct linux_binprm *bprm)
  24.331 -{
  24.332 -	unsigned long stack_base;
  24.333 -	struct vm_area_struct *mpnt;
  24.334 -	int i, ret;
  24.335 -
  24.336 -	stack_base = STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE;
  24.337 -
  24.338 -	bprm->p += stack_base;
  24.339 -	if (bprm->loader)
  24.340 -		bprm->loader += stack_base;
  24.341 -	bprm->exec += stack_base;
  24.342 -
  24.343 -	mpnt = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL);
  24.344 -	if (!mpnt) 
  24.345 -		return -ENOMEM; 
  24.346 -	
  24.347 -	down_write(&current->mm->mmap_sem);
  24.348 -	{
  24.349 -		mpnt->vm_mm = current->mm;
  24.350 -		mpnt->vm_start = PAGE_MASK & (unsigned long) bprm->p;
  24.351 -		mpnt->vm_end = STACK_TOP;
  24.352 -		mpnt->vm_flags = VM_STACK_FLAGS;
  24.353 -		mpnt->vm_page_prot = protection_map[VM_STACK_FLAGS & 0x7];
  24.354 -		mpnt->vm_ops = NULL;
  24.355 -		mpnt->vm_pgoff = 0;
  24.356 -		mpnt->vm_file = NULL;
  24.357 -		mpnt->vm_private_data = (void *) 0;
  24.358 -		if ((ret = insert_vm_struct(current->mm, mpnt))) {
  24.359 -			up_write(&current->mm->mmap_sem);
  24.360 -			kmem_cache_free(vm_area_cachep, mpnt);
  24.361 -			return ret;
  24.362 -		}
  24.363 -		current->mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
  24.364 -	} 
  24.365 -
  24.366 -	for (i = 0 ; i < MAX_ARG_PAGES ; i++) {
  24.367 -		struct page *page = bprm->page[i];
  24.368 -		if (page) {
  24.369 -			bprm->page[i] = NULL;
  24.370 -			put_dirty_page(current,page,stack_base);
  24.371 -		}
  24.372 -		stack_base += PAGE_SIZE;
  24.373 -	}
  24.374 -	up_write(&current->mm->mmap_sem);
  24.375 -	
  24.376 -	return 0;
  24.377 -}
  24.378 -
  24.379 -struct file *open_exec(const char *name)
  24.380 -{
  24.381 -	struct nameidata nd;
  24.382 -	struct inode *inode;
  24.383 -	struct file *file;
  24.384 -	int err = 0;
  24.385 -
  24.386 -	err = path_lookup(name, LOOKUP_FOLLOW|LOOKUP_POSITIVE, &nd);
  24.387 -	file = ERR_PTR(err);
  24.388 -	if (!err) {
  24.389 -		inode = nd.dentry->d_inode;
  24.390 -		file = ERR_PTR(-EACCES);
  24.391 -		if (!(nd.mnt->mnt_flags & MNT_NOEXEC) &&
  24.392 -		    S_ISREG(inode->i_mode)) {
  24.393 -			int err = permission(inode, MAY_EXEC);
  24.394 -			if (!err && !(inode->i_mode & 0111))
  24.395 -				err = -EACCES;
  24.396 -			file = ERR_PTR(err);
  24.397 -			if (!err) {
  24.398 -				file = dentry_open(nd.dentry, nd.mnt, O_RDONLY);
  24.399 -				if (!IS_ERR(file)) {
  24.400 -					err = deny_write_access(file);
  24.401 -					if (err) {
  24.402 -						fput(file);
  24.403 -						file = ERR_PTR(err);
  24.404 -					}
  24.405 -				}
  24.406 -out:
  24.407 -				return file;
  24.408 -			}
  24.409 -		}
  24.410 -		path_release(&nd);
  24.411 -	}
  24.412 -	goto out;
  24.413 -}
  24.414 -
  24.415 -int kernel_read(struct file *file, unsigned long offset,
  24.416 -	char * addr, unsigned long count)
  24.417 -{
  24.418 -	mm_segment_t old_fs;
  24.419 -	loff_t pos = offset;
  24.420 -	int result = -ENOSYS;
  24.421 -
  24.422 -	if (!file->f_op->read)
  24.423 -		goto fail;
  24.424 -	old_fs = get_fs();
  24.425 -	set_fs(get_ds());
  24.426 -	result = file->f_op->read(file, addr, count, &pos);
  24.427 -	set_fs(old_fs);
  24.428 -fail:
  24.429 -	return result;
  24.430 -}
  24.431 -
  24.432 -static int exec_mmap(void)
  24.433 -{
  24.434 -	struct mm_struct * mm, * old_mm;
  24.435 -
  24.436 -	old_mm = current->mm;
  24.437 -
  24.438 -	if (old_mm && atomic_read(&old_mm->mm_users) == 1) {
  24.439 -		mm_release();
  24.440 -		down_write(&old_mm->mmap_sem);
  24.441 -		exit_mmap(old_mm);
  24.442 -		up_write(&old_mm->mmap_sem);
  24.443 -		return 0;
  24.444 -	}
  24.445 -
  24.446 -
  24.447 -	mm = mm_alloc();
  24.448 -	if (mm) {
  24.449 -		struct mm_struct *active_mm;
  24.450 -
  24.451 -		if (init_new_context(current, mm)) {
  24.452 -			mmdrop(mm);
  24.453 -			return -ENOMEM;
  24.454 -		}
  24.455 -
  24.456 -		/* Add it to the list of mm's */
  24.457 -		spin_lock(&mmlist_lock);
  24.458 -		list_add(&mm->mmlist, &init_mm.mmlist);
  24.459 -		mmlist_nr++;
  24.460 -		spin_unlock(&mmlist_lock);
  24.461 -
  24.462 -		task_lock(current);
  24.463 -		active_mm = current->active_mm;
  24.464 -		current->mm = mm;
  24.465 -		current->active_mm = mm;
  24.466 -		task_unlock(current);
  24.467 -		activate_mm(active_mm, mm);
  24.468 -		mm_release();
  24.469 -		if (old_mm) {
  24.470 -			if (active_mm != old_mm) BUG();
  24.471 -			mmput(old_mm);
  24.472 -			return 0;
  24.473 -		}
  24.474 -		mmdrop(active_mm);
  24.475 -		return 0;
  24.476 -	}
  24.477 -	return -ENOMEM;
  24.478 -}
  24.479 -
  24.480 -/*
  24.481 - * This function makes sure the current process has its own signal table,
  24.482 - * so that flush_signal_handlers can later reset the handlers without
  24.483 - * disturbing other processes.  (Other processes might share the signal
  24.484 - * table via the CLONE_SIGNAL option to clone().)
  24.485 - */
  24.486 - 
  24.487 -static inline int make_private_signals(void)
  24.488 -{
  24.489 -	struct signal_struct * newsig;
  24.490 -
  24.491 -	if (atomic_read(&current->sig->count) <= 1)
  24.492 -		return 0;
  24.493 -	newsig = kmem_cache_alloc(sigact_cachep, GFP_KERNEL);
  24.494 -	if (newsig == NULL)
  24.495 -		return -ENOMEM;
  24.496 -	spin_lock_init(&newsig->siglock);
  24.497 -	atomic_set(&newsig->count, 1);
  24.498 -	memcpy(newsig->action, current->sig->action, sizeof(newsig->action));
  24.499 -	spin_lock_irq(&current->sigmask_lock);
  24.500 -	current->sig = newsig;
  24.501 -	spin_unlock_irq(&current->sigmask_lock);
  24.502 -	return 0;
  24.503 -}
  24.504 -	
  24.505 -/*
  24.506 - * If make_private_signals() made a copy of the signal table, decrement the
  24.507 - * refcount of the original table, and free it if necessary.
  24.508 - * We don't do that in make_private_signals() so that we can back off
  24.509 - * in flush_old_exec() if an error occurs after calling make_private_signals().
  24.510 - */
  24.511 -
  24.512 -static inline void release_old_signals(struct signal_struct * oldsig)
  24.513 -{
  24.514 -	if (current->sig == oldsig)
  24.515 -		return;
  24.516 -	if (atomic_dec_and_test(&oldsig->count))
  24.517 -		kmem_cache_free(sigact_cachep, oldsig);
  24.518 -}
  24.519 -
  24.520 -/*
  24.521 - * These functions flushes out all traces of the currently running executable
  24.522 - * so that a new one can be started
  24.523 - */
  24.524 -
  24.525 -static inline void flush_old_files(struct files_struct * files)
  24.526 -{
  24.527 -	long j = -1;
  24.528 -
  24.529 -	write_lock(&files->file_lock);
  24.530 -	for (;;) {
  24.531 -		unsigned long set, i;
  24.532 -
  24.533 -		j++;
  24.534 -		i = j * __NFDBITS;
  24.535 -		if (i >= files->max_fds || i >= files->max_fdset)
  24.536 -			break;
  24.537 -		set = files->close_on_exec->fds_bits[j];
  24.538 -		if (!set)
  24.539 -			continue;
  24.540 -		files->close_on_exec->fds_bits[j] = 0;
  24.541 -		write_unlock(&files->file_lock);
  24.542 -		for ( ; set ; i++,set >>= 1) {
  24.543 -			if (set & 1) {
  24.544 -				sys_close(i);
  24.545 -			}
  24.546 -		}
  24.547 -		write_lock(&files->file_lock);
  24.548 -
  24.549 -	}
  24.550 -	write_unlock(&files->file_lock);
  24.551 -}
  24.552 -
  24.553 -/*
  24.554 - * An execve() will automatically "de-thread" the process.
  24.555 - * Note: we don't have to hold the tasklist_lock to test
  24.556 - * whether we migth need to do this. If we're not part of
  24.557 - * a thread group, there is no way we can become one
  24.558 - * dynamically. And if we are, we only need to protect the
  24.559 - * unlink - even if we race with the last other thread exit,
  24.560 - * at worst the list_del_init() might end up being a no-op.
  24.561 - */
  24.562 -static inline void de_thread(struct task_struct *tsk)
  24.563 -{
  24.564 -	if (!list_empty(&tsk->thread_group)) {
  24.565 -		write_lock_irq(&tasklist_lock);
  24.566 -		list_del_init(&tsk->thread_group);
  24.567 -		write_unlock_irq(&tasklist_lock);
  24.568 -	}
  24.569 -
  24.570 -	/* Minor oddity: this might stay the same. */
  24.571 -	tsk->tgid = tsk->pid;
  24.572 -}
  24.573 -
  24.574 -void get_task_comm(char *buf, struct task_struct *tsk)
  24.575 -{
  24.576 -	/* buf must be at least sizeof(tsk->comm) in size */
  24.577 -	task_lock(tsk);
  24.578 -	memcpy(buf, tsk->comm, sizeof(tsk->comm));
  24.579 -	task_unlock(tsk);
  24.580 -}
  24.581 -
  24.582 -void set_task_comm(struct task_struct *tsk, char *buf)
  24.583 -{
  24.584 -	task_lock(tsk);
  24.585 -	strncpy(tsk->comm, buf, sizeof(tsk->comm));
  24.586 -	tsk->comm[sizeof(tsk->comm)-1]='\0';
  24.587 -	task_unlock(tsk);
  24.588 -}
  24.589 -
  24.590 -int flush_old_exec(struct linux_binprm * bprm)
  24.591 -{
  24.592 -	char * name;
  24.593 -	int i, ch, retval;
  24.594 -	struct signal_struct * oldsig;
  24.595 -	struct files_struct * files;
  24.596 -	char tcomm[sizeof(current->comm)];
  24.597 -
  24.598 -	/*
  24.599 -	 * Make sure we have a private signal table
  24.600 -	 */
  24.601 -	oldsig = current->sig;
  24.602 -	retval = make_private_signals();
  24.603 -	if (retval) goto flush_failed;
  24.604 -
  24.605 -	/*
  24.606 -	 * Make sure we have private file handles. Ask the
  24.607 -	 * fork helper to do the work for us and the exit
  24.608 -	 * helper to do the cleanup of the old one.
  24.609 -	 */
  24.610 -	 
  24.611 -	files = current->files;		/* refcounted so safe to hold */
  24.612 -	retval = unshare_files();
  24.613 -	if(retval)
  24.614 -		goto flush_failed;
  24.615 -	
  24.616 -	/* 
  24.617 -	 * Release all of the old mmap stuff
  24.618 -	 */
  24.619 -	retval = exec_mmap();
  24.620 -	if (retval) goto mmap_failed;
  24.621 -
  24.622 -	/* This is the point of no return */
  24.623 -	steal_locks(files);
  24.624 -	put_files_struct(files);
  24.625 -	release_old_signals(oldsig);
  24.626 -
  24.627 -	current->sas_ss_sp = current->sas_ss_size = 0;
  24.628 -
  24.629 -	if (current->euid == current->uid && current->egid == current->gid) {
  24.630 -		current->mm->dumpable = 1;
  24.631 -		current->task_dumpable = 1;
  24.632 -	}
  24.633 -	name = bprm->filename;
  24.634 -	for (i=0; (ch = *(name++)) != '\0';) {
  24.635 -		if (ch == '/')
  24.636 -			i = 0;
  24.637 -		else
  24.638 -			if (i < (sizeof(tcomm) - 1))
  24.639 -				tcomm[i++] = ch;
  24.640 -	}
  24.641 -	tcomm[i] = '\0';
  24.642 -	set_task_comm(current, tcomm);
  24.643 -
  24.644 -	flush_thread();
  24.645 -
  24.646 -	de_thread(current);
  24.647 -
  24.648 -	if (bprm->e_uid != current->euid || bprm->e_gid != current->egid || 
  24.649 -	    permission(bprm->file->f_dentry->d_inode,MAY_READ))
  24.650 -		current->mm->dumpable = 0;
  24.651 -
  24.652 -	/* An exec changes our domain. We are no longer part of the thread
  24.653 -	   group */
  24.654 -	   
  24.655 -	current->self_exec_id++;
  24.656 -			
  24.657 -	flush_signal_handlers(current);
  24.658 -	flush_old_files(current->files);
  24.659 -
  24.660 -	return 0;
  24.661 -
  24.662 -mmap_failed:
  24.663 -	put_files_struct(current->files);
  24.664 -	current->files = files;
  24.665 -flush_failed:
  24.666 -	spin_lock_irq(&current->sigmask_lock);
  24.667 -	if (current->sig != oldsig) {
  24.668 -		kmem_cache_free(sigact_cachep, current->sig);
  24.669 -		current->sig = oldsig;
  24.670 -	}
  24.671 -	spin_unlock_irq(&current->sigmask_lock);
  24.672 -	return retval;
  24.673 -}
  24.674 -
  24.675 -/*
  24.676 - * We mustn't allow tracing of suid binaries, unless
  24.677 - * the tracer has the capability to trace anything..
  24.678 - */
  24.679 -static inline int must_not_trace_exec(struct task_struct * p)
  24.680 -{
  24.681 -	return (p->ptrace & PT_PTRACED) && !(p->ptrace & PT_PTRACE_CAP);
  24.682 -}
  24.683 -
  24.684 -/* 
  24.685 - * Fill the binprm structure from the inode. 
  24.686 - * Check permissions, then read the first 128 (BINPRM_BUF_SIZE) bytes
  24.687 - */
  24.688 -int prepare_binprm(struct linux_binprm *bprm)
  24.689 -{
  24.690 -	int mode;
  24.691 -	struct inode * inode = bprm->file->f_dentry->d_inode;
  24.692 -
  24.693 -	mode = inode->i_mode;
  24.694 -	/*
  24.695 -	 * Check execute perms again - if the caller has CAP_DAC_OVERRIDE,
  24.696 -	 * vfs_permission lets a non-executable through
  24.697 -	 */
  24.698 -	if (!(mode & 0111))	/* with at least _one_ execute bit set */
  24.699 -		return -EACCES;
  24.700 -	if (bprm->file->f_op == NULL)
  24.701 -		return -EACCES;
  24.702 -
  24.703 -	bprm->e_uid = current->euid;
  24.704 -	bprm->e_gid = current->egid;
  24.705 -
  24.706 -	if(!(bprm->file->f_vfsmnt->mnt_flags & MNT_NOSUID)) {
  24.707 -		/* Set-uid? */
  24.708 -		if (mode & S_ISUID)
  24.709 -			bprm->e_uid = inode->i_uid;
  24.710 -
  24.711 -		/* Set-gid? */
  24.712 -		/*
  24.713 -		 * If setgid is set but no group execute bit then this
  24.714 -		 * is a candidate for mandatory locking, not a setgid
  24.715 -		 * executable.
  24.716 -		 */
  24.717 -		if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))
  24.718 -			bprm->e_gid = inode->i_gid;
  24.719 -	}
  24.720 -
  24.721 -	/* We don't have VFS support for capabilities yet */
  24.722 -	cap_clear(bprm->cap_inheritable);
  24.723 -	cap_clear(bprm->cap_permitted);
  24.724 -	cap_clear(bprm->cap_effective);
  24.725 -
  24.726 -	/*  To support inheritance of root-permissions and suid-root
  24.727 -         *  executables under compatibility mode, we raise all three
  24.728 -         *  capability sets for the file.
  24.729 -         *
  24.730 -         *  If only the real uid is 0, we only raise the inheritable
  24.731 -         *  and permitted sets of the executable file.
  24.732 -         */
  24.733 -
  24.734 -	if (!issecure(SECURE_NOROOT)) {
  24.735 -		if (bprm->e_uid == 0 || current->uid == 0) {
  24.736 -			cap_set_full(bprm->cap_inheritable);
  24.737 -			cap_set_full(bprm->cap_permitted);
  24.738 -		}
  24.739 -		if (bprm->e_uid == 0) 
  24.740 -			cap_set_full(bprm->cap_effective);
  24.741 -	}
  24.742 -
  24.743 -	memset(bprm->buf,0,BINPRM_BUF_SIZE);
  24.744 -	return kernel_read(bprm->file,0,bprm->buf,BINPRM_BUF_SIZE);
  24.745 -}
  24.746 -
  24.747 -/*
  24.748 - * This function is used to produce the new IDs and capabilities
  24.749 - * from the old ones and the file's capabilities.
  24.750 - *
  24.751 - * The formula used for evolving capabilities is:
  24.752 - *
  24.753 - *       pI' = pI
  24.754 - * (***) pP' = (fP & X) | (fI & pI)
  24.755 - *       pE' = pP' & fE          [NB. fE is 0 or ~0]
  24.756 - *
  24.757 - * I=Inheritable, P=Permitted, E=Effective // p=process, f=file
  24.758 - * ' indicates post-exec(), and X is the global 'cap_bset'.
  24.759 - *
  24.760 - */
  24.761 -
  24.762 -void compute_creds(struct linux_binprm *bprm) 
  24.763 -{
  24.764 -	kernel_cap_t new_permitted, working;
  24.765 -	int do_unlock = 0;
  24.766 -
  24.767 -	new_permitted = cap_intersect(bprm->cap_permitted, cap_bset);
  24.768 -	working = cap_intersect(bprm->cap_inheritable,
  24.769 -				current->cap_inheritable);
  24.770 -	new_permitted = cap_combine(new_permitted, working);
  24.771 -
  24.772 -	if (bprm->e_uid != current->uid || bprm->e_gid != current->gid ||
  24.773 -	    !cap_issubset(new_permitted, current->cap_permitted)) {
  24.774 -                current->mm->dumpable = 0;
  24.775 -		
  24.776 -		lock_kernel();
  24.777 -		if (must_not_trace_exec(current)
  24.778 -		    || atomic_read(&current->fs->count) > 1
  24.779 -		    || atomic_read(&current->files->count) > 1
  24.780 -		    || atomic_read(&current->sig->count) > 1) {
  24.781 -			if(!capable(CAP_SETUID)) {
  24.782 -				bprm->e_uid = current->uid;
  24.783 -				bprm->e_gid = current->gid;
  24.784 -			}
  24.785 -			if(!capable(CAP_SETPCAP)) {
  24.786 -				new_permitted = cap_intersect(new_permitted,
  24.787 -							current->cap_permitted);
  24.788 -			}
  24.789 -		}
  24.790 -		do_unlock = 1;
  24.791 -	}
  24.792 -
  24.793 -
  24.794 -	/* For init, we want to retain the capabilities set
  24.795 -         * in the init_task struct. Thus we skip the usual
  24.796 -         * capability rules */
  24.797 -	if (current->pid != 1) {
  24.798 -		current->cap_permitted = new_permitted;
  24.799 -		current->cap_effective =
  24.800 -			cap_intersect(new_permitted, bprm->cap_effective);
  24.801 -	}
  24.802 -	
  24.803 -        /* AUD: Audit candidate if current->cap_effective is set */
  24.804 -
  24.805 -        current->suid = current->euid = current->fsuid = bprm->e_uid;
  24.806 -        current->sgid = current->egid = current->fsgid = bprm->e_gid;
  24.807 -
  24.808 -	if(do_unlock)
  24.809 -		unlock_kernel();
  24.810 -	current->keep_capabilities = 0;
  24.811 -}
  24.812 -
  24.813 -
  24.814 -void remove_arg_zero(struct linux_binprm *bprm)
  24.815 -{
  24.816 -	if (bprm->argc) {
  24.817 -		unsigned long offset;
  24.818 -		char * kaddr;
  24.819 -		struct page *page;
  24.820 -
  24.821 -		offset = bprm->p % PAGE_SIZE;
  24.822 -		goto inside;
  24.823 -
  24.824 -		while (bprm->p++, *(kaddr+offset++)) {
  24.825 -			if (offset != PAGE_SIZE)
  24.826 -				continue;
  24.827 -			offset = 0;
  24.828 -			kunmap(page);
  24.829 -inside:
  24.830 -			page = bprm->page[bprm->p/PAGE_SIZE];
  24.831 -			kaddr = kmap(page);
  24.832 -		}
  24.833 -		kunmap(page);
  24.834 -		bprm->argc--;
  24.835 -	}
  24.836 -}
  24.837 -
  24.838 -/*
  24.839 - * cycle the list of binary formats handler, until one recognizes the image
  24.840 - */
  24.841 -int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
  24.842 -{
  24.843 -	int try,retval=0;
  24.844 -	struct linux_binfmt *fmt;
  24.845 -#ifdef __alpha__
  24.846 -	/* handle /sbin/loader.. */
  24.847 -	{
  24.848 -	    struct exec * eh = (struct exec *) bprm->buf;
  24.849 -
  24.850 -	    if (!bprm->loader && eh->fh.f_magic == 0x183 &&
  24.851 -		(eh->fh.f_flags & 0x3000) == 0x3000)
  24.852 -	    {
  24.853 -		struct file * file;
  24.854 -		unsigned long loader;
  24.855 -
  24.856 -		allow_write_access(bprm->file);
  24.857 -		fput(bprm->file);
  24.858 -		bprm->file = NULL;
  24.859 -
  24.860 -	        loader = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *);
  24.861 -
  24.862 -		file = open_exec("/sbin/loader");
  24.863 -		retval = PTR_ERR(file);
  24.864 -		if (IS_ERR(file))
  24.865 -			return retval;
  24.866 -
  24.867 -		/* Remember if the application is TASO.  */
  24.868 -		bprm->sh_bang = eh->ah.entry < 0x100000000;
  24.869 -
  24.870 -		bprm->file = file;
  24.871 -		bprm->loader = loader;
  24.872 -		retval = prepare_binprm(bprm);
  24.873 -		if (retval<0)
  24.874 -			return retval;
  24.875 -		/* should call search_binary_handler recursively here,
  24.876 -		   but it does not matter */
  24.877 -	    }
  24.878 -	}
  24.879 -#endif
  24.880 -	/* kernel module loader fixup */
  24.881 -	/* so we don't try to load run modprobe in kernel space. */
  24.882 -	set_fs(USER_DS);
  24.883 -	for (try=0; try<2; try++) {
  24.884 -		read_lock(&binfmt_lock);
  24.885 -		for (fmt = formats ; fmt ; fmt = fmt->next) {
  24.886 -			int (*fn)(struct linux_binprm *, struct pt_regs *) = fmt->load_binary;
  24.887 -			if (!fn)
  24.888 -				continue;
  24.889 -			if (!try_inc_mod_count(fmt->module))
  24.890 -				continue;
  24.891 -			read_unlock(&binfmt_lock);
  24.892 -			retval = fn(bprm, regs);
  24.893 -			if (retval >= 0) {
  24.894 -				put_binfmt(fmt);
  24.895 -				allow_write_access(bprm->file);
  24.896 -				if (bprm->file)
  24.897 -					fput(bprm->file);
  24.898 -				bprm->file = NULL;
  24.899 -				current->did_exec = 1;
  24.900 -				return retval;
  24.901 -			}
  24.902 -			read_lock(&binfmt_lock);
  24.903 -			put_binfmt(fmt);
  24.904 -			if (retval != -ENOEXEC)
  24.905 -				break;
  24.906 -			if (!bprm->file) {
  24.907 -				read_unlock(&binfmt_lock);
  24.908 -				return retval;
  24.909 -			}
  24.910 -		}
  24.911 -		read_unlock(&binfmt_lock);
  24.912 -		if (retval != -ENOEXEC) {
  24.913 -			break;
  24.914 -#ifdef CONFIG_KMOD
  24.915 -		}else{
  24.916 -#define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e))
  24.917 -			char modname[20];
  24.918 -			if (printable(bprm->buf[0]) &&
  24.919 -			    printable(bprm->buf[1]) &&
  24.920 -			    printable(bprm->buf[2]) &&
  24.921 -			    printable(bprm->buf[3]))
  24.922 -				break; /* -ENOEXEC */
  24.923 -			sprintf(modname, "binfmt-%04x", *(unsigned short *)(&bprm->buf[2]));
  24.924 -			request_module(modname);
  24.925 -#endif
  24.926 -		}
  24.927 -	}
  24.928 -	return retval;
  24.929 -}
  24.930 -
  24.931 -
  24.932 -/*
  24.933 - * sys_execve() executes a new program.
  24.934 - */
  24.935 -int do_execve(char * filename, char ** argv, char ** envp, struct pt_regs * regs)
  24.936 -{
  24.937 -	struct linux_binprm bprm;
  24.938 -	struct file *file;
  24.939 -	int retval;
  24.940 -	int i;
  24.941 -
  24.942 -	file = open_exec(filename);
  24.943 -
  24.944 -	retval = PTR_ERR(file);
  24.945 -	if (IS_ERR(file))
  24.946 -		return retval;
  24.947 -
  24.948 -	bprm.p = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *);
  24.949 -	memset(bprm.page, 0, MAX_ARG_PAGES*sizeof(bprm.page[0])); 
  24.950 -
  24.951 -	bprm.file = file;
  24.952 -	bprm.filename = filename;
  24.953 -	bprm.sh_bang = 0;
  24.954 -	bprm.loader = 0;
  24.955 -	bprm.exec = 0;
  24.956 -	if ((bprm.argc = count(argv, bprm.p / sizeof(void *))) < 0) {
  24.957 -		allow_write_access(file);
  24.958 -		fput(file);
  24.959 -		return bprm.argc;
  24.960 -	}
  24.961 -
  24.962 -	if ((bprm.envc = count(envp, bprm.p / sizeof(void *))) < 0) {
  24.963 -		allow_write_access(file);
  24.964 -		fput(file);
  24.965 -		return bprm.envc;
  24.966 -	}
  24.967 -
  24.968 -	retval = prepare_binprm(&bprm);
  24.969 -	if (retval < 0) 
  24.970 -		goto out; 
  24.971 -
  24.972 -	retval = copy_strings_kernel(1, &bprm.filename, &bprm);
  24.973 -	if (retval < 0) 
  24.974 -		goto out; 
  24.975 -
  24.976 -	bprm.exec = bprm.p;
  24.977 -	retval = copy_strings(bprm.envc, envp, &bprm);
  24.978 -	if (retval < 0) 
  24.979 -		goto out; 
  24.980 -
  24.981 -	retval = copy_strings(bprm.argc, argv, &bprm);
  24.982 -	if (retval < 0) 
  24.983 -		goto out; 
  24.984 -
  24.985 -	retval = search_binary_handler(&bprm,regs);
  24.986 -	if (retval >= 0)
  24.987 -		/* execve success */
  24.988 -		return retval;
  24.989 -
  24.990 -out:
  24.991 -	/* Something went wrong, return the inode and free the argument pages*/
  24.992 -	allow_write_access(bprm.file);
  24.993 -	if (bprm.file)
  24.994 -		fput(bprm.file);
  24.995 -
  24.996 -	for (i = 0 ; i < MAX_ARG_PAGES ; i++) {
  24.997 -		struct page * page = bprm.page[i];
  24.998 -		if (page)
  24.999 -			__free_page(page);
 24.1000 -	}
 24.1001 -
 24.1002 -	return retval;
 24.1003 -}
 24.1004 -
 24.1005 -void set_binfmt(struct linux_binfmt *new)
 24.1006 -{
 24.1007 -	struct linux_binfmt *old = current->binfmt;
 24.1008 -	if (new && new->module)
 24.1009 -		__MOD_INC_USE_COUNT(new->module);
 24.1010 -	current->binfmt = new;
 24.1011 -	if (old && old->module)
 24.1012 -		__MOD_DEC_USE_COUNT(old->module);
 24.1013 -}
 24.1014 -
 24.1015 -#define CORENAME_MAX_SIZE 64
 24.1016 -
 24.1017 -/* format_corename will inspect the pattern parameter, and output a
 24.1018 - * name into corename, which must have space for at least
 24.1019 - * CORENAME_MAX_SIZE bytes plus one byte for the zero terminator.
 24.1020 - */
 24.1021 -void format_corename(char *corename, const char *pattern, long signr)
 24.1022 -{
 24.1023 -	const char *pat_ptr = pattern;
 24.1024 -	char *out_ptr = corename;
 24.1025 -	char *const out_end = corename + CORENAME_MAX_SIZE;
 24.1026 -	int rc;
 24.1027 -	int pid_in_pattern = 0;
 24.1028 -
 24.1029 -	/* Repeat as long as we have more pattern to process and more output
 24.1030 -	   space */
 24.1031 -	while (*pat_ptr) {
 24.1032 -		if (*pat_ptr != '%') {
 24.1033 -			if (out_ptr == out_end)
 24.1034 -				goto out;
 24.1035 -			*out_ptr++ = *pat_ptr++;
 24.1036 -		} else {
 24.1037 -			switch (*++pat_ptr) {
 24.1038 -			case 0:
 24.1039 -				goto out;
 24.1040 -			/* Double percent, output one percent */
 24.1041 -			case '%':
 24.1042 -				if (out_ptr == out_end)
 24.1043 -					goto out;
 24.1044 -				*out_ptr++ = '%';
 24.1045 -				break;
 24.1046 -			/* pid */
 24.1047 -			case 'p':
 24.1048 -				pid_in_pattern = 1;
 24.1049 -				rc = snprintf(out_ptr, out_end - out_ptr,
 24.1050 -					      "%d", current->pid);
 24.1051 -				if (rc > out_end - out_ptr)
 24.1052 -					goto out;
 24.1053 -				out_ptr += rc;
 24.1054 -				break;
 24.1055 -			/* uid */
 24.1056 -			case 'u':
 24.1057 -				rc = snprintf(out_ptr, out_end - out_ptr,
 24.1058 -					      "%d", current->uid);
 24.1059 -				if (rc > out_end - out_ptr)
 24.1060 -					goto out;
 24.1061 -				out_ptr += rc;
 24.1062 -				break;
 24.1063 -			/* gid */
 24.1064 -			case 'g':
 24.1065 -				rc = snprintf(out_ptr, out_end - out_ptr,
 24.1066 -					      "%d", current->gid);
 24.1067 -				if (rc > out_end - out_ptr)
 24.1068 -					goto out;
 24.1069 -				out_ptr += rc;
 24.1070 -				break;
 24.1071 -			/* signal that caused the coredump */
 24.1072 -			case 's':
 24.1073 -				rc = snprintf(out_ptr, out_end - out_ptr,
 24.1074 -					      "%ld", signr);
 24.1075 -				if (rc > out_end - out_ptr)
 24.1076 -					goto out;
 24.1077 -				out_ptr += rc;
 24.1078 -				break;
 24.1079 -			/* UNIX time of coredump */
 24.1080 -			case 't': {
 24.1081 -				struct timeval tv;
 24.1082 -				do_gettimeofday(&tv);
 24.1083 -				rc = snprintf(out_ptr, out_end - out_ptr,
 24.1084 -					      "%ld", tv.tv_sec);
 24.1085 -				if (rc > out_end - out_ptr)
 24.1086 -					goto out;
 24.1087 -				out_ptr += rc;
 24.1088 -				break;
 24.1089 -			}
 24.1090 -			/* hostname */
 24.1091 -			case 'h':
 24.1092 -				down_read(&uts_sem);
 24.1093 -				rc = snprintf(out_ptr, out_end - out_ptr,
 24.1094 -					      "%s", system_utsname.nodename);
 24.1095 -				up_read(&uts_sem);
 24.1096 -				if (rc > out_end - out_ptr)
 24.1097 -					goto out;
 24.1098 -				out_ptr += rc;
 24.1099 -				break;
 24.1100 -			/* executable */
 24.1101 -			case 'e':
 24.1102 -				rc = snprintf(out_ptr, out_end - out_ptr,
 24.1103 -					      "%s", current->comm);
 24.1104 -				if (rc > out_end - out_ptr)
 24.1105 -					goto out;
 24.1106 -				out_ptr += rc;
 24.1107 -				break;
 24.1108 -			default:
 24.1109 -				break;
 24.1110 -			}
 24.1111 -			++pat_ptr;
 24.1112 -		}
 24.1113 -	}
 24.1114 -	/* Backward compatibility with core_uses_pid:
 24.1115 -	 *
 24.1116 -	 * If core_pattern does not include a %p (as is the default)
 24.1117 -	 * and core_uses_pid is set, then .%pid will be appended to
 24.1118 -	 * the filename */
 24.1119 -	if (!pid_in_pattern
 24.1120 -            && (core_uses_pid || atomic_read(&current->mm->mm_users) != 1)) {
 24.1121 -		rc = snprintf(out_ptr, out_end - out_ptr,
 24.1122 -			      ".%d", current->pid);
 24.1123 -		if (rc > out_end - out_ptr)
 24.1124 -			goto out;
 24.1125 -		out_ptr += rc;
 24.1126 -	}
 24.1127 -      out:
 24.1128 -	*out_ptr = 0;
 24.1129 -}
 24.1130 -
 24.1131 -int do_coredump(long signr, struct pt_regs * regs)
 24.1132 -{
 24.1133 -	struct linux_binfmt * binfmt;
 24.1134 -	char corename[CORENAME_MAX_SIZE + 1];
 24.1135 -	struct file * file;
 24.1136 -	struct inode * inode;
 24.1137 -	int retval = 0;
 24.1138 -	int fsuid = current->fsuid;
 24.1139 -
 24.1140 -	lock_kernel();
 24.1141 -	binfmt = current->binfmt;
 24.1142 -	if (!binfmt || !binfmt->core_dump)
 24.1143 -		goto fail;
 24.1144 -	if (!is_dumpable(current))
 24.1145 -	{
 24.1146 -		if(!core_setuid_ok || !current->task_dumpable)
 24.1147 -			goto fail;
 24.1148 -		current->fsuid = 0;
 24.1149 -	}
 24.1150 -	current->mm->dumpable = 0;
 24.1151 -	if (current->rlim[RLIMIT_CORE].rlim_cur < binfmt->min_coredump)
 24.1152 -		goto fail;
 24.1153 -
 24.1154 - 	format_corename(corename, core_pattern, signr);
 24.1155 -	file = filp_open(corename, O_CREAT | 2 | O_NOFOLLOW, 0600);
 24.1156 -	if (IS_ERR(file))
 24.1157 -		goto fail;
 24.1158 -	inode = file->f_dentry->d_inode;
 24.1159 -	if (inode->i_nlink > 1)
 24.1160 -		goto close_fail;	/* multiple links - don't dump */
 24.1161 -	if (d_unhashed(file->f_dentry))
 24.1162 -		goto close_fail;
 24.1163 -
 24.1164 -	if (!S_ISREG(inode->i_mode))
 24.1165 -		goto close_fail;
 24.1166 -	if (!file->f_op)
 24.1167 -		goto close_fail;
 24.1168 -	if (!file->f_op->write)
 24.1169 -		goto close_fail;
 24.1170 -	if (do_truncate(file->f_dentry, 0) != 0)
 24.1171 -		goto close_fail;
 24.1172 -
 24.1173 -	retval = binfmt->core_dump(signr, regs, file);
 24.1174 -
 24.1175 -close_fail:
 24.1176 -	filp_close(file, NULL);
 24.1177 -fail:
 24.1178 -	if (fsuid != current->fsuid)
 24.1179 -		current->fsuid = fsuid;
 24.1180 -	unlock_kernel();
 24.1181 -	return retval;
 24.1182 -}
    25.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/desc.h	Mon Apr 04 10:52:11 2005 +0000
    25.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/desc.h	Mon Apr 04 16:13:17 2005 +0000
    25.3 @@ -18,11 +18,7 @@ extern struct desc_struct default_ldt[];
    25.4  
    25.5  static inline void clear_LDT(void)
    25.6  {
    25.7 -    /*
    25.8 -     * NB. We load the default_ldt for lcall7/27 handling on demand, as
    25.9 -     * it slows down context switching. Noone uses it anyway.
   25.10 -     */
   25.11 -    queue_set_ldt(0, 0);
   25.12 +    xen_set_ldt(0, 0);
   25.13  }
   25.14  
   25.15  static inline void load_LDT(mm_context_t *pc)
   25.16 @@ -33,7 +29,7 @@ static inline void load_LDT(mm_context_t
   25.17      if ( count == 0 )
   25.18          segments = NULL;
   25.19      
   25.20 -    queue_set_ldt((unsigned long)segments, count);               
   25.21 +    xen_set_ldt((unsigned long)segments, count);               
   25.22  }
   25.23  
   25.24  #endif /* __ASSEMBLY__ */
    26.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/mmu_context.h	Mon Apr 04 10:52:11 2005 +0000
    26.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/mmu_context.h	Mon Apr 04 16:13:17 2005 +0000
    26.3 @@ -31,44 +31,29 @@ extern pgd_t *cur_pgd;
    26.4  
    26.5  static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk, unsigned cpu)
    26.6  {
    26.7 +	struct mmuext_op _op[2], *op = _op;
    26.8  	if (prev != next) {
    26.9  		/* stop flush ipis for the previous mm */
   26.10  		clear_bit(cpu, &prev->cpu_vm_mask);
   26.11 -#ifdef CONFIG_SMP
   26.12 -		cpu_tlbstate[cpu].state = TLBSTATE_OK;
   26.13 -		cpu_tlbstate[cpu].active_mm = next;
   26.14 -#endif
   26.15 -
   26.16  		/* Re-load page tables */
   26.17  		cur_pgd = next->pgd;
   26.18 -		queue_pt_switch(__pa(cur_pgd));
   26.19 -                /* load_LDT, if either the previous or next thread
   26.20 -                 * has a non-default LDT.
   26.21 -                 */
   26.22 -                if (next->context.size+prev->context.size)
   26.23 -                        load_LDT(&next->context);
   26.24 +		op->cmd = MMUEXT_NEW_BASEPTR;
   26.25 +		op->mfn = pfn_to_mfn(__pa(next->pgd) >> PAGE_SHIFT);
   26.26 +		op++;
   26.27 +		/* load_LDT, if either the previous or next thread
   26.28 +		 * has a non-default LDT.
   26.29 +		 */
   26.30 +		if (next->context.size+prev->context.size) {
   26.31 +			op->cmd = MMUEXT_SET_LDT;
   26.32 +			op->linear_addr = (unsigned long)next->context.ldt;
   26.33 +			op->nr_ents     = next->context.size;
   26.34 +			op++;
   26.35 +		}
   26.36 +		BUG_ON(HYPERVISOR_mmuext_op(_op, op-_op, NULL, DOMID_SELF));
   26.37  	}
   26.38 -#ifdef CONFIG_SMP
   26.39 -	else {
   26.40 -		cpu_tlbstate[cpu].state = TLBSTATE_OK;
   26.41 -		if(cpu_tlbstate[cpu].active_mm != next)
   26.42 -			out_of_line_bug();
   26.43 -		if(!test_and_set_bit(cpu, &next->cpu_vm_mask)) {
   26.44 -			/* We were in lazy tlb mode and leave_mm disabled 
   26.45 -			 * tlb flush IPI delivery. We must reload %cr3.
   26.46 -			 */
   26.47 -		        cur_pgd = next->pgd;
   26.48 -		        queue_pt_switch(__pa(cur_pgd));
   26.49 -			load_LDT(next);
   26.50 -		}
   26.51 -	}
   26.52 -#endif
   26.53  }
   26.54  
   26.55 -#define activate_mm(prev, next) \
   26.56 -do { \
   26.57 -	switch_mm((prev),(next),NULL,smp_processor_id()); \
   26.58 -	flush_page_update_queue(); \
   26.59 -} while ( 0 )
   26.60 +#define activate_mm(prev, next)	\
   26.61 +	switch_mm((prev),(next),NULL,smp_processor_id())
   26.62  
   26.63  #endif
    27.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/page.h	Mon Apr 04 10:52:11 2005 +0000
    27.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/page.h	Mon Apr 04 16:13:17 2005 +0000
    27.3 @@ -85,23 +85,18 @@ typedef struct { unsigned long pgprot; }
    27.4  static inline unsigned long pmd_val(pmd_t x)
    27.5  {
    27.6      unsigned long ret = x.pmd;
    27.7 -    if ( (ret & 1) ) ret = machine_to_phys(ret);
    27.8 +    if ( ret ) ret = machine_to_phys(ret) | 1;
    27.9      return ret;
   27.10  }
   27.11  #define pmd_val_ma(x)   ((x).pmd)
   27.12  #define pgd_val(x)	({ BUG(); (unsigned long)0; })
   27.13  #define pgprot_val(x)	((x).pgprot)
   27.14  
   27.15 -static inline pte_t __pte(unsigned long x)
   27.16 -{
   27.17 -    if ( (x & 1) ) x = phys_to_machine(x);
   27.18 -    return ((pte_t) { (x) });
   27.19 -}
   27.20 -static inline pmd_t __pmd(unsigned long x)
   27.21 -{
   27.22 -    if ( (x & 1) ) x = phys_to_machine(x);
   27.23 -    return ((pmd_t) { (x) });
   27.24 -}
   27.25 +#define __pte(x) ({ unsigned long _x = (x); \
   27.26 +    (((_x)&1) ? ((pte_t) {phys_to_machine(_x)}) : ((pte_t) {(_x)})); })
   27.27 +#define __pte_ma(x)     ((pte_t) { (x) } )
   27.28 +#define __pmd(x) ({ unsigned long _x = (x); \
   27.29 +    (((_x)&1) ? ((pmd_t) {phys_to_machine(_x)}) : ((pmd_t) {(_x)})); })
   27.30  #define __pgd(x) ({ BUG(); (pgprot_t) { 0 }; })
   27.31  #define __pgprot(x)	((pgprot_t) { (x) } )
   27.32  
    28.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/pgalloc.h	Mon Apr 04 10:52:11 2005 +0000
    28.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/pgalloc.h	Mon Apr 04 16:13:17 2005 +0000
    28.3 @@ -22,7 +22,6 @@
    28.4  #define pmd_populate(mm, pmd, pte) 		  \
    28.5   do {                                             \
    28.6    set_pmd(pmd, __pmd(_PAGE_TABLE + __pa(pte)));   \
    28.7 -  XEN_flush_page_update_queue();                 \
    28.8   } while ( 0 )
    28.9  
   28.10  /*
   28.11 @@ -79,8 +78,8 @@ static inline pgd_t *get_pgd_slow(void)
   28.12  		memcpy(pgd + USER_PTRS_PER_PGD,
   28.13  			init_mm.pgd + USER_PTRS_PER_PGD,
   28.14  			(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
   28.15 -                __make_page_readonly(pgd);
   28.16 -		queue_pgd_pin(__pa(pgd));
   28.17 +		__make_page_readonly(pgd);
   28.18 +		xen_pgd_pin(__pa(pgd));
   28.19  	}
   28.20  	return pgd;
   28.21  }
   28.22 @@ -110,8 +109,8 @@ static inline void free_pgd_slow(pgd_t *
   28.23  		free_page((unsigned long)__va(pgd_val(pgd[i])-1));
   28.24  	kmem_cache_free(pae_pgd_cachep, pgd);
   28.25  #else
   28.26 -	queue_pgd_unpin(__pa(pgd));
   28.27 -        __make_page_writable(pgd);
   28.28 +	xen_pgd_unpin(__pa(pgd));
   28.29 +	__make_page_writable(pgd);
   28.30  	free_page((unsigned long)pgd);
   28.31  #endif
   28.32  }
   28.33 @@ -134,7 +133,7 @@ static inline pte_t *pte_alloc_one(struc
   28.34      {
   28.35          clear_page(pte);
   28.36          __make_page_readonly(pte);
   28.37 -        queue_pte_pin(__pa(pte));
   28.38 +        xen_pte_pin(__pa(pte));
   28.39      }
   28.40      return pte;
   28.41  
   28.42 @@ -153,7 +152,7 @@ static inline pte_t *pte_alloc_one_fast(
   28.43  
   28.44  static __inline__ void pte_free_slow(pte_t *pte)
   28.45  {
   28.46 -    queue_pte_unpin(__pa(pte));
   28.47 +    xen_pte_unpin(__pa(pte));
   28.48      __make_page_writable(pte);
   28.49      free_page((unsigned long)pte);
   28.50  }
   28.51 @@ -208,22 +207,19 @@ extern int do_check_pgt_cache(int, int);
   28.52  
   28.53  static inline void flush_tlb_mm(struct mm_struct *mm)
   28.54  {
   28.55 -	if (mm == current->active_mm) queue_tlb_flush();
   28.56 -	XEN_flush_page_update_queue();
   28.57 +	if (mm == current->active_mm) xen_tlb_flush();
   28.58  }
   28.59  
   28.60  static inline void flush_tlb_page(struct vm_area_struct *vma,
   28.61  	unsigned long addr)
   28.62  {
   28.63 -	if (vma->vm_mm == current->active_mm) queue_invlpg(addr);
   28.64 -	XEN_flush_page_update_queue();
   28.65 +	if (vma->vm_mm == current->active_mm) xen_invlpg(addr);
   28.66  }
   28.67  
   28.68  static inline void flush_tlb_range(struct mm_struct *mm,
   28.69  	unsigned long start, unsigned long end)
   28.70  {
   28.71 -	if (mm == current->active_mm) queue_tlb_flush();
   28.72 -	XEN_flush_page_update_queue();
   28.73 +	if (mm == current->active_mm) xen_tlb_flush();
   28.74  }
   28.75  
   28.76  #else
   28.77 @@ -261,7 +257,6 @@ static inline void flush_tlb_pgtables(st
   28.78  				      unsigned long start, unsigned long end)
   28.79  {
   28.80      /* i386 does not keep any page table caches in TLB */
   28.81 -    XEN_flush_page_update_queue();
   28.82  }
   28.83  
   28.84  /*
    29.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/pgtable-2level.h	Mon Apr 04 10:52:11 2005 +0000
    29.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/pgtable-2level.h	Mon Apr 04 16:13:17 2005 +0000
    29.3 @@ -34,9 +34,19 @@ static inline int pgd_bad(pgd_t pgd)		{ 
    29.4  static inline int pgd_present(pgd_t pgd)	{ return 1; }
    29.5  #define pgd_clear(xp)				do { } while (0)
    29.6  
    29.7 -#define set_pte(pteptr, pteval) queue_l1_entry_update(pteptr, (pteval).pte_low)
    29.8 -#define set_pte_atomic(pteptr, pteval) queue_l1_entry_update(pteptr, (pteval).pte_low)
    29.9 -#define set_pmd(pmdptr, pmdval) queue_l2_entry_update((pmdptr), (pmdval))
   29.10 +/*
   29.11 + * Certain architectures need to do special things when PTEs
   29.12 + * within a page table are directly modified.  Thus, the following
   29.13 + * hook is made available.
   29.14 + */
   29.15 +#define set_pte(pteptr, pteval) (*(pteptr) = pteval)
   29.16 +#define set_pte_atomic(pteptr, pteval) (*(pteptr) = pteval)
   29.17 +
   29.18 +/*
   29.19 + * (pmds are folded into pgds so this doesnt get actually called,
   29.20 + * but the define is needed for a generic inline function.)
   29.21 + */
   29.22 +#define set_pmd(pmdptr, pmdval) xen_l2_entry_update((pmdptr), (pmdval))
   29.23  #define set_pgd(pgdptr, pgdval) ((void)0)
   29.24  
   29.25  #define pgd_page(pgd) \
   29.26 @@ -47,6 +57,7 @@ static inline pmd_t * pmd_offset(pgd_t *
   29.27  	return (pmd_t *) dir;
   29.28  }
   29.29  
   29.30 +#define ptep_get_and_clear(xp)	__pte_ma(xchg(&(xp)->pte_low, 0))
   29.31  #define pte_same(a, b)		((a).pte_low == (b).pte_low)
   29.32  
   29.33  /*                                 
   29.34 @@ -83,21 +94,4 @@ static inline pmd_t * pmd_offset(pgd_t *
   29.35  #define pte_none(x)		(!(x).pte_low)
   29.36  #define __mk_pte(page_nr,pgprot) __pte(((page_nr) << PAGE_SHIFT) | pgprot_val(pgprot))
   29.37  
   29.38 -/*
   29.39 - * A note on implementation of this atomic 'get-and-clear' operation.
   29.40 - * This is actually very simple because XenoLinux can only run on a single
   29.41 - * processor. Therefore, we cannot race other processors setting the 'accessed'
   29.42 - * or 'dirty' bits on a page-table entry.
   29.43 - * Even if pages are shared between domains, that is not a problem because
   29.44 - * each domain will have separate page tables, with their own versions of
   29.45 - * accessed & dirty state.
   29.46 - */
   29.47 -static inline pte_t ptep_get_and_clear(pte_t *xp)
   29.48 -{
   29.49 -    pte_t pte = *xp;
   29.50 -    if ( !pte_none(pte) )
   29.51 -        queue_l1_entry_update(xp, 0);
   29.52 -    return pte;
   29.53 -}
   29.54 -
   29.55  #endif /* _I386_PGTABLE_2LEVEL_H */
    30.1 --- a/linux-2.4.29-xen-sparse/include/asm-xen/pgtable.h	Mon Apr 04 10:52:11 2005 +0000
    30.2 +++ b/linux-2.4.29-xen-sparse/include/asm-xen/pgtable.h	Mon Apr 04 16:13:17 2005 +0000
    30.3 @@ -38,11 +38,11 @@ extern void paging_init(void);
    30.4  
    30.5  extern unsigned long pgkern_mask;
    30.6  
    30.7 -#define __flush_tlb() ({ queue_tlb_flush(); XEN_flush_page_update_queue(); })
    30.8 +#define __flush_tlb() xen_tlb_flush()
    30.9  #define __flush_tlb_global() __flush_tlb()
   30.10  #define __flush_tlb_all() __flush_tlb_global()
   30.11 -#define __flush_tlb_one(addr) ({ queue_invlpg(addr); XEN_flush_page_update_queue(); })
   30.12 -#define __flush_tlb_single(addr) ({ queue_invlpg(addr); XEN_flush_page_update_queue(); })
   30.13 +#define __flush_tlb_one(addr) xen_invlpg(addr)
   30.14 +#define __flush_tlb_single(addr) xen_invlpg(addr)
   30.15  
   30.16  /*
   30.17   * ZERO_PAGE is a global shared page that is always zero: used
   30.18 @@ -179,12 +179,14 @@ extern void * high_memory;
   30.19  #define __S111	PAGE_SHARED
   30.20  
   30.21  #define pte_present(x)	((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
   30.22 -#define pte_clear(xp)	queue_l1_entry_update(xp, 0)
   30.23 +#define pte_clear(xp)	do { set_pte(xp, __pte(0)); } while (0)
   30.24  
   30.25 -#define pmd_none(x)	(!(x).pmd)
   30.26 -#define pmd_present(x)	((x).pmd & _PAGE_PRESENT)
   30.27 +#define pmd_none(x)	(!pmd_val(x))
   30.28 +/* pmd_present doesn't just test the _PAGE_PRESENT bit since wr.p.t.
   30.29 +   can temporarily clear it. */
   30.30 +#define pmd_present(x)	(pmd_val(x))
   30.31  #define pmd_clear(xp)	do { set_pmd(xp, __pmd(0)); } while (0)
   30.32 -#define	pmd_bad(x)	(((x).pmd & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
   30.33 +#define pmd_bad(x)	((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER & ~_PAGE_PRESENT)) != (_KERNPG_TABLE & ~_PAGE_PRESENT))
   30.34  
   30.35  
   30.36  #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
   30.37 @@ -212,29 +214,28 @@ static inline pte_t pte_mkwrite(pte_t pt
   30.38  
   30.39  static inline int ptep_test_and_clear_dirty(pte_t *ptep)
   30.40  {
   30.41 -    unsigned long pteval = *(unsigned long *)ptep;
   30.42 -    int ret = pteval & _PAGE_DIRTY;
   30.43 -    if ( ret ) queue_l1_entry_update(ptep, pteval & ~_PAGE_DIRTY);
   30.44 -    return ret;
   30.45 +    if (!pte_dirty(*ptep))
   30.46 +        return 0;
   30.47 +    return test_and_clear_bit(_PAGE_BIT_DIRTY, &ptep->pte_low);
   30.48  }
   30.49 -static inline  int ptep_test_and_clear_young(pte_t *ptep)
   30.50 +
   30.51 +static inline int ptep_test_and_clear_young(pte_t *ptep)
   30.52  {
   30.53 -    unsigned long pteval = *(unsigned long *)ptep;
   30.54 -    int ret = pteval & _PAGE_ACCESSED;
   30.55 -    if ( ret ) queue_l1_entry_update(ptep, pteval & ~_PAGE_ACCESSED);
   30.56 -    return ret;
   30.57 +    if (!pte_young(*ptep))
   30.58 +        return 0;
   30.59 +    return test_and_clear_bit(_PAGE_BIT_ACCESSED, &ptep->pte_low);
   30.60  }
   30.61 +
   30.62  static inline void ptep_set_wrprotect(pte_t *ptep)
   30.63  {
   30.64 -    unsigned long pteval = *(unsigned long *)ptep;
   30.65 -    if ( (pteval & _PAGE_RW) )
   30.66 -        queue_l1_entry_update(ptep, pteval & ~_PAGE_RW);
   30.67 +    if (pte_write(*ptep))
   30.68 +        clear_bit(_PAGE_BIT_RW, &ptep->pte_low);
   30.69  }
   30.70 +
   30.71  static inline void ptep_mkdirty(pte_t *ptep)
   30.72  {
   30.73 -    unsigned long pteval = *(unsigned long *)ptep;
   30.74 -    if ( !(pteval & _PAGE_DIRTY) )
   30.75 -        queue_l1_entry_update(ptep, pteval | _PAGE_DIRTY);
   30.76 +    if (!pte_dirty(*ptep))
   30.77 +        set_bit(_PAGE_BIT_DIRTY, &ptep->pte_low);
   30.78  }
   30.79  
   30.80  /*
   30.81 @@ -299,7 +300,7 @@ static inline void __make_page_readonly(
   30.82      pgd_t *pgd = pgd_offset_k((unsigned long)va);
   30.83      pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
   30.84      pte_t *pte = pte_offset(pmd, (unsigned long)va);
   30.85 -    queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW);
   30.86 +    set_pte(pte, pte_wrprotect(*pte));
   30.87  }
   30.88  
   30.89  static inline void __make_page_writable(void *va)
   30.90 @@ -307,7 +308,7 @@ static inline void __make_page_writable(
   30.91      pgd_t *pgd = pgd_offset_k((unsigned long)va);
   30.92      pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
   30.93      pte_t *pte = pte_offset(pmd, (unsigned long)va);
   30.94 -    queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW);
   30.95 +    set_pte(pte, pte_mkwrite(*pte));
   30.96  }
   30.97  
   30.98  static inline void make_page_readonly(void *va)
   30.99 @@ -315,7 +316,7 @@ static inline void make_page_readonly(vo
  30.100      pgd_t *pgd = pgd_offset_k((unsigned long)va);
  30.101      pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
  30.102      pte_t *pte = pte_offset(pmd, (unsigned long)va);
  30.103 -    queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW);
  30.104 +    set_pte(pte, pte_wrprotect(*pte));
  30.105      if ( (unsigned long)va >= VMALLOC_START )
  30.106          __make_page_readonly(machine_to_virt(
  30.107              *(unsigned long *)pte&PAGE_MASK));
  30.108 @@ -326,7 +327,7 @@ static inline void make_page_writable(vo
  30.109      pgd_t *pgd = pgd_offset_k((unsigned long)va);
  30.110      pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
  30.111      pte_t *pte = pte_offset(pmd, (unsigned long)va);
  30.112 -    queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW);
  30.113 +    set_pte(pte, pte_mkwrite(*pte));
  30.114      if ( (unsigned long)va >= VMALLOC_START )
  30.115          __make_page_writable(machine_to_virt(
  30.116              *(unsigned long *)pte&PAGE_MASK));
    31.1 --- a/linux-2.4.29-xen-sparse/mkbuildtree	Mon Apr 04 10:52:11 2005 +0000
    31.2 +++ b/linux-2.4.29-xen-sparse/mkbuildtree	Mon Apr 04 16:13:17 2005 +0000
    31.3 @@ -210,7 +210,6 @@ ln -sf ../../${LINUX_26}/include/asm-xen
    31.4  ln -sf ../../${LINUX_26}/include/asm-xen/evtchn.h
    31.5  ln -sf ../../${LINUX_26}/include/asm-xen/gnttab.h
    31.6  ln -sf ../../${LINUX_26}/include/asm-xen/hypervisor.h
    31.7 -ln -sf ../../${LINUX_26}/include/asm-xen/multicall.h
    31.8  ln -sf ../../${LINUX_26}/include/asm-xen/xen_proc.h
    31.9  ln -sf ../../${LINUX_26}/include/asm-xen/asm-i386/synch_bitops.h
   31.10  
    32.1 --- a/linux-2.4.29-xen-sparse/mm/highmem.c	Mon Apr 04 10:52:11 2005 +0000
    32.2 +++ b/linux-2.4.29-xen-sparse/mm/highmem.c	Mon Apr 04 16:13:17 2005 +0000
    32.3 @@ -122,7 +122,6 @@ start:
    32.4  	}
    32.5  	vaddr = PKMAP_ADDR(last_pkmap_nr);
    32.6  	set_pte(&(pkmap_page_table[last_pkmap_nr]), mk_pte(page, kmap_prot));
    32.7 -	XEN_flush_page_update_queue();
    32.8  
    32.9  	pkmap_count[last_pkmap_nr] = 1;
   32.10  	page->virtual = (void *) vaddr;
    33.1 --- a/linux-2.4.29-xen-sparse/mm/memory.c	Mon Apr 04 10:52:11 2005 +0000
    33.2 +++ b/linux-2.4.29-xen-sparse/mm/memory.c	Mon Apr 04 16:13:17 2005 +0000
    33.3 @@ -153,7 +153,6 @@ void clear_page_tables(struct mm_struct 
    33.4  		free_one_pgd(page_dir);
    33.5  		page_dir++;
    33.6  	} while (--nr);
    33.7 -	XEN_flush_page_update_queue();
    33.8  	spin_unlock(&mm->page_table_lock);
    33.9  
   33.10  	/* keep the page table cache within bounds */
   33.11 @@ -249,10 +248,8 @@ skip_copy_pte_range:		address = (address
   33.12  
   33.13  				/* If it's a COW mapping, write protect it both in the parent and the child */
   33.14  				if (cow && pte_write(pte)) {
   33.15 -					/* XEN modification: modified ordering here to avoid RaW hazard. */
   33.16 +					ptep_set_wrprotect(src_pte);
   33.17  					pte = *src_pte;
   33.18 -					pte = pte_wrprotect(pte);
   33.19 -					ptep_set_wrprotect(src_pte);
   33.20  				}
   33.21  
   33.22  				/* If it's a shared mapping, mark it clean in the child */
   33.23 @@ -914,8 +911,7 @@ static inline void establish_pte(struct 
   33.24  {
   33.25  #ifdef CONFIG_XEN
   33.26  	if ( likely(vma->vm_mm == current->mm) ) {
   33.27 -		XEN_flush_page_update_queue();
   33.28 -		HYPERVISOR_update_va_mapping(address, entry, UVMF_INVLPG);
   33.29 +		HYPERVISOR_update_va_mapping(address, entry, UVMF_INVLPG|UVMF_LOCAL);
   33.30  	} else {
   33.31  		set_pte(page_table, entry);
   33.32  		flush_tlb_page(vma, address);
   33.33 @@ -1189,13 +1185,10 @@ static int do_swap_page(struct mm_struct
   33.34  	flush_page_to_ram(page);
   33.35  	flush_icache_page(vma, page);
   33.36  #ifdef CONFIG_XEN
   33.37 -	if ( likely(vma->vm_mm == current->mm) ) {
   33.38 -		XEN_flush_page_update_queue();
   33.39 +	if ( likely(vma->vm_mm == current->mm) )
   33.40  		HYPERVISOR_update_va_mapping(address, pte, 0);
   33.41 -	} else {
   33.42 +	else
   33.43  		set_pte(page_table, pte);
   33.44 -		XEN_flush_page_update_queue();
   33.45 -	}
   33.46  #else
   33.47  	set_pte(page_table, pte);
   33.48  #endif
   33.49 @@ -1245,13 +1238,10 @@ static int do_anonymous_page(struct mm_s
   33.50  	}
   33.51  
   33.52  #ifdef CONFIG_XEN
   33.53 -	if ( likely(vma->vm_mm == current->mm) ) {
   33.54 -		XEN_flush_page_update_queue();
   33.55 +	if ( likely(vma->vm_mm == current->mm) )
   33.56  		HYPERVISOR_update_va_mapping(addr, entry, 0);
   33.57 -	} else {
   33.58 +	else
   33.59  		set_pte(page_table, entry);
   33.60 -		XEN_flush_page_update_queue();
   33.61 -	}
   33.62  #else
   33.63  	set_pte(page_table, entry);
   33.64  #endif
   33.65 @@ -1331,13 +1321,10 @@ static int do_no_page(struct mm_struct *
   33.66  		if (write_access)
   33.67  			entry = pte_mkwrite(pte_mkdirty(entry));
   33.68  #ifdef CONFIG_XEN
   33.69 -		if ( likely(vma->vm_mm == current->mm) ) {
   33.70 -			XEN_flush_page_update_queue();
   33.71 +		if ( likely(vma->vm_mm == current->mm) )
   33.72  			HYPERVISOR_update_va_mapping(address, entry, 0);
   33.73 -		} else {
   33.74 +		else
   33.75  			set_pte(page_table, entry);
   33.76 -			XEN_flush_page_update_queue();
   33.77 -		}
   33.78  #else
   33.79  		set_pte(page_table, entry);
   33.80  #endif
   33.81 @@ -1484,7 +1471,6 @@ pte_t fastcall *pte_alloc(struct mm_stru
   33.82  		/* "fast" allocation can happen without dropping the lock.. */
   33.83  		new = pte_alloc_one_fast(mm, address);
   33.84  		if (!new) {
   33.85 -			XEN_flush_page_update_queue();
   33.86  			spin_unlock(&mm->page_table_lock);
   33.87  			new = pte_alloc_one(mm, address);
   33.88  			spin_lock(&mm->page_table_lock);
    34.1 --- a/linux-2.4.29-xen-sparse/mm/mremap.c	Mon Apr 04 10:52:11 2005 +0000
    34.2 +++ b/linux-2.4.29-xen-sparse/mm/mremap.c	Mon Apr 04 16:13:17 2005 +0000
    34.3 @@ -119,11 +119,9 @@ static int move_page_tables(struct mm_st
    34.4  	 * the old page tables)
    34.5  	 */
    34.6  oops_we_failed:
    34.7 -	XEN_flush_page_update_queue();
    34.8  	flush_cache_range(mm, new_addr, new_addr + len);
    34.9  	while ((offset += PAGE_SIZE) < len)
   34.10  		move_one_page(mm, new_addr + offset, old_addr + offset);
   34.11 -	XEN_flush_page_update_queue();
   34.12  	zap_page_range(mm, new_addr, len);
   34.13  	return -1;
   34.14  }
    35.1 --- a/linux-2.4.29-xen-sparse/mm/swapfile.c	Mon Apr 04 10:52:11 2005 +0000
    35.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.3 @@ -1,1267 +0,0 @@
    35.4 -/*
    35.5 - *  linux/mm/swapfile.c
    35.6 - *
    35.7 - *  Copyright (C) 1991, 1992, 1993, 1994  Linus Torvalds
    35.8 - *  Swap reorganised 29.12.95, Stephen Tweedie
    35.9 - */
   35.10 -
   35.11 -#include <linux/slab.h>
   35.12 -#include <linux/smp_lock.h>
   35.13 -#include <linux/kernel_stat.h>
   35.14 -#include <linux/swap.h>
   35.15 -#include <linux/swapctl.h>
   35.16 -#include <linux/blkdev.h> /* for blk_size */
   35.17 -#include <linux/vmalloc.h>
   35.18 -#include <linux/pagemap.h>
   35.19 -#include <linux/shm.h>
   35.20 -
   35.21 -#include <asm/pgtable.h>
   35.22 -
   35.23 -spinlock_t swaplock = SPIN_LOCK_UNLOCKED;
   35.24 -unsigned int nr_swapfiles;
   35.25 -int total_swap_pages;
   35.26 -static int swap_overflow;
   35.27 -
   35.28 -static const char Bad_file[] = "Bad swap file entry ";
   35.29 -static const char Unused_file[] = "Unused swap file entry ";
   35.30 -static const char Bad_offset[] = "Bad swap offset entry ";
   35.31 -static const char Unused_offset[] = "Unused swap offset entry ";
   35.32 -
   35.33 -struct swap_list_t swap_list = {-1, -1};
   35.34 -
   35.35 -struct swap_info_struct swap_info[MAX_SWAPFILES];
   35.36 -
   35.37 -#define SWAPFILE_CLUSTER 256
   35.38 -
   35.39 -static inline int scan_swap_map(struct swap_info_struct *si)
   35.40 -{
   35.41 -	unsigned long offset;
   35.42 -	/* 
   35.43 -	 * We try to cluster swap pages by allocating them
   35.44 -	 * sequentially in swap.  Once we've allocated
   35.45 -	 * SWAPFILE_CLUSTER pages this way, however, we resort to
   35.46 -	 * first-free allocation, starting a new cluster.  This
   35.47 -	 * prevents us from scattering swap pages all over the entire
   35.48 -	 * swap partition, so that we reduce overall disk seek times
   35.49 -	 * between swap pages.  -- sct */
   35.50 -	if (si->cluster_nr) {
   35.51 -		while (si->cluster_next <= si->highest_bit) {
   35.52 -			offset = si->cluster_next++;
   35.53 -			if (si->swap_map[offset])
   35.54 -				continue;
   35.55 -			si->cluster_nr--;
   35.56 -			goto got_page;
   35.57 -		}
   35.58 -	}
   35.59 -	si->cluster_nr = SWAPFILE_CLUSTER;
   35.60 -
   35.61 -	/* try to find an empty (even not aligned) cluster. */
   35.62 -	offset = si->lowest_bit;
   35.63 - check_next_cluster:
   35.64 -	if (offset+SWAPFILE_CLUSTER-1 <= si->highest_bit)
   35.65 -	{
   35.66 -		int nr;
   35.67 -		for (nr = offset; nr < offset+SWAPFILE_CLUSTER; nr++)
   35.68 -			if (si->swap_map[nr])
   35.69 -			{
   35.70 -				offset = nr+1;
   35.71 -				goto check_next_cluster;
   35.72 -			}
   35.73 -		/* We found a completly empty cluster, so start
   35.74 -		 * using it.
   35.75 -		 */
   35.76 -		goto got_page;
   35.77 -	}
   35.78 -	/* No luck, so now go finegrined as usual. -Andrea */
   35.79 -	for (offset = si->lowest_bit; offset <= si->highest_bit ; offset++) {
   35.80 -		if (si->swap_map[offset])
   35.81 -			continue;
   35.82 -		si->lowest_bit = offset+1;
   35.83 -	got_page:
   35.84 -		if (offset == si->lowest_bit)
   35.85 -			si->lowest_bit++;
   35.86 -		if (offset == si->highest_bit)
   35.87 -			si->highest_bit--;
   35.88 -		if (si->lowest_bit > si->highest_bit) {
   35.89 -			si->lowest_bit = si->max;
   35.90 -			si->highest_bit = 0;
   35.91 -		}
   35.92 -		si->swap_map[offset] = 1;
   35.93 -		nr_swap_pages--;
   35.94 -		si->cluster_next = offset+1;
   35.95 -		return offset;
   35.96 -	}
   35.97 -	si->lowest_bit = si->max;
   35.98 -	si->highest_bit = 0;
   35.99 -	return 0;
  35.100 -}
  35.101 -
  35.102 -swp_entry_t get_swap_page(void)
  35.103 -{
  35.104 -	struct swap_info_struct * p;
  35.105 -	unsigned long offset;
  35.106 -	swp_entry_t entry;
  35.107 -	int type, wrapped = 0;
  35.108 -
  35.109 -	entry.val = 0;	/* Out of memory */
  35.110 -	swap_list_lock();
  35.111 -	type = swap_list.next;
  35.112 -	if (type < 0)
  35.113 -		goto out;
  35.114 -	if (nr_swap_pages <= 0)
  35.115 -		goto out;
  35.116 -
  35.117 -	while (1) {
  35.118 -		p = &swap_info[type];
  35.119 -		if ((p->flags & SWP_WRITEOK) == SWP_WRITEOK) {
  35.120 -			swap_device_lock(p);
  35.121 -			offset = scan_swap_map(p);
  35.122 -			swap_device_unlock(p);
  35.123 -			if (offset) {
  35.124 -				entry = SWP_ENTRY(type,offset);
  35.125 -				type = swap_info[type].next;
  35.126 -				if (type < 0 ||
  35.127 -					p->prio != swap_info[type].prio) {
  35.128 -						swap_list.next = swap_list.head;
  35.129 -				} else {
  35.130 -					swap_list.next = type;
  35.131 -				}
  35.132 -				goto out;
  35.133 -			}
  35.134 -		}
  35.135 -		type = p->next;
  35.136 -		if (!wrapped) {
  35.137 -			if (type < 0 || p->prio != swap_info[type].prio) {
  35.138 -				type = swap_list.head;
  35.139 -				wrapped = 1;
  35.140 -			}
  35.141 -		} else
  35.142 -			if (type < 0)
  35.143 -				goto out;	/* out of swap space */
  35.144 -	}
  35.145 -out:
  35.146 -	swap_list_unlock();
  35.147 -	return entry;
  35.148 -}
  35.149 -
  35.150 -static struct swap_info_struct * swap_info_get(swp_entry_t entry)
  35.151 -{
  35.152 -	struct swap_info_struct * p;
  35.153 -	unsigned long offset, type;
  35.154 -
  35.155 -	if (!entry.val)
  35.156 -		goto out;
  35.157 -	type = SWP_TYPE(entry);
  35.158 -	if (type >= nr_swapfiles)
  35.159 -		goto bad_nofile;
  35.160 -	p = & swap_info[type];
  35.161 -	if (!(p->flags & SWP_USED))
  35.162 -		goto bad_device;
  35.163 -	offset = SWP_OFFSET(entry);
  35.164 -	if (offset >= p->max)
  35.165 -		goto bad_offset;
  35.166 -	if (!p->swap_map[offset])
  35.167 -		goto bad_free;
  35.168 -	swap_list_lock();
  35.169 -	if (p->prio > swap_info[swap_list.next].prio)
  35.170 -		swap_list.next = type;
  35.171 -	swap_device_lock(p);
  35.172 -	return p;
  35.173 -
  35.174 -bad_free:
  35.175 -	printk(KERN_ERR "swap_free: %s%08lx\n", Unused_offset, entry.val);
  35.176 -	goto out;
  35.177 -bad_offset:
  35.178 -	printk(KERN_ERR "swap_free: %s%08lx\n", Bad_offset, entry.val);
  35.179 -	goto out;
  35.180 -bad_device:
  35.181 -	printk(KERN_ERR "swap_free: %s%08lx\n", Unused_file, entry.val);
  35.182 -	goto out;
  35.183 -bad_nofile:
  35.184 -	printk(KERN_ERR "swap_free: %s%08lx\n", Bad_file, entry.val);
  35.185 -out:
  35.186 -	return NULL;
  35.187 -}	
  35.188 -
  35.189 -static void swap_info_put(struct swap_info_struct * p)
  35.190 -{
  35.191 -	swap_device_unlock(p);
  35.192 -	swap_list_unlock();
  35.193 -}
  35.194 -
  35.195 -static int swap_entry_free(struct swap_info_struct *p, unsigned long offset)
  35.196 -{
  35.197 -	int count = p->swap_map[offset];
  35.198 -
  35.199 -	if (count < SWAP_MAP_MAX) {
  35.200 -		count--;
  35.201 -		p->swap_map[offset] = count;
  35.202 -		if (!count) {
  35.203 -			if (offset < p->lowest_bit)
  35.204 -				p->lowest_bit = offset;
  35.205 -			if (offset > p->highest_bit)
  35.206 -				p->highest_bit = offset;
  35.207 -			nr_swap_pages++;
  35.208 -		}
  35.209 -	}
  35.210 -	return count;
  35.211 -}
  35.212 -
  35.213 -/*
  35.214 - * Caller has made sure that the swapdevice corresponding to entry
  35.215 - * is still around or has not been recycled.
  35.216 - */
  35.217 -void swap_free(swp_entry_t entry)
  35.218 -{
  35.219 -	struct swap_info_struct * p;
  35.220 -
  35.221 -	p = swap_info_get(entry);
  35.222 -	if (p) {
  35.223 -		swap_entry_free(p, SWP_OFFSET(entry));
  35.224 -		swap_info_put(p);
  35.225 -	}
  35.226 -}
  35.227 -
  35.228 -/*
  35.229 - * Check if we're the only user of a swap page,
  35.230 - * when the page is locked.
  35.231 - */
  35.232 -static int exclusive_swap_page(struct page *page)
  35.233 -{
  35.234 -	int retval = 0;
  35.235 -	struct swap_info_struct * p;
  35.236 -	swp_entry_t entry;
  35.237 -
  35.238 -	entry.val = page->index;
  35.239 -	p = swap_info_get(entry);
  35.240 -	if (p) {
  35.241 -		/* Is the only swap cache user the cache itself? */
  35.242 -		if (p->swap_map[SWP_OFFSET(entry)] == 1) {
  35.243 -			/* Recheck the page count with the pagecache lock held.. */
  35.244 -			spin_lock(&pagecache_lock);
  35.245 -			if (page_count(page) - !!page->buffers == 2)
  35.246 -				retval = 1;
  35.247 -			spin_unlock(&pagecache_lock);
  35.248 -		}
  35.249 -		swap_info_put(p);
  35.250 -	}
  35.251 -	return retval;
  35.252 -}
  35.253 -
  35.254 -/*
  35.255 - * We can use this swap cache entry directly
  35.256 - * if there are no other references to it.
  35.257 - *
  35.258 - * Here "exclusive_swap_page()" does the real
  35.259 - * work, but we opportunistically check whether
  35.260 - * we need to get all the locks first..
  35.261 - */
  35.262 -int fastcall can_share_swap_page(struct page *page)
  35.263 -{
  35.264 -	int retval = 0;
  35.265 -
  35.266 -	if (!PageLocked(page))
  35.267 -		BUG();
  35.268 -	switch (page_count(page)) {
  35.269 -	case 3:
  35.270 -		if (!page->buffers)
  35.271 -			break;
  35.272 -		/* Fallthrough */
  35.273 -	case 2:
  35.274 -		if (!PageSwapCache(page))
  35.275 -			break;
  35.276 -		retval = exclusive_swap_page(page);
  35.277 -		break;
  35.278 -	case 1:
  35.279 -		if (PageReserved(page))
  35.280 -			break;
  35.281 -		retval = 1;
  35.282 -	}
  35.283 -	return retval;
  35.284 -}
  35.285 -
  35.286 -/*
  35.287 - * Work out if there are any other processes sharing this
  35.288 - * swap cache page. Free it if you can. Return success.
  35.289 - */
  35.290 -int fastcall remove_exclusive_swap_page(struct page *page)
  35.291 -{
  35.292 -	int retval;
  35.293 -	struct swap_info_struct * p;
  35.294 -	swp_entry_t entry;
  35.295 -
  35.296 -	if (!PageLocked(page))
  35.297 -		BUG();
  35.298 -	if (!PageSwapCache(page))
  35.299 -		return 0;
  35.300 -	if (page_count(page) - !!page->buffers != 2)	/* 2: us + cache */
  35.301 -		return 0;
  35.302 -
  35.303 -	entry.val = page->index;
  35.304 -	p = swap_info_get(entry);
  35.305 -	if (!p)
  35.306 -		return 0;
  35.307 -
  35.308 -	/* Is the only swap cache user the cache itself? */
  35.309 -	retval = 0;
  35.310 -	if (p->swap_map[SWP_OFFSET(entry)] == 1) {
  35.311 -		/* Recheck the page count with the pagecache lock held.. */
  35.312 -		spin_lock(&pagecache_lock);
  35.313 -		if (page_count(page) - !!page->buffers == 2) {
  35.314 -			__delete_from_swap_cache(page);
  35.315 -			SetPageDirty(page);
  35.316 -			retval = 1;
  35.317 -		}
  35.318 -		spin_unlock(&pagecache_lock);
  35.319 -	}
  35.320 -	swap_info_put(p);
  35.321 -
  35.322 -	if (retval) {
  35.323 -		block_flushpage(page, 0);
  35.324 -		swap_free(entry);
  35.325 -		page_cache_release(page);
  35.326 -	}
  35.327 -
  35.328 -	return retval;
  35.329 -}
  35.330 -
  35.331 -/*
  35.332 - * Free the swap entry like above, but also try to
  35.333 - * free the page cache entry if it is the last user.
  35.334 - */
  35.335 -void free_swap_and_cache(swp_entry_t entry)
  35.336 -{
  35.337 -	struct swap_info_struct * p;
  35.338 -	struct page *page = NULL;
  35.339 -
  35.340 -	p = swap_info_get(entry);
  35.341 -	if (p) {
  35.342 -		if (swap_entry_free(p, SWP_OFFSET(entry)) == 1)
  35.343 -			page = find_trylock_page(&swapper_space, entry.val);
  35.344 -		swap_info_put(p);
  35.345 -	}
  35.346 -	if (page) {
  35.347 -		page_cache_get(page);
  35.348 -		/* Only cache user (+us), or swap space full? Free it! */
  35.349 -		if (page_count(page) - !!page->buffers == 2 || vm_swap_full()) {
  35.350 -			delete_from_swap_cache(page);
  35.351 -			SetPageDirty(page);
  35.352 -		}
  35.353 -		UnlockPage(page);
  35.354 -		page_cache_release(page);
  35.355 -	}
  35.356 -}
  35.357 -
  35.358 -/*
  35.359 - * The swap entry has been read in advance, and we return 1 to indicate
  35.360 - * that the page has been used or is no longer needed.
  35.361 - *
  35.362 - * Always set the resulting pte to be nowrite (the same as COW pages
  35.363 - * after one process has exited).  We don't know just how many PTEs will
  35.364 - * share this swap entry, so be cautious and let do_wp_page work out
  35.365 - * what to do if a write is requested later.
  35.366 - */
  35.367 -/* mmlist_lock and vma->vm_mm->page_table_lock are held */
  35.368 -static inline void unuse_pte(struct vm_area_struct * vma, unsigned long address,
  35.369 -	pte_t *dir, swp_entry_t entry, struct page* page)
  35.370 -{
  35.371 -	pte_t pte = *dir;
  35.372 -
  35.373 -	if (likely(pte_to_swp_entry(pte).val != entry.val))
  35.374 -		return;
  35.375 -	if (unlikely(pte_none(pte) || pte_present(pte)))
  35.376 -		return;
  35.377 -	get_page(page);
  35.378 -	set_pte(dir, pte_mkold(mk_pte(page, vma->vm_page_prot)));
  35.379 -	swap_free(entry);
  35.380 -	++vma->vm_mm->rss;
  35.381 -}
  35.382 -
  35.383 -/* mmlist_lock and vma->vm_mm->page_table_lock are held */
  35.384 -static inline void unuse_pmd(struct vm_area_struct * vma, pmd_t *dir,
  35.385 -	unsigned long address, unsigned long size, unsigned long offset,
  35.386 -	swp_entry_t entry, struct page* page)
  35.387 -{
  35.388 -	pte_t * pte;
  35.389 -	unsigned long end;
  35.390 -
  35.391 -	if (pmd_none(*dir))
  35.392 -		return;
  35.393 -	if (pmd_bad(*dir)) {
  35.394 -		pmd_ERROR(*dir);
  35.395 -		pmd_clear(dir);
  35.396 -		return;
  35.397 -	}
  35.398 -	pte = pte_offset(dir, address);
  35.399 -	offset += address & PMD_MASK;
  35.400 -	address &= ~PMD_MASK;
  35.401 -	end = address + size;
  35.402 -	if (end > PMD_SIZE)
  35.403 -		end = PMD_SIZE;
  35.404 -	do {
  35.405 -		unuse_pte(vma, offset+address-vma->vm_start, pte, entry, page);
  35.406 -		address += PAGE_SIZE;
  35.407 -		pte++;
  35.408 -	} while (address && (address < end));
  35.409 -}
  35.410 -
  35.411 -/* mmlist_lock and vma->vm_mm->page_table_lock are held */
  35.412 -static inline void unuse_pgd(struct vm_area_struct * vma, pgd_t *dir,
  35.413 -	unsigned long address, unsigned long size,
  35.414 -	swp_entry_t entry, struct page* page)
  35.415 -{
  35.416 -	pmd_t * pmd;
  35.417 -	unsigned long offset, end;
  35.418 -
  35.419 -	if (pgd_none(*dir))
  35.420 -		return;
  35.421 -	if (pgd_bad(*dir)) {
  35.422 -		pgd_ERROR(*dir);
  35.423 -		pgd_clear(dir);
  35.424 -		return;
  35.425 -	}
  35.426 -	pmd = pmd_offset(dir, address);
  35.427 -	offset = address & PGDIR_MASK;
  35.428 -	address &= ~PGDIR_MASK;
  35.429 -	end = address + size;
  35.430 -	if (end > PGDIR_SIZE)
  35.431 -		end = PGDIR_SIZE;
  35.432 -	if (address >= end)
  35.433 -		BUG();
  35.434 -	do {
  35.435 -		unuse_pmd(vma, pmd, address, end - address, offset, entry,
  35.436 -			  page);
  35.437 -		address = (address + PMD_SIZE) & PMD_MASK;
  35.438 -		pmd++;
  35.439 -	} while (address && (address < end));
  35.440 -}
  35.441 -
  35.442 -/* mmlist_lock and vma->vm_mm->page_table_lock are held */
  35.443 -static void unuse_vma(struct vm_area_struct * vma, pgd_t *pgdir,
  35.444 -			swp_entry_t entry, struct page* page)
  35.445 -{
  35.446 -	unsigned long start = vma->vm_start, end = vma->vm_end;
  35.447 -
  35.448 -	if (start >= end)
  35.449 -		BUG();
  35.450 -	do {
  35.451 -		unuse_pgd(vma, pgdir, start, end - start, entry, page);
  35.452 -		start = (start + PGDIR_SIZE) & PGDIR_MASK;
  35.453 -		pgdir++;
  35.454 -	} while (start && (start < end));
  35.455 -}
  35.456 -
  35.457 -static void unuse_process(struct mm_struct * mm,
  35.458 -			swp_entry_t entry, struct page* page)
  35.459 -{
  35.460 -	struct vm_area_struct* vma;
  35.461 -
  35.462 -	/*
  35.463 -	 * Go through process' page directory.
  35.464 -	 */
  35.465 -	spin_lock(&mm->page_table_lock);
  35.466 -	for (vma = mm->mmap; vma; vma = vma->vm_next) {
  35.467 -		pgd_t * pgd = pgd_offset(mm, vma->vm_start);
  35.468 -		unuse_vma(vma, pgd, entry, page);
  35.469 -	}
  35.470 -	XEN_flush_page_update_queue();
  35.471 -	spin_unlock(&mm->page_table_lock);
  35.472 -	return;
  35.473 -}
  35.474 -
  35.475 -/*
  35.476 - * Scan swap_map from current position to next entry still in use.
  35.477 - * Recycle to start on reaching the end, returning 0 when empty.
  35.478 - */
  35.479 -static int find_next_to_unuse(struct swap_info_struct *si, int prev)
  35.480 -{
  35.481 -	int max = si->max;
  35.482 -	int i = prev;
  35.483 -	int count;
  35.484 -
  35.485 -	/*
  35.486 -	 * No need for swap_device_lock(si) here: we're just looking
  35.487 -	 * for whether an entry is in use, not modifying it; false
  35.488 -	 * hits are okay, and sys_swapoff() has already prevented new
  35.489 -	 * allocations from this area (while holding swap_list_lock()).
  35.490 -	 */
  35.491 -	for (;;) {
  35.492 -		if (++i >= max) {
  35.493 -			if (!prev) {
  35.494 -				i = 0;
  35.495 -				break;
  35.496 -			}
  35.497 -			/*
  35.498 -			 * No entries in use at top of swap_map,
  35.499 -			 * loop back to start and recheck there.
  35.500 -			 */
  35.501 -			max = prev + 1;
  35.502 -			prev = 0;
  35.503 -			i = 1;
  35.504 -		}
  35.505 -		count = si->swap_map[i];
  35.506 -		if (count && count != SWAP_MAP_BAD)
  35.507 -			break;
  35.508 -	}
  35.509 -	return i;
  35.510 -}
  35.511 -
  35.512 -/*
  35.513 - * We completely avoid races by reading each swap page in advance,
  35.514 - * and then search for the process using it.  All the necessary
  35.515 - * page table adjustments can then be made atomically.
  35.516 - */
  35.517 -static int try_to_unuse(unsigned int type)
  35.518 -{
  35.519 -	struct swap_info_struct * si = &swap_info[type];
  35.520 -	struct mm_struct *start_mm;
  35.521 -	unsigned short *swap_map;
  35.522 -	unsigned short swcount;
  35.523 -	struct page *page;
  35.524 -	swp_entry_t entry;
  35.525 -	int i = 0;
  35.526 -	int retval = 0;
  35.527 -	int reset_overflow = 0;
  35.528 -	int shmem;
  35.529 -
  35.530 -	/*
  35.531 -	 * When searching mms for an entry, a good strategy is to
  35.532 -	 * start at the first mm we freed the previous entry from
  35.533 -	 * (though actually we don't notice whether we or coincidence
  35.534 -	 * freed the entry).  Initialize this start_mm with a hold.
  35.535 -	 *
  35.536 -	 * A simpler strategy would be to start at the last mm we
  35.537 -	 * freed the previous entry from; but that would take less
  35.538 -	 * advantage of mmlist ordering (now preserved by swap_out()),
  35.539 -	 * which clusters forked address spaces together, most recent
  35.540 -	 * child immediately after parent.  If we race with dup_mmap(),
  35.541 -	 * we very much want to resolve parent before child, otherwise
  35.542 -	 * we may miss some entries: using last mm would invert that.
  35.543 -	 */
  35.544 -	start_mm = &init_mm;
  35.545 -	atomic_inc(&init_mm.mm_users);
  35.546 -
  35.547 -	/*
  35.548 -	 * Keep on scanning until all entries have gone.  Usually,
  35.549 -	 * one pass through swap_map is enough, but not necessarily:
  35.550 -	 * mmput() removes mm from mmlist before exit_mmap() and its
  35.551 -	 * zap_page_range().  That's not too bad, those entries are
  35.552 -	 * on their way out, and handled faster there than here.
  35.553 -	 * do_munmap() behaves similarly, taking the range out of mm's
  35.554 -	 * vma list before zap_page_range().  But unfortunately, when
  35.555 -	 * unmapping a part of a vma, it takes the whole out first,
  35.556 -	 * then reinserts what's left after (might even reschedule if
  35.557 -	 * open() method called) - so swap entries may be invisible
  35.558 -	 * to swapoff for a while, then reappear - but that is rare.
  35.559 -	 */
  35.560 -	while ((i = find_next_to_unuse(si, i))) {
  35.561 -		/* 
  35.562 -		 * Get a page for the entry, using the existing swap
  35.563 -		 * cache page if there is one.  Otherwise, get a clean
  35.564 -		 * page and read the swap into it. 
  35.565 -		 */
  35.566 -		swap_map = &si->swap_map[i];
  35.567 -		entry = SWP_ENTRY(type, i);
  35.568 -		page = read_swap_cache_async(entry);
  35.569 -		if (!page) {
  35.570 -			/*
  35.571 -			 * Either swap_duplicate() failed because entry
  35.572 -			 * has been freed independently, and will not be
  35.573 -			 * reused since sys_swapoff() already disabled
  35.574 -			 * allocation from here, or alloc_page() failed.
  35.575 -			 */
  35.576 -			if (!*swap_map)
  35.577 -				continue;
  35.578 -			retval = -ENOMEM;
  35.579 -			break;
  35.580 -		}
  35.581 -
  35.582 -		/*
  35.583 -		 * Don't hold on to start_mm if it looks like exiting.
  35.584 -		 */
  35.585 -		if (atomic_read(&start_mm->mm_users) == 1) {
  35.586 -			mmput(start_mm);
  35.587 -			start_mm = &init_mm;
  35.588 -			atomic_inc(&init_mm.mm_users);
  35.589 -		}
  35.590 -
  35.591 -		/*
  35.592 -		 * Wait for and lock page.  When do_swap_page races with
  35.593 -		 * try_to_unuse, do_swap_page can handle the fault much
  35.594 -		 * faster than try_to_unuse can locate the entry.  This
  35.595 -		 * apparently redundant "wait_on_page" lets try_to_unuse
  35.596 -		 * defer to do_swap_page in such a case - in some tests,
  35.597 -		 * do_swap_page and try_to_unuse repeatedly compete.
  35.598 -		 */
  35.599 -		wait_on_page(page);
  35.600 -		lock_page(page);
  35.601 -
  35.602 -		/*
  35.603 -		 * Remove all references to entry, without blocking.
  35.604 -		 * Whenever we reach init_mm, there's no address space
  35.605 -		 * to search, but use it as a reminder to search shmem.
  35.606 -		 */
  35.607 -		shmem = 0;
  35.608 -		swcount = *swap_map;
  35.609 -		if (swcount > 1) {
  35.610 -			flush_page_to_ram(page);
  35.611 -			if (start_mm == &init_mm)
  35.612 -				shmem = shmem_unuse(entry, page);
  35.613 -			else
  35.614 -				unuse_process(start_mm, entry, page);
  35.615 -		}
  35.616 -		if (*swap_map > 1) {
  35.617 -			int set_start_mm = (*swap_map >= swcount);
  35.618 -			struct list_head *p = &start_mm->mmlist;
  35.619 -			struct mm_struct *new_start_mm = start_mm;
  35.620 -			struct mm_struct *mm;
  35.621 -
  35.622 -			spin_lock(&mmlist_lock);
  35.623 -			while (*swap_map > 1 &&
  35.624 -					(p = p->next) != &start_mm->mmlist) {
  35.625 -				mm = list_entry(p, struct mm_struct, mmlist);
  35.626 -				swcount = *swap_map;
  35.627 -				if (mm == &init_mm) {
  35.628 -					set_start_mm = 1;
  35.629 -					spin_unlock(&mmlist_lock);
  35.630 -					shmem = shmem_unuse(entry, page);
  35.631 -					spin_lock(&mmlist_lock);
  35.632 -				} else
  35.633 -					unuse_process(mm, entry, page);
  35.634 -				if (set_start_mm && *swap_map < swcount) {
  35.635 -					new_start_mm = mm;
  35.636 -					set_start_mm = 0;
  35.637 -				}
  35.638 -			}
  35.639 -			atomic_inc(&new_start_mm->mm_users);
  35.640 -			spin_unlock(&mmlist_lock);
  35.641 -			mmput(start_mm);
  35.642 -			start_mm = new_start_mm;
  35.643 -		}
  35.644 -
  35.645 -		/*
  35.646 -		 * How could swap count reach 0x7fff when the maximum
  35.647 -		 * pid is 0x7fff, and there's no way to repeat a swap
  35.648 -		 * page within an mm (except in shmem, where it's the
  35.649 -		 * shared object which takes the reference count)?
  35.650 -		 * We believe SWAP_MAP_MAX cannot occur in Linux 2.4.
  35.651 -		 *
  35.652 -		 * If that's wrong, then we should worry more about
  35.653 -		 * exit_mmap() and do_munmap() cases described above:
  35.654 -		 * we might be resetting SWAP_MAP_MAX too early here.
  35.655 -		 * We know "Undead"s can happen, they're okay, so don't
  35.656 -		 * report them; but do report if we reset SWAP_MAP_MAX.
  35.657 -		 */
  35.658 -		if (*swap_map == SWAP_MAP_MAX) {
  35.659 -			swap_list_lock();
  35.660 -			swap_device_lock(si);
  35.661 -			nr_swap_pages++;
  35.662 -			*swap_map = 1;
  35.663 -			swap_device_unlock(si);
  35.664 -			swap_list_unlock();
  35.665 -			reset_overflow = 1;
  35.666 -		}
  35.667 -
  35.668 -		/*
  35.669 -		 * If a reference remains (rare), we would like to leave
  35.670 -		 * the page in the swap cache; but try_to_swap_out could
  35.671 -		 * then re-duplicate the entry once we drop page lock,
  35.672 -		 * so we might loop indefinitely; also, that page could
  35.673 -		 * not be swapped out to other storage meanwhile.  So:
  35.674 -		 * delete from cache even if there's another reference,
  35.675 -		 * after ensuring that the data has been saved to disk -
  35.676 -		 * since if the reference remains (rarer), it will be
  35.677 -		 * read from disk into another page.  Splitting into two
  35.678 -		 * pages would be incorrect if swap supported "shared
  35.679 -		 * private" pages, but they are handled by tmpfs files.
  35.680 -		 *
  35.681 -		 * Note shmem_unuse already deleted swappage from cache,
  35.682 -		 * unless corresponding filepage found already in cache:
  35.683 -		 * in which case it left swappage in cache, lowered its
  35.684 -		 * swap count to pass quickly through the loops above,
  35.685 -		 * and now we must reincrement count to try again later.
  35.686 -		 */
  35.687 -		if ((*swap_map > 1) && PageDirty(page) && PageSwapCache(page)) {
  35.688 -			rw_swap_page(WRITE, page);
  35.689 -			lock_page(page);
  35.690 -		}
  35.691 -		if (PageSwapCache(page)) {
  35.692 -			if (shmem)
  35.693 -				swap_duplicate(entry);
  35.694 -			else
  35.695 -				delete_from_swap_cache(page);
  35.696 -		}
  35.697 -
  35.698 -		/*
  35.699 -		 * So we could skip searching mms once swap count went
  35.700 -		 * to 1, we did not mark any present ptes as dirty: must
  35.701 -		 * mark page dirty so try_to_swap_out will preserve it.
  35.702 -		 */
  35.703 -		SetPageDirty(page);
  35.704 -		UnlockPage(page);
  35.705 -		page_cache_release(page);
  35.706 -
  35.707 -		/*
  35.708 -		 * Make sure that we aren't completely killing
  35.709 -		 * interactive performance.  Interruptible check on
  35.710 -		 * signal_pending() would be nice, but changes the spec?
  35.711 -		 */
  35.712 -		if (current->need_resched)
  35.713 -			schedule();
  35.714 -	}
  35.715 -
  35.716 -	mmput(start_mm);
  35.717 -	if (reset_overflow) {
  35.718 -		printk(KERN_WARNING "swapoff: cleared swap entry overflow\n");
  35.719 -		swap_overflow = 0;
  35.720 -	}
  35.721 -	return retval;
  35.722 -}
  35.723 -
  35.724 -asmlinkage long sys_swapoff(const char * specialfile)
  35.725 -{
  35.726 -	struct swap_info_struct * p = NULL;
  35.727 -	unsigned short *swap_map;
  35.728 -	struct nameidata nd;
  35.729 -	int i, type, prev;
  35.730 -	int err;
  35.731 -	
  35.732 -	if (!capable(CAP_SYS_ADMIN))
  35.733 -		return -EPERM;
  35.734 -
  35.735 -	err = user_path_walk(specialfile, &nd);
  35.736 -	if (err)
  35.737 -		goto out;
  35.738 -
  35.739 -	lock_kernel();
  35.740 -	prev = -1;
  35.741 -	swap_list_lock();
  35.742 -	for (type = swap_list.head; type >= 0; type = swap_info[type].next) {
  35.743 -		p = swap_info + type;
  35.744 -		if ((p->flags & SWP_WRITEOK) == SWP_WRITEOK) {
  35.745 -			if (p->swap_file == nd.dentry)
  35.746 -			  break;
  35.747 -		}
  35.748 -		prev = type;
  35.749 -	}
  35.750 -	err = -EINVAL;
  35.751 -	if (type < 0) {
  35.752 -		swap_list_unlock();
  35.753 -		goto out_dput;
  35.754 -	}
  35.755 -
  35.756 -	if (prev < 0) {
  35.757 -		swap_list.head = p->next;
  35.758 -	} else {
  35.759 -		swap_info[prev].next = p->next;
  35.760 -	}
  35.761 -	if (type == swap_list.next) {
  35.762 -		/* just pick something that's safe... */
  35.763 -		swap_list.next = swap_list.head;
  35.764 -	}
  35.765 -	nr_swap_pages -= p->pages;
  35.766 -	total_swap_pages -= p->pages;
  35.767 -	p->flags = SWP_USED;
  35.768 -	swap_list_unlock();
  35.769 -	unlock_kernel();
  35.770 -	err = try_to_unuse(type);
  35.771 -	lock_kernel();
  35.772 -	if (err) {
  35.773 -		/* re-insert swap space back into swap_list */
  35.774 -		swap_list_lock();
  35.775 -		for (prev = -1, i = swap_list.head; i >= 0; prev = i, i = swap_info[i].next)
  35.776 -			if (p->prio >= swap_info[i].prio)
  35.777 -				break;
  35.778 -		p->next = i;
  35.779 -		if (prev < 0)
  35.780 -			swap_list.head = swap_list.next = p - swap_info;
  35.781 -		else
  35.782 -			swap_info[prev].next = p - swap_info;
  35.783 -		nr_swap_pages += p->pages;
  35.784 -		total_swap_pages += p->pages;
  35.785 -		p->flags = SWP_WRITEOK;
  35.786 -		swap_list_unlock();
  35.787 -		goto out_dput;
  35.788 -	}
  35.789 -	if (p->swap_device)
  35.790 -		blkdev_put(p->swap_file->d_inode->i_bdev, BDEV_SWAP);
  35.791 -	path_release(&nd);
  35.792 -
  35.793 -	swap_list_lock();
  35.794 -	swap_device_lock(p);
  35.795 -	nd.mnt = p->swap_vfsmnt;
  35.796 -	nd.dentry = p->swap_file;
  35.797 -	p->swap_vfsmnt = NULL;
  35.798 -	p->swap_file = NULL;
  35.799 -	p->swap_device = 0;
  35.800 -	p->max = 0;
  35.801 -	swap_map = p->swap_map;
  35.802 -	p->swap_map = NULL;
  35.803 -	p->flags = 0;
  35.804 -	swap_device_unlock(p);
  35.805 -	swap_list_unlock();
  35.806 -	vfree(swap_map);
  35.807 -	err = 0;
  35.808 -
  35.809 -out_dput:
  35.810 -	unlock_kernel();
  35.811 -	path_release(&nd);
  35.812 -out:
  35.813 -	return err;
  35.814 -}
  35.815 -
  35.816 -int get_swaparea_info(char *buf)
  35.817 -{
  35.818 -	char * page = (char *) __get_free_page(GFP_KERNEL);
  35.819 -	struct swap_info_struct *ptr = swap_info;
  35.820 -	int i, j, len = 0, usedswap;
  35.821 -
  35.822 -	if (!page)
  35.823 -		return -ENOMEM;
  35.824 -
  35.825 -	len += sprintf(buf, "Filename\t\t\tType\t\tSize\tUsed\tPriority\n");
  35.826 -	for (i = 0 ; i < nr_swapfiles ; i++, ptr++) {
  35.827 -		if ((ptr->flags & SWP_USED) && ptr->swap_map) {
  35.828 -			char * path = d_path(ptr->swap_file, ptr->swap_vfsmnt,
  35.829 -						page, PAGE_SIZE);
  35.830 -
  35.831 -			len += sprintf(buf + len, "%-31s ", path);
  35.832 -
  35.833 -			if (!ptr->swap_device)
  35.834 -				len += sprintf(buf + len, "file\t\t");
  35.835 -			else
  35.836 -				len += sprintf(buf + len, "partition\t");
  35.837 -
  35.838 -			usedswap = 0;
  35.839 -			for (j = 0; j < ptr->max; ++j)
  35.840 -				switch (ptr->swap_map[j]) {
  35.841 -					case SWAP_MAP_BAD:
  35.842 -					case 0:
  35.843 -						continue;
  35.844 -					default:
  35.845 -						usedswap++;
  35.846 -				}
  35.847 -			len += sprintf(buf + len, "%d\t%d\t%d\n", ptr->pages << (PAGE_SHIFT - 10), 
  35.848 -				usedswap << (PAGE_SHIFT - 10), ptr->prio);
  35.849 -		}
  35.850 -	}
  35.851 -	free_page((unsigned long) page);
  35.852 -	return len;
  35.853 -}
  35.854 -
  35.855 -int is_swap_partition(kdev_t dev) {
  35.856 -	struct swap_info_struct *ptr = swap_info;
  35.857 -	int i;
  35.858 -
  35.859 -	for (i = 0 ; i < nr_swapfiles ; i++, ptr++) {
  35.860 -		if (ptr->flags & SWP_USED)
  35.861 -			if (ptr->swap_device == dev)
  35.862 -				return 1;
  35.863 -	}
  35.864 -	return 0;
  35.865 -}
  35.866 -
  35.867 -/*
  35.868 - * Written 01/25/92 by Simmule Turner, heavily changed by Linus.
  35.869 - *
  35.870 - * The swapon system call
  35.871 - */
  35.872 -asmlinkage long sys_swapon(const char * specialfile, int swap_flags)
  35.873 -{
  35.874 -	struct swap_info_struct * p;
  35.875 -	struct nameidata nd;
  35.876 -	struct inode * swap_inode;
  35.877 -	unsigned int type;
  35.878 -	int i, j, prev;
  35.879 -	int error;
  35.880 -	static int least_priority = 0;
  35.881 -	union swap_header *swap_header = 0;
  35.882 -	int swap_header_version;
  35.883 -	int nr_good_pages = 0;
  35.884 -	unsigned long maxpages = 1;
  35.885 -	int swapfilesize;
  35.886 -	struct block_device *bdev = NULL;
  35.887 -	unsigned short *swap_map;
  35.888 -	
  35.889 -	if (!capable(CAP_SYS_ADMIN))
  35.890 -		return -EPERM;
  35.891 -	lock_kernel();
  35.892 -	swap_list_lock();
  35.893 -	p = swap_info;
  35.894 -	for (type = 0 ; type < nr_swapfiles ; type++,p++)
  35.895 -		if (!(p->flags & SWP_USED))
  35.896 -			break;
  35.897 -	error = -EPERM;
  35.898 -	if (type >= MAX_SWAPFILES) {
  35.899 -		swap_list_unlock();
  35.900 -		goto out;
  35.901 -	}
  35.902 -	if (type >= nr_swapfiles)
  35.903 -		nr_swapfiles = type+1;
  35.904 -	p->flags = SWP_USED;
  35.905 -	p->swap_file = NULL;
  35.906 -	p->swap_vfsmnt = NULL;
  35.907 -	p->swap_device = 0;
  35.908 -	p->swap_map = NULL;
  35.909 -	p->lowest_bit = 0;
  35.910 -	p->highest_bit = 0;
  35.911 -	p->cluster_nr = 0;
  35.912 -	p->sdev_lock = SPIN_LOCK_UNLOCKED;
  35.913 -	p->next = -1;
  35.914 -	if (swap_flags & SWAP_FLAG_PREFER) {
  35.915 -		p->prio =
  35.916 -		  (swap_flags & SWAP_FLAG_PRIO_MASK)>>SWAP_FLAG_PRIO_SHIFT;
  35.917 -	} else {
  35.918 -		p->prio = --least_priority;
  35.919 -	}
  35.920 -	swap_list_unlock();
  35.921 -	error = user_path_walk(specialfile, &nd);
  35.922 -	if (error)
  35.923 -		goto bad_swap_2;
  35.924 -
  35.925 -	p->swap_file = nd.dentry;
  35.926 -	p->swap_vfsmnt = nd.mnt;
  35.927 -	swap_inode = nd.dentry->d_inode;
  35.928 -	error = -EINVAL;
  35.929 -
  35.930 -	if (S_ISBLK(swap_inode->i_mode)) {
  35.931 -		kdev_t dev = swap_inode->i_rdev;
  35.932 -		struct block_device_operations *bdops;
  35.933 -		devfs_handle_t de;
  35.934 -
  35.935 -		if (is_mounted(dev)) {
  35.936 -			error = -EBUSY;
  35.937 -			goto bad_swap_2;
  35.938 -		}
  35.939 -
  35.940 -		p->swap_device = dev;
  35.941 -		set_blocksize(dev, PAGE_SIZE);
  35.942 -		
  35.943 -		bd_acquire(swap_inode);
  35.944 -		bdev = swap_inode->i_bdev;
  35.945 -		de = devfs_get_handle_from_inode(swap_inode);
  35.946 -		bdops = devfs_get_ops(de);  /*  Increments module use count  */
  35.947 -		if (bdops) bdev->bd_op = bdops;
  35.948 -
  35.949 -		error = blkdev_get(bdev, FMODE_READ|FMODE_WRITE, 0, BDEV_SWAP);
  35.950 -		devfs_put_ops(de);/*Decrement module use count now we're safe*/
  35.951 -		if (error)
  35.952 -			goto bad_swap_2;
  35.953 -		set_blocksize(dev, PAGE_SIZE);
  35.954 -		error = -ENODEV;
  35.955 -		if (!dev || (blk_size[MAJOR(dev)] &&
  35.956 -		     !blk_size[MAJOR(dev)][MINOR(dev)]))
  35.957 -			goto bad_swap;
  35.958 -		swapfilesize = 0;
  35.959 -		if (blk_size[MAJOR(dev)])
  35.960 -			swapfilesize = blk_size[MAJOR(dev)][MINOR(dev)]
  35.961 -				>> (PAGE_SHIFT - 10);
  35.962 -	} else if (S_ISREG(swap_inode->i_mode))
  35.963 -		swapfilesize = swap_inode->i_size >> PAGE_SHIFT;
  35.964 -	else
  35.965 -		goto bad_swap;
  35.966 -
  35.967 -	error = -EBUSY;
  35.968 -	for (i = 0 ; i < nr_swapfiles ; i++) {
  35.969 -		struct swap_info_struct *q = &swap_info[i];
  35.970 -		if (i == type || !q->swap_file)
  35.971 -			continue;
  35.972 -		if (swap_inode->i_mapping == q->swap_file->d_inode->i_mapping)
  35.973 -			goto bad_swap;
  35.974 -	}
  35.975 -
  35.976 -	swap_header = (void *) __get_free_page(GFP_USER);
  35.977 -	if (!swap_header) {
  35.978 -		printk("Unable to start swapping: out of memory :-)\n");
  35.979 -		error = -ENOMEM;
  35.980 -		goto bad_swap;
  35.981 -	}
  35.982 -
  35.983 -	lock_page(virt_to_page(swap_header));
  35.984 -	rw_swap_page_nolock(READ, SWP_ENTRY(type,0), (char *) swap_header);
  35.985 -
  35.986 -	if (!memcmp("SWAP-SPACE",swap_header->magic.magic,10))
  35.987 -		swap_header_version = 1;
  35.988 -	else if (!memcmp("SWAPSPACE2",swap_header->magic.magic,10))
  35.989 -		swap_header_version = 2;
  35.990 -	else {
  35.991 -		printk("Unable to find swap-space signature\n");
  35.992 -		error = -EINVAL;
  35.993 -		goto bad_swap;
  35.994 -	}
  35.995 -	
  35.996 -	switch (swap_header_version) {
  35.997 -	case 1:
  35.998 -		memset(((char *) swap_header)+PAGE_SIZE-10,0,10);
  35.999 -		j = 0;
 35.1000 -		p->lowest_bit = 0;
 35.1001 -		p->highest_bit = 0;
 35.1002 -		for (i = 1 ; i < 8*PAGE_SIZE ; i++) {
 35.1003 -			if (test_bit(i,(char *) swap_header)) {
 35.1004 -				if (!p->lowest_bit)
 35.1005 -					p->lowest_bit = i;
 35.1006 -				p->highest_bit = i;
 35.1007 -				maxpages = i+1;
 35.1008 -				j++;
 35.1009 -			}
 35.1010 -		}
 35.1011 -		nr_good_pages = j;
 35.1012 -		p->swap_map = vmalloc(maxpages * sizeof(short));
 35.1013 -		if (!p->swap_map) {
 35.1014 -			error = -ENOMEM;		
 35.1015 -			goto bad_swap;
 35.1016 -		}
 35.1017 -		for (i = 1 ; i < maxpages ; i++) {
 35.1018 -			if (test_bit(i,(char *) swap_header))
 35.1019 -				p->swap_map[i] = 0;
 35.1020 -			else
 35.1021 -				p->swap_map[i] = SWAP_MAP_BAD;
 35.1022 -		}
 35.1023 -		break;
 35.1024 -
 35.1025 -	case 2:
 35.1026 -		/* Check the swap header's sub-version and the size of
 35.1027 -                   the swap file and bad block lists */
 35.1028 -		if (swap_header->info.version != 1) {
 35.1029 -			printk(KERN_WARNING
 35.1030 -			       "Unable to handle swap header version %d\n",
 35.1031 -			       swap_header->info.version);
 35.1032 -			error = -EINVAL;
 35.1033 -			goto bad_swap;
 35.1034 -		}
 35.1035 -
 35.1036 -		p->lowest_bit  = 1;
 35.1037 -		maxpages = SWP_OFFSET(SWP_ENTRY(0,~0UL)) - 1;
 35.1038 -		if (maxpages > swap_header->info.last_page)
 35.1039 -			maxpages = swap_header->info.last_page;
 35.1040 -		p->highest_bit = maxpages - 1;
 35.1041 -
 35.1042 -		error = -EINVAL;
 35.1043 -		if (swap_header->info.nr_badpages > MAX_SWAP_BADPAGES)
 35.1044 -			goto bad_swap;
 35.1045 -		
 35.1046 -		/* OK, set up the swap map and apply the bad block list */
 35.1047 -		if (!(p->swap_map = vmalloc(maxpages * sizeof(short)))) {
 35.1048 -			error = -ENOMEM;
 35.1049 -			goto bad_swap;
 35.1050 -		}
 35.1051 -
 35.1052 -		error = 0;
 35.1053 -		memset(p->swap_map, 0, maxpages * sizeof(short));
 35.1054 -		for (i=0; i<swap_header->info.nr_badpages; i++) {
 35.1055 -			int page = swap_header->info.badpages[i];
 35.1056 -			if (page <= 0 || page >= swap_header->info.last_page)
 35.1057 -				error = -EINVAL;
 35.1058 -			else
 35.1059 -				p->swap_map[page] = SWAP_MAP_BAD;
 35.1060 -		}
 35.1061 -		nr_good_pages = swap_header->info.last_page -
 35.1062 -				swap_header->info.nr_badpages -
 35.1063 -				1 /* header page */;
 35.1064 -		if (error) 
 35.1065 -			goto bad_swap;
 35.1066 -	}
 35.1067 -	
 35.1068 -	if (swapfilesize && maxpages > swapfilesize) {
 35.1069 -		printk(KERN_WARNING
 35.1070 -		       "Swap area shorter than signature indicates\n");
 35.1071 -		error = -EINVAL;
 35.1072 -		goto bad_swap;
 35.1073 -	}
 35.1074 -	if (!nr_good_pages) {
 35.1075 -		printk(KERN_WARNING "Empty swap-file\n");
 35.1076 -		error = -EINVAL;
 35.1077 -		goto bad_swap;
 35.1078 -	}
 35.1079 -	p->swap_map[0] = SWAP_MAP_BAD;
 35.1080 -	swap_list_lock();
 35.1081 -	swap_device_lock(p);
 35.1082 -	p->max = maxpages;
 35.1083 -	p->flags = SWP_WRITEOK;
 35.1084 -	p->pages = nr_good_pages;
 35.1085 -	nr_swap_pages += nr_good_pages;
 35.1086 -	total_swap_pages += nr_good_pages;
 35.1087 -	printk(KERN_INFO "Adding Swap: %dk swap-space (priority %d)\n",
 35.1088 -	       nr_good_pages<<(PAGE_SHIFT-10), p->prio);
 35.1089 -
 35.1090 -	/* insert swap space into swap_list: */
 35.1091 -	prev = -1;
 35.1092 -	for (i = swap_list.head; i >= 0; i = swap_info[i].next) {
 35.1093 -		if (p->prio >= swap_info[i].prio) {
 35.1094 -			break;
 35.1095 -		}
 35.1096 -		prev = i;
 35.1097 -	}
 35.1098 -	p->next = i;
 35.1099 -	if (prev < 0) {
 35.1100 -		swap_list.head = swap_list.next = p - swap_info;
 35.1101 -	} else {
 35.1102 -		swap_info[prev].next = p - swap_info;
 35.1103 -	}
 35.1104 -	swap_device_unlock(p);
 35.1105 -	swap_list_unlock();
 35.1106 -	error = 0;
 35.1107 -	goto out;
 35.1108 -bad_swap:
 35.1109 -	if (bdev)
 35.1110 -		blkdev_put(bdev, BDEV_SWAP);
 35.1111 -bad_swap_2:
 35.1112 -	swap_list_lock();
 35.1113 -	swap_map = p->swap_map;
 35.1114 -	nd.mnt = p->swap_vfsmnt;
 35.1115 -	nd.dentry = p->swap_file;
 35.1116 -	p->swap_device = 0;
 35.1117 -	p->swap_file = NULL;
 35.1118 -	p->swap_vfsmnt = NULL;
 35.1119 -	p->swap_map = NULL;
 35.1120 -	p->flags = 0;
 35.1121 -	if (!(swap_flags & SWAP_FLAG_PREFER))
 35.1122 -		++least_priority;
 35.1123 -	swap_list_unlock();
 35.1124 -	if (swap_map)
 35.1125 -		vfree(swap_map);
 35.1126 -	path_release(&nd);
 35.1127 -out:
 35.1128 -	if (swap_header)
 35.1129 -		free_page((long) swap_header);
 35.1130 -	unlock_kernel();
 35.1131 -	return error;
 35.1132 -}
 35.1133 -
 35.1134 -void si_swapinfo(struct sysinfo *val)
 35.1135 -{
 35.1136 -	unsigned int i;
 35.1137 -	unsigned long nr_to_be_unused = 0;
 35.1138 -
 35.1139 -	swap_list_lock();
 35.1140 -	for (i = 0; i < nr_swapfiles; i++) {
 35.1141 -		unsigned int j;
 35.1142 -		if (swap_info[i].flags != SWP_USED)
 35.1143 -			continue;
 35.1144 -		for (j = 0; j < swap_info[i].max; ++j) {
 35.1145 -			switch (swap_info[i].swap_map[j]) {
 35.1146 -				case 0:
 35.1147 -				case SWAP_MAP_BAD:
 35.1148 -					continue;
 35.1149 -				default:
 35.1150 -					nr_to_be_unused++;
 35.1151 -			}
 35.1152 -		}
 35.1153 -	}
 35.1154 -	val->freeswap = nr_swap_pages + nr_to_be_unused;
 35.1155 -	val->totalswap = total_swap_pages + nr_to_be_unused;
 35.1156 -	swap_list_unlock();
 35.1157 -}
 35.1158 -
 35.1159 -/*
 35.1160 - * Verify that a swap entry is valid and increment its swap map count.
 35.1161 - *
 35.1162 - * Note: if swap_map[] reaches SWAP_MAP_MAX the entries are treated as
 35.1163 - * "permanent", but will be reclaimed by the next swapoff.
 35.1164 - */
 35.1165 -int swap_duplicate(swp_entry_t entry)
 35.1166 -{
 35.1167 -	struct swap_info_struct * p;
 35.1168 -	unsigned long offset, type;
 35.1169 -	int result = 0;
 35.1170 -
 35.1171 -	type = SWP_TYPE(entry);
 35.1172 -	if (type >= nr_swapfiles)
 35.1173 -		goto bad_file;
 35.1174 -	p = type + swap_info;
 35.1175 -	offset = SWP_OFFSET(entry);
 35.1176 -
 35.1177 -	swap_device_lock(p);
 35.1178 -	if (offset < p->max && p->swap_map[offset]) {
 35.1179 -		if (p->swap_map[offset] < SWAP_MAP_MAX - 1) {
 35.1180 -			p->swap_map[offset]++;
 35.1181 -			result = 1;
 35.1182 -		} else if (p->swap_map[offset] <= SWAP_MAP_MAX) {
 35.1183 -			if (swap_overflow++ < 5)
 35.1184 -				printk(KERN_WARNING "swap_dup: swap entry overflow\n");
 35.1185 -			p->swap_map[offset] = SWAP_MAP_MAX;
 35.1186 -			result = 1;
 35.1187 -		}
 35.1188 -	}
 35.1189 -	swap_device_unlock(p);
 35.1190 -out:
 35.1191 -	return result;
 35.1192 -
 35.1193 -bad_file:
 35.1194 -	printk(KERN_ERR "swap_dup: %s%08lx\n", Bad_file, entry.val);
 35.1195 -	goto out;
 35.1196 -}
 35.1197 -
 35.1198 -/*
 35.1199 - * Prior swap_duplicate protects against swap device deletion.
 35.1200 - */
 35.1201 -void get_swaphandle_info(swp_entry_t entry, unsigned long *offset, 
 35.1202 -			kdev_t *dev, struct inode **swapf)
 35.1203 -{
 35.1204 -	unsigned long type;
 35.1205 -	struct swap_info_struct *p;
 35.1206 -
 35.1207 -	type = SWP_TYPE(entry);
 35.1208 -	if (type >= nr_swapfiles) {
 35.1209 -		printk(KERN_ERR "rw_swap_page: %s%08lx\n", Bad_file, entry.val);
 35.1210 -		return;
 35.1211 -	}
 35.1212 -
 35.1213 -	p = &swap_info[type];
 35.1214 -	*offset = SWP_OFFSET(entry);
 35.1215 -	if (*offset >= p->max && *offset != 0) {
 35.1216 -		printk(KERN_ERR "rw_swap_page: %s%08lx\n", Bad_offset, entry.val);
 35.1217 -		return;
 35.1218 -	}
 35.1219 -	if (p->swap_map && !p->swap_map[*offset]) {
 35.1220 -		printk(KERN_ERR "rw_swap_page: %s%08lx\n", Unused_offset, entry.val);
 35.1221 -		return;
 35.1222 -	}
 35.1223 -	if (!(p->flags & SWP_USED)) {
 35.1224 -		printk(KERN_ERR "rw_swap_page: %s%08lx\n", Unused_file, entry.val);
 35.1225 -		return;
 35.1226 -	}
 35.1227 -
 35.1228 -	if (p->swap_device) {
 35.1229 -		*dev = p->swap_device;
 35.1230 -	} else if (p->swap_file) {
 35.1231 -		*swapf = p->swap_file->d_inode;
 35.1232 -	} else {
 35.1233 -		printk(KERN_ERR "rw_swap_page: no swap file or device\n");
 35.1234 -	}
 35.1235 -	return;
 35.1236 -}
 35.1237 -
 35.1238 -/*
 35.1239 - * swap_device_lock prevents swap_map being freed. Don't grab an extra
 35.1240 - * reference on the swaphandle, it doesn't matter if it becomes unused.
 35.1241 - */
 35.1242 -int valid_swaphandles(swp_entry_t entry, unsigned long *offset)
 35.1243 -{
 35.1244 -	int ret = 0, i = 1 << page_cluster;
 35.1245 -	unsigned long toff;
 35.1246 -	struct swap_info_struct *swapdev = SWP_TYPE(entry) + swap_info;
 35.1247 -
 35.1248 -	if (!page_cluster)	/* no readahead */
 35.1249 -		return 0;
 35.1250 -	toff = (SWP_OFFSET(entry) >> page_cluster) << page_cluster;
 35.1251 -	if (!toff)		/* first page is swap header */
 35.1252 -		toff++, i--;
 35.1253 -	*offset = toff;
 35.1254 -
 35.1255 -	swap_device_lock(swapdev);
 35.1256 -	do {
 35.1257 -		/* Don't read-ahead past the end of the swap area */
 35.1258 -		if (toff >= swapdev->max)
 35.1259 -			break;
 35.1260 -		/* Don't read in free or bad pages */
 35.1261 -		if (!swapdev->swap_map[toff])
 35.1262 -			break;
 35.1263 -		if (swapdev->swap_map[toff] == SWAP_MAP_BAD)
 35.1264 -			break;
 35.1265 -		toff++;
 35.1266 -		ret++;
 35.1267 -	} while (--i);
 35.1268 -	swap_device_unlock(swapdev);
 35.1269 -	return ret;
 35.1270 -}
    36.1 --- a/linux-2.4.29-xen-sparse/mm/vmalloc.c	Mon Apr 04 10:52:11 2005 +0000
    36.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.3 @@ -1,385 +0,0 @@
    36.4 -/*
    36.5 - *  linux/mm/vmalloc.c
    36.6 - *
    36.7 - *  Copyright (C) 1993  Linus Torvalds
    36.8 - *  Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
    36.9 - *  SMP-safe vmalloc/vfree/ioremap, Tigran Aivazian <tigran@veritas.com>, May 2000
   36.10 - */
   36.11 -
   36.12 -#include <linux/config.h>
   36.13 -#include <linux/slab.h>
   36.14 -#include <linux/vmalloc.h>
   36.15 -#include <linux/spinlock.h>
   36.16 -#include <linux/highmem.h>
   36.17 -#include <linux/smp_lock.h>
   36.18 -
   36.19 -#include <asm/uaccess.h>
   36.20 -#include <asm/pgalloc.h>
   36.21 -
   36.22 -rwlock_t vmlist_lock = RW_LOCK_UNLOCKED;
   36.23 -struct vm_struct * vmlist;
   36.24 -
   36.25 -static inline void free_area_pte(pmd_t * pmd, unsigned long address, unsigned long size)
   36.26 -{
   36.27 -	pte_t * pte;
   36.28 -	unsigned long end;
   36.29 -
   36.30 -	if (pmd_none(*pmd))
   36.31 -		return;
   36.32 -	if (pmd_bad(*pmd)) {
   36.33 -		pmd_ERROR(*pmd);
   36.34 -		pmd_clear(pmd);
   36.35 -		return;
   36.36 -	}
   36.37 -	pte = pte_offset(pmd, address);
   36.38 -	address &= ~PMD_MASK;
   36.39 -	end = address + size;
   36.40 -	if (end > PMD_SIZE)
   36.41 -		end = PMD_SIZE;
   36.42 -	do {
   36.43 -		pte_t page;
   36.44 -		page = ptep_get_and_clear(pte);
   36.45 -		address += PAGE_SIZE;
   36.46 -		pte++;
   36.47 -		if (pte_none(page))
   36.48 -			continue;
   36.49 -		if (pte_present(page)) {
   36.50 -			struct page *ptpage = pte_page(page);
   36.51 -			if (VALID_PAGE(ptpage) && (!PageReserved(ptpage)))
   36.52 -				__free_page(ptpage);
   36.53 -			continue;
   36.54 -		}
   36.55 -		printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n");
   36.56 -	} while (address < end);
   36.57 -}
   36.58 -
   36.59 -static inline void free_area_pmd(pgd_t * dir, unsigned long address, unsigned long size)
   36.60 -{
   36.61 -	pmd_t * pmd;
   36.62 -	unsigned long end;
   36.63 -
   36.64 -	if (pgd_none(*dir))
   36.65 -		return;
   36.66 -	if (pgd_bad(*dir)) {
   36.67 -		pgd_ERROR(*dir);
   36.68 -		pgd_clear(dir);
   36.69 -		return;
   36.70 -	}
   36.71 -	pmd = pmd_offset(dir, address);
   36.72 -	address &= ~PGDIR_MASK;
   36.73 -	end = address + size;
   36.74 -	if (end > PGDIR_SIZE)
   36.75 -		end = PGDIR_SIZE;
   36.76 -	do {
   36.77 -		free_area_pte(pmd, address, end - address);
   36.78 -		address = (address + PMD_SIZE) & PMD_MASK;
   36.79 -		pmd++;
   36.80 -	} while (address < end);
   36.81 -}
   36.82 -
   36.83 -void vmfree_area_pages(unsigned long address, unsigned long size)
   36.84 -{
   36.85 -	pgd_t * dir;
   36.86 -	unsigned long end = address + size;
   36.87 -
   36.88 -	dir = pgd_offset_k(address);
   36.89 -	flush_cache_all();
   36.90 -	do {
   36.91 -		free_area_pmd(dir, address, end - address);
   36.92 -		address = (address + PGDIR_SIZE) & PGDIR_MASK;
   36.93 -		dir++;
   36.94 -	} while (address && (address < end));
   36.95 -	flush_tlb_all();
   36.96 -}
   36.97 -
   36.98 -static inline int alloc_area_pte (pte_t * pte, unsigned long address,
   36.99 -			unsigned long size, int gfp_mask,
  36.100 -			pgprot_t prot, struct page ***pages)
  36.101 -{
  36.102 -	unsigned long end;
  36.103 -
  36.104 -	address &= ~PMD_MASK;
  36.105 -	end = address + size;
  36.106 -	if (end > PMD_SIZE)
  36.107 -		end = PMD_SIZE;
  36.108 -	do {
  36.109 -		struct page * page;
  36.110 -
  36.111 -		if (!pages) {
  36.112 -			spin_unlock(&init_mm.page_table_lock);
  36.113 -			page = alloc_page(gfp_mask);
  36.114 -			spin_lock(&init_mm.page_table_lock);
  36.115 -		} else {
  36.116 -			page = (**pages);
  36.117 -			(*pages)++;
  36.118 -
  36.119 -			/* Add a reference to the page so we can free later */
  36.120 -			if (page)
  36.121 -				atomic_inc(&page->count);
  36.122 -
  36.123 -		}
  36.124 -		if (!pte_none(*pte))
  36.125 -			printk(KERN_ERR "alloc_area_pte: page already exists\n");
  36.126 -		if (!page)
  36.127 -			return -ENOMEM;
  36.128 -		set_pte(pte, mk_pte(page, prot));
  36.129 -		address += PAGE_SIZE;
  36.130 -		pte++;
  36.131 -	} while (address < end);
  36.132 -	return 0;
  36.133 -}
  36.134 -
  36.135 -static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address,
  36.136 -			unsigned long size, int gfp_mask,
  36.137 -			pgprot_t prot, struct page ***pages)
  36.138 -{
  36.139 -	unsigned long end;
  36.140 -
  36.141 -	address &= ~PGDIR_MASK;
  36.142 -	end = address + size;
  36.143 -	if (end > PGDIR_SIZE)
  36.144 -		end = PGDIR_SIZE;
  36.145 -	do {
  36.146 -		pte_t * pte = pte_alloc(&init_mm, pmd, address);
  36.147 -		if (!pte)
  36.148 -			return -ENOMEM;
  36.149 -		if (alloc_area_pte(pte, address, end - address,
  36.150 -					gfp_mask, prot, pages))
  36.151 -			return -ENOMEM;
  36.152 -		address = (address + PMD_SIZE) & PMD_MASK;
  36.153 -		pmd++;
  36.154 -	} while (address < end);
  36.155 -	return 0;
  36.156 -}
  36.157 -
  36.158 -/*static inline*/ int __vmalloc_area_pages (unsigned long address,
  36.159 -					unsigned long size,
  36.160 -					int gfp_mask,
  36.161 -					pgprot_t prot,
  36.162 -					struct page ***pages)
  36.163 -{
  36.164 -	pgd_t * dir;
  36.165 -	unsigned long start = address;
  36.166 -	unsigned long end = address + size;
  36.167 -
  36.168 -	dir = pgd_offset_k(address);
  36.169 -	spin_lock(&init_mm.page_table_lock);
  36.170 -	do {
  36.171 -		pmd_t *pmd;
  36.172 -		
  36.173 -		pmd = pmd_alloc(&init_mm, dir, address);
  36.174 -		if (!pmd)
  36.175 -			goto err;
  36.176 -
  36.177 -		if (alloc_area_pmd(pmd, address, end - address, gfp_mask, prot, pages))
  36.178 -			goto err;	// The kernel NEVER reclaims pmds, so no need to undo pmd_alloc() here
  36.179 -
  36.180 -		address = (address + PGDIR_SIZE) & PGDIR_MASK;
  36.181 -		dir++;
  36.182 -	} while (address && (address < end));
  36.183 -	spin_unlock(&init_mm.page_table_lock);
  36.184 -	flush_cache_all();
  36.185 -	XEN_flush_page_update_queue();
  36.186 -	return 0;
  36.187 -err:
  36.188 -	spin_unlock(&init_mm.page_table_lock);
  36.189 -	flush_cache_all();
  36.190 -	if (address > start)
  36.191 -		vmfree_area_pages(start, address - start);
  36.192 -	return -ENOMEM;
  36.193 -}
  36.194 -
  36.195 -int vmalloc_area_pages(unsigned long address, unsigned long size,
  36.196 -		       int gfp_mask, pgprot_t prot)
  36.197 -{
  36.198 -	return __vmalloc_area_pages(address, size, gfp_mask, prot, NULL);
  36.199 -}
  36.200 -
  36.201 -struct vm_struct * get_vm_area(unsigned long size, unsigned long flags)
  36.202 -{
  36.203 -	unsigned long addr, next;
  36.204 -	struct vm_struct **p, *tmp, *area;
  36.205 -
  36.206 -	area = (struct vm_struct *) kmalloc(sizeof(*area), GFP_KERNEL);
  36.207 -	if (!area)
  36.208 -		return NULL;
  36.209 -
  36.210 -	size += PAGE_SIZE;
  36.211 -	if (!size) {
  36.212 -		kfree (area);
  36.213 -		return NULL;
  36.214 -	}
  36.215 -
  36.216 -	addr = VMALLOC_START;
  36.217 -	write_lock(&vmlist_lock);
  36.218 -	for (p = &vmlist; (tmp = *p) ; p = &tmp->next) {
  36.219 -		if ((size + addr) < addr)
  36.220 -			goto out;
  36.221 -		if (size + addr <= (unsigned long) tmp->addr)
  36.222 -			break;
  36.223 -		next = tmp->size + (unsigned long) tmp->addr;
  36.224 -		if (next > addr) 
  36.225 -			addr = next;
  36.226 -		if (addr > VMALLOC_END-size)
  36.227 -			goto out;
  36.228 -	}
  36.229 -	area->flags = flags;
  36.230 -	area->addr = (void *)addr;
  36.231 -	area->size = size;
  36.232 -	area->next = *p;
  36.233 -	*p = area;
  36.234 -	write_unlock(&vmlist_lock);
  36.235 -	return area;
  36.236 -
  36.237 -out:
  36.238 -	write_unlock(&vmlist_lock);
  36.239 -	kfree(area);
  36.240 -	return NULL;
  36.241 -}
  36.242 -
  36.243 -void __vfree(void * addr, int free_area_pages)
  36.244 -{
  36.245 -	struct vm_struct **p, *tmp;
  36.246 -
  36.247 -	if (!addr)
  36.248 -		return;
  36.249 -	if ((PAGE_SIZE-1) & (unsigned long) addr) {
  36.250 -		printk(KERN_ERR "Trying to vfree() bad address (%p)\n", addr);
  36.251 -		return;
  36.252 -	}
  36.253 -	write_lock(&vmlist_lock);
  36.254 -	for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) {
  36.255 -		if (tmp->addr == addr) {
  36.256 -			*p = tmp->next;
  36.257 -			if (free_area_pages)
  36.258 -				vmfree_area_pages(VMALLOC_VMADDR(tmp->addr), tmp->size);
  36.259 -			write_unlock(&vmlist_lock);
  36.260 -			kfree(tmp);
  36.261 -			return;
  36.262 -		}
  36.263 -	}
  36.264 -	write_unlock(&vmlist_lock);
  36.265 -	printk(KERN_ERR "Trying to vfree() nonexistent vm area (%p)\n", addr);
  36.266 -}
  36.267 -
  36.268 -void vfree(void * addr)
  36.269 -{
  36.270 -	__vfree(addr,1);
  36.271 -}
  36.272 -
  36.273 -void * __vmalloc (unsigned long size, int gfp_mask, pgprot_t prot)
  36.274 -{
  36.275 -	void * addr;
  36.276 -	struct vm_struct *area;
  36.277 -
  36.278 -	size = PAGE_ALIGN(size);
  36.279 -	if (!size || (size >> PAGE_SHIFT) > num_physpages)
  36.280 -		return NULL;
  36.281 -	area = get_vm_area(size, VM_ALLOC);
  36.282 -	if (!area)
  36.283 -		return NULL;
  36.284 -	addr = area->addr;
  36.285 -	if (__vmalloc_area_pages(VMALLOC_VMADDR(addr), size, gfp_mask,
  36.286 -				 prot, NULL)) {
  36.287 -		__vfree(addr, 0);
  36.288 -		return NULL;
  36.289 -	}
  36.290 -	return addr;
  36.291 -}
  36.292 -
  36.293 -void * vmap(struct page **pages, int count,
  36.294 -	    unsigned long flags, pgprot_t prot)
  36.295 -{
  36.296 -	void * addr;
  36.297 -	struct vm_struct *area;
  36.298 -	unsigned long size = count << PAGE_SHIFT;
  36.299 -
  36.300 -	if (!size || size > (max_mapnr << PAGE_SHIFT))
  36.301 -		return NULL;
  36.302 -	area = get_vm_area(size, flags);
  36.303 -	if (!area) {
  36.304 -		return NULL;
  36.305 -	}
  36.306 -	addr = area->addr;
  36.307 -	if (__vmalloc_area_pages(VMALLOC_VMADDR(addr), size, 0,
  36.308 -				 prot, &pages)) {
  36.309 -		__vfree(addr, 0);
  36.310 -		return NULL;
  36.311 -	}
  36.312 -	return addr;
  36.313 -}
  36.314 -
  36.315 -long vread(char *buf, char *addr, unsigned long count)
  36.316 -{
  36.317 -	struct vm_struct *tmp;
  36.318 -	char *vaddr, *buf_start = buf;
  36.319 -	unsigned long n;
  36.320 -
  36.321 -	/* Don't allow overflow */
  36.322 -	if ((unsigned long) addr + count < count)
  36.323 -		count = -(unsigned long) addr;
  36.324 -
  36.325 -	read_lock(&vmlist_lock);
  36.326 -	for (tmp = vmlist; tmp; tmp = tmp->next) {
  36.327 -		vaddr = (char *) tmp->addr;
  36.328 -		if (addr >= vaddr + tmp->size - PAGE_SIZE)
  36.329 -			continue;
  36.330 -		while (addr < vaddr) {
  36.331 -			if (count == 0)
  36.332 -				goto finished;
  36.333 -			*buf = '\0';
  36.334 -			buf++;
  36.335 -			addr++;
  36.336 -			count--;
  36.337 -		}
  36.338 -		n = vaddr + tmp->size - PAGE_SIZE - addr;
  36.339 -		do {
  36.340 -			if (count == 0)
  36.341 -				goto finished;
  36.342 -			*buf = *addr;
  36.343 -			buf++;
  36.344 -			addr++;
  36.345 -			count--;
  36.346 -		} while (--n > 0);
  36.347 -	}
  36.348 -finished:
  36.349 -	read_unlock(&vmlist_lock);
  36.350 -	return buf - buf_start;
  36.351 -}
  36.352 -
  36.353 -long vwrite(char *buf, char *addr, unsigned long count)
  36.354 -{
  36.355 -	struct vm_struct *tmp;
  36.356 -	char *vaddr, *buf_start = buf;
  36.357 -	unsigned long n;
  36.358 -
  36.359 -	/* Don't allow overflow */
  36.360 -	if ((unsigned long) addr + count < count)
  36.361 -		count = -(unsigned long) addr;
  36.362 -
  36.363 -	read_lock(&vmlist_lock);
  36.364 -	for (tmp = vmlist; tmp; tmp = tmp->next) {
  36.365 -		vaddr = (char *) tmp->addr;
  36.366 -		if (addr >= vaddr + tmp->size - PAGE_SIZE)
  36.367 -			continue;
  36.368 -		while (addr < vaddr) {
  36.369 -			if (count == 0)
  36.370 -				goto finished;
  36.371 -			buf++;
  36.372 -			addr++;
  36.373 -			count--;
  36.374 -		}
  36.375 -		n = vaddr + tmp->size - PAGE_SIZE - addr;
  36.376 -		do {
  36.377 -			if (count == 0)
  36.378 -				goto finished;
  36.379 -			*addr = *buf;
  36.380 -			buf++;
  36.381 -			addr++;
  36.382 -			count--;
  36.383 -		} while (--n > 0);
  36.384 -	}
  36.385 -finished:
  36.386 -	read_unlock(&vmlist_lock);
  36.387 -	return buf - buf_start;
  36.388 -}
    37.1 --- a/linux-2.6.11-xen-sparse/arch/xen/Kconfig	Mon Apr 04 10:52:11 2005 +0000
    37.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/Kconfig	Mon Apr 04 16:13:17 2005 +0000
    37.3 @@ -114,10 +114,6 @@ config XEN_BLKDEV_TAP
    37.4  	  to a character device, allowing device prototyping in application
    37.5  	  space.  Odds are that you want to say N here.
    37.6  
    37.7 -config XEN_WRITABLE_PAGETABLES
    37.8 -	bool
    37.9 -	default y
   37.10 -
   37.11  config XEN_SCRUB_PAGES
   37.12  	bool "Scrub memory before freeing it to Xen"
   37.13  	default y
    38.1 --- a/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig	Mon Apr 04 10:52:11 2005 +0000
    38.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.3 @@ -1,1100 +0,0 @@
    38.4 -#
    38.5 -# Automatically generated make config: don't edit
    38.6 -# Linux kernel version: 2.6.11-xen0
    38.7 -# Sat Mar 19 19:42:39 2005
    38.8 -#
    38.9 -CONFIG_XEN=y
   38.10 -CONFIG_ARCH_XEN=y
   38.11 -CONFIG_NO_IDLE_HZ=y
   38.12 -
   38.13 -#
   38.14 -# XEN
   38.15 -#
   38.16 -CONFIG_XEN_PRIVILEGED_GUEST=y
   38.17 -CONFIG_XEN_PHYSDEV_ACCESS=y
   38.18 -CONFIG_XEN_BLKDEV_BACKEND=y
   38.19 -# CONFIG_XEN_BLKDEV_TAP_BE is not set
   38.20 -CONFIG_XEN_NETDEV_BACKEND=y
   38.21 -CONFIG_XEN_BLKDEV_FRONTEND=y
   38.22 -CONFIG_XEN_NETDEV_FRONTEND=y
   38.23 -# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
   38.24 -# CONFIG_XEN_BLKDEV_TAP is not set
   38.25 -CONFIG_XEN_WRITABLE_PAGETABLES=y
   38.26 -CONFIG_XEN_SCRUB_PAGES=y
   38.27 -CONFIG_X86=y
   38.28 -# CONFIG_X86_64 is not set
   38.29 -CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y
   38.30 -
   38.31 -#
   38.32 -# Code maturity level options
   38.33 -#
   38.34 -CONFIG_EXPERIMENTAL=y
   38.35 -# CONFIG_CLEAN_COMPILE is not set
   38.36 -CONFIG_BROKEN=y
   38.37 -CONFIG_BROKEN_ON_SMP=y
   38.38 -CONFIG_LOCK_KERNEL=y
   38.39 -
   38.40 -#
   38.41 -# General setup
   38.42 -#
   38.43 -CONFIG_LOCALVERSION=""
   38.44 -CONFIG_SWAP=y
   38.45 -CONFIG_SYSVIPC=y
   38.46 -# CONFIG_POSIX_MQUEUE is not set
   38.47 -# CONFIG_BSD_PROCESS_ACCT is not set
   38.48 -CONFIG_SYSCTL=y
   38.49 -# CONFIG_AUDIT is not set
   38.50 -CONFIG_LOG_BUF_SHIFT=14
   38.51 -CONFIG_HOTPLUG=y
   38.52 -CONFIG_KOBJECT_UEVENT=y
   38.53 -# CONFIG_IKCONFIG is not set
   38.54 -# CONFIG_EMBEDDED is not set
   38.55 -CONFIG_KALLSYMS=y
   38.56 -# CONFIG_KALLSYMS_EXTRA_PASS is not set
   38.57 -CONFIG_FUTEX=y
   38.58 -CONFIG_EPOLL=y
   38.59 -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
   38.60 -CONFIG_SHMEM=y
   38.61 -CONFIG_CC_ALIGN_FUNCTIONS=0
   38.62 -CONFIG_CC_ALIGN_LABELS=0
   38.63 -CONFIG_CC_ALIGN_LOOPS=0
   38.64 -CONFIG_CC_ALIGN_JUMPS=0
   38.65 -# CONFIG_TINY_SHMEM is not set
   38.66 -
   38.67 -#
   38.68 -# Loadable module support
   38.69 -#
   38.70 -CONFIG_MODULES=y
   38.71 -CONFIG_MODULE_UNLOAD=y
   38.72 -# CONFIG_MODULE_FORCE_UNLOAD is not set
   38.73 -CONFIG_OBSOLETE_MODPARM=y
   38.74 -# CONFIG_MODVERSIONS is not set
   38.75 -# CONFIG_MODULE_SRCVERSION_ALL is not set
   38.76 -CONFIG_KMOD=y
   38.77 -
   38.78 -#
   38.79 -# X86 Processor Configuration
   38.80 -#
   38.81 -CONFIG_XENARCH="i386"
   38.82 -CONFIG_MMU=y
   38.83 -CONFIG_UID16=y
   38.84 -CONFIG_GENERIC_ISA_DMA=y
   38.85 -CONFIG_GENERIC_IOMAP=y
   38.86 -# CONFIG_M386 is not set
   38.87 -# CONFIG_M486 is not set
   38.88 -# CONFIG_M586 is not set
   38.89 -# CONFIG_M586TSC is not set
   38.90 -# CONFIG_M586MMX is not set
   38.91 -# CONFIG_M686 is not set
   38.92 -# CONFIG_MPENTIUMII is not set
   38.93 -# CONFIG_MPENTIUMIII is not set
   38.94 -# CONFIG_MPENTIUMM is not set
   38.95 -CONFIG_MPENTIUM4=y
   38.96 -# CONFIG_MK6 is not set
   38.97 -# CONFIG_MK7 is not set
   38.98 -# CONFIG_MK8 is not set
   38.99 -# CONFIG_MCRUSOE is not set
  38.100 -# CONFIG_MEFFICEON is not set
  38.101 -# CONFIG_MWINCHIPC6 is not set
  38.102 -# CONFIG_MWINCHIP2 is not set
  38.103 -# CONFIG_MWINCHIP3D is not set
  38.104 -# CONFIG_MCYRIXIII is not set
  38.105 -# CONFIG_MVIAC3_2 is not set
  38.106 -# CONFIG_X86_GENERIC is not set
  38.107 -CONFIG_X86_CMPXCHG=y
  38.108 -CONFIG_X86_XADD=y
  38.109 -CONFIG_X86_L1_CACHE_SHIFT=7
  38.110 -CONFIG_RWSEM_XCHGADD_ALGORITHM=y
  38.111 -CONFIG_GENERIC_CALIBRATE_DELAY=y
  38.112 -CONFIG_X86_WP_WORKS_OK=y
  38.113 -CONFIG_X86_INVLPG=y
  38.114 -CONFIG_X86_BSWAP=y
  38.115 -CONFIG_X86_POPAD_OK=y
  38.116 -CONFIG_X86_GOOD_APIC=y
  38.117 -CONFIG_X86_INTEL_USERCOPY=y
  38.118 -CONFIG_X86_USE_PPRO_CHECKSUM=y
  38.119 -# CONFIG_HPET_TIMER is not set
  38.120 -# CONFIG_HPET_EMULATE_RTC is not set
  38.121 -# CONFIG_SMP is not set
  38.122 -CONFIG_PREEMPT=y
  38.123 -CONFIG_PREEMPT_BKL=y
  38.124 -CONFIG_MICROCODE=y
  38.125 -CONFIG_X86_CPUID=y
  38.126 -
  38.127 -#
  38.128 -# Firmware Drivers
  38.129 -#
  38.130 -# CONFIG_EDD is not set
  38.131 -CONFIG_NOHIGHMEM=y
  38.132 -# CONFIG_HIGHMEM4G is not set
  38.133 -CONFIG_MTRR=y
  38.134 -CONFIG_HAVE_DEC_LOCK=y
  38.135 -# CONFIG_REGPARM is not set
  38.136 -
  38.137 -#
  38.138 -# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
  38.139 -#
  38.140 -CONFIG_PCI=y
  38.141 -CONFIG_PCI_DIRECT=y
  38.142 -CONFIG_PCI_LEGACY_PROC=y
  38.143 -# CONFIG_PCI_NAMES is not set
  38.144 -CONFIG_ISA=y
  38.145 -# CONFIG_EISA is not set
  38.146 -# CONFIG_MCA is not set
  38.147 -# CONFIG_SCx200 is not set
  38.148 -
  38.149 -#
  38.150 -# PCCARD (PCMCIA/CardBus) support
  38.151 -#
  38.152 -# CONFIG_PCCARD is not set
  38.153 -
  38.154 -#
  38.155 -# PC-card bridges
  38.156 -#
  38.157 -CONFIG_PCMCIA_PROBE=y
  38.158 -
  38.159 -#
  38.160 -# PCI Hotplug Support
  38.161 -#
  38.162 -# CONFIG_HOTPLUG_PCI is not set
  38.163 -
  38.164 -#
  38.165 -# Kernel hacking
  38.166 -#
  38.167 -# CONFIG_DEBUG_KERNEL is not set
  38.168 -CONFIG_EARLY_PRINTK=y
  38.169 -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
  38.170 -# CONFIG_FRAME_POINTER is not set
  38.171 -# CONFIG_4KSTACKS is not set
  38.172 -CONFIG_GENERIC_HARDIRQS=y
  38.173 -CONFIG_GENERIC_IRQ_PROBE=y
  38.174 -CONFIG_X86_BIOS_REBOOT=y
  38.175 -CONFIG_PC=y
  38.176 -
  38.177 -#
  38.178 -# Executable file formats
  38.179 -#
  38.180 -CONFIG_BINFMT_ELF=y
  38.181 -# CONFIG_BINFMT_AOUT is not set
  38.182 -# CONFIG_BINFMT_MISC is not set
  38.183 -
  38.184 -#
  38.185 -# Device Drivers
  38.186 -#
  38.187 -
  38.188 -#
  38.189 -# Generic Driver Options
  38.190 -#
  38.191 -# CONFIG_STANDALONE is not set
  38.192 -CONFIG_PREVENT_FIRMWARE_BUILD=y
  38.193 -# CONFIG_FW_LOADER is not set
  38.194 -
  38.195 -#
  38.196 -# Memory Technology Devices (MTD)
  38.197 -#
  38.198 -# CONFIG_MTD is not set
  38.199 -
  38.200 -#
  38.201 -# Parallel port support
  38.202 -#
  38.203 -# CONFIG_PARPORT is not set
  38.204 -
  38.205 -#
  38.206 -# Plug and Play support
  38.207 -#
  38.208 -# CONFIG_PNP is not set
  38.209 -
  38.210 -#
  38.211 -# Block devices
  38.212 -#
  38.213 -CONFIG_BLK_DEV_FD=y
  38.214 -# CONFIG_BLK_DEV_XD is not set
  38.215 -# CONFIG_BLK_CPQ_DA is not set
  38.216 -CONFIG_BLK_CPQ_CISS_DA=y
  38.217 -# CONFIG_CISS_SCSI_TAPE is not set
  38.218 -# CONFIG_BLK_DEV_DAC960 is not set
  38.219 -# CONFIG_BLK_DEV_UMEM is not set
  38.220 -# CONFIG_BLK_DEV_COW_COMMON is not set
  38.221 -CONFIG_BLK_DEV_LOOP=y
  38.222 -# CONFIG_BLK_DEV_CRYPTOLOOP is not set
  38.223 -# CONFIG_BLK_DEV_NBD is not set
  38.224 -# CONFIG_BLK_DEV_SX8 is not set
  38.225 -CONFIG_BLK_DEV_RAM=y
  38.226 -CONFIG_BLK_DEV_RAM_COUNT=16
  38.227 -CONFIG_BLK_DEV_RAM_SIZE=4096
  38.228 -CONFIG_BLK_DEV_INITRD=y
  38.229 -CONFIG_INITRAMFS_SOURCE=""
  38.230 -# CONFIG_LBD is not set
  38.231 -# CONFIG_CDROM_PKTCDVD is not set
  38.232 -
  38.233 -#
  38.234 -# IO Schedulers
  38.235 -#
  38.236 -CONFIG_IOSCHED_NOOP=y
  38.237 -CONFIG_IOSCHED_AS=y
  38.238 -CONFIG_IOSCHED_DEADLINE=y
  38.239 -CONFIG_IOSCHED_CFQ=y
  38.240 -# CONFIG_ATA_OVER_ETH is not set
  38.241 -
  38.242 -#
  38.243 -# ATA/ATAPI/MFM/RLL support
  38.244 -#
  38.245 -CONFIG_IDE=y
  38.246 -CONFIG_BLK_DEV_IDE=y
  38.247 -
  38.248 -#
  38.249 -# Please see Documentation/ide.txt for help/info on IDE drives
  38.250 -#
  38.251 -# CONFIG_BLK_DEV_IDE_SATA is not set
  38.252 -# CONFIG_BLK_DEV_HD_IDE is not set
  38.253 -CONFIG_BLK_DEV_IDEDISK=y
  38.254 -# CONFIG_IDEDISK_MULTI_MODE is not set
  38.255 -CONFIG_BLK_DEV_IDECD=y
  38.256 -# CONFIG_BLK_DEV_IDETAPE is not set
  38.257 -# CONFIG_BLK_DEV_IDEFLOPPY is not set
  38.258 -# CONFIG_BLK_DEV_IDESCSI is not set
  38.259 -# CONFIG_IDE_TASK_IOCTL is not set
  38.260 -
  38.261 -#
  38.262 -# IDE chipset support/bugfixes
  38.263 -#
  38.264 -CONFIG_IDE_GENERIC=y
  38.265 -# CONFIG_BLK_DEV_CMD640 is not set
  38.266 -CONFIG_BLK_DEV_IDEPCI=y
  38.267 -# CONFIG_IDEPCI_SHARE_IRQ is not set
  38.268 -# CONFIG_BLK_DEV_OFFBOARD is not set
  38.269 -CONFIG_BLK_DEV_GENERIC=y
  38.270 -# CONFIG_BLK_DEV_OPTI621 is not set
  38.271 -# CONFIG_BLK_DEV_RZ1000 is not set
  38.272 -CONFIG_BLK_DEV_IDEDMA_PCI=y
  38.273 -# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
  38.274 -CONFIG_IDEDMA_PCI_AUTO=y
  38.275 -# CONFIG_IDEDMA_ONLYDISK is not set
  38.276 -# CONFIG_BLK_DEV_AEC62XX is not set
  38.277 -# CONFIG_BLK_DEV_ALI15X3 is not set
  38.278 -# CONFIG_BLK_DEV_AMD74XX is not set
  38.279 -# CONFIG_BLK_DEV_ATIIXP is not set
  38.280 -# CONFIG_BLK_DEV_CMD64X is not set
  38.281 -# CONFIG_BLK_DEV_TRIFLEX is not set
  38.282 -# CONFIG_BLK_DEV_CY82C693 is not set
  38.283 -# CONFIG_BLK_DEV_CS5520 is not set
  38.284 -# CONFIG_BLK_DEV_CS5530 is not set
  38.285 -# CONFIG_BLK_DEV_HPT34X is not set
  38.286 -# CONFIG_BLK_DEV_HPT366 is not set
  38.287 -# CONFIG_BLK_DEV_SC1200 is not set
  38.288 -CONFIG_BLK_DEV_PIIX=y
  38.289 -# CONFIG_BLK_DEV_NS87415 is not set
  38.290 -# CONFIG_BLK_DEV_PDC202XX_OLD is not set
  38.291 -# CONFIG_BLK_DEV_PDC202XX_NEW is not set
  38.292 -CONFIG_BLK_DEV_SVWKS=y
  38.293 -# CONFIG_BLK_DEV_SIIMAGE is not set
  38.294 -# CONFIG_BLK_DEV_SIS5513 is not set
  38.295 -# CONFIG_BLK_DEV_SLC90E66 is not set
  38.296 -# CONFIG_BLK_DEV_TRM290 is not set
  38.297 -# CONFIG_BLK_DEV_VIA82CXXX is not set
  38.298 -# CONFIG_IDE_ARM is not set
  38.299 -# CONFIG_IDE_CHIPSETS is not set
  38.300 -CONFIG_BLK_DEV_IDEDMA=y
  38.301 -# CONFIG_IDEDMA_IVB is not set
  38.302 -CONFIG_IDEDMA_AUTO=y
  38.303 -# CONFIG_BLK_DEV_HD is not set
  38.304 -
  38.305 -#
  38.306 -# SCSI device support
  38.307 -#
  38.308 -CONFIG_SCSI=y
  38.309 -CONFIG_SCSI_PROC_FS=y
  38.310 -
  38.311 -#
  38.312 -# SCSI support type (disk, tape, CD-ROM)
  38.313 -#
  38.314 -CONFIG_BLK_DEV_SD=y
  38.315 -# CONFIG_CHR_DEV_ST is not set
  38.316 -# CONFIG_CHR_DEV_OSST is not set
  38.317 -# CONFIG_BLK_DEV_SR is not set
  38.318 -# CONFIG_CHR_DEV_SG is not set
  38.319 -
  38.320 -#
  38.321 -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
  38.322 -#
  38.323 -# CONFIG_SCSI_MULTI_LUN is not set
  38.324 -# CONFIG_SCSI_CONSTANTS is not set
  38.325 -# CONFIG_SCSI_LOGGING is not set
  38.326 -
  38.327 -#
  38.328 -# SCSI Transport Attributes
  38.329 -#
  38.330 -# CONFIG_SCSI_SPI_ATTRS is not set
  38.331 -# CONFIG_SCSI_FC_ATTRS is not set
  38.332 -# CONFIG_SCSI_ISCSI_ATTRS is not set
  38.333 -
  38.334 -#
  38.335 -# SCSI low-level drivers
  38.336 -#
  38.337 -CONFIG_BLK_DEV_3W_XXXX_RAID=y
  38.338 -# CONFIG_SCSI_3W_9XXX is not set
  38.339 -# CONFIG_SCSI_7000FASST is not set
  38.340 -# CONFIG_SCSI_ACARD is not set
  38.341 -# CONFIG_SCSI_AHA152X is not set
  38.342 -# CONFIG_SCSI_AHA1542 is not set
  38.343 -CONFIG_SCSI_AACRAID=y
  38.344 -CONFIG_SCSI_AIC7XXX=y
  38.345 -CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
  38.346 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000
  38.347 -CONFIG_AIC7XXX_DEBUG_ENABLE=y
  38.348 -CONFIG_AIC7XXX_DEBUG_MASK=0
  38.349 -CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
  38.350 -# CONFIG_SCSI_AIC7XXX_OLD is not set
  38.351 -CONFIG_SCSI_AIC79XX=y
  38.352 -CONFIG_AIC79XX_CMDS_PER_DEVICE=32
  38.353 -CONFIG_AIC79XX_RESET_DELAY_MS=15000
  38.354 -# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
  38.355 -CONFIG_AIC79XX_DEBUG_ENABLE=y
  38.356 -CONFIG_AIC79XX_DEBUG_MASK=0
  38.357 -CONFIG_AIC79XX_REG_PRETTY_PRINT=y
  38.358 -# CONFIG_SCSI_DPT_I2O is not set
  38.359 -# CONFIG_SCSI_ADVANSYS is not set
  38.360 -# CONFIG_SCSI_IN2000 is not set
  38.361 -# CONFIG_MEGARAID_NEWGEN is not set
  38.362 -# CONFIG_MEGARAID_LEGACY is not set
  38.363 -CONFIG_SCSI_SATA=y
  38.364 -# CONFIG_SCSI_SATA_AHCI is not set
  38.365 -# CONFIG_SCSI_SATA_SVW is not set
  38.366 -CONFIG_SCSI_ATA_PIIX=y
  38.367 -# CONFIG_SCSI_SATA_NV is not set
  38.368 -CONFIG_SCSI_SATA_PROMISE=y
  38.369 -# CONFIG_SCSI_SATA_QSTOR is not set
  38.370 -CONFIG_SCSI_SATA_SX4=y
  38.371 -CONFIG_SCSI_SATA_SIL=y
  38.372 -# CONFIG_SCSI_SATA_SIS is not set
  38.373 -# CONFIG_SCSI_SATA_ULI is not set
  38.374 -# CONFIG_SCSI_SATA_VIA is not set
  38.375 -# CONFIG_SCSI_SATA_VITESSE is not set
  38.376 -CONFIG_SCSI_BUSLOGIC=y
  38.377 -# CONFIG_SCSI_OMIT_FLASHPOINT is not set
  38.378 -# CONFIG_SCSI_CPQFCTS is not set
  38.379 -# CONFIG_SCSI_DMX3191D is not set
  38.380 -# CONFIG_SCSI_DTC3280 is not set
  38.381 -# CONFIG_SCSI_EATA is not set
  38.382 -# CONFIG_SCSI_EATA_PIO is not set
  38.383 -# CONFIG_SCSI_FUTURE_DOMAIN is not set
  38.384 -# CONFIG_SCSI_GDTH is not set
  38.385 -# CONFIG_SCSI_GENERIC_NCR5380 is not set
  38.386 -# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
  38.387 -# CONFIG_SCSI_IPS is not set
  38.388 -# CONFIG_SCSI_INITIO is not set
  38.389 -# CONFIG_SCSI_INIA100 is not set
  38.390 -# CONFIG_SCSI_NCR53C406A is not set
  38.391 -# CONFIG_SCSI_SYM53C8XX_2 is not set
  38.392 -# CONFIG_SCSI_IPR is not set
  38.393 -# CONFIG_SCSI_PAS16 is not set
  38.394 -# CONFIG_SCSI_PCI2000 is not set
  38.395 -# CONFIG_SCSI_PCI2220I is not set
  38.396 -# CONFIG_SCSI_PSI240I is not set
  38.397 -# CONFIG_SCSI_QLOGIC_FAS is not set
  38.398 -# CONFIG_SCSI_QLOGIC_ISP is not set
  38.399 -# CONFIG_SCSI_QLOGIC_FC is not set
  38.400 -# CONFIG_SCSI_QLOGIC_1280 is not set
  38.401 -CONFIG_SCSI_QLA2XXX=y
  38.402 -# CONFIG_SCSI_QLA21XX is not set
  38.403 -# CONFIG_SCSI_QLA22XX is not set
  38.404 -# CONFIG_SCSI_QLA2300 is not set
  38.405 -# CONFIG_SCSI_QLA2322 is not set
  38.406 -# CONFIG_SCSI_QLA6312 is not set
  38.407 -# CONFIG_SCSI_SEAGATE is not set
  38.408 -# CONFIG_SCSI_SYM53C416 is not set
  38.409 -# CONFIG_SCSI_DC395x is not set
  38.410 -# CONFIG_SCSI_DC390T is not set
  38.411 -# CONFIG_SCSI_T128 is not set
  38.412 -# CONFIG_SCSI_U14_34F is not set
  38.413 -# CONFIG_SCSI_ULTRASTOR is not set
  38.414 -# CONFIG_SCSI_NSP32 is not set
  38.415 -# CONFIG_SCSI_DEBUG is not set
  38.416 -
  38.417 -#
  38.418 -# Old CD-ROM drivers (not SCSI, not IDE)
  38.419 -#
  38.420 -# CONFIG_CD_NO_IDESCSI is not set
  38.421 -
  38.422 -#
  38.423 -# Multi-device support (RAID and LVM)
  38.424 -#
  38.425 -CONFIG_MD=y
  38.426 -CONFIG_BLK_DEV_MD=y
  38.427 -# CONFIG_MD_LINEAR is not set
  38.428 -CONFIG_MD_RAID0=y
  38.429 -CONFIG_MD_RAID1=y
  38.430 -# CONFIG_MD_RAID10 is not set
  38.431 -CONFIG_MD_RAID5=y
  38.432 -# CONFIG_MD_RAID6 is not set
  38.433 -# CONFIG_MD_MULTIPATH is not set
  38.434 -# CONFIG_MD_FAULTY is not set
  38.435 -CONFIG_BLK_DEV_DM=y
  38.436 -# CONFIG_DM_CRYPT is not set
  38.437 -CONFIG_DM_SNAPSHOT=y
  38.438 -CONFIG_DM_MIRROR=y
  38.439 -# CONFIG_DM_ZERO is not set
  38.440 -
  38.441 -#
  38.442 -# Fusion MPT device support
  38.443 -#
  38.444 -# CONFIG_FUSION is not set
  38.445 -
  38.446 -#
  38.447 -# IEEE 1394 (FireWire) support
  38.448 -#
  38.449 -# CONFIG_IEEE1394 is not set
  38.450 -
  38.451 -#
  38.452 -# I2O device support
  38.453 -#
  38.454 -# CONFIG_I2O is not set
  38.455 -
  38.456 -#
  38.457 -# Networking support
  38.458 -#
  38.459 -CONFIG_NET=y
  38.460 -
  38.461 -#
  38.462 -# Networking options
  38.463 -#
  38.464 -CONFIG_PACKET=y
  38.465 -# CONFIG_PACKET_MMAP is not set
  38.466 -# CONFIG_NETLINK_DEV is not set
  38.467 -CONFIG_UNIX=y
  38.468 -# CONFIG_NET_KEY is not set
  38.469 -CONFIG_INET=y
  38.470 -# CONFIG_IP_MULTICAST is not set
  38.471 -# CONFIG_IP_ADVANCED_ROUTER is not set
  38.472 -CONFIG_IP_PNP=y
  38.473 -CONFIG_IP_PNP_DHCP=y
  38.474 -# CONFIG_IP_PNP_BOOTP is not set
  38.475 -# CONFIG_IP_PNP_RARP is not set
  38.476 -# CONFIG_NET_IPIP is not set
  38.477 -# CONFIG_NET_IPGRE is not set
  38.478 -# CONFIG_ARPD is not set
  38.479 -# CONFIG_SYN_COOKIES is not set
  38.480 -# CONFIG_INET_AH is not set
  38.481 -# CONFIG_INET_ESP is not set
  38.482 -# CONFIG_INET_IPCOMP is not set
  38.483 -# CONFIG_INET_TUNNEL is not set
  38.484 -CONFIG_IP_TCPDIAG=y
  38.485 -# CONFIG_IP_TCPDIAG_IPV6 is not set
  38.486 -
  38.487 -#
  38.488 -# IP: Virtual Server Configuration
  38.489 -#
  38.490 -# CONFIG_IP_VS is not set
  38.491 -# CONFIG_IPV6 is not set
  38.492 -CONFIG_NETFILTER=y
  38.493 -# CONFIG_NETFILTER_DEBUG is not set
  38.494 -CONFIG_BRIDGE_NETFILTER=y
  38.495 -
  38.496 -#
  38.497 -# IP: Netfilter Configuration
  38.498 -#
  38.499 -CONFIG_IP_NF_CONNTRACK=m
  38.500 -CONFIG_IP_NF_CT_ACCT=y
  38.501 -# CONFIG_IP_NF_CONNTRACK_MARK is not set
  38.502 -# CONFIG_IP_NF_CT_PROTO_SCTP is not set
  38.503 -CONFIG_IP_NF_FTP=m
  38.504 -# CONFIG_IP_NF_IRC is not set
  38.505 -# CONFIG_IP_NF_TFTP is not set
  38.506 -# CONFIG_IP_NF_AMANDA is not set
  38.507 -# CONFIG_IP_NF_QUEUE is not set
  38.508 -CONFIG_IP_NF_IPTABLES=m
  38.509 -# CONFIG_IP_NF_MATCH_LIMIT is not set
  38.510 -CONFIG_IP_NF_MATCH_IPRANGE=m
  38.511 -# CONFIG_IP_NF_MATCH_MAC is not set
  38.512 -# CONFIG_IP_NF_MATCH_PKTTYPE is not set
  38.513 -# CONFIG_IP_NF_MATCH_MARK is not set
  38.514 -# CONFIG_IP_NF_MATCH_MULTIPORT is not set
  38.515 -# CONFIG_IP_NF_MATCH_TOS is not set
  38.516 -# CONFIG_IP_NF_MATCH_RECENT is not set
  38.517 -# CONFIG_IP_NF_MATCH_ECN is not set
  38.518 -# CONFIG_IP_NF_MATCH_DSCP is not set
  38.519 -# CONFIG_IP_NF_MATCH_AH_ESP is not set
  38.520 -# CONFIG_IP_NF_MATCH_LENGTH is not set
  38.521 -# CONFIG_IP_NF_MATCH_TTL is not set
  38.522 -# CONFIG_IP_NF_MATCH_TCPMSS is not set
  38.523 -# CONFIG_IP_NF_MATCH_HELPER is not set
  38.524 -# CONFIG_IP_NF_MATCH_STATE is not set
  38.525 -# CONFIG_IP_NF_MATCH_CONNTRACK is not set
  38.526 -# CONFIG_IP_NF_MATCH_OWNER is not set
  38.527 -# CONFIG_IP_NF_MATCH_PHYSDEV is not set
  38.528 -# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
  38.529 -# CONFIG_IP_NF_MATCH_REALM is not set
  38.530 -# CONFIG_IP_NF_MATCH_SCTP is not set
  38.531 -# CONFIG_IP_NF_MATCH_COMMENT is not set
  38.532 -# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
  38.533 -CONFIG_IP_NF_FILTER=m
  38.534 -CONFIG_IP_NF_TARGET_REJECT=m
  38.535 -# CONFIG_IP_NF_TARGET_LOG is not set
  38.536 -# CONFIG_IP_NF_TARGET_ULOG is not set
  38.537 -# CONFIG_IP_NF_TARGET_TCPMSS is not set
  38.538 -CONFIG_IP_NF_NAT=m
  38.539 -CONFIG_IP_NF_NAT_NEEDED=y
  38.540 -CONFIG_IP_NF_TARGET_MASQUERADE=m
  38.541 -# CONFIG_IP_NF_TARGET_REDIRECT is not set
  38.542 -# CONFIG_IP_NF_TARGET_NETMAP is not set
  38.543 -# CONFIG_IP_NF_TARGET_SAME is not set
  38.544 -# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
  38.545 -CONFIG_IP_NF_NAT_FTP=m
  38.546 -# CONFIG_IP_NF_MANGLE is not set
  38.547 -# CONFIG_IP_NF_RAW is not set
  38.548 -# CONFIG_IP_NF_ARPTABLES is not set
  38.549 -
  38.550 -#
  38.551 -# Bridge: Netfilter Configuration
  38.552 -#
  38.553 -# CONFIG_BRIDGE_NF_EBTABLES is not set
  38.554 -
  38.555 -#
  38.556 -# SCTP Configuration (EXPERIMENTAL)
  38.557 -#
  38.558 -# CONFIG_IP_SCTP is not set
  38.559 -# CONFIG_ATM is not set
  38.560 -CONFIG_BRIDGE=y
  38.561 -# CONFIG_VLAN_8021Q is not set
  38.562 -# CONFIG_DECNET is not set
  38.563 -# CONFIG_LLC2 is not set
  38.564 -# CONFIG_IPX is not set
  38.565 -# CONFIG_ATALK is not set
  38.566 -# CONFIG_X25 is not set
  38.567 -# CONFIG_LAPB is not set
  38.568 -# CONFIG_NET_DIVERT is not set
  38.569 -# CONFIG_ECONET is not set
  38.570 -# CONFIG_WAN_ROUTER is not set
  38.571 -
  38.572 -#
  38.573 -# QoS and/or fair queueing
  38.574 -#
  38.575 -# CONFIG_NET_SCHED is not set
  38.576 -# CONFIG_NET_CLS_ROUTE is not set
  38.577 -
  38.578 -#
  38.579 -# Network testing
  38.580 -#
  38.581 -# CONFIG_NET_PKTGEN is not set
  38.582 -# CONFIG_NETPOLL is not set
  38.583 -# CONFIG_NET_POLL_CONTROLLER is not set
  38.584 -# CONFIG_HAMRADIO is not set
  38.585 -# CONFIG_IRDA is not set
  38.586 -# CONFIG_BT is not set
  38.587 -CONFIG_NETDEVICES=y
  38.588 -# CONFIG_DUMMY is not set
  38.589 -# CONFIG_BONDING is not set
  38.590 -# CONFIG_EQUALIZER is not set
  38.591 -# CONFIG_TUN is not set
  38.592 -
  38.593 -#
  38.594 -# ARCnet devices
  38.595 -#
  38.596 -# CONFIG_ARCNET is not set
  38.597 -
  38.598 -#
  38.599 -# Ethernet (10 or 100Mbit)
  38.600 -#
  38.601 -CONFIG_NET_ETHERNET=y
  38.602 -CONFIG_MII=y
  38.603 -# CONFIG_HAPPYMEAL is not set
  38.604 -# CONFIG_SUNGEM is not set
  38.605 -CONFIG_NET_VENDOR_3COM=y
  38.606 -# CONFIG_EL1 is not set
  38.607 -# CONFIG_EL2 is not set
  38.608 -# CONFIG_ELPLUS is not set
  38.609 -# CONFIG_EL16 is not set
  38.610 -# CONFIG_EL3 is not set
  38.611 -# CONFIG_3C515 is not set
  38.612 -CONFIG_VORTEX=y
  38.613 -# CONFIG_TYPHOON is not set
  38.614 -# CONFIG_LANCE is not set
  38.615 -# CONFIG_NET_VENDOR_SMC is not set
  38.616 -# CONFIG_NET_VENDOR_RACAL is not set
  38.617 -
  38.618 -#
  38.619 -# Tulip family network device support
  38.620 -#
  38.621 -CONFIG_NET_TULIP=y
  38.622 -# CONFIG_DE2104X is not set
  38.623 -CONFIG_TULIP=y
  38.624 -# CONFIG_TULIP_MWI is not set
  38.625 -# CONFIG_TULIP_MMIO is not set
  38.626 -# CONFIG_TULIP_NAPI is not set
  38.627 -# CONFIG_DE4X5 is not set
  38.628 -# CONFIG_WINBOND_840 is not set
  38.629 -# CONFIG_DM9102 is not set
  38.630 -# CONFIG_AT1700 is not set
  38.631 -# CONFIG_DEPCA is not set
  38.632 -# CONFIG_HP100 is not set
  38.633 -# CONFIG_NET_ISA is not set
  38.634 -CONFIG_NET_PCI=y
  38.635 -CONFIG_PCNET32=y
  38.636 -# CONFIG_AMD8111_ETH is not set
  38.637 -# CONFIG_ADAPTEC_STARFIRE is not set
  38.638 -# CONFIG_AC3200 is not set
  38.639 -# CONFIG_APRICOT is not set
  38.640 -# CONFIG_B44 is not set
  38.641 -# CONFIG_FORCEDETH is not set
  38.642 -# CONFIG_CS89x0 is not set
  38.643 -# CONFIG_DGRS is not set
  38.644 -# CONFIG_EEPRO100 is not set
  38.645 -CONFIG_E100=y
  38.646 -# CONFIG_E100_NAPI is not set
  38.647 -# CONFIG_FEALNX is not set
  38.648 -# CONFIG_NATSEMI is not set
  38.649 -CONFIG_NE2K_PCI=y
  38.650 -# CONFIG_8139CP is not set
  38.651 -CONFIG_8139TOO=y
  38.652 -CONFIG_8139TOO_PIO=y
  38.653 -# CONFIG_8139TOO_TUNE_TWISTER is not set
  38.654 -# CONFIG_8139TOO_8129 is not set
  38.655 -# CONFIG_8139_OLD_RX_RESET is not set
  38.656 -# CONFIG_SIS900 is not set
  38.657 -# CONFIG_EPIC100 is not set
  38.658 -# CONFIG_SUNDANCE is not set
  38.659 -# CONFIG_TLAN is not set
  38.660 -CONFIG_VIA_RHINE=y
  38.661 -# CONFIG_VIA_RHINE_MMIO is not set
  38.662 -# CONFIG_NET_POCKET is not set
  38.663 -
  38.664 -#
  38.665 -# Ethernet (1000 Mbit)
  38.666 -#
  38.667 -CONFIG_ACENIC=y
  38.668 -# CONFIG_ACENIC_OMIT_TIGON_I is not set
  38.669 -# CONFIG_DL2K is not set
  38.670 -CONFIG_E1000=y
  38.671 -# CONFIG_E1000_NAPI is not set
  38.672 -# CONFIG_NS83820 is not set
  38.673 -# CONFIG_HAMACHI is not set
  38.674 -# CONFIG_YELLOWFIN is not set
  38.675 -# CONFIG_R8169 is not set
  38.676 -# CONFIG_SK98LIN is not set
  38.677 -# CONFIG_VIA_VELOCITY is not set
  38.678 -CONFIG_TIGON3=y
  38.679 -
  38.680 -#
  38.681 -# Ethernet (10000 Mbit)
  38.682 -#
  38.683 -# CONFIG_IXGB is not set
  38.684 -# CONFIG_S2IO is not set
  38.685 -
  38.686 -#
  38.687 -# Token Ring devices
  38.688 -#
  38.689 -# CONFIG_TR is not set
  38.690 -
  38.691 -#
  38.692 -# Wireless LAN (non-hamradio)
  38.693 -#
  38.694 -# CONFIG_NET_RADIO is not set
  38.695 -
  38.696 -#
  38.697 -# Wan interfaces
  38.698 -#
  38.699 -# CONFIG_WAN is not set
  38.700 -# CONFIG_FDDI is not set
  38.701 -# CONFIG_HIPPI is not set
  38.702 -# CONFIG_PPP is not set
  38.703 -# CONFIG_SLIP is not set
  38.704 -# CONFIG_NET_FC is not set
  38.705 -# CONFIG_SHAPER is not set
  38.706 -# CONFIG_NETCONSOLE is not set
  38.707 -
  38.708 -#
  38.709 -# ISDN subsystem
  38.710 -#
  38.711 -# CONFIG_ISDN is not set
  38.712 -
  38.713 -#
  38.714 -# Telephony Support
  38.715 -#
  38.716 -# CONFIG_PHONE is not set
  38.717 -
  38.718 -#
  38.719 -# Input device support
  38.720 -#
  38.721 -CONFIG_INPUT=y
  38.722 -
  38.723 -#
  38.724 -# Userland interfaces
  38.725 -#
  38.726 -CONFIG_INPUT_MOUSEDEV=y
  38.727 -CONFIG_INPUT_MOUSEDEV_PSAUX=y
  38.728 -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
  38.729 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
  38.730 -# CONFIG_INPUT_JOYDEV is not set
  38.731 -# CONFIG_INPUT_TSDEV is not set
  38.732 -# CONFIG_INPUT_EVDEV is not set
  38.733 -# CONFIG_INPUT_EVBUG is not set
  38.734 -
  38.735 -#
  38.736 -# Input I/O drivers
  38.737 -#
  38.738 -# CONFIG_GAMEPORT is not set
  38.739 -CONFIG_SOUND_GAMEPORT=y
  38.740 -CONFIG_SERIO=y
  38.741 -CONFIG_SERIO_I8042=y
  38.742 -CONFIG_SERIO_SERPORT=y
  38.743 -# CONFIG_SERIO_CT82C710 is not set
  38.744 -# CONFIG_SERIO_PCIPS2 is not set
  38.745 -CONFIG_SERIO_LIBPS2=y
  38.746 -# CONFIG_SERIO_RAW is not set
  38.747 -
  38.748 -#
  38.749 -# Input Device Drivers
  38.750 -#
  38.751 -CONFIG_INPUT_KEYBOARD=y
  38.752 -CONFIG_KEYBOARD_ATKBD=y
  38.753 -# CONFIG_KEYBOARD_SUNKBD is not set
  38.754 -# CONFIG_KEYBOARD_LKKBD is not set
  38.755 -# CONFIG_KEYBOARD_XTKBD is not set
  38.756 -# CONFIG_KEYBOARD_NEWTON is not set
  38.757 -CONFIG_INPUT_MOUSE=y
  38.758 -CONFIG_MOUSE_PS2=y
  38.759 -# CONFIG_MOUSE_SERIAL is not set
  38.760 -# CONFIG_MOUSE_INPORT is not set
  38.761 -# CONFIG_MOUSE_LOGIBM is not set
  38.762 -# CONFIG_MOUSE_PC110PAD is not set
  38.763 -# CONFIG_MOUSE_VSXXXAA is not set
  38.764 -# CONFIG_INPUT_JOYSTICK is not set
  38.765 -# CONFIG_INPUT_TOUCHSCREEN is not set
  38.766 -# CONFIG_INPUT_MISC is not set
  38.767 -
  38.768 -#
  38.769 -# Character devices
  38.770 -#
  38.771 -CONFIG_VT=y
  38.772 -CONFIG_VT_CONSOLE=y
  38.773 -CONFIG_HW_CONSOLE=y
  38.774 -# CONFIG_SERIAL_NONSTANDARD is not set
  38.775 -
  38.776 -#
  38.777 -# Serial drivers
  38.778 -#
  38.779 -# CONFIG_SERIAL_8250 is not set
  38.780 -
  38.781 -#
  38.782 -# Non-8250 serial port support
  38.783 -#
  38.784 -CONFIG_UNIX98_PTYS=y
  38.785 -CONFIG_LEGACY_PTYS=y
  38.786 -CONFIG_LEGACY_PTY_COUNT=256
  38.787 -
  38.788 -#
  38.789 -# IPMI
  38.790 -#
  38.791 -# CONFIG_IPMI_HANDLER is not set
  38.792 -
  38.793 -#
  38.794 -# Watchdog Cards
  38.795 -#
  38.796 -# CONFIG_WATCHDOG is not set
  38.797 -# CONFIG_HW_RANDOM is not set
  38.798 -# CONFIG_NVRAM is not set
  38.799 -# CONFIG_RTC is not set
  38.800 -# CONFIG_GEN_RTC is not set
  38.801 -# CONFIG_DTLK is not set
  38.802 -# CONFIG_R3964 is not set
  38.803 -# CONFIG_APPLICOM is not set
  38.804 -# CONFIG_SONYPI is not set
  38.805 -
  38.806 -#
  38.807 -# Ftape, the floppy tape device driver
  38.808 -#
  38.809 -# CONFIG_FTAPE is not set
  38.810 -CONFIG_AGP=m
  38.811 -CONFIG_AGP_ALI=m
  38.812 -CONFIG_AGP_ATI=m
  38.813 -CONFIG_AGP_AMD=m
  38.814 -CONFIG_AGP_AMD64=m
  38.815 -CONFIG_AGP_INTEL=m
  38.816 -CONFIG_AGP_INTEL_MCH=m
  38.817 -CONFIG_AGP_NVIDIA=m
  38.818 -CONFIG_AGP_SIS=m
  38.819 -CONFIG_AGP_SWORKS=m
  38.820 -CONFIG_AGP_VIA=m
  38.821 -# CONFIG_AGP_EFFICEON is not set
  38.822 -CONFIG_DRM=m
  38.823 -CONFIG_DRM_TDFX=m
  38.824 -# CONFIG_DRM_GAMMA is not set
  38.825 -CONFIG_DRM_R128=m
  38.826 -CONFIG_DRM_RADEON=m
  38.827 -CONFIG_DRM_I810=m
  38.828 -CONFIG_DRM_I830=m
  38.829 -CONFIG_DRM_I915=m
  38.830 -CONFIG_DRM_MGA=m
  38.831 -CONFIG_DRM_SIS=m
  38.832 -# CONFIG_MWAVE is not set
  38.833 -# CONFIG_RAW_DRIVER is not set
  38.834 -# CONFIG_HANGCHECK_TIMER is not set
  38.835 -
  38.836 -#
  38.837 -# I2C support
  38.838 -#
  38.839 -# CONFIG_I2C is not set
  38.840 -
  38.841 -#
  38.842 -# Dallas's 1-wire bus
  38.843 -#
  38.844 -# CONFIG_W1 is not set
  38.845 -
  38.846 -#
  38.847 -# Misc devices
  38.848 -#
  38.849 -# CONFIG_IBM_ASM is not set
  38.850 -
  38.851 -#
  38.852 -# Multimedia devices
  38.853 -#
  38.854 -# CONFIG_VIDEO_DEV is not set
  38.855 -
  38.856 -#
  38.857 -# Digital Video Broadcasting Devices
  38.858 -#
  38.859 -# CONFIG_DVB is not set
  38.860 -
  38.861 -#
  38.862 -# Graphics support
  38.863 -#
  38.864 -# CONFIG_FB is not set
  38.865 -# CONFIG_VIDEO_SELECT is not set
  38.866 -
  38.867 -#
  38.868 -# Console display driver support
  38.869 -#
  38.870 -CONFIG_VGA_CONSOLE=y
  38.871 -# CONFIG_MDA_CONSOLE is not set
  38.872 -CONFIG_DUMMY_CONSOLE=y
  38.873 -
  38.874 -#
  38.875 -# Sound
  38.876 -#
  38.877 -# CONFIG_SOUND is not set
  38.878 -
  38.879 -#
  38.880 -# USB support
  38.881 -#
  38.882 -# CONFIG_USB is not set
  38.883 -CONFIG_USB_ARCH_HAS_HCD=y
  38.884 -CONFIG_USB_ARCH_HAS_OHCI=y
  38.885 -
  38.886 -#
  38.887 -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
  38.888 -#
  38.889 -
  38.890 -#
  38.891 -# USB Gadget Support
  38.892 -#
  38.893 -# CONFIG_USB_GADGET is not set
  38.894 -
  38.895 -#
  38.896 -# MMC/SD Card support
  38.897 -#
  38.898 -# CONFIG_MMC is not set
  38.899 -
  38.900 -#
  38.901 -# InfiniBand support
  38.902 -#
  38.903 -# CONFIG_INFINIBAND is not set
  38.904 -
  38.905 -#
  38.906 -# File systems
  38.907 -#
  38.908 -CONFIG_EXT2_FS=y
  38.909 -# CONFIG_EXT2_FS_XATTR is not set
  38.910 -CONFIG_EXT3_FS=y
  38.911 -CONFIG_EXT3_FS_XATTR=y
  38.912 -# CONFIG_EXT3_FS_POSIX_ACL is not set
  38.913 -# CONFIG_EXT3_FS_SECURITY is not set
  38.914 -CONFIG_JBD=y
  38.915 -# CONFIG_JBD_DEBUG is not set
  38.916 -CONFIG_FS_MBCACHE=y
  38.917 -CONFIG_REISERFS_FS=y
  38.918 -# CONFIG_REISERFS_CHECK is not set
  38.919 -# CONFIG_REISERFS_PROC_INFO is not set
  38.920 -# CONFIG_REISERFS_FS_XATTR is not set
  38.921 -# CONFIG_JFS_FS is not set
  38.922 -
  38.923 -#
  38.924 -# XFS support
  38.925 -#
  38.926 -# CONFIG_XFS_FS is not set
  38.927 -# CONFIG_MINIX_FS is not set
  38.928 -# CONFIG_ROMFS_FS is not set
  38.929 -# CONFIG_QUOTA is not set
  38.930 -CONFIG_DNOTIFY=y
  38.931 -# CONFIG_AUTOFS_FS is not set
  38.932 -# CONFIG_AUTOFS4_FS is not set
  38.933 -
  38.934 -#
  38.935 -# CD-ROM/DVD Filesystems
  38.936 -#
  38.937 -CONFIG_ISO9660_FS=y
  38.938 -CONFIG_JOLIET=y
  38.939 -CONFIG_ZISOFS=y
  38.940 -CONFIG_ZISOFS_FS=y
  38.941 -# CONFIG_UDF_FS is not set
  38.942 -
  38.943 -#
  38.944 -# DOS/FAT/NT Filesystems
  38.945 -#
  38.946 -CONFIG_FAT_FS=m
  38.947 -CONFIG_MSDOS_FS=m
  38.948 -CONFIG_VFAT_FS=m
  38.949 -CONFIG_FAT_DEFAULT_CODEPAGE=437
  38.950 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
  38.951 -# CONFIG_NTFS_FS is not set
  38.952 -
  38.953 -#
  38.954 -# Pseudo filesystems
  38.955 -#
  38.956 -CONFIG_PROC_FS=y
  38.957 -CONFIG_PROC_KCORE=y
  38.958 -CONFIG_SYSFS=y
  38.959 -# CONFIG_DEVFS_FS is not set
  38.960 -# CONFIG_DEVPTS_FS_XATTR is not set
  38.961 -CONFIG_TMPFS=y
  38.962 -# CONFIG_TMPFS_XATTR is not set
  38.963 -# CONFIG_HUGETLBFS is not set
  38.964 -# CONFIG_HUGETLB_PAGE is not set
  38.965 -CONFIG_RAMFS=y
  38.966 -
  38.967 -#
  38.968 -# Miscellaneous filesystems
  38.969 -#
  38.970 -# CONFIG_ADFS_FS is not set
  38.971 -# CONFIG_AFFS_FS is not set
  38.972 -# CONFIG_HFS_FS is not set
  38.973 -# CONFIG_HFSPLUS_FS is not set
  38.974 -# CONFIG_BEFS_FS is not set
  38.975 -# CONFIG_BFS_FS is not set
  38.976 -# CONFIG_EFS_FS is not set
  38.977 -# CONFIG_CRAMFS is not set
  38.978 -# CONFIG_VXFS_FS is not set
  38.979 -# CONFIG_HPFS_FS is not set
  38.980 -# CONFIG_QNX4FS_FS is not set
  38.981 -# CONFIG_SYSV_FS is not set
  38.982 -# CONFIG_UFS_FS is not set
  38.983 -
  38.984 -#
  38.985 -# Network File Systems
  38.986 -#
  38.987 -CONFIG_NFS_FS=y
  38.988 -CONFIG_NFS_V3=y
  38.989 -# CONFIG_NFS_V4 is not set
  38.990 -# CONFIG_NFS_DIRECTIO is not set
  38.991 -CONFIG_NFSD=m
  38.992 -CONFIG_NFSD_V3=y
  38.993 -# CONFIG_NFSD_V4 is not set
  38.994 -CONFIG_NFSD_TCP=y
  38.995 -CONFIG_ROOT_NFS=y
  38.996 -CONFIG_LOCKD=y
  38.997 -CONFIG_LOCKD_V4=y
  38.998 -CONFIG_EXPORTFS=m
  38.999 -CONFIG_SUNRPC=y
 38.1000 -# CONFIG_RPCSEC_GSS_KRB5 is not set
 38.1001 -# CONFIG_RPCSEC_GSS_SPKM3 is not set
 38.1002 -# CONFIG_SMB_FS is not set
 38.1003 -# CONFIG_CIFS is not set
 38.1004 -# CONFIG_NCP_FS is not set
 38.1005 -# CONFIG_CODA_FS is not set
 38.1006 -# CONFIG_AFS_FS is not set
 38.1007 -
 38.1008 -#
 38.1009 -# Partition Types
 38.1010 -#
 38.1011 -# CONFIG_PARTITION_ADVANCED is not set
 38.1012 -CONFIG_MSDOS_PARTITION=y
 38.1013 -
 38.1014 -#
 38.1015 -# Native Language Support
 38.1016 -#
 38.1017 -CONFIG_NLS=y
 38.1018 -CONFIG_NLS_DEFAULT="iso8859-1"
 38.1019 -CONFIG_NLS_CODEPAGE_437=y
 38.1020 -# CONFIG_NLS_CODEPAGE_737 is not set
 38.1021 -# CONFIG_NLS_CODEPAGE_775 is not set
 38.1022 -# CONFIG_NLS_CODEPAGE_850 is not set
 38.1023 -# CONFIG_NLS_CODEPAGE_852 is not set
 38.1024 -# CONFIG_NLS_CODEPAGE_855 is not set
 38.1025 -# CONFIG_NLS_CODEPAGE_857 is not set
 38.1026 -# CONFIG_NLS_CODEPAGE_860 is not set
 38.1027 -# CONFIG_NLS_CODEPAGE_861 is not set
 38.1028 -# CONFIG_NLS_CODEPAGE_862 is not set
 38.1029 -# CONFIG_NLS_CODEPAGE_863 is not set
 38.1030 -# CONFIG_NLS_CODEPAGE_864 is not set
 38.1031 -# CONFIG_NLS_CODEPAGE_865 is not set
 38.1032 -# CONFIG_NLS_CODEPAGE_866 is not set
 38.1033 -# CONFIG_NLS_CODEPAGE_869 is not set
 38.1034 -# CONFIG_NLS_CODEPAGE_936 is not set
 38.1035 -# CONFIG_NLS_CODEPAGE_950 is not set
 38.1036 -# CONFIG_NLS_CODEPAGE_932 is not set
 38.1037 -# CONFIG_NLS_CODEPAGE_949 is not set
 38.1038 -# CONFIG_NLS_CODEPAGE_874 is not set
 38.1039 -# CONFIG_NLS_ISO8859_8 is not set
 38.1040 -# CONFIG_NLS_CODEPAGE_1250 is not set
 38.1041 -# CONFIG_NLS_CODEPAGE_1251 is not set
 38.1042 -# CONFIG_NLS_ASCII is not set
 38.1043 -CONFIG_NLS_ISO8859_1=y
 38.1044 -# CONFIG_NLS_ISO8859_2 is not set
 38.1045 -# CONFIG_NLS_ISO8859_3 is not set
 38.1046 -# CONFIG_NLS_ISO8859_4 is not set
 38.1047 -# CONFIG_NLS_ISO8859_5 is not set
 38.1048 -# CONFIG_NLS_ISO8859_6 is not set
 38.1049 -# CONFIG_NLS_ISO8859_7 is not set
 38.1050 -# CONFIG_NLS_ISO8859_9 is not set
 38.1051 -# CONFIG_NLS_ISO8859_13 is not set
 38.1052 -# CONFIG_NLS_ISO8859_14 is not set
 38.1053 -# CONFIG_NLS_ISO8859_15 is not set
 38.1054 -# CONFIG_NLS_KOI8_R is not set
 38.1055 -# CONFIG_NLS_KOI8_U is not set
 38.1056 -# CONFIG_NLS_UTF8 is not set
 38.1057 -
 38.1058 -#
 38.1059 -# Security options
 38.1060 -#
 38.1061 -# CONFIG_KEYS is not set
 38.1062 -# CONFIG_SECURITY is not set
 38.1063 -
 38.1064 -#
 38.1065 -# Cryptographic options
 38.1066 -#
 38.1067 -CONFIG_CRYPTO=y
 38.1068 -CONFIG_CRYPTO_HMAC=y
 38.1069 -# CONFIG_CRYPTO_NULL is not set
 38.1070 -# CONFIG_CRYPTO_MD4 is not set
 38.1071 -CONFIG_CRYPTO_MD5=m
 38.1072 -CONFIG_CRYPTO_SHA1=m
 38.1073 -# CONFIG_CRYPTO_SHA256 is not set
 38.1074 -# CONFIG_CRYPTO_SHA512 is not set
 38.1075 -# CONFIG_CRYPTO_WP512 is not set
 38.1076 -CONFIG_CRYPTO_DES=m
 38.1077 -# CONFIG_CRYPTO_BLOWFISH is not set
 38.1078 -# CONFIG_CRYPTO_TWOFISH is not set
 38.1079 -# CONFIG_CRYPTO_SERPENT is not set
 38.1080 -# CONFIG_CRYPTO_AES_586 is not set
 38.1081 -# CONFIG_CRYPTO_CAST5 is not set
 38.1082 -# CONFIG_CRYPTO_CAST6 is not set
 38.1083 -# CONFIG_CRYPTO_TEA is not set
 38.1084 -# CONFIG_CRYPTO_ARC4 is not set
 38.1085 -# CONFIG_CRYPTO_KHAZAD is not set
 38.1086 -# CONFIG_CRYPTO_ANUBIS is not set
 38.1087 -# CONFIG_CRYPTO_DEFLATE is not set
 38.1088 -# CONFIG_CRYPTO_MICHAEL_MIC is not set
 38.1089 -CONFIG_CRYPTO_CRC32C=m
 38.1090 -# CONFIG_CRYPTO_TEST is not set
 38.1091 -
 38.1092 -#
 38.1093 -# Hardware crypto devices
 38.1094 -#
 38.1095 -# CONFIG_CRYPTO_DEV_PADLOCK is not set
 38.1096 -
 38.1097 -#
 38.1098 -# Library routines
 38.1099 -#
 38.1100 -# CONFIG_CRC_CCITT is not set
 38.1101 -CONFIG_CRC32=y
 38.1102 -CONFIG_LIBCRC32C=y
 38.1103 -CONFIG_ZLIB_INFLATE=y
    39.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32	Mon Apr 04 16:13:17 2005 +0000
    39.3 @@ -0,0 +1,1099 @@
    39.4 +#
    39.5 +# Automatically generated make config: don't edit
    39.6 +# Linux kernel version: 2.6.11-xen0
    39.7 +# Sat Mar 19 19:42:39 2005
    39.8 +#
    39.9 +CONFIG_XEN=y
   39.10 +CONFIG_ARCH_XEN=y
   39.11 +CONFIG_NO_IDLE_HZ=y
   39.12 +
   39.13 +#
   39.14 +# XEN
   39.15 +#
   39.16 +CONFIG_XEN_PRIVILEGED_GUEST=y
   39.17 +CONFIG_XEN_PHYSDEV_ACCESS=y
   39.18 +CONFIG_XEN_BLKDEV_BACKEND=y
   39.19 +# CONFIG_XEN_BLKDEV_TAP_BE is not set
   39.20 +CONFIG_XEN_NETDEV_BACKEND=y
   39.21 +CONFIG_XEN_BLKDEV_FRONTEND=y
   39.22 +CONFIG_XEN_NETDEV_FRONTEND=y
   39.23 +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
   39.24 +# CONFIG_XEN_BLKDEV_TAP is not set
   39.25 +CONFIG_XEN_SCRUB_PAGES=y
   39.26 +CONFIG_X86=y
   39.27 +# CONFIG_X86_64 is not set
   39.28 +CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y
   39.29 +
   39.30 +#
   39.31 +# Code maturity level options
   39.32 +#
   39.33 +CONFIG_EXPERIMENTAL=y
   39.34 +# CONFIG_CLEAN_COMPILE is not set
   39.35 +CONFIG_BROKEN=y
   39.36 +CONFIG_BROKEN_ON_SMP=y
   39.37 +CONFIG_LOCK_KERNEL=y
   39.38 +
   39.39 +#
   39.40 +# General setup
   39.41 +#
   39.42 +CONFIG_LOCALVERSION=""
   39.43 +CONFIG_SWAP=y
   39.44 +CONFIG_SYSVIPC=y
   39.45 +# CONFIG_POSIX_MQUEUE is not set
   39.46 +# CONFIG_BSD_PROCESS_ACCT is not set
   39.47 +CONFIG_SYSCTL=y
   39.48 +# CONFIG_AUDIT is not set
   39.49 +CONFIG_LOG_BUF_SHIFT=14
   39.50 +CONFIG_HOTPLUG=y
   39.51 +CONFIG_KOBJECT_UEVENT=y
   39.52 +# CONFIG_IKCONFIG is not set
   39.53 +# CONFIG_EMBEDDED is not set
   39.54 +CONFIG_KALLSYMS=y
   39.55 +# CONFIG_KALLSYMS_EXTRA_PASS is not set
   39.56 +CONFIG_FUTEX=y
   39.57 +CONFIG_EPOLL=y
   39.58 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
   39.59 +CONFIG_SHMEM=y
   39.60 +CONFIG_CC_ALIGN_FUNCTIONS=0
   39.61 +CONFIG_CC_ALIGN_LABELS=0
   39.62 +CONFIG_CC_ALIGN_LOOPS=0
   39.63 +CONFIG_CC_ALIGN_JUMPS=0
   39.64 +# CONFIG_TINY_SHMEM is not set
   39.65 +
   39.66 +#
   39.67 +# Loadable module support
   39.68 +#
   39.69 +CONFIG_MODULES=y
   39.70 +CONFIG_MODULE_UNLOAD=y
   39.71 +# CONFIG_MODULE_FORCE_UNLOAD is not set
   39.72 +CONFIG_OBSOLETE_MODPARM=y
   39.73 +# CONFIG_MODVERSIONS is not set
   39.74 +# CONFIG_MODULE_SRCVERSION_ALL is not set
   39.75 +CONFIG_KMOD=y
   39.76 +
   39.77 +#
   39.78 +# X86 Processor Configuration
   39.79 +#
   39.80 +CONFIG_XENARCH="i386"
   39.81 +CONFIG_MMU=y
   39.82 +CONFIG_UID16=y
   39.83 +CONFIG_GENERIC_ISA_DMA=y
   39.84 +CONFIG_GENERIC_IOMAP=y
   39.85 +# CONFIG_M386 is not set
   39.86 +# CONFIG_M486 is not set
   39.87 +# CONFIG_M586 is not set
   39.88 +# CONFIG_M586TSC is not set
   39.89 +# CONFIG_M586MMX is not set
   39.90 +# CONFIG_M686 is not set
   39.91 +# CONFIG_MPENTIUMII is not set
   39.92 +# CONFIG_MPENTIUMIII is not set
   39.93 +# CONFIG_MPENTIUMM is not set
   39.94 +CONFIG_MPENTIUM4=y
   39.95 +# CONFIG_MK6 is not set
   39.96 +# CONFIG_MK7 is not set
   39.97 +# CONFIG_MK8 is not set
   39.98 +# CONFIG_MCRUSOE is not set
   39.99 +# CONFIG_MEFFICEON is not set
  39.100 +# CONFIG_MWINCHIPC6 is not set
  39.101 +# CONFIG_MWINCHIP2 is not set
  39.102 +# CONFIG_MWINCHIP3D is not set
  39.103 +# CONFIG_MCYRIXIII is not set
  39.104 +# CONFIG_MVIAC3_2 is not set
  39.105 +# CONFIG_X86_GENERIC is not set
  39.106 +CONFIG_X86_CMPXCHG=y
  39.107 +CONFIG_X86_XADD=y
  39.108 +CONFIG_X86_L1_CACHE_SHIFT=7
  39.109 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y
  39.110 +CONFIG_GENERIC_CALIBRATE_DELAY=y
  39.111 +CONFIG_X86_WP_WORKS_OK=y
  39.112 +CONFIG_X86_INVLPG=y
  39.113 +CONFIG_X86_BSWAP=y
  39.114 +CONFIG_X86_POPAD_OK=y
  39.115 +CONFIG_X86_GOOD_APIC=y
  39.116 +CONFIG_X86_INTEL_USERCOPY=y
  39.117 +CONFIG_X86_USE_PPRO_CHECKSUM=y
  39.118 +# CONFIG_HPET_TIMER is not set
  39.119 +# CONFIG_HPET_EMULATE_RTC is not set
  39.120 +# CONFIG_SMP is not set
  39.121 +CONFIG_PREEMPT=y
  39.122 +CONFIG_PREEMPT_BKL=y
  39.123 +CONFIG_MICROCODE=y
  39.124 +CONFIG_X86_CPUID=y
  39.125 +
  39.126 +#
  39.127 +# Firmware Drivers
  39.128 +#
  39.129 +# CONFIG_EDD is not set
  39.130 +CONFIG_NOHIGHMEM=y
  39.131 +# CONFIG_HIGHMEM4G is not set
  39.132 +CONFIG_MTRR=y
  39.133 +CONFIG_HAVE_DEC_LOCK=y
  39.134 +# CONFIG_REGPARM is not set
  39.135 +
  39.136 +#
  39.137 +# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
  39.138 +#
  39.139 +CONFIG_PCI=y
  39.140 +CONFIG_PCI_DIRECT=y
  39.141 +CONFIG_PCI_LEGACY_PROC=y
  39.142 +# CONFIG_PCI_NAMES is not set
  39.143 +CONFIG_ISA=y
  39.144 +# CONFIG_EISA is not set
  39.145 +# CONFIG_MCA is not set
  39.146 +# CONFIG_SCx200 is not set
  39.147 +
  39.148 +#
  39.149 +# PCCARD (PCMCIA/CardBus) support
  39.150 +#
  39.151 +# CONFIG_PCCARD is not set
  39.152 +
  39.153 +#
  39.154 +# PC-card bridges
  39.155 +#
  39.156 +CONFIG_PCMCIA_PROBE=y
  39.157 +
  39.158 +#
  39.159 +# PCI Hotplug Support
  39.160 +#
  39.161 +# CONFIG_HOTPLUG_PCI is not set
  39.162 +
  39.163 +#
  39.164 +# Kernel hacking
  39.165 +#
  39.166 +# CONFIG_DEBUG_KERNEL is not set
  39.167 +CONFIG_EARLY_PRINTK=y
  39.168 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
  39.169 +# CONFIG_FRAME_POINTER is not set
  39.170 +# CONFIG_4KSTACKS is not set
  39.171 +CONFIG_GENERIC_HARDIRQS=y
  39.172 +CONFIG_GENERIC_IRQ_PROBE=y
  39.173 +CONFIG_X86_BIOS_REBOOT=y
  39.174 +CONFIG_PC=y
  39.175 +
  39.176 +#
  39.177 +# Executable file formats
  39.178 +#
  39.179 +CONFIG_BINFMT_ELF=y
  39.180 +# CONFIG_BINFMT_AOUT is not set
  39.181 +# CONFIG_BINFMT_MISC is not set
  39.182 +
  39.183 +#
  39.184 +# Device Drivers
  39.185 +#
  39.186 +
  39.187 +#
  39.188 +# Generic Driver Options
  39.189 +#
  39.190 +# CONFIG_STANDALONE is not set
  39.191 +CONFIG_PREVENT_FIRMWARE_BUILD=y
  39.192 +# CONFIG_FW_LOADER is not set
  39.193 +
  39.194 +#
  39.195 +# Memory Technology Devices (MTD)
  39.196 +#
  39.197 +# CONFIG_MTD is not set
  39.198 +
  39.199 +#
  39.200 +# Parallel port support
  39.201 +#
  39.202 +# CONFIG_PARPORT is not set
  39.203 +
  39.204 +#
  39.205 +# Plug and Play support
  39.206 +#
  39.207 +# CONFIG_PNP is not set
  39.208 +
  39.209 +#
  39.210 +# Block devices
  39.211 +#
  39.212 +CONFIG_BLK_DEV_FD=y
  39.213 +# CONFIG_BLK_DEV_XD is not set
  39.214 +# CONFIG_BLK_CPQ_DA is not set
  39.215 +CONFIG_BLK_CPQ_CISS_DA=y
  39.216 +# CONFIG_CISS_SCSI_TAPE is not set
  39.217 +# CONFIG_BLK_DEV_DAC960 is not set
  39.218 +# CONFIG_BLK_DEV_UMEM is not set
  39.219 +# CONFIG_BLK_DEV_COW_COMMON is not set
  39.220 +CONFIG_BLK_DEV_LOOP=y
  39.221 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
  39.222 +# CONFIG_BLK_DEV_NBD is not set
  39.223 +# CONFIG_BLK_DEV_SX8 is not set
  39.224 +CONFIG_BLK_DEV_RAM=y
  39.225 +CONFIG_BLK_DEV_RAM_COUNT=16
  39.226 +CONFIG_BLK_DEV_RAM_SIZE=4096
  39.227 +CONFIG_BLK_DEV_INITRD=y
  39.228 +CONFIG_INITRAMFS_SOURCE=""
  39.229 +# CONFIG_LBD is not set
  39.230 +# CONFIG_CDROM_PKTCDVD is not set
  39.231 +
  39.232 +#
  39.233 +# IO Schedulers
  39.234 +#
  39.235 +CONFIG_IOSCHED_NOOP=y
  39.236 +CONFIG_IOSCHED_AS=y
  39.237 +CONFIG_IOSCHED_DEADLINE=y
  39.238 +CONFIG_IOSCHED_CFQ=y
  39.239 +# CONFIG_ATA_OVER_ETH is not set
  39.240 +
  39.241 +#
  39.242 +# ATA/ATAPI/MFM/RLL support
  39.243 +#
  39.244 +CONFIG_IDE=y
  39.245 +CONFIG_BLK_DEV_IDE=y
  39.246 +
  39.247 +#
  39.248 +# Please see Documentation/ide.txt for help/info on IDE drives
  39.249 +#
  39.250 +# CONFIG_BLK_DEV_IDE_SATA is not set
  39.251 +# CONFIG_BLK_DEV_HD_IDE is not set
  39.252 +CONFIG_BLK_DEV_IDEDISK=y
  39.253 +# CONFIG_IDEDISK_MULTI_MODE is not set
  39.254 +CONFIG_BLK_DEV_IDECD=y
  39.255 +# CONFIG_BLK_DEV_IDETAPE is not set
  39.256 +# CONFIG_BLK_DEV_IDEFLOPPY is not set
  39.257 +# CONFIG_BLK_DEV_IDESCSI is not set
  39.258 +# CONFIG_IDE_TASK_IOCTL is not set
  39.259 +
  39.260 +#
  39.261 +# IDE chipset support/bugfixes
  39.262 +#
  39.263 +CONFIG_IDE_GENERIC=y
  39.264 +# CONFIG_BLK_DEV_CMD640 is not set
  39.265 +CONFIG_BLK_DEV_IDEPCI=y
  39.266 +# CONFIG_IDEPCI_SHARE_IRQ is not set
  39.267 +# CONFIG_BLK_DEV_OFFBOARD is not set
  39.268 +CONFIG_BLK_DEV_GENERIC=y
  39.269 +# CONFIG_BLK_DEV_OPTI621 is not set
  39.270 +# CONFIG_BLK_DEV_RZ1000 is not set
  39.271 +CONFIG_BLK_DEV_IDEDMA_PCI=y
  39.272 +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
  39.273 +CONFIG_IDEDMA_PCI_AUTO=y
  39.274 +# CONFIG_IDEDMA_ONLYDISK is not set
  39.275 +# CONFIG_BLK_DEV_AEC62XX is not set
  39.276 +# CONFIG_BLK_DEV_ALI15X3 is not set
  39.277 +# CONFIG_BLK_DEV_AMD74XX is not set
  39.278 +# CONFIG_BLK_DEV_ATIIXP is not set
  39.279 +# CONFIG_BLK_DEV_CMD64X is not set
  39.280 +# CONFIG_BLK_DEV_TRIFLEX is not set
  39.281 +# CONFIG_BLK_DEV_CY82C693 is not set
  39.282 +# CONFIG_BLK_DEV_CS5520 is not set
  39.283 +# CONFIG_BLK_DEV_CS5530 is not set
  39.284 +# CONFIG_BLK_DEV_HPT34X is not set
  39.285 +# CONFIG_BLK_DEV_HPT366 is not set
  39.286 +# CONFIG_BLK_DEV_SC1200 is not set
  39.287 +CONFIG_BLK_DEV_PIIX=y
  39.288 +# CONFIG_BLK_DEV_NS87415 is not set
  39.289 +# CONFIG_BLK_DEV_PDC202XX_OLD is not set
  39.290 +# CONFIG_BLK_DEV_PDC202XX_NEW is not set
  39.291 +CONFIG_BLK_DEV_SVWKS=y
  39.292 +# CONFIG_BLK_DEV_SIIMAGE is not set
  39.293 +# CONFIG_BLK_DEV_SIS5513 is not set
  39.294 +# CONFIG_BLK_DEV_SLC90E66 is not set
  39.295 +# CONFIG_BLK_DEV_TRM290 is not set
  39.296 +# CONFIG_BLK_DEV_VIA82CXXX is not set
  39.297 +# CONFIG_IDE_ARM is not set
  39.298 +# CONFIG_IDE_CHIPSETS is not set
  39.299 +CONFIG_BLK_DEV_IDEDMA=y
  39.300 +# CONFIG_IDEDMA_IVB is not set
  39.301 +CONFIG_IDEDMA_AUTO=y
  39.302 +# CONFIG_BLK_DEV_HD is not set
  39.303 +
  39.304 +#
  39.305 +# SCSI device support
  39.306 +#
  39.307 +CONFIG_SCSI=y
  39.308 +CONFIG_SCSI_PROC_FS=y
  39.309 +
  39.310 +#
  39.311 +# SCSI support type (disk, tape, CD-ROM)
  39.312 +#
  39.313 +CONFIG_BLK_DEV_SD=y
  39.314 +# CONFIG_CHR_DEV_ST is not set
  39.315 +# CONFIG_CHR_DEV_OSST is not set
  39.316 +# CONFIG_BLK_DEV_SR is not set
  39.317 +# CONFIG_CHR_DEV_SG is not set
  39.318 +
  39.319 +#
  39.320 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
  39.321 +#
  39.322 +# CONFIG_SCSI_MULTI_LUN is not set
  39.323 +# CONFIG_SCSI_CONSTANTS is not set
  39.324 +# CONFIG_SCSI_LOGGING is not set
  39.325 +
  39.326 +#
  39.327 +# SCSI Transport Attributes
  39.328 +#
  39.329 +# CONFIG_SCSI_SPI_ATTRS is not set
  39.330 +# CONFIG_SCSI_FC_ATTRS is not set
  39.331 +# CONFIG_SCSI_ISCSI_ATTRS is not set
  39.332 +
  39.333 +#
  39.334 +# SCSI low-level drivers
  39.335 +#
  39.336 +CONFIG_BLK_DEV_3W_XXXX_RAID=y
  39.337 +# CONFIG_SCSI_3W_9XXX is not set
  39.338 +# CONFIG_SCSI_7000FASST is not set
  39.339 +# CONFIG_SCSI_ACARD is not set
  39.340 +# CONFIG_SCSI_AHA152X is not set
  39.341 +# CONFIG_SCSI_AHA1542 is not set
  39.342 +CONFIG_SCSI_AACRAID=y
  39.343 +CONFIG_SCSI_AIC7XXX=y
  39.344 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
  39.345 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000
  39.346 +CONFIG_AIC7XXX_DEBUG_ENABLE=y
  39.347 +CONFIG_AIC7XXX_DEBUG_MASK=0
  39.348 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
  39.349 +# CONFIG_SCSI_AIC7XXX_OLD is not set
  39.350 +CONFIG_SCSI_AIC79XX=y
  39.351 +CONFIG_AIC79XX_CMDS_PER_DEVICE=32
  39.352 +CONFIG_AIC79XX_RESET_DELAY_MS=15000
  39.353 +# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
  39.354 +CONFIG_AIC79XX_DEBUG_ENABLE=y
  39.355 +CONFIG_AIC79XX_DEBUG_MASK=0
  39.356 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y
  39.357 +# CONFIG_SCSI_DPT_I2O is not set
  39.358 +# CONFIG_SCSI_ADVANSYS is not set
  39.359 +# CONFIG_SCSI_IN2000 is not set
  39.360 +# CONFIG_MEGARAID_NEWGEN is not set
  39.361 +# CONFIG_MEGARAID_LEGACY is not set
  39.362 +CONFIG_SCSI_SATA=y
  39.363 +# CONFIG_SCSI_SATA_AHCI is not set
  39.364 +# CONFIG_SCSI_SATA_SVW is not set
  39.365 +CONFIG_SCSI_ATA_PIIX=y
  39.366 +# CONFIG_SCSI_SATA_NV is not set
  39.367 +CONFIG_SCSI_SATA_PROMISE=y
  39.368 +# CONFIG_SCSI_SATA_QSTOR is not set
  39.369 +CONFIG_SCSI_SATA_SX4=y
  39.370 +CONFIG_SCSI_SATA_SIL=y
  39.371 +# CONFIG_SCSI_SATA_SIS is not set
  39.372 +# CONFIG_SCSI_SATA_ULI is not set
  39.373 +# CONFIG_SCSI_SATA_VIA is not set
  39.374 +# CONFIG_SCSI_SATA_VITESSE is not set
  39.375 +CONFIG_SCSI_BUSLOGIC=y
  39.376 +# CONFIG_SCSI_OMIT_FLASHPOINT is not set
  39.377 +# CONFIG_SCSI_CPQFCTS is not set
  39.378 +# CONFIG_SCSI_DMX3191D is not set
  39.379 +# CONFIG_SCSI_DTC3280 is not set
  39.380 +# CONFIG_SCSI_EATA is not set
  39.381 +# CONFIG_SCSI_EATA_PIO is not set
  39.382 +# CONFIG_SCSI_FUTURE_DOMAIN is not set
  39.383 +# CONFIG_SCSI_GDTH is not set
  39.384 +# CONFIG_SCSI_GENERIC_NCR5380 is not set
  39.385 +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
  39.386 +# CONFIG_SCSI_IPS is not set
  39.387 +# CONFIG_SCSI_INITIO is not set
  39.388 +# CONFIG_SCSI_INIA100 is not set
  39.389 +# CONFIG_SCSI_NCR53C406A is not set
  39.390 +# CONFIG_SCSI_SYM53C8XX_2 is not set
  39.391 +# CONFIG_SCSI_IPR is not set
  39.392 +# CONFIG_SCSI_PAS16 is not set
  39.393 +# CONFIG_SCSI_PCI2000 is not set
  39.394 +# CONFIG_SCSI_PCI2220I is not set
  39.395 +# CONFIG_SCSI_PSI240I is not set
  39.396 +# CONFIG_SCSI_QLOGIC_FAS is not set
  39.397 +# CONFIG_SCSI_QLOGIC_ISP is not set
  39.398 +# CONFIG_SCSI_QLOGIC_FC is not set
  39.399 +# CONFIG_SCSI_QLOGIC_1280 is not set
  39.400 +CONFIG_SCSI_QLA2XXX=y
  39.401 +# CONFIG_SCSI_QLA21XX is not set
  39.402 +# CONFIG_SCSI_QLA22XX is not set
  39.403 +# CONFIG_SCSI_QLA2300 is not set
  39.404 +# CONFIG_SCSI_QLA2322 is not set
  39.405 +# CONFIG_SCSI_QLA6312 is not set
  39.406 +# CONFIG_SCSI_SEAGATE is not set
  39.407 +# CONFIG_SCSI_SYM53C416 is not set
  39.408 +# CONFIG_SCSI_DC395x is not set
  39.409 +# CONFIG_SCSI_DC390T is not set
  39.410 +# CONFIG_SCSI_T128 is not set
  39.411 +# CONFIG_SCSI_U14_34F is not set
  39.412 +# CONFIG_SCSI_ULTRASTOR is not set
  39.413 +# CONFIG_SCSI_NSP32 is not set
  39.414 +# CONFIG_SCSI_DEBUG is not set
  39.415 +
  39.416 +#
  39.417 +# Old CD-ROM drivers (not SCSI, not IDE)
  39.418 +#
  39.419 +# CONFIG_CD_NO_IDESCSI is not set
  39.420 +
  39.421 +#
  39.422 +# Multi-device support (RAID and LVM)
  39.423 +#
  39.424 +CONFIG_MD=y
  39.425 +CONFIG_BLK_DEV_MD=y
  39.426 +# CONFIG_MD_LINEAR is not set
  39.427 +CONFIG_MD_RAID0=y
  39.428 +CONFIG_MD_RAID1=y
  39.429 +# CONFIG_MD_RAID10 is not set
  39.430 +CONFIG_MD_RAID5=y
  39.431 +# CONFIG_MD_RAID6 is not set
  39.432 +# CONFIG_MD_MULTIPATH is not set
  39.433 +# CONFIG_MD_FAULTY is not set
  39.434 +CONFIG_BLK_DEV_DM=y
  39.435 +# CONFIG_DM_CRYPT is not set
  39.436 +CONFIG_DM_SNAPSHOT=y
  39.437 +CONFIG_DM_MIRROR=y
  39.438 +# CONFIG_DM_ZERO is not set
  39.439 +
  39.440 +#
  39.441 +# Fusion MPT device support
  39.442 +#
  39.443 +# CONFIG_FUSION is not set
  39.444 +
  39.445 +#
  39.446 +# IEEE 1394 (FireWire) support
  39.447 +#
  39.448 +# CONFIG_IEEE1394 is not set
  39.449 +
  39.450 +#
  39.451 +# I2O device support
  39.452 +#
  39.453 +# CONFIG_I2O is not set
  39.454 +
  39.455 +#
  39.456 +# Networking support
  39.457 +#
  39.458 +CONFIG_NET=y
  39.459 +
  39.460 +#
  39.461 +# Networking options
  39.462 +#
  39.463 +CONFIG_PACKET=y
  39.464 +# CONFIG_PACKET_MMAP is not set
  39.465 +# CONFIG_NETLINK_DEV is not set
  39.466 +CONFIG_UNIX=y
  39.467 +# CONFIG_NET_KEY is not set
  39.468 +CONFIG_INET=y
  39.469 +# CONFIG_IP_MULTICAST is not set
  39.470 +# CONFIG_IP_ADVANCED_ROUTER is not set
  39.471 +CONFIG_IP_PNP=y
  39.472 +CONFIG_IP_PNP_DHCP=y
  39.473 +# CONFIG_IP_PNP_BOOTP is not set
  39.474 +# CONFIG_IP_PNP_RARP is not set
  39.475 +# CONFIG_NET_IPIP is not set
  39.476 +# CONFIG_NET_IPGRE is not set
  39.477 +# CONFIG_ARPD is not set
  39.478 +# CONFIG_SYN_COOKIES is not set
  39.479 +# CONFIG_INET_AH is not set
  39.480 +# CONFIG_INET_ESP is not set
  39.481 +# CONFIG_INET_IPCOMP is not set
  39.482 +# CONFIG_INET_TUNNEL is not set
  39.483 +CONFIG_IP_TCPDIAG=y
  39.484 +# CONFIG_IP_TCPDIAG_IPV6 is not set
  39.485 +
  39.486 +#
  39.487 +# IP: Virtual Server Configuration
  39.488 +#
  39.489 +# CONFIG_IP_VS is not set
  39.490 +# CONFIG_IPV6 is not set
  39.491 +CONFIG_NETFILTER=y
  39.492 +# CONFIG_NETFILTER_DEBUG is not set
  39.493 +CONFIG_BRIDGE_NETFILTER=y
  39.494 +
  39.495 +#
  39.496 +# IP: Netfilter Configuration
  39.497 +#
  39.498 +CONFIG_IP_NF_CONNTRACK=m
  39.499 +CONFIG_IP_NF_CT_ACCT=y
  39.500 +# CONFIG_IP_NF_CONNTRACK_MARK is not set
  39.501 +# CONFIG_IP_NF_CT_PROTO_SCTP is not set
  39.502 +CONFIG_IP_NF_FTP=m
  39.503 +# CONFIG_IP_NF_IRC is not set
  39.504 +# CONFIG_IP_NF_TFTP is not set
  39.505 +# CONFIG_IP_NF_AMANDA is not set
  39.506 +# CONFIG_IP_NF_QUEUE is not set
  39.507 +CONFIG_IP_NF_IPTABLES=m
  39.508 +# CONFIG_IP_NF_MATCH_LIMIT is not set
  39.509 +CONFIG_IP_NF_MATCH_IPRANGE=m
  39.510 +# CONFIG_IP_NF_MATCH_MAC is not set
  39.511 +# CONFIG_IP_NF_MATCH_PKTTYPE is not set
  39.512 +# CONFIG_IP_NF_MATCH_MARK is not set
  39.513 +# CONFIG_IP_NF_MATCH_MULTIPORT is not set
  39.514 +# CONFIG_IP_NF_MATCH_TOS is not set
  39.515 +# CONFIG_IP_NF_MATCH_RECENT is not set
  39.516 +# CONFIG_IP_NF_MATCH_ECN is not set
  39.517 +# CONFIG_IP_NF_MATCH_DSCP is not set
  39.518 +# CONFIG_IP_NF_MATCH_AH_ESP is not set
  39.519 +# CONFIG_IP_NF_MATCH_LENGTH is not set
  39.520 +# CONFIG_IP_NF_MATCH_TTL is not set
  39.521 +# CONFIG_IP_NF_MATCH_TCPMSS is not set
  39.522 +# CONFIG_IP_NF_MATCH_HELPER is not set
  39.523 +# CONFIG_IP_NF_MATCH_STATE is not set
  39.524 +# CONFIG_IP_NF_MATCH_CONNTRACK is not set
  39.525 +# CONFIG_IP_NF_MATCH_OWNER is not set
  39.526 +# CONFIG_IP_NF_MATCH_PHYSDEV is not set
  39.527 +# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
  39.528 +# CONFIG_IP_NF_MATCH_REALM is not set
  39.529 +# CONFIG_IP_NF_MATCH_SCTP is not set
  39.530 +# CONFIG_IP_NF_MATCH_COMMENT is not set
  39.531 +# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
  39.532 +CONFIG_IP_NF_FILTER=m
  39.533 +CONFIG_IP_NF_TARGET_REJECT=m
  39.534 +# CONFIG_IP_NF_TARGET_LOG is not set
  39.535 +# CONFIG_IP_NF_TARGET_ULOG is not set
  39.536 +# CONFIG_IP_NF_TARGET_TCPMSS is not set
  39.537 +CONFIG_IP_NF_NAT=m
  39.538 +CONFIG_IP_NF_NAT_NEEDED=y
  39.539 +CONFIG_IP_NF_TARGET_MASQUERADE=m
  39.540 +# CONFIG_IP_NF_TARGET_REDIRECT is not set
  39.541 +# CONFIG_IP_NF_TARGET_NETMAP is not set
  39.542 +# CONFIG_IP_NF_TARGET_SAME is not set
  39.543 +# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
  39.544 +CONFIG_IP_NF_NAT_FTP=m
  39.545 +# CONFIG_IP_NF_MANGLE is not set
  39.546 +# CONFIG_IP_NF_RAW is not set
  39.547 +# CONFIG_IP_NF_ARPTABLES is not set
  39.548 +
  39.549 +#
  39.550 +# Bridge: Netfilter Configuration
  39.551 +#
  39.552 +# CONFIG_BRIDGE_NF_EBTABLES is not set
  39.553 +
  39.554 +#
  39.555 +# SCTP Configuration (EXPERIMENTAL)
  39.556 +#
  39.557 +# CONFIG_IP_SCTP is not set
  39.558 +# CONFIG_ATM is not set
  39.559 +CONFIG_BRIDGE=y
  39.560 +# CONFIG_VLAN_8021Q is not set
  39.561 +# CONFIG_DECNET is not set
  39.562 +# CONFIG_LLC2 is not set
  39.563 +# CONFIG_IPX is not set
  39.564 +# CONFIG_ATALK is not set
  39.565 +# CONFIG_X25 is not set
  39.566 +# CONFIG_LAPB is not set
  39.567 +# CONFIG_NET_DIVERT is not set
  39.568 +# CONFIG_ECONET is not set
  39.569 +# CONFIG_WAN_ROUTER is not set
  39.570 +
  39.571 +#
  39.572 +# QoS and/or fair queueing
  39.573 +#
  39.574 +# CONFIG_NET_SCHED is not set
  39.575 +# CONFIG_NET_CLS_ROUTE is not set
  39.576 +
  39.577 +#
  39.578 +# Network testing
  39.579 +#
  39.580 +# CONFIG_NET_PKTGEN is not set
  39.581 +# CONFIG_NETPOLL is not set
  39.582 +# CONFIG_NET_POLL_CONTROLLER is not set
  39.583 +# CONFIG_HAMRADIO is not set
  39.584 +# CONFIG_IRDA is not set
  39.585 +# CONFIG_BT is not set
  39.586 +CONFIG_NETDEVICES=y
  39.587 +# CONFIG_DUMMY is not set
  39.588 +# CONFIG_BONDING is not set
  39.589 +# CONFIG_EQUALIZER is not set
  39.590 +# CONFIG_TUN is not set
  39.591 +
  39.592 +#
  39.593 +# ARCnet devices
  39.594 +#
  39.595 +# CONFIG_ARCNET is not set
  39.596 +
  39.597 +#
  39.598 +# Ethernet (10 or 100Mbit)
  39.599 +#
  39.600 +CONFIG_NET_ETHERNET=y
  39.601 +CONFIG_MII=y
  39.602 +# CONFIG_HAPPYMEAL is not set
  39.603 +# CONFIG_SUNGEM is not set
  39.604 +CONFIG_NET_VENDOR_3COM=y
  39.605 +# CONFIG_EL1 is not set
  39.606 +# CONFIG_EL2 is not set
  39.607 +# CONFIG_ELPLUS is not set
  39.608 +# CONFIG_EL16 is not set
  39.609 +# CONFIG_EL3 is not set
  39.610 +# CONFIG_3C515 is not set
  39.611 +CONFIG_VORTEX=y
  39.612 +# CONFIG_TYPHOON is not set
  39.613 +# CONFIG_LANCE is not set
  39.614 +# CONFIG_NET_VENDOR_SMC is not set
  39.615 +# CONFIG_NET_VENDOR_RACAL is not set
  39.616 +
  39.617 +#
  39.618 +# Tulip family network device support
  39.619 +#
  39.620 +CONFIG_NET_TULIP=y
  39.621 +# CONFIG_DE2104X is not set
  39.622 +CONFIG_TULIP=y
  39.623 +# CONFIG_TULIP_MWI is not set
  39.624 +# CONFIG_TULIP_MMIO is not set
  39.625 +# CONFIG_TULIP_NAPI is not set
  39.626 +# CONFIG_DE4X5 is not set
  39.627 +# CONFIG_WINBOND_840 is not set
  39.628 +# CONFIG_DM9102 is not set
  39.629 +# CONFIG_AT1700 is not set
  39.630 +# CONFIG_DEPCA is not set
  39.631 +# CONFIG_HP100 is not set
  39.632 +# CONFIG_NET_ISA is not set
  39.633 +CONFIG_NET_PCI=y
  39.634 +CONFIG_PCNET32=y
  39.635 +# CONFIG_AMD8111_ETH is not set
  39.636 +# CONFIG_ADAPTEC_STARFIRE is not set
  39.637 +# CONFIG_AC3200 is not set
  39.638 +# CONFIG_APRICOT is not set
  39.639 +# CONFIG_B44 is not set
  39.640 +# CONFIG_FORCEDETH is not set
  39.641 +# CONFIG_CS89x0 is not set
  39.642 +# CONFIG_DGRS is not set
  39.643 +# CONFIG_EEPRO100 is not set
  39.644 +CONFIG_E100=y
  39.645 +# CONFIG_E100_NAPI is not set
  39.646 +# CONFIG_FEALNX is not set
  39.647 +# CONFIG_NATSEMI is not set
  39.648 +CONFIG_NE2K_PCI=y
  39.649 +# CONFIG_8139CP is not set
  39.650 +CONFIG_8139TOO=y
  39.651 +CONFIG_8139TOO_PIO=y
  39.652 +# CONFIG_8139TOO_TUNE_TWISTER is not set
  39.653 +# CONFIG_8139TOO_8129 is not set
  39.654 +# CONFIG_8139_OLD_RX_RESET is not set
  39.655 +# CONFIG_SIS900 is not set
  39.656 +# CONFIG_EPIC100 is not set
  39.657 +# CONFIG_SUNDANCE is not set
  39.658 +# CONFIG_TLAN is not set
  39.659 +CONFIG_VIA_RHINE=y
  39.660 +# CONFIG_VIA_RHINE_MMIO is not set
  39.661 +# CONFIG_NET_POCKET is not set
  39.662 +
  39.663 +#
  39.664 +# Ethernet (1000 Mbit)
  39.665 +#
  39.666 +CONFIG_ACENIC=y
  39.667 +# CONFIG_ACENIC_OMIT_TIGON_I is not set
  39.668 +# CONFIG_DL2K is not set
  39.669 +CONFIG_E1000=y
  39.670 +# CONFIG_E1000_NAPI is not set
  39.671 +# CONFIG_NS83820 is not set
  39.672 +# CONFIG_HAMACHI is not set
  39.673 +# CONFIG_YELLOWFIN is not set
  39.674 +# CONFIG_R8169 is not set
  39.675 +# CONFIG_SK98LIN is not set
  39.676 +# CONFIG_VIA_VELOCITY is not set
  39.677 +CONFIG_TIGON3=y
  39.678 +
  39.679 +#
  39.680 +# Ethernet (10000 Mbit)
  39.681 +#
  39.682 +# CONFIG_IXGB is not set
  39.683 +# CONFIG_S2IO is not set
  39.684 +
  39.685 +#
  39.686 +# Token Ring devices
  39.687 +#
  39.688 +# CONFIG_TR is not set
  39.689 +
  39.690 +#
  39.691 +# Wireless LAN (non-hamradio)
  39.692 +#
  39.693 +# CONFIG_NET_RADIO is not set
  39.694 +
  39.695 +#
  39.696 +# Wan interfaces
  39.697 +#
  39.698 +# CONFIG_WAN is not set
  39.699 +# CONFIG_FDDI is not set
  39.700 +# CONFIG_HIPPI is not set
  39.701 +# CONFIG_PPP is not set
  39.702 +# CONFIG_SLIP is not set
  39.703 +# CONFIG_NET_FC is not set
  39.704 +# CONFIG_SHAPER is not set
  39.705 +# CONFIG_NETCONSOLE is not set
  39.706 +
  39.707 +#
  39.708 +# ISDN subsystem
  39.709 +#
  39.710 +# CONFIG_ISDN is not set
  39.711 +
  39.712 +#
  39.713 +# Telephony Support
  39.714 +#
  39.715 +# CONFIG_PHONE is not set
  39.716 +
  39.717 +#
  39.718 +# Input device support
  39.719 +#
  39.720 +CONFIG_INPUT=y
  39.721 +
  39.722 +#
  39.723 +# Userland interfaces
  39.724 +#
  39.725 +CONFIG_INPUT_MOUSEDEV=y
  39.726 +CONFIG_INPUT_MOUSEDEV_PSAUX=y
  39.727 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
  39.728 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
  39.729 +# CONFIG_INPUT_JOYDEV is not set
  39.730 +# CONFIG_INPUT_TSDEV is not set
  39.731 +# CONFIG_INPUT_EVDEV is not set
  39.732 +# CONFIG_INPUT_EVBUG is not set
  39.733 +
  39.734 +#
  39.735 +# Input I/O drivers
  39.736 +#
  39.737 +# CONFIG_GAMEPORT is not set
  39.738 +CONFIG_SOUND_GAMEPORT=y
  39.739 +CONFIG_SERIO=y
  39.740 +CONFIG_SERIO_I8042=y
  39.741 +CONFIG_SERIO_SERPORT=y
  39.742 +# CONFIG_SERIO_CT82C710 is not set
  39.743 +# CONFIG_SERIO_PCIPS2 is not set
  39.744 +CONFIG_SERIO_LIBPS2=y
  39.745 +# CONFIG_SERIO_RAW is not set
  39.746 +
  39.747 +#
  39.748 +# Input Device Drivers
  39.749 +#
  39.750 +CONFIG_INPUT_KEYBOARD=y
  39.751 +CONFIG_KEYBOARD_ATKBD=y
  39.752 +# CONFIG_KEYBOARD_SUNKBD is not set
  39.753 +# CONFIG_KEYBOARD_LKKBD is not set
  39.754 +# CONFIG_KEYBOARD_XTKBD is not set
  39.755 +# CONFIG_KEYBOARD_NEWTON is not set
  39.756 +CONFIG_INPUT_MOUSE=y
  39.757 +CONFIG_MOUSE_PS2=y
  39.758 +# CONFIG_MOUSE_SERIAL is not set
  39.759 +# CONFIG_MOUSE_INPORT is not set
  39.760 +# CONFIG_MOUSE_LOGIBM is not set
  39.761 +# CONFIG_MOUSE_PC110PAD is not set
  39.762 +# CONFIG_MOUSE_VSXXXAA is not set
  39.763 +# CONFIG_INPUT_JOYSTICK is not set
  39.764 +# CONFIG_INPUT_TOUCHSCREEN is not set
  39.765 +# CONFIG_INPUT_MISC is not set
  39.766 +
  39.767 +#
  39.768 +# Character devices
  39.769 +#
  39.770 +CONFIG_VT=y
  39.771 +CONFIG_VT_CONSOLE=y
  39.772 +CONFIG_HW_CONSOLE=y
  39.773 +# CONFIG_SERIAL_NONSTANDARD is not set
  39.774 +
  39.775 +#
  39.776 +# Serial drivers
  39.777 +#
  39.778 +# CONFIG_SERIAL_8250 is not set
  39.779 +
  39.780 +#
  39.781 +# Non-8250 serial port support
  39.782 +#
  39.783 +CONFIG_UNIX98_PTYS=y
  39.784 +CONFIG_LEGACY_PTYS=y
  39.785 +CONFIG_LEGACY_PTY_COUNT=256
  39.786 +
  39.787 +#
  39.788 +# IPMI
  39.789 +#
  39.790 +# CONFIG_IPMI_HANDLER is not set
  39.791 +
  39.792 +#
  39.793 +# Watchdog Cards
  39.794 +#
  39.795 +# CONFIG_WATCHDOG is not set
  39.796 +# CONFIG_HW_RANDOM is not set
  39.797 +# CONFIG_NVRAM is not set
  39.798 +# CONFIG_RTC is not set
  39.799 +# CONFIG_GEN_RTC is not set
  39.800 +# CONFIG_DTLK is not set
  39.801 +# CONFIG_R3964 is not set
  39.802 +# CONFIG_APPLICOM is not set
  39.803 +# CONFIG_SONYPI is not set
  39.804 +
  39.805 +#
  39.806 +# Ftape, the floppy tape device driver
  39.807 +#
  39.808 +# CONFIG_FTAPE is not set
  39.809 +CONFIG_AGP=m
  39.810 +CONFIG_AGP_ALI=m
  39.811 +CONFIG_AGP_ATI=m
  39.812 +CONFIG_AGP_AMD=m
  39.813 +CONFIG_AGP_AMD64=m
  39.814 +CONFIG_AGP_INTEL=m
  39.815 +CONFIG_AGP_INTEL_MCH=m
  39.816 +CONFIG_AGP_NVIDIA=m
  39.817 +CONFIG_AGP_SIS=m
  39.818 +CONFIG_AGP_SWORKS=m
  39.819 +CONFIG_AGP_VIA=m
  39.820 +# CONFIG_AGP_EFFICEON is not set
  39.821 +CONFIG_DRM=m
  39.822 +CONFIG_DRM_TDFX=m
  39.823 +# CONFIG_DRM_GAMMA is not set
  39.824 +CONFIG_DRM_R128=m
  39.825 +CONFIG_DRM_RADEON=m
  39.826 +CONFIG_DRM_I810=m
  39.827 +CONFIG_DRM_I830=m
  39.828 +CONFIG_DRM_I915=m
  39.829 +CONFIG_DRM_MGA=m
  39.830 +CONFIG_DRM_SIS=m
  39.831 +# CONFIG_MWAVE is not set
  39.832 +# CONFIG_RAW_DRIVER is not set
  39.833 +# CONFIG_HANGCHECK_TIMER is not set
  39.834 +
  39.835 +#
  39.836 +# I2C support
  39.837 +#
  39.838 +# CONFIG_I2C is not set
  39.839 +
  39.840 +#
  39.841 +# Dallas's 1-wire bus
  39.842 +#
  39.843 +# CONFIG_W1 is not set
  39.844 +
  39.845 +#
  39.846 +# Misc devices
  39.847 +#
  39.848 +# CONFIG_IBM_ASM is not set
  39.849 +
  39.850 +#
  39.851 +# Multimedia devices
  39.852 +#
  39.853 +# CONFIG_VIDEO_DEV is not set
  39.854 +
  39.855 +#
  39.856 +# Digital Video Broadcasting Devices
  39.857 +#
  39.858 +# CONFIG_DVB is not set
  39.859 +
  39.860 +#
  39.861 +# Graphics support
  39.862 +#
  39.863 +# CONFIG_FB is not set
  39.864 +# CONFIG_VIDEO_SELECT is not set
  39.865 +
  39.866 +#
  39.867 +# Console display driver support
  39.868 +#
  39.869 +CONFIG_VGA_CONSOLE=y
  39.870 +# CONFIG_MDA_CONSOLE is not set
  39.871 +CONFIG_DUMMY_CONSOLE=y
  39.872 +
  39.873 +#
  39.874 +# Sound
  39.875 +#
  39.876 +# CONFIG_SOUND is not set
  39.877 +
  39.878 +#
  39.879 +# USB support
  39.880 +#
  39.881 +# CONFIG_USB is not set
  39.882 +CONFIG_USB_ARCH_HAS_HCD=y
  39.883 +CONFIG_USB_ARCH_HAS_OHCI=y
  39.884 +
  39.885 +#
  39.886 +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
  39.887 +#
  39.888 +
  39.889 +#
  39.890 +# USB Gadget Support
  39.891 +#
  39.892 +# CONFIG_USB_GADGET is not set
  39.893 +
  39.894 +#
  39.895 +# MMC/SD Card support
  39.896 +#
  39.897 +# CONFIG_MMC is not set
  39.898 +
  39.899 +#
  39.900 +# InfiniBand support
  39.901 +#
  39.902 +# CONFIG_INFINIBAND is not set
  39.903 +
  39.904 +#
  39.905 +# File systems
  39.906 +#
  39.907 +CONFIG_EXT2_FS=y
  39.908 +# CONFIG_EXT2_FS_XATTR is not set
  39.909 +CONFIG_EXT3_FS=y
  39.910 +CONFIG_EXT3_FS_XATTR=y
  39.911 +# CONFIG_EXT3_FS_POSIX_ACL is not set
  39.912 +# CONFIG_EXT3_FS_SECURITY is not set
  39.913 +CONFIG_JBD=y
  39.914 +# CONFIG_JBD_DEBUG is not set
  39.915 +CONFIG_FS_MBCACHE=y
  39.916 +CONFIG_REISERFS_FS=y
  39.917 +# CONFIG_REISERFS_CHECK is not set
  39.918 +# CONFIG_REISERFS_PROC_INFO is not set
  39.919 +# CONFIG_REISERFS_FS_XATTR is not set
  39.920 +# CONFIG_JFS_FS is not set
  39.921 +
  39.922 +#
  39.923 +# XFS support
  39.924 +#
  39.925 +# CONFIG_XFS_FS is not set
  39.926 +# CONFIG_MINIX_FS is not set
  39.927 +# CONFIG_ROMFS_FS is not set
  39.928 +# CONFIG_QUOTA is not set
  39.929 +CONFIG_DNOTIFY=y
  39.930 +# CONFIG_AUTOFS_FS is not set
  39.931 +# CONFIG_AUTOFS4_FS is not set
  39.932 +
  39.933 +#
  39.934 +# CD-ROM/DVD Filesystems
  39.935 +#
  39.936 +CONFIG_ISO9660_FS=y
  39.937 +CONFIG_JOLIET=y
  39.938 +CONFIG_ZISOFS=y
  39.939 +CONFIG_ZISOFS_FS=y
  39.940 +# CONFIG_UDF_FS is not set
  39.941 +
  39.942 +#
  39.943 +# DOS/FAT/NT Filesystems
  39.944 +#
  39.945 +CONFIG_FAT_FS=m
  39.946 +CONFIG_MSDOS_FS=m
  39.947 +CONFIG_VFAT_FS=m
  39.948 +CONFIG_FAT_DEFAULT_CODEPAGE=437
  39.949 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
  39.950 +# CONFIG_NTFS_FS is not set
  39.951 +
  39.952 +#
  39.953 +# Pseudo filesystems
  39.954 +#
  39.955 +CONFIG_PROC_FS=y
  39.956 +CONFIG_PROC_KCORE=y
  39.957 +CONFIG_SYSFS=y
  39.958 +# CONFIG_DEVFS_FS is not set
  39.959 +# CONFIG_DEVPTS_FS_XATTR is not set
  39.960 +CONFIG_TMPFS=y
  39.961 +# CONFIG_TMPFS_XATTR is not set
  39.962 +# CONFIG_HUGETLBFS is not set
  39.963 +# CONFIG_HUGETLB_PAGE is not set
  39.964 +CONFIG_RAMFS=y
  39.965 +
  39.966 +#
  39.967 +# Miscellaneous filesystems
  39.968 +#
  39.969 +# CONFIG_ADFS_FS is not set
  39.970 +# CONFIG_AFFS_FS is not set
  39.971 +# CONFIG_HFS_FS is not set
  39.972 +# CONFIG_HFSPLUS_FS is not set
  39.973 +# CONFIG_BEFS_FS is not set
  39.974 +# CONFIG_BFS_FS is not set
  39.975 +# CONFIG_EFS_FS is not set
  39.976 +# CONFIG_CRAMFS is not set
  39.977 +# CONFIG_VXFS_FS is not set
  39.978 +# CONFIG_HPFS_FS is not set
  39.979 +# CONFIG_QNX4FS_FS is not set
  39.980 +# CONFIG_SYSV_FS is not set
  39.981 +# CONFIG_UFS_FS is not set
  39.982 +
  39.983 +#
  39.984 +# Network File Systems
  39.985 +#
  39.986 +CONFIG_NFS_FS=y
  39.987 +CONFIG_NFS_V3=y
  39.988 +# CONFIG_NFS_V4 is not set
  39.989 +# CONFIG_NFS_DIRECTIO is not set
  39.990 +CONFIG_NFSD=m
  39.991 +CONFIG_NFSD_V3=y
  39.992 +# CONFIG_NFSD_V4 is not set
  39.993 +CONFIG_NFSD_TCP=y
  39.994 +CONFIG_ROOT_NFS=y
  39.995 +CONFIG_LOCKD=y
  39.996 +CONFIG_LOCKD_V4=y
  39.997 +CONFIG_EXPORTFS=m
  39.998 +CONFIG_SUNRPC=y
  39.999 +# CONFIG_RPCSEC_GSS_KRB5 is not set
 39.1000 +# CONFIG_RPCSEC_GSS_SPKM3 is not set
 39.1001 +# CONFIG_SMB_FS is not set
 39.1002 +# CONFIG_CIFS is not set
 39.1003 +# CONFIG_NCP_FS is not set
 39.1004 +# CONFIG_CODA_FS is not set
 39.1005 +# CONFIG_AFS_FS is not set
 39.1006 +
 39.1007 +#
 39.1008 +# Partition Types
 39.1009 +#
 39.1010 +# CONFIG_PARTITION_ADVANCED is not set
 39.1011 +CONFIG_MSDOS_PARTITION=y
 39.1012 +
 39.1013 +#
 39.1014 +# Native Language Support
 39.1015 +#
 39.1016 +CONFIG_NLS=y
 39.1017 +CONFIG_NLS_DEFAULT="iso8859-1"
 39.1018 +CONFIG_NLS_CODEPAGE_437=y
 39.1019 +# CONFIG_NLS_CODEPAGE_737 is not set
 39.1020 +# CONFIG_NLS_CODEPAGE_775 is not set
 39.1021 +# CONFIG_NLS_CODEPAGE_850 is not set
 39.1022 +# CONFIG_NLS_CODEPAGE_852 is not set
 39.1023 +# CONFIG_NLS_CODEPAGE_855 is not set
 39.1024 +# CONFIG_NLS_CODEPAGE_857 is not set
 39.1025 +# CONFIG_NLS_CODEPAGE_860 is not set
 39.1026 +# CONFIG_NLS_CODEPAGE_861 is not set
 39.1027 +# CONFIG_NLS_CODEPAGE_862 is not set
 39.1028 +# CONFIG_NLS_CODEPAGE_863 is not set
 39.1029 +# CONFIG_NLS_CODEPAGE_864 is not set
 39.1030 +# CONFIG_NLS_CODEPAGE_865 is not set
 39.1031 +# CONFIG_NLS_CODEPAGE_866 is not set
 39.1032 +# CONFIG_NLS_CODEPAGE_869 is not set
 39.1033 +# CONFIG_NLS_CODEPAGE_936 is not set
 39.1034 +# CONFIG_NLS_CODEPAGE_950 is not set
 39.1035 +# CONFIG_NLS_CODEPAGE_932 is not set
 39.1036 +# CONFIG_NLS_CODEPAGE_949 is not set
 39.1037 +# CONFIG_NLS_CODEPAGE_874 is not set
 39.1038 +# CONFIG_NLS_ISO8859_8 is not set
 39.1039 +# CONFIG_NLS_CODEPAGE_1250 is not set
 39.1040 +# CONFIG_NLS_CODEPAGE_1251 is not set
 39.1041 +# CONFIG_NLS_ASCII is not set
 39.1042 +CONFIG_NLS_ISO8859_1=y
 39.1043 +# CONFIG_NLS_ISO8859_2 is not set
 39.1044 +# CONFIG_NLS_ISO8859_3 is not set
 39.1045 +# CONFIG_NLS_ISO8859_4 is not set
 39.1046 +# CONFIG_NLS_ISO8859_5 is not set
 39.1047 +# CONFIG_NLS_ISO8859_6 is not set
 39.1048 +# CONFIG_NLS_ISO8859_7 is not set
 39.1049 +# CONFIG_NLS_ISO8859_9 is not set
 39.1050 +# CONFIG_NLS_ISO8859_13 is not set
 39.1051 +# CONFIG_NLS_ISO8859_14 is not set
 39.1052 +# CONFIG_NLS_ISO8859_15 is not set
 39.1053 +# CONFIG_NLS_KOI8_R is not set
 39.1054 +# CONFIG_NLS_KOI8_U is not set
 39.1055 +# CONFIG_NLS_UTF8 is not set
 39.1056 +
 39.1057 +#
 39.1058 +# Security options
 39.1059 +#
 39.1060 +# CONFIG_KEYS is not set
 39.1061 +# CONFIG_SECURITY is not set
 39.1062 +
 39.1063 +#
 39.1064 +# Cryptographic options
 39.1065 +#
 39.1066 +CONFIG_CRYPTO=y
 39.1067 +CONFIG_CRYPTO_HMAC=y
 39.1068 +# CONFIG_CRYPTO_NULL is not set
 39.1069 +# CONFIG_CRYPTO_MD4 is not set
 39.1070 +CONFIG_CRYPTO_MD5=m
 39.1071 +CONFIG_CRYPTO_SHA1=m
 39.1072 +# CONFIG_CRYPTO_SHA256 is not set
 39.1073 +# CONFIG_CRYPTO_SHA512 is not set
 39.1074 +# CONFIG_CRYPTO_WP512 is not set
 39.1075 +CONFIG_CRYPTO_DES=m
 39.1076 +# CONFIG_CRYPTO_BLOWFISH is not set
 39.1077 +# CONFIG_CRYPTO_TWOFISH is not set
 39.1078 +# CONFIG_CRYPTO_SERPENT is not set
 39.1079 +# CONFIG_CRYPTO_AES_586 is not set
 39.1080 +# CONFIG_CRYPTO_CAST5 is not set
 39.1081 +# CONFIG_CRYPTO_CAST6 is not set
 39.1082 +# CONFIG_CRYPTO_TEA is not set
 39.1083 +# CONFIG_CRYPTO_ARC4 is not set
 39.1084 +# CONFIG_CRYPTO_KHAZAD is not set
 39.1085 +# CONFIG_CRYPTO_ANUBIS is not set
 39.1086 +# CONFIG_CRYPTO_DEFLATE is not set
 39.1087 +# CONFIG_CRYPTO_MICHAEL_MIC is not set
 39.1088 +CONFIG_CRYPTO_CRC32C=m
 39.1089 +# CONFIG_CRYPTO_TEST is not set
 39.1090 +
 39.1091 +#
 39.1092 +# Hardware crypto devices
 39.1093 +#
 39.1094 +# CONFIG_CRYPTO_DEV_PADLOCK is not set
 39.1095 +
 39.1096 +#
 39.1097 +# Library routines
 39.1098 +#
 39.1099 +# CONFIG_CRC_CCITT is not set
 39.1100 +CONFIG_CRC32=y
 39.1101 +CONFIG_LIBCRC32C=y
 39.1102 +CONFIG_ZLIB_INFLATE=y
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64	Mon Apr 04 16:13:17 2005 +0000
    40.3 @@ -0,0 +1,703 @@
    40.4 +#
    40.5 +# Automatically generated make config: don't edit
    40.6 +# Linux kernel version: 2.6.10-xen0
    40.7 +# Tue Mar 15 10:39:50 2005
    40.8 +#
    40.9 +CONFIG_XEN=y
   40.10 +CONFIG_ARCH_XEN=y
   40.11 +CONFIG_NO_IDLE_HZ=y
   40.12 +
   40.13 +#
   40.14 +# XEN
   40.15 +#
   40.16 +CONFIG_XEN_PRIVILEGED_GUEST=y
   40.17 +CONFIG_XEN_PHYSDEV_ACCESS=y
   40.18 +CONFIG_XEN_BLKDEV_BACKEND=y
   40.19 +# CONFIG_XEN_BLKDEV_TAP_BE is not set
   40.20 +CONFIG_XEN_NETDEV_BACKEND=y
   40.21 +CONFIG_XEN_BLKDEV_FRONTEND=y
   40.22 +CONFIG_XEN_NETDEV_FRONTEND=y
   40.23 +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
   40.24 +# CONFIG_XEN_BLKDEV_TAP is not set
   40.25 +# CONFIG_XEN_WRITABLE_PAGETABLES=y
   40.26 +CONFIG_XEN_SCRUB_PAGES=y
   40.27 +# CONFIG_XEN_X86 is not set
   40.28 +CONFIG_XEN_X86_64=y
   40.29 +CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y
   40.30 +
   40.31 +#
   40.32 +# Code maturity level options
   40.33 +#
   40.34 +# CONFIG_EXPERIMENTAL is not set
   40.35 +CONFIG_CLEAN_COMPILE=y
   40.36 +CONFIG_BROKEN_ON_SMP=y
   40.37 +
   40.38 +#
   40.39 +# General setup
   40.40 +#
   40.41 +CONFIG_LOCALVERSION=""
   40.42 +# CONFIG_SWAP is not set
   40.43 +# CONFIG_SYSVIPC is not set
   40.44 +# CONFIG_BSD_PROCESS_ACCT is not set
   40.45 +# CONFIG_SYSCTL is not set
   40.46 +# CONFIG_AUDIT is not set
   40.47 +CONFIG_LOG_BUF_SHIFT=14
   40.48 +# CONFIG_HOTPLUG is not set
   40.49 +CONFIG_KOBJECT_UEVENT=y
   40.50 +# CONFIG_IKCONFIG is not set
   40.51 +# CONFIG_EMBEDDED is not set
   40.52 +CONFIG_KALLSYMS=y
   40.53 +CONFIG_KALLSYMS_EXTRA_PASS=y
   40.54 +CONFIG_FUTEX=y
   40.55 +CONFIG_EPOLL=y
   40.56 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
   40.57 +CONFIG_SHMEM=y
   40.58 +CONFIG_CC_ALIGN_FUNCTIONS=0
   40.59 +CONFIG_CC_ALIGN_LABELS=0
   40.60 +CONFIG_CC_ALIGN_LOOPS=0
   40.61 +CONFIG_CC_ALIGN_JUMPS=0
   40.62 +# CONFIG_TINY_SHMEM is not set
   40.63 +
   40.64 +#
   40.65 +# Loadable module support
   40.66 +#
   40.67 +CONFIG_MODULES=y
   40.68 +CONFIG_MODULE_UNLOAD=y
   40.69 +CONFIG_OBSOLETE_MODPARM=y
   40.70 +# CONFIG_MODULE_SRCVERSION_ALL is not set
   40.71 +CONFIG_KMOD=y
   40.72 +CONFIG_XENARCH="x86_64"
   40.73 +CONFIG_MMU=y
   40.74 +CONFIG_GENERIC_ISA_DMA=y
   40.75 +CONFIG_GENERIC_IOMAP=y
   40.76 +# CONFIG_MK8 is not set
   40.77 +CONFIG_X86_CMPXCHG=y
   40.78 +CONFIG_X86_L1_CACHE_SHIFT=7
   40.79 +CONFIG_RWSEM_GENERIC_SPINLOCK=y
   40.80 +CONFIG_X86_GOOD_APIC=y
   40.81 +# CONFIG_HPET_TIMER is not set
   40.82 +# CONFIG_SMP is not set
   40.83 +# CONFIG_PREEMPT is not set
   40.84 +# CONFIG_MICROCODE is not set
   40.85 +# CONFIG_X86_CPUID is not set
   40.86 +# CONFIG_NUMA is not set
   40.87 +# CONFIG_MTRR is not set
   40.88 +CONFIG_PCI=y
   40.89 +CONFIG_PCI_DIRECT=y
   40.90 +CONFIG_EARLY_PRINTK=y
   40.91 +CONFIG_GENERIC_HARDIRQS=y
   40.92 +CONFIG_GENERIC_IRQ_PROBE=y
   40.93 +
   40.94 +#
   40.95 +# X86_64 processor configuration
   40.96 +#
   40.97 +CONFIG_X86_64=y
   40.98 +CONFIG_X86=y
   40.99 +CONFIG_64BIT=y
  40.100 +
  40.101 +#
  40.102 +# Processor type and features
  40.103 +#
  40.104 +# CONFIG_MPSC is not set
  40.105 +CONFIG_GENERIC_CPU=y
  40.106 +CONFIG_X86_L1_CACHE_BYTES=128
  40.107 +# CONFIG_X86_TSC is not set
  40.108 +# CONFIG_X86_MSR is not set
  40.109 +# CONFIG_GART_IOMMU is not set
  40.110 +CONFIG_DUMMY_IOMMU=y
  40.111 +# CONFIG_X86_MCE is not set
  40.112 +
  40.113 +#
  40.114 +# Power management options
  40.115 +#
  40.116 +# CONFIG_PM is not set
  40.117 +
  40.118 +#
  40.119 +# ACPI (Advanced Configuration and Power Interface) Support
  40.120 +#
  40.121 +# CONFIG_ACPI is not set
  40.122 +# CONFIG_ACPI_BLACKLIST_YEAR=0
  40.123 +
  40.124 +#
  40.125 +# CPU Frequency scaling
  40.126 +#
  40.127 +# CONFIG_CPU_FREQ is not set
  40.128 +
  40.129 +#
  40.130 +# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
  40.131 +#
  40.132 +CONFIG_PCI=y
  40.133 +CONFIG_PCI_DIRECT=y
  40.134 +CONFIG_PCI_LEGACY_PROC=y
  40.135 +# CONFIG_PCI_NAMES is not set
  40.136 +# CONFIG_PCI_MMCONFIG is not set
  40.137 +
  40.138 +#
  40.139 +# PCCARD (PCMCIA/CardBus) support
  40.140 +#
  40.141 +# CONFIG_PCCARD is not set
  40.142 +
  40.143 +#
  40.144 +# Executable file formats / Emulations
  40.145 +#
  40.146 +# CONFIG_IA32_EMULATION is not set
  40.147 +
  40.148 +#
  40.149 +# Executable file formats
  40.150 +#
  40.151 +CONFIG_BINFMT_ELF=y
  40.152 +CONFIG_BINFMT_MISC=y
  40.153 +
  40.154 +#
  40.155 +# Device Drivers
  40.156 +#
  40.157 +
  40.158 +#
  40.159 +# Generic Driver Options
  40.160 +#
  40.161 +CONFIG_STANDALONE=y
  40.162 +# CONFIG_PREVENT_FIRMWARE_BUILD is not set
  40.163 +# CONFIG_FW_LOADER is not set
  40.164 +
  40.165 +#
  40.166 +# Memory Technology Devices (MTD)
  40.167 +#
  40.168 +# CONFIG_MTD is not set
  40.169 +
  40.170 +#
  40.171 +# Parallel port support
  40.172 +#
  40.173 +# CONFIG_PARPORT is not set
  40.174 +
  40.175 +#
  40.176 +# Plug and Play support
  40.177 +#
  40.178 +
  40.179 +#
  40.180 +# Block devices
  40.181 +#
  40.182 +CONFIG_BLK_DEV_FD=y
  40.183 +# CONFIG_BLK_CPQ_DA is not set
  40.184 +# CONFIG_BLK_CPQ_CISS_DA is not set
  40.185 +# CONFIG_BLK_DEV_DAC960 is not set
  40.186 +CONFIG_BLK_DEV_LOOP=y
  40.187 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
  40.188 +# CONFIG_BLK_DEV_NBD is not set
  40.189 +# CONFIG_BLK_DEV_SX8 is not set
  40.190 +CONFIG_BLK_DEV_RAM=y
  40.191 +CONFIG_BLK_DEV_RAM_COUNT=16
  40.192 +CONFIG_BLK_DEV_RAM_SIZE=16384
  40.193 +CONFIG_BLK_DEV_INITRD=y
  40.194 +CONFIG_INITRAMFS_SOURCE=""
  40.195 +# CONFIG_LBD is not set
  40.196 +# CONFIG_CDROM_PKTCDVD is not set
  40.197 +
  40.198 +#
  40.199 +# IO Schedulers
  40.200 +#
  40.201 +CONFIG_IOSCHED_NOOP=y
  40.202 +CONFIG_IOSCHED_AS=y
  40.203 +CONFIG_IOSCHED_DEADLINE=y
  40.204 +CONFIG_IOSCHED_CFQ=y
  40.205 +# CONFIG_ATA_OVER_ETH is not set
  40.206 +
  40.207 +#
  40.208 +# ATA/ATAPI/MFM/RLL support
  40.209 +#
  40.210 +# CONFIG_IDE is not set
  40.211 +
  40.212 +#
  40.213 +# SCSI device support
  40.214 +#
  40.215 +CONFIG_SCSI=y
  40.216 +CONFIG_SCSI_PROC_FS=y
  40.217 +
  40.218 +#
  40.219 +# SCSI support type (disk, tape, CD-ROM)
  40.220 +#
  40.221 +CONFIG_BLK_DEV_SD=y
  40.222 +CONFIG_CHR_DEV_ST=y
  40.223 +CONFIG_CHR_DEV_OSST=y
  40.224 +CONFIG_BLK_DEV_SR=y
  40.225 +CONFIG_BLK_DEV_SR_VENDOR=y
  40.226 +CONFIG_CHR_DEV_SG=y
  40.227 +
  40.228 +#
  40.229 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
  40.230 +#
  40.231 +# CONFIG_SCSI_MULTI_LUN is not set
  40.232 +CONFIG_SCSI_CONSTANTS=y
  40.233 +CONFIG_SCSI_LOGGING=y
  40.234 +
  40.235 +#
  40.236 +# SCSI Transport Attributes
  40.237 +#
  40.238 +# CONFIG_SCSI_SPI_ATTRS is not set
  40.239 +# CONFIG_SCSI_FC_ATTRS is not set
  40.240 +# CONFIG_SCSI_ISCSI_ATTRS is not set
  40.241 +
  40.242 +#
  40.243 +# SCSI low-level drivers
  40.244 +#
  40.245 +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
  40.246 +# CONFIG_SCSI_3W_9XXX is not set
  40.247 +# CONFIG_SCSI_ACARD is not set
  40.248 +# CONFIG_SCSI_AACRAID is not set
  40.249 +# CONFIG_SCSI_AIC7XXX is not set
  40.250 +# CONFIG_SCSI_AIC7XXX_OLD is not set
  40.251 +# CONFIG_SCSI_AIC79XX is not set
  40.252 +# CONFIG_MEGARAID_NEWGEN is not set
  40.253 +# CONFIG_MEGARAID_LEGACY is not set
  40.254 +CONFIG_SCSI_SATA=y
  40.255 +# CONFIG_SCSI_SATA_AHCI is not set
  40.256 +# CONFIG_SCSI_SATA_SVW is not set
  40.257 +CONFIG_SCSI_ATA_PIIX=y
  40.258 +# CONFIG_SCSI_SATA_NV is not set
  40.259 +CONFIG_SCSI_SATA_PROMISE=y
  40.260 +# CONFIG_SCSI_SATA_QSTOR is not set
  40.261 +CONFIG_SCSI_SATA_SX4=y
  40.262 +CONFIG_SCSI_SATA_SIL=y
  40.263 +# CONFIG_SCSI_SATA_SIS is not set
  40.264 +# CONFIG_SCSI_SATA_ULI is not set
  40.265 +# CONFIG_SCSI_SATA_VIA is not set
  40.266 +# CONFIG_SCSI_SATA_VITESSE is not set
  40.267 +CONFIG_SCSI_BUSLOGIC=y
  40.268 +# CONFIG_SCSI_OMIT_FLASHPOINT is not set
  40.269 +# CONFIG_SCSI_CPQFCTS is not set
  40.270 +# CONFIG_SCSI_DMX3191D is not set
  40.271 +# CONFIG_SCSI_DTC3280 is not set
  40.272 +# CONFIG_SCSI_EATA is not set
  40.273 +# CONFIG_SCSI_EATA_PIO is not set
  40.274 +# CONFIG_SCSI_FUTURE_DOMAIN is not set
  40.275 +# CONFIG_SCSI_GDTH is not set
  40.276 +# CONFIG_SCSI_GENERIC_NCR5380 is not set
  40.277 +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
  40.278 +# CONFIG_SCSI_IPS is not set
  40.279 +# CONFIG_SCSI_INITIO is not set
  40.280 +# CONFIG_SCSI_INIA100 is not set
  40.281 +# CONFIG_SCSI_NCR53C406A is not set
  40.282 +# CONFIG_SCSI_SYM53C8XX_2 is not set
  40.283 +# CONFIG_SCSI_IPR is not set
  40.284 +# CONFIG_SCSI_PAS16 is not set
  40.285 +# CONFIG_SCSI_PCI2000 is not set
  40.286 +# CONFIG_SCSI_PCI2220I is not set
  40.287 +# CONFIG_SCSI_PSI240I is not set
  40.288 +# CONFIG_SCSI_QLOGIC_FAS is not set
  40.289 +# CONFIG_SCSI_QLOGIC_ISP is not set
  40.290 +# CONFIG_SCSI_QLOGIC_FC is not set
  40.291 +# CONFIG_SCSI_QLOGIC_1280 is not set
  40.292 +CONFIG_SCSI_QLA2XXX=y
  40.293 +# CONFIG_SCSI_QLA21XX is not set
  40.294 +# CONFIG_SCSI_QLA22XX is not set
  40.295 +# CONFIG_SCSI_QLA2300 is not set
  40.296 +# CONFIG_SCSI_QLA2322 is not set
  40.297 +# CONFIG_SCSI_QLA6312 is not set
  40.298 +# CONFIG_SCSI_SEAGATE is not set
  40.299 +# CONFIG_SCSI_SYM53C416 is not set
  40.300 +# CONFIG_SCSI_DC395x is not set
  40.301 +# CONFIG_SCSI_DC390T is not set
  40.302 +# CONFIG_SCSI_T128 is not set
  40.303 +# CONFIG_SCSI_U14_34F is not set
  40.304 +# CONFIG_SCSI_ULTRASTOR is not set
  40.305 +# CONFIG_SCSI_NSP32 is not set
  40.306 +# CONFIG_SCSI_DEBUG is not set
  40.307 +
  40.308 +#
  40.309 +# Multi-device support (RAID and LVM)
  40.310 +#
  40.311 +# CONFIG_MD is not set
  40.312 +
  40.313 +#
  40.314 +# Fusion MPT device support
  40.315 +#
  40.316 +# CONFIG_FUSION is not set
  40.317 +
  40.318 +#
  40.319 +# IEEE 1394 (FireWire) support
  40.320 +#
  40.321 +# CONFIG_IEEE1394 is not set
  40.322 +
  40.323 +#
  40.324 +# I2O device support
  40.325 +#
  40.326 +# CONFIG_I2O is not set
  40.327 +
  40.328 +#
  40.329 +# Networking support
  40.330 +#
  40.331 +CONFIG_NET=y
  40.332 +
  40.333 +#
  40.334 +# Networking options
  40.335 +#
  40.336 +# CONFIG_PACKET is not set
  40.337 +# CONFIG_NETLINK_DEV is not set
  40.338 +# CONFIG_UNIX is not set
  40.339 +# CONFIG_NET_KEY is not set
  40.340 +CONFIG_INET=y
  40.341 +# CONFIG_IP_MULTICAST is not set
  40.342 +# CONFIG_IP_ADVANCED_ROUTER is not set
  40.343 +# CONFIG_IP_PNP is not set
  40.344 +# CONFIG_NET_IPIP is not set
  40.345 +# CONFIG_NET_IPGRE is not set
  40.346 +# CONFIG_SYN_COOKIES is not set
  40.347 +# CONFIG_INET_AH is not set
  40.348 +# CONFIG_INET_ESP is not set
  40.349 +# CONFIG_INET_IPCOMP is not set
  40.350 +# CONFIG_INET_TUNNEL is not set
  40.351 +CONFIG_IP_TCPDIAG=y
  40.352 +# CONFIG_IP_TCPDIAG_IPV6 is not set
  40.353 +# CONFIG_NETFILTER is not set
  40.354 +# CONFIG_BRIDGE is not set
  40.355 +# CONFIG_VLAN_8021Q is not set
  40.356 +# CONFIG_DECNET is not set
  40.357 +# CONFIG_LLC2 is not set
  40.358 +# CONFIG_IPX is not set
  40.359 +# CONFIG_ATALK is not set
  40.360 +
  40.361 +#
  40.362 +# QoS and/or fair queueing
  40.363 +#
  40.364 +# CONFIG_NET_SCHED is not set
  40.365 +# CONFIG_NET_CLS_ROUTE is not set
  40.366 +
  40.367 +#
  40.368 +# Network testing
  40.369 +#
  40.370 +# CONFIG_NET_PKTGEN is not set
  40.371 +# CONFIG_NETPOLL is not set
  40.372 +# CONFIG_NET_POLL_CONTROLLER is not set
  40.373 +# CONFIG_HAMRADIO is not set
  40.374 +# CONFIG_IRDA is not set
  40.375 +# CONFIG_BT is not set
  40.376 +# CONFIG_NETDEVICES is not set
  40.377 +
  40.378 +#
  40.379 +# ISDN subsystem
  40.380 +#
  40.381 +# CONFIG_ISDN is not set
  40.382 +
  40.383 +#
  40.384 +# Telephony Support
  40.385 +#
  40.386 +# CONFIG_PHONE is not set
  40.387 +
  40.388 +#
  40.389 +# Input device support
  40.390 +#
  40.391 +CONFIG_INPUT=y
  40.392 +
  40.393 +#
  40.394 +# Userland interfaces
  40.395 +#
  40.396 +CONFIG_INPUT_MOUSEDEV=y
  40.397 +CONFIG_INPUT_MOUSEDEV_PSAUX=y
  40.398 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
  40.399 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
  40.400 +# CONFIG_INPUT_JOYDEV is not set
  40.401 +# CONFIG_INPUT_TSDEV is not set
  40.402 +# CONFIG_INPUT_EVDEV is not set
  40.403 +# CONFIG_INPUT_EVBUG is not set
  40.404 +
  40.405 +#
  40.406 +# Input I/O drivers
  40.407 +#
  40.408 +# CONFIG_GAMEPORT is not set
  40.409 +CONFIG_SOUND_GAMEPORT=y
  40.410 +CONFIG_SERIO=y
  40.411 +CONFIG_SERIO_I8042=y
  40.412 +CONFIG_SERIO_SERPORT=y
  40.413 +# CONFIG_SERIO_CT82C710 is not set
  40.414 +# CONFIG_SERIO_PCIPS2 is not set
  40.415 +# CONFIG_SERIO_RAW is not set
  40.416 +
  40.417 +#
  40.418 +# Input Device Drivers
  40.419 +#
  40.420 +CONFIG_INPUT_KEYBOARD=y
  40.421 +CONFIG_KEYBOARD_ATKBD=y
  40.422 +# CONFIG_KEYBOARD_SUNKBD is not set
  40.423 +# CONFIG_KEYBOARD_LKKBD is not set
  40.424 +# CONFIG_KEYBOARD_XTKBD is not set
  40.425 +# CONFIG_KEYBOARD_NEWTON is not set
  40.426 +CONFIG_INPUT_MOUSE=y
  40.427 +CONFIG_MOUSE_PS2=y
  40.428 +# CONFIG_MOUSE_SERIAL is not set
  40.429 +# CONFIG_MOUSE_VSXXXAA is not set
  40.430 +# CONFIG_INPUT_JOYSTICK is not set
  40.431 +# CONFIG_INPUT_TOUCHSCREEN is not set
  40.432 +# CONFIG_INPUT_MISC is not set
  40.433 +
  40.434 +#
  40.435 +# Character devices
  40.436 +#
  40.437 +CONFIG_VT=y
  40.438 +CONFIG_VT_CONSOLE=y
  40.439 +CONFIG_HW_CONSOLE=y
  40.440 +# CONFIG_SERIAL_NONSTANDARD is not set
  40.441 +
  40.442 +#
  40.443 +# Serial drivers
  40.444 +#
  40.445 +# CONFIG_SERIAL_8250 is not set
  40.446 +
  40.447 +#
  40.448 +# Non-8250 serial port support
  40.449 +#
  40.450 +CONFIG_UNIX98_PTYS=y
  40.451 +CONFIG_LEGACY_PTYS=y
  40.452 +CONFIG_LEGACY_PTY_COUNT=256
  40.453 +
  40.454 +#
  40.455 +# IPMI
  40.456 +#
  40.457 +# CONFIG_IPMI_HANDLER is not set
  40.458 +
  40.459 +#
  40.460 +# Watchdog Cards
  40.461 +#
  40.462 +# CONFIG_WATCHDOG is not set
  40.463 +# CONFIG_HW_RANDOM is not set
  40.464 +# CONFIG_NVRAM is not set
  40.465 +# CONFIG_RTC is not set
  40.466 +# CONFIG_GEN_RTC is not set
  40.467 +# CONFIG_DTLK is not set
  40.468 +# CONFIG_R3964 is not set
  40.469 +# CONFIG_APPLICOM is not set
  40.470 +
  40.471 +#
  40.472 +# Ftape, the floppy tape device driver
  40.473 +#
  40.474 +# CONFIG_FTAPE is not set
  40.475 +# CONFIG_AGP is not set
  40.476 +# CONFIG_DRM is not set
  40.477 +# CONFIG_MWAVE is not set
  40.478 +# CONFIG_RAW_DRIVER is not set
  40.479 +# CONFIG_HANGCHECK_TIMER is not set
  40.480 +
  40.481 +#
  40.482 +# I2C support
  40.483 +#
  40.484 +# CONFIG_I2C is not set
  40.485 +
  40.486 +#
  40.487 +# Dallas's 1-wire bus
  40.488 +#
  40.489 +# CONFIG_W1 is not set
  40.490 +
  40.491 +#
  40.492 +# Misc devices
  40.493 +#
  40.494 +
  40.495 +#
  40.496 +# Multimedia devices
  40.497 +#
  40.498 +# CONFIG_VIDEO_DEV is not set
  40.499 +
  40.500 +#
  40.501 +# Digital Video Broadcasting Devices
  40.502 +#
  40.503 +# CONFIG_DVB is not set
  40.504 +
  40.505 +#
  40.506 +# Graphics support
  40.507 +#
  40.508 +# CONFIG_FB is not set
  40.509 +# CONFIG_VIDEO_SELECT is not set
  40.510 +
  40.511 +#
  40.512 +# Console display driver support
  40.513 +#
  40.514 +CONFIG_VGA_CONSOLE=y
  40.515 +CONFIG_DUMMY_CONSOLE=y
  40.516 +
  40.517 +#
  40.518 +# Sound
  40.519 +#
  40.520 +# CONFIG_SOUND is not set
  40.521 +
  40.522 +#
  40.523 +# USB support
  40.524 +#
  40.525 +# CONFIG_USB is not set
  40.526 +CONFIG_USB_ARCH_HAS_HCD=y
  40.527 +CONFIG_USB_ARCH_HAS_OHCI=y
  40.528 +
  40.529 +#
  40.530 +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
  40.531 +#
  40.532 +
  40.533 +#
  40.534 +# USB Gadget Support
  40.535 +#
  40.536 +# CONFIG_USB_GADGET is not set
  40.537 +
  40.538 +#
  40.539 +# File systems
  40.540 +#
  40.541 +CONFIG_EXT2_FS=y
  40.542 +CONFIG_EXT2_FS_XATTR=y
  40.543 +# CONFIG_EXT2_FS_POSIX_ACL is not set
  40.544 +# CONFIG_EXT2_FS_SECURITY is not set
  40.545 +CONFIG_EXT3_FS=y
  40.546 +CONFIG_EXT3_FS_XATTR=y
  40.547 +# CONFIG_EXT3_FS_POSIX_ACL is not set
  40.548 +# CONFIG_EXT3_FS_SECURITY is not set
  40.549 +CONFIG_JBD=y
  40.550 +# CONFIG_JBD_DEBUG is not set
  40.551 +CONFIG_FS_MBCACHE=y
  40.552 +# CONFIG_REISERFS_FS is not set
  40.553 +# CONFIG_JFS_FS is not set
  40.554 +# CONFIG_XFS_FS is not set
  40.555 +# CONFIG_MINIX_FS is not set
  40.556 +# CONFIG_ROMFS_FS is not set
  40.557 +# CONFIG_QUOTA is not set
  40.558 +CONFIG_DNOTIFY=y
  40.559 +# CONFIG_AUTOFS_FS is not set
  40.560 +# CONFIG_AUTOFS4_FS is not set
  40.561 +
  40.562 +#
  40.563 +# CD-ROM/DVD Filesystems
  40.564 +#
  40.565 +CONFIG_ISO9660_FS=y
  40.566 +CONFIG_JOLIET=y
  40.567 +CONFIG_ZISOFS=y
  40.568 +CONFIG_ZISOFS_FS=y
  40.569 +CONFIG_UDF_FS=y
  40.570 +CONFIG_UDF_NLS=y
  40.571 +
  40.572 +#
  40.573 +# DOS/FAT/NT Filesystems
  40.574 +#
  40.575 +CONFIG_FAT_FS=y
  40.576 +CONFIG_MSDOS_FS=y
  40.577 +CONFIG_VFAT_FS=y
  40.578 +CONFIG_FAT_DEFAULT_CODEPAGE=437
  40.579 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
  40.580 +# CONFIG_NTFS_FS is not set
  40.581 +
  40.582 +#
  40.583 +# Pseudo filesystems
  40.584 +#
  40.585 +CONFIG_PROC_FS=y
  40.586 +CONFIG_PROC_KCORE=y
  40.587 +CONFIG_SYSFS=y
  40.588 +CONFIG_DEVPTS_FS_XATTR=y
  40.589 +CONFIG_DEVPTS_FS_SECURITY=y
  40.590 +CONFIG_TMPFS=y
  40.591 +CONFIG_TMPFS_XATTR=y
  40.592 +CONFIG_TMPFS_SECURITY=y
  40.593 +# CONFIG_HUGETLBFS is not set
  40.594 +# CONFIG_HUGETLB_PAGE is not set
  40.595 +CONFIG_RAMFS=y
  40.596 +
  40.597 +#
  40.598 +# Miscellaneous filesystems
  40.599 +#
  40.600 +# CONFIG_HFSPLUS_FS is not set
  40.601 +# CONFIG_CRAMFS is not set
  40.602 +# CONFIG_VXFS_FS is not set
  40.603 +# CONFIG_HPFS_FS is not set
  40.604 +# CONFIG_QNX4FS_FS is not set
  40.605 +# CONFIG_SYSV_FS is not set
  40.606 +# CONFIG_UFS_FS is not set
  40.607 +
  40.608 +#
  40.609 +# Network File Systems
  40.610 +#
  40.611 +# CONFIG_NFS_FS is not set
  40.612 +# CONFIG_NFSD is not set
  40.613 +# CONFIG_EXPORTFS is not set
  40.614 +# CONFIG_SMB_FS is not set
  40.615 +# CONFIG_CIFS is not set
  40.616 +# CONFIG_NCP_FS is not set
  40.617 +# CONFIG_CODA_FS is not set
  40.618 +
  40.619 +#
  40.620 +# Partition Types
  40.621 +#
  40.622 +CONFIG_PARTITION_ADVANCED=y
  40.623 +# CONFIG_ACORN_PARTITION is not set
  40.624 +# CONFIG_OSF_PARTITION is not set
  40.625 +# CONFIG_AMIGA_PARTITION is not set
  40.626 +# CONFIG_ATARI_PARTITION is not set
  40.627 +# CONFIG_MAC_PARTITION is not set
  40.628 +CONFIG_MSDOS_PARTITION=y
  40.629 +CONFIG_BSD_DISKLABEL=y
  40.630 +# CONFIG_MINIX_SUBPARTITION is not set
  40.631 +# CONFIG_SOLARIS_X86_PARTITION is not set
  40.632 +# CONFIG_UNIXWARE_DISKLABEL is not set
  40.633 +# CONFIG_LDM_PARTITION is not set
  40.634 +# CONFIG_SGI_PARTITION is not set
  40.635 +# CONFIG_ULTRIX_PARTITION is not set
  40.636 +# CONFIG_SUN_PARTITION is not set
  40.637 +CONFIG_EFI_PARTITION=y
  40.638 +
  40.639 +#
  40.640 +# Native Language Support
  40.641 +#
  40.642 +CONFIG_NLS=y
  40.643 +CONFIG_NLS_DEFAULT="utf8"
  40.644 +CONFIG_NLS_CODEPAGE_437=y
  40.645 +# CONFIG_NLS_CODEPAGE_737 is not set
  40.646 +# CONFIG_NLS_CODEPAGE_775 is not set
  40.647 +# CONFIG_NLS_CODEPAGE_850 is not set
  40.648 +# CONFIG_NLS_CODEPAGE_852 is not set
  40.649 +# CONFIG_NLS_CODEPAGE_855 is not set
  40.650 +# CONFIG_NLS_CODEPAGE_857 is not set
  40.651 +# CONFIG_NLS_CODEPAGE_860 is not set
  40.652 +# CONFIG_NLS_CODEPAGE_861 is not set
  40.653 +# CONFIG_NLS_CODEPAGE_862 is not set
  40.654 +# CONFIG_NLS_CODEPAGE_863 is not set
  40.655 +# CONFIG_NLS_CODEPAGE_864 is not set
  40.656 +# CONFIG_NLS_CODEPAGE_865 is not set
  40.657 +# CONFIG_NLS_CODEPAGE_866 is not set
  40.658 +# CONFIG_NLS_CODEPAGE_869 is not set
  40.659 +# CONFIG_NLS_CODEPAGE_936 is not set
  40.660 +# CONFIG_NLS_CODEPAGE_950 is not set
  40.661 +# CONFIG_NLS_CODEPAGE_932 is not set
  40.662 +# CONFIG_NLS_CODEPAGE_949 is not set
  40.663 +# CONFIG_NLS_CODEPAGE_874 is not set
  40.664 +# CONFIG_NLS_ISO8859_8 is not set
  40.665 +# CONFIG_NLS_CODEPAGE_1250 is not set
  40.666 +# CONFIG_NLS_CODEPAGE_1251 is not set
  40.667 +# CONFIG_NLS_ASCII is not set
  40.668 +# CONFIG_NLS_ISO8859_1 is not set
  40.669 +# CONFIG_NLS_ISO8859_2 is not set
  40.670 +# CONFIG_NLS_ISO8859_3 is not set
  40.671 +# CONFIG_NLS_ISO8859_4 is not set
  40.672 +# CONFIG_NLS_ISO8859_5 is not set
  40.673 +# CONFIG_NLS_ISO8859_6 is not set
  40.674 +# CONFIG_NLS_ISO8859_7 is not set
  40.675 +# CONFIG_NLS_ISO8859_9 is not set
  40.676 +# CONFIG_NLS_ISO8859_13 is not set
  40.677 +# CONFIG_NLS_ISO8859_14 is not set
  40.678 +# CONFIG_NLS_ISO8859_15 is not set
  40.679 +# CONFIG_NLS_KOI8_R is not set
  40.680 +# CONFIG_NLS_KOI8_U is not set
  40.681 +# CONFIG_NLS_UTF8 is not set
  40.682 +
  40.683 +#
  40.684 +# Security options
  40.685 +#
  40.686 +# CONFIG_KEYS is not set
  40.687 +# CONFIG_SECURITY is not set
  40.688 +
  40.689 +#
  40.690 +# Cryptographic options
  40.691 +#
  40.692 +# CONFIG_CRYPTO is not set
  40.693 +
  40.694 +#
  40.695 +# Library routines
  40.696 +#
  40.697 +CONFIG_CRC_CCITT=y
  40.698 +CONFIG_CRC32=y
  40.699 +CONFIG_LIBCRC32C=y
  40.700 +CONFIG_ZLIB_INFLATE=y
  40.701 +
  40.702 +#
  40.703 +# Firmware Drivers
  40.704 +#
  40.705 +CONFIG_PCI_LEGACY_PROC=y
  40.706 +CONFIG_PCI_NAMES=y
    41.1 --- a/linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig	Mon Apr 04 10:52:11 2005 +0000
    41.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.3 @@ -1,522 +0,0 @@
    41.4 -#
    41.5 -# Automatically generated make config: don't edit
    41.6 -# Linux kernel version: 2.6.11-xenU
    41.7 -# Fri Mar 11 01:20:28 2005
    41.8 -#
    41.9 -CONFIG_XEN=y
   41.10 -CONFIG_ARCH_XEN=y
   41.11 -CONFIG_NO_IDLE_HZ=y
   41.12 -
   41.13 -#
   41.14 -# XEN
   41.15 -#
   41.16 -# CONFIG_XEN_PRIVILEGED_GUEST is not set
   41.17 -# CONFIG_XEN_PHYSDEV_ACCESS is not set
   41.18 -CONFIG_XEN_BLKDEV_FRONTEND=y
   41.19 -CONFIG_XEN_NETDEV_FRONTEND=y
   41.20 -# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
   41.21 -# CONFIG_XEN_BLKDEV_TAP is not set
   41.22 -CONFIG_XEN_WRITABLE_PAGETABLES=y
   41.23 -CONFIG_XEN_SCRUB_PAGES=y
   41.24 -CONFIG_X86=y
   41.25 -# CONFIG_X86_64 is not set
   41.26 -CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y
   41.27 -
   41.28 -#
   41.29 -# Code maturity level options
   41.30 -#
   41.31 -CONFIG_EXPERIMENTAL=y
   41.32 -CONFIG_CLEAN_COMPILE=y
   41.33 -CONFIG_BROKEN_ON_SMP=y
   41.34 -CONFIG_LOCK_KERNEL=y
   41.35 -
   41.36 -#
   41.37 -# General setup
   41.38 -#
   41.39 -CONFIG_LOCALVERSION=""
   41.40 -CONFIG_SWAP=y
   41.41 -CONFIG_SYSVIPC=y
   41.42 -# CONFIG_POSIX_MQUEUE is not set
   41.43 -# CONFIG_BSD_PROCESS_ACCT is not set
   41.44 -CONFIG_SYSCTL=y
   41.45 -# CONFIG_AUDIT is not set
   41.46 -CONFIG_LOG_BUF_SHIFT=14
   41.47 -CONFIG_HOTPLUG=y
   41.48 -CONFIG_KOBJECT_UEVENT=y
   41.49 -# CONFIG_IKCONFIG is not set
   41.50 -# CONFIG_EMBEDDED is not set
   41.51 -CONFIG_KALLSYMS=y
   41.52 -# CONFIG_KALLSYMS_EXTRA_PASS is not set
   41.53 -CONFIG_FUTEX=y
   41.54 -CONFIG_EPOLL=y
   41.55 -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
   41.56 -CONFIG_SHMEM=y
   41.57 -CONFIG_CC_ALIGN_FUNCTIONS=0
   41.58 -CONFIG_CC_ALIGN_LABELS=0
   41.59 -CONFIG_CC_ALIGN_LOOPS=0
   41.60 -CONFIG_CC_ALIGN_JUMPS=0
   41.61 -# CONFIG_TINY_SHMEM is not set
   41.62 -
   41.63 -#
   41.64 -# Loadable module support
   41.65 -#
   41.66 -CONFIG_MODULES=y
   41.67 -CONFIG_MODULE_UNLOAD=y
   41.68 -# CONFIG_MODULE_FORCE_UNLOAD is not set
   41.69 -CONFIG_OBSOLETE_MODPARM=y
   41.70 -# CONFIG_MODVERSIONS is not set
   41.71 -# CONFIG_MODULE_SRCVERSION_ALL is not set
   41.72 -CONFIG_KMOD=y
   41.73 -
   41.74 -#
   41.75 -# X86 Processor Configuration
   41.76 -#
   41.77 -CONFIG_XENARCH="i386"
   41.78 -CONFIG_MMU=y
   41.79 -CONFIG_UID16=y
   41.80 -CONFIG_GENERIC_ISA_DMA=y
   41.81 -CONFIG_GENERIC_IOMAP=y
   41.82 -# CONFIG_M386 is not set
   41.83 -# CONFIG_M486 is not set
   41.84 -# CONFIG_M586 is not set
   41.85 -# CONFIG_M586TSC is not set
   41.86 -# CONFIG_M586MMX is not set
   41.87 -# CONFIG_M686 is not set
   41.88 -# CONFIG_MPENTIUMII is not set
   41.89 -# CONFIG_MPENTIUMIII is not set
   41.90 -# CONFIG_MPENTIUMM is not set
   41.91 -CONFIG_MPENTIUM4=y
   41.92 -# CONFIG_MK6 is not set
   41.93 -# CONFIG_MK7 is not set
   41.94 -# CONFIG_MK8 is not set
   41.95 -# CONFIG_MCRUSOE is not set
   41.96 -# CONFIG_MEFFICEON is not set
   41.97 -# CONFIG_MWINCHIPC6 is not set
   41.98 -# CONFIG_MWINCHIP2 is not set
   41.99 -# CONFIG_MWINCHIP3D is not set
  41.100 -# CONFIG_MCYRIXIII is not set
  41.101 -# CONFIG_MVIAC3_2 is not set
  41.102 -# CONFIG_X86_GENERIC is not set
  41.103 -CONFIG_X86_CMPXCHG=y
  41.104 -CONFIG_X86_XADD=y
  41.105 -CONFIG_X86_L1_CACHE_SHIFT=7
  41.106 -CONFIG_RWSEM_XCHGADD_ALGORITHM=y
  41.107 -CONFIG_GENERIC_CALIBRATE_DELAY=y
  41.108 -CONFIG_X86_WP_WORKS_OK=y
  41.109 -CONFIG_X86_INVLPG=y
  41.110 -CONFIG_X86_BSWAP=y
  41.111 -CONFIG_X86_POPAD_OK=y
  41.112 -CONFIG_X86_GOOD_APIC=y
  41.113 -CONFIG_X86_INTEL_USERCOPY=y
  41.114 -CONFIG_X86_USE_PPRO_CHECKSUM=y
  41.115 -# CONFIG_HPET_TIMER is not set
  41.116 -# CONFIG_HPET_EMULATE_RTC is not set
  41.117 -# CONFIG_SMP is not set
  41.118 -CONFIG_PREEMPT=y
  41.119 -CONFIG_PREEMPT_BKL=y
  41.120 -CONFIG_X86_CPUID=y
  41.121 -
  41.122 -#
  41.123 -# Firmware Drivers
  41.124 -#
  41.125 -# CONFIG_EDD is not set
  41.126 -CONFIG_NOHIGHMEM=y
  41.127 -# CONFIG_HIGHMEM4G is not set
  41.128 -CONFIG_HAVE_DEC_LOCK=y
  41.129 -# CONFIG_REGPARM is not set
  41.130 -
  41.131 -#
  41.132 -# Kernel hacking
  41.133 -#
  41.134 -# CONFIG_DEBUG_KERNEL is not set
  41.135 -CONFIG_EARLY_PRINTK=y
  41.136 -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
  41.137 -# CONFIG_FRAME_POINTER is not set
  41.138 -# CONFIG_4KSTACKS is not set
  41.139 -CONFIG_GENERIC_HARDIRQS=y
  41.140 -CONFIG_GENERIC_IRQ_PROBE=y
  41.141 -CONFIG_X86_BIOS_REBOOT=y
  41.142 -CONFIG_PC=y
  41.143 -
  41.144 -#
  41.145 -# Executable file formats
  41.146 -#
  41.147 -CONFIG_BINFMT_ELF=y
  41.148 -# CONFIG_BINFMT_AOUT is not set
  41.149 -# CONFIG_BINFMT_MISC is not set
  41.150 -
  41.151 -#
  41.152 -# Device Drivers
  41.153 -#
  41.154 -
  41.155 -#
  41.156 -# Generic Driver Options
  41.157 -#
  41.158 -CONFIG_STANDALONE=y
  41.159 -CONFIG_PREVENT_FIRMWARE_BUILD=y
  41.160 -# CONFIG_FW_LOADER is not set
  41.161 -
  41.162 -#
  41.163 -# Block devices
  41.164 -#
  41.165 -# CONFIG_BLK_DEV_FD is not set
  41.166 -# CONFIG_BLK_DEV_COW_COMMON is not set
  41.167 -CONFIG_BLK_DEV_LOOP=m
  41.168 -# CONFIG_BLK_DEV_CRYPTOLOOP is not set
  41.169 -CONFIG_BLK_DEV_NBD=m
  41.170 -CONFIG_BLK_DEV_RAM=y
  41.171 -CONFIG_BLK_DEV_RAM_COUNT=16
  41.172 -CONFIG_BLK_DEV_RAM_SIZE=4096
  41.173 -CONFIG_BLK_DEV_INITRD=y
  41.174 -CONFIG_INITRAMFS_SOURCE=""
  41.175 -# CONFIG_LBD is not set
  41.176 -# CONFIG_CDROM_PKTCDVD is not set
  41.177 -
  41.178 -#
  41.179 -# IO Schedulers
  41.180 -#
  41.181 -CONFIG_IOSCHED_NOOP=y
  41.182 -CONFIG_IOSCHED_AS=y
  41.183 -CONFIG_IOSCHED_DEADLINE=y
  41.184 -CONFIG_IOSCHED_CFQ=y
  41.185 -# CONFIG_ATA_OVER_ETH is not set
  41.186 -
  41.187 -#
  41.188 -# SCSI device support
  41.189 -#
  41.190 -CONFIG_SCSI=m
  41.191 -CONFIG_SCSI_PROC_FS=y
  41.192 -
  41.193 -#
  41.194 -# SCSI support type (disk, tape, CD-ROM)
  41.195 -#
  41.196 -CONFIG_BLK_DEV_SD=m
  41.197 -# CONFIG_CHR_DEV_ST is not set
  41.198 -# CONFIG_CHR_DEV_OSST is not set
  41.199 -# CONFIG_BLK_DEV_SR is not set
  41.200 -# CONFIG_CHR_DEV_SG is not set
  41.201 -
  41.202 -#
  41.203 -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
  41.204 -#
  41.205 -# CONFIG_SCSI_MULTI_LUN is not set
  41.206 -# CONFIG_SCSI_CONSTANTS is not set
  41.207 -# CONFIG_SCSI_LOGGING is not set
  41.208 -
  41.209 -#
  41.210 -# SCSI Transport Attributes
  41.211 -#
  41.212 -# CONFIG_SCSI_SPI_ATTRS is not set
  41.213 -# CONFIG_SCSI_FC_ATTRS is not set
  41.214 -# CONFIG_SCSI_ISCSI_ATTRS is not set
  41.215 -
  41.216 -#
  41.217 -# SCSI low-level drivers
  41.218 -#
  41.219 -# CONFIG_SCSI_SATA is not set
  41.220 -# CONFIG_SCSI_DEBUG is not set
  41.221 -
  41.222 -#
  41.223 -# Multi-device support (RAID and LVM)
  41.224 -#
  41.225 -# CONFIG_MD is not set
  41.226 -
  41.227 -#
  41.228 -# Networking support
  41.229 -#
  41.230 -CONFIG_NET=y
  41.231 -
  41.232 -#
  41.233 -# Networking options
  41.234 -#
  41.235 -CONFIG_PACKET=y
  41.236 -# CONFIG_PACKET_MMAP is not set
  41.237 -# CONFIG_NETLINK_DEV is not set
  41.238 -CONFIG_UNIX=y
  41.239 -# CONFIG_NET_KEY is not set
  41.240 -CONFIG_INET=y
  41.241 -# CONFIG_IP_MULTICAST is not set
  41.242 -# CONFIG_IP_ADVANCED_ROUTER is not set
  41.243 -CONFIG_IP_PNP=y
  41.244 -# CONFIG_IP_PNP_DHCP is not set
  41.245 -# CONFIG_IP_PNP_BOOTP is not set
  41.246 -# CONFIG_IP_PNP_RARP is not set
  41.247 -# CONFIG_NET_IPIP is not set
  41.248 -# CONFIG_NET_IPGRE is not set
  41.249 -# CONFIG_ARPD is not set
  41.250 -# CONFIG_SYN_COOKIES is not set
  41.251 -# CONFIG_INET_AH is not set
  41.252 -# CONFIG_INET_ESP is not set
  41.253 -# CONFIG_INET_IPCOMP is not set
  41.254 -# CONFIG_INET_TUNNEL is not set
  41.255 -CONFIG_IP_TCPDIAG=y
  41.256 -# CONFIG_IP_TCPDIAG_IPV6 is not set
  41.257 -# CONFIG_IPV6 is not set
  41.258 -# CONFIG_NETFILTER is not set
  41.259 -
  41.260 -#
  41.261 -# SCTP Configuration (EXPERIMENTAL)
  41.262 -#
  41.263 -# CONFIG_IP_SCTP is not set
  41.264 -# CONFIG_ATM is not set
  41.265 -# CONFIG_BRIDGE is not set
  41.266 -# CONFIG_VLAN_8021Q is not set
  41.267 -# CONFIG_DECNET is not set
  41.268 -# CONFIG_LLC2 is not set
  41.269 -# CONFIG_IPX is not set
  41.270 -# CONFIG_ATALK is not set
  41.271 -# CONFIG_X25 is not set
  41.272 -# CONFIG_LAPB is not set
  41.273 -# CONFIG_NET_DIVERT is not set
  41.274 -# CONFIG_ECONET is not set
  41.275 -# CONFIG_WAN_ROUTER is not set
  41.276 -
  41.277 -#
  41.278 -# QoS and/or fair queueing
  41.279 -#
  41.280 -# CONFIG_NET_SCHED is not set
  41.281 -# CONFIG_NET_CLS_ROUTE is not set
  41.282 -
  41.283 -#
  41.284 -# Network testing
  41.285 -#
  41.286 -# CONFIG_NET_PKTGEN is not set
  41.287 -# CONFIG_NETPOLL is not set
  41.288 -# CONFIG_NET_POLL_CONTROLLER is not set
  41.289 -# CONFIG_HAMRADIO is not set
  41.290 -# CONFIG_IRDA is not set
  41.291 -# CONFIG_BT is not set
  41.292 -CONFIG_NETDEVICES=y
  41.293 -# CONFIG_DUMMY is not set
  41.294 -# CONFIG_BONDING is not set
  41.295 -# CONFIG_EQUALIZER is not set
  41.296 -# CONFIG_TUN is not set
  41.297 -
  41.298 -#
  41.299 -# Ethernet (10 or 100Mbit)
  41.300 -#
  41.301 -# CONFIG_NET_ETHERNET is not set
  41.302 -
  41.303 -#
  41.304 -# Ethernet (1000 Mbit)
  41.305 -#
  41.306 -
  41.307 -#
  41.308 -# Ethernet (10000 Mbit)
  41.309 -#
  41.310 -
  41.311 -#
  41.312 -# Token Ring devices
  41.313 -#
  41.314 -
  41.315 -#
  41.316 -# Wireless LAN (non-hamradio)
  41.317 -#
  41.318 -# CONFIG_NET_RADIO is not set
  41.319 -
  41.320 -#
  41.321 -# Wan interfaces
  41.322 -#
  41.323 -# CONFIG_WAN is not set
  41.324 -# CONFIG_PPP is not set
  41.325 -# CONFIG_SLIP is not set
  41.326 -# CONFIG_SHAPER is not set
  41.327 -# CONFIG_NETCONSOLE is not set
  41.328 -CONFIG_UNIX98_PTYS=y
  41.329 -
  41.330 -#
  41.331 -# File systems
  41.332 -#
  41.333 -CONFIG_EXT2_FS=y
  41.334 -# CONFIG_EXT2_FS_XATTR is not set
  41.335 -CONFIG_EXT3_FS=y
  41.336 -CONFIG_EXT3_FS_XATTR=y
  41.337 -# CONFIG_EXT3_FS_POSIX_ACL is not set
  41.338 -# CONFIG_EXT3_FS_SECURITY is not set
  41.339 -CONFIG_JBD=y
  41.340 -# CONFIG_JBD_DEBUG is not set
  41.341 -CONFIG_FS_MBCACHE=y
  41.342 -CONFIG_REISERFS_FS=y
  41.343 -# CONFIG_REISERFS_CHECK is not set
  41.344 -# CONFIG_REISERFS_PROC_INFO is not set
  41.345 -# CONFIG_REISERFS_FS_XATTR is not set
  41.346 -# CONFIG_JFS_FS is not set
  41.347 -
  41.348 -#
  41.349 -# XFS support
  41.350 -#
  41.351 -# CONFIG_XFS_FS is not set
  41.352 -# CONFIG_MINIX_FS is not set
  41.353 -# CONFIG_ROMFS_FS is not set
  41.354 -# CONFIG_QUOTA is not set
  41.355 -CONFIG_DNOTIFY=y
  41.356 -CONFIG_AUTOFS_FS=y
  41.357 -CONFIG_AUTOFS4_FS=y
  41.358 -
  41.359 -#
  41.360 -# CD-ROM/DVD Filesystems
  41.361 -#
  41.362 -CONFIG_ISO9660_FS=y
  41.363 -CONFIG_JOLIET=y
  41.364 -CONFIG_ZISOFS=y
  41.365 -CONFIG_ZISOFS_FS=y
  41.366 -# CONFIG_UDF_FS is not set
  41.367 -
  41.368 -#
  41.369 -# DOS/FAT/NT Filesystems
  41.370 -#
  41.371 -CONFIG_FAT_FS=m
  41.372 -CONFIG_MSDOS_FS=m
  41.373 -CONFIG_VFAT_FS=m
  41.374 -CONFIG_FAT_DEFAULT_CODEPAGE=437
  41.375 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
  41.376 -# CONFIG_NTFS_FS is not set
  41.377 -
  41.378 -#
  41.379 -# Pseudo filesystems
  41.380 -#
  41.381 -CONFIG_PROC_FS=y
  41.382 -CONFIG_PROC_KCORE=y
  41.383 -CONFIG_SYSFS=y
  41.384 -# CONFIG_DEVFS_FS is not set
  41.385 -CONFIG_DEVPTS_FS_XATTR=y
  41.386 -# CONFIG_DEVPTS_FS_SECURITY is not set
  41.387 -CONFIG_TMPFS=y
  41.388 -# CONFIG_TMPFS_XATTR is not set
  41.389 -# CONFIG_HUGETLBFS is not set
  41.390 -# CONFIG_HUGETLB_PAGE is not set
  41.391 -CONFIG_RAMFS=y
  41.392 -
  41.393 -#
  41.394 -# Miscellaneous filesystems
  41.395 -#
  41.396 -# CONFIG_ADFS_FS is not set
  41.397 -# CONFIG_AFFS_FS is not set
  41.398 -# CONFIG_HFS_FS is not set
  41.399 -# CONFIG_HFSPLUS_FS is not set
  41.400 -# CONFIG_BEFS_FS is not set
  41.401 -# CONFIG_BFS_FS is not set
  41.402 -# CONFIG_EFS_FS is not set
  41.403 -# CONFIG_CRAMFS is not set
  41.404 -# CONFIG_VXFS_FS is not set
  41.405 -# CONFIG_HPFS_FS is not set
  41.406 -# CONFIG_QNX4FS_FS is not set
  41.407 -# CONFIG_SYSV_FS is not set
  41.408 -# CONFIG_UFS_FS is not set
  41.409 -
  41.410 -#
  41.411 -# Network File Systems
  41.412 -#
  41.413 -CONFIG_NFS_FS=y
  41.414 -CONFIG_NFS_V3=y
  41.415 -# CONFIG_NFS_V4 is not set
  41.416 -# CONFIG_NFS_DIRECTIO is not set
  41.417 -# CONFIG_NFSD is not set
  41.418 -CONFIG_ROOT_NFS=y
  41.419 -CONFIG_LOCKD=y
  41.420 -CONFIG_LOCKD_V4=y
  41.421 -CONFIG_SUNRPC=y
  41.422 -# CONFIG_RPCSEC_GSS_KRB5 is not set
  41.423 -# CONFIG_RPCSEC_GSS_SPKM3 is not set
  41.424 -# CONFIG_SMB_FS is not set
  41.425 -# CONFIG_CIFS is not set
  41.426 -# CONFIG_NCP_FS is not set
  41.427 -# CONFIG_CODA_FS is not set
  41.428 -# CONFIG_AFS_FS is not set
  41.429 -
  41.430 -#
  41.431 -# Partition Types
  41.432 -#
  41.433 -# CONFIG_PARTITION_ADVANCED is not set
  41.434 -CONFIG_MSDOS_PARTITION=y
  41.435 -
  41.436 -#
  41.437 -# Native Language Support
  41.438 -#
  41.439 -CONFIG_NLS=y
  41.440 -CONFIG_NLS_DEFAULT="iso8859-1"
  41.441 -CONFIG_NLS_CODEPAGE_437=y
  41.442 -# CONFIG_NLS_CODEPAGE_737 is not set
  41.443 -# CONFIG_NLS_CODEPAGE_775 is not set
  41.444 -# CONFIG_NLS_CODEPAGE_850 is not set
  41.445 -# CONFIG_NLS_CODEPAGE_852 is not set
  41.446 -# CONFIG_NLS_CODEPAGE_855 is not set
  41.447 -# CONFIG_NLS_CODEPAGE_857 is not set
  41.448 -# CONFIG_NLS_CODEPAGE_860 is not set
  41.449 -# CONFIG_NLS_CODEPAGE_861 is not set
  41.450 -# CONFIG_NLS_CODEPAGE_862 is not set
  41.451 -# CONFIG_NLS_CODEPAGE_863 is not set
  41.452 -# CONFIG_NLS_CODEPAGE_864 is not set
  41.453 -# CONFIG_NLS_CODEPAGE_865 is not set
  41.454 -# CONFIG_NLS_CODEPAGE_866 is not set
  41.455 -# CONFIG_NLS_CODEPAGE_869 is not set
  41.456 -# CONFIG_NLS_CODEPAGE_936 is not set
  41.457 -# CONFIG_NLS_CODEPAGE_950 is not set
  41.458 -# CONFIG_NLS_CODEPAGE_932 is not set
  41.459 -# CONFIG_NLS_CODEPAGE_949 is not set
  41.460 -# CONFIG_NLS_CODEPAGE_874 is not set
  41.461 -# CONFIG_NLS_ISO8859_8 is not set
  41.462 -# CONFIG_NLS_CODEPAGE_1250 is not set
  41.463 -# CONFIG_NLS_CODEPAGE_1251 is not set
  41.464 -# CONFIG_NLS_ASCII is not set
  41.465 -CONFIG_NLS_ISO8859_1=y
  41.466 -# CONFIG_NLS_ISO8859_2 is not set
  41.467 -# CONFIG_NLS_ISO8859_3 is not set
  41.468 -# CONFIG_NLS_ISO8859_4 is not set
  41.469 -# CONFIG_NLS_ISO8859_5 is not set
  41.470 -# CONFIG_NLS_ISO8859_6 is not set
  41.471 -# CONFIG_NLS_ISO8859_7 is not set
  41.472 -# CONFIG_NLS_ISO8859_9 is not set
  41.473 -# CONFIG_NLS_ISO8859_13 is not set
  41.474 -# CONFIG_NLS_ISO8859_14 is not set
  41.475 -# CONFIG_NLS_ISO8859_15 is not set
  41.476 -# CONFIG_NLS_KOI8_R is not set
  41.477 -# CONFIG_NLS_KOI8_U is not set
  41.478 -# CONFIG_NLS_UTF8 is not set
  41.479 -
  41.480 -#
  41.481 -# Security options
  41.482 -#
  41.483 -# CONFIG_KEYS is not set
  41.484 -# CONFIG_SECURITY is not set
  41.485 -
  41.486 -#
  41.487 -# Cryptographic options
  41.488 -#
  41.489 -CONFIG_CRYPTO=y
  41.490 -# CONFIG_CRYPTO_HMAC is not set
  41.491 -# CONFIG_CRYPTO_NULL is not set
  41.492 -# CONFIG_CRYPTO_MD4 is not set
  41.493 -CONFIG_CRYPTO_MD5=m
  41.494 -# CONFIG_CRYPTO_SHA1 is not set
  41.495 -# CONFIG_CRYPTO_SHA256 is not set
  41.496 -# CONFIG_CRYPTO_SHA512 is not set
  41.497 -# CONFIG_CRYPTO_WP512 is not set
  41.498 -# CONFIG_CRYPTO_DES is not set
  41.499 -# CONFIG_CRYPTO_BLOWFISH is not set
  41.500 -# CONFIG_CRYPTO_TWOFISH is not set
  41.501 -# CONFIG_CRYPTO_SERPENT is not set
  41.502 -# CONFIG_CRYPTO_AES_586 is not set
  41.503 -# CONFIG_CRYPTO_CAST5 is not set
  41.504 -# CONFIG_CRYPTO_CAST6 is not set
  41.505 -# CONFIG_CRYPTO_TEA is not set
  41.506 -# CONFIG_CRYPTO_ARC4 is not set
  41.507 -# CONFIG_CRYPTO_KHAZAD is not set
  41.508 -# CONFIG_CRYPTO_ANUBIS is not set
  41.509 -# CONFIG_CRYPTO_DEFLATE is not set
  41.510 -# CONFIG_CRYPTO_MICHAEL_MIC is not set
  41.511 -CONFIG_CRYPTO_CRC32C=m
  41.512 -# CONFIG_CRYPTO_TEST is not set
  41.513 -
  41.514 -#
  41.515 -# Hardware crypto devices
  41.516 -#
  41.517 -# CONFIG_CRYPTO_DEV_PADLOCK is not set
  41.518 -
  41.519 -#
  41.520 -# Library routines
  41.521 -#
  41.522 -# CONFIG_CRC_CCITT is not set
  41.523 -# CONFIG_CRC32 is not set
  41.524 -CONFIG_LIBCRC32C=m
  41.525 -CONFIG_ZLIB_INFLATE=y
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32	Mon Apr 04 16:13:17 2005 +0000
    42.3 @@ -0,0 +1,521 @@
    42.4 +#
    42.5 +# Automatically generated make config: don't edit
    42.6 +# Linux kernel version: 2.6.11-xenU
    42.7 +# Fri Mar 11 01:20:28 2005
    42.8 +#
    42.9 +CONFIG_XEN=y
   42.10 +CONFIG_ARCH_XEN=y
   42.11 +CONFIG_NO_IDLE_HZ=y
   42.12 +
   42.13 +#
   42.14 +# XEN
   42.15 +#
   42.16 +# CONFIG_XEN_PRIVILEGED_GUEST is not set
   42.17 +# CONFIG_XEN_PHYSDEV_ACCESS is not set
   42.18 +CONFIG_XEN_BLKDEV_FRONTEND=y
   42.19 +CONFIG_XEN_NETDEV_FRONTEND=y
   42.20 +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
   42.21 +# CONFIG_XEN_BLKDEV_TAP is not set
   42.22 +CONFIG_XEN_SCRUB_PAGES=y
   42.23 +CONFIG_X86=y
   42.24 +# CONFIG_X86_64 is not set
   42.25 +CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y
   42.26 +
   42.27 +#
   42.28 +# Code maturity level options
   42.29 +#
   42.30 +CONFIG_EXPERIMENTAL=y
   42.31 +CONFIG_CLEAN_COMPILE=y
   42.32 +CONFIG_BROKEN_ON_SMP=y
   42.33 +CONFIG_LOCK_KERNEL=y
   42.34 +
   42.35 +#
   42.36 +# General setup
   42.37 +#
   42.38 +CONFIG_LOCALVERSION=""
   42.39 +CONFIG_SWAP=y
   42.40 +CONFIG_SYSVIPC=y
   42.41 +# CONFIG_POSIX_MQUEUE is not set
   42.42 +# CONFIG_BSD_PROCESS_ACCT is not set
   42.43 +CONFIG_SYSCTL=y
   42.44 +# CONFIG_AUDIT is not set
   42.45 +CONFIG_LOG_BUF_SHIFT=14
   42.46 +CONFIG_HOTPLUG=y
   42.47 +CONFIG_KOBJECT_UEVENT=y
   42.48 +# CONFIG_IKCONFIG is not set
   42.49 +# CONFIG_EMBEDDED is not set
   42.50 +CONFIG_KALLSYMS=y
   42.51 +# CONFIG_KALLSYMS_EXTRA_PASS is not set
   42.52 +CONFIG_FUTEX=y
   42.53 +CONFIG_EPOLL=y
   42.54 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
   42.55 +CONFIG_SHMEM=y
   42.56 +CONFIG_CC_ALIGN_FUNCTIONS=0
   42.57 +CONFIG_CC_ALIGN_LABELS=0
   42.58 +CONFIG_CC_ALIGN_LOOPS=0
   42.59 +CONFIG_CC_ALIGN_JUMPS=0
   42.60 +# CONFIG_TINY_SHMEM is not set
   42.61 +
   42.62 +#
   42.63 +# Loadable module support
   42.64 +#
   42.65 +CONFIG_MODULES=y
   42.66 +CONFIG_MODULE_UNLOAD=y
   42.67 +# CONFIG_MODULE_FORCE_UNLOAD is not set
   42.68 +CONFIG_OBSOLETE_MODPARM=y
   42.69 +# CONFIG_MODVERSIONS is not set
   42.70 +# CONFIG_MODULE_SRCVERSION_ALL is not set
   42.71 +CONFIG_KMOD=y
   42.72 +
   42.73 +#
   42.74 +# X86 Processor Configuration
   42.75 +#
   42.76 +CONFIG_XENARCH="i386"
   42.77 +CONFIG_MMU=y
   42.78 +CONFIG_UID16=y
   42.79 +CONFIG_GENERIC_ISA_DMA=y
   42.80 +CONFIG_GENERIC_IOMAP=y
   42.81 +# CONFIG_M386 is not set
   42.82 +# CONFIG_M486 is not set
   42.83 +# CONFIG_M586 is not set
   42.84 +# CONFIG_M586TSC is not set
   42.85 +# CONFIG_M586MMX is not set
   42.86 +# CONFIG_M686 is not set
   42.87 +# CONFIG_MPENTIUMII is not set
   42.88 +# CONFIG_MPENTIUMIII is not set
   42.89 +# CONFIG_MPENTIUMM is not set
   42.90 +CONFIG_MPENTIUM4=y
   42.91 +# CONFIG_MK6 is not set
   42.92 +# CONFIG_MK7 is not set
   42.93 +# CONFIG_MK8 is not set
   42.94 +# CONFIG_MCRUSOE is not set
   42.95 +# CONFIG_MEFFICEON is not set
   42.96 +# CONFIG_MWINCHIPC6 is not set
   42.97 +# CONFIG_MWINCHIP2 is not set
   42.98 +# CONFIG_MWINCHIP3D is not set
   42.99 +# CONFIG_MCYRIXIII is not set
  42.100 +# CONFIG_MVIAC3_2 is not set
  42.101 +# CONFIG_X86_GENERIC is not set
  42.102 +CONFIG_X86_CMPXCHG=y
  42.103 +CONFIG_X86_XADD=y
  42.104 +CONFIG_X86_L1_CACHE_SHIFT=7
  42.105 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y
  42.106 +CONFIG_GENERIC_CALIBRATE_DELAY=y
  42.107 +CONFIG_X86_WP_WORKS_OK=y
  42.108 +CONFIG_X86_INVLPG=y
  42.109 +CONFIG_X86_BSWAP=y
  42.110 +CONFIG_X86_POPAD_OK=y
  42.111 +CONFIG_X86_GOOD_APIC=y
  42.112 +CONFIG_X86_INTEL_USERCOPY=y
  42.113 +CONFIG_X86_USE_PPRO_CHECKSUM=y
  42.114 +# CONFIG_HPET_TIMER is not set
  42.115 +# CONFIG_HPET_EMULATE_RTC is not set
  42.116 +# CONFIG_SMP is not set
  42.117 +CONFIG_PREEMPT=y
  42.118 +CONFIG_PREEMPT_BKL=y
  42.119 +CONFIG_X86_CPUID=y
  42.120 +
  42.121 +#
  42.122 +# Firmware Drivers
  42.123 +#
  42.124 +# CONFIG_EDD is not set
  42.125 +CONFIG_NOHIGHMEM=y
  42.126 +# CONFIG_HIGHMEM4G is not set
  42.127 +CONFIG_HAVE_DEC_LOCK=y
  42.128 +# CONFIG_REGPARM is not set
  42.129 +
  42.130 +#
  42.131 +# Kernel hacking
  42.132 +#
  42.133 +# CONFIG_DEBUG_KERNEL is not set
  42.134 +CONFIG_EARLY_PRINTK=y
  42.135 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
  42.136 +# CONFIG_FRAME_POINTER is not set
  42.137 +# CONFIG_4KSTACKS is not set
  42.138 +CONFIG_GENERIC_HARDIRQS=y
  42.139 +CONFIG_GENERIC_IRQ_PROBE=y
  42.140 +CONFIG_X86_BIOS_REBOOT=y
  42.141 +CONFIG_PC=y
  42.142 +
  42.143 +#
  42.144 +# Executable file formats
  42.145 +#
  42.146 +CONFIG_BINFMT_ELF=y
  42.147 +# CONFIG_BINFMT_AOUT is not set
  42.148 +# CONFIG_BINFMT_MISC is not set
  42.149 +
  42.150 +#
  42.151 +# Device Drivers
  42.152 +#
  42.153 +
  42.154 +#
  42.155 +# Generic Driver Options
  42.156 +#
  42.157 +CONFIG_STANDALONE=y
  42.158 +CONFIG_PREVENT_FIRMWARE_BUILD=y
  42.159 +# CONFIG_FW_LOADER is not set
  42.160 +
  42.161 +#
  42.162 +# Block devices
  42.163 +#
  42.164 +# CONFIG_BLK_DEV_FD is not set
  42.165 +# CONFIG_BLK_DEV_COW_COMMON is not set
  42.166 +CONFIG_BLK_DEV_LOOP=m
  42.167 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
  42.168 +CONFIG_BLK_DEV_NBD=m
  42.169 +CONFIG_BLK_DEV_RAM=y
  42.170 +CONFIG_BLK_DEV_RAM_COUNT=16
  42.171 +CONFIG_BLK_DEV_RAM_SIZE=4096
  42.172 +CONFIG_BLK_DEV_INITRD=y
  42.173 +CONFIG_INITRAMFS_SOURCE=""
  42.174 +# CONFIG_LBD is not set
  42.175 +# CONFIG_CDROM_PKTCDVD is not set
  42.176 +
  42.177 +#
  42.178 +# IO Schedulers
  42.179 +#
  42.180 +CONFIG_IOSCHED_NOOP=y
  42.181 +CONFIG_IOSCHED_AS=y
  42.182 +CONFIG_IOSCHED_DEADLINE=y
  42.183 +CONFIG_IOSCHED_CFQ=y
  42.184 +# CONFIG_ATA_OVER_ETH is not set
  42.185 +
  42.186 +#
  42.187 +# SCSI device support
  42.188 +#
  42.189 +CONFIG_SCSI=m
  42.190 +CONFIG_SCSI_PROC_FS=y
  42.191 +
  42.192 +#
  42.193 +# SCSI support type (disk, tape, CD-ROM)
  42.194 +#
  42.195 +CONFIG_BLK_DEV_SD=m
  42.196 +# CONFIG_CHR_DEV_ST is not set
  42.197 +# CONFIG_CHR_DEV_OSST is not set
  42.198 +# CONFIG_BLK_DEV_SR is not set
  42.199 +# CONFIG_CHR_DEV_SG is not set
  42.200 +
  42.201 +#
  42.202 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
  42.203 +#
  42.204 +# CONFIG_SCSI_MULTI_LUN is not set
  42.205 +# CONFIG_SCSI_CONSTANTS is not set
  42.206 +# CONFIG_SCSI_LOGGING is not set
  42.207 +
  42.208 +#
  42.209 +# SCSI Transport Attributes
  42.210 +#
  42.211 +# CONFIG_SCSI_SPI_ATTRS is not set
  42.212 +# CONFIG_SCSI_FC_ATTRS is not set
  42.213 +# CONFIG_SCSI_ISCSI_ATTRS is not set
  42.214 +
  42.215 +#
  42.216 +# SCSI low-level drivers
  42.217 +#
  42.218 +# CONFIG_SCSI_SATA is not set
  42.219 +# CONFIG_SCSI_DEBUG is not set
  42.220 +
  42.221 +#
  42.222 +# Multi-device support (RAID and LVM)
  42.223 +#
  42.224 +# CONFIG_MD is not set
  42.225 +
  42.226 +#
  42.227 +# Networking support
  42.228 +#
  42.229 +CONFIG_NET=y
  42.230 +
  42.231 +#
  42.232 +# Networking options
  42.233 +#
  42.234 +CONFIG_PACKET=y
  42.235 +# CONFIG_PACKET_MMAP is not set
  42.236 +# CONFIG_NETLINK_DEV is not set
  42.237 +CONFIG_UNIX=y
  42.238 +# CONFIG_NET_KEY is not set
  42.239 +CONFIG_INET=y
  42.240 +# CONFIG_IP_MULTICAST is not set
  42.241 +# CONFIG_IP_ADVANCED_ROUTER is not set
  42.242 +CONFIG_IP_PNP=y
  42.243 +# CONFIG_IP_PNP_DHCP is not set
  42.244 +# CONFIG_IP_PNP_BOOTP is not set
  42.245 +# CONFIG_IP_PNP_RARP is not set
  42.246 +# CONFIG_NET_IPIP is not set
  42.247 +# CONFIG_NET_IPGRE is not set
  42.248 +# CONFIG_ARPD is not set
  42.249 +# CONFIG_SYN_COOKIES is not set
  42.250 +# CONFIG_INET_AH is not set
  42.251 +# CONFIG_INET_ESP is not set
  42.252 +# CONFIG_INET_IPCOMP is not set
  42.253 +# CONFIG_INET_TUNNEL is not set
  42.254 +CONFIG_IP_TCPDIAG=y
  42.255 +# CONFIG_IP_TCPDIAG_IPV6 is not set
  42.256 +# CONFIG_IPV6 is not set
  42.257 +# CONFIG_NETFILTER is not set
  42.258 +
  42.259 +#
  42.260 +# SCTP Configuration (EXPERIMENTAL)
  42.261 +#
  42.262 +# CONFIG_IP_SCTP is not set
  42.263 +# CONFIG_ATM is not set
  42.264 +# CONFIG_BRIDGE is not set
  42.265 +# CONFIG_VLAN_8021Q is not set
  42.266 +# CONFIG_DECNET is not set
  42.267 +# CONFIG_LLC2 is not set
  42.268 +# CONFIG_IPX is not set
  42.269 +# CONFIG_ATALK is not set
  42.270 +# CONFIG_X25 is not set
  42.271 +# CONFIG_LAPB is not set
  42.272 +# CONFIG_NET_DIVERT is not set
  42.273 +# CONFIG_ECONET is not set
  42.274 +# CONFIG_WAN_ROUTER is not set
  42.275 +
  42.276 +#
  42.277 +# QoS and/or fair queueing
  42.278 +#
  42.279 +# CONFIG_NET_SCHED is not set
  42.280 +# CONFIG_NET_CLS_ROUTE is not set
  42.281 +
  42.282 +#
  42.283 +# Network testing
  42.284 +#
  42.285 +# CONFIG_NET_PKTGEN is not set
  42.286 +# CONFIG_NETPOLL is not set
  42.287 +# CONFIG_NET_POLL_CONTROLLER is not set
  42.288 +# CONFIG_HAMRADIO is not set
  42.289 +# CONFIG_IRDA is not set
  42.290 +# CONFIG_BT is not set
  42.291 +CONFIG_NETDEVICES=y
  42.292 +# CONFIG_DUMMY is not set
  42.293 +# CONFIG_BONDING is not set
  42.294 +# CONFIG_EQUALIZER is not set
  42.295 +# CONFIG_TUN is not set
  42.296 +
  42.297 +#
  42.298 +# Ethernet (10 or 100Mbit)
  42.299 +#
  42.300 +# CONFIG_NET_ETHERNET is not set
  42.301 +
  42.302 +#
  42.303 +# Ethernet (1000 Mbit)
  42.304 +#
  42.305 +
  42.306 +#
  42.307 +# Ethernet (10000 Mbit)
  42.308 +#
  42.309 +
  42.310 +#
  42.311 +# Token Ring devices
  42.312 +#
  42.313 +
  42.314 +#
  42.315 +# Wireless LAN (non-hamradio)
  42.316 +#
  42.317 +# CONFIG_NET_RADIO is not set
  42.318 +
  42.319 +#
  42.320 +# Wan interfaces
  42.321 +#
  42.322 +# CONFIG_WAN is not set
  42.323 +# CONFIG_PPP is not set
  42.324 +# CONFIG_SLIP is not set
  42.325 +# CONFIG_SHAPER is not set
  42.326 +# CONFIG_NETCONSOLE is not set
  42.327 +CONFIG_UNIX98_PTYS=y
  42.328 +
  42.329 +#
  42.330 +# File systems
  42.331 +#
  42.332 +CONFIG_EXT2_FS=y
  42.333 +# CONFIG_EXT2_FS_XATTR is not set
  42.334 +CONFIG_EXT3_FS=y
  42.335 +CONFIG_EXT3_FS_XATTR=y
  42.336 +# CONFIG_EXT3_FS_POSIX_ACL is not set
  42.337 +# CONFIG_EXT3_FS_SECURITY is not set
  42.338 +CONFIG_JBD=y
  42.339 +# CONFIG_JBD_DEBUG is not set
  42.340 +CONFIG_FS_MBCACHE=y
  42.341 +CONFIG_REISERFS_FS=y
  42.342 +# CONFIG_REISERFS_CHECK is not set
  42.343 +# CONFIG_REISERFS_PROC_INFO is not set
  42.344 +# CONFIG_REISERFS_FS_XATTR is not set
  42.345 +# CONFIG_JFS_FS is not set
  42.346 +
  42.347 +#
  42.348 +# XFS support
  42.349 +#
  42.350 +# CONFIG_XFS_FS is not set
  42.351 +# CONFIG_MINIX_FS is not set
  42.352 +# CONFIG_ROMFS_FS is not set
  42.353 +# CONFIG_QUOTA is not set
  42.354 +CONFIG_DNOTIFY=y
  42.355 +CONFIG_AUTOFS_FS=y
  42.356 +CONFIG_AUTOFS4_FS=y
  42.357 +
  42.358 +#
  42.359 +# CD-ROM/DVD Filesystems
  42.360 +#
  42.361 +CONFIG_ISO9660_FS=y
  42.362 +CONFIG_JOLIET=y
  42.363 +CONFIG_ZISOFS=y
  42.364 +CONFIG_ZISOFS_FS=y
  42.365 +# CONFIG_UDF_FS is not set
  42.366 +
  42.367 +#
  42.368 +# DOS/FAT/NT Filesystems
  42.369 +#
  42.370 +CONFIG_FAT_FS=m
  42.371 +CONFIG_MSDOS_FS=m
  42.372 +CONFIG_VFAT_FS=m
  42.373 +CONFIG_FAT_DEFAULT_CODEPAGE=437
  42.374 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
  42.375 +# CONFIG_NTFS_FS is not set
  42.376 +
  42.377 +#
  42.378 +# Pseudo filesystems
  42.379 +#
  42.380 +CONFIG_PROC_FS=y
  42.381 +CONFIG_PROC_KCORE=y
  42.382 +CONFIG_SYSFS=y
  42.383 +# CONFIG_DEVFS_FS is not set
  42.384 +CONFIG_DEVPTS_FS_XATTR=y
  42.385 +# CONFIG_DEVPTS_FS_SECURITY is not set
  42.386 +CONFIG_TMPFS=y
  42.387 +# CONFIG_TMPFS_XATTR is not set
  42.388 +# CONFIG_HUGETLBFS is not set
  42.389 +# CONFIG_HUGETLB_PAGE is not set
  42.390 +CONFIG_RAMFS=y
  42.391 +
  42.392 +#
  42.393 +# Miscellaneous filesystems
  42.394 +#
  42.395 +# CONFIG_ADFS_FS is not set
  42.396 +# CONFIG_AFFS_FS is not set
  42.397 +# CONFIG_HFS_FS is not set
  42.398 +# CONFIG_HFSPLUS_FS is not set
  42.399 +# CONFIG_BEFS_FS is not set
  42.400 +# CONFIG_BFS_FS is not set
  42.401 +# CONFIG_EFS_FS is not set
  42.402 +# CONFIG_CRAMFS is not set
  42.403 +# CONFIG_VXFS_FS is not set
  42.404 +# CONFIG_HPFS_FS is not set
  42.405 +# CONFIG_QNX4FS_FS is not set
  42.406 +# CONFIG_SYSV_FS is not set
  42.407 +# CONFIG_UFS_FS is not set
  42.408 +
  42.409 +#
  42.410 +# Network File Systems
  42.411 +#
  42.412 +CONFIG_NFS_FS=y
  42.413 +CONFIG_NFS_V3=y
  42.414 +# CONFIG_NFS_V4 is not set
  42.415 +# CONFIG_NFS_DIRECTIO is not set
  42.416 +# CONFIG_NFSD is not set
  42.417 +CONFIG_ROOT_NFS=y
  42.418 +CONFIG_LOCKD=y
  42.419 +CONFIG_LOCKD_V4=y
  42.420 +CONFIG_SUNRPC=y
  42.421 +# CONFIG_RPCSEC_GSS_KRB5 is not set
  42.422 +# CONFIG_RPCSEC_GSS_SPKM3 is not set
  42.423 +# CONFIG_SMB_FS is not set
  42.424 +# CONFIG_CIFS is not set
  42.425 +# CONFIG_NCP_FS is not set
  42.426 +# CONFIG_CODA_FS is not set
  42.427 +# CONFIG_AFS_FS is not set
  42.428 +
  42.429 +#
  42.430 +# Partition Types
  42.431 +#
  42.432 +# CONFIG_PARTITION_ADVANCED is not set
  42.433 +CONFIG_MSDOS_PARTITION=y
  42.434 +
  42.435 +#
  42.436 +# Native Language Support
  42.437 +#
  42.438 +CONFIG_NLS=y
  42.439 +CONFIG_NLS_DEFAULT="iso8859-1"
  42.440 +CONFIG_NLS_CODEPAGE_437=y
  42.441 +# CONFIG_NLS_CODEPAGE_737 is not set
  42.442 +# CONFIG_NLS_CODEPAGE_775 is not set
  42.443 +# CONFIG_NLS_CODEPAGE_850 is not set
  42.444 +# CONFIG_NLS_CODEPAGE_852 is not set
  42.445 +# CONFIG_NLS_CODEPAGE_855 is not set
  42.446 +# CONFIG_NLS_CODEPAGE_857 is not set
  42.447 +# CONFIG_NLS_CODEPAGE_860 is not set
  42.448 +# CONFIG_NLS_CODEPAGE_861 is not set
  42.449 +# CONFIG_NLS_CODEPAGE_862 is not set
  42.450 +# CONFIG_NLS_CODEPAGE_863 is not set
  42.451 +# CONFIG_NLS_CODEPAGE_864 is not set
  42.452 +# CONFIG_NLS_CODEPAGE_865 is not set
  42.453 +# CONFIG_NLS_CODEPAGE_866 is not set
  42.454 +# CONFIG_NLS_CODEPAGE_869 is not set
  42.455 +# CONFIG_NLS_CODEPAGE_936 is not set
  42.456 +# CONFIG_NLS_CODEPAGE_950 is not set
  42.457 +# CONFIG_NLS_CODEPAGE_932 is not set
  42.458 +# CONFIG_NLS_CODEPAGE_949 is not set
  42.459 +# CONFIG_NLS_CODEPAGE_874 is not set
  42.460 +# CONFIG_NLS_ISO8859_8 is not set
  42.461 +# CONFIG_NLS_CODEPAGE_1250 is not set
  42.462 +# CONFIG_NLS_CODEPAGE_1251 is not set
  42.463 +# CONFIG_NLS_ASCII is not set
  42.464 +CONFIG_NLS_ISO8859_1=y
  42.465 +# CONFIG_NLS_ISO8859_2 is not set
  42.466 +# CONFIG_NLS_ISO8859_3 is not set
  42.467 +# CONFIG_NLS_ISO8859_4 is not set
  42.468 +# CONFIG_NLS_ISO8859_5 is not set
  42.469 +# CONFIG_NLS_ISO8859_6 is not set
  42.470 +# CONFIG_NLS_ISO8859_7 is not set
  42.471 +# CONFIG_NLS_ISO8859_9 is not set
  42.472 +# CONFIG_NLS_ISO8859_13 is not set
  42.473 +# CONFIG_NLS_ISO8859_14 is not set
  42.474 +# CONFIG_NLS_ISO8859_15 is not set
  42.475 +# CONFIG_NLS_KOI8_R is not set
  42.476 +# CONFIG_NLS_KOI8_U is not set
  42.477 +# CONFIG_NLS_UTF8 is not set
  42.478 +
  42.479 +#
  42.480 +# Security options
  42.481 +#
  42.482 +# CONFIG_KEYS is not set
  42.483 +# CONFIG_SECURITY is not set
  42.484 +
  42.485 +#
  42.486 +# Cryptographic options
  42.487 +#
  42.488 +CONFIG_CRYPTO=y
  42.489 +# CONFIG_CRYPTO_HMAC is not set
  42.490 +# CONFIG_CRYPTO_NULL is not set
  42.491 +# CONFIG_CRYPTO_MD4 is not set
  42.492 +CONFIG_CRYPTO_MD5=m
  42.493 +# CONFIG_CRYPTO_SHA1 is not set
  42.494 +# CONFIG_CRYPTO_SHA256 is not set
  42.495 +# CONFIG_CRYPTO_SHA512 is not set
  42.496 +# CONFIG_CRYPTO_WP512 is not set
  42.497 +# CONFIG_CRYPTO_DES is not set
  42.498 +# CONFIG_CRYPTO_BLOWFISH is not set
  42.499 +# CONFIG_CRYPTO_TWOFISH is not set
  42.500 +# CONFIG_CRYPTO_SERPENT is not set
  42.501 +# CONFIG_CRYPTO_AES_586 is not set
  42.502 +# CONFIG_CRYPTO_CAST5 is not set
  42.503 +# CONFIG_CRYPTO_CAST6 is not set
  42.504 +# CONFIG_CRYPTO_TEA is not set
  42.505 +# CONFIG_CRYPTO_ARC4 is not set
  42.506 +# CONFIG_CRYPTO_KHAZAD is not set
  42.507 +# CONFIG_CRYPTO_ANUBIS is not set
  42.508 +# CONFIG_CRYPTO_DEFLATE is not set
  42.509 +# CONFIG_CRYPTO_MICHAEL_MIC is not set
  42.510 +CONFIG_CRYPTO_CRC32C=m
  42.511 +# CONFIG_CRYPTO_TEST is not set
  42.512 +
  42.513 +#
  42.514 +# Hardware crypto devices
  42.515 +#
  42.516 +# CONFIG_CRYPTO_DEV_PADLOCK is not set
  42.517 +
  42.518 +#
  42.519 +# Library routines
  42.520 +#
  42.521 +# CONFIG_CRC_CCITT is not set
  42.522 +# CONFIG_CRC32 is not set
  42.523 +CONFIG_LIBCRC32C=m
  42.524 +CONFIG_ZLIB_INFLATE=y
    43.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig_x86_64	Mon Apr 04 16:13:17 2005 +0000
    43.3 @@ -0,0 +1,513 @@
    43.4 +#
    43.5 +# Automatically generated make config: don't edit
    43.6 +# Linux kernel version: 2.6.10-xenU
    43.7 +# Mon Dec 27 10:15:03 2004
    43.8 +#
    43.9 +CONFIG_XEN=y
   43.10 +CONFIG_ARCH_XEN=y
   43.11 +CONFIG_NO_IDLE_HZ=y
   43.12 +
   43.13 +#
   43.14 +# XEN
   43.15 +#
   43.16 +# CONFIG_XEN_PRIVILEGED_GUEST is not set
   43.17 +# CONFIG_XEN_PHYSDEV_ACCESS is not set
   43.18 +# CONFIG_XEN_BLKDEV_BACKEND is not set
   43.19 +# CONFIG_XEN_NETDEV_BACKEND is not set
   43.20 +CONFIG_XEN_BLKDEV_FRONTEND=y
   43.21 +CONFIG_XEN_NETDEV_FRONTEND=y
   43.22 +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
   43.23 +# CONFIG_XEN_BLKDEV_TAP is not set
   43.24 +CONFIG_XEN_WRITABLE_PAGETABLES=y
   43.25 +CONFIG_XEN_SCRUB_PAGES=y
   43.26 +CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y
   43.27 +CONFIG_X86=y
   43.28 +# CONFIG_X86_64 is not set
   43.29 +
   43.30 +#
   43.31 +# Code maturity level options
   43.32 +#
   43.33 +CONFIG_EXPERIMENTAL=y
   43.34 +CONFIG_CLEAN_COMPILE=y
   43.35 +CONFIG_BROKEN_ON_SMP=y
   43.36 +CONFIG_LOCK_KERNEL=y
   43.37 +
   43.38 +#
   43.39 +# General setup
   43.40 +#
   43.41 +CONFIG_LOCALVERSION=""
   43.42 +CONFIG_SWAP=y
   43.43 +CONFIG_SYSVIPC=y
   43.44 +# CONFIG_POSIX_MQUEUE is not set
   43.45 +# CONFIG_BSD_PROCESS_ACCT is not set
   43.46 +CONFIG_SYSCTL=y
   43.47 +# CONFIG_AUDIT is not set
   43.48 +CONFIG_LOG_BUF_SHIFT=14
   43.49 +CONFIG_HOTPLUG=y
   43.50 +CONFIG_KOBJECT_UEVENT=y
   43.51 +# CONFIG_IKCONFIG is not set
   43.52 +# CONFIG_EMBEDDED is not set
   43.53 +CONFIG_KALLSYMS=y
   43.54 +# CONFIG_KALLSYMS_ALL is not set
   43.55 +# CONFIG_KALLSYMS_EXTRA_PASS is not set
   43.56 +CONFIG_FUTEX=y
   43.57 +CONFIG_EPOLL=y
   43.58 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
   43.59 +CONFIG_SHMEM=y
   43.60 +CONFIG_CC_ALIGN_FUNCTIONS=0
   43.61 +CONFIG_CC_ALIGN_LABELS=0
   43.62 +CONFIG_CC_ALIGN_LOOPS=0
   43.63 +CONFIG_CC_ALIGN_JUMPS=0
   43.64 +# CONFIG_TINY_SHMEM is not set
   43.65 +
   43.66 +#
   43.67 +# Loadable module support
   43.68 +#
   43.69 +CONFIG_MODULES=y
   43.70 +CONFIG_MODULE_UNLOAD=y
   43.71 +# CONFIG_MODULE_FORCE_UNLOAD is not set
   43.72 +CONFIG_OBSOLETE_MODPARM=y
   43.73 +# CONFIG_MODVERSIONS is not set
   43.74 +# CONFIG_MODULE_SRCVERSION_ALL is not set
   43.75 +CONFIG_KMOD=y
   43.76 +
   43.77 +#
   43.78 +# X86 Processor Configuration
   43.79 +#
   43.80 +CONFIG_XENARCH="x86_64"
   43.81 +CONFIG_MMU=y
   43.82 +CONFIG_UID16=y
   43.83 +CONFIG_GENERIC_ISA_DMA=y
   43.84 +CONFIG_GENERIC_IOMAP=y
   43.85 +# CONFIG_M386 is not set
   43.86 +# CONFIG_M486 is not set
   43.87 +# CONFIG_M586 is not set
   43.88 +# CONFIG_M586TSC is not set
   43.89 +# CONFIG_M586MMX is not set
   43.90 +# CONFIG_M686 is not set
   43.91 +# CONFIG_MPENTIUMII is not set
   43.92 +# CONFIG_MPENTIUMIII is not set
   43.93 +# CONFIG_MPENTIUMM is not set
   43.94 +CONFIG_MPENTIUM4=y
   43.95 +# CONFIG_MK6 is not set
   43.96 +# CONFIG_MK7 is not set
   43.97 +# CONFIG_MK8 is not set
   43.98 +# CONFIG_MCRUSOE is not set
   43.99 +# CONFIG_MEFFICEON is not set
  43.100 +# CONFIG_MWINCHIPC6 is not set
  43.101 +# CONFIG_MWINCHIP2 is not set
  43.102 +# CONFIG_MWINCHIP3D is not set
  43.103 +# CONFIG_MCYRIXIII is not set
  43.104 +# CONFIG_MVIAC3_2 is not set
  43.105 +# CONFIG_X86_GENERIC is not set
  43.106 +CONFIG_X86_CMPXCHG=y
  43.107 +CONFIG_X86_XADD=y
  43.108 +CONFIG_X86_L1_CACHE_SHIFT=7
  43.109 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y
  43.110 +CONFIG_X86_WP_WORKS_OK=y
  43.111 +CONFIG_X86_INVLPG=y
  43.112 +CONFIG_X86_BSWAP=y
  43.113 +CONFIG_X86_POPAD_OK=y
  43.114 +CONFIG_X86_GOOD_APIC=y
  43.115 +CONFIG_X86_INTEL_USERCOPY=y
  43.116 +CONFIG_X86_USE_PPRO_CHECKSUM=y
  43.117 +# CONFIG_HPET_TIMER is not set
  43.118 +# CONFIG_HPET_EMULATE_RTC is not set
  43.119 +# CONFIG_SMP is not set
  43.120 +CONFIG_PREEMPT=y
  43.121 +CONFIG_X86_CPUID=y
  43.122 +
  43.123 +#
  43.124 +# Firmware Drivers
  43.125 +#
  43.126 +# CONFIG_EDD is not set
  43.127 +CONFIG_NOHIGHMEM=y
  43.128 +# CONFIG_HIGHMEM4G is not set
  43.129 +CONFIG_HAVE_DEC_LOCK=y
  43.130 +# CONFIG_REGPARM is not set
  43.131 +
  43.132 +#
  43.133 +# Kernel hacking
  43.134 +#
  43.135 +# CONFIG_DEBUG_KERNEL is not set
  43.136 +CONFIG_EARLY_PRINTK=y
  43.137 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
  43.138 +# CONFIG_FRAME_POINTER is not set
  43.139 +# CONFIG_4KSTACKS is not set
  43.140 +CONFIG_GENERIC_HARDIRQS=y
  43.141 +CONFIG_GENERIC_IRQ_PROBE=y
  43.142 +CONFIG_X86_BIOS_REBOOT=y
  43.143 +CONFIG_PC=y
  43.144 +
  43.145 +#
  43.146 +# Executable file formats
  43.147 +#
  43.148 +CONFIG_BINFMT_ELF=y
  43.149 +# CONFIG_BINFMT_AOUT is not set
  43.150 +# CONFIG_BINFMT_MISC is not set
  43.151 +
  43.152 +#
  43.153 +# Device Drivers
  43.154 +#
  43.155 +
  43.156 +#
  43.157 +# Generic Driver Options
  43.158 +#
  43.159 +CONFIG_STANDALONE=y
  43.160 +CONFIG_PREVENT_FIRMWARE_BUILD=y
  43.161 +# CONFIG_FW_LOADER is not set
  43.162 +# CONFIG_DEBUG_DRIVER is not set
  43.163 +
  43.164 +#
  43.165 +# Block devices
  43.166 +#
  43.167 +# CONFIG_BLK_DEV_FD is not set
  43.168 +CONFIG_BLK_DEV_LOOP=m
  43.169 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
  43.170 +CONFIG_BLK_DEV_NBD=m
  43.171 +CONFIG_BLK_DEV_RAM=y
  43.172 +CONFIG_BLK_DEV_RAM_COUNT=16
  43.173 +CONFIG_BLK_DEV_RAM_SIZE=4096
  43.174 +CONFIG_BLK_DEV_INITRD=y
  43.175 +CONFIG_INITRAMFS_SOURCE=""
  43.176 +# CONFIG_LBD is not set
  43.177 +# CONFIG_CDROM_PKTCDVD is not set
  43.178 +
  43.179 +#
  43.180 +# IO Schedulers
  43.181 +#
  43.182 +CONFIG_IOSCHED_NOOP=y
  43.183 +CONFIG_IOSCHED_AS=y
  43.184 +CONFIG_IOSCHED_DEADLINE=y
  43.185 +CONFIG_IOSCHED_CFQ=y
  43.186 +
  43.187 +#
  43.188 +# SCSI device support
  43.189 +#
  43.190 +CONFIG_SCSI=m
  43.191 +CONFIG_SCSI_PROC_FS=y
  43.192 +
  43.193 +#
  43.194 +# SCSI support type (disk, tape, CD-ROM)
  43.195 +#
  43.196 +CONFIG_BLK_DEV_SD=m
  43.197 +# CONFIG_CHR_DEV_ST is not set
  43.198 +# CONFIG_CHR_DEV_OSST is not set
  43.199 +# CONFIG_BLK_DEV_SR is not set
  43.200 +# CONFIG_CHR_DEV_SG is not set
  43.201 +
  43.202 +#
  43.203 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
  43.204 +#
  43.205 +# CONFIG_SCSI_MULTI_LUN is not set
  43.206 +# CONFIG_SCSI_CONSTANTS is not set
  43.207 +# CONFIG_SCSI_LOGGING is not set
  43.208 +
  43.209 +#
  43.210 +# SCSI Transport Attributes
  43.211 +#
  43.212 +# CONFIG_SCSI_SPI_ATTRS is not set
  43.213 +# CONFIG_SCSI_FC_ATTRS is not set
  43.214 +
  43.215 +#
  43.216 +# SCSI low-level drivers
  43.217 +#
  43.218 +# CONFIG_SCSI_SATA is not set
  43.219 +# CONFIG_SCSI_DEBUG is not set
  43.220 +
  43.221 +#
  43.222 +# Multi-device support (RAID and LVM)
  43.223 +#
  43.224 +# CONFIG_MD is not set
  43.225 +
  43.226 +#
  43.227 +# Networking support
  43.228 +#
  43.229 +CONFIG_NET=y
  43.230 +
  43.231 +#
  43.232 +# Networking options
  43.233 +#
  43.234 +CONFIG_PACKET=y
  43.235 +# CONFIG_PACKET_MMAP is not set
  43.236 +# CONFIG_NETLINK_DEV is not set
  43.237 +CONFIG_UNIX=y
  43.238 +# CONFIG_NET_KEY is not set
  43.239 +CONFIG_INET=y
  43.240 +# CONFIG_IP_MULTICAST is not set
  43.241 +# CONFIG_IP_ADVANCED_ROUTER is not set
  43.242 +CONFIG_IP_PNP=y
  43.243 +# CONFIG_IP_PNP_DHCP is not set
  43.244 +# CONFIG_IP_PNP_BOOTP is not set
  43.245 +# CONFIG_IP_PNP_RARP is not set
  43.246 +# CONFIG_NET_IPIP is not set
  43.247 +# CONFIG_NET_IPGRE is not set
  43.248 +# CONFIG_ARPD is not set
  43.249 +# CONFIG_SYN_COOKIES is not set
  43.250 +# CONFIG_INET_AH is not set
  43.251 +# CONFIG_INET_ESP is not set
  43.252 +# CONFIG_INET_IPCOMP is not set
  43.253 +# CONFIG_INET_TUNNEL is not set
  43.254 +CONFIG_IP_TCPDIAG=y
  43.255 +# CONFIG_IP_TCPDIAG_IPV6 is not set
  43.256 +# CONFIG_IPV6 is not set
  43.257 +# CONFIG_NETFILTER is not set
  43.258 +
  43.259 +#
  43.260 +# SCTP Configuration (EXPERIMENTAL)
  43.261 +#
  43.262 +# CONFIG_IP_SCTP is not set
  43.263 +# CONFIG_ATM is not set
  43.264 +# CONFIG_BRIDGE is not set
  43.265 +# CONFIG_VLAN_8021Q is not set
  43.266 +# CONFIG_DECNET is not set
  43.267 +# CONFIG_LLC2 is not set
  43.268 +# CONFIG_IPX is not set
  43.269 +# CONFIG_ATALK is not set
  43.270 +# CONFIG_X25 is not set
  43.271 +# CONFIG_LAPB is not set
  43.272 +# CONFIG_NET_DIVERT is not set
  43.273 +# CONFIG_ECONET is not set
  43.274 +# CONFIG_WAN_ROUTER is not set
  43.275 +
  43.276 +#
  43.277 +# QoS and/or fair queueing
  43.278 +#
  43.279 +# CONFIG_NET_SCHED is not set
  43.280 +# CONFIG_NET_CLS_ROUTE is not set
  43.281 +
  43.282 +#
  43.283 +# Network testing
  43.284 +#
  43.285 +# CONFIG_NET_PKTGEN is not set
  43.286 +# CONFIG_NETPOLL is not set
  43.287 +# CONFIG_NET_POLL_CONTROLLER is not set
  43.288 +# CONFIG_HAMRADIO is not set
  43.289 +# CONFIG_IRDA is not set
  43.290 +# CONFIG_BT is not set
  43.291 +CONFIG_NETDEVICES=y
  43.292 +# CONFIG_DUMMY is not set
  43.293 +# CONFIG_BONDING is not set
  43.294 +# CONFIG_EQUALIZER is not set
  43.295 +# CONFIG_TUN is not set
  43.296 +
  43.297 +#
  43.298 +# Ethernet (10 or 100Mbit)
  43.299 +#
  43.300 +# CONFIG_NET_ETHERNET is not set
  43.301 +
  43.302 +#
  43.303 +# Ethernet (1000 Mbit)
  43.304 +#
  43.305 +
  43.306 +#
  43.307 +# Ethernet (10000 Mbit)
  43.308 +#
  43.309 +
  43.310 +#
  43.311 +# Token Ring devices
  43.312 +#
  43.313 +
  43.314 +#
  43.315 +# Wireless LAN (non-hamradio)
  43.316 +#
  43.317 +# CONFIG_NET_RADIO is not set
  43.318 +
  43.319 +#
  43.320 +# Wan interfaces
  43.321 +#
  43.322 +# CONFIG_WAN is not set
  43.323 +# CONFIG_PPP is not set
  43.324 +# CONFIG_SLIP is not set
  43.325 +# CONFIG_SHAPER is not set
  43.326 +# CONFIG_NETCONSOLE is not set
  43.327 +CONFIG_UNIX98_PTYS=y
  43.328 +
  43.329 +#
  43.330 +# File systems
  43.331 +#
  43.332 +CONFIG_EXT2_FS=y
  43.333 +# CONFIG_EXT2_FS_XATTR is not set
  43.334 +CONFIG_EXT3_FS=y
  43.335 +CONFIG_EXT3_FS_XATTR=y
  43.336 +# CONFIG_EXT3_FS_POSIX_ACL is not set
  43.337 +# CONFIG_EXT3_FS_SECURITY is not set
  43.338 +CONFIG_JBD=y
  43.339 +# CONFIG_JBD_DEBUG is not set
  43.340 +CONFIG_FS_MBCACHE=y
  43.341 +CONFIG_REISERFS_FS=y
  43.342 +# CONFIG_REISERFS_CHECK is not set
  43.343 +# CONFIG_REISERFS_PROC_INFO is not set
  43.344 +# CONFIG_REISERFS_FS_XATTR is not set
  43.345 +# CONFIG_JFS_FS is not set
  43.346 +# CONFIG_XFS_FS is not set
  43.347 +# CONFIG_MINIX_FS is not set
  43.348 +# CONFIG_ROMFS_FS is not set
  43.349 +# CONFIG_QUOTA is not set
  43.350 +CONFIG_DNOTIFY=y
  43.351 +CONFIG_AUTOFS_FS=y
  43.352 +CONFIG_AUTOFS4_FS=y
  43.353 +
  43.354 +#
  43.355 +# CD-ROM/DVD Filesystems
  43.356 +#
  43.357 +CONFIG_ISO9660_FS=y
  43.358 +CONFIG_JOLIET=y
  43.359 +CONFIG_ZISOFS=y
  43.360 +CONFIG_ZISOFS_FS=y
  43.361 +# CONFIG_UDF_FS is not set
  43.362 +
  43.363 +#
  43.364 +# DOS/FAT/NT Filesystems
  43.365 +#
  43.366 +CONFIG_FAT_FS=m
  43.367 +CONFIG_MSDOS_FS=m
  43.368 +CONFIG_VFAT_FS=m
  43.369 +CONFIG_FAT_DEFAULT_CODEPAGE=437
  43.370 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
  43.371 +# CONFIG_NTFS_FS is not set
  43.372 +
  43.373 +#
  43.374 +# Pseudo filesystems
  43.375 +#
  43.376 +CONFIG_PROC_FS=y
  43.377 +CONFIG_PROC_KCORE=y
  43.378 +CONFIG_SYSFS=y
  43.379 +# CONFIG_DEVFS_FS is not set
  43.380 +CONFIG_DEVPTS_FS_XATTR=y
  43.381 +# CONFIG_DEVPTS_FS_SECURITY is not set
  43.382 +CONFIG_TMPFS=y
  43.383 +# CONFIG_TMPFS_XATTR is not set
  43.384 +# CONFIG_HUGETLBFS is not set
  43.385 +# CONFIG_HUGETLB_PAGE is not set
  43.386 +CONFIG_RAMFS=y
  43.387 +
  43.388 +#
  43.389 +# Miscellaneous filesystems
  43.390 +#
  43.391 +# CONFIG_ADFS_FS is not set
  43.392 +# CONFIG_AFFS_FS is not set
  43.393 +# CONFIG_HFS_FS is not set
  43.394 +# CONFIG_HFSPLUS_FS is not set
  43.395 +# CONFIG_BEFS_FS is not set
  43.396 +# CONFIG_BFS_FS is not set
  43.397 +# CONFIG_EFS_FS is not set
  43.398 +# CONFIG_CRAMFS is not set
  43.399 +# CONFIG_VXFS_FS is not set
  43.400 +# CONFIG_HPFS_FS is not set
  43.401 +# CONFIG_QNX4FS_FS is not set
  43.402 +# CONFIG_SYSV_FS is not set
  43.403 +# CONFIG_UFS_FS is not set
  43.404 +
  43.405 +#
  43.406 +# Network File Systems
  43.407 +#
  43.408 +CONFIG_NFS_FS=y
  43.409 +CONFIG_NFS_V3=y
  43.410 +# CONFIG_NFS_V4 is not set
  43.411 +# CONFIG_NFS_DIRECTIO is not set
  43.412 +# CONFIG_NFSD is not set
  43.413 +CONFIG_ROOT_NFS=y
  43.414 +CONFIG_LOCKD=y
  43.415 +CONFIG_LOCKD_V4=y
  43.416 +# CONFIG_EXPORTFS is not set
  43.417 +CONFIG_SUNRPC=y
  43.418 +# CONFIG_RPCSEC_GSS_KRB5 is not set
  43.419 +# CONFIG_RPCSEC_GSS_SPKM3 is not set
  43.420 +# CONFIG_SMB_FS is not set
  43.421 +# CONFIG_CIFS is not set
  43.422 +# CONFIG_NCP_FS is not set
  43.423 +# CONFIG_CODA_FS is not set
  43.424 +# CONFIG_AFS_FS is not set
  43.425 +
  43.426 +#
  43.427 +# Partition Types
  43.428 +#
  43.429 +# CONFIG_PARTITION_ADVANCED is not set
  43.430 +CONFIG_MSDOS_PARTITION=y
  43.431 +
  43.432 +#
  43.433 +# Native Language Support
  43.434 +#
  43.435 +CONFIG_NLS=y
  43.436 +CONFIG_NLS_DEFAULT="iso8859-1"
  43.437 +CONFIG_NLS_CODEPAGE_437=y
  43.438 +# CONFIG_NLS_CODEPAGE_737 is not set
  43.439 +# CONFIG_NLS_CODEPAGE_775 is not set
  43.440 +# CONFIG_NLS_CODEPAGE_850 is not set
  43.441 +# CONFIG_NLS_CODEPAGE_852 is not set
  43.442 +# CONFIG_NLS_CODEPAGE_855 is not set
  43.443 +# CONFIG_NLS_CODEPAGE_857 is not set
  43.444 +# CONFIG_NLS_CODEPAGE_860 is not set
  43.445 +# CONFIG_NLS_CODEPAGE_861 is not set
  43.446 +# CONFIG_NLS_CODEPAGE_862 is not set
  43.447 +# CONFIG_NLS_CODEPAGE_863 is not set
  43.448 +# CONFIG_NLS_CODEPAGE_864 is not set
  43.449 +# CONFIG_NLS_CODEPAGE_865 is not set
  43.450 +# CONFIG_NLS_CODEPAGE_866 is not set
  43.451 +# CONFIG_NLS_CODEPAGE_869 is not set
  43.452 +# CONFIG_NLS_CODEPAGE_936 is not set
  43.453 +# CONFIG_NLS_CODEPAGE_950 is not set
  43.454 +# CONFIG_NLS_CODEPAGE_932 is not set
  43.455 +# CONFIG_NLS_CODEPAGE_949 is not set
  43.456 +# CONFIG_NLS_CODEPAGE_874 is not set
  43.457 +# CONFIG_NLS_ISO8859_8 is not set
  43.458 +# CONFIG_NLS_CODEPAGE_1250 is not set
  43.459 +# CONFIG_NLS_CODEPAGE_1251 is not set
  43.460 +# CONFIG_NLS_ASCII is not set
  43.461 +CONFIG_NLS_ISO8859_1=y
  43.462 +# CONFIG_NLS_ISO8859_2 is not set
  43.463 +# CONFIG_NLS_ISO8859_3 is not set
  43.464 +# CONFIG_NLS_ISO8859_4 is not set
  43.465 +# CONFIG_NLS_ISO8859_5 is not set
  43.466 +# CONFIG_NLS_ISO8859_6 is not set
  43.467 +# CONFIG_NLS_ISO8859_7 is not set
  43.468 +# CONFIG_NLS_ISO8859_9 is not set
  43.469 +# CONFIG_NLS_ISO8859_13 is not set
  43.470 +# CONFIG_NLS_ISO8859_14 is not set
  43.471 +# CONFIG_NLS_ISO8859_15 is not set
  43.472 +# CONFIG_NLS_KOI8_R is not set
  43.473 +# CONFIG_NLS_KOI8_U is not set
  43.474 +# CONFIG_NLS_UTF8 is not set
  43.475 +
  43.476 +#
  43.477 +# Security options
  43.478 +#
  43.479 +# CONFIG_KEYS is not set
  43.480 +# CONFIG_SECURITY is not set
  43.481 +
  43.482 +#
  43.483 +# Cryptographic options
  43.484 +#
  43.485 +CONFIG_CRYPTO=y
  43.486 +# CONFIG_CRYPTO_HMAC is not set
  43.487 +# CONFIG_CRYPTO_NULL is not set
  43.488 +# CONFIG_CRYPTO_MD4 is not set
  43.489 +CONFIG_CRYPTO_MD5=m
  43.490 +# CONFIG_CRYPTO_SHA1 is not set
  43.491 +# CONFIG_CRYPTO_SHA256 is not set
  43.492 +# CONFIG_CRYPTO_SHA512 is not set
  43.493 +# CONFIG_CRYPTO_WP512 is not set
  43.494 +# CONFIG_CRYPTO_DES is not set
  43.495 +# CONFIG_CRYPTO_BLOWFISH is not set
  43.496 +# CONFIG_CRYPTO_TWOFISH is not set
  43.497 +# CONFIG_CRYPTO_SERPENT is not set
  43.498 +# CONFIG_CRYPTO_AES_586 is not set
  43.499 +# CONFIG_CRYPTO_CAST5 is not set
  43.500 +# CONFIG_CRYPTO_CAST6 is not set
  43.501 +# CONFIG_CRYPTO_TEA is not set
  43.502 +# CONFIG_CRYPTO_ARC4 is not set
  43.503 +# CONFIG_CRYPTO_KHAZAD is not set
  43.504 +# CONFIG_CRYPTO_ANUBIS is not set
  43.505 +# CONFIG_CRYPTO_DEFLATE is not set
  43.506 +# CONFIG_CRYPTO_MICHAEL_MIC is not set
  43.507 +CONFIG_CRYPTO_CRC32C=m
  43.508 +# CONFIG_CRYPTO_TEST is not set
  43.509 +
  43.510 +#
  43.511 +# Library routines
  43.512 +#
  43.513 +# CONFIG_CRC_CCITT is not set
  43.514 +# CONFIG_CRC32 is not set
  43.515 +CONFIG_LIBCRC32C=m
  43.516 +CONFIG_ZLIB_INFLATE=y
    44.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c	Mon Apr 04 10:52:11 2005 +0000
    44.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c	Mon Apr 04 16:13:17 2005 +0000
    44.3 @@ -564,7 +564,6 @@ void __init cpu_gdt_init(struct Xgt_desc
    44.4  		frames[f] = virt_to_machine(va) >> PAGE_SHIFT;
    44.5  		make_page_readonly((void *)va);
    44.6  	}
    44.7 -	flush_page_update_queue();
    44.8  	if (HYPERVISOR_set_gdt(frames, gdt_descr->size / 8))
    44.9  		BUG();
   44.10  	lgdt_finish();
   44.11 @@ -622,7 +621,6 @@ void __init cpu_init (void)
   44.12  	load_esp0(t, thread);
   44.13  
   44.14  	load_LDT(&init_mm.context);
   44.15 -	flush_page_update_queue();
   44.16  
   44.17  	/* Clear %fs and %gs. */
   44.18  	asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs");
    45.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S	Mon Apr 04 10:52:11 2005 +0000
    45.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S	Mon Apr 04 16:13:17 2005 +0000
    45.3 @@ -4,7 +4,6 @@
    45.4  .section __xen_guest
    45.5  	.ascii	"GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0xC0000000"
    45.6  	.ascii	",LOADER=generic"
    45.7 -	.ascii	",PT_MODE_WRITABLE"
    45.8  	.byte	0
    45.9  
   45.10  .text
    46.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c	Mon Apr 04 10:52:11 2005 +0000
    46.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c	Mon Apr 04 16:13:17 2005 +0000
    46.3 @@ -22,10 +22,8 @@
    46.4  #ifdef CONFIG_SMP /* avoids "defined but not used" warnig */
    46.5  static void flush_ldt(void *null)
    46.6  {
    46.7 -	if (current->active_mm) {
    46.8 +	if (current->active_mm)
    46.9  		load_LDT(&current->active_mm->context);
   46.10 -		flush_page_update_queue();
   46.11 -	}
   46.12  }
   46.13  #endif
   46.14  
   46.15 @@ -64,7 +62,6 @@ static int alloc_ldt(mm_context_t *pc, i
   46.16  		make_pages_readonly(pc->ldt, (pc->size * LDT_ENTRY_SIZE) /
   46.17  				    PAGE_SIZE);
   46.18  		load_LDT(pc);
   46.19 -		flush_page_update_queue();
   46.20  #ifdef CONFIG_SMP
   46.21  		mask = cpumask_of_cpu(smp_processor_id());
   46.22  		if (!cpus_equal(current->mm->cpu_vm_mask, mask))
   46.23 @@ -75,7 +72,6 @@ static int alloc_ldt(mm_context_t *pc, i
   46.24  	if (oldsize) {
   46.25  		make_pages_writable(oldldt, (oldsize * LDT_ENTRY_SIZE) /
   46.26  			PAGE_SIZE);
   46.27 -		flush_page_update_queue();
   46.28  		if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE)
   46.29  			vfree(oldldt);
   46.30  		else
   46.31 @@ -92,7 +88,6 @@ static inline int copy_ldt(mm_context_t 
   46.32  	memcpy(new->ldt, old->ldt, old->size*LDT_ENTRY_SIZE);
   46.33  	make_pages_readonly(new->ldt, (new->size * LDT_ENTRY_SIZE) /
   46.34  			    PAGE_SIZE);
   46.35 -	flush_page_update_queue();
   46.36  	return 0;
   46.37  }
   46.38  
   46.39 @@ -127,7 +122,6 @@ void destroy_context(struct mm_struct *m
   46.40  		make_pages_writable(mm->context.ldt, 
   46.41  				    (mm->context.size * LDT_ENTRY_SIZE) /
   46.42  				    PAGE_SIZE);
   46.43 -		flush_page_update_queue();
   46.44  		if (mm->context.size*LDT_ENTRY_SIZE > PAGE_SIZE)
   46.45  			vfree(mm->context.ldt);
   46.46  		else
    47.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c	Mon Apr 04 10:52:11 2005 +0000
    47.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c	Mon Apr 04 16:13:17 2005 +0000
    47.3 @@ -15,7 +15,9 @@
    47.4  #include <asm/io.h>
    47.5  #include <asm-xen/balloon.h>
    47.6  
    47.7 -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
    47.8 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
    47.9 +#include <asm/tlbflush.h>
   47.10 +#else
   47.11  #define pte_offset_kernel pte_offset
   47.12  #define pud_t pgd_t
   47.13  #define pud_offset(d, va) d
   47.14 @@ -54,10 +56,10 @@ xen_contig_memory(unsigned long vstart, 
   47.15  		pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE)));
   47.16  		pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE)));
   47.17  		pfn = pte->pte_low >> PAGE_SHIFT;
   47.18 -		queue_l1_entry_update(pte, 0);
   47.19 +		HYPERVISOR_update_va_mapping(
   47.20 +			vstart + (i*PAGE_SIZE), __pte_ma(0), 0);
   47.21  		phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] =
   47.22  			INVALID_P2M_ENTRY;
   47.23 -		flush_page_update_queue();
   47.24  		if (HYPERVISOR_dom_mem_op(MEMOP_decrease_reservation, 
   47.25  					  &pfn, 1, 0) != 1) BUG();
   47.26  	}
   47.27 @@ -70,17 +72,17 @@ xen_contig_memory(unsigned long vstart, 
   47.28  		pud = pud_offset(pgd, (vstart + (i*PAGE_SIZE)));
   47.29  		pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE)));
   47.30  		pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE)));
   47.31 -		queue_l1_entry_update(
   47.32 -			pte, ((pfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL);
   47.33 -		queue_machphys_update(
   47.34 +		HYPERVISOR_update_va_mapping(
   47.35 +			vstart + (i*PAGE_SIZE),
   47.36 +			__pte_ma(((pfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL), 0);
   47.37 +		xen_machphys_update(
   47.38  			pfn+i, (__pa(vstart)>>PAGE_SHIFT)+i);
   47.39  		phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] =
   47.40  			pfn+i;
   47.41  	}
   47.42 -	/* Flush updates through and flush the TLB. */
   47.43 -	xen_tlb_flush();
   47.44 +	flush_tlb_all();
   47.45  
   47.46 -        balloon_unlock(flags);
   47.47 +	balloon_unlock(flags);
   47.48  }
   47.49  
   47.50  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
    48.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c	Mon Apr 04 10:52:11 2005 +0000
    48.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c	Mon Apr 04 16:13:17 2005 +0000
    48.3 @@ -46,7 +46,6 @@
    48.4  #include <asm/i387.h>
    48.5  #include <asm/irq.h>
    48.6  #include <asm/desc.h>
    48.7 -#include <asm-xen/multicall.h>
    48.8  #include <asm-xen/xen-public/physdev.h>
    48.9  #ifdef CONFIG_MATH_EMULATION
   48.10  #include <asm/math_emu.h>
   48.11 @@ -444,28 +443,9 @@ struct task_struct fastcall * __switch_t
   48.12  	int cpu = smp_processor_id();
   48.13  	struct tss_struct *tss = &per_cpu(init_tss, cpu);
   48.14  	physdev_op_t iopl_op, iobmp_op;
   48.15 -
   48.16 -        /* NB. No need to disable interrupts as already done in sched.c */
   48.17 -        /* __cli(); */
   48.18 -
   48.19 -	/*
   48.20 -	 * Save away %fs and %gs. No need to save %es and %ds, as
   48.21 -	 * those are always kernel segments while inside the kernel.
   48.22 -	 */
   48.23 -	asm volatile("movl %%fs,%0":"=m" (*(int *)&prev->fs));
   48.24 -	asm volatile("movl %%gs,%0":"=m" (*(int *)&prev->gs));
   48.25 +	multicall_entry_t _mcl[8], *mcl = _mcl;
   48.26  
   48.27 -	/*
   48.28 -	 * We clobber FS and GS here so that we avoid a GPF when restoring
   48.29 -	 * previous task's FS/GS values in Xen when the LDT is switched.
   48.30 -	 */
   48.31 -	__asm__ __volatile__ ( 
   48.32 -		"xorl %%eax,%%eax; movl %%eax,%%fs; movl %%eax,%%gs" : : :
   48.33 -		"eax" );
   48.34 -
   48.35 -	MULTICALL_flush_page_update_queue();
   48.36 -
   48.37 -	/* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
   48.38 +        /* XEN NOTE: FS/GS saved in switch_mm(), not here. */
   48.39  
   48.40  	/*
   48.41  	 * This is basically '__unlazy_fpu', except that we queue a
   48.42 @@ -474,7 +454,9 @@ struct task_struct fastcall * __switch_t
   48.43  	 */
   48.44  	if (prev_p->thread_info->status & TS_USEDFPU) {
   48.45  		__save_init_fpu(prev_p); /* _not_ save_init_fpu() */
   48.46 -		queue_multicall1(__HYPERVISOR_fpu_taskswitch, 1);
   48.47 +		mcl->op      = __HYPERVISOR_fpu_taskswitch;
   48.48 +		mcl->args[0] = 1;
   48.49 +		mcl++;
   48.50  	}
   48.51  
   48.52  	/*
   48.53 @@ -482,20 +464,25 @@ struct task_struct fastcall * __switch_t
   48.54  	 * This is load_esp0(tss, next) with a multicall.
   48.55  	 */
   48.56  	tss->esp0 = next->esp0;
   48.57 -	queue_multicall2(__HYPERVISOR_stack_switch, tss->ss0, tss->esp0);
   48.58 +	mcl->op      = __HYPERVISOR_stack_switch;
   48.59 +	mcl->args[0] = tss->ss0;
   48.60 +	mcl->args[1] = tss->esp0;
   48.61 +	mcl++;
   48.62  
   48.63  	/*
   48.64  	 * Load the per-thread Thread-Local Storage descriptor.
   48.65  	 * This is load_TLS(next, cpu) with multicalls.
   48.66  	 */
   48.67 -#define C(i) do {							    \
   48.68 -	if (unlikely(next->tls_array[i].a != prev->tls_array[i].a ||	    \
   48.69 -		     next->tls_array[i].b != prev->tls_array[i].b))	    \
   48.70 -		queue_multicall3(__HYPERVISOR_update_descriptor,	    \
   48.71 -				 virt_to_machine(&get_cpu_gdt_table(cpu)    \
   48.72 -						 [GDT_ENTRY_TLS_MIN + i]),  \
   48.73 -				 ((u32 *)&next->tls_array[i])[0],	    \
   48.74 -				 ((u32 *)&next->tls_array[i])[1]);	    \
   48.75 +#define C(i) do {                                                       \
   48.76 +	if (unlikely(next->tls_array[i].a != prev->tls_array[i].a ||    \
   48.77 +		     next->tls_array[i].b != prev->tls_array[i].b)) {   \
   48.78 +		mcl->op      = __HYPERVISOR_update_descriptor;          \
   48.79 +		mcl->args[0] = virt_to_machine(&get_cpu_gdt_table(cpu)  \
   48.80 +					 [GDT_ENTRY_TLS_MIN + i]);      \
   48.81 +		mcl->args[1] = ((u32 *)&next->tls_array[i])[0];         \
   48.82 +		mcl->args[2] = ((u32 *)&next->tls_array[i])[1];         \
   48.83 +		mcl++;                                                  \
   48.84 +	}                                                               \
   48.85  } while (0)
   48.86  	C(0); C(1); C(2);
   48.87  #undef C
   48.88 @@ -503,8 +490,9 @@ struct task_struct fastcall * __switch_t
   48.89  	if (unlikely(prev->io_pl != next->io_pl)) {
   48.90  		iopl_op.cmd             = PHYSDEVOP_SET_IOPL;
   48.91  		iopl_op.u.set_iopl.iopl = next->io_pl;
   48.92 -		queue_multicall1(__HYPERVISOR_physdev_op,
   48.93 -				(unsigned long)&iopl_op);
   48.94 +		mcl->op      = __HYPERVISOR_physdev_op;
   48.95 +		mcl->args[0] = (unsigned long)&iopl_op;
   48.96 +		mcl++;
   48.97  	}
   48.98  
   48.99  	if (unlikely(prev->io_bitmap_ptr || next->io_bitmap_ptr)) {
  48.100 @@ -514,13 +502,12 @@ struct task_struct fastcall * __switch_t
  48.101  			(unsigned long)next->io_bitmap_ptr;
  48.102  		iobmp_op.u.set_iobitmap.nr_ports =
  48.103  			next->io_bitmap_ptr ? IO_BITMAP_BITS : 0;
  48.104 -		queue_multicall1(__HYPERVISOR_physdev_op,
  48.105 -				(unsigned long)&iobmp_op);
  48.106 +		mcl->op      = __HYPERVISOR_physdev_op;
  48.107 +		mcl->args[0] = (unsigned long)&iobmp_op;
  48.108 +		mcl++;
  48.109  	}
  48.110  
  48.111 -	/* EXECUTE ALL TASK SWITCH XEN SYSCALLS AT THIS POINT. */
  48.112 -	execute_multicall_list();
  48.113 -        /* __sti(); */
  48.114 +	(void)HYPERVISOR_multicall(_mcl, mcl - _mcl);
  48.115  
  48.116  	/*
  48.117  	 * Restore %fs and %gs if needed.
    49.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c	Mon Apr 04 10:52:11 2005 +0000
    49.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c	Mon Apr 04 16:13:17 2005 +0000
    49.3 @@ -362,9 +362,6 @@ EXPORT_SYMBOL(HYPERVISOR_shared_info);
    49.4  unsigned int *phys_to_machine_mapping, *pfn_to_mfn_frame_list;
    49.5  EXPORT_SYMBOL(phys_to_machine_mapping);
    49.6  
    49.7 -DEFINE_PER_CPU(multicall_entry_t, multicall_list[8]);
    49.8 -DEFINE_PER_CPU(int, nr_multicall_ents);
    49.9 -
   49.10  /* Raw start-of-day parameters from the hypervisor. */
   49.11  union xen_start_info_union xen_start_info_union;
   49.12  
   49.13 @@ -1412,8 +1409,10 @@ void __init setup_arch(char **cmdline_p)
   49.14  	/* Register a call for panic conditions. */
   49.15  	notifier_chain_register(&panic_notifier_list, &xen_panic_block);
   49.16  
   49.17 -	HYPERVISOR_vm_assist(VMASST_CMD_enable,
   49.18 -			     VMASST_TYPE_4gb_segments);
   49.19 +	HYPERVISOR_vm_assist(
   49.20 +		VMASST_CMD_enable, VMASST_TYPE_4gb_segments);
   49.21 +	HYPERVISOR_vm_assist(
   49.22 +		VMASST_CMD_enable, VMASST_TYPE_writable_pagetables);
   49.23  
   49.24  	memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data));
   49.25  	early_cpu_init();
    50.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c	Mon Apr 04 10:52:11 2005 +0000
    50.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c	Mon Apr 04 16:13:17 2005 +0000
    50.3 @@ -203,6 +203,7 @@ inline void send_IPI_mask_sequence(cpuma
    50.4  
    50.5  #include <mach_ipi.h> /* must come after the send_IPI functions above for inlining */
    50.6  
    50.7 +#if 0 /* XEN */
    50.8  /*
    50.9   *	Smarter SMP flushing macros. 
   50.10   *		c/o Linus Torvalds.
   50.11 @@ -441,6 +442,22 @@ void flush_tlb_all(void)
   50.12  	on_each_cpu(do_flush_tlb_all, NULL, 1, 1);
   50.13  }
   50.14  
   50.15 +#else
   50.16 +
   50.17 +irqreturn_t smp_invalidate_interrupt(int irq, void *dev_id,
   50.18 +				     struct pt_regs *regs)
   50.19 +{ return 0; }
   50.20 +void flush_tlb_current_task(void)
   50.21 +{ xen_tlb_flush_mask(current->mm->cpu_vm_mask); }
   50.22 +void flush_tlb_mm(struct mm_struct * mm)
   50.23 +{ xen_tlb_flush_mask(mm->cpu_vm_mask); }
   50.24 +void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)
   50.25 +{ xen_invlpg_mask(vma->vm_mm->cpu_vm_mask, va); }
   50.26 +void flush_tlb_all(void)
   50.27 +{ xen_tlb_flush_all(); }
   50.28 +
   50.29 +#endif /* XEN */
   50.30 +
   50.31  /*
   50.32   * this function sends a 'reschedule' IPI to another CPU.
   50.33   * it goes straight through and wastes no time serializing
    51.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c	Mon Apr 04 10:52:11 2005 +0000
    51.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c	Mon Apr 04 16:13:17 2005 +0000
    51.3 @@ -898,7 +898,6 @@ static int __init do_boot_cpu(int apicid
    51.4  			make_page_readonly((void *)va);
    51.5  		}
    51.6  		ctxt.gdt_ents = cpu_gdt_descr[cpu].size / 8;
    51.7 -		flush_page_update_queue();
    51.8  	}
    51.9  
   51.10  	/* Ring 1 stack is the initial stack. */
    52.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/traps.c	Mon Apr 04 10:52:11 2005 +0000
    52.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/traps.c	Mon Apr 04 16:13:17 2005 +0000
    52.3 @@ -465,14 +465,7 @@ fastcall void do_general_protection(stru
    52.4  		unsigned long ldt;
    52.5  		__asm__ __volatile__ ("sldt %0" : "=r" (ldt));
    52.6  		if (ldt == 0) {
    52.7 -			mmu_update_t u;
    52.8 -			u.ptr = MMU_EXTENDED_COMMAND;
    52.9 -			u.ptr |= (unsigned long)&default_ldt[0];
   52.10 -			u.val = MMUEXT_SET_LDT | (5 << MMUEXT_CMD_SHIFT);
   52.11 -			if (unlikely(HYPERVISOR_mmu_update(&u, 1, NULL) < 0)) {
   52.12 -				show_trace(NULL, (unsigned long *)&u);
   52.13 -				panic("Failed to install default LDT");
   52.14 -			}
   52.15 +			xen_set_ldt((unsigned long)&default_ldt[0], 5);
   52.16  			return;
   52.17  		}
   52.18  	}
   52.19 @@ -963,7 +956,6 @@ void __init trap_init(void)
   52.20  	 * and a callgate to lcall27 for Solaris/x86 binaries
   52.21  	 */
   52.22  	make_lowmem_page_readonly(&default_ldt[0]);
   52.23 -	xen_flush_page_update_queue();
   52.24  
   52.25  	/*
   52.26  	 * Should be a barrier for any external CPU state.
    53.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c	Mon Apr 04 10:52:11 2005 +0000
    53.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c	Mon Apr 04 16:13:17 2005 +0000
    53.3 @@ -553,7 +553,6 @@ vmalloc_fault:
    53.4  		if (!pmd_present(*pmd_k))
    53.5  			goto no_context;
    53.6  		set_pmd(pmd, *pmd_k);
    53.7 -		xen_flush_page_update_queue(); /* flush PMD update */
    53.8  
    53.9  		pte_k = pte_offset_kernel(pmd_k, address);
   53.10  		if (!pte_present(*pte_k))
    54.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/hypervisor.c	Mon Apr 04 10:52:11 2005 +0000
    54.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/hypervisor.c	Mon Apr 04 16:13:17 2005 +0000
    54.3 @@ -34,396 +34,142 @@
    54.4  #include <asm/page.h>
    54.5  #include <asm/pgtable.h>
    54.6  #include <asm-xen/hypervisor.h>
    54.7 -#include <asm-xen/multicall.h>
    54.8  #include <asm-xen/balloon.h>
    54.9  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
   54.10  #include <linux/percpu.h>
   54.11 +#include <asm/tlbflush.h>
   54.12  #endif
   54.13  
   54.14 -/*
   54.15 - * This suffices to protect us if we ever move to SMP domains.
   54.16 - * Further, it protects us against interrupts. At the very least, this is
   54.17 - * required for the network driver which flushes the update queue before
   54.18 - * pushing new receive buffers.
   54.19 - */
   54.20 -static spinlock_t update_lock = SPIN_LOCK_UNLOCKED;
   54.21 -
   54.22 -/* Linux 2.6 isn't using the traditional batched interface. */
   54.23  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
   54.24 -#define QUEUE_SIZE 2048
   54.25  #define pte_offset_kernel pte_offset
   54.26 -#define pmd_val_ma(v) (v).pmd;
   54.27  #define pud_t pgd_t
   54.28  #define pud_offset(d, va) d
   54.29  #else
   54.30 -#ifdef CONFIG_SMP
   54.31 -#define QUEUE_SIZE 1
   54.32 -#else
   54.33 -#define QUEUE_SIZE 128
   54.34 -#endif
   54.35  #define pmd_val_ma(v) (v).pud.pgd.pgd;
   54.36  #endif
   54.37  
   54.38 -DEFINE_PER_CPU(mmu_update_t, update_queue[QUEUE_SIZE]);
   54.39 -DEFINE_PER_CPU(unsigned int, mmu_update_queue_idx);
   54.40 -
   54.41 -/*
   54.42 - * MULTICALL_flush_page_update_queue:
   54.43 - *   This is a version of the flush which queues as part of a multicall.
   54.44 - */
   54.45 -void MULTICALL_flush_page_update_queue(void)
   54.46 -{
   54.47 -    int cpu = smp_processor_id();
   54.48 -    int idx;
   54.49 -    unsigned long flags;
   54.50 -    unsigned int _idx;
   54.51 -    spin_lock_irqsave(&update_lock, flags);
   54.52 -    idx = per_cpu(mmu_update_queue_idx, cpu);
   54.53 -    if ( (_idx = idx) != 0 ) 
   54.54 -    {
   54.55 -        per_cpu(mmu_update_queue_idx, cpu) = 0;
   54.56 -        wmb(); /* Make sure index is cleared first to avoid double updates. */
   54.57 -        queue_multicall3(__HYPERVISOR_mmu_update, 
   54.58 -                         (unsigned long)&per_cpu(update_queue[0], cpu), 
   54.59 -                         (unsigned long)_idx, 
   54.60 -                         (unsigned long)NULL);
   54.61 -    }
   54.62 -    spin_unlock_irqrestore(&update_lock, flags);
   54.63 -}
   54.64 -
   54.65 -static inline void __flush_page_update_queue(void)
   54.66 -{
   54.67 -    int cpu = smp_processor_id();
   54.68 -    unsigned int _idx = per_cpu(mmu_update_queue_idx, cpu);
   54.69 -    per_cpu(mmu_update_queue_idx, cpu) = 0;
   54.70 -    wmb(); /* Make sure index is cleared first to avoid double updates. */
   54.71 -    if ( unlikely(HYPERVISOR_mmu_update(&per_cpu(update_queue[0], cpu), _idx, NULL) < 0) )
   54.72 -    {
   54.73 -        printk(KERN_ALERT "Failed to execute MMU updates.\n");
   54.74 -        BUG();
   54.75 -    }
   54.76 -}
   54.77 -
   54.78 -void _flush_page_update_queue(void)
   54.79 -{
   54.80 -    int cpu = smp_processor_id();
   54.81 -    unsigned long flags;
   54.82 -    spin_lock_irqsave(&update_lock, flags);
   54.83 -    if ( per_cpu(mmu_update_queue_idx, cpu) != 0 ) __flush_page_update_queue();
   54.84 -    spin_unlock_irqrestore(&update_lock, flags);
   54.85 -}
   54.86 -
   54.87 -static inline void increment_index(void)
   54.88 -{
   54.89 -    int cpu = smp_processor_id();
   54.90 -    per_cpu(mmu_update_queue_idx, cpu)++;
   54.91 -    if ( unlikely(per_cpu(mmu_update_queue_idx, cpu) == QUEUE_SIZE) ) __flush_page_update_queue();
   54.92 -}
   54.93 -
   54.94 -static inline void increment_index_and_flush(void)
   54.95 -{
   54.96 -    int cpu = smp_processor_id();
   54.97 -    per_cpu(mmu_update_queue_idx, cpu)++;
   54.98 -    __flush_page_update_queue();
   54.99 -}
  54.100 -
  54.101 -void queue_l1_entry_update(pte_t *ptr, unsigned long val)
  54.102 -{
  54.103 -    int cpu = smp_processor_id();
  54.104 -    int idx;
  54.105 -    unsigned long flags;
  54.106 -    spin_lock_irqsave(&update_lock, flags);
  54.107 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.108 -    per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr);
  54.109 -    per_cpu(update_queue[idx], cpu).val = val;
  54.110 -    increment_index();
  54.111 -    spin_unlock_irqrestore(&update_lock, flags);
  54.112 -}
  54.113 -
  54.114 -void queue_l2_entry_update(pmd_t *ptr, pmd_t val)
  54.115 -{
  54.116 -    int cpu = smp_processor_id();
  54.117 -    int idx;
  54.118 -    unsigned long flags;
  54.119 -    spin_lock_irqsave(&update_lock, flags);
  54.120 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.121 -    per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr);
  54.122 -    per_cpu(update_queue[idx], cpu).val = pmd_val_ma(val);
  54.123 -    increment_index();
  54.124 -    spin_unlock_irqrestore(&update_lock, flags);
  54.125 -}
  54.126 -
  54.127 -void queue_pt_switch(unsigned long ptr)
  54.128 -{
  54.129 -    int cpu = smp_processor_id();
  54.130 -    int idx;
  54.131 -    unsigned long flags;
  54.132 -    spin_lock_irqsave(&update_lock, flags);
  54.133 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.134 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.135 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.136 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_NEW_BASEPTR;
  54.137 -    increment_index();
  54.138 -    spin_unlock_irqrestore(&update_lock, flags);
  54.139 -}
  54.140 -
  54.141 -void queue_tlb_flush(void)
  54.142 -{
  54.143 -    int cpu = smp_processor_id();
  54.144 -    int idx;
  54.145 -    unsigned long flags;
  54.146 -    spin_lock_irqsave(&update_lock, flags);
  54.147 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.148 -    per_cpu(update_queue[idx], cpu).ptr  = MMU_EXTENDED_COMMAND;
  54.149 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_TLB_FLUSH;
  54.150 -    increment_index();
  54.151 -    spin_unlock_irqrestore(&update_lock, flags);
  54.152 -}
  54.153 -
  54.154 -void queue_invlpg(unsigned long ptr)
  54.155 -{
  54.156 -    int cpu = smp_processor_id();
  54.157 -    int idx;
  54.158 -    unsigned long flags;
  54.159 -    spin_lock_irqsave(&update_lock, flags);
  54.160 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.161 -    per_cpu(update_queue[idx], cpu).ptr  = MMU_EXTENDED_COMMAND;
  54.162 -    per_cpu(update_queue[idx], cpu).ptr |= ptr & PAGE_MASK;
  54.163 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_INVLPG;
  54.164 -    increment_index();
  54.165 -    spin_unlock_irqrestore(&update_lock, flags);
  54.166 -}
  54.167 -
  54.168 -void queue_pgd_pin(unsigned long ptr)
  54.169 -{
  54.170 -    int cpu = smp_processor_id();
  54.171 -    int idx;
  54.172 -    unsigned long flags;
  54.173 -    spin_lock_irqsave(&update_lock, flags);
  54.174 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.175 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.176 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.177 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_PIN_L2_TABLE;
  54.178 -    increment_index();
  54.179 -    spin_unlock_irqrestore(&update_lock, flags);
  54.180 -}
  54.181 -
  54.182 -void queue_pgd_unpin(unsigned long ptr)
  54.183 -{
  54.184 -    int cpu = smp_processor_id();
  54.185 -    int idx;
  54.186 -    unsigned long flags;
  54.187 -    spin_lock_irqsave(&update_lock, flags);
  54.188 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.189 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.190 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.191 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_UNPIN_TABLE;
  54.192 -    increment_index();
  54.193 -    spin_unlock_irqrestore(&update_lock, flags);
  54.194 -}
  54.195 -
  54.196 -void queue_pte_pin(unsigned long ptr)
  54.197 -{
  54.198 -    int cpu = smp_processor_id();
  54.199 -    int idx;
  54.200 -    unsigned long flags;
  54.201 -    spin_lock_irqsave(&update_lock, flags);
  54.202 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.203 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.204 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.205 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_PIN_L1_TABLE;
  54.206 -    increment_index();
  54.207 -    spin_unlock_irqrestore(&update_lock, flags);
  54.208 -}
  54.209 -
  54.210 -void queue_pte_unpin(unsigned long ptr)
  54.211 -{
  54.212 -    int cpu = smp_processor_id();
  54.213 -    int idx;
  54.214 -    unsigned long flags;
  54.215 -    spin_lock_irqsave(&update_lock, flags);
  54.216 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.217 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.218 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.219 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_UNPIN_TABLE;
  54.220 -    increment_index();
  54.221 -    spin_unlock_irqrestore(&update_lock, flags);
  54.222 -}
  54.223 -
  54.224 -void queue_set_ldt(unsigned long ptr, unsigned long len)
  54.225 -{
  54.226 -    int cpu = smp_processor_id();
  54.227 -    int idx;
  54.228 -    unsigned long flags;
  54.229 -    spin_lock_irqsave(&update_lock, flags);
  54.230 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.231 -    per_cpu(update_queue[idx], cpu).ptr  = MMU_EXTENDED_COMMAND | ptr;
  54.232 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_SET_LDT | (len << MMUEXT_CMD_SHIFT);
  54.233 -    increment_index();
  54.234 -    spin_unlock_irqrestore(&update_lock, flags);
  54.235 -}
  54.236 -
  54.237 -void queue_machphys_update(unsigned long mfn, unsigned long pfn)
  54.238 -{
  54.239 -    int cpu = smp_processor_id();
  54.240 -    int idx;
  54.241 -    unsigned long flags;
  54.242 -    spin_lock_irqsave(&update_lock, flags);
  54.243 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.244 -    per_cpu(update_queue[idx], cpu).ptr = (mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE;
  54.245 -    per_cpu(update_queue[idx], cpu).val = pfn;
  54.246 -    increment_index();
  54.247 -    spin_unlock_irqrestore(&update_lock, flags);
  54.248 -}
  54.249 -
  54.250 -/* queue and flush versions of the above */
  54.251  void xen_l1_entry_update(pte_t *ptr, unsigned long val)
  54.252  {
  54.253 -    int cpu = smp_processor_id();
  54.254 -    int idx;
  54.255 -    unsigned long flags;
  54.256 -    spin_lock_irqsave(&update_lock, flags);
  54.257 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.258 -    per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr);
  54.259 -    per_cpu(update_queue[idx], cpu).val = val;
  54.260 -    increment_index_and_flush();
  54.261 -    spin_unlock_irqrestore(&update_lock, flags);
  54.262 +    mmu_update_t u;
  54.263 +    u.ptr = virt_to_machine(ptr);
  54.264 +    u.val = val;
  54.265 +    BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
  54.266  }
  54.267  
  54.268  void xen_l2_entry_update(pmd_t *ptr, pmd_t val)
  54.269  {
  54.270 -    int cpu = smp_processor_id();
  54.271 -    int idx;
  54.272 -    unsigned long flags;
  54.273 -    spin_lock_irqsave(&update_lock, flags);
  54.274 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.275 -    per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr);
  54.276 -    per_cpu(update_queue[idx], cpu).val = pmd_val_ma(val);
  54.277 -    increment_index_and_flush();
  54.278 -    spin_unlock_irqrestore(&update_lock, flags);
  54.279 +    mmu_update_t u;
  54.280 +    u.ptr = virt_to_machine(ptr);
  54.281 +    u.val = pmd_val_ma(val);
  54.282 +    BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
  54.283 +}
  54.284 +
  54.285 +void xen_machphys_update(unsigned long mfn, unsigned long pfn)
  54.286 +{
  54.287 +    mmu_update_t u;
  54.288 +    u.ptr = (mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE;
  54.289 +    u.val = pfn;
  54.290 +    BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
  54.291  }
  54.292  
  54.293  void xen_pt_switch(unsigned long ptr)
  54.294  {
  54.295 -    int cpu = smp_processor_id();
  54.296 -    int idx;
  54.297 -    unsigned long flags;
  54.298 -    spin_lock_irqsave(&update_lock, flags);
  54.299 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.300 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.301 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.302 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_NEW_BASEPTR;
  54.303 -    increment_index_and_flush();
  54.304 -    spin_unlock_irqrestore(&update_lock, flags);
  54.305 +    struct mmuext_op op;
  54.306 +    op.cmd = MMUEXT_NEW_BASEPTR;
  54.307 +    op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT);
  54.308 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.309  }
  54.310  
  54.311  void xen_tlb_flush(void)
  54.312  {
  54.313 -    int cpu = smp_processor_id();
  54.314 -    int idx;
  54.315 -    unsigned long flags;
  54.316 -    spin_lock_irqsave(&update_lock, flags);
  54.317 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.318 -    per_cpu(update_queue[idx], cpu).ptr  = MMU_EXTENDED_COMMAND;
  54.319 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_TLB_FLUSH;
  54.320 -    increment_index_and_flush();
  54.321 -    spin_unlock_irqrestore(&update_lock, flags);
  54.322 +    struct mmuext_op op;
  54.323 +    op.cmd = MMUEXT_TLB_FLUSH_LOCAL;
  54.324 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.325  }
  54.326  
  54.327  void xen_invlpg(unsigned long ptr)
  54.328  {
  54.329 -    int cpu = smp_processor_id();
  54.330 -    int idx;
  54.331 -    unsigned long flags;
  54.332 -    spin_lock_irqsave(&update_lock, flags);
  54.333 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.334 -    per_cpu(update_queue[idx], cpu).ptr  = MMU_EXTENDED_COMMAND;
  54.335 -    per_cpu(update_queue[idx], cpu).ptr |= ptr & PAGE_MASK;
  54.336 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_INVLPG;
  54.337 -    increment_index_and_flush();
  54.338 -    spin_unlock_irqrestore(&update_lock, flags);
  54.339 +    struct mmuext_op op;
  54.340 +    op.cmd = MMUEXT_INVLPG_LOCAL;
  54.341 +    op.linear_addr = ptr & PAGE_MASK;
  54.342 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.343  }
  54.344  
  54.345 +#ifdef CONFIG_SMP
  54.346 +
  54.347 +void xen_tlb_flush_all(void)
  54.348 +{
  54.349 +    struct mmuext_op op;
  54.350 +    op.cmd = MMUEXT_TLB_FLUSH_ALL;
  54.351 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.352 +}
  54.353 +
  54.354 +void xen_tlb_flush_mask(cpumask_t mask)
  54.355 +{
  54.356 +    struct mmuext_op op;
  54.357 +    op.cmd = MMUEXT_TLB_FLUSH_MULTI;
  54.358 +    op.cpuset = (unsigned long)mask.bits;
  54.359 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.360 +}
  54.361 +
  54.362 +void xen_invlpg_all(unsigned long ptr)
  54.363 +{
  54.364 +    struct mmuext_op op;
  54.365 +    op.cmd = MMUEXT_INVLPG_ALL;
  54.366 +    op.linear_addr = ptr & PAGE_MASK;
  54.367 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.368 +}
  54.369 +
  54.370 +void xen_invlpg_mask(cpumask_t mask, unsigned long ptr)
  54.371 +{
  54.372 +    struct mmuext_op op;
  54.373 +    op.cmd = MMUEXT_INVLPG_MULTI;
  54.374 +    op.cpuset = (unsigned long)mask.bits;
  54.375 +    op.linear_addr = ptr & PAGE_MASK;
  54.376 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.377 +}
  54.378 +
  54.379 +#endif /* CONFIG_SMP */
  54.380 +
  54.381  void xen_pgd_pin(unsigned long ptr)
  54.382  {
  54.383 -    int cpu = smp_processor_id();
  54.384 -    int idx;
  54.385 -    unsigned long flags;
  54.386 -    spin_lock_irqsave(&update_lock, flags);
  54.387 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.388 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.389 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.390 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_PIN_L2_TABLE;
  54.391 -    increment_index_and_flush();
  54.392 -    spin_unlock_irqrestore(&update_lock, flags);
  54.393 +    struct mmuext_op op;
  54.394 +    op.cmd = MMUEXT_PIN_L2_TABLE;
  54.395 +    op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT);
  54.396 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.397  }
  54.398  
  54.399  void xen_pgd_unpin(unsigned long ptr)
  54.400  {
  54.401 -    int cpu = smp_processor_id();
  54.402 -    int idx;
  54.403 -    unsigned long flags;
  54.404 -    spin_lock_irqsave(&update_lock, flags);
  54.405 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.406 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.407 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.408 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_UNPIN_TABLE;
  54.409 -    increment_index_and_flush();
  54.410 -    spin_unlock_irqrestore(&update_lock, flags);
  54.411 +    struct mmuext_op op;
  54.412 +    op.cmd = MMUEXT_UNPIN_TABLE;
  54.413 +    op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT);
  54.414 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.415  }
  54.416  
  54.417  void xen_pte_pin(unsigned long ptr)
  54.418  {
  54.419 -    int cpu = smp_processor_id();
  54.420 -    int idx;
  54.421 -    unsigned long flags;
  54.422 -    spin_lock_irqsave(&update_lock, flags);
  54.423 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.424 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.425 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.426 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_PIN_L1_TABLE;
  54.427 -    increment_index_and_flush();
  54.428 -    spin_unlock_irqrestore(&update_lock, flags);
  54.429 +    struct mmuext_op op;
  54.430 +    op.cmd = MMUEXT_PIN_L1_TABLE;
  54.431 +    op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT);
  54.432 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.433  }
  54.434  
  54.435  void xen_pte_unpin(unsigned long ptr)
  54.436  {
  54.437 -    int cpu = smp_processor_id();
  54.438 -    int idx;
  54.439 -    unsigned long flags;
  54.440 -    spin_lock_irqsave(&update_lock, flags);
  54.441 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.442 -    per_cpu(update_queue[idx], cpu).ptr  = phys_to_machine(ptr);
  54.443 -    per_cpu(update_queue[idx], cpu).ptr |= MMU_EXTENDED_COMMAND;
  54.444 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_UNPIN_TABLE;
  54.445 -    increment_index_and_flush();
  54.446 -    spin_unlock_irqrestore(&update_lock, flags);
  54.447 +    struct mmuext_op op;
  54.448 +    op.cmd = MMUEXT_UNPIN_TABLE;
  54.449 +    op.mfn = pfn_to_mfn(ptr >> PAGE_SHIFT);
  54.450 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.451  }
  54.452  
  54.453  void xen_set_ldt(unsigned long ptr, unsigned long len)
  54.454  {
  54.455 -    int cpu = smp_processor_id();
  54.456 -    int idx;
  54.457 -    unsigned long flags;
  54.458 -    spin_lock_irqsave(&update_lock, flags);
  54.459 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.460 -    per_cpu(update_queue[idx], cpu).ptr  = MMU_EXTENDED_COMMAND | ptr;
  54.461 -    per_cpu(update_queue[idx], cpu).val  = MMUEXT_SET_LDT | (len << MMUEXT_CMD_SHIFT);
  54.462 -    increment_index_and_flush();
  54.463 -    spin_unlock_irqrestore(&update_lock, flags);
  54.464 -}
  54.465 -
  54.466 -void xen_machphys_update(unsigned long mfn, unsigned long pfn)
  54.467 -{
  54.468 -    int cpu = smp_processor_id();
  54.469 -    int idx;
  54.470 -    unsigned long flags;
  54.471 -    spin_lock_irqsave(&update_lock, flags);
  54.472 -    idx = per_cpu(mmu_update_queue_idx, cpu);
  54.473 -    per_cpu(update_queue[idx], cpu).ptr = (mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE;
  54.474 -    per_cpu(update_queue[idx], cpu).val = pfn;
  54.475 -    increment_index_and_flush();
  54.476 -    spin_unlock_irqrestore(&update_lock, flags);
  54.477 +    struct mmuext_op op;
  54.478 +    op.cmd = MMUEXT_SET_LDT;
  54.479 +    op.linear_addr = ptr;
  54.480 +    op.nr_ents = len;
  54.481 +    BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
  54.482  }
  54.483  
  54.484  #ifdef CONFIG_XEN_PHYSDEV_ACCESS
  54.485 @@ -456,12 +202,11 @@ unsigned long allocate_empty_lowmem_regi
  54.486          pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE)));
  54.487          pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE))); 
  54.488          pfn_array[i] = pte->pte_low >> PAGE_SHIFT;
  54.489 -        queue_l1_entry_update(pte, 0);
  54.490 +        HYPERVISOR_update_va_mapping(vstart + (i*PAGE_SIZE), __pte_ma(0), 0);
  54.491          phys_to_machine_mapping[__pa(vstart)>>PAGE_SHIFT] = INVALID_P2M_ENTRY;
  54.492      }
  54.493  
  54.494 -    /* Flush updates through and flush the TLB. */
  54.495 -    xen_tlb_flush();
  54.496 +    flush_tlb_all();
  54.497  
  54.498      balloon_put_pages(pfn_array, 1 << order);
  54.499  
    55.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c	Mon Apr 04 10:52:11 2005 +0000
    55.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c	Mon Apr 04 16:13:17 2005 +0000
    55.3 @@ -192,7 +192,6 @@ static void __init kernel_physical_mappi
    55.4  				}
    55.5  				pte_ofs = 0;
    55.6  			}
    55.7 -			flush_page_update_queue();
    55.8  		}
    55.9  		pmd_idx = 0;
   55.10  	}	
   55.11 @@ -356,12 +355,11 @@ static void __init pagetable_init (void)
   55.12  	 */
   55.13  	memcpy(new_pgd, old_pgd, PTRS_PER_PGD_NO_HV*sizeof(pgd_t));
   55.14  	make_page_readonly(new_pgd);
   55.15 -	queue_pgd_pin(__pa(new_pgd));
   55.16 +	xen_pgd_pin(__pa(new_pgd));
   55.17  	load_cr3(new_pgd);
   55.18 -	queue_pgd_unpin(__pa(old_pgd));
   55.19 -	__flush_tlb_all(); /* implicit flush */
   55.20 +	xen_pgd_unpin(__pa(old_pgd));
   55.21  	make_page_writable(old_pgd);
   55.22 -	flush_page_update_queue();
   55.23 +	__flush_tlb_all();
   55.24  	free_bootmem(__pa(old_pgd), PAGE_SIZE);
   55.25  
   55.26  	kernel_physical_mapping_init(new_pgd);
   55.27 @@ -564,7 +562,6 @@ void __init paging_init(void)
   55.28  	zone_sizes_init();
   55.29  
   55.30  	/* Switch to the real shared_info page, and clear the dummy page. */
   55.31 -	flush_page_update_queue();
   55.32  	set_fixmap_ma(FIX_SHARED_INFO, xen_start_info.shared_info);
   55.33  	HYPERVISOR_shared_info = (shared_info_t *)fix_to_virt(FIX_SHARED_INFO);
   55.34  	memset(empty_zero_page, 0, sizeof(empty_zero_page));
    56.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/ioremap.c	Mon Apr 04 10:52:11 2005 +0000
    56.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/ioremap.c	Mon Apr 04 16:13:17 2005 +0000
    56.3 @@ -108,7 +108,7 @@ void __iomem * __ioremap(unsigned long p
    56.4  			if(!PageReserved(page))
    56.5  				return NULL;
    56.6  
    56.7 -		domid = DOMID_LOCAL;
    56.8 +		domid = DOMID_SELF;
    56.9  	}
   56.10  
   56.11  	/*
   56.12 @@ -393,15 +393,7 @@ int direct_remap_area_pages(struct mm_st
   56.13  	int i;
   56.14  	unsigned long start_address;
   56.15  #define MAX_DIRECTMAP_MMU_QUEUE 130
   56.16 -	mmu_update_t u[MAX_DIRECTMAP_MMU_QUEUE], *w, *v;
   56.17 -
   56.18 -	v = w = &u[0];
   56.19 -	if (domid != DOMID_LOCAL) {
   56.20 -		u[0].ptr  = MMU_EXTENDED_COMMAND;
   56.21 -		u[0].val  = MMUEXT_SET_FOREIGNDOM;
   56.22 -		u[0].val |= (unsigned long)domid << 16;
   56.23 -		v = w = &u[1];
   56.24 -	}
   56.25 +	mmu_update_t u[MAX_DIRECTMAP_MMU_QUEUE], *v = u;
   56.26  
   56.27  	start_address = address;
   56.28  
   56.29 @@ -413,11 +405,11 @@ int direct_remap_area_pages(struct mm_st
   56.30  			__direct_remap_area_pages(mm,
   56.31  						  start_address, 
   56.32  						  address-start_address, 
   56.33 -						  w);
   56.34 +						  u);
   56.35   
   56.36 -			if (HYPERVISOR_mmu_update(u, v - u, NULL) < 0)
   56.37 +			if (HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0)
   56.38  				return -EFAULT;
   56.39 -			v = w;
   56.40 +			v = u;
   56.41  			start_address = address;
   56.42  		}
   56.43  
   56.44 @@ -432,13 +424,13 @@ int direct_remap_area_pages(struct mm_st
   56.45  		v++;
   56.46  	}
   56.47  
   56.48 -	if (v != w) {
   56.49 +	if (v != u) {
   56.50  		/* get the ptep's filled in */
   56.51  		__direct_remap_area_pages(mm,
   56.52  					  start_address, 
   56.53  					  address-start_address, 
   56.54 -					  w);
   56.55 -		if (unlikely(HYPERVISOR_mmu_update(u, v - u, NULL) < 0))
   56.56 +					  u);
   56.57 +		if (unlikely(HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0))
   56.58  			return -EFAULT;
   56.59  	}
   56.60  
    57.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c	Mon Apr 04 10:52:11 2005 +0000
    57.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c	Mon Apr 04 16:13:17 2005 +0000
    57.3 @@ -193,10 +193,8 @@ void __set_fixmap_ma (enum fixed_address
    57.4  pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
    57.5  {
    57.6  	pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
    57.7 -	if (pte) {
    57.8 +	if (pte)
    57.9  		make_page_readonly(pte);
   57.10 -		xen_flush_page_update_queue();
   57.11 -	}
   57.12  	return pte;
   57.13  }
   57.14  
   57.15 @@ -208,8 +206,7 @@ void pte_ctor(void *pte, kmem_cache_t *c
   57.16  
   57.17  	clear_page(pte);
   57.18  	make_page_readonly(pte);
   57.19 -	queue_pte_pin(__pa(pte));
   57.20 -	flush_page_update_queue();
   57.21 +	xen_pte_pin(__pa(pte));
   57.22  }
   57.23  
   57.24  void pte_dtor(void *pte, kmem_cache_t *cache, unsigned long unused)
   57.25 @@ -217,9 +214,8 @@ void pte_dtor(void *pte, kmem_cache_t *c
   57.26  	struct page *page = virt_to_page(pte);
   57.27  	ClearPageForeign(page);
   57.28  
   57.29 -	queue_pte_unpin(__pa(pte));
   57.30 +	xen_pte_unpin(__pa(pte));
   57.31  	make_page_writable(pte);
   57.32 -	flush_page_update_queue();
   57.33  }
   57.34  
   57.35  struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
   57.36 @@ -316,8 +312,7 @@ void pgd_ctor(void *pgd, kmem_cache_t *c
   57.37  	memset(pgd, 0, USER_PTRS_PER_PGD*sizeof(pgd_t));
   57.38   out:
   57.39  	make_page_readonly(pgd);
   57.40 -	queue_pgd_pin(__pa(pgd));
   57.41 -	flush_page_update_queue();
   57.42 +	xen_pgd_pin(__pa(pgd));
   57.43  }
   57.44  
   57.45  /* never called when PTRS_PER_PMD > 1 */
   57.46 @@ -325,9 +320,8 @@ void pgd_dtor(void *pgd, kmem_cache_t *c
   57.47  {
   57.48  	unsigned long flags; /* can be called from interrupt context */
   57.49  
   57.50 -	queue_pgd_unpin(__pa(pgd));
   57.51 +	xen_pgd_unpin(__pa(pgd));
   57.52  	make_page_writable(pgd);
   57.53 -	flush_page_update_queue();
   57.54  
   57.55  	if (PTRS_PER_PMD > 1)
   57.56  		return;
   57.57 @@ -378,7 +372,7 @@ void make_lowmem_page_readonly(void *va)
   57.58  	pud_t *pud = pud_offset(pgd, (unsigned long)va);
   57.59  	pmd_t *pmd = pmd_offset(pud, (unsigned long)va);
   57.60  	pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
   57.61 -	queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW);
   57.62 +	set_pte(pte, pte_wrprotect(*pte));
   57.63  }
   57.64  
   57.65  void make_lowmem_page_writable(void *va)
   57.66 @@ -387,7 +381,7 @@ void make_lowmem_page_writable(void *va)
   57.67  	pud_t *pud = pud_offset(pgd, (unsigned long)va);
   57.68  	pmd_t *pmd = pmd_offset(pud, (unsigned long)va);
   57.69  	pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
   57.70 -	queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW);
   57.71 +	set_pte(pte, pte_mkwrite(*pte));
   57.72  }
   57.73  
   57.74  void make_page_readonly(void *va)
   57.75 @@ -396,7 +390,7 @@ void make_page_readonly(void *va)
   57.76  	pud_t *pud = pud_offset(pgd, (unsigned long)va);
   57.77  	pmd_t *pmd = pmd_offset(pud, (unsigned long)va);
   57.78  	pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
   57.79 -	queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW);
   57.80 +	set_pte(pte, pte_wrprotect(*pte));
   57.81  	if ( (unsigned long)va >= (unsigned long)high_memory )
   57.82  	{
   57.83  		unsigned long phys;
   57.84 @@ -414,7 +408,7 @@ void make_page_writable(void *va)
   57.85  	pud_t *pud = pud_offset(pgd, (unsigned long)va);
   57.86  	pmd_t *pmd = pmd_offset(pud, (unsigned long)va);
   57.87  	pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
   57.88 -	queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW);
   57.89 +	set_pte(pte, pte_mkwrite(*pte));
   57.90  	if ( (unsigned long)va >= (unsigned long)high_memory )
   57.91  	{
   57.92  		unsigned long phys;
    58.1 --- a/linux-2.6.11-xen-sparse/arch/xen/kernel/ctrl_if.c	Mon Apr 04 10:52:11 2005 +0000
    58.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/kernel/ctrl_if.c	Mon Apr 04 16:13:17 2005 +0000
    58.3 @@ -503,8 +503,8 @@ void ctrl_if_resume(void)
    58.4      }
    58.5  
    58.6      /* Sync up with shared indexes. */
    58.7 -    FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring);
    58.8 -    BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring);
    58.9 +    FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring, CONTROL_RING_MEM);
   58.10 +    BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring, CONTROL_RING_MEM);
   58.11  
   58.12      ctrl_if_evtchn = xen_start_info.domain_controller_evtchn;
   58.13      ctrl_if_irq    = bind_evtchn_to_irq(ctrl_if_evtchn);
   58.14 @@ -523,8 +523,8 @@ void __init ctrl_if_init(void)
   58.15      for ( i = 0; i < 256; i++ )
   58.16          ctrl_if_rxmsg_handler[i] = ctrl_if_rxmsg_default_handler;
   58.17  
   58.18 -    FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring);
   58.19 -    BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring);
   58.20 +    FRONT_RING_ATTACH(&ctrl_if_tx_ring, &ctrl_if->tx_ring, CONTROL_RING_MEM);
   58.21 +    BACK_RING_ATTACH(&ctrl_if_rx_ring, &ctrl_if->rx_ring, CONTROL_RING_MEM);
   58.22      
   58.23      spin_lock_init(&ctrl_if_lock);
   58.24  
    59.1 --- a/linux-2.6.11-xen-sparse/arch/xen/kernel/fixup.c	Mon Apr 04 10:52:11 2005 +0000
    59.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/kernel/fixup.c	Mon Apr 04 16:13:17 2005 +0000
    59.3 @@ -50,8 +50,8 @@
    59.4  
    59.5      if ( !test_and_set_bit(0, &printed) )
    59.6      {
    59.7 -        HYPERVISOR_vm_assist(VMASST_CMD_disable,
    59.8 -                             VMASST_TYPE_4gb_segments_notify);
    59.9 +        HYPERVISOR_vm_assist(
   59.10 +            VMASST_CMD_disable, VMASST_TYPE_4gb_segments_notify);
   59.11  
   59.12          DP("");
   59.13          DP("***************************************************************");
   59.14 @@ -79,8 +79,8 @@
   59.15  
   59.16  static int __init fixup_init(void)
   59.17  {
   59.18 -    HYPERVISOR_vm_assist(VMASST_CMD_enable,
   59.19 -                         VMASST_TYPE_4gb_segments_notify);
   59.20 +    HYPERVISOR_vm_assist(
   59.21 +        VMASST_CMD_enable, VMASST_TYPE_4gb_segments_notify);
   59.22      return 0;
   59.23  }
   59.24  __initcall(fixup_init);
    60.1 --- a/linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c	Mon Apr 04 10:52:11 2005 +0000
    60.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c	Mon Apr 04 16:13:17 2005 +0000
    60.3 @@ -77,6 +77,13 @@ static void __do_suspend(void)
    60.4  #define netif_resume()  do{}while(0)
    60.5  #endif
    60.6  
    60.7 +
    60.8 +#ifdef CONFIG_XEN_USB_FRONTEND
    60.9 +    extern void usbif_resume();
   60.10 +#else
   60.11 +#define usbif_resume() do{}while(0)
   60.12 +#endif
   60.13 +
   60.14      extern void time_suspend(void);
   60.15      extern void time_resume(void);
   60.16      extern unsigned long max_pfn;
   60.17 @@ -103,20 +110,15 @@ static void __do_suspend(void)
   60.18      HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page;
   60.19      clear_fixmap(FIX_SHARED_INFO);
   60.20  
   60.21 -    memcpy(&suspend_record->resume_info, &xen_start_info, sizeof(xen_start_info));
   60.22 +    memcpy(&suspend_record->resume_info, &xen_start_info,
   60.23 +           sizeof(xen_start_info));
   60.24  
   60.25      HYPERVISOR_suspend(virt_to_machine(suspend_record) >> PAGE_SHIFT);
   60.26  
   60.27 -    HYPERVISOR_vm_assist(VMASST_CMD_enable,
   60.28 -			 VMASST_TYPE_4gb_segments);
   60.29 -#ifdef CONFIG_XEN_WRITABLE_PAGETABLES
   60.30 -    HYPERVISOR_vm_assist(VMASST_CMD_enable,
   60.31 -			 VMASST_TYPE_writable_pagetables);
   60.32 -#endif
   60.33 -
   60.34      shutting_down = -1; 
   60.35  
   60.36 -    memcpy(&xen_start_info, &suspend_record->resume_info, sizeof(xen_start_info));
   60.37 +    memcpy(&xen_start_info, &suspend_record->resume_info,
   60.38 +           sizeof(xen_start_info));
   60.39  
   60.40  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
   60.41      set_fixmap_ma(FIX_SHARED_INFO, xen_start_info.shared_info);
   60.42 @@ -147,6 +149,8 @@ static void __do_suspend(void)
   60.43  
   60.44      netif_resume();
   60.45  
   60.46 +    usbif_resume();
   60.47 +
   60.48      __sti();
   60.49  
   60.50   out:
   60.51 @@ -242,7 +246,7 @@ static void shutdown_handler(ctrl_msg_t 
   60.52      else if ( (pending_sysrq == -1) && 
   60.53                (msg->subtype == CMSG_SHUTDOWN_SYSRQ) )
   60.54      {
   60.55 -        pending_sysrq = msg->msg[0];
   60.56 +        pending_sysrq = ((shutdown_sysrq_t *)&msg->msg[0])->key;
   60.57          schedule_work(&sysrq_work);
   60.58      }
   60.59      else
    61.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    61.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig	Mon Apr 04 16:13:17 2005 +0000
    61.3 @@ -0,0 +1,463 @@
    61.4 +#
    61.5 +# For a description of the syntax of this configuration file,
    61.6 +# see Documentation/kbuild/kconfig-language.txt.
    61.7 +#
    61.8 +# Note: ISA is disabled and will hopefully never be enabled.
    61.9 +# If you managed to buy an ISA x86-64 box you'll have to fix all the
   61.10 +# ISA drivers you need yourself.
   61.11 +#
   61.12 +
   61.13 +menu "X86_64 processor configuration"
   61.14 +	depends XEN_X86_64
   61.15 +
   61.16 +config XENARCH
   61.17 +	string
   61.18 +	default x86_64
   61.19 +
   61.20 +config X86_64
   61.21 +	bool
   61.22 +	default y
   61.23 +	help
   61.24 +	  Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
   61.25 +	  classical 32-bit x86 architecture. For details see
   61.26 +	  <http://www.x86-64.org/>.
   61.27 +
   61.28 +config X86
   61.29 +        bool
   61.30 +        default y
   61.31 +
   61.32 +config 64BIT
   61.33 +	def_bool y
   61.34 +
   61.35 +#config X86
   61.36 +#	bool
   61.37 +#	default y
   61.38 +
   61.39 +config MMU
   61.40 +	bool
   61.41 +	default y
   61.42 +
   61.43 +config ISA
   61.44 +	bool
   61.45 +
   61.46 +config SBUS
   61.47 +	bool
   61.48 +
   61.49 +config RWSEM_GENERIC_SPINLOCK
   61.50 +	bool
   61.51 +	default y
   61.52 +
   61.53 +config RWSEM_XCHGADD_ALGORITHM
   61.54 +	bool
   61.55 +
   61.56 +config GENERIC_CALIBRATE_DELAY
   61.57 +	bool
   61.58 +	default y
   61.59 +
   61.60 +config X86_CMPXCHG
   61.61 +	bool
   61.62 +	default y
   61.63 +
   61.64 +config EARLY_PRINTK
   61.65 +	bool "Early Printk"
   61.66 +	default n
   61.67 +	help
   61.68 +	  Write kernel log output directly into the VGA buffer or to a serial
   61.69 +	  port.
   61.70 +
   61.71 +	  This is useful for kernel debugging when your machine crashes very
   61.72 +	  early before the console code is initialized. For normal operation
   61.73 +	  it is not recommended because it looks ugly and doesn't cooperate
   61.74 +	  with klogd/syslogd or the X server. You should normally N here,
   61.75 +	  unless you want to debug such a crash.
   61.76 +
   61.77 +config HPET_TIMER
   61.78 +	bool
   61.79 +	default n
   61.80 +	help
   61.81 +	  Use the IA-PC HPET (High Precision Event Timer) to manage
   61.82 +	  time in preference to the PIT and RTC, if a HPET is
   61.83 +	  present.  The HPET provides a stable time base on SMP
   61.84 +	  systems, unlike the RTC, but it is more expensive to access,
   61.85 +	  as it is off-chip.  You can find the HPET spec at
   61.86 +	  <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
   61.87 +
   61.88 +	  If unsure, say Y.
   61.89 +
   61.90 +config HPET_EMULATE_RTC
   61.91 +	bool "Provide RTC interrupt"
   61.92 +	depends on HPET_TIMER && RTC=y
   61.93 +
   61.94 +config GENERIC_ISA_DMA
   61.95 +	bool
   61.96 +	default y
   61.97 +
   61.98 +config GENERIC_IOMAP
   61.99 +	bool
  61.100 +	default y
  61.101 +
  61.102 +#source "init/Kconfig"
  61.103 +
  61.104 +
  61.105 +menu "Processor type and features"
  61.106 +
  61.107 +choice
  61.108 +	prompt "Processor family"
  61.109 +	default MK8
  61.110 +
  61.111 +config MK8
  61.112 +	bool "AMD-Opteron/Athlon64"
  61.113 +	help
  61.114 +	  Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
  61.115 +
  61.116 +config MPSC
  61.117 +       bool "Intel x86-64"
  61.118 +       help
  61.119 +	  Optimize for Intel IA32 with 64bit extension CPUs
  61.120 +	  (Prescott/Nocona/Potomac)
  61.121 +
  61.122 +config GENERIC_CPU
  61.123 +	bool "Generic-x86-64"
  61.124 +	help
  61.125 +	  Generic x86-64 CPU.
  61.126 +
  61.127 +endchoice
  61.128 +
  61.129 +#
  61.130 +# Define implied options from the CPU selection here
  61.131 +#
  61.132 +config X86_L1_CACHE_BYTES
  61.133 +	int
  61.134 +	default "128" if GENERIC_CPU || MPSC
  61.135 +	default "64" if MK8
  61.136 +
  61.137 +config X86_L1_CACHE_SHIFT
  61.138 +	int
  61.139 +	default "7" if GENERIC_CPU || MPSC
  61.140 +	default "6" if MK8
  61.141 +
  61.142 +config X86_TSC
  61.143 +	bool
  61.144 +	default n
  61.145 +
  61.146 +config X86_GOOD_APIC
  61.147 +	bool
  61.148 +	default y
  61.149 +
  61.150 +config MICROCODE
  61.151 +	tristate "/dev/cpu/microcode - Intel CPU microcode support"
  61.152 +	---help---
  61.153 +	  If you say Y here the 'File systems' section, you will be
  61.154 +	  able to update the microcode on Intel processors. You will
  61.155 +	  obviously need the actual microcode binary data itself which is
  61.156 +	  not shipped with the Linux kernel.
  61.157 +
  61.158 +	  For latest news and information on obtaining all the required
  61.159 +	  ingredients for this driver, check:
  61.160 +	  <http://www.urbanmyth.org/microcode/>.
  61.161 +
  61.162 +	  To compile this driver as a module, choose M here: the
  61.163 +	  module will be called microcode.
  61.164 +	  If you use modprobe or kmod you may also want to add the line
  61.165 +	  'alias char-major-10-184 microcode' to your /etc/modules.conf file.
  61.166 +
  61.167 +config X86_MSR
  61.168 +	tristate "/dev/cpu/*/msr - Model-specific register support"
  61.169 +	help
  61.170 +	  This device gives privileged processes access to the x86
  61.171 +	  Model-Specific Registers (MSRs).  It is a character device with
  61.172 +	  major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
  61.173 +	  MSR accesses are directed to a specific CPU on multi-processor
  61.174 +	  systems.
  61.175 +
  61.176 +config X86_CP